576 lines
20 KiB
Plaintext
576 lines
20 KiB
Plaintext
-- ==================================================================
|
|
-- Copyright (C) 2003 by HUAWEI 3COM TECHNOLOGIES. All rights reserved.
|
|
--
|
|
-- Description: HUAWEI-3COM 802.1Q-in-Q and BPDU Tunnel MIB
|
|
-- Reference:
|
|
-- Version: V1.1
|
|
-- History:
|
|
-- V1.0 2006-03-10 Initial version Created by Baiping Chen
|
|
-- V1.1 2007/10/15 modified by wangjinwang
|
|
-- Add h3cQinQServiceTPIDValue and h3cQinQCustomerTPIDValue
|
|
-- to h3cQinQGlobalConfigGroup.
|
|
-- Add h3cQinQIfServiceTPIDValue h3cQinQIfCustomerTPIDValue
|
|
-- h3cQinQIfUplinkSwitch and h3cQinQIfDownlinkSwitch
|
|
-- to h3cQinQIfConfigTable.
|
|
-- ==================================================================
|
|
A3COM-HUAWEI-QINQ-MIB DEFINITIONS ::= BEGIN
|
|
IMPORTS
|
|
RowStatus, TEXTUAL-CONVENTION
|
|
FROM SNMPv2-TC
|
|
MODULE-IDENTITY, OBJECT-TYPE, Integer32
|
|
FROM SNMPv2-SMI
|
|
ifIndex
|
|
FROM RFC1213-MIB
|
|
h3cCommon
|
|
FROM A3COM-HUAWEI-OID-MIB;
|
|
|
|
-- ==================================================================
|
|
--
|
|
-- module identity part
|
|
--
|
|
-- ==================================================================
|
|
h3cQINQ MODULE-IDENTITY
|
|
LAST-UPDATED
|
|
"200603100000Z"
|
|
ORGANIZATION
|
|
"Huawei-3Com Technologies Co., Ltd."
|
|
CONTACT-INFO
|
|
"Platform Team Huawei-3Com Technologies Co., Ltd.
|
|
Hai-Dian District Beijing P.R. China
|
|
http://www.huawei-3com.com
|
|
Zip: 100085"
|
|
DESCRIPTION
|
|
"HUAWEI-3COM 802.1Q-in-Q MIB"
|
|
REVISION
|
|
"200603100000Z"
|
|
DESCRIPTION
|
|
"The initial version of this MIB."
|
|
::= { h3cCommon 69 }
|
|
|
|
|
|
-- ==================================================================
|
|
--
|
|
-- Textual Conventions
|
|
--
|
|
-- ==================================================================
|
|
H3cQinQSwitchState ::= TEXTUAL-CONVENTION
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An enumerated value which indicates the state of
|
|
switch."
|
|
SYNTAX INTEGER
|
|
{
|
|
enabled(1),
|
|
disabled(2)
|
|
}
|
|
|
|
|
|
-- ==================================================================
|
|
--
|
|
-- =====================object definition begin======================
|
|
--
|
|
-- ==================================================================
|
|
h3cQinQMibObject OBJECT IDENTIFIER ::= { h3cQINQ 1 }
|
|
|
|
h3cQinQGlobalConfigGroup OBJECT IDENTIFIER ::= { h3cQinQMibObject 1 }
|
|
|
|
h3cQinQBpduTunnelSwitch OBJECT-TYPE
|
|
SYNTAX H3cQinQSwitchState
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The global configuration switch of BPDU 802.1q tunnel.
|
|
If global configuration is disabled, BPDU tunnel function
|
|
will be disabled despite of the corresponding configuration
|
|
of interface. BPDU tunnel function of a certain interface
|
|
would work only if the global and interface's switch are
|
|
both enabled."
|
|
DEFVAL { enabled }
|
|
::= { h3cQinQGlobalConfigGroup 1 }
|
|
|
|
h3cQinQEthernetTypeValue OBJECT-TYPE
|
|
SYNTAX Integer32 (1..65535)
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Ethernet protocol type configuring for a global value.
|
|
The ethernet protocol type is also the TPID(Tag Protocol
|
|
Identity) field of a VLAN tag described in 802.1q
|
|
document. This value can be also configured for an
|
|
individual interface or VLAN. The node that configure
|
|
this value for a single interface is h3cQinQIfEthernetType,
|
|
whose priority is higher than h3cQinQEthernetTypeValue.
|
|
That means, if the value configured for a interface is
|
|
different from the global value, the switch will select
|
|
the configuration of the interface and ignore the global
|
|
configuration. The ethernet protocol type of node
|
|
h3cQinQVidEthernetType that configured for a VLAN has
|
|
the highest priority."
|
|
DEFVAL { 33024 }
|
|
::= { h3cQinQGlobalConfigGroup 2 }
|
|
|
|
h3cQinQServiceTPIDValue OBJECT-TYPE
|
|
SYNTAX Integer32 (1..65535)
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Ethernet protocol type configured for service VLAN tags
|
|
globally. The ethernet protocol type is also the TPID(Tag
|
|
Protocol Identity) field of a VLAN tag described in 802.1q
|
|
document. This value can be also configured for an
|
|
individual interface. The node that configure this
|
|
value for a single interface is h3cQinQIfServiceTPIDValue,
|
|
whose priority is higher than h3cQinQServiceTPIDValue.
|
|
That means, if the value configured for a interface is
|
|
different from the global value, the switch will select
|
|
the configuration of the interface and ignore the global
|
|
configuration."
|
|
::= { h3cQinQGlobalConfigGroup 3 }
|
|
|
|
h3cQinQCustomerTPIDValue OBJECT-TYPE
|
|
SYNTAX Integer32 (1..65535)
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Ethernet protocol type configured for customer VLAN tags
|
|
globally. The ethernet protocol type is also the TPID(Tag
|
|
Protocol Identity) field of a VLAN tag described in 802.1q
|
|
document. This value can be also configured for an
|
|
individual interface. The node that configure this
|
|
value for a single interface is h3cQinQIfCustomerTPIDValue,
|
|
whose priority is higher than h3cQinQCustomerTPIDValue.
|
|
That means, if the value configured for a interface is
|
|
different from the global value, the switch will select
|
|
the configuration of the interface and ignore the global
|
|
configuration."
|
|
::= { h3cQinQGlobalConfigGroup 4 }
|
|
|
|
h3cQinQBpduTunnelTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF H3cQinQBpduTunnelEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A table for configuring 802.1q BPDU tunnel function
|
|
for interfaces."
|
|
::= { h3cQinQMibObject 2 }
|
|
|
|
h3cQinQBpduTunnelEntry OBJECT-TYPE
|
|
SYNTAX H3cQinQBpduTunnelEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An entry for configuring 802.1q BPDU tunnel function
|
|
for interfaces."
|
|
INDEX
|
|
{
|
|
ifIndex,
|
|
h3cQinQProtocolIndex
|
|
}
|
|
::= { h3cQinQBpduTunnelTable 1 }
|
|
|
|
H3cQinQBpduTunnelEntry ::=
|
|
SEQUENCE
|
|
{
|
|
h3cQinQProtocolIndex INTEGER,
|
|
h3cQinQBpduRowStatus RowStatus
|
|
}
|
|
|
|
h3cQinQProtocolIndex OBJECT-TYPE
|
|
SYNTAX INTEGER
|
|
{
|
|
bpdu(1),
|
|
stp(2),
|
|
gvrp(3),
|
|
igmp(4)
|
|
}
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The index of protocol on which the BPDU tunnel state
|
|
will be set. 'bpdu' represents status of BPDU tunnel.
|
|
'stp' represents STP tunnel. 'gvrp' represents GVRP
|
|
tunnel. 'igmp' represents IGMP tunnel. STP/GVRP/IGMP
|
|
tunnel will start to work only if BPDU tunnel and
|
|
STP/GVRP/IGMP tunnel are both enabled."
|
|
::= { h3cQinQBpduTunnelEntry 1 }
|
|
|
|
h3cQinQBpduRowStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Operation status of this table entry."
|
|
::= { h3cQinQBpduTunnelEntry 2 }
|
|
|
|
|
|
h3cQinQPriorityRemarkTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF H3cQinQPriorityRemarkEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A table for configuring priority field in 802.1Q-in-Q
|
|
outer VLAN tag for interfaces. This feature uses the
|
|
priority of an inner VLAN tag to remark the priority
|
|
of an outer VLAN tag."
|
|
::= { h3cQinQMibObject 3 }
|
|
|
|
h3cQinQPriorityRemarkEntry OBJECT-TYPE
|
|
SYNTAX H3cQinQPriorityRemarkEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An entry for configuring priority remark function for
|
|
interfaces."
|
|
INDEX
|
|
{
|
|
ifIndex,
|
|
h3cQinQPriorityValue
|
|
}
|
|
::= { h3cQinQPriorityRemarkTable 1 }
|
|
|
|
H3cQinQPriorityRemarkEntry ::=
|
|
SEQUENCE
|
|
{
|
|
h3cQinQPriorityValue Integer32,
|
|
h3cQinQPriorityRemarkValue Integer32,
|
|
h3cQinQPriorityRowStatus RowStatus
|
|
}
|
|
|
|
h3cQinQPriorityValue OBJECT-TYPE
|
|
SYNTAX Integer32 (1..8)
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The priority value in inner VLAN tag. Since the priority
|
|
range is from 0 to 7, yet the index range is from 1 to 8.
|
|
Thus, the actual priority value equals to the value that
|
|
subtracts 1 from corresponding index value."
|
|
::= { h3cQinQPriorityRemarkEntry 1 }
|
|
|
|
h3cQinQPriorityRemarkValue OBJECT-TYPE
|
|
SYNTAX Integer32 (0..7)
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The new priority value used to fill outer tag."
|
|
::= { h3cQinQPriorityRemarkEntry 2 }
|
|
|
|
h3cQinQPriorityRowStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Operation status of this table entry."
|
|
::= { h3cQinQPriorityRemarkEntry 3 }
|
|
|
|
|
|
h3cQinQVidTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF H3cQinQVidEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A table for configuring VLAN ID of the 802.1Q-in-Q
|
|
interfaces."
|
|
::= { h3cQinQMibObject 4 }
|
|
|
|
h3cQinQVidEntry OBJECT-TYPE
|
|
SYNTAX H3cQinQVidEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An entry for configuring VLAN ID of the 802.1Q-in-Q
|
|
interfaces."
|
|
INDEX
|
|
{
|
|
ifIndex,
|
|
h3cQinQVlanID
|
|
}
|
|
::= { h3cQinQVidTable 1 }
|
|
|
|
H3cQinQVidEntry ::=
|
|
SEQUENCE
|
|
{
|
|
h3cQinQVlanID Integer32,
|
|
h3cQinQInboundVidListLow OCTET STRING,
|
|
h3cQinQInboundVidListHigh OCTET STRING,
|
|
h3cQinQVidEthernetType Integer32,
|
|
h3cQinQVidRowStatus RowStatus
|
|
}
|
|
|
|
h3cQinQVlanID OBJECT-TYPE
|
|
SYNTAX Integer32 (1..4094)
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"VLAN ID"
|
|
::= { h3cQinQVidEntry 1 }
|
|
|
|
h3cQinQInboundVidListLow OBJECT-TYPE
|
|
SYNTAX OCTET STRING (SIZE(256))
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The inbound VLAN IDs which need 802.1Q-in-Q processing.
|
|
The VLAN ID range, described by bitmap, is from 1 to
|
|
2048. The length of bitmap is 256 in bytes. Each octet
|
|
within this value specifies a set of eight VLANs, with
|
|
the first octet specifying VLANs 1 through 8, the second
|
|
octet specifying VLANs 9 through 16, etc. Within each
|
|
octet, the most significant bit represents the highest
|
|
numbered VLAN, and the least significant bit represents
|
|
the lowest numbered VLAN."
|
|
::= { h3cQinQVidEntry 2 }
|
|
|
|
h3cQinQInboundVidListHigh OBJECT-TYPE
|
|
SYNTAX OCTET STRING (SIZE(256))
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The inbound VLAN IDs which need 802.1Q-in-Q processing.
|
|
The VLAN ID range, described by bitmap, is from 2049 to
|
|
4094. The length of bitmap is 256 in bytes. Each octet
|
|
within this value specifies a set of eight VLANs, with
|
|
the first octet specifying VLANs 2049 through 2056, the
|
|
second octet specifying VLANs 2057 through 2064, etc.
|
|
Within each octet, the most significant bit represents
|
|
the highest numbered VLAN, and the least significant bit
|
|
represents the lowest numbered VLAN."
|
|
::= { h3cQinQVidEntry 3 }
|
|
|
|
h3cQinQVidEthernetType OBJECT-TYPE
|
|
SYNTAX Integer32 (1..65535)
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Ethernet protocol type configuring for a VLAN."
|
|
DEFVAL { 33024 }
|
|
::= { h3cQinQVidEntry 4 }
|
|
|
|
h3cQinQVidRowStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Operation status of this table entry."
|
|
::= { h3cQinQVidEntry 5 }
|
|
|
|
|
|
h3cQinQVidSwapTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF H3cQinQVidSwapEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A table for configuring 802.1Q-in-Q inner VLAN ID
|
|
swapping function for interfaces."
|
|
::= { h3cQinQMibObject 5 }
|
|
|
|
h3cQinQVidSwapEntry OBJECT-TYPE
|
|
SYNTAX H3cQinQVidSwapEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An entry for configuring 802.1Q-in-Q inner VLAN ID
|
|
swapping function for interfaces."
|
|
INDEX
|
|
{
|
|
ifIndex,
|
|
h3cQinQVlanID,
|
|
h3cQinQVidSwapOld
|
|
}
|
|
::= { h3cQinQVidSwapTable 1 }
|
|
|
|
H3cQinQVidSwapEntry ::=
|
|
SEQUENCE
|
|
{
|
|
h3cQinQVidSwapOld Integer32,
|
|
h3cQinQVidSwapNew Integer32,
|
|
h3cQinQVidSwapRowStatus RowStatus
|
|
}
|
|
|
|
h3cQinQVidSwapOld OBJECT-TYPE
|
|
SYNTAX Integer32 (1..4094)
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The old VLAN ID of original 802.1Q packets."
|
|
::= { h3cQinQVidSwapEntry 1 }
|
|
|
|
h3cQinQVidSwapNew OBJECT-TYPE
|
|
SYNTAX Integer32 (1..4094)
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The new VLAN ID of original 802.1Q packets."
|
|
::= { h3cQinQVidSwapEntry 2 }
|
|
|
|
h3cQinQVidSwapRowStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Operation status of this table entry."
|
|
::= { h3cQinQVidSwapEntry 3 }
|
|
|
|
|
|
h3cQinQPrioritySwapTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF H3cQinQPrioritySwapEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A table for configuring 802.1Q-in-Q inner VLAN priority
|
|
swapping function for interfaces. Using this function,
|
|
the priority of inner VLAN tag can be modified."
|
|
::= { h3cQinQMibObject 6 }
|
|
|
|
h3cQinQPrioritySwapEntry OBJECT-TYPE
|
|
SYNTAX H3cQinQPrioritySwapEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An entry for configuring 802.1Q-in-Q inner VLAN
|
|
priority swapping function for interfaces."
|
|
INDEX
|
|
{
|
|
ifIndex,
|
|
h3cQinQVlanID,
|
|
h3cQinQPrioritySwapOld
|
|
}
|
|
::= { h3cQinQPrioritySwapTable 1 }
|
|
|
|
H3cQinQPrioritySwapEntry ::=
|
|
SEQUENCE
|
|
{
|
|
h3cQinQPrioritySwapOld Integer32,
|
|
h3cQinQPrioritySwapNew Integer32,
|
|
h3cQinQPrioritySwapRowStatus RowStatus
|
|
}
|
|
|
|
h3cQinQPrioritySwapOld OBJECT-TYPE
|
|
SYNTAX Integer32 (1..8)
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The old priority of original 802.1Q packets. It is the
|
|
priority of inner VLAN tag. Since the VLAN priority range
|
|
is from 0 to 7, yet the index range is from 1 to 8. Thus,
|
|
the actual priority value equals to the value that
|
|
subtracts 1 from corresponding index value."
|
|
::= { h3cQinQPrioritySwapEntry 1 }
|
|
|
|
h3cQinQPrioritySwapNew OBJECT-TYPE
|
|
SYNTAX Integer32 (0..7)
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The new priority of original 802.1Q packets. It is the
|
|
priority of inner VLAN tag after swapped."
|
|
::= { h3cQinQPrioritySwapEntry 2 }
|
|
|
|
h3cQinQPrioritySwapRowStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Operation status of this table entry."
|
|
::= { h3cQinQPrioritySwapEntry 3 }
|
|
|
|
|
|
h3cQinQIfConfigTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF H3cQinQIfConfigEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A table for configuring 802.1Q-in-Q functions for
|
|
interfaces."
|
|
::= { h3cQinQMibObject 7 }
|
|
|
|
h3cQinQIfConfigEntry OBJECT-TYPE
|
|
SYNTAX H3cQinQIfConfigEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An entry for configuring 802.1Q-in-Q functions for
|
|
interfaces."
|
|
INDEX
|
|
{
|
|
ifIndex
|
|
}
|
|
::= { h3cQinQIfConfigTable 1 }
|
|
|
|
H3cQinQIfConfigEntry ::=
|
|
SEQUENCE
|
|
{
|
|
h3cQinQIfEthernetType Integer32,
|
|
h3cQinQIfSwitch H3cQinQSwitchState,
|
|
h3cQinQIfRowStatus RowStatus,
|
|
h3cQinQIfServiceTPIDValue Integer32,
|
|
h3cQinQIfCustomerTPIDValue Integer32,
|
|
h3cQinQIfUplinkSwitch H3cQinQSwitchState,
|
|
h3cQinQIfDownlinkSwitch H3cQinQSwitchState
|
|
}
|
|
|
|
h3cQinQIfEthernetType OBJECT-TYPE
|
|
SYNTAX Integer32 (1..65535)
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Ethernet protocol type configuring for an interface."
|
|
DEFVAL { 33024 }
|
|
::= { h3cQinQIfConfigEntry 1 }
|
|
|
|
h3cQinQIfSwitch OBJECT-TYPE
|
|
SYNTAX H3cQinQSwitchState
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Switch of 802.1Q-in-Q functions configuring for an
|
|
interface."
|
|
DEFVAL { disabled }
|
|
::= { h3cQinQIfConfigEntry 2 }
|
|
|
|
h3cQinQIfRowStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Operation status of this table entry."
|
|
::= { h3cQinQIfConfigEntry 3 }
|
|
|
|
h3cQinQIfServiceTPIDValue OBJECT-TYPE
|
|
SYNTAX Integer32 (1..65535)
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Service TPID value configured for an interface."
|
|
::= { h3cQinQIfConfigEntry 4 }
|
|
|
|
h3cQinQIfCustomerTPIDValue OBJECT-TYPE
|
|
SYNTAX Integer32 (1..65535)
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Customer TPID value configured for an interface."
|
|
::= { h3cQinQIfConfigEntry 5 }
|
|
|
|
h3cQinQIfUplinkSwitch OBJECT-TYPE
|
|
SYNTAX H3cQinQSwitchState
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Switch of the uplink 802.1Q-in-Q function
|
|
for an interface."
|
|
DEFVAL { disabled }
|
|
::= { h3cQinQIfConfigEntry 6 }
|
|
|
|
h3cQinQIfDownlinkSwitch OBJECT-TYPE
|
|
SYNTAX H3cQinQSwitchState
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Switch of the downlink 802.1Q-in-Q function
|
|
for an interface."
|
|
DEFVAL { disabled }
|
|
::= { h3cQinQIfConfigEntry 7 }
|
|
|
|
END
|