Nuke nv(4), we have nfe(4) which replaces it.
authorHasso Tepper <hasso@dragonflybsd.org>
Mon, 27 Aug 2007 21:51:41 +0000 (21:51 +0000)
committerHasso Tepper <hasso@dragonflybsd.org>
Mon, 27 Aug 2007 21:51:41 +0000 (21:51 +0000)
23 files changed:
etc/Makefile
share/man/man4/miibus.4
share/man/man4/polling.4
sys/boot/forth/loader-bootp.conf
sys/boot/forth/loader.conf
sys/config/LINT
sys/contrib/dev/nv/LICENSE [deleted file]
sys/contrib/dev/nv/adapter.h [deleted file]
sys/contrib/dev/nv/amd64/nvenetlib.o.uu [deleted file]
sys/contrib/dev/nv/basetype.h [deleted file]
sys/contrib/dev/nv/drvinfo.h [deleted file]
sys/contrib/dev/nv/i386/nvenetlib.o.uu [deleted file]
sys/contrib/dev/nv/nvenet_version.h [deleted file]
sys/contrib/dev/nv/os.h [deleted file]
sys/contrib/dev/nv/phy.h [deleted file]
sys/dev/netif/nv/Makefile [deleted file]
sys/dev/netif/nv/adapter.h.patch [deleted file]
sys/dev/netif/nv/basetype.h.patch [deleted file]
sys/dev/netif/nv/drvinfo.h.patch [deleted file]
sys/dev/netif/nv/if_nv.c [deleted file]
sys/dev/netif/nv/if_nvreg.h [deleted file]
sys/dev/netif/nv/os.h.patch [deleted file]
sys/dev/netif/nv/phy.h.patch [deleted file]

index 56b3b64..0c0323f 100644 (file)
@@ -1,6 +1,6 @@
 #      from: @(#)Makefile      5.11 (Berkeley) 5/21/91
 # $FreeBSD: src/etc/Makefile,v 1.219.2.38 2003/03/04 09:49:00 ru Exp $
-# $DragonFly: src/etc/Makefile,v 1.185 2007/08/27 20:51:11 hasso Exp $
+# $DragonFly: src/etc/Makefile,v 1.186 2007/08/27 21:51:40 hasso Exp $
 
 .if !defined(NO_SENDMAIL)
 SUBDIR=        sendmail
@@ -531,6 +531,7 @@ upgrade_etc:        preupgrade
        csh -c "rm -f ${DESTDIR}/usr/share/man/{man,cat}4/fea.4.gz"
        csh -c "rm -f ${DESTDIR}/usr/share/man/{man,cat}4/fpa.4.gz"
        csh -c "rm -f ${DESTDIR}/usr/share/man/{man,cat}4/fla.4.gz"
+       csh -c "rm -f ${DESTDIR}/usr/share/man/{man,cat}4/nv.4.gz"
        ldconfig -R
 .if !defined(BINARY_UPGRADE) # binary upgrade just copies these nodes
 .if !defined(NOMAN)
index ebf99d3..358100b 100644 (file)
@@ -7,7 +7,7 @@
 .\" I doubt you would ever notice due to large differences.
 .\"
 .\" $FreeBSD: src/share/man/man4/miibus.4,v 1.3.2.6 2004/03/01 09:22:11 brueffer Exp $
-.\" $DragonFly: src/share/man/man4/miibus.4,v 1.10 2007/05/26 22:54:28 swildner Exp $
+.\" $DragonFly: src/share/man/man4/miibus.4,v 1.11 2007/08/27 21:51:40 hasso Exp $
 .\"
 .Dd February 15, 2003
 .Dt MIIBUS 4
@@ -72,8 +72,6 @@ Level 1 LXT1001 NetCellerator Gigabit Ethernet
 NVIDIA nForce MCP 10/100/Gigabit Ethernet
 .It Xr nge 4
 National Semiconductor DP83820/DP83821 Gigabit Ethernet
-.It Xr nv 4
-NVIDIA nForce MCP Networking Adapter
 .It Xr pcn 4
 AMD Am79C97x PCI 10/100
 .It Xr re 4
index 752e8be..49210d9 100644 (file)
@@ -1,6 +1,6 @@
 .\"
 .\" $FreeBSD: src/share/man/man4/polling.4,v 1.1.2.4 2003/04/14 08:58:02 maxim Exp $
-.\" $DragonFly: src/share/man/man4/polling.4,v 1.9 2007/06/08 07:39:20 swildner Exp $
+.\" $DragonFly: src/share/man/man4/polling.4,v 1.10 2007/08/27 21:51:40 hasso Exp $
 .\"
 .Dd October 13, 2005
 .Dt POLLING 4
@@ -102,7 +102,6 @@ As of this writing, the
 .Xr fxp 4 ,
 .Xr nfe 4 ,
 .Xr nge 4 ,
-.Xr nv 4 ,
 .Xr re 4 ,
 .Xr rl 4 ,
 .Xr sis 4 ,
index acf03b5..7677814 100644 (file)
@@ -7,7 +7,7 @@
 # All arguments must be in double quotes.
 #
 # $FreeBSD: src/sys/boot/forth/loader.conf,v 1.72 2003/07/01 01:03:32 brueffer Exp $
-# $DragonFly: src/sys/boot/forth/loader-bootp.conf,v 1.13 2007/05/26 22:54:29 swildner Exp $
+# $DragonFly: src/sys/boot/forth/loader-bootp.conf,v 1.14 2007/08/27 21:51:40 hasso Exp $
 
 ##############################################################
 ###  Basic configuration options  ############################
@@ -204,7 +204,6 @@ if_my_load="NO"                     # Myson PCI fast ethernet
 #if_ndis_load="NO"             # NDIS miniport driver wrapper
 if_nfe_load="NO"               # NVIDIA nForce MCP 10/100/Gigabit ethernet
 if_nge_load="NO"               # National Semiconductor PCI gigabit ethernet
-if_nv_load="NO"                        # NVidia MB ethernet (Typ AMDXP/AMD64 boxes)
 if_pcn_load="NO"               # AMD PCnet PCI
 if_ral_load="NO"               # Ralink Technology 802.11 wireless NICs
 if_ray_load="NO"               # Raytheon Raylink/Webgear Aviator PCCard
index 097aeae..656aa4a 100644 (file)
@@ -7,7 +7,7 @@
 # All arguments must be in double quotes.
 #
 # $FreeBSD: src/sys/boot/forth/loader.conf,v 1.72 2003/07/01 01:03:32 brueffer Exp $
-# $DragonFly: src/sys/boot/forth/loader.conf,v 1.19 2007/05/26 22:54:29 swildner Exp $
+# $DragonFly: src/sys/boot/forth/loader.conf,v 1.20 2007/08/27 21:51:40 hasso Exp $
 
 ##############################################################
 ###  Basic configuration options  ############################
@@ -200,7 +200,6 @@ if_my_load="NO"                     # Myson PCI fast ethernet
 #if_ndis_load="NO"             # NDIS miniport driver wrapper
 if_nfe_load="NO"               # NVIDIA nForce MCP 10/100/Gigabit ethernet
 if_nge_load="NO"               # National Semiconductor PCI gigabit ethernet
-if_nv_load="NO"                        # NVidia MB ethernet (Typ AMDXP/AMD64 boxes)
 if_pcn_load="NO"               # AMD PCnet PCI
 if_ral_load="NO"               # Ralink Technology 802.11 wireless NICs
 if_ray_load="NO"               # Raytheon Raylink/Webgear Aviator PCCard
index 0c66a05..e80eaaf 100644 (file)
@@ -3,7 +3,7 @@
 #      as much of the source tree as it can.
 #
 # $FreeBSD: src/sys/i386/conf/LINT,v 1.749.2.144 2003/06/04 17:56:59 sam Exp $
-# $DragonFly: src/sys/config/LINT,v 1.128 2007/08/27 20:40:52 hasso Exp $
+# $DragonFly: src/sys/config/LINT,v 1.129 2007/08/27 21:51:40 hasso Exp $
 #
 # NB: You probably don't want to try running a kernel built from this
 # file.  Instead, you should start from GENERIC, and add options from
@@ -712,7 +712,7 @@ device              hfa                     #FORE PCA-200E ATM PCI
 # Only the following devices support this mode of operation at the time of
 # this writing:
 #
-# bce, bge, dc, em, fwe, fxp, nfe, nge, nv, re, rl, sis, stge, vge, vr, wi, xl
+# bce, bge, dc, em, fwe, fxp, nfe, nge, re, rl, sis, stge, vge, vr, wi, xl
  
 options         DEVICE_POLLING
 
diff --git a/sys/contrib/dev/nv/LICENSE b/sys/contrib/dev/nv/LICENSE
deleted file mode 100644 (file)
index 05153ab..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-           License For Customer Use of NVIDIA Software
-
-
-IMPORTANT NOTICE -- READ CAREFULLY: This License For Customer Use of
-NVIDIA Software ("LICENSE") is the agreement which governs use of the
-software of NVIDIA Corporation and its subsidiaries ("NVIDIA")
-downloadable herefrom, including computer software and associated
-printed materials ("SOFTWARE"). By downloading, installing, copying,
-or otherwise using the SOFTWARE, you agree to be bound by the terms
-of this LICENSE. If you do not agree to the terms of this LICENSE,
-do not download the SOFTWARE.
-
-RECITALS
-
-Use of NVIDIA's products requires three elements: the SOFTWARE, the
-hardware on a graphics controller board, and a personal computer. The
-SOFTWARE is protected by copyright laws and international copyright 
-treaties, as well as other intellectual property laws and treaties.
-The SOFTWARE is not sold, and instead is only licensed for use, strictly
-in accordance with this document. The hardware is protected by various
-patents, and is sold, but this LICENSE does not cover that sale, since
-it may  not necessarily be sold as a package with the SOFTWARE. This
-LICENSE sets forth the terms and conditions of the SOFTWARE LICENSE only.
-
-1. DEFINITIONS
-
-1.1 Customer. Customer means the entity or individual that downloads
-the SOFTWARE.
-
-2. GRANT OF LICENSE
-
-2.1 Rights and Limitations of Grant. NVIDIA hereby grants Customer
-the following non-exclusive, non-transferable right to use the
-SOFTWARE, with the following limitations:
-
-2.1.1 Rights. Customer may install and use one copy of the SOFTWARE
-on a single computer, and except for making one back-up copy of the
-Software, may not otherwise copy the SOFTWARE. This LICENSE of SOFTWARE
-may not be shared or used concurrently on different computers.
-
-2.1.2 Linux/FreeBSD Exception. Notwithstanding the foregoing terms
-of Section 2.1.1, SOFTWARE designed exclusively for use on the Linux or
-FreeBSD operating systems, or other operating systems derived from the
-source code to these operating systems, may be copied and redistributed,
-provided that the binary files thereof are not modified in any way
-(except for unzipping of compressed files).
-
-2.1.3 Limitations.
-
-No Reverse Engineering. Customer may not reverse engineer, decompile,
-or disassemble the SOFTWARE, nor attempt in any other manner to obtain
-the source code. 
-
-No Separation of Components. The SOFTWARE is licensed as a single product.
-Its component parts may not be separated for use on more than one computer,
-nor otherwise used separately from the other parts.
-
-No Rental. Customer may not rent or lease the SOFTWARE to someone else.
-
-3. TERMINATION
-
-This LICENSE will automatically terminate if Customer fails to comply
-with any of the terms and conditions hereof. In such event, Customer
-must destroy all copies of the SOFTWARE and all of its component parts.
-
-Defensive Suspension.  If Customer commences or participates in any legal
-proceeding against NVIDIA, then NVIDIA may, in its sole discretion,
-suspend or terminate all license grants and any other rights provided
-under this LICENSE during the pendency of such legal proceedings. 
-
-4. COPYRIGHT
-
-All title and copyrights in and to the SOFTWARE (including but not
-limited to all images, photographs, animations, video, audio, music,
-text, and other information incorporated into the SOFTWARE), the 
-accompanying printed materials, and any copies of the SOFTWARE, are
-owned by NVIDIA, or its suppliers. The SOFTWARE is protected by copyright
-laws and international treaty provisions. Accordingly, Customer is
-required to treat the SOFTWARE like any other copyrighted material, 
-except as otherwise allowed pursuant to this LICENSE and that it may
-make one copy of the SOFTWARE solely for backup or archive purposes.
-
-5. APPLICABLE LAW
-
-This LICENSE shall be deemed to have been made in, and shall be
-construed  pursuant to, the laws of the State of California.  The
-United Nations Convention on Contracts for the International Sale
-of Goods is specifically disclaimed.
-
-6. DISCLAIMER OF WARRANTIES AND LIMITATION ON LIABILITY
-
-6.1 No Warranties. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
-THE SOFTWARE IS PROVIDED "AS IS" AND NVIDIA AND ITS SUPPLIERS DISCLAIM
-ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED
-TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
-PURPOSE.
-
-6.2 No Liability for Consequential Damages. TO THE MAXIMUM EXTENT
-PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS
-BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES 
-WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS
-PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY
-OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE
-SOFTWARE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-7. MISCELLANEOUS 
-
-If any provision of this LICENSE is inconsistent with, or cannot be
-fully enforced under, the law, such provision will be construed as
-limited to the extent necessary to be consistent with and fully
-enforceable under the law. This LICENSE is the final, complete and
-exclusive agreement between the parties relating to the subject matter 
-hereof, and supersedes all prior or contemporaneous understandings and 
-agreements relating to such subject matter, whether oral or written.
-This LICENSE may only be modified in writing signed by an authorized
-officer of NVIDIA.  Customer agrees that it will not ship, transfer
-or export the SOFTWARE into any country, or use the SOFTWARE in any
-manner, prohibited by the United States Bureau of Export Administration
-or any export laws, restrictions or regulations. 
-
-EULA (07-22-04)
diff --git a/sys/contrib/dev/nv/adapter.h b/sys/contrib/dev/nv/adapter.h
deleted file mode 100644 (file)
index 40520e9..0000000
+++ /dev/null
@@ -1,583 +0,0 @@
-/***************************************************************************\
-|*                                                                           *|
-|*       Copyright 2001-2004 NVIDIA Corporation.  All Rights Reserved.       *|
-|*                                                                           *|
-|*     THE INFORMATION CONTAINED HEREIN  IS PROPRIETARY AND CONFIDENTIAL     *|
-|*     TO NVIDIA, CORPORATION.   USE,  REPRODUCTION OR DISCLOSURE TO ANY     *|
-|*     THIRD PARTY IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORP.       *|
-|*                                                                           *|
-|*     THE INFORMATION CONTAINED HEREIN IS PROVIDED  "AS IS" WITHOUT         *|
-|*     EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING ALL IMPLIED        *|
-|*     WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A     *|
-|*     PARTICULAR PURPOSE.                                                   *|
-|*                                                                           *|
-\***************************************************************************/ 
-
-/*
-    FILE:   adapter.h
-    DATE:   2/7/00
-
-    This file contains the hardware interface to the ethernet adapter.
-*/
-
-#ifndef _ADAPTER_H_
-#define _ADAPTER_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define HDA_VERSION_STRING "HDR A: $Revision: #46 $"
-
-#ifdef MODS_NETWORK_BUILD
-#ifndef _DRVAPP_H_
-#include "drvapp.h"
-#endif
-#endif
-
-//////////////////////////////////////////////////////////////////
-// For the set and get configuration calls.
-typedef struct  _ADAPTER_CONFIG
-{
-    NV_UINT32   ulFlags;
-}   ADAPTER_CONFIG, *PADAPTER_CONFIG;
-//////////////////////////////////////////////////////////////////
-
-typedef struct _ADAPTER_WRITE_OFFLOAD
-{
-    NV_UINT32   usBitmask;
-    NV_UINT32   ulMss;
-
-} ADAPTER_WRITE_OFFLOAD;
-
-//////////////////////////////////////////////////////////////////
-// For the ADAPTER_Write1 call.
-/* This scatter gather list should be same as defined in ndis.h by MS.
-   For ULONG_PTR MS header file says that it will be of same size as
-   pointer. It has been defined to take care of casting between differenet
-   sizes.
-*/
-typedef struct _NVSCATTER_GATHER_ELEMENT {
-    NV_UINT32 PhysLow;
-    NV_UINT32 PhysHigh;
-    NV_UINT32 Length;
-    NV_VOID *Reserved;
-} NVSCATTER_GATHER_ELEMENT, *PNVSCATTER_GATHER_ELEMENT;
-
-#ifndef linux
-#pragma warning(disable:4200)
-#endif
-typedef struct _NVSCATTER_GATHER_LIST {
-    NV_UINT32       NumberOfElements;
-    NV_VOID         *Reserved;
-    NVSCATTER_GATHER_ELEMENT Elements[0];   // Made 0 sized element to remove MODS compilation error
-                                            // Elements[0] and Elements[] have the same effect. 
-                                            // sizeof(NVSCATTER_GATHER_LIST) is the same (value of 8) in both cases
-                                            // And both lead to Warning 4200 in MSVC
-} NVSCATTER_GATHER_LIST, *PNVSCATTER_GATHER_LIST;
-#ifndef linux
-#pragma warning(default:4200)
-#endif
-
-typedef struct  _ADAPTER_WRITE_DATA1
-{
-    NV_UINT32                   ulTotalLength;
-    PNV_VOID                    pvID;
-    NV_UINT8                    uc8021pPriority;
-    ADAPTER_WRITE_OFFLOAD       *psOffload;
-    PNVSCATTER_GATHER_LIST      pNVSGL;
-}   ADAPTER_WRITE_DATA1, *PADAPTER_WRITE_DATA1;
-
-
-//////////////////////////////////////////////////////////////////
-// For the ADAPTER_Write call.
-typedef struct  _ADAPTER_WRITE_ELEMENT
-{
-    PNV_VOID   pPhysical;
-    NV_UINT32   ulLength;
-}   ADAPTER_WRITE_ELEMENT, *PADAPTER_WRITE_ELEMENT;
-
-
-#define ADAPTER_WRITE_OFFLOAD_BP_SEGOFFLOAD      0
-#define ADAPTER_WRITE_OFFLOAD_BP_IPV4CHECKSUM    1
-#define ADAPTER_WRITE_OFFLOAD_BP_IPV6CHECKSUM    2
-#define ADAPTER_WRITE_OFFLOAD_BP_TCPCHECKSUM     3
-#define ADAPTER_WRITE_OFFLOAD_BP_UDPCHECKSUM     4
-#define ADAPTER_WRITE_OFFLOAD_BP_IPCHECKSUM      5
-
-
-// pvID is a value that will be passed back into OSAPI.pfnPacketWasSent
-// when the transmission completes. if pvID is NULL, the ADAPTER code
-// assumes the caller does not want the pfnPacketWasSent callback.
-typedef struct  _ADAPTER_WRITE_DATA
-{
-    NV_UINT32                   ulNumberOfElements;
-    NV_UINT32                   ulTotalLength;
-    PNV_VOID                    pvID;
-    NV_UINT8                    uc8021pPriority;
-    ADAPTER_WRITE_OFFLOAD       *psOffload;
-#ifdef linux
-    ADAPTER_WRITE_ELEMENT       sElement[32];
-#else
-    ADAPTER_WRITE_ELEMENT       sElement[100];
-#endif
-}   ADAPTER_WRITE_DATA, *PADAPTER_WRITE_DATA;
-//////////////////////////////////////////////////////////////////
-
-
-
-//////////////////////////////////////////////////////////////////
-// For the ADAPTER_Read call.
-typedef struct  _ADAPTER_READ_ELEMENT
-{
-    PNV_VOID   pPhysical;
-    NV_UINT32   ulLength;
-}   ADAPTER_READ_ELEMENT, *PADAPTER_READ_ELEMENT;
-
-typedef struct _ADAPTER_READ_OFFLOAD
-{
-    NV_UINT8  ucChecksumStatus;
-
-} ADAPTER_READ_OFFLOAD;
-
-typedef struct _ADAPTER_READ_DATA
-{
-    NV_UINT32                   ulNumberOfElements;
-    NV_UINT32                   ulTotalLength;
-    PNV_VOID                    pvID;
-    NV_UINT32                   ulFilterMatch;
-    ADAPTER_READ_OFFLOAD        sOffload;
-    ADAPTER_READ_ELEMENT        sElement[10];
-}   ADAPTER_READ_DATA, *PADAPTER_READ_DATA;
-
-
-#define RDFLAG_CHK_NOCHECKSUM      0
-#define RDFLAG_CHK_IPPASSTCPFAIL   1
-#define RDFLAG_CHK_IPPASSUDPFAIL   2
-#define RDFLAG_CHK_IPFAIL          3
-#define RDFLAG_CHK_IPPASSNOTCPUDP  4
-#define RDFLAG_CHK_IPPASSTCPPASS   5
-#define RDFLAG_CHK_IPPASSUDPPASS   6
-#define RDFLAG_CHK_RESERVED        7
-
-
-// The ulFilterMatch flag can be a logical OR of the following
-#define ADREADFL_UNICAST_MATCH          0x00000001
-#define ADREADFL_MULTICAST_MATCH        0x00000002
-#define ADREADFL_BROADCAST_MATCH        0x00000004
-//////////////////////////////////////////////////////////////////
-
-
-
-//////////////////////////////////////////////////////////////////
-// For the ADAPTER_GetPowerCapabilities call.
-typedef struct  _ADAPTER_POWERCAPS
-{
-    NV_UINT32   ulPowerFlags;
-    NV_UINT32   ulMagicPacketWakeUpFlags;
-    NV_UINT32   ulPatternWakeUpFlags;
-    NV_UINT32   ulLinkChangeWakeUpFlags;
-    NV_SINT32     iMaxWakeUpPatterns;
-}   ADAPTER_POWERCAPS, *PADAPTER_POWERCAPS;
-
-// For the ADAPTER_GetPowerState and ADAPTER_SetPowerState call.
-typedef struct  _ADAPTER_POWERSTATE
-{
-    NV_UINT32   ulPowerFlags;
-    NV_UINT32   ulMagicPacketWakeUpFlags;
-    NV_UINT32   ulPatternWakeUpFlags;
-    NV_UINT32   ulLinkChangeWakeUpFlags;
-}   ADAPTER_POWERSTATE, *PADAPTER_POWERSTATE;
-
-// Each of the flag fields in the POWERCAPS structure above can have
-// any of the following bitflags set giving the capabilites of the
-// adapter. In the case of the wake up fields, these flags mean that
-// wake up can happen from the specified power state.
-
-// For the POWERSTATE structure, the ulPowerFlags field should just
-// have one of these bits set to go to that particular power state.
-// The WakeUp fields can have one or more of these bits set to indicate
-// what states should be woken up from.
-#define POWER_STATE_D0          0x00000001
-#define POWER_STATE_D1          0x00000002
-#define POWER_STATE_D2          0x00000004
-#define POWER_STATE_D3          0x00000008
-
-#define POWER_STATE_ALL         (POWER_STATE_D0 | \
-                                POWER_STATE_D1  | \
-                                POWER_STATE_D2  | \
-                                POWER_STATE_D3)
-//////////////////////////////////////////////////////////////////
-
-
-
-//////////////////////////////////////////////////////////////////
-// The ADAPTER_GetPacketFilterCaps call returns a NV_UINT32 that can
-// have the following capability bits set.
-#define ACCEPT_UNICAST_PACKETS      0x00000001
-#define ACCEPT_MULTICAST_PACKETS    0x00000002
-#define ACCEPT_BROADCAST_PACKETS    0x00000004
-#define ACCEPT_ALL_PACKETS          0x00000008
-
-#define ETH_LENGTH_OF_ADDRESS        6
-
-// The ADAPTER_SetPacketFilter call uses this structure to know what
-// packet filter to set. The ulPacketFilter field can contain some
-// union of the bit flags above. The acMulticastMask array holds a
-// 48 bit MAC address mask with a 0 in every bit position that should
-// be ignored on compare and a 1 in every bit position that should
-// be taken into account when comparing to see if the destination
-// address of a packet should be accepted for multicast.
-typedef struct  _PACKET_FILTER
-{
-    NV_UINT32   ulFilterFlags;
-    NV_UINT8   acMulticastAddress[ETH_LENGTH_OF_ADDRESS];
-    NV_UINT8   acMulticastMask[ETH_LENGTH_OF_ADDRESS];
-}   PACKET_FILTER, *PPACKET_FILTER;
-//////////////////////////////////////////////////////////////////
-
-
-//////////////////////////////////////////////////////////////////
-// A WAKE_UP_PATTERN is a 128-byte pattern that the adapter can
-// look for in incoming packets to decide when to wake up.  Higher-
-// level protocols can use this to, for example, wake up the
-// adapter whenever it sees an IP packet that is addressed to it.
-// A pattern consists of 128 bits of byte masks that indicate
-// which bytes in the packet are relevant to the pattern, plus
-// values for each byte.
-#define WAKE_UP_PATTERN_SIZE 128
-
-typedef struct _WAKE_UP_PATTERN
-{
-    NV_UINT32   aulByteMask[WAKE_UP_PATTERN_SIZE/32];
-    NV_UINT8   acData[WAKE_UP_PATTERN_SIZE];
-}   WAKE_UP_PATTERN, *PWAKE_UP_PATTERN;
-
-
-
-//
-//
-// Adapter offload
-//
-typedef struct _ADAPTER_OFFLOAD {
-
-    NV_UINT32 Type;
-    NV_UINT32 Value0;
-
-} ADAPTER_OFFLOAD, *PADAPTER_OFFLOAD;
-
-#define ADAPTER_OFFLOAD_VLAN        0x00000001
-#define ADAPTER_OFFLOAD_IEEE802_1P    0x00000002
-#define ADAPTER_OFFLOAD_IEEE802_1PQ_PAD    0x00000004
-
-//////////////////////////////////////////////////////////////////
-
-//  CMNDATA_OS_ADAPTER
-//  Structure common to OS and Adapter layers
-//  Used for moving data from the OS layer to the adapter layer through SetCommonData 
-//  function call from OS layer to Adapter layer
-// 
-
-typedef struct  _CMNDATA_OS_ADAPTER
-{
-#ifndef linux
-    ASF_SEC0_BASE   sRegSec0Base;
-#endif
-    NV_UINT32           bFPGA; 
-    NV_UINT32           ulFPGAEepromSize;
-    NV_UINT32           bChecksumOffloadEnable;
-    NV_UINT32           ulChecksumOffloadBM;
-    NV_UINT32           ulChecksumOffloadOS;
-    NV_UINT32           ulMediaIF;
-    NV_UINT32           bOemCustomEventRead;
-
-    // Debug only right now
-    //!!! Beware mods is relying on the fields blow.
-    NV_UINT32           ulWatermarkTFBW;
-    NV_UINT32           ulBackoffRseed;
-    NV_UINT32           ulBackoffSlotTime;
-    NV_UINT32           ulModeRegTxReadCompleteEnable;
-    NV_UINT32           ulFatalErrorRegister;
-
-} CMNDATA_OS_ADAPTER;
-
-
-//////////////////////////////////////////////////////////////////
-// The functional typedefs for the ADAPTER Api
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_CLOSE)  (PNV_VOID pvContext, NV_UINT8 ucIsPowerDown);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_INIT)  (PNV_VOID pvContext, NV_UINT16 usForcedSpeed, NV_UINT8 ucForceDpx, NV_UINT8 ucForceMode, NV_UINT8 ucAsyncMode, NV_UINT32 *puiLinkState);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_DEINIT)  (PNV_VOID pvContext, NV_UINT8 ucIsPowerDown);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_START)  (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_STOP)   (PNV_VOID pvContext, NV_UINT8 ucIsPowerDown);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_QUERY_WRITE_SLOTS) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_WRITE) (PNV_VOID pvContext, ADAPTER_WRITE_DATA *pADWriteData);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_WRITE1) (PNV_VOID pvContext, ADAPTER_WRITE_DATA1 *pADWriteData1);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_QUERY_INTERRUPT) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_HANDLE_INTERRUPT) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_DISABLE_INTERRUPTS) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_ENABLE_INTERRUPTS) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_CLEAR_INTERRUPTS) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_CLEAR_TX_DESC) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_LINK_SPEED) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_LINK_MODE) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_LINK_STATE) (PNV_VOID pvContext, NV_UINT32 *pulLinkState);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_IS_LINK_INITIALIZING) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_RESET_PHY_INIT_STATE) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_TRANSMIT_QUEUE_SIZE) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_RECEIVE_QUEUE_SIZE) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_STATISTICS) (PNV_VOID pvContext, PADAPTER_STATS pADStats);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_POWER_CAPS) (PNV_VOID pvContext, PADAPTER_POWERCAPS pADPowerCaps);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_POWER_STATE) (PNV_VOID pvContext, PADAPTER_POWERSTATE pADPowerState);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_SET_POWER_STATE) (PNV_VOID pvContext, PADAPTER_POWERSTATE pADPowerState);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_SET_LOW_SPEED_FOR_PM) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_PACKET_FILTER_CAPS) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_SET_PACKET_FILTER) (PNV_VOID pvContext, PPACKET_FILTER pPacketFilter);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_SET_WAKE_UP_PATTERN) (PNV_VOID pvContext, NV_SINT32 iPattern, PWAKE_UP_PATTERN pPattern);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_ENABLE_WAKE_UP_PATTERN) (PNV_VOID pvContext, NV_SINT32 iPattern, NV_SINT32 iEnable);
-typedef NV_API_CALL NV_SINT32 (* PFN_SET_NODE_ADDRESS) (PNV_VOID pvContext, NV_UINT8 *pNodeAddress);
-typedef NV_API_CALL NV_SINT32 (* PFN_GET_NODE_ADDRESS) (PNV_VOID pvContext, NV_UINT8 *pNodeAddress);
-typedef NV_API_CALL NV_SINT32 (* PFN_GET_ADAPTER_INFO) (PNV_VOID pvContext, PNV_VOID pVoidPtr, NV_SINT32 iType, NV_SINT32 *piLength);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_READ_PHY)  (PNV_VOID pvContext, NV_UINT32 ulPhyAddr, NV_UINT32 ulPhyReg, NV_UINT32 *pulValue);
-typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_WRITE_PHY) (PNV_VOID pvContext, NV_UINT32 ulPhyAddr, NV_UINT32 ulPhyReg, NV_UINT32 ulValue);
-typedef NV_API_CALL NV_VOID(* PFN_ADAPTER_SET_SPPED_DUPLEX) (PNV_VOID pvContext);
-typedef NV_API_CALL NV_SINT32 (*PFN_REGISTER_OFFLOAD) (PNV_VOID pvContext,  PADAPTER_OFFLOAD pOffload);
-typedef NV_API_CALL NV_SINT32 (*PFN_DEREGISTER_OFFLOAD) (PNV_VOID pvContext, PADAPTER_OFFLOAD pOffload);
-typedef NV_API_CALL NV_SINT32 (*PFN_RX_BUFF_READY) (PNV_VOID pvContext, PMEMORY_BLOCK pMemBlock, PNV_VOID pvID);
-
-#ifndef linux
-typedef NV_SINT32 (*PFN_ADAPTER_ASF_SETUPREGISTERS) (PNV_VOID pvContext, NV_SINT32 bInitTime);
-typedef NV_SINT32 (*PFN_ADAPTER_ASF_GETSEC0BASEADDRESS) (PNV_VOID pvContext, ASF_SEC0_BASE **ppsSec0Base);
-typedef NV_SINT32 (*PFN_ADAPTER_ASF_SETSOURCEIPADDRESS) (PNV_VOID pvContext, NV_UINT8 *pucSrcIPAddress);
-typedef NV_SINT32 (*PFN_ADAPTER_ASF_GETDESTIPADDRESS) (PNV_VOID pvContext, NV_UINT8 *pucDestIPAddress);
-typedef NV_SINT32 (*PFN_ADAPTER_ASF_SETDESTIPADDRESS) (PNV_VOID pvContext, NV_UINT8 *pucDestIPAddress);
-typedef NV_SINT32 (*PFN_ADAPTER_ASF_WRITEEEPROMANDSETUPREGISTERS) (PNV_VOID pvContext, NV_BOOLEAN bCompare, PNV_VOID pucValue, PNV_VOID pszSec0BaseMember, 
-                                      NV_UINT16 usCount, NV_UINT32 ulAddressOffset);
-
-typedef NV_SINT32 (*PFN_ADAPTER_ASF_ISASFREADY) (PNV_VOID pvContext, ASF_ASFREADY *psASFReady);
-
-typedef NV_SINT32 (*PFN_ADAPTER_ASF_SETDESTMACADDRESS) (PNV_VOID pvContext, NV_UINT8 *pucDestMACAddress);
-typedef NV_SINT32 (*PFN_ADAPTER_ASF_GETSOURCEMACADDRESS) (PNV_VOID pvContext, NV_UINT8 *pucSrcMACAddress);
-
-typedef NV_SINT32 (*PFN_ADAPTER_ASF_CHECK_FOR_EEPROM_PRESENCE)  (PNV_VOID pvContext);
-#endif
-
-typedef NV_API_CALL NV_VOID (*PFN_ADAPTER_SET_COMMONDATA) (PNV_VOID pvContext, CMNDATA_OS_ADAPTER *psOSAdpater);
-typedef NV_API_CALL NV_VOID (*PFN_ADAPTER_SET_CHECKSUMOFFLOAD) (PNV_VOID pvContext, NV_UINT32 bSet);
-
-
-typedef struct  _ADAPTER_API
-{
-    // The adapter context
-    PNV_VOID                                   pADCX;
-
-    // The adapter interface
-    PFN_ADAPTER_CLOSE                       pfnClose;
-    PFN_ADAPTER_INIT                        pfnInit;
-    PFN_ADAPTER_DEINIT                      pfnDeinit;
-    PFN_ADAPTER_START                       pfnStart;
-    PFN_ADAPTER_STOP                        pfnStop;
-    PFN_ADAPTER_QUERY_WRITE_SLOTS           pfnQueryWriteSlots;
-    PFN_ADAPTER_WRITE                       pfnWrite;
-    PFN_ADAPTER_WRITE1                      pfnWrite1;
-    PFN_ADAPTER_QUERY_INTERRUPT             pfnQueryInterrupt;
-    PFN_ADAPTER_HANDLE_INTERRUPT            pfnHandleInterrupt;
-    PFN_ADAPTER_DISABLE_INTERRUPTS          pfnDisableInterrupts;
-    PFN_ADAPTER_ENABLE_INTERRUPTS           pfnEnableInterrupts;
-    PFN_ADAPTER_CLEAR_INTERRUPTS            pfnClearInterrupts;
-    PFN_ADAPTER_CLEAR_TX_DESC                pfnClearTxDesc;
-    PFN_ADAPTER_GET_LINK_SPEED              pfnGetLinkSpeed;
-    PFN_ADAPTER_GET_LINK_MODE               pfnGetLinkMode;
-    PFN_ADAPTER_GET_LINK_STATE              pfnGetLinkState;
-    PFN_ADAPTER_IS_LINK_INITIALIZING        pfnIsLinkInitializing;
-    PFN_ADAPTER_RESET_PHY_INIT_STATE        pfnResetPhyInitState;
-    PFN_ADAPTER_GET_TRANSMIT_QUEUE_SIZE     pfnGetTransmitQueueSize;
-    PFN_ADAPTER_GET_RECEIVE_QUEUE_SIZE      pfnGetReceiveQueueSize;
-    PFN_ADAPTER_GET_STATISTICS              pfnGetStatistics;
-    PFN_ADAPTER_GET_POWER_CAPS              pfnGetPowerCaps;
-    PFN_ADAPTER_GET_POWER_STATE             pfnGetPowerState;
-    PFN_ADAPTER_SET_POWER_STATE             pfnSetPowerState;
-    PFN_ADAPTER_SET_LOW_SPEED_FOR_PM        pfnSetLowSpeedForPM;
-    PFN_ADAPTER_GET_PACKET_FILTER_CAPS      pfnGetPacketFilterCaps;
-    PFN_ADAPTER_SET_PACKET_FILTER           pfnSetPacketFilter;
-    PFN_ADAPTER_SET_WAKE_UP_PATTERN         pfnSetWakeUpPattern;
-    PFN_ADAPTER_ENABLE_WAKE_UP_PATTERN      pfnEnableWakeUpPattern;
-    PFN_SET_NODE_ADDRESS                    pfnSetNodeAddress;
-    PFN_GET_NODE_ADDRESS                    pfnGetNodeAddress;
-    PFN_GET_ADAPTER_INFO                    pfnGetAdapterInfo;
-    PFN_ADAPTER_SET_SPPED_DUPLEX            pfnSetSpeedDuplex;
-    PFN_ADAPTER_READ_PHY                    pfnReadPhy;
-    PFN_ADAPTER_WRITE_PHY                    pfnWritePhy;
-    PFN_REGISTER_OFFLOAD                    pfnRegisterOffload;
-    PFN_DEREGISTER_OFFLOAD                    pfnDeRegisterOffload;
-    PFN_RX_BUFF_READY                        pfnRxBuffReady;
-#ifndef linux
-    PFN_ADAPTER_ASF_SETUPREGISTERS          pfnASFSetupRegisters;
-    PFN_ADAPTER_ASF_GETSEC0BASEADDRESS      pfnASFGetSec0BaseAddress;
-    PFN_ADAPTER_ASF_SETSOURCEIPADDRESS      pfnASFSetSourceIPAddress;
-    PFN_ADAPTER_ASF_GETDESTIPADDRESS        pfnASFGetDestIPAddress;
-    PFN_ADAPTER_ASF_SETDESTIPADDRESS        pfnASFSetDestIPAddress;
-    PFN_ADAPTER_ASF_WRITEEEPROMANDSETUPREGISTERS pfnASFWriteEEPROMAndSetupRegisters;
-    PFN_ADAPTER_ASF_SETDESTMACADDRESS       pfnASFSetDestMACAddress;
-    PFN_ADAPTER_ASF_GETSOURCEMACADDRESS     pfnASFGetSourceMACAddress;
-    PFN_ADAPTER_ASF_ISASFREADY              pfnASFIsASFReady;
-    PFN_ADAPTER_ASF_CHECK_FOR_EEPROM_PRESENCE pfnASFCheckForEepromPresence;
-#endif
-    PFN_ADAPTER_SET_COMMONDATA              pfnSetCommonData;
-
-    PFN_ADAPTER_SET_CHECKSUMOFFLOAD         pfnSetChecksumOffload;
-
-}   ADAPTER_API, *PADAPTER_API;
-//////////////////////////////////////////////////////////////////
-
-#define MAX_PACKET_TO_ACCUMULATE    16
-
-typedef struct _ADAPTER_OPEN_PARAMS
-{
-    PNV_VOID pOSApi; //pointer to OSAPI structure passed from higher layer
-    PNV_VOID pvHardwareBaseAddress; //memory mapped address passed from higher layer
-    NV_UINT32 ulPollInterval; //poll interval in micro seconds. Used in polling mode
-    NV_UINT32 MaxDpcLoop; //Maximum number of times we loop to in function ADAPTER_HandleInterrupt
-    NV_UINT32 MaxRxPkt; //Maximum number of packet we process each time in function UpdateReceiveDescRingData
-    NV_UINT32 MaxTxPkt; //Maximum number of packet we process each time in function UpdateTransmitDescRingData
-    NV_UINT32 MaxRxPktToAccumulate; //maximum number of rx packet we accumulate in UpdateReceiveDescRingData before
-                                //indicating packets to OS.
-    NV_UINT32 SentPacketStatusSuccess; //Status returned from adapter layer to higher layer when packet was sent successfully
-    NV_UINT32 SentPacketStatusFailure; ////Status returned from adapter layer to higher layer when packet send was unsuccessful
-    NV_UINT32 SetForcedModeEveryNthRxPacket; //NOT USED: For experiment with descriptor based interrupt
-    NV_UINT32 SetForcedModeEveryNthTxPacket; //NOT USED: For experiment with descriptor based interrupt
-    NV_UINT32 RxForcedInterrupt; //NOT USED: For experiment with descriptor based interrupt
-    NV_UINT32 TxForcedInterrupt; //NOT USED: For experiment with descriptor based interrupt
-    NV_UINT32 DeviceId; //Of MAC
-    NV_UINT32 DeviceType;
-    NV_UINT32 PollIntervalInusForThroughputMode; //Of MAC
-    NV_UINT32 bASFEnabled;
-    NV_UINT32 ulDescriptorVersion;
-    NV_UINT32 ulMaxPacketSize;
-
-
-#define MEDIA_IF_AUTO       0
-#define MEDIA_IF_RGMII      1
-#define MEDIA_IF_MII        2
-    NV_UINT32 ulMediaIF;
-
-       NV_UINT32       PhyPowerIsolationTimeoutInms;
-       NV_UINT32       PhyResetTimeoutInms;
-       NV_UINT32       PhyAutonegotiateTimeoutInms;
-       NV_UINT32       PhyLinkupTimeoutInms;
-       NV_UINT32       PhyRdWrTimeoutInus;
-       NV_UINT32       PhyPowerdownOnClose;
-
-    // Added for Bug 100715
-    NV_UINT32   bDisableMIIInterruptAndReadPhyStatus;
-
-}ADAPTER_OPEN_PARAMS, *PADAPTER_OPEN_PARAMS;
-
-//////////////////////////////////////////////////////////////////
-// This is the one function in the adapter interface that is publicly
-// available. The rest of the interface is returned in the pAdapterApi.
-// The first argument needs to be cast to a OSAPI structure pointer.
-// The second argument should be cast to a ADPATER_API structure pointer.
-NV_API_CALL NV_SINT32 ADAPTER_Open (PADAPTER_OPEN_PARAMS pAdapterOpenParams, PNV_VOID *pvpAdapterApi, NV_UINT32 *pulPhyAddr);
-
-//////////////////////////////////////////////////////////////////
-
-
-
-//////////////////////////////////////////////////////////////////
-// Here are the error codes the adapter function calls return.
-#define ADAPTERERR_NONE                             0x0000
-#define ADAPTERERR_COULD_NOT_ALLOC_CONTEXT          0x0001
-#define ADAPTERERR_COULD_NOT_CREATE_CONTEXT         0x0002
-#define ADAPTERERR_COULD_NOT_OPEN_PHY               0x0003
-#define ADAPTERERR_TRANSMIT_QUEUE_FULL              0x0004
-#define ADAPTERERR_COULD_NOT_INIT_PHY               0x0005
-#define ADAPTERERR_PHYS_SIZE_SMALL                    0x0006
-#define ADAPTERERR_ERROR                            0x0007  // Generic error
-//////////////////////////////////////////////////////////////////
-
-// This block moved from myadap.h
-// nFlag for Stop/Start ReceiverAndOrTransmitter can be an OR of
-// the following two flags
-#define AFFECT_RECEIVER     0x01
-#define AFFECT_TRANSMITTER  0x02
-
-#define REDUCE_LENGTH_BY 48
-
-#define EXTRA_WRITE_SLOT_TO_REDUCE_PER_SEND    4
-#define MAX_TX_DESCS                    256 
-#define MAX_TX_DESCS_VER2               (256 * 4)
-
-typedef struct _TX_INFO_ADAP
-{
-    NV_UINT32   NoOfDesc; 
-    PNV_VOID    pvVar2; 
-}TX_INFO_ADAP, *PTX_INFO_ADAP;
-
-#define WORKAROUND_FOR_MCP3_TX_STALL
-
-#ifdef WORKAROUND_FOR_MCP3_TX_STALL
-NV_SINT32 ADAPTER_WorkaroundTXHang(PNV_VOID pvContext);
-#endif
-
-//#define TRACK_INIT_TIME
-
-#ifdef TRACK_INIT_TIME
-//This routine is defined in entry.c adapter doesn't link int64.lib
-//We defined here so that its easy to use it in phy as well as mswin
-
-#define MAX_PRINT_INDEX        32
-extern NV_VOID PrintTime(NV_UINT32 ulIndex);
-#define PRINT_INIT_TIME(_a) PrintTime((_a))
-#else
-#define PRINT_INIT_TIME(_a)
-#endif
-
-// Segmentation offload info
-#define DEVCAPS_SEGOL_BP_ENABLE       0   
-#define DEVCAPS_SEGOL_BP_IPOPTIONS    1
-#define DEVCAPS_SEGOL_BP_TCPOPTIONS   2
-#define DEVCAPS_SEGOL_BP_SEGSIZE_LO   8
-#define DEVCAPS_SEGOL_BP_SEGSIZE_HI   31
-
-
-// Checksum offload info
-// Byte 0 : V4 TX
-#define DEVCAPS_V4_TX_BP_IPOPTIONS      0
-#define DEVCAPS_V4_TX_BP_TCPOPTIONS     1
-#define DEVCAPS_V4_TX_BP_TCPCHECKSUM    2
-#define DEVCAPS_V4_TX_BP_UDPCHECKSUM    3
-#define DEVCAPS_V4_TX_BP_IPCHECKSUM     4
-
-// Byte 0 : V4 RX
-#define DEVCAPS_V4_RX_BP_IPOPTIONS      8
-#define DEVCAPS_V4_RX_BP_TCPOPTIONS     9
-#define DEVCAPS_V4_RX_BP_TCPCHECKSUM    10
-#define DEVCAPS_V4_RX_BP_UDPCHECKSUM    11
-#define DEVCAPS_V4_RX_BP_IPCHECKSUM     12
-
-// Byte 1 : V6 TX
-#define DEVCAPS_V6_TX_BP_IPOPTIONS      16
-#define DEVCAPS_V6_TX_BP_TCPOPTIONS     17
-#define DEVCAPS_V6_TX_BP_TCPCHECKSUM    18
-#define DEVCAPS_V6_TX_BP_UDPCHECKSUM    19
-
-// Byte 2 : V6 RX
-#define DEVCAPS_V6_RX_BP_IPOPTIONS      24
-#define DEVCAPS_V6_RX_BP_TCPOPTIONS     25
-#define DEVCAPS_V6_RX_BP_TCPCHECKSUM    26
-#define DEVCAPS_V6_RX_BP_UDPCHECKSUM    27
-
-
-#define DESCR_VER_1         1       // MCP1, MCP2 and CK8 descriptor version
-#define DESCR_VER_2         2       // The decsriptor structure for CK8G
-
-// Get device and vendor IDs from 32 bit DeviceVendorID 
-#define GET_DEVICEID(x)   (((x) >> 16) & 0xFFFF)
-#define GET_VENDORID(x)   ((x) & 0xFFFF)
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // _ADAPTER_H_
diff --git a/sys/contrib/dev/nv/amd64/nvenetlib.o.uu b/sys/contrib/dev/nv/amd64/nvenetlib.o.uu
deleted file mode 100644 (file)
index 1a7a43e..0000000
+++ /dev/null
@@ -1,1013 +0,0 @@
-begin 644 nvenetlib.o
-M?T5,1@(!`0````````````$`/@`!`````````````````````````*B`````
-M`````````$```````$``#@`+`$%628G6055)B?5!5%5(B?U32(/L($R+)TC'
-M!@````#'1"00F!@``$C'1"0(`````$B)YDF+/"1!_U0D"+H!````2(7`#X3F
-M"```2(L<)$B)6PA(BT0D"$B)0Q!(BT0D$$B)0QB+14R)@VP8``"+152)@W08
-M``"+112%P(F#-!@``'4*QX,T&```!0```(M%&(7`B8,X&```=1Z+BVP8``"Z
-M0````+B`````@_D!#T70B9,X&```ZP:+BVP8``"+11R%P(F#/!@``'46N@`!
-M``"#^0&X``0```]%T(F3/!@``(M%)(F#1!@``(M%*(F#2!@``(M%((7`B8-`
-M&```=0K'@T`8```'````BT40BU4LB8,P&```B9-,&```BT4PB8-0&```BT4T
-MA<")@U08``!T#H72=0K'@TP8```'````BT4XA<")@U@8``!T%(N[4!@``(7_
-M=0K'@U`8```'````BT4\A<")@UP8``!U%L>#7!@``,,!``#'@V`8```!````
-MZR8]A@```'05/8P```!T#CWF````=`<]WP```'4*QX-@&````@```(M%1(7`
-MB8-D&```=0K'@V08``#T`0``BT5(_\F)@V@8``"+15")@W`8``"+17!,B:.@
-M`0``B8.0&```2(M%"$C'0U``````2,=#*`````!(QT,P`````$C'0S@`````
-M2,=#0`````!(QT-(`````$B)`W4HB[,P&```2,?"`````$C'P`````!(QT-8
-M`````$C'0V``````A?;K)HN+,!@``$C'0U@`````2,=#8`````!(Q\(`````
-M2,?``````(7)2`]%T$C'0V@`````2,=#>`````!(C4,@2(E3<#'V2(V30`8`
-M`$C'@X``````````2,>#B`````````!(QX.0`````````$C'@Y@`````````
-M2,>#H`````````!(QX.H`````````$C'@[``````````2,>#N`````````!(
-MQX/``````````$C'@\@`````````2,>#T`````````!(QX/8`````````$C'
-M@^``````````2,>#Z`````````!(QX/P`````````$C'@_@`````````2,>#
-M``$```````!(QX,(`0```````$C'@Q`!````````2,>#&`$```````!(QX,@
-M`0```````$C'@R@!````````2,>#,`$```````!(QX,X`0```````$C'@T`!
-M````````2,>#2`$```````!(QX-0`0```````$C'@U@!````````2,>#8`$`
-M``````!(QX-H`0```````$B)6R!)B44`28L\)$'_E"2@````N@(```!(A<`/
-MA#,%``"+@W`8``#'@Z@6````````QX,,!@``9````(F#``8``(/`,(&[7!@`
-M`,,!``")@Z`6``!U)HN+;!@``,>#T`,```````#'@Q`&``!?````QX,4!@``
-M9P```.LPBXML&```N@`!``"X````0,>#$`8``$<!``#'@Q0&``!G````@_D!
-M#T70B9/0`P``BX.0&```A<!T%3'2#[?"_\*#I(,,!@``OV:#^@)V[8N#,!@`
-M`(7`=3:+@V08``"ZB8B(B,>#"`8```(```!IP-P%``")P$@/K\)(P>@@P>@-
-MB8,@!@``BX,4!@``ZRYIP-P%``"ZB8B(B,>#"`8```````")P$@/K\)(P>@@
-MP>@-B8,@!@``BX,,!@``B8,8!@``_\FZ``0``+@``0``#T7"2,>#4`,```$`
-M``!FQX-<`P```@")@SP#``!FQX->`P``0`!(C;-(`P``B<!(P>`#B8-8`P``
-M28L\)$'_5"08N@(```!(A<`/A+D#``"+DSP#``!(BXM(`P``2,>#F`,`````
-M``!(C;.0`P``2(F+>`,``(U"_TC!X@-(C03!B9.@`P``2(F#@`,``$F+/"1!
-M_U0D"+H"````2(7`#X1D`P``BY,\`P``2(N+D`,``$C'@X`6```!````2(VS
-M>!8``(U"_TB)BZ@#``!(B8NP`P``C1250````$B-!,&)DX@6``!(B8.X`P``
-M28L\)$'_5"0(N@(```!(A<`/A`4#``!(BY-X%@``,>V)Z/_%@_T/QP2"````
-M`';PBX,\`P``,>TYQ7,BC02M`````/_%B<!(`X-X%@``9L=`0($`BX,\`P``
-M.<5RWC'MZP:+@SP#``")[HG`2(TT=DC!X`-(P>8$2`'>2(V6P`$``$C'AL`!
-M```!````2('&N`$``(E""&;'0@P"`&;'0@Y``$F+/"1!_U0D&+H"````2(7`
-M#X1B`@``_\6#_0=VH8N#H!8``$C'@Q@%```!````2(VS$`4``(F#(`4``$F+
-M/"1!_U0D"+H"````2(7`#X0F`@``@[ML&````;J`````N$````!(QX.P!```
-M`0```&;'@[P$```"`&;'@[X$``!``$B-LZ@$```/1<*)@Z`$``")P$C!X`.)
-M@[@$``!)BSPD0?]4)!BZ`@```$B%P`^$Q0$``(N+H`0``$B+DZ@$```Q[8U!
-M_SG-2(F3V`0``$B-!,)(B8/@!```<QY(BY/8!```BX,8!0``B>G_Q8D$RHN+
-MH`0``#G-<N*)R$C'@_@$````````2(VS\`0``$C!X`.)@P`%``!)BSPD0?]4
-M)`BZ`@```$B%P`^$2@$``(N3``4``$B+L_`$```Q[4F+/"1!_U0D*$B+L_`$
-M``"+DP`%``!(B;,(!0``28L\)$'_5"0H.ZN@!```<Q](BX/8!```B>Y(B=__
-MQ4B--/#H`````#NKH`0``'+ABX-X&```QX,X!@````@``$B)FW`!``!(QX-X
-M`0```````$C'@X`!````````QX.(`0``,@```,>#C`$``#(```#'@Y`!``"X
-M"P``QX.4`0``8`D``(7`QX.8`0``]`$``'0&B8.(`0``BX-\&```A<!T!HF#
-MC`$``(N#@!@``(7`=`:)@Y`!``"+@X08``"%P'0&B8.4`0``BX.,&```A<!T
-M!HF#F`$``$B-@W`!``!(C9-(!@``2(V+-`8``$B)@Z@!``!(C;.H`0``3(GG
-MZ`````"Z!0```$B%P'40BX-(!@``,=)!B09F9I!FD$B#Q"!(B=!;74%<05U!
-M7L-!54%454B)_5-(@^P(2(7_#X15`@``0`^V]DR+KZ`!``#H`````$B+A:@!
-M``!(A<!T$4B+./]0($C'A:@!````````2(N%V`0``$B%P'1113'D1#NEH`0`
-M`'-%ZP=(BX78!```1(GC2(GO0?_$2(TTV.@`````2(N%V`0``&;'1-@&``!(
-MBX78!```9L=$V`0``$0[I:`$``!RPF9FD&:02(.]\`0```!T)DB-M?`$``!)
-MBWT`0?]5$$C'A?`$````````2,>%"`4```````"02(.]J`0```!T.TB-M:@$
-M``!)BWT`0?]5($C'A:@$````````2,>%V`0```````!(QX7@!````````$C'
-MA>@$````````2(.]$`4```!T(4B-M1`%``!)BWT`0?]5$$C'A1`%````````
-M9F9FD&9FD$B#O9`#````=%9(C;60`P``28M]`$'_51!(QX60`P```````$C'
-MA:@#````````2,>%L`,```````!(QX6X`P```````$C'A<`#````````2,>%
-MR`,```````!F9I!FD$B#O4@#````=#M(C;5(`P``28M]`$'_52!(QX5(`P``
-M`````$C'A7@#````````2,>%@`,```````!(QX6(`P```````$B#O7@6````
-M="%(C;5X%@``28M]`$'_51!(QX5X%@```````&9F9I!F9I!%,>1$B>!(C01`
-M2,'@!$B-7`4`2(.[N`$```!(C;.X`0``=!-)BWT`0?]5($C'@[@!````````
-M0?_$08/\!W;#2(N%H`$``,>%.`,```````!(C74(2(LX_U`02(/$"#'`6UU!
-M7$%=P\-F9I`QP,.02(/L"+X`*`"`O_@,``#H`````+_\#```Z``````]WA#6
-M`'4QOFC``("_^`P``.@`````OFC``("_^`P``.@`````OMX8U@"__`P``$B#
-MQ`CI`````$B#Q`C#9I!(@^P8O@`H`(!(B6PD$$B)7"0(2(G]O_@,``#H````
-M`+_\#```Z`````"_^`P``+YHP`"`B</H`````$B%[70%B5T`ZP_'!"4`````
-M`````&9F9I")V$B+;"002(M<)`C!Z`M(@\08@^`!PY!!5[@#````08G7059-
-MB<Y!54%455-(B?M(@^P89HET)!*(3"011(A$)!"+KV@8``!,BZ^@`0``3(LG
-MA>UT!;@!````#[;P2(G?Z`````"+BW08``"%R70B08N$),`````E____[XG"
-M@<H````0_\D/1,)!B80DP````$''A"2(`0```````$F+?0!(B[-X`P``BY-8
-M`P``0?]5*$F+?0"ZR````$B-L]@#``!!_U4H28M]`$B-LR@%``"ZV````$'_
-M52A(C;-0!@``NB@```!)BWT`0?]5*(.[;!@```%U;3'M.ZN@!```#X/7````
-M2(NSV`0``(GI9H-\S@8`>"9(BX,(!0``2,<$R`````"+@Q@%``!(BY/8!```
-MB03*2(NSV`0```^W@P`&``#_Q?_(9HE$S@1(BX/8!```9L=$R`8`@#NKH`0`
-M`'*CZW@Q[3NKH`0``'-ND$B+L]@$``")Z42+7,X$187;>"9(BX,(!0``2,<$
-MR`````"+@Q@%``!(BY/8!```B03*2(NSV`0```^WDP`&``"+1,X$_\4E`,#_
-M___*#[?2"=")1,X$2(N#V`0``(%,R`0```"`.ZN@!```<I-(BX/8!```2(F#
-MZ`0``$B+@[`#``!(B8/``P``2(F#R`,``$B+@W@#``!(B8.(`P``BX,\`P``
-MB8-``P``0<>$)!`!````````0<>$)`P!````````0<>$)$0!```4````BX-<
-M&```/88```!T9#V&````=Q2#^#=R,H/X.'93@^A6@_@!=R7K23W?````=$(]
-MWP```'<'/8P```#K##WF````="T]PP$``'0F08N$)*@```")1"0,08N$)*P`
-M``")1"0(08ML)#1`@,W_08EL)#2^!````$F+?0!!_U4PBX-<&```/88```!T
-M<3V&````=Q2#^#=R,H/X.'9@@^A6@_@!=R7K5CW?````=$\]WP```'<'/8P`
-M``#K##WF````=#H]PP$``'0S08ML)#2^!````$"`Y0!!B6PD-$F+?0!!_U4P
-MBT0D#$&)A"2H````BT0D"$&)A"2L````0<>$)$0!```$````0<>$)+``````
-M````0<>$)+0`````````0<>$)+@```#_____0<>$)+P```#__P``0<=$)`@`
-M````BX-0`P``08F$)``!``"+@[`$``!!B80D!`$``(N#H`0``(N3/`,``/_(
-M_\K!X!"!XO\#```E``#_`PG"08F4)`@!``!!QX0D$`$```H``0"#NVP8```!
-M=0Y!QX0D/`$``!``(`#K&XN#&!@``(7`=`5!B40D$$''A"0\`0``((#@`4''
-MA"1$`0```````(N#I!8``(/(`D&)A"1$`0``@[ML&````74S08N$)#`!```Q
-M[87`>%N^!0```$F+?0#_Q4'_53!!BX0D,`$``(7`>$"!_0\G``!VW>LV08N$
-M)#`!```Q[87`>"B^!0```$F+?0#_Q4'_53!!BX0D,`$``(7`>`V!_0\G``!V
-MW69FD&:00<>$)(0!````````0<>$)(`!```?````0<<$)/\!``!!BX0DC`$`
-M`"7_````:<``D`$`B<!(:<#336(02,'H(,'H!L'@`HF#.`8``$&+K"3`````
-M@>4````0=!&]`@```,>#'!@``.@#``#K#[T!````QX,<&```9````$B+@Z@!
-M```/MDPD$4$/MM</MW0D$DB+./]04(!\)!``=2)(BX.H`0``B>I,B?9(BSC_
-M4`A(A<!T*[H%````2(/X#.L:2(N#J`$``(GJ3(GV2(LX_U`0N@4```!(A<`/
-MA>8#``!!QX0D@````#X/.P!!BX0DB````$&)A"2(````0<>$)(P````H`'\`
-M2(.[D!8```"+@P`&``"-4`1T#8/`"$&)A"20````ZPA!B90DD````$&+A"28
-M````1(GBP>H(08F$))@```!$B>#!Z!`QPHG8P>@(,<*)V,'H$##0=06X"```
-M`(.[;!@```%U%`^VP(#,?T&)A"2<````ZQ!F9F:00<>$))P````(?P``0<>$
-M)*`````/!Q8`0<>$)*0````6````1(N3,!@``$6%TG42BX,4!@``QX,(!@``
-M`@```.L0BX,,!@``QX,(!@```````(F#&`8``(N#(`8``,>#)`8```````!(
-MB=]!B40D#$''1"0(`P```(N#2`8``,'@&"4````?#0``!`!!B80DB`$``.@`
-M````2(7`=15!BX0DB`$```T``!``08F$)(@!``!!QX0DC`$```4!``!!QX0D
-MA`$```@```!!QX0D``(``'!W``!!BX0D;`(``&:%P'D308N$)&P"``"`S(!!
-MB80D;`(``$''A"2``0``'P```$2+BY`8``!%A<EU"D''!"3_`0``ZPA!QP0D
-MOP$``$&+A"1L`@``@,P!387V08F$)&P"```/A,X```!%BP9%A<`/A,(```!(
-MBX.H`0``@XLH!@``!$B+./]0,(/X`HF#,`8``'4308N$)(````"#X/U!B80D
-M@````$B+@Z@!``!(BSC_4"B)@RP&``!!BY0DP````$&+C"2<````]\(````0
-M#X2#````@^+\/0#A]05U#H'A_P#\_X/*`8#-+>LE/8"6F`!U"X'A_P#\_X#-
-M=.L3/0#*FCMU#('A_P#\_X/*`H#-?XG0@.;^@,P!@[LP!@```@]$PD&)A"3`
-M````08F,))P```#K(H!\)!``=!N#HR@&``#[QX,L!@``_____\>#,`8``/__
-M__^#NV`8```"08N$)$0!``")@Z@6```/A?P```!!BX0DE`(``(E$)!1!BX0D
-MF`(``(E$)!1!BX0DD`(``(E$)!1!BX0DH`(``(E$)!1!BX0DG`(``(E$)!1!
-MBX0DA`(``(E$)!1!BX0DB`(``(E$)!1!BX0DC`(``(E$)!1!BX0D@`(``(E$
-M)!1!BX0DO`(``(E$)!1!BX0DI`(``(E$)!1!BX0DN`(``(E$)!1!BX0DK`(`
-M`(E$)!1!BX0DL`(``(E$)!1!BX0DQ`(``(E$)!1!BX0DJ`(``(E$)!1!BX0D
-MM`(``(E$)!1!BX0DP`(``(E$)!1!BX0DR`(``(E$)!1!BX0DS`(``(E$)!1!
-MBX0DT`(``(E$)!0QTDB#Q!A(B=!;74%<05U!7D%?PT%6055!5%53BX<X`P``
-M3(NOH`$``$B)^TR+)TB)PO_`@^('B8<X`P``2(T44DC!X@1(C10Z28M]`$B+
-MJK@!``!,C;*X`0``08M6$$B)[D'_52B+DV@8``"X`P```(72=`6X`0````^V
-M\$B)W^@`````0<>$)(@```#_____2(NSP`,``$@[L\@#```/A)P```!F9F:0
-M9F:02(L61(L"2(M*"$J-1,4`387`2(UX^$B)Q4B)>@A^4I"+`8D'@[ML&```
-M`746#[=!!&:)1P0/MT$&9@T`@&:)1P;K"XM!!`T```"`B4<$2(G(2(/I"$@[
-M@W@#``!U!TB+BX`#``!)_\A(@^\(387`?Z](B?!(@\8(2#N#N`,``'4'2(NS
-ML`,``$@[L\@#```/A6O___])BP9(BY-(`P``O@0```!(B8-(`P``28M&"$F)
-M%DB+DU`#``!(B8-0`P``28E6"$B)JX@#``"+@SP#``!(BY-(`P``_\A(C03"
-M2(F3>`,``$B)@X`#``!(BX/8!```2(F#Z`0``$''A"00`0```````$''A"0,
-M`0```````(N#I!8``(/(`D&)A"1$`0``28M]`$'_53!!QX0D1`$```0```!!
-MQT0D"`````"+@U`#``!!B80D``$``(N#L`0``$&)A"0$`0``BX.@!```BY,\
-M`P``_\C_RL'@$('B_P,``"4``/\#"<)!B90D"`$``$''A"1$`0```````(N#
-MI!8``(/(`D&)A"1$`0``@[ML&````74S08N$)#`!```Q[87`>%:^!0```$F+
-M?0#_Q4'_53!!BX0D,`$``(7`>#N!_0\G``!VW>LQ08N$)#`!```Q[87`>".^
-M!0```$F+?0#_Q4'_53!!BX0D,`$``(7`>`B!_0\G``!VW4B)W^@`````BX.D
-M%@``@\@!08F$)$0!```QP%M=05Q!74%>PV:02(7_4TB)^W010`^V]N@`````
-M2(G?Z`````!;,<##9I!54TB)^TB#[`A(A?]T8TB+E\`#``!(BZ^@`0``2#N7
-MR`,``'1,9F9FD&9FD$@[D[@#``!(C4((2(LR2(F#P`,``'4.2(N#L`,``$B)
-M@\`#``"+DT@8``!(BWT`_U5(2(N#P`,``$@[@\@#``!(B<)UNTB#Q`@QP%M=
-MPV:04TB+%TB)^XN";`(``&:%P'D/BX)L`@``@,R`B8)L`@``BX)L`@``2(G?
-M@,P!B8)L`@``BX*(`0``#0``$`")@H@!``#H`````$B)W[X#````Z``````Q
-MP%O#9I!!5D#VQ@%!B?9!54F)_4%455-,BZ>@`0``2(LO=16+AT@&``#!X!@E
-M````'PT``!0`ZPN+A8@!```E___O_XF%B`$``$R)[S';Z`````!!BX6D%@``
-M@\@$B85$`0``9F:09F:0BX5$`0``J`AU&/_#OC(```!)BSPD0?]4)#"!^P\G
-M``!VWD2)\$R)[P^V\.@`````O@0```!!BX6D%@``@\@4B85$`0``28L\)$'_
-M5"0P08N%I!8``(/(!(F%1`$``#'`6UU!7$%=05[#9F:02(._D!8```!T"HN'
-M0`,``(/H",.+AT`#``"#Z`7#9I!!5DB#OY`6````28GS055,BS=!5%531`^V
-M;A`/A14!``"+ET`#``"+#K@$````.<H/AET#```IRDR+3@B)ET`#``"+!D&)
-M`8L&2(N/>`,``$B+EX@#``!(*<I(P?H#2(TT$(N7/`,``$B-1O__RD@AT$R-
-M!,%-B4$(BX<\`P``_\A((<9(BX=X`P``2(T$\$B)AX@#``!FQT`&``!(BX?(
-M`P``3(D(2(N7R`,``$@[E[@#``!(C4((2(F'R`,``'432(N'L`,``$B)A\@#
-M``!F9I!FD$&+,T0/MY?0`P``_\Y(B?!F08'*`8!(P>`$3HU,&""008L13(G`
-M08D000^W40AF18E0!D&Z`(#____*9D&)4`1)@^@(2#N'>`,``'4'3(N'@`,`
-M`$F#Z1!(_\YYP^E+`@``1(N'D!8``#';,>U%A<!U#XNWE!8``(7V="1%A.UT
-M'T&#>P0[NP(```!W$XN/F!8``(7)=`G_P[T!````9I!!BP-,BZ>(`P``2(NW
-M>`,``(N//`,```'83(GB*8=``P``08L#2"GR_\E(P?H#`=@!T(U0_R'(2(T$
-MQB'*2(F'B`,``$R-!-9FQT`&``!!BP--BTL(`=A-B4$(08D!2(N'R`,``$R)
-M"$B+E\@#``!(.Y>X`P``2(U""$B)A\@#``!U#DB+A[`#``!(B8?(`P``08LS
-M1`^WE]`#``"Y.P```$'!Y07_SDB)\&9!@<H!@$C!X`1.C4P8(&9F9I!F9I"%
-M[70YBY>`%@``3(G`08D0B<IF02M3!&9%B5`&9D&)4`1)@^@(2#N'>`,``'4'
-M3(N'@`,``$&Z`(#__S'MA=L/A,$```!(A?8/A;@```!!BQ%,B<"#P@Q!B1!!
-M#[=1"&9%B5`&0;H`@/__@^H-9D&)4`1)@^@(2#N'>`,``'4'3(N'@`,``$0K
-MIW@#``"+AYP6``#!Z`A!P>P#@^`/0HT4I0````!!"<6)T4@#CW@6``!(@\%`
-M1(AI`@^VAYP6``"(00,#EX`6``!,B<!F0<=`!`,`9D6)4`:#PD!!B1!)@^@(
-M2#N'>`,``'4'3(N'@`,``$&+`69%B5`&9D''0`0+`$&)`.M'08L13(G`08D0
-M00^W40AF18E0!D&Z`(#____*9D&)4`1)@^@(2#N'>`,``'4-3(N'@`,``&9F
-MD&9FD$F#Z1!(_\X/B;/^__^+AZ06``"#R`%!B89$`0``,<!;74%<05U!7L-!
-M5DB#OY`6````28GS055,BS=!5%531`^V;A`/A6D!``"+ET`#``"+#K@$````
-M.<H/AND#```IRDR+3@B)ET`#``"+!D&)`8L&2(N/>`,``$B+EX@#``!(*<I(
-MP?H#2(TT$(N7/`,``$B-1O__RD@AT$R-!,%-B4$(BX<\`P``_\A((<9(BX=X
-M`P``2(T$\$B)AX@#``"!8`3___\?2(N'R`,``$R)"$B+E\@#``!(.Y>X`P``
-M2(U""$B)A\@#``!U#DB+A[`#``!(B8?(`P``08LS1(N7T`,``/_.08'*````
-MH$B)\$C!X`1.C4P8($&+`3')2(7V08D`=3Y)BT,8BQ#VP@%T$8M(!,'A#H')
-M````$.LE9F:0]L("=!V)T(G1P>H#P>@$P>$6"="!X0````B#X`'!X!H)P4$/
-MMU$(B<@E`,#____*#[?2"=!,B<)$"=!!N@```(!!B4`$28/H"$@[EW@#``!U
-M#DR+AX`#``!F9F:09F:028/I$$C_S@^):O___^F"`@``1(NGD!8``#';,>U%
-MA>1U$42+EY06``!%A=)T)$6$[70?08-[!#N[`@```'<31(N/F!8``$6%R70'
-M_\.]`0```$&+`TR+IX@#``!(B[=X`P``BX\\`P```=A,B>(IAT`#``!!BP-(
-M*?+_R4C!^@,!V`'0C5#_(<A(C03&(<I(B8>(`P``3(T$UH%@!/___Q]!BP--
-MBTL(`=A-B4$(08D!2(N'R`,``$R)"$B+E\@#``!(.Y>X`P``2(U""$B)A\@#
-M``!U#DB+A[`#``!(B8?(`P``08LS1(N7T`,``$'!Y07_SD&!R@```*!(B?!(
-MP>`$3HU,&""%[70]BX>`%@``3(G"08D`N#L```!F02M#!`^WR$0)T4&)2`1)
-M@^@(2#N7>`,``'4(3(N'@`,``)!!N@```(`Q[87;#X2V````2(7V#X6M````
-M08L13(G`@\(,08D000^W40B#Z@T/M\I$"=%!B4@$28/H"$@[AW@#``!U!TR+
-MAX`#``!$*Z=X`P``BX><%@``P>@(0<'L`X/@#T*-%*4`````00G%B=%(`X]X
-M%@``2(/!0$2(:0(/MH><%@``B$$#`Y>`%@``3(G`0<=`!`,``("#PD!!B1!)
-M@^@(2#N'>`,``'4'3(N'@`,``$&+`4''0`0+``"`08D`Z8X```!!BP$QR4B%
-M]D&)`'4]28M#&(L0]L(!=`Z+2`3!X0Z!R0```!#K)/;"`G0?B=")T<'J`\'H
-M!,'A%@G0@>$````(@^`!P>`:"<%FD$$/MU$(B<@E`,#____*#[?2"=!,B<)$
-M"=!!N@```(!!B4`$28/H"$@[EW@#``!U!TR+AX`#``!)@^D02/_.#XES_O__
-M08N&1`$``(/(`4&)AD0!```QP%M=05Q!74%>PTR+3B"+AT`#``!(BW8(3(L7
-M02L!B8=``P``08L!B09!BP%(BX]X`P``2(N7B`,``$@IRDC!^@-,C000BY<\
-M`P``28U`___*2"'02(T,P4B)3@B+ASP#``!,BY^(`P``_\A)(<!(BX=X`P``
-M2HT$P$B)AX@#``!FQT`&``!(BX?(`P``2(DP2(N7R`,``$@[E[@#``!(C4((
-M2(F'R`,``'4/2(N'L`,``$B)A\@#``"018L!#[>WT`,``$'_R$N-!$!F@<X!
-M@$F-5,$09F:09I"#>@@-=C>+`HD!#[=""&:)<0:^`(#____(9HE!!$B)R$B#
-MZ0A(.X=X`P``#X67````2(N/@`,``.F+````2(G(2(/!"$@[AX`#``!U!TB+
-MCW@#``!(.X^(`P``="QF9I!FQT$&``!(B<A(@\$(2#N'@`,``'4*2(N/>`,`
-M`&9FD$@[CX@#``!UUTB+E\@#``!,B9^(`P``08L!`8=``P``2#N7L`,``$B-
-M0OA(B8?(`P``=0Y(BX>X`P``2(F'R`,``+@&````PTB#ZAA)_\@/B2O___\Q
-MP$''@D0!```!````PY!!5(N'0`,``$F)\U5(BR]32(M>($B+=@@K`XF'0`,`
-M`(L#B0:+`TB+CW@#``!(BY>(`P``2"G*2,'Z`TR-#!"+ESP#``!)C4'__\I(
-M(=!,C03!3(E&"(N'/`,``$R+IX@#``#_R$DAP4B+AW@#``!*C03(2(F'B`,`
-M`(%@!/___Q](BX?(`P``2(DP2(N7R`,``$@[E[@#``!(C4((2(F'R`,``'4.
-M2(N'L`,``$B)A\@#``!$BPM$BY?0`P``0?_)08'*````H$N-!$E(C73#$(-^
-M"`T/AI````"+!D&)``^W1@C_R$V%R0^WT'5028M#&(L(]L$!=!:+0`2!XO\_
-M`/#!X`X)PH'*````$.LO]L$"="J)R('B____]\'@%B4````("<*)R,'I`\'H
-M!('B____^PG(@^`!P>`:"<)$"=),B<!!N@```(!!B5`$28/H"$@[AW@#```/
-MA94```!,BX>``P``Z8D```!,B<!)@\`(2#N'@`,``'4'3(N'>`,``$P[AX@#
-M``!T*I!!@6`$____'TR)P$F#P`A(.X>``P``=0A,BX=X`P``D$P[AX@#``!U
-MUTB+E\@#``!,B:>(`P``BP,!AT`#``!(.Y>P`P``2(U"^$B)A\@#``!U#DB+
-MA[@#``!(B8?(`P``N`8```#K'DB#[AA)_\D/B=#^__^+A40!``"#R`&)A40!
-M```QP%M=05S#D(L&@_@"=">#^`)W!O_(=`GK-(/X!'0CZRW'AY`6```!````
-MBT8$B8><%@``ZQ['AY06```!````ZQ+'AY@6```!````ZP:X`@```,,QP,.0
-MBP:#^`)T*H/X`G<(_\AT"^LW9I"#^`1T).LNQX>0%@```````,>'G!8`````
-M``#K(\>'E!8```````#K%\>'F!8```````#K"[@"````PV9FD&:0,<##D$%6
-M2(GR056#X@%)B?5!5(7255-(BZ^@`0``2(L?=`^+@Y0```"#X/Z)@Y0```!!
-M]L4"=`^+@X0```"#X/Z)@X0```#VAR@&```$=0Q$B[<T!@``187V=#U%,>1)
-MB=9%A?9T"HN#F````*@!=1!!]L4"="*+@X@```"H`7080?_$O@H```!(BWT`
-M_U4P08'\3\,``';)OC(```!(BWT`_U4POC(```!(BWT`_U4P0?;%`70*QX,0
-M`0```````$&#Y0)T"L>##`$```````!;74%<05U!7C'`PTB#[!A`]L8"2(EL
-M)!!(B5PD"+WH`P``2(L?=`^+@X0```"#R`&)@X0```"#Y@%T.$B+AZ@!``!(
-MBSC_4"A(/0#A]06X9`````]$Z`^WQ0T```$`B8,0`0``BX.4````@\@!B8.4
-M````2(M<)`A(BVPD$#'`2(/$&,-F9I!(@^P8NC````!(B5PD"$B);"002(G[
-M2(V_[!<``$B)]>@`````@[ML&````G4\QX.D%@````$``(M%*(7`=`K'@Z06
-M````(0``BX/X%P``]L0$=0KVQ!!U!?;$"'0G@8ND%@````0``.L;QX.D%@``
-M`````(M%*(7`=`K'@Z06````(```2(M<)`A(BVPD$$B#Q!C#]\8`!```2(L7
-MB;?\%P``=1/WQ@`(``!U"X'F`!```'089F:0@8^D%@````0``(N"1`$``(#,
-M!.L3@:>D%@``__O__XN"1`$``(#D^XF"1`$``,.0@[]@&````DB+-TB-E]@#
-M``!(C8\H!0``=`:X!P```,.+AI0"``")P$@!0A"+AI@"``")P$@!0B"+AI`"
-M``")P$@!0AB+AJ`"``")P$@!0BB+AIP"``")P$@!0CB+AH0"``")P$@!0D"+
-MAH@"``")P$@!0DB+AHP"``")P$@!0E"+AH`"``")P$@!@L````"+AKP"``")
-MP$@!02B+AJ0"``")P$@!01B+AK@"``")P$@!02"+AJP"``")P$@!04"+AK`"
-M``")P$@!04B+AL0"``")P$@!03"+AJ@"``")P$@!@:````"+AK0"``")P$@!
-M@:@```"+AL`"``")P$@!@;````"+AL@"``")P$@!@;@```"+ALP"``")P$@!
-M@<````"+AM`"``")P$@!@<@````QP,-(@^P(2(N'J`$``$B+./]02$B#Q`C#
-M9I!(@^P(2(N'J`$``$B+./]00$B#Q`C#9I!(@^P(2(N'J`$``$B+./]0.$B#
-MQ`@QP,-(@^P(BX<L!@``2(N/J`$``(G"_\!U#4B+.?]1*$B)PF9F9I!(B=!(
-M@\0(PTB#[`B+AS`&``!(BX^H`0``B<+_P'4)2(LY_U$P2(G"2(G02(/$",.+
-MASP#``##D(N'H`0``,.054B)]5-(B?M(@^P(Z`````"#NV`8```"#X7S````
-M2(N#(`0``$B+D^@%``!(`X,8!```2`.3X`4``$@#@R@$``!(`Y/P!0``2(F#
-MV`,``$B)DR@%``!(BX/X`P``2`.#Z`,``$@#@_`#``!(`X,`!```2`.#$`0`
-M`$B)@^`#``!(BX-`!0``2`.#4`4``$@#@T@%``!(`X-H!0``2`.#<`4``$@#
-M@U@%``!(`X/(!0``2`.#T`4``$@#@]@%``"#NVP8```"2(F#,`4``'5"2(N#
-MD`4``$@#@X@%``!(`X.8!0``2`.#H`4``$@#@Z@%``!(`X.P!0``2`.#N`4`
-M`$@#@\`%``!(*=!(B8/X!0``2(N#V`,``#')2(E%"DB+@^`#``!(B4422(N#
-M``0``$B)11I(BX/H`P``2(E%(DB+@_@#``!(B44J2(N#\`,``$B)13)(BX,(
-M!```2(E%.DB+@Q`$``!(B45"9F:09I")RO_!2(N$TQ@$``"#^1!(B4352G+J
-M2(N#.`4``$B)A=(```!(BX,H!0``2(F%V@```$B+@S`%``!(B87B````2(N#
-M4`4``$B)A>H```!(BX-8!0``2(F%\@```$B+@T`%``!(B87Z````2(N#2`4`
-M`$B)A0(!``"#NV`8```"#X6.````2(N#F`0``$B)A<H```!(BX/(!0``2(F%
-M(@$``$B+@]`%``!(B84J`0``2(N#V`4``$B)A3(!``!(BX-H!0``2(F%.@$`
-M`$B+@W`%``!(B85"`0``2(N#X`4``$B)A4H!``!(BX/H!0``2(F%4@$``$B+
-M@_`%``!(B85:`0``2(N#^`4``$B)A6(!``#K8TC'A<H```#_____2,>%(@$`
-M`/____](QX4J`0``_____TC'A3(!``#_____2,>%.@$``/____](QX5*`0``
-M_____TC'A5(!``#_____2,>%6@$``/____](QX5B`0``_____TB+@U`&``!(
-MB85J`0``2(N#6`8``$B)A7(!``!(BX-@!@``2(F%>@$``$B+@V@&``!(B86"
-M`0``2(N#<`8``$B)A8H!``"#NVP8```"=7)(BX.(!0``2(F%R@$``$B+@Y`%
-M``!(B872`0``2(N#F`4``$B)A=H!``!(BX.@!0``2(F%X@$``$B+@Z@%``!(
-MB87J`0``2(N#L`4``$B)A?(!``!(BX.X!0``2(F%^@$``$B+@\`%``!(B84"
-M`@``ZUA(QX7*`0``_____TC'A=(!``#_____2,>%V@$``/____](QX7B`0``
-M_____TC'A>H!``#_____2,>%\@$``/____](QX7Z`0``_____TC'A0("``#_
-M____2(/$"#'`6UW#2(L'QP8!````BX!H`@``J0```$!T!L<&"0```*D````$
-M=`.##@2I`````G0#@PX",<#'1@0/````QT8(#P```,=&#`\```!(QT80!0``
-M`,-(BQ>+@FP"``"#X`.%P(D&=0C'!@$```#K'X/X`74(QP8"````ZQ*#^`(/
-ME<`/ML"-!(4$````B0:+@@`"``#'1@0`````J`%T!\=&!`$```"H$'0$@TX$
-M`O;$`70$@TX$!/;$$'0$@TX$"*@"QT8(`````'0'QT8(`0```*@@=`2#3@@"
-M]L0"=`2#3@@$]L0@=`2#3@@(J`3'1@P`````=`?'1@P!````J$!T!(-.#`+V
-MQ`1T!(-.#`3VQ$!T!(-.#`@QP,-FD$B+/XM.!(N'``(``"6(B/__B<*#R@'V
-MP0$/1<*)PH/*$/;!`@]%PHG"@,X!]L$$#T7"B<*`SA"#X0B+3@@/1<*)PH/*
-M`O;!`0]%PHG"@\H@]L$"#T7"B<*`S@+VP00/1<*)PH#.((/A"(M.#`]%PHG"
-M@\H$]L$!#T7"B<*#RD#VP0(/1<*)PH#.!/;!!`]%PHG"@,Y`@^$(#T7"N@``
-M``")AP`"``"+#O;!`0]%PKH!````]L$"#T7"N@(```#VP00/1<*Z`P```(/A
-M"`]%PH#,`8F';`(``#'`PY!(@^PH,<!(B5PD"$B);"003(ED)!A,B6PD($B)
-M^TB++TB+CZ@!``"+E<````"!X@```!!T=TB+.?]18$B%P$F)Q'5I2(N#J`$`
-M`$B+./]0,$&)Q4B+@Z@!``!(BSC_4"B+E<````#WP@```!")P70Y@^+\/0#A
-M]05U!8/*`>L5/8"6F`!T#HG0@\@"@?D`RIH[#T30B="`YOZ`S`%!@_T"#T3"
-MB87`````3(G@2(M<)`A(BVPD$$R+9"083(ML)"!(@\0HPV9FD+@/````PV:0
-M05=!5D%528G]051)B?154TB#[`B+%DB++XN=C````(/CWX#+@(G8@\@@]L(!
-M#T78]L("='=(C48*@\L@3(UV!$B)!"2+A90```!!B<=!@^<!=!&^`0```.@`
-M````9F9FD&9FD$&+1"0$@\@!187_B86P````00^W1@2)A;0```!!BT0D"HF%
-MN````$B+%"0/MT($B86\````=`V^`0```$R)[^@`````08L4)/;"!'0&@\L@
-M@.-_B=B#X-^#X@@/1=@QP(F=C````$B#Q`A;74%<05U!7D%?PV9FD$%728GQ
-MO@$```!!5D%50;W_____051)B=154S';2(/L&$R+-TR+OZ`!``!(@_O_2(U#
-M'XG92`]/PXGR@^$?2,'X!=/B0844A'0M00^V1!P0,=)$,>@/ML"H`70)T>@U
-M((.X[>L"T>A(_\)(@_H'?NA!P>T(03'%2/_#2(/[?WZK18N&``(``+@```$`
-M1(G)T^!!]]5$A<!T#/?01"'`08F&``(``+T````!1(G),=M$B$PD%]/E9I!!
-MBX8``@``A<5T)TC_PTF+/[XR````1(E$)`A,B0PD0?]7,$B#^V-$BT0D"$R+
-M#"1^SDN-!(E)C02&1(FH!`(``$&+%"2)D`@"``!!BU0D!(F0#`(``$&+5"0(
-MB9`0`@``08M4)`R)D!0"```/MDPD%[@```$`T^!$A<!T!T6)A@`"``!(@\08
-M,<!;74%<05U!7D%?PV9FD$F)\$B%TDB+-T2+C@`"``!T%K@```$`1(G!T^!!
-M"<'K%F9F9I!F9I"X```!`$2)P=/@]]!!(<$QP$2)C@`"``##9F:02(/L*$B)
-M;"003(ED)!A,B6PD($B)7"0(2(G]28GT2(L?BX.4````08G%08/E`70*O@$`
-M``#H`````$&+!"1%A>V)@Z@```!!BT0D!(F#K````'00O@$```!(B>_H````
-M`&9FD$B+7"0(2(ML)!`QP$R+9"083(ML)"!(@\0HPY!(BQ>+@J@```")!HN"
-MK````(E&!#'`PY!(@_H!4TB)\$B)RTC'`0````!T.$B#^@%_"DB%TG00Z9$`
-M``!(@_H"=%+IA@```$B+-[H`$```2(G'Z`````!(QP,`$```ZVUF9F:0,<D[
-MCZ`$``!S5F9FD&9FD$B+E]@$``")R/_!2(L$PDB)!DB#Q@@[CZ`$``!RXNLP
-M,<D[CSP#``!S)F9FD&9FD$B+EW@#``")R/_!2(L$PDB)!DB#Q@@[CSP#``!R
-MXF:0B<A(P>`#2(D#6S'`PV9FD$B+!XL0B1"+D(`!``")D(`!```QP,-FD$B+
-M!\=`!``````QP,>'!`8```````##D(N'&`8``$B+%XF'!`8``(E"!#'`QX<<
-M!@```````,=""`,```##9I"+AQP&``!(BP^%P'4.BP$Q]B.'!`8``(7`ZPF+
-M$3'VBT$$A=!T%L=!!`````"^`0```,>'!`8```````!(B?##05=%,?]!5D4Q
-M]D%5051%,>154TB)^TB#[`A,BR]!BT4`,>U!"<9(BX/H!```9H-X!@!X$4C_
-M@U`&``!(B=_H`````(G%2(N#P`,``$@[@\@#``!T'TB+`$B+0`AF@W@&`'@1
-M2/^#8`8``$B)W^@``````<5!`>]!_\2%[70)1#NC-!@``'*60<=%`/____^+
-M@Y`8``"%P'5]08/F0'0A08NU@`$``$B)WTC_@W`&``!!QX6``0``_____^@`
-M````BX,(!@``A<!U*D6%_W4[BX,D!@``_\"#^`J)@R0&``!V6XN#$`8``,>#
-M"`8```$```#K$(N##`8``,>#"`8```````")@Q@&``#'@R0&````````ZR>+
-M!0````#_P#WH`P``B04`````=1)(B=_H`````,<%``````````!(@\0(,<!;
-M74%<05U!7D%?PV:005=%,?]!5D4Q]D%5051%,>154TB)^TB#[`A,BR]!BT4`
-M,>U!"<9(BX/H!```BW`$A?9X%$C_@U`&``!(B=_H`````(G%9F:02(N#P`,`
-M`$@[@\@#``!T($B+`$B+0`B+2`2%R7@22/^#8`8``$B)W^@``````<6000'O
-M0?_$A>UT"40[HS08``!RDD''10#_____BY.0&```A=)U?4&#YD!T(4&+M8`!
-M``!(B=](_X-P!@``0<>%@`$``/_____H`````(N#"`8``(7`=2I%A?]U.XN#
-M)`8``/_`@_@*B8,D!@``=F*+@Q`&``#'@P@&```!````ZQ"+@PP&``#'@P@&
-M````````B8,8!@``QX,D!@```````.LNBP4`````_\`]Z`,``(D%`````'49
-M2(G?Z`````#'!0``````````9F9FD&9FD$B#Q`@QP%M=05Q!74%>05_#9F:0
-M05=%,?]!5D4Q]D%5051%,>154TB)^TB#[`A,BR]!BT4`,>U!"<9(BX/H!```
-M9H-X!@!X$4C_@U`&``!(B=_H`````(G%2(N#P`,``$@[@\@#``!T'TB+`$B+
-M0`AF@W@&`'@12/^#8`8``$B)W^@``````<5!`>]!_\2%[70)1#NC-!@``'*6
-M0<=%`/____^+NY`8``"%_W5\08/F0'0A08NU@`$``$B)WTC_@W`&``!!QX6`
-M`0``_____^@`````@[L(!@```G4J187_=3N+@R0&``#_P(/X"HF#)`8``'9;
-MBX,0!@``QX,(!@```0```.L0BX,4!@``QX,(!@```@```(F#&`8``,>#)`8`
-M``````#K)XL%`````/_`/>@#``")!0````!U$DB)W^@`````QP4`````````
-M`$B#Q`@QP%M=05Q!74%>05_#9F:005=%,?]!5D4Q]D%5051%,>154TB)^TB#
-M[`A,BR]!BT4`,>U!"<9(BX/H!```1(M0!$6%TG@62/^#4`8``$B)W^@`````
-MB<5F9I!FD$B+@\`#``!(.X/(`P``="%(BP!(BT`(1(M(!$6%R7@12/^#8`8`
-M`$B)W^@``````<5!`>]!_\2%[70)1#NC-!@``'*-0<=%`/____]$BX.0&```
-M187`=7Q!@^9`="%!B[6``0``2(G?2/^#<`8``$''A8`!``#_____Z`````"#
-MNP@&```"=2I%A?]U.XN#)`8``/_`@_@*B8,D!@``=F"+@Q`&``#'@P@&```!
-M````ZQ"+@Q0&``#'@P@&```"````B8,8!@``QX,D!@```````.LLBP4`````
-M_\`]Z`,``(D%`````'472(G?Z`````#'!0``````````9F:09I!(@\0(,<!;
-M74%<05U!7D%?PV9FD$%7N@$```!!5D&^`0```$%513'M05154TB)^TB![,@`
-M``!,BZ>@`0``2(UT)`!(@\8428L\)$'_5"0H2(NKZ`0``$'_Q4B-10A(.ZO@
-M!```2(F#Z`0``'402(N#V`0``$B)@^@$``#K!TB+@]@$``!(B>I(*<)(BX,(
-M!0``2(LT`DB%]@^$"P(```^W508/M\*)T:@!#X0W`0``]L1`=!PE@G\``#T`
-M8```=!`]`$0```^%&P$``&9FD&:0@[M@&````G0+2/^#*`4```^W508/MT4$
-M@>($(```2(ET)`B!^@0@``"-2/\/1,%(@[N0%@````^WP(E$)`1U"D4QP#')
-MZ;0```!(C70D`$F+/"1%,?]!_Y0DN````&:!>`R!`$B)P0^%BP```(N#D!8`
-M`(7`=$D/MG$.#[91#XGP@^`/P>`("=`Y@YP6``!T&0^W@Z`6``!FQT4&`("#
-MZ#%FB44$Z4$!``!$BYN4%@``187;=!.)\,#H!4&)Q^L)1`^V>0Y!P.\%BT$(
-MB4$,BT$$B4$(BP&)002+1"0$2(/!!(/H!(/X.XE$)`1W#,=$)`0\````ZP(Q
-MR44/ML>Z`0```$B-="0`28L\)$'_5"10Z<,```!(A?8/A+H```!%,?:#X0$/
-MA)4```"#NV`8```"#X2(````2/^#,`4```^W50;VP@)T"TC_@S@%```/MU4&
-M]L8@=`M(_X-`!0``#[=5!O;&$'0+2/^#2`4```^W50;VQ@AT"TC_@U`%```/
-MMU4&]L8$=`M(_X-8!0``#[=5!O;&`G0+2/^#8`4```^W50:`Y@%T!TC_@V@%
-M``"`?08`>0M(_X-P!0``9F9FD`^W@Z`6``!(B70D"&;'108`@(/H,6:)101%
-MA?9T#4B)[DB)W^@`````ZP9!O@$```!(B[/H!```9H-^!@!(B?5X#40[JS@8
-M```/@G?]__](@<3(````1(GH6UU!7$%=05Y!7\-!5T%60;X!````055%,>U!
-M5%532(G[2('LV````$B+K^@$``!,BZ>@`0``D$'_Q4B-10A(.ZO@!```2(F#
-MZ`0``'402(N#V`0``$B)@^@$``#K!TB+@]@$``!(B>I(*<)(BX,(!0``2(LT
-M`DB%]@^$60(``(M5!/?"````((G1#X1W`0``]\(```!`=!*)T"4``/0!/0``
-M``$/A5T!``"#NV`8```"=`I(_X,H!0``BU4$#[=-!&:!X?\_]\(````!=`R-
-M0?^!X@````(/1<@/M\%,C7PD$$B)="08B40D%+H!````28UW%$F+/"1!_U0D
-M*(M%!,'H&H/@!XA$)"0/ML!(_X3#B`4``$B#NY`6````=0I%,<`QR>G#````
-M13'`28L\)$R)_D2(1"0(0?^4)+@```!$#[9$)`AF@7@,@0!(B<$/A9$```"+
-M@Y`6``"%P'1/#[9Q#@^V40^)\(/@#\'@"`G0.8.<%@``="''100`````#[>#
-MH!8``(/H,0^WP`T```"`B44$Z5`!``"+@Y06``"%P'03B?#`Z`5!B<#K"40/
-MMD$.0<#H!8M!"(E!#(M!!(E!"(L!B4$$BT0D%$B#P02#Z`2#^#N)1"04=PS'
-M1"04/````.L",<E%#[;`N@$```!,B?Y)BSPD0?]4)%#IU@```&9FD&:02(7V
-M#X3(````13'V@>$````@#X28````@[M@&````@^$BP```$C_@S`%``"+503W
-MP@````%T"DC_@T`%``"+503WP@``@`!T"DC_@T@%``"+503WP@``0`!T"DC_
-M@U`%``"+503WP@``(`!T"DC_@U@%``"+503WP@``$`!T"DC_@V`%``"+503W
-MP@``"`!T"DC_@V@%``"+502!X@``!`!T#4C_@W`%``!F9I!F9I!(B70D&,=%
-M!``````/MX.@%@``@^@Q#[?`#0```(")101%A?9T#4B)[DB)W^@`````ZP9!
-MO@$```!(B[/H!```BT8$2(GUA<!X#40[JS@8```/@BG]__](@<38````1(GH
-M6UU!7$%=05Y!7\-!5$4QY%532(N7P`,``$B+KZ`!``!(B?M(.Y.X`P``2(U"
-M"$B+,DB)@\`#``!U%4B+@[`#``!(B8/``P``9F9FD&9FD$B+5@B+!@&#0`,`
-M`/9"!T!U3H.[8!@```)T.DC_@]@#```/MT(&2,'H!(/@#TC_A,,8!```#[="
-M!O;$!'0+2/^#"`0```^W0@;VQ`)T!TC_@Q`$``"+DT08``#K6&9FD(.[8!@`
-M``)T1DC_@^`#```/MT(&]L0@=`M(_X/H`P``#[="!O;$$'0+2/^#\`,```^W
-M0@;VQ`AT"TC_@_@#```/MT(&J`AT!TC_@P`$``"+DT@8``!(BWT`0?_$_U5(
-M2(N#P`,``$@[@\@#``!(B<)T&TB+`$B+0`AF@W@&`'@-1#NC/!@```^"Y_[_
-M_UM=1(G@05S#9F:0051%,>154TB+E\`#``!(BZ^@`0``2(G[2#N3N`,``$B-
-M0@A(BS)(B8/``P``=0Y(BX.P`P``2(F#P`,``$B+5@B+!@&#0`,``/9"!T!U
-M2X.[8!@```)T.DC_@]@#``"+0@3!Z!.#X`](_X3#&`0``(M"!*D````"=`I(
-M_X,(!```BT($J0````%T!TC_@Q`$``"+DT08``#K6H.[8!@```)T2TC_@^`#
-M``"+0@2I````$'0*2/^#Z`,``(M"!*D````(=`I(_X/P`P``BT($J0````1T
-M"DC_@_@#``"+0@2I```$`'0'2/^#``0``(N32!@``$B+?0!!_\3_54A(BX/`
-M`P``2#N#R`,``$B)PG0;2(L`2(M`"(M`!(7`>`U$.Z,\&```#X+L_O__6UU$
-MB>!!7,-(@^P82(D<)$B);"0(3(ED)!!(BP=(B?M,BZ>@`0``BZB(`0``B>@S
-MAR@&``"#Y@AT1*@$=$!`]L4$="&^`P```.@`````2(G?Z`````"^`P```$B)
-MW^@`````ZPK'ARP&``#_____2(GN28L\)(/F!$'_5"18B:LH!@``3(MD)!`Q
-MP$B+'"1(BVPD"$B#Q!C#9F:02(/L*+H!````2(E<)!!(B6PD&$R)9"0@B[=(
-M!@``2(U,)`Q(B?M,BZ>@`0``,>WH`````$B%P'1S]D0D#`2X!````(N3*`8`
-M``]%Z(GH,="H!'1&A>UT)+X#````2(G?Z`````!(B=_H`````+X#````2(G?
-MZ`````#K"L>#+`8``/____^)[DF+/"2#Y@1!_U0D6(N3*`8``(7M=`6#R@3K
-M`X/B^XF3*`8``$B+7"002(ML)!A,BV0D($B#Q"C#2(/L*$B)7"002(EL)!A,
-MB60D($B++TB)^\=$)`P`````BX6(`0``J0``$`!U$8N%B`$```T``!``B86(
-M`0``2(N#J`$``$B-="0,2(LX_U`XBU0D#(72#X03`0``2(N#J`$``(.+*`8`
-M``1(BSC_4#!!B<1(BX.H`0``2(LX_U`H1#NC,`8``(G&=0H[@RP&``!T+^L@
-M08/\`G4+BX6`````@^#]ZPF+A8````"#R`*)A8````!$B:,P!@``B;,L!@``
-MBY7`````BXV<````]\(````0#X25````@^+\@?X`X?4%=0Z!X?\`_/^#R@&`
-MS2WK/('^@):8`'4+@>'_`/S_@,UTZRF!_@#*FCMU(8'A_P#\_\>%/`$``""`
-MX`^#R@*`S7^+A3P!``!F9I!FD(G0@.;^@,P!08/\`@]$PHF%P````(F-G```
-M`(N#[!<``(7`=!N+@Q@8``"%P'01B440QX,8&````````&9F9I!(BUPD$$B+
-M;"083(MD)"!(@\0HPT%728G/059!B=9!54F)_4%408GT,?954TB#[`A(BQ_'
-M1"0$`````,<!`````$B+ET`&``!(BZ^@`0``2(M]`/^5J````,>#@`$```\`
-M``"+@X@!``"I```0`'09QT0D!`$```"+@X@!```E___O_XF#B`$``(N#D`$`
-M`&:%P'D<QX.0`0```(```+XR````2(M]`/]5,&9FD&9FD$'!Y`5$B?!!@>3@
-M`P``@^`?1`G@13'DB8.0`0``@,R`13NE.`8``',K9H7`>29FD+X*````2(M]
-M`$&#Q`K_53!%.Z4X!@``BX.0`0``<P5FA<!XW$4QY&:%P'@9BX.``0``J`%U
-M#XN#E`$``$&\`0```$&)!XM,)`2%R701BX.(`0``#0``$`")@X@!``!)BY5`
-M!@``2(M]`#'V_Y6P````2(/$"$R)X%M=05Q!74%>05_#D$%708G7059!B<Y!
-M54F)_4%408GT,?954TB#[`A(BQ_'1"0$`````$B+ET`&``!(BZ^@`0``2(M]
-M`/^5J````,>#@`$```\```"+@X@!``"I```0`'09QT0D!`$```"+@X@!```E
-M___O_XF#B`$``(N#D`$``&:%P'D6QX.0`0```(```+XR````2(M]`/]5,$'!
-MY`5$B?A$B;.4`0``08'DX`,``(/@'T0)X$4QY(G!@,T$B8N0`0``B<&`S81%
-M.Z4X!@``<REFA<EY)+X*````2(M]`$&#Q`K_53!%.Z4X!@``BXN0`0``<P5F
-MA<EXW(MT)`1%,>1FA<E!#YG$A?9T$8N#B`$```T``!``B8.(`0``28N50`8`
-M`$B+?0`Q]O^5L````$B#Q`A,B>!;74%<05U!7D%?PTB#[$A(B5PD.$B);"1`
-M2(U4)`A(BX^@`0``BX>@%@``2(G[2(GU2(UT)!")1"0@2(LY_U$X2(7`=%I(
-MB>E(BT0D"$B+DP@%``!(*XO8!```2(D$$8M$)!B)10"#NVP8```!=1.+1"0@
-M9L=%!@"`@^@Q9HE%!.L/BT0D((/H,0T```"`B44$N`$```#K8&9F9I!F9I!(
-MB>A(BY,(!0``2"N#V`0``$C'!!``````BX,8!0``B44`@[ML&````745#[>#
-M``8``&;'108`@/_(9HE%!.L7QT4$`````(N#``8``/_(#0```(")100QP$B+
-M7"0X2(ML)$!(@\1(PS'`PY!(@^PX2(E<)"A(B6PD,$B)^XL.2(GU3(N'H`$`
-M`#N/&`4``'1E2(GR2(N'"`4``(G)2"N7V`0``$B+%`)(B4PD"(N'H!8``(E$
-M)!!FQT8$``!FQT8&``!(B>9)BSA!_U!`2(GJ2(N#"`4``$@KD]@$``!(QP0"
-M`````(N#&`4``(E%`+@!````ZP(QP$B+7"0H2(ML)#!(@\0XPY!!5TF)ST%6
-M28G6055!5$F)]%5(B?U32(/L.$R++DC'!@````#'1"0@:`,``$C'1"08````
-M`$B-="002(L__U4(N@$```!(A<`/A*H!``!(BUPD$$B)F[````!(B=](BT0D
-M&$B)@[@```!(BT0D($R):W!(B2M(B8/`````Z`````!(C4,(2,=#:`````!(
-MB5L(2,=#$`````!(QT,8`````$C'0R``````2,=#,`````!(QT,X`````$C'
-M0T``````2,=#2`````!(QT-0`````$C'0R@`````2,=#8`````!(QT-8````
-M`$F)!"2+@X````!!B0:+@X````!(C02`BX2#V````$&)!XN[2`,``(7_=$)(
-MBP-(BU!@2(72=$!(C;.0````2(LX_]*Z"0```$B%P`^$O@```$B+`TB+LY``
-M``!(B=E(Q\(`````2(LX_U!PZPJZ"````.F8````2(M#<,=#>/____^Z`@``
-M`(NS@````$B-3"0,2(LH3(M@"$B)[T'_U+H&````2(7`=&:+1"0,N@,```!(
-MC4PD#$B)[R7_`P``P>`&B40D#(NS@````(M$)`QFB8-8`P``0?_4N@8```!(
-MA<!T*XM$)`PQTF:)@UH#``"+1"0,)0#\``#!Z`J)1"0,BT0D#&8)@U@#``!F
-M9I!(@\0X2(G06UU!7$%=05Y!7\-FD$B#[#A(A?](B5PD($B);"0H3(ED)#!(
-MBT=P2(G[3(M@$$B+*`^$H@```$B+MY````!(A?9T)TB+!TB+./^0@````$B+
-M`TB+LY````!(BSC_4&A(QX.0``````````^W@TP#``!FA<!T%`^WR(NS@```
-M`+H)````2(GO0?_4#[>#3@,``&:%P'04#[?(B[.`````N@0```!(B>]!_]1(
-MBX.P````2(GF2(D$)$B+@[@```!(B40D"$B+@\````!(B40D$$B+`TB+./]0
-M$$B+7"0@2(ML)"@QP$R+9"0P2(/$.,-FD$%5051)B?154TB)^TB#[`A(BT=P
-M2(U,)`1(BRA,BT`(3(MH$(F75`,``$2+#D6%R0^5AZ@````QTL<&`````(NW
-M@````,:'J0````%(B>]!_]`/MX-0`P``9H7`=!T/M\B+LX````"Z"0```$B)
-M[T'_U6;'@U`#``````^W@U(#``!FA<!T(0^WR(NS@````+H$````2(GO0?_5
-M9L>#4@,`````9F9FD$B+LY````#'@Y@````$````2(7V=`Q(BP-(BSC_D(``
-M``#W@Z0```#___\`=2%(B=_H`````,:#J`````!(A<!U-4R)YDB)W^@`````
-MZR;&@Z@````!2(G?Z`````#&@Z@`````2(7`=0U,B>9(B=_H`````#'`2(/$
-M"%M=05Q!7<-FD$%7`=)!5D%508G5N@$```!!5%5(B?U32(/L&$B)="0(2(U,
-M)!1(BT=P3(LP3(MX",<&`````(NW@````$R)]T'_U[H&````2(7`=&Q%,>1-
-M.>Q]5(M$)!2H!'50,=M(BT4`2/_#OC(```!(BSC_4#!(@_L)?NBZ`0```(NU
-M@````$B-3"043(GW0?_7N@8```!(A<!T(DG_Q$TY['T*BT0D%*@$=+;K!(M$
-M)!1(BU0D"(/@!(D",=)(@\082(G06UU!7$%=05Y!7\-FD$%5,=))B?5!5%53
-M2(G[2(/L"(NW@````$B+1W!(C4PD!$B+*$R+8`A(B>]!_]2Z!@```$B%P'1J
-MN@$```"+LX````!(B>%(B>]!_]2Z!@```$B%P'1,]D0D!0*+!"1FB8-<`P``
-M=0;V!"0@=0U,B>Y(B=_H`````.LF2(G?NF`)``!,B>['!"0`````Z`````!(
-MB=_H`````&9F9I!F9I`QTDB#Q`A(B=!;74%<05W#,<"#OY@````##Y;`PV9F
-MD#'`QX>8`````````,-F9I!(@^Q(2(E<)!A,B6PD,$R)="0X2(EL)"!,B60D
-M*$R)?"1`2(M'<$4Q[44Q]DB)^TB+:`A,BW@03(L@BX>8````@_@!#X2%````
-M@_@!<A>#^`(/A(\!``"#^`,/A!T"``#I>`(``.@`````2(7`#X5@`@``,=*+
-MLX````!(C4PD%$R)Y__52(7`#X1%`@``BTPD%#'2B[.`````3(GG@,V`B4PD
-M%$'_UTB%P`^$(P(``$B+`TB+LY````"Z$@(``,>#F`````$```#I^@$``(NW
-M@````#'22(U,)!1,B>?_U4B%P`^$Z@$``(M$)!1FA<!Y5TB+`[XR````2(LX
-M_U`P3(GG,=*+LX````!(C4PD%/_52(7`#X2X`0``0?_%08/]%'4,13'M0?_&
-M9F:09F:02(M#<$0[<!QW"XM$)!1FA<!XK^L$BT0D%&:%P`^(@0$``$B)W^@`
-M````2(7`#X5P`0``]X.D````____`'4H2(L#2(NSD````+H@`P``QX.8````
-M`@```,>#G````"`#``#I,0$``#'2B[.`````2(U,)!1,B>?_U4B%P`^$(0$`
-M`(M,)!0QTHNS@````$R)YX#E;XE,)!1!_]=(A<`/A/\```!(C70D$$B)W^@`
-M````Z?<```"+MX````!(C4PD#+H!````3(GG_]5(A<`/A,\```#V1"0,('4F
-M2(M#<(N3G````#M0(',7C8(F`@``2(NSD````+HF`@``Z8X````QTHNS@```
-M`$B-3"043(GG_]5(A<`/A(<```#V1"05`G4']D0D#"!U&<>#F`````,```!(
-MC70D$$B)W^@`````ZVI(B=_H`````.M6B[>`````2(U,)`RZ`0```$R)Y__5
-M2(7`=#SV1"0,!'4U2(M#<(N3G````#M0)',FC8*6````2(NSD````+J6````
-MB8.<````2(L#2(LX_U!X2(7`=0K'@Y@````$````2(M<)!A(BVPD($R+9"0H
-M3(ML)#!,BW0D.$R+?"1`2(/$2,-!5D%5051)B?152(G]4TB#[!"+MX````!(
-MBT=P2(U,)`Q,BRA(BU@(3(MP$,:'J0````")EU0#``"Z`0```$R)[__33(GO
-MB[6`````2(U,)`RZ`0```/_30<<$)``````/MX50`P``QX68`````````&:%
-MP'0=#[?(B[6`````N@D```!,B>]!_]9FQX50`P`````/MX52`P``9H7`="$/
-MM\B+M8````"Z!````$R)[T'_UF;'A5(#`````&9F9I"+M8````!(B>_H````
-M`(G`2(7`=0M(B>_H`````#'`D$B#Q!!;74%<05U!7L-F9I!(@^PH2(7_2(E<
-M)!!(B6PD&$R)9"0@2(G[#X31````1(N72`,``$6%T@^$P0```$B+1W"+MX``
-M``!,BV`(2(LHZ`````")PDB%TDB)T`^%GP```+H!````B[.`````2(U,)`Q(
-MB>]!_]1(B<*X!@```$B%TG1\@+NH`````'0E2(G?Z`````!(A<!U9HNS@```
-M`$B)W^@`````B<)(A=)(B=!U3DB)W^@`````2(7`=4&+LX````!(B=_H````
-M`(G"2(722(G0=2GW@Z0```#___\`=1N+LX````!(B=_H`````(G"2(722(G0
-M=05F9I`QP$B+7"002(ML)!A,BV0D($B#Q"C#9I!3@+^G`````$B)^W4+Z```
-M``!F9I!F9I"+0WA;PV9FD%.`OZ<`````2(G[=0OH`````&9FD&9FD(M#?%O#
-M9F:005=!5D%505154TB)^TB#["A(B70D$$B-3"0D2(M'<$B+4!!,BW@(2(E4
-M)`@QTHNW@````$R+,`^WKZ0```!$#[:OI@```$R)]T'_UT0/MZ-<`P``BT0D
-M)$'WQ``!``")1"0<=".+LX````!(C4PD(+H/````3(GW0?_7BT0D(&:)@UX#
-M``!FD&:#_0IU3XM$)"3'0WB`EI@`);_?__]!@/T!B40D)'4208'D``@```^$
-MR@```.F?````08#]`@^%NP```$&!Y``0```/A*X```"`S`&)1"0DZ9D```!F
-M@_UD=3N+1"0DQT-X`.'U!8#,((G"@^*_08#]`8E4)"1U#V9!]\0`H'1W);_^
-M___K1D&`_0)U:D&!Y`!```#K3V:!_>@#=5KV@UT#```!=%&+1"0DQT-X`,J:
-M.X/(0(G"@.;?08#]`8E4)"1U%_9$)"$@="V`Y-Z)1"0DQT-\`0```.LG08#]
-M`G47]D0D(4!T$(#.`8E4)"3'0WP"````ZPJX!0```.EF`0``BTPD'#'2B[.`
-M````3(GW,>V`Y>^)3"0<_U0D"$R)]S'2B[.`````2(U,)!Q!_]?V1"0=$'0Y
-M2(L#2/_%OC(```!(BSC_4#!,B?<QTHNS@````$B-3"0<0?_72(']\P$``'\,
-M]D0D'1!US&9FD&:0BTPD)(#E[V:!NU@#``!#4(E,)"1U<8#-@#'2B[.`````
-MB4PD)$R)]S'M_U0D"$R)]S'2B[.`````2(U,)"1!_]=F@WPD)`!Y369F9I!F
-M9I!(BP-(_\6^,@```$B+./]0,$R)]S'2B[.`````2(U,)"1!_]=(@?WS`0``
-M?QEF@WPD)`!XR^L/B[.`````,=),B??_5"0(@+NI`````'0>2(MT)!#'@Y@`
-M```$````NF`)``!(B=_H`````.LX2(L#QX.8`````P```,>#G````)8```!(
-MB[.0````NI8```!(BSC_4'A(A<!U"L>#F`````0````QP$B#Q"A;74%<05U!
-M7D%?PV:005=%,?]!5D%505154TB)^TB#["A(B70D$$B+1W!(BU`03(MP"$B)
-M5"0(1`^VIZ8````/MZ^D````3(LHQT0D(`````#'1"0<`````&:%[70%183D
-M=0JX!````.E/`@``@+^G`````'0?QX>8````!````$B+="00Z`````#I+0(`
-M`&9FD&9FD(NW@````#'22(U,)"1,B>]!_]9,B>](C8N@````B[.`````N@0`
-M``!!_]9F@_T*=1!!OX`#``#'1"0$`!@``.L?9H/]9,=$)`0`^```=1''1"0$
-M`.```$&_8````&9FD$&`_`%U$8%D)`3_K___08'/0`$``.L908#\`G43@60D
-M!/]7__]!@<^@`@``9F9FD/:#70,```$/A+@```"+LX````!(C4PD(+H)````
-M3(GO0?_63(GOBT0D((NS@````$B-3"0<N@\```!FB8-@`P``0?_69H']Z`.+
-M1"0<9HF#7@,``'5&08#\`748]L0@#X1^````#[>#8`,``(#,`8#D_>L808#\
-M`G49]L00=&0/MX-@`P``@,P"@.3^9HF#8`,``$&!S^`#``#K"6:!HV`#``#_
-M_`^WBV`#``"+LX````"Z"0```$R)[_]4)`A(A<!U">M/9H']Z`-T%T2+7"0$
-M187;=!H/MX-<`P``A40D!'4-N`4```#K+V9FD&9FD$'WUXNS@````+H$````
-M1".[H````$R)[T2)^?]4)`A(A<!U$;@'````QX.8````!````.MRBTPD)#'2
-MB[.`````3(GO@,T2B4PD)/]4)`B`NZD`````QX.8`````@```'0NB[.`````
-MQX.8````!````$B)W^@`````B<!(A<!U)DB+="002(G?Z`````#K%TB+`TB+
-MLY````"Z(`,``$B+./]0>#'`2(/$*%M=05Q!74%>05_#9I`QP&:)MZ0```"(
-MEZ8```"(CZ<```##9I`QP,.005=%,?]!5D%5051)B?Q5O2````!3NP$```!(
-M@^P(2(M'<$R+*$R+<`C'AT@#````````B=Y,B>?H`````(7`#X7Y````2(U,
-M)`2Z`0```(G>3(GO0?_62(7`#X3>````BU0D!(72#X32````08N$)$@#``"#
-MX@1(C02`08F4A-@```!!BX0D2`,``$B-!(!!B9R$R````/9$)`0!=$Q!BXPD
-M2`,``+H#````B=Y,B>](C0R)28V,C-````!!_]9(A<!T)D&+C"1(`P``N@(`
-M``")WDR)[TB-#(E)C8R,S````$'_UDB%P'4:08N$)$@#``!(C02`0<>$A-0`
-M````````ZS!!#[>4),P```!!BX0D2`,``$&+C"30````P>(0@>$`_```2(T$
-M@`G*08F4A-0```!!_X0D2`,``.L?2/_#2(/[_TB-0Q](#T_#2(/@X$@IPTC_
-MS0^%UO[__T&+C"1(`P``A<ET;(/Y`74218N\)-0```!!BX0DR````.M-,=(Y
-MRG,Q9F:09F:0B=!(C02`28T$A(N8V````(7;=0__PCG*<N8QP$B%P'4HZPA(
-M!<````#K#XU!_TB-!(!)C82$P````$2+>!2+0`A!B80D@````$B#Q`A$B?A;
-M74%<05U!7D%?PY!!5T4Q_T%613'V055!B?5!5%5(B?U32(/L&$B+1W!(C4PD
-M%$R+($B+4`A,B>=(B50D"#'22(M8$/]4)`BZ!@```$B%P`^$P@```(M,)!0Q
-MTD2)[DR)YX#-@(E,)!3_T[H'````2(7`#X2?````ZPJZ`@```.F3````BT0D
-M%#';9H7`>2A(BT4`_\.^,@```$B+./]0,('[#R<``'<+BT0D%&:%P'C>ZP2+
-M1"049H7`>5EF9I!(BT4`OC(```!(BSC_4#!,B><QTDB-3"041(GN_U0D"+H&
-M````2(7`="Y!_\9!@_X4=0U%,?9!_\=F9F:09F:02(M%<$0[>!P/AVW___]F
-M@WPD%`!XJC'22(/$&(G06UU!7$%=05Y!7\-F9I!!5S'213'_059!54%408GT
-M54B)_5-(@^P(2(M'<$B-3"0$2(L83(MH"$R+<!#'!"0`````2(G?0?_5N@8`
-M``!(A<`/A*4```"+1"0$]L0,#X26````B<$QTD2)YH#E\TB)WXE,)`1!_]:Z
-M!P```$B%P'1Z,=)(C4PD!$2)YDB)WT'_U?=$)`0`#```=%YF9F:09F:02(M%
-M`+XR````2(LX_U`P2(G?,=)(C4PD!$2)YD'_U;H&````2(7`=#!!_\=!@_\4
-M=09%,?__!"1(BT5PBQ0D.U`8=PSW1"0$``P``'6RZP>Z"@```.L",=)(@\0(
-MB=!;74%<05U!7D%?PV:0058QTD%513'M05154TB)^TB#[!"+MX````!(BT=P
-M2(U,)`Q(BRA,BV`(3(MP$,>'F`````````!(B>]!_]2Z!@```$B%P`^$LP``
-M`/>#I````/___P!T'(N+H````(NS@````+H$````2(GO0?_69F:09I`QTL=$
-M)`P`"```B[.`````N0`(``!(B>]!_]:Z!P```$B%P'1F,=*+LX````!(C4PD
-M#$B)[T'_U/9$)`T(=4J02(L#OC(```!(BSC_4#!(B>\QTHNS@````$B-3"0,
-M0?_4N@8```!(A<!T($B+0W!!@\4R1#MH*'<)]D0D#0ATP.L'N@L```#K`C'2
-M2(/$$$B)T%M=05Q!74%>PY!!5KH!````055!5$4QY%4Q[5-(B?M(@^P0B[>`
-M````2(M'<$B-3"0,3(LP3(MH"$R)]T'_U;H&````2(7`=&CK![H,````ZU_V
-M1"0,('569F:09I!(BP.^,@```$B+./]0,$R)][H!````B[.`````2(U,)`Q!
-M_]6Z!@```$B%P'0E_\6#_11U"S'M0?_$9F:09F:02(M#<$0[8"!WH_9$)`P@
-M=*\QTDB#Q!")T%M=05Q!74%>PV:02(/L&+H!````2(E<)!!(C4PD#$B+1W!(
-MB?-,BP!(BT`(QP8`````B[>`````3(G'_]"Z!@```$B%P'0/]D0D#`1T!L<#
-M`0```#'22(M<)!!(B=!(@\08PTB#[!BZ`0```$B)7"002(U,)`Q(BT=P2(GS
-M3(L`2(M`",<&`````(NW@````$R)Q__0N@8```!(A<!T#_9$)`P$=`;'`P$`
-M```QTDB+7"002(G02(/$&,-!5C'228GV055!5%532(G[2(/L$(NW@````$B+
-M1W!(C4PD#$B+*$R+8`A,BV@02(GO0?_4N@8```!(A<`/A.(!``"Z`0```(NS
-M@````$B-3"0(2(GO0?_4N@8```!(A<`/A+X!``#V1"0-`G4/]D0D""`/A:H!
-M``!F9F:0]X.D````____``^%BP$``/:#70,```%T3KH/````B[.`````2(U,
-M)`1(B>]!_]2Z!@```$B%P`^$:P$``/=$)`0`,```=""+1"0,QT-X`,J:.\=#
-M?`(```"`Y-\-0`$``(E$)`SK4&;W1"0(`*)T$8%,)`P`(```QT-X`.'U!>LO
-M]D0D"0AT$8%D)`S_W___QT-X@):8`.L7N@0```#'0WB`EI@`Z?X```!F9I!F
-M9I#'0WP!````9H&[6`,``$-0=76+3"0,,=*+LX````!(B>^`S8")3"0,0?_5
-M13'M,=*+LX````!(C4PD#$B)[T'_U&:#?"0,`'E09F9FD&9FD$B+`T'_Q;XR
-M````2(LX_U`P2(GO,=*+LX````!(C4PD#$'_U$&!_?,!``!W'&:#?"0,`'C+
-MZQ*+3"0,B[.`````,=)(B>]!_]6`NZD`````=!['@Y@````$````NF`)``!,
-MB?9(B=_H`````.LX9I!(BP/'@Y@````#````QX.<````E@```$B+LY````"Z
-ME@```$B+./]0>.L+2(GF2(G?Z``````QTDB#Q!!(B=!;74%<05U!7L-!5[H$
-M````059!54%454B)_5-(@^P8B[>`````1(M_>$B+1W!(C4PD%$R+($R+:`A,
-MBW`0QT=X_____TR)YT'_U4R)YXNU@````$B-3"00N@4```!(B<-!_]5("<-U
-M"K@&````Z70!``#VA5T#```!#X2;````B[6`````2(U,)`RZ"0```$R)YT'_
-MU4R)Y[H*````B[6`````2(U,)`Q("<.+1"0,9HF%8`,``$'_U8M4)`QFB95B
-M`P``2`G#N`8```!(A=L/A!$!```/MX5@`P``]L0"=!B`Y@AT$\=%>`#*FCO'
-M17P"````Z>L```#VQ`%T'/:%8P,```1T$\=%>`#*FCO'17P!````Z<H```"+
-M1"00(T0D%*F``0``=`G'17@`X?4%ZP^H8'0+QT5X@):8`&9F9I"I0`$``'0)
-MQT5\`@```.L0J*!T#,=%?`$```!F9I!FD(%]>("6F`!U>D&!_X"6F`!T<8&]
-M6`,``$-0P0QU98NU@````$B-3"0(NA````!,B>=!_]6+1"0(@^!@@_A@B40D
-M"'4_B[6`````N1T```"Z'0```$R)YT'_UDR)YXNU@````+DP_@``NAX```!!
-M_]9,B>>Z'@```(NU@````#')0?_6,<!(@\086UU!7$%=05Y!7\-!5[H$````
-M059!54%455-(B?M(@^P8B[>`````2(M'<$B-3"042(LH3(M@"$R+<!!(B>]!
-M_]1(B>^+LX````!(C4PD$+H)````0?_42(GON@4```!(C4PD#(NS@````$'_
-MU$2+;"041(M\)!!$B>I$B>DC5"0,]L)@=!.!X7_\___'0WB`EI@`B4PD%.L5
-M,<"!XH`!```/A)<```#'0WB`EI@`1(GXB[.`````N@0```"`Y/Q(B>^)1"00
-M0?_62(GOBTPD$(NS@````+H)````0?_62(GO,=*+LX````!(C4PD"$'_U(M,
-M)`@QTHNS@````$B)[X#-$HE,)`A!_]9(B=^+LX````#H`````(G`2(7`=1](
-MC70D!$B)W^@`````,<!F1(F[4`,``&9$B:M2`P``2(/$&%M=05Q!74%>05_#
-M9I!!5;H!````05154TB)^TB#[`B+MX````!(BT=P2(U,)`1(BRA,BV`(3(MH
-M$$B)[T'_U+H&````2(7`#X3F`@``BT0D!/;$`6:)@UP#``!T+[H/````B[.`
-M````2(U,)`1(B>]!_]2Z!@```$B%P`^$L@(``(M$)`1FB8->`P``N@0```"+
-MLX````!(C4PD!$B)[T'_U+H&````2(7`#X2#`@``9H.[3@,```!U"XM$)`1F
-MB8-.`P``BTPD!+H$````B[.`````2(GO@<G@#0``B4PD!$'_U;H'````2(7`
-M#X1!`@``]H-=`P```0^$F0````^W@TP#``!FA<!U+[H)````B[.`````2(U,
-M)`1(B>]!_]2Z!@```$B%P`^$!`(``(M$)`1FB8-,`P``B<*`YOZ#NU0#```!
-M9HF38`,``'4,@.3\9HF#8`,``.L*@,X"9HF38`,```^WBV`#``"Z"0```(NS
-M@````$B)[X#E^V:)BV`#```/M\E!_]6Z!P```$B%P`^$FP$``&:!NU@#``!#
-M4`^%+@$``+H=````B[.`````N0L```!(B>]!_]6Z!P```$B%P`^$:`$``+H>
-M````B[.`````N02```!(B>]!_]6Z!P```$B%P`^$1`$``+H=````B[.`````
-MN08```!(B>]!_]6Z!P```$B%P`^$(`$``+H>````B[.`````2(U,)`1(B>]!
-M_]2Z!@```$B%P`^$_````(M,)`2Z'@```(NS@````$B)[X#E/X#-0(E,)`1!
-M_]6Z!P```$B%P`^$SP```+H=````B[.`````N0H```!(B>]!_]6Z!P```$B%
-MP`^$JP```+H>````B[.`````2(U,)`1(B>]!_]2Z!@```$B%P`^$AP```(M,
-M)`2Z'@```(NS@````$B)[X/AWXE,)`1!_]6Z!P```$B%P'1A9F:0,=*+LX``
-M``!(C4PD!$B)[T'_U+H&````2(7`=$'W@Z0```#___\`=0J!3"0$`!```.L(
-M@60D!/_O__\QTHM,)`2+LX````!(B>]!_]6Z!P```$B%P+@`````2`]%T$B#
-MQ`A(B=!;74%<05W#055!5%532(G[2(/L"$B+1W!,BV`(3(MH$$B+*`^WAU@#
-M``#'1WC_____9CWQ`P^%50$``(._5`,```(/A:8```"+MX````"Z%P```$B-
-M3"0$2(GO0?_4N@8```!(A<`/A)H!``"+3"0$NA<```"+LX````!(B>^`Y0&`
-MS1*)3"0$0?_5N@<```!(A<`/A&T!``"Z'````(NS@````$B-3"0$2(GO0?_4
-MN@8```!(A<`/A$D!``"+3"0$NAP```"+LX````!(B>^#R02)3"0$0?_5N@<`
-M``!(A<`/A!\!```/MX-8`P``9CWQ`P^%F````+H6````B[.`````2(U,)`1(
-MB>]!_]2Z!@```$B%P`^$Z@```(M,)`2Z%@```(NS@````$B)[X#-((E,)`1!
-M_]6Z!P```$B%P`^$P````+H2````B[.`````2(U,)`1(B>]!_]2Z!@```$B%
-MP`^$G````(M,)`2Z$@```(NS@````$B)[X/A_HE,)`1!_]6Z!P```$B%P'1V
-M]H-=`P```71&N@D```"+LX````!(C4PD!$B)[T'_U+H&````2(7`=$V+3"0$
-MN@D```"+LX````!(B>^`Y?N)3"0$0?_5N@<```!(A<!T)[H!````B[.`````
-M2(U,)`1(B>]!_]2Z!@```$B%P+@`````2`]%T$B#Q`A(B=!;74%<05W#9F:0
-M,<")\4B%_W092#G0?1%F9I!F9I"(##A(_\!(.=!\]4B)^,.02(7_=`M(A?9U
-M#&9FD&9FD+@!````PS')2#G1?1AF9I`/M@8X!W7I2/_!2/_'2/_&2#G1?.LQ
-MP,-(A?]T!4B%]G4#,<##,<E(.=%]$V9F9I`/M@0QB`0Y2/_!2#G1?/%(B?C#
-MD%6Z%````#'V4TB)^TB#["A(B>=(B>7H`````#'29H,[`'07#[8$4X@$%$C_
-MPDB#^A-W!V:#/%,`=>E(B>_H`````$B#Q"A;7<-F9I`/M@<QTHGQA,!T&69F
-MD&:0.,AU!4B-!#K#2/_"#[8$.H3`=>PQP,.0,<E(.=%]&(`^`'0.2/_!2#G1
-M?0N`/#$`=?)(.=%\`S'`PT4QP$B-4?]).<A]$P^V!#)(_\I!B`0X2?_`23G(
-M?.U(B?A!Q@0X`,-FD`^V%X#Z('0'C4+W/`1W$DC_QP^V%X#Z('3UC4+W/`1V
-M[@^VTDC_QTB#^BU(B=9T!DB#^BMU!T@/MA=(_\=(C4+0,<E(@_@)=QUF9I!(
-MC02)2(U,0M!(#[872/_'2(U"T$B#^`EVYDB)R$CWV$B#_BU(#T3(2(G(PS')
-M2#G1?2-F@SX`=!UF9F:09F:0#[8$3H@$.4C_P4@YT7T'9H,\3@!UZI##05=)
-MB?]!5DF)]D%513'M051)B?Q54TB#[$CK73'223GL#X3=````2(U<)"`Q]KH>
-M````2(G?Z`````!(B=],B>9(B>JX'@```$PIXDB#^A](#T/0Z`````!(B=_H
-M`````#'29CW_``^'EP```$.(1#4`3(UE`4G_Q;XN````3(GGZ`````!(A<!(
-MB<5T"$F#_0-^B.MI28/]`W]C3(UD)"`Q]KH>````3(GGZ`````!,B>=,B?ZZ
-M'@```.@`````3(GGOBX```#H`````+H!````2(7`="VZ'@```$R)YDB)Y\8`
-M`.@`````2(GGZ``````QTF8]_P!W"D.(1#4`N@$```!(@\1(2(G06UU!7$%=
-M05Y!7\,`````````````````````````````````````````````4U)#($$Z
-M("12979I<VEO;CH@(S$P,R`D```````````4``````````$``7@0#`<(D`$`
-M```````T````'```````````````0`D```````!"#A".`D4.&(T#10X@00XH
-MA@6,!$0.,$0.4(,&`````"P```!4``````````````!X`@```````$(.$$(.
-M&$$.((8$C`.-`D0.*$0.,(,%`!0```"$```````````````!`````````!0`
-M``"<```````````````#`````````!P```"T``````````````!:````````
-M`$0.$```````'````-0``````````````&L`````````1`X@3X,#A@(\````
-M]```````````````4`D```````!"#A"/`DH.&(X#10X@0@XH00XP00XX@P>&
-M!HP%C01'#E``````````-````#0!`````````````,H"````````0@X00@X8
-M0@X@00XH00XP@P:&!8P$C0..`@`````````<````;`$`````````````'@``
-M``````!$#A"#`@```"0```",`0````````````!Z`````````$$.$$$.&(,#
-MA@)'#B`````<````M`$`````````````6@````````!!#A"#`@```#0```#4
-M`0````````````#-`````````$(.$(X"20X8C0-%#B!!#BA!#C"#!H8%C`0`
-M````````%`````P"`````````````!X`````````-````"0"````````````
-M`)P#````````0@X030X8C0..`D4.($$.*$$.,(,&A@6,!``````````T````
-M7`(`````````````*`0```````!"#A!-#AB-`XX"10X@00XH00XP@P:&!8P$
-M`````````!0```"4`@````````````"S`0```````"0```"L`@``````````
-M```7`@```````$(.$$H.&(8#C`)$#B"#!``4````U`(`````````````3P``
-M```````4````[`(`````````````5P`````````T````!`,`````````````
-MV`````````!"#A!%#AB-`XX"2`X@0PXH00XP@P:&!8P$`````````!P````\
-M`P````````````!Y`````````$0.($Z#`X8"'````%P#`````````````)0`
-M````````1`X@3X8"@P,4````?`,`````````````4P`````````4````E`,`
-M````````````-`$````````<````K`,`````````````%@````````!$#A``
-M`````!P```#,`P`````````````6`````````$0.$```````'````.P#````
-M`````````!@`````````1`X0```````<````#`0`````````````+```````
-M``!$#A```````!P````L!``````````````H`````````$0.$```````%```
-M`$P$``````````````<`````````%````&0$``````````````<`````````
-M)````'P$``````````````@$````````00X0A@)$#AB#`T<.(````!0```"D
-M!`````````````!0`````````!0```"\!`````````````#&`````````!0`
-M``#4!`````````````#;`````````"0```#L!`````````````#%````````
-M`$0.,%:-`HP#A@2#!0`````4````%`4`````````````!@`````````\````
-M+`4`````````````V0````````!"#A!"#AA"#B"-!(X#CP)%#BB,!40.,$$.
-M.$0.0(,'A@8`````````/````&P%`````````````$T!````````0@X02@X8
-M0@X@C02.`X\"2`XHC`5$#C!!#CB#!X8&1@Y0`````````!0```"L!0``````
-M``````!!`````````"0```#$!0````````````!_`````````$0.,%2#!8T"
-MC`.&!``````4````[`4`````````````%P`````````<````!`8`````````
-M````N0````````!%#A"#`@```!0````D!@`````````````6`````````!0`
-M```\!@`````````````7`````````!0```!4!@`````````````F````````
-M`!0```!L!@````````````!``````````#P```"$!@````````````!.`0``
-M`````$(.$(\"10X8C@-%#B!"#BB,!8T$1`XP00XX@P>&!D<.0``````````\
-M````Q`8`````````````60$```````!"#A"/`D4.&(X#10X@0@XHC`6-!$0.
-M,$$..(,'A@9'#D``````````/`````0'`````````````$T!````````0@X0
-MCP)%#AB.`T4.($(.*(P%C01$#C!!#CB#!X8&1PY``````````#P```!$!P``
-M``````````!=`0```````$(.$(\"10X8C@-%#B!"#BB,!8T$1`XP00XX@P>&
-M!D<.0``````````\````A`<`````````````X`(```````!"#A!'#AB.`X\"
-M2`X@C01%#BA!#C!!#CB#!X8&C`5*#H`"````````/````,0'````````````
-M`!@#````````0@X00@X8C@./`D@.((T$10XH00XP00XX@P>&!HP%2@Z0`@``
-M`````"0````$"``````````````Y`0```````$(.$(P"1`X800X@@P2&`P`D
-M````+`@`````````````-`$```````!"#A",`D0.&$$.((,$A@,`)````%0(
-M`````````````)$`````````1`X@3HP"A@.#!````````"0```!\"```````
-M``````#``````````$0.,%2,`H8#@P0````````D````I`@`````````````
-MA`$```````!$#C!/C`*&`X,$````````/````,P(`````````````$\!````
-M````0@X0CP)%#AB.`T4.((T$10XHC`5&#C!!#CA$#D"#!X8&`````````#P`
-M```,"0`````````````X`0```````$(.$(\"10X8C@-%#B"-!$4.*(P%1@XP
-M00XX1`Y`@P>&!@`````````<````3`D`````````````_`````````!$#E!*
-MA@*#`Q0```!L"0`````````````#`````````!P```"$"0````````````";
-M`````````$0.0$J&`H,#/````*0)``````````````H"````````0@X0CP)%
-M#AB.`T4.($(.*(P%C01$#C"&!D0..$0.<(,'`````````"0```#D"0``````
-M``````#B`````````$0.0%*,`H8#@P0````````L````#`H`````````````
-M*@$```````!"#A!"#AB,`XT"1`X@00XH@P6&!$<.,``\````/`H`````````
-M````R@````````!"#A!$#AA"#B"-!(X#CP)*#BA!#C"&!HP%1`XX1`Y0@P<`
-M````````+````'P*`````````````+``````````0@X0C0)'#AA!#B!!#BB#
-M!88$C`-'#C``%````*P*``````````````T`````````%````,0*````````
-M``````T`````````)````-P*```````````````#````````1`Y07H\"C`6&
-M!HX#C02#!S0````$"P````````````#M`````````$(.$$(.&$(.((P$C0..
-M`D0.*(8%1`XP1`Y`@P8`````)````#P+``````````````8!````````1`XP
-M4HP"A@.#!````````!P```!D"P`````````````=`````````$$.$(,"````
-M'````(0+`````````````!T`````````00X0@P(````\````I`L`````````
-M````_@(```````!"#A!"#AA"#B!"#BA!#C!!#CB#!X8&C`6-!(X#CP)'#F``
-M````````/````.0+`````````````+X"````````0@X0CP)%#AA"#B!"#BA!
-M#C!!#CB#!X8&C`6-!(X#1PY@`````````!0````D#``````````````6````
-M`````!0````\#``````````````#`````````#P```!4#`````````````#G
-M`0```````$(.$(\"10X80@X@0@XHC`6-!(X#1`XPA@9&#CB#!TD.0```````
-M```\````E`P`````````````'0$```````!"#A"/`D4.&(X#10X@C01%#BA!
-M#C"&!HP%1`XX1`Y0@P<`````````/````-0,`````````````/X`````````
-M0@X0CP)'#AA"#B!"#BB,!8T$C@-$#C"&!D0..$0.0(,'`````````#0````4
-M#0`````````````/`0```````$(.$$0.&(T#C@)%#B!!#BA!#C"#!H8%C`1'
-M#D``````-````$P-`````````````+8`````````0@X01PX80@X@C`2-`XX"
-M1`XHA@5##C"#!D<.0``````<````A`T`````````````6`````````!$#B!*
-M@P(``!P```"D#0````````````!8`````````$0.($J#`@``-````,0-````
-M`````````#0"````````0@X0C@)'#AA"#B!!#BA!#C"#!H8%C`2-`T<.0```
-M```\````_`T`````````````[`$```````!"#A!'#AA"#B!"#BA!#C"&!HP%
-MC02.`X\"1`XX1`Y0@P<`````````/````#P.`````````````$(!````````
-M0@X01PX80@X@0@XH00XP00XX@P>&!HP%C02.`X\"1PY0`````````"P```!\
-M#@`````````````T`P```````$(.$$<.&$$.($$.*(,%A@2,`XT"1PXP`"P`
-M``"L#@`````````````-`@```````$(.$$(.&$$.($$.*(,%A@2,`XT"1PXP
-M`!0```#<#@`````````````C`````````!0```#T#@`````````````X````
-M`````!0````,#P`````````````K`````````"0````D#P````````````!)
-M`````````$$.$$@.&(,#A@)'#D`````4````3`\`````````````)P``````
-M```4````9`\`````````````2@`````````4````?`\`````````````>```
-M```````4````E`\`````````````+``````````\````K`\`````````````
-M%@$```````!"#A"/`D4.&(X#10X@C01%#BB,!40.,$$..$0.@`&#!X8&````
-M`````$=#0SH@*$=.52D@,RXS+C,``"YS>6UT86(`+G-T<G1A8@`N<VAS=')T
-M86(`+G)E;&$N=&5X=``N<F5L82YD871A`"YB<W,`+G)O9&%T82YS='(Q+C$`
-M+G)E;&$N96A?9G)A;64`+FYO=&4N1TY5+7-T86-K`"YC;VUM96YT````````
-M````````````````````````````````````````````````````````````
-M````````````````````(`````$````&````````````````````0```````
-M``"^;P``````````````````0````````````````````!L````$````````
-M`````````````````/B7````````\`\````````,`````0````@`````````
-M&``````````K`````0````,`````````````````````<`````````@`````
-M```````````````(````````````````````)@````0`````````````````
-M````````Z*<````````8``````````P````#````"``````````8````````
-M`#$````(`````P```````````````````"!P````````H`$`````````````
-M`````"`````````````````````V`````0```#(````````````````````@
-M<````````!D````````````````````!``````````$`````````2@````$`
-M```"````````````````````0'````````#H#P``````````````````"```
-M`````````````````$4````$``````````````````````````"H````````
-M8`D````````,````!P````@`````````&`````````!4`````0``````````
-M```````````````H@``````````````````````````````!````````````
-M````````9`````$`````````````````````````*(`````````2````````
-M`````````````0```````````````````!$````#````````````````````
-M`````#J`````````;0````````````````````$````````````````````!
-M`````@`````````````````````````HA````````.`*````````#0````T`
-M```(`````````!@`````````"0````,`````````````````````````"(\`
-M``````#L"````````````````````0``````````````````````````````
-M``````````````````````$````$`/'_```````````````````````````#
-M``$````````````````````````````#``,`````````````````````````
-M```#``4````````````````````````````#``8`````````````````````
-M``T````!``4`D`$````````$`````````!<````!``4`E`$````````$````
-M`````"$````!``4`F`$````````$`````````"L````!``4`G`$````````$
-M```````````````#``<````````````````````````````#``D`````````
-M```````````````````#``H``````````````````````#4````1``,`````
-M```````(`````````%`````2``$```````````!`"0```````%T````2``$`
-M;!H````````>`````````'4````2``$`0`D```````!X`@```````(,````2
-M``$`B`P```````!0"0```````)`````2``$`I!@````````>`````````)\`
-M```2``$`0!D```````!:`````````*T````2``$`G!D```````#-````````
-M`+H````2``$`M#@```````!-`0```````-P````2``$`"#8```````!.`0``
-M`````/L````2``$`C!H```````"<`P````````D!```2``$`4"(```````"S
-M`0```````!@!```2``$`*!X````````H!````````"X!```2``$`!"0`````
-M```7`@```````$4!```2``$`!#H```````!=`0```````&\!```2``$`6#<`
-M``````!9`0```````)8!```2``$`R#4```````!``````````*T!```2``$`
-MB#4````````7`````````,<!```2``$`H#4````````F`````````.`!```2
-M``$`<#4````````6`````````/@!```2``$`Q!@```````!Z``````````P"
-M```2``$`?"H````````L`````````"$"```2``$`J"H````````H````````
-M`#4"```2``$`9"H````````8`````````$H"```2``$`3"H````````6````
-M`````&4"```2``$`-"H````````6`````````'\"```2``$`T"H````````'
-M`````````)P"```2``$`V"H````````'`````````+@"```2``$`X"H`````
-M```(!````````,X"```2``$`Z"X```````!0`````````.L"```2``$`."\`
-M``````#&``````````$#```2``$``#````````#;`````````!<#```2``$`
-MW#````````#%`````````#`#```2``$`I#$````````&`````````$P#```2
-M``$`K#$```````#9`````````&0#```2``$`B#(```````!-`0```````'T#
-M```2``$`V#,```````!!`````````)D#```2``$`'#0```````!_````````
-M`+`#```2``$`G#0````````7`````````,<#```2``$`M#0```````"Y````
-M`````-X#```2``$`($4```````"$`0```````/4#```2``$`I$8```````!/
-M`0````````4$```2``$`]$<````````X`0```````!8$```2``$`'"8`````
-M``!/`````````"X$```2``$`;"8```````!7`````````$@$```2``$`*$H`
-M```````#`````````%P$```2``$`&"@```````"4`````````'($```2``$`
-MK"@```````!3`````````(T$```2``$`+$D```````#\`````````*4$```2
-M``$`R$H````````*`@```````*X$```2``$`+$H```````";`````````,<$
-M```2``$`N`L````````!`````````-\$```2``$`O`L````````#````````
-M`/8$```2``$`P`L```````!:`````````!(%```2``$`'`P```````!K````
-M`````"X%```2``$`V!4```````#*`@```````$<%```2``$``"D````````T
-M`0```````&$%```2``$`G"<```````!Y`````````'\%```2``$`Q"8`````
-M``#8`````````)P%```2``$`&&T````````K`````````*8%```0````````
-M`````````````````*T%```2``$`9#L```````#@`@```````,<%```2``$`
-M7$$````````Y`0```````.(%```2``$`S$,```````"1`````````/(%```2
-M``$`8$0```````#```````````H&```2``$`1#X````````8`P```````"P&
-M```2``$`F$(````````T`0```````$\&```2``$`E%L```````#G`0``````
-M`&`&```2``$`-&8```````!"`0```````'4&```2``$`N$T````````J`0``
-M`````'X&```2``$`@%,```````#M`````````(L&```2``$`<%0````````&
-M`0```````)8&```2``$`>%4````````=`````````*<&```2``$`F%4`````
-M```=`````````+<&```2``$`O&$```````!8`````````-`&```2``$`8%``
-M```````-`````````.<&```2``$`<%`````````-`````````/T&```2``$`
-MU$P```````#B``````````<'```2``$`G%\````````/`0```````!4'```2
-M``$`>%L````````6`````````"H'```2``$`@%```````````P```````#<'
-M```2``$`L$\```````"P`````````%L'```2``$`N%@```````"^`@``````
-M`&P'```2``$`Y$X```````#*`````````'X'```2``$`%&(````````T`@``
-M`````*D'```2``$`2&0```````#L`0```````+P'```2``$`>&<````````T
-M`P```````-0'```2``$`K&H````````-`@```````.T'```2``$`G%X`````
-M``#^``````````L(```2``$`?%T````````=`0```````!4(```2``$`K&``
-M``````"V`````````#$(```2``$`N%4```````#^`@```````%@(```2``$`
-MD%L````````#`````````&\(```2``$`9&$```````!8`````````(`(```2
-M``$`O&P````````C`````````(H(```2``$`X&P````````X`````````)0(
-M```2``$`1&T```````!)`````````)P(```2``$`!&X```````!X````````
-M`*0(```2``$`D&T````````G`````````*X(```2``$`N&T```````!*````
-M`````+@(```2``$`?&X````````L`````````,<(```2``$`J&X````````6
-M`0```````.8(```1``4```````````"0`0````````!N=F5N971L:6(N8P!#
-M;W5N=&5R+C``0V]U;G1E<BXQ`$-O=6YT97(N,@!#;W5N=&5R+C,`8V]M;6]N
-M7W-R8T%?=F5R<VEO;E]S=')I;F<`041!4%1%4E]/<&5N`$%$05!415)?475E
-M<GE7<FET95-L;W1S`$%$05!415)?0VQO<V4`041!4%1%4E]);FET`$%$05!4
-M15)?1&5I;FET`$%$05!415)?4W1A<G0`041!4%1%4E]3=&]P`$%$05!415)?
-M2&%N9&QE26YT97)R=7!T5&AR;W5G:'!U=`!!1$%05$527TAA;F1L94EN=&5R
-M<G5P=%!O;&QI;F<`041!4%1%4E]7<FET90!!1$%05$527U=R:71E,0!!1$%0
-M5$527U=R:71E7T]F9FQO860`041!4%1%4E]7<FET93%?3V9F;&]A9`!!1$%0
-M5$527TAA;F1L94EN=&5R<G5P=%1H<F]U9VAP=71?3V9F;&]A9`!!1$%05$52
-M7TAA;F1L94EN=&5R<G5P=%!O;&QI;F=?3V9F;&]A9`!!1$%05$527U%U97)Y
-M26YT97)R=7!T`$%$05!415)?1&ES86)L94EN=&5R<G5P=',`041!4%1%4E]%
-M;F%B;&5);G1E<G)U<'1S`$%$05!415)?0VQE87));G1E<G)U<'1S`$%$05!4
-M15)?0VQE87)4>$1E<V,`041!4%1%4E]'971,:6YK4W!E960`041!4%1%4E]'
-M971,:6YK36]D90!!1$%05$527T=E=$QI;FM3=&%T90!!1$%05$527TES3&EN
-M:TEN:71I86QI>FEN9P!!1$%05$527U)E<V5T4&AY26YI=%-T871E`$%$05!4
-M15)?1V5T5')A;G-M:711=65U95-I>F4`041!4%1%4E]'971296-E:79E475E
-M=653:7IE`$%$05!415)?1V5T4W1A=&ES=&EC<P!!1$%05$527T=E=%!O=V5R
-M0V%P86)I;&ET:65S`$%$05!415)?1V5T4&]W97)3=&%T90!!1$%05$527U-E
-M=%!O=V5R4W1A=&4`041!4%1%4E]3971,;W=3<&5E9$9O<E!-`$%$05!415)?
-M1V5T4&%C:V5T1FEL=&5R0V%P<P!!1$%05$527U-E=%!A8VME=$9I;'1E<@!!
-M1$%05$527U-E=%=A:V55<%!A='1E<FX`041!4%1%4E]%;F%B;&5786ME57!0
-M871T97)N`$%$05!415)?4V5T3F]D94%D9')E<W,`041!4%1%4E]'971.;V1E
-M061D<F5S<P!!1$%05$527T=E=$%D87!T97));F9O`$%$05!415)?4V5T4W!E
-M961$=7!L97@`041!4%1%4E]296%D4&AY`$%$05!415)?5W)I=&50:'D`041!
-M4%1%4E]296=I<W1E<D]F9FQO860`041!4%1%4E]$95)E9VES=&5R3V9F;&]A
-M9`!!1$%05$527U)X0G5F9E)E861Y`$%$05!415)?4V5T0V]M;6]N1&%T80!!
-M1$%05$527U-E=$-H96-K<W5M3V9F;&]A9`!#<F5A=&5296-E:79E1&5S8W)I
-M<'1O<@!02%E?3W!E;@!$97-T<F]Y4F5C96EV941E<V-R:7!T;W(`37E.9&ES
-M4F%W5W)I=&50;W)T56QO;F<`37E.9&ES4F%W4F5A9%!O<G15;&]N9P!3971#
-M;VYF:6=3<&%C94]F9G-E=#8X0FET,3(`1V5T0V]N9FEG4W!A8V5/9F9S970V
-M.$)I=#$R`$%$05!415)?5V]R:V%R;W5N9%182&%N9P!!1$%05$527U)E8613
-M=&%T:7-T:6-296=S`%-T87)T4F5C96EV97)!;F1/<E1R86YS;6ET=&5R`%-T
-M;W!296-E:79E<D%N9$]R5')A;G-M:71T97(`;G9?;65M8W!Y`&UE;6-P>0!5
-M<&1A=&5296-E:79E1&5S8U)I;F=$871A`%5P9&%T951R86YS;6ET1&5S8U)I
-M;F=$871A`%5P9&%T94U)25-T871U<P!296%D4&AY4W1A='5S06YD4')O8V5S
-M<P!5<&1A=&5296-E:79E1&5S8U)I;F=$871A7T]F9FQO860`57!D871E5')A
-M;G-M:71$97-C4FEN9T1A=&%?3V9F;&]A9`!02%E?1V5T06-T:79E4&AY`%!(
-M65]3971,;W=3<&5E9$9O<E!-`%!(65]);FET`%!(65]);FET1F%S=`!02%E?
-M1&5I;FET`%!(65]'971,:6YK4W!E960`4$A97T=E=$QI;FM-;V1E`%!(65]'
-M971,:6YK4W1A=&5%>'1E<FYA;`!02%E?27-,:6YK26YI=&EA;&EZ:6YG`%!(
-M65]297-E=%!H>4EN:713=&%T90!02%E?0VQO<V4`4$A97U!O=V5R9&]W;@!0
-M2%E?1F]R8V53<&5E9$1U<&QE>`!0:'E4:6UE<D9U;F,`4$A97T1O4&]S=$%U
-M=&]N96=O=&EA=&EO;E!R;V-E<W-I;F<`1F]R8V53<&5E9$1U<&QE>`!02%E?
-M5V%I=$9O<DQI;FMU<`!02%E?4V5T4W!E961$=7!L97A&;W)&86EL961!=71O
-M;F5G;W1I871I;VX`4$A97T=E=%-P965D1'5P;&5X`%!H>41O4')E4F5S9710
-M<F]C97-S:6YG`%!H>41O4&]S=%)E<V5T4')O8V5S<VEN9P!02%E?4&]W97)U
-M<$%N9%)E;6]V94ES;VQA=&EO;@!02%E?4F5S970`4$A97T-O;7!L971E075T
-M;VYE9V]T:6%T:6]N`$9O<F-E4W!E961$=7!L97A4:')O=6=H0V]N=')O;%)E
-M9VES=&5R`$1U;6UY7T9O<F-E4W!E961$=7!L97@`4$A97T=E=$QI;FM3=&%T
-M90!N=E]M96US970`;G9?;65M8VUP`&YV7W=T;VD`;G9?871O:0!N=E]S=')C
-M:'(`;G9?<W1R<F5V`&UE;6-P>5]3>GI4;U-Z`$-O;G9E<G1)4$%D9')E<W-?
-M4W1R:6YG5&]50VAA<@!A<G)A>0``````[0$````````+````#P``````````
-M````]0$````````+````$```````````````_0$````````+````$0``````
-M````````!0(````````+````$@``````````````#0(````````+````$P``
-M````````````%0(````````+````%```````````````)P(````````+````
-M%0``````````````+@(````````+````%@``````````````-@(````````+
-M````%P``````````````/@(````````+````&```````````````4`(`````
-M```+````&0``````````````6`(````````+````&@``````````````7P(`
-M```````+````&P``````````````9@(````````+````'```````````````
-M=`(````````+````'0``````````````?`(````````+````'@``````````
-M````F`(````````+````'P``````````````HP(````````+````(```````
-M````````K@(````````+````(0``````````````N0(````````+````(@``
-M````````````Q`(````````+````(P``````````````SP(````````+````
-M)```````````````V@(````````+````)0``````````````Y0(````````+
-M````)@``````````````\`(````````+````)P``````````````^P(`````
-M```+````*```````````````!@,````````+````*0``````````````$0,`
-M```````+````*@``````````````'`,````````+````*P``````````````
-M)P,````````+````+```````````````,@,````````+````+0``````````
-M````/0,````````+````+@``````````````2`,````````+````+P``````
-M````````4P,````````+````,```````````````7@,````````+````,0``
-M````````````:0,````````+````,@``````````````=`,````````+````
-M,P``````````````?P,````````+````-```````````````B@,````````+
-M````-0``````````````E0,````````+````-@``````````````H`,`````
-M```+````-P``````````````JP,````````+````.```````````````M@,`
-M```````+````.0``````````````P0,````````+````.@``````````````
-MS`,````````+````.P``````````````UP,````````+````/```````````
-M````-@@````````"````/0```/S_________8`@````````+````-@``````
-M````````:P@````````+````-P``````````````$@D````````"````/@``
-M`/S_________8@D````````"````$@```/S_________L@D````````"````
-M/P```/S_________SPL````````"````0````/S_________V0L````````"
-M````00```/S_________[PL````````"````0````/S__________@L`````
-M```"````0````/S_________.`P````````"````0````/S_________0@P`
-M```````"````00```/S_________4PP````````"````0````/S_________
-MT@P````````"````%````/S_________%1,````````"````)0```/S_____
-M____118````````"````%````/S_________@A@````````"````$P```/S_
-M________LA@````````"````%````/S_________NA@````````"````10``
-M`/S_________A1D````````"````'P```/S_________DAD````````"````
-M1@```/S_________YAD````````"````'@```/S_________+!H````````"
-M````1P```/S_________.2@````````"````2````/S_________[2H`````
-M```"````10```/S_________!3(````````"````1P```/S_________4#(`
-M```````"````1@```/S_________4C0````````"````1P```/S_________
-M>30````````"````1@```/S_________[S0````````"````20```/S_____
-M____1S8````````"````2@```/S_________=C8````````"````2P```/S_
-M________Q#8````````"````3````/S_________(#<````````"````!```
-M`(P!````````+3<````````"````!````(P!````````-S<````````"````
-M30```/S_________/3<````````"````!````(@!````````ES<````````"
-M````3@```/S_________R3<````````"````3P```/S_________&#@`````
-M```"````3````/S_________=#@````````"````!````)`!````````@3@`
-M```````"````!````)`!````````BS@````````"````30```/S_________
-MD3@````````"````!````(P!````````\S@````````"````2@```/S_____
-M____(CD````````"````2P```/S_________<#D````````"````3````/S_
-M________RSD````````"````!````)0!````````V#D````````"````!```
-M`)0!````````XCD````````"````30```/S_________Z#D````````"````
-M!````)`!````````13H````````"````3@```/S_________>SH````````"
-M````3P```/S_________RSH````````"````3````/S_________)CL`````
-M```"````!````)@!````````,SL````````"````!````)@!````````/3L`
-M```````"````30```/S_________0SL````````"````!````)0!````````
-M!3X````````"````/0```/S_________'4$````````"````/0```/S_____
-M____#D0````````"````1P```/S_________%D0````````"````-0```/S_
-M________(T0````````"````1@```/S_________D$0````````"````-@``
-M`/S_________P40````````"````1P```/S_________R40````````"````
-M-0```/S_________UD0````````"````1@```/S_________14L````````"
-M````4````/S_________44L````````+````40``````````````74L`````
-M```+````4@``````````````94L````````+````4P``````````````;4L`
-M```````+````5```````````````=4L````````+````50``````````````
-M?4L````````+````5@``````````````A4L````````+````5P``````````
-M````C4L````````+````6```````````````E4L````````+````60``````
-M````````G4L````````+````6@``````````````I4L````````+````6P``
-M````````````K4L````````+````7```````````````$DP````````+````
-M70``````````````DDX````````"````5````/S_________J4X````````"
-M````7@```/S_________NDX````````"````5````/S_________T4X`````
-M```"````7P```/S_________)%`````````"````80```/S_________/5``
-M```````"````8````/S_________15`````````"````8@```/S_________
-MYE`````````"````8P```/S_________UE$````````"````9````/S_____
-M____75(````````"````7P```/S_________[5(````````"````80```/S_
-M________]U(````````"````8@```/S_________2E0````````"````90``
-M`/S_________650````````"````70```/S_________L50````````"````
-M90```/S_________\U0````````"````8P```/S_________!E4````````"
-M````9@```/S_________&%4````````"````9````/S_________*U4`````
-M```"````90```/S_________3U4````````"````9P```/S_________AE4`
-M```````"````8@```/S_________IE4````````"````8@```/S_________
-M9U@````````"````8````/S_________,5D````````"````:````/S_____
-M____-EL````````"````9P```/S_________2EL````````"````7@```/S_
-M________S5L````````"````90```/S_________^&,````````"````8```
-M`/S_________,F0````````"````:````/S_________/6<````````"````
-M9P```/S_________46<````````"````7@```/S_________6VT````````"
-M````:P```/S_________@FT````````"````;@```/S_________WVX`````
-M```"````:P```/S__________6X````````"````2````/S_________!6\`
-M```````"````;@```/S_________*F\````````"````;P```/S_________
-M5&\````````"````:P```/S_________9&\````````"````<````/S_____
-M____<6\````````"````;P```/S_________CF\````````"````<````/S_
-M________EF\````````"````;@```/S_________$0P````````"````0```
-M`/S_________```````````!````!0``````````````(``````````!````
-M`@``````````````6``````````!`````@```$`)````````B``````````!
-M`````@```+@+````````H``````````!`````@```+P+````````N```````
-M```!`````@```,`+````````V``````````!`````@```!P,````````^```
-M```````!`````@```(@,````````.`$````````!`````@```-@5````````
-M<`$````````!`````@```*08````````D`$````````!`````@```,08````
-M````N`$````````!`````@```$`9````````V`$````````!`````@```)P9
-M````````$`(````````!`````@```&P:````````*`(````````!`````@``
-M`(P:````````8`(````````!`````@```"@>````````F`(````````!````
-M`@```%`B````````L`(````````!`````@````0D````````V`(````````!
-M`````@```!PF````````\`(````````!`````@```&PF````````"`,`````
-M```!`````@```,0F````````0`,````````!`````@```)PG````````8`,`
-M```````!`````@```!@H````````@`,````````!`````@```*PH````````
-MF`,````````!`````@`````I````````L`,````````!`````@```#0J````
-M````T`,````````!`````@```$PJ````````\`,````````!`````@```&0J
-M````````$`0````````!`````@```'PJ````````,`0````````!`````@``
-M`*@J````````4`0````````!`````@```-`J````````:`0````````!````
-M`@```-@J````````@`0````````!`````@```.`J````````J`0````````!
-M`````@```.@N````````P`0````````!`````@```#@O````````V`0`````
-M```!`````@`````P````````\`0````````!`````@```-PP````````&`4`
-M```````!`````@```*0Q````````,`4````````!`````@```*PQ````````
-M<`4````````!`````@```(@R````````L`4````````!`````@```-@S````
-M````R`4````````!`````@```!PT````````\`4````````!`````@```)PT
-M````````"`8````````!`````@```+0T````````*`8````````!`````@``
-M`'`U````````0`8````````!`````@```(@U````````6`8````````!````
-M`@```*`U````````<`8````````!`````@```,@U````````B`8````````!
-M`````@````@V````````R`8````````!`````@```%@W````````"`<`````
-M```!`````@```+0X````````2`<````````!`````@````0Z````````B`<`
-M```````!`````@```&0[````````R`<````````!`````@```$0^````````
-M"`@````````!`````@```%Q!````````,`@````````!`````@```)A"````
-M````6`@````````!`````@```,Q#````````@`@````````!`````@```&!$
-M````````J`@````````!`````@```"!%````````T`@````````!`````@``
-M`*1&````````$`D````````!`````@```/1'````````4`D````````!````
-M`@```"Q)````````<`D````````!`````@```"A*````````B`D````````!
-M`````@```"Q*````````J`D````````!`````@```,A*````````Z`D`````
-M```!`````@```-1,````````$`H````````!`````@```+A-````````0`H`
-M```````!`````@```.1.````````@`H````````!`````@```+!/````````
-ML`H````````!`````@```&!0````````R`H````````!`````@```'!0````
-M````X`H````````!`````@```(!0````````"`L````````!`````@```(!3
-M````````0`L````````!`````@```'!4````````:`L````````!`````@``
-M`'A5````````B`L````````!`````@```)A5````````J`L````````!````
-M`@```+A5````````Z`L````````!`````@```+A8````````*`P````````!
-M`````@```'A;````````0`P````````!`````@```)!;````````6`P`````
-M```!`````@```)1;````````F`P````````!`````@```'Q=````````V`P`
-M```````!`````@```)Q>````````&`T````````!`````@```)Q?````````
-M4`T````````!`````@```*Q@````````B`T````````!`````@```&1A````
-M````J`T````````!`````@```+QA````````R`T````````!`````@```!1B
-M``````````X````````!`````@```$AD````````0`X````````!`````@``
-M`#1F````````@`X````````!`````@```'AG````````L`X````````!````
-M`@```*QJ````````X`X````````!`````@```+QL````````^`X````````!
-M`````@```.!L````````$`\````````!`````@```!AM````````*`\`````
-M```!`````@```$1M````````4`\````````!`````@```)!M````````:`\`
-M```````!`````@```+AM````````@`\````````!`````@````1N````````
-MF`\````````!`````@```'QN````````L`\````````!`````@```*AN````
-#````
-`
-end
diff --git a/sys/contrib/dev/nv/basetype.h b/sys/contrib/dev/nv/basetype.h
deleted file mode 100644 (file)
index fd38148..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-/***************************************************************************\
-|*                                                                           *|
-|*       Copyright 2001-2004 NVIDIA Corporation.  All Rights Reserved.       *|
-|*                                                                           *|
-|*     THE INFORMATION CONTAINED HEREIN  IS PROPRIETARY AND CONFIDENTIAL     *|
-|*     TO NVIDIA, CORPORATION.   USE,  REPRODUCTION OR DISCLOSURE TO ANY     *|
-|*     THIRD PARTY IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORP.       *|
-|*                                                                           *|
-|*     THE INFORMATION CONTAINED HEREIN IS PROVIDED  "AS IS" WITHOUT         *|
-|*     EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING ALL IMPLIED        *|
-|*     WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A     *|
-|*     PARTICULAR PURPOSE.                                                   *|
-|*                                                                           *|
-\***************************************************************************/ 
-
-
-/*++
-
-File:
-
-       basetype.h
-
-
-Abstract:
-
-       This file contains the base type definitions used by the networking driver.
-
-
-Revision History:
-
-       SNo.    Date            Author                          Description
-       1.      2/7/2000        AJha                            Created 
-
-*/
-
-#ifndef _BASETYPE_H_
-#define _BASETYPE_H_
-
-#ifndef IN
-#define IN
-#endif
-
-#ifndef OUT
-#define OUT
-#endif
-
-//
-// Useful "types"
-
-#ifndef NULL
-#define NULL            0
-#endif
-
-#ifndef TRUE
-#define TRUE            1
-#endif
-
-#ifndef FALSE
-#define FALSE           0
-#endif
-
-#if 1
-//
-// Don't use as these are going to be deleted soon. Use NV_ instead
-//
-#define VOID                void
-typedef VOID                *PVOID;
-
-typedef unsigned char   UCHAR;
-typedef UCHAR * PUCHAR;
-typedef unsigned short  USHORT;
-typedef USHORT * PUSHORT;
-#ifdef linux
-typedef unsigned int ULONG;
-#else
-typedef unsigned long ULONG;
-#endif
-typedef ULONG * PULONG;
-
-typedef char CHAR;
-typedef short SHORT;
-typedef long LONG;
-
-typedef unsigned int UINT;
-typedef unsigned int *PUINT;
-
-
-#endif
-
-
-#define NV_VOID                void
-typedef NV_VOID                *PNV_VOID;
-
-typedef unsigned long          NV_BOOLEAN, *PNV_BOOLEAN;
-
-typedef unsigned char          NV_UINT8, *PNV_UINT8;
-typedef unsigned short         NV_UINT16, *PNV_UINT16;
-#ifdef linux
-typedef unsigned int           NV_UINT32, *PNV_UINT32;
-#else
-typedef unsigned long          NV_UINT32, *PNV_UINT32;
-#endif
-
-typedef signed char            NV_SINT8,  *PNV_SINT8;
-typedef signed short           NV_SINT16, *PNV_SINT16;
-typedef signed long            NV_SINT32, *PNV_SINT32;
-
-
-#if defined(linux)
-
-    typedef unsigned long long           NV_UINT64, *PNV_UINT64;
-    typedef signed long long             NV_SINT64, *PNV_SINT64;
-
-#else
-    #if _MSC_VER >= 1200         // MSVC 6.0 onwards
-        typedef unsigned __int64       NV_UINT64, *PNV_UINT64;
-        typedef signed __int64                 NV_SINT64, *PNV_SINT64;
-    #else
-        typedef unsigned long          NV_UINT64, *PNV_UINT64;
-        typedef signed   long          NV_SINT64, *PNV_SINT64;
-    #endif
-
-#endif
-
-#ifndef _AMD64_
-typedef unsigned int    NV_UINT;
-typedef signed int      NV_INT;
-#else
-
-#if defined(linux)
-
-typedef unsigned long long  NV_UINT;
-typedef signed long long    NV_INT;
-
-#else
-
-typedef unsigned __int64    NV_UINT;
-typedef signed __int64      NV_INT;
-
-#endif
-#endif
-
-
-//
-// Floating point definitions
-//
-typedef float                 NV_REAL32;   // 4-byte floating point
-typedef double                NV_REAL64;   // 8-byte floating point
-
-
-
-//
-// Bit defintions
-//
-#define NV_BIT(bitpos)                  (1 << (bitpos))
-
-// NV_BIT_SET 
-// Sets the specified bit position (0..31). 
-// Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
-// x = 0xA0
-// NV_BIT_SET(x, 1)
-// Result: x = 0xA2
-#define NV_BIT_SET(bits, bitpos)        ((bits) |= (NV_BIT(bitpos)))
-
-// NV_BIT_CLEAR
-// Clears the specified bit position (0..31)
-// Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
-// x = 0xAA
-// NV_BIT_CLEAR(x, 1)
-// Result: x = 0xA8
-#define NV_BIT_CLEAR(bits, bitpos)      ((bits) &= (~NV_BIT(bitpos)))
-
-// NV_BIT_GET 
-// Gets the bit at the specified bit position (0..31)
-// Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
-// Result is either 1 or 0.
-// x = 0xAA
-// NV_BIT_GET(x, 1)
-// Result: x = 1
-#define NV_BIT_GET(bits, bitpos)        (((bits) >> (bitpos)) & 0x0001)
-
-
-// NV_BIT_GETVALUE
-// Gets the value from a 32 bit ULONG at specified bit position.
-// Parameter bits needs to be 4 bytes long.
-// Ex. ul32 = 0xFEDCBA98
-// ulVal = NV_BIT_GETVALUE(ul32, 3, 0)  : Gets value from Bit position 3 to 0
-// Result : ulVal = 8
-#define NV_BIT_GETVALUE(ulOrigValue, bitposHi, bitposLow)  (((ulOrigValue) >> (bitposLow)) & (~(0xFFFFFFFF << ((bitposHi) - (bitposLow) +1))))
-
-// NV_BIT_SETVALUE
-// Set a value in a 32 bit ULONG at a specific bit position.
-// Parameter bits needs to be 4 bytes long.
-// Ex. ul32 = 0xFEDCBA98
-// NV_BIT_SETVALUE(ul32, 0xF, 3, 0)  : Sets value at Bit position 3 to 0
-// Result : ul32 becomes 0xFEDCBA9F
-#define NV_BIT_SETVALUE(ulOrigValue, ulWindowValue, bitposHi, bitposLow)  \
-    ((ulOrigValue) = ((((ulOrigValue) & (~ ((0xFFFFFFFF >> (31 - (bitposHi))) & (0xFFFFFFFF << (bitposLow))))) | ((ulWindowValue) << (bitposLow)))))
-
-
-#define NV_BYTE(ulus, bytepos)  ((ulus >> (8 * (bytepos))) & 0xFF)
-
-
-#define SWAP_U16(us) ((((us) & 0x00FF) << 8) | \
-                      (((us) & 0xFF00) >> 8))
-
-#define SWAP_U32(ul) ((((ul) & 0x000000FF) << 24) |   \
-                        (((ul) & 0x0000FF00) <<  8) |    \
-                        (((ul) & 0x00FF0000) >>  8) |    \
-                        (((ul) & 0xFF000000) >> 24))
-
-#define NV_FIELD_OFFSET(TYPE, FIELD)  ((NV_UINT32)((NV_UINT64)&((TYPE *)0)->FIELD))
-
-#define ADDRESS_OFFSET(structure, member)       ((NV_UINT32) ((NV_UINT8 *) &(structure).member  \
-                                                            - (NV_UINT8 *) &(structure)))
-
-
-#define NV_MIN(a, b) ((a < b) ? a : b)
-#define NV_MAX(a, b) ((a > b) ? a : b)
-
-#ifdef AMD64
-#define PNV_VOID_TO_NV_UINT64(x)    ((NV_UINT64)(x))
-#define PNV_VOID_TO_NV_UINT32(x)    ((NV_UINT32)(NV_UINT64)(x))
-#define NV_UINT64_TO_PNV_VOID(x)    ((PNV_VOID)(x))
-#define NV_UINT32_TO_PNV_VOID(x)    ((PNV_VOID)(NV_UINT64)(x))
-#else
-#define PNV_VOID_TO_NV_UINT64(x)    ((NV_UINT64)(NV_UINT32)(x))
-#define PNV_VOID_TO_NV_UINT32(x)    ((NV_UINT32)(x))
-#define NV_UINT64_TO_PNV_VOID(x)    ((PNV_VOID)(NV_UINT32)(x))
-#define NV_UINT32_TO_PNV_VOID(x)    ((PNV_VOID)(x))
-#endif
-
-#define NV_MAKE_TAG32(s)            (((NV_UINT32)((s)[3]) << 24) | ((NV_UINT32)((s)[2]) << 16) | \
-                                     ((NV_UINT32)((s)[1]) <<  8) | ((NV_UINT32)((s)[0])))
-
-#define NV_MAKE_TAG64(s)            (((NV_UINT64)((s)[7]) << 56) | ((NV_UINT64)((s)[6]) << 48) | \
-                                     ((NV_UINT64)((s)[5]) << 40) | ((NV_UINT64)((s)[4]) << 32) | \
-                                     ((NV_UINT64)((s)[3]) << 24) | ((NV_UINT64)((s)[2]) << 16) | \
-                                     ((NV_UINT64)((s)[1]) <<  8) | ((NV_UINT64)((s)[0])))
-
-typedef union _NVLARGE_INTEGER {
-
-#if 0
-    // NO UNNAMED UNIONS ALLOWED !@
-    struct {
-        NV_UINT32   LowPart;
-        NV_SINT32   HighPart;
-    };
-#endif
-
-    struct {
-        NV_UINT32   LowPart;
-        NV_SINT32   HighPart;
-    } u;
-
-    NV_SINT64       QuadPart;
-
-} NVLARGE_INTEGER, *PNVLARGE_INTEGER;
-
-
-#ifndef LINUX
-typedef unsigned short NV_WCHAR;
-#else
-typedef unsigned long NV_WCHAR;
-#endif
-
-typedef NV_WCHAR *PNV_WSTR;
-
-#if defined(linux)
-#if !defined(NV_API_CALL)
-#if defined (__i386__)
-#define NV_API_CALL __attribute__ ((regparm(0)))
-#else
-#define NV_API_CALL
-#endif
-#endif
-#else
-#define NV_API_CALL
-#endif
-
-#endif // _BASETYPE_H_
diff --git a/sys/contrib/dev/nv/drvinfo.h b/sys/contrib/dev/nv/drvinfo.h
deleted file mode 100644 (file)
index 41c659a..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/***************************************************************************\
-|*                                                                           *|
-|*         Copyright 2001-2003 NVIDIA, Corporation.  All rights reserved.    *|
-|*                                                                           *|
-|*     THE INFORMATION CONTAINED HEREIN  IS PROPRIETARY AND CONFIDENTIAL     *|
-|*     TO NVIDIA, CORPORATION.   USE,  REPRODUCTION OR DISCLOSURE TO ANY     *|
-|*     THIRD PARTY IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORP.       *|
-|*                                                                           *|
-|*     THE INFORMATION CONTAINED HEREIN IS PROVIDED  "AS IS" WITHOUT         *|
-|*     EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING ALL IMPLIED        *|
-|*     WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A     *|
-|*     PARTICULAR PURPOSE.                                                   *|
-|*                                                                           *|
-\***************************************************************************/
-
-/*   
- *   This file contains the header info common to the network drivers and applications.
- *   Currently, these applications include ASF, co-installers, and qstats.
- *
- *
- */
-
-#ifndef _DRVINFO_H_
-#define _DRVINFO_H_
-
-// Switch to byte packing, regardless of global packing specified by the compiler switch
-#pragma pack(1)  
-
-//////////////////////////////////////////////////////////////////
-// For the ADAPTER_GetStatistics call used by qstats.  This 
-// is the template used by the legacy driver.
-#define MAX_TRANSMIT_COLISION_STATS     16
-
-#define ADAPTER_STATS_LEGACY_VERSION    1
-#define ADAPTER_STATS_RM_VERSION        2
-
-typedef struct  _ADAPTER_STATS_V1
-{
-    NV_UINT32   ulVersion;
-
-    NV_UINT32   ulSuccessfulTransmissions;
-    NV_UINT32   ulFailedTransmissions;
-    NV_UINT32   ulRetryErrors;
-    NV_UINT32   ulUnderflowErrors;
-    NV_UINT32   ulLossOfCarrierErrors;
-    NV_UINT32   ulLateCollisionErrors;
-    NV_UINT32   ulDeferredTransmissions;
-    NV_UINT32    ulExcessDeferredTransmissions;
-    NV_UINT32   aulSuccessfulTransmitsAfterCollisions[MAX_TRANSMIT_COLISION_STATS];
-
-    NV_UINT32   ulMissedFrames;
-    NV_UINT32   ulSuccessfulReceptions;
-    NV_UINT32   ulFailedReceptions;
-    NV_UINT32   ulCRCErrors;
-    NV_UINT32   ulFramingErrors;
-    NV_UINT32   ulOverFlowErrors;
-    NV_UINT32    ulFrameErrorsPrivate; //Not for public.
-    NV_UINT32    ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS
-
-    //interrupt related statistics
-    NV_UINT32   ulRxInterrupt;
-    NV_UINT32   ulRxInterruptUnsuccessful;
-    NV_UINT32   ulTxInterrupt;
-    NV_UINT32   ulTxInterruptUnsuccessful;
-    NV_UINT32   ulPhyInterrupt;
-
-}   ADAPTER_STATS_V1, *PADAPTER_STATS_V1;
-//////////////////////////////////////////////////////////////////
-
-//////////////////////////////////////////////////////////////////
-// For the ADAPTER_GetStatistics call used by qstats.  This 
-// is the template used by the FD.
-typedef struct  _ADAPTER_STATS
-{
-    NV_UINT32   ulVersion;
-    NV_UINT8    ulMacAddress[6];
-
-    //
-    // Tx counters.
-    //
-    NV_UINT64   ulSuccessfulTransmissions;
-    NV_UINT64   ulFailedTransmissions;
-    NV_UINT64   ulRetryErrors;
-    NV_UINT64   ulUnderflowErrors;
-    NV_UINT64   ulLossOfCarrierErrors;
-    NV_UINT64   ulLateCollisionErrors;
-    NV_UINT64   ulDeferredTransmissions;
-    NV_UINT64    ulExcessDeferredTransmissions;
-    NV_UINT64   aulSuccessfulTransmitsAfterCollisions[MAX_TRANSMIT_COLISION_STATS];
-
-    //
-    // New Tx counters for GigE.
-    //
-    NV_UINT64   ulTxByteCount;
-
-    //
-    // Rx counters.
-    //
-    NV_UINT64   ulMissedFrames;
-    NV_UINT64   ulSuccessfulReceptions;
-    NV_UINT64   ulFailedReceptions;
-    NV_UINT64   ulCRCErrors;
-    NV_UINT64   ulLengthErrors;
-    NV_UINT64   ulFramingErrors;
-    NV_UINT64   ulOverFlowErrors;
-    NV_UINT64   ulRxNoBuffer;
-    NV_UINT64   ulFrameErrorsPrivate; //Not for public.
-    NV_UINT64   ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS
-
-    //
-    // New Rx counters for GigE.
-    //
-    NV_UINT64   ulRxExtraByteCount;
-    NV_UINT64   ulRxFrameTooLongCount;
-    NV_UINT64   ulRxFrameAlignmentErrorCount;
-    NV_UINT64   ulRxLateCollisionErrors;
-    NV_UINT64   ulRxRuntPacketErrors;
-
-    NV_UINT64   ulRxUnicastFrameCount;
-    NV_UINT64   ulRxMulticastFrameCount;
-    NV_UINT64   ulRxBroadcastFrameCount;
-    NV_UINT64   ulRxPromiscuousModeFrameCount;
-
-    //Interrupt related statistics
-    NV_UINT64   ulRxInterrupt;
-    NV_UINT64   ulRxInterruptUnsuccessful;
-    NV_UINT64   ulTxInterrupt;
-    NV_UINT64   ulTxInterruptUnsuccessful;
-    NV_UINT64   ulPhyInterrupt;
-
-
-    //
-    // Handy things to know
-    //
-    NV_UINT64   ulDescriptorVersion;
-    NV_UINT64   ulPollingCfg;       // configured for cpu or throughput
-    NV_UINT64   ulPollingState;     // current optimizefor state.
-
-    NV_UINT64   ulNumTxDesc;
-    NV_UINT64   ulNumRxDesc;
-
-    // 
-    // Useful to determine if TX is stuck.
-    //
-    NV_UINT64   ulNumTxPktsQueued;
-    NV_UINT64   ulNumTxPktsInProgress;
-
-    //
-    // Rx Xsum Cntrs
-    //
-    NV_UINT64   ulNoRxPktsNoXsum;
-    NV_UINT64   ulNoRxPktsXsumIpPassTcpFail;
-    NV_UINT64   ulNoRxPktsXsumIpPassUdpFail;
-    NV_UINT64   ulNoRxPktsXsumIpFail;
-    NV_UINT64   ulNoRxPktsXsumIpPassNoTcpUdp;
-    NV_UINT64   ulNoRxPktsXsumIpPassTcpPass;
-    NV_UINT64   ulNoRxPktsXsumIpPassUdpPass;
-    NV_UINT64   ulNoRxPktsXsumReserved;
-
-#ifdef _PERF_LOOP_CNTRS
-    NV_UINT64  ulNumTxCmplsToProcess;
-    NV_UINT64  ulNumRxCmplsToProcess;
-    NV_UINT64  ulNumIntsToProcess;
-
-    NV_UINT64  IntLoop0Cnt;
-    NV_UINT64  IntLoop1Cnt;
-    NV_UINT64  IntLoop2Cnt;
-    NV_UINT64  IntLoop3Cnt;
-    NV_UINT64  IntLoop4Cnt;
-    NV_UINT64  IntLoop5Cnt;
-    NV_UINT64  IntLoop6To10Cnt;
-    NV_UINT64  IntLoop11Cnt;
-    NV_UINT64  IntMaxLoopCnt;
-
-    NV_UINT64   IntRxCnt0;
-    NV_UINT64   IntTxCnt0;
-
-    NV_UINT64   MaxRxLoopCnt;
-    NV_UINT64   MaxTxLoopCnt;
-
-#endif
-}   ADAPTER_STATS, *PADAPTER_STATS;
-//////////////////////////////////////////////////////////////////
-
-#pragma pack()  
-
-
-#endif   // #define _DRVINFO_H_
-
-
diff --git a/sys/contrib/dev/nv/i386/nvenetlib.o.uu b/sys/contrib/dev/nv/i386/nvenetlib.o.uu
deleted file mode 100644 (file)
index 0869d08..0000000
+++ /dev/null
@@ -1,868 +0,0 @@
-begin 644 nvenetlib.o
-M?T5,1@$!`0````````````$``P`!``````````````#<@````````#0`````
-M`"@`"P`(`````````````````%575E.#[""+="0TBVPD.(L^QT4``````,=$
-M)!B8%@``QT0D%`````"+!XD$)(U$)!")1"0$_U<$N@$```"%P`^$*00``(M<
-M)!")6P2+1"04B4,(BT0D&(E##(M6#(M&3(M.1(72B8-X%@``N`4````/1<*)
-M@S@6``"+1A")BW`6``"%P(F#/!8``'46ND````"#^0&X@`````]%T(F3/!8`
-M`(M&%(7`B8-`%@``=1:Z``$``(/Y`;@`!```#T70B9-`%@``BT8<BU88B8-(
-M%@``BT8@A=*)@TP6``"X!P````]%PHM6)(F#1!8``(M&"(F34!8``(F#-!8`
-M`(M&*(F#5!8``(M&+(7`B8-8%@``=`^%TG4+N`<```")@U`6``"+1C"%P(F#
-M7!8``'05BX-4%@``A<!U"[@'````B8-4%@``BT8TA<")@V`6```/A6P'``"Z
-MPP$``+@!````B9-@%@``B8-D%@``BU8\N/0!``"%T@]%PDF)@V@6``"+1D")
-M@VP6``"+1DB)@W06``"+1FB)N]@```")@Y06``"+1@3'0Q0`````QT,8````
-M`(D#QT,<`````,=#(`````#'0R0`````QT,H``````^$Q`8``,=#+`````"+
-M@S06``"Z`````,=#,`````"%P+@`````#T70O@````#'0S0`````N`````"Y
-M`````(F#@````+@`````B8.$````N`````")@Y0```"X`````(F#F````+@`
-M````B8.<````N`````")@Z````"X`````(E3.+H`````B8.D````N`````")
-MLX@```"^`````(F+C````+D`````B9.0````N@````")@Z@```"-0Q")D[0`
-M``")B[````#'0SP`````QT-``````,=#1`````#'0T@`````QT-,`````,=#
-M4`````#'0U0`````QT-8`````,=#7`````#'0V``````QT-D`````,=#:```
-M``#'0VP`````QT-P`````,=#=`````#'0W@`````QT-\`````(FSK````(E;
-M$(E%`(L'QT0D!`````")!"2-@V@$``")1"0(_U=0N@(```"%P`^$+`$``(N#
-M=!8``(F#+`0``(/`,(F#M!0``#'`@;M@%@``PP$``(F#O!0``+AD````B8,X
-M!```#X3U!```BXMP%@``N````$"Z``$``+UG````B:M`!```@_D!#T70N$<!
-M``")DSP"``")@SP$``"+LY06``"%]G0<,<"0C;0F`````(.D@S@$``"_0`^W
-MP&:#^`)V[HN#-!8``(7`#X5@!```BY-H%@``N(F(B(AITMP%``#WXHN#0`0`
-M`(F#1`0``,'J#8F33`0``+H"````B9,T!```2;H`!```N``!```/1<*)@^@!
-M``#!X`.)@_@!``"X`0```(F#]`$``+@"````9HF#_`$``+A`````9HF#_@$`
-M`(L'B00DC8/P`0``B40D!/]7#+H"````A<!U"H/$((G06UY?7<.+D_`!``"+
-M@^@!``")DQ`"``"-5,+XP>`"B8,D`@``,<")DQ0"``")@R`"``"+!XD$)(V#
-M'`(``(E$)`3_5P2Z`@```(7`=*Z+@^@!``"+DQP"``#!X`*)DR@"``")DRP"
-M``"-5!#\@\!`B8.@%```N`$```")DS`"``")@YP4``"+!XD$)(V#F!0``(E$
-M)`3_5P2Z`@```(7`#X16____BX.8%```,?;'!+``````1H/^#W;SBY/H`0``
-M,?8YUG,8BX.8%```9L=$L$"!`$:+D^@!```YUG+H,?:-M@````"-O"<`````
-MB?#!X@/!X`4!V+T!````B9#L````C9#@````B:CH````!>0```!FQT(0`@!F
-MQT(20`"+%XE$)`2)%"3_5PR%P`^$C@(``$:#_@=W"(N3Z`$``.NLBX.T%```
-MN0$```")BTP#``")@U`#``"+!XD$)(V#2`,``(E$)`3_5P2Z`@```(7`#X2$
-M_O__@[MP%@```;J`````N$`````/1<*Z`0```(F#"`,``,'@`XF#%`,``+@"
-M````9HF#&`,``+A`````B9,0`P``9HF#&@,``(L'B00DC8,,`P``B40D!/]7
-M#+H"````A<`/A!_^__^+@PP#```Q]HN3"`,``(F#+`,``#G6C430^(F#,`,`
-M`',:BY,L`P``BX-,`P``B03R1HN3"`,``#G6<N:-!)4`````B8-``P``,<")
-M@SP#``"+!XD$)(V#.`,``(E$)`3_5P2Z`@```(7`#X2O_?__BP<Q]HD$)(N#
-M.`,``(E$)`2+@T`#``")1"0(_U<4BX,X`P``B8-$`P``BP>)!"2+@S@#``")
-M1"0$BX-``P``B40D"/]7%#NS"`,```^"``$``(F;N````+@`"```O3(```")
-M@V0$``"^,@```+FX"P``B:O$````N`````"Z8`D``(F#O````+@`````B8/`
-M````N/0!``")@]0```"+@WP6``")L\@```")B\P```"%P(F3T````'0&B8/$
-M````BX.`%@``A<!T!HF#R````(N#A!8``(7`=`:)@\P```"+@X@6``"%P'0&
-MB8/0````BX.0%@``A<!T!HF#U````(V#N````(F#W````(V#W````(E$)`2-
-M@VP$``")1"0(C8-@!```B3PDB40D#.C\____N@4```"%P`^%</S__XN3;`0`
-M`(M$)#R)$#'2Z5W\__^)'"2+@RP#``"-!/!&B40D!.C\____.[,(`P``<N+I
-MW?[__[H"````Z3#\__^)]FG`W`4``+J)B(B(]^*+@S@$``")@T0$```QP,'J
-M#8F33`0``(F#-`0``.FD^___,<"+BW`6``")@SP"``"X7P```(F#/`0``+AG
-M````B8-`!```Z13[___'0RP`````BX,T%@``N@````#'0S``````A<"X````
-M`.DW^?__C78`/88```!T&3V,````=!(]Y@```'0+/=\````/A8KX__^X`@``
-M`(F#9!8``.EZ^/__55=64X/L"(M\)!P/MD0D((7_#X0.`0``#[;`BZ_8````
-MB40D!(D\).C\____BY?<````A=(/A2P"``"+ARP#``"%P'1+,?8[MP@#``!S
-M09")/"2-!/")1"0$Z/S___^+ARP#``!FQT3P!@``BX<L`P``9L=$\`0``$8[
-MMP@#``!S#HN'+`,``.O&C;8`````B[<X`P``A?8/A:$!``"+EPP#``"%T@^%
-M6P$``(N'2`,``(7`#X4M`0``B[<<`@``A?8/A=<```"+A_`!``"%P`^%D0``
-M`(N/F!0``(7)=6<Q]HG[C;8`````C;\`````BX/D````C9/D````A<!U,$:#
-MPR"#_@=VYS'`B8?D`0``BX?8````BQ")%"2-5P2)5"0$_U`(@\0(,<!;7E]=
-MPXM%`(E4)`2)!"3_51`QP(F#Y````.NYBT4`B00DC8>8%```B40D!/]5"#'2
-MB9>8%```Z7G___^+10`Q]C';B00DC8?P`0``B40D!/]5$(F?&`(``#'`B8?P
-M`0``,<")AQ`"``")MQ0"``#I-____XM%`#';B00DC8<<`@``B40D!/]5"#'`
-MB9\<`@``,<DQTHF',`(``#'`B8<T`@``,<")CR@"``")ERP"``")AS@"``#I
-MX?[__XM%`(D$)(V'2`,``(E$)`3_50@QP(F'2`,``.FS_O__BT4`B00DC8<,
-M`P``B40D!/]5$#'`B8<,`P``,<")ARP#```QP(F',`,``#'`B8<T`P``Z6W^
-M__^+10`QVXD$)(V'.`,``(E$)`3_50@QR8F?.`,``(F/1`,``.DW_O__BP*)
-M!"3_4A`QP(F'W````.F__?__PY")]C'`PY"#[`R)7"0(QP0D^`P``,=$)`0`
-M*`"`Z/S____'!"3\#```Z/S___\]WA#6`'0.BUPD"(/$#,.-M@````#'!"3X
-M#```QT0D!&C``(#H_/___\<$)/P,``#H_/___\<$)/@,``")PX'+``@``,=$
-M)`1HP`"`Z/S____'!"3\#```B5PD!.C\____ZZ2)]H/L#(E<)`B+7"00QP0D
-M^`P``,=$)`0`*`"`Z/S____'!"3\#```Z/S____'!"3X#```QT0D!&C``(#H
-M_/___\<$)/P,``#H_/___S'2A=L/1=#!Z`N#X`&)$XM<)`B#Q`S#B?955U93
-M@^PHBWPD/`^W1"1`B40D(`^V1"1$B$0D'P^V1"1(B$0D'@^V1"1,B$0D';`#
-MBZ_8````BS?'1"08`````(N/;!8``(7)=`*P`8D\)`^VP(E$)`3H_/___XN/
-M>!8``(7)=!V+AL`````E____[XG"@<H````020]$PHF&P````#'2B9:(`0``
-MBT4`B00DBX<0`@``B40D!(N'^`$``(E$)`C_512+10#'1"0(R````(D$)(V'
-M0`(``(E$)`3_512+10#'1"0(V````(D$)(V'5`,``(E$)`3_512+10#'1"0(
-M*````(D$)(V'<`0``(E$)`3_512#OW`6```!#X1."```,=L[GP@#``!S;8VV
-M`````(V_`````(N/+`,``(M$V02%P'@BBX=$`P``QP28`````(N7+`,``(N'
-M3`,``(D$VHN/+`,```^WERP$``"+1-D$2B4`P/__#[?2"=")1-D$BX<L`P``
-M@4S8!````(!#.Y\(`P``<I^+ARP#``")AS0#``"+ARP"``")AS0"``")AS@"
-M``"+AQ`"``")AQ@"``"+A^@!``")A^P!```QP(F&$`$``#'`B88,`0``N!0`
-M``")AD0!``"+AV`6```]A@```'0Q/88````/ASX'``"#^#</@A`'``"#^#AV
-M&(/H5H/X`0^'_P8``(VV`````(V_`````(M%`,=$)`0$````B00D_U48BX=@
-M%@``/88```!T,CV&````#X>:!@``@_@W#X);!@``@_@X=AF#Z%:#^`$/ATH&
-M``"-M@````"-O"<`````N`0````QV[K__P``B89$`0``N?____\QP(F&L```
-M`(F>M````(F.N````(F6O````,=&"`````"+A_0!``")A@`!``"+AQ`#``")
-MA@0!``"+AP@#``"+E^@!``!(2L'@$"4``/\#@>+_`P``"<*X"@`!`(F6"`$`
-M`(F&$`$``(._<!8```$/A*$%``"+AR06``"%P'0#B480N""`X`&)ACP!```Q
-MP(F&1`$``(N'N!0``(/(`HF&1`$``(._<!8```$/A!L%``"+AC`!```QVX7`
-M>#R-M@````"-OP````"+10!#QT0D!`4```")!"3_51B+AC`!``"%P'@4@?L/
-M)P``=MR-M@````"-OP`````QP(F&A`$``+@?````B8:``0``N---8A#'!O\!
-M``"+EHP!``"!XO\```"-%)*-%)+!X@SWXL'J!L'B`HF79`0``(N>P````('C
-M````$`^$:P0``+WH`P``NP(```")KR@6``"+E]P```"+`HD$)(M$)"")1"0$
-M#[9$)!^)1"0(#[9$)!Z)1"0,_U(H@'PD'0`/A?H#``"+E]P```"+`HE<)`B)
-M!"2+1"10B40D!/]2!(E$)!B%P'04@WPD&`RX!0```'0(@\0H6UY?7<.X/@\[
-M`+TH`'\`B8:`````BX:(````B8:(````B:Z,````BY^D%```BX<L!```A=N-
-M4`1U#HN/J!0``(7)#X1V`P``@\`(B8:0````BX:8````B?+!Z@B)AI@```")
-M\,'H$##"B?C!Z`@PPHGXP>@0,-!U`K`(@[]P%@```0^$(P,``+H(?P``B9:<
-M````N`\'%@")AJ````"X%@```(F&I````(N'-!8``(7`#X7;`@``BX=`!```
-MB8=$!```N`(```")AS0$```QP(F'4`0``(N'3`0``(E&#,=&"`,```"+AVP$
-M``#!X!@E````'PT```0`B8:(`0``B3PDZ/S___^%P'41BX:(`0``#0``$`")
-MAH@!``"]!0$``+L(````N7!W``")KHP!``")GH0!``")C@`"``"+AFP"```E
-M`(#__V:%P'01BX9L`@``#0"```")AFP"``"Z'P```(F6@`$``+K_`0``BX>4
-M%@``A<"XOP$```]%T(D6BX9L`@``#0`!``")AFP"``"+1"10A<!T#HM$)%"+
-M`(7`#X47`0``@'PD'0!T'8.G5`0``/NX_____XF'6`0``+C_____B8=<!```
-M@[]D%@```HN&1`$``(F'O!0``'0',<#I%O[__XN&E`(``(E$)"2+AI@"``")
-M1"0DBX:0`@``B40D)(N&H`(``(E$)"2+AIP"``")1"0DBX:$`@``B40D)(N&
-MB`(``(E$)"2+AHP"``")1"0DBX:``@``B40D)(N&O`(``(E$)"2+AJ0"``")
-M1"0DBX:X`@``B40D)(N&K`(``(E$)"2+AK`"``")1"0DBX;$`@``B40D)(N&
-MJ`(``(E$)"2+AK0"``")1"0DBX;``@``B40D)(N&R`(``(E$)"2+ALP"``")
-M1"0DBX;0`@``B40D).DB____@X]4!```!(N'W````(L0B10D_U`8B8=<!```
-M@_@"#X2<````BY?<````BP*)!"3_4A2)AU@$``"+EL````"+CIP```#WP@``
-M`!`/A+W^__^#XOP]`.'U!715/8"6F`!T0#T`RIH[="B)T('B__[__PT``0``
-M@[]<!````@]$PHF&P````(F.G````.E]_O__@>'_`/S_@\H"@<D`?P``Z\>!
-MX?\`_/^!R0!T``#KN8'A_P#\_X/*`8')`"T``.NHBX:`````@^#]B8:`````
-MZ5#___^+AS@$``")AT0$```QP(F'-`0``.DC_?__#[;`#0!_``")AIP```#I
-MU?S__XF6D````.F(_/__BY?<````BP*)7"0(B00DBT0D4(E$)`3_4@B)1"08
-MN`4```"+5"08A=+I!/S__[ED````NP$```")CR@6``#ID/O__XN&,`$``#';
-MA<`/B!W[__^-M@````"-O"<`````BT4`0\=$)`0%````B00D_U48BX8P`0``
-MA<`/B/#Z__^!^P\G``!VV.GC^O__N!``(`")ACP!``#I9_K__XM>-('C`/__
-M_XE>-(M%`,=$)`0$````B00D_U48BT0D%(F&J````(M$)!")AJP```#IC?G_
-M_SW?````#X2"^?__/=\```!W##V,````=;'I;_G__SWF````#X1D^?__/<,!
-M``#KYXN&J````(E$)!2+AJP```")1"00BUXT@<O_````B5XTZ>CX__\]WP``
-M``^$W?C__SW?````=PP]C````'7"Z<KX__\]Y@````^$O_C__SW#`0``Z^>+
-M1"08,=L[AP@#```/@Q?X__^-M@````"+CRP#```/MT39!B4`@/__9H7`=2*+
-MAT0#``#'!)@`````BY<L`P``BX=,`P``B03:BX\L`P``#[>'+`0``$AFB439
-M!(N'+`,``&;'1-@&`(!#.Y\(`P``<J;ILO?__Y!55U93@^P<BWPD,(L'B40D
-M&(N7V````(E4)!2+E^0!``")T$*#X`?!X`6-!#B-B.0```")3"00B9?D`0``
-MBYCD````BTPD%(E<)`R+7"00BQ&)%"2+@.0```")1"0$BT,(B40D"/]1%+`#
-MB[=L%@``A?9T`K`!B3PD#[;`N_____^)1"0$Z/S___^+1"08B9B(````BZ\T
-M`@``.Z\X`@``='R-M"8`````C;PG`````(M5`(M<)`R+,HM*!(T$\XU8^(E$
-M)`R%]HE:!'XXC78`BP&)`X._<!8```$/A`\"``"+000-````@(E#!(G(@^D(
-M.X<0`@``#X3C`0``3H/K"(7V?\N)Z(/%!#N',`(```^$N@$``#NO.`(``'62
-MBTPD$+T$````,?:+E_`!``"+`8F'\`$``(M!!(D1BY?T`0``B8?T`0``B5$$
-M,<F+E_`!``"+A^@!``")EQ`"``"-1,+X,=*)AQ0"``"+ARP#``"+7"0,B8<T
-M`P``B9\8`@``BT0D&(F($`$``(F0#`$``(N'N!0``(M4)!B#R`*)@D0!``"+
-M3"04BP''1"0$!````(D$)/]1&(M<)!B)JT0!``#'0P@`````BX?T`0``B8,`
-M`0``BX<0`P``B8,$`0``BX<(`P``BY?H`0``2$K!X!`E``#_`X'B_P,```G"
-MB9,(`0``B;-$`0``BX>X%```@\@"B8-$`0``@[]P%@```71MBTPD&#';BX$P
-M`0``A<!X.(VV`````(V\)P````"+5"040XL"QT0D!`4```")!"3_4AB+3"08
-MBX$P`0``A<!X"('[#R<``';5B3PDZ/S___^+7"08BX>X%```@\@!B8-$`0``
-M@\0<,<!;7E]=PXM4)!@QVXN",`$``(7`>,N+3"040XL!QT0D!`4```")!"3_
-M41B+5"08BX(P`0``A<!XJ('[#R<``';5ZYZ-=@"+KRP"``#I._[__Y"-="8`
-MBX\4`@``Z1+^__^0C70F``^W001FB4,$#[=!!@T`@/__9HE#!NGB_?__B?:#
-M[`R)7"0(BUPD$`^V1"04A=MT%XD<)`^VP(E$)`3H_/___XD<).C\____BUPD
-M"#'`@\0,PY")]E93@^P,BUPD&(7;=%B+DS0"``"+L]@````[DS@"``!T1(UT
-M)@"-O"<`````.Y,P`@``C4($BPJ)@S0"``!T+HL&B4PD!(D$)(N#3!8``(E$
-M)`C_5B2+@S0"```[@S@"``")PG7'@\0,,<!;7L.+@RP"``")@S0"``#KQ)"#
-M[`R)7"0(BUPD$(L3BX)L`@``)0"`__]FA<!T$8N";`(```T`@```B8)L`@``
-MBX)L`@``#0`!``")@FP"``"+@H@!```-```0`(F"B`$``(D<).C\____B1PD
-MQT0D!`,```#H_/___XM<)`@QP(/$#,.)]E575E.#[`R+;"0@#[9$)"2(1"0+
-M)`&$P(M]`(NUV`````^%H@```(N%;`0``,'@&"4````?#0``%`")AX@!```Q
-MVXDL).C\____BX6X%```@\@$B8=$`0``C78`BX=$`0``@^`(=1F+!D/'1"0$
-M,@```(D$)/]6&('[#R<``';<#[9$)`N)+"2)1"0$Z/S___^+A;@4``"#R!2)
-MAT0!``"+!L=$)`0$````B00D_U88BX6X%```@\@$B8=$`0``@\0,,<!;7E]=
-MPXN'B`$``"7__^__Z6'___^0B?:+1"0$BXBD%```A<EU"HN0J!0``(72=`J+
-M@.P!``"#Z`C#BX#L`0``@^@%PU575E.#[!B+1"0LBU0D,(M,)"R+`(E$)!0/
-MME(,B%0D"XN!I!0``(7`#X5&`0``BX&H%```A<`/A3@!``"+7"0PBX'L`0``
-MBQ,YT`^&'0$``"G0BWL(B8'L`0``BP.)!XMT)"R+1"0PBYD8`@``BXX0`@``
-MBRB+EN@!```IR\'[`P'K2HU#_R'0C33!B7<$BU0D+(N"Z`$``$@APXN"$`(`
-M`(T$V(F"&`(``&;'0`8``(N".`(``(DXBTPD+(N1.`(``#N1,`(``(U"!(F!
-M.`(```^$A0```(M$)#"+5"0LBQA+C6S8%`^W@CP"```-`8#__X7;#[?X>#J-
-M=@"-O"<`````BT4`B?*)!HM%!&:)?@:_`(```$AFB48$@^X(BTPD+#N1$`(`
-M`'0J@^T(2WG3C78`BUPD+(MT)!2+@[@4``"#R`&)AD0!```QP(/$&%M>7UW#
-MB[$4`@``Z\Z+@2P"``")@3@"``#I:O___[@$````Z]C'1"00`````(M$)"S'
-M1"0,`````(N0I!0``(72#X6-`@``BX"H%```A<!T0X7`=!.`?"0+`+@"````
-M#T1$)!")1"00BT0D$(7`="2+5"0P@WH$.W<:BTPD+(N!K!0``(7`=`S_1"00
-MQT0D#`$```"+7"0PBT0D$(MT)"R+*P'H*8;L`0``BX88`@``BTPD,(E$)`2+
-MGA`"``"+.8M4)!"+CN@!```IV`'ZP?@#`=!)C5#_(<@ARHT$PXTTTXM<)"R)
-M@Q@"``!FQT`&``"+1"0PBU0D,(MX"(L*BT0D$(EW!`'(B0>+@S@"``").(N3
-M.`(``#N3,`(``(U"!(F#.`(```^$EP$``(M,)#"+5"0LBQD/MX(\`@``2XUL
-MV10-`8#__X7;#[?X#XB2_O__#[9,)`O`X06(3"0#C;8`````BT0D#(7`=$6+
-M5"0LB?&+@IP4``")!HM$)#`/MU`$9HE^!K@[````*=!FB48$@^X(BU0D+#N*
-M$`(```^$%`$``,=$)`P`````OP"```"+1"00A<!T!(7;=#^+10")\HD&BT4$
-M9HE^!K\`@```2&:)1@2#[@B+3"0L.Y$0`@``=!"#[0A+#XEV____Z?']__^0
-MB[$4`@``Z^B+10")\H/`#(D&BT4$9HE^!H/H#6:)1@2#[@B+3"0LBX$0`@``
-M.<(/A(0````I1"0$BUPD+,%L)`0#BX.P%```BXN8%```BU0D!,'H""0/"$0D
-M`\'B`@'1#[9$)`.#P4"(00(/MH.P%```B$$#B?"+NYP4``!FQT8&`(!FQT8$
-M`P`!^H/"0(D6@^X(.X,0`@``=!:+10!FQT8&`(!FQT8$"P")!ND__?__B[,4
-M`@``Z^*+L10"``#I<?___XNR%`(``.GA_O__BX,L`@``B8,X`@``Z5C^___'
-M1"00`@```.F'_?__D(GV55=64X/L'(M$)#"+5"0TBTPD,(L`B40D&`^V4@R(
-M5"0/BX&D%```A<`/A:4!``"+@:@4``"%P`^%EP$``(M<)#2+@>P!``"+$SG0
-M#X9\`0``*=")WHM;"(F![`$``(L&B0.+1"0PBRZ+N1@"``"+="0PBX@0`@``
-MBY;H`0``*<_!_P,![TJ-1_\AT(TTP8ES!(M4)#"+@N@!``!((<>+@A`"``"-
-M!/B)@A@"``"!8`3___\?BX(X`@``B1B+3"0PBY$X`@``.Y$P`@``C4($B8$X
-M`@``#X3A````BUPD-(M$)#"+.XN0/`(``$^!R@```*")5"0(A?^-;/L4>&*)
-M]HM%`#';A?^)!G4=BTPD-(M!$(L0]\(!````=':+6`3!XPZ!RP```!"+502)
-MV(M,)`@E`,#__TH/M]()T(GR"<B)1@2#[@B+7"0PQT0D"````(`[DQ`"``!T
-M,(/M"$]YH(MT)!B+AD0!``"#R`&)AD0!``"-M@````"-O"<`````,<"#Q!Q;
-M7E]=PXNS%`(``.O(]\("````=(Z)T(G3P>@#P>H$"<+!XQ:#X@&!XP````C!
-MXAH)T^EL____BX$L`@``B8$X`@``Z0[___^X!````.NNQT0D%`````"+1"0P
-MQT0D$`````"+D*04``"%T@^%"@,``(N`J!0``(7`=%"%P'03@'PD#P"X`@``
-M``]$1"04B40D%(M$)!2%P'0QBU0D-(-Z!#MW)XM,)#"+@:P4``"%P'09_T0D
-M%,=$)!`!````C;8`````C;PG`````(M<)#2+1"04BW0D,(LK`>@IANP!``"+
-MAA@"``"+3"0TB40D!(N>$`(``(M4)!2+.2G8BX[H`0```?K!^`,!T$F-4/\A
-MR"'*C03#C333BUPD,(F#&`(``(%@!/___Q^+1"0TBU0D-(M8"(L*BT0D%(ES
-M!`'(B0.+3"0PBX$X`@``B1B+D3@"```[D3`"``"-0@2)@3@"```/A`("``"+
-M7"0TBT0D,(L[BY`\`@``3X'*````H(E4)`B%_XUL^Q0/B-0````/MDPD#\#A
-M!8A,)`.+1"00A<!T3(M<)#")\8N#G!0``(D&BT0D-`^W4`2X.P```"G0#[?8
-MBT0D"`G#B5X$@^X(BU0D,#N*$`(```^$@`$``,=$)`@```"`QT0D$`````"+
-M1"04A<!T"(7_#X2N````BT4`,=N%_XD&=1V+5"0TBT(0BQ#WP@$```!T:(M8
-M!,'C#H'+````$(M5!(G8BTPD""4`P/__2@^WT@G0B?()R(E&!(/N"(M,)##'
-M1"0(````@#N1$`(``'0B@^T(3P^)./___XM<)!B+@T0!``"#R`&)@T0!``#I
-M@/W__XNQ%`(``.O6]\("````=)R)T(G3P>@#P>H$"<+!XQ:#X@&!XP````C!
-MXAH)T^EZ____BT4`B?*#P`R)!HM%!(/H#0^WV(M$)`@)PXE>!(/N"(M,)#"+
-M@1`"```YPG1Z*40D!(M<)##!;"0$`XN#L!0``(N+F!0``(M4)`3!Z`@D#PA$
-M)`/!X@(!T0^V1"0#@\%`B$$"#[:#L!0``(A!`XGPB[N<%```QT8$`P``@`'Z
-M@\)`B1:#[@@[@Q`"``!T$8M%`,=&!`L``(")!ND7____B[,4`@``Z^>+L10"
-M``#I>____XNR%`(``.EU_O__BX$L`@``B8$X`@``Z>W]___'1"04`@```.D*
-M_?__D(GV55=64X/L"(M\)!R+1"0@BQ>)5"0$BV@0BU@$BX?L`0``BU4`*=")
-MA^P!``"+10")`XNW&`(``(N/$`(``(M%`(N7Z`$``"G.P?X#`<9*C4;_(="-
-M#,&)2P2+AQ@"``")!"2+A^@!``!((<:+AQ`"``"-!/")AQ@"``!FQT`&``"+
-MAS@"``")&(N7.`(``#N7,`(``(U"!(F'.`(```^$!@$``(MU`$Z)\,'@!(U4
-M*`@/MX<\`@``#0&`__^%]@^WV'@\C;8`````C;PG`````(-Z"`UV2HL"B0$/
-MMT((9HE9!KL`@```2&:)002)R(/I"#N'$`(``'0?@^H03GG1BT0D!+H!````
-MB9!$`0``,<"#Q`A;7E]=PXN/%`(``.O9B<B#P0@[AQ0"``!T=#N/&`(``'0F
-MC70F`(V\)P````!FQT$&``")R(/!"#N'%`(``'1&.X\8`@``=>6+%"2)EQ@"
-M``"+ES@"``"+10`!A^P!``"-0OP[ERP"``")AS@"``!T![@&````ZX6+AS`"
-M``")AS@"``#KZXN/$`(``.NRBX\0`@``ZX2+ARP"``")AS@"``#IZ?[__XGV
-M55=64X/L$(ML)"2+5"0HBT4`B40D#(M$)"B+4A")%"2+"HM8!(N%[`$``"G(
-MB87L`0``BP*)`XNU&`(``(N-$`(``(LZBY7H`0``*<[!_@,!_DJ-1O\AT(T,
-MP8E+!(N5&`(``(E4)`B+A>@!``!((<:+A1`"``"-!/")A1@"``"!8`3___\?
-MBX4X`@``B1B+E3@"``"-0@2)A3@"```[E3`"```/A'T!``"+'"2+,TZ)\,'@
-M!(U\&`B+A3P"```-````H(7VB40D!'AKD(VT)@````"#?P@-#X:R````BP>)
-M`0^W1PA(A?8/M]!U)8M<)"B+0PR+&/?#`0```'1=BT`$@>+_/P#PP>`."<*!
-MR@```!"+7"0$B<@)VHE1!(/I",=$)`0```"`.X40`@``=".#[Q!.>9V+7"0,
-MBX-$`0``@\@!B8-$`0``,<"#Q!!;7E]=PXN-%`(``.O5]\,"````=*^)V,'@
-M%B4````(@>+____W"<*)V,'H`X'B____^\'K!`G#@^,!P>,:"=KK@XG(@\$(
-M.X44`@``='\[C1@"``!T*^L-D)"0D)"0D)"0D)"0D(%A!/___Q^)R(/!"#N%
-M%`(``'1,.XT8`@``=>2+1"0(B848`@``BQ0DBP(!A>P!``"+E3@"```[E2P"
-M``"-0OR)A3@"``!T"K@&````Z4;___^+A3`"``")A3@"``#KZ(N-$`(``.NL
-MBXT0`@``Z7;___^+A2P"``")A3@"``#I<O[__XM4)`B+3"0$BP*#^`)T/8/X
-M`G<@2'0&N`(```##N`$```")@:04``"+0@2)@;`4```QP,.#^`1UWK@!````
-MB8&L%```Z^N-M@````"X`0```(F!J!0``.O8D(GVBT0D"(M4)`2+`(/X`G0S
-M@_@"=Q](=`FX`@```,.-=@`QR3'`B8JD%```B8*P%```,<##@_@$==\QP(F"
-MK!0``.ON,<")@J@4``#KY%575E.#[`B+;"0@BU0D'/?%`0```(LZB[+8````
-M=`^+AY0```"#X/Z)AY0```#WQ0(```!T#XN'A````(/@_HF'A````/:"5`0`
-M``1U"HN"8`0``(7`=$LQVXUV`(V\)P````#WQ0$```!T"XN'F````(/@`743
-M]\4"````="2+AX@```"#X`%T&8L&0\=$)`0*````B00D_U88@?M/PP``=L&+
-M!L=$)`0R````B00D_U88BP;'1"0$,@```(D$)/]6&/?%`0```'0(,?:)MQ`!
-M``"#Y0)T"#';B9\,`0``@\0(,<!;7E]=PXGV@^P,BU0D%(ET)`B+3"00ON@#
-M``")7"0$]\("````BQET#XN#A````(/(`8F#A````(/B`742BUPD!#'`BW0D
-M"(/$#,.-="8`BY'<````BP*)!"3_4A0]`.'U!;AD````#T3PB?`E__\```T`
-M``$`B8,0`0``BX.4````@\@!B8.4````Z[")]H/L%(E<)`R+7"08B70D$(MT
-M)!R-@_@5``")!"2)="0$QT0D"#````#H_/___X.[<!8```)T*C'`B8.X%```
-MBT8HA<!T"[@`(```B8.X%```BUPD#(MT)!"#Q!3#C70F`+H``0``B9.X%```
-MBT8HA<!T"[@`(0``B8.X%```BX,$%@``J0`$``!U%JD`$```=0^I``@``'2X
-MD(VT)@````"!B[@4````!```ZZ2+1"0(BU0D!*D`!```B8((%@``BPIU':D`
-M"```=1:I`!```'0OZPV0D)"0D)"0D)"0D)"0@8JX%`````0``(N!1`$```T`
-M!```B8%$`0``PXUT)@"!HK@4``#_^___BX%$`0``)?_[___KWI!64XM$)`R+
-M,(.X9!8```*-B$`"``"-F%0#``!T"[@'````6U[#C78`BX:4`@``,=(!01`1
-M410QTHN&F`(```%!(!%1)#'2BX:0`@```4$8$5$<,=*+AJ`"```!02@142PQ
-MTHN&G`(```%!.!%1/#'2BX:$`@```4%`$5%$,=*+AH@"```!04@144PQTHN&
-MC`(```%!4!%15#'2BX:``@```8'`````$9'$````,=*+AKP"```!0R@14RPQ
-MTHN&I`(```%#&!%3'#'2BX:X`@```4,@$5,D,=*+AJP"```!0T`14T0QTHN&
-ML`(```%#2!%33#'2BX;$`@```4,P$5,T,=*+AJ@"```!@Z`````1DZ0````Q
-MTHN&M`(```&#J````!&3K````#'2BX;``@```8.P````$9.T````,=*+AL@"
-M```!@[@````1D[P````QTHN&S`(```&#P````!&3Q````#'2BX;0`@```8/(
-M````$9/,````,<#IH_[__Y"#[`2+1"0(BY#<````BP*)!"3_4B19PY"#[`2+
-M1"0(BY#<````BP*)!"3_4B!:PY"#[`B+1"0,BY#<````BP*)!"2+1"00B40D
-M!/]2'(/$"#'`PY"#[`2+1"0(BY#<````BX!8!```@_C_=`)9PXL"B00D_U(4
-MZ_2#[`2+1"0(BY#<````BX!<!```@_C_=`A:PXVV`````(L"B00D_U(8Z^Z)
-M]HM$)`2+@.@!``##D(M$)`2+@`@#``##D%575E.#[`2+7"08BW0D'(D<).C\
-M____@[MD%@```@^$)@4``(N#0`(``#')BY-$`@``B48*B58.BX-(`@``BY-,
-M`@``B482B586BX-H`@``BY-L`@``B48:B58>BX-0`@``BY-4`@``B48BB58F
-MBX-@`@``BY-D`@``B48JB58NBX-8`@``BY-<`@``B48RB58VBX-P`@``BY-T
-M`@``B48ZB58^BX-X`@``BY-\`@``B49"B59&C;8`````BX3+@`(``(N4RX0"
-M``")1,Y*B53.3D&#^1!RY(N#9`,``(N3:`,``(F&T@```(F6U@```(N#5`,`
-M`(N36`,``(F&V@```(F6W@```(N#7`,``(N38`,``(F&X@```(F6Y@```(N#
-M?`,``(N3@`,``(F&Z@```(F6[@```(N#A`,``(N3B`,``(F&\@```(F6]@``
-M`(N#;`,``(N3<`,``(F&^@```(F6_@```(N#=`,``(N3>`,``(F&`@$``(F6
-M!@$``(.[9!8```(/A,@"``"X_____[W_____O_____^)ABH!``"Y_____[K_
-M____B:[*````N/____^]_____XF&+@$``+C_____B88R`0``N/____^)AC8!
-M``"X_____XF&.@$``+C_____B88^`0``N/____^)AEH!``"X_____XF&7@$`
-M`+C_____B;[.````O_____^)CB(!``"Y_____XF6)@$``+K_____B89B`0``
-MN/____^)KDH!``")ODX!``")CE(!``")EE8!``")AF8!``"+@W`$``"+DW0$
-M``")AFH!``")EFX!``"+@W@$``"+DWP$``")AG(!``")EG8!``"+@X`$``"+
-MDX0$``")AGH!``")EGX!``"+@X@$``"+DXP$``")AH(!``")EH8!``"+@Y`$
-M``"+DY0$``")AHH!``")EHX!``"#NW`6```"#X2X````N/____^]_____[__
-M____B8;*`0``N_____^Y_____XFNT@$``+C_____NO____^)ALX!``"]____
-M_[C_____B8;F`0``N/____^)ANH!``"X_____XF&[@$``+C_____B8;R`0``
-MN/____^)OM8!``"______XF>V@$``+O_____B8;V`0``N/____^)CMX!``")
-MEN(!``")AOH!``")KOX!``")O@("``")G@8"``!9,<!;7E]=PXN#M`,``(N3
-MN`,``(F&R@$``(F6S@$``(N#O`,``(N3P`,``(F&T@$``(F6U@$``(N#Q`,`
-M`(N3R`,``(F&V@$``(F6W@$``(N#S`,``(N3T`,``(F&X@$``(F6Y@$``(N#
-MU`,``(N3V`,``(F&Z@$``(F6[@$``(N#W`,``(N3X`,``(F&\@$``(F6]@$`
-M`(N#Y`,``(N3Z`,``(F&^@$``(F6_@$``(N#[`,``(N3\`,``(F&`@(``(F6
-M!@(``.DS____BX,``P``BY,$`P``B8;*````B9;.````BX/T`P``BY/X`P``
-MB88B`0``B98F`0``BX/\`P``BY,`!```B88J`0``B98N`0``BX,$!```BY,(
-M!```B88R`0``B98V`0``BX.4`P``BY.8`P``B88Z`0``B98^`0``BX.<`P``
-MBY.@`P``B89"`0``B99&`0``BX,,!```BY,0!```B89*`0``B99.`0``BX,4
-M!```BY,8!```B892`0``B996`0``BY,@!```BX,<!```B89:`0``B99>`0``
-MBX,D!```BY,H!```B89B`0``B99F`0``Z0G]__^+@X`"``"+DX0"``"+NPP$
-M```#@X@"``"+JQ`$```3DXP"```#@Y`"```3DY0"``")@T`"``"+@U`"```#
-M@V`"``")DT0"``"+DU0"```3DV0"```#@U@"```3DUP"```#@V@"```3DVP"
-M```#@W@"```3DWP"```#NQ0$``")@T@"```3JQ@$```#NQP$``")DTP"```3
-MJR`$``")NU0#``"+DX`#``"+@WP#```#@VP#``")JU@#```3DW`#```#@W0#
-M```3DW@#```#@Y0#```3DY@#```#@YP#```3DZ`#```#@X0#```3DX@#```#
-M@_0#```3D_@#```#@_P#```3DP`$```#@P0$```3DP@$``"#NW`6```"B8-<
-M`P``B9-@`P``#X6M^?__BX.T`P``BY.X`P```X.\`P``$Y/``P```X/$`P``
-M$Y/(`P```X/,`P``$Y/0`P```X/4`P``$Y/8`P```X/<`P``$Y/@`P```X/D
-M`P``$Y/H`P```X/L`P``$Y/P`P``*?B)@R0$```9ZHF3*`0``.DX^?__BT0D
-M!(M4)`B+`,<"`0```(N`:`(``*D```!`=`;'`@D```"I````!'0#@PH$J0``
-M``)T`X,*`L="!`\````QP,=""`\```#'0@P/````QT(0!0```,.)]HM$)`2+
-M5"0(BPB+@6P"``"#X`.%P(D"#X6Q````QP(!````BX$``@``QT($`````*D!
-M````=`?'0@0!````J1````!T!(-*!`*I``$``'0$@TH$!*D`$```=`2#2@0(
-MQT((`````*D"````=`?'0@@!````J2````!T!(-*"`*I``(``'0$@TH(!*D`
-M(```=`2#2@@(QT(,`````*D$````=`?'0@P!````J4````!T!(-*#`*I``0`
-M`'0$@TH,!*D`0```=`2#2@P(,<##@_@!=!>#^`(/E<`/ML"-!(4$````B0+I
-M.?___\<"`@```.DN____D(GV5E.+1"0,BUPD$(LPBTL$BX8``@``)8B(__^)
-MPH/*`??!`0````]%PHG"@\H0]\$"````#T7"B<*!R@`!``#WP00````/1<*)
-MPH'*`!```(/A"(M+"`]%PHG"@\H"]\$!````#T7"B<*#RB#WP0(````/1<*)
-MPH'*``(``/?!!`````]%PHG"@<H`(```@^$(BTL,#T7"B<*#R@3WP0$````/
-M1<*)PH/*0/?!`@````]%PHG"@<H`!```]\$$````#T7"B<*!R@!```"#X0@/
-M1<*Z`````(F&``(``(L+]\$!````#T7"N@$```#WP0(````/1<*Z`@```/?!
-M!`````]%PKH#````@^$(#T7"#0`!``")AFP"```QP%M>PXGV@^P4,<")7"0$
-MBUPD&(ET)`B)?"0,B6PD$(LSBXO<````BY;`````@>(````0=12+7"0$BW0D
-M"(M\)`R+;"00@\04PXL!B00D_U$PA<")QW7>BY/<````BP*)!"3_4AB+D]P`
-M``")Q8L"B00D_U(4BY;`````]\(````0B<%T.(/B_#T`X?4%=#4]@):8`'0.
-MB="#R`*!^0#*FCL/1-")T('B__[__PT``0``@_T"#T3"B8;`````B?CI<?__
-M_X/*`>O;D+@/````PXGV55=64X/L$(M$)"2+?"0HBS"+%XN>C````(/CWX'+
-M@````(G8@\@@]\(!````#T78]\("````=%>-5PJ#RR"-;P2)5"0,BX:4````
-M@^`!B40D"`^%?````(M'!(/(`8F&L`````^W102)AK0```"+1PJ)AK@```"+
-M5"0,#[="!(F&O````(M$)`B%P'4NBQ?WP@0```!T"8/+(('C?____XG8@^#?
-M@^((#T78,<")GHP```"#Q!!;7E]=P\=$)`0!````BT0D)(D$).C\____Z[R-
-M=@#'1"0$`0```(M$)"2)!"3H_/___^EK____D(GV55=6OO____]3,=N#[!2+
-M1"0HBWPD,(N0V````(E4)!"+`(E$)`R-M"8`````C;PG`````(/[_XU#'XG9
-M#T_#N@$```"#X1_!^`73XH44AW0M#[9$'Q"Z!P```#'P#[;`C70F`*D!````
-M#X3E````T>@U((.X[4IYZ\'N"#'&0X/[?WZPBTPD#+@```$`]]:+B0`"``")
-M3"0(#[9,)"S3X(5$)`AT$HM4)`CWT"'0BU0D#(F"``(```^V3"0LO0````$Q
-MV]/EBU0D#(N"``(``(7%=!J+3"000XL!QT0D!#(```")!"3_41B#^V-^V(M4
-M)"R+3"0,C022C02!B;`$`@``BQ>)D`@"``"+5P2)D`P"``"+5PB)D!`"``"+
-M5PR)D!0"``"X```!``^V3"0LT^"%1"0(=`Z+5"0(BT0D#(F0``(``(/$%#'`
-M6UY?7<.0C70F`-'HZ1O___^04XM$)`B+3"00BQB%R8N3``(``'08#[9,)`RX
-M```!`-/@"<*)DP`"```QP%O##[9,)`RX```!`-/@]]`APNODD(/L&(E\)!"+
-M?"0<B70D#(EL)!2+;"0@B5PD"(L?BX.4````B<:#Y@%U0(M%`(7VB8.H````
-MBT4$B8.L````=1B+7"0(,<"+="0,BWPD$(ML)!2#Q!C#B?:)/"3'1"0$`0``
-M`.C\____Z]:)/"3'1"0$`0```.C\____ZZZ+1"0$BTPD"(L0BX*H````B0&+
-M@JP```")000QP,.)]E=64X/L#(M$)"2+?"0HBW0D'(/X`8M4)"#'!P````!T
-M>X/X`7Y/@_@"=`F#Q`PQP%M>7\,QVXG1.Y[H`0``<RJ-M@````"-OP````"+
-MAA`"``"+5-@$BP380XE1!(D!@\$(.Y[H`0``<N*-!-T`````B0?KMH7`=;*+
-M!L=$)`@`$```B10DB40D!.C\____QP<`$```ZY20C70F`#';B=$[G@@#``!S
-MPHUT)@"+ABP#``"+5-@$BP380XE1!(D!@\$(.YX(`P``<N+KGHM$)`2+`(L0
-MB1"+D(`!``")D(`!```QP,.0B?:+5"0$BP+'0`0`````,<")@C`$```QP,.+
-M1"0$BY!$!```BPB)D#`$``")400QTHF02`0``#'`QT$(`P```,.04XM<)`B+
-M@T@$``"+"X7`=2B+`8N3,`0``"'0A<!T%L=!!`````"X`0```#')B8LP!```
-M6\,QP.OZBQ&+002%T.O;B?955S'_5E.#[!"+7"0DBRO'1"0(`````,=$)`P`
-M````D(M%`#'V"40D#(N#-`,```^W0`8E`(#__V:%P`^$+P$``(N#-`(``#N#
-M.`(``'07BP"+0`0/MT`&)0"`__]FA<`/A.H````!="0(1X7V=`@[NS@6``!R
-MJ<=%`/____^+LY06``"%]@^%G0```/=$)`Q`````=6.+DS0$``"%TG5#BT0D
-M"(7`=2F+@U`$``!`@_@*B8-0!```=A^+@SP$``")@T0$``"X`0```(F#-`0`
-M`#'`B8-0!```@\00,<!;7E]=PXN#.`0``(F#1`0``#'`B8,T!```Z]B+A8`!
-M``"Y_____X.#D`0```&#DY0$````B8V``0``B1PDB40D!.C\____Z6W___^A
-M!````$`]Z`,``*,$````=9Z)'"3H_/___S'`HP0```#KC8UT)@"#@X`$```!
-M@Y.$!````(D<).C\____`<;I^?[__XUV`(.#<`0```&#DW0$````B1PDZ/S_
-M__^)QNFT_O__D(GV55<Q_U93@^P0BUPD)(LKQT0D"`````#'1"0,`````)"+
-M10`Q]@E$)`R+@S0#``"+0`2%P`^))@$``(N#-`(``#N#.`(``'00BP"+0`2+
-M0`2%P`^)Z`````%T)`A'A?9T"#N[.!8``'*WQT4`_____XN+E!8``(7)#X6=
-M````]T0D#$````!U8XN#-`0``(7`=4.+1"0(A<!U*8N#4`0``$"#^`J)@U`$
-M``!V'XN#/`0``(F#1`0``+@!````B8,T!```,>V)JU`$``"#Q!`QP%M>7UW#
-MBX,X!```B8-$!```,<")@S0$``#KV(N%@`$``+K_____@X.0!````8.3E`0`
-M``")E8`!``")'"2)1"0$Z/S____I;?___Z$(````0#WH`P``HP@```!UGHD<
-M)#'_Z/S___^)/0@```#KC)"#@X`$```!@Y.$!````(D<).C\____`<;I^_[_
-M_XUV`(.#<`0```&#DW0$````B1PDZ/S___^)QNF]_O__D(GV55<Q_U93@^P0
-MBUPD)(LKQT0D"`````#'1"0,`````)"+10`Q]@E$)`R+@S0#```/MT`&)0"`
-M__]FA<`/A"\!``"+@S0"```[@S@"``!T%XL`BT`$#[=`!B4`@/__9H7`#X3K
-M`````70D"$>%]G0(.[LX%@``<JG'10#_____B[.4%@``A?8/A9\```#W1"0,
-M0````'5E@[LT!````G0IBX-`!```B8-$!```N`(```")@S0$```QP(F#4`0`
-M`(/$$#'`6UY?7<.+5"0(A=)UYHN#4`0``$"#^`J)@U`$``!VW(N#/`0``(F#
-M1`0``+@!````B8,T!```Z[N+A8`!``"Y_____X.#D`0```&#DY0$````B8V`
-M`0``B1PDB40D!.C\____Z6O___^A#````$`]Z`,``*,,````=8&)'"3H_/__
-M_S'`HPP```#I;?___X.#@`0```&#DX0$````B1PDZ/S___\!QNGX_O__B?:#
-M@W`$```!@Y-T!````(D<).C\____B<;IM/[__Y")]E57,?]64X/L$(M<)"2+
-M*\=$)`@`````QT0D#`````"0BT4`,?8)1"0,BX,T`P``BT`$A<`/B2<!``"+
-M@S0"```[@S@"``!T$(L`BT`$BT`$A<`/B>P````!="0(1X7V=`@[NS@6``!R
-MM\=%`/____^+BY06``"%R0^%GP```/=$)`Q`````=66#NS0$```"="F+@T`$
-M``")@T0$``"X`@```(F#-`0``#'MB:M0!```@\00,<!;7E]=PXM$)`B%P'7F
-MBX-0!```0(/X"HF#4`0``';<BX,\!```B8-$!```N`$```")@S0$``#KNXN%
-M@`$``+K_____@X.0!````8.3E`0```")E8`!``")'"2)1"0$Z/S____I:___
-M_Z$0````0#WH`P``HQ````!U@8D<)#'_Z/S___^)/1````#I;/___X.#@`0`
-M``&#DX0$````B1PDZ/S___\!QNGW_O__@X-P!````8.3=`0```")'"3H_/__
-M_XG&Z;S^__^)]E575E.![*0```"+M"2X````BZ[8````QT0D+`$```#'1"0P
-M`````(M%`,=$)`@!````B00DC40D1(E$)`3_512+GC0#``"-=@"-O"<`````
-M_T0D,(U#"(F&-`,``#N>,`,```^$=P,``(N&+`,``(G:*<*)T(N61`,``-'X
-MBSP0A?\/A'`!```/MU,&B="#X`%FA<")T70KB=`E`$```&:%P`^$J`$``(G0
-M)8)_``!F/0!@#X27`0``9CT`1`^$C0$``(7_#X0M`0``QT0D+`````")R(/@
-M`6:%P`^$_P```(.^9!8```(/A/(```"#AEP#```!@Y9@`P````^W4P:)T(/@
-M`F:%P'02@X9D`P```8.6:`,````/MU,&B=`E`"```&:%P'02@X9L`P```8.6
-M<`,````/MU,&B=`E`!```&:%P'02@X9T`P```8.6>`,````/MU,&B=`E``@`
-M`&:%P'02@X9\`P```8.6@`,````/MU,&B=`E``0``&:%P'02@X:$`P```8.6
-MB`,````/MU,&B=`E``(``&:%P'02@X:,`P```8.6D`,````/MU,&B=`E``$`
-M`&:%P'0.@X:4`P```8.6F`,```"`>P8`>0Z#AIP#```!@Y:@`P```(E\)#P/
-MMX:T%```9L=#!@"`@^@Q9HE#!(M$)"R%P'5`QT0D+`$```"+AC0#``")PP^W
-M0`8E`(#__V:%P'40BU0D,#N6/!8```^"(O[__XM$)#"!Q*0```!;7E]=PXUV
-M`(DT)(E<)`3H_/___^NZB?:#OF06```"=!*#AE0#```!@Y98`P````^W4P8/
-MMTL$B=`E!"```&8]!"`/A%,!``")3"0XB7PD/(N.I!0``(7)=0Z+EJ@4``"%
-MT@^$"`$``,=$)"0`````C7PD-,9$)"L`BT4`B7PD!(D$)/]57&:!>`R!`(G!
-M=#4QR8M$)"2%P`^%(O___XM%`(E,)`R)?"0$QT0D"`$```")!"0/MD0D*XE$
-M)!#_52CI^_[__XN&I!0``(7`#X20````#[9!#HA$)!2#X`_!X`@/ME$/"=`Y
-MAK`4``!T*0^WAK04``!FQT,&`("#Z#%FB4,$QT0D+`````#'1"0D`0```.EZ
-M____BX:H%```A<!T#`^V5"04P.H%B%0D*XM!"(E!#(M!!(E!"(L!B4$$@\$$
-MBT0D.(/H!(/X.XE$)#@/ASS____'1"0X/````.DO____#[9!#L#H!8A$)"OK
-MOHM%`,=$)!``````QT0D"`$```#'1"0,`````(D$)(U$)#2)1"0$Z2+___^-
-M0?\/M\CIHO[__XGVBX8L`P``B88T`P``Z7[\__^0B?955U93@>RD````B[0D
-MN````(NNV````,=$)"P!````QT0D,`````"+GC0#``#K#9"0D)"0D)"0D)"0
-MD)#_1"0PC4,(B88T`P``.YXP`P``#X1G`P``BX8L`P``B=HIPHG0BY9$`P``
-MT?B+/!"%_P^$,0$``(M3!/?"````((G1=![WP@```$`/A&0!``")T"4``/0!
-M/0````$/A%(!``"%_P^$_@```,=$)"P`````@>$````@#X3*````@[YD%@``
-M`@^$O0```(.&7`,```&#EF`#````BU,$]\(````!=!&#AFP#```!@Y9P`P``
-M`(M3!/?"``"``'01@X9T`P```8.6>`,```"+4P3WP@``0`!T$8.&?`,```&#
-MEH`#````BU,$]\(``"``=!&#AH0#```!@Y:(`P```(M3!/?"```0`'01@X:,
-M`P```8.6D`,```"+4P3WP@``"`!T$8.&E`,```&#EI@#````BU,$@>(```0`
-M=`Z#AIP#```!@Y:@`P```(E\)#S'0P0`````#[>&M!0``(/H,0^WP`T```"`
-MB4,$BT0D+(7`=3;'1"0L`0```(N&-`,``(MX!(G#A?]X$(M4)#`[ECP6```/
-M@FC^__^+1"0P@<2D````6UY?7<.)-"2)7"0$Z/S____KQ(.^9!8```)T$8.&
-M5`,```&#EE@#````BU,$#[=#!"7_/P``]\(````!=`R!X@````)T!$@/M\")
-M?"0\C7PD-(E$)#B+10#'1"0(`0```(D$)(U$)$2)1"0$_U44BT,$P>@:)`>(
-M1"1$#[;`@X3&M`,```&#E,:X`P```(N&I!0``(7`=0Z+AJ@4``"%P`^$#`$`
-M`,=$)"0`````QD0D*P"+10")?"0$B00D_U5<9H%X#($`B<%T-3')BT0D)(7`
-M#X7O_O__BT4`B4PD#(E\)`3'1"0(`0```(D$)`^V1"0KB40D$/]5*.G(_O__
-MBX:D%```A<`/A)@````/MD$.B$0D%(/@#\'@"`^V40\)T#F&L!0``'0QQT,$
-M``````^WAK04``"#Z#$/M\`-````@(E#!,=$)"P`````QT0D)`$```#I<O__
-M_XN&J!0``(7`=`P/ME0D%,#J!8A4)"N+00B)00R+002)00B+`8E!!(/!!(M$
-M)#B#Z`2#^#N)1"0X#X<T____QT0D.#P```#I)____P^V00[`Z`6(1"0KZ[Z+
-M10#'1"00`````(E\)`3'1"0(`0```(D$),=$)`P`````Z1[___^0C70F`(N&
-M+`,``(F&-`,``.F._/__D(GV53'M5U93@^P,BUPD((N[V````(N3-`(``#N3
-M,`(``(U"!(LRB8,T`@``#X2!`0``BP:+3@0!@^P!```/MT$&)0!```!FA<`/
-MA;\```"#NV06```"=&:#@T`"```!@Y-$`@````^W008E\````,'H!(.$PX`"
-M```!@Y3#A`(````/MU$&B=`E``0``&:%P'02@X-P`@```8.3=`(````/MU$&
-MB=`E``(``&:%P'0.@X-X`@```8.3?`(```"+!XET)`2)!"2+@T@6``")1"0(
-M1?]7)(N#-`(``#N#.`(``(G"=!^+`(M`!`^W0`8E`(#__V:%P'4,.ZM`%@``
-M#X(7____@\0,B>A;7E]=PX.[9!8```(/A(0```"#@T@"```!@Y-,`@````^W
-M40:)T"4`(```9H7`=!*#@U`"```!@Y-4`@````^W40:)T"4`$```9H7`=!*#
-M@U@"```!@Y-<`@````^W40:)T"4`"```9H7`=!*#@V`"```!@Y-D`@````^W
-M40:)T(/@"&:%P'0.@X-H`@```8.3;`(```"+!XET)`2)!"2+@TP6``#I&O__
-M_XN#+`(``(F#-`(``.EN_O__B?97,?]64X/L#(M<)!R+L]@```"+DS0"```[
-MDS`"``"-0@2+"HF#-`(```^$20$``(L!BU$$`8/L`0``]D('0`^%J````(.[
-M9!8```)T5X.#0`(```&#DT0"````BT($P>@3@^`/@X3#@`(```&#E,.$`@``
-M`(M"!*D````"=!&#@W`"```!@Y-T`@```(M"!*D````!=`Z#@W@"```!@Y-\
-M`@```(L&B4PD!(D$)(N#2!8``(E$)`A'_U8DBX,T`@``.X,X`@``B<)T&(L`
-MBT`$BT@$A<EX##N[0!8```^"-?___X/$#(GX6UY?PX.[9!8```)T;H.#2`(`
-M``&#DTP"````BT($J0```!!T$8.#4`(```&#DU0"````BT($J0````AT$8.#
-M6`(```&#DUP"````BT($J0````1T$8.#8`(```&#DV0"````BT($J0``!`!T
-M#H.#:`(```&#DVP"````BP:)3"0$B00DBX-,%@``Z3S___^0BX,L`@``B8,T
-M`@``Z:;^__^0B?:#[!2)7"0(BUPD&(ET)`R)?"00BP.+DU0$``"+N]@```"+
-ML(@!``")\#'0]D0D'`AT*8/@!'0D]\8$````=32X_____XF#6`0``(L'B00D
-MB?"#X`2)1"0$_U<LB;-4!```BUPD"#'`BW0D#(M\)!"#Q!3#B1PDQT0D!`,`
-M``#H_/___XD<).C\____B1PDQT0D!`,```#H_/___^NMD(GV@^P@B5PD%(M<
-M)"2)="08,?:)?"0<B[O8````B1PDBX-L!```QT0D"`$```")1"0$C40D$(E$
-M)`SH_/___X7`=$_V1"00!+@$````BY-4!```#T7PB?`QT(/@!'0FA?9U1+G_
-M____B8M8!```BP>)!"2)\(/@!(E$)`3_5RR+DU0$``"%]G09@\H$B9-4!```
-MBUPD%(MT)!B+?"0<@\0@PX/B^^OEB1PDQT0D!`,```#H_/___XD<).C\____
-MB1PDQT0D!`,```#H_/___^N=D(/L'(ET)!"+="0@B5PD#(E\)!2);"08BQ['
-M1"0(`````(N#B`$``*D``!``=1&+@X@!```-```0`(F#B`$``(N&W````(L0
-MB10DC50D"(E4)`3_4!R+1"0(A<!U%(M<)`R+="00BWPD%(ML)!B#Q!S#@XY4
-M!```!(N6W````(L"B00D_U(8BY;<````B<6+`HD$)/]2%#NN7`0``(G!#X3T
-M````@_T"#X3=````BX.`````@\@"B8.`````B:Y<!```B8Y8!```BY/`````
-MB[N<````]\(````0=(&#XOR!^0#A]04/A(L```"!^8"6F`!T=8'Y`,J:.W1+
-MB="!XO_^__\-``$``(/]`@]$PHF#P````(F[G````(N^^!4``(7_#X0U____
-MBX8D%@``A<`/A"?___^)0Q`QVXF>)!8``.D7____N""`X`^!Y_\`_/^#R@*)
-M@SP!``"+@SP!``"!SP!_``#KDX'G_P#\_X'/`'0``.N%@>?_`/S_@\H!@<\`
-M+0``Z7'___^+@X````"#X/WI'O___SN&6`0```^$)/___^D3____D(GV55=6
-M4X/L$(ML)"2+1"0PBW0D*(M=`,=$)`P`````QP``````B[W8````BP?'1"0$
-M`````(D$)(N%:`0``(E$)`C_5U2X#P```(F#@`$``(N#B`$``*D``!``=!G'
-M1"0,`0```(N#B`$``"7__^__B8.(`0``BX.0`0``)0"`__]FA<`/A=<```"+
-M5"0LP>8%@>;@`P``@^(?"?(Q]HF3D`$``('*`(```#NU9`0``',,B=`E`(#_
-M_V:%P'5H@>(`@/__,?9FA=)U'HN#@`$``#'V@^`!=1&+@Y0!``"^`0```(M4
-M)#")`HM$)`R%P'01BX.(`0``#0``$`")@X@!``"+!\=$)`0`````B00DBX5H
-M!```B40D"/]76(/$$(GP6UY?7<.+!X/&"L=$)`0*````B00D_U<8.[5D!```
-MBY.0`0``#X-S____B=`E`(#__V:%P'7/Z6+___^0C70F`+@`@```B8.0`0``
-MBP?'1"0$,@```(D$)/]7&.D)____55=64X/L$(ML)"2+?"0HBUT`QT0D#```
-M``"+M=@```"+!L=$)`0`````B00DBX5H!```B40D"/]65+D/````B8N``0``
-MBX.(`0``J0``$`!T&<=$)`P!````BX.(`0``)?__[_^)@X@!``"+@Y`!```E
-M`(#__V:%P`^%PP```(M$)##!YP6!Y^`#``")@Y0!``"+1"0L@^`?"?@Q_XG"
-M@<H`!```B9.0`0``B<*!R@"$```[O60$``!S#(G0)0"`__]FA<!U3('B`(#_
-M_V:%T@^4P`^V^(M$)`R%P'01BX.(`0``#0``$`")@X@!``"+!L=$)`0`````
-MB00DBX5H!```B40D"/]66(/$$(GX6UY?7<.+!H/'"L=$)`0*````B00D_U88
-M.[UD!```BY.0`0``<Y.)T"4`@/__9H7`==/KA;H`@```B9.0`0``BP;'1"0$
-M,@```(D$)/]6&.D=____B?:#["B)7"0@BUPD+(ET)"2+="0PBX.T%```BY/8
-M````B40D&(L"B00DC40D$(E$)`2-1"0,B40D"/]2'(7`=&"+BRP#``")\HM$
-M)`PIRHN+1`,``-'ZB00*BT0D%(D&@[MP%@```70EBT0D&(/H,0T```"`B48$
-MN`$```"+7"0@BW0D)(/$*,.0C70F`(M$)!AFQT8&`("#Z#%FB48$Z]>+DRP#
-M``")\"G0BY-$`P``T?C'!!``````BX-,`P``B0:#NW`6```!=!K'1@0`````
-MBX,L!```2`T```"`B48$,<#KF`^W@RP$``!FQT8&`(!(9HE&!.OHD#'`PY"#
-M["B)="0@BW0D,(E<)!R+7"0LB7PD)(L.B[O8````.XM,`P``='F+DRP#``")
-M\"G0BY-$`P``T?B+%!")3"00BX.T%```B40D%&;'1@8``&;'1@0``(L'B50D
-M"(D$)(U$)`R)1"0$_U<@B?"+NRP#``"+DT0#```I^-'XQP00`````(N#3`,`
-M`(D&N`$```"+7"0<BW0D((M\)"2#Q"C#,<#K[(/L-(E\)"R+?"0\B70D*(MT
-M)#B)7"0DB6PD,(LOQP<`````QT0D'!0#``#'1"08`````(L&B00DC40D%(E$
-M)`3_5@2Z`0```(7`=1:+7"0DB="+="0HBWPD+(ML)#"#Q#3#BUPD%(E;:(M$
-M)!B)0VR+1"0<B6LXB3.)0W")'"3H_/___XU#!(E;!,=#"`````#'0PP`````
-MQT,0`````,=#&`````#'0QP`````QT,@`````,=#)`````#'0R@`````QT,4
-M`````,=#,`````#'0RP`````QT,T`````(D'BU-$BT0D0(D0BT-$C02`BY2#
-MA````(M$)$2)$(NS]`(``(7V#X3R````BQ.+2C"%R70ZBP*)!"2-0U")1"0$
-M_U(PA<!U"KH)````Z1S___^+`XL0B10DBU-0B5PD#,=$)`@`````B50D!/]0
-M.,=#//____^+0SB-;"00BS"+>`2)-"2+0T2);"0,QT0D"`(```")1"0$_]>Z
-M!@```(7`#X3'_O__BT0D$"7_`P``P>`&B40D$(M$)!!FB8,$`P``B30DBT-$
-MB6PD#,=$)`@#````B40D!/_7N@8```"%P`^$A_[__XM$)!!FB8,&`P``BT0D
-M$"4`_```P>@*B40D$(M4)!`/MX,$`P``"=`QTF:)@P0#``#I4?[__Y"Z"```
-M`.E&_O__B?975E.#[""+7"0PBT,XA=N+>`B+,'1*BTM0A<D/A8,````/MY/X
-M`@``9H72=5D/MY/Z`@``9H72=3"+0VB)1"00BT-LB40D%(M#<(E$)!B+$XL"
-MB00DC40D$(E$)`3_4@B#Q"`QP%M>7\.)-"2+0T3'1"0(!````(E$)`0/M\*)
-M1"0,_]?KLXDT)(M#1,=$)`@)````B40D!`^WPHE$)`S_U^N*D(L3BP*)3"0$
-MB00D_U)`BQ.+`HD$)(M#4(E$)`3_4C3'0U``````Z5+___^055=64X/L%(M<
-M)"B+?"0LBT,XBU`$BV@(BS"+1"0PB8,``P``BP>%P`^50V3'!P````#&0V4!
-MB30DBT-$QT0D"`````")1"0$C40D$(E$)`S_T@^WD_P"``!FA=(/A;(````/
-MMY/^`@``9H72=7C'0U0$````BTM0A<EU6O=#8/___P!U+XD<).C\____QD-D
-M`(7`=`^#Q!1;7E]=PXVT)@````")'"2)?"0$Z/S___\QP.OAQD-D`8D<).C\
-M____QD-D`(7`=<V)'"2)?"0$Z/S____KVHL3BP*)3"0$B00D_U)`ZY:)-"2+
-M0T3'1"0(!````(E$)`0/M\*)1"0,_]4Q[6:)J_X"``#I7____Y"-="8`B30D
-MBT-$QT0D"`D```")1"0$#[?"B40D#/_5,<!FB8/\`@``Z27___^0B?955U93
-M@^P<BW0D,(M&.(M0!(E4)!2-5"08BRB+1"0TQP``````BT0D.(DL)`'`B40D
-M$(M&1(E4)`S'1"0(`0```(E$)`3_5"04N@8```"%P'1V,?\[?"00?7B+1"08
-MJ00```!U6+L)````C78`C;PG`````(L6BP+'1"0$,@```(D$)/]2&$MYZXDL
-M)(M&1,=$)`@!````B40D!(U$)!B)1"0,_U0D%(7`="U'.WPD$'T@BT0D&*D$
-M````=*B+5"0T@^`$B0(QTH/$'(G06UY?7<.+1"08Z^6Z!@```.OID(/L*(ET
-M)!R+="0LB6PD)(ML)#")7"08B7PD((M&.(L8BW@$B1PDBT9$QT0D"`````")
-M1"0$C40D%(E$)`S_U[H&````A<!U'(M<)!B)T(MT)!R+?"0@BVPD)(/$*,.-
-MM@````")'"2+1D3'1"0(`0```(E$)`2-1"00B40D#/_7N@8```"%P'2_BT0D
-M$&:)A@@#``#V1"05`G4']D0D$"!U$(DT)(EL)`3H_/___S'2ZY;'1"00````
-M`(DT)(EL)`3'1"0(8`D``.C\____B30DZ/S____KUHM$)`2#>%0##Y;`#[;`
-MPY"+1"0$QT!4`````#'`PXGV@^PTB5PD)(M<)#B);"0P,>V)="0HB7PD+(M#
-M.(M0"(MX!(E4)!2+,,=$)!``````BT-4@_@!#X3'`0``@_@!#X(Y`0``@_@"
-M#X1_````@_@#=!2+7"0DBW0D*(M\)"R+;"0P@\0TPXDT)(M#1,=$)`@!````
-MB40D!(U$)!B)1"0,_]>%P'05]D0D&`1U#HM#.(M36#M0&'(,C78`QT-4!```
-M`.NNC8*6````BQ.)0UB+`HD$)(M#4,=$)`B6````B40D!/]2/(7`=-'KAHDT
-M)(M#1,=$)`@!````B40D!(U$)!B)1"0,_]>%P'2O]D0D&"!U"XM#.(M36#M0
-M%');B30DBT-$QT0D"`````")1"0$C40D((E$)`S_UX7`#X1Y____]D0D(0)U
-M!_9$)!@@=1S'0U0#````C40D'(D<)(E$)`3H_/___^D&____B1PDZ/S____I
-M0O___XV")@(``(L3B4-8BP*)!"2+0U#'1"0()@(``(E$)`3I1O___XD<).C\
-M____A<`/A0[___^)-"2+0T3'1"0(`````(E$)`2-1"0@B40D#/_7A<`/A.K^
-M__^)-"2+1"0@#0"```")1"0@BU-$B40D#,=$)`@`````B50D!/]4)!2%P`^$
-MN_[__\=#5`$```"+$XL"B00DBT-0QT0D"!("``")1"0$Z<'^__^)-"2+0T3'
-M1"0(`````(E$)`2-1"0@B40D#/_7A<`/A'7^__^+5"0@B=`E`(#__V:%P`^%
-MP0```(G0)0"`__]FA<`/A5'^__^)'"3H_/___X7`#X5!_O__]T-@____`'4I
-MQT-4`@```(L3QT-8(`,``(L"B00DBT-0QT0D""`#``")1"0$Z3?^__^)-"2+
-M0T3'1"0(`````(E$)`2-1"0@B40D#/_7A<`/A.O]__^)-"2+1"0@)?]O__^)
-M1"0@BU-$B40D#,=$)`@`````B50D!/]4)!2%P`^$O/W__XD<)(U$)!R)1"0$
-MZ/S____I7OW__XVT)@````"+`XL0QT0D!#(```")%"3_4!B-5"0@B30DBT-$
-MB50D#,=$)`@`````B40D!/_7A<`/A&K]__]%@_T4="J+0SB+5"00.U`0=Q6+
-M5"0@B=`E`(#__V:%P'6HZ>+^__^+5"0@Z=G^____1"00,>WKSHGV55=64X/L
-M&(M\)"R-7"04BT<XBU`(BW`$B50D$(LHBT0D-,9'90")AP`#``")+"2+1T2)
-M7"0,QT0D"`$```")1"0$_]:)+"2+1T2)7"0,QT0D"`$```")1"0$_]:+1"0P
-MQP``````#[>7_`(``,='5`````!FA=)U7P^WE_X"``!FA=)U*XD\)(M'1(E$
-M)`3H_/___X7`=`B#Q!A;7E]=PXD\).C\____,<#K[(UT)@")+"2+1T3'1"0(
-M!````(E$)`0/M\*)1"0,_U0D$#'`9HF'_@(``.NMB2PDBT=$QT0D"`D```")
-M1"0$#[?"B40D#/]4)!`QP&:)A_P"``#I=O___Y"#["")7"04BUPD)(ET)!B)
-M?"0<A=MT"HN#]`(``(7`=1(QP(M<)!2+="08BWPD'(/$(,.+0SB+>`2+,(D<
-M)(M#1(E$)`3H_/___X7`==6)-"2+0T3'1"0(`0```(E$)`2-1"00B40D#/_7
-MB<*X!@```(72=*Z`>V0`=!^)'"3H_/___X7`=9R)'"2+0T2)1"0$Z/S___^%
-MP'6)B1PDZ/S___^%P`^%>?___XD<)(M#1(E$)`3H_/___X7`#X5B____]T-@
-M____``^%4____XD<)(M#1(E$)`3H_/___X7`#X4^____Z3?___^)]H/L"(E<
-M)`2+7"0,@'MC`'0/BT,\BUPD!(/$",.-="8`B1PDZ/S____KYXGV@^P(B5PD
-M!(M<)`R`>V,`=`N+0T"+7"0$@\0(PXD<).C\____Z^N)]E575E.#["R+?"1`
-MBT<XBU`$B50D'(M0"(E4)!B-5"0HBR@/MD=B#[=?8,=$)!``````B2PDB$0D
-M%XM'1(E4)`S'1"0(`````(E$)`3_5"0<BT0D*(E$)"`/M[<(`P``]\8``0``
-M#X5"`P``9H/["@^$YP(``&:#^V0/A)0"``!F@?OH`P^$]P$``(M4)!"X!0``
-M`(72=0B#Q"Q;7E]=PXDL)(M$)""-="0@,=LE_^___XE$)""+5T2)1"0,QT0D
-M"`````")5"0$_U0D&(DL)(M'1(ET)`S'1"0(`````(E$)`3_5"0<]D0D(1`/
-MA4L!``"+1"0H)?_O__^)1"0H9H&_!`,``$-0='Z)+"2+1T3'1"0(`````(E$
-M)`2+1"0HB40D#/]4)!B`?V4`=";'1U0$````BT0D1(D\),=$)`A@"0``B40D
-M!.C\____,<#I1/___\='5`,```"+%\='6)8```"+`HD$)(M'4,=$)`B6````
-MB40D!/]2/(7`=<['1U0$````Z\6)+"2)PH'*`(```(E4)"B+1T0QVXE4)`R)
-M1"0$QT0D"`````#_5"08B2PDBT=$QT0D"`````")1"0$C40D*(E$)`S_5"0<
-MBT0D*"4`@/__9H7`#X1(____C;8`````C;PG`````(L'0XL0QT0D!#(```")
-M%"3_4!B-5"0HB2PDBT=$B50D#,=$)`@`````B40D!/]4)!R!^_,!```/C_[^
-M__^+1"0H)0"`__]FA<!UM>GK_O__BP=#BQ#'1"0$,@```(D4)/]0&(DL)(M'
-M1(ET)`S'1"0(`````(E$)`3_5"0<@?OS`0``#X]\_O__]D0D(1!UP.EP_O__
-M#[>'"`,``"4``0``9H7`#X3T_?__QT<\`,J:.XM$)"B#R$")PH'B_]___X!\
-M)!<!B50D*'0T@'PD%P(/A<C]___V1"0E0`^$O?W__X'*``$``(E4)"C'1"00
-M`0```,='0`(```#IG_W___9$)"4@#X24_?__)?_>__^)1"0HQT0D$`$```#'
-M1T`!````Z7?]___'1SP`X?4%BT0D*`T`(```B<*#XK^`?"07`8E4)"AT$X!\
-M)!<"#X5,_?__@>8`0```ZX&!Y@"@__]FA?8/A#7]__\EO_[__^N?QT<\@):8
-M`(M$)"@EO]___X!\)!<!B40D*'0E@'PD%P(/A0C]__^!Y@`0```/A/S\__\-
-M``$``(E$)"CI.____X'F``@```^$XOS__^E2____B2PDBT=$QT0D"`\```")
-M1"0$C40D)(E$)`S_5"0<BT0D)&:)APH#``#ID/S__Y"#[#R)7"0LBUPD0(ET
-M)#")?"0TB6PD.(M#.(M0"(MX!(E4)!R+*`^W<V`/MD-BQT0D$`````#'1"0@
-M`````,=$)"0`````9H7VB$0D&W0$A,!U';@$````BUPD+(MT)#"+?"0TBVPD
-M.(/$/,.-="8`@'MC`'0:QT-4!````(M4)$2)'"2)5"0$Z/S____KR9")+"2+
-M0T3'1"0(`````(E$)`2-1"0HB40D#/_7B2PDBT-$QT0D"`0```")1"0$C4-<
-MB40D#/_79H/^"@^$9@(``&:#_F0/A$<"``#'1"04`/@``(!\)!L!#X0?`@``
-M@'PD&P(/A/\!```/MX,(`P``)0`!``!FA<`/A?,```!F@?[H`W05BTPD%(7)
-M=!X/MX,(`P``A40D%'41QT-4!````+@%````Z1W____W5"00BT-<B2PD(40D
-M$(M#1(M4)!#'1"0(!````(E$)`2)5"0,_U0D'(7`=1''0U0$````N`<```#I
-MW_[__XDL)(M4)"B!R@`2``")5"0HBT-$B50D#,=$)`@`````B40D!/]4)!S'
-M0U0"````@'ME`'0SQT-4!````(D<)(M#1(E$)`3H_/___X7`#X6,_O__B1PD
-MBT0D1(E$)`3H_/___^EW_O__BP.+$(D4)(M34,=$)`@@`P``B50D!/]0/#'`
-MZ5?^__^)+"2+0T3'1"0("0```(E$)`2-1"0DB40D#/_7BT0D)&:)@PP#``")
-M+"2+0T3'1"0(#P```(E$)`2-1"0@B40D#/_79H'^Z`.+1"0@9HF#"@,``'1!
-M#[>##`,``"7__/__9HF##`,``(DL)(M#1,=$)`@)````B40D!`^W@PP#``")
-M1"0,_U0D'(7`#X6#_O__Z='^__^`?"0;`70Y@'PD&P)T"H%,)!#@`P``Z[HE
-M`!```&:%P`^$;?[__P^W@PP#```-``(``"7__O__9HF##`,``.O.)0`@``!F
-MA<`/A$7^__\/MX,,`P``#0`!```E__W__^O6@60D%/]7__^!3"00H`(``.GL
-M_?__@60D%/^O__^!3"000`$``.G7_?__QT0D%`#@``#'1"008````.FL_?__
-MQT0D%``8``#'1"00@`,``.F7_?__#[=$)`B+5"0$9HE"8(M$)`R(0F*+1"00
-MB$)C,<##B?8QP,.053')5[\@````5E.[`0```(/L),=$)!P`````BVPD.(M%
-M.(L0B50D&(M`!,=$)!``````B40D%(F-]`(``(UV`(DL)(E<)`3H_/___X7`
-M#X21````0X/[_XU#'P]/PX/@X"G#3W7:BXWT`@``A<ET0(/Y`71A,?8YSG,9
-MC86$````B>J+.(7_=3-&@\`4@\(4.<YR[XM<)!"%VW44C02)C42%`(M0;(E4
-M)!R+0&")142+1"0<@\0D6UY?7<.+@H````")1"0<BT)TB45$QT0D$`$```#K
-MOHN5@````(E4)!R+173KR(E<)`2+1"08QT0D"`$```")!"2-1"0@B40D#/]4
-M)!2%P`^$2/___XM4)""%T@^$//___XN%]`(``(/B!(T$@(F4A80```"+A?0"
-M``"-!(")7(5T]D0D(`%U'8N%]`(``#'2C02`B92%@````/^%]`(``.D*____
-MB5PD!(M4)!C'1"0(`P```(D4)(N%]`(``(T$@(U$A7R)1"0,_U0D%(7`=+>)
-M7"0$BT0D&,=$)`@"````B00DBX7T`@``C02`C42%>(E$)`S_5"04A<!TBP^W
-M57B+37R+A?0"``#!XA"!X0#\``"-!(`)RHF4A8````#I=O___Y!55U93@^P@
-MBWPD-(ML)#B+1SB+4`2+,(E4)!B+6`B-1"0<QT0D"`````#'1"04`````,=$
-M)!``````B30DB6PD!(E$)`S_TKH&````A<!U"H/$((G06UY?7<.)-"2+1"0<
-MB6PD!,=$)`@`````#0"```")1"0<B40D#/_3N@<```"%P'3+BU0D'#';B=`E
-M`(#__V:%P`^%D0```(G0)0"`__]FA<!U!#'2ZZ6+%XL"QT0D!#(```")!"3_
-M4AB-5"0<QT0D"`````")-"2);"0$B50D#/]4)!B%P'1&_T0D%(-\)!04="V+
-M1SB+5"00.U`0=Q"+1"0<)0"`__]FA<!UJNNDN@(```#I0____XVT)@````#_
-M1"00QT0D%`````#KQ;H&````Z23___^+%T.+`L=$)`0R````B00D_U(8@?L/
-M)P``=Q6+5"0<B=`E`(#__V:%P'75Z3____^+5"0<Z3;___^0B?:#["R+5"0P
-MB6PD*(UL)!B)7"0<B70D((E\)"2+0CB+&(MP!(MX"(EL)`R+1"0TQT0D%```
-M``#'1"00`````(D<)(E$)`3'1"0(`````/_6A<`/A.@```"+1"08J0`,``!U
-M&C'2BUPD'(G0BW0D((M\)"2+;"0H@\0LPXGVB1PDBU0D-"7_\___B40D&,=$
-M)`@`````B50D!(E$)`S_U[H'````A<!TO8D<)(M$)#3'1"0(`````(EL)`R)
-M1"0$_];W1"08``P``'28BU0D,(L"BQ#'1"0$,@```(D4)/]0&(EL)`R+1"0T
-MB1PDQT0D"`````")1"0$_]:%P'1"_T0D%(-\)!04="F+5"0PBT(XBU0D$#M0
-M#'</]T0D&``,``!UJ.D[____N@H```#I,_____]$)!#'1"04`````.O)N@8`
-M``#I&____Y")]E575E.#[!B+7"0LBT,XBS"+>`2+:`C'1"00`````,=#5```
-M``")-"2+0T3'1"0(`````(E$)`2-1"04B40D#/_7N@8```"%P'0Z]T-@____
-M``^%P````,=$)!0`"```B30DBT-$QT0D#``(``#'1"0(`````(E$)`3_U;H'
-M````A<!U#(/$&(G06UY?7<.)]HDT)(M#1(U4)!3'1"0(`````(E$)`2)5"0,
-M_]?V1"05"'0$,=+KS8L3BP+'1"0$,@```(D$)/]2&(DT)(M#1,=$)`@`````
-MB40D!(U$)!2)1"0,_]>%P'0D@T0D$#*+0SB+5"00.U`<=PGV1"05"'2VZ["Z
-M"P```.EW____N@8```#I;?___XDT)(M#1,=$)`@$````B40D!(M#7(E$)`S_
-MU>D@____D%575C'V4X/L&(M<)"R+0SB+*(MX!,=$)!``````B2PDBT-$QT0D
-M"`$```")1"0$C40D%(E$)`S_U[H&````A<!T"?9$)!0@=`\QTH/$&(G06UY?
-M7<.-=@"+`XL0QT0D!#(```")%"3_4!B-5"04B2PDBT-$B50D#,=$)`@!````
-MB40D!/_7A<!T*D:#_A1T'(M#.(M4)!`[4!1W"?9$)!0@=+7KI+H,````ZY__
-M1"00,?;KW+H&````ZY"0@^P<BTPD((ET)!B+="0DB5PD%(M!.(L0BU@$QP8`
-M````B10DBT%$QT0D"`$```")1"0$C40D$(E$)`S_T[H&````A<!T#_9$)!`$
-M=`;'!@$````QTHM<)!2)T(MT)!B#Q!S#D(/L'(M,)"")="08BW0D)(E<)!2+
-M03B+$(M8!,<&`````(D4)(M!1,=$)`@!````B40D!(U$)!")1"0,_].Z!@``
-M`(7`=`_V1"00!'0&QP8!````,=*+7"04B="+="08@\0<PY"#[#R)="0PBW0D
-M0(EL)#B-;"0HB5PD+(E\)#2+1CB+4`B+>`2)5"08BQC'1"04`````(D<)(M&
-M1(EL)`S'1"0(`````(E$)`3_U[H&````A<!U%HM<)"R)T(MT)#"+?"0TBVPD
-M.(/$/,.)'"2+1D3'1"0(`0```(E$)`2-1"0DB40D#/_7N@8```"%P'3%]D0D
-M*0)U"_9$)"0@#X6@````]T9@____``^%_`$```^WA@@#```E``$``&:%P`^%
-M@P$``(M$)!2%P'4HBT0D)"4`HO__9H7`#X0]`0``@4PD*``@``#'1CP`X?4%
-MQT9``0```&:!O@0#``!#4'1SB1PDBT9$QT0D"`````")1"0$BT0D*(E$)`S_
-M5"08@'YE`'0FQT94!````(M$)$2)-"3'1"0(8`D``(E$)`3H_/___S'2Z0S_
-M___'1E0#````BP;'1EB6````BQ")%"2+5E#'1"0(E@```(E4)`3_4#SKT(D<
-M)(M4)"B!R@"```")5"0HBT9$B50D#,=$)`@`````B40D!/]4)!B)'"2+1D2)
-M;"0,QT0D"`````")1"0$_]?'1"00`````(M$)"@E`(#__V:%P`^$4?___XL&
-MBQ#'1"0$,@```(D4)/]0&(D<)(M&1(EL)`S'1"0(`````(E$)`3_U_]$)!"!
-M?"00\P$```^'%?___XM$)"@E`(#__V:%P'6VZ0+____V1"0E"'04@60D*/_?
-M___'1CR`EI@`Z;?^___'1CR`EI@`N@0```#I#O[__XD<)(M&1,=$)`@/````
-MB40D!(U$)"")1"0,_]>Z!@```(7`#X3E_?__]T0D(``P```/A$;^___'1CP`
-MRIH[QT9``@```(M$)"C'1"04`0```"7_W___#4`!``")1"0HZ1G^__^)-"2-
-M1"0<B40D!.C\____Z8+^__^)]E575E.#["B+?"0\BT<XBU`(BU@$B50D%(LH
-MBT<\B40D$,='//____^)+"2+1T3'1"0(!````(E$)`2-1"0DB40D#/_3B2PD
-MB<:+1T3'1"0(!0```(E$)`2-1"0@B40D#/_3"<9U#[H&````@\0HB=!;7E]=
-MPP^WAP@#```E``$``&:%P`^%"@$``(M$)""+5"0D(="I@`$```^$VP```,='
-M/`#A]06I0`$```^$M0```,='0`(```"!?SR`EI@`=`0QTNNF@7PD$("6F`!T
-M\H&_!`,``$-0P0QUYHDL)(M'1,=$)`@0````B40D!(U$)!B)1"0,_].+1"08
-M@^!@@_A@B40D&'6ZB2PDBT=$QT0D#!T```#'1"0('0```(E$)`3_5"04B2PD
-MBT=$QT0D###^``#'1"0('@```(E$)`3_5"04B2PDBT=$QT0D#`````#'1"0(
-M'@```(E$)`3_5"04Z5O___^HH`^$2O___\='0`$```#I/O___ZE@````#X0A
-M____QT<\@):8`.D5____C78`B2PDBT=$C50D'(E4)`R)1"0$QT0D"`D```#_
-MTPG&BT0D'&:)APP#``")+"2+1T3'1"0("@```(E$)`2-1"0<B40D#/_3BU0D
-M'`G&9HF7#@,``+H&````#X1Z_O__BY<,`P``B=`E``(`"#T``@`(="6!X@`!
-M``2!^@`!``0/A7/^___'1SP`RIH[QT=``0```.F7_O__QT<\`,J:.\='0`(`
-M``#IA/[__Y")]E575E.#["R+="1`BT8XBU`(BW@$B50D%(L8B1PDBT9$QT0D
-M"`0```")1"0$C40D*(E$)`S_UXD<)(M&1,=$)`@)````B40D!(U$)"2)1"0,
-M_]>)'"2+1D3'1"0(!0```(E$)`2-1"0@B40D#/_7BVPD*(M$)"2+3"0@B>J)
-M1"00B>@AR*E@````#X3;````QT8\@):8`('B?_S__XE4)"B)'"2+1"00)?_\
-M__^)1"0DBT9$B50D#,=$)`@$````B40D!/]4)!2)'"2+1D3'1"0("0```(E$
-M)`2+1"0DB40D#/]4)!2)'"2+1D3'1"0(`````(E$)`2-1"0<B40D#/_7B1PD
-MBU0D'('*`!(``(E4)!R+1D2)5"0,QT0D"`````")1"0$_U0D%(DT)(M&1(E$
-M)`3H_/___X7`=`B#Q"Q;7E]=PXDT)(U$)!B)1"0$Z/S___]FB:[^`@``BU0D
-M$&:)EOP"```QP.O2J8`!``!T]<=&/("6F`#I(____Y")]E575E.#[!B+7"0L
-MC6PD%(M#.(M0"(MX!(E4)!"+,(DT)(M#1(EL)`S'1"0(`0```(E$)`3_U[H&
-M````A<`/A*$!``"+1"049HF#"`,``"4``0``9H7`=#")-"2+0T2);"0,QT0D
-M"`\```")1"0$_]>Z!@```(7`#X1G`0``BT0D%&:)@PH#``")-"2+0T2);"0,
-MQT0D"`0```")1"0$_]>Z!@```(7`#X0W`0``9H.[^@(```!U"XM$)!1FB8/Z
-M`@``B30DBU0D%('*X`T``(E4)!2+0T2)5"0,QT0D"`0```")1"0$_U0D$+H'
-M````A<`/A.T````/MX,(`P``)0`!``!FA<!T<@^W@_@"``!FA<`/A$H"```E
-M__[__X.[``,```%FB8,,`P``#X0G`@``#0`"``!FB8,,`P``#[>3#`,``('B
-M__O__V:)DPP#``"!XO_[``")-"2+0T2)5"0,QT0D"`D```")1"0$_U0D$+H'
-M````A<!T:F:!NP0#``!#4'1SB30DBT-$B6PD#,=$)`@`````B40D!/_7N@8`
-M``"%P'0^]T-@____`'4_@4PD%``0``")-"2+0T3'1"0(`````(E$)`2+1"04
-MB40D#/]4)!"Z!P```(7`N``````/1="#Q!B)T%M>7UW#@60D%/_O___KOXDT
-M)(M#1,=$)`P+````QT0D"!T```")1"0$_U0D$+H'````A<!TQ8DT)(M#1,=$
-M)`P$@```QT0D"!X```")1"0$_U0D$+H'````A<!TGHDT)(M#1,=$)`P&````
-MQT0D"!T```")1"0$_U0D$+H'````A<`/A'/___^)-"2+0T2);"0,QT0D"!X`
-M``")1"0$_]>Z!@```(7`#X1.____B30DBU0D%('B_S___X'*`$```(E4)!2+
-M0T2)5"0,QT0D"!X```")1"0$_U0D$+H'````A<`/A!/___^)-"2+0T3'1"0,
-M"@```,=$)`@=````B40D!/]4)!"Z!P```(7`#X3H_O__B30DBT-$B6PD#,=$
-M)`@>````B40D!/_7N@8```"%P`^$P_[__XDT)(M4)!2#XM^)5"04BT-$B50D
-M#,=$)`@>````B40D!/]4)!"Z!P```(7`#X21_O__Z2W^__\E__W__^G4_?__
-MB30DBT-$B6PD#,=$)`@)````B40D!/_7N@8```"%P`^$7?[__XM$)!1FB8/X
-M`@``Z8']__^0@^PDB5PD%(M<)"B)="08B7PD'(EL)""+0SAF@;L$`P``\0.+
-M>`2+:`B+,,=#//____\/A(0!``!F@;L$`P``\0,/A+4````/MX,(`P``)0`!
-M``!FA<!T=(DT)(M#1,=$)`@)````B40D!(U$)!")1"0,_]>Z!@```(7`=1:+
-M7"04B="+="08BWPD'(ML)""#Q"3#B30DBU0D$('B__O__XE4)!"+0T2)5"0,
-MQT0D"`D```")1"0$_]6Z!P```(7`=+N-=@"-O"<`````B30DBT-$QT0D"`$`
-M``")1"0$C40D$(E$)`S_U[H&````A<"X``````]%T.N$C78`B30DBT-$QT0D
-M"!8```")1"0$C40D$(E$)`S_U[H&````A<`/A%C___^)-"2+5"00@<H`(```
-MB50D$(M#1(E4)`S'1"0(%@```(E$)`3_U;H'````A<`/A"7___^)-"2+0T3'
-M1"0($@```(E$)`2-1"00B40D#/_7N@8```"%P`^$_/[__XDT)(M4)!"#XOZ)
-M5"00BT-$B50D#,=$)`@2````B40D!/_5N@<```"%P`^$S/[__^F1_O__C;8`
-M````@[L``P```@^%;_[__XDT)(M#1,=$)`@7````B40D!(U$)!")1"0,_]>Z
-M!@```(7`#X2+_O__B30DBU0D$('B_P'__X'*`!(``(E4)!"+0T2)5"0,QT0D
-M"!<```")1"0$_]6Z!P```(7`#X12_O__B30DBT-$QT0D"!P```")1"0$C40D
-M$(E$)`S_U[H&````A<`/A"G^__^)-"2+5"00@\H$B50D$(M#1(E4)`S'1"0(
-M'````(E$)`3_U;H'````A<`/A/G]___IK_W__Y")]E.+5"0(,<`/MDPD#(M<
-M)!"%TG06,<`YV'T.C;8`````B`P00#G8?/B)T%O#5E.+3"0,BW0D%(M4)!"%
-MR70EA=)T(3';.?-]%I"-M"8`````#[8".`%U#$-!0CGS?/(QP%M>P[@!````
-MZ_:)]H/L"(M,)`R)'"2+7"04A<F)="0$BW0D$'0CA?9T'S'2.=I]#`^V!#*(
-M!`I".=I\](G(BQPDBW0D!(/$",,QP.OQD(GV5E.#["R+7"0XQT0D!`````"-
-M="0,B30DQT0D"!0```#H_/___S'29H,[`'08C78`#[8$4XA$%`Q"@_H3=P=F
-M@SQ3`'7KB30DZ/S___^#Q"Q;7L.04XM4)`@/MEPD#`^V`H3`=!F-="8`C;PG
-M`````#C8B=%T"D(/M@*$P'7R,<E;B<C#5S'25E.+1"08BWPD$(MT)!0YPGT6
-M@#X`=`V)]D(YPGT*@#PR`'7U.<)\!C'`6UY?PS';.=.-2O]]#XGV#[8$,4F(
-M!#M#.=-\\\8$.P")^.O<D(GV5E.+3"0,#[81@/H@=`J(T"P)/`1W$XGV00^V
-M$8#Z('3WB-`L"3P$=N\/MM)!@_HMB=9T,8/Z*W0LC4+0,=N#^`EW$XT$FXU<
-M0M`/MA%!C4+0@_@)=NV)V/?8@_XM#T38B=A;7L,/MA%!Z\Z0@^P(,=*+3"00
-MB1PDBUPD%(ET)`2+="0,.=I](V:#.0!T'8UV`(V\)P`````/M@11B`0R0CG:
-M?0=F@SQ1`'7MBQPDBW0D!(/$",.)]E4Q[5=64X/L3(MT)&"-?"0LZPV0D)"0
-MD)"0D)"0D)"0B30DQT0D!"X```#H_/___X7`B<-T<(/]`W]D.=YT5HD\),=$
-M)`0`````QT0D"!X```#H_/___[H>````B=@I\(D\)(/X'P]#PHET)`2)1"0(
-MZ/S___^)/"3H_/___P^WP&8]_P!W#HM4)&2-<P&(1!4`1>N+,<"#Q$Q;7E]=
-MP[@!````Z_&#_0-_],=$)`0`````C70D+(DT),=$)`@>````Z/S___^+1"1@
-MB30DQT0D"!X```")1"0$Z/S___^)-"3'1"0$+@```.C\____A<!TK,8``(U<
-M)`R)'"2)="0$QT0D"!X```#H_/___XD<).C\____#[?`9CW_``^'<O___XM4
-M)&2(1!4`Z6____\`````````````````````````````````````````````
-M``````````````````!34D,@03H@)%)E=FES:6]N.B`C,3`S("0``$=#0SH@
-M*$=.52D@,RXR```N<WEM=&%B`"YS=')T86(`+G-H<W1R=&%B`"YT97AT`"YR
-M96PN=&5X=``N9&%T80`N<F5L+F1A=&$`+F)S<P`N<F]D871A`"YC;VUM96YT
-M`````````````````````````````````````````````````````````!L`
-M```!````!@````````!`````\'\`````````````$``````````A````"0``
-M````````````H)(``&`%```)`````0````0````(````*P````$````#````
-M`````#"````4```````````````$`````````#$````)````````````````
-MF```"`````D````#````!`````@````[````"`````,`````````8(```*`!
-M`````````````"``````````0`````$````"`````````&"````9````````
-M```````!`````````$@````!``````````````!Y@```$```````````````
-M`0`````````1`````P``````````````B8```%$```````````````$`````
-M`````0````(``````````````)2"```@!P``"@````L````$````$`````D`
-M```#``````````````"TB0``[`@``````````````0``````````````````
-M`````````````0``````````````!`#Q_P````````````````,``0``````
-M```````````#``,``````````````````P`%``````````````````,`!@`-
-M````!`````0````!``,`%P````@````$`````0`#`"$````,````!`````$`
-M`P`K````$`````0````!``,``````````````````P`'`#4`````````!```
-M`!$``P!0`````````/`(```2``$`70```/`(``!\`@``$@`!`&L```!D#```
-MRPD``!(``0!X````/!D``#4````2``$`AP```/`9``!R````$@`!`)4```!D
-M&@``V0```!(``0"B````0!L``"P````2``$`N@```*`?```-!0``$@`!`-``
-M``!P00``?@$``!(``0#Z````;"8``#@"```2``$`$0$``&`^``!]`0``$@`!
-M`#@!``"(.@``/P```!(``0!4`0``C#P``$(````2``$`:P$``#PX``#M````
-M$@`!`(,!``#(.@``?````!(``0":`0``+#D``%L!```2``$`LP$``&0[``#,
-M````$@`!`,H!``!T3P``J0$``!(``0#A`0``(%$``(`!```2``$`\0$``*!2
-M``!B`0``$@`!``("``"D*```60```!(``0`:`@``1#L``!X````2``$`,0(`
-M```I``!,````$@`!`$L"``#\5````P```!(``0!?`@``P"H``*P````2``$`
-M=0(``&PK``!K````$@`!`)`"``!,/```&````!(``0"J`@``9#P``"<````2
-M``$`PP(``#`\```9````$@`!`-L"``!T&0``>P```!(``0#O`@``K"T``"0`
-M```2``$`!`,``-`M```J````$@`!`!@#``"(+0``(P```!(``0`M`P``<"T`
-M`!<````2``$`2`,``%@M```7````$@`!`&(#``#\+0``"P```!(``0!_`P``
-M""X```L````2``$`FP,``!0N``#L!@``$@`!`+$#````-0``5@```!(``0#.
-M`P``6#4``/4````2``$`Y`,``%`V```>`0``$@`!`/H#``!P-P``PP```!(`
-M`0`3!```-#@```8````2``$`+P0``*15```&`@``$@`!`#@$```$5```]P``
-M`!(``0!0!```;!L``#$$```2``$`7@0``.`_``"-`0``$@`!`(`$``"P)```
-MN@$``!(``0"/!```T#P``(T!```2``$`K@0```!5``"D````$@`!`,<$``!L
-M"P```0```!(``0#?!```<`L```,````2``$`]@0``'0+``"*````$@`!`!(%
-M````#```8@```!(``0`N!0``,!8```H#```2``$`1P4``-@K``!_`0``$@`!
-M`&$%```X*@``A@```!(``0!_!0``3"D``.H````2``$`G`4``.Q\``!!````
-M$@`!`*8%`````````````!````"M!0``!$X``)T````2``$`O04``*1.``#/
-M````$@`!`-4%``"T2@``P@$``!(``0#P!0``\$(``/$#```2``$`"@8``'A,
-M``")`0``$@`!`"T&``#D1@``S0,``!(``0!/!@``D&@``-L!```2``$`8`8`
-M`'Q8```]`0``$@`!`&D&````7P```P$``!(``0!V!@``!&```.H````2``$`
-M@08``/!@```J````$@`!`)(&```<80``)@```!(``0"B!@``>&\``&,````2
-M``$`NP8``'1;```/````$@`!`-(&``"$6P``#@```!(``0#H!@``K%<``,\`
-M```2``$`\@8``"!M```W`0``$@`!```'``!L:```'@```!(``0`5!P``W'0`
-M`'T!```2``$`*@<``)1;``!J`P``$@`!`#<'``"<6@``V````!(``0!;!P``
-M(&4``$P#```2``$`;`<``+Q9``#?````$@`!`'X'``#<;P``O@(``!(``0"I
-M!P``G'(``#T"```2``$`O`<``%QV``"7`P``$@`!`-0'``#T>0``B0(``!(`
-M`0#M!P``U&L``$D!```2``$`"P@``&QJ``!E`0``$@`!`!4(``!8;@``NP``
-M`!(``0`Q"```1&$``-L#```2``$`6`@``(QH```#````$@`!`&\(```4;P``
-M8P```!(``0"`"```@'P``"P````2``$`B@@``*Q\```^````$@`!`)0(```P
-M?0``4P```!(``0"<"```"'X``&L````2``$`I`@``(1]```P````$@`!`*X(
-M``"T?0``40```!(``0"X"```='X``$H````2``$`QP@``,!^```P`0``$@`!
-M`.8(````````D`$``!$`!0``;G9E;F5T;&EB+F,`0V]U;G1E<BXP`$-O=6YT
-M97(N,0!#;W5N=&5R+C(`0V]U;G1E<BXS`&-O;6UO;E]S<F-!7W9E<G-I;VY?
-M<W1R:6YG`$%$05!415)?3W!E;@!!1$%05$527T-L;W-E`$%$05!415)?26YI
-M=`!!1$%05$527T1E:6YI=`!!1$%05$527U-T87)T`$%$05!415)?4W1O<`!!
-M1$%05$527U%U97)Y5W)I=&53;&]T<P!!1$%05$527U=R:71E7T]F9FQO860`
-M041!4%1%4E](86YD;&5);G1E<G)U<'14:')O=6=H<'5T7T]F9FQO860`041!
-M4%1%4E]7<FET93%?3V9F;&]A9`!!1$%05$527TAA;F1L94EN=&5R<G5P=%!O
-M;&QI;F=?3V9F;&]A9`!!1$%05$527T5N86)L95=A:V55<%!A='1E<FX`041!
-M4%1%4E]1=65R>4EN=&5R<G5P=`!!1$%05$527U-E=%!A8VME=$9I;'1E<@!!
-M1$%05$527U-E=$YO9&5!9&1R97-S`$%$05!415)?4V5T5V%K955P4&%T=&5R
-M;@!!1$%05$527T=E=$%D87!T97));F9O`$%$05!415)?4V5T4W!E961$=7!L
-M97@`041!4%1%4E]296%D4&AY`$%$05!415)?5W)I=&50:'D`041!4%1%4E]2
-M96=I<W1E<D]F9FQO860`041!4%1%4E]'971.;V1E061D<F5S<P!!1$%05$52
-M7T1E4F5G:7-T97)/9F9L;V%D`$%$05!415)?4GA"=69F4F5A9'D`041!4%1%
-M4E]3971#;VUM;VY$871A`$%$05!415)?4V5T0VAE8VMS=6U/9F9L;V%D`$%$
-M05!415)?1&ES86)L94EN=&5R<G5P=',`041!4%1%4E]%;F%B;&5);G1E<G)U
-M<'1S`$%$05!415)?0VQE87));G1E<G)U<'1S`$%$05!415)?0VQE87)4>$1E
-M<V,`041!4%1%4E]'971,:6YK4W!E960`041!4%1%4E]'971,:6YK36]D90!!
-M1$%05$527T=E=$QI;FM3=&%T90!!1$%05$527TES3&EN:TEN:71I86QI>FEN
-M9P!!1$%05$527U)E<V5T4&AY26YI=%-T871E`$%$05!415)?1V5T5')A;G-M
-M:711=65U95-I>F4`041!4%1%4E]'971296-E:79E475E=653:7IE`$%$05!4
-M15)?1V5T4W1A=&ES=&EC<P!!1$%05$527T=E=%!O=V5R0V%P86)I;&ET:65S
-M`$%$05!415)?1V5T4&]W97)3=&%T90!!1$%05$527U-E=%!O=V5R4W1A=&4`
-M041!4%1%4E]3971,;W=3<&5E9$9O<E!-`$%$05!415)?1V5T4&%C:V5T1FEL
-M=&5R0V%P<P!02%E?3W!E;@!#<F5A=&5296-E:79E1&5S8W)I<'1O<@!!1$%0
-M5$527U=R:71E`$%$05!415)?2&%N9&QE26YT97)R=7!T5&AR;W5G:'!U=`!!
-M1$%05$527U=R:71E,0!!1$%05$527TAA;F1L94EN=&5R<G5P=%!O;&QI;F<`
-M1&5S=')O>5)E8V5I=F5$97-C<FEP=&]R`$UY3F1I<U)A=U=R:71E4&]R=%5L
-M;VYG`$UY3F1I<U)A=U)E8610;W)T56QO;F<`4V5T0V]N9FEG4W!A8V5/9F9S
-M970V.$)I=#$R`$=E=$-O;F9I9U-P86-E3V9F<V5T-CA":70Q,@!!1$%05$52
-M7U=O<FMA<F]U;F146$AA;F<`041!4%1%4E]296%D4W1A=&ES=&EC4F5G<P!3
-M=&%R=%)E8V5I=F5R06YD3W)4<F%N<VUI='1E<@!3=&]P4F5C96EV97)!;F1/
-M<E1R86YS;6ET=&5R`&YV7VUE;6-P>0!M96UC<'D`57!D871E34E)4W1A='5S
-M`%)E8610:'E3=&%T=7-!;F10<F]C97-S`%5P9&%T951R86YS;6ET1&5S8U)I
-M;F=$871A`%5P9&%T95)E8V5I=F5$97-C4FEN9T1A=&$`57!D871E5')A;G-M
-M:71$97-C4FEN9T1A=&%?3V9F;&]A9`!5<&1A=&5296-E:79E1&5S8U)I;F=$
-M871A7T]F9FQO860`4$A97T=E=$%C=&EV95!H>0!02%E?26YI=`!02%E?26YI
-M=$9A<W0`4$A97T1E:6YI=`!02%E?1V5T3&EN:U-P965D`%!(65]'971,:6YK
-M36]D90!02%E?1V5T3&EN:U-T871E17AT97)N86P`4$A97TES3&EN:TEN:71I
-M86QI>FEN9P!02%E?4F5S9710:'E);FET4W1A=&4`4$A97T-L;W-E`%!(65]0
-M;W=E<F1O=VX`4$A97T9O<F-E4W!E961$=7!L97@`4$A97U-E=$QO=U-P965D
-M1F]R4$T`4&AY5&EM97)&=6YC`%!(65]$;U!O<W1!=71O;F5G;W1I871I;VY0
-M<F]C97-S:6YG`$9O<F-E4W!E961$=7!L97@`4$A97U=A:71&;W),:6YK=7``
-M4$A97U-E=%-P965D1'5P;&5X1F]R1F%I;&5D075T;VYE9V]T:6%T:6]N`%!(
-M65]'9713<&5E9$1U<&QE>`!0:'E$;U!R95)E<V5T4')O8V5S<VEN9P!0:'E$
-M;U!O<W1297-E=%!R;V-E<W-I;F<`4$A97U!O=V5R=7!!;F1296UO=F5)<V]L
-M871I;VX`4$A97U)E<V5T`%!(65]#;VUP;&5T94%U=&]N96=O=&EA=&EO;@!&
-M;W)C95-P965D1'5P;&5X5&AR;W5G:$-O;G1R;VQ296=I<W1E<@!$=6UM>5]&
-M;W)C95-P965D1'5P;&5X`%!(65]'971,:6YK4W1A=&4`;G9?;65M<V5T`&YV
-M7VUE;6-M<`!N=E]W=&]I`&YV7V%T;VD`;G9?<W1R8VAR`&YV7W-T<G)E=@!M
-M96UC<'E?4WIZ5&]3>@!#;VYV97)T25!!9&1R97-S7U-T<FEN9U1O54-H87(`
-M87)R87D`I0$```$-``"L`0```0X``+4!```!#P``O`$```$0``##`0```1$`
-M`,H!```!$@``UP$```$3``#B`0```10``.D!```!%0``\`$```$6``#X`0``
-M`1<``/\!```!&```!`(```$9```)`@```1H``!0"```!&P``'P(```$<```J
-M`@```1T``#4"```!'@``0`(```$?``!+`@```2```%,"```!(0``7@(```$B
-M``!I`@```2,``'0"```!)```?P(```$E``";`@```28``*("```!)P``J0(`
-M``$H``"P`@```2D``+<"```!*@``O@(```$K``#%`@```2P``,P"```!+0``
-MTP(```$N``#:`@```2\``.$"```!,```Z`(```$Q``#O`@```3(``/8"```!
-M,P``_0(```$T```$`P```34```L#```!-@``.`<```$>``!(!P```1\``.T'
-M```"-P``(P@```(X``";"````3D``*8(```!.@``K0@```$[``"T"````3P`
-M`!D)```"#P``2PD```(]``"+"P```CX``)<+```"/P``P`L```(^``#,"P``
-M`C\``.@+```"/@``^`L```(^```;#````CX``"<,```"/P``.PP```(^``!'
-M#````C\``+P,```"$0``FA$```(M``"V%@```A$``)\8```"$```6QD```(1
-M``!C&0```D,``$0:```")P``5!H```)$``"J&@```B8``/$:```"10``Z2H`
-M``)&```G+@```D,```<Y```"1```(#D```)%```L.P```D0``#X[```"10``
-M[SL```)'``#P/0```D@``/H]```!`P``!3X```$#```//@```DD``!8^```!
-M`P``,CX```)*``!2/@```DL``'(_```"2```?#\```$#``"'/P```0,``),_
-M```"20``F3\```$#``"R/P```DP``-(_```"30```D$```)(```,00```0,`
-M`!=!```!`P``(4$```))```H00```0,``$-!```"2@``8D$```)+``"$0@``
-M`D@``(Y"```!`P``F4(```$#``"E0@```DD``*M"```!`P``QD(```),``#C
-M0@```DT``#A%```".```ST@```(X``"#3@```D4``(M.```"'0``FTX```)$
-M``#=3@```AX``%5/```"10``74\```(=``!M3P```D0``"16```"3@``,58`
-M``%/```X5@```5```#]6```!40``1E8```%2``!-5@```5,``%16```!5```
-M6U8```%5``!B5@```58``&E6```!5P``<%8```%8``!W5@```5D``'Y6```!
-M6@``YE8```%;```%60```E$``"A9```"7```.%D```)1``!,60```ET``$9;
-M```"7P``9EL```)>``!N6P```F```-A<```"7P``Y5P```)@```670```F$`
-M`.-=```"8@``@%X```)=``"07P```F,``*1?```"6P``2F````)C``"#8```
-M`F$``)9@```"9```HF````)B``"Y8````F,``-U@```"90``%&$```)@```\
-M80```F```(QB```"7@``J64```)F``#@9@```F4``/AF```"7```V&@```)C
-M```8<0```EX``)%R```"9@``$'8```)E```L=@```EP``%%]```":0``>7T`
-M``)L``#L?@```FT``!-_```":0``,G\```)&```Z?P```FP``(-_```":0``
-HFW\```)N``"K?P```FT``,I_```";@``TG\```)L`````````04`````
-`
-end
diff --git a/sys/contrib/dev/nv/nvenet_version.h b/sys/contrib/dev/nv/nvenet_version.h
deleted file mode 100644 (file)
index 6e12d88..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************** \
-|*                                                                 *|
-|*                                                                 *|
-|*  (c) NVIDIA Corporation. All rights reserved                    *| 
-|*                                                                 *|
-|*  THE INFORMATION CONTAINED HEREIN IS PROPRIETARY AND            *|
-|*  CONFIDENTIAL                                                   *|
-|*  TO NVIDIA, CORPORATION. USE, REPORDUCTION OR DISCLOSURE TO ANY *|
-|*  THIRD PARTY IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA CORP. *|
-|*                                                                 *|
-|*  THE INFORMATION CONTAINED HEREIN IS PROVIDED "AS IS" WITHOUT   *|
-|*  EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING ALL IMPLIED *|
-|*  WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS    *|
-|*  FOR A PARTICULAR PURPOSE.                                      *|
-|*                                                                 *|
-********************************************************************/
-
-#ifndef __NVENET_VERSION_H__
-#define        __NVENET_VERSION_H__ 
-
-#define DRIVER_VERSION_MAJOR        "1"
-#define DRIVER_VERSION_MINOR        "0"
-#define DRIVER_VERSION_PATCH        "13"
-#define DRIVER_VERSION              DRIVER_VERSION_MAJOR"."\
-                                    DRIVER_VERSION_MINOR"-"\
-                                    DRIVER_VERSION_PATCH
-
-#endif
-
diff --git a/sys/contrib/dev/nv/os.h b/sys/contrib/dev/nv/os.h
deleted file mode 100644 (file)
index 4749543..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-/***************************************************************************\
-|*                                                                           *|
-|*       Copyright 2001-2004 NVIDIA Corporation.  All Rights Reserved.       *|
-|*                                                                           *|
-|*     THE INFORMATION CONTAINED HEREIN  IS PROPRIETARY AND CONFIDENTIAL     *|
-|*     TO NVIDIA, CORPORATION.   USE,  REPRODUCTION OR DISCLOSURE TO ANY     *|
-|*     THIRD PARTY IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORP.       *|
-|*                                                                           *|
-|*     THE INFORMATION CONTAINED HEREIN IS PROVIDED  "AS IS" WITHOUT         *|
-|*     EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING ALL IMPLIED        *|
-|*     WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A     *|
-|*     PARTICULAR PURPOSE.                                                   *|
-|*                                                                           *|
-\***************************************************************************/ 
-
-/*
-    FILE:   os.h
-    DATE:   2/7/00
-
-    This file contains the os interface. Note that the os interface is
-    itself an OS-independent API. The OS specific module is implemented
-    by ndis.c for Win9X/NT and linuxnet.c for linux.
-*/
-#ifndef _OS_H_
-#define _OS_H_
-
-#include "phy.h"
-
-#define HDO_VERSION_STRING "HDR O: $Revision: #21 $";
-
-// This is the maximum packet size that we will be sending
-// #define MAX_PACKET_SIZE     2048
-//#define RX_BUFFER_SIZE      2048
-
-#define MIN_PACKET_MTU_SIZE     576
-#define MAX_PACKET_MTU_SIZE     9202
-#define MAX_PACKET_SIZE_2048      2048
-#define MAX_PACKET_SIZE_1514    1514
-#define MAX_PACKET_SIZE_1518    1518
-#define MAX_PACKET_SIZE_JUMBO   (9 * 1024)
-
-typedef struct  _MEMORY_BLOCK
-{
-    PNV_VOID   pLogical;
-    PNV_VOID   pPhysical;
-    NV_UINT32    uiLength;
-}   MEMORY_BLOCK, *PMEMORY_BLOCK;
-
-#define        ALLOC_MEMORY_NONCACHED    0x0001
-#define        ALLOC_MEMORY_ALIGNED    0x0002
-
-typedef struct  _MEMORY_BLOCKEX
-{
-    PNV_VOID   pLogical;
-    PNV_VOID   pPhysical;
-    NV_UINT32    uiLength;
-    /* Parameter to OS layer to indicate what type of memory is needed */
-    NV_UINT16    AllocFlags;
-    NV_UINT16    AlignmentSize; //always power of 2
-    /* Following three fields used for aligned memory allocation */
-    PNV_VOID   pLogicalOrig;
-    NV_UINT32    pPhysicalOrigLow;
-    NV_UINT32    pPhysicalOrigHigh;
-    NV_UINT32    uiLengthOrig;
-}   MEMORY_BLOCKEX, *PMEMORY_BLOCKEX;
-
-
-// The typedefs for the OS functions
-typedef NV_API_CALL NV_SINT32 (* PFN_MEMORY_ALLOC) (PNV_VOID pOSCX, PMEMORY_BLOCK pMem);
-typedef NV_API_CALL NV_SINT32 (* PFN_MEMORY_FREE)  (PNV_VOID pOSCX, PMEMORY_BLOCK pMem);
-typedef NV_API_CALL NV_SINT32 (* PFN_MEMORY_ALLOCEX) (PNV_VOID pOSCX, PMEMORY_BLOCKEX pMem);
-typedef NV_API_CALL NV_SINT32 (* PFN_MEMORY_FREEEX)  (PNV_VOID pOSCX, PMEMORY_BLOCKEX pMem);
-typedef NV_API_CALL NV_SINT32 (* PFN_CLEAR_MEMORY)  (PNV_VOID pOSCX, PNV_VOID pMem, NV_SINT32 iLength);
-typedef NV_API_CALL NV_SINT32 (* PFN_STALL_EXECUTION) (PNV_VOID pOSCX, NV_UINT32 ulTimeInMicroseconds);
-typedef NV_API_CALL NV_SINT32 (* PFN_ALLOC_RECEIVE_BUFFER) (PNV_VOID pOSCX, PMEMORY_BLOCK pMem, PNV_VOID *ppvID);
-typedef NV_API_CALL NV_SINT32 (* PFN_FREE_RECEIVE_BUFFER) (PNV_VOID pOSCX, PMEMORY_BLOCK pMem, PNV_VOID pvID);
-typedef NV_API_CALL NV_SINT32 (* PFN_PACKET_WAS_SENT) (PNV_VOID pOSCX, PNV_VOID pvID, NV_UINT32 ulSuccess);
-typedef NV_API_CALL NV_SINT32 (* PFN_PACKET_WAS_RECEIVED) (PNV_VOID pOSCX, PNV_VOID pvADReadData, NV_UINT32 ulSuccess, NV_UINT8 *pNewBuffer, NV_UINT8 uc8021pPriority);
-typedef NV_API_CALL NV_SINT32 (* PFN_LINK_STATE_HAS_CHANGED) (PNV_VOID pOSCX, NV_SINT32 nEnabled);
-typedef NV_API_CALL NV_SINT32 (* PFN_ALLOC_TIMER) (PNV_VOID pvContext, PNV_VOID *ppvTimer);
-typedef NV_API_CALL NV_SINT32 (* PFN_FREE_TIMER) (PNV_VOID pvContext, PNV_VOID pvTimer);
-typedef NV_API_CALL NV_SINT32 (* PFN_INITIALIZE_TIMER) (PNV_VOID pvContext, PNV_VOID pvTimer, PTIMER_FUNC pvFunc, PNV_VOID pvFuncParameter);
-typedef NV_API_CALL NV_SINT32 (* PFN_SET_TIMER) (PNV_VOID pvContext, PNV_VOID pvTimer, NV_UINT32 dwMillisecondsDelay);
-typedef NV_API_CALL NV_SINT32 (* PFN_CANCEL_TIMER) (PNV_VOID pvContext, PNV_VOID pvTimer);
-
-typedef NV_API_CALL NV_SINT32 (* PFN_PREPROCESS_PACKET) (PNV_VOID pvContext, PNV_VOID pvADReadData, PNV_VOID *ppvID,
-                NV_UINT8 *pNewBuffer, NV_UINT8 uc8021pPriority);
-typedef NV_API_CALL PNV_VOID (* PFN_PREPROCESS_PACKET_NOPQ) (PNV_VOID pvContext, PNV_VOID pvADReadData);
-typedef NV_API_CALL NV_SINT32 (* PFN_INDICATE_PACKETS) (PNV_VOID pvContext, PNV_VOID *ppvID, NV_UINT32 ulNumPacket);
-typedef NV_API_CALL NV_SINT32 (* PFN_LOCK_ALLOC) (PNV_VOID pOSCX, NV_SINT32 iLockType, PNV_VOID *ppvLock);
-typedef NV_API_CALL NV_SINT32 (* PFN_LOCK_ACQUIRE) (PNV_VOID pOSCX, NV_SINT32 iLockType, PNV_VOID pvLock);
-typedef NV_API_CALL NV_SINT32 (* PFN_LOCK_RELEASE) (PNV_VOID pOSCX, NV_SINT32 iLockType, PNV_VOID pvLock);
-typedef NV_API_CALL PNV_VOID (* PFN_RETURN_BUFFER_VIRTUAL) (PNV_VOID pvContext, PNV_VOID pvADReadData);
-
-// Here are the OS functions that those objects below the OS interface
-// can call up to.
-typedef struct  _OS_API
-{
-    // OS Context -- this is a parameter to every OS API call
-    PNV_VOID                       pOSCX;
-
-    // Basic OS functions
-    PFN_MEMORY_ALLOC            pfnAllocMemory;
-    PFN_MEMORY_FREE             pfnFreeMemory;
-    PFN_MEMORY_ALLOCEX          pfnAllocMemoryEx;
-    PFN_MEMORY_FREEEX           pfnFreeMemoryEx;
-    PFN_CLEAR_MEMORY            pfnClearMemory;
-    PFN_STALL_EXECUTION         pfnStallExecution;
-    PFN_ALLOC_RECEIVE_BUFFER    pfnAllocReceiveBuffer;
-    PFN_FREE_RECEIVE_BUFFER     pfnFreeReceiveBuffer;
-    PFN_PACKET_WAS_SENT         pfnPacketWasSent;
-    PFN_PACKET_WAS_RECEIVED     pfnPacketWasReceived;
-    PFN_LINK_STATE_HAS_CHANGED  pfnLinkStateHasChanged;
-    PFN_ALLOC_TIMER                pfnAllocTimer;
-    PFN_FREE_TIMER                pfnFreeTimer;
-    PFN_INITIALIZE_TIMER        pfnInitializeTimer;
-    PFN_SET_TIMER                pfnSetTimer;
-    PFN_CANCEL_TIMER            pfnCancelTimer;
-    PFN_PREPROCESS_PACKET       pfnPreprocessPacket;
-    PFN_PREPROCESS_PACKET_NOPQ  pfnPreprocessPacketNopq;
-    PFN_INDICATE_PACKETS        pfnIndicatePackets;
-    PFN_LOCK_ALLOC                pfnLockAlloc;
-    PFN_LOCK_ACQUIRE            pfnLockAcquire;
-    PFN_LOCK_RELEASE            pfnLockRelease;
-    PFN_RETURN_BUFFER_VIRTUAL    pfnReturnBufferVirtual;
-}   OS_API, *POS_API;
-
-#endif // _OS_H_
diff --git a/sys/contrib/dev/nv/phy.h b/sys/contrib/dev/nv/phy.h
deleted file mode 100644 (file)
index 87596a5..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/***************************************************************************\
-|*                                                                           *|
-|*       Copyright 2001-2004 NVIDIA Corporation.  All Rights Reserved.       *|
-|*                                                                           *|
-|*     THE INFORMATION CONTAINED HEREIN  IS PROPRIETARY AND CONFIDENTIAL     *|
-|*     TO NVIDIA, CORPORATION.   USE,  REPRODUCTION OR DISCLOSURE TO ANY     *|
-|*     THIRD PARTY IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORP.       *|
-|*                                                                           *|
-|*     THE INFORMATION CONTAINED HEREIN IS PROVIDED  "AS IS" WITHOUT         *|
-|*     EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING ALL IMPLIED        *|
-|*     WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A     *|
-|*     PARTICULAR PURPOSE.                                                   *|
-|*                                                                           *|
-\***************************************************************************/ 
-
-/*
-    FILE:   phy.h
-    DATE:   2/7/00
-
-    This file contains the functional interface to the PHY.
-*/
-#ifndef _PHY_H_
-#define _PHY_H_
-
-//#include "basetype.h"
-//#include "nvevent.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define DEFAULT_PHY_ADDRESS   1
-
-
-#define HDP_VERSION_STRING "HDR P: $Revision: #23 $"
-
-//
-// Defaults for PHY timeout values.
-//
-#define PHY_POWER_ISOLATION_MS_TIMEOUT_DEFAULT      50
-#define PHY_RESET_MS_TIMEOUT_DEFAULT                50
-#define PHY_AUTONEG_MS_TIMEOUT_DEFAULT              3000
-#define PHY_LINK_UP_MS_TIMEOUT_DEFAULT              2400
-#define PHY_RDWR_US_TIMEOUT_DEFAULT                 2048
-#define PHY_POWER_DOWN_US_TIMEOUT_DEFAULT           500
-
-
-/////////////////////////////////////////////////////////////////////////
-// The phy module knows the values that need to go into the phy registers
-// but typically the method of writing those registers is controlled by
-// another module (usually the adapter because it is really the hardware
-// interface.) Hence, the phy needs routines to call to read and write the
-// phy registers. This structure with appropriate routines will be provided
-// in the PHY_Open call.
-
-typedef NV_API_CALL NV_SINT32 (* PFN_READ_PHY)  (PNV_VOID pvData, NV_UINT32 ulPhyAddr, NV_UINT32 ulPhyReg, NV_UINT32 *pulValue);
-typedef NV_API_CALL NV_SINT32 (* PFN_WRITE_PHY) (PNV_VOID pvData, NV_UINT32 ulPhyAddr, NV_UINT32 ulPhyReg, NV_UINT32 ulValue);
-
-typedef struct  PHY_SUPPORT_API
-{
-    PNV_VOID            pADCX;
-    PFN_READ_PHY        pfnRead;
-    PFN_WRITE_PHY       pfnWrite;
-       // PFN_EVENT_OCCURED   pfnEventOccurred;
-
-    //
-    // These fields are passed down via the FD.  FD get's them
-    // from the registry.  They allow one to fine tune the timeout
-    // values in the PHY.
-    //
-    NV_UINT32  PhyPowerIsolationTimeoutInms;
-       NV_UINT32       PhyResetTimeoutInms;
-       NV_UINT32       PhyAutonegotiateTimeoutInms;
-       NV_UINT32       PhyLinkupTimeoutInms;
-       NV_UINT32       PhyPowerdownOnCloseInus;
-
-}   PHY_SUPPORT_API, *PPHY_SUPPORT_API;
-/////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////
-// The functional typedefs for the PHY Api
-typedef NV_SINT32 (* PFN_PHY_INIT) (PNV_VOID pvContext, NV_UINT32 *pulLinkState, NV_UINT32 PhyMode);
-typedef NV_SINT32 (* PFN_PHY_DEINIT) (PNV_VOID pvContext);
-typedef NV_SINT32 (* PFN_PHY_CLOSE) (PNV_VOID pvContext);
-typedef NV_SINT32 (* PFN_GET_LINK_SPEED) (PNV_VOID pvContext);
-typedef NV_SINT32 (* PFN_GET_LINK_MODE) (PNV_VOID pvContext);
-typedef NV_SINT32 (* PFN_GET_LINK_STATE) (PNV_VOID pvContext, NV_UINT32 *pulLinkState);
-typedef NV_SINT32 (* PFN_IS_LINK_INITIALIZING) (PNV_VOID pvContext);
-typedef NV_SINT32 (* PFN_RESET_PHY_INIT_STATE) (PNV_VOID pvContext);
-typedef NV_SINT32 (* PFN_FORCE_SPEED_DUPLEX) (PNV_VOID pvContext, NV_UINT16 usSpeed, NV_UINT8 ucForceDpx, NV_UINT8 ucForceMode);
-typedef NV_SINT32 (* PFN_PHY_POWERDOWN) (PNV_VOID pvContext);
-typedef NV_SINT32 (* PFN_SET_LOW_SPEED_FOR_PM) (PNV_VOID pvContext);
-
-
-typedef struct  _PHY_API
-{
-    // This is the context to pass back in as the first arg on all
-    // the calls in the API below.
-    PNV_VOID               pPHYCX;
-
-    PFN_PHY_INIT                pfnInit;
-    PFN_PHY_INIT                pfnInitFast;
-    PFN_PHY_DEINIT                pfnDeinit;
-    PFN_PHY_CLOSE                pfnClose;
-    PFN_GET_LINK_SPEED            pfnGetLinkSpeed;
-    PFN_GET_LINK_MODE            pfnGetLinkMode;
-    PFN_GET_LINK_STATE            pfnGetLinkState;
-    PFN_IS_LINK_INITIALIZING    pfnIsLinkInitializing;
-    PFN_RESET_PHY_INIT_STATE    pfnResetPhyInitState;
-    PFN_FORCE_SPEED_DUPLEX        pfnForceSpeedDuplex;
-    PFN_PHY_POWERDOWN            pfnPowerdown;
-    PFN_SET_LOW_SPEED_FOR_PM    pfnSetLowSpeedForPM;
-}   PHY_API, *PPHY_API;
-/////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////
-// This is the one function in the PHY interface that is publicly
-// available. The rest of the interface is returned in the pPhyApi;
-// The first argument needs to be cast to a POS_API structure ptr.
-// On input the second argument is a ptr to a PPHY_SUPPORT_API.
-// On output, the second argument should be treated as a ptr to a
-// PPHY_API and set appropriately.
-extern NV_SINT32 PHY_Open (PNV_VOID pvOSApi, PNV_VOID pPhyApi, NV_UINT32 *pulPhyAddr, NV_UINT32 *pulPhyConnected);
-/////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////
-// Here are the error codes the phy functions can return.
-#define PHYERR_NONE                                 0x0000
-#define PHYERR_COULD_NOT_ALLOC_CONTEXT              0x0001
-#define PHYERR_RESET_NEVER_FINISHED                 0x0002
-#define PHYERR_NO_AVAILABLE_LINK_SPEED              0x0004
-#define PHYERR_INVALID_SETTINGS                     0x0005
-#define PHYERR_READ_FAILED                          0x0006
-#define PHYERR_WRITE_FAILED                         0x0007
-#define PHYERR_NO_PHY                               0x0008
-#define PHYERR_NO_RESOURCE                          0x0009
-#define PHYERR_POWER_ISOLATION_TIMEOUT              0x000A
-#define PHYERR_POWER_DOWN_TIMEOUT                   0x000B
-#define PHYERR_AUTONEG_TIMEOUT                      0x000C
-#define PHYERR_PHY_LINK_SPEED_UNCHANGED             0x000D
-
-#define PHY_INVALID_PHY_ADDR                    0xFFFF;
-
-/////////////////////////////////////////////////////////////////////////
-
-// This value can be used in the ulPhyLinkSpeed field.
-#define PHY_LINK_SPEED_UNKNOWN          0x0FFFFFFFF
-
-//
-// Values used to configure PHY mode.
-//
-#define PHY_MODE_MII    1
-#define PHY_MODE_RGMII  2
-
-typedef NV_VOID (* PTIMER_FUNC) (PNV_VOID pvContext);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif //_PHY_H_
diff --git a/sys/dev/netif/nv/Makefile b/sys/dev/netif/nv/Makefile
deleted file mode 100644 (file)
index 9859ec9..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# $DragonFly: src/sys/dev/netif/nv/Attic/Makefile,v 1.4 2006/01/29 22:10:11 corecode Exp $
-
-CONTRIBDIR=    ${.CURDIR}/../../../contrib/dev/nv
-
-KMOD=  if_nv
-SRCS=  if_nv.c miibus_if.h device_if.h bus_if.h pci_if.h opt_polling.h
-SRCS+= adapter.h.patch basetype.h.patch os.h.patch phy.h.patch drvinfo.h.patch
-OBJS+= nvenetlib.o
-CLEANFILES+= nvenetlib.o
-KMODDEPS = miibus
-
-CFLAGS+= -I${.OBJDIR} -I${.CURDIR} -I${CONTRIBDIR}
-
-.ifndef BUILDING_WITH_KERNEL
-opt_polling.h:
-       echo '#define DEVICE_POLLING 1' > ${.OBJDIR}/${.TARGET}
-.endif
-
-nvenetlib.o: ${CONTRIBDIR}/${MACHINE_ARCH}/nvenetlib.o.uu
-       uudecode < ${.ALLSRC:M*.uu}
-
-.include <bsd.kmod.mk>
diff --git a/sys/dev/netif/nv/adapter.h.patch b/sys/dev/netif/nv/adapter.h.patch
deleted file mode 100644 (file)
index b881a4f..0000000
+++ /dev/null
@@ -1,454 +0,0 @@
-$DragonFly: src/sys/dev/netif/nv/Attic/adapter.h.patch,v 1.2 2005/04/04 18:45:07 joerg Exp $
-
---- adapter.h.orig     2005-03-12 10:59:18.000000000 +0100
-+++ adapter.h  2005-04-02 20:23:52.000000000 +0200
-@@ -35,13 +35,13 @@
- #endif
- #endif
--//////////////////////////////////////////////////////////////////
--// For the set and get configuration calls.
-+/****************************************************************/
-+/* For the set and get configuration calls. */
- typedef struct  _ADAPTER_CONFIG
- {
-     NV_UINT32   ulFlags;
- }   ADAPTER_CONFIG, *PADAPTER_CONFIG;
--//////////////////////////////////////////////////////////////////
-+/****************************************************************/
- typedef struct _ADAPTER_WRITE_OFFLOAD
- {
-@@ -50,8 +50,8 @@
- } ADAPTER_WRITE_OFFLOAD;
--//////////////////////////////////////////////////////////////////
--// For the ADAPTER_Write1 call.
-+/****************************************************************/
-+/* For the ADAPTER_Write1 call. */
- /* This scatter gather list should be same as defined in ndis.h by MS.
-    For ULONG_PTR MS header file says that it will be of same size as
-    pointer. It has been defined to take care of casting between differenet
-@@ -70,10 +70,10 @@
- typedef struct _NVSCATTER_GATHER_LIST {
-     NV_UINT32       NumberOfElements;
-     NV_VOID         *Reserved;
--    NVSCATTER_GATHER_ELEMENT Elements[0];   // Made 0 sized element to remove MODS compilation error
--                                            // Elements[0] and Elements[] have the same effect. 
--                                            // sizeof(NVSCATTER_GATHER_LIST) is the same (value of 8) in both cases
--                                            // And both lead to Warning 4200 in MSVC
-+    NVSCATTER_GATHER_ELEMENT Elements[0];   /* Made 0 sized element to remove MODS compilation error
-+                                            ** Elements[0] and Elements[] have the same effect. 
-+                                            ** sizeof(NVSCATTER_GATHER_LIST) is the same (value of 8) in both cases
-+                                            ** And both lead to Warning 4200 in MSVC */
- } NVSCATTER_GATHER_LIST, *PNVSCATTER_GATHER_LIST;
- #ifndef linux
- #pragma warning(default:4200)
-@@ -89,8 +89,8 @@
- }   ADAPTER_WRITE_DATA1, *PADAPTER_WRITE_DATA1;
--//////////////////////////////////////////////////////////////////
--// For the ADAPTER_Write call.
-+/****************************************************************/
-+/* For the ADAPTER_Write call. */
- typedef struct  _ADAPTER_WRITE_ELEMENT
- {
-     PNV_VOID   pPhysical;
-@@ -106,9 +106,9 @@
- #define ADAPTER_WRITE_OFFLOAD_BP_IPCHECKSUM      5
--// pvID is a value that will be passed back into OSAPI.pfnPacketWasSent
--// when the transmission completes. if pvID is NULL, the ADAPTER code
--// assumes the caller does not want the pfnPacketWasSent callback.
-+/* pvID is a value that will be passed back into OSAPI.pfnPacketWasSent
-+** when the transmission completes. if pvID is NULL, the ADAPTER code
-+** assumes the caller does not want the pfnPacketWasSent callback. */
- typedef struct  _ADAPTER_WRITE_DATA
- {
-     NV_UINT32                   ulNumberOfElements;
-@@ -118,12 +118,12 @@
-     ADAPTER_WRITE_OFFLOAD       *psOffload;
-     ADAPTER_WRITE_ELEMENT       sElement[100];
- }   ADAPTER_WRITE_DATA, *PADAPTER_WRITE_DATA;
--//////////////////////////////////////////////////////////////////
-+/****************************************************************/
--//////////////////////////////////////////////////////////////////
--// For the ADAPTER_Read call.
-+/****************************************************************/
-+/* For the ADAPTER_Read call. */
- typedef struct  _ADAPTER_READ_ELEMENT
- {
-     PNV_VOID   pPhysical;
-@@ -157,16 +157,16 @@
- #define RDFLAG_CHK_RESERVED        7
--// The ulFilterMatch flag can be a logical OR of the following
-+/* The ulFilterMatch flag can be a logical OR of the following */
- #define ADREADFL_UNICAST_MATCH          0x00000001
- #define ADREADFL_MULTICAST_MATCH        0x00000002
- #define ADREADFL_BROADCAST_MATCH        0x00000004
--//////////////////////////////////////////////////////////////////
-+/****************************************************************/
--//////////////////////////////////////////////////////////////////
--// For the ADAPTER_GetPowerCapabilities call.
-+/****************************************************************/
-+/* For the ADAPTER_GetPowerCapabilities call. */
- typedef struct  _ADAPTER_POWERCAPS
- {
-     NV_UINT32   ulPowerFlags;
-@@ -176,7 +176,7 @@
-     NV_SINT32     iMaxWakeUpPatterns;
- }   ADAPTER_POWERCAPS, *PADAPTER_POWERCAPS;
--// For the ADAPTER_GetPowerState and ADAPTER_SetPowerState call.
-+/* For the ADAPTER_GetPowerState and ADAPTER_SetPowerState call. */
- typedef struct  _ADAPTER_POWERSTATE
- {
-     NV_UINT32   ulPowerFlags;
-@@ -185,15 +185,15 @@
-     NV_UINT32   ulLinkChangeWakeUpFlags;
- }   ADAPTER_POWERSTATE, *PADAPTER_POWERSTATE;
--// Each of the flag fields in the POWERCAPS structure above can have
--// any of the following bitflags set giving the capabilites of the
--// adapter. In the case of the wake up fields, these flags mean that
--// wake up can happen from the specified power state.
--
--// For the POWERSTATE structure, the ulPowerFlags field should just
--// have one of these bits set to go to that particular power state.
--// The WakeUp fields can have one or more of these bits set to indicate
--// what states should be woken up from.
-+/* Each of the flag fields in the POWERCAPS structure above can have
-+** any of the following bitflags set giving the capabilites of the
-+** adapter. In the case of the wake up fields, these flags mean that
-+** wake up can happen from the specified power state. */
-+
-+/* For the POWERSTATE structure, the ulPowerFlags field should just
-+** have one of these bits set to go to that particular power state.
-+** The WakeUp fields can have one or more of these bits set to indicate
-+** what states should be woken up from. */
- #define POWER_STATE_D0          0x00000001
- #define POWER_STATE_D1          0x00000002
- #define POWER_STATE_D2          0x00000004
-@@ -203,13 +203,13 @@
-                                 POWER_STATE_D1  | \
-                                 POWER_STATE_D2  | \
-                                 POWER_STATE_D3)
--//////////////////////////////////////////////////////////////////
-+/****************************************************************/
--//////////////////////////////////////////////////////////////////
--// The ADAPTER_GetPacketFilterCaps call returns a NV_UINT32 that can
--// have the following capability bits set.
-+/****************************************************************/
-+/* The ADAPTER_GetPacketFilterCaps call returns a NV_UINT32 that can
-+** have the following capability bits set. */
- #define ACCEPT_UNICAST_PACKETS      0x00000001
- #define ACCEPT_MULTICAST_PACKETS    0x00000002
- #define ACCEPT_BROADCAST_PACKETS    0x00000004
-@@ -217,30 +217,30 @@
- #define ETH_LENGTH_OF_ADDRESS        6
--// The ADAPTER_SetPacketFilter call uses this structure to know what
--// packet filter to set. The ulPacketFilter field can contain some
--// union of the bit flags above. The acMulticastMask array holds a
--// 48 bit MAC address mask with a 0 in every bit position that should
--// be ignored on compare and a 1 in every bit position that should
--// be taken into account when comparing to see if the destination
--// address of a packet should be accepted for multicast.
-+/* The ADAPTER_SetPacketFilter call uses this structure to know what
-+** packet filter to set. The ulPacketFilter field can contain some
-+** union of the bit flags above. The acMulticastMask array holds a
-+** 48 bit MAC address mask with a 0 in every bit position that should
-+** be ignored on compare and a 1 in every bit position that should
-+** be taken into account when comparing to see if the destination
-+** address of a packet should be accepted for multicast. */
- typedef struct  _PACKET_FILTER
- {
-     NV_UINT32   ulFilterFlags;
-     NV_UINT8   acMulticastAddress[ETH_LENGTH_OF_ADDRESS];
-     NV_UINT8   acMulticastMask[ETH_LENGTH_OF_ADDRESS];
- }   PACKET_FILTER, *PPACKET_FILTER;
--//////////////////////////////////////////////////////////////////
-+/****************************************************************/
--//////////////////////////////////////////////////////////////////
--// A WAKE_UP_PATTERN is a 128-byte pattern that the adapter can
--// look for in incoming packets to decide when to wake up.  Higher-
--// level protocols can use this to, for example, wake up the
--// adapter whenever it sees an IP packet that is addressed to it.
--// A pattern consists of 128 bits of byte masks that indicate
--// which bytes in the packet are relevant to the pattern, plus
--// values for each byte.
-+/****************************************************************/
-+/* A WAKE_UP_PATTERN is a 128-byte pattern that the adapter can
-+** look for in incoming packets to decide when to wake up.  Higher-
-+** level protocols can use this to, for example, wake up the
-+** adapter whenever it sees an IP packet that is addressed to it.
-+** A pattern consists of 128 bits of byte masks that indicate
-+** which bytes in the packet are relevant to the pattern, plus
-+** values for each byte. */
- #define WAKE_UP_PATTERN_SIZE 128
- typedef struct _WAKE_UP_PATTERN
-@@ -251,10 +251,10 @@
--//
--//
--// Adapter offload
--//
-+/*
-+**
-+** Adapter offload
-+*/
- typedef struct _ADAPTER_OFFLOAD {
-     NV_UINT32 Type;
-@@ -266,13 +266,13 @@
- #define ADAPTER_OFFLOAD_IEEE802_1P    0x00000002
- #define ADAPTER_OFFLOAD_IEEE802_1PQ_PAD    0x00000004
--//////////////////////////////////////////////////////////////////
-+/****************************************************************/
--//  CMNDATA_OS_ADAPTER
--//  Structure common to OS and Adapter layers
--//  Used for moving data from the OS layer to the adapter layer through SetCommonData 
--//  function call from OS layer to Adapter layer
--// 
-+/*  CMNDATA_OS_ADAPTER
-+**  Structure common to OS and Adapter layers
-+**  Used for moving data from the OS layer to the adapter layer through SetCommonData 
-+**  function call from OS layer to Adapter layer
-+*/ 
- typedef struct  _CMNDATA_OS_ADAPTER
- {
-@@ -287,8 +287,8 @@
-     NV_UINT32           ulMediaIF;
-     NV_UINT32           bOemCustomEventRead;
--    // Debug only right now
--    //!!! Beware mods is relying on the fields blow.
-+    /* Debug only right now */
-+    /*!!! Beware mods is relying on the fields blow. */
-     NV_UINT32           ulWatermarkTFBW;
-     NV_UINT32           ulBackoffRseed;
-     NV_UINT32           ulBackoffSlotTime;
-@@ -298,8 +298,8 @@
- } CMNDATA_OS_ADAPTER;
--//////////////////////////////////////////////////////////////////
--// The functional typedefs for the ADAPTER Api
-+/****************************************************************/
-+/* The functional typedefs for the ADAPTER Api */
- typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_CLOSE)  (PNV_VOID pvContext, NV_UINT8 ucIsPowerDown);
- typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_INIT)  (PNV_VOID pvContext, NV_UINT16 usForcedSpeed, NV_UINT8 ucForceDpx, NV_UINT8 ucForceMode, NV_UINT8 ucAsyncMode, NV_UINT32 *puiLinkState);
- typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_DEINIT)  (PNV_VOID pvContext, NV_UINT8 ucIsPowerDown);
-@@ -364,10 +364,10 @@
-  
- typedef struct  _ADAPTER_API
- {
--    // The adapter context
-+    /* The adapter context */
-     PNV_VOID                                   pADCX;
--    // The adapter interface
-+    /* The adapter interface */
-     PFN_ADAPTER_CLOSE                       pfnClose;
-     PFN_ADAPTER_INIT                        pfnInit;
-     PFN_ADAPTER_DEINIT                      pfnDeinit;
-@@ -424,29 +424,29 @@
-     PFN_ADAPTER_SET_CHECKSUMOFFLOAD         pfnSetChecksumOffload;
- }   ADAPTER_API, *PADAPTER_API;
--//////////////////////////////////////////////////////////////////
-+/****************************************************************/
- #define MAX_PACKET_TO_ACCUMULATE    16
- typedef struct _ADAPTER_OPEN_PARAMS
- {
--    PNV_VOID pOSApi; //pointer to OSAPI structure passed from higher layer
--    PNV_VOID pvHardwareBaseAddress; //memory mapped address passed from higher layer
--    NV_UINT32 ulPollInterval; //poll interval in micro seconds. Used in polling mode
--    NV_UINT32 MaxDpcLoop; //Maximum number of times we loop to in function ADAPTER_HandleInterrupt
--    NV_UINT32 MaxRxPkt; //Maximum number of packet we process each time in function UpdateReceiveDescRingData
--    NV_UINT32 MaxTxPkt; //Maximum number of packet we process each time in function UpdateTransmitDescRingData
--    NV_UINT32 MaxRxPktToAccumulate; //maximum number of rx packet we accumulate in UpdateReceiveDescRingData before
--                                //indicating packets to OS.
--    NV_UINT32 SentPacketStatusSuccess; //Status returned from adapter layer to higher layer when packet was sent successfully
--    NV_UINT32 SentPacketStatusFailure; ////Status returned from adapter layer to higher layer when packet send was unsuccessful
--    NV_UINT32 SetForcedModeEveryNthRxPacket; //NOT USED: For experiment with descriptor based interrupt
--    NV_UINT32 SetForcedModeEveryNthTxPacket; //NOT USED: For experiment with descriptor based interrupt
--    NV_UINT32 RxForcedInterrupt; //NOT USED: For experiment with descriptor based interrupt
--    NV_UINT32 TxForcedInterrupt; //NOT USED: For experiment with descriptor based interrupt
--    NV_UINT32 DeviceId; //Of MAC
-+    PNV_VOID pOSApi; /*pointer to OSAPI structure passed from higher layer */
-+    PNV_VOID pvHardwareBaseAddress; /*memory mapped address passed from higher layer */
-+    NV_UINT32 ulPollInterval; /*poll interval in micro seconds. Used in polling mode */
-+    NV_UINT32 MaxDpcLoop; /*Maximum number of times we loop to in function ADAPTER_HandleInterrupt */
-+    NV_UINT32 MaxRxPkt; /*Maximum number of packet we process each time in function UpdateReceiveDescRingData */
-+    NV_UINT32 MaxTxPkt; /*Maximum number of packet we process each time in function UpdateTransmitDescRingData */
-+    NV_UINT32 MaxRxPktToAccumulate; /*maximum number of rx packet we accumulate in UpdateReceiveDescRingData before */
-+                                /*indicating packets to OS. */
-+    NV_UINT32 SentPacketStatusSuccess; /*Status returned from adapter layer to higher layer when packet was sent successfully */
-+    NV_UINT32 SentPacketStatusFailure; /***Status returned from adapter layer to higher layer when packet send was unsuccessful */
-+    NV_UINT32 SetForcedModeEveryNthRxPacket; /*NOT USED: For experiment with descriptor based interrupt */
-+    NV_UINT32 SetForcedModeEveryNthTxPacket; /*NOT USED: For experiment with descriptor based interrupt */
-+    NV_UINT32 RxForcedInterrupt; /*NOT USED: For experiment with descriptor based interrupt */
-+    NV_UINT32 TxForcedInterrupt; /*NOT USED: For experiment with descriptor based interrupt */
-+    NV_UINT32 DeviceId; /*Of MAC */
-     NV_UINT32 DeviceType;
--    NV_UINT32 PollIntervalInusForThroughputMode; //Of MAC
-+    NV_UINT32 PollIntervalInusForThroughputMode; /*Of MAC */
-     NV_UINT32 bASFEnabled;
-     NV_UINT32 ulDescriptorVersion;
-     NV_UINT32 ulMaxPacketSize;
-@@ -464,24 +464,24 @@
-       NV_UINT32       PhyRdWrTimeoutInus;
-       NV_UINT32       PhyPowerdownOnClose;
--    // Added for Bug 100715
-+    /* Added for Bug 100715 */
-     NV_UINT32   bDisableMIIInterruptAndReadPhyStatus;
- }ADAPTER_OPEN_PARAMS, *PADAPTER_OPEN_PARAMS;
--//////////////////////////////////////////////////////////////////
--// This is the one function in the adapter interface that is publicly
--// available. The rest of the interface is returned in the pAdapterApi.
--// The first argument needs to be cast to a OSAPI structure pointer.
--// The second argument should be cast to a ADPATER_API structure pointer.
-+/****************************************************************/
-+/* This is the one function in the adapter interface that is publicly
-+** available. The rest of the interface is returned in the pAdapterApi.
-+** The first argument needs to be cast to a OSAPI structure pointer.
-+** The second argument should be cast to a ADPATER_API structure pointer. */
- NV_API_CALL NV_SINT32 ADAPTER_Open (PADAPTER_OPEN_PARAMS pAdapterOpenParams, PNV_VOID *pvpAdapterApi, NV_UINT32 *pulPhyAddr);
--//////////////////////////////////////////////////////////////////
-+/****************************************************************/
--//////////////////////////////////////////////////////////////////
--// Here are the error codes the adapter function calls return.
-+/****************************************************************/
-+/* Here are the error codes the adapter function calls return. */
- #define ADAPTERERR_NONE                             0x0000
- #define ADAPTERERR_COULD_NOT_ALLOC_CONTEXT          0x0001
- #define ADAPTERERR_COULD_NOT_CREATE_CONTEXT         0x0002
-@@ -489,12 +489,12 @@
- #define ADAPTERERR_TRANSMIT_QUEUE_FULL              0x0004
- #define ADAPTERERR_COULD_NOT_INIT_PHY               0x0005
- #define ADAPTERERR_PHYS_SIZE_SMALL                    0x0006
--#define ADAPTERERR_ERROR                            0x0007  // Generic error
--//////////////////////////////////////////////////////////////////
-+#define ADAPTERERR_ERROR                            0x0007  /* Generic error */
-+/****************************************************************/
--// This block moved from myadap.h
--// nFlag for Stop/Start ReceiverAndOrTransmitter can be an OR of
--// the following two flags
-+/* This block moved from myadap.h
-+** nFlag for Stop/Start ReceiverAndOrTransmitter can be an OR of
-+** the following two flags */
- #define AFFECT_RECEIVER     0x01
- #define AFFECT_TRANSMITTER  0x02
-@@ -516,11 +516,11 @@
- NV_SINT32 ADAPTER_WorkaroundTXHang(PNV_VOID pvContext);
- #endif
--//#define TRACK_INIT_TIME
-+/*#define TRACK_INIT_TIME */
- #ifdef TRACK_INIT_TIME
--//This routine is defined in entry.c adapter doesn't link int64.lib
--//We defined here so that its easy to use it in phy as well as mswin
-+/*This routine is defined in entry.c adapter doesn't link int64.lib
-+**We defined here so that its easy to use it in phy as well as mswin */
- #define MAX_PRINT_INDEX        32
- extern NV_VOID PrintTime(NV_UINT32 ulIndex);
-@@ -529,7 +529,7 @@
- #define PRINT_INIT_TIME(_a)
- #endif
--// Segmentation offload info
-+/* Segmentation offload info */
- #define DEVCAPS_SEGOL_BP_ENABLE       0   
- #define DEVCAPS_SEGOL_BP_IPOPTIONS    1
- #define DEVCAPS_SEGOL_BP_TCPOPTIONS   2
-@@ -537,43 +537,43 @@
- #define DEVCAPS_SEGOL_BP_SEGSIZE_HI   31
--// Checksum offload info
--// Byte 0 : V4 TX
-+/* Checksum offload info */
-+/* Byte 0 : V4 TX */
- #define DEVCAPS_V4_TX_BP_IPOPTIONS      0
- #define DEVCAPS_V4_TX_BP_TCPOPTIONS     1
- #define DEVCAPS_V4_TX_BP_TCPCHECKSUM    2
- #define DEVCAPS_V4_TX_BP_UDPCHECKSUM    3
- #define DEVCAPS_V4_TX_BP_IPCHECKSUM     4
--// Byte 0 : V4 RX
-+/* Byte 0 : V4 RX */
- #define DEVCAPS_V4_RX_BP_IPOPTIONS      8
- #define DEVCAPS_V4_RX_BP_TCPOPTIONS     9
- #define DEVCAPS_V4_RX_BP_TCPCHECKSUM    10
- #define DEVCAPS_V4_RX_BP_UDPCHECKSUM    11
- #define DEVCAPS_V4_RX_BP_IPCHECKSUM     12
--// Byte 1 : V6 TX
-+/* Byte 1 : V6 TX */
- #define DEVCAPS_V6_TX_BP_IPOPTIONS      16
- #define DEVCAPS_V6_TX_BP_TCPOPTIONS     17
- #define DEVCAPS_V6_TX_BP_TCPCHECKSUM    18
- #define DEVCAPS_V6_TX_BP_UDPCHECKSUM    19
--// Byte 2 : V6 RX
-+/* Byte 2 : V6 RX */
- #define DEVCAPS_V6_RX_BP_IPOPTIONS      24
- #define DEVCAPS_V6_RX_BP_TCPOPTIONS     25
- #define DEVCAPS_V6_RX_BP_TCPCHECKSUM    26
- #define DEVCAPS_V6_RX_BP_UDPCHECKSUM    27
--#define DESCR_VER_1         1       // MCP1, MCP2 and CK8 descriptor version
--#define DESCR_VER_2         2       // The decsriptor structure for CK8G
-+#define DESCR_VER_1         1       /* MCP1, MCP2 and CK8 descriptor version */
-+#define DESCR_VER_2         2       /* The decsriptor structure for CK8G */
--// Get device and vendor IDs from 32 bit DeviceVendorID 
-+/* Get device and vendor IDs from 32 bit DeviceVendorID */
- #define GET_DEVICEID(x)   (((x) >> 16) & 0xFFFF)
- #define GET_VENDORID(x)   ((x) & 0xFFFF)
- #ifdef __cplusplus
--} // extern "C"
-+} /* extern "C" */
- #endif
--#endif // _ADAPTER_H_
-+#endif /* _ADAPTER_H_ */
diff --git a/sys/dev/netif/nv/basetype.h.patch b/sys/dev/netif/nv/basetype.h.patch
deleted file mode 100644 (file)
index 1a9e329..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-$DragonFly: src/sys/dev/netif/nv/Attic/basetype.h.patch,v 1.2 2005/04/04 18:45:07 joerg Exp $
-
---- basetype.h.orig    2005-03-12 10:59:20.000000000 +0100
-+++ basetype.h 2005-04-02 20:29:03.000000000 +0200
-@@ -44,8 +44,7 @@
- #define OUT
- #endif
--//
--// Useful "types"
-+/* Useful "types" */
- #ifndef NULL
- #define NULL            0
-@@ -60,9 +59,9 @@
- #endif
- #if 1
--//
--// Don't use as these are going to be deleted soon. Use NV_ instead
--//
-+/*
-+** Don't use as these are going to be deleted soon. Use NV_ instead
-+*/
- #define VOID                void
- typedef VOID                *PVOID;
-@@ -112,7 +111,7 @@
-     typedef signed long long             NV_SINT64, *PNV_SINT64;
- #else
--    #if _MSC_VER >= 1200         // MSVC 6.0 onwards
-+    #if _MSC_VER >= 1200         /* MSVC 6.0 onwards */
-         typedef unsigned __int64      NV_UINT64, *PNV_UINT64;
-         typedef signed __int64                NV_SINT64, *PNV_SINT64;
-     #else
-@@ -141,59 +140,59 @@
- #endif
--//
--// Floating point definitions
--//
--typedef float                 NV_REAL32;   // 4-byte floating point
--typedef double                NV_REAL64;   // 8-byte floating point
-+/*
-+** Floating point definitions
-+*/
-+typedef float                 NV_REAL32;   /* 4-byte floating point */
-+typedef double                NV_REAL64;   /* 8-byte floating point */
--//
--// Bit defintions
--//
-+/*
-+** Bit defintions
-+*/
- #define NV_BIT(bitpos)                  (1 << (bitpos))
--// NV_BIT_SET 
--// Sets the specified bit position (0..31). 
--// Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
--// x = 0xA0
--// NV_BIT_SET(x, 1)
--// Result: x = 0xA2
-+/* NV_BIT_SET 
-+** Sets the specified bit position (0..31). 
-+** Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
-+** x = 0xA0
-+** NV_BIT_SET(x, 1)
-+** Result: x = 0xA2 */
- #define NV_BIT_SET(bits, bitpos)        ((bits) |= (NV_BIT(bitpos)))
--// NV_BIT_CLEAR
--// Clears the specified bit position (0..31)
--// Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
--// x = 0xAA
--// NV_BIT_CLEAR(x, 1)
--// Result: x = 0xA8
-+/* NV_BIT_CLEAR
-+** Clears the specified bit position (0..31)
-+** Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
-+** x = 0xAA
-+** NV_BIT_CLEAR(x, 1)
-+** Result: x = 0xA8 */
- #define NV_BIT_CLEAR(bits, bitpos)      ((bits) &= (~NV_BIT(bitpos)))
--// NV_BIT_GET 
--// Gets the bit at the specified bit position (0..31)
--// Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
--// Result is either 1 or 0.
--// x = 0xAA
--// NV_BIT_GET(x, 1)
--// Result: x = 1
-+/* NV_BIT_GET 
-+** Gets the bit at the specified bit position (0..31)
-+** Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
-+** Result is either 1 or 0.
-+** x = 0xAA
-+** NV_BIT_GET(x, 1)
-+** Result: x = 1 */
- #define NV_BIT_GET(bits, bitpos)        (((bits) >> (bitpos)) & 0x0001)
--// NV_BIT_GETVALUE
--// Gets the value from a 32 bit ULONG at specified bit position.
--// Parameter bits needs to be 4 bytes long.
--// Ex. ul32 = 0xFEDCBA98
--// ulVal = NV_BIT_GETVALUE(ul32, 3, 0)  : Gets value from Bit position 3 to 0
--// Result : ulVal = 8
-+/* NV_BIT_GETVALUE
-+** Gets the value from a 32 bit ULONG at specified bit position.
-+** Parameter bits needs to be 4 bytes long.
-+** Ex. ul32 = 0xFEDCBA98
-+** ulVal = NV_BIT_GETVALUE(ul32, 3, 0)  : Gets value from Bit position 3 to 0
-+** Result : ulVal = 8 */
- #define NV_BIT_GETVALUE(ulOrigValue, bitposHi, bitposLow)  (((ulOrigValue) >> (bitposLow)) & (~(0xFFFFFFFF << ((bitposHi) - (bitposLow) +1))))
--// NV_BIT_SETVALUE
--// Set a value in a 32 bit ULONG at a specific bit position.
--// Parameter bits needs to be 4 bytes long.
--// Ex. ul32 = 0xFEDCBA98
--// NV_BIT_SETVALUE(ul32, 0xF, 3, 0)  : Sets value at Bit position 3 to 0
--// Result : ul32 becomes 0xFEDCBA9F
-+/* NV_BIT_SETVALUE
-+** Set a value in a 32 bit ULONG at a specific bit position.
-+** Parameter bits needs to be 4 bytes long.
-+** Ex. ul32 = 0xFEDCBA98
-+** NV_BIT_SETVALUE(ul32, 0xF, 3, 0)  : Sets value at Bit position 3 to 0
-+** Result : ul32 becomes 0xFEDCBA9F */
- #define NV_BIT_SETVALUE(ulOrigValue, ulWindowValue, bitposHi, bitposLow)  \
-     ((ulOrigValue) = ((((ulOrigValue) & (~ ((0xFFFFFFFF >> (31 - (bitposHi))) & (0xFFFFFFFF << (bitposLow))))) | ((ulWindowValue) << (bitposLow)))))
-@@ -241,7 +240,7 @@
- typedef union _NVLARGE_INTEGER {
- #if 0
--    // NO UNNAMED UNIONS ALLOWED !@
-+    /* NO UNNAMED UNIONS ALLOWED !@ */
-     struct {
-         NV_UINT32   LowPart;
-         NV_SINT32   HighPart;
-@@ -278,4 +277,4 @@
- #define NV_API_CALL
- #endif
--#endif // _BASETYPE_H_
-+#endif /* _BASETYPE_H_ */
diff --git a/sys/dev/netif/nv/drvinfo.h.patch b/sys/dev/netif/nv/drvinfo.h.patch
deleted file mode 100644 (file)
index c0956d2..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-$DragonFly: src/sys/dev/netif/nv/Attic/drvinfo.h.patch,v 1.1 2005/04/04 18:45:07 joerg Exp $
-
---- drvinfo.h.orig     2005-03-12 10:59:20.000000000 +0100
-+++ drvinfo.h  2005-04-02 20:33:15.000000000 +0200
-@@ -23,12 +23,12 @@
- #ifndef _DRVINFO_H_
- #define _DRVINFO_H_
--// Switch to byte packing, regardless of global packing specified by the compiler switch
-+/* Switch to byte packing, regardless of global packing specified by the compiler switch */
- #pragma pack(1)  
--//////////////////////////////////////////////////////////////////
--// For the ADAPTER_GetStatistics call used by qstats.  This 
--// is the template used by the legacy driver.
-+/****************************************************************/
-+/* For the ADAPTER_GetStatistics call used by qstats.  This 
-+** is the template used by the legacy driver. */
- #define MAX_TRANSMIT_COLISION_STATS     16
- #define ADAPTER_STATS_LEGACY_VERSION    1
-@@ -54,10 +54,10 @@
-     NV_UINT32   ulCRCErrors;
-     NV_UINT32   ulFramingErrors;
-     NV_UINT32   ulOverFlowErrors;
--    NV_UINT32    ulFrameErrorsPrivate; //Not for public.
--    NV_UINT32    ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS
-+    NV_UINT32    ulFrameErrorsPrivate; /*Not for public. */
-+    NV_UINT32    ulNullBufferReceivePrivate; /*Not for public, These are the packets which we didn't indicate to OS */
--    //interrupt related statistics
-+    /*interrupt related statistics */
-     NV_UINT32   ulRxInterrupt;
-     NV_UINT32   ulRxInterruptUnsuccessful;
-     NV_UINT32   ulTxInterrupt;
-@@ -65,19 +65,19 @@
-     NV_UINT32   ulPhyInterrupt;
- }   ADAPTER_STATS_V1, *PADAPTER_STATS_V1;
--//////////////////////////////////////////////////////////////////
-+/****************************************************************/
--//////////////////////////////////////////////////////////////////
--// For the ADAPTER_GetStatistics call used by qstats.  This 
--// is the template used by the FD.
-+/****************************************************************/
-+/* For the ADAPTER_GetStatistics call used by qstats.  This 
-+** is the template used by the FD. */
- typedef struct  _ADAPTER_STATS
- {
-     NV_UINT32   ulVersion;
-     NV_UINT8    ulMacAddress[6];
--    //
--    // Tx counters.
--    //
-+    /*
-+    ** Tx counters.
-+    */
-     NV_UINT64   ulSuccessfulTransmissions;
-     NV_UINT64   ulFailedTransmissions;
-     NV_UINT64   ulRetryErrors;
-@@ -88,14 +88,14 @@
-     NV_UINT64    ulExcessDeferredTransmissions;
-     NV_UINT64   aulSuccessfulTransmitsAfterCollisions[MAX_TRANSMIT_COLISION_STATS];
--    //
--    // New Tx counters for GigE.
--    //
-+    /*
-+    ** New Tx counters for GigE.
-+    */
-     NV_UINT64   ulTxByteCount;
--    //
--    // Rx counters.
--    //
-+    /*
-+    ** Rx counters.
-+    */
-     NV_UINT64   ulMissedFrames;
-     NV_UINT64   ulSuccessfulReceptions;
-     NV_UINT64   ulFailedReceptions;
-@@ -104,12 +104,12 @@
-     NV_UINT64   ulFramingErrors;
-     NV_UINT64   ulOverFlowErrors;
-     NV_UINT64   ulRxNoBuffer;
--    NV_UINT64   ulFrameErrorsPrivate; //Not for public.
--    NV_UINT64   ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS
-+    NV_UINT64   ulFrameErrorsPrivate; /*Not for public. */
-+    NV_UINT64   ulNullBufferReceivePrivate; /*Not for public, These are the packets which we didn't indicate to OS */
--    //
--    // New Rx counters for GigE.
--    //
-+    /*
-+    ** New Rx counters for GigE.
-+    */
-     NV_UINT64   ulRxExtraByteCount;
-     NV_UINT64   ulRxFrameTooLongCount;
-     NV_UINT64   ulRxFrameAlignmentErrorCount;
-@@ -121,7 +121,7 @@
-     NV_UINT64   ulRxBroadcastFrameCount;
-     NV_UINT64   ulRxPromiscuousModeFrameCount;
--    //Interrupt related statistics
-+    /*Interrupt related statistics */
-     NV_UINT64   ulRxInterrupt;
-     NV_UINT64   ulRxInterruptUnsuccessful;
-     NV_UINT64   ulTxInterrupt;
-@@ -129,25 +129,25 @@
-     NV_UINT64   ulPhyInterrupt;
--    //
--    // Handy things to know
--    //
-+    /*
-+    ** Handy things to know
-+    */
-     NV_UINT64   ulDescriptorVersion;
--    NV_UINT64   ulPollingCfg;       // configured for cpu or throughput
--    NV_UINT64   ulPollingState;     // current optimizefor state.
-+    NV_UINT64   ulPollingCfg;       /* configured for cpu or throughput */
-+    NV_UINT64   ulPollingState;     /* current optimizefor state. */
-     NV_UINT64   ulNumTxDesc;
-     NV_UINT64   ulNumRxDesc;
--    // 
--    // Useful to determine if TX is stuck.
--    //
-+    /* 
-+    ** Useful to determine if TX is stuck.
-+    */
-     NV_UINT64   ulNumTxPktsQueued;
-     NV_UINT64   ulNumTxPktsInProgress;
--    //
--    // Rx Xsum Cntrs
--    //
-+    /*
-+    ** Rx Xsum Cntrs
-+    */
-     NV_UINT64   ulNoRxPktsNoXsum;
-     NV_UINT64   ulNoRxPktsXsumIpPassTcpFail;
-     NV_UINT64   ulNoRxPktsXsumIpPassUdpFail;
-@@ -180,11 +180,11 @@
- #endif
- }   ADAPTER_STATS, *PADAPTER_STATS;
--//////////////////////////////////////////////////////////////////
-+/****************************************************************/
- #pragma pack()  
--#endif   // #define _DRVINFO_H_
-+#endif   /* #define _DRVINFO_H_ */
diff --git a/sys/dev/netif/nv/if_nv.c b/sys/dev/netif/nv/if_nv.c
deleted file mode 100644 (file)
index 3400d96..0000000
+++ /dev/null
@@ -1,1766 +0,0 @@
-/*-
- * Copyright (c) 2005 by David E. O'Brien <obrien@FreeBSD.org>.
- * Copyright (c) 2003,2004 by Quinton Dolan <q@onthenet.com.au>. 
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions 
- * are met: 
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
- * 2. Redistributions in binary form must reproduce the above copyright 
- *    notice, this list of conditions and the following disclaimer in the 
- *    documentation and/or other materials provided with the distribution.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * 
- * $Id: if_nv.c,v 1.20 2005/03/12 01:11:00 q Exp $
- * $FreeBSD: src/sys/dev/nve/if_nve.c,v 1.20 2005/12/12 06:23:43 bz Exp $
- * $DragonFly: src/sys/dev/netif/nv/Attic/if_nv.c,v 1.29 2006/12/22 23:26:21 swildner Exp $
- */
-
-/*
- * NVIDIA nForce MCP Networking Adapter driver
- * 
- * This is a port of the NVIDIA MCP Linux ethernet driver distributed by NVIDIA
- * through their web site.
- * 
- * All mainstream nForce and nForce2 motherboards are supported. This module
- * is as stable, sometimes more stable, than the linux version. (Recent
- * Linux stability issues seem to be related to some issues with newer
- * distributions using GCC 3.x, however this don't appear to effect FreeBSD
- * 5.x).
- * 
- * In accordance with the NVIDIA distribution license it is necessary to
- * link this module against the nvlibnet.o binary object included in the
- * Linux driver source distribution. The binary component is not modified in
- * any way and is simply linked against a FreeBSD equivalent of the nvnet.c
- * linux kernel module "wrapper".
- * 
- * The Linux driver uses a common code API that is shared between Win32 and
- * i386 Linux. This abstracts the low level driver functions and uses
- * callbacks and hooks to access the underlying hardware device. By using
- * this same API in a FreeBSD kernel module it is possible to support the
- * hardware without breaching the Linux source distributions licensing
- * requirements, or obtaining the hardware programming specifications.
- * 
- * Although not conventional, it works, and given the relatively small
- * amount of hardware centric code, it's hopefully no more buggy than its
- * linux counterpart.
- *
- * NVIDIA now support the nForce3 AMD64 platform, however I have been
- * unable to access such a system to verify support. However, the code is
- * reported to work with little modification when compiled with the AMD64
- * version of the NVIDIA Linux library. All that should be necessary to make
- * the driver work is to link it directly into the kernel, instead of as a
- * module, and apply the docs/amd64.diff patch in this source distribution to
- * the NVIDIA Linux driver source.
- *
- * This driver should work on all versions of FreeBSD since 4.9/5.1 as well
- * as recent versions of DragonFly.
- *
- * Written by Quinton Dolan <q@onthenet.com.au> 
- * Portions based on existing FreeBSD network drivers. 
- * NVIDIA API usage derived from distributed NVIDIA NVNET driver source files.
- * 
- * $Id: if_nv.c,v 1.9 2003/12/13 15:27:40 q Exp $
- */
-
-#include "opt_polling.h"
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/sockio.h>
-#include <sys/mbuf.h>
-#include <sys/malloc.h>
-#include <sys/kernel.h>
-#include <sys/socket.h>
-#include <sys/sysctl.h>
-#include <sys/queue.h>
-#include <sys/module.h>
-#include <sys/bus.h>
-#include <sys/rman.h>
-#include <sys/serialize.h>
-#include <sys/thread2.h>
-
-#include <net/if.h>
-#include <net/ifq_var.h>
-#include <net/if_arp.h>
-#include <net/ethernet.h>
-#include <net/if_dl.h>
-#include <net/if_media.h>
-
-#include <net/bpf.h>
-#include <net/vlan/if_vlan_var.h>
-
-#include <vm/vm.h>             /* for vtophys */
-#include <vm/pmap.h>           /* for vtophys */
-#include <machine/clock.h>     /* for DELAY */
-
-#include <bus/pci/pcireg.h>
-#include <bus/pci/pcivar.h>
-
-#include <dev/netif/mii_layer/mii.h>
-#include <dev/netif/mii_layer/miivar.h>
-
-MODULE_DEPEND(nv, pci, 1, 1, 1);
-MODULE_DEPEND(nv, miibus, 1, 1, 1);
-
-#include "if_nvreg.h"
-#include "miibus_if.h"
-
-static int      nv_probe(device_t);
-static int      nv_attach(device_t);
-static int      nv_detach(device_t);
-static void     nv_init(void *);
-static void     nv_stop(struct nv_softc *);
-static void     nv_shutdown(device_t);
-static int      nv_init_rings(struct nv_softc *);
-static void     nv_free_rings(struct nv_softc *);
-
-static void     nv_ifstart(struct ifnet *);
-static int      nv_ioctl(struct ifnet *, u_long, caddr_t, struct ucred *);
-static void     nv_intr(void *);
-static void     nv_tick(void *);
-static void     nv_setmulti(struct nv_softc *);
-static void     nv_watchdog(struct ifnet *);
-static void     nv_update_stats(struct nv_softc *);
-#ifdef DEVICE_POLLING
-static void    nv_poll(struct ifnet *, enum poll_cmd, int);
-#endif
-
-static int      nv_ifmedia_upd(struct ifnet *);
-static void     nv_ifmedia_sts(struct ifnet *, struct ifmediareq *);
-static int      nv_miibus_readreg(device_t, int, int);
-static void     nv_miibus_writereg(device_t, int, int, int);
-
-static void     nv_dmamap_cb(void *, bus_dma_segment_t *, int, int);
-static void     nv_dmamap_tx_cb(void *, bus_dma_segment_t *, int, bus_size_t, int);
-
-static NV_SINT32 nv_osalloc(PNV_VOID, PMEMORY_BLOCK);
-static NV_SINT32 nv_osfree(PNV_VOID, PMEMORY_BLOCK);
-static NV_SINT32 nv_osallocex(PNV_VOID, PMEMORY_BLOCKEX);
-static NV_SINT32 nv_osfreeex(PNV_VOID, PMEMORY_BLOCKEX);
-static NV_SINT32 nv_osclear(PNV_VOID, PNV_VOID, NV_SINT32);
-static NV_SINT32 nv_osdelay(PNV_VOID, NV_UINT32);
-static NV_SINT32 nv_osallocrxbuf(PNV_VOID, PMEMORY_BLOCK, PNV_VOID *);
-static NV_SINT32 nv_osfreerxbuf(PNV_VOID, PMEMORY_BLOCK, PNV_VOID);
-static NV_SINT32 nv_ospackettx(PNV_VOID, PNV_VOID, NV_UINT32);
-static NV_SINT32 nv_ospacketrx(PNV_VOID, PNV_VOID, NV_UINT32, NV_UINT8 *, NV_UINT8);
-static NV_SINT32 nv_oslinkchg(PNV_VOID, NV_SINT32);
-static NV_SINT32 nv_osalloctimer(PNV_VOID, PNV_VOID *);
-static NV_SINT32 nv_osfreetimer(PNV_VOID, PNV_VOID);
-static NV_SINT32 nv_osinittimer(PNV_VOID, PNV_VOID, PTIMER_FUNC, PNV_VOID);
-static NV_SINT32 nv_ossettimer(PNV_VOID, PNV_VOID, NV_UINT32);
-static NV_SINT32 nv_oscanceltimer(PNV_VOID, PNV_VOID);
-
-static NV_SINT32 nv_ospreprocpkt(PNV_VOID, PNV_VOID, PNV_VOID *, NV_UINT8 *, NV_UINT8);
-static PNV_VOID  nv_ospreprocpktnopq(PNV_VOID, PNV_VOID);
-static NV_SINT32 nv_osindicatepkt(PNV_VOID, PNV_VOID *, NV_UINT32);
-static NV_SINT32 nv_oslockalloc(PNV_VOID, NV_SINT32, PNV_VOID *);
-static NV_SINT32 nv_oslockacquire(PNV_VOID, NV_SINT32, PNV_VOID);
-static NV_SINT32 nv_oslockrelease(PNV_VOID, NV_SINT32, PNV_VOID);
-static PNV_VOID  nv_osreturnbufvirt(PNV_VOID, PNV_VOID);
-
-static device_method_t nv_methods[] = {
-       /* Device interface */
-       DEVMETHOD(device_probe, nv_probe),
-       DEVMETHOD(device_attach, nv_attach),
-       DEVMETHOD(device_detach, nv_detach),
-       DEVMETHOD(device_shutdown, nv_shutdown),
-
-       /* Bus interface */
-       DEVMETHOD(bus_print_child, bus_generic_print_child),
-       DEVMETHOD(bus_driver_added, bus_generic_driver_added),
-
-       /* MII interface */
-       DEVMETHOD(miibus_readreg, nv_miibus_readreg),
-       DEVMETHOD(miibus_writereg, nv_miibus_writereg),
-
-       {0, 0}
-};
-
-static driver_t nv_driver = {
-       "nv",
-       nv_methods,
-       sizeof(struct nv_softc)
-};
-
-static devclass_t nv_devclass;
-
-static int      nv_pollinterval = 0;
-SYSCTL_INT(_hw, OID_AUTO, nv_pollinterval, CTLFLAG_RW,
-          &nv_pollinterval, 0, "delay between interface polls");
-
-DRIVER_MODULE(nv, pci, nv_driver, nv_devclass, 0, 0);
-DRIVER_MODULE(miibus, nv, miibus_driver, miibus_devclass, 0, 0);
-
-static struct nv_type nv_devs[] = {
-       {NVIDIA_VENDORID, NFORCE_MCPNET1_DEVICEID,
-               "NVIDIA nForce MCP Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET2_DEVICEID,
-               "NVIDIA nForce MCP2 Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET3_DEVICEID,
-               "NVIDIA nForce MCP3 Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET4_DEVICEID,
-               "NVIDIA nForce MCP4 Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET5_DEVICEID,
-               "NVIDIA nForce MCP5 Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET6_DEVICEID,
-               "NVIDIA nForce MCP6 Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET7_DEVICEID,
-               "NVIDIA nForce MCP7 Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET8_DEVICEID,
-               "NVIDIA nForce MCP8 Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET9_DEVICEID,
-               "NVIDIA nForce MCP9 Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET10_DEVICEID,
-               "NVIDIA nForce MCP10 Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET11_DEVICEID,
-               "NVIDIA nForce MCP11 Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET12_DEVICEID,
-               "NVIDIA nForce MCP12 Networking Adapter"},
-       {NVIDIA_VENDORID, NFORCE_MCPNET13_DEVICEID,
-               "NVIDIA nForce MCP13 Networking Adapter"},
-        {0, 0, NULL}
-};
-
-/* DMA MEM map callback function to get data segment physical address */
-static void
-nv_dmamap_cb(void *arg, bus_dma_segment_t * segs, int nsegs, int error)
-{
-       if (error)
-               return;
-
-       KASSERT(nsegs == 1,
-               ("Too many DMA segments returned when mapping DMA memory"));
-       *(bus_addr_t *)arg = segs->ds_addr;
-}
-
-/* DMA RX map callback function to get data segment physical address */
-static void
-nv_dmamap_rx_cb(void *arg, bus_dma_segment_t * segs, int nsegs, bus_size_t mapsize, int error)
-{
-       if (error)
-               return;
-       *(bus_addr_t *)arg = segs->ds_addr;
-}
-
-/*
- * DMA TX buffer callback function to allocate fragment data segment
- * addresses
- */
-static void
-nv_dmamap_tx_cb(void *arg, bus_dma_segment_t * segs, int nsegs, bus_size_t mapsize, int error)
-{
-       struct nv_tx_desc *info = arg;
-
-       if (error)
-               return;
-       KASSERT(nsegs < NV_MAX_FRAGS,
-               ("Too many DMA segments returned when mapping mbuf"));
-       info->numfrags = nsegs;
-       bcopy(segs, info->frags, nsegs * sizeof(bus_dma_segment_t));
-}
-
-/* Probe for supported hardware ID's */
-static int
-nv_probe(device_t dev)
-{
-       struct nv_type *t = nv_devs;
-
-       /* Check for matching PCI DEVICE ID's */
-       while (t->name != NULL) {
-               if ((pci_get_vendor(dev) == t->vid_id) &&
-                   (pci_get_device(dev) == t->dev_id)) {
-                       device_set_desc(dev, t->name);
-                       return (0);
-               }
-               t++;
-       }
-
-       return (ENXIO);
-}
-
-/* Attach driver and initialise hardware for use */
-static int
-nv_attach(device_t dev)
-{
-       u_char          eaddr[ETHER_ADDR_LEN];
-       struct nv_softc *sc;
-       struct ifnet   *ifp;
-       OS_API         *osapi;
-       ADAPTER_OPEN_PARAMS OpenParams;
-       int             error = 0, i, rid;
-       u_int32_t       unit;
-
-       if (bootverbose)
-               device_printf(dev, "nvenetlib.o version %s\n", DRIVER_VERSION);
-
-       DEBUGOUT(NV_DEBUG_INIT, "nv: nv_attach - entry\n");
-
-       sc = device_get_softc(dev);
-       unit = device_get_unit(dev);
-
-       sc->dev = dev;
-       sc->unit = unit;
-       callout_init(&sc->nv_stat_timer);
-
-       /* Preinitialize data structures */
-       bzero(&OpenParams, sizeof(ADAPTER_OPEN_PARAMS));
-
-       /* Enable bus mastering */
-       pci_enable_busmaster(dev);
-
-       /* Allocate memory mapped address space */
-       rid = NV_RID;
-       sc->res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE);
-
-       if (sc->res == NULL) {
-               device_printf(dev, "couldn't map memory\n");
-               error = ENXIO;
-               goto fail;
-       }
-       sc->sc_st = rman_get_bustag(sc->res);
-       sc->sc_sh = rman_get_bushandle(sc->res);
-
-       /* Allocate interrupt */
-       rid = 0;
-       sc->irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid,
-           RF_SHAREABLE | RF_ACTIVE);
-
-       if (sc->irq == NULL) {
-               device_printf(dev, "couldn't map interrupt\n");
-               error = ENXIO;
-               goto fail;
-       }
-       /* Allocate DMA tags */
-       error = bus_dma_tag_create(NULL, 4, 0, BUS_SPACE_MAXADDR_32BIT,
-                    BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES * NV_MAX_FRAGS,
-                                  NV_MAX_FRAGS, MCLBYTES, 0,
-                                  &sc->mtag);
-       if (error) {
-               device_printf(dev, "couldn't allocate dma tag\n");
-               goto fail;
-       }
-       error = bus_dma_tag_create(NULL, 4, 0, BUS_SPACE_MAXADDR_32BIT,
-                                  BUS_SPACE_MAXADDR, NULL, NULL,
-                               sizeof(struct nv_rx_desc) * RX_RING_SIZE, 1,
-                               sizeof(struct nv_rx_desc) * RX_RING_SIZE, 0,
-                                  &sc->rtag);
-       if (error) {
-               device_printf(dev, "couldn't allocate dma tag\n");
-               goto fail;
-       }
-       error = bus_dma_tag_create(NULL, 4, 0, BUS_SPACE_MAXADDR_32BIT,
-                                  BUS_SPACE_MAXADDR, NULL, NULL,
-                               sizeof(struct nv_tx_desc) * TX_RING_SIZE, 1,
-                               sizeof(struct nv_tx_desc) * TX_RING_SIZE, 0,
-                                  &sc->ttag);
-       if (error) {
-               device_printf(dev, "couldn't allocate dma tag\n");
-               goto fail;
-       }
-
-       error = bus_dmamap_create(sc->ttag, 0, &sc->tmap);
-       if (error) {
-               device_printf(dev, "couldn't create dma map\n");
-               goto fail;
-       }
-
-       /* Allocate DMA safe memory and get the DMA addresses. */
-       error = bus_dmamem_alloc(sc->ttag, (void **)&sc->tx_desc,
-                                BUS_DMA_WAITOK | BUS_DMA_ZERO, &sc->tmap);
-       if (error) {
-               device_printf(dev, "couldn't allocate dma memory\n");
-               goto fail;
-       }
-       error = bus_dmamap_load(sc->ttag, sc->tmap, sc->tx_desc,
-                    sizeof(struct nv_tx_desc) * TX_RING_SIZE, nv_dmamap_cb,
-                               &sc->tx_addr, 0);
-       if (error) {
-               device_printf(dev, "couldn't map dma memory\n");
-               goto fail;
-       }
-
-       error = bus_dmamap_create(sc->rtag, 0, &sc->rmap);
-       if (error) {
-               device_printf(dev, "couldn't create dma map\n");
-               goto fail;
-       }
-
-       error = bus_dmamem_alloc(sc->rtag, (void **)&sc->rx_desc,
-                                BUS_DMA_WAITOK | BUS_DMA_ZERO, &sc->rmap);
-       if (error) {
-               device_printf(dev, "couldn't allocate dma memory\n");
-               goto fail;
-       }
-       error = bus_dmamap_load(sc->rtag, sc->rmap, sc->rx_desc,
-                    sizeof(struct nv_rx_desc) * RX_RING_SIZE, nv_dmamap_cb,
-                               &sc->rx_addr, 0);
-       if (error) {
-               device_printf(dev, "couldn't map dma memory\n");
-               goto fail;
-       }
-       /* Initialize rings. */
-       if (nv_init_rings(sc)) {
-               device_printf(dev, "failed to init rings\n");
-               error = ENXIO;
-               goto fail;
-       }
-       /* Setup NVIDIA API callback routines */
-       osapi = &sc->osapi;
-       osapi->pOSCX = sc;
-       osapi->pfnAllocMemory = nv_osalloc;
-       osapi->pfnFreeMemory = nv_osfree;
-       osapi->pfnAllocMemoryEx = nv_osallocex;
-       osapi->pfnFreeMemoryEx = nv_osfreeex;
-       osapi->pfnClearMemory = nv_osclear;
-       osapi->pfnStallExecution = nv_osdelay;
-       osapi->pfnAllocReceiveBuffer = nv_osallocrxbuf;
-       osapi->pfnFreeReceiveBuffer = nv_osfreerxbuf;
-       osapi->pfnPacketWasSent = nv_ospackettx;
-       osapi->pfnPacketWasReceived = nv_ospacketrx;
-       osapi->pfnLinkStateHasChanged = nv_oslinkchg;
-       osapi->pfnAllocTimer = nv_osalloctimer;
-       osapi->pfnFreeTimer = nv_osfreetimer;
-       osapi->pfnInitializeTimer = nv_osinittimer;
-       osapi->pfnSetTimer = nv_ossettimer;
-       osapi->pfnCancelTimer = nv_oscanceltimer;
-       osapi->pfnPreprocessPacket = nv_ospreprocpkt;
-       osapi->pfnPreprocessPacketNopq = nv_ospreprocpktnopq;
-       osapi->pfnIndicatePackets = nv_osindicatepkt;
-       osapi->pfnLockAlloc = nv_oslockalloc;
-       osapi->pfnLockAcquire = nv_oslockacquire;
-       osapi->pfnLockRelease = nv_oslockrelease;
-       osapi->pfnReturnBufferVirtual = nv_osreturnbufvirt;
-
-       sc->linkup = FALSE;
-       sc->max_frame_size = ETHERMTU + ETHER_HDR_LEN + FCS_LEN;
-
-       /* TODO - We don't support hardware offload yet */
-       sc->hwmode = 1;
-       sc->media = 0;
-
-       /* Set NVIDIA API startup parameters */
-       OpenParams.MaxDpcLoop = 2;
-       OpenParams.MaxRxPkt = RX_RING_SIZE;
-       OpenParams.MaxTxPkt = TX_RING_SIZE;
-       OpenParams.SentPacketStatusSuccess = 1;
-       OpenParams.SentPacketStatusFailure = 0;
-       OpenParams.MaxRxPktToAccumulate = 6;
-       OpenParams.ulPollInterval = nv_pollinterval;
-       OpenParams.SetForcedModeEveryNthRxPacket = 0;
-       OpenParams.SetForcedModeEveryNthTxPacket = 0;
-       OpenParams.RxForcedInterrupt = 0;
-       OpenParams.TxForcedInterrupt = 0;
-       OpenParams.pOSApi = osapi;
-       OpenParams.pvHardwareBaseAddress = rman_get_virtual(sc->res);
-       OpenParams.bASFEnabled = 0;
-       OpenParams.ulDescriptorVersion = sc->hwmode;
-       OpenParams.ulMaxPacketSize = sc->max_frame_size;
-       OpenParams.DeviceId = pci_get_device(dev);
-
-       /* Open NVIDIA Hardware API */
-       error = ADAPTER_Open(&OpenParams, (void **)&(sc->hwapi), &sc->phyaddr);
-       if (error) {
-               device_printf(dev, "failed to open NVIDIA Hardware API: 0x%x\n", error);
-               goto fail;
-       }
-       
-       /* TODO - Add support for MODE2 hardware offload */ 
-
-       bzero(&sc->adapterdata, sizeof(sc->adapterdata));
-
-       sc->adapterdata.ulMediaIF = sc->media;
-       sc->adapterdata.ulModeRegTxReadCompleteEnable = 1;
-       sc->hwapi->pfnSetCommonData(sc->hwapi->pADCX, &sc->adapterdata);
-
-       sc->hwapi->pfnInit(sc->hwapi->pADCX, 
-                                  0, /* force speed */ 
-                                  0, /* force full duplex */
-                                  0, /* force mode */
-                                  0, /* force async mode */
-                                  &sc->linkup);
-
-       /* MAC is loaded backwards into h/w reg */
-       sc->hwapi->pfnGetNodeAddress(sc->hwapi->pADCX, sc->original_mac_addr);
-       for (i = 0; i < 6; i++) {
-               eaddr[i] = sc->original_mac_addr[5 - i];
-       }
-       sc->hwapi->pfnSetNodeAddress(sc->hwapi->pADCX, eaddr);
-       bcopy(eaddr, (char *)&sc->sc_macaddr, ETHER_ADDR_LEN);
-
-       DEBUGOUT(NV_DEBUG_INIT, "nv: do mii_phy_probe\n");
-
-       /* Probe device for MII interface to PHY */
-       if (mii_phy_probe(dev, &sc->miibus, nv_ifmedia_upd, nv_ifmedia_sts)) {
-               device_printf(dev, "MII without any phy!\n");
-               error = ENXIO;
-               goto fail;
-       }
-       /* Setup interface parameters */
-       ifp = &sc->sc_if;
-       ifp->if_softc = sc;
-       if_initname(ifp, device_get_name(dev), device_get_unit(dev));
-       ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
-       ifp->if_ioctl = nv_ioctl;
-       ifp->if_start = nv_ifstart;
-#ifdef DEVICE_POLLING
-       ifp->if_poll = nv_poll;
-#endif
-       ifp->if_watchdog = nv_watchdog;
-       ifp->if_timer = 0;
-       ifp->if_init = nv_init;
-       ifp->if_mtu = ETHERMTU;
-       ifp->if_baudrate = IF_Mbps(100);
-       ifp->if_capabilities |= IFCAP_VLAN_MTU;
-       ifq_set_maxlen(&ifp->if_snd, TX_RING_SIZE - 1);
-       ifq_set_ready(&ifp->if_snd);
-
-       /* Attach to OS's managers. */
-       ether_ifattach(ifp, sc->sc_macaddr, NULL);
-
-       /* Activate our interrupt handler. - attach last to avoid lock */
-       error = bus_setup_intr(sc->dev, sc->irq, INTR_NETSAFE,
-                              nv_intr, sc, &sc->sc_ih, ifp->if_serializer);
-       if (error) {
-               ether_ifdetach(ifp);
-               device_printf(sc->dev, "couldn't set up interrupt handler\n");
-               goto fail;
-       }
-       DEBUGOUT(NV_DEBUG_INIT, "nv: nv_attach - exit\n");
-
-fail:
-       if (error)
-               nv_detach(dev);
-
-       return (error);
-}
-
-/* Detach interface for module unload */
-static int
-nv_detach(device_t dev)
-{
-       struct nv_softc *sc = device_get_softc(dev);
-       struct ifnet   *ifp;
-       int is_attached;
-
-       ifp = &sc->arpcom.ac_if;
-
-       DEBUGOUT(NV_DEBUG_DEINIT, "nv: nv_detach - entry\n");
-
-       lwkt_serialize_enter(ifp->if_serializer);
-
-       is_attached = device_is_attached(dev);
-       if (is_attached)
-               nv_stop(sc);
-
-       if (sc->miibus)
-               device_delete_child(dev, sc->miibus);
-       bus_generic_detach(dev);
-
-       /* Reload unreversed address back into MAC in original state */
-       if (sc->original_mac_addr)
-               sc->hwapi->pfnSetNodeAddress(sc->hwapi->pADCX, sc->original_mac_addr);
-
-       DEBUGOUT(NV_DEBUG_DEINIT, "nv: do pfnClose\n");
-       /* Detach from NVIDIA hardware API */
-       if (sc->hwapi->pfnClose)
-               sc->hwapi->pfnClose(sc->hwapi->pADCX, FALSE);
-       /* Release resources */
-       if (sc->sc_ih)
-               bus_teardown_intr(sc->dev, sc->irq, sc->sc_ih);
-
-       lwkt_serialize_exit(ifp->if_serializer);
-
-       if (is_attached)
-               ether_ifdetach(ifp);
-
-       if (sc->irq)
-               bus_release_resource(sc->dev, SYS_RES_IRQ, 0, sc->irq);
-       if (sc->res)
-               bus_release_resource(sc->dev, SYS_RES_MEMORY, NV_RID, sc->res);
-
-       nv_free_rings(sc);
-
-       if (sc->tx_desc) {
-               bus_dmamap_unload(sc->rtag, sc->rmap);
-               bus_dmamem_free(sc->rtag, sc->rx_desc, sc->rmap);
-               bus_dmamap_destroy(sc->rtag, sc->rmap);
-       }
-       if (sc->mtag)
-               bus_dma_tag_destroy(sc->mtag);
-       if (sc->ttag)
-               bus_dma_tag_destroy(sc->ttag);
-       if (sc->rtag)
-               bus_dma_tag_destroy(sc->rtag);
-
-       DEBUGOUT(NV_DEBUG_DEINIT, "nv: nv_detach - exit\n");
-       return (0);
-}
-
-/* Initialise interface and start it "RUNNING" */
-static void
-nv_init(void *xsc)
-{
-       struct nv_softc *sc = xsc;
-       struct ifnet   *ifp;
-       int             error;
-
-       DEBUGOUT(NV_DEBUG_INIT, "nv: nv_init - entry (%d)\n", sc->linkup);
-
-       ifp = &sc->sc_if;
-
-       /* Do nothing if already running */
-       if (ifp->if_flags & IFF_RUNNING)
-               return;
-
-       nv_stop(sc);
-
-       DEBUGOUT(NV_DEBUG_INIT, "nv: do pfnInit\n");
-
-       nv_ifmedia_upd(ifp);
-
-       /* Setup Hardware interface and allocate memory structures */
-       error = sc->hwapi->pfnInit(sc->hwapi->pADCX, 
-                                  0, /* force speed */ 
-                                  0, /* force full duplex */
-                                  0, /* force mode */
-                                  0, /* force async mode */
-                                  &sc->linkup);
-
-       if (error) {
-               device_printf(sc->dev, "failed to start NVIDIA Hardware interface\n");
-               return;
-       }
-       /* Set the MAC address */
-       sc->hwapi->pfnSetNodeAddress(sc->hwapi->pADCX, sc->sc_macaddr);
-
-       /* Setup multicast filter */
-       nv_setmulti(sc);
-
-       sc->hwapi->pfnStart(sc->hwapi->pADCX);
-
-       /* Update interface parameters */
-       ifp->if_flags |= IFF_RUNNING;
-       ifp->if_flags &= ~IFF_OACTIVE;
-
-       /*
-        * Enable the interrupt.  Currently the nvidia API does not support
-        * polling, if we do not call pfnEnableInterrupts() we cannot
-        * issue the nvidia callback to process interrupts.  Call the
-        * interrupt service routine in case the interrupt got stuck during
-        * a reset, renegotiation, or timeout.
-        */
-#if 1
-       lwkt_serialize_handler_enable(ifp->if_serializer);
-       sc->hwapi->pfnEnableInterrupts(sc->hwapi->pADCX);
-#else
-       if ((ifp->if_flags & IFF_POLLING) == 0) {
-               lwkt_serialize_handler_enable(ifp->if_serializer);
-               sc->hwapi->pfnEnableInterrupts(sc->hwapi->pADCX);
-       }
-#endif
-       nv_intr(sc);
-
-       /* 
-        * Reset watchdog and ring queue indexes.  XXX if the interface
-        * is reset with pending tx packets queued to the actual device,
-        * the mbufs are currently lost.
-        */
-       ifp->if_timer = 0;
-       sc->pending_txs = 0;
-
-       callout_reset(&sc->nv_stat_timer, hz, nv_tick, sc);
-
-       DEBUGOUT(NV_DEBUG_INIT, "nv: nv_init - exit\n");
-}
-
-#ifdef DEVICE_POLLING
-
-static void
-nv_poll(struct ifnet *ifp, enum poll_cmd cmd, int count)
-{
-       struct nv_softc *sc = ifp->if_softc;
-
-       switch(cmd) {
-       case POLL_REGISTER:
-               /*
-                * We must disable the hardware interrupt on the device
-                * as well as ensure that any interrupt queued prior to
-                * this point does not execute the handler function.
-                *
-                * NOTE!  The nvidia API does not support polling with
-                * interrupts disabled, so we have to leave them turned on
-                * unfortunately.
-                */
-#if 0
-               sc->hwapi->pfnDisableInterrupts(sc->hwapi->pADCX);
-               lwkt_serialize_handler_disable(ifp->if_serializer);
-#endif
-               break;
-       case POLL_DEREGISTER:
-#if 0
-               lwkt_serialize_handler_enable(ifp->if_serializer);
-               sc->hwapi->pfnEnableInterrupts(sc->hwapi->pADCX);
-#endif
-               break;
-       case POLL_AND_CHECK_STATUS:
-               /* fall through */
-       case POLL_ONLY:
-               if (ifp->if_flags & IFF_RUNNING) {
-                       nv_intr(sc);
-               }
-               if (ifp->if_flags & IFF_RUNNING) {
-                       if (!ifq_is_empty(&ifp->if_snd))
-                               nv_ifstart(ifp);
-               }
-               break;
-       }
-}
-
-#endif
-
-/* Stop interface activity ie. not "RUNNING" */
-static void
-nv_stop(struct nv_softc *sc)
-{
-       struct ifnet   *ifp;
-
-       DEBUGOUT(NV_DEBUG_RUNNING, "nv: nv_stop - entry\n");
-
-       ifp = &sc->sc_if;
-       ifp->if_timer = 0;
-
-       /* Cancel tick timer */
-       callout_stop(&sc->nv_stat_timer);
-
-       /*
-        * Stop hardware activity.  The serializer handler disablement call
-        * prevents any interrupt scheduled prior to this call from calling
-        * the handler.
-        */
-       sc->hwapi->pfnDisableInterrupts(sc->hwapi->pADCX);
-       lwkt_serialize_handler_disable(ifp->if_serializer);
-
-       sc->hwapi->pfnStop(sc->hwapi->pADCX,
-                                  AFFECT_RECEIVER | AFFECT_TRANSMITTER);
-       sc->hwapi->pfnClearTxDesc(sc->hwapi->pADCX);
-
-       DEBUGOUT(NV_DEBUG_DEINIT, "nv: do pfnDeinit\n");
-       /* Shutdown interface and deallocate memory buffers */
-       if (sc->hwapi->pfnDeinit)
-               sc->hwapi->pfnDeinit(sc->hwapi->pADCX, 0);
-
-       sc->linkup = 0;
-       sc->cur_rx = 0;
-       sc->pending_rxs = 0;
-       sc->pending_txs = 0;
-
-       ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE);
-
-       DEBUGOUT(NV_DEBUG_RUNNING, "nv: nv_stop - exit\n");
-}
-
-/* Shutdown interface for unload/reboot */
-static void
-nv_shutdown(device_t dev)
-{
-       struct nv_softc *sc;
-
-       DEBUGOUT(NV_DEBUG_DEINIT, "nv: nv_shutdown\n");
-
-       sc = device_get_softc(dev);
-
-       /* Stop hardware activity */
-       lwkt_serialize_enter(sc->sc_if.if_serializer);
-       nv_stop(sc);
-       lwkt_serialize_exit(sc->sc_if.if_serializer);
-}
-
-/* Allocate TX ring buffers */
-static int
-nv_init_rings(struct nv_softc *sc)
-{
-       int             error, i;
-
-       DEBUGOUT(NV_DEBUG_INIT, "nv: nv_init_rings - entry\n");
-
-       sc->cur_rx = sc->cur_tx = sc->pending_rxs = sc->pending_txs = 0;
-       /* Initialise RX ring */
-       for (i = 0; i < RX_RING_SIZE; i++) {
-               struct nv_rx_desc *desc = sc->rx_desc + i;
-               struct nv_map_buffer *buf = &desc->buf;
-
-               buf->mbuf = m_getcl(MB_DONTWAIT, MT_DATA, M_PKTHDR);
-               if (buf->mbuf == NULL) {
-                       device_printf(sc->dev, "couldn't allocate mbuf\n");
-                       nv_free_rings(sc);
-                       error = ENOBUFS;
-                       goto fail;
-               }
-               buf->mbuf->m_len = buf->mbuf->m_pkthdr.len = MCLBYTES;
-               m_adj(buf->mbuf, ETHER_ALIGN);
-
-               error = bus_dmamap_create(sc->mtag, 0, &buf->map);
-               if (error) {
-                       device_printf(sc->dev, "couldn't create dma map\n");
-                       nv_free_rings(sc);
-                       goto fail;
-               }
-               error = bus_dmamap_load_mbuf(sc->mtag, buf->map, buf->mbuf,
-                                         nv_dmamap_rx_cb, &desc->paddr, 0);
-               if (error) {
-                       device_printf(sc->dev, "couldn't dma map mbuf\n");
-                       nv_free_rings(sc);
-                       goto fail;
-               }
-               bus_dmamap_sync(sc->mtag, buf->map, BUS_DMASYNC_PREREAD);
-
-               desc->buflength = buf->mbuf->m_len;
-               desc->vaddr = mtod(buf->mbuf, caddr_t);
-       }
-       bus_dmamap_sync(sc->rtag, sc->rmap,
-                       BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
-
-       /* Initialize TX ring */
-       for (i = 0; i < TX_RING_SIZE; i++) {
-               struct nv_tx_desc *desc = sc->tx_desc + i;
-               struct nv_map_buffer *buf = &desc->buf;
-
-               buf->mbuf = NULL;
-
-               error = bus_dmamap_create(sc->mtag, 0, &buf->map);
-               if (error) {
-                       device_printf(sc->dev, "couldn't create dma map\n");
-                       nv_free_rings(sc);
-                       goto fail;
-               }
-       }
-       bus_dmamap_sync(sc->ttag, sc->tmap,
-                       BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
-
-       DEBUGOUT(NV_DEBUG_INIT, "nv: nv_init_rings - exit\n");
-
-fail:
-       return (error);
-}
-
-/* Free the TX ring buffers */
-static void
-nv_free_rings(struct nv_softc *sc)
-{
-       int             i;
-
-       DEBUGOUT(NV_DEBUG_DEINIT, "nv: nv_free_rings - entry\n");
-
-       for (i = 0; i < RX_RING_SIZE; i++) {
-               struct nv_rx_desc *desc = sc->rx_desc + i;
-               struct nv_map_buffer *buf = &desc->buf;
-
-               if (buf->mbuf) {
-                       bus_dmamap_unload(sc->mtag, buf->map);
-                       bus_dmamap_destroy(sc->mtag, buf->map);
-                       m_freem(buf->mbuf);
-               }
-               buf->mbuf = NULL;
-       }
-
-       for (i = 0; i < TX_RING_SIZE; i++) {
-               struct nv_tx_desc *desc = sc->tx_desc + i;
-               struct nv_map_buffer *buf = &desc->buf;
-
-               if (buf->mbuf) {
-                       bus_dmamap_unload(sc->mtag, buf->map);
-                       bus_dmamap_destroy(sc->mtag, buf->map);
-                       m_freem(buf->mbuf);
-               }
-               buf->mbuf = NULL;
-       }
-
-       DEBUGOUT(NV_DEBUG_DEINIT, "nv: nv_free_rings - exit\n");
-}
-
-/* Main loop for sending packets from OS to interface */
-
-static void
-nv_ifstart(struct ifnet *ifp)
-{
-       struct nv_softc *sc = ifp->if_softc;
-       struct nv_map_buffer *buf;
-       struct mbuf    *m0, *m;
-       struct nv_tx_desc *desc;
-       ADAPTER_WRITE_DATA txdata;
-       int             error, i;
-
-       DEBUGOUT(NV_DEBUG_RUNNING, "nv: nv_ifstart - entry\n");
-
-       /* If link is down/busy or queue is empty do nothing */
-       if ((ifp->if_flags & IFF_OACTIVE) || ifq_is_empty(&ifp->if_snd))
-               return;
-
-       /* Transmit queued packets until sent or TX ring is full */
-       while (sc->pending_txs < TX_RING_SIZE) {
-               desc = sc->tx_desc + sc->cur_tx;
-               buf = &desc->buf;
-
-               /* Get next packet to send. */
-               m0 = ifq_dequeue(&ifp->if_snd, NULL);
-
-               /* If nothing to send, return. */
-               if (m0 == NULL)
-                       return;
-
-               /* Map MBUF for DMA access */
-               error = bus_dmamap_load_mbuf(sc->mtag, buf->map, m0,
-                                    nv_dmamap_tx_cb, desc, BUS_DMA_NOWAIT);
-
-               if (error && error != EFBIG) {
-                       m_freem(m0);
-                       sc->tx_errors++;
-                       continue;
-               }
-               /*
-                * Packet has too many fragments - defrag into new mbuf
-                * cluster
-                */
-               if (error) {
-                       m = m_defrag(m0, MB_DONTWAIT);
-                       if (m == NULL) {
-                               m_freem(m0);
-                               sc->tx_errors++;
-                               continue;
-                       }
-                       m0 = m;
-
-                       error = bus_dmamap_load_mbuf(sc->mtag, buf->map, m,
-                                    nv_dmamap_tx_cb, desc, BUS_DMA_NOWAIT);
-                       if (error) {
-                               m_freem(m);
-                               sc->tx_errors++;
-                               continue;
-                       }
-               }
-               /* Do sync on DMA bounce buffer */
-               bus_dmamap_sync(sc->mtag, buf->map, BUS_DMASYNC_PREWRITE);
-
-               buf->mbuf = m0;
-               txdata.ulNumberOfElements = desc->numfrags;
-               txdata.pvID = (PVOID)desc;
-
-               /* Put fragments into API element list */
-               txdata.ulTotalLength = buf->mbuf->m_len;
-               for (i = 0; i < desc->numfrags; i++) {
-                       txdata.sElement[i].ulLength = (ulong)desc->frags[i].ds_len;
-                       txdata.sElement[i].pPhysical = (PVOID)desc->frags[i].ds_addr;
-               }
-
-               /* Send packet to Nvidia API for transmission */
-               error = sc->hwapi->pfnWrite(sc->hwapi->pADCX, &txdata);
-
-               switch (error) {
-               case ADAPTERERR_NONE:
-                       /* Packet was queued in API TX queue successfully */
-                       sc->pending_txs++;
-                       sc->cur_tx = (sc->cur_tx + 1) % TX_RING_SIZE;
-                       break;
-
-               case ADAPTERERR_TRANSMIT_QUEUE_FULL:
-                       /* The API TX queue is full - requeue the packet */
-                       device_printf(sc->dev, "nv_ifstart: transmit queue is full\n");
-                       ifp->if_flags |= IFF_OACTIVE;
-                       bus_dmamap_unload(sc->mtag, buf->map);
-                       buf->mbuf = NULL;
-                       m_freem(m0);    /* XXX requeue */
-                       return;
-
-               default:
-                       /* The API failed to queue/send the packet so dump it */
-                       device_printf(sc->dev, "nv_ifstart: transmit error\n");
-                       bus_dmamap_unload(sc->mtag, buf->map);
-                       m_freem(buf->mbuf);
-                       buf->mbuf = NULL;
-                       sc->tx_errors++;
-                       return;
-               }
-               /* Set watchdog timer. */
-               ifp->if_timer = 8;
-
-               /* Copy packet to BPF tap */
-               BPF_MTAP(ifp, m0);
-       }
-       ifp->if_flags |= IFF_OACTIVE;
-
-       DEBUGOUT(NV_DEBUG_RUNNING, "nv: nv_ifstart - exit\n");
-}
-
-/* Handle IOCTL events */
-static int
-nv_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
-{
-       struct nv_softc *sc = ifp->if_softc;
-       struct ifreq   *ifr = (struct ifreq *) data;
-       struct mii_data *mii;
-       int             error = 0;
-
-       DEBUGOUT(NV_DEBUG_IOCTL, "nv: nv_ioctl - entry\n");
-
-       switch (command) {
-       case SIOCSIFMTU:
-               /* Set MTU size */
-               if (ifp->if_mtu == ifr->ifr_mtu)
-                       break;
-               if (ifr->ifr_mtu + ifp->if_hdrlen <= MAX_PACKET_SIZE_1518) {
-                       ifp->if_mtu = ifr->ifr_mtu;
-                       nv_stop(sc);
-                       nv_init(sc);
-               } else
-                       error = EINVAL;
-               break;
-
-       case SIOCSIFFLAGS:
-               /* Setup interface flags */
-               if (ifp->if_flags & IFF_UP) {
-                       if ((ifp->if_flags & IFF_RUNNING) == 0) {
-                               nv_init(sc);
-                               break;
-                       }
-               } else {
-                       if (ifp->if_flags & IFF_RUNNING) {
-                               nv_stop(sc);
-                               break;
-                       }
-               }
-
-               /* Handle IFF_PROMISC and IFF_ALLMULTI flags. */
-               nv_setmulti(sc);
-               break;
-
-       case SIOCADDMULTI:
-       case SIOCDELMULTI:
-               /* Setup multicast filter */
-               if (ifp->if_flags & IFF_RUNNING) {
-                       nv_setmulti(sc);
-               }
-               break;
-       case SIOCGIFMEDIA:
-       case SIOCSIFMEDIA:
-               /* Get/Set interface media parameters */
-               mii = device_get_softc(sc->miibus);
-               error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, command);
-               break;
-
-       default:
-               /* Everything else we forward to generic ether ioctl */
-               error = ether_ioctl(ifp, command, data);
-               break;
-       }
-
-       DEBUGOUT(NV_DEBUG_IOCTL, "nv: nv_ioctl - exit\n");
-
-       return (error);
-}
-
-/*
- * Interrupt service routine.  The serializer has already been entered
- * since we installed it in our bus_setup_intr() call.
- */
-static void
-nv_intr(void *arg)
-{
-       struct nv_softc *sc = arg;
-       struct ifnet   *ifp = &sc->sc_if;
-
-       DEBUGOUT(NV_DEBUG_INTERRUPT, "nv: nv_intr - entry\n");
-
-       /*
-        * Handle an interrupt event.  Unfortunately the nvidia API
-        * does not support interrupt disablement when polling, so we
-        * have to re-enable after the query masks them off.
-        */
-       if (sc->hwapi->pfnQueryInterrupt(sc->hwapi->pADCX)) {
-               sc->hwapi->pfnHandleInterrupt(sc->hwapi->pADCX);
-#if 1
-               lwkt_serialize_handler_enable(ifp->if_serializer);
-               sc->hwapi->pfnEnableInterrupts(sc->hwapi->pADCX);
-#else
-               if ((ifp->if_flags & IFF_POLLING) == 0) {
-                       lwkt_serialize_handler_enable(ifp->if_serializer);
-                       sc->hwapi->pfnEnableInterrupts(sc->hwapi->pADCX);
-               }
-#endif
-       }
-       if (!ifq_is_empty(&ifp->if_snd))
-               nv_ifstart(ifp);
-
-       /* If no pending packets we don't need a timeout */
-       if (sc->pending_txs == 0)
-               sc->sc_if.if_timer = 0;
-
-       DEBUGOUT(NV_DEBUG_INTERRUPT, "nv: nv_intr - exit\n");
-}
-
-/*
- * Setup multicast filters 
- *
- * Serialized on call
- */
-static void
-nv_setmulti(struct nv_softc *sc)
-{
-       struct ifnet   *ifp;
-       struct ifmultiaddr *ifma;
-       PACKET_FILTER   hwfilter;
-       int             i;
-       u_int8_t        oraddr[6];
-       u_int8_t        andaddr[6];
-
-       DEBUGOUT(NV_DEBUG_RUNNING, "nv: nv_setmulti - entry\n");
-
-       ifp = &sc->sc_if;
-
-       /* Initialize filter */
-       hwfilter.ulFilterFlags = 0;
-       for (i = 0; i < 6; i++) {
-               hwfilter.acMulticastAddress[i] = 0;
-               hwfilter.acMulticastMask[i] = 0;
-       }
-
-       if (ifp->if_flags & (IFF_PROMISC | IFF_ALLMULTI)) {
-               /* Accept all packets */
-               hwfilter.ulFilterFlags |= ACCEPT_ALL_PACKETS;
-               sc->hwapi->pfnSetPacketFilter(sc->hwapi->pADCX, &hwfilter);
-               return;
-       }
-       /* Setup multicast filter */
-       LIST_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
-               u_char         *addrp;
-
-               if (ifma->ifma_addr->sa_family != AF_LINK)
-                       continue;
-
-               addrp = LLADDR((struct sockaddr_dl *) ifma->ifma_addr);
-               for (i = 0; i < 6; i++) {
-                       u_int8_t        mcaddr = addrp[i];
-                       andaddr[i] &= mcaddr;
-                       oraddr[i] |= mcaddr;
-               }
-       }
-       for (i = 0; i < 6; i++) {
-               hwfilter.acMulticastAddress[i] = andaddr[i] & oraddr[i];
-               hwfilter.acMulticastMask[i] = andaddr[i] | (~oraddr[i]);
-       }
-
-       /* Send filter to NVIDIA API */
-       sc->hwapi->pfnSetPacketFilter(sc->hwapi->pADCX, &hwfilter);
-
-       DEBUGOUT(NV_DEBUG_RUNNING, "nv: nv_setmulti - exit\n");
-}
-
-/*
- * Change the current media/mediaopts
- *
- * Serialized on call
- */
-static int
-nv_ifmedia_upd(struct ifnet *ifp)
-{
-       struct nv_softc *sc = ifp->if_softc;
-       struct mii_data *mii;
-
-       DEBUGOUT(NV_DEBUG_MII, "nv: nv_ifmedia_upd\n");
-
-       mii = device_get_softc(sc->miibus);
-
-       if (mii->mii_instance) {
-               struct mii_softc *miisc;
-               for (miisc = LIST_FIRST(&mii->mii_phys); miisc != NULL;
-                    miisc = LIST_NEXT(miisc, mii_list)) {
-                       mii_phy_reset(miisc);
-               }
-       }
-       mii_mediachg(mii);
-
-       return (0);
-}
-
-/*
- * Update current miibus PHY status of media 
- *
- * Serialized on call
- */
-static void
-nv_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
-{
-       struct nv_softc *sc;
-       struct mii_data *mii;
-
-       DEBUGOUT(NV_DEBUG_MII, "nv: nv_ifmedia_sts\n");
-
-       sc = ifp->if_softc;
-       mii = device_get_softc(sc->miibus);
-       mii_pollstat(mii);
-
-       ifmr->ifm_active = mii->mii_media_active;
-       ifmr->ifm_status = mii->mii_media_status;
-}
-
-/* miibus tick timer - maintain link status */
-static void
-nv_tick(void *xsc)
-{
-       struct nv_softc *sc = xsc;
-       struct mii_data *mii;
-       struct ifnet   *ifp;
-
-       ifp = &sc->sc_if;
-       lwkt_serialize_enter(ifp->if_serializer);
-       nv_update_stats(sc);
-
-       mii = device_get_softc(sc->miibus);
-       mii_tick(mii);
-
-       if ((mii->mii_media_status & IFM_ACTIVE) &&
-           IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE) {
-               if (!ifq_is_empty(&ifp->if_snd))
-                       nv_ifstart(ifp);
-       }
-       callout_reset(&sc->nv_stat_timer, hz, nv_tick, sc);
-       lwkt_serialize_exit(ifp->if_serializer);
-}
-
-/* Update ifnet data structure with collected interface stats from API */
-static void
-nv_update_stats(struct nv_softc *sc)
-{
-       struct ifnet   *ifp = &sc->sc_if;
-       ADAPTER_STATS   stats;
-
-       if (sc->hwapi) {
-               sc->hwapi->pfnGetStatistics(sc->hwapi->pADCX, &stats);
-
-               ifp->if_ipackets = stats.ulSuccessfulReceptions;
-               ifp->if_ierrors = stats.ulMissedFrames +
-                       stats.ulFailedReceptions +
-                       stats.ulCRCErrors +
-                       stats.ulFramingErrors +
-                       stats.ulOverFlowErrors;
-
-               ifp->if_opackets = stats.ulSuccessfulTransmissions;
-               ifp->if_oerrors = sc->tx_errors +
-                       stats.ulFailedTransmissions +
-                       stats.ulRetryErrors +
-                       stats.ulUnderflowErrors +
-                       stats.ulLossOfCarrierErrors +
-                       stats.ulLateCollisionErrors;
-
-               ifp->if_collisions = stats.ulLateCollisionErrors;
-       }
-}
-
-/* miibus Read PHY register wrapper - calls Nvidia API entry point */
-static int
-nv_miibus_readreg(device_t dev, int phy, int reg)
-{
-       struct nv_softc *sc = device_get_softc(dev);
-       ULONG           data;
-
-       DEBUGOUT(NV_DEBUG_MII, "nv: nv_miibus_readreg - entry\n");
-
-       ADAPTER_ReadPhy(sc->hwapi->pADCX, phy, reg, &data);
-
-       DEBUGOUT(NV_DEBUG_MII, "nv: nv_miibus_readreg - exit\n");
-
-       return (data);
-}
-
-/* miibus Write PHY register wrapper - calls Nvidia API entry point */
-static void
-nv_miibus_writereg(device_t dev, int phy, int reg, int data)
-{
-       struct nv_softc *sc = device_get_softc(dev);
-
-       DEBUGOUT(NV_DEBUG_MII, "nv: nv_miibus_writereg - entry\n");
-
-       ADAPTER_WritePhy(sc->hwapi->pADCX, phy, reg, (ulong)data);
-
-       DEBUGOUT(NV_DEBUG_MII, "nv: nv_miibus_writereg - exit\n");
-}
-
-/* Watchdog timer to prevent PHY lockups */
-static void
-nv_watchdog(struct ifnet *ifp)
-{
-       struct nv_softc *sc = ifp->if_softc;
-
-       device_printf(sc->dev, "device timeout (%d) flags %d\n",
-                       sc->pending_txs, ifp->if_flags & IFF_OACTIVE);
-
-       sc->tx_errors++;
-
-       nv_stop(sc);
-       ifp->if_flags &= ~IFF_RUNNING;
-       nv_init(sc);
-
-       if (!ifq_is_empty(&ifp->if_snd))
-               nv_ifstart(ifp);
-}
-
-/* --- Start of NVOSAPI interface --- */
-
-/* Allocate DMA enabled general use memory for API */
-static NV_SINT32
-nv_osalloc(PNV_VOID ctx, PMEMORY_BLOCK mem)
-{
-       struct nv_softc *sc;
-       bus_addr_t      mem_physical;
-
-       DEBUGOUT(NV_DEBUG_API, "nv: nv_osalloc - %d\n", mem->uiLength);
-
-       sc = (struct nv_softc *)ctx;
-
-       mem->pLogical = (PVOID)contigmalloc(mem->uiLength, M_DEVBUF,
-           M_NOWAIT | M_ZERO, 0, 0xffffffff, PAGE_SIZE, 0);
-
-       if (!mem->pLogical) {
-               device_printf(sc->dev, "memory allocation failed\n");
-               return (0);
-       }
-       memset(mem->pLogical, 0, (ulong)mem->uiLength);
-       mem_physical = vtophys(mem->pLogical);
-       mem->pPhysical = (PVOID)mem_physical;
-
-       DEBUGOUT(NV_DEBUG_API, "nv: nv_osalloc %p/%p - %d\n",
-                mem->pLogical, mem->pPhysical, mem->uiLength);
-
-       return (1);
-}
-
-/* Free allocated memory */
-static NV_SINT32
-nv_osfree(PNV_VOID ctx, PMEMORY_BLOCK mem)
-{
-       DEBUGOUT(NV_DEBUG_API, "nv: nv_osfree - %p - %d\n",
-                mem->pLogical, mem->uiLength);
-
-       contigfree(mem->pLogical, PAGE_SIZE, M_DEVBUF);
-       return (1);
-}
-
-/* Copied directly from nvnet.c */
-static NV_SINT32
-nv_osallocex(PNV_VOID ctx, PMEMORY_BLOCKEX mem_block_ex)
-{
-       MEMORY_BLOCK    mem_block;
-
-       DEBUGOUT(NV_DEBUG_API, "nv: nv_osallocex\n");
-
-       mem_block_ex->pLogical = NULL;
-       mem_block_ex->uiLengthOrig = mem_block_ex->uiLength;
-
-       if ((mem_block_ex->AllocFlags & ALLOC_MEMORY_ALIGNED) &&
-           (mem_block_ex->AlignmentSize > 1)) {
-               DEBUGOUT(NV_DEBUG_API, "     aligning on %d\n",
-                        mem_block_ex->AlignmentSize);
-               mem_block_ex->uiLengthOrig += mem_block_ex->AlignmentSize;
-       }
-       mem_block.uiLength = mem_block_ex->uiLengthOrig;
-
-       if (nv_osalloc(ctx, &mem_block) == 0) {
-               return (0);
-       }
-       mem_block_ex->pLogicalOrig = mem_block.pLogical;
-       mem_block_ex->pPhysicalOrigLow = (uintptr_t)mem_block.pPhysical;
-       mem_block_ex->pPhysicalOrigHigh = 0;
-
-       mem_block_ex->pPhysical = mem_block.pPhysical;
-       mem_block_ex->pLogical = mem_block.pLogical;
-
-       if (mem_block_ex->uiLength != mem_block_ex->uiLengthOrig) {
-               unsigned int    offset;
-               offset = mem_block_ex->pPhysicalOrigLow & (mem_block_ex->AlignmentSize - 1);
-
-               if (offset) {
-                       mem_block_ex->pPhysical = (PVOID)((uintptr_t)mem_block_ex->pPhysical +
-                                     mem_block_ex->AlignmentSize - offset);
-                       mem_block_ex->pLogical = (PVOID)((uintptr_t)mem_block_ex->pLogical +
-                                     mem_block_ex->AlignmentSize - offset);
-               }               /* if (offset) */
-       }                       /* if (mem_block_ex->uiLength !=
-                                * mem_block_ex->uiLengthOrig) */
-       return (1);
-}
-
-/* Copied directly from nvnet.c */
-static NV_SINT32
-nv_osfreeex(PNV_VOID ctx, PMEMORY_BLOCKEX mem_block_ex)
-{
-       MEMORY_BLOCK    mem_block;
-
-       DEBUGOUT(NV_DEBUG_API, "nv: nv_osfreeex\n");
-
-       mem_block.pLogical = mem_block_ex->pLogicalOrig;
-       mem_block.pPhysical = (PVOID)((uintptr_t)mem_block_ex->pPhysicalOrigLow);
-       mem_block.uiLength = mem_block_ex->uiLengthOrig;
-
-       return (nv_osfree(ctx, &mem_block));
-}
-
-/* Clear memory region */
-static NV_SINT32
-nv_osclear(PNV_VOID ctx, PNV_VOID mem, NV_SINT32 length)
-{
-       DEBUGOUT(NV_DEBUG_API, "nv: nv_osclear\n");
-       memset(mem, 0, length);
-       return (1);
-}
-
-/* Sleep for a tick */
-static NV_SINT32
-nv_osdelay(PNV_VOID ctx, NV_UINT32 usec)
-{
-       if (usec >= 1000000 / hz) {
-           tsleep(nv_osdelay, 0, "nvdelay", (usec * hz / 1000000) + 1);
-       } else {
-           DELAY(usec);
-       }
-       return (1);
-}
-
-/* Allocate memory for rx buffer */
-static NV_SINT32
-nv_osallocrxbuf(PNV_VOID ctx, PMEMORY_BLOCK mem, PNV_VOID *id)
-{
-       struct nv_softc *sc = ctx;
-       struct nv_rx_desc *desc;
-       struct nv_map_buffer *buf;
-       int             error;
-
-       DEBUGOUT(NV_DEBUG_API, "nv: nv_osallocrxbuf\n");
-
-       if (sc->pending_rxs == RX_RING_SIZE) {
-               device_printf(sc->dev, "rx ring buffer is full\n");
-               goto fail;
-       }
-       desc = sc->rx_desc + sc->cur_rx;
-       buf = &desc->buf;
-
-       if (buf->mbuf == NULL) {
-               buf->mbuf = m_getcl(MB_DONTWAIT, MT_DATA, M_PKTHDR);
-               if (buf->mbuf == NULL) {
-                       device_printf(sc->dev, "failed to allocate memory\n");
-                       goto fail;
-               }
-               buf->mbuf->m_len = buf->mbuf->m_pkthdr.len = MCLBYTES;
-               m_adj(buf->mbuf, ETHER_ALIGN);
-
-               error = bus_dmamap_load_mbuf(sc->mtag, buf->map, buf->mbuf,
-                                         nv_dmamap_rx_cb, &desc->paddr, 0);
-               if (error) {
-                       device_printf(sc->dev, "failed to dmamap mbuf\n");
-                       m_freem(buf->mbuf);
-                       buf->mbuf = NULL;
-                       goto fail;
-               }
-               bus_dmamap_sync(sc->mtag, buf->map, BUS_DMASYNC_PREREAD);
-               desc->buflength = buf->mbuf->m_len;
-               desc->vaddr = mtod(buf->mbuf, PVOID);
-       }
-       sc->pending_rxs++;
-       sc->cur_rx = (sc->cur_rx + 1) % RX_RING_SIZE;
-
-       mem->pLogical = (void *)desc->vaddr;
-       mem->pPhysical = (void *)desc->paddr;
-       mem->uiLength = desc->buflength;
-       *id = (void *)desc;
-
-       return (1);
-fail:
-       return (0);
-}
-
-
-/* Free the rx buffer */
-static NV_SINT32
-nv_osfreerxbuf(PNV_VOID ctx, PMEMORY_BLOCK mem, PNV_VOID id)
-{
-       struct nv_softc *sc = ctx;
-       struct nv_rx_desc *desc;
-       struct nv_map_buffer *buf;
-
-       DEBUGOUT(NV_DEBUG_API, "nv: nv_osfreerxbuf\n");
-
-       desc = (struct nv_rx_desc *) id;
-       buf = &desc->buf;
-
-       if (buf->mbuf) {
-               bus_dmamap_unload(sc->mtag, buf->map);
-               bus_dmamap_destroy(sc->mtag, buf->map);
-               m_freem(buf->mbuf);
-       }
-       sc->pending_rxs--;
-       buf->mbuf = NULL;
-
-       return (1);
-}
-
-/* This gets called by the Nvidia API after our TX packet has been sent */
-static NV_SINT32
-nv_ospackettx(PNV_VOID ctx, PNV_VOID id, NV_UINT32 success)
-{
-       struct nv_softc *sc = ctx;
-       struct nv_map_buffer *buf;
-       struct nv_tx_desc *desc = (struct nv_tx_desc *) id;
-       struct ifnet   *ifp;
-
-       DEBUGOUT(NV_DEBUG_API, "nv: nv_ospackettx\n");
-
-       ifp = &sc->sc_if;
-       buf = &desc->buf;
-       sc->pending_txs--;
-
-       /* Unload and free mbuf cluster */
-       if (buf->mbuf == NULL)
-               goto fail;
-
-       bus_dmamap_sync(sc->mtag, buf->map, BUS_DMASYNC_POSTWRITE);
-       bus_dmamap_unload(sc->mtag, buf->map);
-       m_freem(buf->mbuf);
-       buf->mbuf = NULL;
-
-       /*
-        * Make sure we are clear to go if we previously stalled due
-        * to a full ring.
-        */
-       if (sc->pending_txs < TX_RING_SIZE) {
-               ifp->if_flags &= ~IFF_OACTIVE;
-               if (!ifq_is_empty(&ifp->if_snd))
-                       nv_ifstart(ifp);
-       }
-fail:
-       return (1);
-}
-
-/* This gets called by the Nvidia API when a new packet has been received */
-/* XXX What is newbuf used for? XXX */
-static NV_SINT32
-nv_ospacketrx(PNV_VOID ctx, PNV_VOID data, NV_UINT32 success,
-             NV_UINT8 *newbuf, NV_UINT8 priority)
-{
-       struct nv_softc *sc = ctx;
-       struct ifnet   *ifp;
-       struct nv_rx_desc *desc;
-       struct nv_map_buffer *buf;
-       ADAPTER_READ_DATA *readdata;
-
-       DEBUGOUT(NV_DEBUG_API, "nv: nv_ospacketrx\n");
-
-       ifp = &sc->sc_if;
-
-       readdata = (ADAPTER_READ_DATA *) data;
-       desc = readdata->pvID;
-       buf = &desc->buf;
-       bus_dmamap_sync(sc->mtag, buf->map, BUS_DMASYNC_POSTREAD);
-
-       if (success) {
-               /* Sync DMA bounce buffer. */
-               bus_dmamap_sync(sc->mtag, buf->map, BUS_DMASYNC_POSTREAD);
-
-               /* First mbuf in packet holds the ethernet and packet headers */
-               buf->mbuf->m_pkthdr.rcvif = ifp;
-               buf->mbuf->m_pkthdr.len = buf->mbuf->m_len = readdata->ulTotalLength;
-
-               bus_dmamap_unload(sc->mtag, buf->map);
-
-               /* Give mbuf to OS. */
-               ifp->if_input(ifp, buf->mbuf);
-               if (readdata->ulFilterMatch & ADREADFL_MULTICAST_MATCH)
-                       ifp->if_imcasts++;
-
-               /* Blat the mbuf pointer, kernel will free the mbuf cluster */
-               buf->mbuf = NULL;
-       } else {
-               bus_dmamap_sync(sc->mtag, buf->map, BUS_DMASYNC_POSTREAD);
-               bus_dmamap_unload(sc->mtag, buf->map);
-               m_freem(buf->mbuf);
-               buf->mbuf = NULL;
-       }
-
-       sc->cur_rx = desc - sc->rx_desc;
-       sc->pending_rxs--;
-
-       return (1);
-}
-
-/* This gets called by NVIDIA API when the PHY link state changes */
-static NV_SINT32
-nv_oslinkchg(PNV_VOID ctx, NV_SINT32 enabled)
-{
-       DEBUGOUT(NV_DEBUG_API, "nv: nv_oslinkchg\n");
-
-       return (1);
-}
-
-
-/* Setup a watchdog timer */
-static NV_SINT32
-nv_osalloctimer(PNV_VOID ctx, PNV_VOID *timer)
-{
-       struct nv_softc *sc = (struct nv_softc *)ctx;
-
-       DEBUGOUT(NV_DEBUG_BROKEN, "nv: nv_osalloctimer\n");
-
-       callout_init(&sc->ostimer);
-       *timer = &sc->ostimer;
-
-       return (1);
-}
-
-/* Free the timer */
-static NV_SINT32
-nv_osfreetimer(PNV_VOID ctx, PNV_VOID timer)
-{
-       DEBUGOUT(NV_DEBUG_BROKEN, "nv: nv_osfreetimer\n");
-
-       return (1);
-}
-
-/* Setup timer parameters */
-static NV_SINT32
-nv_osinittimer(PNV_VOID ctx, PNV_VOID timer, PTIMER_FUNC func, PNV_VOID parameters)
-{
-       struct nv_softc *sc = (struct nv_softc *)ctx;
-
-       DEBUGOUT(NV_DEBUG_BROKEN, "nv: nv_osinittimer\n");
-
-       sc->ostimer_func = func;
-       sc->ostimer_params = parameters;
-
-       return (1);
-}
-
-static void
-nv_ostimer_callback(void *data)
-{
-       struct nv_softc *sc = data;
-       struct ifnet *ifp = &sc->sc_if;
-
-       lwkt_serialize_enter(ifp->if_serializer);
-       sc->ostimer_func(sc->ostimer_params);
-       lwkt_serialize_exit(ifp->if_serializer);
-}
-
-/* 
- * Set the timer to go off 
- *
- * XXX what the hell are the units for 'delay' ?  They sure aren't ticks!
- */
-static NV_SINT32
-nv_ossettimer(PNV_VOID ctx, PNV_VOID timer, NV_UINT32 delay)
-{
-       struct nv_softc *sc = ctx;
-
-       DEBUGOUT(NV_DEBUG_BROKEN, "nv: nv_ossettimer\n");
-       kprintf("nv_ossettimer %d\n", (int)delay);
-
-       callout_reset(&sc->ostimer, delay, nv_ostimer_callback, sc);
-
-       return (1);
-}
-
-/* Cancel the timer */
-static NV_SINT32
-nv_oscanceltimer(PNV_VOID ctx, PNV_VOID timer)
-{
-       struct nv_softc *sc = ctx;
-
-       DEBUGOUT(NV_DEBUG_BROKEN, "nv: nv_oscanceltimer\n");
-
-       callout_stop(&sc->ostimer);
-
-       return (1);
-}
-
-static NV_SINT32
-nv_ospreprocpkt(PNV_VOID ctx, PNV_VOID readdata, PNV_VOID *id, NV_UINT8 *newbuffer,
-               NV_UINT8 priority)
-{
-       /* Not implemented */
-       DEBUGOUT(NV_DEBUG_BROKEN, "nv: nv_ospreprocpkt\n");
-
-       return (1);
-}
-
-static PNV_VOID
-nv_ospreprocpktnopq(PNV_VOID ctx, PNV_VOID readdata)
-{
-       /* Not implemented */
-       DEBUGOUT(NV_DEBUG_BROKEN, "nv: nv_ospreprocpkt\n");
-
-       return (NULL);
-}
-
-static NV_SINT32
-nv_osindicatepkt(PNV_VOID ctx, PNV_VOID *id, NV_UINT32 pktno)
-{
-       /* Not implemented */
-       DEBUGOUT(NV_DEBUG_BROKEN, "nv: nv_osindicatepkt\n");
-
-       return (1);
-}
-
-/* Allocate mutex context (already done in nv_attach) */
-static NV_SINT32
-nv_oslockalloc(PNV_VOID ctx, NV_SINT32 type, PNV_VOID *pLock)
-{
-       struct nv_softc *sc = (struct nv_softc *)ctx;
-
-       DEBUGOUT(NV_DEBUG_LOCK, "nv: nv_oslockalloc\n");
-
-       *pLock = (void **)sc;
-
-       return (1);
-}
-
-/* Obtain a spin lock */
-static NV_SINT32
-nv_oslockacquire(PNV_VOID ctx, NV_SINT32 type, PNV_VOID lock)
-{
-       DEBUGOUT(NV_DEBUG_LOCK, "nv: nv_oslockacquire\n");
-
-       return (1);
-}
-
-/* Release lock */
-static NV_SINT32
-nv_oslockrelease(PNV_VOID ctx, NV_SINT32 type, PNV_VOID lock)
-{
-       DEBUGOUT(NV_DEBUG_LOCK, "nv: nv_oslockrelease\n");
-
-       return (1);
-}
-
-/* I have no idea what this is for */
-static PNV_VOID
-nv_osreturnbufvirt(PNV_VOID ctx, PNV_VOID readdata)
-{
-       /* Not implemented */
-       DEBUGOUT(NV_DEBUG_LOCK, "nv: nv_osreturnbufvirt\n");
-       panic("nv: nv_osreturnbufvirtual not implemented\n");
-
-       return (NULL);
-}
-
-
-/* --- End on NVOSAPI interface --- */
diff --git a/sys/dev/netif/nv/if_nvreg.h b/sys/dev/netif/nv/if_nvreg.h
deleted file mode 100644 (file)
index 331d70a..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (c) 2003 by Quinton Dolan <q@onthenet.com.au>.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS `AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
- * SUCH DAMAGE.
- *
- * $Id: if_nvreg.h,v 1.6 2004/08/12 14:00:05 q Exp $
- * $FreeBSD: src/sys/dev/nve/if_nvereg.h,v 1.7 2005/12/07 17:38:03 obrien Exp $
- * $DragonFly: src/sys/dev/netif/nv/Attic/if_nvreg.h,v 1.13 2006/12/22 23:26:21 swildner Exp $
- */
-#ifndef _IF_NVREG_H_
-#define _IF_NVREG_H_
-
-/* Include NVIDIA Linux driver header files */
-
-#define linux
-
-#include "nvenet_version.h"
-#include "basetype.h"
-#include "os.h"
-#include "drvinfo.h"
-#include "adapter.h"
-
-#undef linux
-
-#ifndef NVIDIA_VENDORID
-#define NVIDIA_VENDORID 0x10DE
-#endif
-
-#define NFORCE_MCPNET1_DEVICEID 0x01C3
-#define NFORCE_MCPNET2_DEVICEID 0x0066
-#define NFORCE_MCPNET3_DEVICEID 0x00D6
-#define NFORCE_MCPNET4_DEVICEID 0x0086
-#define NFORCE_MCPNET5_DEVICEID 0x008C
-#define NFORCE_MCPNET6_DEVICEID 0x00E6
-#define NFORCE_MCPNET7_DEVICEID 0x00DF
-#define NFORCE_MCPNET8_DEVICEID 0x0056
-#define NFORCE_MCPNET9_DEVICEID 0x0057
-#define NFORCE_MCPNET10_DEVICEID 0x0037
-#define NFORCE_MCPNET11_DEVICEID 0x0038
-#define NFORCE_MCPNET12_DEVICEID 0x0268
-#define NFORCE_MCPNET13_DEVICEID 0x0269
-
-#define NV_RID         0x10
-
-#define TX_RING_SIZE 64
-#define RX_RING_SIZE 64
-#define        NV_MAX_FRAGS 32         /* match adapter.h:ADAPTER_WRITE_DATA.sElement[] */
-
-#define        FCS_LEN 4
-
-#define NV_DEBUG               0x0000
-#define NV_DEBUG_INIT          0x0001
-#define NV_DEBUG_RUNNING       0x0002
-#define NV_DEBUG_DEINIT        0x0004
-#define NV_DEBUG_IOCTL         0x0008
-#define NV_DEBUG_INTERRUPT     0x0010
-#define NV_DEBUG_API           0x0020
-#define NV_DEBUG_LOCK          0x0040
-#define NV_DEBUG_BROKEN                0x0080
-#define NV_DEBUG_MII           0x0100
-#define NV_DEBUG_ALL           0xFFFF
-
-#if NV_DEBUG
-#define DEBUGOUT(level, fmt, args...) if (NV_DEBUG & level) \
-    kprintf(fmt, ## args)
-#else
-#define DEBUGOUT(level, fmt, args...)
-#endif
-
-typedef unsigned long  ulong;
-
-struct nv_map_buffer {
-       struct mbuf *mbuf;              /* mbuf receiving packet */
-       bus_dmamap_t map;               /* DMA map */   
-};
-
-struct nv_dma_info {
-       bus_dma_tag_t tag;
-       struct nv_map_buffer buf;
-       u_int16_t buflength;
-       caddr_t vaddr;                  /* Virtual memory address */
-       bus_addr_t paddr;               /* DMA physical address */
-};
-
-struct nv_rx_desc {
-       struct nv_rx_desc *next;
-       struct nv_map_buffer buf;
-       u_int16_t buflength;
-       caddr_t vaddr;
-       bus_addr_t paddr;
-};
-
-struct nv_tx_desc {
-       /* Don't add anything above this structure */
-       TX_INFO_ADAP TxInfoAdap;
-       struct nv_tx_desc *next;
-       struct nv_map_buffer buf;
-       u_int16_t buflength;
-       u_int32_t numfrags;
-       bus_dma_segment_t frags[NV_MAX_FRAGS + 1];
-};
-
-struct nv_softc {
-       struct arpcom arpcom;         /* interface info */
-       struct resource *res;
-       struct resource *irq;
-
-       ADAPTER_API *hwapi;
-       OS_API osapi;
-               
-       device_t miibus;
-       device_t dev;
-       u_int32_t unit;
-       struct callout  nv_stat_timer;
-
-       void *sc_ih;
-       bus_space_tag_t sc_st;
-       bus_space_handle_t sc_sh;
-       bus_dma_tag_t mtag;
-       bus_dma_tag_t rtag;
-       bus_dmamap_t rmap;
-       bus_dma_tag_t ttag;
-       bus_dmamap_t tmap;
-       
-       struct nv_rx_desc *rx_desc;
-       struct nv_tx_desc *tx_desc;
-       bus_addr_t rx_addr;
-       bus_addr_t tx_addr;
-       u_int16_t rx_ring_full;
-       u_int16_t tx_ring_full;
-       u_int32_t cur_rx;
-       u_int32_t cur_tx;
-       u_int32_t pending_rxs;
-       u_int32_t pending_txs;
-       
-       u_int32_t flags;
-       u_int32_t miicfg;
-       int spl;
-               
-       /* Stuff for dealing with the NVIDIA OS API */
-       struct callout ostimer;
-       PTIMER_FUNC ostimer_func;
-       void *ostimer_params;
-       int linkup;
-       ulong tx_errors;
-       NV_UINT32 hwmode;
-       NV_UINT32 max_frame_size;
-       NV_UINT32 phyaddr;
-       NV_UINT32 media;
-       CMNDATA_OS_ADAPTER adapterdata;
-       unsigned char original_mac_addr[6];
-};
-
-struct nv_type {
-       u_int16_t               vid_id;
-       u_int16_t               dev_id;
-       char                    *name;
-};
-
-#define sc_if arpcom.ac_if
-#define sc_macaddr arpcom.ac_enaddr
-
-#define IF_Kbps(x)     ((x) * 1000)            /* kilobits/sec. */
-#define IF_Mbps(x)     (IF_Kbps((x) * 1000))   /* megabits/sec. */
-#define ETHER_ALIGN    2
-
-extern int ADAPTER_ReadPhy (PVOID pContext, ULONG ulPhyAddr, ULONG ulReg, ULONG *pulVal);
-extern int ADAPTER_WritePhy (PVOID pContext, ULONG ulPhyAddr, ULONG ulReg, ULONG ulVal);
-extern int ADAPTER_Init (PVOID pContext, USHORT usForcedSpeed, UCHAR ucForceDpx, UCHAR ucForceMode, UINT *puiLinkState);
-#endif
diff --git a/sys/dev/netif/nv/os.h.patch b/sys/dev/netif/nv/os.h.patch
deleted file mode 100644 (file)
index b1768fa..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-$DragonFly: src/sys/dev/netif/nv/Attic/os.h.patch,v 1.2 2005/04/04 18:45:07 joerg Exp $
-
---- os.h.orig  2005-03-12 10:59:28.000000000 +0100
-+++ os.h       2005-04-02 20:33:43.000000000 +0200
-@@ -28,9 +28,9 @@
- #define HDO_VERSION_STRING "HDR O: $Revision: #21 $";
--// This is the maximum packet size that we will be sending
--// #define MAX_PACKET_SIZE     2048
--//#define RX_BUFFER_SIZE      2048
-+/* This is the maximum packet size that we will be sending */
-+/* #define MAX_PACKET_SIZE     2048 */
-+/*#define RX_BUFFER_SIZE      2048 */
- #define MIN_PACKET_MTU_SIZE     576
- #define MAX_PACKET_MTU_SIZE     9202
-@@ -56,7 +56,7 @@
-     NV_UINT32    uiLength;
-     /* Parameter to OS layer to indicate what type of memory is needed */
-     NV_UINT16    AllocFlags;
--    NV_UINT16    AlignmentSize; //always power of 2
-+    NV_UINT16    AlignmentSize; /*always power of 2 */
-     /* Following three fields used for aligned memory allocation */
-     PNV_VOID   pLogicalOrig;
-     NV_UINT32    pPhysicalOrigLow;
-@@ -65,7 +65,7 @@
- }   MEMORY_BLOCKEX, *PMEMORY_BLOCKEX;
--// The typedefs for the OS functions
-+/* The typedefs for the OS functions */
- typedef NV_API_CALL NV_SINT32 (* PFN_MEMORY_ALLOC) (PNV_VOID pOSCX, PMEMORY_BLOCK pMem);
- typedef NV_API_CALL NV_SINT32 (* PFN_MEMORY_FREE)  (PNV_VOID pOSCX, PMEMORY_BLOCK pMem);
- typedef NV_API_CALL NV_SINT32 (* PFN_MEMORY_ALLOCEX) (PNV_VOID pOSCX, PMEMORY_BLOCKEX pMem);
-@@ -92,14 +92,14 @@
- typedef NV_API_CALL NV_SINT32 (* PFN_LOCK_RELEASE) (PNV_VOID pOSCX, NV_SINT32 iLockType, PNV_VOID pvLock);
- typedef NV_API_CALL PNV_VOID (* PFN_RETURN_BUFFER_VIRTUAL) (PNV_VOID pvContext, PNV_VOID pvADReadData);
--// Here are the OS functions that those objects below the OS interface
--// can call up to.
-+/* Here are the OS functions that those objects below the OS interface
-+** can call up to. */
- typedef struct  _OS_API
- {
--    // OS Context -- this is a parameter to every OS API call
-+    /* OS Context -- this is a parameter to every OS API call */
-     PNV_VOID                       pOSCX;
--    // Basic OS functions
-+    /* Basic OS functions */
-     PFN_MEMORY_ALLOC            pfnAllocMemory;
-     PFN_MEMORY_FREE             pfnFreeMemory;
-     PFN_MEMORY_ALLOCEX          pfnAllocMemoryEx;
-@@ -125,4 +125,4 @@
-     PFN_RETURN_BUFFER_VIRTUAL    pfnReturnBufferVirtual;
- }   OS_API, *POS_API;
--#endif // _OS_H_
-+#endif /* _OS_H_ */
diff --git a/sys/dev/netif/nv/phy.h.patch b/sys/dev/netif/nv/phy.h.patch
deleted file mode 100644 (file)
index e3a4d66..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-$DragonFly: src/sys/dev/netif/nv/Attic/phy.h.patch,v 1.2 2005/04/04 18:45:07 joerg Exp $
-
---- phy.h.orig 2005-03-12 10:59:28.000000000 +0100
-+++ phy.h      2005-04-02 20:35:16.000000000 +0200
-@@ -22,8 +22,8 @@
- #ifndef _PHY_H_
- #define _PHY_H_
--//#include "basetype.h"
--//#include "nvevent.h"
-+/*#include "basetype.h" */
-+/*#include "nvevent.h" */
- #ifdef __cplusplus
- extern "C" {
-@@ -34,9 +34,9 @@
- #define HDP_VERSION_STRING "HDR P: $Revision: #23 $"
--//
--// Defaults for PHY timeout values.
--//
-+/*
-+** Defaults for PHY timeout values.
-+*/
- #define PHY_POWER_ISOLATION_MS_TIMEOUT_DEFAULT      50
- #define PHY_RESET_MS_TIMEOUT_DEFAULT                50
- #define PHY_AUTONEG_MS_TIMEOUT_DEFAULT              3000
-@@ -45,13 +45,13 @@
- #define PHY_POWER_DOWN_US_TIMEOUT_DEFAULT           500
--/////////////////////////////////////////////////////////////////////////
--// The phy module knows the values that need to go into the phy registers
--// but typically the method of writing those registers is controlled by
--// another module (usually the adapter because it is really the hardware
--// interface.) Hence, the phy needs routines to call to read and write the
--// phy registers. This structure with appropriate routines will be provided
--// in the PHY_Open call.
-+/***********************************************************************/
-+/* The phy module knows the values that need to go into the phy registers
-+** but typically the method of writing those registers is controlled by
-+** another module (usually the adapter because it is really the hardware
-+** interface.) Hence, the phy needs routines to call to read and write the
-+** phy registers. This structure with appropriate routines will be provided
-+** in the PHY_Open call. */
- typedef NV_API_CALL NV_SINT32 (* PFN_READ_PHY)  (PNV_VOID pvData, NV_UINT32 ulPhyAddr, NV_UINT32 ulPhyReg, NV_UINT32 *pulValue);
- typedef NV_API_CALL NV_SINT32 (* PFN_WRITE_PHY) (PNV_VOID pvData, NV_UINT32 ulPhyAddr, NV_UINT32 ulPhyReg, NV_UINT32 ulValue);
-@@ -61,13 +61,13 @@
-     PNV_VOID            pADCX;
-     PFN_READ_PHY        pfnRead;
-     PFN_WRITE_PHY       pfnWrite;
--      // PFN_EVENT_OCCURED   pfnEventOccurred;
-+      /* PFN_EVENT_OCCURED   pfnEventOccurred; */
--    //
--    // These fields are passed down via the FD.  FD get's them
--    // from the registry.  They allow one to fine tune the timeout
--    // values in the PHY.
--    //
-+    /*
-+    ** These fields are passed down via the FD.  FD get's them
-+    ** from the registry.  They allow one to fine tune the timeout
-+    ** values in the PHY.
-+    */
-     NV_UINT32 PhyPowerIsolationTimeoutInms;
-       NV_UINT32       PhyResetTimeoutInms;
-       NV_UINT32       PhyAutonegotiateTimeoutInms;
-@@ -75,11 +75,11 @@
-       NV_UINT32       PhyPowerdownOnCloseInus;
- }   PHY_SUPPORT_API, *PPHY_SUPPORT_API;
--/////////////////////////////////////////////////////////////////////////
-+/***********************************************************************/
--/////////////////////////////////////////////////////////////////////////
--// The functional typedefs for the PHY Api
-+/***********************************************************************/
-+/* The functional typedefs for the PHY Api */
- typedef NV_SINT32 (* PFN_PHY_INIT) (PNV_VOID pvContext, NV_UINT32 *pulLinkState, NV_UINT32 PhyMode);
- typedef NV_SINT32 (* PFN_PHY_DEINIT) (PNV_VOID pvContext);
- typedef NV_SINT32 (* PFN_PHY_CLOSE) (PNV_VOID pvContext);
-@@ -95,8 +95,8 @@
- typedef struct  _PHY_API
- {
--    // This is the context to pass back in as the first arg on all
--    // the calls in the API below.
-+    /* This is the context to pass back in as the first arg on all */
-+    /* the calls in the API below. */
-     PNV_VOID               pPHYCX;
-     PFN_PHY_INIT                pfnInit;
-@@ -112,22 +112,22 @@
-     PFN_PHY_POWERDOWN            pfnPowerdown;
-     PFN_SET_LOW_SPEED_FOR_PM    pfnSetLowSpeedForPM;
- }   PHY_API, *PPHY_API;
--/////////////////////////////////////////////////////////////////////////
-+/***********************************************************************/
--/////////////////////////////////////////////////////////////////////////
--// This is the one function in the PHY interface that is publicly
--// available. The rest of the interface is returned in the pPhyApi;
--// The first argument needs to be cast to a POS_API structure ptr.
--// On input the second argument is a ptr to a PPHY_SUPPORT_API.
--// On output, the second argument should be treated as a ptr to a
--// PPHY_API and set appropriately.
-+/***********************************************************************/
-+/* This is the one function in the PHY interface that is publicly
-+** available. The rest of the interface is returned in the pPhyApi;
-+** The first argument needs to be cast to a POS_API structure ptr.
-+** On input the second argument is a ptr to a PPHY_SUPPORT_API.
-+** On output, the second argument should be treated as a ptr to a
-+** PPHY_API and set appropriately. */
- extern NV_SINT32 PHY_Open (PNV_VOID pvOSApi, PNV_VOID pPhyApi, NV_UINT32 *pulPhyAddr, NV_UINT32 *pulPhyConnected);
--/////////////////////////////////////////////////////////////////////////
-+/***********************************************************************/
--/////////////////////////////////////////////////////////////////////////
--// Here are the error codes the phy functions can return.
-+/***********************************************************************/
-+/* Here are the error codes the phy functions can return. */
- #define PHYERR_NONE                                 0x0000
- #define PHYERR_COULD_NOT_ALLOC_CONTEXT              0x0001
- #define PHYERR_RESET_NEVER_FINISHED                 0x0002
-@@ -144,21 +144,21 @@
- #define PHY_INVALID_PHY_ADDR                    0xFFFF;
--/////////////////////////////////////////////////////////////////////////
-+/***********************************************************************/
--// This value can be used in the ulPhyLinkSpeed field.
-+/* This value can be used in the ulPhyLinkSpeed field. */
- #define PHY_LINK_SPEED_UNKNOWN          0x0FFFFFFFF
--//
--// Values used to configure PHY mode.
--//
-+/*
-+** Values used to configure PHY mode.
-+*/
- #define PHY_MODE_MII    1
- #define PHY_MODE_RGMII  2
- typedef NV_VOID (* PTIMER_FUNC) (PNV_VOID pvContext);
- #ifdef __cplusplus
--} // extern "C"
-+} /* extern "C" */
- #endif
--#endif //_PHY_H_
-+#endif /*_PHY_H_ */