Mercurial > illumos > illumos-gate
changeset 1000:dd54117d55b1
PSARC 2005/440 Atheros 802.11b/g driver
5050300 Solaris need Atheros AR5212 WiFi driver
line wrap: on
line diff
--- a/usr/src/pkgdefs/Makefile Sun Nov 27 18:29:20 2005 -0800 +++ b/usr/src/pkgdefs/Makefile Sun Nov 27 19:11:23 2005 -0800 @@ -110,7 +110,8 @@ SUNWrmodr \ SUNWrmodu \ SUNWrtls \ - SUNWvia823x + SUNWvia823x \ + SUNWatheros i386_XMODS= \ SUNWadpu320 \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/pkgdefs/SUNWatheros/Makefile Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,36 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License, Version 1.0 only +# (the "License"). You may not use this file except in compliance +# with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# ident "%Z%%M% %I% %E% SMI" +# + +include ../Makefile.com + +.KEEP_STATE: + +all: $(FILES) depend postinstall postremove +install: all pkg + +include ../Makefile.targ
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/pkgdefs/SUNWatheros/depend Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,53 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License, Version 1.0 only +# (the "License"). You may not use this file except in compliance +# with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# ident "%Z%%M% %I% %E% SMI" +# +# This package information file defines software dependencies associated +# with the pkg. You can define three types of pkg dependencies with this file: +# P indicates a prerequisite for installation +# I indicates an incompatible package +# R indicates a reverse dependency +# <pkg.abbr> see pkginfo(4), PKG parameter +# <name> see pkginfo(4), NAME parameter +# <version> see pkginfo(4), VERSION parameter +# <arch> see pkginfo(4), ARCH parameter +# <type> <pkg.abbr> <name> +# (<arch>)<version> +# (<arch>)<version> +# ... +# <type> <pkg.abbr> <name> +# ... + +P SUNWcar Core Architecture, (Root) +P SUNWcakr Core Solaris Kernel Architecture (Root) +P SUNWkvm Core Architecture, (Kvm) +P SUNWcsr Core Solaris, (Root) +P SUNWckr Core Solaris Kernel (Root) +P SUNWcnetr Core Solaris Network Infrastructure (Root) +P SUNWcsu Core Solaris, (Usr) +P SUNWcsd Core Solaris Devices +P SUNWcsl Core Solaris Libraries +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/pkgdefs/SUNWatheros/pkginfo.tmpl Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,46 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License, Version 1.0 only +# (the "License"). You may not use this file except in compliance +# with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# ident "%Z%%M% %I% %E% SMI" +# + +PKG="SUNWatheros" +NAME="Atheros 802.11b/g Wireless NIC Driver" +ARCH="ISA" +VERSION="ONVERS,REV=0.0.0" +SUNW_PRODNAME="SunOS" +SUNW_PRODVERS="RELEASE/VERSION" +SUNW_PKGVERS="1.0" +SUNW_PKGTYPE="root" +MAXINST="1000" +CATEGORY="system" +VENDOR="Sun Microsystems, Inc." +DESC="Atheros AR52xx 802.11b/g Wireless NIC Driver" +CLASSES="none" +HOTLINE="Please contact your local service provider" +EMAIL="" +BASEDIR=/ +SUNW_PKG_ALLZONES="true" +SUNW_PKG_HOLLOW="true"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/pkgdefs/SUNWatheros/postinstall Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,140 @@ +#! /usr/bin/sh +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License, Version 1.0 only +# (the "License"). You may not use this file except in compliance +# with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# ident "%Z%%M% %I% %E% SMI" +# + +# Driver info +DRV=ath +DRVALIAS='"pci168c,13" "pci168c,1014"' + +BASEDIR=${BASEDIR:-/} + +# Function: check_add_drv() +# +# This function will check if add_drv has been executed. +# If not simply calls add_drv. Otherwise adds entries to +# driver_aliases, driver_classes and minor_perm if necessary. +# The syntax of this function is the same as add_drv. + +check_add_drv() +{ + CMD=$* + shift + + ALIAS="" + CLASS="" + MPERM="" + ALIASDIR=${BASEDIR}/etc/driver_aliases + CLASSDIR=${BASEDIR}/etc/driver_classes + MPERMDIR=${BASEDIR}/etc/minor_perm + while getopts i:c:m opt 2>/dev/null; do + case "$opt" in + i) ALIAS=`echo ${OPTARG} | /usr/bin/sed -e "s/'//g"` + ;; + c) CLASS=${OPTARG} + ;; + m) MPERM=${OPTARG} + ;; + esac + done + shift `/usr/bin/expr ${OPTIND} - 1` + DRIVER=$1 + + # Make sure add_drv has not been previously executed + # before attempting to add the driver + /usr/bin/egrep -s "^${DRIVER}[ ]" $BASEDIR/etc/name_to_major + + if [ $? -ne 0 ]; then + eval ${CMD} + if [ $? -ne 0 ]; then + echo "Failed add_drv ${DRIVER}!\n" >&2 + exit 1 + fi + else + # Add driver entry if necessary + if [ -n "${ALIAS}" ]; then + for i in ${ALIAS}; do + /usr/bin/egrep -s "^${DRIVER}[ ]+$i" ${ALIASDIR} + if [ $? -ne 0 ]; then + echo "${DRIVER} $i" >> ${ALIASDIR} + fi + done + fi + + if [ -n "${CLASS}" ]; then + /usr/bin/egrep -s "^${DRIVER}[ ]+${CLASS}" ${CLASSDIR} + if [ $? -ne 0 ]; then + echo "${DRIVER}\t${CLASS}" >> ${CLASSDIR} + fi + fi + + if [ -n "${MPERM}" ]; then + /usr/bin/egrep -s "^${DRIVER}:" ${MPERMDIR} + if [ $? -ne 0 ]; then + echo "${DRIVER}:${PERM}" >> ${MPERMDIR} + fi + fi + fi +} + +# Is the hardware there? +hw_exists=0 +CLEANALIAS=`echo ${DRVALIAS} | /usr/bin/sed -e 's/\"//g'` +for i in ${CLEANALIAS} +do + prtconf -v | /usr/bin/egrep -s $i + if [ $? -eq 0 ] + then + hw_exists=1 + fi +done + +# Only attempt to attach the driver on a running +# system with the hardware present +if [ "$BASEDIR" = "/" ] +then + case ${hw_exists} in + # On a running system with no hardware + # modify the system files only + 0) ADD_DRV="add_drv -n" + ;; + # On a running system with hardware + # modify the system files and attach the driver + 1) ADD_DRV="add_drv" + ;; + esac +else + # On a client + # modify the sytem files and touch /reconfigure + # for reconfigure reboot + ADD_DRV="add_drv -b ${BASEDIR}" +fi + +ARCH=`uname -p` +if [ ${ARCH} = "i386" ]; then + check_add_drv ${ADD_DRV} -i "'${DRVALIAS}'" ${DRV} +fi
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/pkgdefs/SUNWatheros/postremove Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,52 @@ +#! /usr/bin/sh +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License, Version 1.0 only +# (the "License"). You may not use this file except in compliance +# with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# ident "%Z%%M% %I% %E% SMI" +# + +DRV=ath +BASEDIR=${BASEDIR:-/} + +# Select the correct rem_drv options to execute. +# Only attempt to unload the driver on a running system +if [ "$BASEDIR" = "/" ]; then + REM_DRV="rem_drv" +else + REM_DRV="rem_drv -b ${BASEDIR}" +fi + +# Make sure rem_drv has not been previously executed +# before attempting to remove the driver +/usr/bin/egrep -s "^${DRV}[ ]" $BASEDIR/etc/name_to_major +if [ $? -eq 0 ]; then + ${REM_DRV} ${DRV} + if [ $? -ne 0 ]; then + echo "Failed rem_drv ${DRV}!\n" >&2 + exit 1 + fi +fi + +exit 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/pkgdefs/SUNWatheros/prototype_com Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,48 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License, Version 1.0 only +# (the "License"). You may not use this file except in compliance +# with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# ident "%Z%%M% %I% %E% SMI" +# + +# +# This required package information file contains a list of package contents. +# The 'pkgmk' command uses this file to identify the contents of a package +# and their location on the development machine when building the package. +# Can be created via a text editor or through use of the 'pkgproto' command. + +#!search <pathname pathname ...> # where to find pkg objects +#!include <filename> # include another 'prototype' file +#!default <mode> <owner> <group> # default used if not specified on entry +#!<param>=<value> # puts parameter in pkg environment + +# +# SUNWatheros +# + +i pkginfo +i copyright +i depend +i postinstall +i postremove
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/pkgdefs/SUNWatheros/prototype_i386 Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,53 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License, Version 1.0 only +# (the "License"). You may not use this file except in compliance +# with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +# ident "%Z%%M% %I% %E% SMI" +# + +# +# This required package information file contains a list of package contents. +# The 'pkgmk' command uses this file to identify the contents of a package +# and their location on the development machine when building the package. +# Can be created via a text editor or through use of the 'pkgproto' command. + +#!search <pathname pathname ...> # where to find pkg objects +#!include <filename> # include another 'prototype' file +#!default <mode> <owner> <group> # default used if not specified on entry +#!<param>=<value> # puts parameter in pkg environment + +# +# SUNWatheros +# + +# Include ISA independent files (prototype_com) +# +!include prototype_com + +# Atheros IEEE80211a/b/g NIC driver +d none kernel 0755 root sys +d none kernel/drv 0755 root sys +f none kernel/drv/ath 0755 root sys +d none kernel/drv/amd64 0755 root sys +f none kernel/drv/amd64/ath 0755 root sys
--- a/usr/src/uts/common/Makefile.files Sun Nov 27 18:29:20 2005 -0800 +++ b/usr/src/uts/common/Makefile.files Sun Nov 27 19:11:23 2005 -0800 @@ -1294,6 +1294,9 @@ e1000g_tx.o e1000g_rx.o e1000g_stat.o RGE_OBJS += rge_main.o rge_chip.o rge_ndd.o rge_kstats.o rge_log.o rge_rxtx.o +ATH_OBJS += ath_aux.o ath_ieee80211.o ath_main.o ath_osdep.o \ + ath_rate.o ath_wificonfig.o + # # Build up defines and paths. #
--- a/usr/src/uts/common/Makefile.rules Sun Nov 27 18:29:20 2005 -0800 +++ b/usr/src/uts/common/Makefile.rules Sun Nov 27 19:11:23 2005 -0800 @@ -412,6 +412,10 @@ $(COMPILE.c) -o $@ $< $(CTFCONVERT_O) +$(OBJS_DIR)/%.o: $(UTSBASE)/common/io/ath/%.c + $(COMPILE.c) -o $@ $< + $(CTFCONVERT_O) + $(OBJS_DIR)/%.o: $(UTSBASE)/common/io/audio/legacy/diaudio/%.c $(COMPILE.c) -o $@ $< $(CTFCONVERT_O) @@ -1188,6 +1192,9 @@ $(LINTS_DIR)/%.ln: $(UTSBASE)/common/io/sbp2/%.c @($(LHEAD) $(LINT.c) $< $(LTAIL)) +$(LINTS_DIR)/%.ln: $(UTSBASE)/common/io/ath/%.c + @($(LHEAD) $(LINT.c) $< $(LTAIL)) + $(LINTS_DIR)/%.ln: $(UTSBASE)/common/io/audio/legacy/diaudio/%.c @($(LHEAD) $(LINT.c) $< $(LTAIL))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/LICENSE Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,74 @@ +# ident "%Z%%M% %I% %E% SMI" + +SOLARIS WIRELESS DRIVER FOR THE ATHEROS 52XX CHIPSET (ATH) + +LICENSE AGREEMENT + +Copyright 2005 Sun Microsystems, Inc. All rights reserved. +Use is subject to license terms. +Copyright (c) 2002-2004 Sam Leffler, Errno Consulting +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, without modification. +2. Redistributions in binary form must reproduce at minimum a disclaimer + similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and + any redistribution must be conditioned upon including a substantially + similar Disclaimer requirement for further binary redistribution. +3. Neither the names of the above-listed copyright holders nor the names + of any contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +NO WARRANTY + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS +BE LIABLE FOR 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 DAMAGES. + +------------------------------------------------------------------------------- + +License for the HAL (Hardware Abstraction Layer) component: + +Copyright (c) 2002-2005 Sam Leffler, Errno Consulting, Atheros Communications, +Inc. All rights reserved. + +Use is subject to license terms. + +Redistribution and use in source and binary forms are permitted provided that +the following conditions are met: + +1. The materials contained herein are unmodified and are used unmodified. +2. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following NO ''WARRANTY'' disclaimer below + (''Disclaimer''), without modification. +3. Redistributions in binary form must reproduce at minimum a disclaimer + similar to the Disclaimer below and any redistribution must be conditioned + upon including a substantially similar Disclaimer requirement for further + binary redistribution. +4. Neither the names of the above-listed copyright holders nor the names of + any contributors may be used to endorse or promote product derived from + this software without specific prior written permission. + +NO WARRANTY + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR +CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/ath_aux.c Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,601 @@ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* + * Copyright (c) 2002-2004 Sam Leffler, Errno Consulting + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +#include <sys/param.h> +#include <sys/types.h> +#include <sys/signal.h> +#include <sys/stream.h> +#include <sys/termio.h> +#include <sys/errno.h> +#include <sys/file.h> +#include <sys/cmn_err.h> +#include <sys/stropts.h> +#include <sys/strsubr.h> +#include <sys/strtty.h> +#include <sys/kbio.h> +#include <sys/cred.h> +#include <sys/stat.h> +#include <sys/consdev.h> +#include <sys/kmem.h> +#include <sys/modctl.h> +#include <sys/ddi.h> +#include <sys/sunddi.h> +#include <sys/pci.h> +#include <sys/errno.h> +#include <sys/gld.h> +#include <sys/dlpi.h> +#include <sys/ethernet.h> +#include <sys/list.h> +#include <sys/byteorder.h> +#include <sys/strsun.h> +#include <inet/common.h> +#include <inet/nd.h> +#include <inet/mi.h> +#include <inet/wifi_ioctl.h> +#include "ath_hal.h" +#include "ath_impl.h" +#include "ath_ieee80211.h" + +static const char *acnames[] = { + "WME_AC_BE", + "WME_AC_BK", + "WME_AC_VI", + "WME_AC_VO", + "WME_UPSD" +}; + +extern void ath_setup_desc(ath_t *asc, struct ath_buf *bf); + +uint32_t +ath_calcrxfilter(ath_t *asc) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ath_hal *ah = asc->asc_ah; + uint32_t rfilt; + + rfilt = (ATH_HAL_GETRXFILTER(ah) & HAL_RX_FILTER_PHYERR) + | HAL_RX_FILTER_UCAST | HAL_RX_FILTER_BCAST | HAL_RX_FILTER_MCAST; + if (isc->isc_opmode != IEEE80211_M_STA) + rfilt |= HAL_RX_FILTER_PROBEREQ; + if (isc->isc_opmode != IEEE80211_M_HOSTAP && + (asc->asc_promisc & GLD_MAC_PROMISC_PHYS)) /* promiscuous */ + rfilt |= HAL_RX_FILTER_PROM; + if (isc->isc_opmode == IEEE80211_M_STA || + isc->isc_opmode == IEEE80211_M_IBSS || + isc->isc_state == IEEE80211_S_SCAN) + rfilt |= HAL_RX_FILTER_BEACON; + return (rfilt); +} + +static int +ath_set_data_queue(ath_t *asc, int ac, int haltype) +{ + HAL_TXQ_INFO qi; + int qnum; + struct ath_hal *ah = asc->asc_ah; + struct ath_txq *txq; + + if (ac >= ATH_N(asc->asc_ac2q)) { + ATH_DEBUG((ATH_DBG_AUX, "ath: ath_set_data_queue(): " + "ac %u out of range, max %u!\n", + ac, ATH_N(asc->asc_ac2q))); + return (1); + } + (void) memset(&qi, 0, sizeof (qi)); + qi.tqi_subtype = haltype; + /* + * Enable interrupts only for EOL and DESC conditions. + * We mark tx descriptors to receive a DESC interrupt + * when a tx queue gets deep; otherwise waiting for the + * EOL to reap descriptors. Note that this is done to + * reduce interrupt load and this only defers reaping + * descriptors, never transmitting frames. Aside from + * reducing interrupts this also permits more concurrency. + * The only potential downside is if the tx queue backs + * up in which case the top half of the kernel may backup + * due to a lack of tx descriptors. + */ + qi.tqi_qflags = TXQ_FLAG_TXEOLINT_ENABLE | TXQ_FLAG_TXDESCINT_ENABLE; + qnum = ATH_HAL_SETUPTXQUEUE(ah, HAL_TX_QUEUE_DATA, &qi); + if (qnum == -1) { + ATH_DEBUG((ATH_DBG_AUX, "ath: ath_set_data_queue(): " + "Unable to setup hardware queue for %s traffic!\n", + acnames[ac])); + return (1); + } + if (qnum >= ATH_N(asc->asc_txq)) { + ATH_DEBUG((ATH_DBG_AUX, "ath: ath_set_data_queue(): " + "hal qnum %u out of range, max %u!\n", + qnum, ATH_N(asc->asc_txq))); + return (1); + } + if (!ATH_TXQ_SETUP(asc, qnum)) { + txq = &asc->asc_txq[qnum]; + txq->axq_qnum = qnum; + txq->axq_depth = 0; + txq->axq_intrcnt = 0; + txq->axq_link = NULL; + list_create(&txq->axq_list, sizeof (struct ath_buf), + offsetof(struct ath_buf, bf_node)); + mutex_init(&txq->axq_lock, NULL, MUTEX_DRIVER, NULL); + asc->asc_txqsetup |= 1<<qnum; + } + asc->asc_ac2q[ac] = &asc->asc_txq[qnum]; + return (0); +} + +int +ath_txq_setup(ath_t *asc) +{ + if (ath_set_data_queue(asc, WME_AC_BE, HAL_WME_AC_BK) || + ath_set_data_queue(asc, WME_AC_BK, HAL_WME_AC_BE) || + ath_set_data_queue(asc, WME_AC_VI, HAL_WME_AC_VI) || + ath_set_data_queue(asc, WME_AC_VO, HAL_WME_AC_VO)) { + return (1); + } + + return (0); +} + +void +ath_setcurmode(ath_t *asc, enum ieee80211_phymode mode) +{ + const HAL_RATE_TABLE *rt; + int i; + + for (i = 0; i < sizeof (asc->asc_rixmap); i++) + asc->asc_rixmap[i] = 0xff; + + rt = asc->asc_rates[mode]; + ASSERT(rt != NULL); + + for (i = 0; i < rt->rateCount; i++) + asc->asc_rixmap[rt->info[i].dot11Rate & IEEE80211_RATE_VAL] = i; + + asc->asc_currates = rt; + asc->asc_curmode = mode; +} + +/* Set correct parameters for a certain mode */ +void +ath_mode_init(ath_t *asc) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ath_hal *ah = asc->asc_ah; + uint32_t rfilt; + + /* configure rx filter */ + rfilt = ath_calcrxfilter(asc); + ATH_HAL_SETRXFILTER(ah, rfilt); + ATH_HAL_SETOPMODE(ah); + ATH_HAL_SETMCASTFILTER(ah, asc->asc_mfilt[0], asc->asc_mfilt[1]); + ATH_DEBUG((ATH_DBG_AUX, "ath: ath_mode_init(): " + "mode =%d RX filter 0x%x, MC filter %08x:%08x\n", + isc->isc_opmode, rfilt, + asc->asc_mfilt[0], asc->asc_mfilt[1])); +} + + +/* + * Disable the receive h/w in preparation for a reset. + */ +void +ath_stoprecv(ath_t *asc) +{ + ATH_HAL_STOPPCURECV(asc->asc_ah); /* disable PCU */ + ATH_HAL_SETRXFILTER(asc->asc_ah, 0); /* clear recv filter */ + ATH_HAL_STOPDMARECV(asc->asc_ah); /* disable DMA engine */ + drv_usecwait(3000); + + ATH_DEBUG((ATH_DBG_AUX, "ath: ath_stoprecv(): rx queue %p, link %p\n", + ATH_HAL_GETRXBUF(asc->asc_ah), asc->asc_rxlink)); + asc->asc_rxlink = NULL; +} + +uint32_t +ath_chan2flags(ieee80211com_t *isc, struct ieee80211channel *chan) +{ + static const uint32_t modeflags[] = { + 0, /* IEEE80211_MODE_AUTO */ + CHANNEL_A, /* IEEE80211_MODE_11A */ + CHANNEL_B, /* IEEE80211_MODE_11B */ + CHANNEL_PUREG, /* IEEE80211_MODE_11G */ + CHANNEL_T /* IEEE80211_MODE_TURBO */ + }; + return (modeflags[ieee80211_chan2mode(isc, chan)]); +} + + +int +ath_getchannels(ath_t *asc, uint32_t cc, HAL_BOOL outdoor, HAL_BOOL xchanmode) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ath_hal *ah = asc->asc_ah; + HAL_CHANNEL *chans; + int i, ix; + uint32_t nchan; + + chans = (HAL_CHANNEL *) + kmem_zalloc(IEEE80211_CHAN_MAX * sizeof (HAL_CHANNEL), KM_SLEEP); + + if (!ath_hal_init_channels(ah, chans, IEEE80211_CHAN_MAX, &nchan, + cc, HAL_MODE_ALL, outdoor, xchanmode)) { + ATH_DEBUG((ATH_DBG_AUX, "ath: ath_getchannels(): " + "unable to get channel list\n"); + kmem_free(chans, IEEE80211_CHAN_MAX * sizeof (HAL_CHANNEL))); + return (EINVAL); + } + + /* + * Convert HAL channels to ieee80211 ones and insert + * them in the table according to their channel number. + */ + for (i = 0; i < nchan; i++) { + HAL_CHANNEL *c = &chans[i]; + ix = ath_hal_mhz2ieee(c->channel, c->channelFlags); + if (ix > IEEE80211_CHAN_MAX) { + ATH_DEBUG((ATH_DBG_AUX, "ath: ath_getchannels(): " + "bad hal channel %u (%u/%x) ignored\n", + ix, c->channel, c->channelFlags)); + continue; + } + /* NB: flags are known to be compatible */ + if (isc->isc_channels[ix].ich_freq == 0) { + isc->isc_channels[ix].ich_freq = c->channel; + isc->isc_channels[ix].ich_flags = c->channelFlags; + } else { + /* channels overlap; e.g. 11g and 11b */ + isc->isc_channels[ix].ich_flags |= c->channelFlags; + } + if ((c->channelFlags & CHANNEL_G) == CHANNEL_G) + asc->asc_have11g = 1; + } + kmem_free(chans, IEEE80211_CHAN_MAX * sizeof (HAL_CHANNEL)); + return (0); +} + +static void +ath_drainq(ath_t *asc, struct ath_txq *txq) +{ + struct ath_buf *bf; + + /* + * This assumes output has been stopped. + */ + for (;;) { + mutex_enter(&txq->axq_lock); + bf = list_head(&txq->axq_list); + if (bf == NULL) { + txq->axq_link = NULL; + mutex_exit(&txq->axq_lock); + break; + } + list_remove(&txq->axq_list, bf); + mutex_exit(&txq->axq_lock); + bf->bf_in = NULL; + mutex_enter(&asc->asc_txbuflock); + list_insert_tail(&asc->asc_txbuf_list, bf); + mutex_exit(&asc->asc_txbuflock); + } +} + + +/* + * Drain the transmit queues and reclaim resources. + */ +void +ath_draintxq(ath_t *asc) +{ + struct ath_hal *ah = asc->asc_ah; + struct ath_txq *txq; + int i; + + if (!asc->asc_invalid) { + for (i = 0; i < HAL_NUM_TX_QUEUES; i++) { + if (ATH_TXQ_SETUP(asc, i)) { + txq = &asc->asc_txq[i]; + (void) ATH_HAL_STOPTXDMA(ah, txq->axq_qnum); + } + } + } + for (i = 0; i < HAL_NUM_TX_QUEUES; i++) { + if (ATH_TXQ_SETUP(asc, i)) { + ath_drainq(asc, &asc->asc_txq[i]); + } + } +} + + +/* Enable the receive h/w following a reset */ +int +ath_startrecv(ath_t *asc) +{ + struct ath_buf *bf; + + asc->asc_rxlink = NULL; + + bf = list_head(&asc->asc_rxbuf_list); + while (bf != NULL) { + ath_setup_desc(asc, bf); + bf = list_next(&asc->asc_rxbuf_list, bf); + } + + bf = list_head(&asc->asc_rxbuf_list); + ATH_HAL_PUTRXBUF(asc->asc_ah, bf->bf_daddr); + ATH_HAL_RXENA(asc->asc_ah); /* enable recv descriptors */ + ath_mode_init(asc); /* set filters, etc. */ + ATH_HAL_STARTPCURECV(asc->asc_ah); /* re-enable PCU/DMA engine */ + return (0); +} + +/* + * Set/change channels. If the channel is really being changed, + * it's done by resetting the chip. To accomplish this we must + * first cleanup any pending DMA. + */ +int +ath_chan_set(ath_t *asc, struct ieee80211channel *chan) +{ + struct ath_hal *ah = asc->asc_ah; + ieee80211com_t *isc = &asc->asc_isc; + + if (chan != isc->isc_ibss_chan) { + HAL_STATUS status; + HAL_CHANNEL hchan; + enum ieee80211_phymode mode; + + /* + * To switch channels clear any pending DMA operations; + * wait long enough for the RX fifo to drain, reset the + * hardware at the new frequency, and then re-enable + * the relevant bits of the h/w. + */ + ATH_HAL_INTRSET(ah, 0); /* disable interrupts */ + ath_draintxq(asc); /* clear pending tx frames */ + ath_stoprecv(asc); /* turn off frame recv */ + /* + * Convert to a HAL channel description with + * the flags constrained to reflect the current + * operating mode. + */ + hchan.channel = chan->ich_freq; + hchan.channelFlags = ath_chan2flags(isc, chan); + if (!ATH_HAL_RESET(ah, (HAL_OPMODE)isc->isc_opmode, + &hchan, AH_TRUE, &status)) { + ATH_DEBUG((ATH_DBG_AUX, "ath: ath_chan_set():" + "unable to reset channel %u (%uMhz)\n", + ieee80211_chan2ieee(isc, chan), chan->ich_freq)); + return (EIO); + } + + /* + * Re-enable rx framework. + */ + if (ath_startrecv(asc) != 0) { + ath_problem("ath: ath_chan_set(): " + "restarting receiving logic failed\n"); + return (EIO); + } + + /* + * Change channels and update the h/w rate map + * if we're switching; e.g. 11a to 11b/g. + */ + isc->isc_ibss_chan = chan; + mode = ieee80211_chan2mode(isc, chan); + if (mode != asc->asc_curmode) + ath_setcurmode(asc, mode); + /* + * Re-enable interrupts. + */ + ATH_HAL_INTRSET(ah, asc->asc_imask); + } + return (0); +} + + +/* + * Configure the beacon and sleep timers. + * + * When operating as an AP this resets the TSF and sets + * up the hardware to notify us when we need to issue beacons. + * + * When operating in station mode this sets up the beacon + * timers according to the timestamp of the last received + * beacon and the current TSF, configures PCF and DTIM + * handling, programs the sleep registers so the hardware + * will wakeup in time to receive beacons, and configures + * the beacon miss handling so we'll receive a BMISS + * interrupt when we stop seeing beacons from the AP + * we've associated with. + */ +void +ath_beacon_config(ath_t *asc) +{ + struct ath_hal *ah = asc->asc_ah; + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ieee80211_node *in = isc->isc_bss; + uint32_t nexttbtt; + + nexttbtt = (ATH_LE_READ_4(in->in_tstamp + 4) << 22) | + (ATH_LE_READ_4(in->in_tstamp) >> 10); + nexttbtt += in->in_intval; + if (isc->isc_opmode != IEEE80211_M_HOSTAP) { + HAL_BEACON_STATE bs; + uint32_t bmisstime; + + /* NB: no PCF support right now */ + bzero(&bs, sizeof (bs)); + bs.bs_intval = in->in_intval; + bs.bs_nexttbtt = nexttbtt; + bs.bs_dtimperiod = bs.bs_intval; + bs.bs_nextdtim = nexttbtt; + + /* + * Calculate the number of consecutive beacons to miss + * before taking a BMISS interrupt. The configuration + * is specified in ms, so we need to convert that to + * TU's and then calculate based on the beacon interval. + * Note that we clamp the result to at most 10 beacons. + */ + bmisstime = (isc->isc_bmisstimeout * 1000) / 1024; + bs.bs_bmissthreshold = howmany(bmisstime, in->in_intval); + if (bs.bs_bmissthreshold > 10) + bs.bs_bmissthreshold = 10; + else if (bs.bs_bmissthreshold <= 0) + bs.bs_bmissthreshold = 1; + /* + * Calculate sleep duration. The configuration is + * given in ms. We insure a multiple of the beacon + * period is used. Also, if the sleep duration is + * greater than the DTIM period then it makes senses + * to make it a multiple of that. + */ + bs.bs_sleepduration = + roundup((100 * 1000) / 1024, bs.bs_intval); + if (bs.bs_sleepduration > bs.bs_dtimperiod) + bs.bs_sleepduration = + roundup(bs.bs_sleepduration, bs.bs_dtimperiod); + + + ATH_DEBUG((ATH_DBG_AUX, "ath: ath_beacon_config(): " + "intval %u nexttbtt %u dtim %u" + " nextdtim %u bmiss %u sleep %u\n", + bs.bs_intval, + bs.bs_nexttbtt, + bs.bs_dtimperiod, + bs.bs_nextdtim, + bs.bs_bmissthreshold, + bs.bs_sleepduration)); + ATH_HAL_INTRSET(ah, 0); + /* + * Reset our tsf so the hardware will update the + * tsf register to reflect timestamps found in + * received beacons. + */ + ATH_HAL_RESETTSF(ah); + ATH_HAL_BEACONTIMERS(ah, &bs); + asc->asc_imask |= HAL_INT_BMISS; + ATH_HAL_INTRSET(ah, asc->asc_imask); + } else { + ATH_HAL_INTRSET(ah, 0); + ATH_HAL_BEACONINIT(ah, nexttbtt, in->in_intval); + asc->asc_imask |= HAL_INT_SWBA; /* beacon prepare */ + ATH_HAL_INTRSET(ah, asc->asc_imask); + } +} + + + +/* + * Fill the hardware key cache with key entries. + */ +void +ath_initkeytable(ath_t *asc) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ath_hal *ah = asc->asc_ah; + int32_t i; + + for (i = 0; i < IEEE80211_WEP_NKID; i++) { + struct ieee80211_wepkey *k = &isc->isc_nw_keys[i]; + if (k->iwk_len == 0) + ATH_HAL_KEYRESET(ah, i); + else { + HAL_KEYVAL hk; + +#ifdef DEBUG + char tmp[200], stmp[10]; + int j; + bzero(tmp, 200); + bzero(stmp, 10); + for (j = 0; j < k->iwk_len; j++) { + (void) sprintf(stmp, "0x%02x ", k->iwk_key[j]); + (void) strcat(tmp, stmp); + } + ATH_DEBUG((ATH_DBG_AUX, "ath: ath_initkeytable(): " + "key%d val=%s\n", i, tmp)); +#endif /* DEBUG */ + bzero(&hk, sizeof (hk)); + hk.kv_type = HAL_CIPHER_WEP; + hk.kv_len = k->iwk_len; + bcopy(k->iwk_key, hk.kv_val, k->iwk_len); + ATH_HAL_KEYSET(ah, i, &hk); + } + } +} + +void +ath_reset(ath_t *asc) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ath_hal *ah = asc->asc_ah; + struct ieee80211channel *ch; + HAL_STATUS status; + HAL_CHANNEL hchan; + + /* + * Convert to a HAL channel description with the flags + * constrained to reflect the current operating mode. + */ + ch = isc->isc_ibss_chan; + hchan.channel = ch->ich_freq; + hchan.channelFlags = ath_chan2flags(isc, ch); + + ATH_HAL_INTRSET(ah, 0); /* disable interrupts */ + ath_draintxq(asc); /* stop xmit side */ + if (asc->asc_invalid == 0) + ath_stoprecv(asc); /* stop recv side */ + /* indicate channel change so we do a full reset */ + if (!ATH_HAL_RESET(ah, (HAL_OPMODE)isc->isc_opmode, &hchan, + AH_TRUE, &status)) { + ath_problem("ath: ath_reset(): " + "reseting hardware failed, HAL status %u\n", status); + } + if (asc->asc_invalid == 0) { + ath_initkeytable(asc); + if (ath_startrecv(asc) != 0) /* restart recv */ + ath_problem("ath: ath_reset(): " + "starting receiving logic failed\n"); + if (isc->isc_state == IEEE80211_S_RUN) { + ath_beacon_config(asc); /* restart beacons */ + } + ATH_HAL_INTRSET(ah, asc->asc_imask); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/ath_aux.h Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,72 @@ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* + * Copyright (c) 2002-2004 Sam Leffler, Errno Consulting + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + */ + +#ifndef _ATH_AUX_H +#define _ATH_AUX_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ath_hal.h" +#include "ath_ieee80211.h" +#include "ath_impl.h" + +uint32_t ath_calcrxfilter(ath_t *asc); +void ath_beacon_config(ath_t *asc); +void ath_reset(ath_t *asc); +int32_t ath_startrecv(ath_t *asc); +void ath_stoprecv(ath_t *asc); +uint32_t ath_chan2flags(ieee80211com_t *isc, + struct ieee80211channel *chan); +int32_t ath_getchannels(ath_t *asc, uint32_t cc, + HAL_BOOL outdoor, HAL_BOOL xchanmode); +int32_t ath_chan_set(ath_t *asc, struct ieee80211channel *chan); +int ath_txq_setup(ath_t *asc); +void ath_rate_setup(ath_t *asc, uint32_t mode); +void ath_setcurmode(ath_t *asc, enum ieee80211_phymode mode); +void ath_mode_init(ath_t *asc); +void ath_draintxq(ath_t *asc); +void ath_initkeytable(ath_t *asc); + +#ifdef __cplusplus +} +#endif + +#endif /* _ATH_AUX_H */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/ath_hal.h Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,973 @@ +/* + * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting, Atheros + * Communications, Inc. All rights reserved. + * + * Use is subject to license terms. + * + * Redistribution and use in source and binary forms are permitted + * provided that the following conditions are met: + * 1. The materials contained herein are unmodified and are used + * unmodified. + * 2. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following NO + * ''WARRANTY'' disclaimer below (''Disclaimer''), without + * modification. + * 3. Redistributions in binary form must reproduce at minimum a + * disclaimer similar to the Disclaimer below and any redistribution + * must be conditioned upon including a substantially similar + * Disclaimer requirement for further binary redistribution. + * 4. Neither the names of the above-listed copyright holders nor the + * names of any contributors may be used to endorse or promote + * product derived from this software without specific prior written + * permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE + * FOR 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 DAMAGES. + * + */ + +#ifndef _ATH_HAL_H +#define _ATH_HAL_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +/* + * ath_hal.h is released by Atheros and used to describe the Atheros + * Hardware Access Layer(HAL) interface. All kinds of data structures, + * constant definition, APIs declaration are defined here.Clients of + * the HAL call ath_hal_attach() to obtain a reference to an ath_hal + * structure for use with the device. Hardware-related operations that + * follow must call back into the HAL through interface, supplying the + * reference as the first parameter. + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* HAL version of this release */ +#define HAL_ABI_VERSION 0x04112900 /* YYMMDDnn */ + +/* HAL data type definition */ +typedef void * HAL_SOFTC; +typedef int HAL_BUS_TAG; +typedef void * HAL_BUS_HANDLE; +typedef uint32_t HAL_BUS_ADDR; +typedef uint16_t HAL_CTRY_CODE; /* country code */ +typedef uint16_t HAL_REG_DOMAIN; /* regulatory domain code */ + +#define HAL_NUM_TX_QUEUES 10 /* max number of tx queues */ + +#define HAL_BEACON_PERIOD 0x0000ffff /* beacon interval period */ +#define HAL_BEACON_ENA 0x00800000 /* beacon xmit enable */ +#define HAL_BEACON_RESET_TSF 0x01000000 /* clear TSF */ + +#define CHANNEL_RAD_INT 0x0001 /* Radar interference detected on channel */ +#define CHANNEL_CW_INT 0x0002 /* CW interference detected on channel */ +#define CHANNEL_BUSY 0x0004 /* Busy, occupied or overlap with adjoin chan */ +#define CHANNEL_TURBO 0x0010 /* Turbo Channel */ +#define CHANNEL_CCK 0x0020 /* CCK channel */ +#define CHANNEL_OFDM 0x0040 /* OFDM channel */ +#define CHANNEL_2GHZ 0x0080 /* 2 GHz spectrum channel. */ +#define CHANNEL_5GHZ 0x0100 /* 5 GHz spectrum channel */ +#define CHANNEL_PASSIVE 0x0200 /* Only passive scan allowed in the channel */ +#define CHANNEL_DYN 0x0400 /* dynamic CCK-OFDM channel */ +#define CHANNEL_XR 0x0800 /* XR channel */ +#define CHANNEL_AR 0x8000 /* Software use: radar detected */ + +#define CHANNEL_A (CHANNEL_5GHZ|CHANNEL_OFDM) +#define CHANNEL_B (CHANNEL_2GHZ|CHANNEL_CCK) +#define CHANNEL_PUREG (CHANNEL_2GHZ|CHANNEL_OFDM) +#define CHANNEL_G (CHANNEL_2GHZ|CHANNEL_OFDM) +#define CHANNEL_T (CHANNEL_5GHZ|CHANNEL_OFDM|CHANNEL_TURBO) +#define CHANNEL_108G (CHANNEL_2GHZ|CHANNEL_OFDM|CHANNEL_TURBO) +#define CHANNEL_X (CHANNEL_5GHZ|CHANNEL_OFDM|CHANNEL_XR) +#define CHANNEL_ALL \ + (CHANNEL_OFDM|CHANNEL_CCK|CHANNEL_5GHZ|CHANNEL_2GHZ|CHANNEL_TURBO) +#define CHANNEL_ALL_NOTURBO (CHANNEL_ALL &~ CHANNEL_TURBO) + +#define HAL_RSSI_EP_MULTIPLIER (1<<7) /* pow2 to optimize out * and / */ + +/* flags passed to tx descriptor setup methods */ +#define HAL_TXDESC_CLRDMASK 0x0001 /* clear destination filter mask */ +#define HAL_TXDESC_NOACK 0x0002 /* don't wait for ACK */ +#define HAL_TXDESC_RTSENA 0x0004 /* enable RTS */ +#define HAL_TXDESC_CTSENA 0x0008 /* enable CTS */ +#define HAL_TXDESC_INTREQ 0x0010 /* enable per-descriptor interrupt */ +#define HAL_TXDESC_VEOL 0x0020 /* mark virtual EOL */ + +/* flags passed to rx descriptor setup methods */ +#define HAL_RXDESC_INTREQ 0x0020 /* enable per-descriptor interrupt */ + +/* tx error flags */ +#define HAL_TXERR_XRETRY 0x01 /* excessive retries */ +#define HAL_TXERR_FILT 0x02 /* blocked by tx filtering */ +#define HAL_TXERR_FIFO 0x04 /* fifo underrun */ +#define HAL_TXSTAT_ALTRATE 0x80 /* alternate xmit rate used */ + +/* rx error flags */ +#define HAL_RXERR_CRC 0x01 /* CRC error on frame */ +#define HAL_RXERR_PHY 0x02 /* PHY error, rs_phyerr is valid */ +#define HAL_RXERR_FIFO 0x04 /* fifo overrun */ +#define HAL_RXERR_DECRYPT 0x08 /* non-Michael decrypt error */ +#define HAL_RXERR_MIC 0x10 /* Michael MIC decrypt error */ + +/* value found in rs_keyix to mark invalid entries */ +#define HAL_RXKEYIX_INVALID ((uint8_t)-1) + +/* value used to specify no encryption key for xmit */ +#define HAL_TXKEYIX_INVALID ((uint32_t)-1) + +/* + * Status codes that may be returned by the HAL. Note that + * interfaces that return a status code set it only when an + * error occurs--i.e. you cannot check it for success. + */ +typedef enum { + HAL_OK = 0, /* No error */ + HAL_ENXIO = 1, /* No hardware present */ + HAL_ENOMEM = 2, /* Memory allocation failed */ + HAL_EIO = 3, /* Hardware didn't respond as expected */ + HAL_EEMAGIC = 4, /* EEPROM magic number invalid */ + HAL_EEVERSION = 5, /* EEPROM version invalid */ + HAL_EELOCKED = 6, /* EEPROM unreadable */ + HAL_EEBADSUM = 7, /* EEPROM checksum invalid */ + HAL_EEREAD = 8, /* EEPROM read problem */ + HAL_EEBADMAC = 9, /* EEPROM mac address invalid */ + HAL_EESIZE = 10, /* EEPROM size not supported */ + HAL_EEWRITE = 11, /* Attempt to change write-locked EEPROM */ + HAL_EINVAL = 12, /* Invalid parameter to function */ + HAL_ENOTSUPP = 13, /* Hardware revision not supported */ + HAL_ESELFTEST = 14, /* Hardware self-test failed */ + HAL_EINPROGRESS = 15 /* Operation incomplete */ +} HAL_STATUS; + +typedef enum { + AH_FALSE = 0, /* NB: lots of code assumes false is zero */ + AH_TRUE = 1 +} HAL_BOOL; + +typedef enum { + HAL_CAP_REG_DMN = 0, /* current regulatory domain */ + HAL_CAP_CIPHER = 1, /* hardware supports cipher */ + HAL_CAP_TKIP_MIC = 2, /* handle TKIP MIC in hardware */ + HAL_CAP_TKIP_SPLIT = 3, /* hardware TKIP uses split keys */ + HAL_CAP_PHYCOUNTERS = 4, /* hardware PHY error counters */ + HAL_CAP_DIVERSITY = 5, /* hardware supports fast diversity */ + HAL_CAP_KEYCACHE_SIZE = 6, /* number of entries in key cache */ + HAL_CAP_NUM_TXQUEUES = 7, /* number of hardware xmit queues */ + HAL_CAP_VEOL = 9, /* hardware supports virtual EOL */ + HAL_CAP_PSPOLL = 10, /* hardware has working PS-Poll */ + /* support */ + HAL_CAP_DIAG = 11, /* hardware diagnostic support */ + HAL_CAP_COMPRESSION = 12, /* hardware supports compression */ + HAL_CAP_BURST = 13, /* hardware supports packet bursting */ + HAL_CAP_FASTFRAME = 14, /* hardware supoprts fast frames */ + HAL_CAP_TXPOW = 15, /* global tx power limit */ + HAL_CAP_TPC = 16 /* per-packet tx power control */ +} HAL_CAPABILITY_TYPE; + +/* + * "States" for setting the LED. These correspond to + * the possible 802.11 operational states and there may + * be a many-to-one mapping between these states and the + * actual hardware states for the LED's (i.e. the hardware + * may have fewer states). + */ +typedef enum { + HAL_LED_INIT = 0, + HAL_LED_SCAN = 1, + HAL_LED_AUTH = 2, + HAL_LED_ASSOC = 3, + HAL_LED_RUN = 4 +} HAL_LED_STATE; + +/* + * Transmit queue types/numbers. These are used to tag + * each transmit queue in the hardware and to identify a set + * of transmit queues for operations such as start/stop dma. + */ +typedef enum { + HAL_TX_QUEUE_INACTIVE = 0, /* queue is inactive/unused */ + HAL_TX_QUEUE_DATA = 1, /* data xmit q's */ + HAL_TX_QUEUE_BEACON = 2, /* beacon xmit q */ + HAL_TX_QUEUE_CAB = 3, /* "crap after beacon" xmit q */ + HAL_TX_QUEUE_PSPOLL = 4 /* power-save poll xmit q */ +} HAL_TX_QUEUE; + + +/* + * Transmit queue subtype. These map directly to + * WME Access Categories (except for UPSD). Refer + * to Table 5 of the WME spec. + */ +typedef enum { + HAL_WME_AC_BK = 0, /* background access category */ + HAL_WME_AC_BE = 1, /* best effort access category */ + HAL_WME_AC_VI = 2, /* video access category */ + HAL_WME_AC_VO = 3, /* voice access category */ + HAL_WME_UPSD = 4 /* uplink power save */ +} HAL_TX_QUEUE_SUBTYPE; + +/* + * Transmit queue flags that control various + * operational parameters. + */ +typedef enum { + TXQ_FLAG_TXOKINT_ENABLE = 0x0001, /* enable TXOK interrupt */ + TXQ_FLAG_TXERRINT_ENABLE = 0x0001, /* enable TXERR interrupt */ + TXQ_FLAG_TXDESCINT_ENABLE = 0x0002, /* enable TXDESC interrupt */ + TXQ_FLAG_TXEOLINT_ENABLE = 0x0004, /* enable TXEOL interrupt */ + TXQ_FLAG_TXURNINT_ENABLE = 0x0008, /* enable TXURN interrupt */ + TXQ_FLAG_BACKOFF_DISABLE = 0x0010, /* disable Post Backoff */ + TXQ_FLAG_COMPRESSION_ENABLE = 0x0020, /* compression enabled */ + /* enable ready time expiry policy */ + TXQ_FLAG_RDYTIME_EXP_POLICY_ENABLE = 0x0040, + /* enable backoff while sending fragment burst */ + TXQ_FLAG_FRAG_BURST_BACKOFF_ENABLE = 0x0080 +} HAL_TX_QUEUE_FLAGS; + +typedef struct { + uint32_t tqi_ver; /* hal TXQ version */ + HAL_TX_QUEUE_SUBTYPE tqi_subtype; /* subtype if applicable */ + HAL_TX_QUEUE_FLAGS tqi_qflags; /* flags (see above) */ + uint32_t tqi_priority; /* (not used) */ + uint32_t tqi_aifs; /* AIFS shift */ + int32_t tqi_cwmin; /* cwMin shift */ + int32_t tqi_cwmax; /* cwMax shift */ + uint16_t tqi_shretry; /* rts retry limit */ + uint16_t tqi_lgretry; /* long retry limit(not used) */ + uint32_t tqi_cbrPeriod; + uint32_t tqi_cbrOverflowLimit; + uint32_t tqi_burstTime; + uint32_t tqi_readyTime; +} HAL_TXQ_INFO; + +/* token to use for aifs, cwmin, cwmax */ +#define HAL_TXQ_USEDEFAULT ((uint32_t)-1) + +/* + * Transmit packet types. This belongs in ah_desc.h, but + * is here so we can give a proper type to various parameters + * (and not require everyone include the file). + * + * NB: These values are intentionally assigned for + * direct use when setting up h/w descriptors. + */ +typedef enum { + HAL_PKT_TYPE_NORMAL = 0, + HAL_PKT_TYPE_ATIM = 1, + HAL_PKT_TYPE_PSPOLL = 2, + HAL_PKT_TYPE_BEACON = 3, + HAL_PKT_TYPE_PROBE_RESP = 4 +} HAL_PKT_TYPE; + +/* Rx Filter Frame Types */ +typedef enum { + HAL_RX_FILTER_UCAST = 0x00000001, /* Allow unicast frames */ + HAL_RX_FILTER_MCAST = 0x00000002, /* Allow multicast frames */ + HAL_RX_FILTER_BCAST = 0x00000004, /* Allow broadcast frames */ + HAL_RX_FILTER_CONTROL = 0x00000008, /* Allow control frames */ + HAL_RX_FILTER_BEACON = 0x00000010, /* Allow beacon frames */ + HAL_RX_FILTER_PROM = 0x00000020, /* Promiscuous mode */ + HAL_RX_FILTER_PROBEREQ = 0x00000080, /* Allow probe request frames */ + HAL_RX_FILTER_PHYERR = 0x00000100, /* Allow phy errors */ + HAL_RX_FILTER_PHYRADAR = 0x00000200 /* Allow phy radar errors */ +} HAL_RX_FILTER; + +typedef enum { + HAL_PM_UNDEFINED = 0, + HAL_PM_AUTO = 1, + HAL_PM_AWAKE = 2, + HAL_PM_FULL_SLEEP = 3, + HAL_PM_NETWORK_SLEEP = 4 +} HAL_POWER_MODE; + +/* + * NOTE WELL: + * These are mapped to take advantage of the common locations for many of + * the bits on all of the currently supported MAC chips. This is to make + * the ISR as efficient as possible, while still abstracting HW differences. + * When new hardware breaks this commonality this enumerated type, as well + * as the HAL functions using it, must be modified. All values are directly + * mapped unless commented otherwise. + */ +typedef enum { + HAL_INT_RX = 0x00000001, /* Non-common mapping */ + HAL_INT_RXDESC = 0x00000002, + HAL_INT_RXNOFRM = 0x00000008, + HAL_INT_RXEOL = 0x00000010, + HAL_INT_RXORN = 0x00000020, + HAL_INT_TX = 0x00000040, /* Non-common mapping */ + HAL_INT_TXDESC = 0x00000080, + HAL_INT_TXURN = 0x00000800, + HAL_INT_MIB = 0x00001000, + HAL_INT_RXPHY = 0x00004000, + HAL_INT_RXKCM = 0x00008000, + HAL_INT_SWBA = 0x00010000, + HAL_INT_BMISS = 0x00040000, + HAL_INT_BNR = 0x00100000, /* Non-common mapping */ + HAL_INT_GPIO = 0x01000000, + HAL_INT_FATAL = 0x40000000, /* Non-common mapping */ + HAL_INT_GLOBAL = INT_MIN, /* Set/clear IER */ + + /* Interrupt bits that map directly to ISR/IMR bits */ + HAL_INT_COMMON = HAL_INT_RXNOFRM + | HAL_INT_RXDESC + | HAL_INT_RXEOL + | HAL_INT_RXORN + | HAL_INT_TXURN + | HAL_INT_TXDESC + | HAL_INT_MIB + | HAL_INT_RXPHY + | HAL_INT_RXKCM + | HAL_INT_SWBA + | HAL_INT_BMISS + | HAL_INT_GPIO, + HAL_INT_NOCARD = -1 /* To signal the card was removed */ +} HAL_INT; + +typedef enum { + HAL_RFGAIN_INACTIVE = 0, + HAL_RFGAIN_READ_REQUESTED = 1, + HAL_RFGAIN_NEED_CHANGE = 2 +} HAL_RFGAIN; + +typedef enum { + HAL_PHYERR_UNDERRUN = 0, /* Transmit underrun */ + HAL_PHYERR_TIMING = 1, /* Timing error */ + HAL_PHYERR_PARITY = 2, /* Illegal parity */ + HAL_PHYERR_RATE = 3, /* Illegal rate */ + HAL_PHYERR_LENGTH = 4, /* Illegal length */ + HAL_PHYERR_RADAR = 5, /* Radar detect */ + HAL_PHYERR_SERVICE = 6, /* Illegal service */ + HAL_PHYERR_TOR = 7, /* Transmit override receive */ + /* NB: these are specific to the 5212 */ + HAL_PHYERR_OFDM_TIMING = 17, /* */ + HAL_PHYERR_OFDM_SIGNAL_PARITY = 18, /* */ + HAL_PHYERR_OFDM_RATE_ILLEGAL = 19, /* */ + HAL_PHYERR_OFDM_LENGTH_ILLEGAL = 20, /* */ + HAL_PHYERR_OFDM_POWER_DROP = 21, /* */ + HAL_PHYERR_OFDM_SERVICE = 22, /* */ + HAL_PHYERR_OFDM_RESTART = 23, /* */ + HAL_PHYERR_CCK_TIMING = 25, /* */ + HAL_PHYERR_CCK_HEADER_CRC = 26, /* */ + HAL_PHYERR_CCK_RATE_ILLEGAL = 27, /* */ + HAL_PHYERR_CCK_SERVICE = 30, /* */ + HAL_PHYERR_CCK_RESTART = 31 /* */ +}HAL_PHYERR; + +/* + * Channels are specified by frequency. + */ +typedef struct { + uint16_t channel; /* setting in Mhz */ + uint16_t channelFlags; /* see below */ +} HAL_CHANNEL; + + +typedef struct { + uint32_t ackrcv_bad; + uint32_t rts_bad; + uint32_t rts_good; + uint32_t fcs_bad; + uint32_t beacons; +} HAL_MIB_STATS; + + +enum { + CTRY_DEBUG = 0x1ff, /* debug country code */ + CTRY_DEFAULT = 0 /* default country code */ +}; + +enum { + HAL_MODE_11A = 0x001, + HAL_MODE_TURBO = 0x002, + HAL_MODE_11B = 0x004, + HAL_MODE_PUREG = 0x008, + HAL_MODE_11G = 0x008, + HAL_MODE_108G = 0x020, + HAL_MODE_ALL = 0xfff +}; + +typedef struct { + int rateCount; /* NB: for proper padding */ + uint8_t rateCodeToIndex[32]; /* back mapping */ + struct { + uint8_t valid; /* valid for rate control use */ + uint8_t phy; /* CCK/OFDM/XR */ + uint16_t rateKbps; /* transfer rate in kbs */ + uint8_t rateCode; /* rate for h/w descriptors */ + /* mask for enabling short preamble in CCK rate code */ + uint8_t shortPreamble; + /* value for supported rates info element of MLME */ + uint8_t dot11Rate; + /* index of next lower basic rate; used for dur. calcs */ + uint8_t controlRate; + uint16_t lpAckDuration; /* long preamble ACK duration */ + uint16_t spAckDuration; /* short preamble ACK duration */ + } info[32]; +} HAL_RATE_TABLE; + +typedef struct { + uint32_t rs_count; /* number of valid entries */ + uint8_t rs_rates[32]; /* rates */ +} HAL_RATE_SET; + +typedef enum { + HAL_ANT_VARIABLE = 0, /* variable by programming */ + HAL_ANT_FIXED_A = 1, /* fixed to 11a frequencies */ + HAL_ANT_FIXED_B = 2 /* fixed to 11b frequencies */ +} HAL_ANT_SETTING; + +typedef enum { + HAL_M_STA = 1, /* infrastructure station */ + HAL_M_IBSS = 0, /* IBSS (adhoc) station */ + HAL_M_HOSTAP = 6, /* Software Access Point */ + HAL_M_MONITOR = 8 /* Monitor mode */ +} HAL_OPMODE; + +typedef struct { + uint8_t kv_type; /* one of HAL_CIPHER */ + uint8_t kv_pad; + uint16_t kv_len; /* length in bits */ + uint8_t kv_val[16]; /* enough for 128-bit keys */ + uint8_t kv_mic[8]; /* TKIP MIC key */ +} HAL_KEYVAL; + +typedef enum { + HAL_CIPHER_WEP = 0, + HAL_CIPHER_AES_OCB = 1, + HAL_CIPHER_AES_CCM = 2, + HAL_CIPHER_CKIP = 3, + HAL_CIPHER_TKIP = 4, + HAL_CIPHER_CLR = 5, /* no encryption */ + + HAL_CIPHER_MIC = 127 /* TKIP-MIC, not a cipher */ +} HAL_CIPHER; + +enum { + HAL_SLOT_TIME_9 = 9, + HAL_SLOT_TIME_20 = 20 +}; + +/* + * Per-station beacon timer state. Note that the specified + * beacon interval (given in TU's) can also include flags + * to force a TSF reset and to enable the beacon xmit logic. + * If bs_cfpmaxduration is non-zero the hardware is setup to + * coexist with a PCF-capable AP. + */ +typedef struct { + uint32_t bs_nexttbtt; /* next beacon in TU */ + uint32_t bs_nextdtim; /* next DTIM in TU */ + uint32_t bs_intval; /* beacon interval+flags */ + uint32_t bs_dtimperiod; + uint16_t bs_cfpperiod; /* CFP period in TU */ + uint16_t bs_cfpmaxduration; /* max CFP duration in TU */ + uint32_t bs_cfpnext; /* next CFP in TU */ + uint16_t bs_timoffset; /* byte offset to TIM bitmap */ + uint16_t bs_bmissthreshold; /* beacon miss threshold */ + uint32_t bs_sleepduration; /* max sleep duration */ +} HAL_BEACON_STATE; + +/* + * Per-node statistics maintained by the driver for use in + * optimizing signal quality and other operational aspects. + */ +typedef struct { + uint32_t ns_avgbrssi; /* average beacon rssi */ + uint32_t ns_avgrssi; /* average data rssi */ + uint32_t ns_avgtxrssi; /* average tx rssi */ +} HAL_NODE_STATS; + +/* + * Transmit descriptor status. This structure is filled + * in only after the tx descriptor process method finds a + * ``done'' descriptor; at which point it returns something + * other than HAL_EINPROGRESS. + * + * Note that ts_antenna may not be valid for all h/w. It + * should be used only if non-zero. + */ +struct ath_tx_status { + uint16_t ts_seqnum; /* h/w assigned sequence number */ + uint16_t ts_tstamp; /* h/w assigned timestamp */ + uint8_t ts_status; /* frame status, 0 => xmit ok */ + uint8_t ts_rate; /* h/w transmit rate index */ + int8_t ts_rssi; /* tx ack RSSI */ + uint8_t ts_shortretry; /* # short retries */ + uint8_t ts_longretry; /* # long retries */ + uint8_t ts_virtcol; /* virtual collision count */ + uint8_t ts_antenna; /* antenna information */ +}; + + +/* + * Receive descriptor status. This structure is filled + * in only after the rx descriptor process method finds a + * ``done'' descriptor; at which point it returns something + * other than HAL_EINPROGRESS. + * + * If rx_status is zero, then the frame was received ok; + * otherwise the error information is indicated and rs_phyerr + * contains a phy error code if HAL_RXERR_PHY is set. In general + * the frame contents is undefined when an error occurred thought + * for some errors (e.g. a decryption error), it may be meaningful. + * + * Note that the receive timestamp is expanded using the TSF to + * a full 16 bits (regardless of what the h/w provides directly). + * + * rx_rssi is in units of dbm above the noise floor. This value + * is measured during the preamble and PLCP; i.e. with the initial + * 4us of detection. The noise floor is typically a consistent + * -96dBm absolute power in a 20MHz channel. + */ +struct ath_rx_status { + uint16_t rs_datalen; /* rx frame length */ + uint16_t rs_tstamp; /* h/w assigned timestamp */ + uint8_t rs_status; /* rx status, 0 => recv ok */ + uint8_t rs_phyerr; /* phy error code */ + int8_t rs_rssi; /* rx frame RSSI */ + uint8_t rs_keyix; /* key cache index */ + uint8_t rs_rate; /* h/w receive rate index */ + uint8_t rs_antenna; /* antenna information */ + uint8_t rs_more; /* see HAL_RXERR_XXX definition */ +}; + +/* + * Definitions for the software frame/packet descriptors used by + * the Atheros HAL. This definition obscures hardware-specific + * details from the driver. Drivers are expected to fillin the + * portions of a descriptor that are not opaque then use HAL calls + * to complete the work. Status for completed frames is returned + * in a device-independent format. + */ +#pragma pack(1) +struct ath_desc { + /* + * The following definitions are passed directly + * the hardware and managed by the HAL. Drivers + * should not touch those elements marked opaque. + */ + uint32_t ds_link; /* phys address of next descriptor */ + uint32_t ds_data; /* phys address of data buffer */ + uint32_t ds_ctl0; /* opaque DMA control 0 */ + uint32_t ds_ctl1; /* opaque DMA control 1 */ + uint32_t ds_hw[4]; /* opaque h/w region */ + /* + * The remaining definitions are managed by software; + * these are valid only after the rx/tx process descriptor + * methods return a non-EINPROGRESS code. + */ + union { + struct ath_tx_status tx; /* xmit status */ + struct ath_rx_status rx; /* recv status */ + } ds_us; +}; +#pragma pack() + +#define ds_txstat ds_us.tx +#define ds_rxstat ds_us.rx + +/* + * Hardware Access Layer (HAL) API. + * + * Clients of the HAL call ath_hal_attach to obtain a reference to an + * ath_hal structure for use with the device. Hardware-related operations + * that follow must call back into the HAL through interface, supplying + * the reference as the first parameter. Note that before using the + * reference returned by ath_hal_attach the caller should verify the + * ABI version number. + */ +struct ath_hal { + uint32_t ah_magic; /* consistency check magic number */ + uint32_t ah_abi; /* HAL ABI version */ + uint16_t ah_devid; /* PCI device ID */ + uint16_t ah_subvendorid; /* PCI subvendor ID */ + HAL_SOFTC ah_sc; /* back pointer to driver/os state */ + HAL_BUS_TAG ah_st; /* params for register r+w */ + HAL_BUS_HANDLE ah_sh; + HAL_CTRY_CODE ah_countryCode; + + uint32_t ah_macVersion; /* MAC version id */ + uint16_t ah_macRev; /* MAC revision */ + uint16_t ah_phyRev; /* PHY revision */ + uint16_t ah_analog5GhzRev; /* 2GHz radio revision */ + uint16_t ah_analog2GhzRev; /* 5GHz radio revision */ + + const HAL_RATE_TABLE *(*ah_getRateTable)(struct ath_hal *, + uint32_t mode); + void (*ah_detach) (struct ath_hal *); + + /* Reset functions */ + HAL_BOOL (*ah_reset) (struct ath_hal *, HAL_OPMODE, + HAL_CHANNEL *, HAL_BOOL bChannelChange, + HAL_STATUS *status); + HAL_BOOL (*ah_phyDisable) (struct ath_hal *); + void (*ah_setPCUConfig) (struct ath_hal *); + HAL_BOOL (*ah_perCalibration) (struct ath_hal *, HAL_CHANNEL *); + HAL_BOOL (*ah_setTxPowerLimit)(struct ath_hal *, uint32_t); + + /* Transmit functions */ + HAL_BOOL (*ah_updateTxTrigLevel) (struct ath_hal *, + HAL_BOOL incTrigLevel); + int (*ah_setupTxQueue) (struct ath_hal *, HAL_TX_QUEUE, + const HAL_TXQ_INFO *qInfo); + HAL_BOOL (*ah_setTxQueueProps) (struct ath_hal *, int q, + const HAL_TXQ_INFO *qInfo); + HAL_BOOL (*ah_getTxQueueProps)(struct ath_hal *, int q, + HAL_TXQ_INFO *qInfo); + HAL_BOOL (*ah_releaseTxQueue) (struct ath_hal *ah, uint32_t q); + HAL_BOOL (*ah_resetTxQueue) (struct ath_hal *ah, uint32_t q); + uint32_t (*ah_getTxDP) (struct ath_hal *, uint32_t); + HAL_BOOL (*ah_setTxDP) (struct ath_hal *, uint32_t, uint32_t txdp); + uint32_t (*ah_numTxPending)(struct ath_hal *, uint32_t q); + HAL_BOOL (*ah_startTxDma) (struct ath_hal *, uint32_t); + HAL_BOOL (*ah_stopTxDma) (struct ath_hal *, uint32_t); + HAL_BOOL (*ah_updateCTSForBursting)(struct ath_hal *, + struct ath_desc *, struct ath_desc *, + struct ath_desc *, struct ath_desc *, + uint32_t, uint32_t); + HAL_BOOL (*ah_setupTxDesc) (struct ath_hal *, struct ath_desc *, + uint32_t pktLen, uint32_t hdrLen, + HAL_PKT_TYPE type, uint32_t txPower, + uint32_t txRate0, uint32_t txTries0, + uint32_t keyIx, uint32_t antMode, + uint32_t flags, uint32_t rtsctsRate, + uint32_t rtsctsDuration); + HAL_BOOL (*ah_setupXTxDesc) (struct ath_hal *, struct ath_desc *, + uint32_t txRate1, uint32_t txTries1, + uint32_t txRate2, uint32_t txTries2, + uint32_t txRate3, uint32_t txTries3); + HAL_BOOL (*ah_fillTxDesc) (struct ath_hal *, struct ath_desc *, + uint32_t segLen, HAL_BOOL firstSeg, + HAL_BOOL lastSeg, const struct ath_desc *); + HAL_STATUS (*ah_procTxDesc) (struct ath_hal *, struct ath_desc *); + void (*ah_getTxIntrQueue)(struct ath_hal *, uint32_t *); + + /* Receive Functions */ + uint32_t (*ah_getRxDP) (struct ath_hal *); + void (*ah_setRxDP) (struct ath_hal *, uint32_t rxdp); + void (*ah_enableReceive) (struct ath_hal *); + HAL_BOOL (*ah_stopDmaReceive) (struct ath_hal *); + void (*ah_startPcuReceive) (struct ath_hal *); + void (*ah_stopPcuReceive) (struct ath_hal *); + void (*ah_setMulticastFilter) (struct ath_hal *, + uint32_t filter0, uint32_t filter1); + HAL_BOOL (*ah_setMulticastFilterIndex) (struct ath_hal *, + uint32_t index); + HAL_BOOL (*ah_clrMulticastFilterIndex) (struct ath_hal *, + uint32_t index); + uint32_t (*ah_getRxFilter) (struct ath_hal *); + void (*ah_setRxFilter) (struct ath_hal *, uint32_t); + HAL_BOOL (*ah_setupRxDesc) (struct ath_hal *, struct ath_desc *, + uint32_t size, uint32_t flags); + HAL_STATUS (*ah_procRxDesc) (struct ath_hal *, struct ath_desc *, + uint32_t phyAddr, struct ath_desc *next); + void (*ah_rxMonitor) (struct ath_hal *, + const HAL_NODE_STATS *); + void (*ah_procMibEvent) (struct ath_hal *, + const HAL_NODE_STATS *); + + /* Misc Functions */ + HAL_STATUS (*ah_getCapability) (struct ath_hal *, + HAL_CAPABILITY_TYPE, uint32_t capability, + uint32_t *result); + HAL_BOOL (*ah_setCapability) (struct ath_hal *, + HAL_CAPABILITY_TYPE, uint32_t capability, + uint32_t setting, HAL_STATUS *); + HAL_BOOL (*ah_getDiagState) (struct ath_hal *, int request, + const void *args, uint32_t argsize, + void **result, uint32_t *resultsize); + void (*ah_getMacAddress) (struct ath_hal *, uint8_t *); + HAL_BOOL (*ah_setMacAddress) (struct ath_hal *, const uint8_t *); + HAL_BOOL (*ah_setRegulatoryDomain) (struct ath_hal *, + uint16_t, HAL_STATUS *); + void (*ah_setLedState) (struct ath_hal *, HAL_LED_STATE); + void (*ah_writeAssocid) (struct ath_hal *, + const uint8_t *bssid, uint16_t assocId); + HAL_BOOL (*ah_gpioCfgOutput) (struct ath_hal *, uint32_t gpio); + HAL_BOOL (*ah_gpioCfgInput) (struct ath_hal *, uint32_t gpio); + uint32_t (*ah_gpioGet) (struct ath_hal *, uint32_t gpio); + HAL_BOOL (*ah_gpioSet) (struct ath_hal *, + uint32_t gpio, uint32_t val); + void (*ah_gpioSetIntr) (struct ath_hal *, uint32_t, uint32_t); + uint32_t (*ah_getTsf32) (struct ath_hal *); + uint64_t (*ah_getTsf64) (struct ath_hal *); + void (*ah_resetTsf) (struct ath_hal *); + HAL_BOOL (*ah_detectCardPresent) (struct ath_hal *); + void (*ah_updateMibCounters) (struct ath_hal *, HAL_MIB_STATS *); + HAL_RFGAIN (*ah_getRfGain) (struct ath_hal *); + uint32_t (*ah_getDefAntenna) (struct ath_hal *); + void (*ah_setDefAntenna) (struct ath_hal *, uint32_t); + HAL_BOOL (*ah_setSlotTime) (struct ath_hal *, uint32_t); + uint32_t (*ah_getSlotTime) (struct ath_hal *); + HAL_BOOL (*ah_setAckTimeout) (struct ath_hal *, uint32_t); + uint32_t (*ah_getAckTimeout) (struct ath_hal *); + HAL_BOOL (*ah_setCTSTimeout) (struct ath_hal *, uint32_t); + uint32_t (*ah_getCTSTimeout) (struct ath_hal *); + + /* Key Cache Functions */ + uint32_t (*ah_getKeyCacheSize) (struct ath_hal *); + HAL_BOOL (*ah_resetKeyCacheEntry) (struct ath_hal *, uint16_t); + HAL_BOOL (*ah_isKeyCacheEntryValid) (struct ath_hal *, uint16_t); + HAL_BOOL (*ah_setKeyCacheEntry) (struct ath_hal *, + uint16_t, const HAL_KEYVAL *, + const uint8_t *, int); + HAL_BOOL (*ah_setKeyCacheEntryMac) (struct ath_hal *, + uint16_t, const uint8_t *); + + /* Power Management Functions */ + HAL_BOOL (*ah_setPowerMode) (struct ath_hal *, + HAL_POWER_MODE mode, int setChip, + uint16_t sleepDuration); + HAL_POWER_MODE (*ah_getPowerMode) (struct ath_hal *); + HAL_BOOL (*ah_initPSPoll) (struct ath_hal *); + HAL_BOOL (*ah_enablePSPoll) (struct ath_hal *, + uint8_t *, uint16_t); + HAL_BOOL (*ah_disablePSPoll) (struct ath_hal *); + + /* Beacon Management Functions */ + void (*ah_beaconInit) (struct ath_hal *, + uint32_t nexttbtt, uint32_t intval); + void (*ah_setStationBeaconTimers) (struct ath_hal *, + const HAL_BEACON_STATE *); + void (*ah_resetStationBeaconTimers) (struct ath_hal *); + HAL_BOOL (*ah_waitForBeaconDone) (struct ath_hal *, + HAL_BUS_ADDR); + + /* Interrupt functions */ + HAL_BOOL (*ah_isInterruptPending) (struct ath_hal *); + HAL_BOOL (*ah_getPendingInterrupts) (struct ath_hal *, HAL_INT *); + HAL_INT (*ah_getInterrupts) (struct ath_hal *); + HAL_INT (*ah_setInterrupts) (struct ath_hal *, HAL_INT); +}; + +/* + * Check the PCI vendor ID and device ID against Atheros' values + * and return a printable description for any Atheros hardware. + * AH_NULL is returned if the ID's do not describe Atheros hardware. + */ +extern const char *ath_hal_probe(uint16_t vendorid, uint16_t devid); + +/* + * Attach the HAL for use with the specified device. The device is + * defined by the PCI device ID. The caller provides an opaque pointer + * to an upper-layer data structure (HAL_SOFTC) that is stored in the + * HAL state block for later use. Hardware register accesses are done + * using the specified bus tag and handle. On successful return a + * reference to a state block is returned that must be supplied in all + * subsequent HAL calls. Storage associated with this reference is + * dynamically allocated and must be freed by calling the ah_detach + * method when the client is done. If the attach operation fails a + * null (AH_NULL) reference will be returned and a status code will + * be returned if the status parameter is non-zero. + */ +extern struct ath_hal *ath_hal_attach(uint16_t devid, HAL_SOFTC, + HAL_BUS_TAG, HAL_BUS_HANDLE, HAL_STATUS *status); + +/* + * Return a list of channels available for use with the hardware. + * The list is based on what the hardware is capable of, the specified + * country code, the modeSelect mask, and whether or not outdoor + * channels are to be permitted. + * + * The channel list is returned in the supplied array. maxchans + * defines the maximum size of this array. nchans contains the actual + * number of channels returned. If a problem occurred or there were + * no channels that met the criteria then AH_FALSE is returned. + */ +extern HAL_BOOL ath_hal_init_channels(struct ath_hal *, + HAL_CHANNEL *chans, uint32_t maxchans, uint32_t *nchans, + HAL_CTRY_CODE cc, uint16_t modeSelect, + HAL_BOOL enableOutdoor, HAL_BOOL enableExtendedChannels); + +/* + * Return bit mask of wireless modes supported by the hardware. + */ +extern uint32_t ath_hal_getwirelessmodes(struct ath_hal *, HAL_CTRY_CODE); + +/* + * Return rate table for specified mode (11a, 11b, 11g, etc). + */ +extern const HAL_RATE_TABLE * ath_hal_getratetable(struct ath_hal *, + uint32_t mode); + +/* + * Calculate the transmit duration of a frame. + */ +extern uint16_t ath_hal_computetxtime(struct ath_hal *, + const HAL_RATE_TABLE *rates, uint32_t frameLen, + uint16_t rateix, HAL_BOOL shortPreamble); + +/* + * Convert between IEEE channel number and channel frequency + * using the specified channel flags; e.g. CHANNEL_2GHZ. + */ +extern uint32_t ath_hal_mhz2ieee(uint32_t mhz, uint32_t flags); +extern uint32_t ath_hal_ieee2mhz(uint32_t ieee, uint32_t flags); + +/* + * Return a version string for the HAL release. + */ +extern char ath_hal_version[]; + +/* + * Return a NULL-terminated array of build/configuration options. + */ +extern const char *ath_hal_buildopts[]; + +/* + * Macros to encapsulated HAL functions. + */ +#define ATH_HAL_RESET(_ah, _opmode, _chan, _outdoor, _pstatus) \ + ((*(_ah)->ah_reset)((_ah), (_opmode), (_chan), (_outdoor), (_pstatus))) +#define ATH_HAL_GETCAPABILITY(_ah, _cap, _param, _result) \ + ((*(_ah)->ah_getCapability)((_ah), (_cap), (_param), (_result))) +#define ATH_HAL_GETREGDOMAIN(_ah, _prd) \ + ATH_HAL_GETCAPABILITY(_ah, HAL_CAP_REG_DMN, 0, (_prd)) +#define ATH_HAL_GETCOUNTRYCODE(_ah, _pcc) \ + (*(_pcc) = (_ah)->ah_countryCode) +#define ATH_HAL_GETRATETABLE(_ah, _mode) \ + ((*(_ah)->ah_getRateTable)((_ah), (_mode))) +#define ATH_HAL_GETMAC(_ah, _mac) \ + ((*(_ah)->ah_getMacAddress)((_ah), (_mac))) +#define ATH_HAL_SETMAC(_ah, _mac) \ + ((*(_ah)->ah_setMacAddress)((_ah), (_mac))) +#define ATH_HAL_INTRSET(_ah, _mask) \ + ((*(_ah)->ah_setInterrupts)((_ah), (_mask))) +#define ATH_HAL_INTRGET(_ah) \ + ((*(_ah)->ah_getInterrupts)((_ah))) +#define ATH_HAL_INTRPEND(_ah) \ + ((*(_ah)->ah_isInterruptPending)((_ah))) +#define ATH_HAL_GETISR(_ah, _pmask) \ + ((*(_ah)->ah_getPendingInterrupts)((_ah), (_pmask))) +#define ATH_HAL_UPDATETXTRIGLEVEL(_ah, _inc) \ + ((*(_ah)->ah_updateTxTrigLevel)((_ah), (_inc))) +#define ATH_HAL_SETPOWER(_ah, _mode, _sleepduration) \ + ((*(_ah)->ah_setPowerMode)((_ah), (_mode), AH_TRUE, (_sleepduration))) +#define ATH_HAL_KEYRESET(_ah, _ix) \ + ((*(_ah)->ah_resetKeyCacheEntry)((_ah), (_ix))) +#define ATH_HAL_KEYSET(_ah, _ix, _pk) \ + ((*(_ah)->ah_setKeyCacheEntry)((_ah), (_ix), (_pk), NULL, AH_FALSE)) +#define ATH_HAL_KEYISVALID(_ah, _ix) \ + (((*(_ah)->ah_isKeyCacheEntryValid)((_ah), (_ix)))) +#define ATH_HAL_KEYSETMAC(_ah, _ix, _mac) \ + ((*(_ah)->ah_setKeyCacheEntryMac)((_ah), (_ix), (_mac))) +#define ATH_HAL_KEYCACHESIZE(_ah) \ + ((*(_ah)->ah_getKeyCacheSize)((_ah))) +#define ATH_HAL_GETRXFILTER(_ah) \ + ((*(_ah)->ah_getRxFilter)((_ah))) +#define ATH_HAL_SETRXFILTER(_ah, _filter) \ + ((*(_ah)->ah_setRxFilter)((_ah), (_filter))) +#define ATH_HAL_SETMCASTFILTER(_ah, _mfilt0, _mfilt1) \ + ((*(_ah)->ah_setMulticastFilter)((_ah), (_mfilt0), (_mfilt1))) +#define ATH_HAL_WAITFORBEACON(_ah, _bf) \ + ((*(_ah)->ah_waitForBeaconDone)((_ah), (_bf)->bf_daddr)) +#define ATH_HAL_PUTRXBUF(_ah, _bufaddr) \ + ((*(_ah)->ah_setRxDP)((_ah), (_bufaddr))) +#define ATH_HAL_GETTSF32(_ah) \ + ((*(_ah)->ah_getTsf32)((_ah))) +#define ATH_HAL_GETTSF64(_ah) \ + ((*(_ah)->ah_getTsf64)((_ah))) +#define ATH_HAL_RESETTSF(_ah) \ + ((*(_ah)->ah_resetTsf)((_ah))) +#define ATH_HAL_RXENA(_ah) \ + ((*(_ah)->ah_enableReceive)((_ah))) +#define ATH_HAL_PUTTXBUF(_ah, _q, _bufaddr) \ + ((*(_ah)->ah_setTxDP)((_ah), (_q), (_bufaddr))) +#define ATH_HAL_GETTXBUF(_ah, _q) \ + ((*(_ah)->ah_getTxDP)((_ah), (_q))) +#define ATH_HAL_GETRXBUF(_ah) \ + ((*(_ah)->ah_getRxDP)((_ah))) +#define ATH_HAL_TXSTART(_ah, _q) \ + ((*(_ah)->ah_startTxDma)((_ah), (_q))) +#define ATH_HAL_SETCHANNEL(_ah, _chan) \ + ((*(_ah)->ah_setChannel)((_ah), (_chan))) +#define ATH_HAL_CALIBRATE(_ah, _chan) \ + ((*(_ah)->ah_perCalibration)((_ah), (_chan))) +#define ATH_HAL_SETLEDSTATE(_ah, _state) \ + ((*(_ah)->ah_setLedState)((_ah), (_state))) +#define ATH_HAL_BEACONINIT(_ah, _nextb, _bperiod) \ + ((*(_ah)->ah_beaconInit)((_ah), (_nextb), (_bperiod))) +#define ATH_HAL_BEACONRESET(_ah) \ + ((*(_ah)->ah_resetStationBeaconTimers)((_ah))) +#define ATH_HAL_BEACONTIMERS(_ah, _beacon_state) \ + ((*(_ah)->ah_setStationBeaconTimers)((_ah), (_beacon_state))) +#define ATH_HAL_SETASSOCID(_ah, _bss, _associd) \ + ((*(_ah)->ah_writeAssocid)((_ah), (_bss), (_associd))) +#define ATH_HAL_SETOPMODE(_ah) \ + ((*(_ah)->ah_setPCUConfig)((_ah))) +#define ATH_HAL_STOPTXDMA(_ah, _qnum) \ + ((*(_ah)->ah_stopTxDma)((_ah), (_qnum))) +#define ATH_HAL_STOPPCURECV(_ah) \ + ((*(_ah)->ah_stopPcuReceive)((_ah))) +#define ATH_HAL_STARTPCURECV(_ah) \ + ((*(_ah)->ah_startPcuReceive)((_ah))) +#define ATH_HAL_STOPDMARECV(_ah) \ + ((*(_ah)->ah_stopDmaReceive)((_ah))) +#define ATH_HAL_DUMPSTATE(_ah) \ + ((*(_ah)->ah_dumpState)((_ah))) +#define ATH_HAL_DUMPEEPROM(_ah) \ + ((*(_ah)->ah_dumpEeprom)((_ah))) +#define ATH_HAL_DUMPRFGAIN(_ah) \ + ((*(_ah)->ah_dumpRfGain)((_ah))) +#define ATH_HAL_DUMPANI(_ah) \ + ((*(_ah)->ah_dumpAni)((_ah))) +#define ATH_HAL_SETUPTXQUEUE(_ah, _type, _irq) \ + ((*(_ah)->ah_setupTxQueue)((_ah), (_type), (_irq))) +#define ATH_HAL_RESETTXQUEUE(_ah, _q) \ + ((*(_ah)->ah_resetTxQueue)((_ah), (_q))) +#define ATH_HAL_RELEASETXQUEUE(_ah, _q) \ + ((*(_ah)->ah_releaseTxQueue)((_ah), (_q))) +#define ATH_HAL_HASVEOL \ + ((*(_ah)->ah_hasVEOL)((_ah))) +#define ATH_HAL_GETRFGAIN(_ah) \ + ((*(_ah)->ah_getRfGain)((_ah))) +#define ATH_HAL_RXMONITOR(_ah, _arg) \ + ((*(_ah)->ah_rxMonitor)((_ah), (_arg))) +#define ATH_HAL_SETUPBEACONDESC(_ah, _ds, _opmode, _flen, _hlen, \ + _rate, _antmode) \ + ((*(_ah)->ah_setupBeaconDesc)((_ah), (_ds), (_opmode), \ + (_flen), (_hlen), (_rate), (_antmode))) +#define ATH_HAL_SETUPRXDESC(_ah, _ds, _size, _intreq) \ + ((*(_ah)->ah_setupRxDesc)((_ah), (_ds), (_size), (_intreq))) +#define ATH_HAL_RXPROCDESC(_ah, _ds, _dspa, _dsnext) \ + ((*(_ah)->ah_procRxDesc)((_ah), (_ds), (_dspa), (_dsnext))) +#define ATH_HAL_SETUPTXDESC(_ah, _ds, _plen, _hlen, _atype, _txpow, \ + _txr0, _txtr0, _keyix, _ant, _flags, \ + _rtsrate, _rtsdura) \ + ((*(_ah)->ah_setupTxDesc)((_ah), (_ds), (_plen), (_hlen), (_atype), \ + (_txpow), (_txr0), (_txtr0), (_keyix), (_ant), \ + (_flags), (_rtsrate), (_rtsdura))) +#define ATH_HAL_SETUPXTXDESC(_ah, _ds, \ + _txr1, _txtr1, _txr2, _txtr2, _txr3, _txtr3) \ + ((*(_ah)->ah_setupXTxDesc)((_ah), (_ds), \ + (_txr1), (_txtr1), (_txr2), (_txtr2), (_txr3), (_txtr3))) +#define ATH_HAL_FILLTXDESC(_ah, _ds, _l, _first, _last, _ath_desc) \ + ((*(_ah)->ah_fillTxDesc)((_ah), (_ds), (_l), (_first), (_last), \ + (_ath_desc))) +#define ATH_HAL_TXPROCDESC(_ah, _ds) \ + ((*(_ah)->ah_procTxDesc)((_ah), (_ds))) +#define ATH_HAL_CIPHERSUPPORTED(_ah, _cipher) \ + (ATH_HAL_GETCAPABILITY(_ah, HAL_CAP_CIPHER, _cipher, NULL) == HAL_OK) +#define ATH_HAL_TKIPSPLIT(_ah) \ + (ATH_HAL_GETCAPABILITY(_ah, HAL_CAP_TKIP_SPLIT, 0, NULL) == HAL_OK) + +#ifdef __cplusplus +} +#endif + +#endif /* _ATH_HAL_H */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/ath_ieee80211.c Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,2899 @@ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +/* + * Copyright (c) 2002, 2003 Sam Leffler, Errno Consulting + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + * + */ + +/* + * IEEE 802.11 generic handler + * + * This code is derived from NetBSD code; their copyright notice follows. + */ + +/* + * Copyright (c) 2001 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Atsushi Onoe. + * + * 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. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +#include <sys/param.h> +#include <sys/types.h> +#include <sys/signal.h> +#include <sys/stream.h> +#include <sys/termio.h> +#include <sys/errno.h> +#include <sys/file.h> +#include <sys/cmn_err.h> +#include <sys/stropts.h> +#include <sys/strsubr.h> +#include <sys/strtty.h> +#include <sys/kbio.h> +#include <sys/cred.h> +#include <sys/stat.h> +#include <sys/consdev.h> +#include <sys/kmem.h> +#include <sys/modctl.h> +#include <sys/ddi.h> +#include <sys/sunddi.h> +#include <sys/pci.h> +#include <sys/errno.h> +#include <sys/gld.h> +#include <sys/dlpi.h> +#include <sys/ethernet.h> +#include <sys/byteorder.h> +#include <sys/proc.h> +#include <sys/note.h> +#include <sys/strsun.h> +#include <sys/list.h> +#include <sys/byteorder.h> +#include <inet/common.h> +#include <inet/nd.h> +#include <inet/mi.h> +#include <inet/wifi_ioctl.h> +#include "ath_ieee80211.h" +#include "ath_impl.h" + +#define list_empty(a) ((a)->list_head.list_next == &(a)->list_head) + +static const char *ieee80211_mgt_subtype_name[] = { + "assoc_req", "assoc_resp", "reassoc_req", "reassoc_resp", + "probe_req", "probe_resp", "reserved#6", "reserved#7", + "beacon", "atim", "disassoc", "auth", + "deauth", "reserved#13", "reserved#14", "reserved#15" +}; + +extern pri_t minclsyspri; + +static void +ieee80211_unref_node(struct ieee80211_node **in) +{ + *in = NULL; +} + +static uint8_t +ieee80211_get_rssi(struct ieee80211_node *in) +{ + /* no recent samples, use last known value */ + return (in->in_recv_hist[in->in_hist_cur].irh_rssi); +} + +static void +ieee80211_reset_recvhist(struct ieee80211_node *in) +{ + int i; + + for (i = 0; i < IEEE80211_RECV_HIST_LEN; ++i) { + in->in_recv_hist[i].irh_jiffies = IEEE80211_JIFFIES_NONE; + in->in_recv_hist[i].irh_rssi = 0; + in->in_recv_hist[i].irh_rstamp = 0; + in->in_recv_hist[i].irh_rantenna = 0; + } + in->in_hist_cur = IEEE80211_RECV_HIST_LEN - 1; +} + + +static void +ieee80211_add_recvhist(struct ieee80211_node *in, uint8_t rssi, + uint32_t rstamp, uint8_t rantenna) +{ + if (++in->in_hist_cur >= IEEE80211_RECV_HIST_LEN) + in->in_hist_cur = 0; + in->in_recv_hist[in->in_hist_cur].irh_rssi = rssi; + in->in_recv_hist[in->in_hist_cur].irh_rstamp = rstamp; + in->in_recv_hist[in->in_hist_cur].irh_rantenna = rantenna; +} + +/* + * Convert MHz frequency to IEEE channel number. + */ +uint32_t +ieee80211_mhz2ieee(uint32_t freq, uint32_t flags) +{ + if (flags & IEEE80211_CHAN_2GHZ) { /* 2GHz band */ + if (freq == 2484) + return (14); + if (freq < 2484) + return ((freq - 2407) / 5); + else + return (15 + ((freq - 2512) / 20)); + } else if (flags & IEEE80211_CHAN_5GHZ) { /* 5Ghz band */ + return ((freq - 5000) / 5); + } else { /* either, guess */ + if (freq == 2484) + return (14); + if (freq < 2484) + return ((freq - 2407) / 5); + if (freq < 5000) + return (15 + ((freq - 2512) / 20)); + return ((freq - 5000) / 5); + } +} + +/* + * Convert channel to IEEE channel number. + */ +uint32_t +ieee80211_chan2ieee(ieee80211com_t *isc, struct ieee80211channel *ch) +{ + if (isc->isc_channels <= ch && + ch <= &isc->isc_channels[IEEE80211_CHAN_MAX]) + return (ch - isc->isc_channels); + else if (ch == IEEE80211_CHAN_ANYC) + return (IEEE80211_CHAN_ANY); + else { + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_chan2ieee(): " + "invalid channel freq %u flags %x\n", + ch->ich_freq, ch->ich_flags)); + return (0); + } +} + +/* + * Convert IEEE channel number to MHz frequency. + */ +uint32_t +ieee80211_ieee2mhz(uint32_t chan, uint32_t flags) +{ + if (flags & IEEE80211_CHAN_2GHZ) { /* 2GHz band */ + if (chan == 14) + return (2484); + if (chan < 14) + return (2407 + chan * 5); + else + return (2512 + ((chan-15) * 20)); + } else if (flags & IEEE80211_CHAN_5GHZ) { /* 5Ghz band */ + return (5000 + (chan * 5)); + } else { /* either, guess */ + if (chan == 14) + return (2484); + if (chan < 14) /* 0-13 */ + return (2407 + chan * 5); + if (chan < 27) /* 15-26 */ + return (2512 + ((chan-15) * 20)); + return (5000 + (chan * 5)); + } +} + +static void +ieee80211_free_node(ieee80211com_t *isc, struct ieee80211_node *in) +{ + int32_t i, done; + struct ieee80211_node *in1; + + /* remove in from list of isc->isc_in_list */ + list_remove(&isc->isc_in_list, in); + + /* remove in from list of isc->isc_inhash_list */ + done = 0; + for (i = 0; i < IEEE80211_NODE_HASHSIZE; i++) { + in1 = list_head(&isc->isc_inhash_list[i]); + while (in1 != NULL) { + if (in1 == in) { + list_remove(&isc->isc_inhash_list[i], in); + done = 1; + break; + } + in1 = list_next(&isc->isc_inhash_list[i], in1); + } + if (done) + break; + } + + if (list_empty(&isc->isc_in_list)) + isc->isc_inact_timeout = 0; + if (isc->isc_node_free != NULL) + (*isc->isc_node_free)(isc, in); +} + +/* + * This function is only running in software interrupt thread, + * and it will probably call back to LLD by isc_mgmt_send() or isc_new_state(), + * to avoid recursive mutex entry, we must make sure that + * the callers have release all LLD mutexs before calling ieee80211_input(). + */ +void +ieee80211_input(ieee80211com_t *isc, mblk_t *mp, + int32_t rssi, uint32_t rstamp, uint32_t rantenna) +{ + struct ieee80211_node *in; + gld_mac_info_t *gld_p = isc->isc_dev; + struct ieee80211_frame *wh; + void (*rh)(ieee80211com_t *, mblk_t *, int32_t, uint32_t, uint32_t); + uint8_t dir, subtype; + uint8_t *bssid; + uint16_t rxseq; + + wh = (struct ieee80211_frame *)mp->b_rptr; + if ((wh->ifrm_fc[0] & IEEE80211_FC0_VERSION_MASK) != + IEEE80211_FC0_VERSION_0) { + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_input(): " + "discard pkt with wrong version")); + goto out; + } + + dir = wh->ifrm_fc[1] & IEEE80211_FC1_DIR_MASK; + + mutex_enter(&isc->isc_genlock); + if (isc->isc_state != IEEE80211_S_SCAN) { + switch (isc->isc_opmode) { + case IEEE80211_M_STA: + in = isc->isc_bss; + if (!IEEE80211_ADDR_EQ(wh->ifrm_addr2, in->in_bssid)) + goto out_with_mutex; + break; + case IEEE80211_M_IBSS: + case IEEE80211_M_AHDEMO: + case IEEE80211_M_HOSTAP: + if (dir == IEEE80211_FC1_DIR_NODS) + bssid = wh->ifrm_addr3; + else + bssid = wh->ifrm_addr1; + if (!IEEE80211_ADDR_EQ(bssid, isc->isc_bss->in_bssid) && + !IEEE80211_ADDR_EQ(bssid, + gld_p->gldm_broadcast_addr)) { + /* not interested in */ + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_input(): other bss %s\n", + ieee80211_ether_sprintf(wh->ifrm_addr3))); + goto out_with_mutex; + } + in = ieee80211_find_node(isc, wh->ifrm_addr2); + if (in == NULL) { + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_input(): unknown src %s\n", + ieee80211_ether_sprintf(wh->ifrm_addr2))); + /* + * NB: Node allocation is handled in the + * management handling routines. Just fake + * up a reference to the hosts's node to do + * the stuff below. + */ + in = isc->isc_bss; + } + break; + default: + /* catch bad values */ + break; + } + ieee80211_add_recvhist(in, rssi, rstamp, rantenna); + rxseq = in->in_rxseq; + in->in_rxseq = LE_16(*(uint16_t *)wh->ifrm_seq) + >> IEEE80211_SEQ_SEQ_SHIFT; + /* fragment */ + if ((wh->ifrm_fc[1] & IEEE80211_FC1_RETRY) && + rxseq == in->in_rxseq) { + /* duplicate, silently discarded */ + goto out_with_mutex; + } + in->in_inact = 0; + } + + switch (wh->ifrm_fc[0] & IEEE80211_FC0_TYPE_MASK) { + case IEEE80211_FC0_TYPE_DATA: + switch (isc->isc_opmode) { + case IEEE80211_M_STA: + if (dir != IEEE80211_FC1_DIR_FROMDS) { + ATH_DEBUG((ATH_DBG_80211, "ath: ", + "ieee80211_input(): discard frame " + "with invalid direction %x\n", dir)); + goto out_with_mutex; + } + if (IEEE80211_IS_MULTICAST(wh->ifrm_addr1) && + IEEE80211_ADDR_EQ(wh->ifrm_addr3, + gld_p->gldm_vendor_addr)) { + /* + * In IEEE802.11 network, multicast packet + * sent from me is broadcasted from AP. + * It should be silently discarded for + * SIMPLEX interface. + */ + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_input(): " + "discard multicast echo\n")); + goto out_with_mutex; + } + break; + case IEEE80211_M_IBSS: + case IEEE80211_M_AHDEMO: + if (dir != IEEE80211_FC1_DIR_NODS) + goto out_with_mutex; + break; + case IEEE80211_M_HOSTAP: + /* need more work to support HOSTAP */ + break; + } + + mutex_exit(&isc->isc_genlock); + /* copy to listener after decrypt */ + mp = ieee80211_decap(mp); + if (mp == NULL) { + ATH_DEBUG((ATH_DBG_80211, "ath: ", + "ieee80211_input(): decapsulation failed\n")); + goto out; + } + gld_recv(gld_p, mp); + return; + + case IEEE80211_FC0_TYPE_MGT: + if (dir != IEEE80211_FC1_DIR_NODS) + goto out_with_mutex; + if (isc->isc_opmode == IEEE80211_M_AHDEMO) + goto out_with_mutex; + subtype = wh->ifrm_fc[0] & IEEE80211_FC0_SUBTYPE_MASK; + + /* drop uninteresting frames */ + if (isc->isc_state == IEEE80211_S_SCAN) { + if (subtype != IEEE80211_FC0_SUBTYPE_BEACON && + subtype != IEEE80211_FC0_SUBTYPE_PROBE_RESP) + goto out_with_mutex; + } else { + if (isc->isc_opmode != IEEE80211_M_IBSS && + subtype == IEEE80211_FC0_SUBTYPE_BEACON) + goto out_with_mutex; + } + + rh = isc->isc_recv_mgmt[subtype >> IEEE80211_FC0_SUBTYPE_SHIFT]; + if (rh != NULL) + (*rh)(isc, mp, rssi, rstamp, rantenna); + goto out_with_mutex; + + case IEEE80211_FC0_TYPE_CTL: + default: + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_input(): " + "bad type %x\n", wh->ifrm_fc[0])); + break; + } +out_with_mutex: + mutex_exit(&isc->isc_genlock); +out: + if (mp != NULL) + freemsg(mp); /* free the buffer alloced in ath_rx_handler */ +} + +static void +ieee80211_free_allnodes(ieee80211com_t *isc) +{ + struct ieee80211_node *in; + + in = list_head(&isc->isc_in_list); + while (in != NULL) { + ieee80211_free_node(isc, in); + in = list_head(&isc->isc_in_list); + } +} + +/* + * Begin an active scan. + */ +static void +ieee80211_begin_scan(ieee80211com_t *isc, struct ieee80211_node *in) +{ + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_begin_scan(): begin %s scan\n", + isc->isc_opmode != IEEE80211_M_HOSTAP ? "active" : "passive")); + + /* + * Initialize the active channel set based on the set + * of available channels and the current PHY mode. + */ + bcopy(isc->isc_chan_active, isc->isc_chan_scan, + sizeof (isc->isc_chan_active)); + + /* + * Flush any previously seen AP's. Note that this + * assumes we don't act as both an AP and a station, + * otherwise we'll potentially flush state of stations + * associated with us. + */ + ieee80211_free_allnodes(isc); + + clrbit(isc->isc_chan_scan, ieee80211_chan2ieee(isc, in->in_chan)); + if (isc->isc_opmode != IEEE80211_M_HOSTAP) { + isc->isc_flags |= IEEE80211_F_ASCAN; + IEEE80211_SEND_MGMT(isc, in, + IEEE80211_FC0_SUBTYPE_PROBE_REQ, 0); + } +} + +static void +ieee80211_create_ibss(ieee80211com_t *isc, struct ieee80211channel *chan) +{ + struct ieee80211_node *in; + + in = isc->isc_bss; + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_create_ibss(): creating ibss\n")); + isc->isc_flags |= IEEE80211_F_SIBSS; + in->in_chan = chan; + in->in_rates = isc->isc_sup_rates[ + ieee80211_chan2mode(isc, in->in_chan)]; + IEEE80211_ADDR_COPY(in->in_macaddr, isc->isc_macaddr); + IEEE80211_ADDR_COPY(in->in_bssid, isc->isc_macaddr); + + if (isc->isc_opmode == IEEE80211_M_IBSS) + in->in_bssid[0] |= 0x02; /* local bit for IBSS */ + in->in_esslen = isc->isc_des_esslen; + bcopy(isc->isc_des_essid, in->in_essid, in->in_esslen); + ieee80211_reset_recvhist(in); + bzero(in->in_tstamp, sizeof (in->in_tstamp)); + in->in_intval = isc->isc_lintval; + in->in_capinfo = IEEE80211_CAPINFO_IBSS; + if (isc->isc_flags & IEEE80211_F_WEPON) + in->in_capinfo |= IEEE80211_CAPINFO_PRIVACY; + if (isc->isc_phytype == IEEE80211_T_FH) { + in->in_fhdwell = 200; + in->in_fhindex = 1; + } + (void) _ieee80211_new_state(isc, IEEE80211_S_RUN, -1); +} + + +/* + * The difference between _ieee80211_new_state() and ieee80211_new_state() + * is the former asserts isc_genlock is already held. + * _ieee80211_new_state() is called from Multi-func thread and GLD thread, + * because ic_genlock is already owned at its entry in those 2 types of thread. + * ieee80211_new_state() is just for software interrupt thread in LLD. + * + * Because of the reason to avoid recursive mutex entry, the caller can't hold + * any other LLD mutexs before calling ieee80211_new_state(). + */ +int +_ieee80211_new_state(ieee80211com_t *isc, enum ieee80211_state nstate, + int32_t mgt) +{ + gld_mac_info_t *gld_p = isc->isc_dev; + struct ieee80211_node *in; + int error, ostate; + + ASSERT(mutex_owned(&isc->isc_genlock)); + + ostate = isc->isc_state; + if (isc->isc_new_state) { + error = (*isc->isc_new_state)(isc, nstate); + if (error == EINPROGRESS) + return (0); + if (error != 0) + return (error); + } + + isc->isc_state = nstate; + in = isc->isc_bss; + + /* state transition */ + switch (nstate) { + case IEEE80211_S_INIT: + switch (ostate) { + case IEEE80211_S_INIT: + break; + case IEEE80211_S_RUN: + switch (isc->isc_opmode) { + case IEEE80211_M_STA: + IEEE80211_SEND_MGMT(isc, in, + IEEE80211_FC0_SUBTYPE_DISASSOC, + IEEE80211_REASON_ASSOC_LEAVE); + break; + default: + break; + } + case IEEE80211_S_ASSOC: + switch (isc->isc_opmode) { + case IEEE80211_M_STA: + IEEE80211_SEND_MGMT(isc, in, + IEEE80211_FC0_SUBTYPE_DEAUTH, + IEEE80211_REASON_AUTH_LEAVE); + break; + default: + break; + } + case IEEE80211_S_AUTH: + case IEEE80211_S_SCAN: + break; + } + isc->isc_mgt_timeout = 0; + isc->isc_inact_timeout = 0; + break; + case IEEE80211_S_SCAN: + isc->isc_flags &= ~IEEE80211_F_SIBSS; + /* initialize bss for probe request */ + IEEE80211_ADDR_COPY(in->in_macaddr, gld_p->gldm_broadcast_addr); + IEEE80211_ADDR_COPY(in->in_bssid, gld_p->gldm_broadcast_addr); + in->in_rates = isc->isc_sup_rates[ + ieee80211_chan2mode(isc, in->in_chan)]; + in->in_associd = 0; + ieee80211_reset_recvhist(in); + switch (ostate) { + case IEEE80211_S_INIT: + if ((isc->isc_opmode == IEEE80211_M_HOSTAP || + isc->isc_opmode == IEEE80211_M_IBSS) && + isc->isc_des_chan != IEEE80211_CHAN_ANYC) { + /* + * AP operation and we already have a channel; + * bypass the scan and startup immediately. + * Same applies to ad-hoc mode. + */ + ieee80211_create_ibss(isc, isc->isc_des_chan); + } else { + ieee80211_begin_scan(isc, in); + } + break; + case IEEE80211_S_SCAN: + /* scan next */ + if (isc->isc_flags & IEEE80211_F_ASCAN) { + IEEE80211_SEND_MGMT(isc, in, + IEEE80211_FC0_SUBTYPE_PROBE_REQ, 0); + } + break; + case IEEE80211_S_RUN: + /* beacon miss */ + ATH_DEBUG((ATH_DBG_80211, "ath: " + "_ieee80211_new_state(): no recent beacons" + " from %s; rescanning\n", + ieee80211_ether_sprintf(isc->isc_bss->in_bssid))); + ieee80211_free_allnodes(isc); + break; + case IEEE80211_S_AUTH: + case IEEE80211_S_ASSOC: + /* timeout, restart scan */ + in = ieee80211_find_node(isc, isc->isc_bss->in_macaddr); + if (in != NULL) { + in->in_fails++; + } + ieee80211_begin_scan(isc, isc->isc_bss); + break; + default: + break; + } + break; + case IEEE80211_S_AUTH: + switch (ostate) { + case IEEE80211_S_INIT: + ATH_DEBUG((ATH_DBG_80211, "ath(): " + "_ieee80211_new_state(): invalid transition\n")); + break; + case IEEE80211_S_SCAN: + IEEE80211_SEND_MGMT(isc, in, + IEEE80211_FC0_SUBTYPE_AUTH, 1); + break; + case IEEE80211_S_AUTH: + case IEEE80211_S_ASSOC: + switch (mgt) { + case IEEE80211_FC0_SUBTYPE_AUTH: + IEEE80211_SEND_MGMT(isc, in, + IEEE80211_FC0_SUBTYPE_AUTH, 2); + break; + case IEEE80211_FC0_SUBTYPE_DEAUTH: + /* ignore and retry scan on timeout */ + break; + } + break; + case IEEE80211_S_RUN: + switch (mgt) { + case IEEE80211_FC0_SUBTYPE_AUTH: + IEEE80211_SEND_MGMT(isc, in, + IEEE80211_FC0_SUBTYPE_AUTH, 2); + isc->isc_state = ostate; /* stay RUN */ + break; + case IEEE80211_FC0_SUBTYPE_DEAUTH: + /* try to reauth */ + IEEE80211_SEND_MGMT(isc, in, + IEEE80211_FC0_SUBTYPE_AUTH, 1); + break; + } + break; + } + break; + case IEEE80211_S_ASSOC: + switch (ostate) { + case IEEE80211_S_INIT: + case IEEE80211_S_SCAN: + case IEEE80211_S_ASSOC: + ATH_DEBUG((ATH_DBG_80211, "ath: " + "_ieee80211_new_state(): invalid transition\n")); + break; + case IEEE80211_S_AUTH: + IEEE80211_SEND_MGMT(isc, in, + IEEE80211_FC0_SUBTYPE_ASSOC_REQ, 0); + break; + case IEEE80211_S_RUN: + IEEE80211_SEND_MGMT(isc, in, + IEEE80211_FC0_SUBTYPE_ASSOC_REQ, 1); + break; + } + break; + case IEEE80211_S_RUN: + switch (ostate) { + case IEEE80211_S_INIT: + case IEEE80211_S_AUTH: + case IEEE80211_S_RUN: + ATH_DEBUG((ATH_DBG_80211, "ath: " + "_ieee80211_new_state(): invalid transition\n")); + break; + case IEEE80211_S_SCAN: /* adhoc/hostap mode */ + case IEEE80211_S_ASSOC: /* infra mode */ + if (isc->isc_opmode == IEEE80211_M_STA) + ATH_DEBUG((ATH_DBG_80211, "ath: " + "_ieee80211_new_state(): " + "associated with %s\n", + ieee80211_ether_sprintf(in->in_bssid))); + else + ATH_DEBUG((ATH_DBG_80211, "ath: " + "_ieee80211_new_state(): " + "asynchronized with %s\n", + ieee80211_ether_sprintf(in->in_bssid))); + ATH_DEBUG((ATH_DBG_80211, "ath: " + "_ieee80211_new_state(): " + "essid %s, channel %d, start %uMb\n", + ieee80211_essid_sprintf(in->in_essid, + in->in_esslen), + ieee80211_chan2ieee(isc, in->in_chan), + IEEE80211_RATE2MBS(in->in_rates.ir_rates[ + in->in_txrate]))); + isc->isc_mgt_timeout = 0; + break; + } + break; + } + return (0); +} + +int +ieee80211_new_state(ieee80211com_t *isc, enum ieee80211_state nstate, + int32_t mgt) +{ + int result; + + mutex_enter(&isc->isc_genlock); + result = _ieee80211_new_state(isc, nstate, mgt); + mutex_exit(&isc->isc_genlock); + + return (result); +} + +static void +ieee80211_timeout_nodes(ieee80211com_t *isc) +{ + struct ieee80211_node *in, *nextbs; + + for (in = list_head(&isc->isc_in_list); in != NULL; ) { + if (++in->in_inact <= IEEE80211_INACT_MAX) { + in = list_next(&isc->isc_in_list, in); + continue; + } + ATH_DEBUG((ATH_DBG_80211, "ath: " + "station %s timed out due to inactivity" + " (%u secs)\n", ieee80211_ether_sprintf(in->in_macaddr), + in->in_inact)); + nextbs = list_next(&isc->isc_in_list, in); + IEEE80211_SEND_MGMT(isc, in, + IEEE80211_FC0_SUBTYPE_DEAUTH, + IEEE80211_REASON_AUTH_EXPIRE); + ieee80211_free_node(isc, in); + in = nextbs; + } + if (!list_empty(&isc->isc_in_list)) + isc->isc_inact_timeout = IEEE80211_INACT_WAIT; +} + +int +ieee80211_mgmt_output(ieee80211com_t *isc, struct ieee80211_node *in, + mblk_t *mp, int type) +{ + struct ieee80211_frame *wh; + + ASSERT(mutex_owned(&isc->isc_genlock)); + ASSERT(in != NULL); + + in->in_inact = 0; + mp->b_rptr -= sizeof (struct ieee80211_frame); + wh = (struct ieee80211_frame *)mp->b_rptr; + wh->ifrm_fc[0] = IEEE80211_FC0_VERSION_0 | + IEEE80211_FC0_TYPE_MGT | type; + wh->ifrm_fc[1] = IEEE80211_FC1_DIR_NODS; + *(uint16_t *)wh->ifrm_dur = 0; + *(uint16_t *)wh->ifrm_seq = + LE_16(in->in_txseq << IEEE80211_SEQ_SEQ_SHIFT); + in->in_txseq++; + IEEE80211_ADDR_COPY(wh->ifrm_addr1, in->in_macaddr); + IEEE80211_ADDR_COPY(wh->ifrm_addr2, isc->isc_macaddr); + IEEE80211_ADDR_COPY(wh->ifrm_addr3, in->in_bssid); + + (void) (*isc->isc_mgmt_send)(isc, mp); + return (0); +} + +mblk_t * +ieee80211_fill_header(ieee80211com_t *isc, mblk_t *mp_gld, + int32_t wep_txkey, struct ieee80211_node *in) +{ + struct ieee80211_frame *wh; + struct ieee80211_llc *llc; + struct ether_header *eh; + mblk_t *mp_header; + uint32_t iv; + uint8_t *ivp; + + ASSERT(mutex_owned(&isc->isc_genlock)); + + /* + * Alloc a new mblk struct for the whole IEEE80211 header. + */ + if ((mp_header = allocb(HEADERSPACE, BPRI_MED)) == NULL) { + ath_problem("ath: ieee80211_encap(): can't alloc mblk!\n"); + return (NULL); + } + mp_header->b_wptr = mp_header->b_rptr + + sizeof (struct ieee80211_frame); + + eh = (struct ether_header *)mp_gld->b_rptr; + + /* + * Fill 802.11 field. + */ + wh = (struct ieee80211_frame *)mp_header->b_rptr; + wh->ifrm_fc[0] = IEEE80211_FC0_VERSION_0 | IEEE80211_FC0_TYPE_DATA; + *(uint16_t *)wh->ifrm_dur = 0; + *(uint16_t *)wh->ifrm_seq = + LE_16(in->in_txseq << IEEE80211_SEQ_SEQ_SHIFT); + in->in_txseq++; + switch (isc->isc_opmode) { + case IEEE80211_M_STA: + wh->ifrm_fc[1] = IEEE80211_FC1_DIR_TODS; + IEEE80211_ADDR_COPY(wh->ifrm_addr1, in->in_bssid); + IEEE80211_ADDR_COPY(wh->ifrm_addr2, + eh->ether_shost.ether_addr_octet); + IEEE80211_ADDR_COPY(wh->ifrm_addr3, + eh->ether_dhost.ether_addr_octet); + break; + case IEEE80211_M_IBSS: + case IEEE80211_M_AHDEMO: + wh->ifrm_fc[1] = IEEE80211_FC1_DIR_NODS; + IEEE80211_ADDR_COPY(wh->ifrm_addr1, + eh->ether_dhost.ether_addr_octet); + IEEE80211_ADDR_COPY(wh->ifrm_addr2, + eh->ether_shost.ether_addr_octet); + IEEE80211_ADDR_COPY(wh->ifrm_addr3, in->in_bssid); + break; + case IEEE80211_M_HOSTAP: + wh->ifrm_fc[1] = IEEE80211_FC1_DIR_FROMDS; + IEEE80211_ADDR_COPY(wh->ifrm_addr1, + eh->ether_dhost.ether_addr_octet); + IEEE80211_ADDR_COPY(wh->ifrm_addr2, in->in_bssid); + IEEE80211_ADDR_COPY(wh->ifrm_addr3, + eh->ether_shost.ether_addr_octet); + break; + } + + if (isc->isc_flags & IEEE80211_F_WEPON) { + wh->ifrm_fc[1] |= IEEE80211_FC1_WEP; + ivp = mp_header->b_rptr + sizeof (struct ieee80211_frame); + /* + * IV must not duplicate during the lifetime of the key. + * But no mechanism to renew keys is defined in IEEE 802.11 + * WEP. And IV may be duplicated between other stations + * because of the session key itself is shared. + * So we use pseudo random IV for now, though it is not the + * right way. + */ + iv = isc->isc_iv; + /* + * Skip 'bad' IVs from Fluhrer/Mantin/Shamir: + * (B, 255, N) with 3 <= B < 8 + */ + if ((iv & 0xff00) == 0xff00) { + int B = (iv & 0xff0000) >> 16; + if (3 <= B && B < 16) + iv = (B+1) << 16; + } + isc->isc_iv = iv + 1; + +#ifdef ATH_HOST_BIG_ENDIAN + ivp[0] = iv >> 0; + ivp[1] = iv >> 8; + ivp[2] = iv >> 16; +#else + ivp[2] = iv >> 0; + ivp[1] = iv >> 8; + ivp[0] = iv >> 16; +#endif /* ATH_HOST_BIG_ENDIAN */ + + /* Key ID and pad */ + ivp[IEEE80211_WEP_IVLEN] = wep_txkey << 6; + /* + * The ICV length must be included into hdrlen and pktlen. + */ + mp_header->b_wptr += + IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN; + } + + /* + * CRC are added by H/W, not encaped by driver, + * but we must count it in pkt length. + */ + + /* + * fill LLC and SNAP fields. + */ + llc = (struct ieee80211_llc *)mp_header->b_wptr; + llc->illc_dsap = LLC_DSAP; + llc->illc_ssap = LLC_SSAP; + llc->illc_control = LLC_CONTROL; + llc->illc_oc[0] = SNAP_OC0; + llc->illc_oc[1] = SNAP_OC1; + llc->illc_oc[2] = SNAP_OC2; + llc->illc_ether_type = eh->ether_type; + mp_header->b_wptr += sizeof (struct ieee80211_llc); + + return (mp_header); +} + +mblk_t * +ieee80211_decap(mblk_t *mp) +{ + struct ether_header *eh; + struct ieee80211_frame wh; + struct ieee80211_llc *llc; + + if ((mp->b_wptr - mp->b_rptr) < (sizeof (wh) + sizeof (*llc))) { + freemsg(mp); + return (NULL); + } + + bcopy(mp->b_rptr, &wh, sizeof (struct ieee80211_frame)); + mp->b_rptr += sizeof (struct ieee80211_frame); + llc = (struct ieee80211_llc *)mp->b_rptr; + + if (llc->illc_dsap == LLC_DSAP && llc->illc_ssap == LLC_SSAP && + llc->illc_control == LLC_CONTROL && llc->illc_oc[0] == SNAP_OC0 && + llc->illc_oc[1] == SNAP_OC1 && llc->illc_oc[2] == SNAP_OC2) { + mp->b_rptr += sizeof (struct ieee80211_llc); + llc = NULL; + } + /* + * we are sure that the size of ieee80211_frame plus llc is + * larger than the size of ether_header, + * so there has enough space to encap ether_header in this mblk. + */ + mp->b_rptr -= sizeof (struct ether_header); + eh = (struct ether_header *)mp->b_rptr; + switch (wh.ifrm_fc[1] & IEEE80211_FC1_DIR_MASK) { + case IEEE80211_FC1_DIR_NODS: + IEEE80211_ADDR_COPY(eh->ether_dhost.ether_addr_octet, + wh.ifrm_addr1); + IEEE80211_ADDR_COPY(eh->ether_shost.ether_addr_octet, + wh.ifrm_addr2); + break; + case IEEE80211_FC1_DIR_TODS: + IEEE80211_ADDR_COPY(eh->ether_dhost.ether_addr_octet, + wh.ifrm_addr3); + IEEE80211_ADDR_COPY(eh->ether_shost.ether_addr_octet, + wh.ifrm_addr2); + break; + case IEEE80211_FC1_DIR_FROMDS: + IEEE80211_ADDR_COPY(eh->ether_dhost.ether_addr_octet, + wh.ifrm_addr1); + IEEE80211_ADDR_COPY(eh->ether_shost.ether_addr_octet, + wh.ifrm_addr3); + break; + case IEEE80211_FC1_DIR_DSTODS: + /* not yet supported */ + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_decap(): DS to DS\n")); + freemsg(mp); + return (NULL); + } + + if (llc != NULL) + eh->ether_type = htons(mp->b_wptr - mp->b_rptr - sizeof (*eh)); + + return (mp); +} + +/* + * This function doesn't need mutex protection. + */ +void +ieee80211_dump_pkt(uint8_t *buf, int32_t len, int32_t rate, int32_t rssi) +{ + struct ieee80211_frame *wh; + int32_t i; + int8_t buf1[100], buf2[25]; + + bzero(buf1, sizeof (buf1)); + bzero(buf2, sizeof (buf2)); + wh = (struct ieee80211_frame *)buf; + switch (wh->ifrm_fc[1] & IEEE80211_FC1_DIR_MASK) { + case IEEE80211_FC1_DIR_NODS: + (void) sprintf(buf2, "NODS %s", + ieee80211_ether_sprintf(wh->ifrm_addr2)); + (void) strcat(buf1, buf2); + (void) sprintf(buf2, "->%s", + ieee80211_ether_sprintf(wh->ifrm_addr1)); + (void) strcat(buf1, buf2); + (void) sprintf(buf2, "(%s)", + ieee80211_ether_sprintf(wh->ifrm_addr3)); + (void) strcat(buf1, buf2); + break; + case IEEE80211_FC1_DIR_TODS: + (void) sprintf(buf2, "TODS %s", + ieee80211_ether_sprintf(wh->ifrm_addr2)); + (void) strcat(buf1, buf2); + (void) sprintf(buf2, "->%s", + ieee80211_ether_sprintf(wh->ifrm_addr3)); + (void) strcat(buf1, buf2); + (void) sprintf(buf2, "(%s)", + ieee80211_ether_sprintf(wh->ifrm_addr1)); + (void) strcat(buf1, buf2); + break; + case IEEE80211_FC1_DIR_FROMDS: + (void) sprintf(buf2, "FRDS %s", + ieee80211_ether_sprintf(wh->ifrm_addr3)); + (void) strcat(buf1, buf2); + (void) sprintf(buf2, "->%s", + ieee80211_ether_sprintf(wh->ifrm_addr1)); + (void) strcat(buf1, buf2); + (void) sprintf(buf2, "(%s)", + ieee80211_ether_sprintf(wh->ifrm_addr2)); + (void) strcat(buf1, buf2); + break; + case IEEE80211_FC1_DIR_DSTODS: + (void) sprintf(buf2, "DSDS %s", + ieee80211_ether_sprintf((uint8_t *)&wh[1])); + (void) strcat(buf1, buf2); + (void) sprintf(buf2, "->%s ", + ieee80211_ether_sprintf(wh->ifrm_addr3)); + (void) strcat(buf1, buf2); + (void) sprintf(buf2, "%s", + ieee80211_ether_sprintf(wh->ifrm_addr2)); + (void) strcat(buf1, buf2); + (void) sprintf(buf2, "->%s", + ieee80211_ether_sprintf(wh->ifrm_addr1)); + (void) strcat(buf1, buf2); + break; + } + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_dump_pkt(): %s", buf1)); + bzero(buf1, sizeof (buf1)); + + switch (wh->ifrm_fc[0] & IEEE80211_FC0_TYPE_MASK) { + case IEEE80211_FC0_TYPE_DATA: + (void) sprintf(buf2, "data"); + break; + case IEEE80211_FC0_TYPE_MGT: + (void) sprintf(buf2, "%s", + ieee80211_mgt_subtype_name[ + (wh->ifrm_fc[0] & IEEE80211_FC0_SUBTYPE_MASK) + >> IEEE80211_FC0_SUBTYPE_SHIFT]); + break; + default: + (void) sprintf(buf2, "type#%d", + wh->ifrm_fc[0] & IEEE80211_FC0_TYPE_MASK); + break; + } + (void) strcat(buf1, buf2); + if (wh->ifrm_fc[1] & IEEE80211_FC1_WEP) { + (void) sprintf(buf2, " WEP"); + (void) strcat(buf1, buf2); + } + if (rate >= 0) { + (void) sprintf(buf2, " %dM", rate / 2); + (void) strcat(buf1, buf2); + } + if (rssi >= 0) { + (void) sprintf(buf2, " +%d", rssi); + (void) strcat(buf1, buf2); + } + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_dump_pkt(): %s", buf1)); + bzero(buf1, sizeof (buf1)); + + if (len > 0) { + for (i = 0; i < (len > 40 ? 40 : len); i++) { + if ((i & 0x03) == 0) + (void) strcat(buf1, " "); + (void) sprintf(buf2, "%02x", buf[i]); + (void) strcat(buf1, buf2); + } + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_dump_pkt(): %s", + buf1)); + } +} + +/* + * Mark the basic rates for the 11g rate table based on the + * operating mode. For real 11g we mark all the 11b rates + * and 6, 12, and 24 OFDM. For 11b compatibility we mark only + * 11b rates. There's also a pseudo 11a-mode used to mark only + * the basic OFDM rates. + */ +static void +ieee80211_set11gbasicrates(struct ieee80211_rateset *rs, + enum ieee80211_phymode mode) +{ + static const struct ieee80211_rateset basic[] = { + { 3, { 12, 24, 48 } }, /* IEEE80211_MODE_11A */ + { 4, { 2, 4, 11, 22 } }, /* IEEE80211_MODE_11B */ + { 7, { 2, 4, 11, 22, 12, 24, 48 } }, /* IEEE80211_MODE_11G */ + { 0 }, /* IEEE80211_MODE_TURBO */ + }; + int32_t i, j; + + for (i = 0; i < rs->ir_nrates; i++) { + rs->ir_rates[i] &= IEEE80211_RATE_VAL; + for (j = 0; j < basic[mode].ir_nrates; j++) + if (basic[mode].ir_rates[j] == rs->ir_rates[i]) { + rs->ir_rates[i] |= IEEE80211_RATE_BASIC; + break; + } + } +} + +/* + * Set the current phy mode and recalculate the active channel + * set based on the available channels for this mode. Also + * select a new default/current channel if the current one is + * inappropriate for this mode. + */ +static int +ieee80211_setmode(ieee80211com_t *isc, enum ieee80211_phymode mode) +{ + static const uint32_t chanflags[] = { + 0, /* IEEE80211_MODE_AUTO */ + IEEE80211_CHAN_A, /* IEEE80211_MODE_11A */ + IEEE80211_CHAN_B, /* IEEE80211_MODE_11B */ + IEEE80211_CHAN_PUREG, /* IEEE80211_MODE_11G */ + IEEE80211_CHAN_T, /* IEEE80211_MODE_TURBO */ + }; + struct ieee80211channel *ch; + uint32_t modeflags; + int32_t i; + + /* validate new mode */ + if ((isc->isc_modecaps & (1 << mode)) == 0) { + ath_problem("ath: ieee80211_setmode(): mode %u not supported" + " (caps 0x%x)\n", mode, isc->isc_modecaps); + return (EINVAL); + } + + /* + * Verify at least one channel is present in the available + * channel list before committing to the new mode. + */ + ASSERT(mode < ATH_N(chanflags)); + + modeflags = chanflags[mode]; + /* isc_channels size is IEEE80211_CHAN_MAX + 1, so no problem */ + for (i = 0; i <= IEEE80211_CHAN_MAX; i++) { + ch = &isc->isc_channels[i]; + if (mode == IEEE80211_MODE_AUTO) { + /* ignore turbo channels for autoselect */ + if ((ch->ich_flags & ~IEEE80211_CHAN_TURBO) != 0) + break; + } else { + if ((ch->ich_flags & modeflags) == modeflags) + break; + } + } + if (i > IEEE80211_CHAN_MAX) { + ath_problem("ath: ieee80211_setmode(): " + "no channel found for mode %u\n", mode); + return (EINVAL); + } + + /* + * Calculate the active channel set. + */ + bzero(isc->isc_chan_active, sizeof (isc->isc_chan_active)); + for (i = 0; i <= IEEE80211_CHAN_MAX; i++) { + ch = &isc->isc_channels[i]; + if (mode == IEEE80211_MODE_AUTO) { + /* take anything but pure turbo channels */ + if ((ch->ich_flags & ~IEEE80211_CHAN_TURBO) != 0) + setbit(isc->isc_chan_active, i); + } else { + if ((ch->ich_flags & modeflags) == modeflags) + setbit(isc->isc_chan_active, i); + } + } + /* + * If no current/default channel is setup or the current + * channel is wrong for the mode then pick the first + * available channel from the active list. This is likely + * not the right one. + */ + if (isc->isc_ibss_chan == NULL || + isclr(isc->isc_chan_active, + ieee80211_chan2ieee(isc, isc->isc_ibss_chan))) { + for (i = 0; i <= IEEE80211_CHAN_MAX; i++) + if (isset(isc->isc_chan_active, i)) { + isc->isc_ibss_chan = &isc->isc_channels[i]; + break; + } + } + + /* + * Set/reset state flags that influence beacon contents, etc. + */ + + if (isc->isc_caps & IEEE80211_C_SHPREAMBLE) + isc->isc_flags |= IEEE80211_F_SHPREAMBLE; + if (mode == IEEE80211_MODE_11G) { + if (isc->isc_caps & IEEE80211_C_SHSLOT) + isc->isc_flags |= IEEE80211_F_SHSLOT; + ieee80211_set11gbasicrates(&isc->isc_sup_rates[mode], + IEEE80211_MODE_11G); + } else { + isc->isc_flags &= ~(IEEE80211_F_SHSLOT); + } + + /* + * Setup an initial rate set according to the + * current/default channel. This will be changed + * when scanning but must exist now so drivers have + * consistent state of ic_ibss_chan. + */ + if (isc->isc_bss) + isc->isc_bss->in_rates = isc->isc_sup_rates[mode]; + isc->isc_curmode = mode; + + return (0); +} + +/* + * If (its return value & IEEE80211_RATE_BASIC != 0), + * the rate negotiation or fix rate is failed. + */ +static int +ieee80211_fix_rate(ieee80211com_t *isc, + struct ieee80211_node *in, int32_t flags) +{ + int32_t i, j, ignore, error; + int32_t okrate, badrate; + struct ieee80211_rateset *srs, *nrs; + uint8_t r; + + error = 0; + okrate = badrate = 0; + srs = &isc->isc_sup_rates[ieee80211_chan2mode(isc, in->in_chan)]; + nrs = &in->in_rates; + for (i = 0; i < in->in_rates.ir_nrates; ) { + ignore = 0; + if (flags & IEEE80211_F_DOSORT) { + /* + * Sort rates. + */ + for (j = i + 1; j < nrs->ir_nrates; j++) { + if (IEEE80211_RV(nrs->ir_rates[i]) > + IEEE80211_RV(nrs->ir_rates[j])) { + r = nrs->ir_rates[i]; + nrs->ir_rates[i] = nrs->ir_rates[j]; + nrs->ir_rates[j] = r; + } + } + } + r = nrs->ir_rates[i] & IEEE80211_RATE_VAL; + badrate = r; + if (flags & IEEE80211_F_DOFRATE) { + /* + * Apply fixed rate constraint. Note that we do + * not apply the constraint to basic rates as + * otherwise we may not be able to associate if + * the rate set we submit to the AP is invalid + * (e.g. fix rate at 36Mb/s which is not a basic + * rate for 11a operation). + */ + if ((nrs->ir_rates[i] & IEEE80211_RATE_BASIC) == 0 && + isc->isc_fixed_rate >= 0 && + r != IEEE80211_RV(srs->ir_rates + [isc->isc_fixed_rate])) + ignore++; + } + if (flags & IEEE80211_F_DONEGO) { + /* + * Check against supported rates. + */ + for (j = 0; j < srs->ir_nrates; j++) { + if (r == IEEE80211_RV(srs->ir_rates[j])) + break; + } + if (j == srs->ir_nrates) { + if (nrs->ir_rates[i] & IEEE80211_RATE_BASIC) + error++; + ignore++; + } + } + if (flags & IEEE80211_F_DODEL) { + /* + * Delete unacceptable rates. + */ + if (ignore) { + nrs->ir_nrates--; + for (j = i; j < nrs->ir_nrates; j++) + nrs->ir_rates[j] = nrs->ir_rates[j + 1]; + nrs->ir_rates[j] = 0; + continue; + } + } + if (!ignore) + okrate = nrs->ir_rates[i]; + i++; + } + if (okrate == 0 || error != 0) + return (badrate | IEEE80211_RATE_BASIC); + else + return (IEEE80211_RV(okrate)); +} + +/* + * Complete a scan of potential channels. + */ +static void +ieee80211_end_scan(ieee80211com_t *isc) +{ + struct ieee80211_node *in, *selbs; + uint8_t rate; + int32_t fail; + + ASSERT(isc->isc_state == IEEE80211_S_SCAN); + ASSERT(mutex_owned(&isc->isc_genlock)); + + isc->isc_flags &= ~IEEE80211_F_ASCAN; + cv_broadcast(&isc->isc_scan_cv); + in = list_head(&isc->isc_in_list); + + if (in == NULL) { + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_end_scan(): " + "no scan candidate\n")); +notfound: + if (isc->isc_opmode == IEEE80211_M_IBSS && + (isc->isc_flags & IEEE80211_F_IBSSON) && + isc->isc_des_esslen != 0) { + ieee80211_create_ibss(isc, isc->isc_ibss_chan); + return; + } + mutex_exit(&isc->isc_genlock); + delay(drv_usectohz(200000)); + mutex_enter(&isc->isc_genlock); + ieee80211_begin_scan(isc, isc->isc_bss); + return; + } + + selbs = NULL; + for (; in != NULL; in = list_next(&isc->isc_in_list, in)) { + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_end_scan(): isc_bss->in_bssid=%s", + ieee80211_ether_sprintf(in->in_bssid))); + if (in->in_fails) { + /* + * The configuration of the access points may change + * during my scan. So delete the entry for the AP + * and retry to associate if there is another beacon. + */ + if (in->in_fails++ > 2) + ieee80211_free_node(isc, in); + continue; + } + fail = 0; + if (in->in_chan == NULL || in->in_chan->ich_flags == 0) + fail |= 0x01; + if (isc->isc_des_chan != + (struct ieee80211channel *)IEEE80211_CHAN_ANY && + in->in_chan != isc->isc_des_chan) + fail |= 0x01; + if (isc->isc_opmode == IEEE80211_M_IBSS) { + if ((in->in_capinfo & IEEE80211_CAPINFO_IBSS) == 0) + fail |= 0x02; + } else { + if ((in->in_capinfo & IEEE80211_CAPINFO_ESS) == 0) + fail |= 0x02; + } + + if (isc->isc_flags & IEEE80211_F_WEPON) { + if ((in->in_capinfo & IEEE80211_CAPINFO_PRIVACY) == 0) + fail |= 0x04; + } else { + if (in->in_capinfo & IEEE80211_CAPINFO_PRIVACY) + fail |= 0x04; + } + + rate = ieee80211_fix_rate(isc, in, IEEE80211_F_DONEGO); + if (rate & IEEE80211_RATE_BASIC) + fail |= 0x08; + if (isc->isc_des_esslen != 0 && + (in->in_esslen != isc->isc_des_esslen || + bcmp(in->in_essid, isc->isc_des_essid, + isc->isc_des_esslen) != 0)) + fail |= 0x10; + if ((isc->isc_flags & IEEE80211_F_DESBSSID) && + !IEEE80211_ADDR_EQ(isc->isc_des_bssid, in->in_bssid)) + fail |= 0x20; + if (!fail) { + if (selbs == NULL) + selbs = in; + else if (ieee80211_get_rssi(in) > + ieee80211_get_rssi(selbs)) + selbs = in; + } + } + if (selbs == NULL) + goto notfound; + bcopy(selbs, isc->isc_bss, sizeof (struct ieee80211_node)); + if (isc->isc_opmode == IEEE80211_M_IBSS) { + (void) ieee80211_fix_rate(isc, isc->isc_bss, + IEEE80211_F_DOFRATE | IEEE80211_F_DONEGO | + IEEE80211_F_DODEL); + if (isc->isc_bss->in_rates.ir_nrates == 0) { + selbs->in_fails++; + goto notfound; + } + (void) _ieee80211_new_state(isc, IEEE80211_S_RUN, -1); + } else + (void) _ieee80211_new_state(isc, IEEE80211_S_AUTH, -1); +} + + +/* + * Switch to the next channel marked for scanning. + * This one is only called by multi-func thread. + */ +static void +ieee80211_next_scan(ieee80211com_t *isc) +{ + struct ieee80211channel *chan; + + ASSERT(isc->isc_state == IEEE80211_S_SCAN); + ASSERT(mutex_owned(&isc->isc_genlock)); + + chan = isc->isc_bss->in_chan; + for (;;) { + if (++chan > &isc->isc_channels[IEEE80211_CHAN_MAX]) + chan = &isc->isc_channels[0]; + if (isset(isc->isc_chan_scan, ieee80211_chan2ieee(isc, chan))) { + /* + * Honor channels marked passive-only + * during an active scan. + */ + if ((isc->isc_flags & IEEE80211_F_ASCAN) == 0 || + (chan->ich_flags & IEEE80211_CHAN_PASSIVE) == 0) + break; + } + if (chan == isc->isc_bss->in_chan) { + ieee80211_end_scan(isc); + return; + } + } + clrbit(isc->isc_chan_scan, ieee80211_chan2ieee(isc, chan)); + + isc->isc_bss->in_chan = chan; + (void) _ieee80211_new_state(isc, IEEE80211_S_SCAN, -1); +} + + +static void +ieee80211_setup_node(ieee80211com_t *isc, + struct ieee80211_node *in, uint8_t *macaddr) +{ + int32_t hash; + + ASSERT(mutex_owned(&isc->isc_genlock)); + + IEEE80211_ADDR_COPY(in->in_macaddr, macaddr); + hash = IEEE80211_NODE_HASH(macaddr); + list_insert_tail(&isc->isc_in_list, in); + list_insert_tail(&isc->isc_inhash_list[hash], in); + /* + * Note we don't enable the inactive timer when acting + * as a station. Nodes created in this mode represent + * AP's identified while scanning. If we time them out + * then several things happen: we can't return the data + * to users to show the list of AP's we encountered, and + * more importantly, we'll incorrectly deauthenticate + * ourself because the inactivity timer will kick us off. + */ + if (isc->isc_opmode != IEEE80211_M_STA) + isc->isc_inact_timeout = IEEE80211_INACT_WAIT; +} + +static struct ieee80211_node * +ieee80211_alloc_node(ieee80211com_t *isc, uint8_t *macaddr) +{ + struct ieee80211_node *in = (*isc->isc_node_alloc)(isc); + bzero(in, sizeof (struct ieee80211_node)); + ieee80211_setup_node(isc, in, macaddr); + return (in); +} + +static struct ieee80211_node * +ieee80211_dup_bss(ieee80211com_t *isc, uint8_t *macaddr) +{ + struct ieee80211_node *in; + + in = kmem_zalloc(sizeof (struct ieee80211_node), KM_SLEEP); + ieee80211_setup_node(isc, in, macaddr); + return (in); +} + +/* + * Find a node state block given the mac address. Note that + * this returns the first node found with the mac address. + */ +struct ieee80211_node * +ieee80211_find_node(ieee80211com_t *isc, uint8_t *macaddr) +{ + struct ieee80211_node *in; + int32_t hash; + + hash = IEEE80211_NODE_HASH(macaddr); + in = list_head(&isc->isc_inhash_list[hash]); + while (in != NULL) { + if (IEEE80211_ADDR_EQ(in->in_macaddr, macaddr)) + break; + in = list_next(&isc->isc_inhash_list[hash], in); + } + return (in); +} + +/* + * Like find but search based on the channel too. + */ +struct ieee80211_node * +ieee80211_lookup_node(ieee80211com_t *isc, uint8_t *macaddr, + struct ieee80211channel *chan) +{ + struct ieee80211_node *in; + int32_t hash; + + hash = IEEE80211_NODE_HASH(macaddr); + in = list_head(&isc->isc_inhash_list[hash]); + while (in != NULL) { + if (IEEE80211_ADDR_EQ(in->in_macaddr, macaddr) && + (in->in_chan == chan)) + break; + in = list_next(&isc->isc_inhash_list[hash], in); + } + return (in); +} + + + +/* + * Install received rate set information in the node's state block. + * If (its return value & IEEE80211_RATE_BASIC != 0), + * the rate negotiation or fix rate is failed. + */ +static int32_t +ieee80211_setup_rates(ieee80211com_t *isc, struct ieee80211_node *in, + uint8_t *rates, uint8_t *xrates, int32_t flags) +{ + struct ieee80211_rateset *rs = &in->in_rates; + + bzero(rs, sizeof (*rs)); + rs->ir_nrates = rates[1]; + bcopy(rates + 2, rs->ir_rates, rs->ir_nrates); + if (xrates != NULL) { + uint8_t nxrates; + /* + * Tack on 11g extended supported rate element. + */ + nxrates = xrates[1]; + if (rs->ir_nrates + nxrates > IEEE80211_RATE_MAXSIZE) { + nxrates = IEEE80211_RATE_MAXSIZE - rs->ir_nrates; + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_setup_rates(): extended rate set" + " too large; only using %u of %u rates\n", + nxrates, xrates[1])); + } + bcopy(xrates + 2, rs->ir_rates + rs->ir_nrates, nxrates); + rs->ir_nrates += nxrates; + } + return (ieee80211_fix_rate(isc, in, flags)); +} + + +/* + * Misc management frame encapsulation functions. + */ +static uint8_t * +ieee80211_add_rates(uint8_t *frm, const struct ieee80211_rateset *rs) +{ + int32_t nrates; + + *frm++ = IEEE80211_ELEMID_RATES; + nrates = rs->ir_nrates; + if (nrates > IEEE80211_RATE_SIZE) + nrates = IEEE80211_RATE_SIZE; + *frm++ = nrates; + bcopy(rs->ir_rates, frm, nrates); + return (frm + nrates); +} + +static uint8_t * +ieee80211_add_xrates(uint8_t *frm, const struct ieee80211_rateset *rs) +{ + /* + * Add an extended supported rates element if operating in 11g mode. + */ + if (rs->ir_nrates > IEEE80211_RATE_SIZE) { + int32_t nrates = rs->ir_nrates - IEEE80211_RATE_SIZE; + *frm++ = IEEE80211_ELEMID_XRATES; + *frm++ = nrates; + bcopy(rs->ir_rates + IEEE80211_RATE_SIZE, frm, nrates); + frm += nrates; + } + return (frm); +} + +static uint8_t * +ieee80211_add_ssid(uint8_t *frm, const uint8_t *ssid, uint32_t len) +{ + *frm++ = IEEE80211_ELEMID_SSID; + *frm++ = len; + bcopy(ssid, frm, len); + return (frm + len); +} + +/* + * Following functions are responsible for management frame encapsulation. + */ +static int32_t +ieee80211_send_prreq(ieee80211com_t *isc, struct ieee80211_node *in, + int32_t type, int32_t dummy) +{ + int32_t ret, pktlen; + mblk_t *mp; + uint8_t *frm; + enum ieee80211_phymode mode; + + _NOTE(ARGUNUSED(dummy)); + + ASSERT(mutex_owned(&isc->isc_genlock)); + /* + * prreq frame format + * [tlv] ssid + * [tlv] supported rates + * [tlv] extended supported rates + */ + pktlen = sizeof (struct ieee80211_frame) + + 2 + isc->isc_des_esslen + + 2 + IEEE80211_RATE_SIZE + + 2 + (IEEE80211_RATE_MAXSIZE - IEEE80211_RATE_SIZE); + mp = allocb(pktlen, BPRI_MED); + if (mp == NULL) { + ath_problem("ath: ieee80211_send_prreq(): no space\n"); + return (ENOMEM); + } + mp->b_rptr += sizeof (struct ieee80211_frame); + + frm = mp->b_rptr; + frm = ieee80211_add_ssid(frm, isc->isc_des_essid, isc->isc_des_esslen); + mode = ieee80211_chan2mode(isc, in->in_chan); + frm = ieee80211_add_rates(frm, &isc->isc_sup_rates[mode]); + frm = ieee80211_add_xrates(frm, &isc->isc_sup_rates[mode]); + mp->b_wptr = frm; + + ret = ieee80211_mgmt_output(isc, in, mp, type); + isc->isc_mgt_timeout = IEEE80211_TRANS_WAIT; + + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_send_prreq() " + "channel=%u\n", ieee80211_chan2ieee(isc, in->in_chan))); + + return (ret); +} + +static int32_t +ieee80211_send_prresp(ieee80211com_t *isc, struct ieee80211_node *bs0, + int32_t type, int32_t dummy) +{ + mblk_t *mp; + uint8_t *frm; + struct ieee80211_node *in = isc->isc_bss; + uint16_t capinfo; + int32_t pktlen; + + _NOTE(ARGUNUSED(dummy)); + + ASSERT(mutex_owned(&isc->isc_genlock)); + /* + * probe response frame format + * [8] time stamp + * [2] beacon interval + * [2] cabability information + * [tlv] ssid + * [tlv] supported rates + * [tlv] parameter set (IBSS) + * [tlv] extended supported rates + */ + pktlen = sizeof (struct ieee80211_frame) + + 8 + 2 + 2 + 2 + + 2 + in->in_esslen + + 2 + IEEE80211_RATE_SIZE + + 6 + + 2 + (IEEE80211_RATE_MAXSIZE - IEEE80211_RATE_SIZE); + mp = allocb(pktlen, BPRI_MED); + if (mp == NULL) { + ath_problem("ath: ieee80211_send_prresp(): alloc failed.\n"); + return (ENOMEM); + } + mp->b_rptr += sizeof (struct ieee80211_frame); + frm = mp->b_rptr; + + bzero(frm, 8); /* timestamp */ + frm += 8; + + *(uint16_t *)frm = LE_16(in->in_intval); + frm += 2; + + if (isc->isc_opmode == IEEE80211_M_IBSS) + capinfo = IEEE80211_CAPINFO_IBSS; + else + capinfo = IEEE80211_CAPINFO_ESS; + if (isc->isc_flags & IEEE80211_F_WEPON) + capinfo |= IEEE80211_CAPINFO_PRIVACY; + *(uint16_t *)frm = LE_16(capinfo); + frm += 2; + + frm = ieee80211_add_ssid(frm, in->in_essid, in->in_esslen); + frm = ieee80211_add_rates(frm, &in->in_rates); + + if (isc->isc_opmode == IEEE80211_M_IBSS) { + *frm++ = IEEE80211_ELEMID_IBSSPARMS; + *frm++ = 2; + *frm++ = 0; *frm++ = 0; /* ATIM window */ + } else { /* IEEE80211_M_HOSTAP */ + /* TIM */ + *frm++ = IEEE80211_ELEMID_TIM; + *frm++ = 4; /* length */ + *frm++ = 0; /* DTIM count */ + *frm++ = 1; /* DTIM period */ + *frm++ = 0; /* bitmap control */ + *frm++ = 0; /* Partial Virtual Bitmap (variable length) */ + } + frm = ieee80211_add_xrates(frm, &in->in_rates); + mp->b_wptr = frm; + + return (ieee80211_mgmt_output(isc, bs0, mp, type)); +} + +static int32_t +ieee80211_send_auth(ieee80211com_t *isc, struct ieee80211_node *in, + int32_t type, int32_t seq) +{ + mblk_t *mp; + uint16_t *frm; + int32_t ret, pktlen; + + ASSERT(mutex_owned(&isc->isc_genlock)); + + pktlen = sizeof (struct ieee80211_frame) + 3 * sizeof (uint16_t); + mp = allocb(pktlen, BPRI_MED); + if (mp == NULL) { + ath_problem("ath: ieee80211_send_auth(): allocb failed\n"); + return (ENOMEM); + } + mp->b_wptr = mp->b_rptr + pktlen; + mp->b_rptr += sizeof (struct ieee80211_frame); + + frm = (uint16_t *)mp->b_rptr; + /* shared key auth */ + frm[0] = LE_16(IEEE80211_AUTH_ALG_OPEN); + frm[1] = LE_16(seq); + frm[2] = 0; /* status */ + ret = ieee80211_mgmt_output(isc, in, mp, type); + if (isc->isc_opmode == IEEE80211_M_STA) + isc->isc_mgt_timeout = IEEE80211_TRANS_WAIT; + return (ret); +} + +static int32_t +ieee80211_send_deauth(ieee80211com_t *isc, struct ieee80211_node *in, + int32_t type, int32_t reason) +{ + mblk_t *mp; + uint16_t *frm; + int32_t pktlen; + + ASSERT(mutex_owned(&isc->isc_genlock)); + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_send_deauth(): station %s deauthenticate", + " (reason %d)\n", ieee80211_ether_sprintf(in->in_macaddr), reason)); + pktlen = sizeof (struct ieee80211_frame) + sizeof (uint16_t); + mp = allocb(pktlen, BPRI_MED); + if (mp == NULL) { + ath_problem("ath: ieee80211_send_deauth(): allocb failed\n"); + return (ENOMEM); + } + mp->b_wptr = mp->b_rptr + pktlen; + mp->b_rptr += sizeof (struct ieee80211_frame); + + frm = (uint16_t *)mp->b_rptr; + frm[0] = LE_16(reason); + + return (ieee80211_mgmt_output(isc, in, mp, type)); +} + +static int32_t +ieee80211_send_asreq(ieee80211com_t *isc, struct ieee80211_node *in, + int32_t type, int32_t dummy) +{ + mblk_t *mp; + uint8_t *frm; + uint16_t capinfo = 0; + int32_t ret, pktlen; + + _NOTE(ARGUNUSED(dummy)); + + ASSERT(mutex_owned(&isc->isc_genlock)); + /* + * asreq frame format + * [2] capability information + * [2] listen interval + * [6*] current AP address (reassoc only) + * [tlv] ssid + * [tlv] supported rates + * [tlv] extended supported rates + */ + pktlen = sizeof (struct ieee80211_frame) + + sizeof (capinfo) + sizeof (uint16_t) + IEEE80211_ADDR_LEN + + 2 + in->in_esslen + 2 + IEEE80211_RATE_SIZE + + 2 + (IEEE80211_RATE_MAXSIZE - IEEE80211_RATE_SIZE); + mp = allocb(pktlen, BPRI_MED); + if (mp == NULL) { + ath_problem("ath: ieee80211_send_asreq: allocb failed\n"); + return (ENOMEM); + } + mp->b_rptr += sizeof (struct ieee80211_frame); + + frm = (uint8_t *)mp->b_rptr; + + capinfo = 0; + if (isc->isc_opmode == IEEE80211_M_IBSS) + capinfo |= IEEE80211_CAPINFO_IBSS; + else /* IEEE80211_M_STA */ + capinfo |= IEEE80211_CAPINFO_ESS; + if (isc->isc_flags & IEEE80211_F_WEPON) + capinfo |= IEEE80211_CAPINFO_PRIVACY; + if (isc->isc_flags & IEEE80211_F_SHPREAMBLE) + capinfo |= IEEE80211_CAPINFO_SHORT_PREAMBLE; + if (isc->isc_flags & IEEE80211_F_SHSLOT) + capinfo |= IEEE80211_CAPINFO_SHORT_SLOTTIME; + capinfo |= 0x0020; + *(uint16_t *)frm = LE_16(capinfo); + frm += 2; + + *(uint16_t *)frm = LE_16(isc->isc_lintval); + frm += 2; + + if (type == IEEE80211_FC0_SUBTYPE_REASSOC_REQ) { + IEEE80211_ADDR_COPY(frm, isc->isc_bss->in_bssid); + frm += IEEE80211_ADDR_LEN; + } + + frm = ieee80211_add_ssid(frm, in->in_essid, in->in_esslen); + frm = ieee80211_add_rates(frm, &in->in_rates); + frm = ieee80211_add_xrates(frm, &in->in_rates); + mp->b_wptr = frm; + ret = ieee80211_mgmt_output(isc, in, mp, type); + isc->isc_mgt_timeout = IEEE80211_TRANS_WAIT; + return (ret); +} + +static int32_t +ieee80211_send_asresp(ieee80211com_t *isc, struct ieee80211_node *in, + int32_t type, int32_t status) +{ + mblk_t *mp; + uint8_t *frm; + uint16_t capinfo; + int32_t pktlen; + + ASSERT(mutex_owned(&isc->isc_genlock)); + /* + * asreq frame format + * [2] capability information + * [2] status + * [2] association ID + * [tlv] supported rates + * [tlv] extended supported rates + */ + pktlen = sizeof (struct ieee80211_frame) + + sizeof (capinfo) + + sizeof (uint16_t) + + sizeof (uint16_t) + + 2 + IEEE80211_RATE_SIZE + + 2 + (IEEE80211_RATE_MAXSIZE - IEEE80211_RATE_SIZE); + mp = allocb(pktlen, BPRI_MED); + if (mp == NULL) { + ath_problem("ath: ieee80211_send_asresp: allocb failed\n"); + return (ENOMEM); + } + mp->b_rptr += sizeof (struct ieee80211_frame); + frm = (uint8_t *)mp->b_rptr; + + capinfo = IEEE80211_CAPINFO_ESS; + if (isc->isc_flags & IEEE80211_F_WEPON) + capinfo |= IEEE80211_CAPINFO_PRIVACY; + *(uint16_t *)frm = LE_16(capinfo); + frm += 2; + + *(uint16_t *)frm = LE_16(status); + frm += 2; + + if (status == IEEE80211_STATUS_SUCCESS && in != NULL) + *(uint16_t *)frm = LE_16(in->in_associd); + else + *(uint16_t *)frm = LE_16(0); + frm += 2; + + if (in != NULL) { + frm = ieee80211_add_rates(frm, &in->in_rates); + frm = ieee80211_add_xrates(frm, &in->in_rates); + } else { + frm = ieee80211_add_rates(frm, &isc->isc_bss->in_rates); + frm = ieee80211_add_xrates(frm, &isc->isc_bss->in_rates); + } + mp->b_wptr = frm; + + return (ieee80211_mgmt_output(isc, in, mp, type)); +} + +static int32_t +ieee80211_send_disassoc(ieee80211com_t *isc, struct ieee80211_node *in, + int32_t type, int32_t reason) +{ + mblk_t *mp; + uint16_t *frm; + int32_t pktlen; + + _NOTE(ARGUNUSED(type)) + + ASSERT(mutex_owned(&isc->isc_genlock)); + + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_send_disassoc(): station %s disassociate", + " (reason %d)\n", ieee80211_ether_sprintf(in->in_macaddr), reason)); + pktlen = sizeof (struct ieee80211_frame) + sizeof (uint16_t); + mp = allocb(pktlen, BPRI_MED); + if (mp == NULL) { + ath_problem("ath: ieee80211_send_asresp: allocb failed\n"); + return (ENOMEM); + } + mp->b_wptr = mp->b_rptr + pktlen; + mp->b_rptr += sizeof (struct ieee80211_frame); + frm = (uint16_t *)mp->b_rptr; + frm[0] = LE_16(reason); + return (ieee80211_mgmt_output(isc, in, mp, + IEEE80211_FC0_SUBTYPE_DISASSOC)); +} + +/* + * This handles both beacon and probe response frames. + */ +static void +ieee80211_recv_beacon(ieee80211com_t *isc, mblk_t *mp, int32_t rssi, + uint32_t rstamp, uint32_t rantenna) +{ + struct ieee80211_frame *wh; + struct ieee80211_node *in; + uint8_t *frm, *efrm, *tstamp, *bintval, *capinfo, *ssid; + uint8_t *rates, *xrates; + uint8_t chan, bchan, fhindex, erp; + uint16_t fhdwell; + + ASSERT(mutex_owned(&isc->isc_genlock)); + + if (isc->isc_opmode != IEEE80211_M_IBSS && + isc->isc_state != IEEE80211_S_SCAN) { + return; + } + + wh = (struct ieee80211_frame *)mp->b_rptr; + frm = (uint8_t *)&wh[1]; + efrm = mp->b_wptr; + /* + * beacon frame format + * [8] time stamp + * [2] beacon interval + * [2] cabability information + * [tlv] ssid + * [tlv] supported rates + * [tlv] country information + * [tlv] parameter set (FH/DS) + * [tlv] erp information + * [tlv] extended supported rates + */ + tstamp = frm; + frm += 8; + bintval = frm; + frm += 2; + capinfo = frm; + frm += 2; + ssid = rates = xrates = NULL; + bchan = ieee80211_chan2ieee(isc, isc->isc_bss->in_chan); + chan = bchan; + fhdwell = 0; + fhindex = 0; + erp = 0; + while (frm < efrm) { + switch (*frm) { + case IEEE80211_ELEMID_SSID: + ssid = frm; + break; + case IEEE80211_ELEMID_RATES: + rates = frm; + break; + case IEEE80211_ELEMID_COUNTRY: + /* + * don't care 'country', otherwise, + * just do: + * country = frm; + */ + break; + case IEEE80211_ELEMID_FHPARMS: + if (isc->isc_phytype == IEEE80211_T_FH) { + fhdwell = (frm[3] << 8) | frm[2]; + chan = IEEE80211_FH_CHAN(frm[4], frm[5]); + fhindex = frm[6]; + } + break; + case IEEE80211_ELEMID_DSPARMS: + /* + * hack this since depending on phytype + * is problematic for multi-mode devices. + */ + if (isc->isc_phytype != IEEE80211_T_FH) + chan = frm[2]; + break; + case IEEE80211_ELEMID_TIM: + break; + case IEEE80211_ELEMID_XRATES: + xrates = frm; + break; + case IEEE80211_ELEMID_ERP: + if (frm[1] != 1) { + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_recv_beacon(): " + "%s: invalid ERP element; " + "length %u, expecting 1\n", + "ieee80211_recv_beacon", frm[1])); + break; + } + erp = frm[2]; + break; + default: + break; + } + frm += frm[1] + 2; + } + IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_SIZE, wh); + IEEE80211_VERIFY_ELEMENT(ssid, IEEE80211_NWID_LEN, wh); + + if (isclr(isc->isc_chan_active, chan)) { + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_recv_beacon(): " + "ignore %s with invalid channel %u\n", + IEEE80211_ISPROBE(wh) ? "probe response" : "beacon", chan)); + return; + } + if (chan != bchan && isc->isc_phytype != IEEE80211_T_FH) { + /* + * Frame was received on a channel different from the + * one indicated in the DS/FH params element id; silently + * discard it. + * + * NB: this can happen due to signal leakage. + */ + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_recv_beacon(): " + "ignore %s phytype %u on channel %u marked for %u\n", + IEEE80211_ISPROBE(wh) ? "probe response" : "beacon", + isc->isc_phytype, + bchan, chan)); + return; + } + + /* + * Use mac and channel for lookup so we collect all + * potential AP's when scanning. Otherwise we may + * see the same AP on multiple channels and will only + * record the last one. We could filter APs here based + * on rssi, etc. but leave that to the end of the scan + * so we can keep the selection criteria in one spot. + * This may result in a bloat of the scanned AP list but + * it shouldn't be too much. + */ + in = ieee80211_lookup_node(isc, wh->ifrm_addr2, + &isc->isc_channels[chan]); + if (in == NULL || isc->isc_state == IEEE80211_S_SCAN) { + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_recv_beacon(): essid = %s\n", + ieee80211_essid_sprintf(ssid + 2, ssid[1]))); + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_recv_beacon(): " + "from %s\n", ieee80211_ether_sprintf(wh->ifrm_addr2))); + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_recv_beacon(): to %s\n", + ieee80211_ether_sprintf(wh->ifrm_addr1))); + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_recv_beacon(): " + "caps 0x%x bintval %u erp 0x%x\n", + LE_16(*(uint16_t *)capinfo), + LE_16(*(uint16_t *)bintval), erp)); + } + + if (in == NULL) { + in = ieee80211_alloc_node(isc, wh->ifrm_addr2); + if (in == NULL) + return; + in->in_esslen = ssid[1]; + bzero(in->in_essid, sizeof (in->in_essid)); + bcopy(ssid + 2, in->in_essid, ssid[1]); + } else if (ssid[1] != 0 && IEEE80211_ISPROBE(wh)) { + /* + * Update ESSID at probe response to adopt hidden AP by + * Lucent/Cisco, which announces null ESSID in beacon. + */ + in->in_esslen = ssid[1]; + bzero(in->in_essid, sizeof (in->in_essid)); + bcopy(ssid + 2, in->in_essid, ssid[1]); + } + + IEEE80211_ADDR_COPY(in->in_bssid, wh->ifrm_addr3); + ieee80211_add_recvhist(in, rssi, rstamp, rantenna); + bcopy(tstamp, in->in_tstamp, sizeof (in->in_tstamp)); + in->in_intval = LE_16(*(uint16_t *)bintval); + in->in_capinfo = LE_16(*(uint16_t *)capinfo); + in->in_chan = &isc->isc_channels[chan]; + in->in_fhdwell = fhdwell; + in->in_fhindex = fhindex; + in->in_erp = erp; + /* in_chan must have been setup */ + (void) ieee80211_setup_rates(isc, in, rates, xrates, + IEEE80211_F_DOSORT); +} + +static void +ieee80211_recv_prreq(ieee80211com_t *isc, mblk_t *mp, int32_t rssi, + uint32_t rstamp, uint32_t rantenna) +{ + struct ieee80211_frame *wh; + struct ieee80211_node *in; + uint8_t *frm, *efrm, *ssid, *rates, *xrates; + uint8_t rate; + int32_t allocbs; + + ASSERT(mutex_owned(&isc->isc_genlock)); + + if (isc->isc_opmode == IEEE80211_M_STA) + return; + if (isc->isc_state != IEEE80211_S_RUN) + return; + + wh = (struct ieee80211_frame *)mp->b_rptr; + frm = (uint8_t *)&wh[1]; + efrm = mp->b_wptr; + /* + * prreq frame format + * [tlv] ssid + * [tlv] supported rates + * [tlv] extended supported rates + */ + ssid = rates = xrates = NULL; + while (frm < efrm) { + switch (*frm) { + case IEEE80211_ELEMID_SSID: + ssid = frm; + break; + case IEEE80211_ELEMID_RATES: + rates = frm; + break; + case IEEE80211_ELEMID_XRATES: + xrates = frm; + break; + } + frm += frm[1] + 2; + } + IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_SIZE, wh); + IEEE80211_VERIFY_ELEMENT(ssid, IEEE80211_NWID_LEN, wh); + if (ssid[1] != 0 && + (ssid[1] != isc->isc_bss->in_esslen || + bcmp(ssid + 2, isc->isc_bss->in_essid, + isc->isc_bss->in_esslen) != 0)) { + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_recv_prreq(): " + "ssid unmatch %s from %s", + ieee80211_essid_sprintf(ssid + 2, ssid[1]), + ieee80211_ether_sprintf(wh->ifrm_addr2))); + return; + } + + in = ieee80211_find_node(isc, wh->ifrm_addr2); + if (in == NULL) { + in = ieee80211_dup_bss(isc, wh->ifrm_addr2); + if (in == NULL) { + ath_problem("ath: ieee80211_recv_prreq(): " + "dup bss failed\n"); + return; + } + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_recv_prreq: new req from %s\n", + ieee80211_ether_sprintf(wh->ifrm_addr2))); + allocbs = 1; + } else + allocbs = 0; + ieee80211_add_recvhist(in, rssi, rstamp, rantenna); + rate = ieee80211_setup_rates(isc, in, rates, xrates, + IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE + | IEEE80211_F_DONEGO | IEEE80211_F_DODEL); + if (rate & IEEE80211_RATE_BASIC) { + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_recv_prreq(): " + "rate negotiation fail: %s\n", + ieee80211_ether_sprintf(wh->ifrm_addr2))); + } else { + IEEE80211_SEND_MGMT(isc, in, IEEE80211_FC0_SUBTYPE_PROBE_RESP, + 0); + } + + if (allocbs && isc->isc_opmode == IEEE80211_M_HOSTAP) + ieee80211_free_node(isc, in); + else + ieee80211_unref_node(&in); +} + +static void +ieee80211_recv_auth(ieee80211com_t *isc, mblk_t *mp, int32_t rssi, + uint32_t rstamp, uint32_t rantenna) +{ + struct ieee80211_frame *wh; + struct ieee80211_node *in; + uint8_t *frm, *efrm; + uint16_t algo, seq, status; + + _NOTE(ARGUNUSED(rssi)) + _NOTE(ARGUNUSED(rstamp)) + _NOTE(ARGUNUSED(rantenna)) + _NOTE(ARGUNUSED(mp)) + + ASSERT(mutex_owned(&isc->isc_genlock)); + + wh = (struct ieee80211_frame *)mp->b_rptr; + frm = (uint8_t *)&wh[1]; + efrm = mp->b_wptr; + /* + * auth frame format + * [2] algorithm + * [2] sequence + * [2] status + * [tlv*] challenge + */ + if (frm + 6 > efrm) { + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ieee80211_recv_auth: too short from %s\n", + ieee80211_ether_sprintf(wh->ifrm_addr2))); + return; + } + + algo = LE_16(*(uint16_t *)frm); + seq = LE_16(*(uint16_t *)(frm + 2)); + status = LE_16(*(uint16_t *)(frm + 4)); + if (algo != IEEE80211_AUTH_ALG_OPEN) { + /* shared key auth */ + ath_problem("ath: ieee80211_recv_auth(): " + "unsupported auth %d from %s\n", + algo, ieee80211_ether_sprintf(wh->ifrm_addr2)); + return; + } + switch (isc->isc_opmode) { + case IEEE80211_M_IBSS: + if (isc->isc_state != IEEE80211_S_RUN || seq != 1) + return; + (void) _ieee80211_new_state(isc, IEEE80211_S_AUTH, + wh->ifrm_fc[0] & IEEE80211_FC0_SUBTYPE_MASK); + break; + + case IEEE80211_M_AHDEMO: + break; + + case IEEE80211_M_HOSTAP: + break; + + case IEEE80211_M_STA: + if (isc->isc_state != IEEE80211_S_AUTH || seq != 2) + return; + if (status != 0) { + ath_log("ath: ieee80211_recv_auth(): " + "authentication failed (reason %d) for %s\n", + status, ieee80211_ether_sprintf(wh->ifrm_addr3)); + in = ieee80211_find_node(isc, wh->ifrm_addr2); + if (in != NULL) + in->in_fails++; + return; + } + (void) _ieee80211_new_state(isc, IEEE80211_S_ASSOC, + wh->ifrm_fc[0] & IEEE80211_FC0_SUBTYPE_MASK); + break; + } +} + +static void +ieee80211_recv_asreq(ieee80211com_t *isc, mblk_t *mp, int32_t rssi, + uint32_t rstamp, uint32_t rantenna) +{ + _NOTE(ARGUNUSED(isc)) + _NOTE(ARGUNUSED(rssi)) + _NOTE(ARGUNUSED(rstamp)) + _NOTE(ARGUNUSED(rantenna)) + _NOTE(ARGUNUSED(mp)) + + /* doesn't support HOST-AP mode yet */ +} + +static void +ieee80211_recv_asresp(ieee80211com_t *isc, mblk_t *mp, int32_t rssi, + uint32_t rstamp, uint32_t rantenna) +{ + struct ieee80211_frame *wh; + struct ieee80211_node *in; + uint8_t *frm, *efrm, *rates, *xrates; + int32_t status; + + _NOTE(ARGUNUSED(rssi)) + _NOTE(ARGUNUSED(rstamp)) + _NOTE(ARGUNUSED(rantenna)) + _NOTE(ARGUNUSED(mp)) + + ASSERT(mutex_owned(&isc->isc_genlock)); + + if (isc->isc_opmode != IEEE80211_M_STA || + isc->isc_state != IEEE80211_S_ASSOC) + return; + + wh = (struct ieee80211_frame *)mp->b_rptr; + frm = (uint8_t *)&wh[1]; + efrm = mp->b_wptr; + /* + * asresp frame format + * [2] capability information + * [2] status + * [2] association ID + * [tlv] supported rates + * [tlv] extended supported rates + */ + if (frm + 6 > efrm) { + ath_log("ath: ieee80211_recv_asresp(): too short from %s\n", + ieee80211_ether_sprintf(wh->ifrm_addr2)); + return; + } + + in = isc->isc_bss; + in->in_capinfo = LE_16(*(uint16_t *)frm); + frm += 2; + + status = LE_16(*(uint16_t *)frm); + frm += 2; + + if (status != 0) { + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_recv_asresp(): " + "association failed (reason %d)\n", status)); + in = ieee80211_find_node(isc, wh->ifrm_addr2); + if (in != NULL) { + in->in_fails++; + } + return; + } + + in->in_associd = LE_16(*(uint16_t *)frm); + frm += 2; + + rates = xrates = NULL; + while (frm < efrm) { + switch (*frm) { + case IEEE80211_ELEMID_RATES: + rates = frm; + break; + case IEEE80211_ELEMID_XRATES: + xrates = frm; + break; + } + frm += frm[1] + 2; + } + + IEEE80211_VERIFY_ELEMENT(rates, IEEE80211_RATE_SIZE, wh); + (void) ieee80211_setup_rates(isc, in, rates, xrates, + IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE | + IEEE80211_F_DONEGO | IEEE80211_F_DODEL); + if (in->in_rates.ir_nrates != 0) + (void) _ieee80211_new_state(isc, IEEE80211_S_RUN, + wh->ifrm_fc[0] & IEEE80211_FC0_SUBTYPE_MASK); +} + +static void +ieee80211_recv_disassoc(ieee80211com_t *isc, mblk_t *mp, int32_t rssi, + uint32_t rstamp, uint32_t rantenna) +{ + struct ieee80211_frame *wh; + uint8_t *frm, *efrm; + uint16_t reason; + + _NOTE(ARGUNUSED(rssi)) + _NOTE(ARGUNUSED(rstamp)) + _NOTE(ARGUNUSED(rantenna)) + _NOTE(ARGUNUSED(mp)) + + ASSERT(mutex_owned(&isc->isc_genlock)); + + wh = (struct ieee80211_frame *)mp->b_rptr; + frm = (uint8_t *)&wh[1]; + efrm = mp->b_wptr; + /* + * disassoc frame format + * [2] reason + */ + if (frm + 2 > efrm) { + ath_log("ath: ieee80211_recv_disassoc(): too short from %s\n", + ieee80211_ether_sprintf(wh->ifrm_addr2)); + return; + } + reason = LE_16(*(uint16_t *)frm); + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_recv_disassoc(): " + "disassociation packet, reason:0x%x\n", reason)); + switch (isc->isc_opmode) { + case IEEE80211_M_STA: + (void) _ieee80211_new_state(isc, IEEE80211_S_ASSOC, + wh->ifrm_fc[0] & IEEE80211_FC0_SUBTYPE_MASK); + break; + case IEEE80211_M_HOSTAP: + /* don't support HOSTAP */ + break; + default: + break; + } +} + +static void +ieee80211_recv_deauth(ieee80211com_t *isc, mblk_t *mp, int32_t rssi, + uint32_t rstamp, uint32_t rantenna) +{ + struct ieee80211_frame *wh; + uint8_t *frm, *efrm; + uint16_t reason; + + _NOTE(ARGUNUSED(rssi)) + _NOTE(ARGUNUSED(rstamp)) + _NOTE(ARGUNUSED(rantenna)) + _NOTE(ARGUNUSED(mp)) + + ASSERT(mutex_owned(&isc->isc_genlock)); + + wh = (struct ieee80211_frame *)mp->b_rptr; + frm = (uint8_t *)&wh[1]; + efrm = mp->b_wptr; + /* + * dauth frame format + * [2] reason + */ + if (frm + 2 > efrm) { + ath_log("ath: ieee80211_recv_deauth(): too short from %s\n", + ieee80211_ether_sprintf(wh->ifrm_addr2)); + return; + } + reason = LE_16(*(uint16_t *)frm); + ATH_DEBUG((ATH_DBG_80211, "ath: ieee80211_recv_deauth(): " + "deauthentication packet, reason: 0x%x\n", reason)); + switch (isc->isc_opmode) { + case IEEE80211_M_STA: + (void) _ieee80211_new_state(isc, IEEE80211_S_AUTH, + wh->ifrm_fc[0] & IEEE80211_FC0_SUBTYPE_MASK); + break; + case IEEE80211_M_HOSTAP: + break; + default: + break; + } +} + +/* + * Return the phy mode for with the specified channel so the + * caller can select a rate set. This is problematic and the + * work here assumes how things work elsewhere in this code. + */ +enum ieee80211_phymode +ieee80211_chan2mode(ieee80211com_t *isc, struct ieee80211channel *chan) +{ + /* + * NB: this assumes the channel would not be supplied to us + * unless it was already compatible with the current mode. + */ + if (isc->isc_curmode != IEEE80211_MODE_AUTO) + return (isc->isc_curmode); + /* + * In autoselect mode; deduce a mode based on the channel + * characteristics. We assume that turbo-only channels + * are not considered when the channel set is constructed. + */ + if (IEEE80211_IS_CHAN_5GHZ(chan)) + return (IEEE80211_MODE_11A); + else if (chan->ich_flags & (IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN)) + return (IEEE80211_MODE_11G); + else + return (IEEE80211_MODE_11B); +} + + +/* + * Format an Ethernet MAC for printing, + * and this function adds NULL byte at the end of string. + */ +const char * +ieee80211_ether_sprintf(const uint8_t *mac) +{ + static char etherbuf[18]; + (void) snprintf(etherbuf, sizeof (etherbuf), + "%02x:%02x:%02x:%02x:%02x:%02x", + mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); + return (etherbuf); +} + +/* + * Format an essid for printing, + * and this function adds NULL byte at the end of string. + */ +const int8_t * +ieee80211_essid_sprintf(uint8_t *essid, uint32_t len) +{ + static int8_t essidbuf[IEEE80211_NWID_LEN * 2 + 1]; + uint32_t i; + uint8_t *p; + int8_t tmp[3]; + + bzero(essidbuf, sizeof (essidbuf)); + if (len > IEEE80211_NWID_LEN) + len = IEEE80211_NWID_LEN; + /* determine printable or not */ + for (i = 0, p = essid; i < len; i++, p++) { + if (*p < ' ' || *p > 0x7e) + break; + } + if (i == len) { + for (i = 0; i < len; i++) + essidbuf[i] = essid[i]; + essidbuf[i] = '\0'; + } else { + for (i = 0; i < len; i++) { + (void) sprintf(tmp, "%02x", essid[i]); + (void) strcat(essidbuf, tmp); + } + } + return (essidbuf); +} + +/* + * Following fucntions are registerd to GLD and intercepting + * the function calls from GLD to LLD to add appropriate ic_genlock protection. + * + * We have to protect ieee80211_gld_send() by isc_genlock, + * because there have many references to isc struct on this transimit path, + * and this may affect performace. + */ +static int32_t +ieee80211_gld_send(gld_mac_info_t *gld_p, mblk_t *mp) +{ + ieee80211com_t *isc = (ieee80211com_t *)gld_p->gldm_private; + int32_t result; + + mutex_enter(&isc->isc_genlock); + result = (*isc->isc_gld_send)(gld_p, mp); + mutex_exit(&isc->isc_genlock); + return (result); +} + +static int32_t +ieee80211_gld_reset(gld_mac_info_t *gld_p) +{ + int32_t result; + ieee80211com_t *isc = (ieee80211com_t *)gld_p->gldm_private; + + mutex_enter(&isc->isc_genlock); + result = (*isc->isc_gld_reset)(gld_p); + mutex_exit(&isc->isc_genlock); + return (result); +} + + +/* + * Following function is for Multi_func thread. + * The smallest timing unit is 100ms. + * It is created in ieee80211_gld_start(), + * and destroy in ieee80211_gld_stop(). + */ +void +ieee80211_mf_thread(ieee80211com_t *isc) +{ + struct ieee80211_node *in; + uint32_t scan_ticks = 0; + uint32_t ratectl_ticks = 0; + uint32_t cali_ticks = 0; + uint32_t mgt_ticks = 0; + enum ieee80211_state ostate = IEEE80211_S_INIT; + + mutex_enter(&isc->isc_genlock); + while (isc->isc_mfthread_switch) { + if (isc->isc_state == IEEE80211_S_SCAN && + ostate != IEEE80211_S_SCAN) + scan_ticks = 0; + + if (isc->isc_state == IEEE80211_S_SCAN) { + if (scan_ticks >= (isc->isc_scan_interval/100 - 1)) { + ieee80211_next_scan(isc); + scan_ticks = 0; + } else + scan_ticks++; + } + + if (ratectl_ticks >= (isc->isc_ratectl_interval/100 - 1)) { + if (isc->isc_opmode == IEEE80211_M_STA) + (*isc->isc_rate_ctl)(isc, isc->isc_bss); + else { + in = list_head(&isc->isc_in_list); + while (in != NULL) { + (*isc->isc_rate_ctl)(isc, in); + in = list_next(&isc->isc_in_list, in); + } + } + ratectl_ticks = 0; + } else + ratectl_ticks++; + + if (cali_ticks >= (isc->isc_cali_interval/100 - 1)) { + (*isc->isc_calibrate)(isc); + cali_ticks = 0; + } else + cali_ticks++; + + if (mgt_ticks >= 10) { /* one second */ + if (isc->isc_mgt_timeout && + --isc->isc_mgt_timeout == 0) { + (void) _ieee80211_new_state(isc, + IEEE80211_S_SCAN, -1); + } + if (isc->isc_inact_timeout && + --isc->isc_inact_timeout == 0) + ieee80211_timeout_nodes(isc); + mgt_ticks = 0; + } else + mgt_ticks++; + + ostate = isc->isc_state; + mutex_exit(&isc->isc_genlock); + delay(drv_usectohz(100000)); /* delay 100ms */ + mutex_enter(&isc->isc_genlock); + } + isc->isc_mf_thread = NULL; + cv_broadcast(&isc->isc_mfthread_cv); + mutex_exit(&isc->isc_genlock); + thread_exit(); +} + +/* + * This function is responsible for creating multi-func thread. + */ +static int32_t +ieee80211_gld_start(gld_mac_info_t *gld_p) +{ + int32_t result; + ieee80211com_t *isc = (ieee80211com_t *)gld_p->gldm_private; + + mutex_enter(&isc->isc_genlock); + isc->isc_mfthread_switch = 1; + if (isc->isc_mf_thread == NULL) + isc->isc_mf_thread = thread_create((caddr_t)NULL, 0, + ieee80211_mf_thread, isc, 0, &p0, TS_RUN, minclsyspri); + result = (*isc->isc_gld_start)(gld_p); + mutex_exit(&isc->isc_genlock); + return (result); +} + +/* + * This function is responsible for destory multi-func thread. + */ +static int32_t +ieee80211_gld_stop(gld_mac_info_t *gld_p) +{ + int32_t result; + ieee80211com_t *isc = (ieee80211com_t *)gld_p->gldm_private; + + mutex_enter(&isc->isc_genlock); + isc->isc_mfthread_switch = 0; + while (isc->isc_mf_thread != NULL) { + if (cv_wait_sig(&isc->isc_mfthread_cv, &isc->isc_genlock) == 0) + break; + } + result = (*isc->isc_gld_stop)(gld_p); + mutex_exit(&isc->isc_genlock); + return (result); +} + +static int32_t +ieee80211_gld_saddr(gld_mac_info_t *gld_p, uint8_t *macaddr) +{ + int32_t result; + ieee80211com_t *isc = (ieee80211com_t *)gld_p->gldm_private; + + mutex_enter(&isc->isc_genlock); + result = (*isc->isc_gld_saddr)(gld_p, macaddr); + mutex_exit(&isc->isc_genlock); + return (result); +} + +static int +ieee80211_gld_set_promiscuous(gld_mac_info_t *gld_p, int mode) +{ + int result; + ieee80211com_t *isc = (ieee80211com_t *)gld_p->gldm_private; + + mutex_enter(&isc->isc_genlock); + result = (*isc->isc_gld_set_promiscuous)(gld_p, mode); + mutex_exit(&isc->isc_genlock); + return (result); +} + +static int32_t +ieee80211_gld_gstat(gld_mac_info_t *gld_p, struct gld_stats *glds_p) +{ + int32_t result; + ieee80211com_t *isc = (ieee80211com_t *)gld_p->gldm_private; + + mutex_enter(&isc->isc_genlock); + result = (*isc->isc_gld_gstat)(gld_p, glds_p); + mutex_exit(&isc->isc_genlock); + return (result); +} + +static int32_t +ieee80211_gld_ioctl(gld_mac_info_t *gld_p, queue_t *wq, mblk_t *mp) +{ + int32_t result; + ieee80211com_t *isc = (ieee80211com_t *)gld_p->gldm_private; + + mutex_enter(&isc->isc_genlock); + result = (*isc->isc_gld_ioctl)(gld_p, wq, mp); + mutex_exit(&isc->isc_genlock); + return (result); +} + +static int +ieee80211_gld_set_multicast(gld_mac_info_t *gld_p, uint8_t *eth_p, int flag) +{ + int result; + ieee80211com_t *isc = (ieee80211com_t *)gld_p->gldm_private; + + mutex_enter(&isc->isc_genlock); + result = (*isc->isc_gld_set_multicast)(gld_p, eth_p, flag); + mutex_exit(&isc->isc_genlock); + return (result); +} + +static uint32_t +ieee80211_gld_intr(gld_mac_info_t *gld_p) +{ + ieee80211com_t *isc = (ieee80211com_t *)gld_p->gldm_private; + return ((*isc->isc_gld_intr)(gld_p)); +} + + + +int32_t +ieee80211_ifattach(gld_mac_info_t *gld_p) +{ + ieee80211com_t *isc = + (ieee80211com_t *)gld_p->gldm_private; + struct ieee80211channel *ch; + int32_t i; + + mutex_init(&isc->isc_genlock, NULL, MUTEX_DRIVER, NULL); + + /* + * Fill in 802.11 available channel set, mark + * all available channels as active, and pick + * a default channel if not already specified. + */ + bzero(isc->isc_chan_avail, sizeof (isc->isc_chan_avail)); + isc->isc_modecaps |= 1 << IEEE80211_MODE_AUTO; + for (i = 0; i <= IEEE80211_CHAN_MAX; i++) { + ch = &isc->isc_channels[i]; + if (ch->ich_flags) { + setbit(isc->isc_chan_avail, i); + /* + * Identify mode capabilities. + */ + if (IEEE80211_IS_CHAN_A(ch)) + isc->isc_modecaps |= 1 << IEEE80211_MODE_11A; + if (IEEE80211_IS_CHAN_B(ch)) + isc->isc_modecaps |= 1 << IEEE80211_MODE_11B; + if (IEEE80211_IS_CHAN_PUREG(ch)) + isc->isc_modecaps |= 1 << IEEE80211_MODE_11G; + if (IEEE80211_IS_CHAN_T(ch)) + isc->isc_modecaps |= 1 << IEEE80211_MODE_TURBO; + } + } + + /* Start from auto mode */ + (void) ieee80211_setmode(isc, IEEE80211_MODE_AUTO); + + /* Initialize WEP related variable */ + isc->isc_wep_txkey = 0; + isc->isc_iv = (int32_t)(gethrtime() & 0x00000000ffffffff); + + /* Initialize some config variables */ + isc->isc_rtsthreshold = IEEE80211_RTS_MAX; + isc->isc_fragthreshold = 2346; + isc->isc_des_chan = IEEE80211_CHAN_ANYC; /* any channel is ok */ + isc->isc_fixed_rate = -1; /* no fixed rate */ + if (isc->isc_lintval == 0) + isc->isc_lintval = 100; /* default sleep */ + isc->isc_txpower = IEEE80211_TXPOWER_MAX; /* default tx power */ + isc->isc_bmisstimeout = 7 * isc->isc_lintval; /* default 7 beacons */ + + list_create(&isc->isc_in_list, + sizeof (struct ieee80211_node), + offsetof(struct ieee80211_node, in_node)); + for (i = 0; i < IEEE80211_NODE_HASHSIZE; i++) + list_create(&isc->isc_inhash_list[i], + sizeof (struct ieee80211_node), + offsetof(struct ieee80211_node, in_hash_node)); + + /* Initialize management frame handlers */ + isc->isc_recv_mgmt[IEEE80211_FC0_SUBTYPE_PROBE_RESP + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_recv_beacon; + isc->isc_recv_mgmt[IEEE80211_FC0_SUBTYPE_BEACON + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_recv_beacon; + isc->isc_recv_mgmt[IEEE80211_FC0_SUBTYPE_PROBE_REQ + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_recv_prreq; + isc->isc_recv_mgmt[IEEE80211_FC0_SUBTYPE_AUTH + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_recv_auth; + isc->isc_recv_mgmt[IEEE80211_FC0_SUBTYPE_ASSOC_REQ + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_recv_asreq; + isc->isc_recv_mgmt[IEEE80211_FC0_SUBTYPE_REASSOC_REQ + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_recv_asreq; + isc->isc_recv_mgmt[IEEE80211_FC0_SUBTYPE_ASSOC_RESP + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_recv_asresp; + isc->isc_recv_mgmt[IEEE80211_FC0_SUBTYPE_REASSOC_RESP + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_recv_asresp; + isc->isc_recv_mgmt[IEEE80211_FC0_SUBTYPE_DEAUTH + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_recv_deauth; + isc->isc_recv_mgmt[IEEE80211_FC0_SUBTYPE_DISASSOC + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_recv_disassoc; + + isc->isc_send_mgmt[IEEE80211_FC0_SUBTYPE_PROBE_REQ + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_send_prreq; + isc->isc_send_mgmt[IEEE80211_FC0_SUBTYPE_PROBE_RESP + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_send_prresp; + isc->isc_send_mgmt[IEEE80211_FC0_SUBTYPE_AUTH + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_send_auth; + isc->isc_send_mgmt[IEEE80211_FC0_SUBTYPE_DEAUTH + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_send_deauth; + isc->isc_send_mgmt[IEEE80211_FC0_SUBTYPE_ASSOC_REQ + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_send_asreq; + isc->isc_send_mgmt[IEEE80211_FC0_SUBTYPE_REASSOC_REQ + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_send_asreq; + isc->isc_send_mgmt[IEEE80211_FC0_SUBTYPE_ASSOC_RESP + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_send_asresp; + isc->isc_send_mgmt[IEEE80211_FC0_SUBTYPE_REASSOC_RESP + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_send_asresp; + isc->isc_send_mgmt[IEEE80211_FC0_SUBTYPE_DISASSOC + >> IEEE80211_FC0_SUBTYPE_SHIFT] = ieee80211_send_disassoc; + + cv_init(&isc->isc_scan_cv, NULL, CV_DRIVER, NULL); + cv_init(&isc->isc_mfthread_cv, NULL, CV_DRIVER, NULL); + isc->isc_mf_thread = NULL; + isc->isc_mfthread_switch = 0; + + ASSERT(isc->isc_node_alloc != NULL); + isc->isc_bss = (*isc->isc_node_alloc)(isc); + isc->isc_bss->in_chan = IEEE80211_CHAN_ANYC; + isc->isc_bss->in_txpower = IEEE80211_TXPOWER_MAX; + isc->isc_scan_interval = 200; + isc->isc_cali_interval = 30000; + isc->isc_ratectl_interval = 500; + + gld_p->gldm_reset = ieee80211_gld_reset; + gld_p->gldm_start = ieee80211_gld_start; + gld_p->gldm_stop = ieee80211_gld_stop; + gld_p->gldm_set_mac_addr = ieee80211_gld_saddr; + gld_p->gldm_send = ieee80211_gld_send; + gld_p->gldm_set_promiscuous = ieee80211_gld_set_promiscuous; + gld_p->gldm_get_stats = ieee80211_gld_gstat; + gld_p->gldm_ioctl = ieee80211_gld_ioctl; + gld_p->gldm_set_multicast = ieee80211_gld_set_multicast; + gld_p->gldm_intr = ieee80211_gld_intr; + + return (0); +} + +void +ieee80211_ifdetach(gld_mac_info_t *gld_p) +{ + ieee80211com_t *isc = (ieee80211com_t *)gld_p->gldm_private; + + (*isc->isc_node_free)(isc, isc->isc_bss); + ieee80211_free_allnodes(isc); + cv_destroy(&isc->isc_mfthread_cv); + cv_destroy(&isc->isc_scan_cv); + mutex_destroy(&isc->isc_genlock); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/ath_ieee80211.h Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,743 @@ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* + * Copyright (c) 2002-2004 Sam Leffler, Errno Consulting + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + * + */ + +/* + * IEEE 802.11 generic handler definitions. + * + * This code is derived from NetBSD code; their copyright notice follows. + */ + +/* + * Copyright (c) 2000, 2001 The NetBSD Foundation, Inc. + * 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. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + + +/* + * The atheros IEEE80211a/b/g chipsets just implement a IEEE80211 + * phisical layer protocol, all IEEE80211 MAC layer functions are + * done by the driver. These functions include scan, association/ + * disassociation, authentication/deauthentication, probe request, + * beacon processing, WEP processing, etc. All the data structs, + * constant denifition and function declaration related to IEEE802.11 + * are defined here. Actually, ath_ieee80211.h and ath_ieee80211.c + * are general for most 802.11a/b/g chipsets. GLDv3 should consider + * a WiFi extension and then all IEEE802.11 supporting would be + * integrated into GLDv3. + */ + +#ifndef _ATH_IEEE80211_H +#define _ATH_IEEE80211_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +#ifdef __cplusplus +extern "C" { +#endif + +#include <sys/sysmacros.h> +#include <sys/gld.h> +#include <sys/stream.h> +#include <sys/int_types.h> +#include <sys/note.h> +#include <sys/list.h> + +/* Bit map related macros. */ +#define setbit(a, i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY)) +#define clrbit(a, i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) +#define isset(a, i) ((a)[(i)/NBBY] & (1<<((i)%NBBY))) +#define isclr(a, i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) + + +/* + * We always fill constant in LLC + * and SANP fields of the payload. + */ +#define LLC_DSAP 0xAA +#define LLC_SSAP 0xAA +#define LLC_CONTROL 0x03 +#define SNAP_OC0 0x0 +#define SNAP_OC1 0x0 +#define SNAP_OC2 0x0 + +#define IEEE80211_ADDR_LEN 6 /* size of 802.11 address */ +#define IEEE80211_TXPOWER_MAX 100 /* .5 dbM */ +#define IEEE80211_TXPOWER_MIN 0 /* kill radio */ +/* + * Size of an ACK control frame in bytes. + */ +#define IEEE80211_ACK_SIZE (2 + 2 + IEEE80211_ADDR_LEN + 4) + + +/* Constant for "Frame Control" field of IEEE80211 frame header */ +#define IEEE80211_FC0_VERSION_MASK 0x03 +#define IEEE80211_FC0_VERSION_SHIFT 0 +#define IEEE80211_FC0_VERSION_0 0x00 +#define IEEE80211_FC0_TYPE_MASK 0x0c +#define IEEE80211_FC0_TYPE_SHIFT 2 +#define IEEE80211_FC0_TYPE_MGT 0x00 /* management frame */ +#define IEEE80211_FC0_TYPE_CTL 0x04 /* control frame */ +#define IEEE80211_FC0_TYPE_DATA 0x08 /* data frame */ +#define IEEE80211_FC0_SUBTYPE_MASK 0xf0 +#define IEEE80211_FC0_SUBTYPE_SHIFT 4 + +/* sub types of management frame(bit combination) */ +#define IEEE80211_FC0_SUBTYPE_ASSOC_REQ 0x00 +#define IEEE80211_FC0_SUBTYPE_ASSOC_RESP 0x10 +#define IEEE80211_FC0_SUBTYPE_REASSOC_REQ 0x20 +#define IEEE80211_FC0_SUBTYPE_REASSOC_RESP 0x30 +#define IEEE80211_FC0_SUBTYPE_PROBE_REQ 0x40 +#define IEEE80211_FC0_SUBTYPE_PROBE_RESP 0x50 +#define IEEE80211_FC0_SUBTYPE_BEACON 0x80 +#define IEEE80211_FC0_SUBTYPE_ATIM 0x90 +#define IEEE80211_FC0_SUBTYPE_DISASSOC 0xa0 +#define IEEE80211_FC0_SUBTYPE_AUTH 0xb0 +#define IEEE80211_FC0_SUBTYPE_DEAUTH 0xc0 + +/* sub types of control frame(bit combination) */ +#define IEEE80211_FC0_SUBTYPE_PS_POLL 0xa0 +#define IEEE80211_FC0_SUBTYPE_RTS 0xb0 +#define IEEE80211_FC0_SUBTYPE_CTS 0xc0 +#define IEEE80211_FC0_SUBTYPE_ACK 0xd0 +#define IEEE80211_FC0_SUBTYPE_CF_END 0xe0 +#define IEEE80211_FC0_SUBTYPE_CF_END_ACK 0xf0 + +/* sub types of data frame(bit combination) */ +#define IEEE80211_FC0_SUBTYPE_DATA 0x00 +#define IEEE80211_FC0_SUBTYPE_CF_ACK 0x10 +#define IEEE80211_FC0_SUBTYPE_CF_POLL 0x20 +#define IEEE80211_FC0_SUBTYPE_CF_ACPL 0x30 +#define IEEE80211_FC0_SUBTYPE_NODATA 0x40 +#define IEEE80211_FC0_SUBTYPE_CFACK 0x50 +#define IEEE80211_FC0_SUBTYPE_CFPOLL 0x60 +#define IEEE80211_FC0_SUBTYPE_CF_ACK_CF_ACK 0x70 + +#define IEEE80211_FC1_DIR_MASK 0x03 +#define IEEE80211_FC1_DIR_NODS 0x00 /* STA->STA */ +#define IEEE80211_FC1_DIR_TODS 0x01 /* STA->AP */ +#define IEEE80211_FC1_DIR_FROMDS 0x02 /* AP ->STA */ +#define IEEE80211_FC1_DIR_DSTODS 0x03 /* AP ->AP */ + +#define IEEE80211_FC1_MORE_FRAG 0x04 +#define IEEE80211_FC1_RETRY 0x08 +#define IEEE80211_FC1_PWR_MGT 0x10 +#define IEEE80211_FC1_MORE_DATA 0x20 +#define IEEE80211_FC1_WEP 0x40 +#define IEEE80211_FC1_ORDER 0x80 + +#define IEEE80211_SEQ_FRAG_MASK 0x000f +#define IEEE80211_SEQ_FRAG_SHIFT 0 +#define IEEE80211_SEQ_SEQ_MASK 0xfff0 +#define IEEE80211_SEQ_SEQ_SHIFT 4 + +#define IEEE80211_NWID_LEN 32 + +#define IEEE80211_RATE2MBS(r) (((r) & IEEE80211_RATE_VAL) / 2) +#define IEEE80211_IS_SUBTYPE(_fc, _type) \ + (((_fc) & IEEE80211_FC0_SUBTYPE_MASK) == IEEE80211_FC0_SUBTYPE_##_type) + +#define IEEE80211_BEACON_INTERVAL(beacon) \ + ((beacon)[8] | ((beacon)[9] << 8)) +#define IEEE80211_BEACON_CAPABILITY(beacon) \ + ((beacon)[10] | ((beacon)[11] << 8)) + +#define IEEE80211_CAPINFO_ESS 0x0001 +#define IEEE80211_CAPINFO_IBSS 0x0002 +#define IEEE80211_CAPINFO_CF_POLLABLE 0x0004 +#define IEEE80211_CAPINFO_CF_POLLREQ 0x0008 +#define IEEE80211_CAPINFO_PRIVACY 0x0010 +#define IEEE80211_CAPINFO_SHORT_PREAMBLE 0x0020 +#define IEEE80211_CAPINFO_PBCC 0x0040 +#define IEEE80211_CAPINFO_CHNL_AGILITY 0x0080 +/* bits 8-9 are reserved */ +#define IEEE80211_CAPINFO_SHORT_SLOTTIME 0x0400 +/* bits 11-12 are reserved */ +#define IEEE80211_CAPINFO_DSSSOFDM 0x2000 +/* bits 14-15 are reserved */ + +/* + * Management information elements + */ +#define IEEE80211_ELEMID_SSID 0 +#define IEEE80211_ELEMID_RATES 1 +#define IEEE80211_ELEMID_FHPARMS 2 +#define IEEE80211_ELEMID_DSPARMS 3 +#define IEEE80211_ELEMID_CFPARMS 4 +#define IEEE80211_ELEMID_TIM 5 +#define IEEE80211_ELEMID_IBSSPARMS 6 +#define IEEE80211_ELEMID_COUNTRY 7 +#define IEEE80211_ELEMID_CHALLENGE 16 +#define IEEE80211_ELEMID_ERP 42 +#define IEEE80211_ELEMID_XRATES 50 + + +/* Classes for WME streams */ +#define WME_AC_BE 0 +#define WME_AC_BK 1 +#define WME_AC_VI 2 +#define WME_AC_VO 3 + +#define IEEE80211_RATE_BASIC 0x80 +#define IEEE80211_RATE_VAL 0x7f + +/* EPR information element flags */ +#define IEEE80211_ERP_NON_ERP_PRESENT 0x01 +#define IEEE80211_ERP_USE_PROTECTION 0x02 +#define IEEE80211_ERP_BARKER_MODE 0x04 + +/* + * AUTH management packets + * + * octet algo[2] + * octet seq[2] + * octet status[2] + * octet chal.id + * octet chal.length + * octet chal.text[253] + */ + +#define IEEE80211_AUTH_ALGORITHM(auth) \ + ((auth)[0] | ((auth)[1] << 8)) +#define IEEE80211_AUTH_TRANSACTION(auth) \ + ((auth)[2] | ((auth)[3] << 8)) +#define IEEE80211_AUTH_STATUS(auth) \ + ((auth)[4] | ((auth)[5] << 8)) + +#define IEEE80211_AUTH_ALG_OPEN 0x0000 +#define IEEE80211_AUTH_ALG_SHARED 0x0001 + +#define IEEE80211_AUTH_OPEN_REQUEST 1 +#define IEEE80211_AUTH_OPEN_RESPONSE 2 + +#define IEEE80211_AUTH_SHARED_REQUEST 1 +#define IEEE80211_AUTH_SHARED_CHALLENGE 2 +#define IEEE80211_AUTH_SHARED_RESPONSE 3 +#define IEEE80211_AUTH_SHARED_PASS 4 + +/* + * Reason codes + * Unlisted codes are reserved + */ + +#define IEEE80211_REASON_UNSPECIFIED 1 +#define IEEE80211_REASON_AUTH_EXPIRE 2 +#define IEEE80211_REASON_AUTH_LEAVE 3 +#define IEEE80211_REASON_ASSOC_EXPIRE 4 +#define IEEE80211_REASON_ASSOC_TOOMANY 5 +#define IEEE80211_REASON_NOT_AUTHED 6 +#define IEEE80211_REASON_NOT_ASSOCED 7 +#define IEEE80211_REASON_ASSOC_LEAVE 8 +#define IEEE80211_REASON_ASSOC_NOT_AUTHED 9 + +#define IEEE80211_STATUS_SUCCESS 0 +#define IEEE80211_STATUS_UNSPECIFIED 1 +#define IEEE80211_STATUS_CAPINFO 10 +#define IEEE80211_STATUS_NOT_ASSOCED 11 +#define IEEE80211_STATUS_OTHER 12 +#define IEEE80211_STATUS_ALG 13 +#define IEEE80211_STATUS_SEQUENCE 14 +#define IEEE80211_STATUS_CHALLENGE 15 +#define IEEE80211_STATUS_TIMEOUT 16 +#define IEEE80211_STATUS_TOOMANY 17 +#define IEEE80211_STATUS_BASIC_RATE 18 +#define IEEE80211_STATUS_SP_REQUIRED 19 +#define IEEE80211_STATUS_PBCC_REQUIRED 20 +#define IEEE80211_STATUS_CA_REQUIRED 21 +#define IEEE80211_STATUS_TOO_MANY_STATIONS 22 +#define IEEE80211_STATUS_RATES 23 +#define IEEE80211_STATUS_SHORTSLOT_REQUIRED 25 +#define IEEE80211_STATUS_DSSSOFDM_REQUIRED 26 + +#define IEEE80211_WEP_KEYLEN 5 /* 40bit */ +#define IEEE80211_WEP_IVLEN 3 /* 24bit */ +#define IEEE80211_WEP_KIDLEN 1 /* 1 octet */ +#define IEEE80211_WEP_CRCLEN 4 /* CRC-32 */ +#define IEEE80211_WEP_NKID 4 /* number of key ids */ + +#define IEEE80211_CRC_LEN 4 + +#define IEEE80211_MTU 1500 +#define IEEE80211_MAX_LEN (2300 + IEEE80211_CRC_LEN + \ + (IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN + IEEE80211_WEP_CRCLEN)) + +/* + * RTS frame length parameters. The default is specified in + * the 802.11 spec. The max may be wrong for jumbo frames. + */ +#define IEEE80211_RTS_DEFAULT 512 +#define IEEE80211_RTS_MIN 1 +#define IEEE80211_RTS_MAX IEEE80211_MAX_LEN + +#define IEEE80211_CHAN_ANY 0xffff /* token for ``any channel'' */ + +#define IEEE80211_AUTH_NONE 0 +#define IEEE80211_AUTH_OPEN 1 +#define IEEE80211_AUTH_SHARED 2 + +#define IEEE80211_PSCAN_WAIT 5 /* passive scan wait */ +#define IEEE80211_TRANS_WAIT 5 /* transition wait */ +#define IEEE80211_INACT_WAIT 5 /* inactivity timer interval */ +#define IEEE80211_INACT_MAX (300/IEEE80211_INACT_WAIT) + +/* + * Structure for IEEE 802.11 drivers. + */ + +#define IEEE80211_CHAN_MAX 255 +#define IEEE80211_CHAN_ANYC \ + ((struct ieee80211channel *)IEEE80211_CHAN_ANY) + +#define IEEE80211_RATE_SIZE 8 /* 802.11 standard */ +#define IEEE80211_RATE_MAXSIZE 15 /* max rates we'll handle */ +#define IEEE80211_KEYBUF_SIZE 16 +#define IEEE80211_NODE_HASHSIZE 32 +/* simple hash is enough for variation of macaddr */ +#define IEEE80211_NODE_HASH(addr) \ + (((uint8_t *)(addr))[IEEE80211_ADDR_LEN - 1] % IEEE80211_NODE_HASHSIZE) +#define IEEE80211_RV(v) ((v) & IEEE80211_RATE_VAL) +#define IEEE80211_ISPROBE(_wh) IEEE80211_IS_SUBTYPE((_wh)->ifrm_fc[0], \ + PROBE_RESP) +#define IEEE80211_RATE(_ix) (in->in_rates.ir_rates[(_ix)] & \ + IEEE80211_RATE_VAL) +/* Verify the existence and length of __elem or get out. */ +#define IEEE80211_VERIFY_ELEMENT(__elem, __maxlen, __wh) do { \ + if ((__elem) == NULL) { \ + ath_problem("ath: no #__elem \n"); \ + return; \ + } \ + if ((__elem)[1] > (__maxlen)) { \ + ath_problem("ath: bad "#__elem " len %d from %s\n", \ + (__elem)[1], \ + ieee80211_ether_sprintf((__wh)->ifrm_addr2)); \ + return; \ + } \ + _NOTE(CONSTANTCONDITION) \ +} while (0) + + +enum ieee80211_phytype { + IEEE80211_T_DS, /* direct sequence spread spectrum */ + IEEE80211_T_FH, /* frequency hopping */ + IEEE80211_T_OFDM, /* frequency division multiplexing */ + IEEE80211_T_TURBO /* high rate OFDM, aka turbo mode */ +}; +#define IEEE80211_T_CCK IEEE80211_T_DS /* more common nomenclature */ + +/* not really a mode; there are really multiple PHY's */ +enum ieee80211_phymode { + IEEE80211_MODE_AUTO = 0, /* autoselect */ + IEEE80211_MODE_11A = 1, /* 5GHz, OFDM */ + IEEE80211_MODE_11B = 2, /* 2GHz, CCK */ + IEEE80211_MODE_11G = 3, /* 2GHz, OFDM */ + IEEE80211_MODE_TURBO = 4 /* 5GHz, OFDM, 2x clock */ +}; +#define IEEE80211_MODE_MAX (IEEE80211_MODE_TURBO+1) + +enum ieee80211_opmode { + IEEE80211_M_STA = 1, /* infrastructure station */ + IEEE80211_M_IBSS = 0, /* IBSS (adhoc) station */ + IEEE80211_M_AHDEMO = 3, /* Old lucent compatible adhoc demo */ + IEEE80211_M_HOSTAP = 6 /* Software Access Point */ +}; + +enum ieee80211_state { + IEEE80211_S_INIT, /* default state */ + IEEE80211_S_SCAN, /* scanning */ + IEEE80211_S_AUTH, /* try to authenticate */ + IEEE80211_S_ASSOC, /* try to assoc */ + IEEE80211_S_RUN /* associated */ +}; + +/* + * Channels are specified by frequency and attributes. + */ +struct ieee80211channel { + uint16_t ich_freq; /* setting in Mhz */ + uint16_t ich_flags; /* see below */ +}; + +/* bits 0-3 are for private use by drivers */ +/* channel attributes */ +#define IEEE80211_CHAN_TURBO 0x0010 /* Turbo channel */ +#define IEEE80211_CHAN_CCK 0x0020 /* CCK channel */ +#define IEEE80211_CHAN_OFDM 0x0040 /* OFDM channel */ +#define IEEE80211_CHAN_2GHZ 0x0080 /* 2 GHz spectrum channel. */ +#define IEEE80211_CHAN_5GHZ 0x0100 /* 5 GHz spectrum channel */ +#define IEEE80211_CHAN_PASSIVE 0x0200 /* Only passive scan allowed */ +#define IEEE80211_CHAN_DYN 0x0400 /* Dynamic CCK-OFDM channel */ + +/* + * Useful combinations of channel characteristics. + */ +#define IEEE80211_CHAN_A \ + (IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM) +#define IEEE80211_CHAN_B \ + (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK) +#define IEEE80211_CHAN_PUREG \ + (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_OFDM) +#define IEEE80211_CHAN_G \ + (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_DYN) +#define IEEE80211_CHAN_T \ + (IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_TURBO) + +#define IEEE80211_IS_CHAN_A(_ch) \ + (((_ch)->ich_flags & IEEE80211_CHAN_A) == IEEE80211_CHAN_A) +#define IEEE80211_IS_CHAN_B(_ch) \ + (((_ch)->ich_flags & IEEE80211_CHAN_B) == IEEE80211_CHAN_B) +#define IEEE80211_IS_CHAN_PUREG(_ch) \ + (((_ch)->ich_flags & IEEE80211_CHAN_PUREG) == IEEE80211_CHAN_PUREG) +#define IEEE80211_IS_CHAN_G(_ch) \ + (((_ch)->ich_flags & IEEE80211_CHAN_G) == IEEE80211_CHAN_G) +#define IEEE80211_IS_CHAN_T(_ch) \ + (((_ch)->ich_flags & IEEE80211_CHAN_T) == IEEE80211_CHAN_T) + +#define IEEE80211_IS_CHAN_2GHZ(_ch) \ + (((_ch)->ich_flags & IEEE80211_CHAN_2GHZ) != 0) +#define IEEE80211_IS_CHAN_5GHZ(_ch) \ + (((_ch)->ich_flags & IEEE80211_CHAN_5GHZ) != 0) +#define IEEE80211_IS_CHAN_OFDM(_ch) \ + (((_ch)->ich_flags & IEEE80211_CHAN_OFDM) != 0) +#define IEEE80211_IS_CHAN_CCK(_ch) \ + (((_ch)->ich_flags & IEEE80211_CHAN_CCK) != 0) + +#pragma pack(1) +/* Header of IEEE 802.11 frame */ +struct ieee80211_frame { + uint8_t ifrm_fc[2]; + uint8_t ifrm_dur[2]; + uint8_t ifrm_addr1[IEEE80211_ADDR_LEN]; + uint8_t ifrm_addr2[IEEE80211_ADDR_LEN]; + uint8_t ifrm_addr3[IEEE80211_ADDR_LEN]; + uint8_t ifrm_seq[2]; + /* + * i_addr4 is present only when it's a data + * frame from one AP to another AP. The driver + * doesn't work in AP mode, so we never transmit + * or receive a frame containing i_addr4 field. + */ +}; + +/* Start part(LLC and SNAP) of payload of IEEE80211 frame */ +struct ieee80211_llc { + /* LLC */ + uint8_t illc_dsap; + uint8_t illc_ssap; + uint8_t illc_control; + /* SNAP */ + uint8_t illc_oc[3]; /* protocol ID or organization code */ + uint16_t illc_ether_type; /* ethernet type */ +}; +#pragma pack() + +struct ieee80211_rateset { + uint8_t ir_nrates; + uint8_t ir_rates[IEEE80211_RATE_MAXSIZE]; +}; + +/* Number of history entries to keep (per node) */ +#define IEEE80211_RECV_HIST_LEN 16 +#define IEEE80211_JIFFIES_NONE ((uint32_t)(~0)) + +struct ieee80211_recv_hist { + uint32_t irh_jiffies; /* kernel timestamp */ + uint8_t irh_rssi; /* recv ssi */ + uint32_t irh_rstamp; /* recv timestamp */ + uint8_t irh_rantenna; /* recv antenna */ +}; + + +/* + * Node specific information. + */ +struct ieee80211_node { + /* hardware */ + struct ieee80211_recv_hist in_recv_hist[IEEE80211_RECV_HIST_LEN]; + int32_t in_hist_cur; + uint16_t in_txpower; /* current transmit power */ + + /* header */ + uint8_t in_macaddr[IEEE80211_ADDR_LEN]; + uint8_t in_bssid[IEEE80211_ADDR_LEN]; + + /* beacon, probe response */ + uint8_t in_tstamp[8]; /* from last rcv'd beacon */ + uint16_t in_intval; /* beacon interval */ + uint16_t in_capinfo; /* capabilities */ + uint8_t in_esslen; + uint8_t in_essid[IEEE80211_NWID_LEN]; + struct ieee80211_rateset in_rates; /* negotiated rate set */ + uint8_t *in_country; /* country information */ + struct ieee80211channel *in_chan; + uint16_t in_fhdwell; /* FH only */ + uint8_t in_fhindex; /* FH only */ + uint8_t in_erp; /* 11g only */ + + /* DTIM and contention free period (CFP) */ + uint8_t in_dtimperiod; + uint8_t in_cfpperiod; /* # of DTIMs between CFPs */ + uint16_t in_cfpduremain; /* remaining cfp duration */ + uint16_t in_cfpmaxduration; /* max CFP duration in TU */ + uint16_t in_nextdtim; /* time to next DTIM */ + uint16_t in_timoffset; + + /* others */ + uint16_t in_associd; /* assoc response */ + uint16_t in_txseq; /* seq to be transmitted */ + uint16_t in_rxseq; /* seq previous received */ + int32_t in_fails; /* failure count to associate */ + int32_t in_inact; /* inactivity mark count */ + int32_t in_txrate; /* index to in_rates[] */ + + /* we're in the list of isc->isc_in_list */ + list_node_t in_node; + + /* we're in the list of isc->isc_inhash_list */ + list_node_t in_hash_node; +}; + +/* in_chan encoding for FH phy */ +#define IEEE80211_FH_CHANMOD 80 +#define IEEE80211_FH_CHAN(set, pat) \ + (((set)-1) * IEEE80211_FH_CHANMOD + (pat)) +#define IEEE80211_FH_CHANSET(chan) ((chan)/IEEE80211_FH_CHANMOD+1) +#define IEEE80211_FH_CHANPAT(chan) ((chan)%IEEE80211_FH_CHANMOD) + +#define HEADERSPACE roundup(sizeof (struct ieee80211_frame) + \ + IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN + \ + sizeof (struct ieee80211_llc) + 1, 4) + +struct ieee80211_wepkey { + int32_t iwk_len; + uint8_t iwk_key[IEEE80211_KEYBUF_SIZE]; +}; + +typedef struct ieee80211com { + /* The following items are not changed during their lifetime */ + gld_mac_info_t *isc_dev; + struct ieee80211_rateset isc_sup_rates[IEEE80211_MODE_MAX]; + struct ieee80211channel isc_channels[IEEE80211_CHAN_MAX + 1]; + uint8_t isc_chan_avail[ + roundup(IEEE80211_CHAN_MAX, NBBY)]; + uint32_t isc_caps; /* capabilities */ + uint16_t isc_modecaps; /* set of mode capabilities */ + enum ieee80211_phytype isc_phytype; /* wrong for multi-mode */ + uint16_t isc_bmisstimeout; /* beacon miss threshold ms */ + uint16_t isc_scan_interval; /* scan interval(ms) */ + uint16_t isc_cali_interval; /* calibrate interval(ms) */ + uint16_t isc_ratectl_interval; /* rate ctl interval(ms) */ + int32_t (*isc_mgmt_send)(struct ieee80211com *, mblk_t *); + void (*isc_recv_mgmt[16])(struct ieee80211com *, mblk_t *, + int32_t, uint32_t, uint32_t); + int32_t (*isc_send_mgmt[16])(struct ieee80211com *, + struct ieee80211_node *, int32_t, int32_t); + int32_t (*isc_new_state)(struct ieee80211com *, + enum ieee80211_state); + struct ieee80211_node *(*isc_node_alloc)(struct ieee80211com *); + void (*isc_node_free)(struct ieee80211com *, + struct ieee80211_node *); + void (*isc_node_copy)(struct ieee80211_node *, + const struct ieee80211_node *); + void (*isc_calibrate)(struct ieee80211com *); + void (*isc_rate_ctl)(struct ieee80211com *, + struct ieee80211_node *); + int (*isc_gld_send)(gld_mac_info_t *, mblk_t *); + int (*isc_gld_reset)(gld_mac_info_t *); + int (*isc_gld_start)(gld_mac_info_t *); + int (*isc_gld_stop)(gld_mac_info_t *); + int32_t (*isc_gld_saddr)(gld_mac_info_t *, uint8_t *macaddr); + int (*isc_gld_set_promiscuous)(gld_mac_info_t *, + int mode); + int (*isc_gld_gstat)(gld_mac_info_t *, + struct gld_stats *); + int (*isc_gld_ioctl)(gld_mac_info_t *, queue_t *, mblk_t *); + int (*isc_gld_set_multicast)(gld_mac_info_t *, + uint8_t *, int); + uint32_t (*isc_gld_intr)(gld_mac_info_t *); + + /* + * The following items could only be + * changed by ioctl after initialization. + */ + uint8_t isc_macaddr[IEEE80211_ADDR_LEN]; + int32_t isc_fixed_rate; /* index to ic_sup_rates[] */ + uint16_t isc_rtsthreshold; + uint16_t isc_fragthreshold; + uint16_t isc_lintval; /* listen interval */ + uint16_t isc_txpower; /* tx power setting (dbM) */ + int32_t isc_des_esslen; + uint8_t isc_des_essid[IEEE80211_NWID_LEN]; + struct ieee80211channel *isc_des_chan; /* desired channel */ + uint8_t isc_des_bssid[IEEE80211_ADDR_LEN]; + struct ieee80211_wepkey isc_nw_keys[IEEE80211_WEP_NKID]; + int32_t isc_wep_txkey; /* default tx key index */ + uint8_t isc_nickname[IEEE80211_NWID_LEN]; + int32_t isc_nicknamelen; + + /* The following items are changed dynamically */ + kthread_t *isc_mf_thread; + uint32_t isc_mfthread_switch; /* 0/1 indicate off/on */ + kcondvar_t isc_mfthread_cv; + kcondvar_t isc_scan_cv; + int32_t isc_mgt_timeout; /* mgmt timeout */ + int32_t isc_inact_timeout; /* inactivity timer wait */ + uint8_t isc_chan_active[ + roundup(IEEE80211_CHAN_MAX, NBBY)]; + uint8_t isc_chan_scan[ + roundup(IEEE80211_CHAN_MAX, NBBY)]; + uint32_t isc_flags; /* state flags */ + uint16_t isc_curmode; /* current mode */ + enum ieee80211_opmode isc_opmode; /* operation mode */ + enum ieee80211_state isc_state; /* 802.11 state */ + struct ieee80211_node *isc_bss; /* info for this node */ + struct ieee80211channel *isc_ibss_chan; /* current channel */ + list_t isc_in_list; /* information of all nodes */ + list_t isc_inhash_list[IEEE80211_NODE_HASHSIZE]; + uint32_t isc_iv; /* initial vector for wep */ + kmutex_t isc_genlock; /* mutex for the whole struct */ +}ieee80211com_t; + +#define IEEE80211_SEND_MGMT(isc, in, type, arg) do { \ +if ((isc)->isc_send_mgmt[(type)>>IEEE80211_FC0_SUBTYPE_SHIFT] != NULL) \ + (*(isc)->isc_send_mgmt[(type)>>IEEE80211_FC0_SUBTYPE_SHIFT]) \ + (isc, in, type, arg); \ +_NOTE(CONSTANTCONDITION) \ +} while (0) + +#define IEEE80211_ADDR_EQ(a1, a2) (bcmp(a1, a2, IEEE80211_ADDR_LEN) == 0) +#define IEEE80211_ADDR_COPY(dst, src) bcopy(src, dst, IEEE80211_ADDR_LEN) + +/* multicast, broadcast */ +#define ETHER_IS_MULTICAST(addr) (*(addr) & 0x01) +#define IEEE80211_IS_MULTICAST(a) ETHER_IS_MULTICAST(a) + +/* ic_flags */ +#define IEEE80211_F_ASCAN 0x00000001 /* STATUS: active scan */ +#define IEEE80211_F_SIBSS 0x00000002 /* STATUS: start IBSS */ +#define IEEE80211_F_WEPON 0x00000100 /* CONF: WEP enabled */ +#define IEEE80211_F_IBSSON 0x00000200 /* CONF: IBSS creation enable */ +#define IEEE80211_F_PMGTON 0x00000400 /* CONF: Power mgmt enable */ +#define IEEE80211_F_DESBSSID 0x00000800 /* CONF: des_bssid is set */ +#define IEEE80211_F_SCANAP 0x00001000 /* CONF: Scanning AP */ +#define IEEE80211_F_ROAMING 0x00002000 /* CONF: roaming enabled */ +#define IEEE80211_F_SWRETRY 0x00004000 /* CONF: sw tx retry enabled */ +#define IEEE80211_F_TXPMGT 0x00018000 /* STATUS: tx power */ +#define IEEE80211_F_TXPOW_OFF 0x00000000 /* TX Power: radio disabled */ +#define IEEE80211_F_TXPOW_FIXED 0x00008000 /* TX Power: fixed rate */ +#define IEEE80211_F_TXPOW_AUTO 0x00010000 /* TX Power: undefined */ +#define IEEE80211_F_SHSLOT 0x00020000 /* CONF: short slot time */ +#define IEEE80211_F_SHPREAMBLE 0x00040000 /* CONF: short preamble */ + +/* ic_capabilities */ +#define IEEE80211_C_WEP 0x00000001 /* CAPABILITY: WEP available */ +#define IEEE80211_C_IBSS 0x00000002 /* CAPABILITY: IBSS available */ +#define IEEE80211_C_PMGT 0x00000004 /* CAPABILITY: Power mgmt */ +#define IEEE80211_C_HOSTAP 0x00000008 /* CAPABILITY: HOSTAP avail */ +#define IEEE80211_C_AHDEMO 0x00000010 /* CAPABILITY: Old Adhoc Demo */ +#define IEEE80211_C_SWRETRY 0x00000020 /* CAPABILITY: sw tx retry */ +#define IEEE80211_C_TXPMGT 0x00000040 /* CAPABILITY: tx power mgmt */ +#define IEEE80211_C_SHSLOT 0x00000080 /* CAPABILITY: short slottime */ +#define IEEE80211_C_SHPREAMBLE 0x00000100 /* CAPABILITY: short preamble */ + +/* flags for ieee80211_fix_rate() */ +#define IEEE80211_F_DOSORT 0x00000001 /* sort rate list */ +#define IEEE80211_F_DOFRATE 0x00000002 /* use fixed rate */ +#define IEEE80211_F_DONEGO 0x00000004 /* calc negotiated rate */ +#define IEEE80211_F_DODEL 0x00000008 /* delete ignore rate */ + +int32_t ieee80211_ifattach(gld_mac_info_t *); +void ieee80211_ifdetach(gld_mac_info_t *); +void ieee80211_input(ieee80211com_t *, mblk_t *, + int32_t, uint32_t, uint32_t); +int32_t ieee80211_mgmt_output(ieee80211com_t *, struct ieee80211_node *, + mblk_t *, int32_t); +mblk_t *ieee80211_fill_header(ieee80211com_t *isc, mblk_t *mp_gld, + int32_t wep_txkey, struct ieee80211_node *in); +mblk_t *ieee80211_decap(mblk_t *); +extern const int8_t *ieee80211_essid_sprintf(uint8_t *, uint32_t); +void ieee80211_dump_pkt(uint8_t *, int32_t, int32_t, int32_t); +struct ieee80211_node *ieee80211_find_node(ieee80211com_t *, uint8_t *); +struct ieee80211_node *ieee80211_lookup_node(ieee80211com_t *, + uint8_t *macaddr, struct ieee80211channel *); + +/* + * The following functions are almost the same, except that we should + * already hold isc_genlock before calling _ieee80211_new_state. + */ +int ieee80211_new_state(ieee80211com_t *, enum ieee80211_state, int32_t); +int _ieee80211_new_state(ieee80211com_t *, enum ieee80211_state, int32_t); + +uint32_t ieee80211_mhz2ieee(uint32_t, uint32_t); +uint32_t ieee80211_chan2ieee(ieee80211com_t *, struct ieee80211channel *); +uint32_t ieee80211_ieee2mhz(uint32_t, uint32_t); +enum ieee80211_phymode ieee80211_chan2mode(ieee80211com_t *, + struct ieee80211channel *); +const int8_t *ieee80211_ether_sprintf(const uint8_t *); + +#ifdef __cplusplus +} +#endif + +#endif /* _ATH_IEEE80211_H */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/ath_impl.h Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,309 @@ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* + * Copyright (c) 2002-2004 Sam Leffler, Errno Consulting + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + * + */ + +/* + * ath_impl.h is a bridge between the HAL and the driver. It + * defines some data structures encapsulating the HAL interface + * and communicating with the IEEE80211 MAC layer and other + * driver components. + */ + +#ifndef _ATH_IMPL_H +#define _ATH_IMPL_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Defintions for the Atheros Wireless LAN controller driver. + */ + +#include <sys/list.h> +#include "ath_ieee80211.h" +#include "ath_hal.h" + +/* + * Bit flags in the ath_dbg_flags + */ +#define ATH_DBG_INIT 0x00000001 /* initialisation */ +#define ATH_DBG_GLD 0x00000002 /* GLD entry points */ +#define ATH_DBG_HAL 0x00000004 /* HAL related code */ +#define ATH_DBG_INT 0x00000008 /* interrupt handler */ +#define ATH_DBG_RECV 0x00000010 /* receive-side code */ +#define ATH_DBG_SEND 0x00000020 /* packet-send code */ +#define ATH_DBG_80211 0x00000040 /* 80211 state machine */ +#define ATH_DBG_IOCTL 0x00000080 /* ioctl code */ +#define ATH_DBG_STATS 0x00000100 /* statistics */ +#define ATH_DBG_RATE 0x00000200 /* rate control */ +#define ATH_DBG_AUX 0x00000400 /* for ath_aux.c */ +#define ATH_DBG_WIFICFG 0x00000800 /* wificonfig */ +#define ATH_DBG_OSDEP 0x00001000 /* osdep */ +#define ATH_DBG_ATTACH 0x00002000 /* attach */ +#define ATH_DBG_DETACH 0x00004000 /* detach */ +#define ATH_DBG_ALL 0x00007fff /* all */ + +#ifdef DEBUG +#define ATH_DDB(command) do { \ + { command; } \ + _NOTE(CONSTANTCONDITION)\ + } while (0) +#else +#define ATH_DDB(command) +#endif /* DEBUG */ + +/* + * Node type of wifi device + */ +#ifndef DDI_NT_NET_WIFI +#define DDI_NT_NET_WIFI "ddi_network:wifi" +#endif +#define ATH_NODENAME "ath" + +#define ATH_DEBUG(args) ATH_DDB(ath_dbg args) + +#define list_empty(a) ((a)->list_head.list_next == &(a)->list_head) +#define ATH_LE_READ_4(p) \ + ((uint32_t) \ + ((((uint8_t *)(p))[0]) | (((uint8_t *)(p))[1] << 8) | \ + (((uint8_t *)(p))[2] << 16) | (((uint8_t *)(p))[3] << 24))) +#define ATH_N(a) (sizeof (a) / sizeof (a[0])) +#define ATH_TXQ_SETUP(asc, i) ((asc)->asc_txqsetup & (1<<i)) +#define ATH_PA2DESC(_asc, _pa) \ + ((struct ath_desc *)((caddr_t)(_asc)->asc_desc + \ + ((_pa) - (_asc)->asc_desc_dma.cookie.dmac_address))) +/* + * Sync a DMA area described by a dma_area_t + */ +#define ATH_DMA_SYNC(area, flag) ((void) ddi_dma_sync((area).dma_hdl, \ + (area).offset, (area).alength, (flag))) + +#define ATH_TXINTR_PERIOD 5 +#define ATH_TIMEOUT 1000 +#define ATH_RXBUF 80 /* number of RX buffers */ +#define ATH_TXBUF 200 /* number of TX buffers */ +#define ATH_TXDESC 1 /* number of descriptors per buffer */ +#define ATH_TXMAXTRY 11 /* max number of transmit attempts */ + +/* driver-specific node state */ +struct ath_node { + struct ieee80211_node an_node; /* base class */ + uint32_t an_tx_times; /* rate ctl times on one rate */ + uint32_t an_tx_ok; /* tx ok pkt */ + uint32_t an_tx_err; /* tx !ok pkt */ + uint32_t an_tx_retr; /* tx retry count */ + int32_t an_tx_upper; /* tx upper rate req cnt */ + uint32_t an_tx_antenna; /* antenna for last good frame */ + uint8_t an_tx_rix0; /* series 0 rate index */ + uint8_t an_tx_try0; /* series 0 try count */ + uint8_t an_tx_mgtrate; /* h/w rate for management/ctl frames */ + uint8_t an_tx_mgtratesp; /* short preamble h/w rate for " " */ + uint8_t an_tx_rate0; /* series 0 h/w rate */ + uint8_t an_tx_rate1; /* series 1 h/w rate */ + uint8_t an_tx_rate2; /* series 2 h/w rate */ + uint8_t an_tx_rate3; /* series 3 h/w rate */ + uint8_t an_tx_rate0sp; /* series 0 short preamble h/w rate */ + uint8_t an_tx_rate1sp; /* series 1 short preamble h/w rate */ + uint8_t an_tx_rate2sp; /* series 2 short preamble h/w rate */ + uint8_t an_tx_rate3sp; /* series 3 short preamble h/w rate */ +}; +#define ATH_NODE(_n) ((struct ath_node *)(_n)) + + +struct ath_stats { + uint32_t ast_hardware; /* fatal hardware error interrupts */ + uint32_t ast_rxorn; /* rx overrun interrupts */ + uint32_t ast_rxeol; /* rx eol interrupts */ + uint32_t ast_txurn; /* tx underrun interrupts */ + uint32_t ast_tx_mgmt; /* management frames transmitted */ + uint32_t ast_tx_discard; /* frames discarded prior to assoc */ + uint32_t ast_tx_invalid; /* frames discarded 'cuz device gone */ + uint32_t ast_tx_qstop; /* tx queue stopped 'cuz full */ + uint32_t ast_tx_nobuf; /* tx failed 'cuz no tx buffer (data) */ + uint32_t ast_tx_nobufmgt; /* tx failed 'cuz no tx buffer(mgmt) */ + uint32_t ast_tx_xretries; /* tx failed 'cuz too many retries */ + uint32_t ast_tx_fifoerr; /* tx failed 'cuz FIFO underrun */ + uint32_t ast_tx_filtered; /* tx failed 'cuz xmit filtered */ + uint32_t ast_tx_shortretry; /* tx on-chip retries (short) */ + uint32_t ast_tx_longretry; /* tx on-chip retries (long) */ + uint32_t ast_tx_noack; /* tx frames with no ack marked */ + uint32_t ast_tx_rts; /* tx frames with rts enabled */ + uint32_t ast_tx_shortpre; /* tx frames with short preamble */ + uint32_t ast_tx_altrate; /* tx frames with alternate rate */ + int16_t ast_tx_rssi; /* tx rssi of last ack */ + int16_t ast_tx_rssidelta; /* tx rssi delta */ + uint32_t ast_rx_crcerr; /* rx failed 'cuz of bad CRC */ + uint32_t ast_rx_fifoerr; /* rx failed 'cuz of FIFO overrun */ + uint32_t ast_rx_badcrypt; /* rx failed 'cuz decryption */ + uint32_t ast_rx_phyerr; /* rx PHY error summary count */ + uint32_t ast_rx_phy[32]; /* rx PHY error per-code counts */ + uint32_t ast_rx_tooshort; /* rx discarded 'cuz frame too short */ + uint32_t ast_per_cal; /* periodic calibration calls */ + uint32_t ast_per_calfail; /* periodic calibration failed */ + uint32_t ast_per_rfgain; /* periodic calibration rfgain reset */ + uint32_t ast_rate_calls; /* rate control checks */ + uint32_t ast_rate_raise; /* rate control raised xmit rate */ + uint32_t ast_rate_drop; /* rate control dropped xmit rate */ +}; + + +/* + * Describes one chunk of allocated DMA-able memory + * + * In some cases, this is a single chunk as allocated from the system; + * but we also use this structure to represent slices carved off such + * a chunk. Even when we don't really need all the information, we + * use this structure as a convenient way of correlating the various + * ways of looking at a piece of memory (kernel VA, IO space DVMA, + * handle+offset, etc). + */ +struct dma_area { + ddi_acc_handle_t acc_hdl; /* handle for memory */ + caddr_t mem_va; /* CPU VA of memory */ + uint32_t nslots; /* number of slots */ + uint32_t size; /* size per slot */ + size_t alength; /* allocated size */ + /* >= product of above */ + + ddi_dma_handle_t dma_hdl; /* DMA handle */ + offset_t offset; /* relative to handle */ + ddi_dma_cookie_t cookie; /* associated cookie */ + uint32_t ncookies; /* must be 1 */ + uint32_t token; /* arbitrary identifier */ +}; /* 0x50 (80) bytes */ +typedef struct dma_area dma_area_t; + +struct ath_buf { + struct ath_desc *bf_desc; /* virtual addr of desc */ + uint32_t bf_daddr; /* physical addr of desc */ + dma_area_t bf_dma; /* dma area for buf */ + struct ieee80211_node *bf_in; /* pointer to the node */ + + /* we're in list of asc->asc_txbuf_list or asc->asc_rxbuf_list */ + list_node_t bf_node; +}; + + +/* + * Data transmit queue state. One of these exists for each + * hardware transmit queue. Packets sent to us from above + * are assigned to queues based on their priority. Not all + * devices support a complete set of hardware transmit queues. + * For those devices the array sc_ac2q will map multiple + * priorities to fewer hardware queues (typically all to one + * hardware queue). + */ +struct ath_txq { + uint_t axq_qnum; /* hardware q number */ + uint_t axq_depth; /* queue depth (stat only) */ + uint_t axq_intrcnt; /* interrupt count */ + uint32_t *axq_link; /* link ptr in last TX desc */ + list_t axq_list; /* transmit queue */ + kmutex_t axq_lock; /* lock on q and link */ +}; + + +/* + * asc_isc must be the first element, for convience of + * casting between iee80211com and ath + */ +typedef struct ath { + ieee80211com_t asc_isc; /* IEEE 802.11 common */ + dev_info_t *asc_dev; /* back pointer to dev_info_t */ + struct ath_hal *asc_ah; /* Atheros HAL */ + uint32_t asc_invalid : 1, /* being detached */ + asc_mrretry : 1, /* multi-rate retry support */ + asc_have11g : 1, /* have 11g support */ + asc_splitmic : 1; /* Split TKIP mic keys */ + const HAL_RATE_TABLE *asc_rates[IEEE80211_MODE_MAX]; /* h/w rate */ + + ddi_acc_handle_t asc_cfg_handle; /* DDI I/O handle */ + ddi_acc_handle_t asc_io_handle; /* DDI I/O handle */ + uint16_t asc_cachelsz; /* cache line size */ + ddi_iblock_cookie_t asc_iblock; + ddi_softintr_t asc_softint_id; + + struct ath_desc *asc_desc; /* TX/RX descriptors */ + dma_area_t asc_desc_dma; /* descriptor structure */ + /* pointer to the first "struct ath_buf" */ + struct ath_buf *asc_vbufptr; + /* length of all allocated "struct ath_buf" */ + uint32_t asc_vbuflen; + /* size of one DMA TX/RX buffer based on 802.11 MTU */ + int32_t asc_dmabuf_size; + + list_t asc_rxbuf_list; + kmutex_t asc_rxbuflock; /* recv lock for above data */ + uint32_t *asc_rxlink; /* link ptr in last RX desc */ + uint32_t asc_rx_pend; + + list_t asc_txbuf_list; + kmutex_t asc_txbuflock; /* txbuf lock */ + + uint_t asc_txqsetup; /* h/w queues setup */ + struct ath_txq asc_txq[HAL_NUM_TX_QUEUES]; /* tx queues */ + struct ath_txq *asc_ac2q[5]; /* WME AC -> h/w qnum */ + + const HAL_RATE_TABLE *asc_currates; /* current rate table */ + enum ieee80211_phymode asc_curmode; /* current phy mode */ + uint8_t asc_rixmap[256]; /* IEEE to h/w rate table ix */ + HAL_INT asc_imask; /* interrupt mask copy */ + struct ath_stats asc_stats; /* interface statistics */ + int32_t asc_promisc; /* Promiscuous mode enabled */ + uint8_t asc_mcast_cnt[64]; + uint32_t asc_mfilt[2]; + kmutex_t asc_genlock; + + uint32_t asc_need_gld_sched; + kmutex_t asc_gld_sched_lock; +} ath_t; + +#define ATH_STATE(macinfo) ((ath_t *)((macinfo)->gldm_private)) + +/* Debug and log functions */ +void ath_dbg(uint32_t dbg_flags, const char *fmt, ...); /* debug function */ +void ath_log(const char *fmt, ...); /* event log function */ +void ath_problem(const char *fmt, ...); /* run-time problem function */ + +#ifdef __cplusplus +} +#endif + +#endif /* _ATH_IMPL_H */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/ath_main.c Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,2205 @@ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* + * Copyright (c) 2002-2004 Sam Leffler, Errno Consulting + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + * + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +/* + * Driver for the Atheros Wireless LAN controller. + * + * The Atheros driver can be devided into 2 parts: H/W related(we called LLD: + * Low Level Driver) and IEEE80211 protocol related(we called IEEE80211), + * and each part has several sub modules. + * The following is the high level structure of ath driver. + * (The arrows between modules indicate function call direction.) + * + * + * ^ | + * | | GLD thread + * | V + * ================== ========================================= + * |[1] | |[2] | + * | | | GLD Callback functions registered | + * | IEEE80211 | ========================= by | + * | | | | IEEE80211 | + * | Internal | V | | + * ========= | |======================== | | + * |[3] | | Functions | | | + * | | | | | | + * |Multi- | ========================================== ================= + * | | ^ | | | + * |Func | | V V V + * | | ====================== ------------------------------------ + * |Thread | |[4] | |[5] | + * | |-->| Functions exported | | IEEE80211 Callback functions | + * | | | by IEEE80211 | | registered by LLD | + * ========= ====================== ------------------------------------ + * ^ | + * | V + * ------------------------------------------------------------- + * |[6] | + * | LLD Internal functions | + * | | + * ------------------------------------------------------------- + * ^ + * | Software interrupt thread + * | + * + * Modules 1/2/3/4 constitute part IEEE80211, and modules 5/6 constitute LLD. + * The short description of each module is as below: + * Module 1: IEEE80211 Internal functions, including ieee80211 state + * machine, convert functions between 802.3 frame and + * 802.11 frame, and node maintain function, etc. + * Module 2: GLD callback functions, which are intercepting the calls from + * GLD to LLD, and adding IEEE80211's mutex protection. + * Module 3: Multi-func thread, which is responsible for scan timing, + * rate control timing and calibrate timing. + * Module 4: Functions exported by IEEE80211, which can be called from + * other modules. + * Module 5: IEEE80211 callback functions registered by LLD, which include + * GLD related callbacks and some other functions needed by + * IEEE80211. + * Module 6: LLD Internal functions, which are responsible for allocing + * descriptor/buffer, handling interrupt and other H/W + * operations. + * + * All functions are running in 3 types of thread: + * 1. GLD callbacks threads, such as ioctl, intr, etc. + * 2. Multi-Func thread in IEEE80211 which is responsible for scan, + * rate control and calibrate. + * 3. Software Interrupt thread originated in LLD. + * + * The lock strategy is as below: + * There have 4 queues for tx, each queue has one asc_txqlock[i] to + * prevent conflicts access to queue resource from different thread. + * + * All the transmit buffers are contained in asc_txbuf which are + * protected by asc_txbuflock. + * + * Each receive buffers are contained in asc_rxbuf which are protected + * by asc_rxbuflock. + * + * In ath struct, asc_genlock is a general lock, protecting most other + * operational data in ath_softc struct and HAL accesses. + * It is acquired by the interupt handler and most "mode-ctrl" routines. + * + * In ieee80211com struct, isc_genlock is a general lock to protect + * necessary data and functions in ieee80211_com struct. Some data in + * ieee802.11_com don't need protection. For example, isc_dev is writen + * only in ath_attach(), but read in many other functions, so protection + * is not necessary. + * + * Any of the locks can be acquired singly, but where multiple + * locks are acquired, they *must* be in the order: + * + * isc_genlock >> asc_genlock >> asc_txqlock[i] >> + * asc_txbuflock >> asc_rxbuflock + * + * Note: + * 1. All the IEEE80211 callback functions(except isc_gld_intr) + * registered by LLD in module [5] are protected by isc_genlock before + * calling from IEEE80211. + * 2. Module [4] have 3 important functions ieee80211_input(), + * ieee80211_new_state() and _ieee80211_new_state(). + * The functions in module [6] should avoid holding mutex or other locks + * during the call to ieee80211_input(). + * In particular, the soft interrupt thread that calls ieee80211_input() + * may in some cases carry out processing that includes sending an outgoing + * packet, resulting in a call to the driver's ath_mgmt_send() routine. + * If the ath_mgmt_send() routine were to try to acquire a mutex being held + * by soft interrupt thread at the time it calls ieee80211_input(), + * this could result in a panic due to recursive mutex entry. + * ieee80211_new_state() and _ieee80211_new_state() are almost the same + * except that the latter function asserts isc_genlock is owned in its entry. + * so ieee80211_new_state() is only called by ath_bmiss_handler() + * from soft interrupt handler thread. + * As the same reason to ieee80211_input, we can't hold any other mutex. + * 3. *None* of these locks may be held across calls out to the + * GLD routines gld_recv() in ieee80211_input(). + * + */ + +#include <sys/param.h> +#include <sys/types.h> +#include <sys/signal.h> +#include <sys/stream.h> +#include <sys/termio.h> +#include <sys/errno.h> +#include <sys/file.h> +#include <sys/cmn_err.h> +#include <sys/stropts.h> +#include <sys/strsubr.h> +#include <sys/strtty.h> +#include <sys/kbio.h> +#include <sys/cred.h> +#include <sys/stat.h> +#include <sys/consdev.h> +#include <sys/kmem.h> +#include <sys/modctl.h> +#include <sys/ddi.h> +#include <sys/sunddi.h> +#include <sys/pci.h> +#include <sys/errno.h> +#include <sys/gld.h> +#include <sys/dlpi.h> +#include <sys/ethernet.h> +#include <sys/list.h> +#include <sys/byteorder.h> +#include <sys/strsun.h> +#include <sys/policy.h> +#include <inet/common.h> +#include <inet/nd.h> +#include <inet/mi.h> +#include <inet/wifi_ioctl.h> +#include "ath_hal.h" +#include "ath_impl.h" +#include "ath_aux.h" +#include "ath_rate.h" + +extern void ath_halfix_init(void); +extern void ath_halfix_finit(void); +extern int32_t ath_getset(ath_t *asc, mblk_t *mp, uint32_t cmd); + +/* + * PIO access attributes for registers + */ +static ddi_device_acc_attr_t ath_reg_accattr = { + DDI_DEVICE_ATTR_V0, + DDI_STRUCTURE_LE_ACC, + DDI_STRICTORDER_ACC +}; + +/* + * DMA access attributes for descriptors: NOT to be byte swapped. + */ +static ddi_device_acc_attr_t ath_desc_accattr = { + DDI_DEVICE_ATTR_V0, + DDI_STRUCTURE_LE_ACC, + DDI_STRICTORDER_ACC +}; + +/* + * Describes the chip's DMA engine + */ +static ddi_dma_attr_t dma_attr = { + DMA_ATTR_V0, /* dma_attr version */ + 0x0000000000000000ull, /* dma_attr_addr_lo */ + 0xFFFFFFFFFFFFFFFFull, /* dma_attr_addr_hi */ + 0x00000000FFFFFFFFull, /* dma_attr_count_max */ + 0x0000000000000001ull, /* dma_attr_align */ + 0x00000FFF, /* dma_attr_burstsizes */ + 0x00000001, /* dma_attr_minxfer */ + 0x000000000000FFFFull, /* dma_attr_maxxfer */ + 0xFFFFFFFFFFFFFFFFull, /* dma_attr_seg */ + 1, /* dma_attr_sgllen */ + 0x00000001, /* dma_attr_granular */ + 0 /* dma_attr_flags */ +}; + +static uint8_t ath_broadcast_addr[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; + +static kmutex_t ath_loglock; +static void *ath_soft_state_p = NULL; + +/* + * Available debug flags: + * ATH_DBG_INIT, ATH_DBG_GLD, ATH_DBG_HAL, ATH_DBG_INT, ATH_DBG_ATTACH, + * ATH_DBG_DETACH, ATH_DBG_AUX, ATH_DBG_WIFICFG, ATH_DBG_OSDEP + */ +uint32_t ath_dbg_flags = 0; + +/* + * Exception/warning cases not leading to panic. + */ +void +ath_problem(const int8_t *fmt, ...) +{ + va_list args; + + mutex_enter(&ath_loglock); + + va_start(args, fmt); + vcmn_err(CE_WARN, fmt, args); + va_end(args); + + mutex_exit(&ath_loglock); +} + +/* + * Normal log information independent of debug. + */ +void +ath_log(const int8_t *fmt, ...) +{ + va_list args; + + mutex_enter(&ath_loglock); + + va_start(args, fmt); + vcmn_err(CE_CONT, fmt, args); + va_end(args); + + mutex_exit(&ath_loglock); +} + +void +ath_dbg(uint32_t dbg_flags, const int8_t *fmt, ...) +{ + va_list args; + + if (dbg_flags & ath_dbg_flags) { + mutex_enter(&ath_loglock); + va_start(args, fmt); + vcmn_err(CE_CONT, fmt, args); + va_end(args); + mutex_exit(&ath_loglock); + } +} + +void +ath_setup_desc(ath_t *asc, struct ath_buf *bf) +{ + struct ath_desc *ds; + + ds = bf->bf_desc; + ds->ds_link = bf->bf_daddr; + ds->ds_data = bf->bf_dma.cookie.dmac_address; + ATH_HAL_SETUPRXDESC(asc->asc_ah, ds, + bf->bf_dma.alength, /* buffer size */ + 0); + + if (asc->asc_rxlink != NULL) + *asc->asc_rxlink = bf->bf_daddr; + asc->asc_rxlink = &ds->ds_link; +} + + +/* + * Allocate an area of memory and a DMA handle for accessing it + */ +static int +ath_alloc_dma_mem(dev_info_t *devinfo, size_t memsize, + ddi_device_acc_attr_t *attr_p, uint_t alloc_flags, + uint_t bind_flags, dma_area_t *dma_p) +{ + int err; + + /* + * Allocate handle + */ + err = ddi_dma_alloc_handle(devinfo, &dma_attr, + DDI_DMA_SLEEP, NULL, &dma_p->dma_hdl); + if (err != DDI_SUCCESS) + return (DDI_FAILURE); + + /* + * Allocate memory + */ + err = ddi_dma_mem_alloc(dma_p->dma_hdl, memsize, attr_p, + alloc_flags, DDI_DMA_SLEEP, NULL, &dma_p->mem_va, + &dma_p->alength, &dma_p->acc_hdl); + if (err != DDI_SUCCESS) + return (DDI_FAILURE); + + /* + * Bind the two together + */ + err = ddi_dma_addr_bind_handle(dma_p->dma_hdl, NULL, + dma_p->mem_va, dma_p->alength, bind_flags, + DDI_DMA_SLEEP, NULL, &dma_p->cookie, &dma_p->ncookies); + if (err != DDI_DMA_MAPPED) + return (DDI_FAILURE); + + dma_p->nslots = ~0U; + dma_p->size = ~0U; + dma_p->token = ~0U; + dma_p->offset = 0; + return (DDI_SUCCESS); +} + +/* + * Free one allocated area of DMAable memory + */ +static void +ath_free_dma_mem(dma_area_t *dma_p) +{ + if (dma_p->dma_hdl != NULL) { + (void) ddi_dma_unbind_handle(dma_p->dma_hdl); + if (dma_p->acc_hdl != NULL) { + ddi_dma_mem_free(&dma_p->acc_hdl); + dma_p->acc_hdl = NULL; + } + ddi_dma_free_handle(&dma_p->dma_hdl); + dma_p->ncookies = 0; + dma_p->dma_hdl = NULL; + } +} + + +static int +ath_desc_alloc(dev_info_t *devinfo, ath_t *asc) +{ + int i, err; + size_t size; + struct ath_desc *ds; + struct ath_buf *bf; + + size = sizeof (struct ath_desc) * (ATH_TXBUF + ATH_RXBUF); + + err = ath_alloc_dma_mem(devinfo, size, &ath_desc_accattr, + DDI_DMA_CONSISTENT, DDI_DMA_RDWR | DDI_DMA_CONSISTENT, + &asc->asc_desc_dma); + + /* virtual address of the first descriptor */ + asc->asc_desc = (struct ath_desc *)asc->asc_desc_dma.mem_va; + + ds = asc->asc_desc; + ATH_DEBUG((ATH_DBG_INIT, "ath: ath_desc_alloc(): DMA map: " + "%p (%d) -> %p\n", + asc->asc_desc, asc->asc_desc_dma.alength, + asc->asc_desc_dma.cookie.dmac_address)); + + /* allocate data structures to describe TX/RX DMA buffers */ + asc->asc_vbuflen = sizeof (struct ath_buf) * (ATH_TXBUF + ATH_RXBUF); + bf = (struct ath_buf *)kmem_zalloc(asc->asc_vbuflen, KM_SLEEP); + asc->asc_vbufptr = bf; + + /* DMA buffer size for each TX/RX packet */ + asc->asc_dmabuf_size = roundup(1000 + sizeof (struct ieee80211_frame) + + IEEE80211_MTU + IEEE80211_CRC_LEN + + (IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN + + IEEE80211_WEP_CRCLEN), asc->asc_cachelsz); + + /* create RX buffer list and allocate DMA memory */ + list_create(&asc->asc_rxbuf_list, sizeof (struct ath_buf), + offsetof(struct ath_buf, bf_node)); + for (i = 0; i < ATH_RXBUF; i++, bf++, ds++) { + bf->bf_desc = ds; + bf->bf_daddr = asc->asc_desc_dma.cookie.dmac_address + + ((caddr_t)ds - (caddr_t)asc->asc_desc); + list_insert_tail(&asc->asc_rxbuf_list, bf); + + /* alloc DMA memory */ + err = ath_alloc_dma_mem(devinfo, asc->asc_dmabuf_size, + &ath_desc_accattr, + DDI_DMA_STREAMING, DDI_DMA_READ | DDI_DMA_STREAMING, + &bf->bf_dma); + if (err != DDI_SUCCESS) + return (err); + } + + /* create TX buffer list and allocate DMA memory */ + list_create(&asc->asc_txbuf_list, sizeof (struct ath_buf), + offsetof(struct ath_buf, bf_node)); + for (i = 0; i < ATH_TXBUF; i++, bf++, ds++) { + bf->bf_desc = ds; + bf->bf_daddr = asc->asc_desc_dma.cookie.dmac_address + + ((caddr_t)ds - (caddr_t)asc->asc_desc); + list_insert_tail(&asc->asc_txbuf_list, bf); + + /* alloc DMA memory */ + err = ath_alloc_dma_mem(devinfo, size, &ath_desc_accattr, + DDI_DMA_STREAMING, DDI_DMA_STREAMING, &bf->bf_dma); + if (err != DDI_SUCCESS) + return (err); + } + + return (DDI_SUCCESS); +} + +static void +ath_desc_free(ath_t *asc) +{ + struct ath_buf *bf; + + /* Free TX DMA buffer */ + bf = list_head(&asc->asc_txbuf_list); + while (bf != NULL) { + ath_free_dma_mem(&bf->bf_dma); + list_remove(&asc->asc_txbuf_list, bf); + bf = list_head(&asc->asc_txbuf_list); + } + list_destroy(&asc->asc_txbuf_list); + + /* Free RX DMA uffer */ + bf = list_head(&asc->asc_rxbuf_list); + while (bf != NULL) { + ath_free_dma_mem(&bf->bf_dma); + list_remove(&asc->asc_rxbuf_list, bf); + bf = list_head(&asc->asc_rxbuf_list); + } + list_destroy(&asc->asc_rxbuf_list); + + /* Free descriptor DMA buffer */ + ath_free_dma_mem(&asc->asc_desc_dma); + + kmem_free((void *)asc->asc_vbufptr, asc->asc_vbuflen); + asc->asc_vbufptr = NULL; +} + +static void +ath_printrxbuf(struct ath_buf *bf, int32_t done) +{ + struct ath_desc *ds = bf->bf_desc; + + ATH_DEBUG((ATH_DBG_RECV, "ath: R (%p %p) %08x %08x %08x " + "%08x %08x %08x %c\n", + ds, bf->bf_daddr, + ds->ds_link, ds->ds_data, + ds->ds_ctl0, ds->ds_ctl1, + ds->ds_hw[0], ds->ds_hw[1], + !done ? ' ' : (ds->ds_rxstat.rs_status == 0) ? '*' : '!')); +} + +static void +ath_rx_handler(ath_t *asc) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ath_buf *bf; + struct ath_hal *ah = asc->asc_ah; + struct ath_desc *ds; + mblk_t *rx_mp; + struct ieee80211_frame *wh, whbuf; + int32_t len, loop = 1; + uint8_t phyerr; + HAL_STATUS status; + HAL_NODE_STATS hal_node_stats; + + do { + mutex_enter(&asc->asc_rxbuflock); + bf = list_head(&asc->asc_rxbuf_list); + if (bf == NULL) { + ATH_DEBUG((ATH_DBG_RECV, "ath: ath_rx_handler(): " + "no buffer\n")); + mutex_exit(&asc->asc_rxbuflock); + break; + } + ASSERT(bf->bf_dma.cookie.dmac_address != NULL); + ds = bf->bf_desc; + if (ds->ds_link == bf->bf_daddr) { + /* + * Never process the self-linked entry at the end, + * this may be met at heavy load. + */ + mutex_exit(&asc->asc_rxbuflock); + break; + } + + status = ATH_HAL_RXPROCDESC(ah, ds, + bf->bf_daddr, + ATH_PA2DESC(asc, ds->ds_link)); + if (status == HAL_EINPROGRESS) { + mutex_exit(&asc->asc_rxbuflock); + break; + } + list_remove(&asc->asc_rxbuf_list, bf); + mutex_exit(&asc->asc_rxbuflock); + + if (ds->ds_rxstat.rs_status != 0) { + if (ds->ds_rxstat.rs_status & HAL_RXERR_CRC) + asc->asc_stats.ast_rx_crcerr++; + if (ds->ds_rxstat.rs_status & HAL_RXERR_FIFO) + asc->asc_stats.ast_rx_fifoerr++; + if (ds->ds_rxstat.rs_status & HAL_RXERR_DECRYPT) + asc->asc_stats.ast_rx_badcrypt++; + if (ds->ds_rxstat.rs_status & HAL_RXERR_PHY) { + asc->asc_stats.ast_rx_phyerr++; + phyerr = ds->ds_rxstat.rs_phyerr & 0x1f; + asc->asc_stats.ast_rx_phy[phyerr]++; + } + goto rx_next; + } + len = ds->ds_rxstat.rs_datalen; + + /* less than sizeof(struct ieee80211_frame) */ + if (len < 20) { + asc->asc_stats.ast_rx_tooshort++; + goto rx_next; + } + + if ((rx_mp = allocb(asc->asc_dmabuf_size, BPRI_MED)) == NULL) { + ath_problem("ath: ath_rx_handler(): " + "allocing mblk buffer failed.\n"); + return; + } + + ATH_DMA_SYNC(bf->bf_dma, DDI_DMA_SYNC_FORCPU); + bcopy(bf->bf_dma.mem_va, rx_mp->b_rptr, len); + + rx_mp->b_wptr += len; + wh = (struct ieee80211_frame *)rx_mp->b_rptr; + if ((wh->ifrm_fc[0] & IEEE80211_FC0_TYPE_MASK) == + IEEE80211_FC0_TYPE_CTL) { + /* + * Ignore control frame received in promisc mode. + */ + freemsg(rx_mp); + goto rx_next; + } + /* Remove the CRC at the end of IEEE80211 frame */ + rx_mp->b_wptr -= IEEE80211_CRC_LEN; + if (wh->ifrm_fc[1] & IEEE80211_FC1_WEP) { + /* + * WEP is decrypted by hardware. Clear WEP bit + * and trim WEP header for ieee80211_input(). + */ + wh->ifrm_fc[1] &= ~IEEE80211_FC1_WEP; + bcopy(wh, &whbuf, sizeof (whbuf)); + /* + * Remove WEP related fields between + * header and payload. + */ + rx_mp->b_rptr += IEEE80211_WEP_IVLEN + + IEEE80211_WEP_KIDLEN; + bcopy(&whbuf, rx_mp->b_rptr, sizeof (whbuf)); + /* + * Remove WEP CRC from the tail. + */ + rx_mp->b_wptr -= IEEE80211_WEP_CRCLEN; + } +#ifdef DEBUG + ath_printrxbuf(bf, status == HAL_OK); +#endif /* DEBUG */ + ieee80211_input(isc, rx_mp, + ds->ds_rxstat.rs_rssi, + ds->ds_rxstat.rs_tstamp, + ds->ds_rxstat.rs_antenna); +rx_next: + mutex_enter(&asc->asc_rxbuflock); + list_insert_tail(&asc->asc_rxbuf_list, bf); + mutex_exit(&asc->asc_rxbuflock); + ath_setup_desc(asc, bf); + } while (loop); + + /* rx signal state monitoring */ + ATH_HAL_RXMONITOR(ah, &hal_node_stats); + ATH_HAL_RXENA(ah); /* in case of RXEOL */ +} + +static void +ath_printtxbuf(struct ath_buf *bf, int done) +{ + struct ath_desc *ds = bf->bf_desc; + + ATH_DEBUG((ATH_DBG_SEND, "ath: T(%p %p) %08x %08x %08x %08x %08x" + " %08x %08x %08x %c\n", + ds, bf->bf_daddr, + ds->ds_link, ds->ds_data, + ds->ds_ctl0, ds->ds_ctl1, + ds->ds_hw[0], ds->ds_hw[1], ds->ds_hw[2], ds->ds_hw[3], + !done ? ' ' : (ds->ds_txstat.ts_status == 0) ? '*' : '!')); +} + +/* + * The input parameter mp has following assumption: + * the first mblk is for ieee80211 header, and there has enough space left + * for WEP option at the end of this mblk. + * The continue mblks are for payload. + */ +static int32_t +ath_xmit(ath_t *asc, struct ieee80211_node *in, + struct ath_buf *bf, mblk_t *mp, mblk_t *mp_header) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ieee80211_frame *wh; + struct ath_hal *ah = asc->asc_ah; + uint32_t subtype, flags, ctsduration, antenna; + int32_t keyix, iswep, hdrlen, pktlen, mblen, mbslen, try0; + uint8_t rix, cix, txrate, ctsrate, *tmp_ptr; + struct ath_desc *ds; + struct ath_txq *txq; + HAL_PKT_TYPE atype; + const HAL_RATE_TABLE *rt; + HAL_BOOL shortPreamble; + mblk_t *mp0; + struct ath_node *an; + + /* + * CRC are added by H/W, not encaped by driver, + * but we must count it in pkt length. + */ + pktlen = IEEE80211_CRC_LEN; + + wh = (struct ieee80211_frame *)mp_header->b_rptr; + iswep = wh->ifrm_fc[1] & IEEE80211_FC1_WEP; + keyix = HAL_TXKEYIX_INVALID; + hdrlen = sizeof (struct ieee80211_frame); + if (iswep) { + hdrlen += IEEE80211_WEP_IVLEN + IEEE80211_WEP_KIDLEN; + pktlen += IEEE80211_WEP_CRCLEN; + keyix = isc->isc_wep_txkey; + } + tmp_ptr = (uint8_t *)bf->bf_dma.mem_va; + + /* Copy 80211 header from mblk to DMA txbuf */ + mblen = mp_header->b_wptr - mp_header->b_rptr; + bcopy(mp_header->b_rptr, tmp_ptr, mblen); + tmp_ptr += mblen; + pktlen += mblen; + mbslen = mblen; + + /* + * If mp==NULL, then it's a management frame, + * else it's a data frame. + */ + if (mp != NULL) { + /* + * Copy the first mblk to DMA txbuf + * (this mblk includes ether header). + */ + mblen = mp->b_wptr - mp->b_rptr - sizeof (struct ether_header); + bcopy(mp->b_rptr + sizeof (struct ether_header), + tmp_ptr, mblen); + tmp_ptr += mblen; + pktlen += mblen; + mbslen += mblen; + + /* Copy subsequent mblks to DMA txbuf */ + for (mp0 = mp->b_cont; mp0 != NULL; mp0 = mp0->b_cont) { + mblen = mp0->b_wptr - mp0->b_rptr; + bcopy(mp0->b_rptr, tmp_ptr, mblen); + tmp_ptr += mblen; + pktlen += mblen; + mbslen += mblen; + } + } + + bf->bf_in = in; + + /* setup descriptors */ + ds = bf->bf_desc; + rt = asc->asc_currates; + + /* + * The 802.11 layer marks whether or not we should + * use short preamble based on the current mode and + * negotiated parameters. + */ + if ((isc->isc_flags & IEEE80211_F_SHPREAMBLE) && + (in->in_capinfo & IEEE80211_CAPINFO_SHORT_PREAMBLE)) { + shortPreamble = AH_TRUE; + asc->asc_stats.ast_tx_shortpre++; + } else { + shortPreamble = AH_FALSE; + } + + an = ATH_NODE(in); + + /* + * Calculate Atheros packet type from IEEE80211 packet header + * and setup for rate calculations. + */ + switch (wh->ifrm_fc[0] & IEEE80211_FC0_TYPE_MASK) { + case IEEE80211_FC0_TYPE_MGT: + subtype = wh->ifrm_fc[0] & IEEE80211_FC0_SUBTYPE_MASK; + if (subtype == IEEE80211_FC0_SUBTYPE_BEACON) + atype = HAL_PKT_TYPE_BEACON; + else if (subtype == IEEE80211_FC0_SUBTYPE_PROBE_RESP) + atype = HAL_PKT_TYPE_PROBE_RESP; + else if (subtype == IEEE80211_FC0_SUBTYPE_ATIM) + atype = HAL_PKT_TYPE_ATIM; + else + atype = HAL_PKT_TYPE_NORMAL; + rix = 0; /* lowest rate */ + try0 = ATH_TXMAXTRY; + if (shortPreamble) + txrate = an->an_tx_mgtratesp; + else + txrate = an->an_tx_mgtrate; + /* force all ctl frames to highest queue */ + txq = asc->asc_ac2q[WME_AC_VO]; + break; + case IEEE80211_FC0_TYPE_CTL: + atype = HAL_PKT_TYPE_PSPOLL; + subtype = wh->ifrm_fc[0] & IEEE80211_FC0_SUBTYPE_MASK; + rix = 0; /* lowest rate */ + try0 = ATH_TXMAXTRY; + if (shortPreamble) + txrate = an->an_tx_mgtratesp; + else + txrate = an->an_tx_mgtrate; + /* force all ctl frames to highest queue */ + txq = asc->asc_ac2q[WME_AC_VO]; + break; + case IEEE80211_FC0_TYPE_DATA: + atype = HAL_PKT_TYPE_NORMAL; + rix = an->an_tx_rix0; + try0 = an->an_tx_try0; + if (shortPreamble) + txrate = an->an_tx_rate0sp; + else + txrate = an->an_tx_rate0; + /* Always use background queue */ + txq = asc->asc_ac2q[WME_AC_BK]; + break; + default: + /* Unknown 802.11 frame */ + asc->asc_stats.ast_tx_invalid++; + return (1); + } + /* + * Calculate miscellaneous flags. + */ + flags = HAL_TXDESC_CLRDMASK; + if (IEEE80211_IS_MULTICAST(wh->ifrm_addr1)) { + flags |= HAL_TXDESC_NOACK; /* no ack on broad/multicast */ + asc->asc_stats.ast_tx_noack++; + } else if (pktlen > isc->isc_rtsthreshold) { + flags |= HAL_TXDESC_RTSENA; /* RTS based on frame length */ + asc->asc_stats.ast_tx_rts++; + } + + /* + * Calculate duration. This logically belongs in the 802.11 + * layer but it lacks sufficient information to calculate it. + */ + if ((flags & HAL_TXDESC_NOACK) == 0 && + (wh->ifrm_fc[0] & IEEE80211_FC0_TYPE_MASK) != + IEEE80211_FC0_TYPE_CTL) { + uint16_t dur; + dur = ath_hal_computetxtime(ah, rt, IEEE80211_ACK_SIZE, + rix, shortPreamble); + *(uint16_t *)wh->ifrm_dur = LE_16(dur); + } + + /* + * Calculate RTS/CTS rate and duration if needed. + */ + ctsduration = 0; + if (flags & (HAL_TXDESC_RTSENA|HAL_TXDESC_CTSENA)) { + /* + * CTS transmit rate is derived from the transmit rate + * by looking in the h/w rate table. We must also factor + * in whether or not a short preamble is to be used. + */ + cix = rt->info[rix].controlRate; + ctsrate = rt->info[cix].rateCode; + if (shortPreamble) + ctsrate |= rt->info[cix].shortPreamble; + /* + * Compute the transmit duration based on the size + * of an ACK frame. We call into the HAL to do the + * computation since it depends on the characteristics + * of the actual PHY being used. + */ + if (flags & HAL_TXDESC_RTSENA) { /* SIFS + CTS */ + ctsduration += ath_hal_computetxtime(ah, + rt, IEEE80211_ACK_SIZE, cix, shortPreamble); + } + /* SIFS + data */ + ctsduration += ath_hal_computetxtime(ah, + rt, pktlen, rix, shortPreamble); + if ((flags & HAL_TXDESC_NOACK) == 0) { /* SIFS + ACK */ + ctsduration += ath_hal_computetxtime(ah, + rt, IEEE80211_ACK_SIZE, cix, shortPreamble); + } + } else + ctsrate = 0; + + /* + * For now use the antenna on which the last good + * frame was received on. We assume this field is + * initialized to 0 which gives us ``auto'' or the + * ``default'' antenna. + */ + if (an->an_tx_antenna) + antenna = an->an_tx_antenna; + else + antenna = in->in_recv_hist[in->in_hist_cur].irh_rantenna; + + if (++txq->axq_intrcnt >= ATH_TXINTR_PERIOD) { + flags |= HAL_TXDESC_INTREQ; + txq->axq_intrcnt = 0; + } + + /* + * Formulate first tx descriptor with tx controls. + */ + ATH_HAL_SETUPTXDESC(ah, ds, + pktlen, /* packet length */ + hdrlen, /* header length */ + atype, /* Atheros packet type */ + MIN(in->in_txpower, 60), /* txpower */ + txrate, try0, /* series 0 rate/tries */ + keyix, + antenna, /* antenna mode */ + flags, /* flags */ + ctsrate, /* rts/cts rate */ + ctsduration); /* rts/cts duration */ + + ATH_DEBUG((ATH_DBG_SEND, "ath: ath_xmit(): to %s totlen=%d " + "an->an_tx_rate1sp=%d tx_rate2sp=%d tx_rate3sp=%d " + "qnum=%d rix=%d sht=%d dur = %d\n", + ieee80211_ether_sprintf(wh->ifrm_addr1), mbslen, an->an_tx_rate1sp, + an->an_tx_rate2sp, an->an_tx_rate3sp, + txq->axq_qnum, rix, shortPreamble, *(uint16_t *)wh->ifrm_dur)); + + /* + * Setup the multi-rate retry state only when we're + * going to use it. This assumes ath_hal_setuptxdesc + * initializes the descriptors (so we don't have to) + * when the hardware supports multi-rate retry and + * we don't use it. + */ + if (try0 != ATH_TXMAXTRY) + ATH_HAL_SETUPXTXDESC(ah, ds, + an->an_tx_rate1sp, 2, /* series 1 */ + an->an_tx_rate2sp, 2, /* series 2 */ + an->an_tx_rate3sp, 2); /* series 3 */ + + ds->ds_link = 0; + ds->ds_data = bf->bf_dma.cookie.dmac_address; + ATH_HAL_FILLTXDESC(ah, ds, + mbslen, /* segment length */ + AH_TRUE, /* first segment */ + AH_TRUE, /* last segment */ + ds); /* first descriptor */ + + ATH_DMA_SYNC(bf->bf_dma, DDI_DMA_SYNC_FORDEV); + + mutex_enter(&txq->axq_lock); + list_insert_tail(&txq->axq_list, bf); + if (txq->axq_link == NULL) { + ATH_HAL_PUTTXBUF(ah, txq->axq_qnum, bf->bf_daddr); + } else { + *txq->axq_link = bf->bf_daddr; + } + txq->axq_link = &ds->ds_link; + mutex_exit(&txq->axq_lock); + + ATH_HAL_TXSTART(ah, txq->axq_qnum); + + return (0); +} + + +static int +ath_gld_send(gld_mac_info_t *gld_p, mblk_t *mp) +{ + int err; + ath_t *asc = ATH_STATE(gld_p); + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ieee80211_node *in; + mblk_t *mp_header; + struct ath_buf *bf = NULL; + + /* + * No data frames go out unless we're associated; this + * should not happen as the 802.11 layer does not enable + * the xmit queue until we enter the RUN state. + */ + if (isc->isc_state != IEEE80211_S_RUN) { + ATH_DEBUG((ATH_DBG_SEND, "ath: ath_gld_send(): " + "discard, state %u\n", isc->isc_state)); + asc->asc_stats.ast_tx_discard++; + return (GLD_NOLINK); + } + + /* + * Only supports STA mode + */ + if (isc->isc_opmode != IEEE80211_M_STA) + return (GLD_NOLINK); + + /* + * Locate AP information, so we can fill MAC address. + */ + in = isc->isc_bss; + in->in_inact = 0; + + /* + * Grab a TX buffer. + */ + mutex_enter(&asc->asc_txbuflock); + bf = list_head(&asc->asc_txbuf_list); + + if (bf != NULL) + list_remove(&asc->asc_txbuf_list, bf); + mutex_exit(&asc->asc_txbuflock); + + if (bf == NULL) { + ATH_DEBUG((ATH_DBG_SEND, "ath: ath_gld_send(): " + "no TX DMA buffer available: 100 times\n")); + asc->asc_stats.ast_tx_nobuf++; + + mutex_enter(&asc->asc_gld_sched_lock); + asc->asc_need_gld_sched = 1; + mutex_exit(&asc->asc_gld_sched_lock); + return (GLD_NORESOURCES); + } + + mp_header = ieee80211_fill_header(isc, mp, isc->isc_wep_txkey, in); + if (mp_header == NULL) { + /* Push back the TX buf */ + mutex_enter(&asc->asc_txbuflock); + list_insert_tail(&asc->asc_txbuf_list, bf); + mutex_exit(&asc->asc_txbuflock); + return (GLD_FAILURE); + } + + err = ath_xmit(asc, in, bf, mp, mp_header); + freemsg(mp_header); + + if (!err) { + freemsg(mp); + return (GLD_SUCCESS); + } else { + return (GLD_FAILURE); + } +} + +static void +ath_tx_processq(ath_t *asc, struct ath_txq *txq) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ath_hal *ah = asc->asc_ah; + struct ath_buf *bf; + struct ath_desc *ds; + struct ieee80211_node *in; + int32_t sr, lr; + HAL_STATUS status; + struct ath_node *an; + + for (;;) { + mutex_enter(&txq->axq_lock); + bf = list_head(&txq->axq_list); + if (bf == NULL) { + txq->axq_link = NULL; + mutex_exit(&txq->axq_lock); + break; + } + ds = bf->bf_desc; /* last decriptor */ + status = ATH_HAL_TXPROCDESC(ah, ds); +#ifdef DEBUG + ath_printtxbuf(bf, status == HAL_OK); +#endif + if (status == HAL_EINPROGRESS) { + mutex_exit(&txq->axq_lock); + break; + } + list_remove(&txq->axq_list, bf); + mutex_exit(&txq->axq_lock); + in = bf->bf_in; + if (in != NULL) { + an = ATH_NODE(in); + /* Successful transmition */ + if (ds->ds_txstat.ts_status == 0) { + an->an_tx_ok++; + an->an_tx_antenna = + ds->ds_txstat.ts_antenna; + if (ds->ds_txstat.ts_rate & + HAL_TXSTAT_ALTRATE) + asc->asc_stats.ast_tx_altrate++; + asc->asc_stats.ast_tx_rssidelta = + ds->ds_txstat.ts_rssi - + asc->asc_stats.ast_tx_rssi; + asc->asc_stats.ast_tx_rssi = + ds->ds_txstat.ts_rssi; + } else { + an->an_tx_err++; + if (ds->ds_txstat.ts_status & + HAL_TXERR_XRETRY) + asc->asc_stats. + ast_tx_xretries++; + if (ds->ds_txstat.ts_status & + HAL_TXERR_FIFO) + asc->asc_stats.ast_tx_fifoerr++; + if (ds->ds_txstat.ts_status & + HAL_TXERR_FILT) + asc->asc_stats. + ast_tx_filtered++; + an->an_tx_antenna = 0; /* invalidate */ + } + sr = ds->ds_txstat.ts_shortretry; + lr = ds->ds_txstat.ts_longretry; + asc->asc_stats.ast_tx_shortretry += sr; + asc->asc_stats.ast_tx_longretry += lr; + an->an_tx_retr += sr + lr; + } + bf->bf_in = NULL; + mutex_enter(&asc->asc_txbuflock); + list_insert_tail(&asc->asc_txbuf_list, bf); + mutex_exit(&asc->asc_txbuflock); + mutex_enter(&asc->asc_gld_sched_lock); + /* + * Reschedule stalled outbound packets + */ + if (asc->asc_need_gld_sched) { + asc->asc_need_gld_sched = 0; + gld_sched(isc->isc_dev); + } + mutex_exit(&asc->asc_gld_sched_lock); + } +} + + +static void +ath_tx_handler(ath_t *asc) +{ + int i; + + /* + * Process each active queue. + */ + for (i = 0; i < HAL_NUM_TX_QUEUES; i++) { + if (ATH_TXQ_SETUP(asc, i)) { + ath_tx_processq(asc, &asc->asc_txq[i]); + } + } +} + +static struct ieee80211_node * +ath_node_alloc(ieee80211com_t *isc) +{ + struct ath_node *an; + ath_t *asc = (ath_t *)isc; + + an = kmem_zalloc(sizeof (struct ath_node), KM_SLEEP); + ath_rate_update(asc, &an->an_node, 0); + return (&an->an_node); +} + +static void +ath_node_free(ieee80211com_t *isc, struct ieee80211_node *in) +{ + ath_t *asc = (ath_t *)isc; + struct ath_buf *bf; + struct ath_txq *txq; + int32_t i; + + for (i = 0; i < HAL_NUM_TX_QUEUES; i++) { + if (ATH_TXQ_SETUP(asc, i)) { + txq = &asc->asc_txq[i]; + mutex_enter(&txq->axq_lock); + bf = list_head(&txq->axq_list); + while (bf != NULL) { + if (bf->bf_in == in) { + bf->bf_in = NULL; + } + bf = list_next(&txq->axq_list, bf); + } + mutex_exit(&txq->axq_lock); + } + } + kmem_free(in, sizeof (struct ath_node)); +} + +static void +ath_node_copy(struct ieee80211_node *dst, const struct ieee80211_node *src) +{ + bcopy(src, dst, sizeof (struct ieee80211_node)); +} + +/* + * Transmit a management frame. On failure we reclaim the skbuff. + * Note that management frames come directly from the 802.11 layer + * and do not honor the send queue flow control. Need to investigate + * using priority queueing so management frames can bypass data. + */ +static int32_t +ath_mgmt_send(ieee80211com_t *isc, mblk_t *mp) +{ + ath_t *asc = (ath_t *)isc; + struct ath_hal *ah = asc->asc_ah; + struct ieee80211_node *in; + struct ath_buf *bf = NULL; + struct ieee80211_frame *wh; + int32_t error = 0; + + /* Grab a TX buffer */ + mutex_enter(&asc->asc_txbuflock); + bf = list_head(&asc->asc_txbuf_list); + if (bf != NULL) + list_remove(&asc->asc_txbuf_list, bf); + if (list_empty(&asc->asc_txbuf_list)) { + ATH_DEBUG((ATH_DBG_SEND, "ath: ath_mgmt_send(): " + "stop queue\n")); + asc->asc_stats.ast_tx_qstop++; + } + mutex_exit(&asc->asc_txbuflock); + if (bf == NULL) { + ATH_DEBUG((ATH_DBG_SEND, "ath: ath_mgmt_send(): discard, " + "no xmit buf\n")); + asc->asc_stats.ast_tx_nobufmgt++; + goto bad; + } + wh = (struct ieee80211_frame *)mp->b_rptr; + if ((wh->ifrm_fc[0] & IEEE80211_FC0_SUBTYPE_MASK) == + IEEE80211_FC0_SUBTYPE_PROBE_RESP) { + /* fill time stamp */ + uint64_t tsf; + uint32_t *tstamp; + + tsf = ATH_HAL_GETTSF64(ah); + /* adjust 100us delay to xmit */ + tsf += 100; + tstamp = (uint32_t *)&wh[1]; + tstamp[0] = LE_32(tsf & 0xffffffff); + tstamp[1] = LE_32(tsf >> 32); + } + /* + * Locate node state. When operating + * in station mode we always use ic_bss. + */ + if (isc->isc_opmode != IEEE80211_M_STA) { + in = ieee80211_find_node(isc, wh->ifrm_addr1); + if (in == NULL) + in = isc->isc_bss; + } else + in = isc->isc_bss; + + error = ath_xmit(asc, in, bf, NULL, mp); + if (error == 0) { + asc->asc_stats.ast_tx_mgmt++; + freemsg(mp); + return (0); + } +bad: + if (bf != NULL) { + mutex_enter(&asc->asc_txbuflock); + list_insert_tail(&asc->asc_txbuf_list, bf); + mutex_exit(&asc->asc_txbuflock); + } + freemsg(mp); + return (error); +} + +static int32_t +ath_new_state(ieee80211com_t *isc, enum ieee80211_state nstate) +{ + ath_t *asc = (ath_t *)isc; + struct ath_hal *ah = asc->asc_ah; + struct ieee80211_node *in; + int32_t i, error; + uint8_t *bssid; + uint32_t rfilt; + enum ieee80211_state ostate; + + static const HAL_LED_STATE leds[] = { + HAL_LED_INIT, /* IEEE80211_S_INIT */ + HAL_LED_SCAN, /* IEEE80211_S_SCAN */ + HAL_LED_AUTH, /* IEEE80211_S_AUTH */ + HAL_LED_ASSOC, /* IEEE80211_S_ASSOC */ + HAL_LED_RUN, /* IEEE80211_S_RUN */ + }; + if (asc->asc_invalid == 1) + return (0); + + ostate = isc->isc_state; + + ATH_HAL_SETLEDSTATE(ah, leds[nstate]); /* set LED */ + + if (nstate == IEEE80211_S_INIT) { + asc->asc_imask &= ~(HAL_INT_SWBA | HAL_INT_BMISS); + ATH_HAL_INTRSET(ah, asc->asc_imask); + error = 0; /* cheat + use error return */ + goto bad; + } + in = isc->isc_bss; + error = ath_chan_set(asc, in->in_chan); + if (error != 0) + goto bad; + + rfilt = ath_calcrxfilter(asc); + if (nstate == IEEE80211_S_SCAN) + bssid = isc->isc_macaddr; + else + bssid = in->in_bssid; + ATH_HAL_SETRXFILTER(ah, rfilt); + + if (nstate == IEEE80211_S_RUN && isc->isc_opmode != IEEE80211_M_IBSS) + ATH_HAL_SETASSOCID(ah, bssid, in->in_associd); + else + ATH_HAL_SETASSOCID(ah, bssid, 0); + if (isc->isc_flags & IEEE80211_F_WEPON) { + for (i = 0; i < IEEE80211_WEP_NKID; i++) { + if (ATH_HAL_KEYISVALID(ah, i)) + ATH_HAL_KEYSETMAC(ah, i, bssid); + } + } + + if ((nstate == IEEE80211_S_RUN) && + (ostate != IEEE80211_S_RUN)) { + /* Configure the beacon and sleep timers. */ + ath_beacon_config(asc); + } else { + asc->asc_imask &= ~(HAL_INT_SWBA | HAL_INT_BMISS); + ATH_HAL_INTRSET(ah, asc->asc_imask); + } + /* + * Reset the rate control state. + */ + ath_rate_ctl_reset(asc, nstate); + + if (nstate == IEEE80211_S_RUN) { + nvlist_t *attr_list = NULL; + sysevent_id_t eid; + int32_t err = 0; + char *str_name = "ATH"; + char str_value[256] = {0}; + + ATH_DEBUG((ATH_DBG_80211, "ath: ath new state(RUN): " + "ic_flags=0x%08x iv=%d" + " bssid=%s capinfo=0x%04x chan=%d\n", + isc->isc_flags, + in->in_intval, + ieee80211_ether_sprintf(in->in_bssid), + in->in_capinfo, + ieee80211_chan2ieee(isc, in->in_chan))); + + (void) sprintf(str_value, "%s%s%d", "-i ", + ddi_driver_name(asc->asc_dev), + ddi_get_instance(asc->asc_dev)); + if (nvlist_alloc(&attr_list, + NV_UNIQUE_NAME_TYPE, KM_SLEEP) == 0) { + err = nvlist_add_string(attr_list, + str_name, str_value); + if (err != DDI_SUCCESS) + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ath_new_state: error log event\n")); + err = ddi_log_sysevent(asc->asc_dev, + DDI_VENDOR_SUNW, "class", + "subclass", attr_list, + &eid, DDI_NOSLEEP); + if (err != DDI_SUCCESS) + ATH_DEBUG((ATH_DBG_80211, "ath: " + "ath_new_state(): error log event\n")); + nvlist_free(attr_list); + } + } + + return (0); +bad: + return (error); +} + +/* + * Periodically recalibrate the PHY to account + * for temperature/environment changes. + */ +static void +ath_calibrate(ieee80211com_t *isc) +{ + ath_t *asc = (ath_t *)isc; + struct ath_hal *ah = asc->asc_ah; + struct ieee80211channel *ch; + HAL_CHANNEL hchan; + + asc->asc_stats.ast_per_cal++; + + /* + * Convert to a HAL channel description with the flags + * constrained to reflect the current operating mode. + */ + ch = isc->isc_ibss_chan; + hchan.channel = ch->ich_freq; + hchan.channelFlags = ath_chan2flags(isc, ch); + + if (ATH_HAL_GETRFGAIN(ah) == HAL_RFGAIN_NEED_CHANGE) { + /* + * Rfgain is out of bounds, reset the chip + * to load new gain values. + */ + ATH_DEBUG((ATH_DBG_HAL, "ath: ath_calibrate(): " + "Need change RFgain\n")); + asc->asc_stats.ast_per_rfgain++; + ath_reset(asc); + } + if (!ATH_HAL_CALIBRATE(ah, &hchan)) { + ATH_DEBUG((ATH_DBG_HAL, "ath: ath_calibrate(): " + "calibration of channel %u failed\n", + ch->ich_freq)); + asc->asc_stats.ast_per_calfail++; + } +} + +static uint_t +ath_gld_intr(gld_mac_info_t *gld_p) +{ + ath_t *asc = ATH_STATE(gld_p); + struct ath_hal *ah = asc->asc_ah; + HAL_INT status; + enum ieee80211_state isc_state; + ieee80211com_t *isc = (ieee80211com_t *)asc; + + mutex_enter(&asc->asc_genlock); + + if (!ATH_HAL_INTRPEND(ah)) { /* shared irq, not for us */ + mutex_exit(&asc->asc_genlock); + return (DDI_INTR_UNCLAIMED); + } + + ATH_HAL_GETISR(ah, &status); + status &= asc->asc_imask; + if (status & HAL_INT_FATAL) { + asc->asc_stats.ast_hardware++; + mutex_exit(&asc->asc_genlock); + goto reset; + } else if (status & HAL_INT_RXORN) { + asc->asc_stats.ast_rxorn++; + mutex_exit(&asc->asc_genlock); + goto reset; + } else { + if (status & HAL_INT_RXEOL) { + asc->asc_stats.ast_rxeol++; + asc->asc_rxlink = NULL; + } + if (status & HAL_INT_TXURN) { + asc->asc_stats.ast_txurn++; + ATH_HAL_UPDATETXTRIGLEVEL(ah, AH_TRUE); + } + if (status & HAL_INT_RX) { + asc->asc_rx_pend = 1; + ddi_trigger_softintr(asc->asc_softint_id); + } + if (status & HAL_INT_TX) { + ath_tx_handler(asc); + } + + mutex_exit(&asc->asc_genlock); + + if (status & HAL_INT_SWBA) { + /* This will occur only in Host-AP or Ad-Hoc mode */ + return (DDI_INTR_CLAIMED); + } + if (status & HAL_INT_BMISS) { + mutex_enter(&isc->isc_genlock); + isc_state = isc->isc_state; + mutex_exit(&isc->isc_genlock); + if (isc_state == IEEE80211_S_RUN) { + (void) ieee80211_new_state(isc, + IEEE80211_S_ASSOC, -1); + } + } + } + + return (DDI_INTR_CLAIMED); +reset: + mutex_enter(&isc->isc_genlock); + ath_reset(asc); + mutex_exit(&isc->isc_genlock); + return (DDI_INTR_CLAIMED); +} + +static uint_t +ath_softint_handler(caddr_t data) +{ + ath_t *asc = (ath_t *)data; + + /* + * Check if the soft interrupt is triggered by another + * driver at the same level. + */ + mutex_enter(&asc->asc_genlock); + if (asc->asc_rx_pend) { /* Soft interrupt for this driver */ + asc->asc_rx_pend = 0; + mutex_exit(&asc->asc_genlock); + ath_rx_handler((ath_t *)data); + return (DDI_INTR_CLAIMED); + } + mutex_exit(&asc->asc_genlock); + return (DDI_INTR_UNCLAIMED); +} + +/* + * following are gld callback routine + * ath_gld_send, ath_gld_ioctl, ath_gld_gstat + * are listed in other corresponding sections. + * reset the hardware w/o losing operational state. this is + * basically a more efficient way of doing ath_gld_stop, ath_gld_start, + * followed by state transitions to the current 802.11 + * operational state. used to recover from errors rx overrun + * and to reset the hardware when rf gain settings must be reset. + */ + +static int +ath_gld_reset(gld_mac_info_t *gld_p) +{ + ath_t *asc = ATH_STATE(gld_p); + + ath_reset(asc); + return (GLD_SUCCESS); +} + + +static int +ath_gld_stop(gld_mac_info_t *gld_p) +{ + ath_t *asc = ATH_STATE(gld_p); + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ath_hal *ah = asc->asc_ah; + + (void) _ieee80211_new_state(isc, IEEE80211_S_INIT, -1); + ATH_HAL_INTRSET(ah, 0); + ath_draintxq(asc); + if (! asc->asc_invalid) + ath_stoprecv(asc); + else + asc->asc_rxlink = NULL; + ATH_HAL_SETPOWER(ah, HAL_PM_FULL_SLEEP, 0); + + asc->asc_invalid = 1; + + return (GLD_SUCCESS); +} + +int +ath_gld_start(gld_mac_info_t *gld_p) +{ + int ret; + ath_t *asc = ATH_STATE(gld_p); + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ieee80211_node *in; + enum ieee80211_phymode mode; + struct ath_hal *ah = asc->asc_ah; + HAL_STATUS status; + HAL_CHANNEL hchan; + + /* + * Stop anything previously setup. This is safe + * whether this is the first time through or not. + */ + ret = ath_gld_stop(gld_p); + if (ret != GLD_SUCCESS) + return (ret); + + /* + * The basic interface to setting the hardware in a good + * state is ``reset''. On return the hardware is known to + * be powered up and with interrupts disabled. This must + * be followed by initialization of the appropriate bits + * and then setup of the interrupt mask. + */ + hchan.channel = isc->isc_ibss_chan->ich_freq; + hchan.channelFlags = ath_chan2flags(isc, isc->isc_ibss_chan); + if (!ATH_HAL_RESET(ah, (HAL_OPMODE)isc->isc_opmode, + &hchan, AH_FALSE, &status)) { + ATH_DEBUG((ATH_DBG_HAL, "ath: ath_gld_start(): " + "unable to reset hardware, hal status %u\n", status)); + return (GLD_FAILURE); + } + /* + * Setup the hardware after reset: the key cache + * is filled as needed and the receive engine is + * set going. Frame transmit is handled entirely + * in the frame output path; there's nothing to do + * here except setup the interrupt mask. + */ + ath_initkeytable(asc); + + if (ath_startrecv(asc)) + return (GLD_FAILURE); + + /* + * Enable interrupts. + */ + asc->asc_imask = HAL_INT_RX | HAL_INT_TX + | HAL_INT_RXEOL | HAL_INT_RXORN + | HAL_INT_FATAL | HAL_INT_GLOBAL; + ATH_HAL_INTRSET(ah, asc->asc_imask); + + isc->isc_state = IEEE80211_S_INIT; + + /* + * The hardware should be ready to go now so it's safe + * to kick the 802.11 state machine as it's likely to + * immediately call back to us to send mgmt frames. + */ + in = isc->isc_bss; + in->in_chan = isc->isc_ibss_chan; + mode = ieee80211_chan2mode(isc, in->in_chan); + if (mode != asc->asc_curmode) + ath_setcurmode(asc, mode); + asc->asc_invalid = 0; + return (GLD_SUCCESS); +} + + +static int32_t +ath_gld_saddr(gld_mac_info_t *gld_p, unsigned char *macaddr) +{ + ath_t *asc = ATH_STATE(gld_p); + struct ath_hal *ah = asc->asc_ah; + + ATH_DEBUG((ATH_DBG_GLD, "ath: ath_gld_saddr(): " + "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n", + macaddr[0], macaddr[1], macaddr[2], + macaddr[3], macaddr[4], macaddr[5])); + + IEEE80211_ADDR_COPY(asc->asc_isc.isc_macaddr, macaddr); + ATH_HAL_SETMAC(ah, asc->asc_isc.isc_macaddr); + + ath_reset(asc); + return (GLD_SUCCESS); +} + +static int +ath_gld_set_promiscuous(gld_mac_info_t *macinfo, int mode) +{ + ath_t *asc = ATH_STATE(macinfo); + struct ath_hal *ah = asc->asc_ah; + uint32_t rfilt; + + rfilt = ATH_HAL_GETRXFILTER(ah); + switch (mode) { + case GLD_MAC_PROMISC_PHYS: + ATH_HAL_SETRXFILTER(ah, rfilt | HAL_RX_FILTER_PROM); + break; + case GLD_MAC_PROMISC_MULTI: + rfilt |= HAL_RX_FILTER_MCAST; + rfilt &= ~HAL_RX_FILTER_PROM; + ATH_HAL_SETRXFILTER(ah, rfilt); + break; + case GLD_MAC_PROMISC_NONE: + ATH_HAL_SETRXFILTER(ah, rfilt & (~HAL_RX_FILTER_PROM)); + break; + default: + break; + } + + return (GLD_SUCCESS); +} + +static int +ath_gld_set_multicast(gld_mac_info_t *macinfo, uchar_t *mca, int flag) +{ + uint32_t mfilt[2], val, rfilt; + uint8_t pos; + ath_t *asc = ATH_STATE(macinfo); + struct ath_hal *ah = asc->asc_ah; + + rfilt = ATH_HAL_GETRXFILTER(ah); + + /* disable multicast */ + if (flag == GLD_MULTI_DISABLE) { + ATH_HAL_SETRXFILTER(ah, rfilt & (~HAL_RX_FILTER_MCAST)); + return (GLD_SUCCESS); + } + + /* enable multicast */ + ATH_HAL_SETRXFILTER(ah, rfilt | HAL_RX_FILTER_MCAST); + + mfilt[0] = mfilt[1] = 0; + + /* calculate XOR of eight 6bit values */ + val = ATH_LE_READ_4(mca + 0); + pos = (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val; + val = ATH_LE_READ_4(mca + 3); + pos ^= (val >> 18) ^ (val >> 12) ^ (val >> 6) ^ val; + pos &= 0x3f; + mfilt[pos / 32] |= (1 << (pos % 32)); + ATH_HAL_SETMCASTFILTER(ah, mfilt[0], mfilt[1]); + + return (GLD_SUCCESS); +} + +static void +ath_wlan_ioctl(ath_t *asc, queue_t *wq, mblk_t *mp, uint32_t cmd) +{ + + struct iocblk *iocp = (struct iocblk *)mp->b_rptr; + uint32_t len, ret; + mblk_t *mp1; + + /* sanity check */ + if (iocp->ioc_count == 0 || !(mp1 = mp->b_cont)) { + miocnak(wq, mp, 0, EINVAL); + return; + } + + /* assuming single data block */ + if (mp1->b_cont) { + freemsg(mp1->b_cont); + mp1->b_cont = NULL; + } + + /* we will overwrite everything */ + mp1->b_wptr = mp1->b_rptr; + + ret = ath_getset(asc, mp1, cmd); + + len = msgdsize(mp1); + + miocack(wq, mp, len, ret); +} + +static int +ath_gld_ioctl(gld_mac_info_t *gld_p, queue_t *wq, mblk_t *mp) +{ + struct iocblk *iocp; + int32_t cmd, err; + ath_t *asc = ATH_STATE(gld_p); + boolean_t need_privilege; + + /* + * Validate the command before bothering with the mutexen ... + */ + iocp = (struct iocblk *)mp->b_rptr; + cmd = iocp->ioc_cmd; + need_privilege = B_TRUE; + switch (cmd) { + case WLAN_SET_PARAM: + case WLAN_COMMAND: + break; + case WLAN_GET_PARAM: + need_privilege = B_FALSE; + break; + default: + ATH_DEBUG((ATH_DBG_GLD, "ath: ath_gld_ioctl(): " + "unknown cmd 0x%x", cmd)); + miocnak(wq, mp, 0, EINVAL); + return (GLD_SUCCESS); + } + + if (need_privilege) { + /* + * Check for specific net_config privilege on Solaris 10+. + * Otherwise just check for root access ... + */ + if (secpolicy_net_config != NULL) + err = secpolicy_net_config(iocp->ioc_cr, B_FALSE); + else + err = drv_priv(iocp->ioc_cr); + if (err != 0) { + miocnak(wq, mp, 0, err); + return (GLD_SUCCESS); + } + } + + ath_wlan_ioctl(asc, wq, mp, cmd); + return (GLD_SUCCESS); +} + +static int +ath_gld_gstat(gld_mac_info_t *gld_p, struct gld_stats *glds_p) +{ + ath_t *asc = ATH_STATE(gld_p); + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ieee80211_node *in = isc->isc_bss; + struct ath_node *an = ATH_NODE(in); + struct ieee80211_rateset *rs = &in->in_rates; + + glds_p->glds_crc = asc->asc_stats.ast_rx_crcerr; + glds_p->glds_multircv = 0; + glds_p->glds_multixmt = 0; + glds_p->glds_excoll = 0; + glds_p->glds_xmtretry = an->an_tx_retr; + glds_p->glds_defer = 0; + glds_p->glds_noxmtbuf = asc->asc_stats.ast_tx_nobuf; + glds_p->glds_norcvbuf = asc->asc_stats.ast_rx_fifoerr; + glds_p->glds_short = asc->asc_stats.ast_rx_tooshort; + glds_p->glds_missed = asc->asc_stats.ast_rx_badcrypt; + glds_p->glds_speed = 1000000*(rs->ir_rates[in->in_txrate] & + IEEE80211_RATE_VAL) / 2; + glds_p->glds_duplex = GLD_DUPLEX_FULL; + + return (GLD_SUCCESS); +} + +static int +ath_attach(dev_info_t *devinfo, ddi_attach_cmd_t cmd) +{ + ath_t *asc; + ieee80211com_t *isc; + struct ath_hal *ah; + uint8_t csz; + HAL_STATUS status; + caddr_t regs; + uint32_t i, val; + uint16_t vendor_id, device_id, command; + const char *athname; + int32_t ath_countrycode = CTRY_DEFAULT; /* country code */ + int32_t err, ath_regdomain = 0; /* regulatory domain */ + char strbuf[32]; + + switch (cmd) { + case DDI_RESUME: + return (DDI_FAILURE); + case DDI_ATTACH: + break; + default: + return (DDI_FAILURE); + } + + if (ddi_soft_state_zalloc(ath_soft_state_p, + ddi_get_instance(devinfo)) != DDI_SUCCESS) { + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "Unable to alloc softstate\n")); + return (DDI_FAILURE); + } + + asc = ddi_get_soft_state(ath_soft_state_p, ddi_get_instance(devinfo)); + isc = (ieee80211com_t *)asc; + asc->asc_dev = devinfo; + + ath_halfix_init(); + + mutex_init(&asc->asc_genlock, NULL, MUTEX_DRIVER, NULL); + mutex_init(&asc->asc_txbuflock, NULL, MUTEX_DRIVER, NULL); + mutex_init(&asc->asc_rxbuflock, NULL, MUTEX_DRIVER, NULL); + mutex_init(&asc->asc_gld_sched_lock, NULL, MUTEX_DRIVER, NULL); + + err = pci_config_setup(devinfo, &asc->asc_cfg_handle); + if (err != DDI_SUCCESS) { + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "pci_config_setup() failed")); + goto attach_fail0; + } + + csz = pci_config_get8(asc->asc_cfg_handle, PCI_CONF_CACHE_LINESZ); + asc->asc_cachelsz = csz << 2; + vendor_id = pci_config_get16(asc->asc_cfg_handle, PCI_CONF_VENID); + device_id = pci_config_get16(asc->asc_cfg_handle, PCI_CONF_DEVID); + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): vendor 0x%x, " + "device id 0x%x, cache size %d\n", vendor_id, device_id, csz)); + + athname = ath_hal_probe(vendor_id, device_id); + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): athname: %s\n", + athname ? athname : "Atheros ???")); + + /* + * Enable response to memory space accesses, + * and enabe bus master. + */ + command = PCI_COMM_MAE | PCI_COMM_ME; + pci_config_put16(asc->asc_cfg_handle, PCI_CONF_COMM, command); + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "set command reg to 0x%x \n", command)); + + pci_config_put8(asc->asc_cfg_handle, PCI_CONF_LATENCY_TIMER, 0xa8); + val = pci_config_get32(asc->asc_cfg_handle, 0x40); + if ((val & 0x0000ff00) != 0) + pci_config_put32(asc->asc_cfg_handle, 0x40, val & 0xffff00ff); + + err = ddi_regs_map_setup(devinfo, 1, + ®s, 0, 0, &ath_reg_accattr, &asc->asc_io_handle); + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "regs map1 = %x err=%d\n", regs, err)); + if (err != DDI_SUCCESS) { + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "ddi_regs_map_setup() failed")); + goto attach_fail1; + } + + ah = ath_hal_attach(device_id, asc, 0, regs, &status); + if (ah == NULL) { + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "unable to attach hw; HAL status %u\n", status)); + goto attach_fail2; + } + ATH_HAL_INTRSET(ah, 0); + asc->asc_ah = ah; + + if (ah->ah_abi != HAL_ABI_VERSION) { + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "HAL ABI mismatch detected (0x%x != 0x%x)\n", + ah->ah_abi, HAL_ABI_VERSION)); + goto attach_fail3; + } + + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "HAL ABI version 0x%x\n", ah->ah_abi)); + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "HAL mac version %d.%d, phy version %d.%d\n", + ah->ah_macVersion, ah->ah_macRev, + ah->ah_phyRev >> 4, ah->ah_phyRev & 0xf)); + if (ah->ah_analog5GhzRev) + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "HAL 5ghz radio version %d.%d\n", + ah->ah_analog5GhzRev >> 4, + ah->ah_analog5GhzRev & 0xf)); + if (ah->ah_analog2GhzRev) + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "HAL 2ghz radio version %d.%d\n", + ah->ah_analog2GhzRev >> 4, + ah->ah_analog2GhzRev & 0xf)); + + /* + * Check if the MAC has multi-rate retry support. + * We do this by trying to setup a fake extended + * descriptor. MAC's that don't have support will + * return false w/o doing anything. MAC's that do + * support it will return true w/o doing anything. + */ + asc->asc_mrretry = ATH_HAL_SETUPXTXDESC(ah, NULL, 0, 0, 0, 0, 0, 0); + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "multi rate retry support=%x\n", + asc->asc_mrretry)); + + ATH_HAL_GETREGDOMAIN(ah, (uint32_t *)&ath_regdomain); + ATH_HAL_GETCOUNTRYCODE(ah, &ath_countrycode); + /* + * Collect the channel list using the default country + * code and including outdoor channels. The 802.11 layer + * is resposible for filtering this list to a set of + * channels that it considers ok to use. + */ + asc->asc_have11g = 0; + + /* enable outdoor use, enable extended channels */ + err = ath_getchannels(asc, ath_countrycode, AH_FALSE, AH_TRUE); + if (err != 0) + goto attach_fail3; + + /* + * Setup rate tables for all potential media types. + */ + ath_rate_setup(asc, IEEE80211_MODE_11A); + ath_rate_setup(asc, IEEE80211_MODE_11B); + ath_rate_setup(asc, IEEE80211_MODE_11G); + ath_rate_setup(asc, IEEE80211_MODE_TURBO); + + /* Setup here so ath_rate_update is happy */ + ath_setcurmode(asc, IEEE80211_MODE_11A); + + err = ath_desc_alloc(devinfo, asc); + if (err != DDI_SUCCESS) { + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "failed to allocate descriptors: %d\n", err)); + goto attach_fail3; + } + + /* Setup transmit queues in the HAL */ + if (ath_txq_setup(asc)) + goto attach_fail4; + + ATH_HAL_GETMAC(ah, asc->asc_isc.isc_macaddr); + + /* setup gld */ + if ((isc->isc_dev = gld_mac_alloc(devinfo)) == NULL) { + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "gld_mac_alloc = %p\n", (void *)isc->isc_dev)); + goto attach_fail4; + } + + /* pre initialize some variables for isc */ + isc->isc_dev->gldm_private = (caddr_t)asc; + + isc->isc_gld_reset = ath_gld_reset; + isc->isc_gld_start = ath_gld_start; + isc->isc_gld_stop = ath_gld_stop; + isc->isc_gld_saddr = ath_gld_saddr; + isc->isc_gld_send = ath_gld_send; + isc->isc_gld_set_promiscuous = ath_gld_set_promiscuous; + isc->isc_gld_gstat = ath_gld_gstat; + isc->isc_gld_ioctl = ath_gld_ioctl; + isc->isc_gld_set_multicast = ath_gld_set_multicast; + isc->isc_gld_intr = ath_gld_intr; + + isc->isc_mgmt_send = ath_mgmt_send; + isc->isc_new_state = ath_new_state; + isc->isc_phytype = IEEE80211_T_OFDM; + isc->isc_opmode = IEEE80211_M_STA; + isc->isc_caps = IEEE80211_C_WEP | IEEE80211_C_IBSS | + IEEE80211_C_HOSTAP; + /* 11g support is identified when we fetch the channel set */ + if (asc->asc_have11g) + isc->isc_caps |= IEEE80211_C_SHPREAMBLE; + isc->isc_node_alloc = ath_node_alloc; + isc->isc_node_free = ath_node_free; + isc->isc_node_copy = ath_node_copy; + isc->isc_rate_ctl = ath_rate_ctl; + isc->isc_calibrate = ath_calibrate; + (void) ieee80211_ifattach(isc->isc_dev); + + isc->isc_dev->gldm_devinfo = devinfo; + isc->isc_dev->gldm_vendor_addr = asc->asc_isc.isc_macaddr; + isc->isc_dev->gldm_broadcast_addr = ath_broadcast_addr; + isc->isc_dev->gldm_ident = "Atheros driver"; + isc->isc_dev->gldm_type = DL_ETHER; + isc->isc_dev->gldm_minpkt = 0; + isc->isc_dev->gldm_maxpkt = 1500; + isc->isc_dev->gldm_addrlen = ETHERADDRL; + isc->isc_dev->gldm_saplen = -2; + isc->isc_dev->gldm_ppa = ddi_get_instance(devinfo); + + asc->asc_rx_pend = 0; + ATH_HAL_INTRSET(ah, 0); + err = ddi_add_softintr(devinfo, DDI_SOFTINT_LOW, + &asc->asc_softint_id, NULL, 0, ath_softint_handler, (caddr_t)asc); + if (err != DDI_SUCCESS) { + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "ddi_add_softintr() failed")); + goto attach_fail5; + } + + if (ddi_get_iblock_cookie(devinfo, 0, &asc->asc_iblock) + != DDI_SUCCESS) { + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "Can not get iblock cookie for INT\n")); + goto attach_fail6; + } + + if (ddi_add_intr(devinfo, 0, NULL, NULL, gld_intr, + (caddr_t)asc->asc_isc.isc_dev) != DDI_SUCCESS) { + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "Can not set intr for ATH driver\n")); + goto attach_fail6; + } + isc->isc_dev->gldm_cookie = asc->asc_iblock; + + if (err = gld_register(devinfo, "ath", isc->isc_dev)) { + ATH_DEBUG((ATH_DBG_ATTACH, "ath: ath_attach(): " + "gld_register err %x\n", err)); + goto attach_fail7; + } + + /* Create minor node of type DDI_NT_NET_WIFI */ + (void) snprintf(strbuf, sizeof (strbuf), "%s%d", + ATH_NODENAME, isc->isc_dev->gldm_ppa); + err = ddi_create_minor_node(devinfo, strbuf, S_IFCHR, + isc->isc_dev->gldm_ppa + 1, DDI_NT_NET_WIFI, 0); + if (err != DDI_SUCCESS) + ATH_DEBUG((ATH_DBG_ATTACH, "WARN: ath: ath_attach(): " + "Create minor node failed - %d\n", err)); + + asc->asc_invalid = 1; + return (DDI_SUCCESS); +attach_fail7: + ddi_remove_intr(devinfo, 0, asc->asc_iblock); +attach_fail6: + ddi_remove_softintr(asc->asc_softint_id); +attach_fail5: + gld_mac_free(isc->isc_dev); +attach_fail4: + ath_desc_free(asc); +attach_fail3: + ah->ah_detach(asc->asc_ah); +attach_fail2: + ddi_regs_map_free(&asc->asc_io_handle); +attach_fail1: + pci_config_teardown(&asc->asc_cfg_handle); +attach_fail0: + asc->asc_invalid = 1; + mutex_destroy(&asc->asc_txbuflock); + for (i = 0; i < HAL_NUM_TX_QUEUES; i++) { + if (ATH_TXQ_SETUP(asc, i)) { + struct ath_txq *txq = &asc->asc_txq[i]; + mutex_destroy(&txq->axq_lock); + } + } + mutex_destroy(&asc->asc_rxbuflock); + mutex_destroy(&asc->asc_genlock); + mutex_destroy(&asc->asc_gld_sched_lock); + ddi_soft_state_free(ath_soft_state_p, ddi_get_instance(devinfo)); + + return (DDI_FAILURE); +} + +static int32_t +ath_detach(dev_info_t *devinfo, ddi_detach_cmd_t cmd) +{ + ath_t *asc; + int32_t i; + + asc = ddi_get_soft_state(ath_soft_state_p, ddi_get_instance(devinfo)); + ASSERT(asc != NULL); + + switch (cmd) { + default: + return (DDI_FAILURE); + + case DDI_SUSPEND: + return (DDI_FAILURE); + + case DDI_DETACH: + break; + } + + ASSERT(asc->asc_isc.isc_mf_thread == NULL); + + /* disable interrupts */ + ATH_HAL_INTRSET(asc->asc_ah, 0); + + /* free intterrupt resources */ + ddi_remove_intr(devinfo, 0, asc->asc_iblock); + ddi_remove_softintr(asc->asc_softint_id); + + /* detach 802.11 and Atheros HAL */ + ieee80211_ifdetach(asc->asc_isc.isc_dev); + ath_desc_free(asc); + asc->asc_ah->ah_detach(asc->asc_ah); + ath_halfix_finit(); + + /* detach gld */ + if (gld_unregister(asc->asc_isc.isc_dev) != 0) + return (DDI_FAILURE); + gld_mac_free(asc->asc_isc.isc_dev); + + /* free io handle */ + ddi_regs_map_free(&asc->asc_io_handle); + pci_config_teardown(&asc->asc_cfg_handle); + + /* destroy locks */ + mutex_destroy(&asc->asc_txbuflock); + for (i = 0; i < HAL_NUM_TX_QUEUES; i++) { + if (ATH_TXQ_SETUP(asc, i)) { + struct ath_txq *txq = &asc->asc_txq[i]; + mutex_destroy(&txq->axq_lock); + } + } + mutex_destroy(&asc->asc_rxbuflock); + mutex_destroy(&asc->asc_genlock); + mutex_destroy(&asc->asc_gld_sched_lock); + + ddi_remove_minor_node(devinfo, NULL); + ddi_soft_state_free(ath_soft_state_p, ddi_get_instance(devinfo)); + + return (DDI_SUCCESS); +} + +static struct module_info ath_module_info = { + 0, /* ATH_IDNUM, */ + "ath", /* ATH_DRIVER_NAME, */ + 0, + INFPSZ, + 4096, /* ATH_HIWAT, */ + 128, /* ATH_LOWAT */ +}; + +static struct qinit ath_r_qinit = { /* read queues */ + NULL, + gld_rsrv, + gld_open, + gld_close, + NULL, + &ath_module_info, + NULL +}; + +static struct qinit ath_w_qinit = { /* write queues */ + gld_wput, + gld_wsrv, + NULL, + NULL, + NULL, + &ath_module_info, + NULL +}; + +static struct streamtab ath_streamtab = { + &ath_r_qinit, + &ath_w_qinit, + NULL, + NULL +}; + +static struct cb_ops ath_cb_ops = { + nulldev, /* cb_open */ + nulldev, /* cb_close */ + nodev, /* cb_strategy */ + nodev, /* cb_print */ + nodev, /* cb_dump */ + nodev, /* cb_read */ + nodev, /* cb_write */ + nodev, /* cb_ioctl */ + nodev, /* cb_devmap */ + nodev, /* cb_mmap */ + nodev, /* cb_segmap */ + nochpoll, /* cb_chpoll */ + ddi_prop_op, /* cb_prop_op */ + &ath_streamtab, /* cb_stream */ + D_MP, /* cb_flag */ + 0, /* cb_rev */ + nodev, /* cb_aread */ + nodev /* cb_awrite */ +}; + +static struct dev_ops ath_dev_ops = { + DEVO_REV, /* devo_rev */ + 0, /* devo_refcnt */ + gld_getinfo, /* devo_getinfo */ + nulldev, /* devo_identify */ + nulldev, /* devo_probe */ + ath_attach, /* devo_attach */ + ath_detach, /* devo_detach */ + nodev, /* devo_reset */ + &ath_cb_ops, /* devo_cb_ops */ + (struct bus_ops *)NULL, /* devo_bus_ops */ + NULL /* devo_power */ +}; + +static struct modldrv ath_modldrv = { + &mod_driverops, /* Type of module. This one is a driver */ + "ath driver 1.1", /* short description */ + &ath_dev_ops /* driver specific ops */ +}; + +static struct modlinkage modlinkage = { + MODREV_1, (void *)&ath_modldrv, NULL +}; + + +int +_info(struct modinfo *modinfop) +{ + return (mod_info(&modlinkage, modinfop)); +} + +int +_init(void) +{ + int status; + + status = ddi_soft_state_init(&ath_soft_state_p, sizeof (ath_t), 1); + if (status != 0) + return (status); + + mutex_init(&ath_loglock, NULL, MUTEX_DRIVER, NULL); + status = mod_install(&modlinkage); + if (status != 0) { + ddi_soft_state_fini(&ath_soft_state_p); + mutex_destroy(&ath_loglock); + } + + return (status); +} + +int +_fini(void) +{ + int status; + + status = mod_remove(&modlinkage); + if (status == 0) { + ddi_soft_state_fini(&ath_soft_state_p); + mutex_destroy(&ath_loglock); + } + return (status); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/ath_osdep.c Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,181 @@ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + * + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +#include <sys/param.h> +#include <sys/types.h> +#include <sys/cmn_err.h> +#include <sys/kmem.h> +#include <sys/ddi.h> +#include <sys/sunddi.h> +#include <sys/varargs.h> +#include "ath_hal.h" +#include "ath_ieee80211.h" +#include "ath_impl.h" + +struct ath_halfix { + void *p; + size_t size; + int malloced; + int freed; +}; + +static struct ath_halfix ath_halfix[32]; + +/* HAL layer needs these definitions */ +int ath_hal_dma_beacon_response_time = 2; /* in TU's */ +int ath_hal_sw_beacon_response_time = 10; /* in TU's */ +int ath_hal_additional_swba_backoff = 0; /* in TU's */ + +/* + * Print/log message support. + */ + +void +ath_hal_printf(struct ath_hal *ah, const char *fmt, ...) +{ + va_list ap; + + _NOTE(ARGUNUSED(ah)) + va_start(ap, fmt); + vcmn_err(CE_CONT, fmt, ap); + va_end(ap); +} + +/* + * Delay n microseconds. + */ +void +ath_hal_delay(int n) +{ + drv_usecwait(n); +} + +/* + * ath_hal_malloc() and ath_hal_free() are called + * within ath_hal.o. We must record the size of + * the memory alloced, so ath_hal_free() can get + * the size and then calls kmem_free(). + */ +void * +ath_hal_malloc(size_t size) +{ + void *p; + int i; + + /* support 16 devices(max leakage of one device is 8) */ + for (i = 0; i < 32; i++) { + if (ath_halfix[i].malloced == 0) + break; + } + if (i >= 32) { + ath_problem("ath: ath_hal_malloc(): too many malloc\n"); + return (NULL); + } + p = kmem_zalloc(size, KM_SLEEP); + ath_halfix[i].p = p; + ath_halfix[i].size = size; + ath_halfix[i].malloced = 1; + ath_halfix[i].freed = 0; + ATH_DEBUG((ATH_DBG_OSDEP, "ath: ath_hal_malloc(): " + "%d: p=%p, size=%d\n", i, p, size)); + return (p); +} + +void +ath_hal_free(void* p) +{ + int i; + for (i = 0; i < 32; i++) { + if (ath_halfix[i].p == p) + break; + } + if (i >= 32) { + ath_problem("ath: ath_hal_free(): no record for %p\n", p); + return; + } + kmem_free(p, ath_halfix[i].size); + ath_halfix[i].malloced = 0; + ath_halfix[i].freed = 1; + ATH_DEBUG((ATH_DBG_OSDEP, "ath: ath_hal_free(): %d: p=%p, size=%d\n", + i, p, ath_halfix[i].size)); +} + +void * +ath_hal_memcpy(void *dst, const void *src, size_t n) +{ + bcopy(src, dst, n); + return (dst); +} + +void +ath_hal_memzero(void *dst, size_t n) +{ + bzero(dst, n); +} + +/* + * So far as I know and test, hal.o has a bug that when attaching, + * it calls ath_hal_malloc() four times while detaching it calls + * ath_hal_free() only 3 times, so everytime when a pair of driver + * load/unload is done, a memory leak occurs. The function + * free_hal_leaked_mem() just help free the memory that alloced by + * hal.o but not freed by it. In fact, when attaching, hal.o only + * call ath_hal_alloc() four times, here assuming a maximum times of + * 8 just considers some special cases, we have no source after all! + */ +void +ath_halfix_init(void) +{ + int i; + + for (i = 0; i < 32; i++) { + ath_halfix[i].malloced = 0; + } +} + +void +ath_halfix_finit(void) +{ + int i; + + for (i = 0; i < 32; i++) { + if ((ath_halfix[i].malloced == 1) && + (ath_halfix[i].freed == 0)) { + kmem_free(ath_halfix[i].p, ath_halfix[i].size); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/ath_rate.c Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,344 @@ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* + * Copyright (c) 2002-2004 Sam Leffler, Errno Consulting + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +#include <sys/param.h> +#include <sys/types.h> +#include <sys/signal.h> +#include <sys/stream.h> +#include <sys/termio.h> +#include <sys/errno.h> +#include <sys/file.h> +#include <sys/cmn_err.h> +#include <sys/stropts.h> +#include <sys/strsubr.h> +#include <sys/strtty.h> +#include <sys/kbio.h> +#include <sys/cred.h> +#include <sys/stat.h> +#include <sys/consdev.h> +#include <sys/kmem.h> +#include <sys/modctl.h> +#include <sys/ddi.h> +#include <sys/sunddi.h> +#include <sys/pci.h> +#include <sys/errno.h> +#include <sys/gld.h> +#include <sys/dlpi.h> +#include <sys/ethernet.h> +#include <sys/list.h> +#include <sys/byteorder.h> +#include <sys/strsun.h> +#include <inet/common.h> +#include <inet/nd.h> +#include <inet/mi.h> +#include <inet/wifi_ioctl.h> +#include "ath_hal.h" +#include "ath_impl.h" +#include "ath_ieee80211.h" + +void +ath_rate_update(ath_t *asc, struct ieee80211_node *in, int32_t rate) +{ + struct ath_node *an = ATH_NODE(in); + const HAL_RATE_TABLE *rt = asc->asc_currates; + uint8_t rix; + + in->in_txrate = rate; + /* management/control frames always go at the lowest speed */ + an->an_tx_mgtrate = rt->info[0].rateCode; + an->an_tx_mgtratesp = an->an_tx_mgtrate | rt->info[0].shortPreamble; + ATH_DEBUG((ATH_DBG_RATE, "ath: ath_rate_update(): " + "mgtrate=%d mgtratesp=%d\n", + an->an_tx_mgtrate, an->an_tx_mgtratesp)); + /* + * Before associating a node has no rate set setup + * so we can't calculate any transmit codes to use. + * This is ok since we should never be sending anything + * but management frames and those always go at the + * lowest hardware rate. + */ + if (in->in_rates.ir_nrates == 0) + goto done; + an->an_tx_rix0 = asc->asc_rixmap[ + in->in_rates.ir_rates[rate] & IEEE80211_RATE_VAL]; + an->an_tx_rate0 = rt->info[an->an_tx_rix0].rateCode; + an->an_tx_rate0sp = an->an_tx_rate0 | + rt->info[an->an_tx_rix0].shortPreamble; + if (asc->asc_mrretry) { + /* + * Hardware supports multi-rate retry; setup two + * step-down retry rates and make the lowest rate + * be the ``last chance''. We use 4, 2, 2, 2 tries + * respectively (4 is set here, the rest are fixed + * in the xmit routine). + */ + an->an_tx_try0 = 1 + 3; /* 4 tries at rate 0 */ + if (--rate >= 0) { + rix = asc->asc_rixmap[ + in->in_rates.ir_rates[rate]&IEEE80211_RATE_VAL]; + an->an_tx_rate1 = rt->info[rix].rateCode; + an->an_tx_rate1sp = an->an_tx_rate1 | + rt->info[rix].shortPreamble; + } else { + an->an_tx_rate1 = an->an_tx_rate1sp = 0; + } + if (--rate >= 0) { + rix = asc->asc_rixmap[ + in->in_rates.ir_rates[rate]&IEEE80211_RATE_VAL]; + an->an_tx_rate2 = rt->info[rix].rateCode; + an->an_tx_rate2sp = an->an_tx_rate2 | + rt->info[rix].shortPreamble; + } else { + an->an_tx_rate2 = an->an_tx_rate2sp = 0; + } + if (rate > 0) { + an->an_tx_rate3 = rt->info[0].rateCode; + an->an_tx_rate3sp = + an->an_tx_mgtrate | rt->info[0].shortPreamble; + } else { + an->an_tx_rate3 = an->an_tx_rate3sp = 0; + } + } else { + an->an_tx_try0 = ATH_TXMAXTRY; /* max tries at rate 0 */ + an->an_tx_rate1 = an->an_tx_rate1sp = 0; + an->an_tx_rate2 = an->an_tx_rate2sp = 0; + an->an_tx_rate3 = an->an_tx_rate3sp = 0; + } +done: + an->an_tx_ok = an->an_tx_err = an->an_tx_retr = an->an_tx_upper = 0; +} + + +/* + * Set the starting transmit rate for a node. + */ +void +ath_rate_ctl_start(ath_t *asc, struct ieee80211_node *in) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + int32_t srate; + + if (isc->isc_fixed_rate == -1) { + /* + * No fixed rate is requested. For 11b start with + * the highest negotiated rate; otherwise, for 11g + * and 11a, we start "in the middle" at 24Mb or 36Mb. + */ + srate = in->in_rates.ir_nrates - 1; + if (asc->asc_curmode != IEEE80211_MODE_11B) { + /* + * Scan the negotiated rate set to find the + * closest rate. + */ + /* NB: the rate set is assumed sorted */ + for (; srate >= 0 && IEEE80211_RATE(srate) > 72; + srate--); + } + } else { + /* + * A fixed rate is to be used; ic_fixed_rate is an + * index into the supported rate set. Convert this + * to the index into the negotiated rate set for + * the node. We know the rate is there because the + * rate set is checked when the station associates. + */ + const struct ieee80211_rateset *rs = + &isc->isc_sup_rates[isc->isc_curmode]; + int32_t r = rs->ir_rates[isc->isc_fixed_rate] & + IEEE80211_RATE_VAL; + /* NB: the rate set is assumed sorted */ + srate = in->in_rates.ir_nrates - 1; + for (; srate >= 0 && IEEE80211_RATE(srate) != r; srate--); + } + ATH_DEBUG((ATH_DBG_RATE, "ath: ath_rate_ctl_start(): " + "srate=%d rate=%d\n", srate, IEEE80211_RATE(srate))); + ath_rate_update(asc, in, srate); +} + + +/* + * Reset the rate control state for each 802.11 state transition. + */ +void +ath_rate_ctl_reset(ath_t *asc, enum ieee80211_state state) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ieee80211_node *in; + + if (isc->isc_opmode == IEEE80211_M_STA) { + /* + * Reset local xmit state; this is really only + * meaningful when operating in station mode. + */ + in = (struct ieee80211_node *)isc->isc_bss; + if (state == IEEE80211_S_RUN) { + ath_rate_ctl_start(asc, in); + } else { + ath_rate_update(asc, in, 0); + } + } else { + /* + * When operating as a station the node table holds + * the AP's that were discovered during scanning. + * For any other operating mode we want to reset the + * tx rate state of each node. + */ + in = list_head(&isc->isc_in_list); + while (in != NULL) { + ath_rate_update(asc, in, 0); + in = list_next(&isc->isc_in_list, in); + } + ath_rate_update(asc, isc->isc_bss, 0); + } +} + + +/* + * Examine and potentially adjust the transmit rate. + */ +void +ath_rate_ctl(ieee80211com_t *isc, struct ieee80211_node *in) +{ + ath_t *asc = (ath_t *)isc; + struct ath_node *an = ATH_NODE(in); + struct ieee80211_rateset *rs = &in->in_rates; + int32_t mod = 0, nrate, enough; + + /* + * Rate control(very primitive version). + */ + asc->asc_stats.ast_rate_calls++; + + enough = (an->an_tx_ok + an->an_tx_err >= 10); + + /* no packet reached -> down */ + if (an->an_tx_err > 0 && an->an_tx_ok == 0) + mod = -1; + + /* all packets needs retry in average -> down */ + if (enough && an->an_tx_ok < an->an_tx_retr) + mod = -1; + + /* no error and less than 10% of packets needs retry -> up */ + if (enough && an->an_tx_err == 0 && an->an_tx_ok > an->an_tx_retr * 10) + mod = 1; + + nrate = in->in_txrate; + switch (mod) { + case 0: + if (enough && an->an_tx_upper > 0) + an->an_tx_upper--; + break; + case -1: + if (nrate > 0) { + nrate--; + asc->asc_stats.ast_rate_drop++; + } + an->an_tx_upper = 0; + break; + case 1: + if (++an->an_tx_upper < 10) + break; + an->an_tx_upper = 0; + if (nrate + 1 < rs->ir_nrates) { + nrate++; + asc->asc_stats.ast_rate_raise++; + } + break; + } + + if (nrate != in->in_txrate) { + ATH_DEBUG((ATH_DBG_RATE, "ath: ath_rate_ctl(): %dM -> %dM " + "(%d ok, %d err, %d retr)\n", + (rs->ir_rates[in->in_txrate] & IEEE80211_RATE_VAL) / 2, + (rs->ir_rates[nrate] & IEEE80211_RATE_VAL) / 2, + an->an_tx_ok, an->an_tx_err, an->an_tx_retr)); + ath_rate_update(asc, in, nrate); + } else if (enough) + an->an_tx_ok = an->an_tx_err = an->an_tx_retr = 0; +} + + +/* + * Read rate table from the HAL, and then + * copy the table to the driver's data structure. + */ +void +ath_rate_setup(ath_t *asc, uint32_t mode) +{ + int32_t i, maxrates; + struct ieee80211_rateset *rs; + struct ath_hal *ah = asc->asc_ah; + ieee80211com_t *isc = (ieee80211com_t *)asc; + const HAL_RATE_TABLE *rt; + + switch (mode) { + case IEEE80211_MODE_11A: + asc->asc_rates[mode] = ATH_HAL_GETRATETABLE(ah, HAL_MODE_11A); + break; + case IEEE80211_MODE_11B: + asc->asc_rates[mode] = ATH_HAL_GETRATETABLE(ah, HAL_MODE_11B); + break; + case IEEE80211_MODE_11G: + asc->asc_rates[mode] = ATH_HAL_GETRATETABLE(ah, HAL_MODE_11G); + break; + case IEEE80211_MODE_TURBO: + asc->asc_rates[mode] = ATH_HAL_GETRATETABLE(ah, HAL_MODE_TURBO); + break; + default: + ATH_DEBUG((ATH_DBG_RATE, "ath: ath_rate_setup(): " + "invalid mode %u\n", mode)); + return; + } + + rt = asc->asc_rates[mode]; + if (rt == NULL) + return; + if (rt->rateCount > IEEE80211_RATE_MAXSIZE) { + ATH_DEBUG((ATH_DBG_RATE, "ath: ath_rate_setup(): " + "rate table too small (%u > %u)\n", + rt->rateCount, IEEE80211_RATE_MAXSIZE)); + maxrates = IEEE80211_RATE_MAXSIZE; + } else + maxrates = rt->rateCount; + rs = &isc->isc_sup_rates[mode]; + for (i = 0; i < maxrates; i++) + rs->ir_rates[i] = rt->info[i].dot11Rate; + rs->ir_nrates = maxrates; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/ath_rate.h Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,60 @@ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* + * Copyright (c) 2002-2004 Sam Leffler, Errno Consulting + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + */ + +#ifndef _ATH_RATE_H +#define _ATH_RATE_H + +#pragma ident "%Z%%M% %I% %E% SMI" + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ath_ieee80211.h" +#include "ath_impl.h" + +void ath_rate_ctl_start(ath_t *asc, struct ieee80211_node *in); +void ath_rate_ctl_reset(ath_t *asc, enum ieee80211_state state); +void ath_rate_ctl(ieee80211com_t *isc, struct ieee80211_node *in); +void ath_rate_update(ath_t *asc, struct ieee80211_node *in, int32_t rate); +void ath_rate_setup(ath_t *asc, uint32_t mode); + +#ifdef __cplusplus +} +#endif + +#endif /* _ATH_RATE_H */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/ath_wificonfig.c Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,818 @@ +/* + * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. + */ + +/* + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any + * redistribution must be conditioned upon including a substantially + * similar Disclaimer requirement for further binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + * + */ + +#pragma ident "%Z%%M% %I% %E% SMI" + +#include <sys/param.h> +#include <sys/types.h> +#include <sys/signal.h> +#include <sys/stream.h> +#include <sys/termio.h> +#include <sys/errno.h> +#include <sys/file.h> +#include <sys/cmn_err.h> +#include <sys/stropts.h> +#include <sys/strsubr.h> +#include <sys/strtty.h> +#include <sys/kbio.h> +#include <sys/cred.h> +#include <sys/stat.h> +#include <sys/consdev.h> +#include <sys/kmem.h> +#include <sys/modctl.h> +#include <sys/ddi.h> +#include <sys/sunddi.h> +#include <sys/pci.h> +#include <sys/errno.h> +#include <sys/gld.h> +#include <sys/dlpi.h> +#include <sys/ethernet.h> +#include <sys/note.h> +#include <sys/strsun.h> +#include <sys/list.h> +#include <inet/common.h> +#include <inet/nd.h> +#include <inet/mi.h> +#include <inet/wifi_ioctl.h> +#include "ath_impl.h" +#include "ath_hal.h" +#include "ath_ieee80211.h" + +extern int +ath_gld_start(gld_mac_info_t *gld_p); + +static int +ath_wificfg_essid(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + uint32_t i; + char *value, *buf; + int len; + wldp_t *infp, *outfp; + ieee80211com_t *isc = (ieee80211com_t *)asc; + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + + outfp = (wldp_t *)buf; + infp = (wldp_t *)mp->b_rptr; + + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + + if (cmd == WLAN_GET_PARAM) { + if (mi_strlen((const char *)isc->isc_des_essid) == 0) { + outfp->wldp_length = offsetof(wldp_t, wldp_buf) + + offsetof(wl_essid_t, wl_essid_essid) + + mi_strlen((const char *) + isc->isc_bss->in_essid); + ((wl_essid_t *)(outfp->wldp_buf))->wl_essid_length = + mi_strlen((const char *) + isc->isc_bss->in_essid); + bcopy(isc->isc_bss->in_essid, + buf + offsetof(wldp_t, wldp_buf) + + offsetof(wl_essid_t, wl_essid_essid), + mi_strlen((const char *) + isc->isc_bss->in_essid)); + } else { + outfp->wldp_length = offsetof(wldp_t, wldp_buf) + + offsetof(wl_essid_t, wl_essid_essid) + + mi_strlen((const char *)isc->isc_des_essid); + ((wl_essid_t *)(outfp->wldp_buf))->wl_essid_length = + mi_strlen((const char *)isc->isc_des_essid); + bcopy(isc->isc_des_essid, + buf + offsetof(wldp_t, wldp_buf) + + offsetof(wl_essid_t, wl_essid_essid), + mi_strlen((const char *) + isc->isc_des_essid)); + } + } else if (cmd == WLAN_SET_PARAM) { + value = ((wl_essid_t *)(infp->wldp_buf))->wl_essid_essid; + bzero(isc->isc_des_essid, IEEE80211_NWID_LEN); + if (mi_strlen(value) == 0) + isc->isc_des_esslen = 0; + else { + len = mi_strlen((const char *)value); + if (len > IEEE80211_NWID_LEN) + len = IEEE80211_NWID_LEN; + bcopy(value, isc->isc_des_essid, len); + isc->isc_des_esslen = len; + ATH_DEBUG((ATH_DBG_WIFICFG, + "ath: ath_wificfg_essid(): " + "set essid=%s len=%d\n", value, len)); + } + if (asc->asc_invalid == 0) { + (void) ath_gld_start(isc->isc_dev); + (void) _ieee80211_new_state(isc, IEEE80211_S_SCAN, -1); + } + } + + outfp->wldp_result = WL_SUCCESS; + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + kmem_free(buf, MAX_BUF_LEN); + return (WL_SUCCESS); +} + +static int +ath_wificfg_bssid(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + uint32_t i; + char *buf; + wldp_t *outfp; + ieee80211com_t *isc = (ieee80211com_t *)asc; + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + + outfp->wldp_length = WIFI_BUF_OFFSET + sizeof (wl_bssid_t); + if (cmd == WLAN_GET_PARAM) { + if (isc->isc_flags & IEEE80211_F_DESBSSID) + bcopy(isc->isc_des_bssid, + buf + WIFI_BUF_OFFSET, sizeof (wl_bssid_t)); + else + bcopy(isc->isc_bss->in_bssid, + buf + WIFI_BUF_OFFSET, sizeof (wl_bssid_t)); + outfp->wldp_result = WL_SUCCESS; + + ATH_DEBUG((ATH_DBG_WIFICFG, "ath: ath_wificfg_bssid(): " + "get bssid=%x %x %x %x %x %x\n", + buf[WIFI_BUF_OFFSET+0], buf[WIFI_BUF_OFFSET+1], + buf[WIFI_BUF_OFFSET+2], buf[WIFI_BUF_OFFSET+3], + buf[WIFI_BUF_OFFSET+4], buf[WIFI_BUF_OFFSET+5])); + } else if (cmd == WLAN_SET_PARAM) { + outfp->wldp_result = WL_READONLY; + } + + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + kmem_free(buf, MAX_BUF_LEN); + return (WL_SUCCESS); +} + +static int +ath_wificfg_nodename(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + char *value, *buf; + int iret, nickname_len; + uint32_t i; + wldp_t *infp, *outfp; + ieee80211com_t *isc = (ieee80211com_t *)asc; + + ATH_DEBUG((ATH_DBG_WIFICFG, "ath: ath_wificfg_nodename(): " + "nodename entry\n")); + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + infp = (wldp_t *)mp->b_rptr; + + nickname_len = MIN(isc->isc_nicknamelen, IEEE80211_NWID_LEN); + + if (cmd == WLAN_GET_PARAM) { + outfp->wldp_length = WIFI_BUF_OFFSET + + offsetof(wl_nodename_t, wl_nodename_name) + nickname_len; + ((wl_nodename_t *)(buf + WIFI_BUF_OFFSET))->wl_nodename_length = + nickname_len; + bcopy(isc->isc_nickname, buf + WIFI_BUF_OFFSET + + offsetof(wl_nodename_t, wl_nodename_name), nickname_len); + outfp->wldp_result = WL_SUCCESS; + ATH_DEBUG((ATH_DBG_WIFICFG, "ath: ath_wificfg_nodename(): " + "get nodename=%s\n", isc->isc_nickname)); + } else if (cmd == WLAN_SET_PARAM) { + value = ((wl_nodename_t *)(infp->wldp_buf))->wl_nodename_name; + (void) strncpy((char *)isc->isc_nickname, value, + MIN(32, strlen(value))); + isc->isc_nickname[strlen(value)] = '\0'; + isc->isc_nicknamelen = + ((wl_nodename_t *)(infp->wldp_buf))->wl_nodename_length; + outfp->wldp_length = WIFI_BUF_OFFSET; + outfp->wldp_result = WL_SUCCESS; + ATH_DEBUG((ATH_DBG_WIFICFG, "ath: ath_wificfg_nodename(): " + "set nodename=%s\n", value)); + ATH_DEBUG((ATH_DBG_WIFICFG, "ath: ath_wificfg_nodename(): " + "set nodename_len=%d\n", isc->isc_nicknamelen)); + } + + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + iret = (int)(outfp->wldp_result); + kmem_free(buf, MAX_BUF_LEN); + return (iret); +} + +static int +ath_wificfg_encryption(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + uint32_t i; + char *buf; + int iret; + wldp_t *infp, *outfp; + ieee80211com_t *isc = (ieee80211com_t *)asc; + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + infp = (wldp_t *)mp->b_rptr; + outfp->wldp_length = offsetof(wldp_t, wldp_buf) + + sizeof (wl_encryption_t); + if (cmd == WLAN_GET_PARAM) { + *(wl_encryption_t *)(outfp->wldp_buf) = + (isc->isc_flags & IEEE80211_F_WEPON) ? 1 : 0; + outfp->wldp_result = WL_SUCCESS; + } else if (cmd == WLAN_SET_PARAM) { + if (*(wl_encryption_t *)(infp->wldp_buf) == + WL_NOENCRYPTION) { + isc->isc_flags &= ~IEEE80211_F_WEPON; + } else if (*(wl_encryption_t *)(infp->wldp_buf) == + WL_ENC_WEP) { + isc->isc_flags |= IEEE80211_F_WEPON; + } + ATH_DEBUG((ATH_DBG_WIFICFG, "ath: " + "ath_wificfg_encryption(): set encryption=%d\n", + (isc->isc_flags & IEEE80211_F_WEPON) ? 1 : 0)); + if (asc->asc_invalid == 0) { + (void) ath_gld_start(isc->isc_dev); + (void) _ieee80211_new_state(isc, IEEE80211_S_SCAN, -1); + } + outfp->wldp_result = WL_SUCCESS; + } + + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + iret = (int)(outfp->wldp_result); + kmem_free(buf, MAX_BUF_LEN); + return (iret); +} + +static int +ath_wificfg_wepkey(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + uint32_t i; + wldp_t *infp, *outfp; + char *buf; + int iret; + wl_wep_key_t *p_wepkey_tab; + ieee80211com_t *isc = (ieee80211com_t *)asc; + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + infp = (wldp_t *)mp->b_rptr; + + outfp->wldp_length = offsetof(wldp_t, wldp_buf) + + sizeof (wl_wep_key_tab_t); + + if (cmd == WLAN_GET_PARAM) { + outfp->wldp_result = WL_WRITEONLY; + } else if (cmd == WLAN_SET_PARAM) { + p_wepkey_tab = (wl_wep_key_t *)(infp->wldp_buf); + for (i = 0; i < MAX_NWEPKEYS; i++) { + if (p_wepkey_tab[i].wl_wep_operation == WL_ADD) { + isc->isc_nw_keys[i].iwk_len = + p_wepkey_tab[i].wl_wep_length; + bcopy(p_wepkey_tab[i].wl_wep_key, + isc->isc_nw_keys[i].iwk_key, + p_wepkey_tab[i].wl_wep_length); + } + } + if (asc->asc_invalid == 0) { + (void) ath_gld_start(isc->isc_dev); + (void) _ieee80211_new_state(isc, IEEE80211_S_SCAN, -1); + } + outfp->wldp_result = WL_SUCCESS; + } + + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + iret = (int)(outfp->wldp_result); + kmem_free(buf, MAX_BUF_LEN); + return (iret); + +} + +static int +ath_wificfg_keyid(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + uint32_t i; + char *buf; + int iret; + wldp_t *infp, *outfp; + ieee80211com_t *isc = (ieee80211com_t *)asc; + wl_wep_key_id_t keyid; + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + infp = (wldp_t *)mp->b_rptr; + + outfp->wldp_length = offsetof(wldp_t, wldp_buf) + + sizeof (wl_wep_key_id_t); + + if (cmd == WLAN_GET_PARAM) { + *(wl_wep_key_id_t *)(outfp->wldp_buf) = + isc->isc_wep_txkey; + outfp->wldp_result = WL_SUCCESS; + } else if (cmd == WLAN_SET_PARAM) { + keyid = *(wl_wep_key_id_t *)(infp->wldp_buf); + if (keyid >= MAX_NWEPKEYS) { + outfp->wldp_result = WL_NOTSUPPORTED; + } else { + isc->isc_wep_txkey = keyid; + ATH_DEBUG((ATH_DBG_WIFICFG, + "ath: ath_wificfg_keyid(): set wepkeyid=%d\n", + isc->isc_wep_txkey)); + if (asc->asc_invalid == 0) { + (void) ath_gld_start(isc->isc_dev); + (void) _ieee80211_new_state(isc, + IEEE80211_S_SCAN, -1); + } + outfp->wldp_result = WL_SUCCESS; + } + } + + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + iret = (int)(outfp->wldp_result); + kmem_free(buf, MAX_BUF_LEN); + return (iret); +} + +/* + * Units are in db above the noise floor. That means the + * rssi values reported in the tx/rx descriptors in the + * driver are the SNR expressed in db. + */ +static void +ath_getrssi(struct ieee80211_node *in, wl_rssi_t *rssi) +{ + wl_rssi_t val, max_val; + + max_val = 63; /* Max rssi */ + val = (wl_rssi_t)in->in_recv_hist[in->in_hist_cur].irh_rssi; + ATH_DEBUG((ATH_DBG_WIFICFG, "ath: ath_getrssi(): " + "rssi: %d\n", val)); + if (val > max_val) + val = max_val; /* Max rssi */ + if (max_val > MAX_RSSI) + *rssi = (wl_rssi_t)((val + (double)max_val / MAX_RSSI - 1) / + max_val * MAX_RSSI); + else + *rssi = (wl_rssi_t)((double)val / max_val * MAX_RSSI); +} + +static void +ath_wait_scan(ath_t *asc) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + + while (isc->isc_flags & IEEE80211_F_ASCAN) { + if (cv_timedwait(&isc->isc_scan_cv, &isc->isc_genlock, + ddi_get_lbolt() + drv_usectohz(6000000)) != 0) + break; + } +} + +static int +ath_wificfg_esslist(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + _NOTE(ARGUNUSED(cmd)) + + char *buf; + int iret; + uint32_t i, essid_num; + struct ieee80211_node *in; + wldp_t *outfp; + wl_ess_conf_t *p_ess_conf; + ieee80211com_t *isc = (ieee80211com_t *)asc; + + /* Wait scan finish */ + ath_wait_scan(asc); + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + + essid_num = 0; + in = list_head(&isc->isc_in_list); + while (in != NULL) { + p_ess_conf = (wl_ess_conf_t *) + (buf + offsetof(wldp_t, wldp_buf) + + offsetof(wl_ess_list_t, wl_ess_list_ess) + + essid_num * sizeof (wl_ess_conf_t)); + + if (p_ess_conf > (wl_ess_conf_t *) + (buf + MAX_BUF_LEN - sizeof (wl_ess_conf_t))) + break; + + bcopy(in->in_essid, + p_ess_conf->wl_ess_conf_essid.wl_essid_essid, + in->in_esslen); + bcopy(in->in_bssid, p_ess_conf->wl_ess_conf_bssid, 6); + (p_ess_conf->wl_phy_conf).wl_phy_dsss_conf.wl_dsss_subtype = + WL_DSSS; + p_ess_conf->wl_ess_conf_wepenabled = + (in->in_capinfo & IEEE80211_CAPINFO_PRIVACY ? + WL_ENC_WEP : WL_NOENCRYPTION); + p_ess_conf->wl_ess_conf_bsstype = + (in->in_capinfo & IEEE80211_CAPINFO_ESS ? + WL_BSS_BSS : WL_BSS_IBSS); + ath_getrssi(in, &(p_ess_conf->wl_ess_conf_sl)); + + essid_num++; + in = list_next(&isc->isc_in_list, in); + } + + ((wl_ess_list_t *)(outfp->wldp_buf))->wl_ess_list_num = essid_num; + outfp->wldp_length = offsetof(wldp_t, wldp_buf) + + offsetof(wl_ess_list_t, wl_ess_list_ess) + + essid_num * sizeof (wl_ess_conf_t); + outfp->wldp_result = WL_SUCCESS; + + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + iret = (int)(outfp->wldp_result); + kmem_free(buf, MAX_BUF_LEN); + return (iret); +} + +static int +ath_wificfg_supportrates(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + _NOTE(ARGUNUSED(asc)) + + uint16_t i; + wldp_t *outfp; + char *buf; + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ieee80211_node *in = isc->isc_bss; + const struct ieee80211_rateset *rs; + wl_rates_t *rates; + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + + rs = &isc->isc_sup_rates[ieee80211_chan2mode(isc, in->in_chan)]; + rates = (wl_rates_t *)(outfp->wldp_buf); + if (cmd == WLAN_GET_PARAM) { + rates->wl_rates_num = rs->ir_nrates; + for (i = 0; i < rs->ir_nrates; i++) { + rates->wl_rates_rates[i] = rs->ir_rates[i] & + IEEE80211_RATE_VAL; + } + outfp->wldp_length = WIFI_BUF_OFFSET + + offsetof(wl_rates_t, wl_rates_rates) + + rs->ir_nrates * sizeof (char); + outfp->wldp_result = WL_SUCCESS; + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + } + + kmem_free(buf, MAX_BUF_LEN); + return (WL_SUCCESS); +} + +static int +ath_wificfg_desiredrates(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + uint32_t i; + int rate, iret; + char *buf; + wldp_t *outfp; + + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ieee80211_node *in = isc->isc_bss; + struct ieee80211_rateset *rs = &in->in_rates; + + /* + * Here rate is a full duplex speed, wificonfig will divide it + * by 2 when display to user. From the wificonfig point of view, + * 'rate' is just a transmiting rate. + */ + rate = (rs->ir_rates[in->in_txrate] & IEEE80211_RATE_VAL); + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + + if (cmd == WLAN_GET_PARAM) { + ((wl_rates_t *)(outfp->wldp_buf))->wl_rates_num = 1; + (((wl_rates_t *)(outfp->wldp_buf))->wl_rates_rates)[0] = rate; + outfp->wldp_length = WIFI_BUF_OFFSET + + offsetof(wl_rates_t, wl_rates_rates) + sizeof (char); + ATH_DEBUG((ATH_DBG_WIFICFG, "ath: " + "ath_wificfg_desiredrates(): current rate=%dM\n", rate)); + outfp->wldp_result = WL_SUCCESS; + } else if (cmd == WLAN_SET_PARAM) { + outfp->wldp_length = WIFI_BUF_OFFSET; + outfp->wldp_result = WL_SUCCESS; + } + + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + iret = (int)(outfp->wldp_result); + kmem_free(buf, MAX_BUF_LEN); + return (iret); +} + +static int +ath_wificfg_authmode(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + _NOTE(ARGUNUSED(asc)) + + uint32_t i, authmode; + char *buf; + int iret; + wldp_t *infp, *outfp; + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + infp = (wldp_t *)mp->b_rptr; + + outfp->wldp_length = WIFI_BUF_OFFSET + sizeof (wl_authmode_t); + outfp->wldp_result = WL_SUCCESS; + if (cmd == WLAN_GET_PARAM) { + *(wl_authmode_t *)(outfp->wldp_buf) = WL_OPENSYSTEM; + } else if (cmd == WLAN_SET_PARAM) { + authmode = *(wl_authmode_t *)(infp->wldp_buf); + if (authmode != WL_OPENSYSTEM) { + outfp->wldp_length = WIFI_BUF_OFFSET; + outfp->wldp_result = WL_LACK_FEATURE; + } + } + + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + iret = (int)(outfp->wldp_result); + kmem_free(buf, MAX_BUF_LEN); + return (iret); +} + +static int +ath_wificfg_bsstype(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + _NOTE(ARGUNUSED(asc)) + + uint32_t i, bss_type; + char *buf; + int iret; + wldp_t *infp, *outfp; + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + infp = (wldp_t *)mp->b_rptr; + outfp->wldp_length = WIFI_BUF_OFFSET + sizeof (wl_bss_type_t); + outfp->wldp_result = WL_SUCCESS; + if (cmd == WLAN_GET_PARAM) { + *(wl_bss_type_t *)(outfp->wldp_buf) = WL_BSS_BSS; + } else if (cmd == WLAN_SET_PARAM) { + bss_type = (uint16_t)(*(wl_bss_type_t *)(infp->wldp_buf)); + if (bss_type != WL_BSS_BSS) { + outfp->wldp_length = WIFI_BUF_OFFSET; + outfp->wldp_result = WL_LACK_FEATURE; + } + } + + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + iret = (int)(outfp->wldp_result); + kmem_free(buf, MAX_BUF_LEN); + return (iret); +} + +static int +ath_wificfg_linkstatus(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + uint32_t i; + char *buf; + int iret; + wldp_t *outfp; + ieee80211com_t *isc = (ieee80211com_t *)asc; + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + + outfp->wldp_length = WIFI_BUF_OFFSET + sizeof (wl_linkstatus_t); + outfp->wldp_result = WL_SUCCESS; + + if (cmd == WLAN_GET_PARAM) { + *(wl_linkstatus_t *)(outfp->wldp_buf) = + (IEEE80211_S_RUN == isc->isc_state) ? + WL_CONNECTED : WL_NOTCONNECTED; + } else if (cmd == WLAN_SET_PARAM) { + outfp->wldp_length = WIFI_BUF_OFFSET; + outfp->wldp_result = WL_NOTSUPPORTED; + } + + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + iret = (int)(outfp->wldp_result); + kmem_free(buf, MAX_BUF_LEN); + return (iret); +} + +static int +ath_wificfg_rssi(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + uint32_t i; + char *buf; + int iret; + wldp_t *outfp; + + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ieee80211_node *in = isc->isc_bss; + + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + + outfp->wldp_length = WIFI_BUF_OFFSET + sizeof (wl_rssi_t); + outfp->wldp_result = WL_SUCCESS; + + if (cmd == WLAN_GET_PARAM) { + ath_getrssi(in, (wl_rssi_t *)(outfp->wldp_buf)); + } else if (cmd == WLAN_SET_PARAM) { + outfp->wldp_length = WIFI_BUF_OFFSET; + outfp->wldp_result = WL_NOTSUPPORTED; + } + + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + iret = (int)(outfp->wldp_result); + kmem_free(buf, MAX_BUF_LEN); + return (iret); +} + +static int +ath_wificfg_scan(ath_t *asc) +{ + int iret = WL_SUCCESS; + ieee80211com_t *isc = (ieee80211com_t *)asc; + + if (asc->asc_invalid == 0 && isc->isc_state == IEEE80211_S_INIT) { + (void) _ieee80211_new_state(isc, IEEE80211_S_SCAN, -1); + ath_wait_scan(asc); + (void) _ieee80211_new_state(isc, IEEE80211_S_INIT, -1); + } + return (iret); +} + +static void +ath_loaddefdata(ath_t *asc) +{ + int i; + ieee80211com_t *isc = (ieee80211com_t *)asc; + struct ieee80211_node *in = isc->isc_bss; + struct ieee80211_rateset *rs = &in->in_rates; + + if (isc->isc_flags & IEEE80211_F_DESBSSID) + bzero(isc->isc_des_bssid, IEEE80211_ADDR_LEN); + else + bzero(isc->isc_bss->in_bssid, IEEE80211_ADDR_LEN); + isc->isc_des_esslen = 0; + isc->isc_des_essid[0] = 0; + isc->isc_bss->in_essid[0] = 0; + rs->ir_rates[in->in_txrate] = 0; /* rate */ + isc->isc_flags &= ~IEEE80211_F_WEPON; /* encryption */ + isc->isc_wep_txkey = 0; /* wepkey id */ + for (i = 0; i < MAX_NWEPKEYS; i++) /* wepkey */ + isc->isc_nw_keys[i].iwk_len = 0; + for (i = 0; i < IEEE80211_RECV_HIST_LEN; ++i) + in->in_recv_hist[i].irh_rssi = 0; + in->in_hist_cur = IEEE80211_RECV_HIST_LEN - 1; +} + +static int +ath_wificfg_loaddefaults(ath_t *asc) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + + ath_loaddefdata(asc); + + if (asc->asc_invalid == 0) { + (void) ath_gld_start(isc->isc_dev); + (void) _ieee80211_new_state(isc, IEEE80211_S_SCAN, -1); + } + + return (WL_SUCCESS); +} + +static int +ath_wificfg_disassoc(ath_t *asc) +{ + ieee80211com_t *isc = (ieee80211com_t *)asc; + + if (! asc->asc_invalid) { + (void) _ieee80211_new_state(isc, IEEE80211_S_INIT, -1); + ath_loaddefdata(asc); + } + return (WL_SUCCESS); +} + +int32_t +ath_getset(ath_t *asc, mblk_t *mp, uint32_t cmd) +{ + uint32_t i, id; + char *buf; + int ret; + wldp_t *infp, *outfp; + + ret = WL_SUCCESS; + infp = (wldp_t *)mp->b_rptr; + id = infp->wldp_id; + + switch (id) { + case WL_ESSID: + ret = ath_wificfg_essid(asc, mp, cmd); + break; + case WL_BSSID: + ret = ath_wificfg_bssid(asc, mp, cmd); + break; + case WL_NODE_NAME: + ret = ath_wificfg_nodename(asc, mp, cmd); + break; + case WL_ENCRYPTION: + ret = ath_wificfg_encryption(asc, mp, cmd); + break; + case WL_WEP_KEY_TAB: + ret = ath_wificfg_wepkey(asc, mp, cmd); + break; + case WL_WEP_KEY_ID: + ret = ath_wificfg_keyid(asc, mp, cmd); + break; + case WL_ESS_LIST: + ret = ath_wificfg_esslist(asc, mp, cmd); + break; + case WL_SUPPORTED_RATES: + ret = ath_wificfg_supportrates(asc, mp, cmd); + break; + case WL_DESIRED_RATES: + ret = ath_wificfg_desiredrates(asc, mp, cmd); + break; + case WL_AUTH_MODE: + ret = ath_wificfg_authmode(asc, mp, cmd); + break; + case WL_BSS_TYPE: + ret = ath_wificfg_bsstype(asc, mp, cmd); + break; + case WL_LINKSTATUS: + ret = ath_wificfg_linkstatus(asc, mp, cmd); + break; + case WL_RSSI: + ret = ath_wificfg_rssi(asc, mp, cmd); + break; + case WL_SCAN: + ret = ath_wificfg_scan(asc); + break; + case WL_LOAD_DEFAULTS: + ret = ath_wificfg_loaddefaults(asc); + break; + case WL_DISASSOCIATE: + ret = ath_wificfg_disassoc(asc); + break; + default: + buf = kmem_zalloc(MAX_BUF_LEN, KM_SLEEP); + outfp = (wldp_t *)buf; + bcopy(mp->b_rptr, buf, sizeof (wldp_t)); + outfp->wldp_length = offsetof(wldp_t, wldp_buf); + outfp->wldp_result = WL_LACK_FEATURE; + for (i = 0; i < (outfp->wldp_length); i++) + (void) mi_mpprintf_putc((char *)mp, buf[i]); + kmem_free(buf, MAX_BUF_LEN); + break; + } + return (ret); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/hal_x86_32.o.uu Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,3112 @@ +/* + * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting, Atheros + * Communications, Inc. All rights reserved. + * + * Use is subject to license terms. + * + * Redistribution and use in source and binary forms are permitted + * provided that the following conditions are met: + * 1. The materials contained herein are unmodified and are used + * unmodified. + * 2. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following NO + * ''WARRANTY'' disclaimer below (''Disclaimer''), without + * modification. + * 3. Redistributions in binary form must reproduce at minimum a + * disclaimer similar to the Disclaimer below and any redistribution + * must be conditioned upon including a substantially similar + * Disclaimer requirement for further binary redistribution. + * 4. Neither the names of the above-listed copyright holders nor the + * names of any contributors may be used to endorse or promote + * product derived from this software without specific prior written + * permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE + * FOR 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 DAMAGES. + * + */ +#define ATH_HAL_VERSION "0.9.14.9" +#pragma ident "%Z%%M% %I% %E% SMI" + +begin-base64 644 hal.o +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 +YQBhAGEAYgBiAGIAYwBjAGMAZABkAGQAZQBlAGUAZgBmAGYAZwBnAGcAaABoAGgAaQBp +AGkAagBqAGoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wECABAAABREFgUG +cRbBFgUGAAAAAAAAAAAAAAAAUAEBABAAcRbBFh4AAAAAAAAAAAAAAAAAAAAAAAAAUAIB +ABAAcRatFhcAAAAAAAAAAAAAAAAAAAAAAAAAUAMCABAAoBTIFBEGcRatFh4GAAAAAAAA +AAAAAAAAUAQCABAAPBR4FBQAcRbBFhQAAAAAAAAAAAAAAAAAUAUCABAAcRbBFhEAAAAA +AAAAAAAAAAAAAAAAAAAAMAECADAAPBTIFBQAfBVEFhsAAAAAAAAAAAAAAAAAMAIBADAA +PBR4FBIAAAAAAAAAAAAAAAAAAAAAAAAAMAMBADAAPBTIFBQAAAAAAAAAAAAAAAAAAAAA +AAAAMAQBADAAPBTIFBIAAAAAAAAAAAAAAAAAAAAAAAAAMAUBADAAPBR4FA8AAAAAAAAA +AAAAAAAAAAAAAAAAMAYCADAAPBSgFBcAfBVEFh4AAAAAAAAAAAAAAAAAEAEDABAAjBTI +FBcGPBR4FBEGcRbBFh4GAAAAAAAAIAECABAAPBTIFBcGcRbBFh4GAAAAAAAAAAAAAAAA +YAEEABAAPBR4FBEGjBTIFBQGfBVEFhQGcRbBFh4GQAEBAEAAMhRuFBcAAAAAAAAAAAAA +AAAAAAAAAAAAQAIDAEAAMhRuFBcAsBPYExcAOBN0ExcAAAAAAAAAAAD/AQIAEwAKFCYW +BQYeFBIWBQYAAAAAAAAAAAAAAAAQAQMAEwCCFKoUFwZaFFoUEQaAFqgWHgYAAAAAAABg +AQMAEwCCFKoUFwZaFFoUEQaAFqgWHgYAAAAAAABgAQQAEwB4FKAUFwZQFFAUEQaFFq0W +HgakFRwWHgYQCgEAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wED +AP8ACAlECQUGhQmFCQUG0AmsCgUGAAAAAAAAEAoBABQAhQmFCRQGAAAAAAAAAAAAAAAA +AAAAAAAAMAoBADQAhQmFCRQGAAAAAAAAAAAAAAAAAAAAAAAAMAsBADQAhQmFCRQGAAAA +AAAAAAAAAAAAAAAAAAAAMAwBADQAhQmFCRQGAAAAAAAAAAAAAAAAAAAAAAAAQAoBAEQA +hQmFCRQGAAAAAAAAAAAAAAAAAAAAAAAAmQEBADQAhQmFCRQGAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAD/AQQA/wAICUQJBQZsCagJBQa0CbQJBQbQCawKBQZQDQIA +/wBsCagJFAAICUQJFAAAAAAAAAAAAAAAAAAwCgEA/wCZCagJFAAAAAAAAAAAAAAAAAAA +AAAAAAAwCwEAMQCACYoJFAAAAAAAAAAAAAAAAAAAAAAAAAAwDAEAMQBsCagJHgAAAAAA +AAAAAAAAAAAAAAAAAAAQCgEAEQBsCZ4JGwYAAAAAAAAAAAAAAAAAAAAAAABACgIAQQBs +CagJFAC0CbQJFAAAAAAAAAAAAAAAAACZAQEAMQBsCagJFAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABg +AAAAAQAAAAAAAAAKAAAAOAEAAEABAABIAQAAaAEAAHABAAB4AQAAgAEAAIgBAACoAQAA +sAEAAGYAAAABAAAAAAAAAAkAAAA4AQAAQAEAAFABAABoAQAAcAEAAHgBAACAAQAAkAEA +ALABAAAAAAAAZwAAAAEAAAAAAAAACQAAADgBAABAAQAASAEAAGgBAABwAQAAeAEAAIAB +AACIAQAAsAEAAAAAAABoAAAAAQAAAAAAAAAJAAAAOAEAAEABAABIAQAAaAEAAHABAAB4 +AQAAgAEAAIgBAACwAQAAAAAAAGEAAAAAAAAAAAAAAAgAAAA4AQAAQAEAAEgBAABoAQAA +gAEAAIgBAACoAQAAsAEAAAAAAAAAAAAAYgAAAAIAAAAsAQAACgAAADgBAABAAQAASAEA +AGgBAABwAQAAeAEAAIABAACIAQAAqAEAALABAABjAAAAAQAAAAAAAAAIAAAAOAEAAEAB +AABIAQAAaAEAAHABAAB4AQAAiAEAALABAAAAAAAAAAAAAGQAAAAAAAAAAAAAAAcAAAA4 +AQAAWAEAAGgBAABwAQAAeAEAAJgBAACwAQAAAAAAAAAAAAAAAAAAZQAAAAAAAAAAAAAA +BQAAADgBAABIAQAAaAEAAIgBAACwAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABpAAAAAAAA +AAAAAAAIAAAAOAEAAFgBAABoAQAAcAEAAHgBAACAAQAAmAEAALABAAAAAAAAAAAAAGoA +AAAAAAAAAAAAAAYAAAA4AQAASAEAAGgBAACAAQAAiAEAALABAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAEAAAAAAAAACQAAADgBAABAAQAA +UAEAAGgBAABwAQAAeAEAAIABAACQAQAAsAEAAAAAAABmAAAAAQAAAAAAAAAJAAAAOAEA +AEABAABQAQAAaAEAAHABAAB4AQAAgAEAAJABAACwAQAAAAAAAGcAAAABAAAAAAAAAAkA +AAA4AQAAQAEAAEgBAABoAQAAcAEAAHgBAACAAQAAkAEAALABAAAAAAAAaAAAAAEAAAAA +AAAACQAAADgBAABAAQAASAEAAGgBAABwAQAAeAEAAIABAACQAQAAsAEAAAAAAABhAAAA +AAAAAAAAAAAHAAAAOAEAAEABAABQAQAAaAEAAIABAACQAQAAsAEAAAAAAAAAAAAAAAAA +AGIAAAACAAAALAEAAAkAAAA4AQAAQAEAAFABAABoAQAAcAEAAHgBAACAAQAAkAEAALAB +AAAAAAAAYwAAAAEAAAAAAAAACAAAADgBAABAAQAAUAEAAGgBAABwAQAAeAEAAJABAACw +AQAAAAAAAAAAAABkAAAAAAAAAAAAAAAHAAAAOAEAAGABAABoAQAAcAEAAHgBAACgAQAA +sAEAAAAAAAAAAAAAAAAAAGUAAAAAAAAAAAAAAAUAAAA4AQAAYAEAAGgBAACgAQAAsAEA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAaQAAAAAAAAAAAAAACAAAADgBAABgAQAAaAEAAHAB +AAB4AQAAgAEAAKABAACwAQAAAAAAAAAAAABqAAAAAAAAAAAAAAAGAAAAOAEAAGABAABo +AQAAgAEAAKABAACwAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAEABiAFAAQAAuAEAABABSANQAQAAwgEAADABEAJAAQAAzgEAAAIAUAEBAEABBACg +AAgAwAAgANAAuDwAAJg8AACqPAAAuDwAAJ48AAC4PAAAuDwAALg8AACkPAAAuDwAALg8 +AAC4PAAAuDwAALg8AAC4PAAAuDwAALg8AAC4PAAAuDwAALg8AAC4PAAAuDwAALg8AAC4 +PAAAuDwAALg8AAC4PAAAuDwAALg8AAC4PAAAuDwAALg8AACwPAAAij0AAJE9AAC8PQAA +mD0AALw9AAC8PQAAvD0AALw9AACfPQAAvD0AAKY9AACtPQAAjBSgFLQUyBQAAHwVkBWk +FbgVzBXgFfQVCBYcFjAWRBYAAAAAQAECAMwWAADWFgAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAYAE6AEABAADwFgAAMAEAAEABAAAAAAAAMAIAAEABAAAA +AAAAMAMAAEABAAAAAAAAMAQAAEABAAAAAAAAMAUAAEABAAAAAAAAMAYAAEABAAAAAAAA +MAoAAEABAAAAAAAAMAsAAEABAAAAAAAAMAwAAEABAAAAAAAAaABoAEABAAAAAAAAQAJD +AEABAAAAAAAAQApDAKAAAAAAAAAAQApDAMAAAAAAAAAAQAFBAEABAAAAAAAAQApBAKAA +AAAAAAAAQApBAMAAAAAAAAAAQABDAEEASABKAEsAAAAAAAAAAAAkAZgZACkRBAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAA4FUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAABH +AAAACJgAAAAAAAAMmAAApo6ECRCYAAAA4DI9FJgAAGsHAAAcmAAAAAAAACCYAAAAAgIC +JJgAAA4OAAAomAAAAQICCiyYAAD8bwMAMJgAAAAAAAA0mAAADg4AADiYAAAHAAAAPJgA +AAABAgBAmAAAAABjiUSYAACcFnITSJgAADO2GABMmAAAPGGEElCYAADguOgNVJgAAFlI +BwBYmAAAur6AflyYAABeZjoxYJgAAAgdAABkmAAAAM4BAGiYAACQQZpAcJgAAA8AAAB0 +mAAAgAAAAHiYAAAEAAAAAJkAAAAAAAAEmQAAAAAAAAiZAAAAAAAADJkAAAAAgAAQmQAA +AwAAAACbAAAAAAAABJsAACAAAAAImwAAEAAAAAybAAAwAAAAEJsAAAgAAAAUmwAAKAAA +ABibAAAoAAAAHJsAAAQAAAAgmwAAJAAAACSbAAAUAAAAKJsAADQAAAAsmwAADAAAADCb +AAAsAAAANJsAAAIAAAA4mwAAIgAAADybAAASAAAAQJsAADIAAABEmwAACgAAAEibAAAq +AAAATJsAAAEAAABQmwAAIQAAAFSbAAARAAAAWJsAADEAAABcmwAACQAAAGCbAAApAAAA +ZJsAAAUAAABomwAAJQAAAGybAAAVAAAAcJsAADUAAAB0mwAADQAAAHibAAAtAAAAfJsA +AAMAAACAmwAAIwAAAISbAAATAAAAiJsAADMAAACMmwAACwAAAJCbAAArAAAAlJsAAAcA +AACYmwAAJwAAAJybAAAXAAAAoJsAADcAAACkmwAADwAAAKibAAAvAAAArJsAAC8AAACw +mwAALwAAALSbAAAvAAAAuJsAAC8AAAC8mwAALwAAAMCbAAAvAAAAxJsAAC8AAADImwAA +LwAAAMybAAAvAAAA0JsAAC8AAADUmwAALwAAANibAAAvAAAA3JsAAC8AAADgmwAALwAA +AOSbAAAvAAAA6JsAAC8AAADsmwAALwAAAPCbAAAvAAAA9JsAAC8AAAD4mwAALwAAAPyb +AAAvAAAAAJoAAB0AAAAEmgAAXQAAAAiaAACdAAAADJoAAN0AAAAQmgAAHQEAABSaAAAh +AAAAGJoAAGEAAAAcmgAAoQAAACCaAADhAAAAJJoAADEAAAAomgAAcQAAACyaAACxAAAA +MJoAABwAAAA0mgAAXAAAADiaAAApAAAAPJoAAGkAAABAmgAAqQAAAESaAAAgAAAASJoA +ABkAAABMmgAAWQAAAFCaAACZAAAAVJoAADAAAABYmgAABQAAAFyaAAAlAAAAYJoAAGUA +AABkmgAApQAAAGiaAAAoAAAAbJoAAGgAAABwmgAAHwAAAHSaAAAeAAAAeJoAABgAAAB8 +mgAAWAAAAICaAACYAAAAhJoAAAMAAACImgAABAAAAIyaAABEAAAAkJoAAIQAAACUmgAA +EwAAAJiaAAASAAAAnJoAAFIAAACgmgAAkgAAAKSaAADSAAAAqJoAACsAAACsmgAAKgAA +ALCaAABqAAAAtJoAAKoAAAC4mgAAGwAAALyaAAAaAAAAwJoAAFoAAADEmgAAmgAAAMia +AADaAAAAzJoAAAYAAADQmgAABgAAANSaAAAGAAAA2JoAAAYAAADcmgAABgAAAOCaAAAG +AAAA5JoAAAYAAADomgAABgAAAOyaAAAGAAAA8JoAAAYAAAD0mgAABgAAAPiaAAAGAAAA +/JoAAAYAAADUmAAAIAAAAMyYAAAEAAAAyJgAAAYBBgCcmAAAbQAAAMCYAAAAAAAA0JgA +ABQAAAAJCQAAAAAAAgIGBgYGBgYCAgAAAAMABgAJADwAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAADwAAAAzAAAAAAAAAAAAAAAAAAAAAriAAAAIAAACgIAAAEY +AAABAAAAQBgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQRXGQApEQQAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAANyIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsCY8J +tAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAEAAAABAAAAAAAAG +AAAABgAAAAYAMAAAABUAAAAVAAAAHQAAABUAAABAEAAAD/wvAA/8LwAf/C8AD/wvAEQQ +AAAP/C8AD/wvAB/8LwAP/C8ASBAAAA/8LwAP/C8AH/wvAA/8LwBMEAAAD/wvAA/8LwAf +/C8AD/wvAFAQAAAP/C8AD/wvAB/8LwAP/C8AVBAAAA/8LwAP/C8AH/wvAA/8LwBYEAAA +D/wvAA/8LwAf/C8AD/wvAFwQAAAP/C8AD/wvAB/8LwAP/C8AYBAAAA/8LwAP/C8AH/wv +AA/8LwBkEAAAD/wvAA/8LwAf/C8AD/wvAHAQAABoAQAA4AEAALgBAABoAQAAMBAAADAC +AADgAQAAsAAAADACAACwEAAAmA0AAIARAABIHwAAmA0AAPAQAADgoAAAaEABAIBYAADg +oAAAFIAAAAAEAAQACAAIADAAIAAEAAQcgAAAp4+NDs+PjQ6Vj2ABp4+NDgSYAAAAAAAA +AwAAAAAAAAAAAAAAIJgAAAACAgIAAgICAAIBAgACAgIkmAAADg4AAA4OAAAHBwAADg4A +ACiYAAABAAIKAQACCgAAAQUBAAIKNJgAAA4OAAAODgAADg4AAA4OAAA4mAAABwAAAAcA +AAALAAAACwAAAESYAACcFnITpRZyE6gWchOcFnITSJgAAGe6GABnuhgAaboYAGm6GABQ +mAAA4LQoDOC0KAzgtCgM4LQoDFiYAAAuDYB+Lg2Afi4NwH4uDYB+XJgAAF5dNzFeXTcx +Xl06MV5dNzFgmAAAEL0AABC9AAA4vQAAEL0AAGSYAAAAzgEAAM4BAADOAQAAzgEAFJkA +ABAnAAAQJwAAfBUAABAnAAAYmQAAkAEAAJABAACEAAAAkAEAAESZAAAgEOBvIBDgbyAJ +4G8gEOBvgKEAAP8U/wX/FP8F/xT/Bf8Z/wXUmAAAEAAAABQAAAAQAAAAEAAAAAAAAAAM +AAAAAAAAACgAAACcnISELAAAAHx8fHw0AAAABQAAAEAAAAAAAAAARAAAAAgAAABIAAAA +CAAAAEwAAAAQAAAAUAAAAAAAAABUAAAAHwAAAAAIAAAAAAAABAgAAAAAAAAICAAAAAAA +AAwIAAAAAAAAEAgAAAAAAAAUCAAAAAAAABgIAAAAAAAAHAgAAAAAAAAgCAAAAAAAACQI +AAAAAAAAMBIAAAAAAAAEgAAAAAAAAAiAAAAAAAAADIAAAAAAAAAYgAAAAAAAACSAAAAA +AAAAKIAAADAAAAAsgAAA//8HADCAAAD///8BNIAAADEAAAA4gAAAAAAAADyAAAAAAAAA +QIAAAAAAAABEgAAAAgAAAEiAAAAAAAAAVIAAAAAAAABYgAAAAAAAAAiYAAAAAAAADJgA +AJOQhC0QmAAAAOAyfRSYAABrDwAAHJgAAAAAAAAsmAAA/m8CADCYAAAAAAAAPJgAAAAB +AgBAmAAAegFqIEyYAAA8YYQSVJgAAFkIAABomAAAkEGaQGyYAACBsAwFcJgAAA8AAAB0 +mAAAgAAAAHiYAAAMAAAAAJkAAAAAAAAEmQAAAAAAAAiZAAAAAAAADJkAAAAAgAAQmQAA +AQAAAByZAAAqCQAAIJkAAAAAAAAkmQAABYoFACiZAAABAAAALJkAAAAAAAAwmQAAAAAA +ADSZAAAAAAAAOJkAAAAAAAA8mQAAPwAAAECZAAAEAAAASJkAAAAAAABMmQAAAAAAAFCZ +AAAAAAAAVJkAAEzxUF1YmQAAGAAAAFyZAACOaksAhKEAAP8F/waIoQAA/wf/B4yhAAD/ +CP8IkKEAAP8J/wmUoQAA/wr/CpihAAD/C/8LnKEAAP8M/wygoQAA/w3/DaShAAD/Dv8P +qKEAAP8S/xKsoQAA/xP/FLChAAD/Ff8WtKEAAP8X/xm4oQAA/xr/G7yhAAD/Hf8ewKEA +AP8g/yPEoQAA/yX/J8ihAAD/Kf8szKEAAP8v/zHQoQAA/zT/N9ShAAD/Ov862KEAAP86 +/zrcoQAA/zr/OuChAAD/Ov865KEAAP86/zrooQAA/zr/OuyhAAD/Ov868KEAAP86/zr0 +oQAA/zr/OvihAAD/Ov86/KEAAP86/zoAmwAAAAAAAASbAAAgAAAACJsAABAAAAAMmwAA +MAAAABCbAAAIAAAAFJsAACgAAAAYmwAABAAAABybAAAkAAAAIJsAABQAAAAkmwAANAAA +ACibAAAMAAAALJsAACwAAAAwmwAAAgAAADSbAAAiAAAAOJsAABIAAAA8mwAAMgAAAECb +AAAKAAAARJsAACoAAABImwAABgAAAEybAAAmAAAAUJsAABYAAABUmwAANgAAAFibAAAO +AAAAXJsAAC4AAABgmwAAAQAAAGSbAAAhAAAAaJsAABEAAABsmwAAMQAAAHCbAAAJAAAA +dJsAACkAAAB4mwAABQAAAHybAAAlAAAAgJsAABUAAACEmwAANQAAAIibAAANAAAAjJsA +AC0AAACQmwAAAwAAAJSbAAAjAAAAmJsAABMAAACcmwAAMwAAAKCbAAALAAAApJsAACsA +AAComwAAKwAAAKybAAArAAAAsJsAACsAAAC0mwAAKwAAALibAAArAAAAvJsAACsAAADA +mwAAKwAAAMSbAAArAAAAyJsAACsAAADMmwAAKwAAANCbAAArAAAA1JsAACsAAADYmwAA +KwAAANybAAArAAAA4JsAACsAAADkmwAAKwAAAOibAAArAAAA7JsAACsAAADwmwAAKwAA +APSbAAArAAAA+JsAAAIAAAD8mwAAFgAAANSYAAAgAAAA2JgAAGgQYAAAAAAAAAAAAACa +AACpAQAAAAAAAASaAADpAQAAQAAAAAiaAAApAAAAgAAAAAyaAABpAAAAUAEAABCaAACZ +AQAAkAEAABSaAADZAQAA0AEAABiaAAAZAAAAEAAAAByaAABZAAAARAAAACCaAACZAAAA +hAAAACSaAAClAQAASAEAACiaAADlAQAAiAEAACyaAAAlAAAAyAEAADCaAADIAQAAFAAA +ADSaAAAIAAAAQgAAADiaAABIAAAAggAAADyaAACIAAAAeAEAAECaAACYAQAAuAEAAESa +AADYAQAA+AEAAEiaAAAYAAAAEgAAAEyaAABYAAAAUgAAAFCaAACYAAAAkgAAAFSaAACk +AQAAfAEAAFiaAADkAQAAvAEAAFyaAAAkAAAA/AEAAGCaAABkAAAACgAAAGSaAACkAAAA +SgAAAGiaAADkAAAAigAAAGyaAAAKAQAAWgEAAHCaAABKAQAAmgEAAHSaAACKAQAA2gEA +AHiaAADKAQAADgAAAHyaAAAKAAAATgAAAICaAABKAAAAjgAAAISaAACKAAAAXgEAAIia +AAC6AQAAngEAAIyaAAD6AQAA3gEAAJCaAAA6AAAACQAAAJSaAAB6AAAASQAAAJiaAACG +AQAAiQAAAJyaAADGAQAAeQEAAKCaAAAGAAAAuQEAAKSaAABGAAAA+QEAAKiaAACGAAAA +OQAAAKyaAADGAAAAeQAAALCaAADGAAAAuQAAALSaAADGAAAAvQEAALiaAADGAAAA/QEA +ALyaAADGAAAAPQAAAMCaAADGAAAAfQAAAMSaAADGAAAAvQAAAMiaAADGAAAA/QAAAMya +AADGAAAA/QAAANCaAADGAAAA/QAAANSaAADGAAAA/QAAANiaAADGAAAA/QAAANyaAADG +AAAA/QAAAOCaAADGAAAA/QAAAOSaAADGAAAA/QAAAOiaAADGAAAA/QAAAOyaAADGAAAA +/QAAAPCaAADGAAAA/QAAAPSaAADGAAAA/QAAAPiaAADGAAAA/QAAAPyaAADGAAAA/QAA +AAEAAABGAAAAYAAAAAEAAABGAAAAYQAAAAEAAABGAAAAYgAAAAEAAABGAAAAYwAAAAEA +AABGAAAAZAAAAAEAAABGAAAAZQAAAAEAAABGAAAAZgAAAAEAAABGAAAAZwAAAAEAAABG +AAAAaAAAAAEAAABGAAAAaQAAAAEAAABGAAAAagAAAAEAAABGAAAAawAAAAEAAABGAAAA +bAAAAAEAAABGAAAAdAAAAAEAAABGAAAAdAAAAAEAAABGAAAAdAAAAAEAAABGAAAAdAAA +AAEAAABGAAAAdAAAAAEAAABGAAAAdAAAAAEAAABGAAAAdAAAAAEAAABGAAAAdAAAAAEA +AABGAAAAdQAAAAEAAABGAAAAdgAAAAEAAABGAAAAdwAAAAEAAABGAAAAeAAAAAEAAABG +AAAAeQAAAAEAAABGAAAAegAAAAEAAABGAAAAewAAAAEAAABGAAAAfAAAAAEAAABGAAAA +fQAAAAEAAABGAAAAfgAAAAEAAABGAAAAfwAAAAEAAABGAAAAgAAAAAEAAABEAAAAfAAA +AAEAAABGAAAAiAAAAAEAAABGAAAAjAAAAAEAAABGAAAAkAAAAAEAAABGAAAAlAAAAAEA +AABGAAAAmAAAAAEAAABGAAAAnAAAAAEAAABGAAAAoAAAAAEAAABGAAAApAAAAAEAAABG +AAAAqAAAAAEAAABGAAAArAAAAAEAAABGAAAAsAAAAAEAAABGAAAAtAAAAAACBwAAAAMA +BgAJADwAAABjuwAAY7sAAI27AACNuwAAt7sAALe7AADhuwAA4bsAAAAAAAAAAAAACQAA +AAQAAAAEAAEAAQABAAYAAABGRzgAAAAAAAAAAAAAAAAABAAAAAEAAQAEAAAARkc3AAAA +AAAAAAAAAAAAAAMAAQABAAEAAwAAAEZHNgAAAAAAAAAAAAAAAAAEAAAAAAABAAEAAABG +RzUAAAAAAAAAAAAAAAAABAABAAEAAAAAAAAARkc0AAAAAAAAAAAAAAAAAAQAAAABAAAA +/v///0ZHMwAAAAAAAAAAAAAAAAADAAEAAQAAAP3///9GRzIAAAAAAAAAAAAAAAAABAAA +AAAAAAD8////RkcxAAAAAAAAAAAAAAAAAAIAAQABAAAA+v///0ZHMAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBBUGQApEQQAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsCY8JtAkICWwJtAnJ +////yf///8n////J////wv////L////y////8v////L////0////wP///8D////A//// +wP///7r///+y////sv///7L///+y////sP///y3iAADm4QAA8+EAAGziAAAM4gAAX+IA +AAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAEAAAABAAAAAAAAGAAAABgAAAAYAfO8AANDu +AAAO7wAAHe8AACTvAAAz7wAAfO8AAHzvAAB87wAAfO8AAHzvAAB87wAAfO8AAHzvAAB8 +7wAAfO8AAFrvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBAAAA/8LwAP/C8A +H/wvAA/8LwAP/C8ARBAAAA/8LwAP/C8AH/wvAA/8LwAP/C8ASBAAAA/8LwAP/C8AH/wv +AA/8LwAP/C8ATBAAAA/8LwAP/C8AH/wvAA/8LwAP/C8AUBAAAA/8LwAP/C8AH/wvAA/8 +LwAP/C8AVBAAAA/8LwAP/C8AH/wvAA/8LwAP/C8AWBAAAA/8LwAP/C8AH/wvAA/8LwAP +/C8AXBAAAA/8LwAP/C8AH/wvAA/8LwAP/C8AYBAAAA/8LwAP/C8AH/wvAA/8LwAP/C8A +ZBAAAA/8LwAP/C8AH/wvAA/8LwAP/C8AMBAAADACAADgAQAAsAAAAGABAADgAQAAcBAA +AGgBAADgAQAAuAEAAIwBAADgAQAAsBAAAGAOAACAEQAAHB8AADg+AACAEQAA8BAAAOCg +AABoQAEAgFgAAOCwAABoQAEAFIAAAOgD6APgBuAGIAQgBEAIQAjgBuAGBJgAAAAAAAAD +AAAAAAAAAAAAAAADAAAAIJgAAAACAgIAAgICAAIBAgACAgIAAgICJJgAAA4OAAAODgAA +BwcAAA4OAAAODgAARJgAABwWchMlHHITKBdyE6IWchMlHHITYJgAABCdAAAQnQAAGJ0A +ABidAAAQnQAAZJgAAADOAQAAzgEAAM4BAADOAQAAzgEAaJgAAJBBmkCQQZpAkEGaQJBB +mkCQQZpAGJkAALgBAAC4AQAAhAAAAAgBAAC4AQAAJJkAAAWKBRAFigUQBYoFEAWKBRAF +igUQMKIAAAAAAAAAAAAAAAAAAAgBAAAAAAAAAAAAAAAAAAAMAAAAAAAAADQAAAAFAAAA +QAAAAAAAAABEAAAACAAAAEgAAAAIAAAATAAAABAAAABQAAAAAAAAAFQAAAAfAAAAAAgA +AAAAAAAECAAAAAAAAAgIAAAAAAAADAgAAAAAAAAQCAAAAAAAABQIAAAAAAAAGAgAAAAA +AAAcCAAAAAAAACAIAAAAAAAAJAgAAAAAAABwEgAAAAAAADgQAAAAAAAAeBAAAAAAAAC4 +EAAAAAAAAPgQAAAAAAAAOBEAAAAAAAB4EQAAAAAAALgRAAAAAAAA+BEAAAAAAAA4EgAA +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 +AAAkmwAANAAAACybAAAsAAAAMJsAAAIAAAA0mwAAIgAAADybAAAyAAAAQJsAAAoAAABE +mwAAKgAAAEibAAAGAAAATJsAACYAAABQmwAAFgAAAFSbAAA2AAAAWJsAAA4AAABcmwAA +LgAAAGCbAAABAAAAaJsAABEAAABsmwAAMQAAAHCbAAAJAAAAdJsAACkAAAB4mwAABQAA +AHybAAAlAAAAgJsAABUAAACEmwAANQAAAIibAAANAAAAkJsAAAMAAACUmwAAIwAAAJib +AAATAAAAoJsAAAsAAACkmwAAKwAAAKibAAArAAAArJsAACsAAACwmwAAKwAAALSbAAAr +AAAAuJsAACsAAAC8mwAAKwAAAMCbAAArAAAAxJsAACsAAADImwAAKwAAAMybAAArAAAA +0JsAACsAAADUmwAAKwAAANibAAArAAAA3JsAACsAAADgmwAAKwAAAOSbAAArAAAA6JsA +ACsAAADsmwAAKwAAAPCbAAArAAAA9JsAACsAAAD4mwAAAgAAAPybAAAWAAAAAAAAAAAA +AAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyY +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAADgAAAA4AAAAOAAAADgAAAA4AJyYAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAA +AMAAAACAAAAAgAAAAJyYAAD5AAQA+QAEAP8ABAD9AAQA/QAEANSYAAAAAAAAAAAAAAQA +AAAEAAAABAAAAAAAAAAAAAAAAJoAAKkBAAAAAAAABJoAAOkBAABAAAAACJoAACkAAACA +AAAADJoAAGkAAABQAQAAEJoAAJkBAACQAQAAFJoAANkBAADQAQAAGJoAABkAAAAQAAAA +HJoAAFkAAABEAAAAIJoAAJkAAACEAAAAJJoAAKUBAABIAQAAKJoAAOUBAACIAQAALJoA +ACUAAADIAQAAMJoAAMgBAAAUAAAANJoAAAgAAABCAAAAOJoAAEgAAACCAAAAPJoAAIgA +AAB4AQAAQJoAAJgBAAC4AQAARJoAANgBAAD4AQAASJoAABgAAAASAAAATJoAAFgAAABS +AAAAUJoAAJgAAACSAAAAVJoAAKQBAAB8AQAAWJoAAOQBAAC8AQAAXJoAACQAAAD8AQAA +YJoAAGQAAAAKAAAAZJoAAKQAAABKAAAAaJoAAOQAAACKAAAAbJoAAAoBAABaAQAAcJoA +AEoBAACaAQAAdJoAAIoBAADaAQAAeJoAAMoBAAAOAAAAfJoAAAoAAABOAAAAgJoAAEoA +AACOAAAAhJoAAIoAAABeAQAAiJoAALoBAACeAQAAjJoAAPoBAADeAQAAkJoAADoAAAAJ +AAAAlJoAAHoAAABJAAAAmJoAAIYBAACJAAAAnJoAAMYBAAB5AQAAoJoAAAYAAAC5AQAA +pJoAAEYAAAD5AQAAqJoAAIYAAAA5AAAArJoAAMYAAAB5AAAAsJoAAMYAAAC5AAAAtJoA +AMYAAAC9AQAAuJoAAMYAAAD9AQAAvJoAAMYAAAA9AAAAwJoAAMYAAAB9AAAAxJoAAMYA +AAC9AAAAyJoAAMYAAAD9AAAAzJoAAMYAAAD9AAAA0JoAAMYAAAD9AAAA1JoAAMYAAAD9 +AAAA2JoAAMYAAAD9AAAA3JoAAMYAAAD9AAAA4JoAAMYAAAD9AAAA5JoAAMYAAAD9AAAA +6JoAAMYAAAD9AAAA7JoAAMYAAAD9AAAA8JoAAMYAAAD9AAAA9JoAAMYAAAD9AAAA+JoA +AMYAAAD9AAAA/JoAAMYAAAD9AAAA1JgAACAAAADUmAAAEAAAABQAAAAQAAAAEAAAABQA +AADYmAAAaBBgAGgQYABoEGAAaBBgAGgQYAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AJyYAAAAAAAQAAAAEAAAABAAAAAQAAAAEJyYAAAAAAAEAAAABAAAAAQAAAAEAAAABJyY +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAoAAAAAAAAAAJyYAADAADgA +gAA4AMAAOALAADgAwAA4AJyYAAAGAAIABgACAAYAAAAGAAIABgACAJyYAACJAAAAiQAA +AIkAAACJAAAAiQAAAJyYAACgAAAAoAAAAKAAAACgAAAAoAAAAJyYAAAHAAQABwAEAAcA +BAAHAAQABwAEANSYAAAaAAAAGgAAABoAAAAaAAAAGgAAAAAAAAAAAAAAnJgAAEAAAABI +AAAAQAAAAEAAAABAAAAAnJgAABAAAAAQAAAAEAAAABAAAAAQAAAAnJgAAAgAAAAIAAAA +CAAAAAgAAAAIAAAAnJgAAE8AAABPAAAATwAAAE8AAABPAAAAnJgAAPEAAADxAAAAYQAA +APEAAADxAAAAnJgAAE+QAABPkAAATJAAAE+QAABPkAAAnJgAAFoSAABaEgAAmhIAAFoS +AABaEgAAzJgAAA4AAAAOAAAADwAAAA4AAAAOAAAAAQAAAEYAAABgAAAAAQAAAEYAAABh +AAAAAQAAAEYAAABiAAAAAQAAAEYAAABjAAAAAQAAAEYAAABkAAAAAQAAAEYAAABlAAAA +AQAAAEYAAABmAAAAAQAAAEYAAABnAAAAAQAAAEYAAABoAAAAAQAAAEYAAABpAAAAAQAA +AEYAAABqAAAAAQAAAEYAAABrAAAAAQAAAEYAAABsAAAAAQAAAEYAAAB0AAAAAQAAAEYA +AAB0AAAAAQAAAEYAAAB0AAAAAQAAAEYAAAB0AAAAAQAAAEYAAAB0AAAAAQAAAEYAAAB0 +AAAAAQAAAEYAAAB0AAAAAQAAAEYAAAB0AAAAAQAAAEYAAAB1AAAAAQAAAEYAAAB2AAAA +AQAAAEYAAAB3AAAAAQAAAEYAAAB4AAAAAQAAAEYAAAB5AAAAAQAAAEYAAAB6AAAAAQAA +AEYAAAB7AAAAAQAAAEYAAAB8AAAAAQAAAEYAAAB9AAAAAQAAAEYAAAB+AAAAAQAAAEYA +AAB/AAAAAQAAAEYAAACAAAAAAQAAAEQAAAB8AAAAAQAAAEYAAACIAAAAAQAAAEYAAACM +AAAAAQAAAEYAAACQAAAAAQAAAEYAAACUAAAAAQAAAEYAAACYAAAAAQAAAEYAAACcAAAA +AQAAAEYAAACgAAAAAQAAAEYAAACkAAAAAQAAAEYAAACoAAAAAQAAAEYAAACsAAAAAQAA +AEYAAACwAAAAAQAAAEYAAAC0AAAAlToBAHg6AQB8OgEAgDoBAJA6AQCQOgEAhDoBAIg6 +AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAFYAAABWAAAAVgAAAFYAAABWAAAAc +gAAAp5ONEs8TiAmVE+AEqxPgEs8TiAkomAAAAQACCgEAAgoAAQIFAQACCgEAAgo0mAAA +Dg4AAA4OAAAODgAADg4AAA4OAAA4mAAABwAAAAcAAAALAAAACwAAAAsAAABImAAAbdoY +AG3aGAB1yhgAdcoYAHXKGABQmAAA4LToDeC06A3gtOgN4LToDeC06A1YmAAALg2Afi4N +gH4uDeh+Lg3ofi4NgH5cmAAAXmY3MV5mNzFeZjcxXmY3MV5mNzFsmAAAgbAMBYGwDAWB +sAwFgbAMBYGwDAUUmQAA0AcAANAHAABMBAAAmAgAANAHAABEmQAAIBC49yAQuPcQDbj3 +EBC49xAQuPcEogAAAAAAAAAAAAAIAAAACAAAAAgAAAAIogAAiGe+1ohnvtaIZz7QiGc+ +0IhnPtAMogAAQAEsZEABLGRgwUJkYMFCZGDBQmQcogAACoCDGAqAgxgKgHMYCoCDGAqA +gxgwEgAAAAAAACyYAAD+LwIAPJgAAAABAgBMmAAAPGGEEjCZAACCSAAAQJkAAAQAAAB0 +mQAAAAAAACiiAAC1AQAAPKIAAK+JyBMEmwAAAQAAAAibAAACAAAADJsAAAMAAAAQmwAA +BAAAABSbAAAFAAAAGJsAAAgAAAAcmwAACQAAACCbAAAKAAAAJJsAAAsAAAAsmwAADQAA +ADCbAAAQAAAANJsAABEAAAA8mwAAEwAAAECbAAAUAAAARJsAABUAAABImwAAGAAAAEyb +AAAZAAAAUJsAABoAAABUmwAAGwAAAFibAAAcAAAAXJsAAB0AAABgmwAAIAAAAGibAAAi +AAAAbJsAACMAAABwmwAAJAAAAHSbAAAlAAAAeJsAACgAAAB8mwAAKQAAAICbAAAqAAAA +hJsAACsAAACImwAALAAAAJCbAAAwAAAAlJsAADEAAACYmwAAMgAAAKCbAAA0AAAApJsA +ADUAAAComwAANQAAAKybAAA1AAAAsJsAADUAAAC0mwAANQAAALibAAA1AAAAvJsAADUA +AADAmwAANQAAAMSbAAA1AAAAyJsAADUAAADMmwAANQAAANCbAAA1AAAA1JsAADUAAADY +mwAANQAAANybAAA1AAAA4JsAADUAAADkmwAANQAAAOibAAA1AAAA7JsAADUAAADwmwAA +NQAAAPSbAAA1AAAA+JsAABAAAAD8mwAAGgAAAAAAAAAAAAAAAJoAAAcAAAAHAAAABJoA +AEcAAABHAAAACJoAAIcAAACHAAAADJoAAKABAACgAQAAEJoAAOABAADgAQAAFJoAACAA +AAAgAAAAGJoAAGAAAABgAAAAHJoAAKEBAAChAQAAIJoAAOEBAADhAQAAJJoAACEAAAAh +AAAAKJoAAGEAAABhAAAALJoAAGIBAABiAQAAMJoAAKIBAACiAQAANJoAAOIBAADiAQAA +OJoAACIAAAAiAAAAPJoAAGIAAABiAAAAQJoAAGMBAABjAQAARJoAAKMBAACjAQAASJoA +AOMBAADjAQAATJoAACMAAAAjAAAAUJoAAGMAAABjAAAAVJoAAIQBAACEAQAAWJoAAMQB +AADEAQAAXJoAAAQAAAAEAAAAYJoAAOoBAAALAAAAZJoAACoAAABLAAAAaJoAAGoAAACL +AAAAbJoAAKoAAACsAQAAcJoAAKsBAADsAQAAdJoAAOsBAAAsAAAAeJoAACsAAAASAAAA +fJoAAGsAAABSAAAAgJoAAKsAAACSAAAAhJoAAKwBAACTAQAAiJoAAOwBAADTAQAAjJoA +ACwAAAATAAAAkJoAADoAAABTAAAAlJoAAHoAAACTAAAAmJoAALoAAACUAQAAnJoAALsB +AADUAQAAoJoAAPsBAAAUAAAApJoAADsAAAA6AAAAqJoAAHsAAAB6AAAArJoAALsAAAC6 +AAAAsJoAALwBAAC7AQAAtJoAAPwBAAD7AQAAuJoAADwAAAA7AAAAvJoAAHwAAAB7AAAA +wJoAALwAAAC7AAAAxJoAAPwAAAC8AQAAyJoAAPwAAAD8AQAAzJoAAPwAAAA8AAAA0JoA +APwAAAB8AAAA1JoAAPwAAAC8AAAA2JoAAPwAAAD8AAAA3JoAAPwAAAD8AAAA4JoAAPwA +AAD8AAAA5JoAAPwAAAD8AAAA6JoAAPwAAAD8AAAA7JoAAPwAAAD8AAAA8JoAAPwAAAD8 +AAAA9JoAAPwAAAD8AAAA+JoAAPwAAAD8AAAA/JoAAPwAAAD8AAAA1JgAACAAAADQmAAA +CAQGAwgEBwMIBAYDCAQGAwgEBwPcmAAAwMCgAMDAoADAwOAAwMDgAMDA4AAAAAAAAAAA +AJyYAAAAAAAPAAAADwAAAA8AAAAPAAAAD5yYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyY +AAAAAIAAAACAAAAAgAAAAIAAAACAAJyYAAAAACoAAAAqAAAAKgAAACoAAAAqAJyYAAAA +AAEAAAABAAAAAQAAAAEAAAABAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAABgA +AAAYAAAAGAAAABgAAAAYAJyYAAAAAGAAAABgAAAAbgAAAG4AAABuAJyYAAAAAMcAAADH +AAAAxwAAAMcAAADHAJyYAAAAAEsAAABLAAAASwAAAEsAAABLAJyYAAAAAEgEAABIBAAA +SAQAAEgEAABIBJyYAAAAAEwAAABMAAAATAAAAEwAAABMAJyYAAAAAOQAAADkAAAA5AAA +AOQAAADkAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAPwAAAD8AAAA/AAAAPwA +AAD8AJyYAAAAAP8AAAD/AAAA/wAAAP8AAAD/AJyYAAAAAD8EAAA/BAAAPwQAAD8EAAA/ +BJyYAAAAAAwAAAAMAAAADAAAAAwAAAAMAJyYAAAAABkCAAAZAgAAGQIAABkCAAAZApyY +AAAAACQAAAAkAAAAJAAAACQAAAAkAJyYAAAAALQAAAC0AAAAtAAAALQAAAC0AJyYAAAA +AJkAAACZAAAAmQAAAJkAAACZAJyYAAAAAFAAAABQAAAAUAAAAFAAAABQAJyYAAAAACoA +AAAqAAAAKgAAACoAAAAqAJyYAAAAABIAAAASAAAAEgAAABIAAAASAJyYAAAAADLAAAAy +wAAAMsAAADLAAAAywJyYAAAAAHQBAAB0AQAAdAEAAHQBAAB0AZyYAAAAABEAAAARAAAA +EQAAABEAAAARAJyYAAAAACiGAAAohgAAKIYAACiGAAAohpyYAAAAAIQxAACEMQAAhDEA +AIQxAACEMZyYAACAAPIAgADyAIAA8gCAAPIAgADyAJyYAAAZACcAGQAnABkAJwAZACcA +GQAnAJyYAAADAAAAAwAAAAMAAAADAAAAAwAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AJyYAACyAAAAsgAAALIAAACyAAAAsgAAAJyYAACEILAAhCCwAIQgsACEILAAhCCwAJyY +AACkJUEApCVBAKQlQQCkJUEApCVBAJyYAAAgkhEAIJIRACCSEQAgkhEAIJIRAJyYAAAA +SBoAAEgaAABIGgAASBoAAEgaANiYAAAwAgsAMAILADACCwAwAgsAMAILAJyYAACUAAAA +lAAAAJQAAACUAAAAlAAAAJyYAACRAAAAkQAAAJEAAACRAAAAkQAAAJyYAAASAAAAEgAA +ABIAAAASAAAAEgAAAJyYAACAAAAAgAAAAIAAAACAAAAAgAAAAJyYAADZAAAA2QAAANkA +AADZAAAA2QAAAJyYAABgAAAAYAAAAGAAAABgAAAAYAAAAJyYAADwAAAA8AAAAPAAAADw +AAAA8AAAAJyYAACiAAAAogAAAKIAAACiAAAAogAAAJyYAABSAAAAUgAAAFIAAABSAAAA +UgAAAJyYAADUAAAA1AAAANQAAADUAAAA1AAAAJyYAADMFAAAzBQAAMwUAADMFAAAzBQA +AJyYAACMBAAAjAQAAIwEAACMBAAAjAQAAMSYAAADAAAAAwAAAAMAAAADAAAAAwAAAOhK +AQDtSgEA1EoBANhKAQDoSgEA6EoBANxKAQDgSgEAAAAAAAAAAAAwAAAAFQAAABUAAAAV +AAAAFQAAABUAAAAcgAAAp5ONEs8TiAmVE+AEqxPgEs8TiAkomAAAAQACCgEAAgoAAAIF +AQACCgEAAgo0mAAAAA4AAAAOAAAADgAAAA4AAAAOAAA4mAAAAgAAAAIAAAAKAAAACgAA +AAoAAABImAAAbdoYAG3aGABkahoAZGoaAGRqGgBQmAAA4LToDeC06A3asOgN2rCYDNqw +6A1YmAAALg2Afi4NgH4uDeh+Lg3Ifi4NgH5cmAAAXmY3MV5mNzFeZjcxXmA5MV5mNzFs +mAAAgbAMBYGwDAWBsAwFgbAMBYGwDAUUmQAA0AcAANAHAABMBAAAmAgAANAHAABEmQAA +ABC49wAQuPcADbj3ABC49wAQuPcEogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIogAAiGe+ +1ohnvtaIZz7QiGc+0IhnPtAMogAAQAEsAEABLABAwUIAQMFCAEDBQgAcogAACoCDGAqA +gxgKgGMYCoCDGAqAgxgwEgAA4AMAAGCAAAAPAAAAGIEAAAAAAAAcgQAAAAAAACCBAAAA +AAAAJIEAAAAAAAAogQAAAAAAACyBAAAAAAAAMIEAAAAAAAA0gQAAAAAAADiBAAAAAAAA +PIEAAAAAAABAgQAAqAAAgESBAAAAAAAALJgAAACgAAA8mAAAAAQgAEyYAAA8I4QScJgA +AB8AAAB0mAAAgAAAAHiYAAAOAAAAgJkAAAAAAACEmQAAAACAAqCZAAAAAAAA4JkAAAAA +AADkmQAAqqqqquiZAAB4ZEY87JkAAKoAAADwmQAADAAAAPSZAAD/AAAA+JkAABQAAAAo +ogAAtQkAADyiAACviciTTKIAAAEAAABQogAAAKAAAFSiAAAAAAAAWKIAAIBTxwxcogAA +AQ8PD2CiAAABD2lfZKIAABGKQQBoogAAAAAAAGyiAABqwTAMcKIAACAIggB0ogAAqnwb +AHiiAADOOeccfKIAAM4BFwUAowAAAAABGASjAAACJgMwCKMAAAY+B0gMowAACkwLVhCj +AAAPYBpkFKMAABtuT3gYowAAWnyPhhyjAABbhs+OIKMAAA+XT50kowAAj6HPpSijAAAf +r1+1LKMAAJ+5370wowAAP8d/zTSjAAC/0f/VOKMAAAAAAAA8owAAAAAAAECjAAAAAAAA +RKMAAAAAAABIowAA////P0yjAAD///8/UKMAAP///z9UowAA//8DAFijAAAfqqh5XKMA +AA9CbAZgowAAByIoD2SjAACFFmAXaKMAAAQRgB9sowAAAwygN3CjAACDCMQ/dKMAAAMI +wFd4owAAggbYX3yjAACCBOB/gKMAALp7PH+EowAA8H8w8wSbAAABAAAACJsAAAIAAAAM +mwAAAwAAABCbAAAEAAAAFJsAAAUAAAAYmwAACAAAABybAAAJAAAAIJsAAAoAAAAkmwAA +CwAAACybAAANAAAAMJsAABAAAAA0mwAAEQAAADybAAATAAAAQJsAABQAAABEmwAAFQAA +AEibAAAYAAAATJsAABkAAABQmwAAGgAAAFSbAAAbAAAAWJsAABwAAABcmwAAHQAAAGCb +AAAgAAAAaJsAACIAAABsmwAAIwAAAHCbAAAkAAAAdJsAACUAAAB4mwAAKAAAAHybAAAp +AAAAgJsAACoAAACEmwAAKwAAAIibAAAsAAAAkJsAADAAAACUmwAAMQAAAJibAAAyAAAA +oJsAADQAAACkmwAANQAAAKibAAA1AAAArJsAADUAAACwmwAANQAAALSbAAA1AAAAuJsA +ADUAAAC8mwAANQAAAMCbAAA1AAAAxJsAADUAAADImwAANQAAAMybAAA1AAAA0JsAADUA +AADUmwAANQAAANibAAA1AAAA3JsAADUAAADgmwAANQAAAOSbAAA1AAAA6JsAADUAAADs +mwAANQAAAPCbAAA1AAAA9JsAADUAAAD4mwAAEAAAAPybAAAaAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAJoAAAAAAAAAAAAABJoAAAAAAABAAAAACJoAAAAAAACAAAAADJoA +AAAAAACBAQAAEJoAAAAAAADBAQAAFJoAAAAAAAABAAAAGJoAAAAAAABBAAAAHJoAAAAA +AACBAAAAIJoAAAAAAABoAQAAJJoAAAAAAACoAQAAKJoAAAAAAADoAQAALJoAAAAAAAAo +AAAAMJoAAAAAAABoAAAANJoAAAAAAACJAQAAOJoAAAAAAADJAQAAPJoAAAAAAAAJAAAA +QJoAAAAAAABJAAAARJoAAAAAAACJAAAASJoAAAAAAACQAQAATJoAAAAAAADQAQAAUJoA +AAAAAAAQAAAAVJoAAAAAAABQAAAAWJoAAAAAAACQAAAAXJoAAAAAAACRAQAAYJoAAAAA +AADRAQAAZJoAAAAAAAARAAAAaJoAAAAAAABRAAAAbJoAAAAAAACRAAAAcJoAAAAAAAB4 +AQAAdJoAAAAAAAC4AQAAeJoAAAAAAAD4AQAAfJoAAAAAAAA4AAAAgJoAAAAAAAB4AAAA +hJoAAAAAAACZAQAAiJoAAAAAAADZAQAAjJoAAAAAAAAZAAAAkJoAAAAAAABZAAAAlJoA +AAAAAACZAAAAmJoAAAAAAADZAAAAnJoAAAAAAAD5AAAAoJoAAAAAAAD5AAAApJoAAAAA +AAD5AAAAqJoAAAAAAAD5AAAArJoAAAAAAAD5AAAAsJoAAAAAAAD5AAAAtJoAAAAAAAD5 +AAAAuJoAAAAAAAD5AAAAvJoAAAAAAAD5AAAAwJoAAAAAAAD5AAAAxJoAAAAAAAD5AAAA +yJoAAAAAAAD5AAAAzJoAAAAAAAD5AAAA0JoAAAAAAAD5AAAA1JoAAAAAAAD5AAAA2JoA +AAAAAAD5AAAA3JoAAAAAAAD5AAAA4JoAAAAAAAD5AAAA5JoAAAAAAAD5AAAA6JoAAAAA +AAD5AAAA7JoAAAAAAAD5AAAA8JoAAAAAAAD5AAAA9JoAAAAAAAD5AAAA+JoAAAAAAAD5 +AAAA/JoAAAAAAAD5AAAA1JgAACAAAADQmAAACBQAAggUAQIIFAACCBQAAggUAQLcmAAA +wCCgAMAgoADAIOAAwCDgAMAg4AAAAAAAAAAAAJyYAAAAAADwAAAA8AAAAPAAAADwAAAA +8JyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAADAAAAAwAAAAMAAAADAAAAA5yY +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAJyYAAAAAEBAAABAQAAAQEAAAEBAAABAQJyYAAAAAAVlAAAF +ZQAABWUAAAVlAAAFZZyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAJyYAAAAAEIAAABCAAAAQgAAAEIAAABCAJyYAAAAALUAAAC1AAAAtQAA +ALUAAAC1AJyYAAAAAAMAAAADAAAAAwAAAAMAAAADAJyYAAAAAPcAAAD3AAAA9wAAAPcA +AAD3AJyYAAAAAJ0AAACdAAAAnQAAAJ0AAACdAJyYAAAAACIAAAAiAAAAIgAAACIAAAAi +AJyYAAAAACIEAAAiBAAAIgQAACIEAAAiBJyYAAAYACMAGAAjABgAIwAYACMAGAAjAJyY +AAAAACgAAAAoAGAAKABgACgAYAAoAJyYAADAAFAAwABQAMMAUADDAFAAwwBQAJyYAAB/ +AAQAfwAEAH8ABAB/AAQAfwAEAJyYAABYBAAAWAQAAFgEAABYBAAAWAQAAJyYAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAJyYAAAAwAAAAMAAAADAAAAAwAAAAMAAANiYAAAwAkAAMAJA +ADACQAAwAkAAMAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAZAAAAGQAAABk +AAAAZAAAAGQAAJyYAAAACAAAAAgAAAAIAAAACAAAAAgAAMyYAAAOAAAADgAAAA4AAAAO +AAAADgAAAPRiAQD5YgEA5GIBAOhiAQD0YgEA9GIBAOxiAQDwYgEAQVI1MjEwAEFSNTIx +MQBBUjUyMTIAUkY1MTExAFJGNTExMgBSRjI0MTMAQXRoZXJvcyAyMzEzIFdpU29DAEF0 +aGVyb3MgNTIxMiAoRlBHQSkAQXRoZXJvcyA1MjExIChGUEdBKQBBdGhlcm9zIDUyMTAA +QXRoZXJvcyA1MjExAEF0aGVyb3MgNTMxMiBXaVNvQwBBdGhlcm9zIDUyMTIAREIAREVC +VUcATkEATk9fQ09VTlRSWV9TRVQAQUwAQUxCQU5JQQBEWgBBTEdFUklBAEFSAEFSR0VO +VElOQQBBTQBBUk1FTklBAEFVAEFVU1RSQUxJQQBBVABBVVNUUklBAEFaAEFaRVJCQUlK +QU4AQkgAQkFIUkFJTgBCWQBCRUxBUlVTAEJFAEJFTEdJVU0AQloAQkVMSVpFAEJPAEJP +TFZJQQBCUgBCUkFaSUwAQk4AQlJVTkVJIERBUlVTU0FMQU0AQkcAQlVMR0FSSUEAQ0EA +Q0FOQURBAENMAENISUxFAENOAENISU5BAENPAENPTE9NQklBAENSAENPU1RBIFJJQ0EA +SFIAQ1JPQVRJQQBDWQBDWVBSVVMAQ1oAQ1pFQ0ggUkVQVUJMSUMAREsAREVOTUFSSwBE +TwBET01JTklDQU4gUkVQVUJMSUMARUMARUNVQURPUgBFRwBFR1lQVABTVgBFTCBTQUxW +QURPUgBFRQBFU1RPTklBAEZJAEZJTkxBTkQARlIARlJBTkNFAEYyAEZSQU5DRV9SRVMA +R0UAR0VPUkdJQQBERQBHRVJNQU5ZAEdSAEdSRUVDRQBHVABHVUFURU1BTEEASE4ASE9O +RFVSQVMASEsASE9ORyBLT05HAEhVAEhVTkdBUlkASVMASUNFTEFORABJTgBJTkRJQQBJ +RABJTkRPTkVTSUEASVIASVJBTgBJRQBJUkVMQU5EAElMAElTUkFFTABJVABJVEFMWQBK +UABKQVBBTgBKMQBKQVBBTjEASjIASkFQQU4yAEozAEpBUEFOMwBKNABKQVBBTjQASjUA +SkFQQU41AEpPAEpPUkRBTgBLWgBLQVpBS0hTVEFOAEtQAE5PUlRIIEtPUkVBAEtSAEtP +UkVBIFJFUFVCTElDAEsyAEtPUkVBIFJFUFVCTElDMgBLVwBLVVdBSVQATFYATEFUVklB +AExCAExFQkFOT04ATEkATElFQ0hURU5TVEVJTgBMVABMSVRIVUFOSUEATFUATFVYRU1C +T1VSRwBNTwBNQUNBVQBNSwBNQUNFRE9OSUEATVkATUFMQVlTSUEATVgATUVYSUNPAE1D +AE1PTkFDTwBNQQBNT1JPQ0NPAE5MAE5FVEhFUkxBTkRTAE5aAE5FVyBaRUFMQU5EAE5P +AE5PUldBWQBPTQBPTUFOAFBLAFBBS0lTVEFOAFBBAFBBTkFNQQBQRQBQRVJVAFBIAFBI +SUxJUFBJTkVTAFBMAFBPTEFORABQVABQT1JUVUdBTABQUgBQVUVSVE8gUklDTwBRQQBR +QVRBUgBSTwBST01BTklBAFJVAFJVU1NJQQBTQQBTQVVESSBBUkFCSUEAU0cAU0lOR0FQ +T1JFAFNLAFNMT1ZBSyBSRVBVQkxJQwBTSQBTTE9WRU5JQQBaQQBTT1VUSCBBRlJJQ0EA +RVMAU1BBSU4AU0UAU1dFREVOAENIAFNXSVRaRVJMQU5EAFNZAFNZUklBAFRXAFRBSVdB +TgBUSABUSEFJTEFORABUVABUUklOSURBRCAmIFRPQkFHTwBUTgBUVU5JU0lBAFRSAFRV +UktFWQBVQQBVS1JBSU5FAEFFAFVOSVRFRCBBUkFCIEVNSVJBVEVTAEdCAFVOSVRFRCBL +SU5HRE9NAFVTAFVOSVRFRCBTVEFURVMAVVkAVVJVR1VBWQBVWgBVWkJFS0lTVEFOAFZF +AFZFTkVaVUVMQQBWTgBWSUVUIE5BTQBZRQBZRU1FTgBaVwBaSU1CQUJXRQAlczogcGh5 +Q250MSAweCV4LCByZXNldHRpbmcgY291bnRlciB2YWx1ZSB0byAweCV4CgAAJXM6IHBo +eUNudDIgMHgleCwgcmVzZXR0aW5nIGNvdW50ZXIgdmFsdWUgdG8gMHgleAoAAAAAAAAw +LjkuMTQuOQAAAAAAAAAABwAAAA4AAAAVAAAAHAAAACMAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAJBOIExEAiBPsExEAHhSCFA8AghTmFBIAXhVdFhQAXRbBFhQAwRba +FhcAjBSgFLQUyBQ8FFAUZBR4FAAAMhRGFFoUbhQAAGwJhQmeCYoJqAkAAGwJhQmeCYoJ +AABsCYUJngmKCQAAbAmFCZ4JigkAAHEWhRaZFq0WwRYAAFoUghSqFAAAgBaoFgAAfBWQ +FaQVuBXMFeAV9BUIFhwWMBZEFgAAcQl2CXsJgAmPCZQJmQmjCQAAcQl2CXsJgAmPCZQJ +mQkAAHEJdgl7CYAJjwmUCZkJAABxCXYJewmACY8JlAmZCQAAtAkAAIUJAAA8FFAUZBR4 +FAAAAAABAAAAagAAAAEAAAB8AAAABAAAAIYAAAAEAAAAkgAAAAQAAACcAAAABAAAAKYA +AAABAAAAsAAAAAIAAAC8AAAAAgAAAMQAAAABAAAAygAAAAQAAADiAAAABAAAAPQAAAAE +AAAABAEAAAQAAAAUAQAABAAAACQBAAAgAAAAKAEAADIURhRaFG4UAABaFIIUqhSAFqgW +AAB8FZAVpBW4FcwV4BX0FQgWHBYwFkQWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AGAAAACoCQAAAQAAAKMJAAABAAAAtAkAAAEAAABnAAAAqAkAAAEAAACjCQAAAQAAALQJ +AAABAAAAYQAAAKgJAAABAAAAowkAAAEAAAC0CQAAAQAAAGUAAACoCQAAAQAAAKMJAAAB +AAAAtAkAAAEAAABKAAAAqAkAAAAAAACjCQAAAAAAALQJAAABAAAASwAAAKgJAAABAAAA +owkAAAEAAAC0CQAAAQAAAGoAAACoCQAAAQAAAKMJAAABAAAAtAkAAAEAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAQJwFwsAjAAAAAAAAQIoIw8AEgAAAAAAAQLgLgoAmAIAAAAAAQJQRg4AJAIA +AAAAAQLAXQkAsAQAAAAAAQKgjA0ASAQAAAAAAQKAuwgAYAQAAAAAAQLw0gwAbAQAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDcBcL +AIwAAAAAAAEDKCMPABIAAAAAAAED4C4KAJgCAAAAAAEDUEYOACQCAAAAAAEDwF0JALAE +AAAAAAEDoIwNAEgEAAAAAAEDgLsIAGAEAAAAAAED8NIMAGwEAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAnAXCwCMAAAAAAABAigj +DwASAAAAAAABAuAuCgCYAgAAAAABAlBGDgAkAgAAAAABAsBdCQCwBAAAAAABAqCMDQBI +BAAAAAABAoC7CABgBAAAAAABAvDSDABsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQNwFwsAjAAAAAAAAQMoIw8AEgAAAAAAAQPg +LgoAmAIAAAAAAQNQRg4AJAIAAAAAAQPAXQkAsAQAAAAAAQOgjA0ASAQAAAAAAQOAuwgA +YAQAAAAAAQPw0gwAbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAEA6AMLAIIAAAAAAAEA0AcKBIQBAAAAAAEAfBUJBIsBAAAAAAEA ++CoIBJYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAEogAAAAAAAAAAAAAIogAARkY+UEZGPlAMogAAbEGAZGxB +gGQQogAAA6CZAQOgmQEUogAAENZMBBDWTAQYogAAQACAE0AAgBMcogAAYADgG2AA4Bsg +ogAACoBTDAqAUwwkogAAO98UADvfFAAoogAAtQEAALUBAAAsogAAIAAAACAAAACcmAAA +AAAAAAAAAACcmAAAAAAAAAAAAACcmAAAAAAAAAAAAACcmAAAAAAAAAAAAACcmAAAAAAA +AAAAAACcmAAAAAAAAAAAAACcmAAAAAAAAAAAAACcmAAAAAAAAAAAAACcmAAAAAAAAAAA +AACcmAAAAAAAAAAAAACcmAAAAAAAAAAAAACcmAAAAAA4AAAAOACcmAAAAAAAAAAAAACc +mAAAAAAAAAAAAACcmAAAAAAAAAAAAACcmAAA+QAEAPkABADUmAAAAAAAAAQAAAAAAAAA +AAAAAAAAAAAAAAAAnJgAAAAAAAAAAAAAnJgAAAAAAAAAAAAAnJgAAAAAAAAAAAAAnJgA +AAAAAAAAAAAAnJgAAAAAAAAAAAAAnJgAAAAAABAAAAAQnJgAAAAAAAQAAAAEnJgAAAAA +AAAAAAAAnJgAAAAAAAAAAAAAnJgAAAAAAAAAAAAAnJgAAAAAAAAAAAAKnJgAAIAAOACA +ADgCnJgAAAYAAgAGAAAAnJgAAJIAAACSAAAAnJgAAKAAAACgAAAAnJgAAAcABAAHAAQA +1JgAABoAAAAaAAAAnJgAAEgAAABIAAAAnJgAABAAAAAQAAAAnJgAAAgAAAAIAAAAnJgA +AA8AAAAPAAAAnJgAAPIAAABiAAAAnJgAAE+QAABMkAAAnJgAAFoSAACaEgAAzJgAAA4A +AAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAABAnAXCwCMAAAAAAABAigjDwASAAAAAAABAuAuCgCYAgAAAAABAlBG +DgAkAgAAAAABAsBdCQCwBAAAAAABAqCMDQBIBAAAAAABAoC7CABgBAAAAAABAvDSDABs +BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AQNwFwsAjAAAAAAAAQMoIw8AEgAAAAAAAQPgLgoAmAIAAAAAAQNQRg4AJAIAAAAAAQPA +XQkAsAQAAAAAAQOgjA0ASAQAAAAAAQOAuwgAYAQAAAAAAQPw0gwAbAQAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA6AMbAIIAAAAA +AAEA0AcaBIQBAAAAAAEAfBUZBIsBAAAAAAEA+CoYBJYBAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAOgDGwACAAAAAAABANAHGgQEAQAA +AAABAHwVGQQLAgAAAAABAPgqGAQWAwAAAAAAAnAXCwAMBAAAAAAAAigjDwASBAAAAAAB +AuAuCgAYBgAAAAABAlBGDgAkBgAAAAABAsBdCQAwCAAAAAABAqCMDQBICAAAAAABAoC7 +CABgCAAAAAABAvDSDABsCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAQT0AQcAgQAAAAAAAQToAwIAiwEAAAAAAQTQBwYAlgIA +AAAAAQS4CwEAlgMAAAAAAQJwFwsAjAQAAAAAAQIoIw8AEgQAAAAAAQLgLgoAmAYAAAAA +AQJQRg4AJAYAAAAAAQLAXQkAsAgAAAAAAQKgjA0ASAgAAAAAAQKAuwgAYAgAAAAAAQLw +0gwAbAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHQ0M6IChHTlUpIDMuNC4yIFtGcmVlQlNEXSAy +MDA0MDcyOAAAR0NDOiAoR05VKSAzLjQuMiBbRnJlZUJTRF0gMjAwNDA3MjgAAEdDQzog +KEdOVSkgMy40LjIgW0ZyZWVCU0RdIDIwMDQwNzI4AABHQ0M6IChHTlUpIDMuNC4yIFtG +cmVlQlNEXSAyMDA0MDcyOAAAR0NDOiAoR05VKSAzLjQuMiBbRnJlZUJTRF0gMjAwNDA3 +MjgAAEdDQzogKEdOVSkgMy40LjIgW0ZyZWVCU0RdIDIwMDQwNzI4AABHQ0M6IChHTlUp +IDMuNC4yIFtGcmVlQlNEXSAyMDA0MDcyOAAAR0NDOiAoR05VKSAzLjQuMiBbRnJlZUJT +RF0gMjAwNDA3MjgAAEdDQzogKEdOVSkgMy40LjIgW0ZyZWVCU0RdIDIwMDQwNzI4AABH +Q0M6IChHTlUpIDMuNC4yIFtGcmVlQlNEXSAyMDA0MDcyOAAAR0NDOiAoR05VKSAzLjQu +MiBbRnJlZUJTRF0gMjAwNDA3MjgAAEdDQzogKEdOVSkgMy40LjIgW0ZyZWVCU0RdIDIw +MDQwNzI4AABHQ0M6IChHTlUpIDMuNC4yIFtGcmVlQlNEXSAyMDA0MDcyOAAAR0NDOiAo +R05VKSAzLjQuMiBbRnJlZUJTRF0gMjAwNDA3MjgAAEdDQzogKEdOVSkgMy40LjIgW0Zy +ZWVCU0RdIDIwMDQwNzI4AABHQ0M6IChHTlUpIDMuNC4yIFtGcmVlQlNEXSAyMDA0MDcy +OAAAR0NDOiAoR05VKSAzLjQuMiBbRnJlZUJTRF0gMjAwNDA3MjgAAEdDQzogKEdOVSkg +My40LjIgW0ZyZWVCU0RdIDIwMDQwNzI4AABHQ0M6IChHTlUpIDMuNC4yIFtGcmVlQlNE +XSAyMDA0MDcyOAAAR0NDOiAoR05VKSAzLjQuMiBbRnJlZUJTRF0gMjAwNDA3MjgAAEdD +QzogKEdOVSkgMy40LjIgW0ZyZWVCU0RdIDIwMDQwNzI4AABHQ0M6IChHTlUpIDMuNC4y +IFtGcmVlQlNEXSAyMDA0MDcyOAAAR0NDOiAoR05VKSAzLjQuMiBbRnJlZUJTRF0gMjAw +NDA3MjgAAEdDQzogKEdOVSkgMy40LjIgW0ZyZWVCU0RdIDIwMDQwNzI4AABHQ0M6IChH +TlUpIDMuNC4yIFtGcmVlQlNEXSAyMDA0MDcyOAAAR0NDOiAoR05VKSAzLjQuMiBbRnJl +ZUJTRF0gMjAwNDA3MjgAAEdDQzogKEdOVSkgMy40LjIgW0ZyZWVCU0RdIDIwMDQwNzI4 +AABHQ0M6IChHTlUpIDMuNC4yIFtGcmVlQlNEXSAyMDA0MDcyOAAAR0NDOiAoR05VKSAz +LjQuMiBbRnJlZUJTRF0gMjAwNDA3MjgAAEdDQzogKEdOVSkgMy40LjIgW0ZyZWVCU0Rd +IDIwMDQwNzI4AABHQ0M6IChHTlUpIDMuNC4yIFtGcmVlQlNEXSAyMDA0MDcyOAAAR0ND +OiAoR05VKSAzLjQuMiBbRnJlZUJTRF0gMjAwNDA3MjgAAEdDQzogKEdOVSkgMy40LjIg +W0ZyZWVCU0RdIDIwMDQwNzI4AABHQ0M6IChHTlUpIDMuNC4yIFtGcmVlQlNEXSAyMDA0 +MDcyOAAAR0NDOiAoR05VKSAzLjQuMiBbRnJlZUJTRF0gMjAwNDA3MjgAAEdDQzogKEdO +VSkgMy40LjIgW0ZyZWVCU0RdIDIwMDQwNzI4AABHQ0M6IChHTlUpIDMuNC4yIFtGcmVl +QlNEXSAyMDA0MDcyOAAAR0NDOiAoR05VKSAzLjQuMiBbRnJlZUJTRF0gMjAwNDA3MjgA +AEdDQzogKEdOVSkgMy40LjIgW0ZyZWVCU0RdIDIwMDQwNzI4AABHQ0M6IChHTlUpIDMu +NC4yIFtGcmVlQlNEXSAyMDA0MDcyOAAAR0NDOiAoR05VKSAzLjQuMiBbRnJlZUJTRF0g +MjAwNDA3MjgAAEdDQzogKEdOVSkgMy40LjIgW0ZyZWVCU0RdIDIwMDQwNzI4AABHQ0M6 +IChHTlUpIDMuNC4yIFtGcmVlQlNEXSAyMDA0MDcyOAAAR0NDOiAoR05VKSAzLjQuMiBb +RnJlZUJTRF0gMjAwNDA3MjgAAEdDQzogKEdOVSkgMy40LjIgW0ZyZWVCU0RdIDIwMDQw +NzI4AABHQ0M6IChHTlUpIDMuNC4yIFtGcmVlQlNEXSAyMDA0MDcyOAAAR0NDOiAoR05V +KSAzLjQuMiBbRnJlZUJTRF0gMjAwNDA3MjgAAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0 +YWIALnJlbC50ZXh0AC5yZWwucm9kYXRhAC5yb2RhdGEuc3RyMS4xAC5yb2RhdGEuc3Ry +MS40AC5yZWwuZGF0YQAuYnNzAC5jb21tZW50AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAB8AAAABAAAABgAAAAAAAAA0AAAAYmwBAAAAAAAAAAAA +BAAAAAAAAAAbAAAACQAAAAAAAAAAAAAAZDICAPAWAAAMAAAAAQAAAAQAAAAIAAAAKQAA +AAEAAAACAAAAAAAAAKBsAQAIdwAAAAAAAAAAAAAgAAAAAAAAACUAAAAJAAAAAAAAAAAA +AABUSQIAEBkAAAwAAAADAAAABAAAAAgAAAAxAAAAAQAAADIAAAAAAAAAqOMBAMwFAAAA +AAAAAAAAAAEAAAABAAAAQAAAAAEAAAAyAAAAAAAAAHTpAQBnAAAAAAAAAAAAAAAEAAAA +AQAAAFMAAAABAAAAAwAAAAAAAADg6QEA5BYAAAAAAAAAAAAAIAAAAAAAAABPAAAACQAA +AAAAAAAAAAAAZGICALAAAAAMAAAABwAAAAQAAAAIAAAAWQAAAAgAAAADAAAAAAAAAOAA +AgCwAQAAAAAAAAAAAAAgAAAAAAAAAF4AAAABAAAAAAAAAAAAAADgAAIAywYAAAAAAAAA +AAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAqwcCAGcAAAAAAAAAAAAAAAEAAAAAAAAA +AQAAAAIAAAAAAAAAAAAAAEQKAgCgFwAADQAAAAgAAAAEAAAAEAAAAAkAAAADAAAAAAAA +AAAAAADkIQIAgBAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAwABAAAAAAAAAAAAAAAAAAMAAwAAAAAAAAAAAAAAAAADAAUAAAAAAAAAAAAA +AAAAAwAGAAAAAAAAAAAAAAAAAAMABwAAAAAAAAAAAAAAAAADAAkAAAAAAAAAAAAAAAAA +AwAKAAEAAADQiQAAqAAAABIAAQAMAAAARHsAAAYAAAASAAEAFwAAAJDvAAC7AAAAEgAB +ACIAAABwYQAAdAAAABIAAQAtAAAA/OUAAI8AAAASAAEAOAAAAHRXAADbAAAAEgABAEMA +AACoMwEA5AAAABIAAQBOAAAA4AIAAKQBAAARAAcAWQAAADjzAAAjAAAAEgABAGQAAABo +WQAAMQAAABIAAQBvAAAAlE4AADwAAAASAAEAegAAAITsAAAlAAAAEgABAIUAAABU6QAA +EwAAABIAAQCQAAAA2N8AAAwAAAASAAEAmwAAAPjNAAC6AAAAEgABAKYAAAB81gAA5QAA +ABIAAQCxAAAAXAgAADwAAAASAAEAvAAAAITCAACWAAAAEgABAMcAAAA0rQAAiwAAABIA +AQDSAAAAHJsAAAsAAAASAAEA3QAAABh/AAAlAAAAEgABAOgAAAAg8gAABgAAABIAAQDz +AAAAjM0AAAYAAAASAAEA/gAAAEjeAAAXAAAAEgABAAkBAABY/gAAewAAABIAAQAUAQAA +DAYAAHUAAAASAAEAHwEAAAyNAAAGAAAAEgABACoBAADIJgEAdQAAABIAAQA1AQAACIIA +AAYAAAASAAEAQAEAACibAAAPAAAAEgABAEsBAABADgAApAEAABEABwBWAQAAPOsAAHQA +AAASAAEAYQEAAAyAAABuAAAAEgABAGwBAAC8AgAALAAAABIAAQB3AQAAuCgBAFgAAAAS +AAEAggEAAKirAAAhAAAAEgABAI0BAAAAAAAAAAAAABAAAACuAQAAiF4AAEEAAAASAAEA +uQEAAPTEAACWAAAAEgABAMQBAABYYAAAJAAAABIAAQDPAQAA6JIAAEgAAAASAAEA2gEA +AByWAAB4AAAAEgABAOUBAADIxQAAOQAAABIAAQDwAQAAEIIAAGEAAAASAAEA+wEAAMhd +AAAzAAAAEgABAAYCAACIewAAOQAAABIAAQARAgAAZJgAAEoAAAASAAEAHAIAALDrAAAg +AAAAEgABACcCAAC86gAAYAAAABIAAQAyAgAA6P4AADcAAAASAAEAPQIAALjOAABXAAAA +EgABAEgCAABgWQAABgAAABIAAQBTAgAA0OsAAHgAAAASAAEAXgIAAAhQAADIBQAAEgAB +AGkCAAAIlwAAHgEAABIAAQB0AgAAqOcAACYAAAASAAEAfwIAAGgCAABTAAAAEgABAIoC +AAAc6wAAIAAAABIAAQCVAgAAvBcBAAIBAAASAAEAoAIAABjyAAAGAAAAEgABAKsCAABg +3QAALAAAABIAAQC2AgAAnM8AAPEAAAASAAEAwQIAAABgAAAZAAAAEgABAMwCAABIjQAA +mwAAABIAAQDXAgAAvJEAAHsAAAASAAEA4gIAAKR6AAAhAAAAEgABAO0CAABMHAEAiAAA +ABIAAQD4AgAAhHAAAPIBAAASAAEAAwMAAKhiAAABAAAAEgABAA4DAADUHAEASAAAABIA +AQAZAwAA4HwAADUCAAASAAEAJAMAABgBAABQAQAAEgABADMDAACsCQEA5gIAABIAAQA+ +AwAAKPIAAIcAAAASAAEASQMAANyWAAARAAAAEgABAFQDAAAUGwEAOAEAABIAAQBfAwAA +4O0AAM4AAAASAAEAagMAALzyAAAPAAAAEgABAHUDAAAAlAAADgAAABIAAQCAAwAABMYA +AN8AAAASAAEAiwMAAIzFAAA5AAAAEgABAJYDAAAIpwAAUwAAABIAAQChAwAA0FUAABAA +AAASAAEArAMAABxgAAA7AAAAEgABALcDAADoAgAAKAEAABIAAQDNAwAAIAMBACEAAAAS +AAEA2AMAAHSCAACWAAAAEgABAOMDAABQYQAAIAAAABIAAQDuAwAA5IsAABYAAAASAAEA ++QMAANT+AAASAAAAEgABAAQEAACgswAAKgAAABIAAQAPBAAAnOEAAIIDAAASAAEAGgQA +ACjfAAALAAAAEgABACUEAAA4WgAAiAAAABIAAQAwBAAAxIoAADgAAAASAAEAOwQAANwq +AQA9AAAAEgABAEYEAAAY4AAA+AAAABIAAQBRBAAAwJYAAAEAAAASAAEAXAQAACBeAABl +AAAAEgABAGcEAAAwkQAAiwAAABIAAQByBAAAlMQAAF8AAAASAAEAfQQAAJDQAACnBQAA +EgABAIgEAABsGgEApgAAABIAAQCTBAAANOkAAAYAAAASAAEAngQAAECQAAAhAAAAEgAB +AKkEAADU8wAAVwAAABIAAQC0BAAAbCUBAPUAAAASAAEAvwQAAJicAABFAAAAEgABAMoE +AAA4XQAAKQAAABIAAQDVBAAASOwAACMAAAASAAEA4AQAADjWAABBAAAAEgABAOsEAAAM +zAAAHwAAABIAAQD2BAAAECkBAD4AAAASAAEAAQUAABDyAAAGAAAAEgABAAwFAAAAAAAA +AAAAABAAAAAZBQAAgHwAAGAAAAASAAEAJAUAABhnAABFAAAAEgABAC8FAACwKQEACwAA +ABIAAQA6BQAABOgAAHcAAAASAAEARQUAAGwEAADFAAAAEgABAFYFAABUHwEA8wMAABIA +AQBhBQAAfGAAAEQAAAASAAEAbAUAALCAAACPAAAAEgABAHcFAABo6QAAEQAAABIAAQCC +BQAAjDQBAHEAAAASAAEAjQUAAJBmAABXAAAAEgABAJgFAAAUjQAAMQAAABIAAQCjBQAA +FKkAACABAAASAAEArgUAAMh6AAB5AAAAEgABALkFAAAAEAAApAEAABEABwDEBQAArPQA +ADgAAAASAAEAzwUAAEzwAAAsAAAAEgABANoFAAB4igAASgAAABIAAQDlBQAA4JwAAOUA +AAASAAEA8AUAAKzsAAA0AQAAEgABAPsFAAAMlQAAXAAAABIAAQAGBgAAyJYAABMAAAAS +AAEAEQYAALDuAADgAAAAEgABABwGAABkHQEAAQEAABIAAQAnBgAAHCsBAFQEAAASAAEA +MgYAACiYAAA6AAAAEgABAD0GAADEWAAACwAAABIAAQBIBgAA/IoAAOgAAAASAAEAUwYA +ABzbAABKAAAAEgABAF4GAADs5gAAJwAAABIAAQBpBgAAMGMAACQAAAASAAEAdAYAAMBr +AQCiAAAAEgABAH8GAAC46AAAOAAAABIAAQCKBgAAwBEAAKQBAAARAAcAlQYAAIzMAABl +AAAAEgABAKAGAAA4mwAADwAAABIAAQCrBgAAYGcAAC0BAAASAAEAtgYAADzlAAAhAAAA +EgABAMEGAAAU5wAAlAAAABIAAQDMBgAA1FYAAGgAAAASAAEA1wYAAMgpAQATAQAAEgAB +AOIGAAAwbwAAFAAAABIAAQDtBgAAeGUAAA8AAAASAAEA+AYAABxfAACqAAAAEgABAAMH +AAD4ZgAAHQAAABIAAQAOBwAAjOYAAF8AAAASAAEAGQcAALAAAQDxAQAAEgABACQHAAD0 +zAAABgAAABIAAQAvBwAA4CMBAFsAAAASAAEAOgcAAARlAAAjAAAAEgABAEUHAABgBgAA +pAEAABEABwBQBwAAwFoAAIwBAAASAAEAWwcAAEx7AAA5AAAAEgABAGYHAADoZgAADgAA +ABIAAQBxBwAAAAAAAAAAAAAQAAAAkQcAAJBoAAAwBgAAEgABAJwHAAAAAAAACQAAABEA +BwCsBwAANAUAAHUAAAASAAEAvQcAADiSAAAqAAAAEgABAMgHAABk1wAAUgAAABIAAQDT +BwAA4OcAACIAAAASAAEA3gcAAKxiAAABAAAAEgABAOkHAAC4lgAABgAAABIAAQD0BwAA +nJoAAAsAAAASAAEA/wcAAOSNAACIAAAAEgABAAoIAACU6QAAHgEAABIAAQAVCAAA3GQA +AAYAAAASAAEAIAgAAAAAAAAAAAAAEAAAAC8IAACQkgAAMwAAABIAAQA6CAAA/PEAABQA +AAASAAEARQgAAOTxAAAWAAAAEgABAFAIAABo2wAAOAAAABIAAQBbCAAAwG4AAG4AAAAS +AAEAZggAAIiVAAB0AAAAEgABAHEIAAA86QAAFwAAABIAAQB8CAAANN8AAKIAAAASAAEA +hwgAAGzsAAAXAAAAEgABAJIIAADYkwAAJgAAABIAAQCdCAAAVPQAAFYAAAASAAEAqAgA +ACAyAQCFAQAAEgABALMIAABsjgAAuAEAABIAAQC+CAAAAGYAABcAAAASAAEAyQgAAMCQ +AABAAAAAEgABANQIAACsdAAAHwAAABIAAQDfCAAAfPMAAFcAAAASAAEA6ggAAGSSAAAs +AAAAEgABAPUIAABYkwAAgAAAABIAAQAACQAAyF8AACYAAAASAAEACwkAAGAjAQAfAAAA +EgABABYJAAAAAAAAAAAAABAAAAAlCQAAaFwAACEAAAASAAEAMAkAAKDlAABZAAAAEgAB +ADsJAAAgCAAApAEAABEABwBGCQAAdJwAAA4AAAASAAEAUQkAAPyLAABgAAAAEgABAFwJ +AADkAAAAMwAAABIAAQBqCQAAJF0AABIAAAASAAEAdQkAAKAEAACkAQAAEQAHAIAJAAAc +nAAAVwAAABIAAQCLCQAAXIwAAAsAAAASAAEAlgkAAAwAAAAcAAAAEQAHAKgJAADMXgAA +HAAAABIAAQCzCQAA5N8AADQAAAASAAEAvgkAAFhkAAB4AAAAEgABAMkJAAAwNgEADAIA +ABIAAQDUCQAA0GQAAAsAAAASAAEA3wkAAAjzAAAtAAAAEgABAOoJAACYSQAAmQAAABIA +AQD1CQAASCMBABYAAAASAAEAAAoAAMSbAABXAAAAEgABAAsKAACUlgAAIwAAABIAAQAW +CgAA3PIAACkAAAASAAEAIQoAACzMAAAeAAAAEgABACwKAAAcHQEASAAAABIAAQA3CgAA +/JUAACAAAAASAAEAQgoAAECBAAAGAAAAEgABAE0KAADECAEAsQAAABIAAQBYCgAAaIwA +AKIAAAASAAEAYwoAAJTNAABhAAAAEgABAG4KAADgCQAApAEAABEABwB5CgAA6GUAABcA +AAASAAEAhAoAALwpAQAKAAAAEgABAI8KAABoWAAAXAAAABIAAQCaCgAAKGUAAEMAAAAS +AAEApQoAAMTHAAAtBAAAEgABALAKAADkYgAASgAAABIAAQC7CgAAsJoAAAYAAAASAAEA +xgoAAKDbAAA4AQAAEgABANEKAACEnAAAEgAAABIAAQDcCgAAsEsAADcAAAASAAEA5woA +AOTdAABiAAAAEgABAPIKAACYCgAAbwAAABIAAQD9CgAAqJoAAAYAAAASAAEACAsAABAH +AABLAQAAEgABABMLAAA03QAAKgAAABIAAQAeCwAABGIAAHgAAAASAAEAKQsAAGxlAAAL +AAAAEgABADQLAADklAAAKAAAABIAAQA/CwAAIBYBAHYAAAASAAEASgsAAJxdAAAsAAAA +EgABAFULAAB4CQEANAAAABIAAQBgCwAAEAQAAFsAAAASAAEAawsAAGDlAABAAAAAEgAB +AHYLAAAAAAAAAAAAABAAAACGCwAAzLMAAIQBAAASAAEAkQsAAFBYAAAWAAAAEgABAJwL +AABkJgEAYgAAABIAAQCnCwAA/F0AACQAAAASAAEAsgsAABDhAACMAAAAEgABAL0LAACg +lAAARAAAABIAAQDICwAA/MwAAI4AAAASAAEA0wsAAAAAAAAAAAAAEAAAAPMLAACEBgAA +igAAABIAAQD+CwAAjFwAAE0AAAASAAEACQwAANxcAABAAAAAEgABABQMAAAAkQAALwAA +ABIAAQAfDAAAnFkAAJsAAAASAAEAKgwAADCTAAAnAAAAEgABADUMAAC41wAAoQIAABIA +AQBADAAA8JYAABUAAAASAAEASwwAAOT0AAARAQAAEgABAFYMAABMXAAAHAAAABIAAQBh +DAAAAAAAAAAAAAAQAAAAbwwAACSQAAAcAAAAEgABAHoMAAD8CAAAUwAAABIAAQCFDAAA +sGIAADIAAAASAAEAkAwAAKSbAAAfAAAAEgABAJsMAACwmAAALAAAABIAAQCmDAAAvG8A +AMgAAAASAAEAsQwAABhmAAAfAAAAEgABALwMAADoXgAANAAAABIAAQDHDAAAIOUAABwA +AAASAAEA0gwAAMzyAAAPAAAAEgABAN0MAADEkgAAJAAAABIAAQDoDAAAwN0AACQAAAAS +AAEA8wwAALgEAQALBAAAEgABAP4MAADAYAAALgAAABIAAQAJDQAA8F8AAA4AAAASAAEA +FA0AAMCaAABbAAAAEgABAB8NAAA8JAEALQEAABIAAQAqDQAAEJQAABkAAAASAAEANQ0A +AEiBAADAAAAAEgABAEANAABkkAAAWQAAABIAAQBLDQAAxJYAAAEAAAASAAEAVg0AAMR7 +AAC7AAAAEgABAGENAACAEwAApAEAABEABwBsDQAAPFcAADgAAAASAAEAdw0AANBYAACO +AAAAEgABAIINAACM3QAAMwAAABIAAQCNDQAAnCgBABsAAAASAAEAmA0AALTqAAAGAAAA +EgABAKMNAABolAAAOAAAABIAAQCuDQAAuJoAAAYAAAASAAEAuQ0AAGAVAQDAAAAAEgAB +AMQNAAAQmgAAjAAAABIAAQDPDQAAyJ0AACsJAAASAAEA2g0AAEAVAACkAQAAEQAHAOUN +AABkXQAANQAAABIAAQDwDQAArAUAAF0AAAASAAEA+w0AAEAnAQBaAQAAEgABAAYOAADc +HgEAdgAAABIAAQARDgAA5GQAAB4AAAASAAEAHA4AAIhlAAAPAAAAEgABACcOAABolQAA +IAAAABIAAQAyDgAAsPIAAAsAAAASAAEAPQ4AAJhlAABNAAAAEgABAEgOAADkYQAAIAAA +ABIAAQBTDgAA5IcAABAAAAASAAEAXg4AAFAJAABHAQAAEgABAGkOAAC0zgAAAQAAABIA +AQB0DgAAQH8AAEoAAAASAAEAfw4AAHSbAAAXAAAAEgABAIoOAACgYgAABgAAABIAAQCV +DgAAWMcAAGsAAAASAAEAoA4AAFzzAAAfAAAAEgABAKsOAAAARwEAogAAABIAAQC2DgAA +fGIAACMAAAASAAEAwQ4AAFhPAABAAAAAEgABAMwOAAC0RQAA4gMAABIAAQDiDgAALPQA +ACcAAAASAAEA7Q4AADhmAABXAAAAEgABAPgOAAD49QAAXggAABIAAQADDwAAYN4AAMYA +AAASAAEADg8AAEzMAAA9AAAAEgABABkPAACMmwAAFwAAABIAAQAkDwAAjH8AAH0AAAAS +AAEALw8AAGg4AAB8AAAAEgABADoPAABEbwAAdwAAABIAAQBFDwAASJsAACkAAAASAAEA +UA8AAPSmAAASAAAAEgABAFsPAAA8VgAAlgAAABIAAQBmDwAADIMAAAEAAAASAAEAcQ8A +APBgAABgAAAAEgABAHwPAACYwQAAPwAAABIAAQCHDwAAcPEAAHQAAAASAAEAkg8AAPDo +AABEAAAAEgABAJ0PAAAslAAAOwAAABIAAQCoDwAAaIMAAHoEAAASAAEAsw8AAHB3AAC5 +AgAAEgABAL4PAAB86QAAFQAAABIAAQDJDwAA9MsAABYAAAASAAEA1A8AAHRcAQCqAAAA +EgABAN8PAACwTAAAkAAAABIAAQDqDwAAfOgAADsAAAASAAEA9Q8AANjcAABZAAAAEgAB +AAAQAAAg/wAAjgEAABIAAQALEAAAgCMBAB4AAAASAAEAFhAAAFzaAAC+AAAAEgABACEQ +AAAAAAAAAAAAABAAAAAwEAAAHF0AAAYAAAASAAEAOxAAAHyAAAAzAAAAEgABAEYQAADQ +5wAADgAAABIAAQBREAAAXKcAALgBAAASAAEAXBAAANBOAACGAAAAEgABAHUQAACgIwEA +PQAAABIAAQAAenowMDViNTg0NgB6ejAwMmRiMTFjAHp6MDJkYmY4NzUAenowMmRiYjFi +MgB6ejAwMmRiNDYwAHp6MGI3YjgzNjgAenowNWI4YzY1YQB6ejAwNWI0MGFkAHp6MDVi +OTQyZWQAenowZDk0Y2QwNAB6ejAwMTlmNDcwAHp6MDJkYmU3M2QAenowMDViNjkyYgB6 +ejBiNmQyMzI1AHp6MDA1Yjg1M2QAenowMDE2ZDkyZQB6ejBjZmIxODc1AHp6MDAyZGIz +MWMAenowMmRhYmJhYwB6ejAwMGI2YzY4AHp6MDAwYjZiZjgAenowMmRiNWJmMAB6ejAx +NmUxZGZkAHp6MGI3MGU5OGMAenowNmUwZjZjMgB6ejAwNjdkMmIxAHp6MGI2Y2EzMjUA +enowMDViNmNmZAB6ejAxNmUwZGZkAHp6MDAwYjZmNjgAenowMDViNDhhZAB6ejAyZGJm +MWIyAHp6MDA1Yjg4Y2IAenowMzNlYzhiZgB6ejBkYjRjOTRkAHp6MDJkYjNiYWMAYXRo +X2hhbF9kbWFfYmVhY29uX3Jlc3BvbnNlX3RpbWUAenowMGI2ZjE2MQB6ejBkYzU4NzE4 +AHp6MGRiMDkxMGUAenowMGI2ZTI3YQB6ejAyZGJiYWIyAHp6MGI2ZDFlZmYAenowMDVi +NjRmZAB6ejAwMGI2ZDUyAHp6MGI2YzllZmYAenowMmRiZDg3NQB6ejAyZGIzMWIyAHp6 +MDBiNzA5MjMAenowMDBiNmQxZAB6ejAwYjZkNDUwAHp6MGI2YzIzMjUAenowMmRiZGFi +MgB6ejAwMDViNjMyAHp6MDZkZjJmNTcAenowMDE2ZGE1MAB6ejAwMDY3ZDMyAHp6MDBi +NmQ5MjMAenowMDJkYjUxYwB6ejAxNmRhN2YwAHp6MDE2ZGNiZmUAenowMDE2ZGVjMQB6 +ejAwMTZkZjJjAHp6MGI4MTQ2MTIAenowMTZkOTkyMAB6ejAyZGIxYmFjAHp6MGRjNzg3 +MTgAenowNWI3MDFlMAB6ejAwMGI2YjEwAHp6MGI3MDllZmYAenowMTZkZjg5YgBhdGhf +aGFsX2F0dGFjaAB6ejA2ZTE0ZGQxAHp6MDE2ZGFiMmQAenowMmRiMTM1ZAB6ejBlMGI2 +ZjIzAHp6MDE2ZTI5MWQAenowMDBiNmZlOAB6ejAwMTZkOTQ4AHp6MDE2ZTIwOWIAenow +YjcwMWVmZgB6ejAwMGI2YzlkAHp6MDAwNWI1YTIAenowMmRiMTcwYQBhdGhfaGFsX2Nv +bXB1dGV0eHRpbWUAenowMmRiNWJhYwB6ejAwNWI4MTNkAHp6MDBiNmM5MjMAenowYjZj +ZTk4YwB6ejAwNWI3ZjlkAHp6MGI3MDFkMDIAenowNmUwNDYwZQB6ejAyZGI1NzYzAHp6 +MDZmMjMyY2MAenowZTA3ODM3OQB6ejAwMmRhZjYyAHp6MGI4NTQ2MTIAenowMDBiNmI5 +MAB6ejAxNmQ5ZWZhAHp6MDAyZGIyNjAAenowMTZkZTA1MQB6ejAwMDViNmIyAHp6MDVi +N2YxMTQAenowMzQ3NDZiNAB6ejAyZGJkZGZkAHp6MDA4ZWYzMDkAenowMGI3MTc3ZAB6 +ejAwYjcwZjNkAHp6MDE2ZDg5MjAAenowMmRiMWFiMgB6ejAwMDViNjIyAHp6MDAwYjZm +NzgAenowYjZiNDk1MAB6ejAwNWI3NjMwAGF0aF9oYWxfZnJlZQB6ejA1Yjc5YjFiAHp6 +MDBiNzA3M2QAenowYjVmY2EyNgB6ejAxNmRmYmYxAGF0aF9oYWxfbWh6MmllZWUAenow +MTZlMTg5YgB6ejBkYzM0OTRkAHp6MDAyZGM2MGIAenowMmRiMzM1ZAB6ejBiNmM1M2E0 +AHp6MGY4ZWYzMDgAenowZGE0Y2QwNAB6ejA1Yjc0MWUwAHp6MDJkYTliYWMAenowMTZl +YzlhZAB6ejAwYjcxNzNkAHp6MDE2ZDlkNDEAenowZGMxMmMxZgB6ejAwNWI4NGZkAHp6 +MDA1YjhhYmQAenowMGI3MDEyMwB6ejAwNWI2NTJiAHp6MDJkYjM4NzUAenowMTZlMzA5 +YgB6ejAwNWI2MGIyAHp6MDJkYjE4NzUAenowMmRiMTc2MwB6ejBiN2Y4MzY4AHp6MGRj +MzJjMWYAenowMGI3MDE2MQB6ejAxNmQ3ZDQxAHp6MDAxNmNkMzIAenowZGI0OTEwZQB6 +ejAwNWI0OGVkAHp6MDAyZGM4MGIAenowMmRiMzNlZAB6ejAwNWI4MGZkAHp6MDJkYmZk +ZmQAenowMTZlNjQ4YQB6ejBkYmYyYzFmAHp6MDAyZGFmZjIAenowMDViNzc5ZAB6ejAw +MGI2ZWU4AHp6MDE2ZTQ0OGEAenowMGI2ZjZiYwB6ejAxNmRhOTIwAHp6MDViNzgxZTAA +enowZTI3M2E0ZAB6ejAwMmRjYTBiAHp6MDJkYjFiZjAAenowMDViNDRhZAB6ejA2ZGU0 +NjBlAHp6MGI2ZjllZmYAenowMGI2YzZiYwBhdGhfaGFsX2FkZGl0aW9uYWxfc3diYV9i +YWNrb2ZmAHp6MDAwMmRiOTIAYXRoX2hhbF92ZXJzaW9uAGF0aF9oYWxfaWVlZTJtaHoA +enowMmRiNzlhZQB6ejBiNmNmMDA5AHp6MDAxNmUxMmMAenowMDE2ZDllNAB6ejAwNWI1 +Y2IyAHp6MDE2ZGEyNTEAenowNmZhMzJjYwB6ejA2ZTAyZjU3AHp6MDA1YjZlMzAAYXRo +X2hhbF9tYWxsb2MAenowMDBiNmRkMgB6ejA1YjZjYmQ1AHp6MDE2ZGIyNTEAenowZTE3 +ODM3OQB6ejAxNmRkMDUxAHp6MDJkYmQxYjIAenowZGE5YzRmNgB6ejAyZGMxNzYzAHp6 +MDE2ZGYwNTEAenowMDE2ZDk1MAB6ejAwYjcwNmJjAHp6MDAxNmQ4NzIAenowNmRmNDYw +ZQB6ejA1YjhjMmVkAHp6MDZmZjE3ZTcAenowYjZmOWQwMgB6ejBkNGVmMzA4AHp6MDE2 +ZGJiZmUAenowMTZlNTQ4YQB6ejAwMTZkODUwAHp6MDAwYjZmZjgAYXRoX2hhbF9tZW1j +cHkAenowMmRiYmRmZAB6ejA2ZGI1ZWI2AHp6MDE2ZWI5YWQAenowMGI2Y2ViYwB6ejBk +OWI4Yjc5AGF0aF9oYWxfcHJvYmUAenowMDJkYjA2MAB6ejAxNmVhOWFkAHp6MDAwZWYz +MDkAenowMmRiMzc2MwBhdGhfaGFsX2J1aWxkb3B0cwB6ejAyZGFmMzVkAHp6MGRiNGNk +MDQAenowMTZkZjI1MQB6ejAwMGI2YzEwAHp6MDE2ZDkyNTEAenowYjcyMWFlZAB6ejA2 +N2NmY2FlAHp6MDAwYjZjZjgAenowY2NlZjMwOAB6ejAyZGFmYWIyAHp6MDViOTJhZWQA +enowMDViOGNjYgB6ejBiNmQ5ZWZmAHp6MDJkYjExYjIAenowZTE3M2E0ZAB6ejAyZGJm +ZmIxAHp6MDJkYmY3NjMAenowMDViNjhmZAB6ejAwNWI0NGVkAHp6MGI3MTFhZWQAenow +YjVmY2EzNAB6ejBkOGI4Yjc5AHp6MDE2ZDhiMmQAenowMTZlMDg5YgB6ejAyZGJiODc1 +AHp6MDE2ZDk3ZjAAenowYjgzODM2OAB6ejAwYjZmZWJjAHp6MGU5OTkzMTMAenowMGI2 +ZWE3YQB6ejAzM2U4ZmJmAHp6MDA1YjcyMzAAenowY2ZhNTg3NQB6ejAyZGI5OWFlAHp6 +MDJkYjlhYjIAenowMDBiNmJlOAB6ejBkOTljNGY2AHp6MGRlZDhhNTcAenowMTZkYWJm +ZQB6ejBiNzA5ZDAyAHp6MDE5ZjNhMDEAenowNzA3MTdlNwBhdGhfaGFsX21lbXplcm8A +enowNmUwNGRkMQB6ejBiNjhlOThjAHp6MDE2ZTJkZmQAenowMDBiNmQyMgB6ejA3MDIz +MmNjAHp6MGRjNTQ5NGQAenowMGI3MGY3ZABhdGhfaGFsX3N3X2JlYWNvbl9yZXNwb25z +ZV90aW1lAHp6MDlmNjlkMmUAenowMDViNjU3YQB6ejA2ZjcxN2U3AHp6MDZkYTVlYjYA +enowYjdkNDYxMgB6ejAwYjZmOTYxAHp6MGI2YjBjOTAAenowMmRiZDM1ZAB6ejAwNWI4 +OGZkAHp6MDJkYWZkZmQAYXRoX2hhbF9kZWxheQB6ejAyZGIxZGZkAHp6MDY3ZDJmNDEA +enowMmRhZjg3NQB6ejBiODA3NzQxAHp6MDE2ZDhkNDEAenowMDJkYWU5MgB6ejBiN2M3 +NzQxAHp6MDJkYmIzNWQAenowMmRiM2RmZAB6ejAyZGI1M2VkAHp6MDAwYjZkYTIAenow +MDBiNmUyMgB6ejA1YjgwMDQxAHp6MGQ4OWM0ZjYAenowMDE2ZDg0OAB6ejAxNmQ5YjJk +AHp6MGUzNzNhNGQAenowMDE2ZTAyYwB6ejAwYjcwNzdkAHp6MDA1YjY5N2EAenowMDE2 +ZGFlNAB6ejAxNmUxMDliAHp6MDA1YjRhMmQAenowZGY3ODM3OQB6ejAyZGJkNzYzAHp6 +MDAwYjZlNTIAenowNWI2YzZkYgB6ejBjYTVmMzI5AHp6MGRiMjkxMGUAenowMmRiM2Jm +MAB6ejA2ZDc4YTRjAHp6MDE2ZTAyNTEAenowMDAyZGJiMgB6ejAwMmRkODZkAHp6MDJk +YjU5YWUAenowMDY3ZDIyMQB6ejAwNWI4OTNkAHp6MDViODFiMWIAenowMTZkODdmMAB6 +ejAyZGIxM2VkAHp6MDBiNmQxMjMAenowMDBiNmNlOAB6ejA1YjhhYWVkAHp6MDJkYWYx +YjIAenowMDA1YjVlMgB6ejAzM2ViZmJmAHp6MDViNjg2ZGIAenowMDBiNmVmOAB6ejBi +NzE5YWVkAHp6MDA1YjU4YjIAenowNWI3ZGIxYgB6ejBiODQ3NzQxAHp6MDAxNmQ3MzIA +enowMmRhZGFiMgB6ejBmNGRlMzA3AGF0aF9oYWxfaW5pdF9jaGFubmVscwB6ejAwYjZk +NmJjAHp6MGM0ZWYzMDgAenowMDAyZGJkMgB6ejBkYWI4Yjc5AHp6MDE2ZTBiODcAenow +NWI5MDJlZAB6ejBkYzM4NzE4AHp6MGFhMmVlYzEAenowMDBiNmMxZAB6ejA1YjhlYWVk +AHp6MDA1YjdiOWQAenowMDViNTQ0NgB6ejA1YjY0NmRiAHp6MDBiNmY5MjMAenowZGRk +OGE1NwB6ejAxNmUxMjUxAHp6MGRjNzQ5NGQAenowMmRiMzcwYQB6ejAwMDViNjcyAHp6 +MDZkZjRkZDEAenowMmRiZjM1ZAB6ejAwMGI2Yzc4AHp6MDAxNmQ4MzIAenowM2U5NzM1 +MwB6ejAyZGI1NzBhAHp6MDA1YjZkN2EAenowMDJkYjI5MgB6ejAwNWI5MGNiAHp6MDA1 +YjVjNDYAYXRoX2hhbF9wcmludGYAenowNmQ5NWViNgB6ejAxNmRmYjg3AHp6MDAxNmRh +NDgAenowMDJkYjA5MgBhdGhfaGFsX2dldHdpcmVsZXNzbW9kZXMAenowMTZlMWI4NwB5 +AAAAAQMAAJEAAAABAwAAsAAAAAEDAAC/AAAAAQMAAMUAAAABAwAAzQAAAAEDAADVAAAA +AQMAAM0BAAACbQAA5AEAAAJoAQD8AQAAAj0AAJ4CAAACHQEA4AYAAAJcAAD2BgAAAlwA +ADQHAAABAgAAHwsAAAECAAAyCwAAAQIAANMOAAACvgAAmhMAAAIKAQDgHwAAAgoBAOEq +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 +AQAC/AAAjhEBAALUAAD/EgEAAjwBAD0UAQACPAEAPBYBAAECAABMFgEAAQIAAG0WAQAB +AgAAeRYBAAECAADzGAEAAQIAAP0YAQABAgAAgRoBAAIpAAA8GwEAAlEAAHUbAQACXAAA +oxsBAAJRAADpGwEAAlwAACQcAQACXAAAZRwBAALGAADAHAEAAsYAAAgdAQACSwEAUB0B +AAL+AAALHgEAAgoBAFIeAQACTQAA1yEBAAESAQDdIQEAASwAAOshAQABsQAAByQBAAJ5 +AQAYJAEAAh0BAI0kAQACxgAAUiUBAALGAADJKAEAAmYBACspAQACZgEAAyoBAAIKAQC6 +KgEAAioAAPIqAQACeAAAVisBAAECAADxLgEAAQIAABEwAQACZgEAaTABAAKTAACIMAEA +ApMAAMYwAQACkwAA0DABAAKTAADwMAEAApMAAAoxAQACkwAAITEBAAKTAAAwMQEAAggB +AEsxAQACkwAAXjEBAAKTAACpMQEAApMAAOoxAQACkwAA+TEBAAIIAQAUMgEAApMAAGky +AQACkwAAczIBAAKTAAB9MgEAApMAAIoyAQACkwAAlDIBAAKTAACdMgEAAlYBAKoyAQAC +yQAAzzIBAAKTAADnMgEAApMAAAEzAQACkwAAFzMBAAKTAAAvMwEAApMAAEYzAQACVgEA +UzMBAALJAACNMwEAAlYBAJozAQACyQAA2zMBAAJmAQBDNQEAApMAAFw1AQACkwAAeDUB +AAKTAACUNQEAApMAALA1AQACkwAApDYBAAJmAQDRNgEAAQIAANY2AQABBAAA3DYBAAJz +AQANNwEAAQIAABI3AQABBAAAGDcBAAJzAQBdOAEAAQIAAG84AQABAgAAhjgBAAIdAQCi +OAEAAQIAAKk4AQABAgAAvDgBAAIdAQDZOAEAAQIAAOI4AQABAgAA9TgBAAIdAQAiOQEA +An8AADo5AQABAgAARzkBAAIpAABYOQEAAQIAALw5AQACKQAA6jkBAAIpAAByOgEAAQIA +APg8AQABAgAALz0BAAJuAABCPQEAAm4AAFk9AQABAgAAcz0BAAIdAQCNPQEAAQIAAJQ9 +AQABAgAAqj0BAAIdAQDLPQEAAQIAAN09AQABAgAA9z0BAAIdAQAYPgEAAQIAACo+AQAB +AgAARD4BAAIdAQBZPgEAAQIAAKE+AQACbgAAuD4BAAJuAADUPgEAAm4AAOk+AQACbgAA +/j4BAAJuAAATPwEAAm4AACk/AQABAgAAQz8BAAIdAQBdPwEAAQIAAIw/AQACbgAAoT8B +AAJuAAC5PwEAAQIAANM/AQACHQEAkUEBAAIKAQC6RAEAAjwBAJpGAQACPAEAw0YBAAJ6 +AADnRgEAAnoAABNHAQACvgAAP0cBAAK+AABeRwEAAQEAAGhHAQABAQAAckcBAAEBAAB8 +RwEAAQEAAIZHAQABAQAAkEcBAAEBAADFRwEAAQIAANdHAQABAgAA7kcBAAIdAQAKSAEA +AQIAABFIAQABAgAAJEgBAAIdAQBBSAEAAQIAAEpIAQABAgAAXUgBAAIdAQAqSQEAAikA +AKhJAQACKQAAtkkBAAIpAAD8SQEAAikAAApKAQACKQAAUkoBAAIpAABgSgEAAikAAM5K +AQABAgAAEk0BAAECAAAqTQEAAQIAAElNAQABAgAAaE0BAAECAACWTQEAAm4AALBNAQAC +bgAAy00BAAJuAAD6TQEAAm4AABhOAQACbgAANk4BAAJuAABUTgEAAm4AAHJOAQACbgAA +kE4BAAJuAAC4TgEAAm4AANBOAQACbgAA8E4BAAJuAAAITwEAAm4AAERPAQACbgAAVU8B +AAJuAABmTwEAAm4AAHpPAQACbgAAnk8BAAJuAACvTwEAAm4AAMBPAQACbgAA1E8BAAJu +AADoTwEAAm4AAPpPAQABAgAAPFABAAJuAABaUAEAAm4AAGxQAQABAgAAhVABAAIdAQCd +UAEAAQIAALdQAQACHQEAz1ABAAECAADpUAEAAh0BAAFRAQABAgAAG1EBAAIdAQA5UQEA +AQIAAFZRAQACHQEAilMBAALUAACfUwEAAtQAAPJTAQAC1AAAJVQBAALUAAA6VAEAAtQA +AI1UAQAC1AAAuFQBAALUAADNVAEAAtQAACBVAQAC1AAAN1wBAAJ6AABbXAEAAnoAAIdc +AQACvgAAs1wBAAK+AADcXAEAAQEAAOZcAQABAQAA8FwBAAEBAAD6XAEAAQEAAARdAQAB +AQAADl0BAAEBAABBXQEAAQIAAFNdAQABAgAAbV0BAAIdAQCGXQEAAQIAAI1dAQABAgAA +o10BAAIdAQDFXQEAAQIAAM5dAQABAgAA5F0BAAIdAQCyXgEAAikAADBfAQACKQAAPl8B +AAIpAACEXwEAAikAAJJfAQACKQAA2l8BAAIpAADoXwEAAikAAOJgAQABAgAA+mABAAEC +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 +AABkFgAAAQEAAGgWAAABAQAAbBYAAAEBAABwFgAAAQEAAHQWAAABAQAAeBYAAAEBAAB8 +FgAAAQEAAIAWAAABAQAAhBYAAAEBAACIFgAAAQEAAIwWAAABAQAAkBYAAAEBAACUFgAA +AQEAAJgWAAABAQAAnBYAAAEBAACgFgAAAQEAAKQWAAABAQAAqBYAAAEBAACsFgAAAQEA +ALAWAAABAQAAtBYAAAEBAAC4FgAAAQEAALwWAAABAQAAwBYAAAEBAADEFgAAAQEAAMgW +AAABAQAA9BYAAAECAAD4FgAAAQIAACgXAAABAgAAKBgAAAH2AAAsGAAAAVoAADAYAAAB +sgAANBgAAAGkAAA4GAAAAcMAADwYAAABSwAAQBgAAAHOAABEGAAAAVwBAEgYAAABMwEA +TBgAAAGvAABQGAAAATUAAFQYAAABewAAWBgAAAFOAABcGAAAARwAAGAYAAABTQEAZBgA +AAF1AQBoGAAAASgAAGwYAAABggAAcBgAAAHuAAB0GAAAATABAHgYAAABJAAAfBgAAAEz +AACAGAAAAV4AAIQYAAABYgEAiBgAAAEDAQCMGAAAAaUAAJAYAAABRQEAlBgAAAFIAQCY +GAAAAfMAAJwYAAABzAAAoBgAAAEkAQCkGAAAAYUAAKgYAAABVwEArBgAAAGwAACwGAAA +AacAALQYAAABfAAAuBgAAAGfAAC8GAAAAUwAAMAYAAABuAAAxBgAAAEgAQDIGAAAAfgA +AMwYAAABmQAA0BgAAAEcAQDUGAAAAdUAANgYAAABFQEA3BgAAAEtAADgGAAAAaYAAOQY +AAABQAEA6BgAAAEGAQDsGAAAAQ4BAPAYAAABNAAA9BgAAAFqAAD4GAAAASwBAPwYAAAB +0gAAABkAAAFGAAAEGQAAAS8AAAgZAAABgQAADBkAAAEJAAAQGQAAAeAAABQZAAABJQEA +GBkAAAFjAQAcGQAAAV8AACAZAAABCwAAJBkAAAFJAQAoGQAAAQIBACwZAAABUwEAMBkA +AAE7AAA0GQAAARcBADgZAAABEQAAPBkAAAGuAABAGQAAAWUAAEQZAAAB4gAASBkAAAHk +AABMGQAAAb0AAFAZAAABRAEAVBkAAAGsAABYGQAAAWEBAFwZAAABDQAAYBkAAAE1AQBk +GQAAAaIAAGgZAAABDAEAbBkAAAH1AABwGQAAAZUAAHQZAAABNgEAeBkAAAEBAAB8GQAA +ASsBAIAZAAABdAEAhBkAAAEUAQCMGQAAAUABAJAZAAABBgEAlBkAAAEOAQCYGQAAATQA +AJwZAAABagAA6CUAAAEtAQDsJQAAAUoBAPAlAAABPgEA9CUAAAFgAQD4JQAAAWwAAPwl +AAABhwAAACYAAAFiAAAEJgAAAS4AAAgmAAABVwAADCYAAAFYAAAQJgAAATIAABQmAAAB +UAEAGCYAAAH3AAAcJgAAAWsBACAmAAABdwAAJCYAAAFaAQAoJgAAAesAACwmAAABnQAA +MCYAAAGqAAA0JgAAAREBADgmAAABHgAAPCYAAAHxAABAJgAAARYAAEQmAAABTAEASCYA +AAEbAABMJgAAASUAAFAmAAABngAAVCYAAAFfAQBYJgAAAU4BAFwmAAABWwEAYCYAAAEh +AQBkJgAAAd0AAGgmAAAB6AAAbCYAAAHYAABwJgAAAfsAAHQmAAABcwAAeCYAAAGNAAB8 +JgAAAWkAAIAmAAABMgEAhCYAAAGUAACIJgAAATYAAIwmAAABIgEAkCYAAAEeAQCUJgAA +AXAAAJgmAAABzQAAnCYAAAEYAQCgJgAAAdEAAKQmAAABtQAAqCYAAAHQAACsJgAAASgB +ALAmAAABvwAAtCYAAAEwAAC4JgAAAVYAALwmAAAByAAAwCYAAAEvAQDEJgAAAToBAMgm +AAABEAEAzCYAAAEZAADQJgAAAVIAANQmAAABGgEA2CYAAAGPAADcJgAAAUYBAOAmAAAB +xAAA5CYAAAHtAADoJgAAATEAAOwmAAAB6QAA8CYAAAEiAAD0JgAAAUcAAPgmAAABhgAA +/CYAAAHLAAAAJwAAAbsAAAQnAAABPQEACCcAAAG6AAAMJwAAAf8AABAnAAAB+QAAFCcA +AAE7AQAYJwAAAQgAABwnAAABlgAAICcAAAFmAAAkJwAAAYwAACgnAAABYAAALCcAAAHZ +AAAwJwAAAd4AADQnAAAB8AAAOCcAAAEBAAA8JwAAAQQBAEAnAAABFgEARCcAAAExAQBM +JwAAAbUAAFAnAAAB0AAAVCcAAAEoAQBYJwAAAb8AAFwnAAABMAAAWDsAAAEBAABcOwAA +AQEAAGA7AAABAQAAZDsAAAEBAABoOwAAAQEAAGw7AAABAQAAcDsAAAEBAAB0OwAAAQEA +AMg8AAABUQAAzDwAAAF2AADQPAAAAVgBANQ8AAABYQAA2DwAAAHHAADcPAAAAakAAOA8 +AAABBwEA5DwAAAFKAADoPAAAAZIAAOw8AAABTQAA8DwAAAHsAAD0PAAAAUMBAPg8AAAB +gAAA/DwAAAHnAAAAPQAAAdMAAAQ9AAABeQEACD0AAAFxAQAMPQAAAasAABA9AAABLgEA +FD0AAAFyAAAYPQAAAQ0BABw9AAABIwAAID0AAAFCAQAkPQAAATgBACg9AAABRwEALD0A +AAFVAAAwPQAAAScBADQ9AAAB6gAAOD0AAAHlAAA8PQAAARAAAEA9AAABUQEARD0AAAFx +AABIPQAAAc8AAEw9AAABVgEAUD0AAAHJAABUPQAAAYoAAFg9AAABGwEAXD0AAAHjAABg +PQAAAQ4AAGQ9AAABkQAAaD0AAAEKAABsPQAAAYsAAHA9AAABJgEAdD0AAAGgAAB4PQAA +AQkBAHw9AAABmAAAgD0AAAGhAACEPQAAAQEBAIg9AAABRAAAjD0AAAEpAQCQPQAAATcB +AJQ9AAAB/QAAmD0AAAF2AQCcPQAAAT8AAKA9AAABtwAApD0AAAGbAACoPQAAAWYBAKw9 +AAABQgAAsD0AAAGDAAC0PQAAAWoBALg9AAABOAAAvD0AAAFBAADAPQAAAScAAMQ9AAAB +NwAAyD0AAAE8AADMPQAAAXUAANA9AAABFQAA1D0AAAFoAADYPQAAAeEAANw9AAABYwAA +4D0AAAEPAQDkPQAAAWUBAOg9AAABwQAA7D0AAAF5AADwPQAAAUMAAPQ9AAABHQAA+D0A +AAFyAQD8PQAAAfoAAAA+AAABwgAABD4AAAGXAAAIPgAAAR8AAAw+AAABWQEAED4AAAFk +AAAUPgAAAcYAABg+AAABtgAAHD4AAAHFAAAgPgAAAdYAACQ+AAABbwEALD4AAAEBAQAw +PgAAAUQAADQ+AAABKQEAOD4AAAE3AQA8PgAAAf0AAPxEAAABAQAAAEUAAAEBAAAERQAA +AQEAAAhFAAABAQAADEUAAAEBAAAQRQAAAQEAAEBFAAABAQAAREUAAAEBAABIRQAAAQEA +AExFAAABAQAAUEUAAAEBAABURQAAAQEAAFhFAAABAQAAXEUAAAEBAABgRQAAAQEAAGRF +AAABAQAAaEUAAAEBAABsRQAAAQEAAHBFAAABAQAAdEUAAAEBAAB4RQAAAQEAAHxFAAAB +AQAAgEUAAAEBAABwUQAAAQEAAHRRAAABAQAAeFEAAAEBAAB8UQAAAQEAAIBRAAABAQAA +hFEAAAEBAACoXgAAAQEAAKxeAAABAQAAsF4AAAEBAAC0XgAAAQEAALheAAABAQAAvF4A +AAEBAADAXgAAAQEAAMReAAABAQAAuGoAAAEBAAC8agAAAQEAAMBqAAABAQAAxGoAAAEB +AADIagAAAQEAAMxqAAABAQAA0GoAAAEBAADUagAAAQEAAOh2AAABAQAA7HYAAAEBAADw +dgAAAQEAAPR2AAABAQAA+HYAAAEBAAD8dgAAAQEAAAB3AAABAQAABHcAAAEBAAAMAAAA +AQMAABAAAAABAwAAFAAAAAEDAAAYAAAAAQMAABwAAAABAwAAIAAAAAEDAAA8AQAAAQUA +AEQBAAABBQAATAEAAAEFAABUAQAAAQUAAFwBAAABBQAAZAEAAAEFAABsAQAAAQUAAHQB +AAABBQAAfAEAAAEFAACEAQAAAQUAAIwBAAABBQAAlAEAAAEFAACcAQAAAQUAAKQBAAAB +BQAArAEAAAEFAAC0AQAAAQUAAA== +==== +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/common/io/ath/hal_x86_64.o.uu Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,4237 @@ +/* + * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting, Atheros + * Communications, Inc. All rights reserved. + * + * Use is subject to license terms. + * + * Redistribution and use in source and binary forms are permitted + * provided that the following conditions are met: + * 1. The materials contained herein are unmodified and are used + * unmodified. + * 2. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following NO + * ''WARRANTY'' disclaimer below (''Disclaimer''), without + * modification. + * 3. Redistributions in binary form must reproduce at minimum a + * disclaimer similar to the Disclaimer below and any redistribution + * must be conditioned upon including a substantially similar + * Disclaimer requirement for further binary redistribution. + * 4. Neither the names of the above-listed copyright holders nor the + * names of any contributors may be used to endorse or promote + * product derived from this software without specific prior written + * permission. + * + * NO WARRANTY + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, + * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE + * FOR 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 DAMAGES. + * + */ +#define ATH_HAL_VERSION "0.9.14.9" +#pragma ident "%Z%%M% %I% %E% SMI" + +begin-base64 644 hal.o +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 +AADEAAAAxQAAANAAAADaAAAA5AAAAAAAAAAAAAAAwgAAAMMAAADUAAAA8gAAAA0BAAAo +AQAAAAAAAAAAAABOT05FAAAAAAAA/wFGQ0MAAAAAABAASANNS0sAAAAAAEAAiAFFVFNJ +AAAAADcAOgMAAAAAAAAAAAAAAAAAAAAA/wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA +AAEAAAABAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAA +AAAIAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAADAADAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAACAARwAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAzADAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA +AAEAAAAAAAAAJAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAAAAACgA +OQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAfADAAAAAAAAAAAAAA +AAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAMAADAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AQAAAAAAAAABAAAAAAAAAHAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAA +AAAAAAA4ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAVABVAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAAAAAEQAVQAAAAAAAAAAAAAAAAAA +AAAAAAAAAAEAAAABAAAAAQAAAAAAAABMAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAYABSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAAAA +AGQANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAB8ACAAAAAAAAAA +AAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAmABYAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAEAAAAAAAAAAAAAAJwAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAA +AQAAAAAAAACqABAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAvAAD +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAL8ANgAAAAAAAAAAAAAA +AAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAADEADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAB +AAAAAQAAAAEAAAAAAAAAywA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAANAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAADWABAAAAAA +AAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAA2gADAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAA +AAAAAQAAAAAAAADeAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAA +6QA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAPYANwAAAAAAAAAA +AAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAD6ADYAAAAAAAAAAAAAAAAAAAAAAAAA +AAABAAAAAAAAAAEAAAAAAAAA/wA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAB +AAAAAAAAAAwBMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAUATcA +AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAALAEDAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAEABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA +AAABAAAAAQAAAAAAAABUAQMAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAA +AAAAWAEhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAAAAAFwBNQAAAAAA +AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAABgATcAAAAAAAAAAAAAAAAAAAAA +AAAAAAABAAAAAAAAAAEAAAAAAAAAZAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA +AAABAAAAAAAAAGgBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAABs +AVIAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAdAE3AAAAAAAAAAAA +AAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAHgBAwAAAAAAAAAAAAAAAAAAAAAAAAAA +AAEAAAAAAAAAAQAAAAAAAAB8ATcAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEA +AAAAAAAAiAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAIkBQQAA +AAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACKAUgAAAAAAAAAAAAAAAAA +AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAiwFDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA +AAAAAAAAAAAAAAAAAIwBSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAA +AACNAUsAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkAEDAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAI4BAwAAAAAAAAAAAAAAAAAAAAAA +AAAAAAEAAAAAAAAAAQAAAAAAAACYAUUAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAA +AAEAAAAAAAAAmgFFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAJsB +SQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACeAQMAAAAAAAAAAAAA +AAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAArAEDAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AQAAAAAAAAABAAAAAAAAAKYBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAA +AAAAAAC2ATUAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAuAE3AAAA +AAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAALoBNwAAAAAAAAAAAAAAAAAA +AAAAAAAAAAEAAAAAAAAAAQAAAAAAAAC+ASEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA +AQAAAAEAAAAAAAAAJwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAA +AMoBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADkARAAAAAAAAAA +AAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAA7AEwAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAQAAAAEAAAABAAAAAAAAAPgBAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAA +AQAAAAAAAAAQAjcAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAKgIi +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAEICNwAAAAAAAAAAAAAA +AAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAB +AAAAAAAAAAEAAAAAAAAASgIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAA +AAAAAE8CEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAABcAgMAAAAA +AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAYAIRAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAQAAAAEAAAABAAAAAAAAAGgCNwAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAA +AAAAAQAAAAAAAABsAjcAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAA +dgIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAABAAAAAAAAAHoCAwAAAAAAAAAA +AAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAACCAgMAAAAAAAAAAAAAAAAAAAAAAAAA +AAABAAAAAAAAAAEAAAAAAAAAgwIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAB +AAAAAAAAAKoCAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAC+AkIA +AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAvwI2AAAAAAAAAAAAAAAA +AAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAMECNwAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA +AAAAAAAAAQAAAAAAAADGAjcAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAA +AAAA1AI3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAPACNwAAAAAA +AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAD0AjUAAAAAAAAAAAAAAAAAAAAA +AAAAAAABAAAAAAAAAAEAAAAAAAAA+AIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA +AAABAAAAAAAAAJ4ARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAAD8 +AkUAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAADAMwAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAABQDNgAAAAAAAAAAAAAAAAAAAAAAAAAA +AAEAAAAAAAAAAQAAAAAAAAAYAzYAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEA +AAAAAAAAJAMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAABADAwAA +AAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAA6AzcAAAAAAAAAAAAAAAAA +AAAAAAAAAAABAAAAAAAAAAEAAAAAAAAASAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA +AAEAAAABAAAAAAAAAFoDRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAA +AABcAzoAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAXgNWAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAMACAwAAAAAAAAAAAAAAAAAAAAAA +AAAAAAEAAAAAAAAAAQAAAAAAAAB3AwMAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA +AAEAAAAAAAAAzAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wH/AQMAmAGZAQcAmAEwCwgAmAEwDCAAIAEQ +CiEAIAGZASIAIAEwDDoAYAEQCjcAMAGZATUAMAKZATYAMAOZATAAMASZATkAMAWZATQA +MAaZATIAMAOZATEAMAOZAREAEAGZARAAEAEQClIAUAGZAUUAUAKZAUcAUAOZAUIAUASZ +AVgAUAWZAVUAUAEwDFYAUAIwDEkAUAJQDUAAQAFACkEAQAFACkMAQAJACkgAQAEQCkoA +QAFACksAQAFACmAAYABgAGEAYQBhAGIAYgBiAGMAYwBjAGQAZABkAGUAZQBlAGYAZgBm +AGcAZwBnAGgAaABoAGkAaQBpAGoAagBqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAP8BAgAQAAAURBYFBnEWwRYFBgAAAAAAAAAAAAAAAFABAQAQAHEWwRYeAAAAAAAA +AAAAAAAAAAAAAAAAAFACAQAQAHEWrRYXAAAAAAAAAAAAAAAAAAAAAAAAAFADAgAQAKAU +yBQRBnEWrRYeBgAAAAAAAAAAAAAAAFAEAgAQADwUeBQUAHEWwRYUAAAAAAAAAAAAAAAA +AFAFAgAQAHEWwRYRAAAAAAAAAAAAAAAAAAAAAAAAADABAgAwADwUyBQUAHwVRBYbAAAA +AAAAAAAAAAAAADACAQAwADwUeBQSAAAAAAAAAAAAAAAAAAAAAAAAADADAQAwADwUyBQU +AAAAAAAAAAAAAAAAAAAAAAAAADAEAQAwADwUyBQSAAAAAAAAAAAAAAAAAAAAAAAAADAF +AQAwADwUeBQPAAAAAAAAAAAAAAAAAAAAAAAAADAGAgAwADwUoBQXAHwVRBYeAAAAAAAA +AAAAAAAAABABAwAQAIwUyBQXBjwUeBQRBnEWwRYeBgAAAAAAACABAgAQADwUyBQXBnEW +wRYeBgAAAAAAAAAAAAAAAGABBAAQADwUeBQRBowUyBQUBnwVRBYUBnEWwRYeBkABAQBA +ADIUbhQXAAAAAAAAAAAAAAAAAAAAAAAAAEACAwBAADIUbhQXALAT2BMXADgTdBMXAAAA +AAAAAAAA/wECABMAChQmFgUGHhQSFgUGAAAAAAAAAAAAAAAAEAEDABMAghSqFBcGWhRa +FBEGgBaoFh4GAAAAAAAAYAEDABMAghSqFBcGWhRaFBEGgBaoFh4GAAAAAAAAAAAAAAAA +YAEEABMAeBSgFBcGUBRQFBEGhRatFh4GpBUcFh4GAAAQCgEAEQAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAP8BAwD/AAgJRAkFBoUJhQkFBtAJrAoFBgAAAAAAABAKAQAUAIUJ +hQkUBgAAAAAAAAAAAAAAAAAAAAAAADAKAQA0AIUJhQkUBgAAAAAAAAAAAAAAAAAAAAAA +ADALAQA0AIUJhQkUBgAAAAAAAAAAAAAAAAAAAAAAADAMAQA0AIUJhQkUBgAAAAAAAAAA +AAAAAAAAAAAAAEAKAQBEAIUJhQkUBgAAAAAAAAAAAAAAAAAAAAAAAJkBAQA0AIUJhQkU +BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wEEAP8ACAlECQUGbAmoCQUG +tAm0CQUG0AmsCgUGUA0CAP8AbAmoCRQACAlECRQAAAAAAAAAAAAAAAAAMAoBAP8AmQmo +CRQAAAAAAAAAAAAAAAAAAAAAAAAAMAsBADEAgAmKCRQAAAAAAAAAAAAAAAAAAAAAAAAA +MAwBADEAbAmoCR4AAAAAAAAAAAAAAAAAAAAAAAAAEAoBABEAbAmeCRsGAAAAAAAAAAAA +AAAAAAAAAAAAQAoCAEEAbAmoCRQAtAm0CRQAAAAAAAAAAAAAAAAAmQEBADEAbAmoCRQA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAYAAAAAEAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAABmAAAAAQAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAGcAAAABAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAEAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGIAAAACAAAAAAAAAAAAAAAKAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYwAAAAEAAAAAAAAAAAAAAAgAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAAAABwAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGUAAAAAAAAAAAAAAAAAAAAFAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaQAAAAAAAAAAAAAAAAAAAAgA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqAAAAAAAAAAAAAAAAAAAA +BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAEA +AAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAAA +AQAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGcA +AAABAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +aAAAAAEAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AABhAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAGIAAAACAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAYwAAAAEAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAABkAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAGUAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAaQAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABqAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAGIAUABAAAAAAAAAAAAABABSANQAQAAAAAA +AAAAAAAwARACQAEAAAAAAAAAAAAAAgBQAQEAQAEEAKAACADAACAA0AAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjBSg +FLQUyBQAAAAAAAAAAHwVkBWkFbgVzBXgFfQVCBYcFjAWRBYAAAAAAAAAAAAAQAECAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAGABOgBAAQAAAAAAAAAAAAAwAQAAQAEAAAAAAAAAAAAAMAIAAEABAAAAAAAA +AAAAADADAABAAQAAAAAAAAAAAAAwBAAAQAEAAAAAAAAAAAAAMAUAAEABAAAAAAAAAAAA +ADAGAABAAQAAAAAAAAAAAAAwCgAAQAEAAAAAAAAAAAAAMAsAAEABAAAAAAAAAAAAADAM +AABAAQAAAAAAAAAAAABoAGgAQAEAAAAAAAAAAAAAQAJDAEABAAAAAAAAAAAAAEAKQwCg +AAAAAAAAAAAAAABACkMAwAAAAAAAAAAAAAAAQAFBAEABAAAAAAAAAAAAAEAKQQCgAAAA +AAAAAAAAAABACkEAwAAAAAAAAAAAAAAAQABDAEEASABKAEsAAAAAACQBmBkAKREEAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAmAAARwAAAAiYAAAAAAAADJgAAKaOhAkQmAAAAOAyPRSYAABrBwAAHJgAAAAA +AAAgmAAAAAICAiSYAAAODgAAKJgAAAECAgosmAAA/G8DADCYAAAAAAAANJgAAA4OAAA4 +mAAABwAAADyYAAAAAQIAQJgAAAAAY4lEmAAAnBZyE0iYAAAzthgATJgAADxhhBJQmAAA +4LjoDVSYAABZSAcAWJgAALq+gH5cmAAAXmY6MWCYAAAIHQAAZJgAAADOAQBomAAAkEGa +QHCYAAAPAAAAdJgAAIAAAAB4mAAABAAAAACZAAAAAAAABJkAAAAAAAAImQAAAAAAAAyZ +AAAAAIAAEJkAAAMAAAAAmwAAAAAAAASbAAAgAAAACJsAABAAAAAMmwAAMAAAABCbAAAI +AAAAFJsAACgAAAAYmwAAKAAAABybAAAEAAAAIJsAACQAAAAkmwAAFAAAACibAAA0AAAA +LJsAAAwAAAAwmwAALAAAADSbAAACAAAAOJsAACIAAAA8mwAAEgAAAECbAAAyAAAARJsA +AAoAAABImwAAKgAAAEybAAABAAAAUJsAACEAAABUmwAAEQAAAFibAAAxAAAAXJsAAAkA +AABgmwAAKQAAAGSbAAAFAAAAaJsAACUAAABsmwAAFQAAAHCbAAA1AAAAdJsAAA0AAAB4 +mwAALQAAAHybAAADAAAAgJsAACMAAACEmwAAEwAAAIibAAAzAAAAjJsAAAsAAACQmwAA +KwAAAJSbAAAHAAAAmJsAACcAAACcmwAAFwAAAKCbAAA3AAAApJsAAA8AAAComwAALwAA +AKybAAAvAAAAsJsAAC8AAAC0mwAALwAAALibAAAvAAAAvJsAAC8AAADAmwAALwAAAMSb +AAAvAAAAyJsAAC8AAADMmwAALwAAANCbAAAvAAAA1JsAAC8AAADYmwAALwAAANybAAAv +AAAA4JsAAC8AAADkmwAALwAAAOibAAAvAAAA7JsAAC8AAADwmwAALwAAAPSbAAAvAAAA ++JsAAC8AAAD8mwAALwAAAACaAAAdAAAABJoAAF0AAAAImgAAnQAAAAyaAADdAAAAEJoA +AB0BAAAUmgAAIQAAABiaAABhAAAAHJoAAKEAAAAgmgAA4QAAACSaAAAxAAAAKJoAAHEA +AAAsmgAAsQAAADCaAAAcAAAANJoAAFwAAAA4mgAAKQAAADyaAABpAAAAQJoAAKkAAABE +mgAAIAAAAEiaAAAZAAAATJoAAFkAAABQmgAAmQAAAFSaAAAwAAAAWJoAAAUAAABcmgAA +JQAAAGCaAABlAAAAZJoAAKUAAABomgAAKAAAAGyaAABoAAAAcJoAAB8AAAB0mgAAHgAA +AHiaAAAYAAAAfJoAAFgAAACAmgAAmAAAAISaAAADAAAAiJoAAAQAAACMmgAARAAAAJCa +AACEAAAAlJoAABMAAACYmgAAEgAAAJyaAABSAAAAoJoAAJIAAACkmgAA0gAAAKiaAAAr +AAAArJoAACoAAACwmgAAagAAALSaAACqAAAAuJoAABsAAAC8mgAAGgAAAMCaAABaAAAA +xJoAAJoAAADImgAA2gAAAMyaAAAGAAAA0JoAAAYAAADUmgAABgAAANiaAAAGAAAA3JoA +AAYAAADgmgAABgAAAOSaAAAGAAAA6JoAAAYAAADsmgAABgAAAPCaAAAGAAAA9JoAAAYA +AAD4mgAABgAAAPyaAAAGAAAA1JgAACAAAADMmAAABAAAAMiYAAAGAQYAnJgAAG0AAADA +mAAAAAAAANCYAAAUAAAAAAAAAAAAAAAJCQAAAAAAAgIGBgYGBgYCAgAAAAMABgAJADwA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAMwAAAAAAAAAAAAAAAAAAAAK4gAA +ACAAAAoCAAABGAAAAQAAAEAYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUE +VxkAKREEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwJ +jwm0CQAAAAAAAAAAAAAAAAAAIAAAACAAAABAAAAAQAAAAAAABgAAAAYAAAAGADAAAAAV +AAAAFQAAAB0AAAAVAAAAQBAAAA/8LwAP/C8AH/wvAA/8LwBEEAAAD/wvAA/8LwAf/C8A +D/wvAEgQAAAP/C8AD/wvAB/8LwAP/C8ATBAAAA/8LwAP/C8AH/wvAA/8LwBQEAAAD/wv +AA/8LwAf/C8AD/wvAFQQAAAP/C8AD/wvAB/8LwAP/C8AWBAAAA/8LwAP/C8AH/wvAA/8 +LwBcEAAAD/wvAA/8LwAf/C8AD/wvAGAQAAAP/C8AD/wvAB/8LwAP/C8AZBAAAA/8LwAP +/C8AH/wvAA/8LwBwEAAAaAEAAOABAAC4AQAAaAEAADAQAAAwAgAA4AEAALAAAAAwAgAA +sBAAAJgNAACAEQAASB8AAJgNAADwEAAA4KAAAGhAAQCAWAAA4KAAABSAAAAABAAEAAgA +CAAwACAABAAEHIAAAKePjQ7Pj40OlY9gAaePjQ4EmAAAAAAAAAMAAAAAAAAAAAAAACCY +AAAAAgICAAICAgACAQIAAgICJJgAAA4OAAAODgAABwcAAA4OAAAomAAAAQACCgEAAgoA +AAEFAQACCjSYAAAODgAADg4AAA4OAAAODgAAOJgAAAcAAAAHAAAACwAAAAsAAABEmAAA +nBZyE6UWchOoFnITnBZyE0iYAABnuhgAZ7oYAGm6GABpuhgAUJgAAOC0KAzgtCgM4LQo +DOC0KAxYmAAALg2Afi4NgH4uDcB+Lg2AflyYAABeXTcxXl03MV5dOjFeXTcxYJgAABC9 +AAAQvQAAOL0AABC9AABkmAAAAM4BAADOAQAAzgEAAM4BABSZAAAQJwAAECcAAHwVAAAQ +JwAAGJkAAJABAACQAQAAhAAAAJABAABEmQAAIBDgbyAQ4G8gCeBvIBDgb4ChAAD/FP8F +/xT/Bf8U/wX/Gf8F1JgAABAAAAAUAAAAEAAAABAAAAAAAAAADAAAAAAAAAAoAAAAnJyE +hCwAAAB8fHx8NAAAAAUAAABAAAAAAAAAAEQAAAAIAAAASAAAAAgAAABMAAAAEAAAAFAA +AAAAAAAAVAAAAB8AAAAACAAAAAAAAAQIAAAAAAAACAgAAAAAAAAMCAAAAAAAABAIAAAA +AAAAFAgAAAAAAAAYCAAAAAAAABwIAAAAAAAAIAgAAAAAAAAkCAAAAAAAADASAAAAAAAA +BIAAAAAAAAAIgAAAAAAAAAyAAAAAAAAAGIAAAAAAAAAkgAAAAAAAACiAAAAwAAAALIAA +AP//BwAwgAAA////ATSAAAAxAAAAOIAAAAAAAAA8gAAAAAAAAECAAAAAAAAARIAAAAIA +AABIgAAAAAAAAFSAAAAAAAAAWIAAAAAAAAAImAAAAAAAAAyYAACTkIQtEJgAAADgMn0U +mAAAaw8AAByYAAAAAAAALJgAAP5vAgAwmAAAAAAAADyYAAAAAQIAQJgAAHoBaiBMmAAA +PGGEElSYAABZCAAAaJgAAJBBmkBsmAAAgbAMBXCYAAAPAAAAdJgAAIAAAAB4mAAADAAA +AACZAAAAAAAABJkAAAAAAAAImQAAAAAAAAyZAAAAAIAAEJkAAAEAAAAcmQAAKgkAACCZ +AAAAAAAAJJkAAAWKBQAomQAAAQAAACyZAAAAAAAAMJkAAAAAAAA0mQAAAAAAADiZAAAA +AAAAPJkAAD8AAABAmQAABAAAAEiZAAAAAAAATJkAAAAAAABQmQAAAAAAAFSZAABM8VBd +WJkAABgAAABcmQAAjmpLAIShAAD/Bf8GiKEAAP8H/weMoQAA/wj/CJChAAD/Cf8JlKEA +AP8K/wqYoQAA/wv/C5yhAAD/DP8MoKEAAP8N/w2koQAA/w7/D6ihAAD/Ev8SrKEAAP8T +/xSwoQAA/xX/FrShAAD/F/8ZuKEAAP8a/xu8oQAA/x3/HsChAAD/IP8jxKEAAP8l/yfI +oQAA/yn/LMyhAAD/L/8x0KEAAP80/zfUoQAA/zr/OtihAAD/Ov863KEAAP86/zrgoQAA +/zr/OuShAAD/Ov866KEAAP86/zrsoQAA/zr/OvChAAD/Ov869KEAAP86/zr4oQAA/zr/ +OvyhAAD/Ov86AJsAAAAAAAAEmwAAIAAAAAibAAAQAAAADJsAADAAAAAQmwAACAAAABSb +AAAoAAAAGJsAAAQAAAAcmwAAJAAAACCbAAAUAAAAJJsAADQAAAAomwAADAAAACybAAAs +AAAAMJsAAAIAAAA0mwAAIgAAADibAAASAAAAPJsAADIAAABAmwAACgAAAESbAAAqAAAA +SJsAAAYAAABMmwAAJgAAAFCbAAAWAAAAVJsAADYAAABYmwAADgAAAFybAAAuAAAAYJsA +AAEAAABkmwAAIQAAAGibAAARAAAAbJsAADEAAABwmwAACQAAAHSbAAApAAAAeJsAAAUA +AAB8mwAAJQAAAICbAAAVAAAAhJsAADUAAACImwAADQAAAIybAAAtAAAAkJsAAAMAAACU +mwAAIwAAAJibAAATAAAAnJsAADMAAACgmwAACwAAAKSbAAArAAAAqJsAACsAAACsmwAA +KwAAALCbAAArAAAAtJsAACsAAAC4mwAAKwAAALybAAArAAAAwJsAACsAAADEmwAAKwAA +AMibAAArAAAAzJsAACsAAADQmwAAKwAAANSbAAArAAAA2JsAACsAAADcmwAAKwAAAOCb +AAArAAAA5JsAACsAAADomwAAKwAAAOybAAArAAAA8JsAACsAAAD0mwAAKwAAAPibAAAC +AAAA/JsAABYAAADUmAAAIAAAANiYAABoEGAAAAAAAAAAAAAAmgAAqQEAAAAAAAAEmgAA +6QEAAEAAAAAImgAAKQAAAIAAAAAMmgAAaQAAAFABAAAQmgAAmQEAAJABAAAUmgAA2QEA +ANABAAAYmgAAGQAAABAAAAAcmgAAWQAAAEQAAAAgmgAAmQAAAIQAAAAkmgAApQEAAEgB +AAAomgAA5QEAAIgBAAAsmgAAJQAAAMgBAAAwmgAAyAEAABQAAAA0mgAACAAAAEIAAAA4 +mgAASAAAAIIAAAA8mgAAiAAAAHgBAABAmgAAmAEAALgBAABEmgAA2AEAAPgBAABImgAA +GAAAABIAAABMmgAAWAAAAFIAAABQmgAAmAAAAJIAAABUmgAApAEAAHwBAABYmgAA5AEA +ALwBAABcmgAAJAAAAPwBAABgmgAAZAAAAAoAAABkmgAApAAAAEoAAABomgAA5AAAAIoA +AABsmgAACgEAAFoBAABwmgAASgEAAJoBAAB0mgAAigEAANoBAAB4mgAAygEAAA4AAAB8 +mgAACgAAAE4AAACAmgAASgAAAI4AAACEmgAAigAAAF4BAACImgAAugEAAJ4BAACMmgAA ++gEAAN4BAACQmgAAOgAAAAkAAACUmgAAegAAAEkAAACYmgAAhgEAAIkAAACcmgAAxgEA +AHkBAACgmgAABgAAALkBAACkmgAARgAAAPkBAAComgAAhgAAADkAAACsmgAAxgAAAHkA +AACwmgAAxgAAALkAAAC0mgAAxgAAAL0BAAC4mgAAxgAAAP0BAAC8mgAAxgAAAD0AAADA +mgAAxgAAAH0AAADEmgAAxgAAAL0AAADImgAAxgAAAP0AAADMmgAAxgAAAP0AAADQmgAA +xgAAAP0AAADUmgAAxgAAAP0AAADYmgAAxgAAAP0AAADcmgAAxgAAAP0AAADgmgAAxgAA +AP0AAADkmgAAxgAAAP0AAADomgAAxgAAAP0AAADsmgAAxgAAAP0AAADwmgAAxgAAAP0A +AAD0mgAAxgAAAP0AAAD4mgAAxgAAAP0AAAD8mgAAxgAAAP0AAAABAAAARgAAAGAAAAAB +AAAARgAAAGEAAAABAAAARgAAAGIAAAABAAAARgAAAGMAAAABAAAARgAAAGQAAAABAAAA +RgAAAGUAAAABAAAARgAAAGYAAAABAAAARgAAAGcAAAABAAAARgAAAGgAAAABAAAARgAA +AGkAAAABAAAARgAAAGoAAAABAAAARgAAAGsAAAABAAAARgAAAGwAAAABAAAARgAAAHQA +AAABAAAARgAAAHQAAAABAAAARgAAAHQAAAABAAAARgAAAHQAAAABAAAARgAAAHQAAAAB +AAAARgAAAHQAAAABAAAARgAAAHQAAAABAAAARgAAAHQAAAABAAAARgAAAHUAAAABAAAA +RgAAAHYAAAABAAAARgAAAHcAAAABAAAARgAAAHgAAAABAAAARgAAAHkAAAABAAAARgAA +AHoAAAABAAAARgAAAHsAAAABAAAARgAAAHwAAAABAAAARgAAAH0AAAABAAAARgAAAH4A +AAABAAAARgAAAH8AAAABAAAARgAAAIAAAAABAAAARAAAAHwAAAABAAAARgAAAIgAAAAB +AAAARgAAAIwAAAABAAAARgAAAJAAAAABAAAARgAAAJQAAAABAAAARgAAAJgAAAABAAAA +RgAAAJwAAAABAAAARgAAAKAAAAABAAAARgAAAKQAAAABAAAARgAAAKgAAAABAAAARgAA +AKwAAAABAAAARgAAALAAAAABAAAARgAAALQAAAAAAgcAAAADAAYACQA8AAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAACQAAAAQAAAAEAAEAAQABAAYAAABGRzgAAAAAAAAAAAAAAAAA +BAAAAAEAAQAEAAAARkc3AAAAAAAAAAAAAAAAAAMAAQABAAEAAwAAAEZHNgAAAAAAAAAA +AAAAAAAEAAAAAAABAAEAAABGRzUAAAAAAAAAAAAAAAAABAABAAEAAAAAAAAARkc0AAAA +AAAAAAAAAAAAAAQAAAABAAAA/v///0ZHMwAAAAAAAAAAAAAAAAADAAEAAQAAAP3///9G +RzIAAAAAAAAAAAAAAAAABAAAAAAAAAD8////RkcxAAAAAAAAAAAAAAAAAAIAAQABAAAA ++v///0ZHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBBU +GQApEQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAmP +CbQJCAlsCbQJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAABAAAAAQAAAAAAABgAA +AAYAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABAEAAAD/wvAA/8LwAf/C8AD/wvAA/8LwBEEAAAD/wvAA/8LwAf +/C8AD/wvAA/8LwBIEAAAD/wvAA/8LwAf/C8AD/wvAA/8LwBMEAAAD/wvAA/8LwAf/C8A +D/wvAA/8LwBQEAAAD/wvAA/8LwAf/C8AD/wvAA/8LwBUEAAAD/wvAA/8LwAf/C8AD/wv +AA/8LwBYEAAAD/wvAA/8LwAf/C8AD/wvAA/8LwBcEAAAD/wvAA/8LwAf/C8AD/wvAA/8 +LwBgEAAAD/wvAA/8LwAf/C8AD/wvAA/8LwBkEAAAD/wvAA/8LwAf/C8AD/wvAA/8LwAw +EAAAMAIAAOABAACwAAAAYAEAAOABAABwEAAAaAEAAOABAAC4AQAAjAEAAOABAACwEAAA +YA4AAIARAAAcHwAAOD4AAIARAADwEAAA4KAAAGhAAQCAWAAA4LAAAGhAAQAUgAAA6APo +A+AG4AYgBCAEQAhACOAG4AYEmAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAgmAAAAAICAgAC +AgIAAgECAAICAgACAgIkmAAADg4AAA4OAAAHBwAADg4AAA4OAABEmAAAHBZyEyUcchMo +F3ITohZyEyUcchNgmAAAEJ0AABCdAAAYnQAAGJ0AABCdAABkmAAAAM4BAADOAQAAzgEA +AM4BAADOAQBomAAAkEGaQJBBmkCQQZpAkEGaQJBBmkAYmQAAuAEAALgBAACEAAAACAEA +ALgBAAAkmQAABYoFEAWKBRAFigUQBYoFEAWKBRAwogAAAAAAAAAAAAAAAAAACAEAAAAA +AAAAAAAAAAAAAAwAAAAAAAAANAAAAAUAAABAAAAAAAAAAEQAAAAIAAAASAAAAAgAAABM +AAAAEAAAAFAAAAAAAAAAVAAAAB8AAAAACAAAAAAAAAQIAAAAAAAACAgAAAAAAAAMCAAA +AAAAABAIAAAAAAAAFAgAAAAAAAAYCAAAAAAAABwIAAAAAAAAIAgAAAAAAAAkCAAAAAAA +AHASAAAAAAAAOBAAAAAAAAB4EAAAAAAAALgQAAAAAAAA+BAAAAAAAAA4EQAAAAAAAHgR +AAAAAAAAuBEAAAAAAAD4EQAAAAAAADgSAAAAAAAAeBIAAAAAAAC4EgAAAAAAAPgSAAAA +AAAAOBMAAAAAAAB4EwAAAAAAALgTAAAAAAAA+BMAAAAAAAA4FAAAAAAAAHgUAAAAAAAA +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 +AAAAAAAAAAAAAAAAAAAAAPr///9GRzQAAAAAAAAAAAAAAAAAAAABAAEAAAAAAAAAAAAA +APj///9GRzMAAAAAAAAAAAAAAAAAAAABAAEAAAABAAEAAAAAAPb///9GRzIAAAAAAAAA +AAAAAAAAAAABAAAAAQABAAEAAAAAAPP///9GRzEAAAAAAAAAAAAAAAAAAAABAAAAAQAB +AAAAAQAAAPD///9GRzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYXI1MjEy +QW5pUG9sbAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAFYAAABWAAAAVgAAAFYAAABWAAAAc +gAAAp4+NEs8PiAmVD+AEqw/gEs8PiAkomAAAAQACCgEAAgoAAQEFAQACCgEAAgo0mAAA +Dg4AAA4OAAAODgAADg4AAA4OAAA4mAAABwAAAAcAAAALAAAACwAAAAsAAABImAAAWtoY +AFraGABpyhgAacoYAGnKGABQmAAA4LToDeC06A3gtOgN4LToDeC06A1YmAAALg2Afi4N +gH4uTeh+Lk3ofi4NgH5cmAAAXmY3MV5mNzFeZjcxXmY3MV5hNzFsmAAAgbAMBYGwDAWB +sAwFgLAMBYCwDAUUmQAAECcAABAnAAB8FQAA+CoAABAnAABEmQAAIBC49yAQuPcgDbj3 +IBC49yAQuPcMogAAakEsZGpBLGRqQUBkakFAZGpBQGQcogAACoCDGAqAgxgKgHMYCoCD +GAqAgxgAAAAAAAAAAAAAAAAAAAAAMBIAAAAAAAAsmAAA/i8CADyYAAAAAQIATJgAADxh +hBIwmQAAg0gAAECZAAAEAAAAdJkAAAAAAAD4mQAAGAAAAASiAAAAAAAACKIAAIhnPtAo +ogAAtQEAADyiAACvicgTBJsAACAAAAAImwAAEAAAAAybAAAwAAAAEJsAAAgAAAAUmwAA +KAAAABibAAAEAAAAHJsAACQAAAAgmwAAFAAAACSbAAA0AAAALJsAACwAAAAwmwAAAgAA +ADSbAAAiAAAAPJsAADIAAABAmwAACgAAAESbAAAqAAAASJsAAAYAAABMmwAAJgAAAFCb +AAAWAAAAVJsAADYAAABYmwAADgAAAFybAAAuAAAAYJsAAAEAAABomwAAEQAAAGybAAAx +AAAAcJsAAAkAAAB0mwAAKQAAAHibAAAFAAAAfJsAACUAAACAmwAAFQAAAISbAAA1AAAA +iJsAAA0AAACQmwAAAwAAAJSbAAAjAAAAmJsAABMAAACgmwAACwAAAKSbAAArAAAAqJsA +ACsAAACsmwAAKwAAALCbAAArAAAAtJsAACsAAAC4mwAAKwAAALybAAArAAAAwJsAACsA +AADEmwAAKwAAAMibAAArAAAAzJsAACsAAADQmwAAKwAAANSbAAArAAAA2JsAACsAAADc +mwAAKwAAAOCbAAArAAAA5JsAACsAAADomwAAKwAAAOybAAArAAAA8JsAACsAAAD0mwAA +KwAAAPibAAACAAAA/JsAABYAAAAAAAAAAAAAAAAAAAAAAAAAnJgAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAnJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJgAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAnJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJgAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAnJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +nJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJgA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAnJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJgAAAAA +OAAAADgAAAA4AAAAOAAAADgAnJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJgAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAnJgAAAAAAAAAAAAAwAAAAIAAAACAAAAAnJgAAPkABAD5AAQA +/wAEAP0ABAD9AAQA1JgAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAmgAAqQEA +AAAAAAAEmgAA6QEAAEAAAAAImgAAKQAAAIAAAAAMmgAAaQAAAFABAAAQmgAAmQEAAJAB +AAAUmgAA2QEAANABAAAYmgAAGQAAABAAAAAcmgAAWQAAAEQAAAAgmgAAmQAAAIQAAAAk +mgAApQEAAEgBAAAomgAA5QEAAIgBAAAsmgAAJQAAAMgBAAAwmgAAyAEAABQAAAA0mgAA +CAAAAEIAAAA4mgAASAAAAIIAAAA8mgAAiAAAAHgBAABAmgAAmAEAALgBAABEmgAA2AEA +APgBAABImgAAGAAAABIAAABMmgAAWAAAAFIAAABQmgAAmAAAAJIAAABUmgAApAEAAHwB +AABYmgAA5AEAALwBAABcmgAAJAAAAPwBAABgmgAAZAAAAAoAAABkmgAApAAAAEoAAABo +mgAA5AAAAIoAAABsmgAACgEAAFoBAABwmgAASgEAAJoBAAB0mgAAigEAANoBAAB4mgAA +ygEAAA4AAAB8mgAACgAAAE4AAACAmgAASgAAAI4AAACEmgAAigAAAF4BAACImgAAugEA +AJ4BAACMmgAA+gEAAN4BAACQmgAAOgAAAAkAAACUmgAAegAAAEkAAACYmgAAhgEAAIkA +AACcmgAAxgEAAHkBAACgmgAABgAAALkBAACkmgAARgAAAPkBAAComgAAhgAAADkAAACs +mgAAxgAAAHkAAACwmgAAxgAAALkAAAC0mgAAxgAAAL0BAAC4mgAAxgAAAP0BAAC8mgAA +xgAAAD0AAADAmgAAxgAAAH0AAADEmgAAxgAAAL0AAADImgAAxgAAAP0AAADMmgAAxgAA +AP0AAADQmgAAxgAAAP0AAADUmgAAxgAAAP0AAADYmgAAxgAAAP0AAADcmgAAxgAAAP0A +AADgmgAAxgAAAP0AAADkmgAAxgAAAP0AAADomgAAxgAAAP0AAADsmgAAxgAAAP0AAADw +mgAAxgAAAP0AAAD0mgAAxgAAAP0AAAD4mgAAxgAAAP0AAAD8mgAAxgAAAP0AAADUmAAA +IAAAAAAAAAAAAAAA1JgAABAAAAAUAAAAEAAAABAAAAAUAAAAAAAAAAAAAADYmAAAaBBg +AGgQYABoEGAAaBBgAGgQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcmAAAAAAAAAAA +AAAAAAAAAAAAAAAAAACcmAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcmAAAAAAAAAAAAAAA +AAAAAAAAAAAAAACcmAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcmAAAAAAAAAAAAAAAAAAA +AAAAAAAAAACcmAAAAAAAEAAAABAAAAAQAAAAEAAAABCcmAAAAAAABAAAAAQAAAAEAAAA +BAAAAAScmAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcmAAAAAAAAAAAAAAAAAAAAAAAAAAA +AACcmAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcmAAAAAAAAAAAAAAAAAAKAAAAAAAAAACc +mAAAwAA4AIAAOADAADgCwAA4AMAAOACcmAAABgACAAYAAgAGAAAABgACAAYAAgCcmAAA +iQAAAIkAAACJAAAAiQAAAIkAAACcmAAAoAAAAKAAAACgAAAAoAAAAKAAAACcmAAABwAE +AAcABAAHAAQABwAEAAcABADUmAAAGgAAABoAAAAaAAAAGgAAABoAAAAAAAAAAAAAAJyY +AABAAAAASAAAAEAAAABAAAAAQAAAAJyYAAAQAAAAEAAAABAAAAAQAAAAEAAAAJyYAAAI +AAAACAAAAAgAAAAIAAAACAAAAJyYAABPAAAATwAAAE8AAABPAAAATwAAAJyYAADxAAAA +8QAAAGEAAADxAAAA8QAAAJyYAABPkAAAT5AAAEyQAABPkAAAT5AAAJyYAABaEgAAWhIA +AJoSAABaEgAAWhIAAMyYAAAOAAAADgAAAA8AAAAOAAAADgAAAAEAAABGAAAAYAAAAAEA +AABGAAAAYQAAAAEAAABGAAAAYgAAAAEAAABGAAAAYwAAAAEAAABGAAAAZAAAAAEAAABG +AAAAZQAAAAEAAABGAAAAZgAAAAEAAABGAAAAZwAAAAEAAABGAAAAaAAAAAEAAABGAAAA +aQAAAAEAAABGAAAAagAAAAEAAABGAAAAawAAAAEAAABGAAAAbAAAAAEAAABGAAAAdAAA +AAEAAABGAAAAdAAAAAEAAABGAAAAdAAAAAEAAABGAAAAdAAAAAEAAABGAAAAdAAAAAEA +AABGAAAAdAAAAAEAAABGAAAAdAAAAAEAAABGAAAAdAAAAAEAAABGAAAAdQAAAAEAAABG +AAAAdgAAAAEAAABGAAAAdwAAAAEAAABGAAAAeAAAAAEAAABGAAAAeQAAAAEAAABGAAAA +egAAAAEAAABGAAAAewAAAAEAAABGAAAAfAAAAAEAAABGAAAAfQAAAAEAAABGAAAAfgAA +AAEAAABGAAAAfwAAAAEAAABGAAAAgAAAAAEAAABEAAAAfAAAAAEAAABGAAAAiAAAAAEA +AABGAAAAjAAAAAEAAABGAAAAkAAAAAEAAABGAAAAlAAAAAEAAABGAAAAmAAAAAEAAABG +AAAAnAAAAAEAAABGAAAAoAAAAAEAAABGAAAApAAAAAEAAABGAAAAqAAAAAEAAABGAAAA +rAAAAAEAAABGAAAAsAAAAAEAAABGAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAwAAAAFYAAABWAAAAVgAAAFYAAABWAAAAcgAAAp5ONEs8TiAmV +E+AEqxPgEs8TiAkomAAAAQACCgEAAgoAAQIFAQACCgEAAgo0mAAADg4AAA4OAAAODgAA +Dg4AAA4OAAA4mAAABwAAAAcAAAALAAAACwAAAAsAAABImAAAbdoYAG3aGAB1yhgAdcoY +AHXKGABQmAAA4LToDeC06A3gtOgN4LToDeC06A1YmAAALg2Afi4NgH4uDeh+Lg3ofi4N +gH5cmAAAXmY3MV5mNzFeZjcxXmY3MV5mNzFsmAAAgbAMBYGwDAWBsAwFgbAMBYGwDAUU +mQAA0AcAANAHAABMBAAAmAgAANAHAABEmQAAIBC49yAQuPcQDbj3EBC49xAQuPcEogAA +AAAAAAAAAAAIAAAACAAAAAgAAAAIogAAiGe+1ohnvtaIZz7QiGc+0IhnPtAMogAAQAEs +ZEABLGRgwUJkYMFCZGDBQmQcogAACoCDGAqAgxgKgHMYCoCDGAqAgxgwEgAAAAAAACyY +AAD+LwIAPJgAAAABAgBMmAAAPGGEEjCZAACCSAAAQJkAAAQAAAB0mQAAAAAAACiiAAC1 +AQAAPKIAAK+JyBMEmwAAAQAAAAibAAACAAAADJsAAAMAAAAQmwAABAAAABSbAAAFAAAA +GJsAAAgAAAAcmwAACQAAACCbAAAKAAAAJJsAAAsAAAAsmwAADQAAADCbAAAQAAAANJsA +ABEAAAA8mwAAEwAAAECbAAAUAAAARJsAABUAAABImwAAGAAAAEybAAAZAAAAUJsAABoA +AABUmwAAGwAAAFibAAAcAAAAXJsAAB0AAABgmwAAIAAAAGibAAAiAAAAbJsAACMAAABw +mwAAJAAAAHSbAAAlAAAAeJsAACgAAAB8mwAAKQAAAICbAAAqAAAAhJsAACsAAACImwAA +LAAAAJCbAAAwAAAAlJsAADEAAACYmwAAMgAAAKCbAAA0AAAApJsAADUAAAComwAANQAA +AKybAAA1AAAAsJsAADUAAAC0mwAANQAAALibAAA1AAAAvJsAADUAAADAmwAANQAAAMSb +AAA1AAAAyJsAADUAAADMmwAANQAAANCbAAA1AAAA1JsAADUAAADYmwAANQAAANybAAA1 +AAAA4JsAADUAAADkmwAANQAAAOibAAA1AAAA7JsAADUAAADwmwAANQAAAPSbAAA1AAAA ++JsAABAAAAD8mwAAGgAAAAAAAAAAAAAAAJoAAAcAAAAHAAAABJoAAEcAAABHAAAACJoA +AIcAAACHAAAADJoAAKABAACgAQAAEJoAAOABAADgAQAAFJoAACAAAAAgAAAAGJoAAGAA +AABgAAAAHJoAAKEBAAChAQAAIJoAAOEBAADhAQAAJJoAACEAAAAhAAAAKJoAAGEAAABh +AAAALJoAAGIBAABiAQAAMJoAAKIBAACiAQAANJoAAOIBAADiAQAAOJoAACIAAAAiAAAA +PJoAAGIAAABiAAAAQJoAAGMBAABjAQAARJoAAKMBAACjAQAASJoAAOMBAADjAQAATJoA +ACMAAAAjAAAAUJoAAGMAAABjAAAAVJoAAIQBAACEAQAAWJoAAMQBAADEAQAAXJoAAAQA +AAAEAAAAYJoAAOoBAAALAAAAZJoAACoAAABLAAAAaJoAAGoAAACLAAAAbJoAAKoAAACs +AQAAcJoAAKsBAADsAQAAdJoAAOsBAAAsAAAAeJoAACsAAAASAAAAfJoAAGsAAABSAAAA +gJoAAKsAAACSAAAAhJoAAKwBAACTAQAAiJoAAOwBAADTAQAAjJoAACwAAAATAAAAkJoA +ADoAAABTAAAAlJoAAHoAAACTAAAAmJoAALoAAACUAQAAnJoAALsBAADUAQAAoJoAAPsB +AAAUAAAApJoAADsAAAA6AAAAqJoAAHsAAAB6AAAArJoAALsAAAC6AAAAsJoAALwBAAC7 +AQAAtJoAAPwBAAD7AQAAuJoAADwAAAA7AAAAvJoAAHwAAAB7AAAAwJoAALwAAAC7AAAA +xJoAAPwAAAC8AQAAyJoAAPwAAAD8AQAAzJoAAPwAAAA8AAAA0JoAAPwAAAB8AAAA1JoA +APwAAAC8AAAA2JoAAPwAAAD8AAAA3JoAAPwAAAD8AAAA4JoAAPwAAAD8AAAA5JoAAPwA +AAD8AAAA6JoAAPwAAAD8AAAA7JoAAPwAAAD8AAAA8JoAAPwAAAD8AAAA9JoAAPwAAAD8 +AAAA+JoAAPwAAAD8AAAA/JoAAPwAAAD8AAAA1JgAACAAAAAAAAAAAAAAANCYAAAIBAYD +CAQHAwgEBgMIBAYDCAQHAwAAAAAAAAAA3JgAAMDAoADAwKAAwMDgAMDA4ADAwOAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAnJgAAAAAAA8AAAAPAAAADwAAAA8AAAAPnJgAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAnJgAAAAAgAAAAIAAAACAAAAAgAAAAIAAnJgAAAAAKgAA +ACoAAAAqAAAAKgAAACoAnJgAAAAAAQAAAAEAAAABAAAAAQAAAAEAnJgAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAnJgAAAAAGAAAABgAAAAYAAAAGAAAABgAnJgAAAAAYAAAAGAAAABu +AAAAbgAAAG4AnJgAAAAAxwAAAMcAAADHAAAAxwAAAMcAnJgAAAAASwAAAEsAAABLAAAA +SwAAAEsAnJgAAAAASAQAAEgEAABIBAAASAQAAEgEnJgAAAAATAAAAEwAAABMAAAATAAA +AEwAnJgAAAAA5AAAAOQAAADkAAAA5AAAAOQAnJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +nJgAAAAA/AAAAPwAAAD8AAAA/AAAAPwAnJgAAAAA/wAAAP8AAAD/AAAA/wAAAP8AnJgA +AAAAPwQAAD8EAAA/BAAAPwQAAD8EnJgAAAAADAAAAAwAAAAMAAAADAAAAAwAnJgAAAAA +GQIAABkCAAAZAgAAGQIAABkCnJgAAAAAJAAAACQAAAAkAAAAJAAAACQAnJgAAAAAtAAA +ALQAAAC0AAAAtAAAALQAnJgAAAAAmQAAAJkAAACZAAAAmQAAAJkAnJgAAAAAUAAAAFAA +AABQAAAAUAAAAFAAnJgAAAAAKgAAACoAAAAqAAAAKgAAACoAnJgAAAAAEgAAABIAAAAS +AAAAEgAAABIAnJgAAAAAMsAAADLAAAAywAAAMsAAADLAnJgAAAAAdAEAAHQBAAB0AQAA +dAEAAHQBnJgAAAAAEQAAABEAAAARAAAAEQAAABEAnJgAAAAAKIYAACiGAAAohgAAKIYA +ACiGnJgAAAAAhDEAAIQxAACEMQAAhDEAAIQxnJgAAIAA8gCAAPIAgADyAIAA8gCAAPIA +nJgAABkAJwAZACcAGQAnABkAJwAZACcAnJgAAAMAAAADAAAAAwAAAAMAAAADAAAAnJgA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAnJgAALIAAACyAAAAsgAAALIAAACyAAAAnJgAAIQg +sACEILAAhCCwAIQgsACEILAAnJgAAKQlQQCkJUEApCVBAKQlQQCkJUEAnJgAACCSEQAg +khEAIJIRACCSEQAgkhEAnJgAAABIGgAASBoAAEgaAABIGgAASBoA2JgAADACCwAwAgsA +MAILADACCwAwAgsAnJgAAJQAAACUAAAAlAAAAJQAAACUAAAAnJgAAJEAAACRAAAAkQAA +AJEAAACRAAAAnJgAABIAAAASAAAAEgAAABIAAAASAAAAnJgAAIAAAACAAAAAgAAAAIAA +AACAAAAAnJgAANkAAADZAAAA2QAAANkAAADZAAAAnJgAAGAAAABgAAAAYAAAAGAAAABg +AAAAnJgAAPAAAADwAAAA8AAAAPAAAADwAAAAnJgAAKIAAACiAAAAogAAAKIAAACiAAAA +nJgAAFIAAABSAAAAUgAAAFIAAABSAAAAnJgAANQAAADUAAAA1AAAANQAAADUAAAAnJgA +AMwUAADMFAAAzBQAAMwUAADMFAAAnJgAAIwEAACMBAAAjAQAAIwEAACMBAAAxJgAAAMA +AAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAABUAAAAVAAAA +FQAAABUAAAAVAAAAHIAAAKeTjRLPE4gJlRPgBKsT4BLPE4gJKJgAAAEAAgoBAAIKAAAC +BQEAAgoBAAIKNJgAAAAOAAAADgAAAA4AAAAOAAAADgAAOJgAAAIAAAACAAAACgAAAAoA +AAAKAAAASJgAAG3aGABt2hgAZGoaAGRqGgBkahoAUJgAAOC06A3gtOgN2rDoDdqwmAza +sOgNWJgAAC4NgH4uDYB+Lg3ofi4NyH4uDYB+XJgAAF5mNzFeZjcxXmY3MV5gOTFeZjcx +bJgAAIGwDAWBsAwFgbAMBYGwDAWBsAwFFJkAANAHAADQBwAATAQAAJgIAADQBwAARJkA +AAAQuPcAELj3AA249wAQuPcAELj3BKIAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKIAAIhn +vtaIZ77WiGc+0IhnPtCIZz7QDKIAAEABLABAASwAQMFCAEDBQgBAwUIAHKIAAAqAgxgK +gIMYCoBjGAqAgxgKgIMYMBIAAOADAABggAAADwAAABiBAAAAAAAAHIEAAAAAAAAggQAA +AAAAACSBAAAAAAAAKIEAAAAAAAAsgQAAAAAAADCBAAAAAAAANIEAAAAAAAA4gQAAAAAA +ADyBAAAAAAAAQIEAAKgAAIBEgQAAAAAAACyYAAAAoAAAPJgAAAAEIABMmAAAPCOEEnCY +AAAfAAAAdJgAAIAAAAB4mAAADgAAAICZAAAAAAAAhJkAAAAAgAKgmQAAAAAAAOCZAAAA +AAAA5JkAAKqqqqromQAAeGRGPOyZAACqAAAA8JkAAAwAAAD0mQAA/wAAAPiZAAAUAAAA +KKIAALUJAAA8ogAAr4nIk0yiAAABAAAAUKIAAACgAABUogAAAAAAAFiiAACAU8cMXKIA +AAEPDw9gogAAAQ9pX2SiAAARikEAaKIAAAAAAABsogAAasEwDHCiAAAgCIIAdKIAAKp8 +GwB4ogAAzjnnHHyiAADOARcFAKMAAAAAARgEowAAAiYDMAijAAAGPgdIDKMAAApMC1YQ +owAAD2AaZBSjAAAbbk94GKMAAFp8j4YcowAAW4bPjiCjAAAPl0+dJKMAAI+hz6UoowAA +H69ftSyjAACfud+9MKMAAD/Hf800owAAv9H/1TijAAAAAAAAPKMAAAAAAABAowAAAAAA +AESjAAAAAAAASKMAAP///z9MowAA////P1CjAAD///8/VKMAAP//AwBYowAAH6qoeVyj +AAAPQmwGYKMAAAciKA9kowAAhRZgF2ijAAAEEYAfbKMAAAMMoDdwowAAgwjEP3SjAAAD +CMBXeKMAAIIG2F98owAAggTgf4CjAAC6ezx/hKMAAPB/MPMEmwAAAQAAAAibAAACAAAA +DJsAAAMAAAAQmwAABAAAABSbAAAFAAAAGJsAAAgAAAAcmwAACQAAACCbAAAKAAAAJJsA +AAsAAAAsmwAADQAAADCbAAAQAAAANJsAABEAAAA8mwAAEwAAAECbAAAUAAAARJsAABUA +AABImwAAGAAAAEybAAAZAAAAUJsAABoAAABUmwAAGwAAAFibAAAcAAAAXJsAAB0AAABg +mwAAIAAAAGibAAAiAAAAbJsAACMAAABwmwAAJAAAAHSbAAAlAAAAeJsAACgAAAB8mwAA +KQAAAICbAAAqAAAAhJsAACsAAACImwAALAAAAJCbAAAwAAAAlJsAADEAAACYmwAAMgAA +AKCbAAA0AAAApJsAADUAAAComwAANQAAAKybAAA1AAAAsJsAADUAAAC0mwAANQAAALib +AAA1AAAAvJsAADUAAADAmwAANQAAAMSbAAA1AAAAyJsAADUAAADMmwAANQAAANCbAAA1 +AAAA1JsAADUAAADYmwAANQAAANybAAA1AAAA4JsAADUAAADkmwAANQAAAOibAAA1AAAA +7JsAADUAAADwmwAANQAAAPSbAAA1AAAA+JsAABAAAAD8mwAAGgAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAACaAAAAAAAAAAAAAASaAAAAAAAAQAAAAAiaAAAAAAAAgAAAAAya +AAAAAAAAgQEAABCaAAAAAAAAwQEAABSaAAAAAAAAAQAAABiaAAAAAAAAQQAAAByaAAAA +AAAAgQAAACCaAAAAAAAAaAEAACSaAAAAAAAAqAEAACiaAAAAAAAA6AEAACyaAAAAAAAA +KAAAADCaAAAAAAAAaAAAADSaAAAAAAAAiQEAADiaAAAAAAAAyQEAADyaAAAAAAAACQAA +AECaAAAAAAAASQAAAESaAAAAAAAAiQAAAEiaAAAAAAAAkAEAAEyaAAAAAAAA0AEAAFCa +AAAAAAAAEAAAAFSaAAAAAAAAUAAAAFiaAAAAAAAAkAAAAFyaAAAAAAAAkQEAAGCaAAAA +AAAA0QEAAGSaAAAAAAAAEQAAAGiaAAAAAAAAUQAAAGyaAAAAAAAAkQAAAHCaAAAAAAAA +eAEAAHSaAAAAAAAAuAEAAHiaAAAAAAAA+AEAAHyaAAAAAAAAOAAAAICaAAAAAAAAeAAA +AISaAAAAAAAAmQEAAIiaAAAAAAAA2QEAAIyaAAAAAAAAGQAAAJCaAAAAAAAAWQAAAJSa +AAAAAAAAmQAAAJiaAAAAAAAA2QAAAJyaAAAAAAAA+QAAAKCaAAAAAAAA+QAAAKSaAAAA +AAAA+QAAAKiaAAAAAAAA+QAAAKyaAAAAAAAA+QAAALCaAAAAAAAA+QAAALSaAAAAAAAA ++QAAALiaAAAAAAAA+QAAALyaAAAAAAAA+QAAAMCaAAAAAAAA+QAAAMSaAAAAAAAA+QAA +AMiaAAAAAAAA+QAAAMyaAAAAAAAA+QAAANCaAAAAAAAA+QAAANSaAAAAAAAA+QAAANia +AAAAAAAA+QAAANyaAAAAAAAA+QAAAOCaAAAAAAAA+QAAAOSaAAAAAAAA+QAAAOiaAAAA +AAAA+QAAAOyaAAAAAAAA+QAAAPCaAAAAAAAA+QAAAPSaAAAAAAAA+QAAAPiaAAAAAAAA ++QAAAPyaAAAAAAAA+QAAANSYAAAgAAAAAAAAAAAAAADQmAAACBQAAggUAQIIFAACCBQA +AggUAQIAAAAAAAAAANyYAADAIKAAwCCgAMAg4ADAIOAAwCDgAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAJyYAAAAAADwAAAA8AAAAPAAAADwAAAA8JyYAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAJyYAAAAAAADAAAAAwAAAAMAAAADAAAAA5yYAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyY +AAAAAEBAAABAQAAAQEAAAEBAAABAQJyYAAAAAAVlAAAFZQAABWUAAAVlAAAFZZyYAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAAEIA +AABCAAAAQgAAAEIAAABCAJyYAAAAALUAAAC1AAAAtQAAALUAAAC1AJyYAAAAAAMAAAAD +AAAAAwAAAAMAAAADAJyYAAAAAPcAAAD3AAAA9wAAAPcAAAD3AJyYAAAAAJ0AAACdAAAA +nQAAAJ0AAACdAJyYAAAAACIAAAAiAAAAIgAAACIAAAAiAJyYAAAAACIEAAAiBAAAIgQA +ACIEAAAiBJyYAAAYACMAGAAjABgAIwAYACMAGAAjAJyYAAAAACgAAAAoAGAAKABgACgA +YAAoAJyYAADAAFAAwABQAMMAUADDAFAAwwBQAJyYAAB/AAQAfwAEAH8ABAB/AAQAfwAE +AJyYAABYBAAAWAQAAFgEAABYBAAAWAQAAJyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyY +AAAAwAAAAMAAAADAAAAAwAAAAMAAANiYAAAwAkAAMAJAADACQAAwAkAAMAJAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAAZAAAAGQAAABkAAAAZAAAAGQAAJyYAAAACAAA +AAgAAAAIAAAACAAAAAgAAMyYAAAOAAAADgAAAA4AAAAOAAAADgAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AABBUjUyMTAAQVI1MjExAEFSNTIxMgBSRjUxMTEAUkY1MTEyAFJGMjQxMwBBdGhlcm9z +IDIzMTMgV2lTb0MAQXRoZXJvcyA1MjEyIChGUEdBKQBBdGhlcm9zIDUyMTEgKEZQR0Ep +AEF0aGVyb3MgNTIxMABBdGhlcm9zIDUyMTEAQXRoZXJvcyA1MzEyIFdpU29DAEF0aGVy +b3MgNTIxMgBEQgBERUJVRwBOQQBOT19DT1VOVFJZX1NFVABBTABBTEJBTklBAERaAEFM +R0VSSUEAQVIAQVJHRU5USU5BAEFNAEFSTUVOSUEAQVUAQVVTVFJBTElBAEFUAEFVU1RS +SUEAQVoAQVpFUkJBSUpBTgBCSABCQUhSQUlOAEJZAEJFTEFSVVMAQkUAQkVMR0lVTQBC +WgBCRUxJWkUAQk8AQk9MVklBAEJSAEJSQVpJTABCTgBCUlVORUkgREFSVVNTQUxBTQBC +RwBCVUxHQVJJQQBDQQBDQU5BREEAQ0wAQ0hJTEUAQ04AQ0hJTkEAQ08AQ09MT01CSUEA +Q1IAQ09TVEEgUklDQQBIUgBDUk9BVElBAENZAENZUFJVUwBDWgBDWkVDSCBSRVBVQkxJ +QwBESwBERU5NQVJLAERPAERPTUlOSUNBTiBSRVBVQkxJQwBFQwBFQ1VBRE9SAEVHAEVH +WVBUAFNWAEVMIFNBTFZBRE9SAEVFAEVTVE9OSUEARkkARklOTEFORABGUgBGUkFOQ0UA +RjIARlJBTkNFX1JFUwBHRQBHRU9SR0lBAERFAEdFUk1BTlkAR1IAR1JFRUNFAEdUAEdV +QVRFTUFMQQBITgBIT05EVVJBUwBISwBIT05HIEtPTkcASFUASFVOR0FSWQBJUwBJQ0VM +QU5EAElOAElORElBAElEAElORE9ORVNJQQBJUgBJUkFOAElFAElSRUxBTkQASUwASVNS +QUVMAElUAElUQUxZAEpQAEpBUEFOAEoxAEpBUEFOMQBKMgBKQVBBTjIASjMASkFQQU4z +AEo0AEpBUEFONABKNQBKQVBBTjUASk8ASk9SREFOAEtaAEtBWkFLSFNUQU4AS1AATk9S +VEggS09SRUEAS1IAS09SRUEgUkVQVUJMSUMASzIAS09SRUEgUkVQVUJMSUMyAEtXAEtV +V0FJVABMVgBMQVRWSUEATEIATEVCQU5PTgBMSQBMSUVDSFRFTlNURUlOAExUAExJVEhV +QU5JQQBMVQBMVVhFTUJPVVJHAE1PAE1BQ0FVAE1LAE1BQ0VET05JQQBNWQBNQUxBWVNJ +QQBNWABNRVhJQ08ATUMATU9OQUNPAE1BAE1PUk9DQ08ATkwATkVUSEVSTEFORFMATloA +TkVXIFpFQUxBTkQATk8ATk9SV0FZAE9NAE9NQU4AUEsAUEFLSVNUQU4AUEEAUEFOQU1B +AFBFAFBFUlUAUEgAUEhJTElQUElORVMAUEwAUE9MQU5EAFBUAFBPUlRVR0FMAFBSAFBV +RVJUTyBSSUNPAFFBAFFBVEFSAFJPAFJPTUFOSUEAUlUAUlVTU0lBAFNBAFNBVURJIEFS +QUJJQQBTRwBTSU5HQVBPUkUAU0sAU0xPVkFLIFJFUFVCTElDAFNJAFNMT1ZFTklBAFpB +AFNPVVRIIEFGUklDQQBFUwBTUEFJTgBTRQBTV0VERU4AQ0gAU1dJVFpFUkxBTkQAU1kA +U1lSSUEAVFcAVEFJV0FOAFRIAFRIQUlMQU5EAFRUAFRSSU5JREFEICYgVE9CQUdPAFRO +AFRVTklTSUEAVFIAVFVSS0VZAFVBAFVLUkFJTkUAQUUAVU5JVEVEIEFSQUIgRU1JUkFU +RVMAR0IAVU5JVEVEIEtJTkdET00AVVMAVU5JVEVEIFNUQVRFUwBVWQBVUlVHVUFZAFVa +AFVaQkVLSVNUQU4AVkUAVkVORVpVRUxBAFZOAFZJRVQgTkFNAFlFAFlFTUVOAFpXAFpJ +TUJBQldFAAAAAAAAAAAAAAAAACVzOiBwaHlDbnQxIDB4JXgsIHJlc2V0dGluZyBjb3Vu +dGVyIHZhbHVlIHRvIDB4JXgKAAAAAAAAAAAAAAAAAAAlczogcGh5Q250MiAweCV4LCBy +ZXNldHRpbmcgY291bnRlciB2YWx1ZSB0byAweCV4CgAAAAAAAAAAAAAAAAAAMC45LjE0 +LjkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJBOIExEAiBPsExEA +HhSCFA8AghTmFBIAXhVdFhQAXRbBFhQAwRbaFhcAAAAAAAAAjBSgFLQUyBQ8FFAUZBR4 +FAAAMhRGFFoUbhQAAGwJhQmeCYoJqAkAAGwJhQmeCYoJAABsCYUJngmKCQAAbAmFCZ4J +igkAAHEWhRaZFq0WwRYAAFoUghSqFAAAgBaoFgAAfBWQFaQVuBXMFeAV9BUIFhwWMBZE +FgAAAAAAAAAAAABxCXYJewmACY8JlAmZCaMJAAAAAAAAAAAAAAAAAAAAAHEJdgl7CYAJ +jwmUCZkJAABxCXYJewmACY8JlAmZCQAAcQl2CXsJgAmPCZQJmQkAALQJAACFCQAAPBRQ +FGQUeBQAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAA +AAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAE +AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAA +AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAA +AAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAA +AAAAAAAAIAAAAAAAAAAAAAAAAAAAADIURhRaFG4UAABaFIIUqhSAFqgWAAAAAAAAAAAA +AAAAfBWQFaQVuBXMFeAV9BUIFhwWMBZEFgAAAAAAAAAAAABgAAAAqAkAAAEAAACjCQAA +AQAAALQJAAABAAAAZwAAAKgJAAABAAAAowkAAAEAAAC0CQAAAQAAAGEAAACoCQAAAQAA +AKMJAAABAAAAtAkAAAEAAABlAAAAqAkAAAEAAACjCQAAAQAAALQJAAABAAAASgAAAKgJ +AAAAAAAAowkAAAAAAAC0CQAAAQAAAEsAAACoCQAAAQAAAKMJAAABAAAAtAkAAAEAAABq +AAAAqAkAAAEAAACjCQAAAQAAALQJAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECcBcLAIwAAAAA +AAECKCMPABIAAAAAAAEC4C4KAJgCAAAAAAECUEYOACQCAAAAAAECwF0JALAEAAAAAAEC +oIwNAEgEAAAAAAECgLsIAGAEAAAAAAEC8NIMAGwEAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA3AXCwCMAAAAAAABAygjDwASAAAA +AAABA+AuCgCYAgAAAAABA1BGDgAkAgAAAAABA8BdCQCwBAAAAAABA6CMDQBIBAAAAAAB +A4C7CABgBAAAAAABA/DSDABsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAQJwFwsAjAAAAAAAAQIoIw8AEgAAAAAAAQLgLgoAmAIA +AAAAAQJQRg4AJAIAAAAAAQLAXQkAsAQAAAAAAQKgjA0ASAQAAAAAAQKAuwgAYAQAAAAA +AQLw0gwAbAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAEDcBcLAIwAAAAAAAEDKCMPABIAAAAAAAED4C4KAJgCAAAAAAEDUEYOACQC +AAAAAAEDwF0JALAEAAAAAAEDoIwNAEgEAAAAAAEDgLsIAGAEAAAAAAED8NIMAGwEAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAOgD +CwCCAAAAAAABANAHCgSEAQAAAAABAHwVCQSLAQAAAAABAPgqCASWAQAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +BKIAAAAAAAAAAAAACKIAAEZGPlBGRj5QDKIAAGxBgGRsQYBkEKIAAAOgmQEDoJkBFKIA +ABDWTAQQ1kwEGKIAAEAAgBNAAIATHKIAAGAA4BtgAOAbIKIAAAqAUwwKgFMMJKIAADvf +FAA73xQAKKIAALUBAAC1AQAALKIAACAAAAAgAAAAnJgAAAAAAAAAAAAAnJgAAAAAAAAA +AAAAnJgAAAAAAAAAAAAAnJgAAAAAAAAAAAAAnJgAAAAAAAAAAAAAnJgAAAAAAAAAAAAA +nJgAAAAAAAAAAAAAnJgAAAAAAAAAAAAAnJgAAAAAAAAAAAAAnJgAAAAAAAAAAAAAnJgA +AAAAAAAAAAAAnJgAAAAAOAAAADgAnJgAAAAAAAAAAAAAnJgAAAAAAAAAAAAAnJgAAAAA +AAAAAAAAnJgAAPkABAD5AAQA1JgAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAJyYAAAA +AAAAAAAAAJyYAAAAAAAAAAAAAJyYAAAAAAAAAAAAAJyYAAAAAAAAAAAAAJyYAAAAAAAA +AAAAAJyYAAAAAAAQAAAAEJyYAAAAAAAEAAAABJyYAAAAAAAAAAAAAJyYAAAAAAAAAAAA +AJyYAAAAAAAAAAAAAJyYAAAAAAAAAAAACpyYAACAADgAgAA4ApyYAAAGAAIABgAAAJyY +AACSAAAAkgAAAJyYAACgAAAAoAAAAJyYAAAHAAQABwAEANSYAAAaAAAAGgAAAJyYAABI +AAAASAAAAJyYAAAQAAAAEAAAAJyYAAAIAAAACAAAAJyYAAAPAAAADwAAAJyYAADyAAAA +YgAAAJyYAABPkAAATJAAAJyYAABaEgAAmhIAAMyYAAAOAAAADwAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQJwFwsA +jAAAAAAAAQIoIw8AEgAAAAAAAQLgLgoAmAIAAAAAAQJQRg4AJAIAAAAAAQLAXQkAsAQA +AAAAAQKgjA0ASAQAAAAAAQKAuwgAYAQAAAAAAQLw0gwAbAQAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDcBcLAIwAAAAAAAEDKCMP +ABIAAAAAAAED4C4KAJgCAAAAAAEDUEYOACQCAAAAAAEDwF0JALAEAAAAAAEDoIwNAEgE +AAAAAAEDgLsIAGAEAAAAAAED8NIMAGwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAOgDGwCCAAAAAAABANAHGgSEAQAAAAABAHwV +GQSLAQAAAAABAPgqGASWAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAQDoAxsAAgAAAAAAAQDQBxoEBAEAAAAAAQB8FRkECwIAAAAAAQD4 +KhgEFgMAAAAAAAJwFwsADAQAAAAAAAIoIw8AEgQAAAAAAQLgLgoAGAYAAAAAAQJQRg4A +JAYAAAAAAQLAXQkAMAgAAAAAAQKgjA0ASAgAAAAAAQKAuwgAYAgAAAAAAQLw0gwAbAgA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAEE9AEHAIEAAAAAAAEE6AMCAIsBAAAAAAEE0AcGAJYCAAAAAAEEuAsBAJYDAAAAAAEC +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 +AAAAABQAAABUAwAAAAAAAAAAAAAGAAAAAAAAABQAAABsAwAAAAAAAAAAAAABAAAAAAAA +ABQAAACEAwAAAAAAAAAAAAABAAAAAAAAABwAAACcAwAAAAAAAAAAAAAkAAAAAAAAAEQO +EAAAAAAAHAAAALwDAAAAAAAAAAAAAC8AAAAAAAAARA4QAAAAAAAcAAAA3AMAAAAAAAAA +AAAADgAAAAAAAABEDhAAAAAAABQAAAAAAAAAAQABeBAMBwiQAQAAAAAAABQAAAAcAAAA +AAAAAAAAAAAzAAAAAAAAABwAAAA0AAAAAAAAAAAAAACVAAAAAAAAAEQOIEqGAoMDFAAA +AFQAAAAAAAAAAAAAAC0AAAAAAAAAJAAAAGwAAAAAAAAAAAAAAHsAAAAAAAAARA4gTowC +hgODBAAAAAAAABQAAACUAAAAAAAAAAAAAAAHAAAAAAAAABQAAACsAAAAAAAAAAAAAAAG +AAAAAAAAABQAAADEAAAAAAAAAAAAAAAbAAAAAAAAABQAAADcAAAAAAAAAAAAAAAgAAAA +AAAAABQAAAAAAAAAAQABeBAMBwiQAQAAAAAAABwAAAAcAAAAAAAAAAAAAAAxAAAAAAAA +AEEOEIMCAAAAFAAAAAAAAAABAAF4EAwHCJABAAAAAAAAFAAAABwAAAAAAAAAAAAAAAgA +AAAAAAAAFAAAADQAAAAAAAAAAAAAAAgAAAAAAAAAFAAAAEwAAAAAAAAAAAAAAAwAAAAA +AAAAJAAAAGQAAAAAAAAAAAAAAEsAAAAAAAAAQQ4QQQ4YRA4ggwOGAgAAABQAAACMAAAA +AAAAAAAAAAAUAAAAAAAAABQAAACkAAAAAAAAAAAAAAAUAAAAAAAAABQAAAC8AAAAAAAA +AAAAAAAVAAAAAAAAABQAAADUAAAAAAAAAAAAAABSAAAAAAAAABQAAADsAAAAAAAAAAAA +AABSAAAAAAAAABQAAAAEAQAAAAAAAAAAAAALAAAAAAAAABQAAAAcAQAAAAAAAAAAAAAc +AAAAAAAAABQAAAA0AQAAAAAAAAAAAAA7AAAAAAAAABQAAABMAQAAAAAAAAAAAAAfAQAA +AAAAABQAAAAAAAAAAQABeBAMBwiQAQAAAAAAADwAAAAcAAAAAAAAAAAAAAAkBgAAAAAA +AEIOEEIOGEIOIEIOKEEOMEEOOEQOQIMHhgaMBY0EjgOPAgAAAAAAAAAUAAAAXAAAAAAA +AAAAAAAAXAAAAAAAAAAcAAAAdAAAAAAAAAAAAAAAGAAAAAAAAABEDhAAAAAAABwAAACU +AAAAAAAAAAAAAABrAAAAAAAAAEEOEIMCAAAAHAAAALQAAAAAAAAAAAAAAOQAAAAAAAAA +RA4gSoYCgwM8AAAA1AAAAAAAAAAAAAAA9gEAAAAAAABCDhBCDhhCDiBCDihBDjBBDjhE +DkCDB4YGjAWNBI4DjwIAAAAAAAAAJAAAABQBAAAAAAAAAAAAAHQAAAAAAAAARA4gTowC +hgODBAAAAAAAABQAAAA8AQAAAAAAAAAAAACtAAAAAAAAABwAAABUAQAAAAAAAAAAAADl +AAAAAAAAAEEOEIMCAAAAFAAAAHQBAAAAAAAAAAAAABgAAAAAAAAAPAAAAIwBAAAAAAAA +AAAAAOgCAAAAAAAAQg4QQg4YQg4gQg4oQQ4wQQ44RA5AgweGBowFjQSOA48CAAAAAAAA +ACwAAADMAQAAAAAAAAAAAADKAgAAAAAAAEIOEEEOGEEOIEQOkAGDBIYDjAIAAAAAACQA +AAD8AQAAAAAAAAAAAACPAAAAAAAAAEQOIE6MAoYDgwQAAAAAAAAUAAAAJAIAAAAAAAAA +AAAAHAAAAAAAAAAkAAAAPAIAAAAAAAAAAAAAdwAAAAAAAABBDhBBDhhEDiCDA4YCAAAA +FAAAAGQCAAAAAAAAAAAAAAYAAAAAAAAAFAAAAAAAAAABAAF4EAwHCJABAAAAAAAAHAAA +ABwAAAAAAAAAAAAAAC0AAAAAAAAARA4QAAAAAAAcAAAAPAAAAAAAAAAAAAAAMwAAAAAA +AABEDhAAAAAAACQAAABcAAAAAAAAAAAAAADdAAAAAAAAAEQOMFiOAo0DjASGBYMGAAAU +AAAAhAAAAAAAAAAAAAAAXgAAAAAAAAAUAAAAnAAAAAAAAAAAAAAAYAIAAAAAAAAUAAAA +tAAAAAAAAAAAAAAAKQAAAAAAAAAUAAAAzAAAAAAAAAAAAAAAQQAAAAAAAAAkAAAA5AAA +AAAAAAAAAAAAkgAAAAAAAABEDiBOjAKGA4MEAAAAAAAAFAAAAAwBAAAAAAAAAAAAAGcA +AAAAAAAAFAAAACQBAAAAAAAAAAAAADIAAAAAAAAAJAAAADwBAAAAAAAAAAAAAJgAAAAA +AAAAQQ4QQQ4YRA4ggwOGAgAAABQAAABkAQAAAAAAAAAAAAAGAAAAAAAAABQAAAB8AQAA +AAAAAAAAAACvAAAAAAAAABQAAACUAQAAAAAAAAAAAAAGAAAAAAAAABQAAACsAQAAAAAA +AAAAAABKAAAAAAAAABQAAADEAQAAAAAAAAAAAACMAAAAAAAAABQAAADcAQAAAAAAAAAA +AAABAAAAAAAAABQAAAAAAAAAAQABeBAMBwiQAQAAAAAAABwAAAAcAAAAAAAAAAAAAABb +AAAAAAAAAEQOEAAAAAAAPAAAADwAAAAAAAAAAAAAAI4EAAAAAAAAQg4QQg4YQg4gQg4o +QQ4wQQ44RA5QgweGBowFjQSOA48CAAAAAAAAABwAAAB8AAAAAAAAAAAAAAAOAAAAAAAA +AEQOEAAAAAAAHAAAAJwAAAAAAAAAAAAAAPcAAAAAAAAAQQ4QRA4wgwIUAAAAvAAAAAAA +AAAAAAAAOAAAAAAAAAAcAAAA1AAAAAAAAAAAAAAAqwAAAAAAAABEDiBKhgKDAxQAAAAA +AAAAAQABeBAMBwiQAQAAAAAAABQAAAAcAAAAAAAAAAAAAACkAAAAAAAAACQAAAA0AAAA +AAAAAAAAAABGAAAAAAAAAEEOEEEOGEQOIIMDhgIAAAAUAAAAXAAAAAAAAAAAAAAANwAA +AAAAAAAUAAAAdAAAAAAAAAAAAAAA4wAAAAAAAAAUAAAAAAAAAAEAAXgQDAcIkAEAAAAA +AAAUAAAAHAAAAAAAAAAAAAAAEwAAAAAAAAAUAAAANAAAAAAAAAAAAAAAVwAAAAAAAAAU +AAAATAAAAAAAAAAAAAAABwAAAAAAAAAUAAAAZAAAAAAAAAAAAAAAngAAAAAAAAAUAAAA +AAAAAAEAAXgQDAcIkAEAAAAAAAAUAAAAHAAAAAAAAAAAAAAABgAAAAAAAAAUAAAANAAA +AAAAAAAAAAAALgAAAAAAAAAUAAAATAAAAAAAAAAAAAAAmQAAAAAAAAAUAAAAZAAAAAAA +AAAAAAAAhwAAAAAAAAAsAAAAfAAAAAAAAAAAAAAAtwEAAAAAAABCDhBCDhhBDiBBDihE +DjCDBYYEjAONAgAUAAAAAAAAAAEAAXgQDAcIkAEAAAAAAAAcAAAAHAAAAAAAAAAAAAAA +IAAAAAAAAABEDhAAAAAAABwAAAA8AAAAAAAAAAAAAAAfAAAAAAAAAEQOEAAAAAAAHAAA +AFwAAAAAAAAAAAAAAG0AAAAAAAAARA4gSoYCgwMUAAAAfAAAAAAAAAAAAAAAMQAAAAAA +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 +AQABeBAMBwiQAQAAAAAAACQAAAAcAAAAAAAAAAAAAACpAAAAAAAAAEQOIE6MAoYDgwQA +AAAAAAAcAAAARAAAAAAAAAAAAAAALQAAAAAAAABEDhAAAAAAABwAAABkAAAAAAAAAAAA +AAAzAAAAAAAAAEQOEAAAAAAAJAAAAIQAAAAAAAAAAAAAAAEBAAAAAAAARA4wWI4CjQOM +BIYFgwYAABQAAACsAAAAAAAAAAAAAABwAAAAAAAAABwAAADEAAAAAAAAAAAAAABxAAAA +AAAAAEQOEAAAAAAAHAAAAOQAAAAAAAAAAAAAAO8DAAAAAAAARA4QAAAAAAAUAAAABAEA +AAAAAAAAAAAADwAAAAAAAAAUAAAAHAEAAAAAAAAAAAAAFAAAAAAAAAAUAAAANAEAAAAA +AAAAAAAAGQAAAAAAAAAUAAAATAEAAAAAAAAAAAAAMQAAAAAAAAAkAAAAZAEAAAAAAAAA +AAAAZAAAAAAAAABCDhBBDhhBDiCDBIYDjAIAFAAAAIwBAAAAAAAAAAAAAAYAAAAAAAAA +FAAAAKQBAAAAAAAAAAAAAJAAAAAAAAAAFAAAALwBAAAAAAAAAAAAAAYAAAAAAAAAFAAA +ANQBAAAAAAAAAAAAAEoAAAAAAAAAFAAAAOwBAAAAAAAAAAAAALEAAAAAAAAAFAAAAAQC +AAAAAAAAAAAAAAEAAAAAAAAAFAAAAAAAAAABAAF4EAwHCJABAAAAAAAAHAAAABwAAAAA +AAAAAAAAAFsAAAAAAAAARA4QAAAAAAAcAAAAPAAAAAAAAAAAAAAA6AAAAAAAAABHDpAB +AAAAADwAAABcAAAAAAAAAAAAAAAAAQAAAAAAAEIOEEIOGEIOIEIOKEEOMEEOOEQOQIMH +hgaMBY0EjgOPAgAAAAAAAAA8AAAAnAAAAAAAAAAAAAAABwUAAAAAAABCDhBCDhhCDiBC +DihBDjBBDjhEDkCDB4YGjAWNBI4DjwIAAAAAAAAAHAAAANwAAAAAAAAAAAAAAD0AAAAA +AAAAQQ4QgwIAAAAcAAAA/AAAAAAAAAAAAAAA9wAAAAAAAABBDhBEDjCDAhQAAAAcAQAA +AAAAAAAAAAA4AAAAAAAAACwAAAA0AQAAAAAAAAAAAAC+AgAAAAAAAEIOEEIOGEEOIEEO +KEQOMIMFhgSMA40CABQAAAAAAAAAAQABeBAMBwiQAQAAAAAAABQAAAAcAAAAAAAAAAAA +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 +AABEDjBYjgKNA4wEhgWDBgAAFAAAAKwAAAAAAAAAAAAAAHAAAAAAAAAAHAAAAMQAAAAA +AAAAAAAAAHkAAAAAAAAARA4QAAAAAAAcAAAA5AAAAAAAAAAAAAAAtwMAAAAAAABBDhCD +AgAAABQAAAAEAQAAAAAAAAAAAAAPAAAAAAAAABQAAAAcAQAAAAAAAAAAAAAUAAAAAAAA +ABQAAAA0AQAAAAAAAAAAAAAZAAAAAAAAABQAAABMAQAAAAAAAAAAAAAxAAAAAAAAACQA +AABkAQAAAAAAAAAAAABaAAAAAAAAAEIOEEEOGEEOIIMEhgOMAgAkAAAAjAEAAAAAAAAA +AAAAYgEAAAAAAABEDlBejwKOA40EjAWGBoMHFAAAALQBAAAAAAAAAAAAAPgAAAAAAAAA +FAAAAMwBAAAAAAAAAAAAAFUAAAAAAAAAFAAAAOQBAAAAAAAAAAAAAGkAAAAAAAAAFAAA +APwBAAAAAAAAAAAAADsBAAAAAAAAFAAAABQCAAAAAAAAAAAAABMAAAAAAAAAFAAAAAAA +AAABAAF4EAwHCJABAAAAAAAAHAAAABwAAAAAAAAAAAAAAFUAAAAAAAAAQQ4QgwIAAAAc +AAAAPAAAAAAAAAAAAAAAOQAAAAAAAABBDhCDAgAAABQAAABcAAAAAAAAAAAAAABOAAAA +AAAAABQAAAB0AAAAAAAAAAAAAAAIAAAAAAAAABQAAACMAAAAAAAAAAAAAAAIAAAAAAAA +ACQAAACkAAAAAAAAAAAAAAAQAQAAAAAAAEEOEEEOGEQOIIMDhgIAAAAcAAAAzAAAAAAA +AAAAAAAAMAAAAAAAAABBDhCDAgAAABwAAADsAAAAAAAAAAAAAAANBAAAAAAAAEQOgAEA +AAAAHAAAAAwBAAAAAAAAAAAAAKcAAAAAAAAAQQ4QgwIAAAAcAAAALAEAAAAAAAAAAAAA +HgEAAAAAAABEDiBKhgKDAxwAAABMAQAAAAAAAAAAAACsAAAAAAAAAEQOIEqGAoMDJAAA +AGwBAAAAAAAAAAAAAK0BAAAAAAAAQg4QQQ4YQQ4ggwSGA4wCACQAAACUAQAAAAAAAAAA +AADRAAAAAAAAAEIOEEEOGEEOIIMEhgOMAgAcAAAAvAEAAAAAAAAAAAAATwAAAAAAAABB +DhCDAgAAABwAAADcAQAAAAAAAAAAAACGAAAAAAAAAEQOEAAAAAAAFAAAAPwBAAAAAAAA +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 +AAB4hwIAAAAAAGhAAAAAAAAADwAAAAEAAAAIAAAAAAAAABgAAAAAAAAAKwAAAAEAAAAC +AAAAAAAAAAAAAAAAAAAAQGIBAAAAAAAIiQAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAA +AAAAACYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAODHAgAAAAAAMEsAAAAAAAAPAAAAAwAA +AAgAAAAAAAAAGAAAAAAAAAAzAAAAAQAAADIAAAAAAAAAAAAAAAAAAABI6wEAAAAAAMwF +AAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAQgAAAAEAAAAyAAAAAAAAAAAAAAAA +AAAAIPEBAAAAAABzAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAABAAAAAAAAAFcAAAABAAAA +AwAAAAAAAAAAAAAAAAAAAKDxAQAAAAAApBcAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAA +AAAAAABSAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQEwMAAAAAABACAAAAAAAADwAAAAcA +AAAIAAAAAAAAABgAAAAAAAAAYgAAAAEAAAACAAAAAAAAAAAAAAAAAAAASAkCAAAAAADg +QQAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAF0AAAAEAAAAAAAAAAAAAAAAAAAA +AAAAACAVAwAAAAAAIC4AAAAAAAAPAAAACQAAAAgAAAAAAAAAGAAAAAAAAABsAAAACAAA +AAMAAAAAAAAAAAAAAAAAAABASwIAAAAAALABAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAA +AAAAAAAAcQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAQEsCAAAAAABOAwAAAAAAAAAAAAAA +AAAAAQAAAAAAAAAAAAAAAAAAAHoAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAI5OAgAAAAAA +AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAwAAAAAAAAAAAAAAAAAA +AAAAAACOTgIAAAAAAIoAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAIA +AAAAAAAAAAAAAAAAAAAAAAAAWFMCAAAAAACgIwAAAAAAABAAAAAKAAAACAAAAAAAAAAY +AAAAAAAAAAkAAAADAAAAAAAAAAAAAAAAAAAAAAAAAPh2AgAAAAAAgBAAAAAAAAAAAAAA +AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAB +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAFAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAwAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAHAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAwALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAJAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAwAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwANAAAAAAAAAAAAAAAA +AAAAAAABAAAAEgABADiGAAAAAAAApAAAAAAAAAAMAAAAEgABAJ93AAAAAAAABgAAAAAA +AAAXAAAAEgABADznAAAAAAAAlAAAAAAAAAAiAAAAEgABAD1eAAAAAAAAlwAAAAAAAAAt +AAAAEgABAPXdAAAAAAAAkQAAAAAAAAA4AAAAEgABAL5UAAAAAAAA1AAAAAAAAABDAAAA +EgABAMspAQAAAAAA0QAAAAAAAABOAAAAEQAHAKADAAAAAAAApAEAAAAAAABZAAAAEgAB +AGrqAAAAAAAAIQAAAAAAAABkAAAAEgABAIpWAAAAAAAALgAAAAAAAABvAAAAEgABAIZL +AAAAAAAAMQAAAAAAAAB6AAAAEgABAGfkAAAAAAAAIgAAAAAAAACFAAAAEgABABLhAAAA +AAAAEAAAAAAAAACQAAAAEgABABDYAAAAAAAACAAAAAAAAACbAAAAEgABAKXGAAAAAAAA +sQAAAAAAAACmAAAAEgABAN/OAAAAAAAA9wAAAAAAAACxAAAAEgABAO0GAAAAAAAALwAA +AAAAAAC8AAAAEgABAKi7AAAAAAAAqQAAAAAAAADHAAAAEgABANSnAAAAAAAAlgAAAAAA +AADSAAAAEgABALiWAAAAAAAACAAAAAAAAADdAAAAEgABAKN7AAAAAAAAKQAAAAAAAADo +AAAAEgABAH7pAAAAAAAABgAAAAAAAADzAAAAEgABAFXGAAAAAAAABgAAAAAAAAD+AAAA +EgABAJzWAAAAAAAAFAAAAAAAAAAJAQAAEgABAFD1AAAAAAAAcwAAAAAAAAAUAQAAEgAB +AA0FAAAAAAAAdAAAAAAAAAAfAQAAEgABAEyJAAAAAAAABgAAAAAAAAAqAQAAEgABAL0d +AQAAAAAAaQAAAAAAAAA1AQAAEgABAIV+AAAAAAAABgAAAAAAAABAAQAAEgABAMCWAAAA +AAAACAAAAAAAAABLAQAAEQAHAAAPAAAAAAAApAEAAAAAAABWAQAAEgABAOPiAAAAAAAA +lwAAAAAAAABhAQAAEgABAJ98AAAAAAAAZwAAAAAAAABsAQAAEgABAEUCAAAAAAAAIQAA +AAAAAAB3AQAAEgABAHQfAQAAAAAAVQAAAAAAAACCAQAAEgABAG6mAAAAAAAAHAAAAAAA +AACNAQAAEAAAAAAAAAAAAAAAAAAAAAAAAACuAQAAEgABAJNbAAAAAAAAMwAAAAAAAAC5 +AQAAEgABABS+AAAAAAAAqQAAAAAAAADEAQAAEgABAB5dAAAAAAAAIQAAAAAAAADPAQAA +EgABAPuOAAAAAAAAQwAAAAAAAADaAQAAEgABAD6SAAAAAAAAmgAAAAAAAADlAQAAEgAB +AOq+AAAAAAAAMwAAAAAAAADwAQAAEgABAIt+AAAAAAAASgAAAAAAAAD7AQAAEgABAOFa +AAAAAAAALAAAAAAAAAAGAgAAEgABANV3AAAAAAAAMwAAAAAAAAARAgAAEgABAGWUAAAA +AAAALwAAAAAAAAAcAgAAEgABAHrjAAAAAAAAHgAAAAAAAAAnAgAAEgABAFPiAAAAAAAA +cgAAAAAAAAAyAgAAEgABANb1AAAAAAAANAAAAAAAAAA9AgAAEgABAFjHAAAAAAAAWwAA +AAAAAABIAgAAEgABAIRWAAAAAAAABgAAAAAAAABTAgAAEgABAJjjAAAAAAAAmgAAAAAA +AABeAgAAEgABABxNAAAAAAAAGQYAAAAAAABpAgAAEgABAC2TAAAAAAAADwEAAAAAAAB0 +AgAAEgABAJHfAAAAAAAAGgAAAAAAAAB/AgAAEgABAPQBAAAAAAAAUQAAAAAAAACKAgAA +EgABAMXiAAAAAAAAHgAAAAAAAACVAgAAEgABAHMOAQAAAAAAFgEAAAAAAACgAgAAEgAB +AHjpAAAAAAAABgAAAAAAAACrAgAAEgABAMrVAAAAAAAAJAAAAAAAAAC2AgAAEgABAJvI +AAAAAAAAAAEAAAAAAADBAgAAEgABANNcAAAAAAAAFgAAAAAAAADMAgAAEgABAICJAAAA +AAAAmQAAAAAAAADXAgAAEgABAPaNAAAAAAAAdAAAAAAAAADiAgAAEgABAAx3AAAAAAAA +HAAAAAAAAADtAgAAEgABAFQTAQAAAAAArQAAAAAAAAD4AgAAEgABALdsAAAAAAAA9gEA +AAAAAAADAwAAEgABALNfAAAAAAAAAQAAAAAAAAAOAwAAEgABAAEUAQAAAAAANwAAAAAA +AAAZAwAAEgABAEN5AAAAAAAAYAIAAAAAAAAkAwAAEgABAPwAAAAAAAAA+AAAAAAAAAAz +AwAAEgABALIAAQAAAAAACwMAAAAAAAA+AwAAEgABAITpAAAAAAAAcwAAAAAAAABJAwAA +EgABABGTAAAAAAAADgAAAAAAAABUAwAAEgABAAoSAQAAAAAARwEAAAAAAABfAwAAEgAB +AMPlAAAAAAAAzwAAAAAAAABqAwAAEgABAADqAAAAAAAACAAAAAAAAAB1AwAAEgABAAmQ +AAAAAAAACwAAAAAAAACAAwAAEgABAB2/AAAAAAAAAQEAAAAAAACLAwAAEgABAL2+AAAA +AAAALQAAAAAAAACWAwAAEgABAO+hAAAAAAAASgAAAAAAAAChAwAAEgABADVTAAAAAAAA +DgAAAAAAAACsAwAAEgABAOlcAAAAAAAANQAAAAAAAAC3AwAAEgABAGYCAAAAAAAAIgEA +AAAAAADNAwAAEgABADX6AAAAAAAAHAAAAAAAAADYAwAAEgABANV+AAAAAAAAjAAAAAAA +AADjAwAAEgABAB9eAAAAAAAAHgAAAAAAAADuAwAAEgABADyIAAAAAAAAEwAAAAAAAAD5 +AwAAEgABAMP1AAAAAAAAEwAAAAAAAAAEBAAAEgABAByuAAAAAAAAIgAAAAAAAAAPBAAA +EgABAMrZAAAAAAAAYQMAAAAAAAAaBAAAEgABAGrXAAAAAAAABwAAAAAAAAAlBAAAEgAB +AFFXAAAAAAAAhwAAAAAAAAAwBAAAEgABACKHAAAAAAAANwAAAAAAAAA7BAAAEgABAHAh +AQAAAAAAMAAAAAAAAABGBAAAEgABAEnYAAAAAAAA9gAAAAAAAABRBAAAEgABAP+SAAAA +AAAAAQAAAAAAAABcBAAAEgABACxbAAAAAAAAZwAAAAAAAABnBAAAEgABAGaNAAAAAAAA +kAAAAAAAAAByBAAAEgABAMG9AAAAAAAAUQAAAAAAAAB9BAAAEgABAJvJAAAAAAAABwUA +AAAAAACIBAAAEgABAFERAQAAAAAAuQAAAAAAAACTBAAAEgABAPjgAAAAAAAABgAAAAAA +AACeBAAAEgABAHiMAAAAAAAAHwAAAAAAAACpBAAAEgABAPLqAAAAAAAAUgAAAAAAAAC0 +BAAAEgABAHAcAQAAAAAA+AAAAAAAAAC/BAAAEgABAPuXAAAAAAAAOwAAAAAAAADKBAAA +EgABAGtaAAAAAAAAJQAAAAAAAADVBAAAEgABADLkAAAAAAAAIQAAAAAAAADgBAAAEgAB +AKLOAAAAAAAAPQAAAAAAAADrBAAAEgABAP3EAAAAAAAAFAAAAAAAAAD2BAAAEgABAMkf +AQAAAAAAOQAAAAAAAAABBQAAEgABAHLpAAAAAAAABgAAAAAAAAAMBQAAEAAAAAAAAAAA +AAAAAAAAAAAAAAAZBQAAEgABAOV4AAAAAAAAXgAAAAAAAAAkBQAAEgABAHNjAAAAAAAA +OwAAAAAAAAAvBQAAEgABAFAgAQAAAAAACAAAAAAAAAA6BQAAEgABANbfAAAAAAAAdwAA +AAAAAABFBQAAEgABANwDAAAAAAAAkQAAAAAAAABWBQAAEgABAJAWAQAAAAAAtwMAAAAA +AABhBQAAEgABAD9dAAAAAAAAQQAAAAAAAABsBQAAEgABADh9AAAAAAAAmAAAAAAAAAB3 +BQAAEgABACLhAAAAAAAADgAAAAAAAACCBQAAEgABAJwqAQAAAAAATwAAAAAAAACNBQAA +EgABAPpiAAAAAAAAUgAAAAAAAACYBQAAEgABAFKJAAAAAAAALgAAAAAAAACjBQAAEgAB +AOyjAAAAAAAABgEAAAAAAACuBQAAEgABACh3AAAAAAAAdwAAAAAAAAC5BQAAEQAHAMAQ +AAAAAAAApAEAAAAAAADEBQAAEgABAMjrAAAAAAAAMAAAAAAAAADPBQAAEgABANDnAAAA +AAAAFgAAAAAAAADaBQAAEgABANyGAAAAAAAARgAAAAAAAADlBQAAEgABADaYAAAAAAAA +3AAAAAAAAADwBQAAEgABAInkAAAAAAAAOgEAAAAAAAD7BQAAEgABAP2QAAAAAAAAbgAA +AAAAAAAGBgAAEgABAAGTAAAAAAAAEAAAAAAAAAARBgAAEgABAJLmAAAAAAAAqgAAAAAA +AAAcBgAAEgABAHUUAQAAAAAAMgEAAAAAAAAnBgAAEgABAKAhAQAAAAAADQQAAAAAAAAy +BgAAEgABADyUAAAAAAAAKQAAAAAAAAA9BgAAEgABAPZVAAAAAAAABwAAAAAAAABIBgAA +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 +YjFiMgB6ejAwMmRiNDYwAHp6MGI3YjgzNjgAenowNWI4YzY1YQB6ejAwNWI0MGFkAHp6 +MDViOTQyZWQAenowZDk0Y2QwNAB6ejAwMTlmNDcwAHp6MDJkYmU3M2QAenowMDViNjky +YgB6ejBiNmQyMzI1AHp6MDA1Yjg1M2QAenowMDE2ZDkyZQB6ejBjZmIxODc1AHp6MDAy +ZGIzMWMAenowMmRhYmJhYwB6ejAwMGI2YzY4AHp6MDAwYjZiZjgAenowMmRiNWJmMAB6 +ejAxNmUxZGZkAHp6MGI3MGU5OGMAenowNmUwZjZjMgB6ejAwNjdkMmIxAHp6MGI2Y2Ez +MjUAenowMDViNmNmZAB6ejAxNmUwZGZkAHp6MDAwYjZmNjgAenowMDViNDhhZAB6ejAy +ZGJmMWIyAHp6MDA1Yjg4Y2IAenowMzNlYzhiZgB6ejBkYjRjOTRkAHp6MDJkYjNiYWMA +YXRoX2hhbF9kbWFfYmVhY29uX3Jlc3BvbnNlX3RpbWUAenowMGI2ZjE2MQB6ejBkYzU4 +NzE4AHp6MGRiMDkxMGUAenowMGI2ZTI3YQB6ejAyZGJiYWIyAHp6MGI2ZDFlZmYAenow +MDViNjRmZAB6ejAwMGI2ZDUyAHp6MGI2YzllZmYAenowMmRiZDg3NQB6ejAyZGIzMWIy +AHp6MDBiNzA5MjMAenowMDBiNmQxZAB6ejAwYjZkNDUwAHp6MGI2YzIzMjUAenowMmRi +ZGFiMgB6ejAwMDViNjMyAHp6MDZkZjJmNTcAenowMDE2ZGE1MAB6ejAwMDY3ZDMyAHp6 +MDBiNmQ5MjMAenowMDJkYjUxYwB6ejAxNmRhN2YwAHp6MDE2ZGNiZmUAenowMDE2ZGVj +MQB6ejAwMTZkZjJjAHp6MGI4MTQ2MTIAenowMTZkOTkyMAB6ejAyZGIxYmFjAHp6MGRj +Nzg3MTgAenowNWI3MDFlMAB6ejAwMGI2YjEwAHp6MGI3MDllZmYAenowMTZkZjg5YgBh +dGhfaGFsX2F0dGFjaAB6ejA2ZTE0ZGQxAHp6MDE2ZGFiMmQAenowMmRiMTM1ZAB6ejBl +MGI2ZjIzAHp6MDE2ZTI5MWQAenowMDBiNmZlOAB6ejAwMTZkOTQ4AHp6MDE2ZTIwOWIA +enowYjcwMWVmZgB6ejAwMGI2YzlkAHp6MDAwNWI1YTIAenowMmRiMTcwYQBhdGhfaGFs +X2NvbXB1dGV0eHRpbWUAenowMmRiNWJhYwB6ejAwNWI4MTNkAHp6MDBiNmM5MjMAenow +YjZjZTk4YwB6ejAwNWI3ZjlkAHp6MGI3MDFkMDIAenowNmUwNDYwZQB6ejAyZGI1NzYz +AHp6MDZmMjMyY2MAenowZTA3ODM3OQB6ejAwMmRhZjYyAHp6MGI4NTQ2MTIAenowMDBi +NmI5MAB6ejAxNmQ5ZWZhAHp6MDAyZGIyNjAAenowMTZkZTA1MQB6ejAwMDViNmIyAHp6 +MDViN2YxMTQAenowMzQ3NDZiNAB6ejAyZGJkZGZkAHp6MDA4ZWYzMDkAenowMGI3MTc3 +ZAB6ejAwYjcwZjNkAHp6MDE2ZDg5MjAAenowMmRiMWFiMgB6ejAwMDViNjIyAHp6MDAw +YjZmNzgAenowYjZiNDk1MAB6ejAwNWI3NjMwAGF0aF9oYWxfZnJlZQB6ejA1Yjc5YjFi +AHp6MDBiNzA3M2QAenowYjVmY2EyNgB6ejAxNmRmYmYxAGF0aF9oYWxfbWh6MmllZWUA +enowMTZlMTg5YgB6ejBkYzM0OTRkAHp6MDAyZGM2MGIAenowMmRiMzM1ZAB6ejBiNmM1 +M2E0AHp6MGY4ZWYzMDgAenowZGE0Y2QwNAB6ejA1Yjc0MWUwAHp6MDJkYTliYWMAenow +MTZlYzlhZAB6ejAwYjcxNzNkAHp6MDE2ZDlkNDEAenowZGMxMmMxZgB6ejAwNWI4NGZk +AHp6MDA1YjhhYmQAenowMGI3MDEyMwB6ejAwNWI2NTJiAHp6MDJkYjM4NzUAenowMTZl +MzA5YgB6ejAwNWI2MGIyAHp6MDJkYjE4NzUAenowMmRiMTc2MwB6ejBiN2Y4MzY4AHp6 +MGRjMzJjMWYAenowMGI3MDE2MQB6ejAxNmQ3ZDQxAHp6MDAxNmNkMzIAenowZGI0OTEw +ZQB6ejAwNWI0OGVkAHp6MDAyZGM4MGIAenowMmRiMzNlZAB6ejAwNWI4MGZkAHp6MDJk +YmZkZmQAenowMTZlNjQ4YQB6ejBkYmYyYzFmAHp6MDAyZGFmZjIAenowMDViNzc5ZAB6 +ejAwMGI2ZWU4AHp6MDE2ZTQ0OGEAenowMGI2ZjZiYwB6ejAxNmRhOTIwAHp6MDViNzgx +ZTAAenowZTI3M2E0ZAB6ejAwMmRjYTBiAHp6MDJkYjFiZjAAenowMDViNDRhZAB6ejA2 +ZGU0NjBlAHp6MGI2ZjllZmYAenowMGI2YzZiYwBhdGhfaGFsX2FkZGl0aW9uYWxfc3di +YV9iYWNrb2ZmAHp6MDAwMmRiOTIAYXRoX2hhbF92ZXJzaW9uAGF0aF9oYWxfaWVlZTJt +aHoAenowMmRiNzlhZQB6ejBiNmNmMDA5AHp6MDAxNmUxMmMAenowMDE2ZDllNAB6ejAw +NWI1Y2IyAHp6MDE2ZGEyNTEAenowNmZhMzJjYwB6ejA2ZTAyZjU3AHp6MDA1YjZlMzAA +YXRoX2hhbF9tYWxsb2MAenowMDBiNmRkMgB6ejA1YjZjYmQ1AHp6MDE2ZGIyNTEAenow +ZTE3ODM3OQB6ejAxNmRkMDUxAHp6MDJkYmQxYjIAenowZGE5YzRmNgB6ejAyZGMxNzYz +AHp6MDE2ZGYwNTEAenowMDE2ZDk1MAB6ejAwYjcwNmJjAHp6MDAxNmQ4NzIAenowNmRm +NDYwZQB6ejA1YjhjMmVkAHp6MDZmZjE3ZTcAenowYjZmOWQwMgB6ejBkNGVmMzA4AHp6 +MDE2ZGJiZmUAenowMTZlNTQ4YQB6ejAwMTZkODUwAHp6MDAwYjZmZjgAYXRoX2hhbF9t +ZW1jcHkAenowMmRiYmRmZAB6ejA2ZGI1ZWI2AHp6MDE2ZWI5YWQAenowMGI2Y2ViYwB6 +ejBkOWI4Yjc5AGF0aF9oYWxfcHJvYmUAenowMDJkYjA2MAB6ejAxNmVhOWFkAHp6MDAw +ZWYzMDkAenowMmRiMzc2MwBhdGhfaGFsX2J1aWxkb3B0cwB6ejAyZGFmMzVkAHp6MGRi +NGNkMDQAenowMTZkZjI1MQB6ejAwMGI2YzEwAHp6MDE2ZDkyNTEAenowYjcyMWFlZAB6 +ejA2N2NmY2FlAHp6MDAwYjZjZjgAenowY2NlZjMwOAB6ejAyZGFmYWIyAHp6MDViOTJh +ZWQAenowMDViOGNjYgB6ejBiNmQ5ZWZmAHp6MDJkYjExYjIAenowZTE3M2E0ZAB6ejAy +ZGJmZmIxAHp6MDJkYmY3NjMAenowMDViNjhmZAB6ejAwNWI0NGVkAHp6MGI3MTFhZWQA +enowYjVmY2EzNAB6ejBkOGI4Yjc5AHp6MDE2ZDhiMmQAenowMTZlMDg5YgB6ejAyZGJi +ODc1AHp6MDE2ZDk3ZjAAenowYjgzODM2OAB6ejAwYjZmZWJjAHp6MGU5OTkzMTMAenow +MGI2ZWE3YQB6ejAzM2U4ZmJmAHp6MDA1YjcyMzAAenowY2ZhNTg3NQB6ejAyZGI5OWFl +AHp6MDJkYjlhYjIAenowMDBiNmJlOAB6ejBkOTljNGY2AHp6MGRlZDhhNTcAenowMTZk +YWJmZQB6ejBiNzA5ZDAyAHp6MDE5ZjNhMDEAenowNzA3MTdlNwBhdGhfaGFsX21lbXpl +cm8AenowNmUwNGRkMQB6ejBiNjhlOThjAHp6MDE2ZTJkZmQAenowMDBiNmQyMgB6ejA3 +MDIzMmNjAHp6MGRjNTQ5NGQAenowMGI3MGY3ZABhdGhfaGFsX3N3X2JlYWNvbl9yZXNw +b25zZV90aW1lAHp6MDlmNjlkMmUAenowMDViNjU3YQB6ejA2ZjcxN2U3AHp6MDZkYTVl +YjYAenowYjdkNDYxMgB6ejAwYjZmOTYxAHp6MGI2YjBjOTAAenowMmRiZDM1ZAB6ejAw +NWI4OGZkAHp6MDJkYWZkZmQAYXRoX2hhbF9kZWxheQB6ejAyZGIxZGZkAHp6MDY3ZDJm +NDEAenowMmRhZjg3NQB6ejBiODA3NzQxAHp6MDE2ZDhkNDEAenowMDJkYWU5MgB6ejBi +N2M3NzQxAHp6MDJkYmIzNWQAenowMmRiM2RmZAB6ejAyZGI1M2VkAHp6MDAwYjZkYTIA +enowMDBiNmUyMgB6ejA1YjgwMDQxAHp6MGQ4OWM0ZjYAenowMDE2ZDg0OAB6ejAxNmQ5 +YjJkAHp6MGUzNzNhNGQAenowMDE2ZTAyYwB6ejAwYjcwNzdkAHp6MDA1YjY5N2EAenow +MDE2ZGFlNAB6ejAxNmUxMDliAHp6MDA1YjRhMmQAenowZGY3ODM3OQB6ejAyZGJkNzYz +AHp6MDAwYjZlNTIAenowNWI2YzZkYgB6ejBjYTVmMzI5AHp6MGRiMjkxMGUAenowMmRi +M2JmMAB6ejA2ZDc4YTRjAHp6MDE2ZTAyNTEAenowMDAyZGJiMgB6ejAwMmRkODZkAHp6 +MDJkYjU5YWUAenowMDY3ZDIyMQB6ejAwNWI4OTNkAHp6MDViODFiMWIAenowMTZkODdm +MAB6ejAyZGIxM2VkAHp6MDBiNmQxMjMAenowMDBiNmNlOAB6ejA1YjhhYWVkAHp6MDJk +YWYxYjIAenowMDA1YjVlMgB6ejAzM2ViZmJmAHp6MDViNjg2ZGIAenowMDBiNmVmOAB6 +ejBiNzE5YWVkAHp6MDA1YjU4YjIAenowNWI3ZGIxYgB6ejBiODQ3NzQxAHp6MDAxNmQ3 +MzIAenowMmRhZGFiMgB6ejBmNGRlMzA3AGF0aF9oYWxfaW5pdF9jaGFubmVscwB6ejAw +YjZkNmJjAHp6MGM0ZWYzMDgAenowMDAyZGJkMgB6ejBkYWI4Yjc5AHp6MDE2ZTBiODcA +enowNWI5MDJlZAB6ejBkYzM4NzE4AHp6MGFhMmVlYzEAenowMDBiNmMxZAB6ejA1Yjhl +YWVkAHp6MDA1YjdiOWQAenowMDViNTQ0NgB6ejA1YjY0NmRiAHp6MDBiNmY5MjMAenow +ZGRkOGE1NwB6ejAxNmUxMjUxAHp6MGRjNzQ5NGQAenowMmRiMzcwYQB6ejAwMDViNjcy +AHp6MDZkZjRkZDEAenowMmRiZjM1ZAB6ejAwMGI2Yzc4AHp6MDAxNmQ4MzIAenowM2U5 +NzM1MwB6ejAyZGI1NzBhAHp6MDA1YjZkN2EAenowMDJkYjI5MgB6ejAwNWI5MGNiAHp6 +MDA1YjVjNDYAYXRoX2hhbF9wcmludGYAenowNmQ5NWViNgB6ejAxNmRmYjg3AHp6MDAx +NmRhNDgAenowMDJkYjA5MgBhdGhfaGFsX2dldHdpcmVsZXNzbW9kZXMAenowMTZlMWI4 +NwBkAAAAAAAAAAsAAAADAAAAKgAAAAAAAAB6AAAAAAAAAAsAAAADAAAAPQAAAAAAAACb +AAAAAAAAAAsAAAADAAAAUQAAAAAAAACsAAAAAAAAAAsAAAADAAAAZQAAAAAAAAC0AAAA +AAAAAAsAAAADAAAAcgAAAAAAAAC8AAAAAAAAAAsAAAADAAAAfwAAAAAAAADEAAAAAAAA +AAsAAAADAAAAkgAAAAAAAABzAQAAAAAAAAIAAABvAAAA/P////////99AQAAAAAAAAIA +AABqAQAA/P////////+HAQAAAAAAAAIAAAA/AAAA/P////////8nAgAAAAAAAAIAAAAf +AQAA/P/////////8BQAAAAAAAAIAAABeAAAA/P////////8ZBgAAAAAAAAIAAABeAAAA +/P////////9IBgAAAAAAAAsAAAACAAAAAAAAAAAAAABtCQAAAAAAAAsAAAACAAAAgAAA +AAAAAAB2CQAAAAAAAAsAAAACAAAAoAAAAAAAAAD9DAAAAAAAAAIAAADAAAAA/P////// +//+SEQAAAAAAAAIAAAAMAQAA/P////////+OHQAAAAAAAAIAAAAMAQAA/P////////95 +KAAAAAAAAAsAAAACAAAA4AAAAAAAAACLKAAAAAAAAAsAAAACAAAAwAAAAAAAAAAxNgAA +AAAAAAsAAAACAAAAYBIAAAAAAABeNgAAAAAAAAsAAAACAAAAQAEAAAAAAACwNgAAAAAA +AAsAAAACAAAAIBgAAAAAAADtNgAAAAAAAAIAAAACAAAAHBgAAAAAAABwNwAAAAAAAAsA +AAACAAAAQgEAAAAAAACPNwAAAAAAAAsAAAACAAAAZBIAAAAAAAChNwAAAAAAAAsAAAAC +AAAAYhIAAAAAAAAVOAAAAAAAAAsAAAACAAAAgBMAAAAAAAAcOAAAAAAAAAsAAAACAAAA +gBUAAAAAAAA2OAAAAAAAAAsAAAACAAAAABcAAAAAAAA9OAAAAAAAAAsAAAACAAAAIBYA +AAAAAABiOAAAAAAAAAsAAAACAAAAUCEAAAAAAABpOAAAAAAAAAsAAAACAAAAZCEAAAAA +AACHOQAAAAAAAAsAAAACAAAAZCEAAAAAAACvOQAAAAAAAAsAAAACAAAAaCEAAAAAAAA+ +OgAAAAAAAAsAAAACAAAA8BcAAAAAAACBOgAAAAAAAAsAAAACAAAAQAEAAAAAAACtOgAA +AAAAAAsAAAACAAAAcCIAAAAAAAAlOwAAAAAAAAsAAAACAAAAQAEAAAAAAABBOwAAAAAA +AAsAAAACAAAAUAEAAAAAAACnOwAAAAAAAAsAAAACAAAAIBgAAAAAAACuOwAAAAAAAAsA +AAACAAAAMBgAAAAAAADTOwAAAAAAAAsAAAACAAAAMBgAAAAAAAAHPAAAAAAAAAsAAAAC +AAAAMBgAAAAAAABCPAAAAAAAAAsAAAACAAAAQAEAAAAAAABJPAAAAAAAAAsAAAACAAAA +UAEAAAAAAAC4PAAAAAAAAAsAAAACAAAAYhIAAAAAAAAKPQAAAAAAAAsAAAACAAAAXAEA +AAAAAAAYPQAAAAAAAAsAAAACAAAAQAEAAAAAAABIPQAAAAAAAAsAAAACAAAAQAEAAAAA +AABfPQAAAAAAAAsAAAACAAAAYAEAAAAAAAClPQAAAAAAAAsAAAACAAAAQCMAAAAAAAAA +PgAAAAAAAAsAAAACAAAAQCMAAAAAAACFPgAAAAAAAAsAAAAFAAAAwAIAAAAAAACmPgAA +AAAAAAsAAAAFAAAAwAIAAAAAAABmPwAAAAAAAAsAAAACAAAAQAEAAAAAAAC0PwAAAAAA +AAsAAAACAAAAQAEAAAAAAADbPwAAAAAAAAsAAAACAAAAYBIAAAAAAABUQAAAAAAAAAsA +AAACAAAAJBgAAAAAAABqQAAAAAAAAAsAAAACAAAAoBwAAAAAAAB/QAAAAAAAAAsAAAAC +AAAAIBgAAAAAAABHQwAAAAAAAAIAAAB6AQAA/P/////////GQwAAAAAAAAsAAAACAAAA +UCEAAAAAAADNQwAAAAAAAAsAAAACAAAAZCEAAAAAAAABRgAAAAAAAAsAAAACAAAAZCEA +AAAAAAATRgAAAAAAAAsAAAABAAAAikIAAAAAAACVRwAAAAAAAAsAAAACAAAAIBgAAAAA +AABnSQAAAAAAAAIAAAC2AAAA/P/////////XSQAAAAAAAAsAAAAFAAAAYAAAAAAAAACv +SgAAAAAAAAsAAAACAAAAIBgAAAAAAABwTAAAAAAAAAsAAAACAAAAUCQAAAAAAABFTQAA +AAAAAAIAAADAAAAA/P////////9mTQAAAAAAAAsAAAACAAAAYCQAAAAAAABuTQAAAAAA +AAIAAADWAAAA/P/////////hTQAAAAAAAAIAAAAlAQAA/P////////9hTgAAAAAAAAIA +AAArAAAA/P////////+WTgAAAAAAAAIAAAAWAQAA/P/////////KTgAAAAAAAAIAAAAW +AQAA/P/////////2TgAAAAAAAAIAAAAWAQAA/P////////9JTwAAAAAAAAIAAAAWAQAA +/P////////+HTwAAAAAAAAIAAAAWAQAA/P////////+IUgAAAAAAAAIAAAAWAQAA/P// +//////8KUwAAAAAAAAIAAAB8AAAA/P////////86UwAAAAAAAAIAAAB8AAAA/P////// +//+xUwAAAAAAAAIAAAAuAAAA/P/////////GUwAAAAAAAAIAAAAUAQAA/P////////9J +VAAAAAAAAAIAAAAfAQAA/P////////9lWQAAAAAAAAIAAABnAAAA/P////////+bWQAA +AAAAAAIAAADWAAAA/P////////+1WQAAAAAAAAIAAADWAAAA/P/////////1WQAAAAAA +AAIAAABCAAAA/P////////91WgAAAAAAAAIAAAAQAQAA/P////////+KWgAAAAAAAAIA +AABsAAAA/P////////+KWwAAAAAAAAIAAAA4AQAA/P////////8kXAAAAAAAAAIAAADW +AAAA/P////////+ZXAAAAAAAAAIAAABGAQAA/P////////+jXAAAAAAAAAIAAACuAAAA +/P/////////SXQAAAAAAAAIAAAAjAAAA/P/////////zXQAAAAAAAAIAAABDAQAA/P// +//////80XgAAAAAAAAIAAAAjAAAA/P////////9lXgAAAAAAAAIAAAAjAAAA/P////// +//+YXgAAAAAAAAIAAABDAQAA/P/////////pXgAAAAAAAAIAAAAjAAAA/P////////8a +XwAAAAAAAAIAAAAjAAAA/P////////9NXwAAAAAAAAIAAABDAQAA/P////////+kXwAA +AAAAAAIAAAAjAAAA/P/////////QXwAAAAAAAAIAAAACAQAA/P//////////XwAAAAAA +AAIAAAAaAAAA/P////////8NYAAAAAAAAAIAAAAhAQAA/P////////90YAAAAAAAAAIA +AAAfAQAA/P////////+UYAAAAAAAAAIAAAAfAQAA/P/////////ZYQAAAAAAAAsAAADe +AAAAAAAAAAAAAADnYQAAAAAAAAsAAAARAAAAAAAAAAAAAAD4YQAAAAAAAAIAAAAVAQAA +/P////////9PYgAAAAAAAAIAAAAfAQAA/P////////8tZQAAAAAAAAIAAAAlAQAA/P// +//////+uZwAAAAAAAAIAAACpAAAA/P////////9waAAAAAAAAAsAAAACAAAAAC4AAAAA +AACsaAAAAAAAAAIAAABrAQAA/P/////////UaQAAAAAAAAIAAAAfAQAA/P/////////+ +aQAAAAAAAAIAAABCAAAA/P////////8JagAAAAAAAAIAAACKAAAA/P////////8sagAA +AAAAAAIAAABQAAAA/P////////9GagAAAAAAAAIAAAB2AAAA/P////////92agAAAAAA +AAIAAABlAQAA/P////////+RagAAAAAAAAIAAAANAAAA/P////////+sagAAAAAAAAIA +AAAEAQAA/P////////98awAAAAAAAAIAAADkAAAA/P////////+qawAAAAAAAAIAAAAf +AQAA/P/////////GawAAAAAAAAIAAAAfAQAA/P/////////3awAAAAAAAAIAAADkAAAA +/P////////9JbAAAAAAAAAIAAAAfAQAA/P////////9ubAAAAAAAAAIAAAAfAQAA/P// +//////+FbAAAAAAAAAIAAADkAAAA/P/////////9bAAAAAAAAAIAAAAfAQAA/P////// +//8cbQAAAAAAAAIAAAAfAQAA/P////////8+bQAAAAAAAAIAAAAfAQAA/P////////+x +bQAAAAAAAAIAAAAfAQAA/P/////////QbQAAAAAAAAIAAAAfAQAA/P/////////9bQAA +AAAAAAIAAAAfAQAA/P////////8nbgAAAAAAAAIAAABCAAAA/P////////9SbgAAAAAA +AAIAAACKAAAA/P////////9gbgAAAAAAAAIAAAAfAQAA/P////////9rbgAAAAAAAAIA +AACKAAAA/P/////////ebgAAAAAAAAIAAAAfAQAA/P/////////1bgAAAAAAAAIAAABC +AAAA/P////////9ecgAAAAAAAAsAAAACAAAAUjMAAAAAAADMcwAAAAAAAAsAAAACAAAA +YDMAAAAAAADRcwAAAAAAAAIAAADWAAAA/P/////////icwAAAAAAAAsAAAACAAAAQDMA +AAAAAADqcwAAAAAAAAIAAADWAAAA/P////////9GdAAAAAAAAAIAAAArAAAA/P////// +//9tdAAAAAAAAAIAAAArAAAA/P/////////6dQAAAAAAAAIAAAArAAAA/P////////8V +dgAAAAAAAAIAAAArAAAA/P////////8tdgAAAAAAAAIAAAArAAAA/P////////+WdgAA +AAAAAAIAAADoAAAA/P/////////MdgAAAAAAAAIAAAArAAAA/P////////9UdwAAAAAA +AAIAAABCAAAA/P////////9sdwAAAAAAAAIAAAAfAQAA/P////////90dwAAAAAAAAIA +AABLAAAA/P/////////MdwAAAAAAAAIAAABNAQAA/P//////////dwAAAAAAAAIAAAAA +AQAA/P////////+IeAAAAAAAAAIAAAAMAQAA/P/////////BeAAAAAAAAAIAAACxAAAA +/P////////8lfAAAAAAAAAIAAACXAAAA/P////////84fAAAAAAAAAIAAAA4AQAA/P// +//////9nfAAAAAAAAAIAAAA4AQAA/P////////+DfAAAAAAAAAIAAAA4AQAA/P////// +//+HfQAAAAAAAAIAAAAfAQAA/P////////++fQAAAAAAAAIAAABCAAAA/P////////+2 +fwAAAAAAAAIAAAArAAAA/P/////////lfwAAAAAAAAIAAADAAAAA/P////////8GgAAA +AAAAAAsAAAACAAAAwDMAAAAAAAAOgAAAAAAAAAIAAADWAAAA/P////////+CgAAAAAAA +AAIAAAB5AQAA/P/////////BgAAAAAAAAAIAAAAfAQAA/P////////9PgQAAAAAAAAIA +AAAfAQAA/P////////+HgQAAAAAAAAIAAAAzAQAA/P/////////mgQAAAAAAAAIAAAAz +AQAA/P////////8hggAAAAAAAAIAAAAzAQAA/P////////+PggAAAAAAAAsAAAACAAAA +UD0AAAAAAADXggAAAAAAAAIAAABfAQAA/P////////8QgwAAAAAAAAIAAAAfAQAA/P// +//////83gwAAAAAAAAIAAAAfAQAA/P////////9vgwAAAAAAAAIAAAAzAQAA/P////// +//+ggwAAAAAAAAIAAABmAQAA/P/////////FgwAAAAAAAAIAAAAzAQAA/P////////8n +hAAAAAAAAAIAAABMAQAA/P////////9ShAAAAAAAAAIAAAB8AAAA/P////////9DhQAA +AAAAAAIAAAAfAQAA/P////////+3hQAAAAAAAAIAAADPAAAA/P////////+HhgAAAAAA +AAIAAAAuAAAA/P////////+chgAAAAAAAAIAAAAUAQAA/P/////////zhgAAAAAAAAIA +AABcAQAA/P////////8BhwAAAAAAAAIAAAAfAQAA/P////////9IjAAAAAAAAAIAAAC9 +AAAA/P////////9vjAAAAAAAAAIAAADWAAAA/P////////+JjAAAAAAAAAIAAADWAAAA +/P/////////TjAAAAAAAAAIAAABCAAAA/P////////+HjQAAAAAAAAIAAAAzAQAA/P// +//////8AjgAAAAAAAAIAAAAqAQAA/P////////8VjgAAAAAAAAIAAAAyAAAA/P////// +//8jjgAAAAAAAAIAAADSAAAA/P////////9EjgAAAAAAAAIAAAAqAQAA/P////////9k +jgAAAAAAAAIAAADBAAAA/P////////81jwAAAAAAAAIAAADyAAAA/P////////9TjwAA +AAAAAAsAAAACAAAAYD0AAAAAAAB+jwAAAAAAAAIAAADWAAAA/P/////////0kAAAAAAA +AAIAAADyAAAA/P////////8ikQAAAAAAAAIAAAAjAAAA/P////////8/kQAAAAAAAAIA +AABDAQAA/P////////+AkQAAAAAAAAIAAAAjAAAA/P////////+xkQAAAAAAAAIAAAAj +AAAA/P/////////kkQAAAAAAAAIAAABDAQAA/P////////81kgAAAAAAAAIAAAAjAAAA +/P////////9mkgAAAAAAAAIAAAAjAAAA/P////////+ZkgAAAAAAAAIAAABDAQAA/P// +///////wkgAAAAAAAAIAAAAjAAAA/P////////9clAAAAAAAAAIAAAACAQAA/P////// +//+LlAAAAAAAAAIAAAAaAAAA/P////////+ZlAAAAAAAAAIAAAAhAQAA/P////////8I +lQAAAAAAAAIAAAAfAQAA/P////////8olQAAAAAAAAIAAAAfAQAA/P////////+MlgAA +AAAAAAsAAACvAAAAAAAAAAAAAACVlgAAAAAAAAsAAAD0AAAAAAAAAAAAAACelgAAAAAA +AAsAAADZAAAAAAAAAAAAAACvlgAAAAAAAAIAAAAVAQAA/P/////////zlgAAAAAAAAIA +AABCAAAA/P////////+SmQAAAAAAAAIAAADoAAAA/P////////97mgAAAAAAAAIAAAB5 +AQAA/P////////9/mwAAAAAAAAIAAAArAAAA/P////////+RmwAAAAAAAAIAAAArAAAA +/P////////+gmwAAAAAAAAsAAAAFAAAAjA0AAAAAAAC+mwAAAAAAAAsAAAAFAAAAmA0A +AAAAAADqmwAAAAAAAAsAAAAFAAAAYAwAAAAAAAAknAAAAAAAAAsAAAACAAAAgD0AAAAA +AABVnAAAAAAAAAsAAAACAAAAoEUAAAAAAACEnAAAAAAAAAsAAAACAAAAQEAAAAAAAACL +nAAAAAAAAAsAAAACAAAAREAAAAAAAAAwnwAAAAAAAAIAAAANAQAA/P/////////VnwAA +AAAAAAIAAAAfAQAA/P//////////nwAAAAAAAAIAAABCAAAA/P////////8KoAAAAAAA +AAIAAAAcAAAA/P////////+CoAAAAAAAAAIAAAD5AAAA/P////////8foQAAAAAAAAIA +AABtAAAA/P////////8roQAAAAAAAAIAAABKAAAA/P////////9boQAAAAAAAAIAAACR +AAAA/P////////92oQAAAAAAAAIAAADGAAAA/P////////+RoQAAAAAAAAIAAAAzAAAA +/P////////8DogAAAAAAAAIAAAA/AQAA/P////////8sogAAAAAAAAIAAAAfAQAA/P// +//////9cogAAAAAAAAIAAAA/AQAA/P/////////vogAAAAAAAAIAAAAfAQAA/P////// +//8kowAAAAAAAAIAAAAfAQAA/P////////96owAAAAAAAAIAAAAfAQAA/P////////+o +owAAAAAAAAIAAAAfAQAA/P////////+/owAAAAAAAAIAAAA/AQAA/P////////+jpAAA +AAAAAAIAAAAcAAAA/P////////+xpAAAAAAAAAIAAAAfAQAA/P////////+8pAAAAAAA +AAIAAAAcAAAA/P////////8opQAAAAAAAAIAAAAfAQAA/P////////8/pQAAAAAAAAIA +AABCAAAA/P////////+FpQAAAAAAAAIAAACBAAAA/P////////+dpQAAAAAAAAsAAAAC +AAAAhEkAAAAAAACqpQAAAAAAAAIAAAArAAAA/P/////////hpQAAAAAAAAIAAAArAAAA +/P////////8JpgAAAAAAAAIAAAArAAAA/P////////8IpwAAAAAAAAIAAAAfAQAA/P// +//////8lpwAAAAAAAAIAAAAtAAAA/P/////////ypwAAAAAAAAIAAABWAQAA/P////// +//8eqAAAAAAAAAsAAAACAAAAyEoAAAAAAACYqQAAAAAAAAsAAAAFAAAA/A0AAAAAAAC3 +qQAAAAAAAAsAAAAFAAAACA4AAAAAAADWqQAAAAAAAAsAAAAFAAAAvA4AAAAAAAB3qgAA +AAAAAAsAAAAFAAAARA4AAAAAAACQqgAAAAAAAAIAAAArAAAA/P////////+vqgAAAAAA +AAsAAAAFAAAAUA4AAAAAAADEqgAAAAAAAAIAAAArAAAA/P/////////mqgAAAAAAAAIA +AAArAAAA/P/////////8qgAAAAAAAAsAAAAFAAAAXA4AAAAAAAARqwAAAAAAAAIAAAAr +AAAA/P////////8vqwAAAAAAAAIAAAArAAAA/P////////9DqwAAAAAAAAsAAAAFAAAA +jA4AAAAAAABmqwAAAAAAAAsAAAAFAAAAwA0AAAAAAACDrAAAAAAAAAIAAABAAAAA/P// +//////9ZrwAAAAAAAAIAAAAUAAAA/P/////////trwAAAAAAAAsAAAAGAAAAAAAAAAAA +AADyrwAAAAAAAAIAAAAMAQAA/P/////////+rwAAAAAAAAsAAAAGAAAAIAEAAAAAAAAD +sAAAAAAAAAIAAAAMAQAA/P////////8KsAAAAAAAAAsAAAAGAAAACAAAAAAAAAARsAAA +AAAAAAsAAAAGAAAAiAAAAAAAAAA0sAAAAAAAAAIAAAAGAAAAAgAAAAAAAAA7sAAAAAAA +AAIAAAAGAAAA/P////////9EsAAAAAAAAAIAAAAGAAAA/v////////9SsAAAAAAAAAIA +AAAGAAAAAgAAAAAAAAB2sAAAAAAAAAIAAAAGAAAAAgAAAAAAAACFsAAAAAAAAAIAAAAG +AAAAAgAAAAAAAACXsAAAAAAAAAIAAAAGAAAAAgAAAAAAAAC6sAAAAAAAAAIAAAAGAAAA +AgAAAAAAAADgsAAAAAAAAAIAAAAGAAAAAgAAAAAAAADusAAAAAAAAAIAAAAGAAAAAgAA +AAAAAAD3sAAAAAAAAAIAAAAGAAAAAgAAAAAAAABksQAAAAAAAAsAAAAGAAAAIAEAAAAA +AACksQAAAAAAAAIAAAAGAAAAAgAAAAAAAABSsgAAAAAAAAsAAAAGAAAAIAEAAAAAAABx +sgAAAAAAAAIAAAAGAAAAAgAAAAAAAACLsgAAAAAAAAsAAAAGAAAAIAEAAAAAAACRsgAA +AAAAAAEAAAAGAAAAHgEAAAAAAAC8sgAAAAAAAAsAAAAGAAAAIgEAAAAAAADDsgAAAAAA +AAsAAAAGAAAAIAEAAAAAAABhswAAAAAAAAsAAAAGAAAAoAEAAAAAAABpswAAAAAAAAIA +AABvAQAA/P////////+qswAAAAAAAAIAAAD+AAAA/P////////8BtQAAAAAAAAsAAAAC +AAAA2EoAAAAAAAAntgAAAAAAAAsAAAACAAAAzEoAAAAAAABOtwAAAAAAAAIAAABkAAAA +/P/////////SugAAAAAAAAIAAAACAAAAIEsAAAAAAADtugAAAAAAAAsAAAACAAAAKEsA +AAAAAACAvAAAAAAAAAsAAAACAAAAKEsAAAAAAACuvAAAAAAAAAsAAAACAAAAIEsAAAAA +AAC1vAAAAAAAAAsAAAACAAAAKEsAAAAAAAADvQAAAAAAAAIAAAACAAAAHEsAAAAAAAAg +vQAAAAAAAAIAAAACAAAAHEsAAAAAAAAtvQAAAAAAAAsAAAACAAAAIEsAAAAAAAA0vQAA +AAAAAAsAAAACAAAAKEsAAAAAAAAsvgAAAAAAAAIAAADgAAAA/P////////8/vgAAAAAA +AAIAAADyAAAA/P////////92vgAAAAAAAAIAAADyAAAA/P////////+hvgAAAAAAAAIA +AADyAAAA/P/////////hvgAAAAAAAAIAAABNAQAA/P////////8UvwAAAAAAAAIAAAAA +AQAA/P////////+6vwAAAAAAAAIAAAAMAQAA/P/////////6vwAAAAAAAAIAAABaAAAA +/P////////94wwAAAAAAAAIAAAAUAQAA/P////////9+wwAAAAAAAAIAAAAuAAAA/P// +//////+PwwAAAAAAAAIAAACzAAAA/P////////+ExQAAAAAAAAIAAABcAQAA/P////// +//+SxQAAAAAAAAIAAAAfAQAA/P////////+qxwAAAAAAAAIAAAArAAAA/P////////+9 +yAAAAAAAAAIAAADAAAAA/P/////////jyAAAAAAAAAsAAAACAAAAQEwAAAAAAADryAAA +AAAAAAIAAADWAAAA/P////////+wyQAAAAAAAAIAAABHAAAA/P/////////byQAAAAAA +AAIAAABnAQAA/P/////////syQAAAAAAAAIAAAByAQAA/P////////9dygAAAAAAAAIA +AAAZAAAA/P////////+DygAAAAAAAAIAAAA8AAAA/P////////8fywAAAAAAAAIAAABx +AQAA/P////////97ywAAAAAAAAIAAABxAQAA/P////////+hywAAAAAAAAIAAABxAQAA +/P/////////UywAAAAAAAAIAAABxAQAA/P////////8YzAAAAAAAAAIAAABxAQAA/P// +//////+EzAAAAAAAAAsAAAACAAAA0FUAAAAAAACLzAAAAAAAAAsAAAACAAAA1lUAAAAA +AADXzAAAAAAAAAIAAABfAQAA/P////////8SzQAAAAAAAAIAAAAfAQAA/P////////8a +zQAAAAAAAAIAAAA8AAAA/P////////85zQAAAAAAAAIAAAAfAQAA/P////////9ozQAA +AAAAAAIAAABxAQAA/P////////+LzQAAAAAAAAIAAAAbAQAA/P////////+nzQAAAAAA +AAIAAACcAAAA/P/////////FzQAAAAAAAAIAAABuAQAA/P/////////SzQAAAAAAAAIA +AABUAQAA/P/////////izQAAAAAAAAIAAAAHAQAA/P////////8HzgAAAAAAAAIAAABx +AQAA/P////////9lzgAAAAAAAAIAAAClAAAA/P////////9+zgAAAAAAAAIAAAB4AAAA +/P////////+nzgAAAAAAAAIAAABpAAAA/P/////////RzgAAAAAAAAIAAABnAQAA/P// +///////ZzgAAAAAAAAIAAAB8AAAA/P/////////HzwAAAAAAAAIAAAAfAQAA/P////// +//8b0wAAAAAAAAIAAAAuAAAA/P////////8w0wAAAAAAAAIAAAAUAQAA/P////////+d +0wAAAAAAAAIAAAB7AQAA/P////////+r0wAAAAAAAAIAAAAfAQAA/P////////901QAA +AAAAAAIAAABCAAAA/P////////+T1gAAAAAAAAIAAADIAAAA/P////////8h2gAAAAAA +AAsAAAACAAAA4FUAAAAAAADP2wAAAAAAAAIAAAARAQAA/P/////////93AAAAAAAAAIA +AAARAQAA/P////////9D3QAAAAAAAAIAAADWAAAA/P////////9d3QAAAAAAAAIAAADW +AAAA/P/////////w3gAAAAAAAAsAAAACAAAAIFYAAAAAAAAT3wAAAAAAAAIAAADWAAAA +/P////////944gAAAAAAAAIAAAAjAAAA/P////////+Z4gAAAAAAAAIAAABDAQAA/P// +///////a4gAAAAAAAAIAAAAjAAAA/P////////8L4wAAAAAAAAIAAAAjAAAA/P////// +//8+4wAAAAAAAAIAAABDAQAA/P////////+P4wAAAAAAAAIAAAAjAAAA/P/////////A +4wAAAAAAAAIAAAAjAAAA/P/////////z4wAAAAAAAAIAAABDAQAA/P////////9K5AAA +AAAAAAIAAAAjAAAA/P////////9e5AAAAAAAAAIAAAAiAAAA/P////////+O5AAAAAAA +AAIAAAAVAAAA/P/////////I5QAAAAAAAAIAAAAVAAAA/P////////+k5gAAAAAAAAsA +AAACAAAAQFYAAAAAAAAz5wAAAAAAAAIAAAACAQAA/P/////////H5wAAAAAAAAIAAAAa +AAAA/P/////////V5wAAAAAAAAIAAAAhAQAA/P////////8R6AAAAAAAAAIAAAAfAQAA +/P////////8x6AAAAAAAAAIAAAAfAQAA/P////////+56QAAAAAAAAsAAAAoAAAAAAAA +AAAAAADC6QAAAAAAAAsAAACeAAAAAAAAAAAAAADL6QAAAAAAAAsAAAA2AQAAAAAAAAAA +AADU6QAAAAAAAAsAAACLAAAAAAAAAAAAAADd6QAAAAAAAAsAAABBAQAAAAAAAAAAAADu +6QAAAAAAAAIAAAAVAQAA/P////////8z6gAAAAAAAAIAAABCAAAA/P////////9c6gAA +AAAAAAIAAAAsAAAA/P////////9k6gAAAAAAAAIAAADMAAAA/P////////+C6gAAAAAA +AAIAAAB6AAAA/P////////997AAAAAAAAAIAAACGAAAA/P////////957QAAAAAAAAIA +AABnAQAA/P////////+R7QAAAAAAAAIAAADoAAAA/P////////9U7gAAAAAAAAIAAABW +AAAA/P////////9c7gAAAAAAAAIAAABEAAAA/P////////9n7gAAAAAAAAIAAAByAQAA +/P////////9E7wAAAAAAAAsAAAACAAAA4FYAAAAAAABT7wAAAAAAAAsAAAACAAAA4FYA +AAAAAABp7wAAAAAAAAIAAAAfAQAA/P////////9/7wAAAAAAAAsAAAACAAAAQFkAAAAA +AACj7wAAAAAAAAsAAAACAAAARFkAAAAAAAC57wAAAAAAAAIAAAAfAQAA/P/////////j +7wAAAAAAAAIAAABVAAAA/P////////8L8QAAAAAAAAIAAABSAAAA/P////////9R8QAA +AAAAAAIAAADxAAAA/P////////9e8QAAAAAAAAIAAAAsAQAA/P////////8C8gAAAAAA +AAIAAAAiAAAA/P////////9N8wAAAAAAAAIAAAAfAQAA/P////////8L9AAAAAAAAAIA +AACCAAAA/P////////9j9AAAAAAAAAIAAAAOAAAA/P////////9v9AAAAAAAAAIAAACq +AAAA/P////////+G9AAAAAAAAAIAAABCAAAA/P////////+g9AAAAAAAAAIAAACQAAAA +/P/////////O9AAAAAAAAAIAAAA6AAAA/P/////////n9AAAAAAAAAIAAAApAAAA/P// +//////8A9QAAAAAAAAIAAAA+AAAA/P/////////q9QAAAAAAAAIAAABnAQAA/P////// +//9S9gAAAAAAAAIAAABnAQAA/P////////9y9wAAAAAAAAIAAAAfAQAA/P////////+M +9wAAAAAAAAIAAAAfAQAA/P/////////a9wAAAAAAAAIAAADoAAAA/P/////////M+QAA +AAAAAAIAAAAfAQAA/P/////////j+QAAAAAAAAIAAABCAAAA/P////////8N+gAAAAAA +AAIAAABnAQAA/P/////////O+gAAAAAAAAIAAABfAAAA/P////////+v+wAAAAAAAAIA +AAArAAAA/P/////////e/AAAAAAAAAIAAAC+AAAA/P////////+pAAEAAAAAAAIAAABS +AAAA/P/////////WAAEAAAAAAAIAAAAMAQAA/P/////////nAAEAAAAAAAIAAAAMAQAA +/P////////8YAQEAAAAAAAsAAAACAAAAeF8AAAAAAAAKBAEAAAAAAAIAAABvAQAA/P// +//////8wBAEAAAAAAAIAAAAUAAAA/P/////////ABQEAAAAAAAIAAAD+AAAA/P////// +///cCAEAAAAAAAIAAADWAAAA/P////////8kCgEAAAAAAAIAAAA+AQAA/P////////9l +CwEAAAAAAAIAAAA+AQAA/P/////////1DAEAAAAAAAIAAAACAAAAIGEAAAAAAAAJDQEA +AAAAAAsAAAACAAAAKGEAAAAAAAApDQEAAAAAAAIAAAACAAAAoF8AAAAAAAA5DQEAAAAA +AAsAAAACAAAAqF8AAAAAAACzDwEAAAAAAAsAAAACAAAAoF8AAAAAAAC6DwEAAAAAAAsA +AAACAAAAIGEAAAAAAABrEQEAAAAAAAIAAAArAAAA/P////////8wEgEAAAAAAAIAAABT +AAAA/P////////9yEgEAAAAAAAIAAABeAAAA/P////////+eEgEAAAAAAAIAAABTAAAA +/P/////////uEgEAAAAAAAIAAABeAAAA/P////////8qEwEAAAAAAAIAAABeAAAA/P// +//////9+EwEAAAAAAAIAAADIAAAA/P/////////bEwEAAAAAAAIAAADIAAAA/P////// +//8rFAEAAAAAAAIAAABNAQAA/P////////9oFAEAAAAAAAIAAAAAAQAA/P////////9C +FQEAAAAAAAIAAAAMAQAA/P////////+CFQEAAAAAAAIAAABPAAAA/P/////////nGAEA +AAAAAAIAAAAUAQAA/P/////////tGAEAAAAAAAIAAAAuAAAA/P/////////8GAEAAAAA +AAIAAACzAAAA/P/////////dGgEAAAAAAAIAAAB7AQAA/P/////////rGgEAAAAAAAIA +AAAfAQAA/P////////91GwEAAAAAAAIAAADIAAAA/P////////9FHAEAAAAAAAIAAADI +AAAA/P////////+AHwEAAAAAAAIAAABoAQAA/P/////////gHwEAAAAAAAIAAABoAQAA +/P////////+cIAEAAAAAAAIAAAAMAQAA/P////////9RIQEAAAAAAAIAAAAsAAAA/P// +//////9+IQEAAAAAAAIAAAB6AAAA/P/////////BIQEAAAAAAAsAAAACAAAAkGIAAAAA +AABAJgEAAAAAAAIAAABoAQAA/P/////////oJgEAAAAAAAIAAACVAAAA/P////////8R +JwEAAAAAAAIAAACVAAAA/P////////8nJwEAAAAAAAIAAAAKAQAA/P////////9HJwEA +AAAAAAIAAACVAAAA/P////////9fJwEAAAAAAAIAAACVAAAA/P/////////rJwEAAAAA +AAIAAAAKAQAA/P////////8LKAEAAAAAAAIAAACVAAAA/P////////93KAEAAAAAAAIA +AACVAAAA/P////////+JKAEAAAAAAAIAAACVAAAA/P////////+bKAEAAAAAAAIAAACV +AAAA/P////////+tKAEAAAAAAAIAAACVAAAA/P////////+/KAEAAAAAAAIAAACVAAAA +/P/////////HKAEAAAAAAAIAAABYAQAA/P/////////XKAEAAAAAAAIAAADLAAAA/P// +///////7KAEAAAAAAAIAAACVAAAA/P////////8SKQEAAAAAAAIAAACVAAAA/P////// +//8rKQEAAAAAAAIAAACVAAAA/P////////9CKQEAAAAAAAIAAACVAAAA/P////////9Z +KQEAAAAAAAIAAACVAAAA/P////////9sKQEAAAAAAAIAAABYAQAA/P////////98KQEA +AAAAAAIAAADLAAAA/P////////+yKQEAAAAAAAIAAABYAQAA/P/////////CKQEAAAAA +AAIAAADLAAAA/P/////////8KQEAAAAAAAIAAABoAQAA/P////////9oKwEAAAAAAAIA +AACVAAAA/P////////9SLAEAAAAAAAIAAABoAQAA/P////////+ILAEAAAAAAAsAAAAC +AAAAwGIAAAAAAACPLAEAAAAAAAsAAAAEAAAAAAAAAAAAAACcLAEAAAAAAAIAAAB1AQAA +/P/////////TLAEAAAAAAAsAAAACAAAAwGIAAAAAAADaLAEAAAAAAAsAAAAEAAAAQAAA +AAAAAADnLAEAAAAAAAIAAAB1AQAA/P////////9SLgEAAAAAAAsAAAACAAAA4GIAAAAA +AACCLgEAAAAAAAIAAAAfAQAA/P////////+YLgEAAAAAAAsAAAACAAAAQGQAAAAAAACk +LgEAAAAAAAsAAAACAAAARGQAAAAAAAC4LgEAAAAAAAIAAAAfAQAA/P/////////LLgEA +AAAAAAsAAAACAAAAIGgAAAAAAAD5LgEAAAAAAAIAAAAfAQAA/P////////8tLwEAAAAA +AAIAAACBAAAA/P////////9FLwEAAAAAAAsAAAACAAAAxG4AAAAAAABSLwEAAAAAAAIA +AAArAAAA/P////////+yLwEAAAAAAAIAAAArAAAA/P/////////aLwEAAAAAAAIAAAAr +AAAA/P////////9QMAEAAAAAAAsAAAACAAAACHAAAAAAAACxMgEAAAAAAAsAAAACAAAA +gGYAAAAAAADyMgEAAAAAAAIAAABwAAAA/P////////8NMwEAAAAAAAIAAABwAAAA/P// +//////8gMwEAAAAAAAsAAAACAAAAgGYAAAAAAAA9MwEAAAAAAAIAAAAfAQAA/P////// +//9TMwEAAAAAAAsAAAACAAAAIGsAAAAAAABeMwEAAAAAAAsAAAACAAAAJGsAAAAAAABz +MwEAAAAAAAIAAAAfAQAA/P////////+DMwEAAAAAAAsAAAACAAAAMGsAAAAAAAC1MwEA +AAAAAAIAAAAfAQAA/P/////////FMwEAAAAAAAsAAAACAAAAUGsAAAAAAAD3MwEAAAAA +AAIAAAAfAQAA/P////////8NNAEAAAAAAAsAAAACAAAAgGsAAAAAAABgNAEAAAAAAAIA +AABwAAAA/P////////+ANAEAAAAAAAIAAABwAAAA/P////////+iNAEAAAAAAAIAAABw +AAAA/P////////+/NAEAAAAAAAIAAABwAAAA/P/////////cNAEAAAAAAAIAAABwAAAA +/P/////////5NAEAAAAAAAIAAABwAAAA/P////////8MNQEAAAAAAAsAAAACAAAAgGsA +AAAAAAApNQEAAAAAAAIAAAAfAQAA/P////////9CNQEAAAAAAAsAAAACAAAAIG0AAAAA +AAB9NQEAAAAAAAIAAABwAAAA/P////////+aNQEAAAAAAAIAAABwAAAA/P////////+t +NQEAAAAAAAsAAAACAAAAIG0AAAAAAADKNQEAAAAAAAIAAAAfAQAA/P////////9oNwEA +AAAAAAIAAAAMAQAA/P////////+FOgEAAAAAAAIAAAA+AQAA/P////////8vPAEAAAAA +AAIAAAA+AQAA/P////////9OPAEAAAAAAAIAAAB8AAAA/P////////9vPAEAAAAAAAIA +AAB8AAAA/P////////+aPAEAAAAAAAIAAADAAAAA/P////////+6PAEAAAAAAAIAAADA +AAAA/P/////////fPAEAAAAAAAsAAAABAAAAODwBAAAAAADqPAEAAAAAAAsAAAABAAAA +NC4BAAAAAAD1PAEAAAAAAAsAAAABAAAAPzABAAAAAAAAPQEAAAAAAAsAAAABAAAAEy8B +AAAAAAALPQEAAAAAAAsAAAABAAAAejABAAAAAAAWPQEAAAAAAAsAAAABAAAAezYBAAAA +AABOPQEAAAAAAAsAAAACAAAAYHAAAAAAAAB+PQEAAAAAAAIAAAAfAQAA/P////////+U +PQEAAAAAAAsAAAACAAAA4HEAAAAAAACgPQEAAAAAAAsAAAACAAAA5HEAAAAAAAC0PQEA +AAAAAAIAAAAfAQAA/P/////////HPQEAAAAAAAsAAAACAAAAAHQAAAAAAAD1PQEAAAAA +AAIAAAAfAQAA/P/////////mPgEAAAAAAAIAAAArAAAA/P////////9jPwEAAAAAAAIA +AAArAAAA/P////////+8PwEAAAAAAAIAAAArAAAA/P////////8WQAEAAAAAAAIAAAAr +AAAA/P////////8nQAEAAAAAAAIAAAArAAAA/P////////+UQAEAAAAAAAsAAAACAAAA +WHwAAAAAAABvQgEAAAAAAAsAAAACAAAABHcAAAAAAACPQgEAAAAAAAsAAAACAAAAEHcA +AAAAAAC4QgEAAAAAAAsAAAACAAAAMHcAAAAAAADhQgEAAAAAAAsAAAACAAAAYHcAAAAA +AAAaQwEAAAAAAAIAAABwAAAA/P////////86QwEAAAAAAAIAAABwAAAA/P////////9b +QwEAAAAAAAIAAABwAAAA/P////////+KQwEAAAAAAAIAAABwAAAA/P////////+uQwEA +AAAAAAIAAABwAAAA/P/////////SQwEAAAAAAAIAAABwAAAA/P/////////2QwEAAAAA +AAIAAABwAAAA/P////////8aRAEAAAAAAAIAAABwAAAA/P////////8+RAEAAAAAAAIA +AABwAAAA/P////////9mRAEAAAAAAAIAAABwAAAA/P////////+ZRAEAAAAAAAIAAABw +AAAA/P////////+2RAEAAAAAAAIAAABwAAAA/P////////8DRQEAAAAAAAIAAABwAAAA +/P////////8gRQEAAAAAAAIAAABwAAAA/P////////89RQEAAAAAAAIAAABwAAAA/P// +//////9aRQEAAAAAAAIAAABwAAAA/P////////+KRQEAAAAAAAIAAABwAAAA/P////// +//+nRQEAAAAAAAIAAABwAAAA/P/////////ERQEAAAAAAAIAAABwAAAA/P/////////h +RQEAAAAAAAIAAABwAAAA/P/////////+RQEAAAAAAAIAAABwAAAA/P////////8QRgEA +AAAAAAsAAAACAAAAIHsAAAAAAABaRgEAAAAAAAIAAABwAAAA/P////////97RgEAAAAA +AAIAAABwAAAA/P////////+KRgEAAAAAAAsAAAACAAAAAHcAAAAAAACoRgEAAAAAAAIA +AAAfAQAA/P////////+/RgEAAAAAAAsAAAACAAAAEHcAAAAAAADdRgEAAAAAAAIAAAAf +AQAA/P/////////0RgEAAAAAAAsAAAACAAAAMHcAAAAAAAASRwEAAAAAAAIAAAAfAQAA +/P////////8pRwEAAAAAAAsAAAACAAAAYHcAAAAAAABHRwEAAAAAAAIAAAAfAQAA/P// +//////9hRwEAAAAAAAsAAAACAAAAIHsAAAAAAACCRwEAAAAAAAIAAAAfAQAA/P////// +///DSQEAAAAAAAIAAADWAAAA/P/////////WSQEAAAAAAAIAAADWAAAA/P////////9M +SgEAAAAAAAIAAADWAAAA/P////////9fSgEAAAAAAAIAAADWAAAA/P////////+xSgEA +AAAAAAIAAADWAAAA/P/////////fSgEAAAAAAAIAAADWAAAA/P/////////ySgEAAAAA +AAIAAADWAAAA/P////////9ASwEAAAAAAAIAAADWAAAA/P////////+5UQEAAAAAAAIA +AAB8AAAA/P/////////aUQEAAAAAAAIAAAB8AAAA/P////////8FUgEAAAAAAAIAAADA +AAAA/P////////8lUgEAAAAAAAIAAADAAAAA/P////////9UUgEAAAAAAAsAAAABAAAA +o1EBAAAAAABfUgEAAAAAAAsAAAABAAAAMD0BAAAAAABqUgEAAAAAAAsAAAABAAAAg0AB +AAAAAAB1UgEAAAAAAAsAAAABAAAADz4BAAAAAACAUgEAAAAAAAsAAAABAAAAuUABAAAA +AACLUgEAAAAAAAsAAAABAAAArEcBAAAAAADCUgEAAAAAAAsAAAACAAAAoHwAAAAAAADy +UgEAAAAAAAIAAAAfAQAA/P////////8IUwEAAAAAAAsAAAACAAAAIH4AAAAAAAAUUwEA +AAAAAAsAAAACAAAAJH4AAAAAAAAoUwEAAAAAAAIAAAAfAQAA/P////////8+UwEAAAAA +AAsAAAACAAAAgIIAAAAAAABsUwEAAAAAAAIAAAAfAQAA/P////////9dVAEAAAAAAAIA +AAArAAAA/P/////////aVAEAAAAAAAIAAAArAAAA/P////////8zVQEAAAAAAAIAAAAr +AAAA/P////////+NVQEAAAAAAAIAAAArAAAA/P////////+eVQEAAAAAAAIAAAArAAAA +/P////////9/VgEAAAAAAAsAAAACAAAAhIUAAAAAAACdVgEAAAAAAAsAAAACAAAAkIUA +AAAAAADFVgEAAAAAAAsAAAACAAAAsIUAAAAAAADtVgEAAAAAAAsAAAACAAAA4IUAAAAA +AAAoVwEAAAAAAAIAAABwAAAA/P////////9FVwEAAAAAAAIAAABwAAAA/P////////9V +VwEAAAAAAAsAAAACAAAAgIgAAAAAAAB+VwEAAAAAAAsAAAACAAAAgIUAAAAAAACbVwEA +AAAAAAIAAAAfAQAA/P////////+yVwEAAAAAAAsAAAACAAAAkIUAAAAAAADQVwEAAAAA +AAIAAAAfAQAA/P/////////nVwEAAAAAAAsAAAACAAAAsIUAAAAAAAAFWAEAAAAAAAIA +AAAfAQAA/P////////8cWAEAAAAAAAsAAAACAAAA4IUAAAAAAAA6WAEAAAAAAAIAAAAf +AQAA/P////////9UWAEAAAAAAAsAAAACAAAAgIgAAAAAAAByWAEAAAAAAAIAAAAfAQAA +/P////////+tWAEAAAAAAAsAAAACAAAAyIgAAAAAAAARYQEAAAAAAAIAAAB8AAAA/P// +//////8yYQEAAAAAAAIAAAB8AAAA/P////////9dYQEAAAAAAAIAAADAAAAA/P////// +//99YQEAAAAAAAIAAADAAAAA/P////////+iYQEAAAAAAAsAAAABAAAA+2ABAAAAAACt +YQEAAAAAAAsAAAABAAAApFIBAAAAAAC4YQEAAAAAAAsAAAABAAAAnFgBAAAAAADDYQEA +AAAAAAsAAAABAAAAhlMBAAAAAADOYQEAAAAAAAsAAAABAAAA+lUBAAAAAADZYQEAAAAA +AAsAAAABAAAAcV8BAAAAAAAAAAAAAAAAAAEAAAABAAAATAYAAAAAAAAIAAAAAAAAAAEA +AAABAAAA4QYAAAAAAAAQAAAAAAAAAAEAAAABAAAA4QYAAAAAAAAYAAAAAAAAAAEAAAAB +AAAA4QYAAAAAAAAgAAAAAAAAAAEAAAABAAAA5wYAAAAAAAAoAAAAAAAAAAEAAAABAAAA +4QYAAAAAAAAwAAAAAAAAAAEAAAABAAAAVQYAAAAAAAA4AAAAAAAAAAEAAAABAAAAYgYA +AAAAAABAAAAAAAAAAAEAAAABAAAA5wYAAAAAAABIAAAAAAAAAAEAAAABAAAAaQYAAAAA +AABQAAAAAAAAAAEAAAABAAAAcAYAAAAAAABYAAAAAAAAAAEAAAABAAAAoQYAAAAAAABg +AAAAAAAAAAEAAAABAAAAgwYAAAAAAABoAAAAAAAAAAEAAAABAAAAlQYAAAAAAABwAAAA +AAAAAAEAAAABAAAAmwYAAAAAAAB4AAAAAAAAAAEAAAABAAAAqQYAAAAAAABIAQAAAAAA +AAEAAAADAAAAnwAAAAAAAABQAQAAAAAAAAEAAAADAAAAogAAAAAAAABwAQAAAAAAAAEA +AAADAAAAqAAAAAAAAAB4AQAAAAAAAAEAAAADAAAAqwAAAAAAAACYAQAAAAAAAAEAAAAD +AAAAugAAAAAAAACgAQAAAAAAAAEAAAADAAAAvQAAAAAAAADAAQAAAAAAAAEAAAADAAAA +xQAAAAAAAADIAQAAAAAAAAEAAAADAAAAyAAAAAAAAADoAQAAAAAAAAEAAAADAAAA0AAA +AAAAAADwAQAAAAAAAAEAAAADAAAA0wAAAAAAAAAQAgAAAAAAAAEAAAADAAAA3QAAAAAA +AAAYAgAAAAAAAAEAAAADAAAA4AAAAAAAAAA4AgAAAAAAAAEAAAADAAAA6AAAAAAAAABA +AgAAAAAAAAEAAAADAAAA6wAAAAAAAABgAgAAAAAAAAEAAAADAAAA9QAAAAAAAABoAgAA +AAAAAAEAAAADAAAA+AAAAAAAAACIAgAAAAAAAAEAAAADAAAAAAEAAAAAAACQAgAAAAAA +AAEAAAADAAAAAwEAAAAAAACwAgAAAAAAAAEAAAADAAAADgEAAAAAAAC4AgAAAAAAAAEA +AAADAAAAEQEAAAAAAADYAgAAAAAAAAEAAAADAAAAGQEAAAAAAADgAgAAAAAAAAEAAAAD +AAAAHAEAAAAAAAAAAwAAAAAAAAEAAAADAAAAJAEAAAAAAAAIAwAAAAAAAAEAAAADAAAA +JwEAAAAAAAAoAwAAAAAAAAEAAAADAAAALwEAAAAAAAAwAwAAAAAAAAEAAAADAAAAMgEA +AAAAAABQAwAAAAAAAAEAAAADAAAAOQEAAAAAAABYAwAAAAAAAAEAAAADAAAAPAEAAAAA +AAB4AwAAAAAAAAEAAAADAAAAQwEAAAAAAACAAwAAAAAAAAEAAAADAAAARgEAAAAAAACg +AwAAAAAAAAEAAAADAAAATQEAAAAAAACoAwAAAAAAAAEAAAADAAAAUAEAAAAAAADIAwAA +AAAAAAEAAAADAAAAYgEAAAAAAADQAwAAAAAAAAEAAAADAAAAZQEAAAAAAADwAwAAAAAA +AAEAAAADAAAAbgEAAAAAAAD4AwAAAAAAAAEAAAADAAAAcQEAAAAAAAAYBAAAAAAAAAEA +AAADAAAAeAEAAAAAAAAgBAAAAAAAAAEAAAADAAAAewEAAAAAAABABAAAAAAAAAEAAAAD +AAAAgQEAAAAAAABIBAAAAAAAAAEAAAADAAAAhAEAAAAAAABoBAAAAAAAAAEAAAADAAAA +igEAAAAAAABwBAAAAAAAAAEAAAADAAAAjQEAAAAAAACQBAAAAAAAAAEAAAADAAAAlgEA +AAAAAACYBAAAAAAAAAEAAAADAAAAmQEAAAAAAAC4BAAAAAAAAAEAAAADAAAApAEAAAAA +AADABAAAAAAAAAEAAAADAAAApwEAAAAAAADgBAAAAAAAAAEAAAADAAAArwEAAAAAAADo +BAAAAAAAAAEAAAADAAAAsgEAAAAAAAAIBQAAAAAAAAEAAAADAAAAuQEAAAAAAAAQBQAA +AAAAAAEAAAADAAAAvAEAAAAAAAAwBQAAAAAAAAEAAAADAAAAywEAAAAAAAA4BQAAAAAA +AAEAAAADAAAAzgEAAAAAAABYBQAAAAAAAAEAAAADAAAA1gEAAAAAAABgBQAAAAAAAAEA +AAADAAAA2QEAAAAAAACABQAAAAAAAAEAAAADAAAA7AEAAAAAAACIBQAAAAAAAAEAAAAD +AAAA7wEAAAAAAACoBQAAAAAAAAEAAAADAAAA9wEAAAAAAACwBQAAAAAAAAEAAAADAAAA ++gEAAAAAAADQBQAAAAAAAAEAAAADAAAAAAIAAAAAAADYBQAAAAAAAAEAAAADAAAAAwIA +AAAAAAD4BQAAAAAAAAEAAAADAAAADwIAAAAAAAAABgAAAAAAAAEAAAADAAAAEgIAAAAA +AAAgBgAAAAAAAAEAAAADAAAAGgIAAAAAAAAoBgAAAAAAAAEAAAADAAAAHQIAAAAAAABI +BgAAAAAAAAEAAAADAAAAJQIAAAAAAABQBgAAAAAAAAEAAAADAAAAKAIAAAAAAABwBgAA +AAAAAAEAAAADAAAALwIAAAAAAAB4BgAAAAAAAAEAAAADAAAAMgIAAAAAAACYBgAAAAAA +AAEAAAADAAAAPQIAAAAAAACgBgAAAAAAAAEAAAADAAAAQAIAAAAAAADABgAAAAAAAAEA +AAADAAAASAIAAAAAAADIBgAAAAAAAAEAAAADAAAASwIAAAAAAADoBgAAAAAAAAEAAAAD +AAAAUwIAAAAAAADwBgAAAAAAAAEAAAADAAAAVgIAAAAAAAAQBwAAAAAAAAEAAAADAAAA +XQIAAAAAAAAYBwAAAAAAAAEAAAADAAAAYAIAAAAAAAA4BwAAAAAAAAEAAAADAAAAagIA +AAAAAABABwAAAAAAAAEAAAADAAAAbQIAAAAAAABgBwAAAAAAAAEAAAADAAAAdgIAAAAA +AABoBwAAAAAAAAEAAAADAAAAeQIAAAAAAACIBwAAAAAAAAEAAAADAAAAgwIAAAAAAACQ +BwAAAAAAAAEAAAADAAAAhgIAAAAAAACwBwAAAAAAAAEAAAADAAAAjgIAAAAAAAC4BwAA +AAAAAAEAAAADAAAAkQIAAAAAAADYBwAAAAAAAAEAAAADAAAAmQIAAAAAAADgBwAAAAAA +AAEAAAADAAAAnAIAAAAAAAAACAAAAAAAAAEAAAADAAAAogIAAAAAAAAICAAAAAAAAAEA +AAADAAAApQIAAAAAAAAoCAAAAAAAAAEAAAADAAAArwIAAAAAAAAwCAAAAAAAAAEAAAAD +AAAAsgIAAAAAAABQCAAAAAAAAAEAAAADAAAAtwIAAAAAAABYCAAAAAAAAAEAAAADAAAA +ugIAAAAAAAB4CAAAAAAAAAEAAAADAAAAwgIAAAAAAACACAAAAAAAAAEAAAADAAAAxQIA +AAAAAACgCAAAAAAAAAEAAAADAAAAzAIAAAAAAACoCAAAAAAAAAEAAAADAAAAzwIAAAAA +AADICAAAAAAAAAEAAAADAAAA1QIAAAAAAADQCAAAAAAAAAEAAAADAAAA2AIAAAAAAADw +CAAAAAAAAAEAAAADAAAA3gIAAAAAAAD4CAAAAAAAAAEAAAADAAAA4QIAAAAAAAAYCQAA +AAAAAAEAAAADAAAA6AIAAAAAAAAgCQAAAAAAAAEAAAADAAAA6wIAAAAAAABACQAAAAAA +AAEAAAADAAAA8gIAAAAAAABICQAAAAAAAAEAAAADAAAA9QIAAAAAAABoCQAAAAAAAAEA +AAADAAAA/AIAAAAAAABwCQAAAAAAAAEAAAADAAAA/wIAAAAAAACQCQAAAAAAAAEAAAAD +AAAABgMAAAAAAACYCQAAAAAAAAEAAAADAAAACQMAAAAAAAC4CQAAAAAAAAEAAAADAAAA +EAMAAAAAAADACQAAAAAAAAEAAAADAAAAEwMAAAAAAADgCQAAAAAAAAEAAAADAAAAGgMA +AAAAAADoCQAAAAAAAAEAAAADAAAAHQMAAAAAAAAICgAAAAAAAAEAAAADAAAAKAMAAAAA +AAAQCgAAAAAAAAEAAAADAAAAKwMAAAAAAAAwCgAAAAAAAAEAAAADAAAANwMAAAAAAAA4 +CgAAAAAAAAEAAAADAAAAOgMAAAAAAABYCgAAAAAAAAEAAAADAAAASQMAAAAAAABgCgAA +AAAAAAEAAAADAAAATAMAAAAAAACACgAAAAAAAAEAAAADAAAAXAMAAAAAAACICgAAAAAA +AAEAAAADAAAAXwMAAAAAAACoCgAAAAAAAAEAAAADAAAAZgMAAAAAAACwCgAAAAAAAAEA +AAADAAAAaQMAAAAAAADQCgAAAAAAAAEAAAADAAAAcAMAAAAAAADYCgAAAAAAAAEAAAAD +AAAAcwMAAAAAAAD4CgAAAAAAAAEAAAADAAAAewMAAAAAAAAACwAAAAAAAAEAAAADAAAA +fgMAAAAAAAAgCwAAAAAAAAEAAAADAAAAjAMAAAAAAAAoCwAAAAAAAAEAAAADAAAAjwMA +AAAAAABICwAAAAAAAAEAAAADAAAAmQMAAAAAAABQCwAAAAAAAAEAAAADAAAAnAMAAAAA +AABwCwAAAAAAAAEAAAADAAAApwMAAAAAAAB4CwAAAAAAAAEAAAADAAAAqgMAAAAAAACY +CwAAAAAAAAEAAAADAAAAsAMAAAAAAACgCwAAAAAAAAEAAAADAAAAswMAAAAAAADACwAA +AAAAAAEAAAADAAAAvQMAAAAAAADICwAAAAAAAAEAAAADAAAAwAMAAAAAAADoCwAAAAAA +AAEAAAADAAAAyQMAAAAAAADwCwAAAAAAAAEAAAADAAAAzAMAAAAAAAAQDAAAAAAAAAEA +AAADAAAA0wMAAAAAAAAYDAAAAAAAAAEAAAADAAAA1gMAAAAAAAA4DAAAAAAAAAEAAAAD +AAAA3QMAAAAAAABADAAAAAAAAAEAAAADAAAA4AMAAAAAAABgDAAAAAAAAAEAAAADAAAA +6AMAAAAAAABoDAAAAAAAAAEAAAADAAAA6wMAAAAAAACIDAAAAAAAAAEAAAADAAAA9wMA +AAAAAACQDAAAAAAAAAEAAAADAAAA+gMAAAAAAACwDAAAAAAAAAEAAAADAAAABgQAAAAA +AAC4DAAAAAAAAAEAAAADAAAACQQAAAAAAADYDAAAAAAAAAEAAAADAAAAEAQAAAAAAADg +DAAAAAAAAAEAAAADAAAAEwQAAAAAAAAADQAAAAAAAAEAAAADAAAAGAQAAAAAAAAIDQAA +AAAAAAEAAAADAAAAGwQAAAAAAAAoDQAAAAAAAAEAAAADAAAAJAQAAAAAAAAwDQAAAAAA +AAEAAAADAAAAJwQAAAAAAABQDQAAAAAAAAEAAAADAAAALgQAAAAAAABYDQAAAAAAAAEA +AAADAAAAMQQAAAAAAAB4DQAAAAAAAAEAAAADAAAANgQAAAAAAACADQAAAAAAAAEAAAAD +AAAAOQQAAAAAAACgDQAAAAAAAAEAAAADAAAARQQAAAAAAACoDQAAAAAAAAEAAAADAAAA +SAQAAAAAAADIDQAAAAAAAAEAAAADAAAATwQAAAAAAADQDQAAAAAAAAEAAAADAAAAUgQA +AAAAAADwDQAAAAAAAAEAAAADAAAAWwQAAAAAAAD4DQAAAAAAAAEAAAADAAAAXgQAAAAA +AAAYDgAAAAAAAAEAAAADAAAAagQAAAAAAAAgDgAAAAAAAAEAAAADAAAAbQQAAAAAAABA +DgAAAAAAAAEAAAADAAAAcwQAAAAAAABIDgAAAAAAAAEAAAADAAAAdgQAAAAAAABoDgAA +AAAAAAEAAAADAAAAfgQAAAAAAABwDgAAAAAAAAEAAAADAAAAgQQAAAAAAACQDgAAAAAA +AAEAAAADAAAAiAQAAAAAAACYDgAAAAAAAAEAAAADAAAAiwQAAAAAAAC4DgAAAAAAAAEA +AAADAAAAmAQAAAAAAADADgAAAAAAAAEAAAADAAAAmwQAAAAAAADgDgAAAAAAAAEAAAAD +AAAApQQAAAAAAADoDgAAAAAAAAEAAAADAAAAqAQAAAAAAAAIDwAAAAAAAAEAAAADAAAA +uAQAAAAAAAAQDwAAAAAAAAEAAAADAAAAuwQAAAAAAAAwDwAAAAAAAAEAAAADAAAAxAQA +AAAAAAA4DwAAAAAAAAEAAAADAAAAxwQAAAAAAABYDwAAAAAAAAEAAAADAAAA1AQAAAAA +AABgDwAAAAAAAAEAAAADAAAA1wQAAAAAAACADwAAAAAAAAEAAAADAAAA3QQAAAAAAACI +DwAAAAAAAAEAAAADAAAA4AQAAAAAAACoDwAAAAAAAAEAAAADAAAA5wQAAAAAAACwDwAA +AAAAAAEAAAADAAAA6gQAAAAAAADQDwAAAAAAAAEAAAADAAAA9gQAAAAAAADYDwAAAAAA +AAEAAAADAAAA+QQAAAAAAAD4DwAAAAAAAAEAAAADAAAA/wQAAAAAAAAAEAAAAAAAAAEA +AAADAAAAAgUAAAAAAAAgEAAAAAAAAAEAAAADAAAACQUAAAAAAAAoEAAAAAAAAAEAAAAD +AAAADAUAAAAAAABIEAAAAAAAAAEAAAADAAAAFQUAAAAAAABQEAAAAAAAAAEAAAADAAAA +GAUAAAAAAABwEAAAAAAAAAEAAAADAAAAKgUAAAAAAAB4EAAAAAAAAAEAAAADAAAALQUA +AAAAAACYEAAAAAAAAAEAAAADAAAANQUAAAAAAACgEAAAAAAAAAEAAAADAAAAOAUAAAAA +AADAEAAAAAAAAAEAAAADAAAAPwUAAAAAAADIEAAAAAAAAAEAAAADAAAAQgUAAAAAAADo +EAAAAAAAAAEAAAADAAAASgUAAAAAAADwEAAAAAAAAAEAAAADAAAATQUAAAAAAAAQEQAA +AAAAAAEAAAADAAAAYgUAAAAAAAAYEQAAAAAAAAEAAAADAAAAZQUAAAAAAAA4EQAAAAAA +AAEAAAADAAAAdAUAAAAAAABAEQAAAAAAAAEAAAADAAAAdwUAAAAAAABgEQAAAAAAAAEA +AAADAAAAhQUAAAAAAABoEQAAAAAAAAEAAAADAAAAiAUAAAAAAACIEQAAAAAAAAEAAAAD +AAAAkAUAAAAAAACQEQAAAAAAAAEAAAADAAAAkwUAAAAAAACwEQAAAAAAAAEAAAADAAAA +ngUAAAAAAAC4EQAAAAAAAAEAAAADAAAAoQUAAAAAAADYEQAAAAAAAAEAAAADAAAAqwUA +AAAAAADgEQAAAAAAAAEAAAADAAAArgUAAAAAAAAAEgAAAAAAAAEAAAADAAAAtwUAAAAA +AAAIEgAAAAAAAAEAAAADAAAAugUAAAAAAAAoEgAAAAAAAAEAAAADAAAAwAUAAAAAAAAw +EgAAAAAAAAEAAAADAAAAwwUAAAAAAAA4GAAAAAAAAAEAAAAFAAAAgAEAAAAAAABAGAAA +AAAAAAEAAAAFAAAAkAEAAAAAAABIGAAAAAAAAAEAAAAFAAAAoAEAAAAAAABQGAAAAAAA +AAEAAAAFAAAA4AEAAAAAAABYGAAAAAAAAAEAAAAFAAAA8AEAAAAAAABgGAAAAAAAAAEA +AAAFAAAAAAIAAAAAAABoGAAAAAAAAAEAAAAFAAAAEAIAAAAAAABwGAAAAAAAAAEAAAAF +AAAAIAIAAAAAAAB4GAAAAAAAAAEAAAAFAAAAYAIAAAAAAACAGAAAAAAAAAEAAAAFAAAA +cAIAAAAAAACgGAAAAAAAAAEAAAAFAAAAgAEAAAAAAACoGAAAAAAAAAEAAAAFAAAAkAEA +AAAAAACwGAAAAAAAAAEAAAAFAAAAsAEAAAAAAAC4GAAAAAAAAAEAAAAFAAAA4AEAAAAA +AADAGAAAAAAAAAEAAAAFAAAA8AEAAAAAAADIGAAAAAAAAAEAAAAFAAAAAAIAAAAAAADQ +GAAAAAAAAAEAAAAFAAAAEAIAAAAAAADYGAAAAAAAAAEAAAAFAAAAMAIAAAAAAADgGAAA +AAAAAAEAAAAFAAAAcAIAAAAAAAAIGQAAAAAAAAEAAAAFAAAAgAEAAAAAAAAQGQAAAAAA +AAEAAAAFAAAAkAEAAAAAAAAYGQAAAAAAAAEAAAAFAAAAoAEAAAAAAAAgGQAAAAAAAAEA +AAAFAAAA4AEAAAAAAAAoGQAAAAAAAAEAAAAFAAAA8AEAAAAAAAAwGQAAAAAAAAEAAAAF +AAAAAAIAAAAAAAA4GQAAAAAAAAEAAAAFAAAAEAIAAAAAAABAGQAAAAAAAAEAAAAFAAAA +IAIAAAAAAABIGQAAAAAAAAEAAAAFAAAAcAIAAAAAAABwGQAAAAAAAAEAAAAFAAAAgAEA +AAAAAAB4GQAAAAAAAAEAAAAFAAAAkAEAAAAAAACAGQAAAAAAAAEAAAAFAAAAoAEAAAAA +AACIGQAAAAAAAAEAAAAFAAAA4AEAAAAAAACQGQAAAAAAAAEAAAAFAAAA8AEAAAAAAACY +GQAAAAAAAAEAAAAFAAAAAAIAAAAAAACgGQAAAAAAAAEAAAAFAAAAEAIAAAAAAACoGQAA +AAAAAAEAAAAFAAAAIAIAAAAAAACwGQAAAAAAAAEAAAAFAAAAcAIAAAAAAADYGQAAAAAA +AAEAAAAFAAAAgAEAAAAAAADgGQAAAAAAAAEAAAAFAAAAkAEAAAAAAADoGQAAAAAAAAEA +AAAFAAAAoAEAAAAAAADwGQAAAAAAAAEAAAAFAAAA4AEAAAAAAAD4GQAAAAAAAAEAAAAF +AAAAEAIAAAAAAAAAGgAAAAAAAAEAAAAFAAAAIAIAAAAAAAAIGgAAAAAAAAEAAAAFAAAA +YAIAAAAAAAAQGgAAAAAAAAEAAAAFAAAAcAIAAAAAAAAwGgAAAAAAAAEAAAAFAAAAaAEA +AAAAAABAGgAAAAAAAAEAAAAFAAAAgAEAAAAAAABIGgAAAAAAAAEAAAAFAAAAkAEAAAAA +AABQGgAAAAAAAAEAAAAFAAAAoAEAAAAAAABYGgAAAAAAAAEAAAAFAAAA4AEAAAAAAABg +GgAAAAAAAAEAAAAFAAAA8AEAAAAAAABoGgAAAAAAAAEAAAAFAAAAAAIAAAAAAABwGgAA +AAAAAAEAAAAFAAAAEAIAAAAAAAB4GgAAAAAAAAEAAAAFAAAAIAIAAAAAAACAGgAAAAAA +AAEAAAAFAAAAYAIAAAAAAACIGgAAAAAAAAEAAAAFAAAAcAIAAAAAAACoGgAAAAAAAAEA +AAAFAAAAgAEAAAAAAACwGgAAAAAAAAEAAAAFAAAAkAEAAAAAAAC4GgAAAAAAAAEAAAAF +AAAAoAEAAAAAAADAGgAAAAAAAAEAAAAFAAAA4AEAAAAAAADIGgAAAAAAAAEAAAAFAAAA +8AEAAAAAAADQGgAAAAAAAAEAAAAFAAAAAAIAAAAAAADYGgAAAAAAAAEAAAAFAAAAIAIA +AAAAAADgGgAAAAAAAAEAAAAFAAAAcAIAAAAAAAAQGwAAAAAAAAEAAAAFAAAAgAEAAAAA +AAAYGwAAAAAAAAEAAAAFAAAAwAEAAAAAAAAgGwAAAAAAAAEAAAAFAAAA4AEAAAAAAAAo +GwAAAAAAAAEAAAAFAAAA8AEAAAAAAAAwGwAAAAAAAAEAAAAFAAAAAAIAAAAAAAA4GwAA +AAAAAAEAAAAFAAAAQAIAAAAAAABAGwAAAAAAAAEAAAAFAAAAcAIAAAAAAAB4GwAAAAAA +AAEAAAAFAAAAgAEAAAAAAACAGwAAAAAAAAEAAAAFAAAAoAEAAAAAAACIGwAAAAAAAAEA +AAAFAAAA4AEAAAAAAACQGwAAAAAAAAEAAAAFAAAAIAIAAAAAAACYGwAAAAAAAAEAAAAF +AAAAcAIAAAAAAADgGwAAAAAAAAEAAAAFAAAAgAEAAAAAAADoGwAAAAAAAAEAAAAFAAAA +wAEAAAAAAADwGwAAAAAAAAEAAAAFAAAA4AEAAAAAAAD4GwAAAAAAAAEAAAAFAAAA8AEA +AAAAAAAAHAAAAAAAAAEAAAAFAAAAAAIAAAAAAAAIHAAAAAAAAAEAAAAFAAAAEAIAAAAA +AAAQHAAAAAAAAAEAAAAFAAAAQAIAAAAAAAAYHAAAAAAAAAEAAAAFAAAAcAIAAAAAAABI +HAAAAAAAAAEAAAAFAAAAgAEAAAAAAABQHAAAAAAAAAEAAAAFAAAAoAEAAAAAAABYHAAA +AAAAAAEAAAAFAAAA4AEAAAAAAABgHAAAAAAAAAEAAAAFAAAAEAIAAAAAAABoHAAAAAAA +AAEAAAAFAAAAIAIAAAAAAABwHAAAAAAAAAEAAAAFAAAAcAIAAAAAAAC4HAAAAAAAAAEA +AAAFAAAAgAEAAAAAAADAHAAAAAAAAAEAAAAFAAAAkAEAAAAAAADIHAAAAAAAAAEAAAAF +AAAAsAEAAAAAAADQHAAAAAAAAAEAAAAFAAAA4AEAAAAAAADYHAAAAAAAAAEAAAAFAAAA +8AEAAAAAAADgHAAAAAAAAAEAAAAFAAAAAAIAAAAAAADoHAAAAAAAAAEAAAAFAAAAEAIA +AAAAAADwHAAAAAAAAAEAAAAFAAAAMAIAAAAAAAD4HAAAAAAAAAEAAAAFAAAAcAIAAAAA +AAAgHQAAAAAAAAEAAAAFAAAAgAEAAAAAAAAoHQAAAAAAAAEAAAAFAAAAkAEAAAAAAAAw +HQAAAAAAAAEAAAAFAAAAsAEAAAAAAAA4HQAAAAAAAAEAAAAFAAAA4AEAAAAAAABAHQAA +AAAAAAEAAAAFAAAA8AEAAAAAAABIHQAAAAAAAAEAAAAFAAAAAAIAAAAAAABQHQAAAAAA +AAEAAAAFAAAAEAIAAAAAAABYHQAAAAAAAAEAAAAFAAAAMAIAAAAAAABgHQAAAAAAAAEA +AAAFAAAAcAIAAAAAAACIHQAAAAAAAAEAAAAFAAAAgAEAAAAAAACQHQAAAAAAAAEAAAAF +AAAAkAEAAAAAAACYHQAAAAAAAAEAAAAFAAAAoAEAAAAAAACgHQAAAAAAAAEAAAAFAAAA +4AEAAAAAAACoHQAAAAAAAAEAAAAFAAAA8AEAAAAAAACwHQAAAAAAAAEAAAAFAAAAAAIA +AAAAAAC4HQAAAAAAAAEAAAAFAAAAEAIAAAAAAADAHQAAAAAAAAEAAAAFAAAAMAIAAAAA +AADIHQAAAAAAAAEAAAAFAAAAcAIAAAAAAADwHQAAAAAAAAEAAAAFAAAAgAEAAAAAAAD4 +HQAAAAAAAAEAAAAFAAAAkAEAAAAAAAAAHgAAAAAAAAEAAAAFAAAAoAEAAAAAAAAIHgAA +AAAAAAEAAAAFAAAA4AEAAAAAAAAQHgAAAAAAAAEAAAAFAAAA8AEAAAAAAAAYHgAAAAAA +AAEAAAAFAAAAAAIAAAAAAAAgHgAAAAAAAAEAAAAFAAAAEAIAAAAAAAAoHgAAAAAAAAEA +AAAFAAAAMAIAAAAAAAAwHgAAAAAAAAEAAAAFAAAAcAIAAAAAAABYHgAAAAAAAAEAAAAF +AAAAgAEAAAAAAABgHgAAAAAAAAEAAAAFAAAAkAEAAAAAAABoHgAAAAAAAAEAAAAFAAAA +sAEAAAAAAABwHgAAAAAAAAEAAAAFAAAA4AEAAAAAAAB4HgAAAAAAAAEAAAAFAAAAEAIA +AAAAAACAHgAAAAAAAAEAAAAFAAAAMAIAAAAAAACIHgAAAAAAAAEAAAAFAAAAcAIAAAAA +AACwHgAAAAAAAAEAAAAFAAAAaAEAAAAAAADAHgAAAAAAAAEAAAAFAAAAgAEAAAAAAADI +HgAAAAAAAAEAAAAFAAAAkAEAAAAAAADQHgAAAAAAAAEAAAAFAAAAsAEAAAAAAADYHgAA +AAAAAAEAAAAFAAAA4AEAAAAAAADgHgAAAAAAAAEAAAAFAAAA8AEAAAAAAADoHgAAAAAA +AAEAAAAFAAAAAAIAAAAAAADwHgAAAAAAAAEAAAAFAAAAEAIAAAAAAAD4HgAAAAAAAAEA +AAAFAAAAMAIAAAAAAAAAHwAAAAAAAAEAAAAFAAAAcAIAAAAAAAAoHwAAAAAAAAEAAAAF +AAAAgAEAAAAAAAAwHwAAAAAAAAEAAAAFAAAAkAEAAAAAAAA4HwAAAAAAAAEAAAAFAAAA +sAEAAAAAAABAHwAAAAAAAAEAAAAFAAAA4AEAAAAAAABIHwAAAAAAAAEAAAAFAAAA8AEA +AAAAAABQHwAAAAAAAAEAAAAFAAAAAAIAAAAAAABYHwAAAAAAAAEAAAAFAAAAMAIAAAAA +AABgHwAAAAAAAAEAAAAFAAAAcAIAAAAAAACQHwAAAAAAAAEAAAAFAAAAgAEAAAAAAACY +HwAAAAAAAAEAAAAFAAAA0AEAAAAAAACgHwAAAAAAAAEAAAAFAAAA4AEAAAAAAACoHwAA +AAAAAAEAAAAFAAAA8AEAAAAAAACwHwAAAAAAAAEAAAAFAAAAAAIAAAAAAAC4HwAAAAAA +AAEAAAAFAAAAUAIAAAAAAADAHwAAAAAAAAEAAAAFAAAAcAIAAAAAAAD4HwAAAAAAAAEA +AAAFAAAAgAEAAAAAAAAAIAAAAAAAAAEAAAAFAAAA0AEAAAAAAAAIIAAAAAAAAAEAAAAF +AAAA4AEAAAAAAAAQIAAAAAAAAAEAAAAFAAAAUAIAAAAAAAAYIAAAAAAAAAEAAAAFAAAA +cAIAAAAAAABgIAAAAAAAAAEAAAAFAAAAgAEAAAAAAABoIAAAAAAAAAEAAAAFAAAA0AEA +AAAAAABwIAAAAAAAAAEAAAAFAAAA4AEAAAAAAAB4IAAAAAAAAAEAAAAFAAAA8AEAAAAA +AACAIAAAAAAAAAEAAAAFAAAAAAIAAAAAAACIIAAAAAAAAAEAAAAFAAAAEAIAAAAAAACQ +IAAAAAAAAAEAAAAFAAAAUAIAAAAAAACYIAAAAAAAAAEAAAAFAAAAcAIAAAAAAADIIAAA +AAAAAAEAAAAFAAAAgAEAAAAAAADQIAAAAAAAAAEAAAAFAAAA0AEAAAAAAADYIAAAAAAA +AAEAAAAFAAAA4AEAAAAAAADgIAAAAAAAAAEAAAAFAAAAEAIAAAAAAADoIAAAAAAAAAEA +AAAFAAAAUAIAAAAAAADwIAAAAAAAAAEAAAAFAAAAcAIAAAAAAAAoIQAAAAAAAAEAAAAF +AAAAgAIAAAAAAAA4IQAAAAAAAAEAAAAFAAAAigIAAAAAAABIIQAAAAAAAAEAAAAFAAAA +oAIAAAAAAABoIQAAAAAAAAEAAAABAAAA0TkAAAAAAABwIQAAAAAAAAEAAAABAAAAszkA +AAAAAAB4IQAAAAAAAAEAAAABAAAAxTkAAAAAAACAIQAAAAAAAAEAAAABAAAA0TkAAAAA +AACIIQAAAAAAAAEAAAABAAAAuTkAAAAAAACQIQAAAAAAAAEAAAABAAAA0TkAAAAAAACY +IQAAAAAAAAEAAAABAAAA0TkAAAAAAACgIQAAAAAAAAEAAAABAAAA0TkAAAAAAACoIQAA +AAAAAAEAAAABAAAAvzkAAAAAAACwIQAAAAAAAAEAAAABAAAA0TkAAAAAAAC4IQAAAAAA +AAEAAAABAAAA0TkAAAAAAADAIQAAAAAAAAEAAAABAAAA0TkAAAAAAADIIQAAAAAAAAEA +AAABAAAA0TkAAAAAAADQIQAAAAAAAAEAAAABAAAA0TkAAAAAAADYIQAAAAAAAAEAAAAB +AAAA0TkAAAAAAADgIQAAAAAAAAEAAAABAAAA0TkAAAAAAADoIQAAAAAAAAEAAAABAAAA +0TkAAAAAAADwIQAAAAAAAAEAAAABAAAA0TkAAAAAAAD4IQAAAAAAAAEAAAABAAAA0TkA +AAAAAAAAIgAAAAAAAAEAAAABAAAA0TkAAAAAAAAIIgAAAAAAAAEAAAABAAAA0TkAAAAA +AAAQIgAAAAAAAAEAAAABAAAA0TkAAAAAAAAYIgAAAAAAAAEAAAABAAAA0TkAAAAAAAAg +IgAAAAAAAAEAAAABAAAA0TkAAAAAAAAoIgAAAAAAAAEAAAABAAAA0TkAAAAAAAAwIgAA +AAAAAAEAAAABAAAA0TkAAAAAAAA4IgAAAAAAAAEAAAABAAAA0TkAAAAAAABAIgAAAAAA +AAEAAAABAAAA0TkAAAAAAABIIgAAAAAAAAEAAAABAAAA0TkAAAAAAABQIgAAAAAAAAEA +AAABAAAA0TkAAAAAAABYIgAAAAAAAAEAAAABAAAA0TkAAAAAAABgIgAAAAAAAAEAAAAB +AAAA0TkAAAAAAABoIgAAAAAAAAEAAAABAAAAyzkAAAAAAABwIgAAAAAAAAEAAAABAAAA +sToAAAAAAAB4IgAAAAAAAAEAAAABAAAAsToAAAAAAACAIgAAAAAAAAEAAAABAAAA1DoA +AAAAAACIIgAAAAAAAAEAAAABAAAAuDoAAAAAAACQIgAAAAAAAAEAAAABAAAA1DoAAAAA +AACYIgAAAAAAAAEAAAABAAAA1DoAAAAAAACgIgAAAAAAAAEAAAABAAAA1DoAAAAAAACo +IgAAAAAAAAEAAAABAAAA1DoAAAAAAACwIgAAAAAAAAEAAAABAAAAvzoAAAAAAAC4IgAA +AAAAAAEAAAABAAAA1DoAAAAAAADAIgAAAAAAAAEAAAABAAAAxjoAAAAAAADIIgAAAAAA +AAEAAAABAAAAzToAAAAAAAAIIwAAAAAAAAEAAAACAAAA0CIAAAAAAAAQIwAAAAAAAAEA +AAACAAAA4CIAAAAAAABIIwAAAAAAAAEAAAACAAAAACMAAAAAAACYJAAAAAAAAAEAAAD4 +AAAAAAAAAAAAAACgJAAAAAAAAAEAAABcAAAAAAAAAAAAAACoJAAAAAAAAAEAAAC0AAAA +AAAAAAAAAACwJAAAAAAAAAEAAACmAAAAAAAAAAAAAAC4JAAAAAAAAAEAAADFAAAAAAAA +AAAAAADAJAAAAAAAAAEAAABNAAAAAAAAAAAAAADIJAAAAAAAAAEAAADQAAAAAAAAAAAA +AADQJAAAAAAAAAEAAABeAQAAAAAAAAAAAADYJAAAAAAAAAEAAAA1AQAAAAAAAAAAAADg +JAAAAAAAAAEAAACxAAAAAAAAAAAAAADoJAAAAAAAAAEAAAA3AAAAAAAAAAAAAADwJAAA +AAAAAAEAAAB9AAAAAAAAAAAAAAD4JAAAAAAAAAEAAABQAAAAAAAAAAAAAAAAJQAAAAAA +AAEAAAAeAAAAAAAAAAAAAAAIJQAAAAAAAAEAAABPAQAAAAAAAAAAAAAQJQAAAAAAAAEA +AAB3AQAAAAAAAAAAAAAYJQAAAAAAAAEAAAAqAAAAAAAAAAAAAAAgJQAAAAAAAAEAAACE +AAAAAAAAAAAAAAAoJQAAAAAAAAEAAADwAAAAAAAAAAAAAAAwJQAAAAAAAAEAAAAyAQAA +AAAAAAAAAAA4JQAAAAAAAAEAAAAmAAAAAAAAAAAAAABAJQAAAAAAAAEAAAA1AAAAAAAA +AAAAAABIJQAAAAAAAAEAAABgAAAAAAAAAAAAAABQJQAAAAAAAAEAAABkAQAAAAAAAAAA +AABYJQAAAAAAAAEAAAAFAQAAAAAAAAAAAABgJQAAAAAAAAEAAACnAAAAAAAAAAAAAABo +JQAAAAAAAAEAAABHAQAAAAAAAAAAAABwJQAAAAAAAAEAAABKAQAAAAAAAAAAAAB4JQAA +AAAAAAEAAAD1AAAAAAAAAAAAAACAJQAAAAAAAAEAAADOAAAAAAAAAAAAAACIJQAAAAAA +AAEAAAAmAQAAAAAAAAAAAACQJQAAAAAAAAEAAACHAAAAAAAAAAAAAACYJQAAAAAAAAEA +AABZAQAAAAAAAAAAAACgJQAAAAAAAAEAAACyAAAAAAAAAAAAAACoJQAAAAAAAAEAAACp +AAAAAAAAAAAAAACwJQAAAAAAAAEAAAB+AAAAAAAAAAAAAAC4JQAAAAAAAAEAAAChAAAA +AAAAAAAAAADAJQAAAAAAAAEAAABOAAAAAAAAAAAAAADIJQAAAAAAAAEAAAC6AAAAAAAA +AAAAAADQJQAAAAAAAAEAAAAiAQAAAAAAAAAAAADYJQAAAAAAAAEAAAD6AAAAAAAAAAAA +AADgJQAAAAAAAAEAAACbAAAAAAAAAAAAAADoJQAAAAAAAAEAAAAeAQAAAAAAAAAAAADw +JQAAAAAAAAEAAADXAAAAAAAAAAAAAAD4JQAAAAAAAAEAAAAXAQAAAAAAAAAAAAAAJgAA +AAAAAAEAAAAvAAAAAAAAAAAAAAAIJgAAAAAAAAEAAACoAAAAAAAAAAAAAAAQJgAAAAAA +AAEAAABCAQAAAAAAAAAAAAAYJgAAAAAAAAEAAAAIAQAAAAAAAAAAAAAgJgAAAAAAAAEA +AAAQAQAAAAAAAAAAAAAoJgAAAAAAAAEAAAA2AAAAAAAAAAAAAAAwJgAAAAAAAAEAAABs +AAAAAAAAAAAAAAA4JgAAAAAAAAEAAAAuAQAAAAAAAAAAAABAJgAAAAAAAAEAAADUAAAA +AAAAAAAAAABIJgAAAAAAAAEAAABIAAAAAAAAAAAAAABQJgAAAAAAAAEAAAAxAAAAAAAA +AAAAAABYJgAAAAAAAAEAAACDAAAAAAAAAAAAAABgJgAAAAAAAAEAAAALAAAAAAAAAAAA +AABoJgAAAAAAAAEAAADiAAAAAAAAAAAAAABwJgAAAAAAAAEAAAAnAQAAAAAAAAAAAAB4 +JgAAAAAAAAEAAABlAQAAAAAAAAAAAACAJgAAAAAAAAEAAABhAAAAAAAAAAAAAACIJgAA +AAAAAAEAAAANAAAAAAAAAAAAAACQJgAAAAAAAAEAAABLAQAAAAAAAAAAAACYJgAAAAAA +AAEAAAAEAQAAAAAAAAAAAACgJgAAAAAAAAEAAABVAQAAAAAAAAAAAACoJgAAAAAAAAEA +AAA9AAAAAAAAAAAAAACwJgAAAAAAAAEAAAAZAQAAAAAAAAAAAAC4JgAAAAAAAAEAAAAT +AAAAAAAAAAAAAADAJgAAAAAAAAEAAACwAAAAAAAAAAAAAADIJgAAAAAAAAEAAABnAAAA +AAAAAAAAAADQJgAAAAAAAAEAAADkAAAAAAAAAAAAAADYJgAAAAAAAAEAAADmAAAAAAAA +AAAAAADgJgAAAAAAAAEAAAC/AAAAAAAAAAAAAADoJgAAAAAAAAEAAABGAQAAAAAAAAAA +AADwJgAAAAAAAAEAAACuAAAAAAAAAAAAAAD4JgAAAAAAAAEAAABjAQAAAAAAAAAAAAAA +JwAAAAAAAAEAAAAPAAAAAAAAAAAAAAAIJwAAAAAAAAEAAAA3AQAAAAAAAAAAAAAQJwAA +AAAAAAEAAACkAAAAAAAAAAAAAAAYJwAAAAAAAAEAAAAOAQAAAAAAAAAAAAAgJwAAAAAA +AAEAAAD3AAAAAAAAAAAAAAAoJwAAAAAAAAEAAACXAAAAAAAAAAAAAAAwJwAAAAAAAAEA +AAA4AQAAAAAAAAAAAAA4JwAAAAAAAAEAAAABAAAAQ1MAAAAAAABAJwAAAAAAAAEAAAAt +AQAAAAAAAAAAAABIJwAAAAAAAAEAAAB2AQAAAAAAAAAAAABQJwAAAAAAAAEAAAAWAQAA +AAAAAAAAAABgJwAAAAAAAAEAAABCAQAAAAAAAAAAAABoJwAAAAAAAAEAAAAIAQAAAAAA +AAAAAABwJwAAAAAAAAEAAAAQAQAAAAAAAAAAAAB4JwAAAAAAAAEAAAA2AAAAAAAAAAAA +AACAJwAAAAAAAAEAAABsAAAAAAAAAAAAAAD4MwAAAAAAAAEAAAAvAQAAAAAAAAAAAAAA +NAAAAAAAAAEAAABMAQAAAAAAAAAAAAAINAAAAAAAAAEAAABAAQAAAAAAAAAAAAAQNAAA +AAAAAAEAAABiAQAAAAAAAAAAAAAYNAAAAAAAAAEAAABuAAAAAAAAAAAAAAAgNAAAAAAA +AAEAAACJAAAAAAAAAAAAAAAoNAAAAAAAAAEAAABkAAAAAAAAAAAAAAAwNAAAAAAAAAEA +AAAwAAAAAAAAAAAAAAA4NAAAAAAAAAEAAABZAAAAAAAAAAAAAABANAAAAAAAAAEAAABa +AAAAAAAAAAAAAABINAAAAAAAAAEAAAA0AAAAAAAAAAAAAABQNAAAAAAAAAEAAABSAQAA +AAAAAAAAAABYNAAAAAAAAAEAAAD5AAAAAAAAAAAAAABgNAAAAAAAAAEAAABtAQAAAAAA +AAAAAABoNAAAAAAAAAEAAAB5AAAAAAAAAAAAAABwNAAAAAAAAAEAAABcAQAAAAAAAAAA +AAB4NAAAAAAAAAEAAADtAAAAAAAAAAAAAACANAAAAAAAAAEAAACfAAAAAAAAAAAAAACI +NAAAAAAAAAEAAACsAAAAAAAAAAAAAACQNAAAAAAAAAEAAAATAQAAAAAAAAAAAACYNAAA +AAAAAAEAAAAgAAAAAAAAAAAAAACgNAAAAAAAAAEAAADzAAAAAAAAAAAAAACoNAAAAAAA +AAEAAAAYAAAAAAAAAAAAAACwNAAAAAAAAAEAAABOAQAAAAAAAAAAAAC4NAAAAAAAAAEA +AAAdAAAAAAAAAAAAAADANAAAAAAAAAEAAAAnAAAAAAAAAAAAAADINAAAAAAAAAEAAACg +AAAAAAAAAAAAAADQNAAAAAAAAAEAAABhAQAAAAAAAAAAAADYNAAAAAAAAAEAAABQAQAA +AAAAAAAAAADgNAAAAAAAAAEAAABdAQAAAAAAAAAAAADoNAAAAAAAAAEAAAAjAQAAAAAA +AAAAAADwNAAAAAAAAAEAAADfAAAAAAAAAAAAAAD4NAAAAAAAAAEAAADqAAAAAAAAAAAA +AAAANQAAAAAAAAEAAADaAAAAAAAAAAAAAAAINQAAAAAAAAEAAAD9AAAAAAAAAAAAAAAQ +NQAAAAAAAAEAAAB1AAAAAAAAAAAAAAAYNQAAAAAAAAEAAACPAAAAAAAAAAAAAAAgNQAA +AAAAAAEAAABrAAAAAAAAAAAAAAAoNQAAAAAAAAEAAAA0AQAAAAAAAAAAAAAwNQAAAAAA +AAEAAACWAAAAAAAAAAAAAAA4NQAAAAAAAAEAAAA4AAAAAAAAAAAAAABANQAAAAAAAAEA +AAAkAQAAAAAAAAAAAABINQAAAAAAAAEAAAAgAQAAAAAAAAAAAABQNQAAAAAAAAEAAABy +AAAAAAAAAAAAAABYNQAAAAAAAAEAAADPAAAAAAAAAAAAAABgNQAAAAAAAAEAAAAaAQAA +AAAAAAAAAABoNQAAAAAAAAEAAADTAAAAAAAAAAAAAABwNQAAAAAAAAEAAAC3AAAAAAAA +AAAAAAB4NQAAAAAAAAEAAADSAAAAAAAAAAAAAACANQAAAAAAAAEAAAAqAQAAAAAAAAAA +AACINQAAAAAAAAEAAADBAAAAAAAAAAAAAACQNQAAAAAAAAEAAAAyAAAAAAAAAAAAAACY +NQAAAAAAAAEAAABYAAAAAAAAAAAAAACgNQAAAAAAAAEAAADKAAAAAAAAAAAAAACoNQAA +AAAAAAEAAAAxAQAAAAAAAAAAAACwNQAAAAAAAAEAAAA8AQAAAAAAAAAAAAC4NQAAAAAA +AAEAAAASAQAAAAAAAAAAAADANQAAAAAAAAEAAAAbAAAAAAAAAAAAAADINQAAAAAAAAEA +AABUAAAAAAAAAAAAAADQNQAAAAAAAAEAAAAcAQAAAAAAAAAAAADYNQAAAAAAAAEAAACR +AAAAAAAAAAAAAADgNQAAAAAAAAEAAABIAQAAAAAAAAAAAADoNQAAAAAAAAEAAADGAAAA +AAAAAAAAAADwNQAAAAAAAAEAAADvAAAAAAAAAAAAAAD4NQAAAAAAAAEAAAAzAAAAAAAA +AAAAAAAANgAAAAAAAAEAAADrAAAAAAAAAAAAAAAINgAAAAAAAAEAAAAkAAAAAAAAAAAA +AAAQNgAAAAAAAAEAAABJAAAAAAAAAAAAAAAYNgAAAAAAAAEAAACIAAAAAAAAAAAAAAAg +NgAAAAAAAAEAAADNAAAAAAAAAAAAAAAoNgAAAAAAAAEAAAC9AAAAAAAAAAAAAAAwNgAA +AAAAAAEAAAA/AQAAAAAAAAAAAAA4NgAAAAAAAAEAAAC8AAAAAAAAAAAAAABANgAAAAAA +AAEAAAABAQAAAAAAAAAAAABINgAAAAAAAAEAAAD7AAAAAAAAAAAAAABQNgAAAAAAAAEA +AAA9AQAAAAAAAAAAAABYNgAAAAAAAAEAAAAKAAAAAAAAAAAAAABgNgAAAAAAAAEAAACY +AAAAAAAAAAAAAABoNgAAAAAAAAEAAABoAAAAAAAAAAAAAABwNgAAAAAAAAEAAACOAAAA +AAAAAAAAAAB4NgAAAAAAAAEAAABiAAAAAAAAAAAAAACANgAAAAAAAAEAAADbAAAAAAAA +AAAAAACINgAAAAAAAAEAAADgAAAAAAAAAAAAAACQNgAAAAAAAAEAAADyAAAAAAAAAAAA +AACYNgAAAAAAAAEAAAABAAAAUoUAAAAAAACgNgAAAAAAAAEAAAAGAQAAAAAAAAAAAACo +NgAAAAAAAAEAAAAYAQAAAAAAAAAAAACwNgAAAAAAAAEAAAAzAQAAAAAAAAAAAADANgAA +AAAAAAEAAAC3AAAAAAAAAAAAAADINgAAAAAAAAEAAADSAAAAAAAAAAAAAADQNgAAAAAA +AAEAAAAqAQAAAAAAAAAAAADYNgAAAAAAAAEAAADBAAAAAAAAAAAAAADgNgAAAAAAAAEA +AAAyAAAAAAAAAAAAAADYSgAAAAAAAAEAAAABAAAABbUAAAAAAADgSgAAAAAAAAEAAAAB +AAAABbUAAAAAAADoSgAAAAAAAAEAAAABAAAALLUAAAAAAADwSgAAAAAAAAEAAAABAAAA +LLUAAAAAAAD4SgAAAAAAAAEAAAABAAAAU7UAAAAAAAAASwAAAAAAAAEAAAABAAAAU7UA +AAAAAAAISwAAAAAAAAEAAAABAAAAerUAAAAAAAAQSwAAAAAAAAEAAAABAAAAerUAAAAA +AAB4TAAAAAAAAAEAAABTAAAAAAAAAAAAAACATAAAAAAAAAEAAAB4AAAAAAAAAAAAAACI +TAAAAAAAAAEAAABaAQAAAAAAAAAAAACQTAAAAAAAAAEAAABjAAAAAAAAAAAAAACYTAAA +AAAAAAEAAADJAAAAAAAAAAAAAACgTAAAAAAAAAEAAACrAAAAAAAAAAAAAACoTAAAAAAA +AAEAAAAJAQAAAAAAAAAAAACwTAAAAAAAAAEAAABMAAAAAAAAAAAAAAC4TAAAAAAAAAEA +AACUAAAAAAAAAAAAAADATAAAAAAAAAEAAABPAAAAAAAAAAAAAADITAAAAAAAAAEAAADu +AAAAAAAAAAAAAADQTAAAAAAAAAEAAABFAQAAAAAAAAAAAADYTAAAAAAAAAEAAACCAAAA +AAAAAAAAAADgTAAAAAAAAAEAAADpAAAAAAAAAAAAAADoTAAAAAAAAAEAAADVAAAAAAAA +AAAAAADwTAAAAAAAAAEAAAB7AQAAAAAAAAAAAAD4TAAAAAAAAAEAAABzAQAAAAAAAAAA +AAAATQAAAAAAAAEAAACtAAAAAAAAAAAAAAAITQAAAAAAAAEAAAAwAQAAAAAAAAAAAAAQ +TQAAAAAAAAEAAAB0AAAAAAAAAAAAAAAYTQAAAAAAAAEAAAAPAQAAAAAAAAAAAAAgTQAA +AAAAAAEAAAAlAAAAAAAAAAAAAAAoTQAAAAAAAAEAAABEAQAAAAAAAAAAAAAwTQAAAAAA +AAEAAAA6AQAAAAAAAAAAAAA4TQAAAAAAAAEAAABJAQAAAAAAAAAAAABATQAAAAAAAAEA +AABXAAAAAAAAAAAAAABITQAAAAAAAAEAAAApAQAAAAAAAAAAAABQTQAAAAAAAAEAAADs +AAAAAAAAAAAAAABYTQAAAAAAAAEAAADnAAAAAAAAAAAAAABgTQAAAAAAAAEAAAASAAAA +AAAAAAAAAABoTQAAAAAAAAEAAABTAQAAAAAAAAAAAABwTQAAAAAAAAEAAABzAAAAAAAA +AAAAAAB4TQAAAAAAAAEAAADRAAAAAAAAAAAAAACATQAAAAAAAAEAAABYAQAAAAAAAAAA +AACITQAAAAAAAAEAAADLAAAAAAAAAAAAAACQTQAAAAAAAAEAAACMAAAAAAAAAAAAAACY +TQAAAAAAAAEAAAAdAQAAAAAAAAAAAACgTQAAAAAAAAEAAADlAAAAAAAAAAAAAACoTQAA +AAAAAAEAAAAQAAAAAAAAAAAAAACwTQAAAAAAAAEAAACTAAAAAAAAAAAAAAC4TQAAAAAA +AAEAAAAMAAAAAAAAAAAAAADATQAAAAAAAAEAAACNAAAAAAAAAAAAAADITQAAAAAAAAEA +AAAoAQAAAAAAAAAAAADQTQAAAAAAAAEAAACiAAAAAAAAAAAAAADYTQAAAAAAAAEAAAAL +AQAAAAAAAAAAAADgTQAAAAAAAAEAAACaAAAAAAAAAAAAAADoTQAAAAAAAAEAAACjAAAA +AAAAAAAAAADwTQAAAAAAAAEAAAADAQAAAAAAAAAAAAD4TQAAAAAAAAEAAABGAAAAAAAA +AAAAAAAATgAAAAAAAAEAAAArAQAAAAAAAAAAAAAITgAAAAAAAAEAAAA5AQAAAAAAAAAA +AAAQTgAAAAAAAAEAAAD/AAAAAAAAAAAAAAAYTgAAAAAAAAEAAAB4AQAAAAAAAAAAAAAg +TgAAAAAAAAEAAABBAAAAAAAAAAAAAAAoTgAAAAAAAAEAAAC5AAAAAAAAAAAAAAAwTgAA +AAAAAAEAAACdAAAAAAAAAAAAAAA4TgAAAAAAAAEAAABoAQAAAAAAAAAAAABATgAAAAAA +AAEAAABEAAAAAAAAAAAAAABITgAAAAAAAAEAAACFAAAAAAAAAAAAAABQTgAAAAAAAAEA +AABsAQAAAAAAAAAAAABYTgAAAAAAAAEAAAA6AAAAAAAAAAAAAABgTgAAAAAAAAEAAABD +AAAAAAAAAAAAAABoTgAAAAAAAAEAAAApAAAAAAAAAAAAAABwTgAAAAAAAAEAAAA5AAAA +AAAAAAAAAAB4TgAAAAAAAAEAAAA+AAAAAAAAAAAAAACATgAAAAAAAAEAAAB3AAAAAAAA +AAAAAACITgAAAAAAAAEAAAAXAAAAAAAAAAAAAACQTgAAAAAAAAEAAABqAAAAAAAAAAAA +AACYTgAAAAAAAAEAAADjAAAAAAAAAAAAAACgTgAAAAAAAAEAAABlAAAAAAAAAAAAAACo +TgAAAAAAAAEAAAARAQAAAAAAAAAAAACwTgAAAAAAAAEAAABnAQAAAAAAAAAAAAC4TgAA +AAAAAAEAAADDAAAAAAAAAAAAAADATgAAAAAAAAEAAAB7AAAAAAAAAAAAAADITgAAAAAA +AAEAAABFAAAAAAAAAAAAAADQTgAAAAAAAAEAAAAfAAAAAAAAAAAAAADYTgAAAAAAAAEA +AAB0AQAAAAAAAAAAAADgTgAAAAAAAAEAAAD8AAAAAAAAAAAAAADoTgAAAAAAAAEAAADE +AAAAAAAAAAAAAADwTgAAAAAAAAEAAACZAAAAAAAAAAAAAAD4TgAAAAAAAAEAAAAhAAAA +AAAAAAAAAAAATwAAAAAAAAEAAABbAQAAAAAAAAAAAAAITwAAAAAAAAEAAABmAAAAAAAA +AAAAAAAQTwAAAAAAAAEAAADIAAAAAAAAAAAAAAAYTwAAAAAAAAEAAAC4AAAAAAAAAAAA +AAAgTwAAAAAAAAEAAADHAAAAAAAAAAAAAAAoTwAAAAAAAAEAAADYAAAAAAAAAAAAAAAw +TwAAAAAAAAEAAABxAQAAAAAAAAAAAABATwAAAAAAAAEAAAADAQAAAAAAAAAAAABITwAA +AAAAAAEAAABGAAAAAAAAAAAAAABQTwAAAAAAAAEAAAArAQAAAAAAAAAAAABYTwAAAAAA +AAEAAAA5AQAAAAAAAAAAAABgTwAAAAAAAAEAAAD/AAAAAAAAAAAAAADgVQAAAAAAAAEA +AAABAAAAWtoAAAAAAADoVQAAAAAAAAEAAAABAAAAJdoAAAAAAADwVQAAAAAAAAEAAAAB +AAAALdoAAAAAAAD4VQAAAAAAAAEAAAABAAAAj9oAAAAAAAAAVgAAAAAAAAEAAAABAAAA +O9oAAAAAAAAIVgAAAAAAAAEAAAABAAAAh9oAAAAAAABAVgAAAAAAAAEAAAABAAAAMucA +AAAAAABIVgAAAAAAAAEAAAABAAAAqOYAAAAAAABQVgAAAAAAAAEAAAABAAAA1OYAAAAA +AABYVgAAAAAAAAEAAAABAAAAK+cAAAAAAABgVgAAAAAAAAEAAAABAAAA3eYAAAAAAABo +VgAAAAAAAAEAAAABAAAA5uYAAAAAAABwVgAAAAAAAAEAAAABAAAAMucAAAAAAAB4VgAA +AAAAAAEAAAABAAAAMucAAAAAAACAVgAAAAAAAAEAAAABAAAAMucAAAAAAACIVgAAAAAA +AAEAAAABAAAAMucAAAAAAACQVgAAAAAAAAEAAAABAAAAMucAAAAAAACYVgAAAAAAAAEA +AAABAAAAMucAAAAAAACgVgAAAAAAAAEAAAABAAAAMucAAAAAAACoVgAAAAAAAAEAAAAB +AAAAMucAAAAAAACwVgAAAAAAAAEAAAABAAAAMucAAAAAAAC4VgAAAAAAAAEAAAABAAAA +MucAAAAAAADAVgAAAAAAAAEAAAABAAAADucAAAAAAACQYgAAAAAAAAEAAAABAAAAoyUB +AAAAAACYYgAAAAAAAAEAAAABAAAAxSEBAAAAAACgYgAAAAAAAAEAAAABAAAAoCIBAAAA +AACoYgAAAAAAAAEAAAABAAAAPCQBAAAAAACwYgAAAAAAAAEAAAABAAAAmiQBAAAAAAC4 +YgAAAAAAAAEAAAABAAAAESUBAAAAAAAIcAAAAAAAAAEAAAABAAAAVDABAAAAAAAQcAAA +AAAAAAEAAAABAAAAWDABAAAAAAAYcAAAAAAAAAEAAAABAAAAXTABAAAAAAAgcAAAAAAA +AAEAAAABAAAAYjABAAAAAAAocAAAAAAAAAEAAAABAAAAdDABAAAAAAAwcAAAAAAAAAEA +AAABAAAAdDABAAAAAAA4cAAAAAAAAAEAAAABAAAAZzABAAAAAABAcAAAAAAAAAEAAAAB +AAAAbDABAAAAAABYfAAAAAAAAAEAAAABAAAAs0ABAAAAAABgfAAAAAAAAAEAAAABAAAA +mEABAAAAAABofAAAAAAAAAEAAAABAAAAnEABAAAAAABwfAAAAAAAAAEAAAABAAAAoUAB +AAAAAAB4fAAAAAAAAAEAAAABAAAAs0ABAAAAAACAfAAAAAAAAAEAAAABAAAAs0ABAAAA +AACIfAAAAAAAAAEAAAABAAAApkABAAAAAACQfAAAAAAAAAEAAAABAAAAq0ABAAAAAADI +iAAAAAAAAAEAAAABAAAAyVgBAAAAAADQiAAAAAAAAAEAAAABAAAAsVgBAAAAAADYiAAA +AAAAAAEAAAABAAAAtVgBAAAAAADgiAAAAAAAAAEAAAABAAAAulgBAAAAAADoiAAAAAAA +AAEAAAABAAAAyVgBAAAAAADwiAAAAAAAAAEAAAABAAAAyVgBAAAAAAD4iAAAAAAAAAEA +AAABAAAAv1gBAAAAAAAAiQAAAAAAAAEAAAABAAAAxFgBAAAAAAAgAAAAAAAAAAEAAAAD +AAAAAAAAAAAAAAAoAAAAAAAAAAEAAAADAAAABwAAAAAAAAAwAAAAAAAAAAEAAAADAAAA +DgAAAAAAAAA4AAAAAAAAAAEAAAADAAAAFQAAAAAAAABAAAAAAAAAAAEAAAADAAAAHAAA +AAAAAABIAAAAAAAAAAEAAAADAAAAIwAAAAAAAACIAQAAAAAAAAEAAAAFAAAAkAAAAAAA +AACYAQAAAAAAAAEAAAAFAAAAogAAAAAAAACoAQAAAAAAAAEAAAAFAAAArAAAAAAAAAC4 +AQAAAAAAAAEAAAAFAAAAuAAAAAAAAADIAQAAAAAAAAEAAAAFAAAAwgAAAAAAAADYAQAA +AAAAAAEAAAAFAAAAzAAAAAAAAADoAQAAAAAAAAEAAAAFAAAA1gAAAAAAAAD4AQAAAAAA +AAEAAAAFAAAA4gAAAAAAAAAIAgAAAAAAAAEAAAAFAAAA6gAAAAAAAAAYAgAAAAAAAAEA +AAAFAAAA8AAAAAAAAAAoAgAAAAAAAAEAAAAFAAAAEAEAAAAAAAA4AgAAAAAAAAEAAAAF +AAAAMAEAAAAAAABIAgAAAAAAAAEAAAAFAAAAQAEAAAAAAABYAgAAAAAAAAEAAAAFAAAA +UAEAAAAAAABoAgAAAAAAAAEAAAAFAAAAYAEAAAAAAAB4AgAAAAAAAAEAAAAFAAAAZAEA +AAAAAAAgAAAAAAAAAAEAAAABAAAAAAAAAAAAAAA4AAAAAAAAAAEAAAABAAAAzwAAAAAA +AABYAAAAAAAAAAEAAAABAAAA/AAAAAAAAAB4AAAAAAAAAAEAAAABAAAA9AEAAAAAAACw +AAAAAAAAAAEAAAABAAAARQIAAAAAAADIAAAAAAAAAAEAAAABAAAAZgIAAAAAAADgAAAA +AAAAAAEAAAABAAAAiAMAAAAAAAD4AAAAAAAAAAEAAAABAAAA3AMAAAAAAAAQAQAAAAAA +AAEAAAABAAAAbQQAAAAAAAAoAQAAAAAAAAEAAAABAAAAxQQAAAAAAABAAQAAAAAAAAEA +AAABAAAADQUAAAAAAABYAQAAAAAAAAEAAAABAAAAgQUAAAAAAACQAQAAAAAAAAEAAAAB +AAAAMwYAAAAAAACoAQAAAAAAAAEAAAABAAAA7QYAAAAAAADAAQAAAAAAAAEAAAABAAAA +HAcAAAAAAADgAQAAAAAAAAEAAAABAAAAgAcAAAAAAAAAAgAAAAAAAAEAAAABAAAAwwcA +AAAAAAAYAgAAAAAAAAEAAAABAAAA9wgAAAAAAABIAgAAAAAAAAEAAAABAAAAYAkAAAAA +AABoAgAAAAAAAAEAAAABAAAAzAkAAAAAAACAAgAAAAAAAAEAAAABAAAAEAoAAAAAAACY +AgAAAAAAAAEAAAABAAAANQoAAAAAAADIAgAAAAAAAAEAAAABAAAA0wwAAAAAAADwAgAA +AAAAAAEAAAABAAAAtw0AAAAAAAAQAwAAAAAAAAEAAAABAAAAGhAAAAAAAABQAwAAAAAA +AAEAAAABAAAAohQAAAAAAABoAwAAAAAAAAEAAAABAAAACxUAAAAAAACoAwAAAAAAAAEA +AAABAAAA9RoAAAAAAADIAwAAAAAAAAEAAAABAAAA0RsAAAAAAAAIBAAAAAAAAAEAAAAB +AAAAOx0AAAAAAAAwBAAAAAAAAAEAAAABAAAAxh4AAAAAAABwBAAAAAAAAAEAAAABAAAA +7SEAAAAAAACwBAAAAAAAAAEAAAABAAAAQiQAAAAAAADwBAAAAAAAAAEAAAABAAAAUSgA +AAAAAAAoBQAAAAAAAAEAAAABAAAAnjUAAAAAAABgBQAAAAAAAAEAAAABAAAAHDYAAAAA +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 +AADoLAAAAAAAAAEAAAABAAAA+94AAAAAAAAQLQAAAAAAAAEAAAABAAAAkd8AAAAAAAAo +LQAAAAAAAAEAAAABAAAAq98AAAAAAABALQAAAAAAAAEAAAABAAAAtt8AAAAAAABYLQAA +AAAAAAEAAAABAAAA1t8AAAAAAABwLQAAAAAAAAEAAAABAAAATeAAAAAAAACILQAAAAAA +AAEAAAABAAAAguAAAAAAAACgLQAAAAAAAAEAAAABAAAAt+AAAAAAAAC4LQAAAAAAAAEA +AAABAAAA+OAAAAAAAADQLQAAAAAAAAEAAAABAAAA/uAAAAAAAADoLQAAAAAAAAEAAAAB +AAAAEuEAAAAAAAAALgAAAAAAAAEAAAABAAAAIuEAAAAAAAAYLgAAAAAAAAEAAAABAAAA +MOEAAAAAAAAwLgAAAAAAAAEAAAABAAAAPuEAAAAAAABILgAAAAAAAAEAAAABAAAATeIA +AAAAAABgLgAAAAAAAAEAAAABAAAAU+IAAAAAAACILgAAAAAAAAEAAAABAAAAxeIAAAAA +AACoLgAAAAAAAAEAAAABAAAA4+IAAAAAAADQLgAAAAAAAAEAAAABAAAAeuMAAAAAAADw +LgAAAAAAAAEAAAABAAAAmOMAAAAAAAAYLwAAAAAAAAEAAAABAAAAMuQAAAAAAAA4LwAA +AAAAAAEAAAABAAAAU+QAAAAAAABYLwAAAAAAAAEAAAABAAAAZ+QAAAAAAABwLwAAAAAA +AAEAAAABAAAAieQAAAAAAACQLwAAAAAAAAEAAAABAAAAw+UAAAAAAACwLwAAAAAAAAEA +AAABAAAAkuYAAAAAAADQLwAAAAAAAAEAAAABAAAAPOcAAAAAAADwLwAAAAAAAAEAAAAB +AAAA0OcAAAAAAAAoMAAAAAAAAAEAAAABAAAA6OcAAAAAAABIMAAAAAAAAAEAAAABAAAA +fegAAAAAAABgMAAAAAAAAAEAAAABAAAApegAAAAAAAB4MAAAAAAAAAEAAAABAAAA0+gA +AAAAAACgMAAAAAAAAAEAAAABAAAATukAAAAAAAC4MAAAAAAAAAEAAAABAAAAYekAAAAA +AADQMAAAAAAAAAEAAAABAAAAcukAAAAAAADoMAAAAAAAAAEAAAABAAAAeOkAAAAAAAAA +MQAAAAAAAAEAAAABAAAAfukAAAAAAAAwMQAAAAAAAAEAAAABAAAAhOkAAAAAAABoMQAA +AAAAAAEAAAABAAAA+OkAAAAAAACAMQAAAAAAAAEAAAABAAAAAOoAAAAAAACYMQAAAAAA +AAEAAAABAAAACOoAAAAAAACwMQAAAAAAAAEAAAABAAAAFOoAAAAAAADQMQAAAAAAAAEA +AAABAAAAROoAAAAAAADwMQAAAAAAAAEAAAABAAAAauoAAAAAAAAQMgAAAAAAAAEAAAAB +AAAAi+oAAAAAAAAoMgAAAAAAAAEAAAABAAAAoOoAAAAAAABAMgAAAAAAAAEAAAABAAAA +8uoAAAAAAABYMgAAAAAAAAEAAAABAAAAROsAAAAAAABwMgAAAAAAAAEAAAABAAAAbusA +AAAAAACIMgAAAAAAAAEAAAABAAAAyOsAAAAAAACgMgAAAAAAAAEAAAABAAAA+OsAAAAA +AADgMgAAAAAAAAEAAAABAAAA+OwAAAAAAAAgMwAAAAAAAAEAAAABAAAAUPUAAAAAAAA4 +MwAAAAAAAAEAAAABAAAAw/UAAAAAAABYMwAAAAAAAAEAAAABAAAA1vUAAAAAAAB4MwAA +AAAAAAEAAAABAAAACvYAAAAAAACgMwAAAAAAAAEAAAABAAAAxvcAAAAAAADQMwAAAAAA +AAEAAAABAAAAlvkAAAAAAAD4MwAAAAAAAAEAAAABAAAANfoAAAAAAAAQNAAAAAAAAAEA +AAABAAAAUfoAAAAAAAAoNAAAAAAAAAEAAAABAAAAoPoAAAAAAABQNAAAAAAAAAEAAAAB +AAAAE/sAAAAAAACANAAAAAAAAAEAAAABAAAAvvsAAAAAAADANAAAAAAAAAEAAAABAAAA +yv8AAAAAAADYNAAAAAAAAAEAAAABAAAAhgABAAAAAAD4NAAAAAAAAAEAAAABAAAAsgAB +AAAAAAAoNQAAAAAAAAEAAAABAAAAvQMBAAAAAABoNQAAAAAAAAEAAAABAAAAtwgBAAAA +AACYNQAAAAAAAAEAAAABAAAA3gkBAAAAAADINQAAAAAAAAEAAAABAAAAhAoBAAAAAADo +NQAAAAAAAAEAAAABAAAACwsBAAAAAAAoNgAAAAAAAAEAAAABAAAAYwwBAAAAAABANgAA +AAAAAAEAAAABAAAA2wwBAAAAAABYNgAAAAAAAAEAAAABAAAAVw0BAAAAAAB4NgAAAAAA +AAEAAAABAAAARg4BAAAAAACQNgAAAAAAAAEAAAABAAAAcw4BAAAAAAC4NgAAAAAAAAEA +AAABAAAAiQ8BAAAAAADQNgAAAAAAAAEAAAABAAAAoQ8BAAAAAADoNgAAAAAAAAEAAAAB +AAAAmRABAAAAAAAQNwAAAAAAAAEAAAABAAAAUREBAAAAAABANwAAAAAAAAEAAAABAAAA +ChIBAAAAAACYNwAAAAAAAAEAAAABAAAAVBMBAAAAAADANwAAAAAAAAEAAAABAAAAARQB +AAAAAADgNwAAAAAAAAEAAAABAAAAOBQBAAAAAAAAOAAAAAAAAAEAAAABAAAAdRQBAAAA +AAAoOAAAAAAAAAEAAAABAAAApxUBAAAAAABAOAAAAAAAAAEAAAABAAAAFxYBAAAAAABg +OAAAAAAAAAEAAAABAAAAkBYBAAAAAACAOAAAAAAAAAEAAAABAAAARxoBAAAAAACYOAAA +AAAAAAEAAAABAAAAVhoBAAAAAACwOAAAAAAAAAEAAAABAAAAahoBAAAAAADIOAAAAAAA +AAEAAAABAAAAgxoBAAAAAADgOAAAAAAAAAEAAAABAAAAtBoBAAAAAAAIOQAAAAAAAAEA +AAABAAAADhsBAAAAAAAwOQAAAAAAAAEAAAABAAAAcBwBAAAAAABIOQAAAAAAAAEAAAAB +AAAAaB0BAAAAAABgOQAAAAAAAAEAAAABAAAAvR0BAAAAAAB4OQAAAAAAAAEAAAABAAAA +Jh4BAAAAAACQOQAAAAAAAAEAAAABAAAAYR8BAAAAAADAOQAAAAAAAAEAAAABAAAAdB8B +AAAAAADgOQAAAAAAAAEAAAABAAAAyR8BAAAAAAAAOgAAAAAAAAEAAAABAAAAAiABAAAA +AAAYOgAAAAAAAAEAAAABAAAAUCABAAAAAAAwOgAAAAAAAAEAAAABAAAAWCABAAAAAABI +OgAAAAAAAAEAAAABAAAAYCABAAAAAABwOgAAAAAAAAEAAAABAAAAcCEBAAAAAACQOgAA +AAAAAAEAAAABAAAAoCEBAAAAAACwOgAAAAAAAAEAAAABAAAArSUBAAAAAADQOgAAAAAA +AAEAAAABAAAAVCYBAAAAAADwOgAAAAAAAAEAAAABAAAAcicBAAAAAAAQOwAAAAAAAAEA +AAABAAAAHigBAAAAAAA4OwAAAAAAAAEAAAABAAAAyykBAAAAAABgOwAAAAAAAAEAAAAB +AAAAnCoBAAAAAACAOwAAAAAAAAEAAAABAAAA6yoBAAAAAACgOwAAAAAAAAEAAAABAAAA +cSsBAAAAAAC4OwAAAAAAAAEAAAABAAAA6SsBAAAAAAD4OwAAAAAAAAEAAAABAAAANC4B +AAAAAAA4PAAAAAAAAAEAAAABAAAAEy8BAAAAAABoPAAAAAAAAAEAAAABAAAAPzABAAAA +AACAPAAAAAAAAAEAAAABAAAAejABAAAAAADAPAAAAAAAAAEAAAABAAAA9DUBAAAAAADg +PAAAAAAAAAEAAAABAAAAezYBAAAAAAAgPQAAAAAAAAEAAAABAAAALToBAAAAAABIPQAA +AAAAAAEAAAABAAAAjTsBAAAAAABgPQAAAAAAAAEAAAABAAAA9TsBAAAAAACAPQAAAAAA +AAEAAAABAAAAODwBAAAAAACgPQAAAAAAAAEAAAABAAAAgDwBAAAAAADYPQAAAAAAAAEA +AAABAAAAMD0BAAAAAAAYPgAAAAAAAAEAAAABAAAADz4BAAAAAABQPgAAAAAAAAEAAAAB +AAAAg0ABAAAAAABoPgAAAAAAAAEAAAABAAAAuUABAAAAAACoPgAAAAAAAAEAAAABAAAA +rEcBAAAAAADoPgAAAAAAAAEAAAABAAAAfE4BAAAAAAAAPwAAAAAAAAEAAAABAAAAuU4B +AAAAAAAYPwAAAAAAAAEAAAABAAAAKk8BAAAAAABYPwAAAAAAAAEAAAABAAAA8k8BAAAA +AABwPwAAAAAAAAEAAAABAAAAqFABAAAAAACYPwAAAAAAAAEAAAABAAAAo1EBAAAAAAC4 +PwAAAAAAAAEAAAABAAAA61EBAAAAAADwPwAAAAAAAAEAAAABAAAApFIBAAAAAAAwQAAA +AAAAAAEAAAABAAAAhlMBAAAAAABoQAAAAAAAAAEAAAABAAAA+lUBAAAAAACoQAAAAAAA +AAEAAAABAAAAnFgBAAAAAADAQAAAAAAAAAEAAAABAAAAz1gBAAAAAADYQAAAAAAAAAEA +AAABAAAAOFkBAAAAAAAYQQAAAAAAAAEAAAABAAAAW1oBAAAAAAAwQQAAAAAAAAEAAAAB +AAAAmFoBAAAAAABwQQAAAAAAAAEAAAABAAAAcV8BAAAAAACoQQAAAAAAAAEAAAABAAAA ++2ABAAAAAADIQQAAAAAAAAEAAAABAAAAQ2EBAAAAAAA= +==== +
--- a/usr/src/uts/intel/Makefile.intel Sun Nov 27 18:29:20 2005 -0800 +++ b/usr/src/uts/intel/Makefile.intel Sun Nov 27 19:11:23 2005 -0800 @@ -297,6 +297,7 @@ DRV_KMODS += xge DRV_KMODS += chxge DRV_KMODS += zcons +DRV_KMODS += ath # # Common code drivers
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usr/src/uts/intel/ath/Makefile Sun Nov 27 19:11:23 2005 -0800 @@ -0,0 +1,103 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License, Version 1.0 only +# (the "License"). You may not use this file except in compliance +# with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# +# +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +#pragma ident "%Z%%M% %I% %E% SMI" + +# +# This file makes the atheros driver for an intel system +# +# intel architecture dependent +# + +# +# Path to the base of the uts directory tree (usually /usr/src/uts). +# +UTSBASE = ../.. +# +# Define the module and object file sets. +# +MODULE = ath +OBJECTS = $(ATH_OBJS:%=$(OBJS_DIR)/%) $(OBJS_DIR)/hal.o +LINTS = $(LINTS_DIR)/ath_aux.ln \ + $(LINTS_DIR)/ath_ieee80211.ln \ + $(LINTS_DIR)/ath_main.ln \ + $(LINTS_DIR)/ath_osdep.ln \ + $(LINTS_DIR)/ath_rate.ln \ + $(LINTS_DIR)/ath_wificonfig.ln + +ROOTMODULE = $(ROOT_DRV_DIR)/$(MODULE) + +# +# Include common rules. +# +include $(UTSBASE)/intel/Makefile.intel + +# +# Define targets +# +ALL_TARGET = $(BINARY) +LINT_TARGET = $(MODULE).lint +INSTALL_TARGET = $(BINARY) $(ROOTMODULE) + +# +# Driver depends on GLD & IP. +# +LDFLAGS += -dy -Nmisc/gld -Ndrv/ip + +# +# Default build targets. +# +.KEEP_STATE: + +def: $(DEF_DEPS) + +all: $(ALL_DEPS) + +clean: $(CLEAN_DEPS) + +clobber: $(CLOBBER_DEPS) + +lint: $(LINT_DEPS) + +modlintlib: $(MODLINTLIB_DEPS) + +clean.lint: $(CLEAN_LINT_DEPS) + +install: $(INSTALL_DEPS) + +# +# Include common targets. +# +include $(UTSBASE)/intel/Makefile.targ + +# +# If you have any special case that general +# Makefile rules don't serve for you, just do +# it yourself. +# +ATHEROS_HAL=$(UTSBASE)/common/io/ath/hal_x86_$(CLASS).o.uu +$(OBJS_DIR)/hal.o: $(ATHEROS_HAL) + uudecode -o $@ $(ATHEROS_HAL)