Merge remote-tracking branch 'contiki-avr/master'
diff --git a/contiki-avr/Makefile b/contiki-avr/Makefile
new file mode 100644
index 0000000..7327917
--- /dev/null
+++ b/contiki-avr/Makefile
@@ -0,0 +1,121 @@
+# Copyright (c) 2002, Adam Dunkels.
+# 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. The name of the author may not be used to endorse or promote
+#    products derived from this software without specific prior
+#    written permission.  
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+#
+# This file is part of the Contiki desktop environment
+#
+# $Id: Makefile,v 1.9 2005/04/18 22:43:55 oliverschmidt Exp $
+#
+
+all: contiki.srec
+
+CONTIKI=../contiki
+
+include $(CONTIKI)/Makefile.common
+include Makefile.depend
+
+CC=avr-gcc
+LD=avr-ld
+AS=avr-as
+OBJCOPY=avr-objcopy
+CFLAGS=-Os -Iapps -Ictk -Ilib -Iuip -Iconf \
+	-I$(CONTIKI)/apps -I$(CONTIKI)/ctk -I$(CONTIKI)/ek \
+       -I$(CONTIKI)/lib -I$(CONTIKI)/uip \
+	-DWITH_UIP -DWITH_ASCII -DWITH_AVR \
+	-Wall -g -fpack-struct -I../uip -I. -mmcu=atmega128 
+LDFLAGS=-mmcu=atmega128 -Wl,-Map=contiki.map,--cref,-Tdata,0x801100
+
+%.o: %.c
+	$(CC) $(CFLAGS) -c $< -o $(notdir $(<:.c=.o))
+
+%.o: apps/%.c
+	$(CC) $(CFLAGS) -c $< -o $(notdir $(<:.c=.o))
+
+%.o: ctk/%.c
+	$(CC) $(CFLAGS) -c $< -o $(notdir $(<:.c=.o))
+
+%.o: uip/%.c
+	$(CC) $(CFLAGS) -c $< -o $(notdir $(<:.c=.o))
+
+%.o: $(CONTIKICC65)/uip/%.c
+	$(CC) $(CFLAGS) -c $< -o $(notdir $(<:.c=.o))
+%.o: $(CONTIKI)/apps/%.c
+	$(CC) $(CFLAGS) -c $< -o $(notdir $(<:.c=.o))
+%.o: $(CONTIKI)/ctk/%.c
+	$(CC) $(CFLAGS) -c $< -o $(notdir $(<:.c=.o))
+%.o: $(CONTIKI)/ek/%.c
+	$(CC) $(CFLAGS) -c $< -o $(notdir $(<:.c=.o))
+%.o: $(CONTIKI)/lib/%.c
+	$(CC) $(CFLAGS) -c $< -o $(notdir $(<:.c=.o))
+%.o: $(CONTIKI)/uip/%.c
+	$(CC) $(CFLAGS) -c $< -o $(notdir $(<:.c=.o))
+
+%.srec:
+	$(OBJCOPY) -O srec $< $@
+
+SYSTEM=ek.o ek-service.o loader-arch.o
+CONTIKIFILES= $(SYSTEM) $(UIP) uip-fw.o uip-fw-service.o timer.o 
+
+CTKVNC=ctk-vncserver.o libconio.o vnc-server.o vnc-out.o ctk-vncfont.o
+CTKTELNET=libconio.o ctk-term.o ctk-term-in.o ctk-term-out.o ctk-termtelnet.o
+
+IRC=irc.o ircc.o socket.o uipbuf.o ctk-textedit.o irc-dsc.o ircc-strings.o
+
+clean:
+	rm -f *.o *~ *core contiki contiki.srec *.lst *.map
+
+depend:
+	gcc $(CCDEPFLAGS) -MM -Iapps -Ictk -Iuip -Iconf \
+	-I$(CONTIKI)/lib -I$(CONTIKI)/ek \
+	-I$(CONTIKI)/ctk -I$(CONTIKI)/apps -I$(CONTIKI)/uip \
+	*.c */*.c $(CONTIKI)/*/*.c > Makefile.depend
+
+contiki: $(CONIKIFILES) contiki-main.o strncasecmp.o \
+ ctk.o ek.o arg.o timer.o ek-service.o \
+ uip.o uip_arch.o uip_arp.o resolv.o uiplib.o tcpip.o uip-split.o \
+ rtl8019.o rtl8019dev.o delay.o debug.o rtl8019-drv.o \
+ $(CTKVNC) program-handler.o  \
+ webserver.o httpd.o httpd-cgi.o httpd-fs.o webserver-dsc.o \
+ netconf.o netconf-dsc.o \
+ $(WWW) weblinks.o weblinks-dsc.o \
+ about.o about-dsc.o \
+ processes.o processes-dsc.o calc.o calc-dsc.o 
+	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^
+
+
+contiki.srec: contiki
+
+erase:
+	uisp -dprog=stk200 --erase -v
+
+upload: erase
+	uisp -dprog=stk200 --upload -v if=contiki.srec
+
+upload-remote: contiki.srec
+	scp contiki.srec sidewalker:/tmp
+	ssh sidewalker.sics.se "uisp -dprog=stk200 --erase -v"
+	ssh sidewalker.sics.se "uisp -dprog=stk200 --upload -v if=/tmp/contiki.srec"
+
diff --git a/contiki-avr/Makefile.depend b/contiki-avr/Makefile.depend
new file mode 100644
index 0000000..8629f89
--- /dev/null
+++ b/contiki-avr/Makefile.depend
@@ -0,0 +1,448 @@
+http-user-agent-string.o: apps/http-user-agent-string.c
+httpd-cgi.o: apps/httpd-cgi.c ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h apps/httpd.h \
+ ../contiki/ek/contiki.h ../contiki/ek/contiki-version.h \
+ ../contiki/uip/uiplib.h ../contiki/uip/resolv.h ../contiki/lib/memb.h \
+ ../contiki/lib/timer.h ../contiki/lib/clock.h conf/clock-conf.h \
+ apps/httpd-cgi.h apps/httpd-fs.h ../contiki/lib/petsciiconv.h
+httpd-fs.o: apps/httpd-fs.c ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h apps/httpd.h \
+ ../contiki/ek/contiki.h ../contiki/ek/contiki-version.h \
+ ../contiki/uip/uiplib.h ../contiki/uip/resolv.h ../contiki/lib/memb.h \
+ ../contiki/lib/timer.h ../contiki/lib/clock.h conf/clock-conf.h \
+ apps/httpd-fs.h apps/httpd-fsdata.h apps/httpd-fsdata.c
+httpd-fsdata.o: apps/httpd-fsdata.c
+httpd.o: apps/httpd.c ../contiki/ek/contiki.h \
+ ../contiki/ek/contiki-version.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/uip/uiplib.h \
+ ../contiki/uip/resolv.h ../contiki/lib/memb.h ../contiki/lib/timer.h \
+ ../contiki/lib/clock.h conf/clock-conf.h apps/httpd.h apps/httpd-fs.h \
+ apps/httpd-fsdata.h apps/httpd-cgi.h apps/webserver.h
+shell.o: apps/shell.c ../contiki/apps/program-handler.h \
+ ../contiki/ek/dsc.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
+ ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h \
+ conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/uip/uip_arp.h \
+ ../contiki/uip/resolv.h ../contiki/apps/shell.h
+webclient.o: apps/webclient.c ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/tcpip.h ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/apps/webclient.h \
+ ../contiki/apps/http-strings.h \
+ ../contiki/apps/http-user-agent-string.h ../contiki/uip/resolv.h \
+ ../contiki/uip/uiplib.h conf/www-conf.h
+weblinks-dsc.o: apps/weblinks-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+weblinks.o: apps/weblinks.c ../contiki/ctk/ctk.h conf/ctk-conf.h \
+ ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h \
+ conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/ctk/ctk-draw.h \
+ ../contiki/apps/program-handler.h ../contiki/ek/dsc.h \
+ ../contiki/apps/www.h
+webserver.o: apps/webserver.c ../contiki/ek/contiki.h \
+ ../contiki/ek/contiki-version.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/uip/uiplib.h \
+ ../contiki/uip/resolv.h ../contiki/lib/memb.h ../contiki/lib/timer.h \
+ ../contiki/lib/clock.h conf/clock-conf.h \
+ ../contiki/apps/http-strings.h ../contiki/lib/petsciiconv.h \
+ apps/webserver.h apps/httpd.h
+delay.o: uip/delay.c uip/delay.h
+rtl8019-drv.o: uip/rtl8019-drv.c ../contiki/uip/packet-service.h \
+ ../contiki/ek/ek-service.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h uip/rtl8019dev.h uip/rtl8019.h \
+ uip/compiler.h ../contiki/uip/uip_arp.h
+rtl8019dev.o: uip/rtl8019dev.c ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h uip/rtl8019dev.h \
+ uip/rtl8019.h uip/compiler.h
+uip_arch.o: uip/uip_arch.c ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h uip/uip_arch.h
+about-dsc.o: ../contiki/apps/about-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+about.o: ../contiki/apps/about.c ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
+ ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h ../contiki/ctk/ctk-draw.h \
+ ../contiki/lib/petsciiconv.h
+calc-dsc.o: ../contiki/apps/calc-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+calc.o: ../contiki/apps/calc.c ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
+ ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h
+directory.o: ../contiki/apps/directory.c ../contiki/ctk/ctk.h \
+ conf/ctk-conf.h ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/ctk/ctk-draw.h \
+ ../contiki/lib/cfs.h ../contiki/lib/cfs-service.h \
+ ../contiki/ek/ek-service.h ../contiki/apps/program-handler.h \
+ ../contiki/ek/dsc.h
+editor-dsc.o: ../contiki/apps/editor-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+editor.o: ../contiki/apps/editor.c ../contiki/ek/contiki.h \
+ ../contiki/ek/contiki-version.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/uip/uiplib.h \
+ ../contiki/uip/resolv.h ../contiki/lib/memb.h ../contiki/lib/timer.h \
+ ../contiki/lib/clock.h conf/clock-conf.h ../contiki/ctk/ctk.h \
+ conf/ctk-conf.h ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h \
+ ../contiki/lib/cfs.h ../contiki/lib/cfs-service.h \
+ ../contiki/ek/ek-service.h ../contiki/lib/ctk-filedialog.h
+email-dsc.o: ../contiki/apps/email-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+email.o: ../contiki/apps/email.c ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
+ ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h ../contiki/apps/smtp.h \
+ ../contiki/uip/uip.h ../contiki/uip/uipopt.h conf/uip-conf.h \
+ ../contiki/uip/tcpip.h ../contiki/uip/uiplib.h \
+ ../contiki/lib/petsciiconv.h ../contiki/lib/ctk-textedit.h
+ftp-dsc.o: ../contiki/apps/ftp-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+ftp.o: ../contiki/apps/ftp.c ../contiki/apps/ftpc.h \
+ ../contiki/uip/uip.h ../contiki/uip/uipopt.h conf/uip-conf.h \
+ ../contiki/uip/tcpip.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/ek/contiki.h \
+ ../contiki/ek/contiki-version.h ../contiki/uip/uiplib.h \
+ ../contiki/uip/resolv.h ../contiki/lib/memb.h ../contiki/lib/timer.h \
+ ../contiki/lib/clock.h conf/clock-conf.h ../contiki/ctk/ctk.h \
+ conf/ctk-conf.h ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h \
+ ../contiki/lib/cfs.h ../contiki/lib/cfs-service.h \
+ ../contiki/ek/ek-service.h
+ftpc.o: ../contiki/apps/ftpc.c ../contiki/ek/contiki.h \
+ ../contiki/ek/contiki-version.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/uip/uiplib.h \
+ ../contiki/uip/resolv.h ../contiki/lib/memb.h ../contiki/lib/timer.h \
+ ../contiki/lib/clock.h conf/clock-conf.h ../contiki/apps/ftpc.h
+html-strings.o: ../contiki/apps/html-strings.c
+htmlparser.o: ../contiki/apps/htmlparser.c \
+ ../contiki/apps/htmlparser.h ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h \
+ ../contiki/apps/html-strings.h conf/www-conf.h
+http-strings.o: ../contiki/apps/http-strings.c
+http-user-agent-string.o: ../contiki/apps/http-user-agent-string.c
+httpd-fsdata.o: ../contiki/apps/httpd-fsdata.c
+irc-dsc.o: ../contiki/apps/irc-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+ircc-strings.o: ../contiki/apps/ircc-strings.c
+netconf-dsc.o: ../contiki/apps/netconf-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+netconf.o: ../contiki/apps/netconf.c ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/uip/uiplib.h \
+ ../contiki/uip/uip_arp.h ../contiki/uip/resolv.h ../contiki/ctk/ctk.h \
+ conf/ctk-conf.h ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h \
+ ../contiki/ctk/ctk-draw.h
+popc-strings.o: ../contiki/apps/popc-strings.c
+processes-dsc.o: ../contiki/apps/processes-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+processes.o: ../contiki/apps/processes.c ../contiki/ek/ek.h \
+ conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
+ ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h
+program-handler.o: ../contiki/apps/program-handler.c \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h \
+ ../contiki/lib/petsciiconv.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
+ ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h ../contiki/ctk/ctk-draw.h \
+ ../contiki/ek/log.h conf/log-conf.h ../contiki/apps/program-handler.h \
+ ../contiki/ek/dsc.h
+shell-dsc.o: ../contiki/apps/shell-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+simpletelnet.o: ../contiki/apps/simpletelnet.c ../contiki/ek/ek.h \
+ conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/lib/petsciiconv.h \
+ ../contiki/uip/uiplib.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/ctk/ctk.h \
+ conf/ctk-conf.h ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h \
+ ../contiki/uip/resolv.h ../contiki/apps/telnet.h \
+ ../contiki/apps/simpletelnet.h
+smtp-strings.o: ../contiki/apps/smtp-strings.c
+smtp.o: ../contiki/apps/smtp.c ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/apps/smtp.h \
+ ../contiki/apps/smtp-strings.h
+telnet-dsc.o: ../contiki/apps/telnet-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+telnet.o: ../contiki/apps/telnet.c ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/apps/telnet.h
+telnetd-dsc.o: ../contiki/apps/telnetd-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+telnetd-gui.o: ../contiki/apps/telnetd-gui.c \
+ ../contiki/apps/program-handler.h ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/lib/petsciiconv.h \
+ ../contiki/uip/uip_arp.h ../contiki/uip/resolv.h \
+ ../contiki/apps/telnetd.h ../contiki/ek/contiki.h \
+ ../contiki/ek/contiki-version.h ../contiki/uip/uiplib.h \
+ ../contiki/lib/memb.h ../contiki/lib/timer.h ../contiki/lib/clock.h \
+ conf/clock-conf.h ../contiki/apps/shell.h
+telnetd.o: ../contiki/apps/telnetd.c ../contiki/ek/loader.h \
+ ../contiki/uip/uip.h ../contiki/uip/uipopt.h conf/uip-conf.h \
+ ../contiki/uip/tcpip.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/lib/petsciiconv.h ../contiki/uip/uip_arp.h \
+ ../contiki/uip/resolv.h ../contiki/lib/memb.h ../contiki/apps/shell.h \
+ ../contiki/apps/telnetd.h ../contiki/ek/contiki.h \
+ ../contiki/ek/contiki-version.h ../contiki/uip/uiplib.h \
+ ../contiki/lib/timer.h ../contiki/lib/clock.h conf/clock-conf.h \
+ conf/telnetd-conf.h
+vnc-dsc.o: ../contiki/apps/vnc-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+vnc-viewer.o: ../contiki/apps/vnc-viewer.c ../contiki/apps/vnc-draw.h \
+ uip/uip_arch.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/ek/ek.h \
+ conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/apps/vnc-viewer.h
+vnc.o: ../contiki/apps/vnc.c ../contiki/ek/contiki.h \
+ ../contiki/ek/contiki-version.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/uip/uiplib.h \
+ ../contiki/uip/resolv.h ../contiki/lib/memb.h ../contiki/lib/timer.h \
+ ../contiki/lib/clock.h conf/clock-conf.h ../contiki/lib/petsciiconv.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ctk/ctk-mouse.h \
+ ../contiki/apps/telnet.h ../contiki/apps/vnc.h \
+ ../contiki/apps/vnc-draw.h uip/uip_arch.h \
+ ../contiki/apps/vnc-viewer.h conf/vnc-conf.h
+webclient.o: ../contiki/apps/webclient.c ../contiki/ek/ek.h \
+ conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/tcpip.h ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/apps/webclient.h \
+ ../contiki/apps/http-strings.h \
+ ../contiki/apps/http-user-agent-string.h ../contiki/uip/resolv.h \
+ ../contiki/uip/uiplib.h conf/www-conf.h
+webserver-dsc.o: ../contiki/apps/webserver-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+www-dsc.o: ../contiki/apps/www-dsc.c ../contiki/ek/dsc.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+www.o: ../contiki/apps/www.c ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
+ ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h \
+ ../contiki/apps/webclient.h ../contiki/apps/http-strings.h \
+ ../contiki/apps/http-user-agent-string.h ../contiki/uip/resolv.h \
+ ../contiki/uip/uip.h ../contiki/uip/uipopt.h conf/uip-conf.h \
+ ../contiki/uip/tcpip.h ../contiki/apps/htmlparser.h \
+ ../contiki/lib/petsciiconv.h ../contiki/apps/program-handler.h \
+ ../contiki/ek/dsc.h ../contiki/uip/uiplib.h conf/www-conf.h
+ctk-draw.o: ../contiki/ctk/ctk-draw.c ../contiki/ek/ek-service.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/ctk/ctk-draw.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/ctk/ctk-draw-service.h
+ctk-term-in.o: ../contiki/ctk/ctk-term-in.c ../contiki/ctk/ctk.h \
+ conf/ctk-conf.h ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/ctk/ctk-term.h \
+ ../contiki/ctk/ctk-term-int.h ../contiki/ctk/ctk-term-ascii.h
+ctk-term-out.o: ../contiki/ctk/ctk-term-out.c \
+ ../contiki/lib/libconio.h conf/libconio-conf.h \
+ ../contiki/ctk/ctk-term-int.h
+ctk-vncfont.o: ../contiki/ctk/ctk-vncfont.c
+ctk-vncserver.o: ../contiki/ctk/ctk-vncserver.c ../contiki/ctk/ctk.h \
+ conf/ctk-conf.h ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/ctk/ctk-draw.h \
+ ../contiki/ek/contiki.h ../contiki/ek/contiki-version.h \
+ ../contiki/uip/uip.h ../contiki/uip/uipopt.h conf/uip-conf.h \
+ ../contiki/uip/tcpip.h ../contiki/uip/uiplib.h \
+ ../contiki/uip/resolv.h ../contiki/lib/memb.h ../contiki/lib/timer.h \
+ ../contiki/lib/clock.h conf/clock-conf.h ../contiki/ctk/vnc-server.h \
+ ../contiki/ctk/vnc-out.h ../contiki/ctk/ctk-vncfont.h \
+ ../contiki/ctk/ctk-vncserver.h conf/ctk-vncserver-conf.h \
+ ../contiki/lib/libconio.h conf/libconio-conf.h
+ctk.o: ../contiki/ctk/ctk.c ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
+ ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h ../contiki/ctk/ctk-draw.h \
+ ../contiki/ctk/ctk-mouse.h ../contiki/lib/timer.h \
+ ../contiki/lib/clock.h conf/clock-conf.h
+vnc-out.o: ../contiki/ctk/vnc-out.c ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h \
+ ../contiki/ctk/vnc-server.h ../contiki/ctk/vnc-out.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h ../contiki/lib/libconio.h \
+ conf/libconio-conf.h conf/ctk-vncserver-conf.h \
+ ../contiki/ctk/ctk-vncfont.h ../contiki/ctk/ctk-mouse.h
+vnc-server.o: ../contiki/ctk/vnc-server.c ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h \
+ ../contiki/ctk/vnc-server.h ../contiki/ctk/vnc-out.h \
+ ../contiki/ctk/ctk.h conf/ctk-conf.h ctk/ctk-arch.h \
+ ../contiki/ctk/ctk-vncarch.h
+arg.o: ../contiki/ek/arg.c ../contiki/ek/arg.h
+ek-service.o: ../contiki/ek/ek-service.c ../contiki/ek/ek-service.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/ek/log.h \
+ conf/log-conf.h
+ek.o: ../contiki/ek/ek.c ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+cfs-posix.o: ../contiki/lib/cfs-posix.c ../contiki/ek/contiki.h \
+ ../contiki/ek/contiki-version.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/uip/uiplib.h \
+ ../contiki/uip/resolv.h ../contiki/lib/memb.h ../contiki/lib/timer.h \
+ ../contiki/lib/clock.h conf/clock-conf.h ../contiki/lib/cfs.h \
+ ../contiki/lib/cfs-service.h ../contiki/ek/ek-service.h
+cfs.o: ../contiki/lib/cfs.c ../contiki/ek/contiki.h \
+ ../contiki/ek/contiki-version.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip.h ../contiki/uip/uipopt.h \
+ conf/uip-conf.h ../contiki/uip/tcpip.h ../contiki/uip/uiplib.h \
+ ../contiki/uip/resolv.h ../contiki/lib/memb.h ../contiki/lib/timer.h \
+ ../contiki/lib/clock.h conf/clock-conf.h ../contiki/lib/cfs.h \
+ ../contiki/lib/cfs-service.h ../contiki/ek/ek-service.h
+ctk-filedialog.o: ../contiki/lib/ctk-filedialog.c \
+ ../contiki/ek/contiki.h ../contiki/ek/contiki-version.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/uip/uiplib.h ../contiki/uip/resolv.h ../contiki/lib/memb.h \
+ ../contiki/lib/timer.h ../contiki/lib/clock.h conf/clock-conf.h \
+ ../contiki/lib/ctk-filedialog.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
+ ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h ../contiki/lib/cfs.h \
+ ../contiki/lib/cfs-service.h ../contiki/ek/ek-service.h
+ctk-textedit.o: ../contiki/lib/ctk-textedit.c \
+ ../contiki/lib/ctk-textedit.h ../contiki/ctk/ctk.h conf/ctk-conf.h \
+ ctk/ctk-arch.h ../contiki/ctk/ctk-vncarch.h ../contiki/ek/ek.h \
+ conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+libconio.o: ../contiki/lib/libconio.c ../contiki/lib/libconio.h \
+ conf/libconio-conf.h
+list.o: ../contiki/lib/list.c ../contiki/lib/list.h
+memb.o: ../contiki/lib/memb.c ../contiki/lib/memb.h
+petsciiconv.o: ../contiki/lib/petsciiconv.c
+strncasecmp.o: ../contiki/lib/strncasecmp.c
+timer.o: ../contiki/lib/timer.c ../contiki/lib/timer.h \
+ ../contiki/lib/clock.h conf/clock-conf.h
+resolv.o: ../contiki/uip/resolv.c ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/tcpip.h ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/resolv.h
+slipdev.o: ../contiki/uip/slipdev.c ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/uip/uip-fw.h \
+ ../contiki/uip/slipdev.h
+tcpip.o: ../contiki/uip/tcpip.c ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/ek/ek-service.h \
+ ../contiki/uip/uip-fw.h ../contiki/lib/timer.h ../contiki/lib/clock.h \
+ conf/clock-conf.h ../contiki/uip/packet-service.h \
+ ../contiki/uip/uip-split.h
+uip-fw-service.o: ../contiki/uip/uip-fw-service.c \
+ ../contiki/uip/packet-service.h ../contiki/ek/ek-service.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/uip/uip-fw.h
+uip-fw.o: ../contiki/uip/uip-fw.c ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/uip/uip_arch.h \
+ ../contiki/uip/uip-fw.h
+uip-split.o: ../contiki/uip/uip-split.c ../contiki/uip/uip-split.h \
+ ../contiki/uip/uip.h ../contiki/uip/uipopt.h conf/uip-conf.h \
+ ../contiki/uip/tcpip.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h ../contiki/uip/uip-fw.h \
+ ../contiki/uip/uip_arch.h
+uip.o: ../contiki/uip/uip.c ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/uip/uip_arch.h
+uip_arp.o: ../contiki/uip/uip_arp.c ../contiki/uip/uip_arp.h \
+ ../contiki/uip/uip.h ../contiki/uip/uipopt.h conf/uip-conf.h \
+ ../contiki/uip/tcpip.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+uipbuf.o: ../contiki/uip/uipbuf.c ../contiki/uip/uipbuf.h \
+ ../contiki/uip/uip.h ../contiki/uip/uipopt.h conf/uip-conf.h \
+ ../contiki/uip/tcpip.h ../contiki/ek/ek.h conf/ek-conf.h \
+ ../contiki/lib/cc.h conf/cc-conf.h ../contiki/ek/arg.h \
+ ../contiki/ek/loader.h
+uiplib.o: ../contiki/uip/uiplib.c ../contiki/uip/uip.h \
+ ../contiki/uip/uipopt.h conf/uip-conf.h ../contiki/uip/tcpip.h \
+ ../contiki/ek/ek.h conf/ek-conf.h ../contiki/lib/cc.h conf/cc-conf.h \
+ ../contiki/ek/arg.h ../contiki/ek/loader.h ../contiki/uip/uip_arp.h \
+ ../contiki/uip/uiplib.h
diff --git a/contiki-avr/apps/http-user-agent-string b/contiki-avr/apps/http-user-agent-string
new file mode 100644
index 0000000..f44e3a7
--- /dev/null
+++ b/contiki-avr/apps/http-user-agent-string
@@ -0,0 +1 @@
+http_user_agent_fields "Connection: close\r\nUser-Agent: Contiki/1.2-devel0 (Atmel AVR Atmega128; http://www.sics.se/~adam/contiki/)\r\n\r\n"
diff --git a/contiki-avr/apps/http-user-agent-string.c b/contiki-avr/apps/http-user-agent-string.c
new file mode 100644
index 0000000..bc8f7d3
--- /dev/null
+++ b/contiki-avr/apps/http-user-agent-string.c
@@ -0,0 +1,3 @@
+char http_user_agent_fields[111] = 
+/* "Connection: close\r\nUser-Agent: Contiki/1.2-devel0 (Atmel AVR Atmega128; http://www.sics.se/~adam/contiki/)\r\n\r\n" */
+{0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0xd, 0xa, 0x55, 0x73, 0x65, 0x72, 0x2d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2f, 0x31, 0x2e, 0x32, 0x2d, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x30, 0x20, 0x28, 0x41, 0x74, 0x6d, 0x65, 0x6c, 0x20, 0x41, 0x56, 0x52, 0x20, 0x41, 0x74, 0x6d, 0x65, 0x67, 0x61, 0x31, 0x32, 0x38, 0x3b, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65, 0x2f, 0x7e, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2f, 0x29, 0xd, 0xa, 0xd, 0xa, };
diff --git a/contiki-avr/apps/http-user-agent-string.h b/contiki-avr/apps/http-user-agent-string.h
new file mode 100644
index 0000000..077b525
--- /dev/null
+++ b/contiki-avr/apps/http-user-agent-string.h
@@ -0,0 +1 @@
+extern char http_user_agent_fields[111];
diff --git a/contiki-avr/apps/httpd-cgi.c b/contiki-avr/apps/httpd-cgi.c
new file mode 100644
index 0000000..835c6b5
--- /dev/null
+++ b/contiki-avr/apps/httpd-cgi.c
@@ -0,0 +1,228 @@
+/*
+ * Copyright (c) 2001, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the uIP TCP/IP stack.
+ *
+ * $Id: httpd-cgi.c,v 1.2 2004/08/09 22:22:47 adamdunkels Exp $
+ *
+ */
+
+/*
+ * This file includes functions that are called by the web server
+ * scripts. The functions takes no argument, and the return value is
+ * interpreted as follows. A zero means that the function did not
+ * complete and should be invoked for the next packet as well. A
+ * non-zero value indicates that the function has completed and that
+ * the web server should move along to the next script line.
+ *
+ */
+
+
+#include "uip.h"
+#include "httpd.h"
+#include "httpd-cgi.h"
+#include "httpd-fs.h"
+
+#include "petsciiconv.h"
+
+#include <stdio.h>
+#include <string.h>
+
+static u8_t file_stats(void);
+static u8_t tcp_stats(void);
+static u8_t processes(void);
+
+static u8_t d64output(void);
+
+static u8_t file_totals(void);
+
+httpd_cgifunction httpd_cgitab[] = {
+  file_stats,    /* CGI function "a" */
+  tcp_stats,     /* CGI function "b" */
+  processes,     /* CGI function "c" */
+
+  d64output,     /* CGI function "d" */
+
+  file_totals,   /* CGI function "e" */
+};
+
+static const char closed[] =   /*  "CLOSED",*/
+{0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0};
+static const char syn_rcvd[] = /*  "SYN-RCVD",*/
+{0x53, 0x59, 0x4e, 0x2d, 0x52, 0x43, 0x56, 
+ 0x44,  0};
+static const char syn_sent[] = /*  "SYN-SENT",*/
+{0x53, 0x59, 0x4e, 0x2d, 0x53, 0x45, 0x4e, 
+ 0x54,  0};
+static const char established[] = /*  "ESTABLISHED",*/
+{0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, 
+ 0x45, 0x44, 0};
+static const char fin_wait_1[] = /*  "FIN-WAIT-1",*/
+{0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49, 
+ 0x54, 0x2d, 0x31, 0};
+static const char fin_wait_2[] = /*  "FIN-WAIT-2",*/
+{0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49, 
+ 0x54, 0x2d, 0x32, 0};
+static const char closing[] = /*  "CLOSING",*/
+{0x43, 0x4c, 0x4f, 0x53, 0x49, 
+ 0x4e, 0x47, 0};
+static const char time_wait[] = /*  "TIME-WAIT,"*/
+{0x54, 0x49, 0x4d, 0x45, 0x2d, 0x57, 0x41, 
+ 0x49, 0x54, 0};
+static const char last_ack[] = /*  "LAST-ACK"*/
+{0x4c, 0x41, 0x53, 0x54, 0x2d, 0x41, 0x43, 
+ 0x4b, 0};
+
+static const char *states[] = {
+  closed,
+  syn_rcvd,
+  syn_sent,
+  established,
+  fin_wait_1,
+  fin_wait_2,
+  closing,
+  time_wait,
+  last_ack};
+  
+
+/*-----------------------------------------------------------------------------------*/
+static u8_t
+file_stats(void)
+{
+  char tmp[40];
+  
+  /* We use sprintf() to print the number of file accesses to a
+     particular file (given as an argument to the function in the
+     script). We then use uip_send() to actually send the data. */
+  if(uip_acked()) {
+    return 1;
+  }
+  memcpy_P(tmp, &hs->script[4], sizeof(tmp));
+  uip_send(uip_appdata, sprintf((char *)uip_appdata, "%10lu", httpd_fs_count(tmp)));
+  return 0;
+}
+/*-----------------------------------------------------------------------------------*/
+static u8_t
+file_totals(void)
+{
+  /* We use sprintf() to print the number of file accesses to a
+     particular file (given as an argument to the function in the
+     script). We then use uip_send() to actually send the data. */
+  if(uip_acked()) {
+    return 1;
+  }
+  uip_send(uip_appdata, sprintf((char *)uip_appdata, "%10lu", httpd_fs_total()));
+  return 0;
+}
+/*-----------------------------------------------------------------------------------*/
+static u8_t
+tcp_stats(void)
+{
+  struct uip_conn *conn;  
+
+  if(uip_acked()) {
+    /* If the previously sent data has been acknowledged, we move
+       forward one connection. */
+    if(++hs->count == UIP_CONNS) {
+      /* If all connections has been printed out, we are done and
+	 return 1. */
+      return 1;
+    }
+  }
+  
+  conn = &uip_conns[hs->count];
+  while((conn->tcpstateflags & TS_MASK) == CLOSED) {
+    if(++hs->count == UIP_CONNS) {
+      /* If all connections has been printed out, we are done and
+	 return 1. */
+      return 1;
+    }
+    conn = &uip_conns[hs->count];
+  }
+  
+  uip_send(uip_appdata, sprintf((char *)uip_appdata,
+				"<tr><td>%d</td><td>%u.%u.%u.%u:%u</td><td>%s</td><td>%u</td><td>%u</td><td>%c %c</td></tr>\r\n",
+				htons(conn->lport),
+				htons(conn->ripaddr[0]) >> 8,
+				htons(conn->ripaddr[0]) & 0xff,
+				htons(conn->ripaddr[1]) >> 8,
+				htons(conn->ripaddr[1]) & 0xff,
+				htons(conn->rport),
+				states[conn->tcpstateflags & TS_MASK],
+				conn->nrtx,
+				conn->timer,
+				(uip_outstanding(conn))? '*':' ',
+				(uip_stopped(conn))? '!':' '));
+
+  return 0;
+}
+/*-----------------------------------------------------------------------------------*/
+static u8_t
+processes(void)
+{
+  u8_t i;
+  struct ek_proc *p;
+  char name[40];
+
+  p = EK_PROCS();
+  for(i = 0; i < hs->count; ++i) {
+    if(p != NULL) {
+      p = p->next;
+    }
+  }
+
+  if(uip_acked()) {
+    /* If the previously sent data has been acknowledged, we move
+       forward one connection. */
+    ++hs->count;
+    if(p != NULL) {
+      p = p->next;
+    }
+    if(p == NULL) {
+      /* If all processes have been printed out, we are done and
+	 return 1. */
+      return 1;
+    }
+  }
+
+  strncpy(name, p->name, 40);
+  petsciiconv_toascii(name, 40);
+  uip_send(uip_appdata,
+	   sprintf((char *)uip_appdata,
+		   "<tr align=\"center\"><td>%3d</td><td>%s</td><td>0x%02x</td><td>0x%04x</td><td>0x%04x</td></tr>\r\n",
+		   p->id, name, p->prio,
+		   p->pollhandler, p->eventhandler));
+  return 0;
+}
+/*-----------------------------------------------------------------------------------*/
+static u8_t
+d64output(void)
+{
+
+}
+/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-avr/apps/httpd-cgi.h b/contiki-avr/apps/httpd-cgi.h
new file mode 100644
index 0000000..718ded7
--- /dev/null
+++ b/contiki-avr/apps/httpd-cgi.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2001, Adam Dunkels.
+ * 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 Adam Dunkels.
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the uIP TCP/IP stack.
+ *
+ * $Id: httpd-cgi.h,v 1.1 2003/07/04 10:54:51 adamdunkels Exp $
+ *
+ */
+
+#ifndef __HTTPD_CGI_H__
+#define __HTTPD_CGI_H__
+
+typedef u8_t (* httpd_cgifunction)(void);
+
+extern httpd_cgifunction httpd_cgitab[];
+
+#endif /* __HTTPD_CGI_H__ */
diff --git a/contiki-avr/apps/httpd-fs.c b/contiki-avr/apps/httpd-fs.c
new file mode 100644
index 0000000..16cf1c0
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs.c
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2001, Swedish Institute of Computer Science.
+ * 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 Swedish Institute
+ *      of Computer Science and its contributors.
+ * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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. 
+ *
+ * This file is part of the lwIP TCP/IP stack.
+ * 
+ * Author: Adam Dunkels <adam@sics.se>
+ *
+ * $Id: httpd-fs.c,v 1.2 2004/08/09 22:19:35 adamdunkels Exp $
+ */
+
+#define HTTPD_FS_STATISTICS 1
+
+#include "uip.h"
+#include "httpd.h"
+#include "httpd-fs.h"
+#include "httpd-fsdata.h"
+
+#include <avr/pgmspace.h>
+
+#include "httpd-fsdata.c"
+
+#if HTTPD_FS_STATISTICS
+static unsigned long count[HTTPD_FS_NUMFILES];
+#endif /* HTTPD_FS_STATISTICS */
+
+/*-----------------------------------------------------------------------------------*/
+static u8_t
+httpd_fs_strcmp(const char *str1, prog_char *str2p)
+{
+  char str2[40];
+  u8_t i;
+  i = 0;
+
+  memcpy_P(str2, str2p, sizeof(str2) - 1);
+  str2[39] = 0;
+ loop:
+
+  if(str2[i] == 0 ||
+     str1[i] == '\r' || 
+     str1[i] == '\n') {
+    return 0;
+  }
+
+  if(str1[i] != str2[i]) {
+    return 1;
+  }
+
+
+  ++i;
+  goto loop;
+}
+/*-----------------------------------------------------------------------------------*/
+int
+httpd_fs_open(const char *name, struct httpd_fs_file *file)
+{
+#if HTTPD_FS_STATISTICS
+  u16_t i = 0;
+#endif /* HTTPD_FS_STATISTICS */
+  struct httpd_fsdata_file_noconst *f;
+
+  for(f = (struct httpd_fsdata_file_noconst *)HTTPD_FS_ROOT;
+      f != NULL;
+      f = (struct httpd_fsdata_file_noconst *)f->next) {
+
+    if(httpd_fs_strcmp(name, f->name) == 0) {
+      file->data = f->data;
+      file->len = f->len;
+#if HTTPD_FS_STATISTICS
+      ++(count[i]);
+#endif /* HTTPD_FS_STATISTICS */
+      return 1;
+    }
+#if HTTPD_FS_STATISTICS
+    ++i;
+#endif /* HTTPD_FS_STATISTICS */
+
+  }
+  return 0;
+}
+/*-----------------------------------------------------------------------------------*/
+void
+httpd_fs_init(void)
+{
+#if HTTPD_FS_STATISTICS
+  u16_t i;
+  for(i = 0; i < HTTPD_FS_NUMFILES; i++) {
+    count[i] = 0;
+  }
+#endif /* HTTPD_FS_STATISTICS */
+}
+/*-----------------------------------------------------------------------------------*/
+#if HTTPD_FS_STATISTICS
+unsigned long httpd_fs_count
+(char *name)
+{
+  struct httpd_fsdata_file_noconst *f;
+  u16_t i;
+
+  i = 0;
+  for(f = (struct httpd_fsdata_file_noconst *)HTTPD_FS_ROOT;
+      f != NULL;
+      f = (struct httpd_fsdata_file_noconst *)f->next) {
+
+    if(httpd_fs_strcmp(name, f->name) == 0) {
+      return count[i];
+    }
+    ++i;
+  }
+  return 0;
+}
+static unsigned long total;
+unsigned long
+httpd_fs_total(void)
+{
+  return total;
+}
+void
+httpd_fs_inc(void)
+{
+  ++total;
+}
+#endif /* HTTPD_FS_STATISTICS */
+/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-avr/apps/httpd-fs.h b/contiki-avr/apps/httpd-fs.h
new file mode 100644
index 0000000..71d6428
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2001, Swedish Institute of Computer Science.
+ * 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 Swedish Institute
+ *      of Computer Science and its contributors.
+ * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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. 
+ *
+ * This file is part of the lwIP TCP/IP stack.
+ * 
+ * Author: Adam Dunkels <adam@sics.se>
+ *
+ * $Id: httpd-fs.h,v 1.2 2004/09/13 23:21:03 adamdunkels Exp $
+ */
+#ifndef __HTTPD_FS_H__
+#define __HTTPD_FS_H__
+
+#include "uip.h"
+
+#define HTTPD_FS_STATISTICS 1
+
+struct httpd_fs_file {
+  prog_char *data;
+  int len;
+};
+
+/* file must be allocated by caller and will be filled in
+   by the function. */
+int httpd_fs_open(const char *name, struct httpd_fs_file *file);
+
+#if HTTPD_FS_STATISTICS
+unsigned long httpd_fs_count(char *name);
+unsigned long httpd_fs_total(void);
+void httpd_fs_inc(void);
+#endif /* HTTPD_FS_STATISTICS */
+
+void httpd_fs_init(void);
+
+#endif /* __HTTPD_FS_H__ */
diff --git a/contiki-avr/apps/httpd-fs/404.html b/contiki-avr/apps/httpd-fs/404.html
new file mode 100644
index 0000000..a17711d
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/404.html
@@ -0,0 +1,8 @@
+<html>
+  <body bgcolor="white">
+    <center>
+      <h1>404 - file not found</h1>
+      <h3>Go <a href="/">here</a> instead.</h3>
+    </center>
+  </body>
+</html>
\ No newline at end of file
diff --git a/contiki-avr/apps/httpd-fs/cgi/files b/contiki-avr/apps/httpd-fs/cgi/files
new file mode 100644
index 0000000..eb3fbf5
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/cgi/files
@@ -0,0 +1,24 @@
+i /header.html
+t <h1>File statistics</h1><br><center><b>Total numer of page loads:
+c e
+t </b></center><br><table width="100%"><tr><td><a href="/index.html">/index.html</a></td><td>
+c a /index.html
+t </td></tr> <tr><td><a href="/vnc.html">/vnc.html</a></td><td>
+c a /vnc.html
+t </td></tr> <tr><td><a href="/vncviewer.jar">/vncviewer.jar</a></td><td>
+c a /vncviewer.jar
+t </td></tr> <tr><td><a href="/cgi/files">/cgi/files</a></td><td>
+c a /cgi/files
+t </td></tr> <tr><td><a href="/cgi/tcp">/cgi/tcp</a></td><td>
+c a /cgi/tcp
+t </td></tr> <tr><td><a href="/cgi/processes">/cgi/processes</a></td><td>
+c a /cgi/processes
+t </td></tr> <tr><td><a href="/style.css">/style.css</a></td><td>
+c a /style.css
+t </td></tr> <tr><td><a href="/404.html">/404.html</a></td><td>
+c a /404.html
+t </td></tr> <tr><td><a href="/img/screenshot.png">/img/screenshot.png</a></td><td>
+c a /img/screenshot.png
+t </td></tr></table>
+i /footer.plain
+.
\ No newline at end of file
diff --git a/contiki-avr/apps/httpd-fs/cgi/processes b/contiki-avr/apps/httpd-fs/cgi/processes
new file mode 100644
index 0000000..f34c940
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/cgi/processes
@@ -0,0 +1,7 @@
+i /header.html
+t <h1>System processes</h1><br><table width="100%">
+t <tr><th>ID</th><th>Name</th><th>Priority</th><th>Poll handler</th><th>Event handler</th></th></tr>
+c c
+t </table>
+i /footer.plain
+.
\ No newline at end of file
diff --git a/contiki-avr/apps/httpd-fs/cgi/tcp b/contiki-avr/apps/httpd-fs/cgi/tcp
new file mode 100644
index 0000000..a441142
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/cgi/tcp
@@ -0,0 +1,7 @@
+i /header.html
+t <h1>Current connections</h1><br><table width="100%">
+t <tr><th>Local</th><th>Remote</th><th>State</th><th>Retransmissions</th><th>Timer</th><th>Flags</th></tr>
+c b
+t </table>
+i /footer.plain
+.
\ No newline at end of file
diff --git a/contiki-avr/apps/httpd-fs/footer.plain b/contiki-avr/apps/httpd-fs/footer.plain
new file mode 100644
index 0000000..1fd5f4f
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/footer.plain
@@ -0,0 +1,2 @@
+  </body>
+</html>
\ No newline at end of file
diff --git a/contiki-avr/apps/httpd-fs/header.html b/contiki-avr/apps/httpd-fs/header.html
new file mode 100644
index 0000000..9a4b340
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/header.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+  <head>
+    <title>Welcome to the Contiki-demo server!</title>
+    <link rel="stylesheet" type="text/css" href="/style.css">  
+  </head>
+  <body bgcolor="#fffeec" text="black">
+
+  <div class="menublock">
+
+  <div class="menu">
+  <p class="border-title">Menu</p>
+  <p class="menu">
+  
+  <a href="/">Front page</a><br>
+  <a href="/vnc.html">Remote display</a><br>
+  <a href="/cgi/files">File statistics</a><br>
+  <a href="/cgi/tcp">Network connections</a><br>
+  <a href="/cgi/processes">System processes</a><br>
+
+  </p>
+  </div>
+  </div>
+
+  <div class="contentblock">
+  <p class="border-title">
+  Welcome to the <a href="http://www.sics.se/~adam/contiki/">Contiki</a> 
+  demo server!
+  </p>
diff --git a/contiki-avr/apps/httpd-fs/img/screenshot.png b/contiki-avr/apps/httpd-fs/img/screenshot.png
new file mode 100644
index 0000000..d895e2e
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/img/screenshot.png
Binary files differ
diff --git a/contiki-avr/apps/httpd-fs/index.html b/contiki-avr/apps/httpd-fs/index.html
new file mode 100644
index 0000000..07c56ce
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/index.html
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+  <head>
+    <title>Welcome to the Contiki-demo server!</title>
+    <link rel="stylesheet" type="text/css" href="/style.css">  
+  </head>
+  <body bgcolor="#fffeec" text="black">
+
+  <div class="menublock">
+
+  <div class="menu">
+  <p class="border-title">Menu</p>
+  <p class="menu">
+  
+  <a href="/">Front page</a><br>
+  <a href="/vnc.html">Remote display</a><br>
+  <a href="/cgi/files">File statistics</a><br>
+  <a href="/cgi/tcp">Network connections</a><br>
+  <a href="/cgi/processes">System processes</a><br>
+
+  </p>
+  </div>
+  </div>
+
+  <div class="contentblock">
+  <p class="border-title">
+  Welcome to the <a href="http://www.sics.se/~adam/contiki/">Contiki</a> 
+  demo server!
+  </p>
+	      
+	  <p class="intro">
+	    The web pages you are watching are served by a <a
+	    href="http://www.sics.se/~adam/contiki/apps/webserver.html">web
+	    server</a> running under the <a
+	    href="http://www.sics.se/~adam/contiki/">Contiki operating
+	    system</a> on an an <a
+	    href="http://www.ethernut.de/en/">Ethernut</a> embedded
+	    Ethernet board, which consists of a 14 MHz AVR Atmega128
+	    microcontroller with 32 kilobytes of RAM and 128 kilobytes
+	    of flash ROM, and a RealTek RTL8019AS Ethernet chip.
+	  </p>
+
+	      <p class="clink">
+	    <a href="http://contiki-demo.sics.se"><b><tt>http://contiki-demo.sics.se/</tt></b></a>
+	  </p>
+	  
+	  
+	  <h2>Remote display</h2>
+	  <p>
+	    It it possible to remotely access the Contiki desktop of
+	    this server directly from your web browser! See the <a
+	    href="vnc.html">remote display</a> page.
+	  </p>
+	  <h2>Screenshot</h2>
+	  <p>
+	    This is what the virtual desktop of this server looks
+	    like:
+	  </p>
+	  <center>
+	    <img src="/img/screenshot.png" alt="Screenshot">
+	  </center>
+	  <h2>Memory usage</h2>
+	  <p>
+	    The entire Contiki AVR system uses slightly more than 20 k
+	    RAM, of which 6 k is used for the virtual display 8 k for
+	    	    the web browser. All code and these web pages are stored
+	    in the microcontroller's on-chip flash ROM.
+	  </p>
+	  <p align="right">
+	    /<a href="http://www.sics.se/%7eadam/">Adam Dunkels</a>
+	  </p>
+    
+  </body>
+</html>
\ No newline at end of file
diff --git a/contiki-avr/apps/httpd-fs/style.css b/contiki-avr/apps/httpd-fs/style.css
new file mode 100644
index 0000000..84abd08
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/style.css
@@ -0,0 +1,184 @@
+h1 
+{
+  text-align: center;
+  font-size:14pt;
+  font-family:arial,helvetica;
+  font-weight:bold;
+  padding:10px; 
+}
+
+body
+{
+
+  background-color: #fffeec;
+  color:TEXTCOLOR;
+
+  font-size:8pt;
+  font-family:arial,helvetica;
+}
+
+.menublock
+{
+  position:absolute;
+  top:10px;
+  left:0%;
+  width:14%;
+  float:left;
+
+  padding:10px;
+  margin:4px;
+	
+  border: solid 1px;
+  background-color: #fffcd2;
+  text-align:left;
+  
+  font-size:10pt;
+}
+
+.contentblock
+{  
+  position:absolute;
+  top:10px;
+  left:17%;
+  width:52%;
+  float:left;
+
+  padding:10px;
+  margin:4px;
+  margin-bottom:30px;
+
+  border: 1px dotted;
+  background-color: white;
+
+  font-size:8pt;
+  font-family:arial,helvetica;  
+
+}
+
+.newsblock
+{
+  position:absolute;
+  top:10px;
+  left:72%;
+  width:24%;
+  float:left;
+
+  padding:10px;
+  margin:4px;
+
+  border: solid 1px;
+  background-color: #fffcd2;
+  text-align:left;
+  font-size:8pt;
+
+}
+
+
+
+p.intro
+{
+  margin-left:20px;
+  margin-right:20px;
+
+  font-size:10pt;
+  font-weight:bold;
+  font-family:arial,helvetica;  
+}
+
+p.clink
+{
+  font-size:12pt;
+  font-family:courier,monospace;  
+  text-align:center;
+}
+
+p.related
+{
+  font-size:10pt;
+  font-family:arial,helvetica;  
+  text-align:center;
+}
+
+
+
+img.right
+{
+  float:right;
+  margin:10px;
+}
+
+img.left
+{
+  float:left;
+  margin:10px;
+}
+
+p.fig
+{
+  border: solid 1px; 
+
+  text-align: center;
+
+  padding: 10px;
+  margin:10px;
+
+  font-size:7pt;
+}
+
+p.rfig
+{
+  border: solid 1px; 
+
+  text-align: center;
+
+  padding: 10px;
+  margin:10px;
+
+  font-size:7pt;
+
+  float:right;
+}
+
+p.lfig
+{
+  border: solid 1px; 
+
+  text-align: center;
+
+  padding: 10px;
+  margin:10px;
+
+  font-size:7pt;
+
+  float:left;
+}
+
+p
+{
+  padding-left:10px;
+}
+
+p.right
+{
+  text-align:right; 
+}
+
+p.border-title
+{
+  text-align:center;
+
+  font-size:14pt;
+
+  padding:0px;
+  margin:4px;
+  margin-bottom:10px;
+
+  color: TITLECOLOR;
+  background-color: #fffcba;
+  border: solid 1px;
+
+} 
+
+
+
+
diff --git a/contiki-avr/apps/httpd-fs/vnc.html b/contiki-avr/apps/httpd-fs/vnc.html
new file mode 100644
index 0000000..496525c
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/vnc.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+  <head>
+    <title>Welcome to the Contiki-demo server!</title>
+    <link rel="stylesheet" type="text/css" href="/style.css">  
+  </head>
+  <body bgcolor="#fffeec" text="black">
+
+  <div class="menublock">
+
+  <div class="menu">
+  <p class="border-title">Menu</p>
+  <p class="menu">
+  
+  <a href="/">Front page</a><br>
+  <a href="/vnc.html">Remote display</a><br>
+  <a href="/cgi/files">File statistics</a><br>
+  <a href="/cgi/tcp">Network connections</a><br>
+  <a href="/cgi/processes">System processes</a><br>
+
+  </p>
+  </div>
+  </div>
+
+  <div class="contentblock">
+  <p class="border-title">
+  Welcome to the <a href="http://www.sics.se/~adam/contiki/">Contiki</a> 
+  demo server!
+  </p>
+
+		  <p class="intro">
+	    The Contiki VNC server lets you access the desktop from
+	    the Contiki server in your web browser, from anywhere in
+	    the world. Note that the device on which this is running
+	    does not have any monitor or any other kind of display; in
+	    fact, it does not even have a graphics chip.
+	  </p>
+
+	  <h3>Java client</h3>
+	  <p>
+	    The Java client makes it possible to access the virtual
+	    Contiki display directly from the web browser. It requires
+	    Java to be turned on in the browser.
+	  </p>
+	  <p>
+	    When asked for a password, just click the "Ok" button
+	    without typing in any password.
+	  </p>
+	  <center>
+	    <b><a href="#" onClick='window.open("vncjava.html",
+	    "Contiki",
+	    "toolbar=no,location=no,status=yes,menubar=no,scrollbars=yes,resizable=yes");'>Click
+	    here to launch in new window</a></b></center>
+	  <br>
+	    <center><b><a href="vncjava.html">Click here to launch in
+	    this window</a></b>
+	    </center>
+
+	    <p>
+	      The server is able to keep 8 connections up. In order to
+	      avoid monopolization of the connections, each user is
+	      only allowed to use the display for a short while.
+	    </p>
+	    
+	    <h3>Download VNC client</h3>
+	    <p>
+	      If you don't have Java installed, you can download a
+	      free VNC client program from <a
+	      href="http://www.realvnc.com">RealVNC</a>. Start the
+	      program with <b>contiki-demo.sics.se:0</b> as the
+	      display.
+	    </p>
+	   
+	   <h3>Unix/X clients</h3>
+ 	   <p>
+	     Unix/X VNC clients need the <tt>-bgr233</tt> option
+	     to work. Use the following command:
+	   </p>
+	   <center><tt>vncviewer -bgr233 contiki-demo.sics.se:0</tt></center>
+	  <p align="right">
+	    /<a href="http://dunkels.com/adam/">Adam Dunkels</a>
+	  </p>
+  </body>
+</html>
\ No newline at end of file
diff --git a/contiki-avr/apps/httpd-fs/vncjava.html b/contiki-avr/apps/httpd-fs/vncjava.html
new file mode 100644
index 0000000..3d6d04b
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/vncjava.html
@@ -0,0 +1,16 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+  <head>
+    <title>Virtual Contiki Screen</title>
+  </head>
+
+  <body>
+    <center>
+      <applet code="vncviewer.class" archive="vncviewer.jar"
+	      width="480" height="400">
+	<param name="PORT" value="5900">
+	  Java must be enabled in your web browser for this to work.
+      </applet>
+    </center>
+  </body>
+</html>
diff --git a/contiki-avr/apps/httpd-fs/vncviewer.jar b/contiki-avr/apps/httpd-fs/vncviewer.jar
new file mode 100644
index 0000000..c1ebd81
--- /dev/null
+++ b/contiki-avr/apps/httpd-fs/vncviewer.jar
Binary files differ
diff --git a/contiki-avr/apps/httpd-fsdata.c b/contiki-avr/apps/httpd-fsdata.c
new file mode 100644
index 0000000..8c08165
--- /dev/null
+++ b/contiki-avr/apps/httpd-fsdata.c
@@ -0,0 +1,3316 @@
+static prog_char data_cgi_processes[] = {
+	/* /cgi/processes */
+	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0,
+	0x69, 0x20, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 
+	0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 0x3c, 0x68, 0x31, 
+	0x3e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x70, 0x72, 
+	0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x3c, 0x2f, 0x68, 
+	0x31, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x74, 0x61, 0x62, 
+	0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 
+	0x31, 0x30, 0x30, 0x25, 0x22, 0x3e, 0xa, 0x74, 0x20, 0x3c, 
+	0x74, 0x72, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x49, 0x44, 0x3c, 
+	0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x4e, 0x61, 
+	0x6d, 0x65, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 
+	0x3e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x3c, 
+	0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x50, 0x6f, 
+	0x6c, 0x6c, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 
+	0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x45, 
+	0x76, 0x65, 0x6e, 0x74, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 
+	0x65, 0x72, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x74, 
+	0x68, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0xa, 0x63, 0x20, 
+	0x63, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 
+	0x65, 0x3e, 0xa, 0x69, 0x20, 0x2f, 0x66, 0x6f, 0x6f, 0x74, 
+	0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0xa, 0x2e, 
+};
+
+static prog_char data_cgi_files[] = {
+	/* /cgi/files */
+	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0,
+	0x69, 0x20, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 
+	0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 0x3c, 0x68, 0x31, 
+	0x3e, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 
+	0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x3c, 0x2f, 0x68, 0x31, 
+	0x3e, 0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x63, 0x65, 0x6e, 0x74, 
+	0x65, 0x72, 0x3e, 0x3c, 0x62, 0x3e, 0x54, 0x6f, 0x74, 0x61, 
+	0x6c, 0x20, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x20, 0x6f, 0x66, 
+	0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x6c, 0x6f, 0x61, 0x64, 
+	0x73, 0x3a, 0xa, 0x63, 0x20, 0x65, 0xa, 0x74, 0x20, 0x3c, 
+	0x2f, 0x62, 0x3e, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 
+	0x72, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x74, 0x61, 0x62, 
+	0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 
+	0x31, 0x30, 0x30, 0x25, 0x22, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 
+	0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 
+	0x66, 0x3d, 0x22, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 
+	0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x2f, 0x69, 0x6e, 0x64, 
+	0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3c, 0x2f, 0x61, 
+	0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 
+	0xa, 0x63, 0x20, 0x61, 0x20, 0x2f, 0x69, 0x6e, 0x64, 0x65, 
+	0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 0x3c, 
+	0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 
+	0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 
+	0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x76, 0x6e, 
+	0x63, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x2f, 0x76, 
+	0x6e, 0x63, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3c, 0x2f, 0x61, 
+	0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 
+	0xa, 0x63, 0x20, 0x61, 0x20, 0x2f, 0x76, 0x6e, 0x63, 0x2e, 
+	0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 
+	0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 
+	0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 
+	0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x76, 0x6e, 0x63, 0x76, 
+	0x69, 0x65, 0x77, 0x65, 0x72, 0x2e, 0x6a, 0x61, 0x72, 0x22, 
+	0x3e, 0x2f, 0x76, 0x6e, 0x63, 0x76, 0x69, 0x65, 0x77, 0x65, 
+	0x72, 0x2e, 0x6a, 0x61, 0x72, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 
+	0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xa, 0x63, 
+	0x20, 0x61, 0x20, 0x2f, 0x76, 0x6e, 0x63, 0x76, 0x69, 0x65, 
+	0x77, 0x65, 0x72, 0x2e, 0x6a, 0x61, 0x72, 0xa, 0x74, 0x20, 
+	0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 
+	0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 
+	0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 
+	0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x3e, 
+	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 
+	0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 
+	0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 0x61, 0x20, 0x2f, 0x63, 
+	0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0xa, 0x74, 
+	0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 
+	0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 
+	0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 
+	0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x22, 0x3e, 0x2f, 
+	0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x3c, 0x2f, 0x61, 
+	0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 
+	0xa, 0x63, 0x20, 0x61, 0x20, 0x2f, 0x63, 0x67, 0x69, 0x2f, 
+	0x74, 0x63, 0x70, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 
+	0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 
+	0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 
+	0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x70, 
+	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x3e, 
+	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 
+	0x73, 0x73, 0x65, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 
+	0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 
+	0x61, 0x20, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x70, 0x72, 0x6f, 
+	0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0xa, 0x74, 0x20, 0x3c, 
+	0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 
+	0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 
+	0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x73, 0x74, 
+	0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73, 0x73, 0x22, 0x3e, 0x2f, 
+	0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73, 0x73, 0x3c, 
+	0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 
+	0x64, 0x3e, 0xa, 0x63, 0x20, 0x61, 0x20, 0x2f, 0x73, 0x74, 
+	0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73, 0x73, 0xa, 0x74, 0x20, 
+	0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 
+	0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 
+	0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x34, 
+	0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x2f, 
+	0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3c, 0x2f, 
+	0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 
+	0x3e, 0xa, 0x63, 0x20, 0x61, 0x20, 0x2f, 0x34, 0x30, 0x34, 
+	0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 0x3c, 0x2f, 
+	0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 
+	0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 
+	0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x69, 0x6d, 0x67, 
+	0x2f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x68, 0x6f, 
+	0x74, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x3e, 0x2f, 0x69, 0x6d, 
+	0x67, 0x2f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x68, 
+	0x6f, 0x74, 0x2e, 0x70, 0x6e, 0x67, 0x3c, 0x2f, 0x61, 0x3e, 
+	0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xa, 
+	0x63, 0x20, 0x61, 0x20, 0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x73, 
+	0x63, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x68, 0x6f, 0x74, 0x2e, 
+	0x70, 0x6e, 0x67, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 
+	0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x3c, 0x2f, 0x74, 0x61, 
+	0x62, 0x6c, 0x65, 0x3e, 0xa, 0x69, 0x20, 0x2f, 0x66, 0x6f, 
+	0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 
+	0xa, 0x2e, };
+
+static prog_char data_cgi_meminfo[] = {
+	/* /cgi/meminfo */
+	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x6d, 0x65, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0,
+	0x69, 0x20, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 
+	0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 0x74, 0x6a, 0x75, 
+	0x6e, 0x6b, 0xa, 0x69, 0x20, 0x2f, 0x66, 0x6f, 0x6f, 0x74, 
+	0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0xa, 0x2e, 
+	0xa, };
+
+static prog_char data_cgi_tcp[] = {
+	/* /cgi/tcp */
+	0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0,
+	0x69, 0x20, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 
+	0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 0x3c, 0x68, 0x31, 
+	0x3e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x63, 
+	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 
+	0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0x3c, 
+	0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 
+	0x68, 0x3d, 0x22, 0x31, 0x30, 0x30, 0x25, 0x22, 0x3e, 0xa, 
+	0x74, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 
+	0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 
+	0x3c, 0x74, 0x68, 0x3e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 
+	0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x53, 
+	0x74, 0x61, 0x74, 0x65, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 
+	0x74, 0x68, 0x3e, 0x52, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x73, 
+	0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3c, 0x2f, 
+	0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x54, 0x69, 0x6d, 
+	0x65, 0x72, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 
+	0x3e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x3c, 0x2f, 0x74, 0x68, 
+	0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0xa, 0x63, 0x20, 0x62, 
+	0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 
+	0x3e, 0xa, 0x69, 0x20, 0x2f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 
+	0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0xa, 0x2e, };
+
+static prog_char data_img_screenshot_png[] = {
+	/* /img/screenshot.png */
+	0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x70, 0x6e, 0x67, 0,
+	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 
+	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 
+	0x76, 0x65, 0x72, 0x3a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
+	0x6b, 0x69, 0x2f, 0x70, 0x72, 0x65, 0x2d, 0x31, 0x2e, 0x31, 
+	0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 
+	0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 
+	0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 
+	0x69, 0x6b, 0x69, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 
+	0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 
+	0x20, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 
+	0xd, 0xa, 0xd, 0xa, 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 
+	0x1a, 0xa, 00, 00, 00, 0xd, 0x49, 0x48, 0x44, 0x52, 
+	00, 00, 0x1, 0xbb, 00, 00, 0x1, 0x65, 0x8, 0x3, 
+	00, 00, 00, 0x45, 0x83, 0xb6, 0x73, 00, 00, 0x3, 
+	00, 0x50, 0x4c, 0x54, 0x45, 00, 0x1, 00, 0x2, 00, 
+	0x5, 00, 0x2, 00, 0x4, 00, 0x6, 0x7, 00, 00, 
+	0x9, 0x1, 00, 0x5, 0x2, 0x7, 0x6, 0x3, 0x9, 0xd, 
+	00, 0x8, 0xa, 0x3, 0x1, 0x10, 00, 0x1, 0xb, 0x4, 
+	0x3, 0x8, 0x5, 0xa, 0x9, 0x6, 0xc, 0xd, 0x6, 0x5, 
+	0x10, 0x4, 0xc, 0xc, 0x9, 0xe, 0x12, 0x7, 0xe, 0x22, 
+	0x24, 00, 0x16, 00, 0xff, 0x22, 0x22, 0x43, 0x2a, 0x24, 
+	0x37, 0x2d, 0x25, 0x49, 0x27, 0x29, 0x45, 0x2e, 0x29, 0x3c, 
+	0x2d, 0x28, 0x46, 0x2c, 0x2a, 0x42, 0x2c, 0x2c, 0x3e, 0x2d, 
+	0x2b, 0x43, 0x2f, 0x2d, 0x3b, 0x2b, 0x2d, 0x4a, 0x31, 0x2c, 
+	0x3f, 0x30, 0x2b, 0x49, 0x2e, 0x2f, 0x41, 0x33, 0x2d, 0x41, 
+	0x31, 0x2f, 0x3c, 0x31, 0x2e, 0x47, 0x34, 0x2e, 0x42, 0x32, 
+	0x2f, 0x48, 0x34, 0x31, 0x3f, 0x34, 0x2f, 0x4d, 0x32, 0x32, 
+	0x45, 0x33, 0x31, 0x49, 0x36, 0x2e, 0x53, 0x31, 0x35, 0x42, 
+	0x34, 0x32, 0x4a, 0x31, 0x2f, 0x63, 0x38, 0x32, 0x46, 0x35, 
+	0x33, 0x4b, 0x31, 0x35, 0x4c, 0x38, 0x32, 0x51, 0x36, 0x34, 
+	0x4c, 0x3a, 0x34, 0x48, 0x37, 0x35, 0x4e, 0x36, 0x37, 0x4a, 
+	0x39, 0x34, 0x53, 0x3b, 0x35, 0x49, 0x39, 0x37, 0x45, 0x39, 
+	0x36, 0x4f, 0x38, 0x38, 0x4b, 0x38, 0x36, 0x5a, 0x3a, 0x37, 
+	0x50, 0x3b, 0x36, 0x55, 0x39, 0x39, 0x4c, 0x40, 0x34, 0x55, 
+	0x3c, 0x39, 0x47, 0x3c, 0x37, 0x56, 0x38, 0x39, 0x57, 0x3e, 
+	0x38, 0x4c, 0x3e, 0x38, 0x4d, 0x3b, 0x39, 0x52, 0x3c, 0x3e, 
+	0x3b, 0x3d, 0x3b, 0x49, 0x3c, 0x3a, 0x53, 0x3a, 0x3b, 0x58, 
+	0x3a, 0x3c, 0x59, 0x41, 0x3e, 0x4d, 0x44, 0x3e, 0x52, 0x46, 
+	0x4a, 0x57, 0x6e, 0x6d, 0x54, 0x73, 0x75, 0x72, 0x8d, 0x8d, 
+	0xa3, 0x90, 0x90, 0xa6, 0x94, 0x91, 0xa1, 0x92, 0x92, 0xa8, 
+	0x95, 0x91, 0xaf, 0x94, 0x94, 0xaa, 0x93, 0x93, 0xb5, 0x95, 
+	0x95, 0xab, 0x92, 0x96, 0xb1, 0x9c, 0x95, 0xa1, 0x99, 0x95, 
+	0xb2, 0x97, 0x97, 0xad, 0x9b, 0x98, 0xa9, 0x9a, 0x9a, 0xb0, 
+	0x9d, 0x9a, 0xab, 0x99, 0x99, 0xbc, 0xa0, 0x9a, 0xa5, 0x91, 
+	0x91, 0xff, 0x98, 0x9b, 0xb7, 0x95, 0x99, 0xce, 0x9c, 0x9c, 
+	0xb2, 0x9a, 0x9e, 0xad, 0x9f, 0x9c, 0xac, 0xa0, 0x9d, 0xae, 
+	0xa3, 0x9b, 0xb4, 0xa0, 0x9c, 0xb9, 0x9e, 0x9e, 0xb5, 0xa4, 
+	0x9e, 0xa9, 0x9c, 0x9f, 0xbb, 0xa2, 0x9f, 0xaf, 0xa0, 0xa1, 
+	0xab, 0xa2, 0x9e, 0xbb, 0xa0, 0xa0, 0xb6, 0x9e, 0xa2, 0xb1, 
+	0x9d, 0xa1, 0xbc, 0xa3, 0x9f, 0xbd, 0xa1, 0xa0, 0xc3, 0xa3, 
+	0xa4, 0xad, 0xa3, 0xa3, 0xb9, 0xa5, 0xa1, 0xbf, 0xa6, 0xa3, 
+	0xb4, 0xa0, 0xa4, 0xc0, 0xa8, 0xa4, 0xb5, 0xa7, 0xa3, 0xc1, 
+	0xa7, 0xa9, 0xa6, 0xaa, 0xa6, 0xb7, 0xa7, 0xa7, 0xbd, 0xa5, 
+	0xa8, 0xc4, 0xa9, 0xaa, 0xb4, 0xab, 0xa7, 0xc5, 0xa7, 0xaa, 
+	0xc6, 0xa8, 0xab, 0xc7, 0xb9, 0xb5, 0xa7, 0xb6, 0xb1, 0xd0, 
+	0xb8, 0xb4, 0xd2, 0xbc, 0xb3, 0xd9, 0xba, 0xb6, 0xd4, 0xbf, 
+	0xb7, 0xdd, 0xb5, 0xb6, 0xff, 0xbf, 0xba, 0xd9, 0xbc, 0xbc, 
+	0xe0, 0xc4, 0xbc, 0xd5, 0xc3, 0xbb, 0xe1, 0xc1, 0xc1, 0xd8, 
+	0xc6, 0xc2, 0xe1, 0xc6, 0xc7, 0xd1, 0xcb, 0xc3, 0xdc, 0xc8, 
+	0xc4, 0xe3, 0xc7, 0xc7, 0xde, 0xcd, 0xc5, 0xde, 0xca, 0xc6, 
+	0xe5, 0xce, 0xc6, 0xdf, 0xc9, 0xc9, 0xe0, 0xca, 0xcb, 0xd5, 
+	0xca, 0xca, 0xe1, 0xd0, 0xc8, 0xe1, 0xcb, 0xcb, 0xe2, 0xcd, 
+	0xc9, 0xe8, 0xcd, 0xcd, 0xd7, 0xcb, 0xca, 0xee, 0xd2, 0xca, 
+	0xe4, 0xd1, 0xcc, 0xeb, 0xcf, 0xce, 0xe6, 0xd2, 0xce, 0xe0, 
+	0xd4, 0xcc, 0xe6, 0xcd, 0xcc, 0xfe, 0xd5, 0xcc, 0xf3, 0xd2, 
+	0xd3, 0xdd, 0xd4, 0xcf, 0xef, 0xd5, 0xd1, 0xe3, 0xd7, 0xcf, 
+	0xe9, 0xdc, 0xda, 0xab, 0xd6, 0xd1, 0xf0, 0xd2, 0xd6, 0xe6, 
+	0xd7, 0xd2, 0xf1, 0xda, 0xd2, 0xeb, 0xd6, 0xd6, 0xee, 0xdb, 
+	0xd7, 0xf6, 0xdd, 0xd9, 0xeb, 0xe0, 0xd7, 0xf1, 0xdc, 0xdd, 
+	0xe7, 0xdb, 0xda, 0xff, 0xdb, 0xdf, 0xef, 0xde, 0xde, 0xf5, 
+	0xe2, 0xde, 0xf0, 0xe5, 0xde, 0xea, 0xe3, 0xe0, 0xe5, 0xe5, 
+	0xdd, 0xf7, 0xe3, 0xe0, 0xf2, 0xe2, 0xe2, 0xed, 0xe7, 0xe0, 
+	0xed, 0xe4, 0xe1, 0xf3, 0xe7, 0xdf, 0xf9, 0xe3, 0xe4, 0xef, 
+	0xe6, 0xe2, 0xf4, 0xea, 0xde, 0xff, 0xe8, 0xe0, 0xfa, 0xe9, 
+	0xe2, 0xee, 0xe7, 0xe4, 0xe9, 0xe4, 0xe3, 0xfb, 0xe6, 0xe2, 
+	0xff, 0xe5, 0xe6, 0xf0, 0xe8, 0xe4, 0xf6, 0xeb, 0xe4, 0xf0, 
+	0xee, 0xe4, 0xea, 0xe6, 0xe5, 0xfd, 0xe9, 0xe5, 0xf7, 0xec, 
+	0xe5, 0xf1, 0xef, 0xe3, 0xf7, 0xe7, 0xe8, 0xf2, 0xe8, 0xea, 
+	0xe7, 0xec, 0xe4, 0xfd, 0xea, 0xe6, 0xf8, 0xed, 0xe6, 0xf2, 
+	0xeb, 0xe8, 0xed, 0xe8, 0xe9, 0xf3, 0xeb, 0xe7, 0xfa, 0xee, 
+	0xe7, 0xf3, 0xe9, 0xea, 0xf4, 0xea, 0xec, 0xe9, 0xee, 0xe6, 
+	0xff, 0xe9, 0xe9, 0xff, 0xed, 0xea, 0xef, 0xef, 0xe8, 0xf5, 
+	0xe7, 0xeb, 0xfc, 0xec, 0xe9, 0xfb, 0xea, 0xeb, 0xf6, 0xea, 
+	0xea, 0xff, 0xf0, 0xe9, 0xf6, 0xed, 0xea, 0xfc, 0xec, 0xec, 
+	0xf7, 0xef, 0xec, 0xf1, 0xf2, 0xea, 0xf7, 0xef, 0xeb, 0xfd, 
+	0xed, 0xed, 0xf8, 0xf0, 0xed, 0xf2, 0xf6, 0xeb, 0xf2, 0xf0, 
+	0xec, 0xfe, 0xf3, 0xec, 0xf8, 0xee, 0xef, 0xf9, 0xf1, 0xed, 
+	0xff, 0xf4, 0xed, 0xf9, 0xef, 0xf0, 0xfa, 0xf0, 0xf1, 0xfb, 
+	0xf3, 0xef, 0xff, 0xf6, 0xef, 0xfb, 0xf7, 0xf0, 0xfc, 0xf2, 
+	0xf3, 0xfd, 0xf6, 0xf3, 0xf8, 0xf9, 0xf2, 0xff, 0xf5, 0xf5, 
+	0xff, 0xf6, 0xf6, 0xff, 0xff, 0xf5, 0xfc, 0xfd, 0xfb, 0xff, 
+	0xfe, 0xff, 0xfc, 0x6a, 0x56, 0x98, 0x6e, 00, 00, 00, 
+	0x9, 0x70, 0x48, 0x59, 0x73, 00, 00, 0xb, 0x13, 00, 
+	00, 0xb, 0x13, 0x1, 00, 0x9a, 0x9c, 0x18, 00, 00, 
+	00, 0x7, 0x74, 0x49, 0x4d, 0x45, 0x7, 0xd4, 0x7, 0x1c, 
+	0x7, 0x20, 0x1e, 0x87, 0x50, 0xcf, 0xea, 00, 00, 0x1e, 
+	0x78, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0x9d, 0x9, 
+	0xf0, 0x2c, 0x47, 0x5d, 0xc7, 0xa9, 0x7e, 0xff, 0x54, 0x21, 
+	0xa4, 0x40, 0x7b, 0x3c, 0x30, 0x96, 0x1a, 0x15, 0x2f, 0xd4, 
+	0x10, 0x9, 0xa5, 0x18, 0xbc, 0xe2, 0x11, 0x83, 0xca, 0x4e, 
+	0xd4, 0xbf, 0x7, 0x6a, 0x40, 0xff, 0x1e, 0x29, 0x8d, 0xa0, 
+	0xf1, 00, 0xcb, 0x78, 0x4b, 0x83, 0x3a, 0x82, 0x57, 0xd4, 
+	0x60, 0x40, 0x25, 0x9a, 0xa0, 0xb2, 0x78, 0x3b, 0x9a, 0x60, 
+	0x41, 0x51, 0xcf, 0x32, 0x1a, 0xa2, 0xd1, 0x68, 0x12, 0x2a, 
+	0x2f, 0x88, 0x56, 0x99, 0x8a, 0x3c, 0x35, 0xf8, 0x2, 0x5, 
+	0x42, 0x4a, 0xdb, 0x9d, 0x3e, 0x7f, 0xdd, 0x3d, 0xb3, 0x3b, 
+	0x3d, 0x77, 0xef, 0xfe, 0xfa, 0xed, 0x9b, 0xff, 0x6c, 0xef, 
+	0x6c, 0xef, 0xec, 0x7c, 0xf6, 0xdb, 0xbf, 0xfe, 0x75, 0xf7, 
+	0xfc, 0xfa, 0x31, 0x4, 0x53, 0xaa, 0xe9, 0x31, 0xe4, 0x16, 
+	0x4c, 0x29, 0x26, 0x2e, 0xd8, 0x3d, 0x80, 0x29, 0xc1, 0x84, 
+	0xec, 0x52, 0x49, 0xb7, 0x9f, 0xfb, 0x8b, 0xb3, 0xf7, 0x3c, 
+	0xf2, 0xc6, 0x7b, 0xfe, 0xef, 0xf6, 0xfb, 0xee, 0xfa, 0x7, 
+	0xc0, 0xee, 0xca, 0x2b, 0xaf, 0x7c, 0xe0, 0x22, 0x9b, 0x1e, 
+	0xb8, 0x72, 0xe9, 0x69, 0x94, 0xab, 0xb3, 0xec, 0xaf, 0x7c, 
+	0xf6, 0x73, 0x3f, 0xf8, 0xb3, 0x9f, 0x72, 0xc9, 0x25, 0x17, 
+	0x7e, 0xe8, 0xd3, 0x9f, 0xfa, 0xe9, 0x6f, 0x15, 0x39, 0x56, 
+	0x77, 0x17, 0xd9, 0x8a, 0x34, 0xa5, 0x9f, 0x23, 0x21, 0xea, 
+	0xbf, 0x7c, 0x26, 0x72, 0x8, 0xe9, 0x73, 0xe0, 0x42, 0xd3, 
+	0xc3, 0x9f, 0xf4, 0x9a, 0x5f, 0xb9, 0xfe, 0xd5, 0x37, 0xbd, 
+	0xe6, 0x8f, 0x5e, 0xf9, 0xca, 0x9b, 0xfe, 0xd2, 0xd7, 0xdd, 
+	0x2d, 0x3f, 0x24, 0xd3, 0x45, 0xb7, 0xa4, 0xa4, 0x3b, 0x83, 
+	0x84, 0x28, 0x24, 0x62, 0x87, 0x6c, 0x61, 0xd7, 0x78, 0xe0, 
+	0xb2, 0xbf, 0xf2, 0xdf, 0x3f, 0xed, 0xa6, 0xef, 0xfa, 0x91, 
+	0xaf, 0xbf, 0xf6, 0xf3, 0xbe, 0xf2, 0xdb, 0x3e, 0xeb, 0xfa, 
+	0x73, 0x81, 0xee, 0x2c, 0xbb, 0x14, 0x75, 0xa7, 0x51, 0x68, 
+	0x2d, 0xc1, 0xbf, 0xee, 0x7f, 0xef, 0xc0, 0x44, 0xd2, 0x1d, 
+	0x97, 0xbc, 0xee, 0xf8, 0xb9, 0x2f, 0x78, 0xd1, 0x85, 0xdf, 
+	0xfb, 0xc3, 0x1f, 0xf4, 0x27, 0x6f, 0xda, 0x37, 0xdd, 0xa9, 
+	0xa, 0xb1, 0x5, 0x3b, 0x52, 0xcf, 0x6e, 0xd9, 0x5f, 0xf9, 
+	0xbd, 0x1f, 0xf9, 0xaa, 0xeb, 0xbe, 0xfb, 0x5b, 0xbf, 0xe2, 
+	0x59, 0xd7, 0x5c, 0x75, 0xc5, 0x1f, 0xbe, 0x69, 0xcf, 0x74, 
+	0x27, 0x4, 0x55, 0x83, 0x24, 0x60, 0xd7, 0x74, 0xe0, 0xc2, 
+	0xd3, 0xeb, 0x9f, 0x71, 0xe3, 0x35, 0x57, 0x5f, 0x77, 0xcd, 
+	0xc5, 0xcf, 0xbf, 0xfa, 0xd3, 0x7e, 0xfe, 0xdc, 0x9e, 0xe9, 
+	0xce, 0x28, 0x6a, 0x27, 0xbb, 0x86, 0x3, 0x17, 0xfe, 0xad, 
+	0xff, 0xf4, 0xf3, 0x7f, 0xe7, 0x23, 0x2e, 0xfe, 0xd4, 0x8f, 
+	0xfb, 0xcc, 0x6f, 0xb8, 0xe6, 0xd2, 0x5f, 0xfb, 0x9b, 0x7d, 
+	0xd3, 0x9d, 0x32, 0x65, 0x2d, 0xd8, 0xd5, 0x1f, 0xb8, 0xf0, 
+	0xf4, 0xee, 0xb, 0x5f, 0xf6, 0x3, 0xdf, 0xf4, 0x2d, 0x3f, 
+	0xfa, 0xd5, 0xdf, 0xf7, 0x13, 0x1f, 0xf2, 0x1b, 0xef, 0xd9, 
+	0x23, 0xdd, 0xe9, 0x6, 0x23, 0x1, 0xcd, 0xc7, 0x5a, 0x7b, 
+	0x57, 0x77, 0x60, 0x22, 0xba, 0x3b, 0x73, 0xf9, 0xeb, 0xae, 
+	0xbd, 0xf6, 0x6b, 0x5e, 0xf4, 0xfd, 0xcf, 0xf9, 0xf2, 0x8f, 
+	0xfd, 0xfd, 0x50, 0x77, 0xda, 0x35, 0x4f, 0x4c, 0x77, 0xa6, 
+	0xd1, 0xef, 0xba, 0x6d, 0x46, 0x56, 0x44, 0x57, 0x91, 0xd, 
+	0x7, 0x26, 0x92, 0xce, 0x5c, 0x72, 0xc3, 0x5, 0x1f, 0xf5, 
+	0xc9, 0x9f, 0xf8, 0x94, 0x4b, 0x2f, 0xfb, 0xd2, 0x1b, 0xff, 
+	0x29, 0xd0, 0x9d, 0xf5, 0xcd, 0xb1, 0x5f, 0x65, 0x79, 0xe9, 
+	0xf6, 0x67, 0xbf, 0xe2, 0xb7, 0x7e, 0xef, 0xd7, 0x7f, 0xfb, 
+	0x37, 0x6f, 0xfc, 0xd5, 0x5f, 0xf8, 0xdd, 0xbf, 0xf3, 0x74, 
+	0x87, 0x69, 0xd9, 0xe9, 0xd1, 0x3f, 0x7f, 0xeb, 0xbf, 0x9d, 
+	0xfe, 0xd7, 0x3f, 0x3b, 0xf7, 0xcf, 0xff, 0xf1, 0xae, 0xbf, 
+	0x3e, 0x87, 0x7d, 0xd1, 0xfb, 0x30, 0x8e, 0xf0, 0xcd, 0x98, 
+	0x52, 0x4c, 0x82, 0x1d, 0xa6, 0x24, 0xd3, 0x17, 0x55, 0xec, 
+	0xfe, 0x11, 0x53, 0x92, 0x9, 0xd9, 0x21, 0x3b, 0x4c, 0xc8, 
+	0xe, 0x13, 0xb2, 0x43, 0x76, 0x98, 0x90, 0x1d, 0x26, 0x64, 
+	0x87, 0xa9, 0x99, 0x1d, 0x17, 0x69, 0xbd, 0x71, 0xfc, 0xd6, 
+	0xdc, 0x49, 0xc4, 0x6e, 0x9, 0xcc, 0xc1, 0xd4, 0x3b, 0x35, 
+	0x5d, 0xec, 0xa6, 0x2b, 0xbc, 0x9d, 0xdd, 0xa6, 0xac, 0xb5, 
+	0xfb, 0xc6, 0xb5, 0x2c, 0x7e, 0xd, 0x8a, 0x5c, 0xe3, 0x55, 
+	0x1f, 0x88, 0xdd, 0x7a, 0xed, 0xc1, 0x23, 0xf0, 0x9a, 0xc7, 
+	0xb2, 0xd3, 0xea, 0x5b, 0xeb, 0x5f, 0xc5, 0x66, 0x2b, 0x7e, 
+	0x21, 0xf2, 0xd5, 0xa, 0x2c, 0x41, 0xdd, 0xd, 0xc5, 0xae, 
+	0xba, 0xd4, 0xea, 0x6a, 0xaf, 0xc5, 0x85, 0xd6, 0x57, 0x98, 
+	0x78, 0x14, 0xda, 0xb3, 0xab, 0x7e, 0xf, 0x7a, 0x2b, 0x7f, 
+	0x3, 0x52, 0x8c, 0x64, 0x2d, 0x3f, 0x5, 0xaf, 0xfa, 0x60, 
+	0xec, 0x36, 0xff, 0xcd, 0xd5, 0x6, 0x57, 0x78, 0xed, 0x51, 
+	0x88, 0x60, 0x7, 0x1e, 0x8e, 0xbd, 0x23, 0x6b, 0xb4, 0x77, 
+	0x83, 0xeb, 0x8e, 0x8, 0x99, 0x69, 0x95, 0xad, 0x61, 0xeb, 
+	0xc2, 0x52, 0x68, 0x6d, 0xef, 0x14, 0x71, 0xc5, 0xe, 0x94, 
+	0xa6, 0x7e, 0x10, 0x78, 0xd5, 0x87, 0xb4, 0x77, 0x52, 0x71, 
+	0x5c, 0xa9, 0x4c, 0x49, 0xae, 0x83, 0xee, 0x64, 0x3b, 0x53, 
+	0xfd, 0x6, 0x24, 0xa5, 0x35, 0x1, 0xbf, 0x84, 0x35, 0x41, 
+	0x76, 0x43, 0xb7, 0x33, 0xd7, 0xaa, 0x45, 0x21, 0xaf, 0xf9, 
+	0xda, 0x5c, 0xf3, 0x58, 0x7b, 0x87, 0x69, 0x79, 0xda, 0xdc, 
+	0xdd, 0xce, 0x3c, 0xd9, 0xa3, 0x44, 0xf3, 0x2a, 0x1d, 0x8b, 
+	0x44, 0x37, 0x49, 0xed, 0x46, 0xa7, 0xbc, 0x53, 0x6a, 0x28, 
+	0x87, 0xf6, 0xff, 0x5e, 0x7, 0xc1, 0x4e, 0x5e, 0x32, 0xb6, 
+	0x49, 0xc7, 0x1b, 0x70, 0x39, 0x3d, 0x9e, 0x34, 0x89, 0xcf, 
+	0xd, 0x12, 0xb2, 0x8b, 0xd1, 0x9d, 0xb8, 0x80, 0x92, 0x1d, 
+	0xcd, 0xe9, 0x6, 0x60, 0x2e, 0x24, 0xe8, 0x6d, 0x29, 0xd8, 
+	0x9a, 0x9c, 0x5e, 0xba, 0x3, 0x9f, 0x8b, 0xba, 0xeb, 0xaa, 
+	0x3b, 0x5b, 0x67, 0xca, 0x7a, 0x73, 0xc3, 0x94, 0x6, 0xdb, 
+	0x63, 0xb0, 0x35, 0x39, 0xfd, 0x74, 0x27, 0x78, 0x6d, 0x7e, 
+	0x2e, 0x39, 0xea, 0xae, 0xaf, 0xee, 0xec, 0x56, 0x3f, 0x72, 
+	0xc9, 0xd4, 0xd5, 0x20, 0xcc, 0xe9, 0xaf, 0xbb, 0xe3, 0xdc, 
+	0x2b, 0x7, 0xd9, 0xc5, 0xeb, 0xee, 0x18, 0x6c, 0x3, 0xc5, 
+	0x1d, 0x8b, 0xfd, 0xe3, 0x30, 0x7, 0x75, 0xb7, 0x4, 0xdd, 
+	0x1, 0x76, 0x9e, 0xa5, 0x93, 0x35, 0x6a, 0xae, 0xb7, 0x30, 
+	0x7, 0xed, 0xdd, 0x6c, 0xec, 0x58, 0x7d, 0x53, 0xaf, 0x4b, 
+	0x83, 0x31, 0x3e, 0x35, 0x94, 0x83, 0xec, 0x22, 0xd8, 0x2d, 
+	0x2c, 0x21, 0xbb, 0x7d, 0x67, 0xb7, 0xaa, 0x4d, 0xc8, 0x2e, 
+	0x9, 0x76, 0x12, 0xa0, 0x45, 0x69, 0x32, 0x91, 0x5d, 0x2, 
+	0xec, 0x4, 0x2f, 0xa3, 0xb7, 0x6a, 0x83, 0xec, 0x12, 0x61, 
+	0x67, 0x45, 0x67, 0xa4, 0x87, 0xec, 0x52, 0x61, 0xe7, 0x1a, 
+	0x3d, 0x95, 0x85, 0xec, 0x52, 0x68, 0xab, 0x6c, 0xc9, 0x43, 
+	0x76, 0x4b, 0x67, 0x17, 0x34, 0x32, 0xf, 0x97, 0x5d, 0x4e, 
+	0xc5, 0x86, 0xd2, 0x5c, 0x5f, 0x44, 0xb3, 0x31, 0x7f, 0x82, 
+	0xfd, 0x79, 0xdb, 0x99, 0x4d, 0x99, 0x7, 0xc7, 0x8e, 0x56, 
+	0xcf, 0x36, 0xe0, 0x72, 0x9d, 0x2b, 0x20, 0x52, 0xb0, 0xcf, 
+	0xc2, 0xfd, 0x59, 0xdb, 0x2a, 0xa1, 0xf0, 0xe, 0x5a, 0x77, 
+	0x14, 0xe8, 0x4a, 0xf4, 0x12, 0x57, 0x3, 0x7a, 0x79, 0x5, 
+	0xd6, 0x12, 0x93, 0xfb, 0xd5, 0xb, 0x42, 0xa7, 0xb9, 0xa4, 
+	0x29, 0x8e, 0x4, 0x39, 0x94, 0xa2, 0xee, 0xa6, 0xb3, 0x77, 
+	0xf5, 0xec, 0xaa, 0xd1, 0x84, 0x8a, 0x85, 0x91, 0xa3, 0xda, 
+	0x97, 0x30, 0xe5, 0xbe, 0x39, 0xd2, 0x7b, 0x75, 0x42, 0xdd, 
+	0x21, 0x3b, 0x87, 0x9d, 0x46, 0x52, 0x29, 0x88, 0x82, 0x6c, 
+	0xf5, 0x34, 0xb7, 0xfb, 0x9e, 0x42, 0x69, 0xaf, 0x7a, 0xb5, 
+	0xa3, 0xee, 0xe, 0xbb, 0x4f, 0xcc, 0xb7, 0x77, 0xa2, 0xe6, 
+	0x63, 0x50, 0x4d, 0x8e, 0xee, 0xc0, 0xbe, 0x84, 0xc7, 0xb4, 
+	0x42, 0xfb, 0xb5, 0x67, 0x3a, 0xe8, 0xce, 0x78, 0x7a, 0x7, 
+	0xcd, 0xe, 0xb6, 0x33, 0x25, 0x3b, 0x69, 0xb8, 0x6a, 0xec, 
+	0x9d, 0x92, 0xa6, 0xd2, 0x5f, 0x45, 0x99, 0x4a, 0xbb, 0x47, 
+	0xa7, 0x61, 0x57, 0xd7, 0x33, 0x8d, 0xfe, 0x5d, 0x32, 0xfd, 
+	0x99, 0x9e, 0xea, 0xa2, 0xd8, 0x39, 0xf3, 0x1b, 0xed, 0xb0, 
+	0xf3, 0x31, 0x9d, 0x70, 0x96, 0x63, 0x9f, 0x99, 0x90, 0xd4, 
+	0x69, 0x66, 0x52, 0x51, 0x61, 0x5a, 0x81, 0x39, 0xbe, 0x5e, 
+	0x80, 0x99, 0x8e, 0xe5, 0xf2, 0xc5, 0xf7, 0xab, 0x98, 0xde, 
+	0xe8, 0x28, 0x76, 0xee, 0xfc, 0x46, 0xcb, 0x2e, 0x3f, 0x5e, 
+	0x56, 0x6a, 0x98, 0x9, 0xe9, 0x5c, 0x7e, 0x61, 0xe9, 0x3c, 
+	0xff, 0x2e, 0xa7, 0xd0, 0x81, 0x60, 0x81, 0x4b, 0x61, 0x1b, 
+	0x35, 0x73, 0xb0, 0x3, 0xb2, 0x8b, 0xef, 0x13, 0x83, 0xf3, 
+	0x3d, 0x6c, 0x5b, 0xcb, 0x9b, 0xcb, 0x1, 0x66, 0x55, 0xc9, 
+	0xd9, 0x8f, 0x72, 0x86, 0x6, 0xcc, 0x19, 0x5d, 0x77, 0xd, 
+	0x33, 0x43, 0x68, 0xd0, 0xca, 0x74, 0xd8, 0x69, 0x81, 0x99, 
+	0xc6, 0x47, 0xae, 0x2d, 0x9d, 0x35, 0x69, 0xba, 0x6d, 0xc9, 
+	0x6, 0xf0, 0xec, 0xa2, 0xfb, 0xa2, 0x1d, 0xd9, 0xc5, 0xb2, 
+	0xf3, 0xe7, 0x3b, 0x51, 0x38, 0xc3, 0x4a, 0x6b, 0x10, 0xcc, 
+	0x69, 0x14, 0x48, 0xe5, 0xcc, 0x28, 0x98, 0x33, 0xbe, 0xee, 
+	0xea, 0x67, 0x64, 0x85, 0xec, 0x94, 0x4b, 00, 0xd9, 0xe5, 
+	0xc6, 0x69, 0xb7, 0x2d, 0x4c, 0xcb, 0x4e, 0xfb, 0x77, 0x43, 
+	0x78, 0x76, 0xf1, 0x63, 0x40, 0xaa, 0x1b, 0xb3, 0xaf, 0xee, 
+	0x8e, 0x8d, 0x37, 0xa4, 0x27, 0x37, 0x1e, 0x83, 0x39, 0x57, 
+	0x2a, 0x3f, 0x57, 0x38, 0xa9, 0x97, 0x33, 0x89, 0xee, 0xc2, 
+	0x99, 0x90, 0xb4, 0xc6, 0xbb, 0xf3, 0x75, 0x27, 0x7b, 0x4b, 
+	0x4c, 0xe7, 0xa6, 0xa7, 0x3b, 0xef, 0x55, 0x3a, 0x40, 0x8f, 
+	0x59, 0xdc, 0xd8, 0x2b, 0xf0, 0xec, 0x56, 0x9d, 0x75, 0x27, 
+	0x91, 0x40, 0x95, 0x99, 0xcb, 0x64, 0xe7, 0x15, 0x1f, 0xdb, 
+	0x6b, 0xe8, 0xe4, 0x2c, 0x41, 0x77, 0xb9, 0xee, 0x8d, 0xce, 
+	0x3d, 0xb, 0x18, 0xe8, 0x2e, 0xc8, 0x61, 0x50, 0x77, 0x93, 
+	0xcf, 0x79, 0xe8, 0x36, 0x5f, 0xc5, 0xd1, 0x9d, 0x60, 0x17, 
+	0xce, 0x5d, 0x74, 0xe6, 0x34, 0x1e, 0xdb, 0x76, 0xa8, 0x9b, 
+	0x33, 0xbf, 0xbd, 0x53, 0xad, 0x4a, 0x50, 0xe5, 0xd9, 0x96, 
+	0xa7, 0x6b, 0xef, 0xbc, 0x1c, 0xa, 0xc6, 0x20, 0xf2, 0xe9, 
+	0xd8, 0xf5, 0x9d, 0x6b, 0x34, 0xd4, 0xfc, 0xc6, 0x3e, 0xb3, 
+	0x1c, 0xfb, 0xcc, 0x84, 0x3c, 0xe4, 0x39, 0x7e, 0x34, 0x74, 
+	0x6e, 0xc2, 0xcb, 0x11, 0x7b, 0x81, 0xa6, 0xbb, 0xa0, 0x3b, 
+	0xfc, 0x3b, 0x4a, 0xe3, 0xda, 0x1d, 0x94, 0x36, 0xc, 0xf5, 
+	0xd1, 0x1e, 0xec, 0xb8, 0xdd, 0x65, 0x9c, 0x73, 0x76, 0x52, 
+	0xf3, 0x2a, 0x7, 0x7, 0xf2, 0xee, 0xec, 0x42, 0x4f, 0x27, 
+	0xd6, 0xf7, 0xc9, 0x47, 0x1e, 0x1e, 0x6b, 0x74, 0xaf, 0xb7, 
+	0xfa, 0x77, 0xed, 0xce, 0x5c, 0xfe, 0x9, 0xbe, 0x4b, 0xde, 
+	0x9d, 0x1d, 0x3, 0xb4, 0x36, 0xbb, 0x8c, 0x9f, 0xd4, 0xbc, 
+	0xca, 00, 0x3b, 0xd6, 0x89, 0x5d, 0xe0, 0xe9, 0x48, 0x5b, 
+	0x40, 0xa9, 0xd3, 0xb7, 0x4b, 0xbd, 0x57, 0x55, 0x3f, 0xbc, 
+	0x7f, 0x7c, 0x4e, 0x27, 0xa8, 0xd0, 0x76, 0xf9, 0x77, 0x8a, 
+	0xa6, 0x73, 0xce, 0xb9, 0x7b, 0xb6, 0xce, 0x79, 0x52, 0x5b, 
+	0x28, 0xfc, 0x2e, 0x94, 0xda, 0x5e, 0xd0, 0x16, 0xdf, 0x8b, 
+	0x32, 0x21, 0x2f, 0x2e, 0x1f, 0x9c, 0x7b, 0x22, 0x53, 0xaf, 
+	0xea, 0x6d, 0x95, 0xaf, 0x74, 0xc7, 0xb8, 0xde, 0x8f, 0x66, 
+	0x17, 0x7a, 0x3a, 0xa2, 0x47, 0x1d, 0xea, 0x88, 0xba, 0xaf, 
+	0x52, 0xdb, 0xae, 0xf6, 0x8f, 0x97, 0xfb, 0xd3, 0xb3, 0xb, 
+	0xeb, 0xcc, 0x9a, 0x73, 0x86, 0xe3, 0x5, 0xf0, 0x3c, 0x81, 
+	0x8b, 0x1, 0xbf, 0x4b, 0x1e, 0xb6, 0x51, 0xb7, 0x9e, 0x15, 
+	0x67, 0x8c, 0x6b, 0x76, 0x8e, 0xee, 0x94, 0xfa, 0xc4, 0xab, 
+	0x62, 0x2b, 0x5f, 0x95, 0x62, 0xe4, 0xe2, 0x9, 0xeb, 0xc4, 
+	0xce, 0xf1, 0x74, 0xc0, 0x8, 0x32, 0xac, 0x52, 0x55, 0x9f, 
+	0x3b, 0x50, 0x9c, 0x7a, 0x4, 0xc7, 0xe7, 0x74, 0x82, 0xaa, 
+	0x73, 0xb7, 0xee, 0x98, 0x3b, 0x4e, 0xa7, 0xfc, 0x3b, 0xea, 
+	0x2b, 0x31, 0xb4, 0x6e, 0xce, 0x77, 0xa7, 0x4e, 0x9, 0xbb, 
+	0xd9, 0x19, 0xd1, 0xb9, 0xf6, 0xce, 0x18, 0x37, 0xff, 0x55, 
+	0xc9, 0x8e, 0xb3, 0x2e, 0xf6, 0x2e, 0xaf, 0xf1, 0x74, 0x40, 
+	0x8f, 0x44, 0xf0, 0xe5, 0xf2, 0x9a, 0x5f, 0xb2, 0x7f, 0x7c, 
+	0x9e, 0xd3, 0xd9, 0xed, 0x9d, 0x7b, 0xce, 0xf5, 0x67, 0xb, 
+	0xcf, 0xd3, 0xf9, 0x29, 0x83, 0xef, 0xe2, 0x78, 0xee, 0xad, 
+	0x75, 0x27, 0xb6, 0x27, 0x81, 0xbd, 0x83, 0xaa, 0x3c, 0x1, 
+	0xbc, 0xa4, 0xee, 0xa2, 0xd9, 0xc1, 0x9a, 0x5f, 0x7b, 0x3a, 
+	0x76, 0xcc, 0x2b, 0xf8, 0x72, 0x39, 0xb0, 0x68, 0x66, 0xeb, 
+	0x1d, 0x4f, 0x27, 0xd7, 0x5d, 0x4d, 0x3b, 0xd3, 0x3d, 0x67, 
+	0x68, 0xe9, 0xec, 0x28, 0x5e, 0x83, 0xee, 0x9c, 0xef, 0x4e, 
+	0xe1, 0x8, 0x7b, 0x5b, 0x7b, 0xc7, 0xa4, 0x31, 0x3, 0xad, 
+	0x13, 0xd9, 0xce, 0x84, 0xd6, 0x50, 0x57, 0x97, 0xd6, 0xde, 
+	0xc5, 0xb2, 0xeb, 0x9a, 0xf2, 0xb9, 0xdd, 0xab, 0x39, 0xfc, 
+	0xbb, 0x16, 0xba, 0x9b, 0xd2, 0xbf, 0x4b, 0x36, 0xd5, 0xe8, 
+	0x8e, 0xfa, 0x7d, 0xd1, 0x74, 0x6a, 0xa7, 0x13, 0xd9, 0x75, 
+	0xb5, 0x77, 0x4e, 0x5f, 0x74, 0xc3, 0xfc, 0x4c, 0x64, 0xb7, 
+	0x38, 0x76, 0xb6, 0x7b, 0x79, 0xc7, 0xfc, 0xcc, 0x70, 0x1e, 
+	0xa6, 0xe4, 0x3e, 0xe9, 0xf8, 0x1d, 0xb2, 0xab, 0x61, 0x97, 
+	0xfb, 0x53, 0xfc, 0xea, 0xe6, 0x67, 0x7a, 0xa3, 0x75, 0x72, 
+	0x9a, 0xd8, 0xa4, 0xe3, 0x77, 0xc8, 0xae, 0x86, 0x1d, 0xb8, 
+	0xf4, 0xd, 0xf3, 0x33, 0x6b, 0xe6, 0x61, 0xd2, 0x9c, 0xe, 
+	0x30, 0x33, 0x13, 0xd9, 0xf5, 0xb4, 0x77, 0x6e, 0x5e, 0xdd, 
+	0xfc, 0xcc, 0x9a, 0x79, 0x98, 0xb9, 0xac, 0x2d, 0x7b, 0xce, 
+	0xcc, 0x44, 0x76, 0xbd, 0xda, 0x99, 0x21, 0xbb, 0xa6, 0xf9, 
+	0x99, 0xee, 0x3c, 0x4c, 0xe0, 0xd5, 0x22, 0xbb, 0x7d, 0xf5, 
+	0xef, 0x90, 0xdd, 0x78, 0xba, 0x3, 0xad, 0xc4, 0xe8, 0xf1, 
+	0xbb, 0x86, 0x4c, 0x4a, 0x91, 0xdd, 0x14, 0xf6, 0xce, 0x19, 
+	0xf5, 0x88, 0x1c, 0xbf, 0xab, 0x3, 0x2d, 0xc7, 0x56, 0x46, 
+	0x60, 0x37, 0xd0, 0x9c, 0x87, 0x7d, 0x6a, 0x67, 0x7a, 0xf7, 
+	0x48, 0x86, 0xe3, 0x77, 0xd4, 0x78, 0x70, 0xc6, 0xef, 0xd3, 
+	0xef, 0xd1, 0x6, 0xd3, 0xfa, 0x83, 0xe1, 0x5c, 0x97, 0x16, 
+	0xde, 0xdf, 0x44, 0xf1, 0x55, 0xf6, 0x90, 0x5d, 0x9b, 0xf1, 
+	0x3b, 0x30, 0xd2, 0x51, 0xe5, 0xe4, 0xa6, 0xef, 0xc5, 0x8e, 
+	0x2c, 0x34, 0xcd, 0x28, 0x6b, 0x51, 0xb, 0x4f, 0x14, 0x5f, 
+	0x65, 0x2f, 0x75, 0xb7, 0x7d, 0xfc, 0xce, 0x78, 0x70, 0x60, 
+	0xdc, 0xdf, 0xf6, 0x79, 0x52, 0x77, 0x3e, 00, 0x9c, 0xc9, 
+	0xd9, 0xda, 0xfb, 0x9b, 0x28, 0xbe, 0xca, 0xfe, 0xd9, 0xbb, 
+	0x56, 0xe3, 0x77, 0x30, 0x27, 0x60, 0x17, 0xce, 0x7, 0x60, 
+	0x60, 0x24, 0x9d, 0xb2, 0xe1, 0xd8, 0xf5, 0x8b, 0xaf, 0xb2, 
+	0x7f, 0xed, 0xcc, 0x9d, 0xe3, 0x77, 0xd4, 0x9d, 0x27, 0xb0, 
+	0x5d, 0x77, 0x9e, 0xbd, 0x1b, 0x94, 0x5d, 0xdf, 0xf8, 0x2a, 
+	0x7, 0xe7, 0xdf, 0x4d, 0x32, 0x9a, 0x3f, 0x4d, 0x7c, 0x95, 
+	0x6e, 0x53, 0x2f, 0xcd, 0x3a, 0x29, 0xd5, 0x4a, 0x29, 0x6b, 
+	0xf0, 0x27, 0xd8, 0x6f, 0x91, 0xca, 0x14, 0x7f, 0x34, 0x6a, 
+	0x6d, 0x17, 0xff, 0x5b, 0xd0, 0xd8, 0x76, 0x66, 0x9f, 0x38, 
+	0xf, 0xd1, 0xec, 0xc4, 0x89, 0xf2, 0x72, 0x93, 0xd6, 0x84, 
+	0x1, 0x76, 0xc, 0xb0, 0x63, 0x31, 0xe8, 0x8a, 0x72, 0x9d, 
+	0x60, 0x92, 0x57, 0x20, 0xf8, 0x16, 0x71, 0xec, 0x7a, 0xc6, 
+	0x57, 0xe9, 0xa8, 0x3b, 0x71, 0xa6, 0x8c, 0xc8, 0x7f, 0x15, 
+	0x2b, 0x42, 0x2c, 0x31, 0xb9, 0x5f, 0xbd, 0x50, 0x1d, 0x23, 
+	0xf7, 0xe5, 0xd1, 0x30, 0x87, 0x10, 0xfd, 0xad, 0x93, 0xd4, 
+	0x5d, 0xa9, 0x7e, 0xa5, 0x8c, 0xc0, 0x6f, 0x91, 0x84, 0xee, 
+	0x2c, 0x3b, 0xc2, 0xaa, 0xd3, 0x97, 0x5b, 0xad, 0x3b, 0x91, 
+	0x23, 0x65, 0x29, 0xf6, 0xcd, 0x91, 0xde, 0xab, 0x29, 0xeb, 
+	0xce, 0x5c, 0x81, 0xa1, 0x74, 0x37, 0x3e, 0x3b, 0xf0, 0xab, 
+	0xd3, 0x48, 0x88, 0x58, 0x20, 0xcc, 0x9a, 0x39, 0xf5, 0x94, 
+	0xd9, 0x7d, 0x4f, 0xa1, 0x4, 0xd6, 0xab, 0x29, 0xeb, 0x6e, 
+	0xad, 0xd1, 0xd, 0xa2, 0xbb, 0xb1, 0xfb, 0xc4, 0xa0, 0xee, 
+	0x44, 0xcd, 0xb7, 0x86, 0x6a, 0x72, 0x74, 0x7, 0xf6, 0xd5, 
+	0xf, 0x54, 0x2b, 0xd4, 0x69, 0xcf, 0xa0, 0xee, 0xba, 0xc6, 
+	0x57, 0xe9, 0xa5, 0x3b, 0xc1, 0x4e, 0x1a, 0xae, 0x1a, 0x7b, 
+	0xa7, 0x7e, 0x98, 0x4a, 0x7f, 0x15, 0x65, 0x22, 0xed, 0x1e, 
+	0xb1, 0xec, 0x8a, 0x4d, 0x4a, 0xdf, 0xde, 0xd9, 0x6f, 0xd1, 
+	0x5d, 0x77, 0x13, 0xf4, 0x45, 0xd3, 0xa0, 0x71, 0xdc, 0x27, 
+	0x95, 0x22, 0x25, 0xb9, 0x58, 0x5d, 0xfd, 0xb7, 0x88, 0x64, 
+	0xd7, 0x33, 0xbe, 0x4a, 0x37, 0x76, 0x7a, 0x2d, 0x45, 0xcf, 
+	0x1d, 00, 0x9e, 0x5d, 0xb9, 0x73, 0x1d, 0xc6, 0x66, 0x4f, 
+	0x62, 0x44, 0x9a, 0xc, 0x56, 0xa, 0x3d, 0x3e, 0x97, 0xf9, 
+	0x5f, 0xa0, 0x3, 0xbb, 0xde, 0xf1, 0x55, 0xba, 0xb1, 0xd3, 
+	0xfe, 0x1d, 0x23, 0xd, 0xec, 0x8a, 0xe6, 0xeb, 0xa0, 0xde, 
+	0xcb, 0x1a, 0xe1, 0x15, 0xe3, 0xb0, 0x3, 0xe7, 0x5c, 0xff, 
+	0xd9, 0x2d, 0x3f, 0xb7, 0xf6, 0xbb, 0x17, 0xdd, 0xd8, 0xf5, 
+	0x8b, 0xaf, 0xd2, 0x91, 0x1d, 0xa8, 0xed, 0xb5, 0x15, 0x13, 
+	0x3f, 0x67, 0x46, 0x76, 0xb3, 0x53, 0x94, 0xa5, 0xad, 0x34, 
+	0xde, 0x9f, 0xfd, 0x21, 0x8f, 0xc5, 0xce, 0xf6, 0x1b, 0x88, 
+	0xa6, 0xee, 0xda, 0xf7, 0x4c, 0xdb, 0xb2, 0xd3, 0xbf, 0x52, 
+	0x66, 0xac, 0x79, 0x37, 0x76, 0xbd, 0xe3, 0xab, 0xf4, 0x61, 
+	0xa7, 0x1a, 0x1f, 0xd6, 0xbf, 0x23, 0xac, 0xc5, 0x75, 0x30, 
+	0xdf, 0x9d, 0xf8, 0xde, 0x1f, 0x19, 0x9f, 0x9d, 0xac, 0xeb, 
+	0x18, 0xf0, 0x3d, 0xa3, 0x3f, 0x57, 0x9f, 0x3f, 0x21, 0xe1, 
+	0x7b, 0x63, 0xdb, 0x99, 0xfd, 0xe2, 0xab, 0xf4, 0xd6, 0x1d, 
+	0xd3, 0xfe, 0x1d, 0x73, 0x3d, 0xee, 0x36, 0xba, 0x83, 0xde, 
+	0x9f, 0xf5, 0x10, 0xc7, 0x64, 0x27, 0xf0, 0xa9, 0x4f, 0x22, 
+	0xe0, 0xd1, 0x81, 0x9d, 0x39, 0xff, 0xce, 0xec, 0xfa, 0xc6, 
+	0x57, 0xe9, 0xcd, 0x8e, 0x74, 0xd3, 0x9d, 0xb0, 0x77, 0xd0, 
+	0xfb, 0x9b, 0x86, 0x9d, 0xae, 0xe7, 0x7b, 0xeb, 0xe, 0x7c, 
+	0xf7, 0xee, 0xec, 0x7a, 0xc6, 0x57, 0xe9, 0x5d, 0x67, 0x3a, 
+	0xbd, 0x94, 0xd2, 0xde, 0x9, 0x7f, 0x67, 0xc7, 0x77, 0x7, 
+	0x56, 0x52, 0x79, 0x7f, 0x92, 0xdd, 0xf6, 0xf7, 0xe, 0x54, 
+	0x67, 0xae, 0x59, 0x60, 0xef, 0xda, 0x7f, 0xae, 0x53, 0xf7, 
+	0x7a, 0xef, 0x8d, 0x6b, 0xab, 0x4c, 0x3c, 0xd7, 0xa8, 0x8d, 
+	0x7f, 0xb7, 0xc3, 0x6b, 0x9b, 0xcb, 0xe3, 0x6b, 0xf8, 0x44, 
+	0xf9, 0xeb, 0x89, 0xf8, 0xdc, 0x6d, 0xe7, 0x1c, 0xc3, 0x6e, 
+	0xf2, 0x39, 0x7e, 0x54, 0x9d, 0x3e, 0xf1, 0x87, 0xee, 0x6a, 
+	0x3c, 0x26, 0x59, 0x9f, 0x30, 0x12, 0xef, 0xb3, 0x93, 0x1d, 
+	0xef, 0xe9, 0x52, 0xe6, 0x98, 0xa9, 0x3a, 0x9d, 0x26, 0x76, 
+	0x3c, 0x8c, 0xa9, 0xb2, 0x4, 0x76, 0xcc, 0x76, 0xc7, 0xd6, 
+	0x79, 0x4c, 0xba, 0x3e, 0x8c, 0xbf, 0x16, 0xbb, 0xd8, 0x74, 
+	0x29, 0x73, 0x36, 0x76, 0x41, 0x4c, 0x95, 0x45, 0xb0, 0xd3, 
+	0xf6, 0x62, 0xd, 0xb6, 0xb6, 0xd3, 0x2, 0xc8, 0xce, 0xda, 
+	0x36, 0x66, 0xcd, 0x8d, 0xb2, 0x1a, 0xfe, 0x2b, 0xb6, 0xbb, 
+	0x93, 0x81, 0xae, 0xb, 0x78, 0xe4, 0xe2, 0x64, 0xd7, 0x82, 
+	0x1d, 0x67, 0x9c, 0xeb, 0xc8, 0x2a, 0xde, 0x96, 0x83, 0xad, 
+	0xc9, 0x19, 0x5f, 0x77, 0xca, 0x3b, 0x33, 0xba, 0x83, 0xa3, 
+	0x9, 0x50, 0x76, 0x7a, 0xc, 0xc8, 0xfe, 0x73, 0x46, 0x1c, 
+	0x82, 0xad, 0x6a, 0xc3, 0xbb, 0x63, 0x13, 0x36, 0x67, 0x69, 
+	0xb2, 0x6b, 0x51, 0x67, 0xca, 0x7a, 0x13, 0xc6, 0x7f, 0x30, 
+	0xdb, 0x13, 0xb0, 0x35, 0x39, 0x13, 0xd8, 0x3b, 0xe2, 0xda, 
+	0x3b, 0x38, 0x8a, 0x7, 0xad, 0x5d, 0x23, 0xbb, 0x86, 0x87, 
+	0x2a, 0x8d, 0x10, 0x50, 0x9a, 0x1d, 0xfb, 0x5b, 0x9c, 0xec, 
+	0x76, 0xe9, 0xe, 0x86, 0xe2, 0x50, 0x1, 0x73, 0x24, 0x53, 
+	0x57, 0x83, 0x30, 0x67, 0x2a, 0x76, 0x56, 0x5f, 0xae, 0x52, 
+	0x80, 0x65, 0x52, 0xe3, 0x77, 0x60, 0xdb, 0x4e, 0x77, 0xc0, 
+	0x4, 0x82, 0xb1, 0x3f, 0x96, 0x14, 0xbb, 0x86, 0x88, 0x46, 
+	0x52, 0x5f, 0x27, 0x32, 0x6, 0x4b, 0x90, 0x33, 0x11, 0x3b, 
+	0x68, 0xd7, 0x80, 0xbd, 0x73, 0x9b, 0x9f, 0x44, 0x55, 0x76, 
+	0x60, 0xdb, 0xc6, 0xde, 0x99, 0x32, 0x6a, 0xc6, 0xfe, 0x12, 
+	0x64, 0xe7, 0x59, 0xba, 0x13, 0x10, 0x55, 0xcc, 0xcb, 0x19, 
+	0x9b, 0xdd, 00, 0xed, 0x3f, 0x16, 0xd4, 0x7f, 0x6c, 0x79, 
+	0x35, 0x62, 0x3f, 0x76, 0x4b, 0xf3, 0xef, 0x30, 0x35, 0x24, 
+	0x64, 0x87, 0xec, 0x90, 0x1d, 0xb2, 0xab, 0x61, 0xc7, 0x30, 
+	0xd5, 0xcf, 0x72, 0x47, 0x76, 0xc8, 0xe, 0xeb, 0x4c, 0xac, 
+	0x33, 0x91, 0x1d, 0xb2, 0x43, 0x76, 0xc8, 0xe, 0xd9, 0x21, 
+	0xbb, 0xb9, 0xd9, 0xcd, 0x35, 0xe7, 0x1, 0xd3, 00, 0xec, 
+	0xe0, 0x5c, 0xbf, 0xd5, 0x14, 0xf7, 0xdf, 0x21, 0x9f, 0x61, 
+	0xd9, 0xad, 0xea, 0x9f, 0x22, 0xbb, 0xc5, 0xb3, 0x5b, 0x35, 
+	0x65, 0x20, 0xbb, 0xa5, 0xb3, 0x5b, 0x35, 0xe6, 0x20, 0xbb, 
+	0x24, 0xec, 0xdd, 0x9, 0x68, 0xa2, 0x20, 0xbb, 0x54, 0xd8, 
+	0xc1, 0xe8, 0x6f, 0x2b, 0xf7, 0xf6, 0x12, 0x64, 0x87, 0x6d, 
+	0x15, 0x64, 0x37, 0x92, 0x7f, 0x37, 0x71, 0x4c, 0x2a, 0x64, 
+	0x37, 0xac, 0xee, 0x56, 0xd, 0xcf, 0x91, 0xdd, 0xf2, 0x75, 
+	0xb7, 0x72, 0xc3, 0x9e, 0xa2, 0xee, 0x90, 0x1d, 0xb2, 0xc3, 
+	0x3a, 0x13, 0xd9, 0xed, 0x6a, 0xab, 0xd4, 0xec, 0x21, 0xbb, 
+	0x44, 0x7c, 0x4, 0x5b, 0x7b, 0xee, 0xa5, 0xee, 0x4a, 0x42, 
+	0x48, 0xdd, 0xad, 0x8d, 0x84, 0x24, 0xef, 0x9b, 0xaf, 0xa0, 
+	0x9f, 0xbe, 0x67, 0xec, 0xca, 0xa, 0xcf, 0x6, 0x5c, 0x49, 
+	0x9a, 0x5e, 0xd4, 0x1c, 0xcb, 0x4, 0x75, 0xe7, 0x86, 0xf8, 
+	0xde, 0x33, 0x76, 0xa5, 0x40, 0x52, 0x21, 0xaa, 0xf0, 0x55, 
+	0x4f, 0xcc, 0x96, 0xa8, 0x17, 0x4c, 0x4e, 0x99, 0x18, 0xbb, 
+	0x95, 0x17, 0x5d, 0x65, 0xdf, 0xd8, 0x49, 0x20, 0x44, 0x54, 
+	0x8f, 0xa4, 0xac, 0x74, 0x6, 0xb7, 0x92, 0x9d, 0xda, 0x2f, 
+	0x49, 0x6a, 0xba, 0x33, 0xf5, 0xe5, 0x6a, 0x2f, 0xc7, 0x80, 
+	0x8c, 0xee, 0x36, 0x64, 0x8, 0xf7, 0x1f, 0x8a, 0x9d, 0xd0, 
+	0x60, 0x7a, 0xba, 0x33, 0x91, 0x18, 0x8d, 0xa5, 0xdb, 0x5f, 
+	0x7b, 0xb7, 0x45, 0x77, 0xe9, 0xda, 0x3b, 0x67, 0x9e, 0xca, 
+	0xfe, 0xb6, 0x33, 0xb7, 0xd8, 0xbb, 0x14, 0xfd, 0x3b, 0xa8, 
+	0xb8, 0xd5, 0xc9, 0x21, 0xcd, 0x35, 0x2a, 0xcb, 0x65, 0xf9, 
+	0x7, 0xb1, 0xec, 0x7c, 0x84, 0x7b, 0x3b, 0xc7, 0xaf, 0xc9, 
+	0xbf, 0xe3, 0xb, 0xf6, 0xef, 0xb8, 0xbd, 0xe1, 0xf5, 0x24, 
+	0x36, 0x4a, 0xc7, 0x3e, 0xb1, 0x6b, 0xf2, 0xef, 0x78, 0xb9, 
+	0x60, 0x76, 0xc, 0xb0, 0x63, 0x7, 0xcd, 0xce, 0x10, 0x94, 
+	0xf6, 0x8e, 0x8, 0x23, 0x47, 0xb4, 0xbd, 0x23, 0xda, 0xe, 
+	0x2e, 0x87, 0x1d, 0xe3, 0xf2, 0x9f, 0xbd, 0xa3, 0x5c, 0xe7, 
+	0xdb, 0x78, 0xe, 0x32, 0xee, 0x8a, 0x8c, 0xc1, 0x2, 0x73, 
+	0xf6, 0xb1, 0xad, 0x52, 0xf9, 0x1, 0xaa, 0x9d, 0x29, 0x40, 
+	0x95, 0xc0, 0xbf, 0x23, 0xf3, 0x5b, 0xc0, 0x1a, 0x76, 0x30, 
+	0xb6, 0x83, 0xd6, 0x20, 0x88, 0xa6, 0x22, 0x90, 0x8a, 0x23, 
+	0x9d, 0x9c, 0x3d, 0x6b, 0xab, 0x48, 0x3c, 0x44, 0x7b, 0x73, 
+	0x4a, 0x63, 0x44, 0x7b, 0xee, 0x3a, 0x7f, 0x41, 0x6d, 0x15, 
+	0x5, 0x8f, 0x9b, 0xb0, 0x2a, 0x27, 0x20, 0xda, 0x83, 0xca, 
+	0x67, 0xa, 0x27, 0x77, 0x73, 0xf6, 0xd0, 0xde, 0x95, 0xb2, 
+	0xb6, 0x2c, 0x6d, 0x23, 0xc5, 0xd5, 0xdd, 0xc2, 0xda, 0x99, 
+	0x5c, 0x44, 0xa3, 0xb2, 0x2a, 0xd3, 0xf0, 0x40, 0x44, 0x23, 
+	0x43, 0xd9, 0xcd, 0xd9, 0xc7, 0x76, 0x26, 0x31, 0xde, 0x1c, 
+	0x64, 0x67, 0xec, 0xdd, 0x2, 0xd9, 0xc1, 0xa8, 0x29, 0x26, 
+	0x4a, 0x95, 0x8d, 0xa6, 0x2, 0xa2, 0xb0, 0xc0, 0x9c, 0x3, 
+	0x1a, 0xbf, 0x5b, 0x8a, 0xaf, 0x87, 0xf7, 0x70, 0xa5, 0x9b, 
+	0x90, 0x1d, 0xb2, 0x43, 0x76, 0xc8, 0xe, 0xd9, 0x21, 0x3b, 
+	0x64, 0x87, 0xec, 0x90, 0x1d, 0xb2, 0x43, 0x76, 0x98, 0x92, 
+	0x64, 0x47, 0xec, 0xac, 0x11, 0x93, 0xb5, 0xfb, 0xeb, 0x65, 
+	0x9b, 0x54, 0x6c, 0xfe, 0xc8, 0x7d, 0x9d, 0x19, 0x7f, 0x99, 
+	0xa, 0x59, 0xce, 0x40, 0x29, 0xab, 0xa, 0xe4, 0xad, 0xce, 
+	0x26, 0x1b, 0x86, 0x1d, 0x6d, 0x48, 0x53, 0xb1, 0x2b, 0x39, 
+	0x71, 0x66, 0xf8, 0xb4, 0x99, 0xed, 0xb3, 0xb9, 0xe0, 0xd5, 
+	0x55, 0x2a, 0xe4, 0xf5, 0xd7, 0x1c, 0x3a, 0x5c, 0xed, 0xa2, 
+	0xd3, 0xdb, 0x1a, 0x81, 0x14, 0xe6, 0x97, 0x50, 0x6c, 0xff, 
+	0x4d, 0x14, 0x3, 0xb1, 0x53, 0xef, 0x30, 0x49, 0x3d, 0x9f, 
+	0x88, 0x5d, 0x35, 0x24, 0xc3, 0x65, 0xe7, 0xbd, 0x1a, 0x53, 
+	0x6b, 0xd1, 0xa3, 0x28, 0xaf, 0xb9, 0x52, 0x5c, 0xa6, 0x15, 
+	0x24, 0xb6, 0x95, 0x1c, 0x8b, 0x2c, 0x6b, 0xad, 0x94, 0xcd, 
+	0x65, 0x94, 0xc7, 0xab, 0x87, 0x2c, 0x41, 0x6c, 0xa3, 0x4b, 
+	0x93, 0xc0, 0x74, 0x9, 0x5c, 0x97, 0x10, 0x9e, 0x5b, 0x36, 
+	0x94, 0xee, 0x38, 0x44, 0xa6, 0x21, 0x4e, 0xcb, 0x4e, 0xcd, 
+	0xc1, 0x2b, 0xcb, 0x96, 0xb3, 0xec, 0x64, 0x9d, 0x59, 00, 
+	0x76, 0x59, 0x51, 0x3d, 0x53, 0xdb, 0xd6, 0xf5, 0xa0, 0xbc, 
+	0x8c, 0xf2, 0x78, 0xc5, 0xe, 0x96, 0x13, 0x5b, 0x9a, 0x3c, 
+	0x52, 0xbc, 0x4b, 0x61, 0x6c, 0x28, 0xad, 0xc8, 0x86, 0xd3, 
+	0x1d, 0xa5, 0x16, 0x9a, 0x7e, 0x36, 0x11, 0x3b, 0xd9, 0x73, 
+	0xf, 0x66, 0x48, 0xb6, 0xb2, 0x77, 0x12, 0x1c, 0x64, 0xa7, 
+	0x55, 0x23, 0xae, 0x52, 0x9c, 0x85, 0x92, 0xc7, 0x67, 0xe1, 
+	0x23, 0xb6, 0xb4, 0xc2, 0xaa, 0x4c, 0xdb, 0xe2, 0xcc, 0x2f, 
+	0xb3, 0x18, 0xd4, 0xde, 0x71, 0x41, 0x4c, 0x6e, 0xb8, 0xa1, 
+	0x37, 0x19, 0x3b, 0x6e, 0x6, 0x41, 0xd5, 0xd8, 0x59, 0x7b, 
+	0x7b, 0x57, 0xa7, 0xbb, 0xa8, 0x46, 0x8b, 0xaa, 0x7b, 0x39, 
+	0xaf, 0xd7, 0x48, 0x6c, 0x69, 0x42, 0x6d, 0xf2, 0xbd, 0x5c, 
+	0xeb, 0xce, 0x2f, 0x99, 0xf, 0xcd, 0x8e, 0xeb, 0xff, 0xd4, 
+	0x3c, 0x9b, 0x8e, 0x5d, 0xa9, 0xfe, 0xeb, 0xb1, 0xb3, 0x16, 
+	0x43, 0x31, 0xb0, 0x9d, 0xe9, 0xd9, 0xbb, 0xa8, 0xab, 0x2d, 
+	0xdb, 0x99, 0x19, 0xb7, 0x25, 0x78, 0xf6, 0x2e, 0x92, 0x5d, 
+	0xf5, 0x4b, 0x28, 0xb4, 0xa9, 0xe3, 0xba, 0x4, 0xc7, 0xde, 
+	0xd, 0xdd, 0xce, 0x84, 0x2d, 0x15, 0xaa, 0x9f, 0x1f, 0xa6, 
+	0x7f, 0xa7, 0xea, 0xcf, 0x62, 0xd0, 0x42, 0x8b, 0xa8, 0xc6, 
+	0x6c, 0x24, 0x3b, 0x59, 0x51, 0xca, 0x87, 0x12, 0x1f, 0x45, 
+	0xdf, 0x7c, 0xf9, 0xbe, 0x79, 0x28, 0x3b, 0x99, 0x83, 0xec, 
+	0x92, 0x60, 0xa7, 0x65, 0xe7, 0x8, 0xf, 0xd9, 0xa5, 0xc2, 
+	0x4e, 0xd6, 0x9c, 0x66, 0x7, 0xd9, 0xa5, 0xc3, 0x2e, 0xa8, 
+	0x34, 0x91, 0x5d, 0x32, 0xf6, 0xe, 0xd4, 0x99, 0x1c, 0x75, 
+	0x87, 0x75, 0x26, 0xb2, 0xc3, 0x3a, 0xf3, 0xe0, 0xd8, 0xc1, 
+	0x71, 0x9c, 0x36, 0x3e, 0x2, 0x7, 0x3e, 0x1e, 0xfa, 0x8, 
+	0xf3, 0xb2, 0x6b, 0x3f, 0xba, 0x4a, 0x9d, 0x4a, 0x93, 0x6b, 
+	0xd9, 0x21, 0xbb, 0x44, 0xd8, 0xd9, 0xee, 0x4c, 0xdb, 0x33, 
+	0x8d, 0xec, 0x12, 0x60, 0xc7, 0xfd, 0x9e, 0x95, 0x29, 0xfb, 
+	0xa2, 0x31, 0xf5, 0x65, 0xa7, 0xbb, 0x32, 0xc1, 0x78, 0x10, 
+	0xb2, 0x4b, 0x82, 0x9d, 0x19, 0xb4, 0x33, 0x63, 0xaf, 0x94, 
+	0x23, 0xbb, 0x64, 0x74, 0x37, 0xdb, 0x9c, 0x7, 0x4c, 0x3d, 
+	0x75, 0xc7, 0x7d, 0x7b, 0xc7, 0x51, 0x77, 0xa9, 0xb4, 0x33, 
+	0x67, 0x9c, 0xe3, 0x27, 0xd7, 0x64, 0x67, 0x84, 0xf8, 0x4b, 
+	0xd2, 0x13, 0xbb, 0x25, 0x30, 0x27, 0xf9, 0x64, 0xd6, 0xa0, 
+	0xdf, 0xc1, 0xce, 0x74, 0x73, 0x51, 0xb7, 0xf7, 0x84, 0xd3, 
+	0xb6, 0x69, 0x1a, 0x76, 0x1b, 0x70, 0xcc, 0x45, 0xc3, 0x24, 
+	0x4b, 0x6, 0xa0, 0xb1, 0x3, 0x63, 0x97, 0x3, 0x76, 0x39, 
+	0x60, 0x97, 0x2f, 0x8c, 0x9d, 0xe2, 0x55, 0x1, 0x23, 0x7a, 
+	0x5b, 0xe5, 0x2b, 0xdd, 0x55, 0x60, 0xc9, 0x81, 0xe9, 0x2e, 
+	0xe7, 0xf2, 0x5f, 0xc5, 0x8a, 0x73, 0x4b, 0x4c, 0xee, 0x57, 
+	0x2f, 0x50, 0xaa, 0x5e, 0xcd, 0xab, 0xbd, 0x9c, 0xc3, 0x9c, 
+	0x6a, 0x7f, 0x4a, 0x76, 0x84, 0x9, 0x46, 0x62, 0x2b, 0x75, 
+	0x27, 0xc5, 0x48, 0xc4, 0x13, 0x76, 0x90, 0xec, 0x78, 0x9e, 
+	0x57, 0xde, 0xb6, 0xd8, 0x6a, 0xdd, 0x89, 0x1c, 0x29, 0x4b, 
+	0xb1, 0x6f, 0x8e, 0xf4, 0x5e, 0x9d, 0x94, 0x1d, 0x78, 0x38, 
+	0xf6, 0x8e, 0xb0, 0x3, 0xb4, 0x77, 0x1a, 0x9, 0x98, 0x42, 
+	0xa4, 0xed, 0x1d, 0xd7, 0x35, 0xa7, 0xdc, 0xf7, 0x14, 0x6a, 
+	0x5e, 0x9d, 0xd2, 0xde, 0x29, 0xdd, 0x99, 0x2c, 0xc3, 0x4e, 
+	0x8a, 0xf0, 0xd0, 0xd8, 0x55, 0x35, 0x1f, 0x85, 0x6a, 0x72, 
+	0x74, 0x7, 0xf6, 0x25, 0x3c, 0xaa, 0x15, 0x6a, 0xcc, 0xe4, 
+	0x94, 0xed, 0x4c, 0x65, 0xef, 0x74, 0x16, 0x68, 0x67, 0x32, 
+	0x72, 0xa8, 0xec, 0x72, 0xdd, 0x73, 0xe2, 0xdb, 0x3b, 0xb1, 
+	0x9f, 0xab, 0x7c, 0x41, 0x99, 0x4b, 0xbb, 0xc7, 0x27, 0x66, 
+	0x77, 0x48, 0xa9, 0x3d, 0xbb, 0xbe, 0x69, 0x9, 0xbe, 0x79, 
+	0x8d, 0xf7, 0x27, 0xaf, 0x2, 0xd9, 0x75, 0x8d, 0xea, 0x9f, 
+	0x98, 0xe4, 0x4c, 0x9e, 0x6f, 0x3a, 0x8c, 0xb4, 0xfa, 0x80, 
+	0xfa, 0x32, 0xc7, 0xf6, 0xcd, 0x17, 0x7d, 0xdf, 0x6b, 0xb9, 
+	0x49, 0x35, 0xde, 0x9f, 0xf6, 0x1, 0x5b, 0xb3, 0xab, 0xf5, 
+	0xd, 0x8b, 0x12, 0x7e, 0x4a, 0x23, 0xbb, 0x6, 0xbf, 0x92, 
+	0xd5, 0xbe, 0x50, 0x20, 0x3b, 0xc3, 0x4e, 0x5f, 0x51, 0x6d, 
+	0xd, 0xcd, 0xd6, 0x58, 0x40, 0xe3, 0x15, 0x12, 0x9d, 0x2f, 
+	0xb7, 0xda, 0x2b, 0x94, 0xaf, 0x4a, 0x9d, 0x82, 0xf7, 0x3a, 
+	0xec, 00, 0x6f, 0xef, 0x18, 0xfd, 0x2e, 0x99, 0xbf, 0x69, 
+	0x35, 0xc1, 0x7c, 0xdb, 0x36, 0x66, 0x41, 0x99, 0xc8, 0xae, 
+	0x34, 0x57, 0xd4, 0xf1, 0xfe, 0xe4, 0x56, 0xb7, 0x42, 0xad, 
+	0xfe, 0x36, 0xfb, 0x60, 0x2b, 0xaf, 0xb6, 0xf4, 0x16, 0x7d, 
+	0xff, 0xb1, 0x91, 0x9d, 0x77, 0x8c, 0xd9, 0x97, 0xf9, 0x40, 
+	0x6b, 0xa6, 0xf1, 0xeb, 0xe4, 0x23, 0xbb, 0x80, 0x5d, 0xe5, 
+	0x41, 0xac, 0xfd, 0x87, 0xf6, 0xfe, 0xac, 0x16, 0xa0, 0x36, 
+	0x9, 0xb8, 0xb6, 0xa6, 0x5f, 0xd4, 0xbe, 0x37, 0x60, 0x47, 
+	0x54, 0x8b, 0x96, 0x38, 0xc7, 0xe8, 0x7d, 0x95, 0xcf, 0xfc, 
+	0x4a, 0x59, 0xeb, 0xe, 0xeb, 0xcc, 0x6, 0x76, 0xd0, 0xfb, 
+	0xab, 0xd3, 0x1d, 0x30, 0x42, 0x40, 0x23, 0xc, 0x78, 0x1c, 
+	0xce, 0x75, 0xae, 0xd7, 0x5d, 0xf8, 0x29, 0x90, 0x9d, 0xf1, 
+	0x3d, 0x3d, 0x43, 0xe8, 0xe7, 0x23, 0x3b, 0x97, 0x1d, 0xf4, 
+	0xfe, 0x6a, 0xed, 0xdd, 0xda, 0xb5, 0x4d, 0x6a, 0xbb, 0x66, 
+	0xa4, 0x8e, 0x9d, 0x7a, 0x6f, 0xb1, 0x49, 0x65, 0xed, 0xa7, 
+	0x10, 0xcf, 0xde, 0x41, 0xdd, 0x5, 0x4d, 0x25, 0x27, 0x1f, 
+	0x96, 0x89, 0xec, 0x9a, 0x1a, 0x91, 0xac, 0x47, 0xef, 0xa6, 
+	0x78, 0x6f, 0x29, 0x52, 0xe3, 0xa7, 0x74, 0x2a, 0xdf, 0x29, 
+	0x13, 0xd9, 0x45, 0xa7, 0xac, 0xe7, 0x1b, 0xb2, 0x5e, 0x85, 
+	0x4d, 0x3d, 0xf6, 0xba, 0x57, 0xec, 0x8a, 0xd8, 0x3b, 0x56, 
+	0x8b, 0x6d, 0xec, 0x8a, 0xc5, 0xb3, 0x93, 0x2b, 0xc8, 0xac, 
+	0x56, 0x76, 0x2d, 0x99, 0x55, 0xb2, 0x6b, 0x86, 0x66, 0xf2, 
+	0xae, 0x7c, 0x6e, 0xc2, 0x61, 0xc0, 0x48, 0x29, 0x4e, 0xbc, 
+	0x14, 0x10, 0xf9, 0x44, 0x53, 0x94, 0x31, 0x19, 0xa, 0x70, 
+	0xd7, 0xb9, 0x28, 0x32, 0x38, 0x72, 0x49, 0xec, 0xec, 0x8a, 
+	0x32, 0xa9, 0xaf, 0xe5, 0x54, 0x88, 0x30, 0x19, 0x85, 0xa, 
+	0x96, 0x51, 0x6c, 0x8b, 0x97, 0x2, 0x72, 0x34, 0x76, 0x19, 
+	0x93, 0x41, 0xf2, 0x2d, 0x4c, 0x80, 0xa9, 0x2c, 0x38, 0x72, 
+	0x59, 0xba, 0x73, 0x65, 0x97, 0x6e, 0x9d, 0x99, 0xe9, 0x90, 
+	0x28, 0x99, 0xd5, 0x91, 0x7a, 0x14, 0x6e, 0xbc, 0x14, 0xf8, 
+	0xaa, 0xd1, 0x5d, 0xc1, 0x9d, 0x38, 0x39, 0x4e, 0xe4, 0x96, 
+	0xe9, 0xac, 0x5f, 0xac, 0xee, 0x7c, 0xd9, 0x25, 0xaa, 0x3b, 
+	0x1d, 0x67, 0xcc, 0x6a, 0xc7, 0x8b, 0x56, 0x64, 0x2c, 0x5a, 
+	0x8d, 0x9a, 0x54, 0x8e, 0x8a, 0xa4, 0xe1, 0xb3, 0x5b, 0xae, 
+	0xee, 0x56, 0x7b, 0xa2, 0x3b, 0xf0, 0x1f, 0x2a, 0xab, 0x8, 
+	0xe2, 0xa5, 0x98, 0x98, 0x27, 0x19, 0xd0, 0x6c, 0x61, 0xec, 
+	0x5d, 0xc0, 0x6e, 0xc1, 0xf6, 0xae, 0x9, 0x1d, 0xce, 0xcf, 
+	0x74, 0x54, 0xb9, 0x40, 0xdd, 0x1, 0xd9, 0xd9, 0xa6, 0x66, 
+	0x2c, 0xbb, 0x6a, 00, 0x37, 0xaf, 0xfe, 0x54, 0x74, 0xaa, 
+	0xa4, 0x51, 0x89, 0x1c, 0xb5, 0x15, 0x7f, 0xe6, 0x60, 0x97, 
+	0xd5, 0x66, 0x64, 0x6e, 0x4, 0xce, 0xf9, 0x7c, 0xba, 0x1e, 
+	0xba, 0x5b, 0x41, 0x5f, 0xa1, 0xa3, 0xee, 0x36, 0xe0, 0x4, 
+	0x18, 0xcd, 0x28, 0x37, 0x32, 0xa3, 0x76, 0x9b, 0xd3, 0x85, 
+	0xb0, 0x2b, 0x40, 0x3c, 0x3d, 0x47, 0x51, 0x45, 0x72, 0xec, 
+	0x56, 0x60, 0x85, 0xec, 0xee, 0x75, 0x66, 0xc5, 0x4e, 0xab, 
+	0xcc, 0xa0, 0x83, 0xba, 0xdb, 0x64, 0xcf, 0xc8, 0xe, 0x7a, 
+	0x6a, 0xca, 0x7c, 0xc1, 0x68, 0x72, 0x4d, 0x3e, 0x5d, 0x64, 
+	0x14, 0xcd, 0x89, 0xd9, 0x35, 0xb6, 0x54, 0xe2, 0xd8, 0x49, 
+	0x60, 0x4a, 0x65, 00, 0x1e, 0x35, 0x5b, 0x9a, 0x57, 0xc7, 
+	0xcc, 0xc6, 0xe, 0xb4, 0x36, 0xb, 0x13, 0x78, 0x91, 0x3b, 
+	0x91, 00, 0x6b, 0x7c, 0xba, 0xc8, 0x28, 0x9a, 0x49, 0xb2, 
+	0x53, 0x5a, 0xa3, 0x50, 0x6d, 0x3e, 0x3b, 0x61, 0x7, 0x67, 
+	0x63, 0x7, 0xda, 0x9c, 0x90, 0x1a, 0x6c, 0x4f, 0x86, 0x3e, 
+	0x5d, 0x11, 0x19, 0x45, 0x73, 0xe2, 0xfe, 0xcc, 0x66, 0x74, 
+	0x51, 0x6d, 0x95, 0x1c, 0xe8, 0xab, 0x9e, 0x9d, 0x3c, 0x6a, 
+	0x5e, 0x76, 0x1c, 0xc4, 0xb7, 0xdc, 0xc1, 0x2e, 0x8c, 0x7b, 
+	0xb9, 0x38, 0x76, 0xab, 0x41, 0xd8, 0xe9, 0xb6, 0x25, 0xb5, 
+	0x6d, 0x4e, 0x87, 0x1a, 0x35, 0x20, 0xe7, 0x65, 0x97, 0xc1, 
+	0xb0, 0xbf, 0x5b, 0xd9, 0x41, 0x1f, 0x70, 0xf1, 0xec, 0x6a, 
+	0xf8, 0x1d, 0xb4, 0x7f, 0x37, 0x9d, 0x4f, 0xd7, 0x6b, 0xc, 
+	0xa8, 0x7f, 0xbf, 0xca, 0x92, 0xfd, 0xbb, 0x70, 0x1d, 0x84, 
+	0x6c, 0xbb, 0x2f, 0x31, 0xa7, 0x97, 0x37, 0x43, 0x9f, 0xd8, 
+	0x92, 0xfd, 0xbb, 0x70, 0x1d, 0x84, 0xed, 0xec, 0x8a, 0xac, 
+	0x48, 0x84, 0x9d, 0x57, 0x6d, 0xee, 0xa1, 0x7f, 0xa7, 0x1a, 
+	0x26, 0x70, 0x85, 0x2, 0x6e, 0x47, 0xfa, 0x8a, 0x30, 0x3f, 
+	0xcb, 0xe6, 0xe8, 0xc9, 0xec, 0x38, 0x6, 0x64, 0xf0, 0xed, 
+	0xa5, 0x7f, 0xa7, 0x62, 0x7a, 0x3, 0x4f, 0x4d, 0xc7, 0xc3, 
+	0x2f, 0x9a, 0xf2, 0xe7, 0x18, 0x41, 0xe8, 0x3b, 0xf6, 0xba, 
+	0xda, 0x4f, 0xff, 0x4e, 0xc5, 0xd2, 0xcf, 0xac, 0x6, 0x55, 
+	0x50, 0x6f, 0x6f, 0x1d, 0x84, 0xc, 0xf8, 0xe, 0x93, 0x8f, 
+	0xdc, 0x75, 0xd2, 0xdd, 0xaa, 0xd1, 0x51, 0xd8, 0xf, 0xff, 
+	0x4e, 0xad, 0x83, 00, 0x3c, 0xb5, 0x4c, 0x77, 0x68, 0x16, 
+	0xfe, 0xb8, 0x9e, 0x92, 0x1f, 0x9f, 0x61, 0xc4, 0xbc, 0xa3, 
+	0xee, 0x3c, 0xe1, 0xad, 0xf6, 0xcb, 0xbf, 0x53, 0x75, 0xa6, 
+	0xb3, 0xa8, 0x82, 0x75, 0xf0, 0xe0, 0xb8, 0x5e, 0xa6, 0x17, 
+	0x36, 0xa8, 0x1d, 0xe3, 0x5b, 0xa4, 0xee, 0x74, 0x5f, 0x74, 
+	0xa0, 0xbd, 0x7d, 0xf2, 0xef, 0xa2, 0x1b, 0x8f, 0xa0, 0x3f, 
+	0x73, 0xc9, 0xfe, 0x5d, 0xff, 0x39, 0x7e, 0xdd, 0xfc, 0xbb, 
+	0x92, 0xc8, 0x55, 0xd4, 0xb6, 0x25, 0x2, 0xb6, 0x3b, 0xe, 
+	0x6a, 0xb5, 0x9a, 0x50, 0x9b, 0x62, 0x5a, 0x97, 0x5c, 0xd6, 
+	0x2f, 0x1b, 0x26, 0xbf, 0x57, 0xbb, 0xf, 0xd8, 0xcd, 0x8e, 
+	0x9b, 0x8d, 0xf9, 0x23, 0xf7, 0xb9, 0x9f, 0xc5, 0x27, 0xf4, 
+	0xef, 0x36, 0x5f, 0xb0, 0x5a, 0x43, 0x6d, 0xfb, 0xf5, 0x6c, 
+	0xb3, 0x4c, 0x50, 0xa9, 0xaf, 0xd9, 0xe0, 0xec, 0xb6, 0x96, 
+	0xdc, 0xb4, 0x6a, 0x98, 0xfc, 0x5e, 0xcd, 0xe7, 0x19, 0xc9, 
+	0x8e, 0x1, 0x76, 0xcc, 0xe6, 0x33, 0x99, 0xc7, 0xfa, 0xb2, 
+	0xeb, 0xe6, 0xdf, 0x29, 0x2e, 0xe2, 0x8b, 0x12, 0x2f, 0xbf, 
+	0x5a, 0x5e, 0x4d, 0xad, 0x88, 0x67, 0xb6, 0x30, 0xc7, 0xfe, 
+	0xc2, 0xe5, 0x82, 0x50, 0x7a, 0x5f, 0x1d, 0x3, 0x14, 0x51, 
+	0x73, 0xbc, 0xb8, 0xb6, 0xa5, 0x5b, 0x32, 0xd1, 0x67, 0xc2, 
+	0x61, 0xce, 0xae, 0x92, 0xb9, 0xce, 0x81, 0x9f, 0x62, 0x7e, 
+	0x6f, 0xf6, 0x53, 0xca, 0xfa, 0xd2, 0xda, 0xb0, 0x63, 0x5c, 
+	0xfe, 0xab, 0xb8, 0x71, 0xe, 0xe8, 0x71, 0xab, 0x3e, 0x99, 
+	0xcf, 0x5, 0xcf, 0xcd, 0x91, 0x7c, 0x7c, 0xff, 0x4e, 0xd5, 
+	0x99, 0xc1, 0xcf, 0xb7, 0x24, 0x92, 0x9c, 0x60, 0xda, 0xb0, 
+	0xd5, 0x57, 0xa9, 0x34, 0xaa, 0x70, 0x8e, 0x1, 0x45, 0xd6, 
+	0x1d, 0x5f, 0x8a, 0xcf, 0x75, 0xca, 0x94, 0x14, 0xc4, 0xcb, 
+	0x36, 0x67, 0x7b, 0xc9, 0x6a, 0xe5, 0x3e, 0xb0, 0x7e, 0x1f, 
+	0xfc, 0x5e, 0xce, 0xa7, 0x90, 0xfa, 0xd2, 0xda, 0xb3, 0xe3, 
+	0xac, 0xe2, 0x22, 0xb7, 0x90, 0x9d, 0x7c, 0xae, 0x5f, 0x15, 
+	0x4, 0x19, 0x9b, 0xc6, 0xbf, 0x13, 0xeb, 0x4e, 0x96, 0xbc, 
+	0x96, 0x1d, 0xb1, 0xeb, 0xc1, 0xaa, 0x7, 0xf1, 0x57, 0x88, 
+	0x55, 0xbf, 0x5e, 0xa2, 0x6a, 0x3c, 0xfb, 0x28, 0x9d, 0x9a, 
+	0x30, 0x38, 0xbe, 0xf4, 0x4a, 0xd3, 0x1a, 0x2c, 0x7d, 0x5d, 
+	0x6c, 0x2d, 0x59, 0xbd, 0x5a, 0xfa, 0x9f, 0xa2, 0x30, 0xc1, 
+	0x4f, 0x29, 0xc1, 0xf1, 0xe0, 0xbb, 0xb4, 0x6a, 0xab, 0x28, 
+	0x78, 0x95, 0x9a, 0x38, 0xac, 0x18, 0xb9, 0x63, 0xe, 0xab, 
+	0x87, 0x10, 0xa5, 0x54, 0xe8, 0xd8, 0xfe, 0x9d, 0xb2, 0x77, 
+	0x65, 0x3, 0xbc, 0xb2, 0xe4, 0xbc, 0x4e, 0x1d, 0xf0, 0x2a, 
+	0xc9, 0x5f, 0x6f, 0xa8, 0xe, 0xe7, 0x53, 0x4a, 0xff, 0xf8, 
+	0x52, 0xd6, 0x63, 0xa0, 0x34, 0xf5, 0x5e, 0x95, 0x4f, 0xda, 
+	0x95, 0x6c, 0x58, 0x78, 0x67, 0xa5, 0xec, 0x9d, 0xfb, 0x29, 
+	0x3c, 0x28, 0xad, 0x75, 0x3b, 0x73, 0x43, 0x4e, 0xa9, 0x29, 
+	0xd4, 0x9d, 0xc3, 0x8e, 0x49, 0x78, 0x8c, 0x8f, 0xef, 0xdf, 
+	0xe9, 0x76, 0x66, 0x70, 0x4d, 0xb8, 0x5c, 0x4b, 0x94, 0xf0, 
+	0xc0, 0xde, 0xf9, 0x57, 0x9, 0xa8, 0xc3, 0xb1, 0x4a, 0xb0, 
+	0x2c, 0x68, 0x89, 0x88, 0x51, 0x89, 0x53, 0x9a, 0xfa, 0x14, 
+	0x75, 0xc9, 0x81, 0xfd, 0xda, 0x5a, 0x72, 0x13, 0xbb, 0x12, 
+	0xbc, 0xb9, 0x84, 0xcb, 0x69, 0xba, 0xa5, 0x45, 0xb1, 0x63, 
+	0xc2, 0xb0, 0x85, 0xf6, 0xce, 0x61, 0x27, 0x6a, 0x50, 0x1e, 
+	0xa9, 0xbb, 0x25, 0xfb, 0x77, 0xa4, 0xe4, 0xcb, 0x4a, 0xe5, 
+	0x96, 0xf6, 0xf0, 0xc1, 0xde, 0x7f, 0xb7, 0x7, 0x9, 0xd9, 
+	0x21, 0x3b, 0x64, 0x87, 0xec, 0x90, 0x1d, 0xb2, 0x43, 0x76, 
+	0xc8, 0xe, 0xd9, 0x21, 0xbb, 0xf4, 0xd9, 0xc5, 0x26, 0xe4, 
+	0xb3, 0x18, 0x76, 0xb1, 0x9, 0xd9, 0x21, 0x3b, 0x64, 0xe7, 
+	0x4e, 0x69, 0xf7, 0xa7, 0x1c, 0x21, 0xbb, 0x65, 0xb3, 0x53, 
+	0x37, 0x2e, 0xdb, 0x5b, 0x98, 0x23, 0xef, 0x59, 0x46, 0x76, 
+	0x73, 0xb2, 0x5b, 0xd9, 0xb9, 0xd1, 0x8a, 0x1e, 0xb2, 0x4b, 
+	0x84, 0x9d, 0x3f, 0x29, 0xb3, 0x9a, 0x30, 0x86, 0xec, 0x12, 
+	0x61, 0xe7, 0xdf, 0x90, 0x80, 0xec, 0x92, 0x69, 0xab, 0x6c, 
+	0xc9, 0x43, 0x76, 0x4b, 0x67, 0x17, 0x34, 0x32, 0x91, 0x5d, 
+	0x42, 0xed, 0xcc, 0xa6, 0x4c, 0x64, 0xb7, 0xf8, 0xb6, 0x4a, 
+	0x28, 0x3c, 0x64, 0x87, 0xba, 0x43, 0x76, 0x53, 0xea, 0xe, 
+	0xd9, 0x25, 0xac, 0x3b, 0xec, 0x13, 0x4b, 0x53, 0x77, 0xfe, 
+	0xbd, 0xcb, 0xc8, 0x2e, 0x21, 0xdd, 0x61, 0x5f, 0x74, 0x72, 
+	0xfd, 0x99, 0x9e, 0xea, 0x90, 0x5d, 0x7a, 0xfd, 0x2a, 0xa6, 
+	0x37, 0x1a, 0xd9, 0x25, 0xc3, 0xe, 0xc8, 0xe, 0xfb, 0xc4, 
+	0x52, 0xeb, 0x8b, 0x76, 0x64, 0x87, 0xec, 0x52, 0x6a, 0x67, 
+	0x82, 0x50, 0x1, 0xc8, 0x2e, 0xb5, 0xb6, 0x8a, 0xeb, 0xd9, 
+	0xa1, 0xbd, 0x4b, 0xc9, 0x47, 0x58, 0x79, 0xd1, 0x8d, 0x90, 
+	0x5d, 0x22, 0x6d, 0x15, 0x9c, 0x6b, 0x94, 0x2a, 0x3b, 0x9c, 
+	0xe3, 0xb7, 0x48, 0x76, 0x9c, 0xd7, 0x87, 0x59, 0x41, 0x76, 
+	0xcb, 0x67, 0xc7, 0x78, 0x4d, 0xc0, 00, 0x64, 0xb7, 0x70, 
+	0x76, 0x32, 0x4a, 0xc3, 0x9, 0x88, 0x9a, 0x62, 0x22, 0xab, 
+	00, 0x8e, 0x9c, 0x9b, 0x7c, 0x71, 0x23, 0xfa, 0x66, 0x4f, 
+	0xde, 0x93, 0x6e, 0x72, 0x90, 0xdd, 0xf4, 0xec, 0x54, 0x24, 
+	0x7, 0x27, 0x6a, 0x8a, 0x8c, 0x78, 0x3, 0x82, 0x4, 0x80, 
+	0x98, 0xf, 0x3a, 0x2e, 0x47, 0xf5, 0x3a, 0xcc, 0x41, 0x76, 
+	0x33, 0xb0, 0x93, 0x2, 0x73, 0xa2, 0xa6, 0xd8, 0x1c, 0xa3, 
+	0x3b, 0xa6, 0xf3, 0x15, 0x52, 0xce, 0xb8, 0x9b, 0x83, 0xec, 
+	0x66, 0xd1, 0x5d, 0x10, 0x35, 0x45, 0xe6, 0xc0, 0x50, 0x62, 
+	0xcc, 0xe4, 0x73, 0x60, 0xe, 0x61, 0xe, 0xb2, 0x9b, 0xc5, 
+	0xde, 0x79, 0xec, 0x54, 0xe, 0xc, 0x8a, 0xa3, 0xed, 0x20, 
+	0x90, 0x23, 0x3f, 0x71, 0x73, 0x90, 0xdd, 0xfe, 0xf9, 0x77, 
+	0x34, 0xaf, 0xd2, 0xb1, 0x48, 0x22, 0x8a, 0x91, 0xdc, 0x3d, 
+	0xa6, 0xf4, 0xd8, 0x4b, 0x79, 0x90, 0x62, 0xd8, 0x8d, 0x1d, 
+	0x76, 0x54, 0x2e, 0xb4, 0xc5, 0xcd, 0x76, 0xfb, 0x7, 0x86, 
+	0xeb, 0x2c, 0xa8, 0x52, 0xb2, 0xa4, 0xd8, 0x49, 0x30, 0xd5, 
+	0x2d, 0xc8, 0xc7, 0x1b, 0x70, 0xb9, 0x46, 0x96, 0x7, 0xec, 
+	0xc2, 0x14, 0xc1, 0x6e, 0xec, 0x85, 0xa, 0x54, 0x54, 0x76, 
+	0xb9, 0xbb, 0xfb, 0x3, 0xc3, 0x75, 0x16, 0x74, 0x31, 0x9, 
+	0xea, 0x8e, 0x9, 0x16, 0x5a, 0x72, 0xb9, 0x7e, 0x92, 0x5b, 
+	0x21, 0xf6, 0xd3, 0x5d, 0x6, 0x57, 0x1b, 0x7, 0x6b, 0x94, 
+	0xbb, 0x2b, 0xd9, 0x99, 0xd5, 0xd, 0xa, 0x98, 0xf, 0xd6, 
+	0x31, 0xaf, 0x8e, 0xd1, 0x50, 0x9c, 0xe8, 0x79, 0x59, 0x1, 
+	0x43, 0x45, 0x73, 0xb3, 0x2e, 0x9e, 0x56, 0x99, 0xf7, 0x5e, 
+	0x11, 0x82, 0xd8, 0x59, 0x2d, 0xbd, 0xc8, 0x6c, 0xb0, 0xe9, 
+	0x2, 0x88, 0xb2, 0x21, 0x46, 0xdf, 0xa2, 0x74, 0x7, 0xd8, 
+	0xe5, 0x42, 0x73, 0xe2, 0x9, 0xcd, 0xb7, 0xe9, 0x8f, 0xc6, 
+	0xc8, 0xc2, 0xae, 0x5f, 0x50, 0xb7, 0xe5, 0xdc, 0x5b, 0xdd, 
+	0xa0, 0x79, 0x1d, 0xf3, 0x3a, 0x6d, 0x14, 0x66, 0x59, 0x65, 
+	0x7b, 0xfd, 0xb, 00, 0xd6, 0x7f, 0xaf, 0x28, 0xb6, 0xe6, 
+	0x4c, 0xe0, 0xa, 0x7a, 0x29, 0xea, 0xae, 0xb2, 0x7a, 0x86, 
+	0xdd, 0xe6, 0xe9, 0x10, 0xba, 0x93, 0xeb, 0x95, 0x67, 0xbc, 
+	0xfe, 0x51, 0x64, 0x76, 0x3d, 0x6b, 0xb3, 0xac, 0x41, 0xe6, 
+	0xe6, 0x80, 0xd5, 0x96, 0xb3, 0xa6, 0xf2, 0xc3, 0xb5, 0xf0, 
+	0x2c, 0x29, 0xf7, 0xbd, 0x19, 0x5c, 0x67, 0x1, 0xae, 0x9e, 
+	0xa0, 0x35, 0x9b, 0xa5, 0x64, 0xef, 0xa4, 0xca, 0x2a, 0x33, 
+	0x47, 0x47, 0xd0, 0x9d, 0x5a, 0xd7, 0xc0, 0x21, 0x2, 0xd6, 
+	0xb0, 0xe, 0xd6, 0xa7, 0xcb, 0x9a, 0x72, 0x9a, 0xd8, 0x15, 
+	0xbc, 0xf0, 0xd9, 0x5, 0xba, 0x83, 0xec, 0xe0, 0x3a, 0xb, 
+	0x75, 0xba, 0x4b, 0xce, 0xde, 0xc9, 0x76, 0x26, 0xd4, 0xdd, 
+	0x50, 0xf6, 0x4e, 0x5e, 0x96, 0x46, 0xad, 0x1, 0xdb, 0x97, 
+	0x1, 0xb, 0x5, 0x57, 0xac, 0xdb, 0xa1, 0x3b, 0xe, 0xd6, 
+	0x1d, 0xc9, 0xfc, 0x66, 0x7, 0xf8, 0xac, 0xc, 0xb6, 0x33, 
+	0xb7, 0xd8, 0xbb, 0x34, 0xd8, 0x89, 0x28, 0x37, 0xc7, 0x2d, 
+	0xd2, 0xd8, 0xb1, 0x71, 0x6a, 0x1a, 0x86, 0x53, 0xae, 0x68, 
+	0x30, 0xfc, 0x67, 0x4d, 0xc4, 0x2e, 0x26, 0xc9, 0x20, 0xee, 
+	0x74, 0xf0, 0x35, 0x65, 0x6, 0xf0, 0xb9, 0xb2, 0x3a, 0x3b, 
+	0x58, 0x5b, 0x5a, 0x36, 0x81, 0xe7, 0xb9, 0x3c, 0x76, 0x72, 
+	0x65, 0x4, 0x11, 0x47, 0x7a, 0x70, 0xdd, 0xf5, 0xf5, 0xb9, 
+	0x8a, 0xdd, 0x5a, 0x56, 0xa5, 0x15, 0x5b, 0xf5, 0x3e, 0x3d, 
+	0xbb, 0x4e, 0x73, 0x1e, 0x68, 0x34, 0xba, 0x7c, 0x2c, 0x76, 
+	0xad, 0x7d, 0xae, 0xc2, 0xf3, 0x10, 0x8d, 0xd7, 0x6, 0xd6, 
+	0x34, 0x87, 0x5c, 0xb2, 0xa0, 0xb4, 0x2c, 0x3, 0x36, 0x74, 
+	0xac, 0x65, 0xb3, 0x47, 0x8f, 0xaf, 0x12, 0x1d, 0xff, 0x4d, 
+	0xac, 0x8c, 0x30, 0x46, 0x9d, 0xd9, 0xde, 0xe7, 0xf2, 0x8f, 
+	0x29, 0x32, 0xa8, 0x29, 0xe7, 0xc8, 0x2c, 0xe3, 0x75, 0xa5, 
+	0x15, 0xa0, 0x3d, 0x39, 0xda, 0xfa, 0x5c, 0xa3, 0xc7, 0x57, 
+	0x89, 0x66, 0x27, 0x57, 0x46, 0x18, 0x47, 0x77, 0x2d, 0x7d, 
+	0xae, 0x4c, 0xd4, 0x79, 0xa1, 0xd7, 0xe6, 0xac, 0xb3, 0xc, 
+	0x75, 0x17, 0x94, 0x6, 0xb5, 0x3c, 0xda, 0xba, 0x78, 0xa3, 
+	0xc7, 0x57, 0xe9, 0xd2, 0x56, 0xc9, 0x47, 0xb4, 0x77, 0x6d, 
+	0x7c, 0x2e, 0xcf, 0xfb, 0x6b, 0xcb, 0xae, 0xf0, 0xfb, 0xcd, 
+	0x38, 0xf4, 0x31, 0x67, 0x67, 0x17, 0x1f, 0x5f, 0x25, 0x9e, 
+	0x1d, 0x1b, 0xb5, 0x9d, 0xb9, 0xcb, 0xe7, 0xca, 0x7c, 0x7b, 
+	0xb7, 0x9d, 0x9d, 0xf5, 0xa, 0x9d, 0xd2, 0x38, 0xb0, 0x8c, 
+	0xcb, 0x60, 0xd7, 0x25, 0xbe, 0x4a, 0x7, 0x76, 0xd3, 0xc5, 
+	0x3e, 0x1d, 0xd6, 0x12, 0x2d, 0x7a, 0xdd, 0xc9, 0x2e, 0xf1, 
+	0x55, 0x16, 0xcd, 0xee, 0x70, 0xc6, 0x5e, 0x3b, 0xc5, 0x79, 
+	0x40, 0x76, 0xb, 0x61, 0xd7, 0x21, 0xbe, 0xa, 0xb2, 0x43, 
+	0xdd, 0x61, 0x1a, 0x54, 0x77, 0xc8, 0x2e, 0x61, 0xdd, 0x8d, 
+	0xd1, 0x27, 0x86, 0xec, 0xc6, 0xd7, 0x5d, 0xdb, 0xf8, 0x2a, 
+	0xc8, 0x6e, 0x81, 0xba, 0x5b, 0x21, 0xbb, 0xb4, 0xd8, 0xc5, 
+	0xc7, 0x57, 0x81, 0x63, 0xaf, 0x70, 0x7e, 0x66, 0x1f, 0x76, 
+	0x7a, 0x7d, 0x5b, 0xbb, 0x85, 0x2b, 0x53, 0x37, 0xad, 0x18, 
+	0xbe, 0x7d, 0x3e, 0xd6, 0x8e, 0xf5, 0xd3, 0x23, 0xe6, 0x72, 
+	0x85, 0xeb, 0xf0, 0x8a, 0x92, 0xe1, 0x84, 0x30, 0xb5, 0x18, 
+	0x29, 0x3c, 0x7f, 0x79, 0x86, 0xd5, 0x31, 0xfa, 0xc8, 0x9d, 
+	0xab, 0x78, 0x8f, 0x1e, 0x5f, 0x45, 0xb1, 0xb, 0xe6, 0x67, 
+	0xf6, 0x61, 0xa7, 0xd7, 0x7e, 0xb5, 0x5b, 0xb8, 0xac, 0x66, 
+	0xd3, 0x8a, 0xe1, 0xdb, 0xaf, 0xc5, 0x8e, 0xf5, 0xd3, 0xcb, 
+	0x8, 0x74, 0xa4, 0xfe, 0x3c, 0xc1, 0xa2, 0xad, 0x6a, 0xbd, 
+	0x6c, 0x70, 0xfe, 0xee, 0x49, 0x96, 0xcd, 0xb, 0x85, 0xf6, 
+	0x60, 0x17, 0x1d, 0x5f, 0x45, 0xb3, 0x3, 0x73, 0xfc, 0x7a, 
+	0xb3, 0x93, 0xdf, 0x4e, 0xae, 0x8d, 0x2a, 0xb7, 0x25, 0x1, 
+	0x6b, 0x5b, 0x8b, 0x4b, 0x5d, 0x82, 0x55, 0xce, 0x4b, 0x62, 
+	0x17, 0x52, 0x2d, 0xdd, 0x15, 0x5d, 0xe1, 0x75, 0xe6, 0x60, 
+	0x15, 0xd7, 0x60, 0x75, 0x72, 0xad, 0x23, 0xee, 0xaf, 0x75, 
+	0xae, 0xf6, 0x89, 0x59, 0x99, 0xbe, 0xf4, 0xd6, 0x50, 0x56, 
+	0x8c, 0xdc, 0xa5, 0xd3, 0x9b, 0xd8, 0x81, 0xe5, 0xce, 0x87, 
+	0xd5, 0x5d, 0x97, 0xf8, 0x2a, 0xe3, 0xb0, 0x2b, 0x55, 0xfd, 
+	0x66, 0x8, 0x96, 0x76, 0x1, 0x66, 0xb9, 0xb0, 0x7b, 0xcd, 
+	0x2a, 0xe7, 0x60, 0xe5, 0xe2, 0xc6, 0x3a, 0x13, 0xac, 0x9e, 
+	0xec, 0xae, 0x4e, 0x6e, 0xdf, 0x5b, 0xbf, 0xd5, 0xa5, 0xc2, 
+	0x33, 0x91, 0xe7, 0x69, 0x6a, 0x45, 0xf0, 0xc1, 0xba, 0xce, 
+	0x24, 0x6a, 0x1b, 0xca, 0xce, 0x2d, 0x67, 0xa0, 0x31, 0xa0, 
+	0xc8, 0xf8, 0x2a, 0xa3, 0xb0, 0x2b, 0xf5, 0x2a, 0xc6, 0x86, 
+	0x1d, 0xb8, 0x2, 0x44, 0xab, 0xd2, 0x7b, 0x28, 0x76, 0xcd, 
+	0xf3, 0x90, 0xcd, 0xfa, 0xe9, 0xce, 0x3a, 0xe3, 0xc0, 0xde, 
+	0x85, 0x2b, 0xa7, 0x83, 0x7, 0x81, 0x36, 0xcb, 0x39, 0x4f, 
+	0xa3, 0x2c, 0xe2, 0x9b, 0x4f, 0x8b, 0xca, 0x97, 0x9d, 0x5b, 
+	0xce, 0x70, 0x63, 0xaf, 0x51, 0xf1, 0x55, 0x1c, 0x76, 0x3, 
+	0xd9, 0xbb, 0x52, 0x2d, 0x1a, 0xf, 0xeb, 0x1c, 0xa0, 0x3b, 
+	0x6d, 0x5f, 0x9a, 0x74, 0xb7, 0xd5, 0x86, 0x6, 0xeb, 0x8c, 
+	0x43, 0x76, 0xc1, 0xca, 0xe9, 0x66, 0x1d, 0x73, 0xc2, 0x5d, 
+	0x60, 0x8d, 0xe7, 0x9, 0xd9, 0x95, 0xaa, 0x95, 0x55, 0x7a, 
+	0xf9, 0xc4, 0x2b, 0x67, 0x28, 0x1f, 0x21, 0x36, 0xbe, 0xa, 
+	0x64, 0x37, 0x54, 0x3b, 0x93, 0x98, 0xda, 0x6, 0xd4, 0x48, 
+	0x61, 0xeb, 0xae, 0xc9, 0xde, 0x6d, 0x6d, 0x67, 0xda, 0x66, 
+	0x42, 0xc8, 0xe, 0xae, 0x36, 0x4e, 0x94, 0xc0, 0x55, 0xd, 
+	0x40, 0x3c, 0x51, 0x91, 0x86, 0xf3, 0x74, 0x16, 0x9e, 0x57, 
+	0x22, 0xf7, 0x17, 0xa4, 0x77, 0x9f, 0xc, 0xd5, 0x56, 0xe9, 
+	0x3c, 0xd7, 0xa8, 0xcd, 0x6c, 0xcc, 0x11, 0xfd, 0xbb, 0xb2, 
+	0x24, 0xd3, 0x96, 0xd3, 0x74, 0x5c, 0x6c, 0xfe, 0x60, 0xec, 
+	0x7a, 0xcf, 0xad, 0x15, 0x73, 0x51, 0xdc, 0x7b, 0xee, 0x80, 
+	0x12, 0x6b, 0xee, 0xd1, 0x9b, 0xd5, 0xf5, 0x25, 0xe1, 0x8f, 
+	0x9f, 0xc4, 0x7b, 0x7b, 0x53, 0xf9, 0xe6, 0x55, 0x3c, 0x7, 
+	0x76, 0xd2, 0x14, 0x71, 0xc5, 0xc9, 0xe1, 0x91, 0xec, 0x34, 
+	0x40, 0x7b, 0xfb, 0x41, 0xe0, 0xf1, 0x85, 0x39, 0x33, 0xb3, 
+	0x2b, 0xed, 0xd6, 0xf5, 0xf2, 0xca, 0x5, 0xb2, 0x93, 0x91, 
+	0x37, 0x9a, 0x23, 0xae, 0x6c, 0x8b, 0xbe, 0xd2, 0xc6, 0xde, 
+	0xc9, 0xe6, 0xca, 0x71, 0x70, 0x77, 0x49, 0x53, 0xe, 0x9d, 
+	0x85, 0x57, 0xd5, 0xde, 0xb7, 0x1e, 0x1c, 0x1, 0x16, 0xb3, 
+	0xc6, 0xcb, 0x2b, 0x9, 0x59, 0x8, 0x3b, 0x2d, 0x30, 0x13, 
+	0x2, 0x40, 0x45, 0x78, 0x90, 0xcf, 0xb8, 0x7d, 0x95, 0x73, 
+	0x7e, 0x72, 0xd2, 0x2a, 0xbe, 0x8a, 0xcb, 0xe, 0xdc, 0xf5, 
+	0x13, 0xb4, 0x5e, 0x6c, 0xce, 0x7c, 0xec, 0x2a, 0x6e, 0x15, 
+	0x95, 0x1a, 0xf, 0xae, 0xde, 0xcb, 0x23, 0x25, 0x5f, 0x14, 
+	0xbb, 0x30, 0xe2, 0xa, 0x64, 0x7, 0xa2, 0xaf, 0xb4, 0x89, 
+	0xaf, 0xe2, 0xb2, 0x3, 0xc6, 0xad, 0x41, 0x77, 0x10, 0xf0, 
+	0x6c, 0xec, 0x2, 0xf, 0xae, 0x4, 0xad, 0x41, 0xe7, 0xa5, 
+	0x92, 0x2f, 0x8a, 0x9d, 0x8c, 0x62, 0x64, 0x22, 0x3f, 0x78, 
+	0xba, 0xf3, 0x5e, 0xdd, 0x19, 0x5f, 0xc5, 0x63, 0x77, 0xbc, 
+	0x9b, 0x5d, 0x3e, 0x67, 0x5b, 0x45, 0xc2, 0x93, 0x1e, 0x1c, 
+	0xf4, 0xd, 0x83, 0x9e, 0x19, 0xe3, 0xd9, 0x2d, 0xca, 0xde, 
+	0x35, 0x45, 0x3a, 0x82, 0x39, 0x27, 0x50, 0x77, 0x27, 0xdd, 
+	0xd9, 0x85, 0x75, 0xe6, 0x31, 0xc8, 0x98, 0xa3, 0xad, 0x52, 
+	0x75, 0x6e, 0x29, 0xf, 0x2e, 0xb0, 0x7a, 0x3c, 0xb4, 0x77, 
+	0xb, 0x6b, 0x67, 0x42, 0x65, 0x31, 0x1d, 0x59, 0xc5, 0xd7, 
+	0x1d, 0xe3, 0xd0, 0x1a, 0xe, 0x72, 0xff, 0x5d, 0xaf, 0x38, 
+	0xf, 0x38, 0x7e, 0x37, 0xfa, 0xbd, 0x93, 0xfe, 0x1d, 0xca, 
+	0xa1, 0xc7, 0x57, 0x49, 0x11, 0xd9, 0x2d, 0x8a, 0x9d, 0x4, 
+	0x8, 0xb8, 0x68, 0x6f, 0x2e, 0xcf, 0xdd, 0x9c, 0x1c, 0x34, 
+	0x67, 0x90, 0xdd, 0x32, 0xd8, 0xa9, 0x56, 0x88, 0xe7, 0x23, 
+	0xd0, 0xc0, 0xde, 0xc1, 0x6e, 0x16, 0x64, 0xb7, 0x1c, 0x76, 
+	0xe2, 0xde, 0xba, 0x46, 0x8f, 0x20, 0xa4, 0x89, 0xec, 0x16, 
+	0xc4, 0xe, 0x5a, 0x37, 0x63, 0x3, 0x97, 0xd4, 0xaf, 0x82, 
+	0xec, 0xb6, 0xf5, 0xab, 0x2c, 0xbb, 0x4f, 0xc, 0xd9, 0x6d, 
+	0xeb, 0xcf, 0x6c, 0xd3, 0x27, 0x86, 0x75, 0xe6, 0x12, 0x7d, 
+	0x4, 0xf4, 0xef, 0x92, 0x65, 0x17, 0x4, 0xa0, 0xa, 0xc7, 
+	0xef, 0xe8, 0xac, 0x7d, 0xd1, 0xc8, 0xae, 0xd1, 0xbf, 0x83, 
+	0x7e, 0x78, 0xc3, 0xf8, 0xdd, 0xcc, 0xfd, 0x99, 0xc8, 0xae, 
+	0xc9, 0xde, 0xe5, 0x7e, 0x7f, 0x66, 0xe8, 0x23, 0xc0, 0xe6, 
+	0xc, 0xb2, 0x5b, 0x52, 0x5b, 0x25, 0x64, 0x97, 0x87, 0x7d, 
+	0xd1, 0x9e, 0xee, 0x18, 0xa6, 0x20, 0x2d, 0x82, 0x5d, 0xee, 
+	0x8f, 0xe8, 0x85, 0xe3, 0x77, 0x48, 0x6a, 0x99, 0xec, 0x20, 
+	0x3a, 0xf4, 0xef, 0xd2, 0xaa, 0x33, 0xc3, 0x9e, 0x16, 0xf4, 
+	0xef, 0xd0, 0xbf, 0x43, 0x76, 0x63, 0xb0, 0xb, 0x7d, 0xba, 
+	0x5d, 0x73, 0x6b, 0xcb, 0xc6, 0xa9, 0xcc, 0x31, 0x5f, 0x15, 
+	0x8e, 0x74, 0x13, 0x82, 0xec, 0xa2, 0xe7, 0x67, 0xfa, 0x7d, 
+	0x98, 0xad, 0xd8, 0xd5, 0xcf, 0xe8, 0x29, 0x23, 0x27, 0xfa, 
+	0xe8, 0x79, 0x26, 0xf6, 0xd7, 0x40, 0x7a, 0x4, 0xb8, 0x3f, 
+	0xc0, 0xfe, 0x4c, 0x65, 0xf3, 0xa2, 0xd8, 0x95, 0x60, 0xf6, 
+	0x48, 0xe9, 0xdc, 0x1, 0xc7, 0xdd, 0x79, 0x92, 0xe1, 0x9d, 
+	0x71, 0xce, 0xfd, 0x8, 0xf2, 0xde, 0x28, 0x38, 0xf3, 0xa4, 
+	0x4a, 0x7a, 0xee, 0x65, 0xb9, 0x94, 0x29, 0xb3, 0x7b, 0xc5, 
+	0x8e, 0x80, 0x59, 0x5b, 0x60, 0xbf, 0x6c, 0xc8, 0x6f, 0x9a, 
+	0x5d, 0xc9, 0xc1, 0xbd, 0x75, 0xf0, 0x5e, 0xf, 0x3d, 0xf7, 
+	0xb2, 0x9c, 0x75, 0xc2, 0xde, 0x7e, 0xb2, 0x2b, 0xe1, 0xac, 
+	0xc8, 0x52, 0x5f, 0x73, 0xee, 0xdc, 0x4f, 0x7, 0xf3, 0xed, 
+	0xa4, 0x4a, 0x9d, 0xa3, 0x67, 0x57, 0xda, 0x7b, 0xaf, 0x38, 
+	0xf1, 0xed, 0x20, 0x27, 0xa9, 0xc9, 0x6e, 0x16, 0x76, 0x91, 
+	0xf6, 0x4e, 0xdf, 0x17, 0x60, 0xe7, 0x43, 0x2a, 0x1d, 0x81, 
+	0xfb, 0xe9, 0x60, 0xbe, 0x73, 0x67, 0x9c, 0x52, 0x9c, 0x9c, 
+	0x63, 0xc9, 0x6b, 0xd9, 0xe9, 0x57, 0x53, 0x93, 0xdd, 0x1c, 
+	0xec, 0x62, 0xdb, 0x99, 0xba, 0x65, 0x68, 0x5b, 0x89, 0xaa, 
+	0x81, 0x9, 0xee, 0xa7, 0x83, 0xf9, 0x70, 0x26, 0x33, 0x9c, 
+	0x69, 0x9, 0x67, 0x35, 0x43, 0x76, 0xc1, 0xd, 0x7c, 0xc8, 
+	0x2e, 0xc2, 0xbf, 0x6b, 0x73, 0xff, 0x5d, 0x72, 0xaa, 0xd8, 
+	0x1b, 0x76, 0x18, 0x1b, 0x7, 0xd9, 0x61, 0x1a, 0x98, 0xdd, 
+	0xa9, 0x53, 0xa7, 0xce, 0x3f, 0x65, 0xd2, 0x13, 0x8f, 0xce, 
+	0x43, 0x76, 0xe9, 0xb0, 0x7b, 0xdb, 0x7d, 0x6f, 0xb9, 0xe3, 
+	0x7f, 0xee, 0xbf, 0xf3, 0x5d, 0xf, 0x3d, 0xf8, 0x9e, 0xb7, 
+	0xff, 0xd5, 0xdf, 0x1e, 0x1d, 0x21, 0xbb, 0x74, 0xd8, 0xbd, 
+	0xf7, 0xd, 0x67, 0xde, 0x71, 0xcf, 0xe9, 0xb3, 0xa7, 0x6f, 
+	0x3b, 0x77, 0xeb, 0xb9, 0x3b, 0xff, 0xb, 0xd9, 0xa5, 0xc4, 
+	0xee, 0xbe, 0x3b, 0xae, 0x78, 0xd2, 0xd3, 0x9f, 0x7d, 0xc1, 
+	0x17, 0x3c, 0x7a, 0xfa, 0xdc, 0x1f, 0xdf, 0xff, 0xe, 0x64, 
+	0x97, 0x10, 0xbb, 0xf7, 0xbf, 0xfb, 0xdd, 0x97, 0xfd, 0xdc, 
+	0xcd, 0x37, 0xbf, 0xf6, 0x17, 0x2f, 0xbe, 0xf8, 0xc9, 0x5f, 
+	0xf8, 0xf0, 0x7f, 0x9f, 0x42, 0x76, 0x9, 0xe9, 0xee, 0xcc, 
+	0xe9, 0xb, 0xfe, 0xe0, 0xe5, 0x2f, 0x79, 0xe9, 0x17, 0x5f, 
+	0x7f, 0xd3, 0x2f, 0xbf, 0xea, 0x9e, 0xbb, 0x4f, 0xbd, 0x9f, 
+	0xc3, 0xe, 0xd3, 0x68, 0x69, 00, 0x76, 0xe7, 0x3f, 0x72, 
+	0xcf, 0xb3, 0x5e, 0xfb, 0x92, 0x9f, 0xfe, 0xc9, 0xf, 0xfc, 
+	0xf1, 0x6f, 0xff, 0x9e, 0x4b, 0xef, 0xba, 0xdf, 0xd5, 0x1d, 
+	0xa6, 0x45, 0xa7, 0x53, 0xf7, 0x3e, 0x7c, 0xc1, 0xd, 0x3f, 
+	0xf3, 0xb3, 0x3f, 0xf5, 0x25, 0xcf, 0x79, 0xfe, 0x73, 0x2f, 
+	0xdd, 0xe8, 0xee, 0x9, 0xc8, 0x2e, 0x99, 0xf4, 0xd8, 0xdb, 
+	0xce, 0x7e, 0xf4, 0xcd, 0x9f, 0xf2, 0x9, 0x4f, 0x7b, 0xe6, 
+	0xf3, 0xae, 0xbe, 0xea, 0xc3, 0xdf, 0x79, 0xfb, 0x11, 0xea, 
+	0x2e, 0x21, 0xdd, 0xbd, 0xef, 0xd6, 0xf7, 0x3d, 0xf9, 0x86, 
+	0x1f, 0xfc, 0xaa, 0xe7, 0xbd, 0xf0, 0xc7, 0x5e, 0xf8, 0x31, 
+	0xf, 0xbd, 0xd, 0xd9, 0xa5, 0xc4, 0xee, 0xc1, 0xd3, 0xb7, 
+	0x5e, 0xfe, 0xea, 0xaf, 0x7b, 0xf1, 0x55, 0xdf, 0xf9, 0xb5, 
+	0xdf, 0x78, 0xc5, 0xdd, 0xf, 0xa2, 0xbd, 0x4b, 0x89, 0xdd, 
+	0x3b, 0xef, 0x3f, 0xfb, 0xd4, 0x57, 0xbc, 0xf8, 0xcb, 0xae, 
+	0xfb, 0x8e, 0xab, 0x5f, 0xf0, 0x19, 0xb7, 0xfd, 0x8b, 0xdb, 
+	0xce, 0xc4, 0xb4, 0xe8, 0x74, 0xfe, 0x1b, 0xce, 0xdc, 0xf9, 
+	0xcc, 0x5f, 0xfa, 0x9c, 0xcb, 0x3f, 0xec, 0xe3, 0x2f, 0x7b, 
+	0xd2, 0x33, 0xce, 0xde, 0x89, 0xba, 0x4b, 0x49, 0x77, 0xff, 
+	0x7e, 0xe6, 0x2d, 0xf7, 0x9e, 0x7d, 0xf3, 0xe9, 0xbb, 0x1e, 
+	0xbc, 0xeb, 0xcd, 0x67, 0xef, 0xbf, 0xf7, 0xb1, 0xc8, 0x2e, 
+	0x9d, 0xf4, 0xf8, 0xd7, 0xff, 0xe7, 0xed, 0x8f, 0xde, 0x71, 
+	0xe6, 0xa1, 0xbb, 0xdf, 0xfe, 0xe0, 0x23, 0x77, 0xbe, 0xf1, 
+	0x7f, 0xab, 0xb6, 0xa, 0xa6, 0x44, 0xd2, 0xd1, 0xd1, 0x79, 
+	0xe7, 0xe9, 0x11, 0xa0, 0xf, 0x38, 0x75, 0x84, 0xec, 0x12, 
+	0x4a, 0x8f, 0x3b, 0x3a, 0x7a, 0xfc, 0xd1, 0xd1, 0x13, 0x36, 
+	0x4, 0x8f, 0x8e, 0x9e, 0x78, 0x74, 0xf4, 0xb8, 0xf3, 0xfe, 
+	0x1f, 0xa8, 0x96, 0x18, 0xbe, 0xf6, 0x39, 0xb9, 0xfe, 00, 
+	00, 00, 00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 
+	0x82, };
+
+static prog_char data_404_html[] = {
+	/* /404.html */
+	0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
+	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 
+	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 
+	0x76, 0x65, 0x72, 0x3a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
+	0x6b, 0x69, 0x2f, 0x70, 0x72, 0x65, 0x2d, 0x31, 0x2e, 0x31, 
+	0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 
+	0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 
+	0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 
+	0x69, 0x6b, 0x69, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 
+	0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 
+	0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 
+	0xd, 0xa, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 
+	0xa, 0x20, 0x20, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 
+	0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 
+	0x69, 0x74, 0x65, 0x22, 0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 
+	0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xa, 0x20, 
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x31, 0x3e, 0x34, 
+	0x30, 0x34, 0x20, 0x2d, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 
+	0x6e, 0x6f, 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x3c, 
+	0x2f, 0x68, 0x31, 0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 
+	0x20, 0x3c, 0x68, 0x33, 0x3e, 0x47, 0x6f, 0x20, 0x3c, 0x61, 
+	0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x22, 0x3e, 
+	0x68, 0x65, 0x72, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x69, 
+	0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x2e, 0x3c, 0x2f, 0x68, 
+	0x33, 0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x63, 
+	0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xa, 0x20, 0x20, 0x3c, 
+	0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68, 
+	0x74, 0x6d, 0x6c, 0x3e, };
+
+static prog_char data_footer_plain[] = {
+	/* /footer.plain */
+	0x2f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,
+	0x20, 0x20, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 
+	0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, };
+
+static prog_char data_header_html[] = {
+	/* /header.html */
+	0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
+	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 
+	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 
+	0x76, 0x65, 0x72, 0x3a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
+	0x6b, 0x69, 0x2f, 0x70, 0x72, 0x65, 0x2d, 0x31, 0x2e, 0x31, 
+	0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 
+	0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 
+	0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 
+	0x69, 0x6b, 0x69, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 
+	0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 
+	0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 
+	0xd, 0xa, 0xd, 0xa, 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 
+	0x59, 0x50, 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 
+	0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 
+	0x57, 0x33, 0x43, 0x2f, 0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 
+	0x54, 0x4d, 0x4c, 0x20, 0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 
+	0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 
+	0x6c, 0x2f, 0x2f, 0x45, 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 
+	0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 
+	0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 
+	0x74, 0x6d, 0x6c, 0x34, 0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 
+	0x2e, 0x64, 0x74, 0x64, 0x22, 0x3e, 0xa, 0x3c, 0x68, 0x74, 
+	0x6d, 0x6c, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 
+	0x64, 0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 
+	0x74, 0x6c, 0x65, 0x3e, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 
+	0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 
+	0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2d, 0x64, 0x65, 0x6d, 
+	0x6f, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x21, 0x3c, 
+	0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0xa, 0x20, 0x20, 
+	0x20, 0x20, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 
+	0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, 
+	0x65, 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 
+	0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 
+	0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x73, 0x74, 
+	0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73, 0x73, 0x22, 0x3e, 0x20, 
+	0x20, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 
+	0x3e, 0xa, 0x20, 0x20, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 
+	0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x23, 
+	0x66, 0x66, 0x66, 0x65, 0x65, 0x63, 0x22, 0x20, 0x74, 0x65, 
+	0x78, 0x74, 0x3d, 0x22, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x22, 
+	0x3e, 0xa, 0xa, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 
+	0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x65, 0x6e, 
+	0x75, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0xa, 0xa, 
+	0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 
+	0x73, 0x73, 0x3d, 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x3e, 
+	0xa, 0x20, 0x20, 0x3c, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 
+	0x73, 0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 
+	0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x3e, 0x4d, 0x65, 0x6e, 
+	0x75, 0x3c, 0x2f, 0x70, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x70, 
+	0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x65, 
+	0x6e, 0x75, 0x22, 0x3e, 0xa, 0x20, 0x20, 0xa, 0x20, 0x20, 
+	0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 
+	0x22, 0x3e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x70, 0x61, 
+	0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 
+	0xa, 0x20, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 
+	0x3d, 0x22, 0x2f, 0x76, 0x6e, 0x63, 0x2e, 0x68, 0x74, 0x6d, 
+	0x6c, 0x22, 0x3e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 
+	0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3c, 0x2f, 0x61, 
+	0x3e, 0x3c, 0x62, 0x72, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x61, 
+	0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 
+	0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x3e, 0x46, 
+	0x69, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 
+	0x74, 0x69, 0x63, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 
+	0x72, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 
+	0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 
+	0x63, 0x70, 0x22, 0x3e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 
+	0x6b, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 
+	0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 
+	0x3e, 0xa, 0x20, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 
+	0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x70, 0x72, 
+	0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x3e, 0x53, 
+	0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x63, 
+	0x65, 0x73, 0x73, 0x65, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 
+	0x62, 0x72, 0x3e, 0xa, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x70, 
+	0x3e, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 
+	0xa, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0xa, 
+	0xa, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 
+	0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x65, 
+	0x6e, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0xa, 
+	0x20, 0x20, 0x3c, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 
+	0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 
+	0x69, 0x74, 0x6c, 0x65, 0x22, 0x3e, 0xa, 0x20, 0x20, 0x57, 
+	0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 
+	0x74, 0x68, 0x65, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 
+	0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 
+	0x77, 0x77, 0x77, 0x2e, 0x73, 0x69, 0x63, 0x73, 0x2e, 0x73, 
+	0x65, 0x2f, 0x7e, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 
+	0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2f, 0x22, 0x3e, 0x43, 0x6f, 
+	0x6e, 0x74, 0x69, 0x6b, 0x69, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 
+	0xa, 0x20, 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x20, 0x73, 0x65, 
+	0x72, 0x76, 0x65, 0x72, 0x21, 0xa, 0x20, 0x20, 0x3c, 0x2f, 
+	0x70, 0x3e, 0xa, };
+
+static prog_char data_index_html[] = {
+	/* /index.html */
+	0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
+	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 
+	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 
+	0x76, 0x65, 0x72, 0x3a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
+	0x6b, 0x69, 0x2f, 0x70, 0x72, 0x65, 0x2d, 0x31, 0x2e, 0x31, 
+	0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 
+	0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 
+	0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 
+	0x69, 0x6b, 0x69, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 
+	0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 
+	0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 
+	0xd, 0xa, 0xd, 0xa, 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 
+	0x59, 0x50, 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 
+	0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 
+	0x57, 0x33, 0x43, 0x2f, 0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 
+	0x54, 0x4d, 0x4c, 0x20, 0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 
+	0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 
+	0x6c, 0x2f, 0x2f, 0x45, 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 
+	0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 
+	0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 
+	0x74, 0x6d, 0x6c, 0x34, 0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 
+	0x2e, 0x64, 0x74, 0x64, 0x22, 0x3e, 0xa, 0x3c, 0x68, 0x74, 
+	0x6d, 0x6c, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 
+	0x64, 0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 
+	0x74, 0x6c, 0x65, 0x3e, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 
+	0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 
+	0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2d, 0x64, 0x65, 0x6d, 
+	0x6f, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x21, 0x3c, 
+	0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0xa, 0x20, 0x20, 
+	0x20, 0x20, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 
+	0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, 
+	0x65, 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 
+	0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 
+	0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x73, 0x74, 
+	0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73, 0x73, 0x22, 0x3e, 0x20, 
+	0x20, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 
+	0x3e, 0xa, 0x20, 0x20, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 
+	0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x23, 
+	0x66, 0x66, 0x66, 0x65, 0x65, 0x63, 0x22, 0x20, 0x74, 0x65, 
+	0x78, 0x74, 0x3d, 0x22, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x22, 
+	0x3e, 0xa, 0xa, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 
+	0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x65, 0x6e, 
+	0x75, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0xa, 0xa, 
+	0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 
+	0x73, 0x73, 0x3d, 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x3e, 
+	0xa, 0x20, 0x20, 0x3c, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 
+	0x73, 0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 
+	0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x3e, 0x4d, 0x65, 0x6e, 
+	0x75, 0x3c, 0x2f, 0x70, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x70, 
+	0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x65, 
+	0x6e, 0x75, 0x22, 0x3e, 0xa, 0x20, 0x20, 0xa, 0x20, 0x20, 
+	0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 
+	0x22, 0x3e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x70, 0x61, 
+	0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 
+	0xa, 0x20, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 
+	0x3d, 0x22, 0x2f, 0x76, 0x6e, 0x63, 0x2e, 0x68, 0x74, 0x6d, 
+	0x6c, 0x22, 0x3e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 
+	0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3c, 0x2f, 0x61, 
+	0x3e, 0x3c, 0x62, 0x72, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x61, 
+	0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 
+	0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x3e, 0x46, 
+	0x69, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 
+	0x74, 0x69, 0x63, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 
+	0x72, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 
+	0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 
+	0x63, 0x70, 0x22, 0x3e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 
+	0x6b, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 
+	0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 
+	0x3e, 0xa, 0x20, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 
+	0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x70, 0x72, 
+	0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x3e, 0x53, 
+	0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x63, 
+	0x65, 0x73, 0x73, 0x65, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 
+	0x62, 0x72, 0x3e, 0xa, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x70, 
+	0x3e, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 
+	0xa, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0xa, 
+	0xa, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 
+	0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x65, 
+	0x6e, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0xa, 
+	0x20, 0x20, 0x3c, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 
+	0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 
+	0x69, 0x74, 0x6c, 0x65, 0x22, 0x3e, 0xa, 0x20, 0x20, 0x57, 
+	0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 
+	0x74, 0x68, 0x65, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 
+	0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 
+	0x77, 0x77, 0x77, 0x2e, 0x73, 0x69, 0x63, 0x73, 0x2e, 0x73, 
+	0x65, 0x2f, 0x7e, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 
+	0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2f, 0x22, 0x3e, 0x43, 0x6f, 
+	0x6e, 0x74, 0x69, 0x6b, 0x69, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 
+	0xa, 0x20, 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x20, 0x73, 0x65, 
+	0x72, 0x76, 0x65, 0x72, 0x21, 0xa, 0x20, 0x20, 0x3c, 0x2f, 
+	0x70, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 
+	0xa, 0x9, 0x20, 0x20, 0x3c, 0x70, 0x20, 0x63, 0x6c, 0x61, 
+	0x73, 0x73, 0x3d, 0x22, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x22, 
+	0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x54, 0x68, 0x65, 
+	0x20, 0x77, 0x65, 0x62, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 
+	0x20, 0x79, 0x6f, 0x75, 0x20, 0x61, 0x72, 0x65, 0x20, 0x77, 
+	0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x72, 
+	0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x62, 
+	0x79, 0x20, 0x61, 0x20, 0x3c, 0x61, 0xa, 0x9, 0x20, 0x20, 
+	0x20, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 
+	0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 
+	0x69, 0x63, 0x73, 0x2e, 0x73, 0x65, 0x2f, 0x7e, 0x61, 0x64, 
+	0x61, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 
+	0x2f, 0x61, 0x70, 0x70, 0x73, 0x2f, 0x77, 0x65, 0x62, 0x73, 
+	0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 
+	0x22, 0x3e, 0x77, 0x65, 0x62, 0xa, 0x9, 0x20, 0x20, 0x20, 
+	0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3c, 0x2f, 0x61, 
+	0x3e, 0x20, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 
+	0x75, 0x6e, 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 
+	0x3c, 0x61, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x68, 0x72, 
+	0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 
+	0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 0x69, 0x63, 0x73, 0x2e, 
+	0x73, 0x65, 0x2f, 0x7e, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 
+	0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2f, 0x22, 0x3e, 0x43, 
+	0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x20, 0x6f, 0x70, 0x65, 
+	0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0xa, 0x9, 0x20, 0x20, 
+	0x20, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x3c, 0x2f, 
+	0x61, 0x3e, 0x20, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x20, 0x61, 
+	0x6e, 0x20, 0x3c, 0x61, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 
+	0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 
+	0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x65, 0x74, 0x68, 
+	0x65, 0x72, 0x6e, 0x75, 0x74, 0x2e, 0x64, 0x65, 0x2f, 0x65, 
+	0x6e, 0x2f, 0x22, 0x3e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 
+	0x75, 0x74, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x65, 0x6d, 0x62, 
+	0x65, 0x64, 0x64, 0x65, 0x64, 0xa, 0x9, 0x20, 0x20, 0x20, 
+	0x20, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x20, 
+	0x62, 0x6f, 0x61, 0x72, 0x64, 0x2c, 0x20, 0x77, 0x68, 0x69, 
+	0x63, 0x68, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 
+	0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x31, 0x34, 0x20, 
+	0x4d, 0x48, 0x7a, 0x20, 0x41, 0x56, 0x52, 0x20, 0x41, 0x74, 
+	0x6d, 0x65, 0x67, 0x61, 0x31, 0x32, 0x38, 0xa, 0x9, 0x20, 
+	0x20, 0x20, 0x20, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x63, 0x6f, 
+	0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x20, 0x77, 
+	0x69, 0x74, 0x68, 0x20, 0x33, 0x32, 0x20, 0x6b, 0x69, 0x6c, 
+	0x6f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x20, 0x6f, 0x66, 0x20, 
+	0x52, 0x41, 0x4d, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x31, 0x32, 
+	0x38, 0x20, 0x6b, 0x69, 0x6c, 0x6f, 0x62, 0x79, 0x74, 0x65, 
+	0x73, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x66, 0x20, 
+	0x66, 0x6c, 0x61, 0x73, 0x68, 0x20, 0x52, 0x4f, 0x4d, 0x2c, 
+	0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x20, 0x52, 0x65, 0x61, 
+	0x6c, 0x54, 0x65, 0x6b, 0x20, 0x52, 0x54, 0x4c, 0x38, 0x30, 
+	0x31, 0x39, 0x41, 0x53, 0x20, 0x45, 0x74, 0x68, 0x65, 0x72, 
+	0x6e, 0x65, 0x74, 0x20, 0x63, 0x68, 0x69, 0x70, 0x2e, 0xa, 
+	0x9, 0x20, 0x20, 0x3c, 0x2f, 0x70, 0x3e, 0xa, 0xa, 0x9, 
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x20, 0x63, 
+	0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x6c, 0x69, 0x6e, 
+	0x6b, 0x22, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x3c, 
+	0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 
+	0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 
+	0x6b, 0x69, 0x2d, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x73, 0x69, 
+	0x63, 0x73, 0x2e, 0x73, 0x65, 0x22, 0x3e, 0x3c, 0x62, 0x3e, 
+	0x3c, 0x74, 0x74, 0x3e, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 
+	0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2d, 0x64, 
+	0x65, 0x6d, 0x6f, 0x2e, 0x73, 0x69, 0x63, 0x73, 0x2e, 0x73, 
+	0x65, 0x2f, 0x3c, 0x2f, 0x74, 0x74, 0x3e, 0x3c, 0x2f, 0x62, 
+	0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x3c, 
+	0x2f, 0x70, 0x3e, 0xa, 0x9, 0x20, 0x20, 0xa, 0x9, 0x20, 
+	0x20, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x68, 0x32, 0x3e, 0x52, 
+	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x64, 0x69, 0x73, 0x70, 
+	0x6c, 0x61, 0x79, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0xa, 0x9, 
+	0x20, 0x20, 0x3c, 0x70, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 
+	0x20, 0x49, 0x74, 0x20, 0x69, 0x74, 0x20, 0x70, 0x6f, 0x73, 
+	0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x72, 
+	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x6c, 0x79, 0x20, 0x61, 0x63, 
+	0x63, 0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 
+	0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x20, 0x64, 0x65, 0x73, 
+	0x6b, 0x74, 0x6f, 0x70, 0x20, 0x6f, 0x66, 0xa, 0x9, 0x20, 
+	0x20, 0x20, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x65, 
+	0x72, 0x76, 0x65, 0x72, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 
+	0x74, 0x6c, 0x79, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x79, 
+	0x6f, 0x75, 0x72, 0x20, 0x77, 0x65, 0x62, 0x20, 0x62, 0x72, 
+	0x6f, 0x77, 0x73, 0x65, 0x72, 0x21, 0x20, 0x53, 0x65, 0x65, 
+	0x20, 0x74, 0x68, 0x65, 0x20, 0x3c, 0x61, 0xa, 0x9, 0x20, 
+	0x20, 0x20, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x76, 
+	0x6e, 0x63, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x72, 
+	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 0x64, 0x69, 0x73, 0x70, 
+	0x6c, 0x61, 0x79, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x70, 0x61, 
+	0x67, 0x65, 0x2e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x2f, 0x70, 
+	0x3e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x68, 0x32, 0x3e, 0x53, 
+	0x63, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x68, 0x6f, 0x74, 0x3c, 
+	0x2f, 0x68, 0x32, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x70, 
+	0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x54, 0x68, 0x69, 
+	0x73, 0x20, 0x69, 0x73, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 
+	0x74, 0x68, 0x65, 0x20, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 
+	0x6c, 0x20, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x20, 
+	0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x65, 
+	0x72, 0x76, 0x65, 0x72, 0x20, 0x6c, 0x6f, 0x6f, 0x6b, 0x73, 
+	0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x69, 0x6b, 0x65, 
+	0x3a, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x2f, 0x70, 0x3e, 0xa, 
+	0x9, 0x20, 0x20, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 
+	0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x69, 0x6d, 
+	0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x2f, 0x69, 0x6d, 
+	0x67, 0x2f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x68, 
+	0x6f, 0x74, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x20, 0x61, 0x6c, 
+	0x74, 0x3d, 0x22, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x73, 
+	0x68, 0x6f, 0x74, 0x22, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x3c, 
+	0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xa, 0x9, 
+	0x20, 0x20, 0x3c, 0x68, 0x32, 0x3e, 0x4d, 0x65, 0x6d, 0x6f, 
+	0x72, 0x79, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x3c, 0x2f, 
+	0x68, 0x32, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x70, 0x3e, 
+	0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 
+	0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, 0x20, 0x43, 0x6f, 0x6e, 
+	0x74, 0x69, 0x6b, 0x69, 0x20, 0x41, 0x56, 0x52, 0x20, 0x73, 
+	0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x75, 0x73, 0x65, 0x73, 
+	0x20, 0x73, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6c, 0x79, 0x20, 
+	0x6d, 0x6f, 0x72, 0x65, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x20, 
+	0x32, 0x30, 0x20, 0x6b, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 
+	0x52, 0x41, 0x4d, 0x2c, 0x20, 0x6f, 0x66, 0x20, 0x77, 0x68, 
+	0x69, 0x63, 0x68, 0x20, 0x36, 0x20, 0x6b, 0x20, 0x69, 0x73, 
+	0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 
+	0x74, 0x68, 0x65, 0x20, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 
+	0x6c, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 
+	0x38, 0x20, 0x6b, 0x20, 0x66, 0x6f, 0x72, 0xa, 0x9, 0x20, 
+	0x20, 0x20, 0x20, 0x9, 0x20, 0x20, 0x20, 0x20, 0x74, 0x68, 
+	0x65, 0x20, 0x77, 0x65, 0x62, 0x20, 0x62, 0x72, 0x6f, 0x77, 
+	0x73, 0x65, 0x72, 0x2e, 0x20, 0x41, 0x6c, 0x6c, 0x20, 0x63, 
+	0x6f, 0x64, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 
+	0x65, 0x73, 0x65, 0x20, 0x77, 0x65, 0x62, 0x20, 0x70, 0x61, 
+	0x67, 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x74, 
+	0x6f, 0x72, 0x65, 0x64, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 
+	0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6d, 0x69, 0x63, 
+	0x72, 0x6f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 
+	0x65, 0x72, 0x27, 0x73, 0x20, 0x6f, 0x6e, 0x2d, 0x63, 0x68, 
+	0x69, 0x70, 0x20, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x20, 0x52, 
+	0x4f, 0x4d, 0x2e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x2f, 0x70, 
+	0x3e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x70, 0x20, 0x61, 0x6c, 
+	0x69, 0x67, 0x6e, 0x3d, 0x22, 0x72, 0x69, 0x67, 0x68, 0x74, 
+	0x22, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x3c, 
+	0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 
+	0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x73, 
+	0x69, 0x63, 0x73, 0x2e, 0x73, 0x65, 0x2f, 0x25, 0x37, 0x65, 
+	0x61, 0x64, 0x61, 0x6d, 0x2f, 0x22, 0x3e, 0x41, 0x64, 0x61, 
+	0x6d, 0x20, 0x44, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x3c, 
+	0x2f, 0x61, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x2f, 0x70, 
+	0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 0xa, 0x20, 0x20, 0x3c, 
+	0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68, 
+	0x74, 0x6d, 0x6c, 0x3e, };
+
+static prog_char data_vnc_html[] = {
+	/* /vnc.html */
+	0x2f, 0x76, 0x6e, 0x63, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
+	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 
+	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 
+	0x76, 0x65, 0x72, 0x3a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
+	0x6b, 0x69, 0x2f, 0x70, 0x72, 0x65, 0x2d, 0x31, 0x2e, 0x31, 
+	0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 
+	0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 
+	0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 
+	0x69, 0x6b, 0x69, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 
+	0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 
+	0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 
+	0xd, 0xa, 0xd, 0xa, 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 
+	0x59, 0x50, 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 
+	0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 
+	0x57, 0x33, 0x43, 0x2f, 0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 
+	0x54, 0x4d, 0x4c, 0x20, 0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 
+	0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 
+	0x6c, 0x2f, 0x2f, 0x45, 0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 
+	0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 
+	0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 
+	0x74, 0x6d, 0x6c, 0x34, 0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 
+	0x2e, 0x64, 0x74, 0x64, 0x22, 0x3e, 0xa, 0x3c, 0x68, 0x74, 
+	0x6d, 0x6c, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 
+	0x64, 0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 
+	0x74, 0x6c, 0x65, 0x3e, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 
+	0x65, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 
+	0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2d, 0x64, 0x65, 0x6d, 
+	0x6f, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x21, 0x3c, 
+	0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0xa, 0x20, 0x20, 
+	0x20, 0x20, 0x3c, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x72, 0x65, 
+	0x6c, 0x3d, 0x22, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x73, 0x68, 
+	0x65, 0x65, 0x74, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 
+	0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 
+	0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x73, 0x74, 
+	0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73, 0x73, 0x22, 0x3e, 0x20, 
+	0x20, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 
+	0x3e, 0xa, 0x20, 0x20, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 
+	0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x23, 
+	0x66, 0x66, 0x66, 0x65, 0x65, 0x63, 0x22, 0x20, 0x74, 0x65, 
+	0x78, 0x74, 0x3d, 0x22, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x22, 
+	0x3e, 0xa, 0xa, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 
+	0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x65, 0x6e, 
+	0x75, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0xa, 0xa, 
+	0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 
+	0x73, 0x73, 0x3d, 0x22, 0x6d, 0x65, 0x6e, 0x75, 0x22, 0x3e, 
+	0xa, 0x20, 0x20, 0x3c, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 
+	0x73, 0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 
+	0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x3e, 0x4d, 0x65, 0x6e, 
+	0x75, 0x3c, 0x2f, 0x70, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x70, 
+	0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x65, 
+	0x6e, 0x75, 0x22, 0x3e, 0xa, 0x20, 0x20, 0xa, 0x20, 0x20, 
+	0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 
+	0x22, 0x3e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x70, 0x61, 
+	0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 
+	0xa, 0x20, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 
+	0x3d, 0x22, 0x2f, 0x76, 0x6e, 0x63, 0x2e, 0x68, 0x74, 0x6d, 
+	0x6c, 0x22, 0x3e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x20, 
+	0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3c, 0x2f, 0x61, 
+	0x3e, 0x3c, 0x62, 0x72, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x61, 
+	0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 
+	0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x3e, 0x46, 
+	0x69, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 
+	0x74, 0x69, 0x63, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 
+	0x72, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 
+	0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 
+	0x63, 0x70, 0x22, 0x3e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 
+	0x6b, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 
+	0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 
+	0x3e, 0xa, 0x20, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 
+	0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x70, 0x72, 
+	0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x3e, 0x53, 
+	0x79, 0x73, 0x74, 0x65, 0x6d, 0x20, 0x70, 0x72, 0x6f, 0x63, 
+	0x65, 0x73, 0x73, 0x65, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 
+	0x62, 0x72, 0x3e, 0xa, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x70, 
+	0x3e, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 
+	0xa, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0xa, 
+	0xa, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 
+	0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x65, 
+	0x6e, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0xa, 
+	0x20, 0x20, 0x3c, 0x70, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 
+	0x3d, 0x22, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 
+	0x69, 0x74, 0x6c, 0x65, 0x22, 0x3e, 0xa, 0x20, 0x20, 0x57, 
+	0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 
+	0x74, 0x68, 0x65, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 
+	0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 
+	0x77, 0x77, 0x77, 0x2e, 0x73, 0x69, 0x63, 0x73, 0x2e, 0x73, 
+	0x65, 0x2f, 0x7e, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 
+	0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2f, 0x22, 0x3e, 0x43, 0x6f, 
+	0x6e, 0x74, 0x69, 0x6b, 0x69, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 
+	0xa, 0x20, 0x20, 0x64, 0x65, 0x6d, 0x6f, 0x20, 0x73, 0x65, 
+	0x72, 0x76, 0x65, 0x72, 0x21, 0xa, 0x20, 0x20, 0x3c, 0x2f, 
+	0x70, 0x3e, 0xa, 0xa, 0x9, 0x9, 0x20, 0x20, 0x3c, 0x70, 
+	0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x69, 0x6e, 
+	0x74, 0x72, 0x6f, 0x22, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 
+	0x20, 0x54, 0x68, 0x65, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
+	0x6b, 0x69, 0x20, 0x56, 0x4e, 0x43, 0x20, 0x73, 0x65, 0x72, 
+	0x76, 0x65, 0x72, 0x20, 0x6c, 0x65, 0x74, 0x73, 0x20, 0x79, 
+	0x6f, 0x75, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 
+	0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, 
+	0x70, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0xa, 0x9, 0x20, 0x20, 
+	0x20, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x6f, 0x6e, 0x74, 
+	0x69, 0x6b, 0x69, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 
+	0x20, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x77, 
+	0x65, 0x62, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 
+	0x2c, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x61, 0x6e, 0x79, 
+	0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x6e, 0xa, 0x9, 
+	0x20, 0x20, 0x20, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x6f, 
+	0x72, 0x6c, 0x64, 0x2e, 0x20, 0x4e, 0x6f, 0x74, 0x65, 0x20, 
+	0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 
+	0x65, 0x76, 0x69, 0x63, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x77, 
+	0x68, 0x69, 0x63, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 
+	0x69, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 
+	0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x65, 0x73, 
+	0x20, 0x6e, 0x6f, 0x74, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 
+	0x61, 0x6e, 0x79, 0x20, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 
+	0x72, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x20, 0x6f, 
+	0x74, 0x68, 0x65, 0x72, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x20, 
+	0x6f, 0x66, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 
+	0x3b, 0x20, 0x69, 0x6e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 
+	0x66, 0x61, 0x63, 0x74, 0x2c, 0x20, 0x69, 0x74, 0x20, 0x64, 
+	0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x65, 0x76, 
+	0x65, 0x6e, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x61, 0x20, 
+	0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x20, 0x63, 
+	0x68, 0x69, 0x70, 0x2e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x2f, 
+	0x70, 0x3e, 0xa, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x68, 0x33, 
+	0x3e, 0x4a, 0x61, 0x76, 0x61, 0x20, 0x63, 0x6c, 0x69, 0x65, 
+	0x6e, 0x74, 0x3c, 0x2f, 0x68, 0x33, 0x3e, 0xa, 0x9, 0x20, 
+	0x20, 0x3c, 0x70, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 
+	0x54, 0x68, 0x65, 0x20, 0x4a, 0x61, 0x76, 0x61, 0x20, 0x63, 
+	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x6d, 0x61, 0x6b, 0x65, 
+	0x73, 0x20, 0x69, 0x74, 0x20, 0x70, 0x6f, 0x73, 0x73, 0x69, 
+	0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x63, 0x63, 
+	0x65, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x69, 
+	0x72, 0x74, 0x75, 0x61, 0x6c, 0xa, 0x9, 0x20, 0x20, 0x20, 
+	0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x20, 0x64, 
+	0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x64, 0x69, 0x72, 
+	0x65, 0x63, 0x74, 0x6c, 0x79, 0x20, 0x66, 0x72, 0x6f, 0x6d, 
+	0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x65, 0x62, 0x20, 0x62, 
+	0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x2e, 0x20, 0x49, 0x74, 
+	0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0xa, 
+	0x9, 0x20, 0x20, 0x20, 0x20, 0x4a, 0x61, 0x76, 0x61, 0x20, 
+	0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x74, 0x75, 0x72, 0x6e, 
+	0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x74, 
+	0x68, 0x65, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 
+	0x2e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x2f, 0x70, 0x3e, 0xa, 
+	0x9, 0x20, 0x20, 0x3c, 0x70, 0x3e, 0xa, 0x9, 0x20, 0x20, 
+	0x20, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x61, 0x73, 0x6b, 
+	0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x70, 
+	0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2c, 0x20, 0x6a, 
+	0x75, 0x73, 0x74, 0x20, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x20, 
+	0x74, 0x68, 0x65, 0x20, 0x22, 0x4f, 0x6b, 0x22, 0x20, 0x62, 
+	0x75, 0x74, 0x74, 0x6f, 0x6e, 0xa, 0x9, 0x20, 0x20, 0x20, 
+	0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x74, 
+	0x79, 0x70, 0x69, 0x6e, 0x67, 0x20, 0x69, 0x6e, 0x20, 0x61, 
+	0x6e, 0x79, 0x20, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 
+	0x64, 0x2e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x2f, 0x70, 0x3e, 
+	0xa, 0x9, 0x20, 0x20, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 
+	0x72, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x62, 
+	0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 
+	0x23, 0x22, 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 
+	0x3d, 0x27, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6f, 
+	0x70, 0x65, 0x6e, 0x28, 0x22, 0x76, 0x6e, 0x63, 0x6a, 0x61, 
+	0x76, 0x61, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x2c, 0xa, 
+	0x9, 0x20, 0x20, 0x20, 0x20, 0x22, 0x43, 0x6f, 0x6e, 0x74, 
+	0x69, 0x6b, 0x69, 0x22, 0x2c, 0xa, 0x9, 0x20, 0x20, 0x20, 
+	0x20, 0x22, 0x74, 0x6f, 0x6f, 0x6c, 0x62, 0x61, 0x72, 0x3d, 
+	0x6e, 0x6f, 0x2c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 
+	0x6e, 0x3d, 0x6e, 0x6f, 0x2c, 0x73, 0x74, 0x61, 0x74, 0x75, 
+	0x73, 0x3d, 0x79, 0x65, 0x73, 0x2c, 0x6d, 0x65, 0x6e, 0x75, 
+	0x62, 0x61, 0x72, 0x3d, 0x6e, 0x6f, 0x2c, 0x73, 0x63, 0x72, 
+	0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x72, 0x73, 0x3d, 0x79, 0x65, 
+	0x73, 0x2c, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, 
+	0x65, 0x3d, 0x79, 0x65, 0x73, 0x22, 0x29, 0x3b, 0x27, 0x3e, 
+	0x43, 0x6c, 0x69, 0x63, 0x6b, 0xa, 0x9, 0x20, 0x20, 0x20, 
+	0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6c, 
+	0x61, 0x75, 0x6e, 0x63, 0x68, 0x20, 0x69, 0x6e, 0x20, 0x6e, 
+	0x65, 0x77, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x3c, 
+	0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x62, 0x3e, 0x3c, 0x2f, 0x63, 
+	0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xa, 0x9, 0x20, 0x20, 
+	0x3c, 0x62, 0x72, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 
+	0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x3c, 0x62, 
+	0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 
+	0x76, 0x6e, 0x63, 0x6a, 0x61, 0x76, 0x61, 0x2e, 0x68, 0x74, 
+	0x6d, 0x6c, 0x22, 0x3e, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x20, 
+	0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x61, 
+	0x75, 0x6e, 0x63, 0x68, 0x20, 0x69, 0x6e, 0xa, 0x9, 0x20, 
+	0x20, 0x20, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 
+	0x6e, 0x64, 0x6f, 0x77, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 
+	0x62, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 
+	0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xa, 0xa, 0x9, 
+	0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x3e, 0xa, 0x9, 0x20, 
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x73, 
+	0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x69, 0x73, 0x20, 0x61, 
+	0x62, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x6b, 0x65, 0x65, 
+	0x70, 0x20, 0x38, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 
+	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x75, 0x70, 0x2e, 0x20, 
+	0x49, 0x6e, 0x20, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 
+	0x6f, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 
+	0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x70, 
+	0x6f, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 
+	0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 
+	0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 
+	0x65, 0x61, 0x63, 0x68, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 
+	0x69, 0x73, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 
+	0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 
+	0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 
+	0x74, 0x68, 0x65, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 
+	0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x73, 0x68, 
+	0x6f, 0x72, 0x74, 0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x2e, 
+	0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x70, 0x3e, 
+	0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0xa, 0x9, 0x20, 0x20, 
+	0x20, 0x20, 0x3c, 0x68, 0x33, 0x3e, 0x44, 0x6f, 0x77, 0x6e, 
+	0x6c, 0x6f, 0x61, 0x64, 0x20, 0x56, 0x4e, 0x43, 0x20, 0x63, 
+	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x3c, 0x2f, 0x68, 0x33, 0x3e, 
+	0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x3e, 0xa, 
+	0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x66, 0x20, 
+	0x79, 0x6f, 0x75, 0x20, 0x64, 0x6f, 0x6e, 0x27, 0x74, 0x20, 
+	0x68, 0x61, 0x76, 0x65, 0x20, 0x4a, 0x61, 0x76, 0x61, 0x20, 
+	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x2c, 
+	0x20, 0x79, 0x6f, 0x75, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x64, 
+	0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x61, 0xa, 
+	0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x72, 0x65, 
+	0x65, 0x20, 0x56, 0x4e, 0x43, 0x20, 0x63, 0x6c, 0x69, 0x65, 
+	0x6e, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 
+	0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x3c, 0x61, 0xa, 0x9, 
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x72, 0x65, 0x66, 
+	0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 
+	0x77, 0x77, 0x2e, 0x72, 0x65, 0x61, 0x6c, 0x76, 0x6e, 0x63, 
+	0x2e, 0x63, 0x6f, 0x6d, 0x22, 0x3e, 0x52, 0x65, 0x61, 0x6c, 
+	0x56, 0x4e, 0x43, 0x3c, 0x2f, 0x61, 0x3e, 0x2e, 0x20, 0x53, 
+	0x74, 0x61, 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0xa, 0x9, 
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x72, 0x6f, 0x67, 
+	0x72, 0x61, 0x6d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x3c, 
+	0x62, 0x3e, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x2d, 
+	0x64, 0x65, 0x6d, 0x6f, 0x2e, 0x73, 0x69, 0x63, 0x73, 0x2e, 
+	0x73, 0x65, 0x3a, 0x30, 0x3c, 0x2f, 0x62, 0x3e, 0x20, 0x61, 
+	0x73, 0x20, 0x74, 0x68, 0x65, 0xa, 0x9, 0x20, 0x20, 0x20, 
+	0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 
+	0x2e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x70, 
+	0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0xa, 0x9, 0x20, 0x20, 
+	0x20, 0x3c, 0x68, 0x33, 0x3e, 0x55, 0x6e, 0x69, 0x78, 0x2f, 
+	0x58, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x3c, 
+	0x2f, 0x68, 0x33, 0x3e, 0xa, 0x20, 0x9, 0x20, 0x20, 0x20, 
+	0x3c, 0x70, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 
+	0x55, 0x6e, 0x69, 0x78, 0x2f, 0x58, 0x20, 0x56, 0x4e, 0x43, 
+	0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x6e, 
+	0x65, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x3c, 0x74, 
+	0x74, 0x3e, 0x2d, 0x62, 0x67, 0x72, 0x32, 0x33, 0x33, 0x3c, 
+	0x2f, 0x74, 0x74, 0x3e, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 
+	0x6e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x6f, 
+	0x20, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x20, 0x55, 0x73, 0x65, 
+	0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 
+	0x77, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 
+	0x6e, 0x64, 0x3a, 0xa, 0x9, 0x20, 0x20, 0x20, 0x3c, 0x2f, 
+	0x70, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x3c, 0x63, 0x65, 
+	0x6e, 0x74, 0x65, 0x72, 0x3e, 0x3c, 0x74, 0x74, 0x3e, 0x76, 
+	0x6e, 0x63, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x20, 0x2d, 
+	0x62, 0x67, 0x72, 0x32, 0x33, 0x33, 0x20, 0x63, 0x6f, 0x6e, 
+	0x74, 0x69, 0x6b, 0x69, 0x2d, 0x64, 0x65, 0x6d, 0x6f, 0x2e, 
+	0x73, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65, 0x3a, 0x30, 0x3c, 
+	0x2f, 0x74, 0x74, 0x3e, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 
+	0x65, 0x72, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x70, 0x20, 
+	0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x72, 0x69, 0x67, 
+	0x68, 0x74, 0x22, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x20, 0x20, 
+	0x2f, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 
+	0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x75, 0x6e, 
+	0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 
+	0x64, 0x61, 0x6d, 0x2f, 0x22, 0x3e, 0x41, 0x64, 0x61, 0x6d, 
+	0x20, 0x44, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x3c, 0x2f, 
+	0x61, 0x3e, 0xa, 0x9, 0x20, 0x20, 0x3c, 0x2f, 0x70, 0x3e, 
+	0xa, 0x20, 0x20, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 
+	0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, };
+
+static prog_char data_vncviewer_jar[] = {
+	/* /vncviewer.jar */
+	0x2f, 0x76, 0x6e, 0x63, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x2e, 0x6a, 0x61, 0x72, 0,
+	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 
+	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 
+	0x76, 0x65, 0x72, 0x3a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
+	0x6b, 0x69, 0x2f, 0x70, 0x72, 0x65, 0x2d, 0x31, 0x2e, 0x31, 
+	0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 
+	0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 
+	0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 
+	0x69, 0x6b, 0x69, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 
+	0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 
+	0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x70, 0x6c, 0x61, 0x69, 
+	0x6e, 0xd, 0xa, 0xd, 0xa, 0x50, 0x4b, 0x3, 0x4, 0xa, 
+	00, 00, 00, 00, 00, 0x16, 0xa9, 0xda, 0x2c, 00, 
+	00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 
+	00, 0x9, 00, 00, 00, 0x4d, 0x45, 0x54, 0x41, 0x2d, 
+	0x49, 0x4e, 0x46, 0x2f, 0x50, 0x4b, 0x3, 0x4, 0xa, 00, 
+	00, 00, 00, 00, 0x16, 0xa9, 0xda, 0x2c, 0x1e, 0xb9, 
+	0xd9, 0x17, 0x2d, 00, 00, 00, 0x2d, 00, 00, 00, 
+	0x14, 00, 00, 00, 0x4d, 0x45, 0x54, 0x41, 0x2d, 0x49, 
+	0x4e, 0x46, 0x2f, 0x4d, 0x41, 0x4e, 0x49, 0x46, 0x45, 0x53, 
+	0x54, 0x2e, 0x4d, 0x46, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 
+	0x73, 0x74, 0x2d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 
+	0x3a, 0x20, 0x31, 0x2e, 0x30, 0xa, 0x43, 0x72, 0x65, 0x61, 
+	0x74, 0x65, 0x64, 0x2d, 0x42, 0x79, 0x3a, 0x20, 0x30, 0x2e, 
+	0x39, 0x32, 0x2d, 0x67, 0x63, 0x63, 0xa, 0xa, 00, 0x50, 
+	0x4b, 0x3, 0x4, 0xa, 00, 00, 00, 0x8, 00, 0xe3, 
+	0xa5, 0xda, 0x2c, 0x5f, 0xeb, 0x71, 0x9a, 0xd7, 0xd, 00, 
+	00, 0x8, 0x19, 00, 00, 0xf, 00, 00, 00, 0x76, 
+	0x6e, 0x63, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x2e, 0x63, 
+	0x6c, 0x61, 0x73, 0x73, 0x8d, 0x57, 0xb, 0x7c, 0x5c, 0x65, 
+	0x95, 0xff, 0x9f, 0xcc, 0x24, 0xf7, 0xe6, 0xf6, 0xb6, 0x99, 
+	0x4e, 0x9b, 0xb4, 0xa1, 0x25, 0xc, 0x2d, 0xa5, 0xc9, 0xa4, 
+	0x69, 0xa4, 0x90, 0x82, 0xd, 0x6d, 0x69, 0xd2, 0xa6, 0x1d, 
+	0x48, 0x93, 0x90, 0xf4, 0x41, 0x5a, 0x1e, 0xbd, 0x99, 0xb9, 
+	0x49, 0xa6, 0x9d, 0xdc, 0x19, 0xee, 0xdc, 0x49, 0x9a, 0xf2, 
+	0x70, 0x15, 0x5d, 0x5d, 0xb5, 0x2e, 0xec, 0xaa, 0xbb, 0xc5, 
+	0x67, 0x5, 0xd, 0x50, 0x94, 0x16, 0x9a, 0x69, 0x35, 0x55, 
+	0x4, 0x56, 0x50, 0xc4, 0x15, 0x4, 0x77, 0x75, 0x57, 0x59, 
+	0x16, 0x9f, 0xab, 0xeb, 0x1b, 0xd7, 0x7d, 0x9, 0x9e, 0x73, 
+	0xef, 0xbc, 0x92, 0xe, 0xbf, 0x9f, 0xc9, 0x6f, 0xbe, 0xef, 
+	0xbb, 0xe7, 0x3b, 0xe7, 0x7c, 0xe7, 0xfd, 0x9d, 0xef, 0xd9, 
+	0xd7, 0xbf, 0xf0, 0x25, 0xf8, 0xd0, 0x42, 0xef, 0xd2, 0x30, 
+	0x89, 0x7, 0xaa, 0x71, 0x18, 0xf, 0xca, 0xf0, 0x90, 0xc6, 
+	0xc3, 0x9, 0x5, 0xf, 0x6b, 0xa8, 0xf4, 0xc0, 0x9f, 0x55, 
+	0xf0, 0x39, 0xd, 0x2a, 0x1e, 0x91, 0x8f, 0x93, 0xb2, 0x3a, 
+	0xa5, 0xe0, 0x51, 0xd, 0xba, 0xb7, 0xfd, 0x98, 0x86, 0xd3, 
+	0x98, 0x56, 0x90, 0xd5, 0x10, 0xf0, 0x20, 0x67, 0x14, 0x9c, 
+	0xd5, 0xb0, 0x8, 0x9f, 0x57, 0xf0, 0x5, 0x15, 0x33, 0x1a, 
+	0x6a, 0x71, 0x4e, 0xe0, 0x5f, 0xd4, 0xf0, 0x25, 0x3c, 0x2e, 
+	0xe8, 0x5f, 0x56, 0xf0, 0x84, 0x86, 0x65, 0x82, 0xbe, 0xc, 
+	0x4f, 0xca, 0xf0, 0x94, 0xf0, 0xfb, 0x7, 0x39, 0xfb, 0x2b, 
+	0x32, 0x3c, 0xad, 0xe0, 0x19, 0xd, 0x2b, 0xf0, 0x55, 0xd9, 
+	0xfb, 0x9a, 0xc, 0xcf, 0xa, 0xdd, 0xd7, 0x85, 0xc3, 0x73, 
+	0xb2, 0xf1, 0xd, 0x5, 0xff, 0xa8, 0xe1, 0x9b, 0x78, 0x5e, 
+	0x86, 0x17, 0x84, 0xe4, 0x5b, 0x82, 0xf5, 0xa2, 0xc, 0x2f, 
+	0x69, 0xf8, 0x36, 0xfe, 0x49, 0xc1, 0x3f, 0x2b, 0xf8, 0x8e, 
+	0x9c, 0xfb, 0x5d, 0x19, 0xfe, 0x45, 0xc3, 0x65, 0xf8, 0x57, 
+	0x59, 0x7d, 0x4f, 0x56, 0xdf, 0xaf, 0xc6, 0xcb, 0xf8, 0x37, 
+	0x5, 0xaf, 0x68, 0xb8, 0xa, 0xf, 0xa8, 0xf8, 0x77, 0x99, 
+	0x5f, 0xad, 0xe6, 0x9d, 0x1f, 0xc8, 0xea, 0x87, 0x2a, 0x7e, 
+	0x24, 0x1f, 0x3f, 0x96, 0xf, 0x66, 0xff, 0x13, 0xfc, 0x54, 
+	0xa8, 0xfe, 0x43, 0x86, 0x9f, 0xa9, 0xf8, 0xb9, 0xec, 0xfd, 
+	0xa7, 0x86, 0x5f, 0xe0, 0x97, 0xd5, 0x6c, 0xa6, 0x5f, 0x69, 
+	0xf8, 0x35, 0x7e, 0xa3, 0xe1, 0xb7, 0xf8, 0x9d, 0xc, 0xaf, 
+	0x89, 0xe9, 0x7e, 0x2f, 0xab, 0xff, 0x12, 0xbc, 0x3f, 0x68, 
+	0xf8, 0x6f, 0xfc, 0x8f, 0x20, 0xff, 0xaf, 0x8a, 0xff, 0x53, 
+	0xf1, 0xff, 0xa, 0xfe, 0xa8, 0xe2, 0x75, 0xd, 0xfd, 0x38, 
+	0xa7, 0xe2, 0xd, 0xd6, 0x8b, 0xa0, 0x12, 0x31, 0x6b, 0xaa, 
+	0x90, 0xc1, 0xa7, 0x92, 0x9f, 0xe9, 0xa8, 0x52, 0xa5, 0x2a, 
+	0x99, 0x15, 0x95, 0x54, 0x99, 0xab, 0x59, 0x4b, 0xd2, 0x58, 
+	0x3, 0x9a, 0x27, 0x9f, 0xba, 0xe0, 0xce, 0xaf, 0xa6, 0x5, 
+	0x54, 0xa3, 0x52, 0x40, 0xb8, 0x2c, 0x14, 0x48, 0x50, 0xa1, 
+	0x45, 0x2a, 0x2d, 0xd6, 0x30, 0x8a, 0x73, 0xec, 0x2b, 0xaa, 
+	0x55, 0xa9, 0x4e, 0x8, 0x97, 0xb0, 0x9b, 0x69, 0xa9, 0x46, 
+	0xf5, 0x74, 0x81, 0x4a, 0xcb, 0x58, 0x38, 0x5a, 0xae, 0xd2, 
+	0x85, 0x2a, 0x35, 0x68, 0x74, 0x11, 0x85, 0x64, 0xf3, 0x62, 
+	0x95, 0x56, 0x8, 0xc5, 0x4a, 0x85, 0x2e, 0x51, 0x68, 0x95, 
+	0x42, 0x97, 0x12, 0xfc, 0xa3, 0xc9, 0xb4, 0x43, 0x8, 0x76, 
+	0x1f, 0x34, 0xc6, 0x8d, 0xd6, 0x84, 0x61, 0x8d, 0xb4, 0xe, 
+	0x38, 0x76, 0xdc, 0x1a, 0x69, 0xe7, 0xbd, 0x54, 0xd2, 0xe6, 
+	0x3d, 0x8a, 0x10, 0x7c, 0xf6, 0xf0, 0x10, 0x41, 0xeb, 0xe6, 
+	0xa9, 0xcf, 0x4e, 0x3a, 0x49, 0xde, 0xad, 0xe6, 0xf5, 0xae, 
+	0x51, 0xdb, 0x34, 0x62, 0xb3, 0xc9, 0x3d, 0x18, 0x23, 0x28, 
+	0x23, 0x76, 0x3c, 0x36, 0x64, 0x8c, 0x10, 0x96, 0x7a, 0xdb, 
+	0xc6, 0x84, 0xd3, 0xba, 0x9d, 0x61, 0x1d, 0xc6, 0x48, 0xb7, 
+	0x31, 0x99, 0xcc, 0x38, 0x8c, 0x34, 0x6f, 0x28, 0xe3, 0x38, 
+	0x49, 0xab, 0xcf, 0xb0, 0xcc, 0x4, 0x21, 0x50, 0x44, 0x74, 
+	0x21, 0x8c, 0x10, 0x88, 0xc5, 0xd3, 0xd1, 0xa4, 0x65, 0x99, 
+	0x51, 0xa7, 0xc3, 0x45, 0x25, 0x2c, 0x2c, 0x62, 0x79, 0x20, 
+	0x46, 0x9b, 0x6f, 0x64, 0x9c, 0x51, 0xd3, 0x72, 0xe2, 0x51, 
+	0xc3, 0x49, 0xda, 0x84, 0xda, 0xee, 0x12, 0x40, 0x3c, 0x77, 
+	0x80, 0x48, 0x6d, 0x5a, 0xd1, 0x64, 0x8c, 0xf5, 0x4b, 0x13, 
+	0x2a, 0xf6, 0xb3, 0x66, 0x9a, 0xb5, 0xad, 0x8, 0x51, 0x47, 
+	0x92, 0x4e, 0x57, 0x32, 0x9a, 0xe1, 0x25, 0xed, 0x23, 0x54, 
+	0x5d, 0x1d, 0xb7, 0xe2, 0xce, 0x26, 0x56, 0xbf, 0xb1, 0x69, 
+	0xf, 0xdb, 0xa3, 0x33, 0x19, 0x33, 0x9, 0x35, 0xdd, 0x71, 
+	0xcb, 0xec, 0xc9, 0x8c, 0xd, 0x99, 0xf6, 0x2e, 0x63, 0x28, 
+	0xc1, 0x10, 0xbf, 0xa0, 0x31, 0x7a, 0x26, 0x15, 0x33, 0x1c, 
+	0xfe, 0xae, 0x6b, 0x2c, 0x55, 0xd8, 0x48, 0x8d, 0xc6, 0xa3, 
+	0xe9, 0x76, 0xe1, 0xe0, 0xb3, 0x33, 0x2c, 0x7f, 0x5d, 0x4e, 
+	0x9f, 0x2d, 0x56, 0x6c, 0x4b, 0x51, 0x48, 0xa6, 0xd3, 0xb6, 
+	0x1d, 0x8e, 0x9a, 0x29, 0x11, 0x97, 0x5, 0x58, 0x1a, 0x4b, 
+	0xba, 0xa6, 0x8e, 0x26, 0x13, 0x11, 0x66, 0x1f, 0x37, 0x12, 
+	0xf1, 0xb4, 0xab, 0xa, 0x41, 0x4f, 0x9b, 0x4e, 0x89, 0xd4, 
+	0x55, 0x46, 0xd4, 0x83, 0xaf, 0x2a, 0x39, 0x77, 0xdb, 0x38, 
+	0xf3, 0x6d, 0x2f, 0xf1, 0x4b, 0xef, 0xd0, 0x41, 0x3e, 0xb3, 
+	0xbd, 0x89, 0xf5, 0xaa, 0x4e, 0xb0, 0xd3, 0x73, 0x7a, 0xea, 
+	0x6c, 0x10, 0x7b, 0x32, 0xe5, 0x74, 0x4c, 0x3a, 0x26, 0x7f, 
+	0x2e, 0x69, 0xdc, 0xdf, 0x71, 0x7e, 0x2c, 0x88, 0xec, 0xb, 
+	0xc4, 0xad, 0x7d, 0x86, 0x6d, 0x8c, 0x99, 0x8e, 0x69, 0x33, 
+	0xea, 0xfc, 0x59, 00, 0xc2, 0xea, 0xc6, 0xf3, 0x9, 0xf7, 
+	0x35, 0x95, 0xb, 0x2c, 0x6d, 0xd8, 0x70, 0x8c, 0xc4, 0x36, 
+	0xdb, 0x76, 0x3d, 0x55, 0x86, 0x4c, 0xce, 0xd3, 0x6, 0x92, 
+	0x19, 0x3b, 0x6a, 0x76, 0xc5, 0xc5, 0xc2, 0xb, 0xc6, 0xad, 
+	0xe8, 0x78, 0xdc, 0x9c, 0x30, 0xed, 0xb5, 0x82, 0xac, 0xe3, 
+	0x6e, 0xdc, 0xa3, 0xe3, 0x7d, 0x78, 0xbf, 0x8e, 0xf, 0xe0, 
+	0xaf, 0x75, 0x1c, 0xc7, 0x3d, 0x84, 0x45, 0x65, 0x5c, 0xae, 
+	0xe3, 0xaf, 0xf0, 0x5e, 0x8e, 0xa2, 0xb9, 0xf1, 0xc9, 0x1c, 
+	0x68, 0xb5, 0x8e, 0xb7, 0xe3, 0x1d, 0x3a, 0x35, 0xa, 0x71, 
+	0x5d, 0xf9, 0x10, 0xd5, 0x71, 0x17, 0xde, 0xa9, 0x50, 0x93, 
+	0x4e, 0x61, 0x6a, 0x66, 0x39, 0x66, 0xc7, 0xa7, 0x8e, 0x77, 
+	0xe1, 0x2f, 0xf9, 0xe0, 0x2, 0xb4, 0x2b, 0x91, 0x9c, 0xc8, 
+	0x13, 0xde, 0x4d, 0x6b, 0x38, 0x58, 0xe6, 0x84, 0x2a, 0xeb, 
+	0xb5, 0xb5, 0x10, 0xd0, 0xa2, 0xc6, 0xa7, 0x75, 0xbc, 0x1b, 
+	0xef, 0x51, 0xa8, 0x45, 0xa7, 0xb5, 0xac, 0x13, 0xb5, 0xd2, 
+	0x5b, 0x8, 0xcb, 0xe6, 0xa, 0xd3, 0xc9, 0x21, 0xe1, 0xd8, 
+	0x46, 0xdc, 0x72, 0xd2, 0x3a, 0x5d, 0x86, 0x3b, 0x75, 0x5a, 
+	0x27, 0xc3, 0xe5, 0x74, 0x85, 0x8e, 0xbf, 0x17, 0x53, 0xdc, 
+	0x2b, 0x3a, 0x54, 0xb3, 0x95, 0x3a, 0xd, 0x6b, 0xdc, 0x48, 
+	0xcb, 0xe9, 0x6d, 0x3a, 0xad, 0xa7, 0x2b, 0x75, 0xba, 0x4a, 
+	0x86, 0xb7, 0xa, 0xef, 0xd, 0x32, 0xb4, 0xbb, 0xa6, 0x2a, 
+	0xda, 0xa3, 0x10, 0x73, 0xa, 0x5d, 0xad, 0xd3, 0x46, 0x41, 
+	0xd9, 0x44, 0x9b, 0x75, 0xdc, 0xcf, 0xa2, 0xd1, 0x35, 0x72, 
+	0xca, 0x16, 0xdc, 0xa9, 0x50, 0x87, 0x4e, 0x9d, 0x42, 0xd9, 
+	0x50, 0xa4, 0x8c, 0x58, 0xec, 0x77, 0x3b, 0x93, 0x72, 0xcc, 
+	0x58, 0x81, 0x9, 0xe7, 0x50, 0xbe, 0x46, 0xe8, 0xb8, 0xd, 
+	0xb7, 0xeb, 0xb8, 0x83, 0x59, 0xb0, 0x34, 0x5b, 0x75, 0xbc, 
+	0xd, 0x7f, 0xa1, 0xd3, 0x36, 0xdc, 0xa3, 0x50, 0x97, 0x4e, 
+	0xdb, 0x69, 0x47, 0xde, 0xe8, 0x25, 0x9e, 0xef, 0xc8, 0xc, 
+	0xf, 0x4b, 0x2c, 0xad, 0xea, 0xef, 0xea, 0x8, 0xa5, 0x4d, 
+	0x7b, 0xdc, 0xb4, 0x43, 0xe9, 0x4c, 0x4a, 0xa, 0x51, 0x3a, 
+	0x94, 0xca, 0xa5, 0x43, 0x88, 0xa1, 0x69, 0x3e, 0x2b, 0xa4, 
+	0x73, 0x69, 0xba, 0x56, 0xa7, 0xeb, 0x44, 0xc8, 0x8, 0x75, 
+	0x73, 0xd2, 0xae, 0xd5, 0x69, 0xa7, 0x48, 0xdb, 0xa3, 0x53, 
+	0xaf, 0xc8, 0xdf, 0x27, 0xea, 0x5c, 0x4f, 0xfd, 0x9c, 0x4e, 
+	0x3d, 0xc9, 0xd0, 0xec, 0xf8, 0x8, 0x59, 0xa6, 0x19, 0x33, 
+	0x63, 0x3a, 0xd, 0xd0, 0x2e, 0x85, 0x76, 0xeb, 0xb4, 0x87, 
+	0xf6, 0xea, 0x74, 0x3, 0xd, 0x2a, 0xb4, 0x4f, 0xa7, 0xfd, 
+	0xb4, 0x59, 0xa1, 0x1b, 0x75, 0xba, 0x89, 0xfa, 0x75, 0xba, 
+	0x99, 0x6e, 0xd1, 0xe9, 0x80, 0xf0, 0x32, 0x68, 0x48, 0xa7, 
+	0x28, 0xc5, 0x14, 0x32, 0x75, 0x1a, 0x16, 0x82, 0x11, 0xe1, 
+	0xbe, 0x7c, 0x4f, 0x4f, 0xe7, 0x5c, 0xf6, 0xe9, 0x4c, 0x34, 
+	0xea, 0x9e, 0x40, 0xa8, 0x2f, 0xb3, 0x3d, 0x6c, 0x70, 0x64, 
+	0xc7, 0xf2, 0xae, 0x88, 0x27, 0x5b, 0x23, 0xbd, 0x25, 0x56, 
+	0xc, 0xbf, 0x29, 0x45, 0xa8, 0x25, 0xe4, 0x24, 0x93, 0xa1, 
+	0x31, 0xc3, 0x9a, 0xc, 0xb1, 0xcd, 0x24, 0x69, 0x57, 0xec, 
+	0xb6, 0xe, 0x59, 0xc9, 0x9, 0x2b, 0x54, 0x86, 0xc8, 0x36, 
+	0xd3, 0x99, 0x84, 0xc3, 0xa6, 0x1a, 0xa5, 0x38, 0x1f, 0x96, 
+	0x36, 0x2d, 0xa9, 0x1a, 0xa1, 0x68, 0x22, 0xce, 0x48, 0x21, 
+	0x29, 0x5c, 0x3a, 0x1d, 0x14, 0xcd, 0xe, 0x89, 0x77, 0x3, 
+	0x5b, 0xcd, 0xf4, 0x21, 0x27, 0x99, 0xa, 0x59, 0x9c, 0xd5, 
+	0xa1, 0x78, 0x9a, 0xe9, 0x12, 0xb8, 0xbd, 0x4, 0x9e, 0x8e, 
+	0x1f, 0xc9, 0xc1, 0xc7, 0x70, 0x27, 0x17, 0xb4, 0xd0, 0x61, 
+	0x5e, 0x5a, 0xe2, 0xe2, 0x8f, 0x48, 0x18, 0x1e, 0x15, 0x57, 
+	0x24, 0x39, 0x23, 0x29, 0x45, 0xb7, 0x2a, 0x64, 0xeb, 0x94, 
+	0x26, 0xae, 0x8c, 0x5a, 0xb1, 0x88, 0xeb, 0x94, 0x91, 0xd3, 
+	0xc6, 0xe5, 0xb4, 0x62, 0x36, 0x75, 0x1b, 0x43, 0x52, 0xff, 
+	0xf5, 0x62, 0x6e, 0x88, 0x63, 0x26, 0x4, 0xc9, 0xbf, 0xa3, 
+	0x77, 0x60, 0x97, 0x8e, 0x4f, 0xe1, 0x3e, 0x9d, 0xe, 0xd3, 
+	0xa4, 0x42, 0x47, 0x74, 0xba, 0x8d, 0x36, 0x13, 0xa0, 0xd3, 
+	0xed, 0x74, 0x7, 0xdb, 0x5e, 0x10, 0x42, 0xa9, 0x7c, 0x21, 
+	0xa, 0x59, 0x49, 0x27, 0x94, 0x4e, 0x99, 0xd1, 0xf8, 0x70, 
+	0x5c, 0xec, 0xeb, 0xef, 0xeb, 0xed, 0x67, 0xff, 0xb2, 0x5c, 
+	0x6f, 0x23, 0x8e, 0xbf, 0xb7, 0xd3, 0x3b, 0x38, 0x18, 0xde, 
+	0xc, 0x5d, 0xa7, 0xbb, 0xe8, 0x9d, 0x5e, 0x22, 0x79, 0xe5, 
+	0x86, 0xef, 0x36, 0x4f, 0xc8, 0x54, 0x2a, 0x61, 0x3a, 0xad, 
+	0x5b, 0xdc, 0x29, 0xf, 0x74, 0x3, 0xb7, 0x3f, 0x63, 0x59, 
+	0xde, 0x35, 0xb0, 0xa4, 0xb4, 0x92, 0xe5, 0xc1, 0x6e, 0x2d, 
+	0xab, 0x4c, 0x3b, 0x86, 0x5d, 0x20, 0x13, 0x85, 0x39, 0xa1, 
+	0x1d, 0x4e, 0x67, 0x39, 0xa0, 0x9a, 0xab, 0xb9, 0x57, 0x33, 
+	0x38, 0xf1, 0x4b, 0x2a, 0xb8, 0x7, 0xdb, 0x69, 0x58, 0xc6, 
+	0x88, 0x69, 0xbb, 0x6c, 0xaa, 0x1a, 0x23, 0x91, 0x88, 0x2c, 
+	0x4a, 0xf9, 0x8c, 0xa5, 0x92, 0x16, 0xbb, 0x92, 0xef, 0x5b, 
+	0x36, 0xb2, 0x27, 0x88, 0xcf, 0x88, 0xb1, 0xe2, 0xe1, 0x12, 
+	0x5e, 0x5, 0xb4, 0xf6, 0xa6, 0x72, 0x40, 0x16, 0x42, 0x2e, 
+	0xeb, 0x89, 0x78, 0xcc, 0x19, 0x95, 0xfb, 0xc4, 0x8a, 0x8e, 
+	0x4a, 0x69, 0x5e, 0xc0, 0x92, 0x95, 0x54, 0x1e, 0xc2, 0x15, 
+	0x65, 0x59, 0x9e, 0x77, 0xbb, 0x97, 0xd0, 0x78, 0x57, 0x47, 
+	0x63, 0x77, 0xc1, 0xa0, 0x2e, 0x40, 0x99, 0x30, 0xe3, 0x23, 
+	0xa3, 0xce, 0x61, 0xce, 0xd8, 0xad, 0x85, 0xaf, 0x49, 0xae, 
+	0x1d, 0xe3, 0x7c, 0xcb, 0x79, 0x77, 0x68, 0x95, 0x99, 0xb3, 
+	0x6a, 0x2d, 0xa7, 0x7d, 0xd4, 0x4c, 0xa7, 0x7b, 0x92, 0xf6, 
+	0x98, 0x91, 0xc8, 0x5f, 0x89, 0xb3, 0x4a, 0x18, 0x97, 0xf4, 
+	0xe4, 0x84, 0x87, 0x5d, 0x93, 0xe2, 0x32, 0xe2, 0xc, 0x38, 
+	0x46, 0xf4, 0xd0, 0x2e, 0xdb, 0x88, 0x32, 0x44, 0x75, 0x92, 
+	0x5e, 0x6d, 0x21, 0x2c, 0x6e, 0x2c, 0x7b, 0x1d, 0x55, 0xc6, 
+	0x53, 0x46, 0xec, 0x70, 0x6e, 0x9e, 0x9c, 0x75, 0x59, 0x78, 
+	0x97, 0x26, 0x7, 0xd1, 0x84, 0x21, 0x37, 0xfc, 0xc5, 0x65, 
+	0xee, 0xaa, 0xc8, 0x1c, 0xdd, 0xdc, 0x7b, 0x72, 0x8f, 0x57, 
+	0xa1, 0x76, 0xa6, 0x47, 0x66, 0xb1, 0x1b, 0x98, 0x4c, 0x3b, 
+	0xe6, 0x18, 0x3b, 0xc8, 0x75, 0x76, 0x6d, 0x77, 0x3e, 0xf5, 
+	0xfb, 0x3c, 0xa1, 0x99, 0x72, 0xac, 0x5d, 0xec, 0x9f, 0x4a, 
+	0x71, 0x9a, 0x12, 0xd6, 0x94, 0xbb, 0x1a, 0xcf, 0x3, 0x79, 
+	0x35, 0x53, 0x7a, 0x29, 0xaf, 0x60, 0xee, 0x34, 0xe, 0x8a, 
+	0xf3, 0x96, 0x35, 0x46, 0xfe, 0xc, 0xdc, 0xb8, 0x25, 0xb8, 
+	0x8b, 0xca, 0x8, 0xc2, 0x7e, 0x71, 0x6d, 0x99, 0xe0, 0x6a, 
+	0x54, 0x33, 0x61, 0xc7, 0x1d, 0xb3, 0x54, 0x29, 0x57, 0x4b, 
+	0xe9, 0x5e, 0x6, 0xa2, 0xa3, 0xe6, 0x98, 0xe9, 0xb6, 0x48, 
+	0xdc, 0x4d, 0x55, 0xc4, 0x39, 0x4a, 0xea, 0xb, 0x7a, 0x6d, 
+	0xe5, 0x7b, 0x3e, 0x62, 0xa5, 0x32, 0x45, 0xdd, 0x96, 0xbc, 
+	0xc9, 0x96, 0xf4, 0x93, 0xcc, 0xb1, 0x2b, 0x93, 0x48, 0xb0, 
+	0x7, 0x2a, 0xb9, 0xb, 0x11, 0x5b, 0xaa, 0x29, 0x23, 0x9d, 
+	0x9e, 0x48, 0xda, 0x6c, 0x8b, 0xc5, 0xc5, 0x28, 0xdb, 0x65, 
+	0x1e, 0x76, 0xba, 0xe2, 0x66, 0x42, 0x9a, 0xcc, 0xba, 0x59, 
+	0xd0, 0xd2, 0x6c, 0x18, 0x31, 0x1d, 0x1, 0xcd, 0xb6, 0x7f, 
+	0x2e, 0x10, 0xaa, 0x12, 0xa6, 0x35, 0x22, 0xa1, 0x5e, 0x9d, 
+	0xce, 0xc, 0xa5, 0x73, 0xc0, 0x3a, 0xce, 0xae, 0xf2, 0xf1, 
+	0x61, 0x9b, 0x8e, 0x2d, 0xd1, 0xc9, 0x2c, 0x73, 0x6d, 0x92, 
+	0xca, 0xb8, 0xfb, 0x3b, 0xdc, 0x5c, 0xac, 0x48, 0xf2, 0x77, 
+	0x5d, 0x41, 0xe5, 0xde, 0x8c, 0x53, 0xaa, 0xef, 0xe2, 0x72, 
+	0x70, 0x66, 0xe9, 0x1a, 0x94, 0xa5, 0x14, 0xa5, 0x23, 0x22, 
+	0x6f, 0x95, 0x6d, 0x8e, 0x25, 0xc7, 0x4b, 0xaa, 0xc8, 0x9c, 
+	0xb4, 0xdd, 0x93, 0xf7, 0x42, 0xa7, 0x5b, 0xb9, 0x23, 0x6e, 
+	0xc7, 0xe9, 0x7a, 0x61, 0xc0, 0xf5, 0xa4, 0x7, 0x98, 0x17, 
+	0xf3, 0xea, 0x74, 0x8f, 0x21, 0x3e, 0x9, 0xc, 0x4b, 0x91, 
+	0x1b, 0x72, 0x7d, 0xbe, 0xd7, 0xcb, 0xed, 0x85, 0x25, 0xa0, 
+	0x1d, 0x6e, 0xda, 0x31, 0x5a, 0xdc, 0x9a, 0x9b, 0x5c, 0xb, 
+	0xdd, 0xa3, 0x6, 0x66, 0xb7, 0x99, 0x8d, 0xfb, 0xbd, 0xea, 
+	0x53, 0x2c, 0xdb, 0x6e, 0x93, 0xc9, 0x3b, 0x5c, 0xdd, 0x46, 
+	0xcc, 0x39, 0xcf, 0x88, 0x5c, 0xbf, 0xe9, 0x3a, 0x56, 0x34, 
+	0xdb, 0x92, 0x60, 0xbe, 0x95, 0x51, 0x6e, 0x3d, 0xa5, 0x63, 
+	0x4e, 0xb3, 0x90, 0x2c, 0xee, 0x88, 0x14, 0x98, 0x98, 0xd9, 
+	0x61, 0x8, 0x30, 0x90, 0x4f, 0x4f, 0x8b, 0x2b, 0xed, 0xee, 
+	0xfe, 0x6e, 0xa6, 0xd5, 0x4b, 0xbf, 0x3d, 0xa7, 0xee, 0x70, 
+	0x1f, 0x2c, 0x55, 0xe6, 0xad, 0x19, 0x23, 0x91, 0x9e, 0xd3, 
+	0x3e, 0x96, 0xf4, 0xb8, 0xb, 0x67, 0xf7, 0x29, 0x23, 0x52, 
+	0x69, 0x39, 0x9c, 0xec, 0xb4, 0xe9, 0x9a, 0xbb, 0x6c, 0xd7, 
+	0xc9, 0x1, 0xac, 0xf3, 0x9, 0x25, 0x3d, 0xed, 0xa5, 0x7f, 
+	0x56, 0x6, 0xca, 0xfb, 0x23, 0x9a, 0xb1, 0x6d, 0x36, 0x46, 
+	0xfe, 0x45, 0x34, 0xbb, 0xd4, 0xe4, 0xde, 0x44, 0xb8, 0x98, 
+	0x5f, 0xa7, 0x93, 0x20, 0x1c, 0xc1, 0x3c, 0x40, 0xda, 0x23, 
+	0xc8, 0x1f, 0x77, 0x48, 0xee, 0xcc, 0xfd, 0x91, 0x3b, 0x73, 
+	0x53, 0xea, 0xce, 0xdc, 0x79, 0xba, 0x33, 0xf7, 0x98, 0xee, 
+	0xcc, 0x7d, 0xa2, 0x3b, 0x73, 0x47, 0xeb, 0xce, 0xdc, 0xfe, 
+	0xba, 0xf3, 0xd1, 0x1c, 0x3d, 0x77, 0xc2, 0x3c, 0x2e, 0x60, 
+	0xfe, 0xdc, 0x1d, 0xf3, 0xf8, 0x37, 0xfc, 0xb5, 0x1e, 0x15, 
+	0xbc, 0x2, 0x82, 0xe1, 0x33, 0xa0, 0x70, 0x40, 0x3b, 0xa7, 
+	0x4d, 0xa3, 0x22, 0xec, 0x9b, 0x86, 0xef, 0x14, 0x43, 0x9, 
+	0x7f, 0x2b, 0x7b, 0xf0, 0xf3, 0x78, 0x21, 0xfc, 0x54, 0xc3, 
+	0x77, 0x6a, 0x1a, 0xb, 0x79, 0x4d, 0xf8, 0x60, 0x81, 0xc7, 
+	0x75, 0xbc, 0x2f, 0x3c, 0x56, 0x86, 0xb3, 0xf0, 0x87, 0x67, 
+	0x50, 0x39, 0x78, 0x6, 0x55, 0xd3, 0x50, 0x78, 0xa9, 0xe, 
+	0x32, 0xdf, 0xea, 0x69, 0x68, 0xe1, 0xd3, 0xd0, 0xb2, 0x98, 
+	0x57, 0x64, 0x5a, 0xc7, 0x4f, 0x64, 0xe0, 0x5a, 0x26, 0xed, 
+	0x41, 0xd, 0xfa, 0xf8, 0xd5, 0x7e, 0x3d, 0xbf, 0xea, 0xfb, 
+	0x79, 0xf7, 0x43, 0xf8, 0x70, 0x8e, 0x71, 0x3d, 0xff, 0x2a, 
+	0x84, 0xa2, 0x48, 0x56, 0xe5, 0x9e, 0xb4, 0x9b, 0xc7, 0xbf, 
+	0xcb, 0x9f, 0xcf, 0xfd, 0x67, 0x15, 0x7c, 0xc, 0x7d, 0x82, 
+	0xf, 0xd4, 0xf9, 0xec, 0xf9, 0xd3, 0x58, 0x10, 0xe6, 0x3, 
+	0x17, 0x64, 0x51, 0xc3, 0xa0, 00, 0x83, 0x16, 0x4e, 0xb3, 
+	0x86, 0xa7, 0x11, 0x9c, 0xc1, 0xa2, 0x41, 0x9f, 0xcf, 0x77, 
+	0x6, 0x8b, 0xbd, 0xbd, 0xda, 0xc1, 0x60, 0xdd, 0x19, 0x2c, 
+	0x99, 0xc6, 0x52, 0xde, 0x5d, 0x9a, 0x45, 0xbd, 0x20, 0x79, 
+	0xcb, 0xb, 0xf6, 0xce, 0x60, 0x19, 0x93, 0x2e, 0xef, 0x6e, 
+	0x66, 0x73, 0x5c, 0xd8, 0x1c, 0x8, 0x4e, 0xa3, 0x41, 0xb8, 
+	0xa, 0x4a, 0x73, 0x16, 0x17, 0xc9, 0x11, 0x41, 0xc1, 0x63, 
+	0xb5, 0x43, 0xfc, 0xbb, 0x78, 0x6, 0x2b, 0x44, 0xdd, 0x95, 
+	0x3b, 0x9b, 0x6b, 0xa6, 0x71, 0x89, 0xc, 0xab, 0x4, 0x7f, 
+	0x8d, 0x8b, 0xbc, 0x26, 0x87, 0x79, 0xa9, 0xc7, 0x7d, 0x35, 
+	0x7f, 0x37, 0x4e, 0x21, 0xb0, 0x93, 0xe7, 0xb0, 0x6c, 0x32, 
+	0xd2, 0x9a, 0x53, 0xac, 0xd0, 0x4, 0x4e, 0xe2, 0x31, 0x34, 
+	0xe5, 0xd4, 0x1d, 0x76, 0x6d, 0x70, 0x13, 0x87, 0xc3, 0xcd, 
+	0x58, 0x84, 0x3, 0x68, 0x80, 0x81, 0x56, 0xc, 0xe1, 0x6a, 
+	0x44, 0xd1, 0x89, 0x18, 0x7a, 0x61, 0x61, 0x2f, 0x92, 0xb8, 
+	0x11, 0x29, 0x86, 0xde, 0xca, 0x5f, 0x36, 0x73, 0xc8, 0x70, 
+	0xe8, 0x4c, 0x70, 0xb8, 0x4c, 0x72, 0x40, 0x1c, 0x61, 0xf7, 
+	0xdf, 0xc6, 0x66, 0xba, 0x9d, 0x1b, 0xb0, 0x3b, 0xf8, 0x1d, 
+	0x74, 0x17, 0x3e, 0xcd, 0xe1, 0xf2, 0x30, 0x87, 0xc8, 0x63, 
+	0xbc, 0x73, 0x96, 0x83, 0xe2, 0xcb, 0x6c, 0x48, 0xc8, 0x2b, 
+	0x81, 0x6d, 0xcd, 0xe6, 0xac, 0x78, 0x96, 0xcd, 0x59, 0xcd, 
+	0x66, 0x7d, 0xb9, 0x8c, 0xfe, 0x45, 0xcd, 0x9a, 0x3, 0xb1, 
+	0x69, 0xb4, 0x34, 0x7, 0xd6, 0x4d, 0x63, 0x6d, 0xce, 0x2a, 
+	0x4a, 0xde, 0x2a, 0x4a, 0x5e, 0x57, 0xdf, 0xc6, 0x29, 0x3a, 
+	0x2a, 0x80, 0x9e, 0x96, 0x27, 0x3d, 0x78, 0xeb, 0x14, 0x2a, 
+	0x37, 0xf8, 0x5b, 0x9e, 0x9a, 0x82, 0xb6, 0xa1, 0xb2, 0xe5, 
+	0xa9, 0xfa, 0xca, 0xc7, 0xd9, 0xb, 0x97, 0xd, 0xf2, 0xe6, 
+	0x3a, 0xfe, 0x5d, 0xce, 0xe6, 0xbb, 0x62, 0x1a, 0x6d, 0xbc, 
+	0x6c, 0xcb, 0x62, 0xfd, 0xa3, 0xb8, 0x72, 0x6, 0x57, 0xb1, 
+	0xc, 0x6f, 0xd, 0x6e, 0xc8, 0xa2, 0x5d, 0xa0, 0xa7, 0x71, 
+	0x75, 0x16, 0x1b, 0x83, 0x9b, 0xa, 0x9f, 0x9b, 0xf9, 0x33, 
+	0x8b, 0x6b, 0xb2, 0xd8, 0xe2, 0x11, 0x75, 0x78, 0x53, 0xe7, 
+	0x9, 0x89, 0x78, 0x5a, 0x9c, 0x8f, 0x20, 0xfe, 0x2d, 0xcb, 
+	0xad, 0x1b, 0x99, 0x6d, 0x70, 0x2b, 0x13, 0xf8, 0x37, 0x4e, 
+	0xe1, 0x57, 0x81, 0xc0, 0x39, 0x75, 0x83, 0xdf, 0xe3, 0xb5, 
+	0xad, 0xde, 0x9f, 0x45, 0x97, 0x8, 0x7a, 0x1a, 0xdb, 0xb3, 
+	0xd8, 0xb1, 0xa1, 0xb2, 0xbe, 0x32, 0x8b, 0x48, 0x40, 0xbd, 
+	0x1f, 0xf3, 0xeb, 0x2b, 0x7d, 0x1, 0x35, 0x8b, 0x6b, 0x73, 
+	0xb0, 0x7b, 0x31, 0xdf, 0x53, 0xe8, 0xba, 0x29, 0x9c, 0x8, 
+	0xa8, 0xcc, 0xa3, 0x8a, 0x31, 0xdc, 0xad, 0xfa, 0x2a, 0x5f, 
+	0x16, 0xdd, 0xee, 0x72, 0xbd, 0x32, 0x5, 0xbd, 0xbe, 0xaa, 
+	0x56, 0xf1, 0xed, 0xe2, 0x47, 0x62, 0xad, 0x12, 0x50, 0x8f, 
+	0xbf, 0xf1, 0x3b, 0xef, 0xac, 0x9d, 0x72, 0x56, 0x4f, 0xee, 
+	0xdc, 0x2c, 0x7a, 0xd7, 0xab, 0xb5, 0xea, 0x43, 0x6e, 0x9a, 
+	0x6e, 0x85, 0xf7, 0x57, 0x91, 0x93, 0xb9, 0x91, 0x7f, 0x1b, 
+	0x44, 0xe6, 0xbe, 0x9c, 0xcc, 0xed, 0xf2, 0x71, 0xbd, 0xa7, 
+	0xb1, 0x27, 0x41, 0xd3, 0xc, 0xfa, 0x7, 0x83, 0x3, 0x67, 
+	0xb0, 0xeb, 0x71, 0x59, 0xe5, 0x8d, 0xb6, 0x9b, 0xad, 0x54, 
+	0xab, 0x7a, 0x6, 0x92, 0xbd, 0xe5, 0xc7, 0x5e, 0xcf, 0xe4, 
+	0xfc, 0xb3, 0xe7, 0x14, 0xf3, 0xef, 0xe1, 0x44, 0xba, 0x1, 
+	0x6f, 0xe1, 0xf9, 0x16, 0xfe, 0xcf, 0xa7, 0xd8, 0xb3, 0x58, 
+	0xc7, 0xe3, 0xbd, 0x50, 0x39, 0x62, 0xe6, 0xe3, 0xa3, 0x1c, 
+	0x77, 0x1f, 0xc3, 0x52, 0x7c, 0x9c, 0x93, 0xfe, 0x13, 0x58, 
+	0x89, 0x4f, 0x72, 0x6c, 0x1e, 0x47, 0x1b, 0xf7, 0xdb, 0x9b, 
+	0x70, 0x1f, 0x3a, 0xf0, 0x20, 0xcb, 0x7b, 0x2, 0xdb, 0xf1, 
+	0x59, 0xe6, 0xf2, 0x8, 0x73, 0x3b, 0xc9, 0x9c, 0x1e, 0xe5, 
+	0xb8, 0x3d, 0xcd, 0x91, 0x97, 0xe5, 0x52, 0x75, 0x96, 0xa1, 
+	0x33, 0xbc, 0xfa, 0x22, 0xbe, 0xc3, 0x91, 0xf6, 0xa, 0x9e, 
+	0xc0, 0xab, 0x78, 0x12, 0x3f, 0xc2, 0x57, 0xf0, 0x73, 0x3c, 
+	0x8d, 0x3f, 0xe0, 0xab, 0xe4, 0xc3, 0xd7, 0x68, 0x9, 0xbe, 
+	0x4e, 0x17, 0xe1, 0x39, 0xba, 0x14, 0xdf, 0xa0, 0x26, 0x3c, 
+	0x4f, 0xad, 0x78, 0x81, 0x9f, 0x9a, 0x2f, 0xd2, 0x76, 0xbc, 
+	0xc4, 0xf, 0xb6, 0x17, 0x69, 0x2f, 0xbe, 0x47, 0x51, 0xbc, 
+	0xcc, 0x4f, 0x87, 0x57, 0xe8, 0xfd, 0x78, 0x95, 0x3e, 0x88, 
+	0x1f, 0xd0, 0x87, 0xf1, 0x43, 0x3a, 0x86, 0x1f, 0xd3, 0x71, 
+	0xfc, 0x84, 0x1e, 0xc0, 0x4f, 0xe9, 0x4, 0x7e, 0x46, 0xd3, 
+	0xf8, 0x5, 0xbd, 0x80, 0x13, 0xf4, 0x6d, 0xbc, 0x46, 0xdf, 
+	0xc7, 0xef, 0x71, 0x8c, 0x35, 0x91, 0xe2, 0xd4, 0xef, 0x6a, 
+	0x94, 0x8b, 0x70, 0x8e, 0x75, 0x9f, 0x1b, 0x11, 0xa3, 0x62, 
+	0xc8, 0xbd, 0x85, 0xd0, 0xb9, 0xc1, 0x9b, 0x6, 0x4b, 0xc2, 
+	0x6e, 0x5f, 0x21, 0xce, 0xf6, 0xf3, 0xca, 0x8b, 0xb3, 0x92, 
+	0xed, 0x1b, 0xb, 0xdb, 0x37, 0x49, 0x54, 0xde, 0x5c, 0xf8, 
+	0xbc, 0xa5, 0x18, 0x95, 0x59, 0x1c, 0x28, 0x96, 0xaf, 0x6, 
+	0x28, 0x3c, 0xfe, 0x91, 0x6d, 0xfb, 0x6, 0x6a, 0x88, 0xfb, 
+	0x2, 0xd6, 0xbe, 0x8d, 0xfc, 0x88, 0x92, 0x82, 0x11, 0x52, 
+	0x67, 0xc9, 0xfb, 0x91, 0x42, 0x81, 0xfd, 0x18, 0xd7, 0x4a, 
+	0x89, 0x6, 0x43, 0xa, 0xb3, 0xc1, 0x27, 0x54, 0x84, 0x7, 
+	0x4f, 0xc3, 0xd8, 0xe7, 0x3f, 0xc0, 0x9f, 0xfe, 0xde, 0x39, 
+	00, 0xdf, 0x5c, 0x40, 0xa5, 00, 0xda, 0x9e, 0xc6, 0x72, 
+	0x4f, 0xb6, 0xa1, 0x63, 0x6e, 0x89, 0x6b, 0x73, 0xb1, 0x18, 
+	0x29, 0x8b, 0xe8, 0x14, 0xd4, 0x6e, 0x4e, 0xde, 0xf0, 0x29, 
+	0xd7, 0x2c, 0x37, 0x60, 0x7f, 0xa1, 00, 0xad, 0x60, 0x51, 
+	0x25, 0x8d, 0x2a, 0xa9, 0x96, 0x85, 0xad, 0xc3, 0x6a, 0x76, 
+	0xd5, 0x55, 0xb4, 0x14, 0x11, 0xaa, 0xc7, 0x7e, 0x5a, 0x8e, 
+	0x3, 0xd4, 0xc0, 0xb7, 0xd6, 0x47, 0x59, 0x44, 0x4f, 0xd4, 
+	0xbb, 0xb9, 0x78, 0xc8, 0x6d, 0xd1, 0xd7, 0x7c, 0x1a, 0x31, 
+	0x29, 0x75, 0x9f, 0x41, 0x97, 0x58, 0xd9, 0xf4, 0x4c, 0x31, 
+	0xec, 0x99, 0x78, 0x24, 0xcc, 0x9e, 0x6a, 0x9b, 0xc1, 0xe8, 
+	0x60, 0x30, 0x7e, 0x6, 0x7, 0x7b, 0xc2, 0x6e, 0x5d, 0xe, 
+	0x34, 0x4, 0x1a, 0x72, 0x95, 0xb9, 0xa5, 0xa4, 0x5a, 0xf2, 
+	0xbd, 0x71, 0xc8, 0xf7, 0x70, 0xc1, 0x84, 0x6b, 0xe5, 0x6e, 
+	0xa4, 0x4d, 0x98, 0x47, 0xd7, 0x60, 0x11, 0x6d, 0xc3, 0x12, 
+	0xea, 0x42, 0x3, 0x7, 0xca, 0x4a, 0xda, 0x81, 0x16, 0x8a, 
+	0x60, 0x23, 0x5d, 0x8b, 0x4e, 0x7e, 0xf3, 0x6f, 0xa7, 0x6e, 
+	0xf4, 0xf0, 0xd3, 0x95, 0xb8, 0xc4, 0xe5, 0xa5, 0x5b, 0xc9, 
+	0x66, 0x94, 0x9b, 0x42, 0x9, 0xfb, 0xf9, 0x86, 0xf3, 0x17, 
+	0x99, 0x6a, 0x62, 0x5f, 0x7e, 0x74, 0x56, 0xf2, 0x9b, 0x92, 
+	0x38, 0xd6, 0xcf, 0x27, 0xf0, 0x95, 0x23, 0x38, 0xc2, 0x4, 
+	0xb7, 0xf1, 0xd7, 0x27, 0x38, 0x2d, 0x3c, 0x82, 0xdd, 0xec, 
+	0x2a, 0xb9, 0xd8, 0x9a, 0xa4, 0x26, 0xf4, 0xac, 0xf1, 0x71, 
+	0x65, 0x8f, 0xb4, 0x48, 0x3d, 0x90, 0xc5, 0x7a, 0xff, 0x14, 
+	0xe6, 0xb5, 0xd4, 0xfa, 0xb9, 0x1a, 0xf8, 0xa9, 0xd6, 0x2f, 
+	0xd5, 0xe0, 0xb5, 0x62, 0x6c, 0x5c, 0xc0, 0xa6, 0x3, 0xbd, 
+	0x97, 0x59, 0xbe, 0xf, 0x1, 0x3a, 0x8a, 0x7a, 0xfa, 00, 
+	0x2b, 0x76, 0x14, 0x8d, 0xf4, 0x21, 0xc6, 0x38, 0x5e, 0x88, 
+	0x6, 0x87, 0xd, 0x2c, 0xd1, 0x70, 0x4d, 0x38, 0x1c, 0x4c, 
+	0x30, 0xeb, 0xb1, 0x69, 0xb7, 0x76, 0xae, 0x7b, 0x86, 0x6f, 
+	0x21, 0x36, 0x99, 0x95, 0x45, 0x32, 0x7, 0x9, 0xa6, 0xb2, 
+	0xb8, 0xf5, 0x18, 0xaa, 0xc3, 0x41, 0x9b, 0x6f, 0x97, 0x70, 
+	0x30, 0xcd, 0x25, 0x67, 0xac, 0x3b, 0xdc, 0x7c, 0x16, 0xce, 
+	0x34, 0x2e, 0x2f, 0x9e, 0xec, 0x39, 0xf9, 0x93, 0x6c, 0xd2, 
+	0xe3, 0x8, 0xd2, 0xa7, 0x70, 0x21, 0xdd, 0x87, 0x26, 0xba, 
+	0x1f, 0xad, 0x9c, 0x57, 0x57, 0xd2, 0x83, 0xd8, 0x4c, 0xf, 
+	0x31, 0x26, 0xbf, 0xb0, 0xb, 0x17, 0xbe, 0xcf, 0x75, 0xf2, 
+	0xea, 0x30, 0x7, 0x4d, 0xa6, 0xa7, 0xe5, 0x19, 0x34, 0x2c, 
+	0x3f, 0x86, 0xb, 0xc2, 0xb9, 0xb4, 0x60, 0x60, 0x7b, 0x70, 
+	0x3c, 0x9f, 0x2f, 0x6b, 0x5a, 0x4e, 0xce, 0xee, 0x24, 0xe8, 
+	0x73, 0xa8, 0xa2, 0x47, 0xb0, 0x80, 0x4e, 0x62, 0x15, 0x3d, 
+	0xca, 0x3b, 0xf7, 0xf3, 0x95, 0xe4, 0x31, 0x8e, 0xe7, 0x6e, 
+	0xf2, 0x36, 0xe, 0x99, 0xe6, 0x5c, 0xc4, 0x48, 0x94, 0x34, 
+	0x73, 0x90, 0xec, 0x3c, 0x2f, 0x48, 0xa, 0x57, 0xea, 0x59, 
+	0x4c, 0x70, 0x8c, 0xcc, 0xd5, 0xe7, 0x39, 0x28, 0xf4, 0x4d, 
+	0xd6, 0xe9, 0x79, 0x2c, 0xa6, 0x6f, 0xe1, 0x12, 0x7a, 0x11, 
+	0x61, 0x7a, 0x9, 0x6b, 0xb9, 0x36, 0x5c, 0x41, 0xdf, 0x65, 
+	0xcc, 0xcf, 0xb8, 0x35, 0x76, 0xea, 0x4f, 0x50, 0x4b, 0x3, 
+	0x4, 0xa, 00, 00, 00, 0x8, 00, 0x16, 0xa9, 0xda, 
+	0x2c, 0xc9, 0xa0, 0xa1, 0x6c, 0x47, 0xf, 00, 00, 0x1f, 
+	0x1e, 00, 00, 0xe, 00, 00, 00, 0x72, 0x66, 0x62, 
+	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6c, 0x61, 0x73, 
+	0x73, 0x85, 0x57, 0xb, 0x7c, 0x54, 0xd5, 0x99, 0xff, 0xce, 
+	0x9d, 0xc7, 0xbd, 0x99, 0xdc, 0x90, 0x9b, 0x81, 0x49, 0x8, 
+	0x33, 0x81, 0x41, 0x4, 0xc2, 0x4c, 0x2, 0xd1, 0x20, 0xef, 
+	0x67, 0x22, 0x81, 0x48, 0x1e, 0x98, 0x4, 0x10, 0xf0, 0xc1, 
+	0x24, 0x73, 0x93, 0xc, 0x24, 0x33, 0x71, 0x66, 0x92, 0x40, 
+	0x5b, 0xa1, 0xf, 0xd9, 0x3e, 0x5c, 0xbb, 0x4b, 0x95, 0x5a, 
+	0xac, 0x94, 0xa0, 0x54, 0xdc, 0x15, 0x6d, 0xed, 0x92, 0x60, 
+	0x85, 0xea, 0x5a, 0x6b, 0x45, 0x57, 0xdd, 0x76, 0xeb, 0x76, 
+	0x77, 0xbb, 0xdb, 0x56, 0xd7, 0xdd, 0xfa, 0xd6, 0xee, 0x5a, 
+	0xbb, 0x8f, 0x3e, 0xe8, 0xff, 0xbb, 0xf7, 0xce, 0xdc, 0x99, 
+	0x21, 0xb4, 0xf3, 0xfb, 0xcd, 0xf7, 0x3a, 0xdf, 0xf9, 0xce, 
+	0xf9, 0x1e, 0xe7, 0x3b, 0xe7, 0xbe, 0xf0, 0xfb, 0x27, 0x9e, 
+	0x24, 0x7, 0xd5, 0x8a, 0x66, 0xf, 0x45, 0xe9, 0xa5, 0x22, 
+	0xea, 0xa1, 0x97, 0x19, 0xfc, 0x3d, 0x83, 0x1f, 0x30, 0xf8, 
+	0x21, 0x83, 0x7f, 0x60, 0xf0, 0x23, 0x99, 0x5e, 0xf1, 0x90, 
+	0x42, 0xff, 0xc8, 0xcc, 0x8f, 0x65, 0xfa, 0x27, 0x99, 0xfe, 
+	0x99, 0xf9, 0x7f, 0xf1, 0x90, 0x4a, 0x3f, 0xf1, 0x50, 0x31, 
+	0xfd, 0x2b, 0x8f, 0xfc, 0x1b, 0xcb, 0x7e, 0xca, 0xd4, 0xcf, 
+	0x98, 0xfa, 0xb9, 0x4c, 0xaf, 0x7a, 0xe8, 0x35, 0xfa, 0x77, 
+	0x56, 0x78, 0x5d, 0xa6, 0xff, 0x90, 0xe9, 0x3f, 0x3d, 0x34, 
+	0x9d, 0x5e, 0x52, 0xe8, 0x17, 0x8c, 0xdf, 0x50, 0xe8, 0x4d, 
+	0xc6, 0x6f, 0x29, 0xf4, 0x36, 0xe3, 0x77, 0x3c, 0x54, 0x41, 
+	0xef, 0xf2, 0xf4, 0xf7, 0x18, 0xbc, 0xaf, 0xd0, 0x7, 0x1e, 
+	0x9a, 0x4f, 0xbf, 0xf4, 0xd0, 0x7f, 0xd1, 0x7f, 0xb3, 0x8d, 
+	0xf, 0x65, 0xfa, 0x15, 0x4b, 0x3e, 0x52, 0xe8, 0xd7, 0x2c, 
+	0xfc, 0x1f, 0x16, 0xfe, 0x2f, 0xeb, 0xfe, 0x1f, 0x83, 0xff, 
+	0x67, 0xf6, 0x37, 0x4c, 0xfd, 0x96, 0xc1, 0xef, 0x18, 0xfc, 
+	0x9e, 0xc1, 0x45, 00, 0x41, 0xc, 0x4, 0x3, 0x89, 0x81, 
+	0x83, 0x81, 0x93, 0x81, 0xb, 0xd3, 0x84, 0x9b, 0x29, 0xd9, 
+	0x23, 0x14, 0x51, 0xc4, 0xac, 0x87, 0xd9, 0x62, 0x6, 0x2a, 
+	0x83, 0x12, 0x6, 0x53, 0x18, 0x94, 0x32, 0xd0, 0x14, 0x51, 
+	0xa6, 0x8, 0xaf, 0x22, 0xa6, 0x2a, 0x62, 0x9a, 0x22, 0x7c, 
+	0x2c, 0x2b, 0x67, 0x50, 0x51, 0x24, 0xa6, 0x8b, 0x4a, 0x6, 
+	0x33, 0x98, 0xf5, 0x7b, 00, 0x2, 0xcc, 0x56, 0x31, 0x98, 
+	0x89, 0x3d, 0x8b, 0x59, 0x4c, 0x5, 0x1d, 0x44, 0x17, 0xb7, 
+	0x30, 0xb8, 0x9e, 0x41, 0x7, 0x83, 0x4e, 0x6, 0x5d, 0xc, 
+	0x14, 0x6, 0x45, 0xc, 0x4a, 0x18, 0xf8, 0x19, 0x5c, 0x64, 
+	0x40, 0x6c, 0x6f, 0x36, 0x5b, 0xbe, 0x82, 0xd9, 0xd7, 0x19, 
+	0xbc, 0xc6, 0xe0, 0xd, 0x6, 0x6f, 0xc9, 0x62, 0x8e, 0x2c, 
+	0xae, 0x14, 0xe4, 0x19, 0xd1, 0x93, 0xa9, 0x58, 0x22, 0xde, 
+	0x9a, 0xea, 0x13, 0xe4, 0x6d, 0xd9, 0x13, 0x19, 0x89, 0x2c, 
+	0x1a, 0x88, 0xc4, 0xfb, 0x16, 0x75, 0xa6, 0x93, 0xb1, 0x78, 
+	0xdf, 0x4a, 0x41, 0x25, 0x8d, 0x89, 0x78, 0x2a, 0x1d, 0x89, 
+	0xa7, 0xb7, 0x45, 0x6, 0x86, 0x75, 0xcc, 00, 0x1f, 0x6f, 
+	0x8a, 0xc4, 0x6, 0xf4, 0xa8, 0x20, 0xd1, 0xc, 0x6b, 0x44, 
+	0x82, 0xdc, 0x6d, 0x89, 0xf5, 0xc3, 0xe9, 0x7e, 0xe6, 0x84, 
+	0x20, 0x79, 0x5b, 0xbc, 0x27, 0xc3, 0x4a, 0x88, 0xa6, 0xc5, 
+	0xb6, 0x6f, 0x86, 0x39, 0x8b, 0xce, 0x58, 0x98, 0x62, 0xf1, 
+	0x5d, 0x89, 0x44, 0x6b, 0x24, 0xbe, 0x5f, 0x50, 0x59, 0x53, 
+	0x32, 0x32, 0xa8, 0x77, 0xf, 0xf7, 0xf6, 0xea, 0xc9, 0xad, 
+	0x43, 0xd1, 0x48, 0x1a, 0x6b, 0x4e, 0xed, 0xd4, 0xd3, 0x8d, 
+	0x89, 0x81, 0xc4, 0x70, 0xb2, 0x35, 0x32, 0xb4, 0x21, 0x8e, 
+	0xad, 0xe9, 0x29, 0x41, 0xce, 0x6, 0x7d, 0x60, 00, 0x16, 
+	0x3b, 0xf5, 0x24, 0xbc, 0x68, 0x1c, 0x4e, 0x77, 0xe9, 0xfb, 
+	0xd2, 0xbc, 0xa4, 0x3, 0x66, 0x31, 0x63, 0x4b, 0x6c, 0x9f, 
+	0x3e, 0xd0, 0x94, 0x48, 0xe, 0x46, 0xd2, 0x30, 0xd1, 0x14, 
+	0xdb, 0x77, 0xa9, 0x9, 0x15, 0x6a, 0x1b, 0xe2, 0x3d, 0x89, 
+	0x28, 0x7c, 0x5, 0x3b, 0xfd, 0x92, 0xb5, 0x3b, 0xf4, 0x5b, 
+	0x87, 0xf5, 0x14, 0xe6, 0x2b, 0x9b, 0xf5, 0xfd, 0x1b, 0x46, 
+	0xf4, 0xb8, 0xb1, 0x80, 0x13, 0x33, 0xb7, 0x24, 0x62, 0xf1, 
+	0xb4, 0x9e, 0xcc, 0xca, 0x5c, 0x1c, 0xaa, 0x81, 0x18, 0xb8, 
+	0x9c, 0x9d, 0xb8, 0x5, 0x15, 0x67, 0xec, 0x77, 0x44, 0x46, 
+	0x5, 0x69, 0x19, 0xae, 0x31, 0x31, 0xb4, 0xbf, 0x43, 0xef, 
+	0x49, 0xe7, 0x2a, 0x74, 0x6c, 0x80, 0xd, 0x5b, 0xc1, 0xe0, 
+	0x4b, 0x33, 0xfc, 0x26, 0x98, 0x44, 0xc8, 0xe0, 0x76, 0x7f, 
+	0x82, 0x37, 0xe4, 0x1c, 0x4a, 0x24, 0x19, 0xa5, 0x12, 0x3d, 
+	0x7b, 0x11, 0x35, 0x33, 0x75, 0x71, 0x3d, 0xbd, 0xa8, 0x13, 
+	0x2, 0x3d, 0x8d, 0xcc, 0x49, 0x31, 0xb8, 0x54, 0x69, 0xe, 
+	0xc4, 0x12, 0x8b, 0xae, 0x8d, 0xa4, 0x23, 0xcd, 0xf1, 0xa1, 
+	0xe1, 0x34, 0x52, 0xab, 0x47, 0x6, 0x59, 0x21, 0x1, 0x85, 
+	0xf2, 0xac, 0x42, 0xfb, 0x70, 0x3a, 0x77, 0x54, 0x8b, 0xc5, 
+	0xdb, 0x38, 0x78, 0x3, 0x5b, 0x92, 0x89, 0x74, 0xa2, 0x27, 
+	0x81, 0x50, 0x8b, 0x9d, 0xf8, 0x8f, 0x60, 0xcb, 0x2d, 0x23, 
+	0xf1, 0x9e, 0x91, 0x98, 0x3e, 0xaa, 0x27, 0xa1, 0x58, 0x9c, 
+	0x32, 0x12, 0xd0, 0x1a, 0xd9, 0x93, 0x48, 0xda, 0x5c, 0x2c, 
+	0x6e, 0x70, 0x51, 0x3d, 0xb5, 0x37, 0x9d, 0x18, 0x6a, 0x43, 
+	0x5c, 0x61, 0xb2, 0xd7, 0x8e, 0xef, 0xf6, 0x58, 0x34, 0xdd, 
+	0x8f, 0x8d, 0xe7, 0x88, 0x36, 0xe9, 0xb1, 0xbe, 0x7e, 0xf8, 
+	0xa4, 0x76, 0xc7, 0xd2, 0xa9, 0x2d, 0x7a, 0xd2, 0x48, 0xa0, 
+	0x20, 0x57, 0x54, 0x1f, 0x62, 0xd5, 0xa2, 0xee, 0x58, 0xdf, 
+	0x86, 0x78, 0x34, 0x16, 0x89, 0xa3, 0xa, 0xd3, 0xc9, 0x61, 
+	0xdd, 0xcc, 0x27, 0x8a, 0x2f, 0xa9, 0x47, 0x5b, 0x23, 0xfb, 
+	0x90, 0xa4, 0xbe, 0xa4, 0xae, 0xc7, 0xd, 0x52, 0xee, 0x46, 
+	0xb5, 0x9a, 0x42, 0x8c, 0x76, 0xf6, 0xc7, 0x7a, 0x61, 0xd8, 
+	0x63, 0x8c, 0x5b, 0x4c, 0x11, 0x6b, 0x58, 0xb4, 0x3a, 0x6c, 
+	0x64, 0xbb, 0x8d, 0x33, 0x82, 0x98, 0x14, 0xf, 0x5b, 0xc9, 
+	0xef, 0x49, 0xdf, 0x90, 0xc7, 0xed, 0xc8, 0xe3, 0xb6, 0xe7, 
+	0x71, 0x9b, 0x70, 0x80, 0x6c, 0x2e, 0x93, 0x36, 0xd8, 0xee, 
+	0xb1, 0x52, 0xdd, 0x99, 0xec, 0xb9, 0x21, 0x9f, 0x85, 0x39, 
+	0x45, 0xe7, 0x2, 0x6a, 0x18, 0xee, 0x45, 0x3a, 0x76, 0x35, 
+	0xc0, 0x60, 0x86, 0x6f, 0xd1, 0xe1, 0x66, 0xf1, 0x90, 0x59, 
+	0x65, 0xad, 0x91, 0x14, 0x92, 0xac, 0x26, 0x6, 0xa2, 0xad, 
+	0xb0, 0xda, 0x1b, 0xc3, 0xa1, 0x85, 0xdb, 0xab, 0x62, 0xf1, 
+	0x58, 0x7a, 0x8d, 0xa0, 0xd9, 0xd5, 0x97, 0x1e, 0xdc, 0xe6, 
+	0x9c, 0x14, 0x2d, 0xd8, 0x86, 0x3a, 0x69, 0x4c, 0x44, 0x91, 
+	0x81, 0xd2, 0x96, 0x58, 0x5c, 0x6f, 0x1b, 0x1e, 0xec, 0xd6, 
+	0x93, 0x5d, 0x91, 0x6e, 0x2e, 0x27, 0xcf, 0x86, 0x7d, 0x3d, 
+	0x88, 0x2f, 0x7a, 00, 0x4c, 0xba, 0x7a, 0x6, 0x12, 0x29, 
+	0x8, 0x1d, 0xd5, 0x3c, 0x67, 0xa, 0x2a, 0x21, 0xba, 0x2d, 
+	0xa7, 0x41, 0x94, 0x8e, 0x26, 0x63, 0x69, 0x3d, 0x57, 0x62, 
+	0xa8, 0xf0, 0xf9, 0xed, 0xec, 0xe9, 0xd7, 0x7, 0xcd, 0x99, 
+	0xcd, 0x19, 0x45, 0xf3, 0x38, 0x34, 0x63, 0x93, 0x96, 0xa2, 
+	0x79, 0x52, 0x4d, 0x81, 0xcf, 0x16, 0xb4, 0xea, 0xa9, 0x54, 
+	0xa4, 0x4f, 0xef, 0xda, 0x3f, 0xa4, 0x5b, 0xf2, 0x49, 0x7a, 
+	0x40, 0x60, 0x52, 0xb9, 0x11, 0xf8, 0x28, 0x6a, 0x40, 0xe5, 
+	0x61, 0xfb, 0x50, 0x55, 0x19, 0x1b, 0xf8, 0x23, 0xc7, 0xb9, 
+	0xba, 0x19, 0xbf, 0x9d, 0xec, 0xe5, 0x54, 0x43, 0xb5, 0xb0, 
+	0x5f, 0x94, 0x40, 0x61, 0xe7, 0xce, 0x66, 0xe3, 0xc7, 0x5a, 
+	0x65, 0x19, 0xad, 0x9c, 0x76, 0xe1, 0xae, 0xde, 0x95, 0x3b, 
+	0x98, 0xdb, 0x11, 0x60, 0xd6, 0x4a, 0x4a, 0x64, 0x34, 0xbd, 
+	0xc8, 0x10, 0x19, 0x69, 0x28, 0x31, 0x34, 0x33, 0xbd, 0x4, 
+	0x1, 0xaf, 0x36, 0x37, 0x51, 0x6e, 0xc8, 0x33, 0xc9, 0xcd, 
+	0x8c, 0x73, 0x93, 0xab, 0x36, 0x56, 0xf0, 0x74, 0xa2, 0xd2, 
+	0x7b, 0xf4, 0x26, 0xa3, 0x3, 0x94, 0x24, 0x7b, 0xbb, 0x8d, 
+	0x43, 0xb9, 0x90, 0x57, 0x50, 0xe9, 0x51, 0x3a, 0xa3, 0xd2, 
+	0x17, 0xe9, 0x2f, 0x54, 0xfa, 0x2b, 0xfa, 0x6b, 0x95, 0x4e, 
+	0x53, 0x4c, 0xa5, 0xbf, 0xa4, 0xc3, 0x2a, 0xfd, 0x19, 0xf5, 
+	0xaa, 0xf4, 0x59, 0x8a, 0x21, 0x21, 0x5, 0xed, 0x1, 0x93, 
+	0xc4, 0x5c, 0x95, 0x3e, 0x47, 0x9f, 0x17, 0x54, 0x71, 0x99, 
+	0xe, 0x21, 0xc8, 0x9f, 0x19, 0x69, 0x30, 0x62, 0xa8, 0x47, 
+	0x73, 0x46, 0x55, 0x31, 0x4f, 0xcc, 0x67, 0x33, 0xd5, 0xc, 
+	0x16, 0xa8, 0xf4, 0x5, 0xba, 0x43, 0x15, 0x21, 0x11, 0x56, 
+	0xe9, 0xcf, 0xe9, 0x4e, 0x95, 0xfe, 0x86, 0xce, 0x20, 0x8, 
+	0x76, 0x5d, 0x66, 0xcb, 0x4c, 0x16, 0x35, 0xaa, 0xa8, 0xc5, 
+	0x96, 0xc5, 0x42, 0xb1, 0x28, 0xa3, 0x82, 0x35, 0x9a, 0xdb, 
+	0xb3, 0x2a, 0x88, 0x47, 0x61, 0x41, 0x9b, 0x3b, 0x40, 0xc0, 
+	0x36, 0xa1, 0xfb, 0x5, 0x55, 0x51, 0x27, 0xae, 0x42, 0x2, 
+	0x82, 0xdc, 0x4, 0xd, 0xee, 0x6a, 0x54, 0x4e, 0x30, 0x96, 
+	0xa, 0xc6, 0x13, 0xe9, 0x60, 0x24, 0x1e, 0xec, 0x68, 0x6a, 
+	0x8, 0x9a, 0x8d, 0x48, 0x15, 0xf5, 0x62, 0x31, 0x6f, 0xf1, 
+	0x1a, 0x95, 0xbe, 0xc4, 0x91, 0xb9, 0x8b, 0xe3, 0xa1, 0xb2, 
+	0x42, 0x5d, 0x5d, 0xfd, 0x42, 0xfc, 0x3d, 0xaa, 0x58, 0x22, 
+	0x96, 0xca, 0x62, 0x99, 0x2a, 0x96, 0x8b, 0x45, 0xaa, 0x58, 
+	0x41, 0x8f, 0xa3, 0x55, 0x15, 0x6e, 0x80, 0x4d, 0xa0, 0xd9, 
+	0x2d, 0xdc, 0x1a, 0xdf, 0x1b, 0x4f, 0x8c, 0xc6, 0x83, 0x11, 
+	0x14, 0x3d, 0x52, 0x14, 0xeb, 0x89, 0xf0, 0x8e, 0x83, 0x29, 
+	0xa3, 0xfe, 0x83, 0xbd, 0xc9, 0xc4, 0x60, 0xce, 0xe2, 0xd8, 
+	0xda, 0x72, 0x7a, 0x41, 0x15, 0xab, 0xe8, 0x71, 0x95, 0x8e, 
+	0xf0, 0xea, 0x5f, 0x6, 0x10, 0xab, 0x99, 0xbd, 0x87, 0xd9, 
+	0xaf, 0x30, 0x38, 0xca, 0xa9, 0xbb, 0x97, 0xc1, 0x57, 0x99, 
+	0xbd, 0x8f, 0xc1, 0x31, 0x6, 0x5f, 0x63, 0x70, 0x9c, 0xc1, 
+	0x18, 0x4f, 0x5b, 0x23, 0xd6, 0xaa, 0x74, 0x37, 0xf5, 0xca, 
+	0x62, 0x1d, 0x18, 0xd8, 0x10, 0xeb, 0x45, 0x83, 0x4a, 0x27, 
+	0x58, 0xe1, 0x7e, 0x6, 0xf, 0x30, 0x38, 0xc9, 0xe0, 0xeb, 
+	0xc, 0x1e, 0x64, 0x4f, 0xab, 0x73, 0xe, 0x41, 0xd0, 0xec, 
+	0x4f, 0xc1, 0x24, 0xce, 0x8, 0x3c, 0x1b, 0xd0, 0x83, 0xe9, 
+	0x44, 0x22, 0x38, 0x10, 0x49, 0xf6, 0xe9, 0x2b, 0x82, 0x68, 
+	0xed, 0xe8, 0x96, 0xae, 0x60, 0x24, 0x1d, 0xac, 0x6, 0x5d, 
+	0x83, 0x3f, 0xb2, 0x7a, 0x8a, 0xd, 0x3d, 0x44, 0x31, 0x59, 
+	0x34, 0xaa, 0xe2, 0x5a, 0xde, 0xc5, 0x6, 0x96, 0x3c, 0xcc, 
+	0xe0, 0x79, 0x76, 0xcd, 0xcb, 0xb2, 0x26, 0x6, 0xcb, 0xc5, 
+	0x46, 0x55, 0x6c, 0xe2, 0x81, 0xe7, 0xe8, 0x82, 0x4a, 0x8f, 
+	0xf0, 0xea, 0x4a, 0xa6, 0x54, 0xf3, 0x22, 0xda, 0xde, 0xbd, 
+	0xc7, 0x38, 0xa5, 0xe5, 0x93, 0x35, 0x2e, 0xa3, 0xf3, 0xf4, 
+	0xe9, 0xe9, 0xbc, 0x4a, 0xac, 0xa8, 0x5e, 0x90, 0xbd, 0xa7, 
+	0xf2, 0x2f, 0xb1, 0xca, 0xea, 0x49, 0x7, 0xc, 0x33, 0xd3, 
+	0x27, 0x1f, 0xe3, 0xa1, 0x52, 0xac, 0x90, 0x7b, 0xe1, 0xb1, 
+	0xf2, 0x82, 0xcb, 0x5d, 0x85, 0x39, 0x65, 0xdc, 0xd5, 0x9f, 
+	0x4c, 0x8c, 0x9a, 0x9d, 0xb3, 0x74, 0x8, 0x1b, 0x86, 0x52, 
+	0xa4, 0x67, 0x6f, 0x57, 0x32, 0xd2, 0x3, 0x49, 0x91, 0xd1, 
+	0xa3, 0x86, 0x7, 0x6, 0xf6, 0xf3, 0xc9, 0xde, 0xd5, 0xc0, 
+	0xb, 0xb9, 0x23, 0x43, 0x43, 0x7a, 0x1c, 0x2f, 0x9d, 0x9a, 
+	0x49, 0x9c, 0x5d, 0x70, 0x89, 0xc8, 0xac, 0x73, 0xac, 0xe9, 
+	0xc7, 0xc1, 0xbf, 0xfc, 0xa8, 0x92, 0x4e, 0x98, 0x12, 0x41, 
+	0xd3, 0xaa, 0x2f, 0xd5, 0x83, 0x86, 0x6f, 0xb2, 0xe5, 0xb6, 
+	0xf1, 0x1d, 0xa9, 0xa7, 0x1b, 0xf6, 0xa7, 0xf9, 0xf5, 0xc3, 
+	0x4d, 0x70, 0x57, 0x83, 0x11, 0xa9, 0x69, 0x93, 0x79, 0xe, 
+	0x27, 0x8c, 0xb6, 0x84, 0xdb, 0x94, 0x1d, 0x6b, 0xe6, 0x86, 
+	0x85, 0x9e, 0x67, 0xce, 0x28, 0x63, 0xd1, 0xd6, 0x78, 0x2a, 
+	0xd6, 0x17, 0xe7, 0xfb, 0xd5, 0x78, 0x8c, 0x68, 0xb9, 0x32, 
+	0x5e, 0x4, 0xfd, 0x8b, 0x45, 0x56, 0x34, 0x70, 0x31, 0x54, 
+	0x66, 0xd6, 0x41, 0x27, 0x4b, 0xf3, 0x55, 0x90, 0xb3, 0x98, 
+	0xc2, 0xaa, 0xe6, 0x2c, 0xdc, 0x22, 0xb8, 0xb, 0xa7, 0xe4, 
+	0x37, 0x50, 0x7e, 0xd1, 0xc0, 0x54, 0xd1, 0xa0, 0x7d, 0x5, 
+	0xa, 0x4, 0x5a, 0xe6, 0x1d, 0x19, 0x5b, 0x72, 0xec, 0xd5, 
+	0xf7, 0x53, 0x10, 0x8f, 0xf8, 0x28, 0x9e, 0x5e, 0xcb, 0xf1, 
+	0x95, 0xa0, 0x53, 0x2f, 0xde, 0xa6, 0x7d, 0xfc, 0xa, 0xa5, 
+	0x39, 0xe0, 0xfb, 0x29, 0x96, 0xe5, 0xf7, 0x80, 0xdf, 0x9b, 
+	0xc3, 0xf, 0x80, 0x1f, 0xcc, 0xe1, 0xe3, 0xe0, 0x13, 0x5, 
+	0xfa, 0x43, 0x5, 0xfa, 0xb7, 0x16, 0xe8, 0x27, 0xb, 0xf4, 
+	0x53, 0x5, 0xfa, 0xe9, 0x2, 0xfd, 0xe1, 0x1c, 0x7e, 0x4, 
+	0xfc, 0x68, 0xc1, 0xfc, 0x7d, 0x5, 0xf3, 0xf7, 0x17, 0xcc, 
+	0xff, 0x58, 0xc1, 0xfc, 0x8f, 0xe7, 0xf0, 0x9f, 00, 0x7f, 
+	0x5b, 0xe, 0x7f, 00, 0xfc, 0xc1, 0x1c, 0xfe, 0x93, 0xe0, 
+	0x3f, 0x55, 0xb0, 0xde, 0xa7, 0xb, 0xd6, 0xfb, 0x4c, 0xc1, 
+	0x7a, 0xb7, 0x17, 0xd8, 0x3f, 0x94, 0x67, 0x9f, 0xf8, 0xbe, 
+	0xe1, 0xcf, 0x1, 0xbe, 0x72, 0xc, 0x8c, 0xeb, 0xc5, 0xc0, 
+	0xb8, 0x1a, 0xc, 0x8c, 0x8b, 0xc1, 0xc0, 0xb8, 0xab, 0xc, 
+	0x8c, 0x4b, 0xca, 0xc0, 0x5f, 0xb2, 0xf4, 0xef, 0xb2, 0xf0, 
+	0xdd, 0x96, 0x9d, 0x23, 0x16, 0xff, 0x65, 0xb, 0xdf, 0x63, 
+	0xe1, 0xaf, 0x58, 0xf8, 0xa8, 0x65, 0xe7, 0x5e, 0xb, 0x7f, 
+	0xd5, 0x92, 0xdf, 0x67, 0xe1, 0x63, 0x16, 0xfe, 0x9a, 0x85, 
+	0x8f, 0x5b, 0x78, 0xcc, 0xc2, 0x27, 0x2c, 0x7c, 0xbf, 0x85, 
+	0x1f, 0xb0, 0xf0, 0x49, 0xb, 0x7f, 0xdd, 0xc2, 0xf, 0x5a, 
+	0xf8, 0x94, 0x85, 0x1f, 0xb2, 0x30, 0xae, 0x5b, 0x3, 0x3f, 
+	0x6c, 0xf1, 0xa7, 0x2d, 0xfc, 0x88, 0x81, 0xbd, 0xf8, 0x3f, 
+	0x4a, 0xdf, 0x40, 0x6c, 0xbe, 0x69, 0xac, 0x29, 0x93, 0x13, 
+	0x78, 0x77, 0xe8, 0x2c, 0x89, 0x90, 0x63, 0x9c, 0xa4, 0x90, 
+	0xb6, 0xe9, 0xbc, 0x32, 0x4e, 0xe, 0x66, 0x9c, 0xa1, 0xda, 
+	0x71, 0x72, 0x85, 0xc2, 0xe3, 0xe4, 0xe, 0x5, 0xc6, 0x49, 
+	0xe, 0x9d, 0x23, 0x65, 0x47, 0xe8, 0xc, 0xb8, 0x33, 0x24, 
+	0x9f, 0xa5, 0xa2, 0x71, 0xf2, 0x40, 0x54, 0xbc, 0xe3, 0x1c, 
+	0xa9, 0x2c, 0xf6, 0x4c, 0x50, 0x49, 0xd9, 0x3a, 0x3a, 0x4b, 
+	0x53, 0xce, 0x52, 0xe9, 0x38, 0x69, 0x21, 0x53, 0x56, 0x36, 
+	0x4e, 0xde, 0xc7, 0x88, 0xbf, 0xc7, 0x18, 0x2e, 0xc4, 0x27, 
+	0x2e, 0xd1, 0x66, 0xac, 0xda, 0x48, 0x45, 0xe2, 0x8, 0x95, 
+	0x89, 0xe3, 0x54, 0x4e, 0x2d, 0xe4, 0xa7, 0x56, 0x9c, 0x92, 
+	0x36, 0x9a, 0x4b, 0xed, 0xb4, 0x8c, 0xb6, 0x50, 0x17, 0x75, 
+	0xd0, 0x2d, 0xd4, 0x49, 0xdf, 0x82, 0xb6, 0x13, 0x73, 0x2b, 
+	0x80, 0x71, 0x7b, 0x83, 0xe2, 0x7d, 0x2f, 0x3, 0x96, 0x80, 
+	0x35, 0x73, 0x89, 0xa9, 0xa7, 0x48, 0x69, 0x9, 0x4f, 0x90, 
+	0xef, 0x31, 0xc8, 0x9, 0x3e, 0x79, 0x68, 0x9a, 0xb5, 0xde, 
+	0x14, 0xe2, 0x4f, 0x9e, 0x1b, 0x20, 0xd9, 0x49, 0xa5, 0x74, 
+	0x23, 0xe8, 0x71, 0x58, 0x31, 0xbc, 0x17, 0x1b, 0x61, 0x19, 
+	0x56, 0x44, 0x85, 0xa6, 0x9e, 0x57, 0x5a, 0x60, 0x4a, 0x83, 
+	0x8d, 0xf2, 0xb0, 0xa3, 0x5e, 0xeb, 0x18, 0xa3, 0x23, 0x61, 
+	0x67, 0xbd, 0xd6, 0x34, 0x46, 0x77, 0x86, 0x5d, 0xf5, 0x5a, 
+	0xc3, 0x18, 0x1d, 0xa, 0xbb, 0xeb, 0xb5, 0xe0, 0x18, 0xdd, 
+	0x16, 0x96, 0xeb, 0xb5, 0xba, 0x13, 0x34, 0xcc, 0x78, 0xf9, 
+	0x3, 0x34, 0x18, 0x56, 0xc, 0x5e, 0x67, 0xc, 0xfe, 0xa6, 
+	0xb0, 0xe6, 0x36, 0x4, 0x5d, 0x6, 0x1, 0xc9, 0xe6, 0xb0, 
+	0x6, 0xd5, 0x85, 0x63, 0xd4, 0x10, 0xd6, 0x4c, 0xdd, 0xe5, 
+	0x6, 0x81, 0xa1, 0xba, 0xb0, 0x56, 0x64, 0x48, 0xe6, 0x1b, 
+	0x4, 0x24, 0x33, 0xc3, 0x9a, 0xc7, 0x90, 0xf8, 0xc, 0x2, 
+	0x12, 0x35, 0xac, 0x15, 0xd7, 0x6b, 0x9e, 0xe3, 0x74, 0xf5, 
+	0x39, 0xaa, 0x40, 0xac, 0xa7, 0xef, 0x38, 0x4b, 0x95, 0xde, 
+	0x19, 0x13, 0xe4, 0xe7, 0x54, 00, 0x79, 0x3, 0x26, 0x2d, 
+	0x4f, 0x50, 0x95, 0x77, 0x26, 0xe8, 0x9, 0x9a, 0x75, 0x96, 
+	0x82, 0x4f, 0x85, 0x8c, 0x9d, 0x46, 0xb5, 0x68, 0xbf, 0xb1, 
+	0xc5, 0xa8, 0xe6, 0xe9, 0xdf, 0x6d, 0x6e, 0x2e, 0xba, 0x7b, 
+	0x9c, 0x66, 0x87, 0xcc, 0xdd, 0x18, 0xe3, 0xc6, 0x2e, 0x2c, 
+	0x5, 0x8f, 0xa5, 0x70, 0x85, 0x9d, 0xb4, 0x99, 0x8, 0x29, 
+	0xa1, 0xfc, 0x5d, 0x68, 0x56, 0x25, 0x38, 0x94, 0xa7, 0xd0, 
+	0x74, 0x7e, 0x8c, 0xc6, 0xf1, 0x11, 0xd, 0x8b, 0x72, 0x1c, 
+	0xf2, 0xdc, 0x24, 0x4d, 0x64, 0xc2, 0x4b, 0xab, 0xa0, 0xcf, 
+	0x49, 0x9a, 0x6e, 0x84, 0xd7, 0x3b, 0xc7, 0xa1, 0xa9, 0x61, 
+	0xc7, 0x4, 0x5d, 0x89, 0xad, 0x7a, 0x11, 0xe8, 0xb9, 0xb6, 
+	0x7d, 0xaf, 0x51, 0x84, 0x7, 0xa0, 0x7f, 0x10, 0x49, 0xfa, 
+	0x24, 0xec, 0x7c, 0x2a, 0xcf, 0xe6, 0x59, 0x7a, 0xdc, 0xb2, 
+	0x79, 0x2f, 0xb9, 0xd, 0xdd, 0x5e, 0xce, 0xd6, 0x4, 0xcd, 
+	0x5b, 0xe5, 0x37, 0x8b, 0xbd, 0x81, 0xcc, 0x1f, 0xaf, 0xe7, 
+	0xc7, 0x7f, 0x1d, 0xff, 0x2d, 0x9d, 0xd5, 0x81, 0xf3, 0x4a, 
+	0x1b, 0xd3, 0xb5, 0xc8, 0xae, 0x19, 0xc3, 0xf9, 0x3b, 0x6a, 
+	0x1d, 0x67, 0xa9, 0x9a, 0xa3, 0xe4, 0x3f, 0x9d, 0x1b, 0xd6, 
+	0x5, 0x8, 0x1f, 0xe2, 0x57, 0x65, 0x85, 0x30, 0xbb, 0xc3, 
+	0x2b, 0x48, 0x1, 0xfc, 0x3c, 0xe0, 0x1d, 0x74, 0x25, 0x5a, 
+	0x45, 0xd, 0xe, 0x77, 0x1d, 0x5a, 0xc5, 0x32, 0x34, 0x8b, 
+	0x66, 0xb4, 0x84, 0xcd, 0x38, 0xfe, 0xb9, 0x3b, 0xfe, 0x76, 
+	0x36, 0xa, 0x73, 0x81, 0xb9, 0x28, 0x8b, 0xd8, 0x6d, 0xb8, 
+	0x1f, 0xb2, 0xdd, 0xf6, 0x18, 0xdb, 0x45, 0xed, 0xe2, 0xc4, 
+	0xe6, 0x4e, 0x7e, 0x22, 0x5b, 0xa1, 0x35, 0x8, 0x9, 0xbb, 
+	0x7b, 0x21, 0x64, 0xfa, 0x82, 0xa3, 0x58, 0x63, 0x93, 0xb5, 
+	0x16, 0xb9, 0x70, 0x9c, 0x16, 0xd9, 0x64, 0x5d, 0x86, 0x3c, 
+	0x4a, 0xb2, 0xf3, 0x14, 0x39, 0x71, 0x90, 0xaf, 0xba, 0x54, 
+	0x74, 0xb5, 0x6d, 0xa6, 0xde, 0x26, 0x17, 0xdb, 0xe4, 0x35, 
+	0xb6, 0xc5, 0x25, 0x36, 0xb9, 0xd4, 0x26, 0x97, 0xb9, 0xed, 
+	0x43, 0xb3, 0x7c, 0xfb, 0x64, 0xb1, 0xe, 0x65, 0x3, 0x3d, 
+	0x4e, 0x2b, 0x42, 0x4e, 0x74, 0x17, 0xdb, 0xf7, 0xe, 0x9c, 
+	0x50, 0x42, 0x5a, 0x8b, 0x11, 0xaa, 0x72, 0x78, 0x3c, 0x9b, 
+	0xce, 0x21, 0xa8, 0xe7, 0x69, 0x2d, 0x7d, 0x7, 0x63, 0x4f, 
+	0xd2, 0x4d, 0xf4, 0x14, 0x8a, 0xed, 0x6f, 0x71, 0x5b, 0x3d, 
+	0x8d, 0xc2, 0xf8, 0x2e, 0x42, 0xff, 0xc, 0x3a, 0xf0, 0xf7, 
+	0x10, 0xe6, 0x67, 0xd1, 0x21, 0xbf, 0x8f, 0x2e, 0xf7, 0x1c, 
+	0x3a, 0xda, 0x5, 0x9c, 0xe6, 0xe7, 0x31, 0xfa, 0x77, 0xe0, 
+	0x5e, 0xcc, 0x8b, 0xe1, 0xb9, 0x6c, 0xc9, 0x4, 0x21, 0xe1, 
+	0x4, 0x28, 0xe6, 0x16, 0x57, 0x9e, 0xce, 0xee, 0xc1, 0x6d, 
+	0xc8, 0x5f, 0xc9, 0x9b, 0x77, 0x3e, 0x9b, 0xb8, 0xc5, 0x56, 
+	0xe2, 0xa6, 0x99, 0xf3, 0x56, 0x6d, 0xb7, 0x63, 0xb3, 0xda, 
+	0xf6, 0xc3, 0xec, 0x2f, 0x3f, 0x47, 0xe, 0x5f, 0xa5, 0xa9, 
+	0xf4, 0x5a, 0x9e, 0xad, 0xef, 0x64, 0x6d, 0xfd, 0xc8, 0x90, 
+	0xa1, 0xd7, 0xdb, 0x36, 0xd6, 0xd8, 0xe4, 0x5a, 0x9b, 0x5c, 
+	0x67, 0x93, 0xeb, 0x2d, 0x72, 0xde, 0x38, 0x35, 0x80, 0x5a, 
+	0x83, 0xff, 0xba, 0xdd, 00, 0x35, 0xf, 0xd0, 0x54, 0xa0, 
+	0xb5, 0xf8, 0xaf, 0x67, 0xbe, 0xf6, 0x24, 0x5d, 0x97, 0x5b, 
+	0xc2, 0x8d, 0x66, 0x37, 0x58, 0xc7, 0xdd, 0xe0, 0x5a, 0x93, 
+	0x5e, 0xcf, 0xf4, 0x6, 0x93, 0x5e, 0xc3, 0x74, 0x93, 0x49, 
+	0xaf, 0x65, 0x7a, 0xa3, 0xdd, 0x31, 0x6c, 0xb7, 0xcc, 0x7a, 
+	0x7f, 0x13, 0xe9, 0x79, 0xb, 0xe9, 0x79, 0x1b, 0xe9, 0x79, 
+	0x7, 0xe9, 0x79, 0x97, 0x96, 0xd2, 0xfb, 0xb4, 0x9d, 0x7e, 
+	0x89, 0xcb, 0xeb, 0x57, 0x79, 0xae, 0x3e, 0x99, 0x75, 0x75, 
+	0xa9, 0x15, 0xb6, 0xa, 0xdb, 0x93, 0x4d, 0x36, 0xd9, 0x5c, 
+	0x18, 0xb9, 0xdf, 0x60, 0x89, 0xdf, 0x62, 0x89, 0xdf, 0xe5, 
+	0x99, 0x7b, 0xa, 0x99, 0x37, 0xcd, 0xbd, 0x4, 0x19, 0x37, 
+	0x9f, 0x43, 0x9a, 0xe7, 0xbc, 0xb2, 0xc2, 0x5d, 0xe9, 0x76, 
+	0xb8, 0xbb, 0x2a, 0xdd, 0x4e, 0x9f, 0x2b, 0x53, 0xca, 0xe0, 
+	0x5c, 0x7e, 0x4d, 0xf9, 0x58, 0x19, 0x5d, 0x3c, 0x70, 0x18, 
+	0x8c, 0xdb, 0x9f, 0xa1, 0xe4, 0x40, 0x8e, 0x58, 0x9, 0x64, 
+	0x28, 0xcd, 0x5d, 0x95, 0x23, 0xd7, 0xe4, 0xaa, 0x2c, 0xa9, 
+	0xf8, 0x9c, 0xb9, 0x23, 0x45, 0x3e, 0xa7, 0x49, 0xf3, 0xc9, 
+	0xad, 0x74, 0xe7, 0x75, 0xac, 0x25, 0xe8, 0x83, 0x84, 0xde, 
+	0xe7, 0x16, 0xd3, 0xa9, 0x58, 0x54, 0x52, 0xa5, 0x98, 0x41, 
+	0xf3, 0x84, 0x9f, 0xea, 0x44, 0x80, 0x56, 0x8b, 0x2a, 0xda, 
+	0x28, 0x66, 0xd2, 0x56, 0x31, 0x8b, 0x76, 0x8b, 0x20, 0x25, 
+	0xc4, 0x6c, 0xfa, 0xb8, 0x98, 0x43, 0xb7, 0x8b, 0x2b, 0xf3, 
+	0x9c, 0x7c, 0x1a, 0x85, 0x6b, 0x3a, 0x79, 0x11, 0x32, 0x95, 
+	0x5b, 0x81, 0x36, 0xd, 0x4e, 0x16, 0x57, 0x16, 0x3b, 0xe0, 
+	0x56, 0xb1, 0xec, 0xc7, 0x36, 0x8a, 0x95, 00, 0x43, 0x6c, 
+	0xda, 0x76, 0xb8, 0x58, 0x93, 0x7d, 0xce, 0x5c, 0x56, 0xf1, 
+	0xb9, 0xec, 0x8d, 0x17, 0x63, 0xe3, 0xae, 0x2c, 0xed, 0xf1, 
+	0xb9, 0x73, 0x87, 0x8a, 0x7d, 0xee, 0x2c, 0xad, 0xfa, 0xe4, 
+	0xdc, 0xa1, 0x12, 0x9f, 0x9c, 0xa5, 0xa7, 0xf8, 0x14, 0x3, 
+	0x97, 0xfa, 0x8a, 0xc, 0xac, 0xf9, 0x3c, 0x56, 0x18, 0x8a, 
+	0xf3, 0xc2, 0xd0, 0x44, 0x65, 0x20, 0xaf, 0x42, 0x18, 0xea, 
+	0x11, 0x86, 0xc5, 0xb8, 0xcd, 0xaf, 0xa1, 0xa, 0xb1, 0x84, 
+	0xe6, 0x8a, 0xa5, 0xb4, 0x58, 0x2c, 0xa3, 0x46, 0x7c, 0x69, 
+	0xb6, 0xe3, 0xdb, 0xf5, 0x66, 0xb1, 0x92, 0xf6, 0xe0, 0x83, 
+	0x73, 0x3f, 0xbe, 0x32, 0xf, 0xe1, 0x2b, 0xf1, 0x4e, 0xb1, 
+	0x96, 0x8e, 0x88, 0x75, 0x74, 0x4c, 0x34, 0xd0, 0x83, 0xa2, 
+	0x31, 0x2f, 0x2c, 0xcf, 0xe0, 0x94, 0x9b, 0x61, 0x79, 0x11, 
+	0x32, 0x17, 0xf0, 0xe7, 0x64, 0x39, 0xd0, 0xbf, 0x1b, 0x8d, 
+	0xa5, 0xd6, 0xe1, 0xea, 0xaa, 0x75, 0xd9, 0x69, 0xad, 0x75, 
+	0x5b, 0x59, 0x75, 0x2c, 0x41, 0x2c, 0xb6, 0xd6, 0xca, 0x88, 
+	0xb, 0xae, 0x30, 0x9f, 0x73, 0xa1, 0x36, 0x3d, 0xa3, 0xa2, 
+	0xd8, 0x32, 0x2d, 0x23, 0xd3, 0xdc, 0xb6, 0x30, 0x6b, 0x4b, 
+	0xb3, 0x67, 0x9b, 0x92, 0xdb, 0x9d, 0xc2, 0xe7, 0xc, 0x9c, 
+	0xb8, 0xf8, 0x30, 0x3b, 0x5e, 0x9b, 0xe7, 0xf7, 0xd5, 0x9c, 
+	0x2e, 0x11, 0x23, 0x45, 0xec, 0x25, 0x55, 0xe0, 0x55, 0x2a, 
+	0x6, 0x69, 0xb6, 0x48, 0xd0, 0x7c, 0x31, 0x44, 0x2b, 0xc5, 
+	0xad, 0xf0, 0x39, 0x49, 0x51, 0x91, 0xa2, 0x11, 0xc8, 0xe, 
+	0x8a, 0x11, 0xfa, 0xac, 0x18, 0xcd, 0xf3, 0xf1, 0x59, 0x74, 
+	0x30, 0xb3, 0xc3, 0xdf, 0xd, 0xf, 0x71, 0xe, 0x44, 0x50, 
+	0x43, 0x3b, 0x6d, 0xd, 0x9f, 0xa1, 0xeb, 0xca, 0xc4, 0x47, 
+	0x63, 0x54, 0xcd, 0xed, 0xd2, 0x9, 0x76, 0xb3, 0xa6, 0x1c, 
+	0x38, 0x8a, 0xde, 0xe5, 0xb2, 0x58, 0x19, 0xdc, 0x8c, 0x90, 
+	0xc, 0xee, 0x14, 0x6e, 0x51, 0x43, 0xfd, 0xd7, 0x63, 0x18, 
+	0xe7, 0xe7, 0x5a, 0x78, 0x7, 0xeb, 0x7f, 0x78, 0x60, 0x9c, 
+	0x36, 0x33, 0xdf, 0x12, 0xe2, 0x9, 0x13, 0xc4, 0x56, 0xdb, 
+	0xee, 0x23, 0x25, 0xc, 0x59, 0x1b, 0xe8, 0x76, 0x8b, 0x6e, 
+	0x87, 0x5f, 0x8e, 0x10, 0xe6, 0xb4, 0xec, 0x74, 0xe2, 0xbe, 
+	0x6f, 0x51, 0xba, 0xa, 0x4, 0x60, 0x9d, 0x87, 0xb, 0x85, 
+	0x6c, 0x2c, 0x1b, 0xb4, 0x49, 0xc6, 0x2e, 0x37, 0xd0, 0xfe, 
+	0x47, 0x26, 0xb5, 0x67, 0x7, 0x9c, 0xf7, 0xb2, 0x2f, 0xd8, 
+	0x33, 0xc7, 0x9c, 0x15, 0x1d, 00, 0x2d, 0x13, 0xb4, 0xc5, 
+	0x8e, 0x7d, 0x37, 0xde, 0xf8, 0x24, 0x4e, 0x92, 0x4b, 0x3c, 
+	0x48, 0xa5, 0xe2, 0x14, 0x4d, 0x13, 0xf, 0xd1, 0x4c, 0x71, 
+	0x9a, 0xe6, 0x88, 0x47, 0xa9, 0x46, 0x7c, 0xb, 0x75, 0x87, 
+	0x26, 0x27, 0xc6, 0x51, 0x7b, 0x8f, 0x53, 0x9b, 0x78, 0x82, 
+	0x3a, 0xc5, 0x79, 0xda, 0x25, 0x9e, 0xa4, 0x3e, 0xf1, 0x14, 
+	0xa5, 0xc4, 0xd3, 0x38, 0x86, 0xdf, 0xa5, 0xa3, 0xe2, 0x19, 
+	0x1a, 0x17, 0xdf, 0xa3, 0x97, 0xc5, 0xb3, 0xf4, 0xb6, 0xf8, 
+	0xbe, 0x70, 0x88, 0x17, 0x85, 0x47, 0xbc, 0x24, 0x4a, 0xc5, 
+	0xf, 0xc4, 0x2c, 0xf1, 0xc3, 0xbc, 0x5c, 0x3d, 0x97, 0xcd, 
+	0xd5, 0xf3, 0x90, 0xe1, 0x36, 0x16, 0xb5, 0xd8, 0xf2, 0xf5, 
+	0xab, 0x1d, 0x6b, 0xcc, 0xf0, 0x1f, 0x3e, 0x4e, 0x25, 0x26, 
+	0x75, 0xd7, 0x18, 0xb9, 0x9c, 0x96, 0xf4, 0xae, 0xac, 0xf4, 
+	0xee, 0x31, 0xba, 0x3e, 0x60, 0xbc, 0x52, 0x5a, 0x88, 0x1c, 
+	0x6f, 0xe2, 0xff, 0x81, 0xf1, 0xe, 0x36, 0xf8, 0xec, 0x7f, 
+	0x85, 0x71, 0x9a, 0xf8, 0xd6, 0xc1, 0xc3, 0xc5, 0xdb, 0xb1, 
+	0xfa, 0x14, 0x1d, 0xf3, 0x76, 0x2, 0xde, 0xe3, 0xed, 0x2, 
+	0x3c, 0xec, 0xdd, 0xa, 0x78, 0x87, 0x77, 0x1b, 0xe0, 0xa1, 
+	0xc7, 0x2, 0x5a, 0xf0, 0x7e, 0xba, 0x99, 0x93, 0xeb, 0x42, 
+	0x35, 0x78, 0x6f, 0x97, 0x76, 0x7, 0xb4, 0x83, 0x63, 0x34, 
+	0xa0, 0xdd, 0x82, 0xe1, 0xde, 0xc0, 0xc3, 0xbc, 0xd6, 0x5a, 
+	0xc3, 0x3, 0x32, 0xda, 0x78, 0x88, 0x9f, 0x1f, 0xf8, 0xd7, 
+	0x19, 0x6f, 0xe, 0x6e, 0x5e, 0xe6, 0x23, 0x69, 0x95, 0x77, 
+	0x3b, 0x26, 0x78, 0xbd, 0x37, 00, 0xaa, 0xde, 0x1d, 0x80, 
+	0x6e, 0xef, 0x4e, 0xc0, 0x39, 0x81, 0x32, 0x81, 0xcf, 0x8f, 
+	0x52, 0xc3, 0x6a, 0xb9, 0x77, 0x17, 0x44, 0x5a, 0xc0, 0x7b, 
+	0xe3, 0x9, 0x2a, 0xa, 0x78, 0x77, 0x9d, 0x24, 0xe7, 0x63, 
+	0x79, 0xd5, 0x15, 0xa, 0xe0, 0xb5, 0x74, 0x53, 0xd5, 0x9f, 
+	0x4e, 0xdc, 0x17, 0x70, 0xab, 0x90, 0xf8, 0x29, 0x12, 0xf7, 
+	0x33, 0x92, 0xc5, 0xab, 0xe4, 0x17, 0xaf, 0x51, 0x95, 0x78, 
+	0x9d, 0xae, 0x12, 0x6f, 0xa3, 0x4f, 0xbe, 0x43, 0xbd, 0xe2, 
+	0x5d, 0x1a, 0x10, 0xef, 0x51, 0x52, 0xbc, 0x4f, 0xfb, 0xc4, 
+	0x7, 0x74, 00, 0xaf, 0xa3, 0x83, 0x92, 0x4a, 0x87, 0xa4, 
+	0x12, 0xfa, 0xa2, 0x34, 0x85, 0xe, 0x4b, 0xa5, 0x74, 0x8f, 
+	0xa4, 0xd1, 0x31, 0xc9, 0x4b, 0x17, 0xa4, 0xa9, 0xf4, 0xb2, 
+	0x34, 0x8d, 0x5e, 0x91, 0x7c, 0xf4, 0x13, 0xa9, 0x9c, 0x5e, 
+	0x95, 0x66, 0xd0, 0x1b, 0xd2, 0x4c, 0x7a, 0x4f, 0x9a, 0x45, 
+	0x1f, 0x4a, 0xf3, 0xe9, 0xa2, 0x54, 0x8d, 0x2f, 0x84, 0x1a, 
+	0xe1, 0x92, 0x16, 0x8a, 0x12, 0xa9, 0x4e, 0x4c, 0x95, 0x96, 
+	0x88, 0xa, 0x69, 0xa9, 0x8, 0x48, 0x2b, 0x44, 0x8d, 0xb4, 
+	0xb2, 0x20, 0xc1, 0x17, 0xac, 0x86, 0xf3, 0xb, 0xf3, 0x30, 
+	0xd2, 0xa3, 0x5, 0x25, 0x2a, 0x17, 0xd6, 0x6c, 0x20, 0xdb, 
+	0x7d, 0xb, 0x6, 0xfe, 0xb4, 0xc0, 0x9f, 0x6d, 0x4d, 0x97, 
+	0xc, 0x68, 0x97, 0x1b, 0xb8, 0xcc, 0xc9, 0xb1, 0x6e, 0x3a, 
+	0x3b, 0xc2, 0xf3, 0x38, 0xcd, 0xd2, 0x6, 0x2a, 0x93, 0x9a, 
+	0x28, 0x24, 0x6d, 0xa4, 0x95, 0xd2, 0x26, 0x6a, 0x91, 0x9a, 
+	0x49, 0x97, 0xae, 0x43, 0x34, 0x37, 0x23, 0x7a, 0x2d, 0xf4, 
+	0x88, 0xd4, 0x9a, 0xe7, 0xfd, 0xf3, 0xf4, 0x82, 0xe5, 0xfd, 
+	0xb7, 0xcd, 0xcf, 0x21, 0xba, 0xcd, 0xef, 0x3a, 0x80, 0x95, 
+	0x6e, 0x76, 0x1d, 0x38, 0x8e, 0xc7, 0x8f, 0xf7, 0x16, 0x3f, 
+	0x57, 0x99, 0xe9, 0x2e, 0x12, 0xed, 0x77, 0x1a, 0x83, 0x4e, 
+	0x73, 0x70, 0x37, 0xd8, 0xdc, 0x41, 0xd9, 0x18, 0x94, 0xcd, 
+	0xc1, 0x88, 0x5f, 0xce, 0x1b, 0x44, 0x2b, 0xe3, 0x51, 0xa0, 
+	0xe3, 0xe4, 0xb, 0x79, 0xbb, 0xfd, 0x46, 0x6f, 0xcb, 0x8e, 
+	0x87, 0xfc, 0xe3, 0x74, 0xb3, 0xed, 0x4c, 0x88, 0x6b, 0x55, 
+	0xda, 0x41, 0xaa, 0xb4, 0x93, 0xaa, 0xa4, 0x1b, 0x69, 0x81, 
+	0x74, 0x13, 0xad, 0x90, 0x6e, 0xa1, 0x26, 0x69, 0x37, 0x6d, 
+	0x97, 0xba, 0xe1, 0x54, 0xf, 0x8d, 0x4a, 0x3a, 0x7d, 0x42, 
+	0xea, 0xcd, 0x71, 0x48, 0xe0, 0x2d, 0xc8, 0x9f, 0x1, 0x2f, 
+	0xfe, 0x1, 0x50, 0x4b, 0x3, 0x4, 0xa, 00, 00, 00, 
+	0x8, 00, 0x55, 0x58, 0xda, 0x2c, 0x7a, 0x44, 0x1b, 0x63, 
+	0x14, 0x5, 00, 00, 0xb8, 0x8, 00, 00, 0x19, 00, 
+	00, 00, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 
+	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x6e, 0x65, 
+	0x6c, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x7d, 0x55, 0x4d, 
+	0x74, 0x13, 0x55, 0x14, 0xfe, 0x5e, 0x93, 0x74, 0x92, 0xe9, 
+	0x10, 0x42, 0x28, 0xfd, 0xe1, 0xcf, 0x42, 0x29, 0xa4, 0x69, 
+	0x68, 0x51, 0xea, 0x1f, 0x41, 0xa0, 0xd, 0x2d, 0x94, 0x6, 
+	0x5a, 0x6c, 0x5, 0x83, 0x80, 0x4e, 0x93, 0x69, 0x32, 0x6d, 
+	0x98, 0x29, 0x93, 0x49, 0x4b, 0x15, 0xc5, 0x1f, 0xfc, 0x41, 
+	0x14, 0x7f, 0xf0, 0x9f, 0x8d, 0x1b, 0x5c, 0x71, 0x3c, 0x47, 
+	0xf, 0x49, 0xce, 0xb1, 0x1e, 0x77, 0x6e, 0x5c, 0xb8, 0x71, 
+	0xe3, 0xc2, 0x8d, 0x5b, 0xb7, 0x6e, 0x3d, 0x1e, 0xef, 0x9d, 
+	0x49, 0xdb, 0xb4, 0xf4, 0x98, 0x73, 0xf2, 0xe6, 0xbd, 0x7b, 
+	0xef, 0x77, 0xef, 0x7d, 0xf7, 0xbb, 0xef, 0xbd, 0x5f, 0xfe, 
+	0xfd, 0xe1, 0x27, 0x78, 0xb0, 0x17, 0x77, 0x64, 0xec, 0x43, 
+	0x9f, 0x84, 0x7e, 0x3f, 0x12, 0x32, 0xea, 0x70, 0x34, 0x80, 
+	0x1e, 0xc, 0x48, 0x18, 0xf4, 0xe3, 0x98, 0x8c, 0x7a, 0x1c, 
+	0x97, 0x31, 0x84, 0x13, 0x7e, 0xc, 0xb3, 0x3c, 0x29, 0xe1, 
+	0xa4, 0xc, 0x5, 0xa7, 0x78, 0x31, 0x12, 0xc0, 0x28, 0x4e, 
+	0xb3, 0xfa, 0x69, 0x9e, 0x8d, 0xc9, 0x18, 0xc7, 0x33, 0xac, 
+	0x3d, 0x23, 0xe1, 0xac, 0x1f, 0xcf, 0xca, 0x68, 0x44, 0x8a, 
+	0xd, 0xcf, 0xf9, 0xf1, 0x1c, 0x7f, 0xcf, 0xfb, 0x71, 0x41, 
+	0xc2, 0x45, 0x19, 0x5b, 0x38, 0xe0, 0xf3, 0x32, 0xb6, 0xa1, 
+	0x4f, 0xc6, 0xb, 0x50, 0x3, 0x34, 0x9b, 0x60, 0x71, 0x9a, 
+	0x97, 0x19, 0x5e, 0x6a, 0x3c, 0x4c, 0x4a, 0xc8, 0xca, 0xe8, 
+	0x40, 0x8e, 0x17, 0x3a, 0xf, 0x53, 0x1c, 0x6e, 0x3a, 0x80, 
+	0x3c, 0x2e, 0xc9, 0x30, 0x60, 0xfa, 0x31, 0xc3, 0x49, 0x5f, 
+	0xe6, 0xb0, 0x97, 0x25, 0x58, 0x12, 0xa, 0x2, 0x3e, 0x5b, 
+	0xb7, 0xf3, 0x9a, 0x40, 0x28, 0x39, 0xa5, 0xce, 0xaa, 0x3d, 
+	0xea, 0x9c, 0xdd, 0x93, 0x54, 0x27, 0xb4, 0x7c, 0x9c, 0x54, 
+	0x96, 0x66, 0x5b, 0xf3, 0x2, 0xf5, 0x33, 0x96, 0x79, 0x69, 
+	0xc6, 0x16, 0xf0, 0xcf, 0xa8, 0x85, 0xc2, 0x9c, 0x69, 0x65, 
+	0x4, 0x1a, 0x97, 0xcd, 0xc7, 0xb5, 0x2b, 0xf6, 0xa0, 0xae, 
+	0xe5, 0x33, 0x4, 0xa9, 0x33, 0xa7, 0x5, 0x36, 0x2c, 0xeb, 
+	0xfa, 0x8b, 0xb6, 0x6d, 0x1a, 0xa4, 0xa8, 0x3f, 0xa8, 0x1b, 
+	0xba, 0x7d, 0x48, 0xc0, 0x13, 0xe9, 0x3c, 0x23, 0xe0, 0x4d, 
+	0x98, 0x19, 0xa, 0xba, 0x3e, 0xa9, 0x1b, 0xda, 0xa9, 0xe2, 
+	0xa5, 0x9, 0xcd, 0x1a, 0x57, 0x27, 0x38, 0x8d, 0x7a, 0x35, 
+	0x6d, 0xeb, 0xa6, 0x21, 0xd0, 0x11, 0x59, 0xf6, 0x32, 0x30, 
+	0xab, 0x19, 0x76, 0xdc, 0x5d, 0xe7, 0x55, 0x23, 0xdb, 0x33, 
+	0x32, 0x31, 0xa5, 0xa5, 0xed, 0x78, 0xe7, 0x39, 0x1, 0x79, 
+	0xcc, 0x2c, 0x5a, 0x69, 0x6d, 0x50, 0x67, 0x74, 0x8b, 0x5a, 
+	0xb4, 0x73, 0x64, 0xab, 0xa7, 0x55, 0xf6, 0x32, 0xaa, 0x1a, 
+	0x5a, 0xbe, 0x9b, 0x61, 0xa, 0x9e, 0xc4, 0x1, 0x81, 0xe0, 
+	0xca, 0x3d, 0xa, 0x84, 0xcf, 0x9c, 0x4a, 0xb4, 0xf5, 0xad, 
+	00, 0xb1, 0xa9, 0xad, 0xe0, 0x61, 0x3c, 0x22, 0xb0, 0x6e, 
+	0xc9, 0x7e, 0xd0, 0x34, 0xa8, 00, 0x81, 0xe3, 0x5a, 0x7e, 
+	0x56, 0x63, 0x4b, 0xb6, 0x2a, 0x4a, 0x98, 0x55, 0x30, 0x87, 
+	0x2b, 0xa4, 0x18, 0xad, 0x56, 0xe6, 0x80, 0x82, 0x5e, 0x46, 
+	0x86, 0x1f, 0x2c, 0xf, 0x43, 0xe6, 0x15, 0x3c, 0x8a, 0xc7, 
+	0x24, 0xbc, 0xa8, 0xe0, 0x25, 0x5c, 0x55, 0xf0, 0x32, 0x5e, 
+	0x51, 0x70, 0xd, 0x57, 0x25, 0xbc, 0xaa, 0xe0, 0x35, 0x5e, 
+	0xbc, 0x8e, 0x37, 0xa8, 0x2e, 0xab, 0xa, 0x48, 0x85, 0x1d, 
+	0x19, 0x66, 0xfc, 0x75, 0x5, 0x8f, 0xe3, 0x9, 0x1, 0x62, 
+	0x70, 0x3f, 0x87, 0x91, 0x12, 0xb4, 0x7b, 0x5d, 0xb3, 0x4, 
+	0x9a, 0x96, 0x20, 0xc7, 0x2c, 0x3d, 0xd3, 0xaf, 0x66, 0x93, 
+	0xea, 0xbc, 0x59, 0xa4, 0x9c, 0xb7, 0xac, 0x56, 0x24, 0x4c, 
+	0xa3, 0x60, 0x5b, 0xaa, 0x6e, 0xd8, 0x5, 0x9, 0x6f, 0x2a, 
+	0x78, 0xb, 0x6f, 0x2b, 0x78, 0x7, 0x37, 0x14, 0xbc, 0x8b, 
+	0x9b, 0xa, 0xde, 0xc3, 0xfb, 0xa, 0x6e, 0xf1, 0xf2, 0x3, 
+	0xdc, 0xa8, 0x4d, 0x65, 0xc8, 0x28, 0x68, 0x76, 0x81, 0xb3, 
+	0xf8, 0x50, 0xc1, 0x47, 0xf8, 0x58, 0xc1, 0x6d, 0xb6, 0xfa, 
+	0x4, 0x7, 0x24, 0x7c, 0xaa, 0xe0, 0x33, 0x7c, 0x2e, 0xe1, 
+	0xb, 0x5, 0x5f, 0x72, 0xa1, 0x37, 0x8c, 0x99, 0x96, 0x35, 
+	0xdf, 0xdd, 0x36, 0x6e, 0xcd, 0xb7, 0xa9, 0x59, 0x8a, 0xd5, 
+	0xad, 0xe0, 0x2b, 0x5c, 0x17, 0xd8, 0xb8, 0x6, 0x43, 0xb5, 
+	0xbc, 0x54, 0x5, 0x4d, 0x91, 0x1a, 0xb6, 0xc7, 0x6c, 0x4b, 
+	0x37, 0xb2, 0xf1, 0x21, 0x6e, 0x9c, 0xe6, 0xb5, 0x14, 0x8e, 
+	0x66, 0xb9, 0xe2, 0x9, 0xea, 0x56, 0xd3, 0xd0, 0x98, 0x30, 
+	0x89, 0x52, 0x76, 0xa9, 0xb, 0xd7, 0xf4, 0x13, 0x4b, 0xe2, 
+	0x4e, 0x1b, 0x46, 0x1c, 0x68, 0xb0, 0x6, 0x9a, 0x37, 0xa9, 
+	0x98, 0xbe, 0x89, 0xbc, 0x9a, 0x9e, 0x5e, 0x71, 0x28, 0x1c, 
+	0xd, 0x35, 0xf2, 0x3a, 0xc7, 0xa3, 0xa5, 0x65, 0x2d, 0xb3, 
+	0x68, 0xd0, 0x41, 0xd8, 0x18, 0x59, 0x6d, 0xc3, 0x1e, 0x7d, 
+	0x73, 0x39, 0xdd, 0xd6, 0x6a, 0x59, 0xe1, 0x36, 0xa8, 0x49, 
+	0x8c, 0xdd, 0xf4, 0x53, 0x8c, 0x45, 0x37, 0x21, 0x5a, 0xf, 
+	0xa4, 0x73, 0x66, 0x22, 0xa7, 0x5a, 0x74, 0x4, 0x98, 0x51, 
+	0x6f, 0x24, 0xc1, 0xae, 0x36, 0xad, 0xb1, 0xe3, 0xd5, 0xfb, 
+	0x35, 0x6c, 0x2a, 0x31, 0x63, 0x2, 0xe4, 0x66, 0x89, 0xf8, 
+	0x48, 0xed, 0x91, 0x66, 0xd9, 0x49, 0xd5, 0x50, 0xb3, 0x9a, 
+	0x9b, 0x61, 0x20, 0x4b, 0xdd, 0x30, 0xa7, 0x67, 0xec, 0x9c, 
+	0x80, 0x18, 0xa2, 0x1a, 0x10, 0xb2, 0xa6, 0x33, 0x4, 0x7a, 
+	0x57, 0x6c, 0xac, 0x9a, 0x78, 0x3c, 0xf9, 0x3f, 0xdd, 0xe4, 
+	0xf8, 0xf5, 0xa8, 0x19, 0xda, 0x4e, 0x74, 0x4d, 0x70, 0xe7, 
+	0x5a, 0x42, 0xda, 0xe8, 0xa4, 0x9e, 0x27, 0xce, 0x7d, 0xfa, 
+	0x8c, 0x9a, 0xa1, 0xeb, 0x46, 0x8a, 0xc, 0xd, 0xb9, 0x94, 
+	0xd6, 0xeb, 0x4e, 0xcb, 0xad, 0xb8, 0x51, 0xdc, 0x2e, 0x8c, 
+	0x57, 0xcd, 0xe9, 0xe8, 0x29, 0x96, 0x76, 0xb9, 0xa8, 0x15, 
+	0x88, 0x94, 0x74, 0xb1, 0x50, 0xcb, 0xa5, 0x73, 0x6b, 0x90, 
+	0x13, 0x5b, 0xb5, 0xb2, 0x1a, 0x77, 0xc0, 0x83, 0x17, 0x8, 
+	0xd5, 0x7d, 0xb5, 0x8c, 00, 0x86, 0x69, 0xeb, 0x93, 0xf3, 
+	0x6e, 0xf3, 0x30, 0x6d, 0x68, 0xa3, 0xfb, 0x78, 0x1f, 00, 
+	0x1f, 0xfd, 0xe9, 0x5e, 00, 0xff, 0xf6, 0x57, 0xbf, 0xbd, 
+	0xd5, 0x2f, 0x1d, 0x6b, 0xe7, 0x4b, 0xc7, 0x93, 0x46, 0xf, 
+	0x4, 0xdf, 0x38, 0x34, 0xc6, 0x1, 0xf1, 0x7, 0x24, 0x92, 
+	0x40, 0x1c, 0x8c, 0x56, 0x20, 0xa2, 0xb, 0xa8, 0x4b, 0x85, 
+	0x3d, 0xde, 0xa, 0xbc, 0x25, 0xf8, 0xa2, 0xf7, 0xe1, 0x5b, 
+	0x40, 0x7d, 0x2a, 0x2c, 0x79, 0x43, 0xe1, 0xa, 0xfc, 0x65, 
+	0x4, 0x5c, 0x3, 0xd9, 0x35, 0x68, 0xa0, 0x95, 0x92, 0xa, 
+	0xc9, 0x15, 0xac, 0x2b, 0x21, 0x48, 0xd6, 0xc1, 0xef, 0xb1, 
+	0xbe, 0x8c, 0x90, 0x3b, 0xdb, 0x50, 0x46, 0x98, 0x67, 0xa1, 
+	0x68, 0x19, 0x1b, 0xc9, 0xb2, 0x31, 0x15, 0xde, 0x54, 0x41, 
+	0x53, 0x9, 0xcd, 0xae, 0x93, 0x16, 0xd7, 0x49, 0x2b, 0xd9, 
+	0xb4, 0x3a, 0x51, 0x36, 0x7b, 0x43, 0x21, 0x37, 0xca, 0x2, 
+	0xb6, 0xa4, 0x2a, 0xd8, 0x9a, 0x5c, 0xc0, 0x36, 0xfa, 0x6e, 
+	0x3f, 0x19, 0xed, 0x2a, 0xe3, 0xa1, 0x98, 0xa7, 0x84, 0xb6, 
+	0x2e, 0xce, 0x29, 0x56, 0xc6, 0x8e, 0x28, 0x4f, 0xca, 0xd8, 
+	0x79, 0x36, 0xe6, 0x2b, 0xa1, 0x9d, 0xc5, 0xad, 0x8b, 0xe2, 
+	0x56, 0x47, 0x4c, 0xd6, 0xed, 0x31, 0x6f, 0x15, 0xd2, 0xb0, 
+	0xa8, 0x6b, 0x60, 0x1d, 0x4b, 0x82, 0x8b, 0x92, 0xa0, 0x63, 
+	0x1d, 0x92, 0x4b, 0xd8, 0xe5, 0x44, 0x60, 0x4c, 0x7b, 0x6c, 
+	0x1, 0x1d, 0x29, 0x4f, 0xa8, 0xd1, 0xe3, 0xa9, 0x60, 0x77, 
+	0x9, 0x7b, 0x62, 0xa1, 0x48, 0x9, 0x11, 0xc6, 0x35, 0x2f, 
+	0xe2, 0x9a, 0x19, 0xe7, 0xe2, 0x3b, 0xbf, 0xa3, 0xaa, 0xa, 
+	0x1c, 0xa4, 0xf1, 0x16, 0xda, 0x69, 0xdc, 0x5, 0x2f, 0x76, 
+	0x23, 0x8c, 0x3d, 0xf4, 0xe4, 0x75, 0x12, 0x1b, 0x5d, 0x38, 
+	0x82, 0x18, 0x4e, 0xd0, 0x23, 0x3d, 0x8e, 0x6e, 0x5c, 0x20, 
+	0xbe, 0xa6, 0x88, 0x99, 0x2b, 0xa4, 0xb9, 0x49, 0xcc, 0xdc, 
+	0x26, 0x5e, 0xee, 0x10, 0x23, 0x5f, 0x13, 0x1f, 0x77, 0xc9, 
+	0xcb, 0xb7, 0x78, 0xa, 0x15, 0x1c, 0xc6, 0x8f, 0x84, 0xfa, 
+	0x19, 0x7d, 0xf8, 0x15, 0x9, 0xfc, 0x86, 0xa3, 0xf8, 0x1d, 
+	0x3, 0xf8, 0x13, 0x83, 0xf8, 0xb, 0xc7, 0xf1, 0x37, 0xbd, 
+	0x9e, 0xff, 0x60, 0x58, 0xd4, 0x21, 0x29, 0xe8, 0x29, 0x17, 
+	0xf4, 0x92, 0x8b, 0xad, 0x18, 0x11, 0x3b, 0x31, 0x2a, 0xba, 
+	0x70, 0x5a, 0xf4, 0x62, 0x4c, 0xc4, 0x29, 0xda, 0xe, 0xf2, 
+	0x75, 0xc8, 0x65, 0x1a, 0xfd, 0xf4, 0xbe, 0x12, 0xd3, 0xd8, 
+	0xde, 0x75, 0x1f, 0xce, 0xce, 0xef, 0x22, 0x58, 0x9d, 0x36, 
+	0x7f, 0x43, 0xd4, 0x96, 0xd1, 0xe5, 0xbd, 0xe7, 0xb9, 0xb7, 
+	0xb4, 0x97, 0x30, 0xed, 0x2, 0x38, 0x8f, 0x26, 0xca, 0x78, 
+	0x33, 0x2e, 0x62, 0x2b, 0x3d, 0xe9, 0x82, 0x72, 0xae, 0x76, 
+	0xe, 0xcd, 0xea, 0x68, 0x6, 0x22, 0x97, 0x6a, 0x1e, 0xa6, 
+	0xba, 0xec, 0x65, 0xa7, 0xe1, 0x96, 0x32, 0xba, 0x97, 0xb, 
+	0x12, 0x74, 0x42, 0xe6, 0x10, 0x80, 0x4e, 0xe, 0xa7, 0x48, 
+	0x7a, 0x98, 0xd6, 0x75, 0x38, 0xf2, 0x1f, 0x50, 0x4b, 0x3, 
+	0x4, 0xa, 00, 00, 00, 0x8, 00, 0x55, 0x58, 0xda, 
+	0x2c, 0xe7, 0x52, 0x7f, 0x83, 0x46, 0xb, 00, 00, 0xe7, 
+	0x14, 00, 00, 0xf, 00, 00, 00, 0x76, 0x6e, 0x63, 
+	0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x63, 0x6c, 0x61, 
+	0x73, 0x73, 0x9d, 0x57, 0x79, 0x7c, 0x54, 0xf5, 0x11, 0xff, 
+	0xce, 0xdb, 0x4d, 0xde, 0xee, 0xe6, 0x5, 0x92, 0xc0, 0x62, 
+	0x62, 0x2, 0x4, 0x45, 0x5d, 0x2, 0x8, 0x42, 0x5, 0x91, 
+	0xc3, 0x92, 0x10, 0x60, 0x2b, 0xc1, 0x48, 0x82, 0x18, 0x50, 
+	0xcb, 0xb2, 0xfb, 0x92, 0x2c, 0xec, 0xe5, 0xdb, 0xdd, 0x84, 
+	0x58, 0xb5, 0x45, 0x53, 0xad, 0xe2, 0x51, 0x6f, 0xc1, 0x13, 
+	0xf, 0xd6, 0x8a, 0x17, 0x96, 0x6c, 0x54, 0x44, 0xad, 0xb6, 
+	0x5a, 0xad, 0x3d, 0xbc, 0xad, 0xb5, 0xf6, 0xb2, 0xb6, 0xf6, 
+	0xd0, 0x6a, 0x45, 0x5b, 0x5b, 0xa4, 0x33, 0xef, 0xbd, 0x64, 
+	0x77, 0x93, 0xe0, 0x1f, 0xcd, 0x27, 0x6f, 0xe6, 0xf7, 0x9b, 
+	0xdf, 0xfc, 0xe6, 0xfa, 0xcd, 0x6f, 0xe6, 0xb7, 0x2f, 0x7c, 
+	0xf1, 0xd8, 0x13, 0x70, 0x60, 0x3a, 0x4d, 0xf3, 0xa0, 0x15, 
+	0xe7, 0xbb, 0xd1, 0x82, 0x6f, 0xba, 0xf1, 0x2d, 0x6c, 0x91, 
+	0xd1, 0x16, 0x15, 0x17, 0x78, 0x50, 0x84, 0xb, 0x65, 0xd2, 
+	0xeb, 0xc1, 0xb7, 0x71, 0x91, 0x8a, 0x8b, 0x65, 0xf2, 0x1d, 
+	0xf, 0x2e, 0xc1, 0xa5, 0x1e, 0xb8, 0xb1, 0xd5, 0xcd, 0xe4, 
+	0xcb, 0x4, 0x5c, 0x2e, 0xb, 0x57, 0xa8, 0xb8, 0xd2, 0x83, 
+	0x32, 0x7c, 0x57, 0x26, 0x57, 0x79, 0x70, 0x35, 0xae, 0x91, 
+	0xd1, 0xb5, 0x32, 0xba, 0x4e, 0x46, 0xd7, 0x7b, 0x70, 0x3, 
+	0x6e, 0x94, 0xd1, 0x36, 0x15, 0xdb, 0x3d, 0xa8, 0xc2, 0x4d, 
+	0x1e, 0xdc, 0x8c, 0x5b, 0x44, 0xfa, 0xad, 0xc2, 0x65, 0xae, 
+	0xdd, 0x26, 0xe0, 0x76, 0xa1, 0xed, 0x10, 0x70, 0x87, 0x80, 
+	0x3b, 0x45, 0xc9, 0x5d, 0xc2, 0x7c, 0xb7, 0x8a, 0x9d, 0x32, 
+	0xc9, 0x8, 0xb8, 0x47, 0xc0, 0xf7, 0x4, 0xdc, 0xeb, 0xe1, 
+	0x4d, 0xbb, 0x84, 0xf5, 0x3e, 0x99, 0xde, 0x2f, 0xe0, 0x1, 
+	0xe1, 0x7f, 0x50, 0x46, 0xf, 0x79, 0xb0, 0x1b, 0xf, 0x7b, 
+	0xf0, 0x7d, 0xec, 0x11, 0x5a, 0x9f, 0x80, 0xac, 0x80, 0x7e, 
+	0x59, 0x78, 0x44, 0xc5, 0xa3, 0x2a, 0x1e, 0xf3, 0x60, 0x2e, 
+	0xce, 0x77, 0x61, 0xaf, 0xe0, 0xc7, 0x5, 0xec, 0x13, 0xf0, 
+	0x84, 0x7, 0x73, 0xf0, 0xa4, 0x8, 0x79, 0xca, 0x85, 0x1f, 
+	0xb8, 0xf1, 0x34, 0x9e, 0xf1, 0xe0, 0x87, 0xf8, 0x91, 0xa8, 
+	0x7a, 0xd6, 0x85, 0xe7, 0x44, 0xc0, 0x8f, 0xc5, 0xeb, 0xe7, 
+	0x45, 0xde, 0xb, 0x62, 0xfb, 0x4f, 0x64, 0xf4, 0xa2, 0x8c, 
+	0x7e, 0x2a, 0xa3, 0x9f, 0xc9, 0xe6, 0x9f, 0xbb, 0xf1, 0xb, 
+	0xbc, 0x24, 0xd1, 0x7d, 0x59, 0x1c, 0x7d, 0x45, 0xb6, 0xbf, 
+	0x2a, 0xe0, 0x35, 0x15, 0xaf, 0x7b, 0xf0, 0x6, 0xde, 0x54, 
+	0xf1, 0x4b, 0x15, 0x6f, 0x11, 0xa8, 0x8b, 0x50, 0xb2, 0xa2, 
+	0x2b, 0x16, 0xec, 0xa, 0xeb, 0xdd, 0xba, 0x31, 0x9f, 0xe0, 
+	0x30, 0xda, 0x37, 0x10, 0x3c, 0x2b, 0x18, 0x35, 0x1b, 0xf1, 
+	0x54, 0x9c, 0x49, 0x4a, 0x30, 0x4a, 0xa8, 0x5e, 0xb1, 0x31, 
+	0xd0, 0x15, 0x98, 0x11, 0xe8, 0x4e, 0xcd, 0x8, 0x47, 0x3, 
+	0x1d, 0xfa, 0x8c, 0x86, 0x78, 0x24, 0x6e, 0x34, 0xc5, 0x43, 
+	0x7a, 0x84, 0x59, 0x8a, 0x83, 0x32, 0x4b, 0x12, 0xca, 0xd7, 
+	0xe5, 0xf8, 0x4c, 0xe, 0x5e, 0x1c, 0x65, 0x4, 0xba, 0x9b, 
+	0xc3, 0x9b, 0xf5, 0x48, 0xd2, 0x2f, 0x3b, 0x9, 0x65, 0x39, 
+	0x1e, 0x93, 0xc2, 0x3c, 0xce, 0x40, 0x34, 0x9c, 0x14, 0x2d, 
+	0x81, 0x18, 0x8b, 0x4f, 0xe9, 0xa1, 0x26, 0x3d, 0x1a, 0x37, 
+	0x7a, 0xcc, 0xe5, 0x96, 0x78, 0xda, 0x8, 0xa, 0x53, 0x71, 
+	0xc2, 0x94, 0xc2, 0x16, 0xad, 0xab, 0x67, 0x90, 0xec, 0x20, 
+	0x8c, 0xc9, 0x89, 0x5a, 0x66, 0x4, 0x12, 0x9d, 0xe1, 0x60, 
+	0x52, 0x9c, 0x48, 0x76, 0xcc, 0x62, 0x27, 0x12, 0x81, 0x70, 
+	0x2c, 0x65, 0xeb, 0x74, 0x24, 0xc2, 0xcc, 0xee, 0x64, 0xc8, 
+	0x2b, 0xa3, 0x63, 0xba, 0x1e, 0x6a, 0x8d, 0xaf, 0xd2, 0x93, 
+	0x7a, 0xaa, 0x21, 0x12, 0x4e, 0x70, 0x20, 0xd6, 0xb2, 0xf8, 
+	0x5, 0xe1, 0x58, 0x38, 0xb5, 0x88, 0xd, 0xf6, 0xe5, 0x85, 
+	0x64, 0xca, 0x69, 0xbc, 0xad, 0x81, 0xfd, 0xe4, 0x6d, 0x2b, 
+	0xc2, 0x31, 0x7d, 0x65, 0x3a, 0xba, 0x41, 0x37, 0x5a, 0x3, 
+	0x1b, 0x22, 0x4c, 0xf1, 0x34, 0x6e, 0xe, 0xea, 0x89, 0x54, 
+	0x38, 0x1e, 0x63, 0xab, 0x4a, 0x13, 0x86, 0xde, 0xae, 0x1b, 
+	0x86, 0x1e, 0x6a, 0x9, 0x9f, 0xc3, 0x8b, 0xe3, 0x7c, 0x53, 
+	0x72, 0xd6, 0x2d, 0x9, 0x47, 0xf5, 0x58, 0x92, 0x19, 0xd9, 
+	0xbc, 0x92, 0x28, 0x2b, 0x8a, 0xa6, 0xa3, 0x16, 0x5b, 0x71, 
+	0x3a, 0x11, 0x62, 0x8f, 0x85, 0x7f, 0x4, 0x67, 0x44, 0x7d, 
+	0x91, 0xe9, 0x8, 0xc1, 0x9b, 0x30, 0xe2, 0x41, 0x3d, 0x99, 
+	0x5c, 0x19, 0x37, 0xa2, 0x81, 0x88, 0x79, 0x3c, 0x1c, 0x77, 
+	0xf6, 0xcd, 0x27, 0x5c, 0x25, 0x21, 0x8e, 0xf3, 0x2a, 0xfe, 
+	0xd7, 0x83, 0xcc, 0xab, 0xfa, 0xfc, 0xfc, 0x67, 0xd2, 0x3b, 
+	0x3, 0xb1, 0x50, 0x44, 0x6f, 0xec, 0xd2, 0x45, 0xc6, 0x98, 
+	0x3c, 0x25, 0x26, 0x69, 0xfe, 0x14, 0x76, 0xdd, 0x63, 0xc5, 
+	0x78, 0x69, 0x58, 0x9c, 0x1a, 0xc5, 0xce, 0x37, 0x4, 0x62, 
+	0x5d, 0x81, 0xe4, 0xb1, 0xc2, 0xaa, 0x61, 0x13, 0xba, 0x35, 
+	0xac, 0xc6, 0x69, 0x2a, 0x7e, 0xa5, 0x61, 0xd, 0x4e, 0x27, 
+	0x4c, 0x1c, 0x92, 0xc, 0x4b, 0xc2, 0x6, 0x6b, 0xcd, 0xa5, 
+	0x84, 0xec, 0xe9, 0xd1, 0xd0, 0x86, 0xb5, 0x2a, 0xde, 0xd6, 
+	0xf0, 0x6b, 0xbc, 0xc3, 0x62, 0xb, 0x13, 0x43, 0xc3, 0x3a, 
+	0x9c, 0xa1, 0xe2, 0x37, 0x1a, 0x7e, 0x8b, 0xdf, 0x9, 0xff, 
+	0xef, 0x35, 0xfc, 0x1, 0xef, 0x6a, 0xf8, 0xa3, 0x80, 00, 
+	0x38, 0xb, 0xab, 0xe, 0x99, 0xc, 0xc2, 0xff, 0x9e, 0x86, 
+	0xaf, 0x63, 0xbd, 0x8a, 0x3f, 0x69, 0xf8, 0x33, 0xde, 0xd7, 
+	0x70, 0x26, 0xce, 0x92, 0xd1, 0x5f, 0x34, 0xb4, 0xe3, 0x2c, 
+	0x15, 0x7f, 0xd5, 0xf0, 0x37, 0xfc, 0x5d, 0x43, 0x7, 0x42, 
+	0x84, 0x8a, 0xe1, 0xe7, 0x20, 0x22, 0x3e, 0x50, 0xf1, 0xa1, 
+	0x86, 0x7f, 0xe0, 0x23, 0xd, 0x1f, 0xe3, 0x9f, 0x1a, 0x82, 
+	0x8, 0x69, 0x8, 0x63, 0xa3, 0x86, 0x4f, 0xb0, 0x5f, 0xc3, 
+	0xa7, 0xe2, 0xf7, 0x67, 0x2, 0xfe, 0x25, 0x36, 0xfd, 0x1b, 
+	0x3d, 0x9c, 0xa1, 0xa6, 0xa4, 0x48, 0x20, 0xd6, 0x31, 0x63, 
+	0x65, 0xbc, 0x25, 0x1d, 0xec, 0x6c, 0xd2, 0x53, 0x9d, 0xf1, 
+	0x50, 0xa3, 0x61, 0x88, 0x4b, 0x9f, 0xb, 0xdf, 0x7f, 0x4, 
+	0xfc, 0x57, 0xc0, 0x1, 0x1, 0x9b, 0x25, 0x12, 0x5f, 0x88, 
+	0x94, 0x83, 0x3c, 0x25, 0x8, 0x20, 0x52, 0x34, 0x72, 0x90, 
+	0x53, 0xa5, 0x22, 0x8d, 0x8a, 0xb1, 0x5f, 0x25, 0x55, 0x23, 
+	0x17, 0xeb, 0x24, 0x37, 0x3e, 0xd0, 0xc8, 0x43, 0x25, 0x1a, 
+	0x69, 0xbc, 0x8f, 0x4a, 0xb1, 0x9f, 0xcf, 0xcc, 0xd4, 0x19, 
+	0x8e, 0xcf, 0xf0, 0x9f, 0x32, 0x98, 0x6f, 0x9c, 0x2e, 0x39, 
+	0x4b, 0x5a, 0x52, 0x46, 0x38, 0xd6, 0x51, 0x9f, 0x6e, 0xe7, 
+	0xf4, 0xe3, 0xc3, 0x59, 0x1d, 0xdb, 0x14, 0x8b, 0x77, 0xc7, 
+	0x6a, 0x57, 0x2d, 0xad, 0xaf, 0x95, 0x73, 0x61, 0x96, 0x88, 
+	0x5e, 0xab, 0xc7, 0x82, 0xf1, 0x10, 0xb3, 0xd5, 0x6a, 0x34, 
+	0x8a, 0x46, 0xb, 0x28, 0xd3, 0xa8, 0x9c, 0x2a, 0x38, 0x10, 
+	0x34, 0x46, 0xa3, 0xb1, 0x78, 0x97, 0xe0, 0xe3, 0x73, 0x3f, 
+	0x26, 0x55, 0x6b, 0x65, 0x4c, 0x6d, 0x8b, 0x6e, 0x1e, 0x69, 
+	0xda, 0x68, 0xa, 0x24, 0x1a, 0x63, 0xac, 0x43, 0x4f, 0xd6, 
+	0x46, 0x39, 0xff, 0xf8, 0x18, 0x54, 0xf2, 0x6a, 0x34, 0x8e, 
+	0xe, 0x53, 0xa9, 0x52, 0xa3, 0x2a, 0x3a, 0x5c, 0xa3, 0x6a, 
+	0xaa, 0xe0, 0x13, 0xcb, 0x57, 0x6d, 0xb3, 0xd6, 0xa6, 0x7a, 
+	0x12, 0x3a, 0x2b, 0xad, 0xa1, 0xf1, 0x1a, 0x4d, 0x10, 0xa7, 
+	0x26, 0xca, 0xb9, 0xe8, 0x1c, 0x6b, 0xaa, 0x95, 0xd8, 0x74, 
+	0xca, 0x68, 0x12, 0x7, 0x88, 0x8e, 0xc0, 0x46, 0x95, 0x8e, 
+	0xd4, 0x68, 0xb2, 0xc4, 0xe8, 0x28, 0x3e, 0x7, 0x3a, 0x5a, 
+	0xc8, 0xc7, 0x90, 0x4f, 0xa3, 0x29, 0xe4, 0x1b, 0x88, 0x84, 
+	0xe9, 0xf3, 0x60, 0x24, 0x54, 0xaa, 0xd3, 0x68, 0x2a, 0xba, 
+	0x9, 0xee, 0xc1, 0xc4, 0xe5, 0xbb, 0x9a, 0xcb, 0x36, 0x9b, 
+	0xe2, 0x1e, 0xbc, 0xd3, 0x4, 0xd7, 0x40, 0x79, 0x63, 0x91, 
+	0xdd, 0x46, 0x38, 0xa5, 0xb3, 0xab, 0x66, 0x89, 0x5a, 0x2a, 
+	0x57, 0x8b, 0xaf, 0x49, 0x29, 0x5f, 0x9f, 0xb5, 0x6b, 0xfd, 
+	0xfe, 0x81, 0x4b, 0x54, 0x75, 0xc8, 0xea, 0xc7, 0x17, 0xb8, 
+	0x43, 0x4f, 0xad, 0x5a, 0xc6, 0x15, 0xc9, 0xe9, 0xf3, 0x4f, 
+	0xf1, 0x5b, 0x88, 0xb7, 0x94, 0xb5, 0x1b, 0x81, 0xa8, 0xbe, 
+	0xc1, 0x3c, 0x94, 0x35, 0xe1, 0x50, 0xaa, 0x93, 0xab, 0xc, 
+	0xaf, 0x96, 0xe7, 0x91, 0x97, 0xeb, 0xe1, 0x8e, 0x4e, 0xd6, 
+	0x76, 0x4, 0x6b, 0xfb, 0x92, 0xfa, 0xba, 0xae, 0x5e, 0xe4, 
+	0x55, 0xe4, 0xdd, 0x9f, 0x68, 0x22, 0x1e, 0x33, 0xaf, 0x73, 
+	0x49, 0xd0, 0xd0, 0xf9, 0x86, 0xd8, 0x45, 0x6e, 0xa6, 0x6f, 
+	0xa8, 0x14, 0x73, 0x81, 0x3d, 0xd, 0xa5, 0x83, 0x52, 0xcb, 
+	0x86, 0x17, 0xde, 0xb1, 0xac, 0x7a, 0x4, 0xf2, 0xa8, 0x42, 
+	0xa, 0x2b, 0x62, 0x27, 0x7, 0x8a, 0x12, 0x57, 0xa2, 0xfc, 
+	0xd2, 0x96, 0x57, 0x78, 0x8b, 0x7c, 0x56, 0xb8, 0xca, 0x87, 
+	0x2d, 0x72, 0xfc, 0xa5, 0x3e, 0xd9, 0xd2, 0x66, 0xfb, 0x86, 
+	0xaa, 0x1c, 0x1e, 00, 0x93, 0x7e, 0xca, 0x86, 0xa4, 0x6e, 
+	0x74, 0x89, 0xe9, 0x5c, 0xa5, 0xc6, 0x9b, 0x47, 0xb5, 0x34, 
+	0x17, 0xbf, 0xd5, 0x66, 0xe5, 0x5c, 0xa5, 0x9f, 0x9d, 0xd6, 
+	0x93, 0x1c, 0xc, 0x97, 0x59, 0xf3, 0xd6, 0x8a, 0x1, 0x5e, 
+	0xe, 0x4b, 0xa8, 0xc5, 0xdc, 0xda, 0x64, 0xa5, 0x61, 0x2b, 
+	0x67, 0xa1, 0x59, 0x2a, 0xfd, 0xf6, 0xea, 0x30, 0x39, 0x84, 
+	0x9a, 0x11, 0xe9, 0x52, 0x50, 0x97, 0x87, 0x38, 0x6b, 0x2a, 
+	0xd2, 0x83, 0xf3, 0x46, 0xfb, 0x32, 0x71, 0xa1, 0x1d, 0xec, 
+	0x21, 0x25, 0xb9, 0xe5, 0xd3, 0xb, 0x66, 0x6d, 0x5, 0xb3, 
+	0x35, 0x5, 0xb3, 0xe5, 0x4, 0x4d, 0xb4, 0x36, 0xc4, 0x13, 
+	0x3d, 0x56, 0xe5, 0xd6, 0x82, 0xf6, 0xb0, 0xc5, 0x8, 0x9e, 
+	0x5e, 0x38, 0x65, 0x41, 0x2e, 0x99, 0x2e, 0xe6, 0x1d, 0x1c, 
+	0x50, 0x5f, 0x2e, 0x3f, 0x15, 0xe9, 0x9e, 0x55, 0x2b, 0x6, 
+	0xa, 0xc5, 0x92, 0x40, 0x2a, 0xe0, 0x8f, 0x25, 0xd2, 0x29, 
+	0xae, 0xc, 0x7a, 0x20, 0xca, 0x27, 0x73, 0xd8, 0x21, 0x96, 
+	0xd8, 0x1, 0x51, 0xef, 0x97, 0x64, 0xaa, 0x1a, 0xe0, 0xe1, 
+	0x3e, 0x90, 0xd2, 0x8d, 0x2, 0x2e, 0xa7, 0x70, 0xb1, 0xce, 
+	0x94, 0x11, 0x88, 0x25, 0x23, 0x66, 0xb4, 0x5c, 0x49, 0xab, 
+	0x3e, 0x18, 0x85, 0x5d, 0xc5, 0x6a, 0xfb, 0x62, 0x94, 0xab, 
+	0x3d, 0x1c, 0x89, 0x58, 0x4e, 0x95, 0xcb, 0xf6, 0xd5, 0x5c, 
+	0x78, 0x3b, 0x62, 0xdc, 0x1e, 0x3b, 0xe3, 0x6, 0xd3, 0x8a, 
+	0x3, 0x89, 0x84, 0x1e, 0x63, 0xa1, 0xd3, 0xec, 0xdd, 0x79, 
+	0xb5, 0x6c, 0x20, 0x55, 0x87, 0x95, 0x37, 0x76, 0xa5, 0xda, 
+	0xe7, 0xff, 0x92, 0x55, 0x57, 0x2a, 0x6e, 0x51, 0x24, 0xb7, 
+	0x87, 0xf3, 0xcd, 0x97, 0xe4, 0x1d, 0x41, 0x1d, 0x9b, 0xab, 
+	0x59, 0xa7, 0xb2, 0x52, 0x2c, 0xe6, 0x68, 0x96, 0xe5, 0x31, 
+	0xf5, 0x24, 0x53, 0x3a, 0x7, 0xc1, 0x11, 0x4f, 0x4b, 0x1b, 
+	0x1e, 0xc, 0x73, 0x33, 0xef, 0xcd, 0x85, 0x78, 0xcc, 0x8, 
+	0x64, 0x69, 0xde, 0x86, 0xd9, 0xbc, 0x9d, 0xbe, 0x6, 0xf3, 
+	0x66, 0xe4, 0x12, 0xb3, 0x21, 0x9d, 0x6a, 0xd5, 0x37, 0xf3, 
+	0x92, 0xdb, 0x4c, 0xbb, 0x74, 0x24, 0xd2, 0x23, 0x7d, 0x7b, 
+	0x5d, 0xbd, 0x75, 0xa4, 0xee, 0x98, 0x6e, 0x3f, 0x9b, 0xe4, 
+	0x7d, 0x65, 0x5e, 0x73, 0x39, 0x7e, 0x4e, 0x35, 0xbb, 0xc3, 
+	0x87, 0xc2, 0xc9, 0x44, 0x3c, 0x29, 0xef, 0xa9, 0x70, 0x6c, 
+	0xe8, 0x93, 0x20, 0x77, 0x7f, 0xed, 0xbe, 0xaf, 0x84, 0x39, 
+	0xd0, 0xae, 0x8e, 0x78, 0x6a, 0x69, 0x3c, 0x98, 0x4e, 0x9a, 
+	0x49, 0x67, 0xde, 0x1a, 0x7b, 0x5a, 0x6e, 0x5e, 0xad, 0xe6, 
+	0x38, 0x9b, 0xaa, 0x1b, 0x87, 0x7e, 0x2a, 0xb0, 0x59, 0xa5, 
+	0x26, 0xe7, 0xc9, 0x7a, 0xcf, 00, 0x57, 0x2e, 0x4c, 0xad, 
+	0x9d, 0x46, 0xbc, 0xdb, 0x7a, 0x18, 0x8d, 0x4e, 0x58, 0x31, 
+	0x8, 0x4, 0x37, 0xb5, 0x1a, 0x81, 0xa0, 0x8e, 0x5a, 0x7e, 
+	0xa1, 0xb6, 0x2, 0x28, 0xe5, 0x8f, 0x9f, 0x12, 0x90, 0x3f, 
+	0x7e, 0x4a, 0x98, 0x98, 0x9f, 0x9, 0x26, 0xe6, 0x7, 0x81, 
+	0x89, 0xb9, 0x93, 0x9b, 0x98, 0xdb, 0xbb, 0x89, 0xf9, 0x31, 
+	0x60, 0x62, 0x6e, 0xcf, 0x26, 0xd6, 0x6d, 0xdc, 0x6e, 0xf3, 
+	0x75, 0xd8, 0xf3, 0x4e, 0x1b, 0x73, 0x7, 0x67, 0xe8, 0xe2, 
+	0x6f, 0x13, 0x22, 0x50, 0x10, 0x5, 0xe8, 0x48, 0x94, 0xf0, 
+	0xcf, 0xf, 0xe0, 0x95, 0xba, 0x7e, 0x50, 0xdd, 0xd4, 0x3e, 
+	0x28, 0x75, 0x75, 0x7b, 0xa0, 0xec, 0x81, 0xa3, 0xf, 0xce, 
+	0xba, 0xbd, 0x28, 0x6a, 0x2b, 0x73, 0x95, 0xa9, 0x65, 0x27, 
+	0x94, 0xe3, 0xa9, 0x7e, 0x14, 0xf7, 0x41, 0xe5, 0x55, 0x27, 
+	0x93, 0x5c, 0xe, 0x27, 0x93, 0xd5, 0x62, 0x47, 0x71, 0x59, 
+	0x71, 0x16, 0xae, 0xba, 0x72, 0xc2, 0x3e, 0xb8, 0xfb, 0xe0, 
+	0x71, 0x2c, 0xcc, 0xa0, 0x9a, 0x99, 0x3c, 0x35, 0x7b, 0xe1, 
+	0x6e, 0xe3, 0x81, 0x5a, 0x93, 0x45, 0x49, 0x3f, 0xb4, 0x96, 
+	0x5e, 0x85, 0x6a, 0x98, 0x6d, 0xc7, 0xc1, 0x77, 0x45, 0x85, 
+	0x73, 0xf, 0x4a, 0x2d, 0x34, 0xaa, 0xf3, 0x71, 0x57, 0x1f, 
+	0x46, 0xb3, 0xb2, 0xb2, 0xb6, 0xc2, 0x5, 0xd9, 0xcd, 0xdf, 
+	0xe8, 0x7e, 0x94, 0xf7, 0xa1, 0xa2, 0x4e, 0xb6, 0x55, 0x64, 
+	0x31, 0xa6, 0xf, 0x63, 0x4d, 0x23, 0xb, 0x99, 0xb3, 0xf0, 
+	0xf6, 0x61, 0x9c, 0x2c, 0x8c, 0xcb, 0xe2, 0xb0, 0x3e, 0x54, 
+	0xee, 0x66, 0xb7, 0x8, 0x31, 0x86, 0x8b, 0x30, 0x9a, 0xe1, 
+	0x54, 0x38, 0x31, 0x8d, 0x7f, 0x31, 0x4d, 0xc7, 0x58, 0xcc, 
+	0x80, 0xf, 0xc7, 0x31, 0x7d, 0x36, 0x96, 0xe3, 0x78, 0x34, 
+	0xf1, 0xcf, 0x8b, 0xd, 0x8c, 0x23, 0x98, 0x87, 0x2d, 0x98, 
+	0x8f, 0x3b, 0xb0, 0x10, 0xf, 0xe0, 0x24, 0x3c, 0x87, 0xc5, 
+	0x78, 0x19, 0xf5, 0x88, 0xf3, 0x6e, 0x27, 0xcb, 0x9a, 0xc3, 
+	0x5f, 0x2, 0x67, 0x33, 0xe4, 0xd0, 0xe1, 0x58, 0x93, 0x6, 
+	0x8c, 0xdb, 0x8b, 0xaa, 0x21, 0x86, 0xf7, 0xe3, 0xf0, 0x87, 
+	0x6, 0xb5, 0x17, 0x9b, 0x5c, 0x8d, 0xc, 0x8d, 0xff, 0x73, 
+	0xaf, 0x9f, 0x61, 0x12, 0x29, 0x7b, 0x6f, 0x15, 0x7f, 0x8a, 
+	0x70, 0xec, 0x1e, 0xc2, 0xd6, 0xc4, 0x30, 0x3d, 0xc8, 0x36, 
+	0x85, 0x7f, 0x38, 0xa, 0x5b, 0xe9, 0x54, 0x9, 0x89, 0xc3, 
+	0x51, 0x97, 0x45, 0xf5, 0x9a, 0xdc, 0x16, 0x8f, 0xb9, 0xd8, 
+	0xc, 0xd, 0xa7, 0x32, 0xa5, 0xb, 0xdd, 0x56, 0x42, 0x38, 
+	0xe, 0x72, 0x82, 0x94, 0x30, 0x1e, 0x2d, 0xe6, 0xf0, 0xae, 
+	0x2, 0xdb, 0x1c, 0x59, 0xd4, 0xd4, 0xb1, 0xa0, 0xf1, 0x7d, 
+	0x98, 0x50, 0xc7, 0x19, 0x32, 0x31, 0x3, 0x93, 0x23, 0x8b, 
+	0xda, 0x5, 0xd5, 0xf7, 0x4a, 0x8e, 0x29, 0xcf, 0xc0, 0xfa, 
+	0x93, 0xa4, 0x9a, 0xc8, 0xf3, 0x3b, 0xf9, 0xbb, 0x9f, 0xbf, 
+	0x47, 0x2c, 0xbe, 0x49, 0x9c, 0x1f, 0xca, 0x6a, 0x6b, 0x7c, 
+	0x4, 0xa3, 0x89, 0xdb, 0xb0, 0xc4, 0x12, 0x7e, 0xe4, 0x36, 
+	0x9c, 0xc8, 0xa3, 0x9, 0x43, 0x75, 0x66, 0x31, 0x99, 0x47, 
+	0x95, 0x23, 0x90, 0x33, 0x70, 0xae, 0x34, 0xad, 0xb0, 0x5, 
+	0x88, 0x1, 0xf4, 0xa6, 0xad, 0x5f, 0xbc, 0x3b, 0x9c, 0xbf, 
+	0x85, 0xfc, 0xdd, 0x60, 0x27, 0xdc, 0xd1, 0x16, 0x3a, 0xc6, 
+	0x42, 0x3e, 0xb, 0x4d, 0xc9, 0xa2, 0x2e, 0x43, 0x4f, 0x5a, 
+	0x26, 0x49, 0xac, 0x2a, 0x2d, 0xfa, 0x34, 0xb, 0x4d, 0x2f, 
+	0x64, 0x2e, 0x10, 0x34, 0x2d, 0x54, 0x20, 0x70, 0x7a, 0x28, 
+	0x8b, 0x63, 0xc5, 0x85, 0xbc, 0x80, 0x67, 0x48, 0xb7, 0x16, 
+	0x67, 0x64, 0x31, 0x73, 0xd1, 0xe0, 0xf0, 0xb8, 0x39, 0x4e, 
+	0x9b, 0x31, 0xcf, 0xac, 0x2c, 0x66, 0xd9, 0x44, 0x8f, 0xd7, 
+	0x39, 0x2b, 0x8b, 0xd9, 0xf9, 0xe1, 0xc8, 0x59, 0xfb, 0x95, 
+	0x9c, 0x8d, 0x85, 0x3b, 0x2b, 0xb, 0x76, 0x56, 0x8e, 0xb0, 
+	0xd3, 0x31, 0xc7, 0x93, 0xc1, 0xb9, 0x79, 0x56, 0x14, 0xd, 
+	0x8e, 0x8f, 0x9f, 0x53, 0x9c, 0x37, 0x56, 0xf3, 0xc6, 0xae, 
+	0xbc, 0xb1, 0x7b, 0xd0, 0xc0, 0xa2, 0x1, 0x3, 0xbd, 0xc5, 
+	0x5e, 0xd5, 0xeb, 0xf2, 0xba, 0x73, 0x86, 0xe5, 0x16, 0x2b, 
+	0xf3, 0x16, 0x7b, 0x3d, 0xe4, 0xf5, 0x8c, 0xdf, 0x71, 0xb0, 
+	0x37, 0xcf, 0xf1, 0x94, 0x6d, 0x7f, 0x2a, 0xe7, 0xc0, 0x50, 
+	0x72, 0x6, 0x93, 0xf7, 0x62, 0x4e, 0xdb, 0x5e, 0xcc, 0x6d, 
+	0xeb, 0xc7, 0x9, 0x15, 0xf3, 0xb2, 0x66, 0x96, 0xc8, 0x71, 
+	0x67, 0x31, 0x3f, 0x8b, 0x5, 0xfd, 0x58, 0xf8, 0xa4, 0x54, 
+	0x16, 0x8b, 0xb8, 0x68, 0xc7, 0x81, 0x9d, 0x23, 0x25, 0x2e, 
+	0x1f, 0x6d, 0x4d, 0xe6, 0xc0, 0x1a, 0x91, 0x54, 0x71, 0x92, 
+	0x6c, 0x79, 0x18, 0x5f, 0x2d, 0x53, 0xb3, 0x58, 0x9c, 0x39, 
+	0x50, 0x6f, 0x9d, 0x7c, 0xfd, 0xca, 0xcc, 0x81, 0xb9, 0xf9, 
+	0x9a, 0x1a, 0x58, 0x53, 0x75, 0x4e, 0x7, 0x5f, 0x92, 0x14, 
+	0x17, 0x86, 0xbb, 0x71, 0x94, 0x7d, 0x81, 0x5e, 0xe7, 0x82, 
+	0x1, 0xae, 0xd0, 0x95, 0x5c, 0x97, 0x6b, 0xb9, 0x26, 0x1f, 
+	0xc5, 0xf5, 0xd7, 0xc7, 0xb5, 0x77, 0x26, 0xd7, 0xdb, 0x66, 
+	0xae, 0xb4, 0x6b, 0xb8, 0x9c, 0x9c, 0xc1, 0x57, 0x2a, 0xc8, 
+	0xe5, 0x23, 0xc5, 0x57, 0x7f, 0x2b, 0x5f, 0xe1, 0xbb, 0x79, 
+	0xb4, 0x93, 0x2f, 0xdb, 0x2e, 0xf4, 0xe0, 0x45, 0x9c, 0xcb, 
+	0xbf, 0xc4, 0xce, 0xc7, 0x87, 0x5c, 0x72, 0x3e, 0xc5, 0x5, 
+	0x34, 0x17, 0x97, 0xd1, 0x52, 0x5c, 0x41, 0x7e, 0x5c, 0x4d, 
+	0xad, 0xb8, 0x86, 0xd6, 0xe3, 0x3a, 0x4a, 0xe3, 0x7a, 0xba, 
+	0x10, 0x37, 0xd0, 0x76, 0xdc, 0x48, 0xf, 0x62, 0x1b, 0xed, 
+	0xc3, 0x76, 0x7a, 0x15, 0x37, 0xd1, 0x5b, 0xb8, 0x99, 0xde, 
+	0xc3, 0x2d, 0xf4, 0x31, 0x6e, 0xa5, 0x2f, 0x70, 0x9b, 0xe2, 
+	0xc1, 0xed, 0xca, 0x38, 0xec, 0x50, 0x26, 0xe3, 0xe, 0x65, 
+	0x36, 0xee, 0x54, 0x16, 0xe3, 0x2e, 0xa5, 0x19, 0x37, 0x29, 
+	0x6d, 0xd8, 0xa9, 0x24, 0x90, 0x51, 0x2e, 0xc6, 0x3d, 0xca, 
+	0xa5, 0x34, 0x4d, 0xd9, 0x85, 0x88, 0xf2, 0x28, 0xcd, 0x54, 
+	0x5e, 0xa2, 0x59, 0xca, 0xab, 0x74, 0xbc, 0xf2, 0xe, 0x9d, 
+	0xa0, 0xbc, 0x47, 0xf3, 0x94, 0xf7, 0x69, 0x81, 0xf2, 0x11, 
+	0x2d, 0x52, 0x3e, 0xa1, 0xc5, 0x79, 0xc5, 0xe, 0xf2, 0x1b, 
+	0xcd, 0xee, 0x13, 0xcb, 0xb8, 0x9a, 0xa8, 0x4c, 0x79, 0xa3, 
+	0x66, 0x4e, 0x51, 0x6, 0x93, 0xec, 0x94, 0x90, 0xe2, 0xec, 
+	0xb5, 0x73, 0xa8, 0xb4, 0xb3, 0x7a, 0xfd, 0xf8, 0x2c, 0x96, 
+	0xf4, 0x16, 0x91, 0xb7, 0xa8, 0xc6, 0xeb, 0x5c, 0xbf, 0xe3, 
+	0xe0, 0xdb, 0x52, 0xb0, 0xab, 0x6b, 0xc6, 0x7b, 0x39, 0xbe, 
+	0x8d, 0x72, 0xec, 0xf6, 0xd8, 0xbc, 0xd0, 0x83, 0x63, 0xa7, 
+	0x59, 0x47, 0x66, 0x9f, 0x58, 0x2c, 0xb7, 0x74, 0x42, 0x16, 
+	0x4b, 0xfb, 0xb0, 0x2c, 0x8f, 0x79, 0xb9, 0x90, 0x2b, 0x4d, 
+	0xb2, 0x3f, 0x6f, 0xdf, 0x72, 0x3b, 0x8d, 0xc6, 0xda, 0x17, 
+	0xcd, 0x4e, 0x9f, 0xbc, 0xe9, 0xb2, 0x67, 0xcd, 0xeb, 0xcc, 
+	0x12, 0xbf, 0x26, 0x22, 0x96, 0x49, 0xcd, 0x22, 0x4b, 0x76, 
+	0xa5, 0x4d, 0xf3, 0x73, 0x9b, 0x10, 0x9a, 0x7f, 0x37, 0x3b, 
+	0x3c, 0x8f, 0xdb, 0x6f, 0xdb, 0xe0, 0xf1, 0x9e, 0x6, 0x2f, 
+	0xbb, 0xdd, 0x86, 0x62, 0x5a, 0x8b, 0x49, 0x8c, 0xa7, 0xd3, 
+	0x99, 0x98, 0xc7, 0x87, 0xd2, 0x48, 0x1, 0x9c, 0x4a, 0x1b, 
+	0xd0, 0x46, 0x21, 0xb4, 0x93, 0xe, 0x83, 0xda, 0x71, 0x1e, 
+	0x75, 0xe0, 0x12, 0xda, 0xc8, 0x87, 0xb4, 0x9, 0x19, 0x8a, 
+	0xe2, 0x1, 0x8a, 0xa1, 0x8f, 0xe2, 0xd8, 0x47, 0x9, 0x3c, 
+	0x4d, 0x67, 0xe3, 0x79, 0x32, 0xf0, 0x12, 0x25, 0xf1, 0x3a, 
+	0x1f, 0x68, 0x7e, 0x2f, 0x39, 0x7, 0xdf, 0xb0, 0x8b, 0xf5, 
+	0x6b, 0x1c, 0x66, 0xa9, 0x98, 0x97, 0x4b, 0x2c, 0x9f, 0xc5, 
+	0xc5, 0x56, 0x48, 0x4f, 0xde, 0x86, 0xf3, 0xa6, 0xee, 0xc1, 
+	0x8a, 0x5d, 0x66, 0x45, 0x8b, 0x58, 0xcd, 0x9b, 0xae, 0x62, 
+	0xcc, 0xd, 0x9d, 0xae, 0xb6, 0xf1, 0x35, 0x36, 0xbe, 0xd6, 
+	0xc6, 0xfb, 0x19, 0x9f, 0xcc, 0xf8, 0x53, 0x1b, 0x7f, 0x66, 
+	0xe3, 0xcf, 0x5, 0x5b, 0xcd, 0xbd, 0x69, 0x1b, 0x37, 0xd6, 
+	0x2c, 0x56, 0x8a, 0x9a, 0xa9, 0x59, 0x9c, 0x92, 0x41, 0x89, 
+	0x3d, 0x6c, 0xce, 0xc0, 0xd5, 0x34, 0x2d, 0x8b, 0x55, 0xce, 
+	0xfb, 0x1c, 0xf7, 0xb1, 0x71, 0xe5, 0x9c, 0x9d, 0xbd, 0x66, 
+	0x8b, 0x88, 0x99, 0x6d, 0x8b, 0x5b, 0x3, 0xf5, 0xa2, 0x9c, 
+	0x2e, 0xc2, 0x7a, 0xda, 0x8a, 0x8d, 0x74, 0x19, 0x62, 0x74, 
+	0x5, 0xba, 0xe8, 0x4a, 0xf4, 0xb0, 0x1, 0x5b, 0xe8, 0x3a, 
+	0xf4, 0xd2, 0x8d, 0x1c, 0x8c, 0xed, 0xd8, 0x4a, 0x37, 0xf3, 
+	0xae, 0x73, 0xcd, 0x52, 0x7c, 0xde, 0xff, 00, 0x50, 0x4b, 
+	0x3, 0x4, 0xa, 00, 00, 00, 0x8, 00, 0x55, 0x58, 
+	0xda, 0x2c, 0xb6, 0xdd, 0x6b, 0x3d, 0x5, 0x3, 00, 00, 
+	0xbf, 0x5, 00, 00, 0x1f, 00, 00, 00, 0x61, 0x6e, 
+	0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 
+	0x72, 0x79, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 
+	0x72, 0x63, 0x65, 0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x95, 
+	0x54, 0x5b, 0x4f, 0x13, 0x41, 0x18, 0x3d, 0xd3, 0x6e, 0xaf, 
+	0x6c, 0xab, 0xa2, 0xa8, 0xb5, 0x5c, 0x4, 0x15, 0xcb, 0x96, 
+	0xb6, 0xca, 0xc5, 0xfb, 0x15, 0x10, 0xad, 0x82, 0x1a, 0x24, 
+	0xc6, 0xc8, 0x8b, 0x4b, 0x3b, 0x96, 0x25, 0xed, 0x2e, 0x6c, 
+	0xb7, 0xa2, 0x7f, 0x48, 0x5f, 0x7c, 0xc1, 0x58, 0xd, 0x3e, 
+	0xf8, 0xe8, 0x83, 0x3f, 0xca, 0x78, 0x66, 0x5b, 0x5a, 0x83, 
+	0x48, 0x62, 0x93, 0x39, 0xdf, 0xec, 0xcc, 0x77, 0x39, 0xdf, 
+	0xf9, 0x26, 0xfd, 0xf9, 0xeb, 0xdb, 0x77, 0x4, 0x91, 0xc3, 
+	0x6c, 0x1c, 0x49, 0x64, 0x62, 0x48, 0x60, 0x4c, 0x81, 0xa1, 
+	0x20, 0xab, 0x60, 0x5c, 0x41, 0xae, 0x7, 0x79, 0x14, 0x14, 
+	0x5c, 0x50, 0x70, 0x51, 0xc1, 0x84, 0x82, 0xc9, 0x38, 0x6f, 
+	0xa7, 0x22, 0x98, 0x8e, 0xe0, 0x52, 0x4, 0x97, 0x5, 0x42, 
+	0x5b, 0x56, 0xd9, 0x5b, 0x13, 0x10, 0x45, 0x81, 0xf0, 0x9a, 
+	0xb4, 0x2a, 0x6b, 0x9e, 0x40, 0xa0, 0x54, 0x13, 0x48, 0x2f, 
+	0xac, 0x9b, 0x6f, 0xcc, 0x82, 0xb9, 0xe5, 0x15, 0xac, 0x9a, 
+	0x59, 0x91, 0x85, 0x59, 0xa7, 0xea, 0xb8, 0x8b, 0x4e, 0x59, 
+	0x56, 0xaf, 0xd3, 0x77, 0xc3, 0x7a, 0x2b, 0xab, 0x75, 0xfa, 
+	0xae, 0xcc, 0x10, 0xac, 0x92, 0xc0, 0xe0, 0xde, 0x80, 0xa2, 
+	0xc2, 0x59, 0xc7, 0xae, 0x37, 0x6a, 0xd2, 0x55, 0x31, 0x37, 
+	0x2c, 0xdb, 0xf2, 0x6e, 0x9, 0x8c, 0x64, 0x8a, 0xc5, 0x3, 
+	0xb2, 0xaf, 0xcc, 0x8c, 0x3d, 0x17, 0xd0, 0x66, 0xf9, 0x21, 
+	0x70, 0x68, 0xc1, 0xb2, 0xe5, 0xe3, 0x46, 0x6d, 0x55, 0xba, 
+	0xcb, 0xe6, 0x6a, 0x95, 0x27, 0x3d, 0x66, 0xb9, 0xbc, 0x9b, 
+	0x55, 0x60, 0x38, 0x73, 0x70, 0x59, 0x95, 0x2a, 0x6e, 0xd5, 
+	0xff, 0x23, 0xe0, 0xa5, 0x40, 0xd2, 0x95, 0x35, 0xe7, 0x8d, 
+	0xec, 0x6, 0xd, 0xb8, 0x72, 0xb3, 0x21, 0xeb, 0xde, 0xb2, 
+	0xb3, 0x31, 0xe7, 0x6c, 0xd9, 0xb, 0xf2, 0xb5, 0xb7, 0xa4, 
+	0xb4, 0x5a, 0x92, 0x75, 0x69, 0x97, 0xc9, 0xb2, 0xee, 0x99, 
+	0xae, 0xf7, 0xd4, 0x75, 0xca, 0x8d, 0x92, 0x67, 0x39, 0xb6, 
+	0x40, 0xcc, 0x96, 0x5b, 0x4f, 0xdb, 0x1a, 0x45, 0xd8, 0x6f, 
+	0xb1, 0xe8, 0x33, 0x79, 0xe6, 0x34, 0xdc, 0x92, 0x9c, 0xb7, 
+	0x54, 0x23, 0x83, 0xa6, 0x4d, 0x2, 0x9e, 0x2c, 0x2f, 0xb2, 
+	0x9a, 0xfb, 0xce, 0xa7, 0xd1, 0xba, 0xcf, 0x2b, 0x86, 0x3a, 
+	0x52, 0xb8, 0xa2, 0xe3, 0x30, 0x8e, 0xe8, 0xe8, 0x55, 0x70, 
+	0x14, 0xc7, 0x74, 0xf4, 0xe1, 0xb8, 0x8e, 0x13, 0x38, 0x19, 
+	0xc1, 0x55, 0x1d, 0xd7, 0x70, 0x5d, 0xc7, 0xd, 0xdc, 0xd4, 
+	0x71, 0xb, 0xb7, 0x75, 0xdc, 0x51, 0x9f, 0x77, 0x31, 0xa3, 
+	0x63, 00, 0x83, 0x2, 0xa9, 0x7f, 0xe6, 0x17, 0x38, 0xec, 
+	0x6b, 0x50, 0x35, 0xed, 0x4a, 0xe1, 0xc9, 0xea, 0xba, 0x2c, 
+	0x71, 0xea, 0xfd, 0xfb, 0xc9, 0xd2, 0x6a, 0x49, 0x49, 0x10, 
+	0xcc, 0xa8, 0x6, 0xf6, 0x75, 0xea, 0xea, 0x94, 0xb0, 0x5a, 
+	0xdf, 0xb5, 0x8d, 0xaa, 0xf4, 0x58, 0x46, 0xcb, 0xf8, 0x6d, 
+	0x27, 0xea, 0xd2, 0x9b, 0xb3, 0x6a, 0xd2, 0xae, 0x53, 0x1b, 
+	0xa, 0x12, 0xca, 0x14, 0x3b, 0xe7, 0xdd, 0xc1, 0x53, 0x91, 
+	0xbf, 0x66, 0xf3, 0xc7, 0xb3, 0x50, 0x1, 0x51, 0x6, 0x3c, 
+	0xb0, 0x6c, 0x8f, 0x39, 0x62, 0xdc, 0xee, 0xa, 0x3c, 0xea, 
+	0xb, 0x7c, 0xe0, 0x93, 0x52, 0x5, 0x71, 0x9a, 0xaf, 0x3f, 
+	0x9, 0x8e, 0xb, 0x21, 0x40, 0x29, 0xb, 0xf5, 0xeb, 0x6d, 
+	0x5b, 0xea, 0xeb, 0x5b, 0x4a, 0xec, 0x5b, 0xaa, 0x4c, 0x8c, 
+	0x70, 0xa5, 0x70, 0x8a, 0x51, 0x69, 0xee, 0xe6, 0x11, 0xf0, 
+	0x63, 0x4f, 0x19, 0x5f, 0x21, 0x8c, 0x74, 0x13, 0x1, 0xa3, 
+	0xbf, 0x89, 0xa0, 0x91, 0x6b, 0x42, 0x33, 0x52, 0x5a, 0x13, 
+	0xa1, 0x6d, 0xde, 0x52, 0x27, 0xe5, 0x83, 0x30, 0x71, 0x18, 
+	0x1a, 0x46, 0x10, 0xc3, 0x19, 0x56, 0x3e, 0xcb, 0x1a, 0xe7, 
+	0x98, 0x6d, 0x94, 0x1e, 0x1c, 0x51, 0x3b, 0xe7, 0x27, 0xde, 
+	0x6, 0x68, 0x5d, 0xe3, 0x33, 0xc2, 0xd9, 0xf7, 0xd0, 0xb6, 
+	0xd5, 0xe6, 0x7, 0x12, 0xca, 0x68, 0x3b, 0x88, 0x4, 0x60, 
+	0x64, 0x9b, 0x8, 0xab, 0x4f, 0xae, 00, 0x57, 0x70, 0x7, 
+	0xd1, 0x20, 0xda, 0x7, 0x74, 0x89, 0x5, 0xd0, 0x76, 0x8e, 
+	0xb7, 0x76, 0xc1, 0xe0, 0xae, 0xa7, 0x72, 0xe0, 0xa, 0xf9, 
+	0x7, 0x3b, 0xe8, 0x89, 0xf9, 0xf7, 0x21, 0x3f, 0x6d, 0x97, 
+	0x6b, 0x1e, 0x3d, 0xc4, 0x31, 0x44, 0x61, 0x90, 0xcd, 0x38, 
+	0xb5, 0xc9, 0x91, 0xff, 0x5, 0xc, 0xe1, 0x22, 0x71, 0x2, 
+	0x37, 0x31, 0x89, 0xfb, 0x98, 0x42, 0x5, 0xd3, 0xd8, 0xc4, 
+	0x25, 0x46, 0xd, 0x51, 0xcd, 0x16, 0xff, 0x51, 0xb2, 0x57, 
+	0xfc, 0x93, 0x6d, 0xfe, 0x11, 0xed, 0x3, 0xb4, 0xe0, 0xc7, 
+	0x4e, 0xee, 0x30, 0x2d, 0x70, 0x95, 0x38, 0xdc, 0xe9, 0x39, 
+	0xbf, 0x27, 0x26, 0x6a, 0x8, 0x76, 0xd8, 0xe5, 0x93, 0xe4, 
+	0xbf, 0x1c, 0x58, 0x35, 0xca, 0x97, 0x9d, 0xc0, 0x6d, 0x9e, 
+	0x8e, 0x74, 0x62, 0x53, 0x5c, 0x2a, 0x56, 0x6c, 0xef, 0x29, 
+	0x31, 0x43, 0x3c, 0xd3, 0x71, 0x1b, 0x69, 0x97, 0x8, 0x1b, 
+	0xd9, 0x2f, 0xd0, 0xbb, 0xbe, 0x71, 0xff, 0xf4, 0x1e, 0xc7, 
+	0x38, 0x4f, 0x7b, 0x96, 0x3, 0x69, 0xf9, 0xbf, 0x60, 0xe3, 
+	0x6a, 0xb4, 0x53, 0x2d, 0xf5, 0xb, 0xca, 0xa4, 0xfb, 0x7, 
+	0xfa, 0xb4, 0x5d, 0x5, 0x95, 0x80, 0xfd, 0x6b, 0xe9, 0x57, 
+	0x7, 0xa, 0xd9, 0xcb, 0x71, 0x3, 0x45, 0x3e, 0x9b, 0x87, 
+	0x94, 0xf3, 0x11, 0x65, 0x5b, 0xe4, 0xcd, 0xa8, 0x4f, 0xf9, 
+	0xfc, 0x6f, 0x50, 0x4b, 0x1, 0x2, 0xa, 00, 0xa, 00, 
+	00, 00, 00, 00, 0x16, 0xa9, 0xda, 0x2c, 00, 00, 
+	00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 
+	0x9, 00, 00, 00, 00, 00, 00, 00, 00, 00, 
+	00, 00, 00, 00, 00, 00, 00, 00, 0x4d, 0x45, 
+	0x54, 0x41, 0x2d, 0x49, 0x4e, 0x46, 0x2f, 0x50, 0x4b, 0x1, 
+	0x2, 0xa, 00, 0xa, 00, 00, 00, 00, 00, 0x16, 
+	0xa9, 0xda, 0x2c, 0x1e, 0xb9, 0xd9, 0x17, 0x2d, 00, 00, 
+	00, 0x2d, 00, 00, 00, 0x14, 00, 00, 00, 00, 
+	00, 00, 00, 00, 00, 00, 00, 00, 00, 0x27, 
+	00, 00, 00, 0x4d, 0x45, 0x54, 0x41, 0x2d, 0x49, 0x4e, 
+	0x46, 0x2f, 0x4d, 0x41, 0x4e, 0x49, 0x46, 0x45, 0x53, 0x54, 
+	0x2e, 0x4d, 0x46, 0x50, 0x4b, 0x1, 0x2, 0xa, 00, 0xa, 
+	00, 00, 00, 0x8, 00, 0xe3, 0xa5, 0xda, 0x2c, 0x5f, 
+	0xeb, 0x71, 0x9a, 0xd7, 0xd, 00, 00, 0x8, 0x19, 00, 
+	00, 0xf, 00, 00, 00, 00, 00, 00, 00, 00, 
+	00, 00, 00, 00, 00, 0x86, 00, 00, 00, 0x76, 
+	0x6e, 0x63, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x2e, 0x63, 
+	0x6c, 0x61, 0x73, 0x73, 0x50, 0x4b, 0x1, 0x2, 0xa, 00, 
+	0xa, 00, 00, 00, 0x8, 00, 0x16, 0xa9, 0xda, 0x2c, 
+	0xc9, 0xa0, 0xa1, 0x6c, 0x47, 0xf, 00, 00, 0x1f, 0x1e, 
+	00, 00, 0xe, 00, 00, 00, 00, 00, 00, 00, 
+	00, 00, 00, 00, 00, 00, 0x8a, 0xe, 00, 00, 
+	0x72, 0x66, 0x62, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 
+	0x6c, 0x61, 0x73, 0x73, 0x50, 0x4b, 0x1, 0x2, 0xa, 00, 
+	0xa, 00, 00, 00, 0x8, 00, 0x55, 0x58, 0xda, 0x2c, 
+	0x7a, 0x44, 0x1b, 0x63, 0x14, 0x5, 00, 00, 0xb8, 0x8, 
+	00, 00, 0x19, 00, 00, 00, 00, 00, 00, 00, 
+	00, 00, 00, 00, 00, 00, 0xfd, 0x1d, 00, 00, 
+	0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 
+	0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 
+	0x63, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x4b, 0x1, 0x2, 0xa, 
+	00, 0xa, 00, 00, 00, 0x8, 00, 0x55, 0x58, 0xda, 
+	0x2c, 0xe7, 0x52, 0x7f, 0x83, 0x46, 0xb, 00, 00, 0xe7, 
+	0x14, 00, 00, 0xf, 00, 00, 00, 00, 00, 00, 
+	00, 00, 00, 00, 00, 00, 00, 0x48, 0x23, 00, 
+	00, 0x76, 0x6e, 0x63, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 
+	0x2e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x4b, 0x1, 0x2, 
+	0xa, 00, 0xa, 00, 00, 00, 0x8, 00, 0x55, 0x58, 
+	0xda, 0x2c, 0xb6, 0xdd, 0x6b, 0x3d, 0x5, 0x3, 00, 00, 
+	0xbf, 0x5, 00, 00, 0x1f, 00, 00, 00, 00, 00, 
+	00, 00, 00, 00, 00, 00, 00, 00, 0xbb, 0x2e, 
+	00, 00, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 
+	0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x49, 0x6d, 0x61, 0x67, 
+	0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x63, 0x6c, 
+	0x61, 0x73, 0x73, 0x50, 0x4b, 0x5, 0x6, 00, 00, 00, 
+	00, 0x7, 00, 0x7, 00, 0xc3, 0x1, 00, 00, 0xfd, 
+	0x31, 00, 00, 00, 00, };
+
+static prog_char data_vncjava_html[] = {
+	/* /vncjava.html */
+	0x2f, 0x76, 0x6e, 0x63, 0x6a, 0x61, 0x76, 0x61, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
+	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 
+	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 
+	0x76, 0x65, 0x72, 0x3a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
+	0x6b, 0x69, 0x2f, 0x70, 0x72, 0x65, 0x2d, 0x31, 0x2e, 0x31, 
+	0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 
+	0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 
+	0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 
+	0x69, 0x6b, 0x69, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 
+	0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 
+	0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 
+	0xd, 0xa, 0xd, 0xa, 0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 
+	0x59, 0x50, 0x45, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 
+	0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 
+	0x57, 0x33, 0x43, 0x2f, 0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 
+	0x54, 0x4d, 0x4c, 0x20, 0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 
+	0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 
+	0x6c, 0x2f, 0x2f, 0x45, 0x4e, 0x22, 0x3e, 0xa, 0x3c, 0x68, 
+	0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x68, 0x65, 
+	0x61, 0x64, 0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 
+	0x69, 0x74, 0x6c, 0x65, 0x3e, 0x56, 0x69, 0x72, 0x74, 0x75, 
+	0x61, 0x6c, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 
+	0x20, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x3c, 0x2f, 0x74, 
+	0x69, 0x74, 0x6c, 0x65, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x2f, 
+	0x68, 0x65, 0x61, 0x64, 0x3e, 0xa, 0xa, 0x20, 0x20, 0x3c, 
+	0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 
+	0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xa, 0x20, 
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x61, 0x70, 0x70, 0x6c, 
+	0x65, 0x74, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x3d, 0x22, 0x76, 
+	0x6e, 0x63, 0x76, 0x69, 0x65, 0x77, 0x65, 0x72, 0x2e, 0x63, 
+	0x6c, 0x61, 0x73, 0x73, 0x22, 0x20, 0x61, 0x72, 0x63, 0x68, 
+	0x69, 0x76, 0x65, 0x3d, 0x22, 0x76, 0x6e, 0x63, 0x76, 0x69, 
+	0x65, 0x77, 0x65, 0x72, 0x2e, 0x6a, 0x61, 0x72, 0x22, 0xa, 
+	0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 
+	0x74, 0x68, 0x3d, 0x22, 0x34, 0x38, 0x30, 0x22, 0x20, 0x68, 
+	0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, 0x34, 0x30, 0x30, 
+	0x22, 0x3e, 0xa, 0x9, 0x3c, 0x70, 0x61, 0x72, 0x61, 0x6d, 
+	0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x50, 0x4f, 0x52, 
+	0x54, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 
+	0x35, 0x39, 0x30, 0x30, 0x22, 0x3e, 0xa, 0x9, 0x20, 0x20, 
+	0x4a, 0x61, 0x76, 0x61, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 
+	0x62, 0x65, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 
+	0x20, 0x69, 0x6e, 0x20, 0x79, 0x6f, 0x75, 0x72, 0x20, 0x77, 
+	0x65, 0x62, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 
+	0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 
+	0x74, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0xa, 0x20, 
+	0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x61, 0x70, 0x70, 
+	0x6c, 0x65, 0x74, 0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 
+	0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xa, 0x20, 
+	0x20, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 
+	0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, };
+
+static prog_char data_style_css[] = {
+	/* /style.css */
+	0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x63, 0x73, 0x73, 0,
+	0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, 
+	0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, 
+	0x76, 0x65, 0x72, 0x3a, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x69, 
+	0x6b, 0x69, 0x2f, 0x70, 0x72, 0x65, 0x2d, 0x31, 0x2e, 0x31, 
+	0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 
+	0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 
+	0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 
+	0x69, 0x6b, 0x69, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 
+	0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 
+	0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0xd, 
+	0xa, 0xd, 0xa, 0x68, 0x31, 0x20, 0xa, 0x7b, 0xa, 0x20, 
+	0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 
+	0x6e, 0x3a, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 
+	0xa, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 
+	0x7a, 0x65, 0x3a, 0x31, 0x34, 0x70, 0x74, 0x3b, 0xa, 0x20, 
+	0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 
+	0x6c, 0x79, 0x3a, 0x61, 0x72, 0x69, 0x61, 0x6c, 0x2c, 0x68, 
+	0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, 0x63, 0x61, 0x3b, 0xa, 
+	0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 
+	0x67, 0x68, 0x74, 0x3a, 0x62, 0x6f, 0x6c, 0x64, 0x3b, 0xa, 
+	0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 
+	0x31, 0x30, 0x70, 0x78, 0x3b, 0x20, 0xa, 0x7d, 0xa, 0xa, 
+	0x62, 0x6f, 0x64, 0x79, 0xa, 0x7b, 0xa, 0xa, 0x20, 0x20, 
+	0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 
+	0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 
+	0x66, 0x66, 0x65, 0x65, 0x63, 0x3b, 0xa, 0x20, 0x20, 0x63, 
+	0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x54, 0x45, 0x58, 0x54, 0x43, 
+	0x4f, 0x4c, 0x4f, 0x52, 0x3b, 0xa, 0xa, 0x20, 0x20, 0x66, 
+	0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x38, 
+	0x70, 0x74, 0x3b, 0xa, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 
+	0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x61, 0x72, 
+	0x69, 0x61, 0x6c, 0x2c, 0x68, 0x65, 0x6c, 0x76, 0x65, 0x74, 
+	0x69, 0x63, 0x61, 0x3b, 0xa, 0x7d, 0xa, 0xa, 0x2e, 0x6d, 
+	0x65, 0x6e, 0x75, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0xa, 0x7b, 
+	0xa, 0x20, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 
+	0x6e, 0x3a, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 
+	0x3b, 0xa, 0x20, 0x20, 0x74, 0x6f, 0x70, 0x3a, 0x31, 0x30, 
+	0x70, 0x78, 0x3b, 0xa, 0x20, 0x20, 0x6c, 0x65, 0x66, 0x74, 
+	0x3a, 0x30, 0x25, 0x3b, 0xa, 0x20, 0x20, 0x77, 0x69, 0x64, 
+	0x74, 0x68, 0x3a, 0x31, 0x34, 0x25, 0x3b, 0xa, 0x20, 0x20, 
+	0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 
+	0x3b, 0xa, 0xa, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 
+	0x6e, 0x67, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, 0xa, 0x20, 
+	0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x34, 0x70, 
+	0x78, 0x3b, 0xa, 0x9, 0xa, 0x20, 0x20, 0x62, 0x6f, 0x72, 
+	0x64, 0x65, 0x72, 0x3a, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 
+	0x20, 0x31, 0x70, 0x78, 0x3b, 0xa, 0x20, 0x20, 0x62, 0x61, 
+	0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 
+	0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 
+	0x63, 0x64, 0x32, 0x3b, 0xa, 0x20, 0x20, 0x74, 0x65, 0x78, 
+	0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x6c, 0x65, 
+	0x66, 0x74, 0x3b, 0xa, 0x20, 0x20, 0xa, 0x20, 0x20, 0x66, 
+	0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 
+	0x30, 0x70, 0x74, 0x3b, 0xa, 0x7d, 0xa, 0xa, 0x2e, 0x63, 
+	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x62, 0x6c, 0x6f, 0x63, 
+	0x6b, 0xa, 0x7b, 0x20, 0x20, 0xa, 0x20, 0x20, 0x70, 0x6f, 
+	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x62, 0x73, 
+	0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0xa, 0x20, 0x20, 0x74, 
+	0x6f, 0x70, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, 0xa, 0x20, 
+	0x20, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x37, 0x25, 0x3b, 
+	0xa, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x35, 
+	0x32, 0x25, 0x3b, 0xa, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 
+	0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0xa, 0xa, 0x20, 
+	0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x31, 
+	0x30, 0x70, 0x78, 0x3b, 0xa, 0x20, 0x20, 0x6d, 0x61, 0x72, 
+	0x67, 0x69, 0x6e, 0x3a, 0x34, 0x70, 0x78, 0x3b, 0xa, 0x20, 
+	0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 
+	0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x33, 0x30, 0x70, 0x78, 0x3b, 
+	0xa, 0xa, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 
+	0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x64, 0x6f, 0x74, 0x74, 
+	0x65, 0x64, 0x3b, 0xa, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 
+	0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 
+	0x6f, 0x72, 0x3a, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3b, 
+	0xa, 0xa, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 
+	0x69, 0x7a, 0x65, 0x3a, 0x38, 0x70, 0x74, 0x3b, 0xa, 0x20, 
+	0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 
+	0x6c, 0x79, 0x3a, 0x61, 0x72, 0x69, 0x61, 0x6c, 0x2c, 0x68, 
+	0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, 0x63, 0x61, 0x3b, 0x20, 
+	0x20, 0xa, 0xa, 0x7d, 0xa, 0xa, 0x2e, 0x6e, 0x65, 0x77, 
+	0x73, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0xa, 0x7b, 0xa, 0x20, 
+	0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 
+	0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0xa, 
+	0x20, 0x20, 0x74, 0x6f, 0x70, 0x3a, 0x31, 0x30, 0x70, 0x78, 
+	0x3b, 0xa, 0x20, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x37, 
+	0x32, 0x25, 0x3b, 0xa, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 
+	0x68, 0x3a, 0x32, 0x34, 0x25, 0x3b, 0xa, 0x20, 0x20, 0x66, 
+	0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x3b, 
+	0xa, 0xa, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 
+	0x67, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, 0xa, 0x20, 0x20, 
+	0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x34, 0x70, 0x78, 
+	0x3b, 0xa, 0xa, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 
+	0x72, 0x3a, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x31, 
+	0x70, 0x78, 0x3b, 0xa, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 
+	0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 
+	0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x63, 0x64, 
+	0x32, 0x3b, 0xa, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 
+	0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x6c, 0x65, 0x66, 0x74, 
+	0x3b, 0xa, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 
+	0x69, 0x7a, 0x65, 0x3a, 0x38, 0x70, 0x74, 0x3b, 0xa, 0xa, 
+	0x7d, 0xa, 0xa, 0xa, 0xa, 0x70, 0x2e, 0x69, 0x6e, 0x74, 
+	0x72, 0x6f, 0xa, 0x7b, 0xa, 0x20, 0x20, 0x6d, 0x61, 0x72, 
+	0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x32, 
+	0x30, 0x70, 0x78, 0x3b, 0xa, 0x20, 0x20, 0x6d, 0x61, 0x72, 
+	0x67, 0x69, 0x6e, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 
+	0x32, 0x30, 0x70, 0x78, 0x3b, 0xa, 0xa, 0x20, 0x20, 0x66, 
+	0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x31, 
+	0x30, 0x70, 0x74, 0x3b, 0xa, 0x20, 0x20, 0x66, 0x6f, 0x6e, 
+	0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x62, 
+	0x6f, 0x6c, 0x64, 0x3b, 0xa, 0x20, 0x20, 0x66, 0x6f, 0x6e, 
+	0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x61, 
+	0x72, 0x69, 0x61, 0x6c, 0x2c, 0x68, 0x65, 0x6c, 0x76, 0x65, 
+	0x74, 0x69, 0x63, 0x61, 0x3b, 0x20, 0x20, 0xa, 0x7d, 0xa, 
+	0xa, 0x70, 0x2e, 0x63, 0x6c, 0x69, 0x6e, 0x6b, 0xa, 0x7b, 
+	0xa, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 
+	0x7a, 0x65, 0x3a, 0x31, 0x32, 0x70, 0x74, 0x3b, 0xa, 0x20, 
+	0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 
+	0x6c, 0x79, 0x3a, 0x63, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 
+	0x2c, 0x6d, 0x6f, 0x6e, 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, 
+	0x3b, 0x20, 0x20, 0xa, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 
+	0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x63, 0x65, 0x6e, 
+	0x74, 0x65, 0x72, 0x3b, 0xa, 0x7d, 0xa, 0xa, 0x70, 0x2e, 
+	0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0xa, 0x7b, 0xa, 
+	0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 
+	0x65, 0x3a, 0x31, 0x30, 0x70, 0x74, 0x3b, 0xa, 0x20, 0x20, 
+	0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 
+	0x79, 0x3a, 0x61, 0x72, 0x69, 0x61, 0x6c, 0x2c, 0x68, 0x65, 
+	0x6c, 0x76, 0x65, 0x74, 0x69, 0x63, 0x61, 0x3b, 0x20, 0x20, 
+	0xa, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 
+	0x69, 0x67, 0x6e, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 
+	0x3b, 0xa, 0x7d, 0xa, 0xa, 0xa, 0xa, 0x69, 0x6d, 0x67, 
+	0x2e, 0x72, 0x69, 0x67, 0x68, 0x74, 0xa, 0x7b, 0xa, 0x20, 
+	0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x72, 0x69, 0x67, 
+	0x68, 0x74, 0x3b, 0xa, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 
+	0x69, 0x6e, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, 0xa, 0x7d, 
+	0xa, 0xa, 0x69, 0x6d, 0x67, 0x2e, 0x6c, 0x65, 0x66, 0x74, 
+	0xa, 0x7b, 0xa, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 
+	0x3a, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0xa, 0x20, 0x20, 0x6d, 
+	0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x31, 0x30, 0x70, 0x78, 
+	0x3b, 0xa, 0x7d, 0xa, 0xa, 0x70, 0x2e, 0x66, 0x69, 0x67, 
+	0xa, 0x7b, 0xa, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 
+	0x72, 0x3a, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x31, 
+	0x70, 0x78, 0x3b, 0x20, 0xa, 0xa, 0x20, 0x20, 0x74, 0x65, 
+	0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, 
+	0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0xa, 0xa, 0x20, 
+	0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 
+	0x31, 0x30, 0x70, 0x78, 0x3b, 0xa, 0x20, 0x20, 0x6d, 0x61, 
+	0x72, 0x67, 0x69, 0x6e, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, 
+	0xa, 0xa, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 
+	0x69, 0x7a, 0x65, 0x3a, 0x37, 0x70, 0x74, 0x3b, 0xa, 0x7d, 
+	0xa, 0xa, 0x70, 0x2e, 0x72, 0x66, 0x69, 0x67, 0xa, 0x7b, 
+	0xa, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 
+	0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x31, 0x70, 0x78, 
+	0x3b, 0x20, 0xa, 0xa, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 
+	0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, 
+	0x6e, 0x74, 0x65, 0x72, 0x3b, 0xa, 0xa, 0x20, 0x20, 0x70, 
+	0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x30, 
+	0x70, 0x78, 0x3b, 0xa, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 
+	0x69, 0x6e, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, 0xa, 0xa, 
+	0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 
+	0x65, 0x3a, 0x37, 0x70, 0x74, 0x3b, 0xa, 0xa, 0x20, 0x20, 
+	0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x72, 0x69, 0x67, 0x68, 
+	0x74, 0x3b, 0xa, 0x7d, 0xa, 0xa, 0x70, 0x2e, 0x6c, 0x66, 
+	0x69, 0x67, 0xa, 0x7b, 0xa, 0x20, 0x20, 0x62, 0x6f, 0x72, 
+	0x64, 0x65, 0x72, 0x3a, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 
+	0x20, 0x31, 0x70, 0x78, 0x3b, 0x20, 0xa, 0xa, 0x20, 0x20, 
+	0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 
+	0x3a, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0xa, 
+	0xa, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 
+	0x3a, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0xa, 0x20, 0x20, 
+	0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x31, 0x30, 0x70, 
+	0x78, 0x3b, 0xa, 0xa, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 
+	0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x37, 0x70, 0x74, 0x3b, 
+	0xa, 0xa, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 
+	0x6c, 0x65, 0x66, 0x74, 0x3b, 0xa, 0x7d, 0xa, 0xa, 0x70, 
+	0xa, 0x7b, 0xa, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 
+	0x6e, 0x67, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x31, 0x30, 
+	0x70, 0x78, 0x3b, 0xa, 0x7d, 0xa, 0xa, 0x70, 0x2e, 0x72, 
+	0x69, 0x67, 0x68, 0x74, 0xa, 0x7b, 0xa, 0x20, 0x20, 0x74, 
+	0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 
+	0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x20, 0xa, 0x7d, 0xa, 
+	0xa, 0x70, 0x2e, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 
+	0x74, 0x69, 0x74, 0x6c, 0x65, 0xa, 0x7b, 0xa, 0x20, 0x20, 
+	0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 
+	0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0xa, 0xa, 
+	0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 
+	0x65, 0x3a, 0x31, 0x34, 0x70, 0x74, 0x3b, 0xa, 0xa, 0x20, 
+	0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x30, 
+	0x70, 0x78, 0x3b, 0xa, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 
+	0x69, 0x6e, 0x3a, 0x34, 0x70, 0x78, 0x3b, 0xa, 0x20, 0x20, 
+	0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 
+	0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x30, 0x70, 0x78, 0x3b, 0xa, 
+	0xa, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 
+	0x54, 0x49, 0x54, 0x4c, 0x45, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 
+	0x3b, 0xa, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 
+	0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 
+	0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x63, 0x62, 0x61, 0x3b, 
+	0xa, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 
+	0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x31, 0x70, 0x78, 
+	0x3b, 0xa, 0xa, 0x7d, 0x20, 0xa, 0xa, 0xa, 0xa, 0xa, 
+};
+
+struct httpd_fsdata_file file_cgi_processes[] = {{NULL, data_cgi_processes, data_cgi_processes + 15, sizeof(data_cgi_processes) - 15}};
+
+struct httpd_fsdata_file file_cgi_files[] = {{file_cgi_processes, data_cgi_files, data_cgi_files + 11, sizeof(data_cgi_files) - 11}};
+
+struct httpd_fsdata_file file_cgi_meminfo[] = {{file_cgi_files, data_cgi_meminfo, data_cgi_meminfo + 13, sizeof(data_cgi_meminfo) - 13}};
+
+struct httpd_fsdata_file file_cgi_tcp[] = {{file_cgi_meminfo, data_cgi_tcp, data_cgi_tcp + 9, sizeof(data_cgi_tcp) - 9}};
+
+struct httpd_fsdata_file file_img_screenshot_png[] = {{file_cgi_tcp, data_img_screenshot_png, data_img_screenshot_png + 20, sizeof(data_img_screenshot_png) - 20}};
+
+struct httpd_fsdata_file file_404_html[] = {{file_img_screenshot_png, data_404_html, data_404_html + 10, sizeof(data_404_html) - 10}};
+
+struct httpd_fsdata_file file_footer_plain[] = {{file_404_html, data_footer_plain, data_footer_plain + 14, sizeof(data_footer_plain) - 14}};
+
+struct httpd_fsdata_file file_header_html[] = {{file_footer_plain, data_header_html, data_header_html + 13, sizeof(data_header_html) - 13}};
+
+struct httpd_fsdata_file file_index_html[] = {{file_header_html, data_index_html, data_index_html + 12, sizeof(data_index_html) - 12}};
+
+struct httpd_fsdata_file file_vnc_html[] = {{file_index_html, data_vnc_html, data_vnc_html + 10, sizeof(data_vnc_html) - 10}};
+
+struct httpd_fsdata_file file_vncviewer_jar[] = {{file_vnc_html, data_vncviewer_jar, data_vncviewer_jar + 15, sizeof(data_vncviewer_jar) - 15}};
+
+struct httpd_fsdata_file file_vncjava_html[] = {{file_vncviewer_jar, data_vncjava_html, data_vncjava_html + 14, sizeof(data_vncjava_html) - 14}};
+
+struct httpd_fsdata_file file_style_css[] = {{file_vncjava_html, data_style_css, data_style_css + 11, sizeof(data_style_css) - 11}};
+
+#define HTTPD_FS_ROOT file_style_css
+
+#define HTTPD_FS_NUMFILES 13
\ No newline at end of file
diff --git a/contiki-avr/apps/httpd-fsdata.h b/contiki-avr/apps/httpd-fsdata.h
new file mode 100644
index 0000000..61b43ef
--- /dev/null
+++ b/contiki-avr/apps/httpd-fsdata.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2001, Swedish Institute of Computer Science.
+ * 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 Swedish Institute
+ *      of Computer Science and its contributors.
+ * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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. 
+ *
+ * This file is part of the lwIP TCP/IP stack.
+ * 
+ * Author: Adam Dunkels <adam@sics.se>
+ *
+ * $Id: httpd-fsdata.h,v 1.1 2003/07/04 10:54:51 adamdunkels Exp $
+ */
+#ifndef __HTTPD_FSDATA_H__
+#define __HTTPD_FSDATA_H__
+
+#include "uipopt.h"
+
+#include <avr/pgmspace.h>
+
+struct httpd_fsdata_file {
+  struct httpd_fsdata_file *next;
+  prog_char *name;
+  prog_char *data;
+  int len;
+};
+
+struct httpd_fsdata_file_noconst {
+  struct httpd_fsdata_file *next;
+  prog_char *name;
+  prog_char *data;
+  int len;
+};
+
+#endif /* __HTTPD_FSDATA_H__ */
diff --git a/contiki-avr/apps/httpd.c b/contiki-avr/apps/httpd.c
new file mode 100644
index 0000000..61d1094
--- /dev/null
+++ b/contiki-avr/apps/httpd.c
@@ -0,0 +1,389 @@
+/*
+ * Copyright (c) 2001, Adam Dunkels.
+ * 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 Adam Dunkels.
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the uIP TCP/IP stack.
+ *
+ * $Id: httpd.c,v 1.3 2004/08/09 22:25:06 adamdunkels Exp $
+ *
+ */
+
+
+#include "contiki.h"
+#include "httpd.h"
+#include "httpd-fs.h"
+#include "httpd-fsdata.h"
+#include "httpd-cgi.h"
+
+#include "webserver.h"
+
+#include <avr/pgmspace.h>
+
+/* The HTTP server states: */
+#define HTTP_DEALLOCATED  0
+#define HTTP_NOGET        1
+#define HTTP_FILE         2
+#define HTTP_TEXT         3
+#define HTTP_FUNC         4
+#define HTTP_END          5
+
+#ifdef DEBUG
+#include <stdio.h>
+#define PRINT(x) printf("%s", x)
+#define PRINTLN(x) printf("%s\n", x)
+#else /* DEBUG */
+#define PRINT(x)
+#define PRINTLN(x)
+#endif /* DEBUG */
+
+struct httpd_state *hs;
+
+extern const struct httpd_fsdata_file file_index_html;
+extern const struct httpd_fsdata_file file_404_html;
+
+static void next_scriptline(void);
+static void next_scriptstate(void);
+
+#define ISO_G        0x47
+#define ISO_E        0x45
+#define ISO_T        0x54
+#define ISO_slash    0x2f    
+#define ISO_c        0x63
+#define ISO_g        0x67
+#define ISO_i        0x69
+#define ISO_space    0x20
+#define ISO_nl       0x0a
+#define ISO_cr       0x0d
+#define ISO_a        0x61
+#define ISO_t        0x74
+#define ISO_hash     0x23
+#define ISO_period   0x2e
+
+#define HTTPD_CONF_NUMCONNS UIP_CONNS
+static struct httpd_state conns[HTTPD_CONF_NUMCONNS];
+static u8_t i;
+
+static char tmp[40];
+/*-----------------------------------------------------------------------------------*/
+static struct httpd_state *
+alloc_state(void)
+{
+  
+  for(i = 0; i < HTTPD_CONF_NUMCONNS; ++i) {
+    if(conns[i].state == HTTP_DEALLOCATED) {
+      return &conns[i];
+    }
+  }
+
+  /* We are overloaded! XXX: we'll just kick all other connections! */
+  for(i = 0; i < HTTPD_CONF_NUMCONNS; ++i) {
+    conns[i].state = HTTP_DEALLOCATED;
+  }
+  
+  return NULL;
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+dealloc_state(struct httpd_state *s)
+{
+  s->state = HTTP_DEALLOCATED;
+}
+/*-----------------------------------------------------------------------------------*/
+void
+httpd_init(void)
+{
+  httpd_fs_init();
+  
+  /* Listen to port 80. */
+  tcp_listen(HTONS(80));
+
+  for(i = 0; i < HTTPD_CONF_NUMCONNS; ++i) {
+    conns[i].state = HTTP_DEALLOCATED;
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+void
+httpd_appcall(void *state)
+{
+  struct httpd_fs_file fsfile;  
+  u8_t i;
+  char c;
+
+  hs = (struct httpd_state *)(state);
+  
+  /* We use the uip_ test functions to deduce why we were
+     called. If uip_connected() is non-zero, we were called
+     because a remote host has connected to us. If
+     uip_newdata() is non-zero, we were called because the
+     remote host has sent us new data, and if uip_acked() is
+     non-zero, the remote host has acknowledged the data we
+     previously sent to it. */
+  if(uip_connected()) {
+
+    /* Since we've just been connected, the state pointer should be
+       NULL and we need to allocate a new state object. If we have run
+       out of memory for state objects, we'll have to abort the
+       connection and return. */
+    if(hs == NULL) {
+      hs = alloc_state();
+      if(hs == NULL) {
+	uip_close();
+	return;
+      }
+      tcp_markconn(uip_conn, (void *)hs);
+    }
+    /* Since we have just been connected with the remote host, we
+       reset the state for this connection. The ->count variable
+       contains the amount of data that is yet to be sent to the
+       remote host, and the ->state is set to HTTP_NOGET to signal
+       that we haven't received any HTTP GET request for this
+       connection yet. */
+    hs->state = HTTP_NOGET;
+    hs->count = 0;
+    hs->poll = 0;
+  } else if(uip_closed() || uip_aborted()) {
+    if(hs != NULL) {
+      dealloc_state(hs);
+    }
+    return;
+  } else if(uip_poll()) {
+    /* If we are polled ten times, we abort the connection. This is
+       because we don't want connections lingering indefinately in
+       the system. */
+    if(hs != NULL) {
+      if(hs->state == HTTP_DEALLOCATED) {
+	uip_abort();
+      } else if(hs->poll++ >= 100) {
+	uip_abort();
+	dealloc_state(hs);
+      }
+    }
+    return;
+  }
+
+
+  if(uip_newdata() && hs->state == HTTP_NOGET) {
+    hs->poll = 0;
+    /* This is the first data we receive, and it should contain a
+       GET. */
+      
+    /* Check for GET. */
+    if(uip_appdata[0] != ISO_G ||
+       uip_appdata[1] != ISO_E ||
+       uip_appdata[2] != ISO_T ||
+       uip_appdata[3] != ISO_space) {
+      /* If it isn't a GET, we abort the connection. */
+      uip_abort();
+      dealloc_state(hs);
+      return;
+    }
+	       
+    /* Find the file we are looking for. */
+    for(i = 4; i < 40; ++i) {
+      if(uip_appdata[i] == ISO_space ||
+	 uip_appdata[i] == ISO_cr ||
+	 uip_appdata[i] == ISO_nl) {
+	uip_appdata[i] = 0;
+	break;
+      }
+    }
+
+    PRINT("request for file ");
+    PRINTLN(&uip_appdata[4]);
+    webserver_log_file(uip_conn->ripaddr, &uip_appdata[4]);
+    /* Check for a request for "/". */
+    if(uip_appdata[4] == ISO_slash &&
+       uip_appdata[5] == 0) {
+      memcpy_P(tmp, file_index_html.name, sizeof(tmp));
+      httpd_fs_open((const char *)tmp, &fsfile);  
+    } else {
+      if(!httpd_fs_open((const char *)&uip_appdata[4], &fsfile)) {
+	PRINTLN("couldn't open file");
+	memcpy_P(tmp, file_404_html.name, sizeof(tmp));
+	httpd_fs_open((const char *)tmp, &fsfile);  
+      }
+    } 
+    httpd_fs_inc();
+    
+    if(uip_appdata[4] == ISO_slash &&
+       uip_appdata[5] == ISO_c &&
+       uip_appdata[6] == ISO_g &&
+       uip_appdata[7] == ISO_i &&
+       uip_appdata[8] == ISO_slash) {
+      /* If the request is for a file that starts with "/cgi/", we
+	 prepare for invoking a script. */	
+      hs->script = fsfile.data;
+      next_scriptstate();
+    } else {
+      hs->script = NULL;
+      /* The web server is now no longer in the HTTP_NOGET state, but
+	 in the HTTP_FILE state since is has now got the GET from
+	 the client and will start transmitting the file. */
+      hs->state = HTTP_FILE;
+
+      /* Point the file pointers in the connection state to point to
+	 the first byte of the file. */
+      hs->dataptr = fsfile.data;
+      hs->count = fsfile.len;	
+    }     
+  }
+
+    
+  if(hs->state != HTTP_FUNC) {
+    /* Check if the client (remote end) has acknowledged any data that
+       we've previously sent. If so, we move the file pointer further
+       into the file and send back more data. If we are out of data to
+       send, we close the connection. */
+    if(uip_acked()) {
+      hs->poll = 0;	
+      if(hs->count >= uip_mss()) {
+	hs->count -= uip_mss();
+	hs->dataptr += uip_mss();
+      } else {
+	hs->count = 0;
+      }
+	
+      if(hs->count == 0) {
+	if(hs->script != NULL) {
+	  next_scriptline();
+	  next_scriptstate();
+	} else {
+	  uip_close();
+	  dealloc_state(hs);
+	}
+      }
+    }         
+  }
+    
+  if(hs->state == HTTP_FUNC) {
+    /* Call the CGI function. */
+    memcpy_P(&c, &hs->script[2], 1);
+    if(httpd_cgitab[c - ISO_a]()) {
+      /* If the function returns non-zero, we jump to the next line
+	 in the script. */
+      next_scriptline();
+      next_scriptstate();
+    }
+  }
+
+  if(hs->state != HTTP_FUNC && !uip_poll()) {
+    hs->poll = 0;
+    /* Send a piece of data, but not more than the MSS of the
+       connection. */
+    memcpy_P(uip_appdata, hs->dataptr, uip_mss());
+    uip_send(uip_appdata,
+	     hs->count > uip_mss()? uip_mss(): hs->count);
+  }
+
+  /* Finally, return to uIP. Our outgoing packet will soon be on its
+     way... */
+}
+/*-----------------------------------------------------------------------------------*/
+/* next_scriptline():
+ *
+ * Reads the script until it finds a newline. */
+static void
+next_scriptline(void)
+{
+  char c;
+  /* Loop until we find a newline character. */
+  do {
+    ++(hs->script);
+    memcpy_P(&c, hs->script, 1);
+  } while(c != ISO_nl);
+
+  /* Eat up the newline as well. */
+  ++(hs->script);
+}
+/*-----------------------------------------------------------------------------------*/
+/* next_sciptstate:
+ *
+ * Reads one line of script and decides what to do next.
+ */
+static void
+next_scriptstate(void)
+{
+  struct httpd_fs_file fsfile;
+  u8_t i;
+  char c;
+
+ again:
+  memcpy_P(&c, hs->script, 1);
+  switch(c) {
+  case ISO_t:
+    /* Send a text string. */
+    hs->state = HTTP_TEXT;
+    hs->dataptr = hs->script + 2;
+
+    /* Calculate length of string. */
+    i = 0;
+    do {
+      memcpy_P(&c, &hs->dataptr[i], 1);
+      ++i;
+    } while(c != ISO_nl);
+    hs->count = i;    
+    break;
+  case ISO_c:
+    /* Call a function. */
+    hs->state = HTTP_FUNC;
+    hs->dataptr = NULL;
+    hs->count = 0;
+    /*    uip_reset_acked();*/
+    uip_flags &= ~UIP_ACKDATA;
+    break;
+  case ISO_i:   
+    /* Include a file. */
+    hs->state = HTTP_FILE;
+    memcpy_P(tmp, &hs->script[2], sizeof(tmp));
+    if(!httpd_fs_open(tmp, &fsfile)) {
+      uip_abort();
+      dealloc_state(hs);
+    }
+    hs->dataptr = fsfile.data;
+    hs->count = fsfile.len;
+    break;
+  case ISO_hash:
+    /* Comment line. */
+    next_scriptline();
+    goto again;
+    break;
+  case ISO_period:
+    /* End of script. */
+    hs->state = HTTP_END;
+    uip_close();
+    dealloc_state(hs);
+    break;
+  default:
+    uip_abort();
+    dealloc_state(hs);
+    break;
+  }
+}
+/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-avr/apps/httpd.h b/contiki-avr/apps/httpd.h
new file mode 100644
index 0000000..9f4c94f
--- /dev/null
+++ b/contiki-avr/apps/httpd.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2001, Adam Dunkels.
+ * 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 Adam Dunkels.
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the uIP TCP/IP stack.
+ *
+ * $Id: httpd.h,v 1.2 2004/08/09 22:25:19 adamdunkels Exp $
+ *
+ */
+
+#ifndef __HTTPD_H__
+#define __HTTPD_H__
+
+#include "contiki.h"
+#include <avr/pgmspace.h>
+
+void httpd_init(void);
+void httpd_appcall(void *state);
+
+struct httpd_state {
+  u8_t state; 
+  u16_t count;
+  u8_t poll;
+  prog_char *dataptr;
+  prog_char *script;
+};
+
+extern struct httpd_state *hs;
+#endif /* __HTTPD_H__ */
diff --git a/contiki-avr/apps/makefsdata b/contiki-avr/apps/makefsdata
new file mode 100755
index 0000000..eee8989
--- /dev/null
+++ b/contiki-avr/apps/makefsdata
@@ -0,0 +1,92 @@
+#!/usr/bin/perl
+
+open(OUTPUT, "> httpd-fsdata.c");
+
+chdir("httpd-fs");
+open(FILES, "find . -type f |");
+
+
+while($file = <FILES>) {
+
+    # Do not include files in CVS directories nor backup files.
+    if($file =~ /(CVS|~)/) {
+    	next;
+    }
+    
+    chop($file);
+    
+    open(HEADER, "> /tmp/header") || die $!;
+    print(HEADER "HTTP/1.0 200 OK\r\n");
+    print(HEADER "Server: Contiki/pre-1.1 (http://dunkels.com/adam/contiki/)\r\n");
+    if($file =~ /\.html$/) {
+	print(HEADER "Content-type: text/html\r\n");
+    } elsif($file =~ /\.gif$/) {
+	print(HEADER "Content-type: image/gif\r\n");
+    } elsif($file =~ /\.png$/) {
+	print(HEADER "Content-type: image/png\r\n");
+    } elsif($file =~ /\.jpg$/) {
+	print(HEADER "Content-type: image/jpeg\r\n");
+    } elsif($file =~ /\.css$/) {
+	print(HEADER "Content-type: text/css\r\n");
+    } else {
+	print(HEADER "Content-type: text/plain\r\n");
+    }
+    print(HEADER "\r\n");
+    close(HEADER);
+
+    unless($file =~ /\.plain$/ || $file =~ /cgi/) {
+	system("cat /tmp/header $file > /tmp/file");
+    } else {
+	system("cp $file /tmp/file");
+    }
+    
+    open(FILE, "/tmp/file");
+    unlink("/tmp/file");
+    unlink("/tmp/header");
+
+    $file =~ s/\.//;
+    $fvar = $file;
+    $fvar =~ s-/-_-g;
+    $fvar =~ s-\.-_-g;
+    print(OUTPUT "static prog_char data".$fvar."[] = {\n");
+    print(OUTPUT "\t/* $file */\n\t");
+    for($j = 0; $j < length($file); $j++) {
+	printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1)));
+    }
+    printf(OUTPUT "0,\n");
+    
+    
+    $i = 0;        
+    while(read(FILE, $data, 1)) {
+        if($i == 0) {
+            print(OUTPUT "\t");
+        }
+        printf(OUTPUT "%#02x, ", unpack("C", $data));
+        $i++;
+        if($i == 10) {
+            print(OUTPUT "\n");
+            $i = 0;
+        }
+    }
+    print(OUTPUT "};\n\n");
+    close(FILE);
+    push(@fvars, $fvar);
+    push(@files, $file);
+}
+
+for($i = 0; $i < @fvars; $i++) {
+    $file = $files[$i];
+    $fvar = $fvars[$i];
+
+    if($i == 0) {
+        $prevfile = "NULL";
+    } else {
+        $prevfile = "file" . $fvars[$i - 1];
+    }
+    print(OUTPUT "struct httpd_fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, ");
+    print(OUTPUT "data$fvar + ". (length($file) + 1) .", ");
+    print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n");
+}
+
+print(OUTPUT "#define HTTPD_FS_ROOT file$fvars[$i - 1]\n\n");
+print(OUTPUT "#define HTTPD_FS_NUMFILES $i");
diff --git a/contiki-avr/apps/makestrings b/contiki-avr/apps/makestrings
new file mode 100755
index 0000000..e6e8470
--- /dev/null
+++ b/contiki-avr/apps/makestrings
@@ -0,0 +1,39 @@
+#!/usr/bin/perl
+
+
+sub stringify {
+  my $name = shift(@_);
+  open(OUTPUTC, "> $name.c");
+  open(OUTPUTH, "> $name.h");
+  
+  open(FILE, "$name");
+  
+  while(<FILE>) {
+    if(/(.+) "(.+)"/) {
+      $var = $1;
+      $data = $2;
+      
+      $datan = $data;
+      $datan =~ s/\\r/\r/g;
+      $datan =~ s/\\n/\n/g;
+      $datan =~ s/\\0/\0/g;
+      
+      printf(OUTPUTC "char $var\[%d] = \n", length($datan) + 1);
+      printf(OUTPUTC "/* \"$data\" */\n");
+      printf(OUTPUTC "{");
+      for($j = 0; $j < length($datan); $j++) {
+	printf(OUTPUTC "%#02x, ", unpack("C", substr($datan, $j, 1)));
+      }
+      printf(OUTPUTC "};\n");
+      
+      printf(OUTPUTH "extern char $var\[%d];\n", length($datan) + 1);
+      
+    }
+  }
+  close(OUTPUTC);
+  close(OUTPUTH);
+}
+stringify("http-user-agent-string");
+
+exit 0;
+
diff --git a/contiki-avr/apps/shell.c b/contiki-avr/apps/shell.c
new file mode 100644
index 0000000..8869650
--- /dev/null
+++ b/contiki-avr/apps/shell.c
@@ -0,0 +1,216 @@
+/*
+ * Copyright (c) 2003, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki desktop OS.
+ *
+ * $Id: shell.c,v 1.1 2004/07/04 20:17:38 adamdunkels Exp $
+ *
+ */
+
+#include "program-handler.h"
+#include "loader.h"
+#include "uip.h"
+#include "uip_arp.h"
+#include "resolv.h"
+
+#include "shell.h"
+
+#include <string.h>
+
+
+struct ptentry {
+  char c;
+  void (* pfunc)(char *str);
+};
+
+extern char *shell_prompt_text;
+
+/*-----------------------------------------------------------------------------------*/
+static void
+parse(register char *str, struct ptentry *t)
+{
+  register struct ptentry *p;
+  char *sstr;
+
+  sstr = str;
+  
+  /* Loop over the parse table entries in t in order to find one that
+     matches the first character in str. */
+  for(p = t; p->c != 0; ++p) {
+    if(*str == p->c) {
+      /* Skip rest of the characters up to the first space. */
+      while(*str != ' ') {
+	++str;
+      }
+
+      /* Skip all spaces.*/
+      while(*str == ' ') {
+	++str;
+      }
+
+      /* Call parse table entry function and return. */
+      p->pfunc(str);
+      return;
+    }
+  }
+
+  /* Did not find matching entry in parse table. We just call the
+     default handler supplied by the caller and return. */
+  p->pfunc(str);
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+inttostr(register char *str, unsigned int i)
+{
+  str[0] = '0' + i / 100;
+  if(str[0] == '0') {
+    str[0] = ' ';
+  }
+  str[1] = '0' + (i / 10) % 10;
+  if(str[1] == '0') {
+    str[1] = ' ';
+  }
+  str[2] = '0' + i % 10;
+  str[3] = ' ';
+  str[4] = 0;
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+processes(char *str)
+{
+  static char idstr[5];
+  struct ek_proc *p;
+
+  shell_output("Processes:", "");
+  /* Step through each possible process ID and see if there is a
+     matching process. */
+  for(p = EK_PROCS(); p != NULL; p = p->next) {
+    inttostr(idstr, p->id);
+    shell_output(idstr, p->name);
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+static char *
+nullterminate(char *str)
+{
+  char *nt;
+
+  /* Nullterminate string. Start with finding newline character. */
+  for(nt = str; *nt != '\r' &&
+	*nt != '\n'; ++nt);
+
+  /* Replace newline with a null char. */
+  *nt = 0;
+
+  /* Remove trailing spaces. */
+  while(nt > str && *(nt - 1) == ' ') {
+    *(nt - 1) = 0;
+    --nt;
+  }
+  
+  /* Return pointer to null char. */
+  return nt;
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+killproc(char *str)
+{
+  char procnum, j, c;
+  char procstr[5];
+
+  nullterminate(str);
+  
+  procnum = 0;
+  
+  for(j = 0; j < 4; ++j) {
+    c = str[(int)j];
+    if(c >= '0' && c <= '9') {
+      procnum = procnum * 10 + (str[(int)j] - '0');
+    } else {
+      break;
+    }
+  }
+  if(procnum != 0) {
+    inttostr(procstr, procnum);
+    shell_output("Killing process ", procstr);
+    ek_post(procnum, EK_EVENT_REQUEST_EXIT, NULL);
+  } else {
+    shell_output("Could not parse process number", "");
+  }
+  
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+help(char *str)
+{
+  shell_output("Available commands:", "");
+  shell_output("ps   - show processes", "");
+  shell_output("kill - kill process", "");
+  shell_output("quit - quit shell", "");
+  shell_output("?    - show this help", "");      
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+none(char *str)
+{
+}
+/*-----------------------------------------------------------------------------------*/
+static struct ptentry configparsetab[] =
+  {{'k', killproc},   
+   {'p', processes},
+   {'q', shell_quit},
+   {'?', help},
+
+   /* Default action */
+   {0, none}};
+/*-----------------------------------------------------------------------------------*/
+void
+shell_start(void)
+{
+  shell_output("Contiki command shell", "");
+  shell_output("Type '?' for help", "");  
+  shell_prompt(shell_prompt_text); 
+}
+/*-----------------------------------------------------------------------------------*/
+void
+shell_input(char *cmd)
+{
+  parse(cmd, configparsetab);
+  shell_prompt(shell_prompt_text); 
+}
+/*-----------------------------------------------------------------------------------*/
+void
+shell_idle(void)
+{
+}
+/*-----------------------------------------------------------------------------------*/
+void
+shell_init(void)
+{
+}
+/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-avr/apps/webclient.c b/contiki-avr/apps/webclient.c
new file mode 100644
index 0000000..a6cd445
--- /dev/null
+++ b/contiki-avr/apps/webclient.c
@@ -0,0 +1,456 @@
+/*
+ * Copyright (c) 2002, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the "contiki" web browser.
+ *
+ * $Id: webclient.c,v 1.5 2004/08/09 22:25:36 adamdunkels Exp $
+ *
+ */
+
+#include "ek.h"
+#include "tcpip.h"
+#include "uip.h"
+#include "webclient.h"
+#include "resolv.h"
+#include "uiplib.h"
+
+#include "www-conf.h"
+
+#include <string.h>
+
+#define WEBCLIENT_TIMEOUT 100
+
+#define WEBCLIENT_STATE_STATUSLINE 0
+#define WEBCLIENT_STATE_HEADERS    1
+#define WEBCLIENT_STATE_DATA       2
+#define WEBCLIENT_STATE_CLOSE      3
+
+#define HTTPFLAG_NONE   0
+#define HTTPFLAG_OK     1
+#define HTTPFLAG_MOVED  2
+#define HTTPFLAG_ERROR  3
+
+
+#define ISO_nl       0x0a
+#define ISO_cr       0x0d
+#define ISO_space    0x20
+
+struct webclient_state {
+  u8_t timer;
+  u8_t state;
+  u8_t httpflag;
+
+  u16_t port;
+  char host[40];
+  char file[WWW_CONF_MAX_URLLEN];  
+  u16_t getrequestptr;
+  u16_t getrequestleft;
+  
+  char httpheaderline[200];
+  u16_t httpheaderlineptr;
+
+  char mimetype[32];
+};
+
+static struct webclient_state s;
+
+/*-----------------------------------------------------------------------------------*/
+char *
+webclient_mimetype(void)
+{
+  return s.mimetype;
+}
+/*-----------------------------------------------------------------------------------*/
+char *
+webclient_filename(void)
+{
+  return s.file;
+}
+/*-----------------------------------------------------------------------------------*/
+char *
+webclient_hostname(void)
+{
+  return s.host;
+}
+/*-----------------------------------------------------------------------------------*/
+unsigned short
+webclient_port(void)
+{
+  return s.port;
+}
+/*-----------------------------------------------------------------------------------*/
+void
+webclient_init(void)
+{
+
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+init_connection(void)
+{
+  s.state = WEBCLIENT_STATE_STATUSLINE;
+
+  s.getrequestleft = sizeof(http_get) - 1 + 1 +
+    sizeof(http_10) - 1 +
+    sizeof(http_crnl) - 1 +
+    sizeof(http_host) - 1 +
+    sizeof(http_crnl) - 1 +
+    strlen(http_user_agent_fields) +
+    strlen(s.file) + strlen(s.host);
+  s.getrequestptr = 0;
+
+  s.httpheaderlineptr = 0;
+}
+/*-----------------------------------------------------------------------------------*/
+void
+webclient_close(void)
+{
+  s.state = WEBCLIENT_STATE_CLOSE;
+}
+/*-----------------------------------------------------------------------------------*/
+unsigned char
+webclient_get(char *host, u16_t port, char *file)
+{
+  struct uip_conn *conn;
+  u16_t *ipaddr; 
+  static u16_t addr[2];
+  
+  /* First check if the host is an IP address. */
+  ipaddr = &addr[0];
+  if(uiplib_ipaddrconv(host, (unsigned char *)addr) == 0) {    
+    ipaddr = resolv_lookup(host);
+    
+    if(ipaddr == NULL) {
+      return 0;
+    }
+  }
+
+  /* XXX: here we check so that the server does not try to access any
+     hosts on the SICS networks. */
+  if(!(ipaddr[0] == HTONS((193 << 8) | 10) &&
+       ipaddr[1] == HTONS((64 << 8) | 99)) &&
+     (ipaddr[0] == HTONS((193 << 8) | 10) &&
+      ((htons(ipaddr[1]) >> 8) == 66 ||
+       (htons(ipaddr[1]) >> 8) == 67))) {
+    return 0;
+  } else {
+    conn = tcp_connect(ipaddr, htons(port), NULL);
+  }
+  
+  if(conn == NULL) {
+    return 0;
+  }
+  
+  s.port = port;
+  strncpy(s.file, file, sizeof(s.file));
+  strncpy(s.host, host, sizeof(s.host));
+  
+  init_connection();
+  return 1;
+}
+/*-----------------------------------------------------------------------------------*/
+static unsigned char * CC_FASTCALL
+copy_string(unsigned char *dest,
+	    const unsigned char *src, unsigned char len)
+{
+  return strcpy(dest, src) + len;
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+senddata(void)
+{
+  u16_t len;
+  char *getrequest;
+  char *cptr;
+  
+  if(s.getrequestleft > 0) {
+    cptr = getrequest = (char *)uip_appdata;
+
+    cptr = copy_string(cptr, http_get, sizeof(http_get) - 1);
+    cptr = copy_string(cptr, s.file, strlen(s.file));
+    *cptr++ = ISO_space;
+    cptr = copy_string(cptr, http_10, sizeof(http_10) - 1);
+
+    cptr = copy_string(cptr, http_crnl, sizeof(http_crnl) - 1);
+    
+    cptr = copy_string(cptr, http_host, sizeof(http_host) - 1);
+    cptr = copy_string(cptr, s.host, strlen(s.host));
+    cptr = copy_string(cptr, http_crnl, sizeof(http_crnl) - 1);
+
+    cptr = copy_string(cptr, http_user_agent_fields,
+		       strlen(http_user_agent_fields));
+    
+    len = s.getrequestleft > uip_mss()?
+      uip_mss():
+      s.getrequestleft;
+    uip_send(&(getrequest[s.getrequestptr]), len);
+  }
+}  
+/*-----------------------------------------------------------------------------------*/
+static void
+acked(void)
+{
+  u16_t len;
+  
+  if(s.getrequestleft > 0) {
+    len = s.getrequestleft > uip_mss()?
+      uip_mss():
+      s.getrequestleft;
+    s.getrequestleft -= len;
+    s.getrequestptr += len;
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+static u16_t
+parse_statusline(u16_t len)
+{
+  char *cptr;
+  
+  while(len > 0 && s.httpheaderlineptr < sizeof(s.httpheaderline)) {
+    s.httpheaderline[s.httpheaderlineptr] = *uip_appdata;
+    ++uip_appdata;
+    --len;
+    if(s.httpheaderline[s.httpheaderlineptr] == ISO_nl) {
+
+      if((strncmp(s.httpheaderline, http_10,
+		  sizeof(http_10) - 1) == 0) ||
+	 (strncmp(s.httpheaderline, http_11,
+		  sizeof(http_11) - 1) == 0)) {
+	cptr = &(s.httpheaderline[9]);
+	s.httpflag = HTTPFLAG_NONE;
+	if(strncmp(cptr, http_200, sizeof(http_200) - 1) == 0) {
+	  /* 200 OK */
+	  s.httpflag = HTTPFLAG_OK;
+	} else if(strncmp(cptr, http_301, sizeof(http_301) - 1) == 0 ||
+		  strncmp(cptr, http_302, sizeof(http_302) - 1) == 0) {
+	  /* 301 Moved permanently or 302 Found. Location: header line
+	     will contain thw new location. */
+	  s.httpflag = HTTPFLAG_MOVED;
+	} else {
+	  s.httpheaderline[s.httpheaderlineptr - 1] = 0;
+	}
+      } else {
+	uip_abort();
+	webclient_aborted();
+	return 0;
+      }
+      
+      /* We're done parsing the status line, so we reset the pointer
+	 and start parsing the HTTP headers.*/
+      s.httpheaderlineptr = 0;
+      s.state = WEBCLIENT_STATE_HEADERS;
+      break;
+    } else {
+      ++s.httpheaderlineptr;
+    }
+  }
+  return len;
+}
+/*-----------------------------------------------------------------------------------*/
+static char
+casecmp(char *str1, const char *str2, char len)
+{
+  static char c;
+  
+  while(len > 0) {
+    c = *str1;
+    /* Force lower-case characters. */
+    if(c & 0x40) {
+      c |= 0x20;
+    }
+    if(*str2 != c) {
+      return 1;
+    }
+    ++str1;
+    ++str2;
+    --len;
+  }
+  return 0;
+}
+/*-----------------------------------------------------------------------------------*/
+static u16_t
+parse_headers(u16_t len)
+{
+  char *cptr;
+  static unsigned char i;
+  
+  while(len > 0 && s.httpheaderlineptr < sizeof(s.httpheaderline)) {
+    s.httpheaderline[s.httpheaderlineptr] = *uip_appdata;
+    ++uip_appdata;
+    --len;
+    if(s.httpheaderline[s.httpheaderlineptr] == ISO_nl) {
+      /* We have an entire HTTP header line in s.httpheaderline, so
+	 we parse it. */
+      if(s.httpheaderline[0] == ISO_cr) {
+	/* This was the last header line (i.e., and empty "\r\n"), so
+	   we are done with the headers and proceed with the actual
+	   data. */
+	s.state = WEBCLIENT_STATE_DATA;
+	return len;
+      }
+
+      s.httpheaderline[s.httpheaderlineptr - 1] = 0;
+      /* Check for specific HTTP header fields. */      
+      if(casecmp(s.httpheaderline, http_content_type,
+		     sizeof(http_content_type) - 1) == 0) {
+	/* Found Content-type field. */
+	cptr = strchr(s.httpheaderline, ';');
+	if(cptr != NULL) {
+	  *cptr = 0;
+	}
+	strncpy(s.mimetype, s.httpheaderline +
+		sizeof(http_content_type) - 1, sizeof(s.mimetype));
+      } else if(casecmp(s.httpheaderline, http_location,
+			    sizeof(http_location) - 1) == 0) {
+	cptr = s.httpheaderline +
+	  sizeof(http_location) - 1;
+	
+	if(strncmp(cptr, http_http, 7) == 0) {
+	  cptr += 7; 
+	  for(i = 0; i < s.httpheaderlineptr - 7; ++i) {
+	    if(*cptr == 0 ||
+	       *cptr == '/' ||
+	       *cptr == ' ' ||
+	       *cptr == ':') {
+	      s.host[i] = 0;
+	      break;
+	    }
+	    s.host[i] = *cptr;
+	    ++cptr;
+	  }
+	}
+	strncpy(s.file, cptr, sizeof(s.file));
+	/*	s.file[s.httpheaderlineptr - i] = 0;*/
+      }
+
+
+      /* We're done parsing, so we reset the pointer and start the
+	 next line. */
+      s.httpheaderlineptr = 0;      
+    } else {
+      ++s.httpheaderlineptr;
+    }
+  }
+  return len;
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+newdata(void)
+{
+  u16_t len;
+
+  len = uip_datalen();
+
+  if(s.state == WEBCLIENT_STATE_STATUSLINE) {
+    len = parse_statusline(len);
+  }
+  
+  if(s.state == WEBCLIENT_STATE_HEADERS && len > 0) {
+    len = parse_headers(len);
+  }
+
+  if(len > 0 && s.state == WEBCLIENT_STATE_DATA &&
+     s.httpflag != HTTPFLAG_MOVED) {
+    webclient_datahandler((char *)uip_appdata, len);
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+void
+webclient_appcall(void *state)
+{
+  if(uip_connected()) {
+    s.timer = 0;
+    s.state = WEBCLIENT_STATE_STATUSLINE;
+    senddata();
+    webclient_connected();
+    tcp_markconn(uip_conn, &s);
+    return;
+  }
+
+  if(uip_timedout()) {
+    webclient_timedout();
+  }
+  
+  if(state == NULL) {
+    uip_abort();
+    return;
+  }
+
+  if(s.state == WEBCLIENT_STATE_CLOSE) {
+    webclient_closed();
+    uip_abort();
+    return;
+  }        
+
+  if(uip_aborted()) {
+    webclient_aborted();
+  }
+  
+  
+  if(uip_acked()) {
+    s.timer = 0;
+    acked();
+  }
+  if(uip_newdata()) {
+    s.timer = 0;
+    newdata();
+  }
+  if(uip_rexmit() ||
+     uip_newdata() ||
+     uip_acked()) {
+    senddata();
+  } else if(uip_poll()) {
+    ++s.timer;
+    if(s.timer == WEBCLIENT_TIMEOUT) {
+      webclient_timedout();
+      uip_abort();
+      return;
+    }
+        /*    senddata();*/
+  }
+
+  if(uip_closed()) {
+    tcp_markconn(uip_conn, NULL);
+    if(s.httpflag != HTTPFLAG_MOVED) {
+      /* Send NULL data to signal EOF. */
+      webclient_datahandler(NULL, 0);
+    } else {
+      /*      conn = uip_connect(uip_conn->ripaddr, s.port);
+      if(conn != NULL) {
+	dispatcher_markconn(conn, NULL);
+	init_connection();
+	}*/
+      if(resolv_lookup(s.host) == NULL) {
+	resolv_query(s.host);
+      }
+      webclient_get(s.host, s.port, s.file);
+    }
+  }
+}
+/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-avr/apps/weblinks-dsc.c b/contiki-avr/apps/weblinks-dsc.c
new file mode 100644
index 0000000..9a99440
--- /dev/null
+++ b/contiki-avr/apps/weblinks-dsc.c
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2003, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki desktop environment
+ *
+ * $Id: weblinks-dsc.c,v 1.3 2005/03/18 00:50:50 oliverschmidt Exp $
+ *
+ */
+
+#include "dsc.h"
+
+extern struct ctk_icon weblinks_icon;
+/*-----------------------------------------------------------------------------------*/
+DSC(weblinks_dsc,
+    "Web links",
+    "weblinks.prg",
+    weblinks_init,
+    &weblinks_icon);
+/*-----------------------------------------------------------------------------------*/
+#if CTK_CONF_ICON_BITMAPS
+static unsigned char weblinksicon_bitmap[3*3*8] = {
+  0x00, 0x79, 0x43, 0x73, 0x47, 0x77, 0x47, 0x6f,
+  0x00, 0xfe, 0xfe, 0xfc, 0xfc, 0xfc, 0xf8, 0xfb,
+  0x00, 0x16, 0x02, 0x00, 0x02, 0x00, 0x00, 0xc2,
+
+  0x48, 0x4c, 0x5f, 0x5f, 0x1f, 0x3f, 0x3f, 0x03,
+  0x79, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xfe, 0xfc,
+  0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
+  0x77, 0x47, 0x70, 0x43, 0x79, 0x41, 0x7c, 0x00,
+  0xfc, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xf7, 0x00,
+  0x00, 0x80, 0x00, 0x00, 0x00, 0x84, 0xf0, 0x00
+};
+#endif /* CTK_CONF_ICON_BITMAPS */
+
+#if CTK_CONF_ICON_TEXTMAPS
+static char weblinksicon_textmap[9] = {
+  '+', '-', '+',
+  '|', 'o', '|',
+  '+', '-', '+'
+};
+#endif /* CTK_CONF_ICON_TEXTMAPS */
+
+#if CTK_CONF_ICONS
+static struct ctk_icon weblinks_icon =
+  {CTK_ICON("Web links", weblinksicon_bitmap, weblinksicon_textmap)};
+#endif /* CTK_CONF_ICONS */
+/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-avr/apps/weblinks-dsc.h b/contiki-avr/apps/weblinks-dsc.h
new file mode 100644
index 0000000..c3075a1
--- /dev/null
+++ b/contiki-avr/apps/weblinks-dsc.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2003, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki desktop environment
+ *
+ * $Id: weblinks-dsc.h,v 1.1 2003/07/04 10:54:51 adamdunkels Exp $
+ *
+ */
+#ifndef __WEBLINKS_DSC_H__
+#define __WEBLINKS_DSC_H__
+
+#include "dsc.h"
+
+DSC_HEADER(weblinks_dsc);
+
+#endif /* __WEBLINKS_DSC_H__ */
diff --git a/contiki-avr/apps/weblinks.c b/contiki-avr/apps/weblinks.c
new file mode 100644
index 0000000..d588295
--- /dev/null
+++ b/contiki-avr/apps/weblinks.c
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2003, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki desktop environment
+ *
+ * $Id: weblinks.c,v 1.3 2004/07/04 20:17:38 adamdunkels Exp $
+ *
+ */
+
+
+#include "ctk.h"
+#include "ctk-draw.h"
+#include "ek.h"
+#include "loader.h"
+
+#include "program-handler.h"
+
+#include "www.h"
+
+#include <string.h>
+
+#define WIDTH 45
+#define HEIGHT 16
+
+#define LINK(name, descr, url) \
+ {CTK_HYPERLINK(1, 0, sizeof(name) - 1, name, url)}, \
+ {CTK_LABEL(1, 20, sizeof(descr) - 1, 1, descr)}
+struct link {
+  struct ctk_hyperlink hyperlink;
+  struct ctk_label description;
+};
+
+static struct link links[] =
+  {
+    {LINK("Contiki",
+	  "The Contiki web site",
+	  "http://dunkels.com/adam/contiki/index-text.html")},
+    {LINK("Contiki AVR",
+	  "The server software",
+	  "http://dunkels.com/adam/contiki/ports/avr-text.html")},
+    {LINK("Ethernut",
+	  "The server hardware",
+	  "http://www.ethernut.de/en/")},
+    {LINK("cc65",
+	  "The 6502 C cross compiler",
+	  "http://www.cc65.org/")},
+    {LINK("Google",
+	  "Google",
+	  "http://www.google.com/")},
+    {LINK("OSNews",
+	  "Exploring the future of computing",
+	  "http://www.osnews.com/")},
+    {LINK("Slashdot",
+	  "News for nerds, stuff that matters",
+	  "http://slashdot.org/")},
+  };
+
+#define NUMLINKS 7
+
+static struct ctk_window window;
+static struct ctk_label hintslabel1 =
+  {CTK_LABEL(1, 1, 39, 1, "Open the web browser in the background,")};
+static struct ctk_label hintslabel2 =
+  {CTK_LABEL(1, 2, 24, 1, "then click on the links.")};
+
+
+/*static DISPATCHER_SIGHANDLER(weblinks_sighandler, s, data);
+static struct dispatcher_proc p =
+  {DISPATCHER_PROC("Web links", NULL, weblinks_sighandler, NULL)};
+  static ek_id_t id;*/
+EK_EVENTHANDLER(eventhandler, ev, data);
+EK_PROCESS(p, "Web links", EK_PRIO_NORMAL,
+	   eventhandler, NULL, NULL);
+static ek_id_t id = EK_ID_NONE;
+
+/*-----------------------------------------------------------------------------------*/
+LOADER_INIT_FUNC(weblinks_init, arg)
+{
+  arg_free(arg);
+		     
+  if(id == EK_ID_NONE) {
+    id = ek_start(&p);
+  } else {
+    ctk_window_open(&window);
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+quit(void)
+{
+  ctk_window_close(&window);
+  ek_exit();
+  id = EK_ID_NONE;
+  LOADER_UNLOAD();
+}
+/*-----------------------------------------------------------------------------------*/
+EK_EVENTHANDLER(eventhandler, ev, data)
+{
+  unsigned char y, i;    
+  EK_EVENTHANDLER_ARGS(ev, data);
+
+  if(ev == EK_EVENT_INIT) {
+
+    ctk_window_new(&window, WIDTH, HEIGHT, "Web links");
+
+    CTK_WIDGET_ADD(&window, &hintslabel1);
+    CTK_WIDGET_ADD(&window, &hintslabel2);
+    
+    y = 4;
+    for(i = 0; i < NUMLINKS; ++i) {
+      
+      CTK_WIDGET_SET_XPOS(&(links[i].hyperlink), 1);
+      CTK_WIDGET_SET_YPOS(&(links[i].hyperlink), y);
+      CTK_WIDGET_ADD(&window, &(links[i].hyperlink));   
+      
+      CTK_WIDGET_SET_XPOS(&(links[i].description),
+			  strlen(links[i].hyperlink.text) + 2);
+      CTK_WIDGET_SET_YPOS(&(links[i].description), y);
+      CTK_WIDGET_ADD(&window, &(links[i].description));
+      
+      ++y;
+      
+    }
+
+    ctk_window_open(&window);
+
+  } else if(ev == EK_EVENT_REQUEST_EXIT ||
+	    (ev == ctk_signal_window_close &&
+	     data == (ek_data_t)&window)) {
+    quit();
+  }
+}
+/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-avr/apps/webserver.c b/contiki-avr/apps/webserver.c
new file mode 100644
index 0000000..a12efa0
--- /dev/null
+++ b/contiki-avr/apps/webserver.c
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2002, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki desktop environment for the C64.
+ *
+ * $Id: webserver.c,v 1.4 2004/09/13 23:21:36 adamdunkels Exp $
+ *
+ */
+
+
+#include "contiki.h"
+#include "ctk.h"
+#include "http-strings.h"
+
+#include "petsciiconv.h"
+
+#include "loader.h"
+
+#include "webserver.h"
+#include "httpd.h"
+
+#include <string.h>
+#include <stdio.h>
+
+/* The main window. */
+static struct ctk_window mainwindow;
+
+static struct ctk_label message =
+  {CTK_LABEL(0, 0, 15, 1, "Latest requests")};
+
+
+EK_EVENTHANDLER(eventhandler, ev, data);
+EK_PROCESS(p, "Web server", EK_PRIO_NORMAL,
+	   eventhandler, NULL, NULL);
+static ek_id_t id = EK_ID_NONE;
+
+
+#define LOG_WIDTH  30
+#define LOG_HEIGHT 20
+static char log[LOG_WIDTH*LOG_HEIGHT];
+
+static struct ctk_label loglabel =
+{CTK_LABEL(0, 1, LOG_WIDTH, LOG_HEIGHT, log)};
+/*-----------------------------------------------------------------------------------*/
+LOADER_INIT_FUNC(webserver_init, arg)
+{
+  arg_free(arg);
+  if(id == EK_ID_NONE) {
+    id = ek_start(&p);
+  } else {
+    ctk_window_open(&mainwindow);
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+EK_EVENTHANDLER(eventhandler, ev, data)
+{
+  if(ev == EK_EVENT_INIT) {
+    ctk_window_new(&mainwindow, LOG_WIDTH, LOG_HEIGHT+1, "Web server");
+    
+    
+    CTK_WIDGET_ADD(&mainwindow, &message);
+    CTK_WIDGET_ADD(&mainwindow, &loglabel);
+    
+    /* Attach listeners to signals. */
+    /*    dispatcher_listen(ctk_signal_button_activate);*/
+    
+    httpd_init();
+    
+    ctk_window_open(&mainwindow);
+  } else if(ev == tcpip_event) {
+    httpd_appcall(data);
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+void
+webserver_log_file(u16_t *requester, char *file)
+{
+  int size;
+  
+  /* Scroll previous entries upwards */
+  memcpy(log, &log[LOG_WIDTH], LOG_WIDTH * (LOG_HEIGHT - 1));
+
+  /* Print out IP address of requesting host. */
+  size = sprintf(&log[LOG_WIDTH * (LOG_HEIGHT - 1)],
+		 "%d.%d.%d.%d: ",
+		 htons(requester[0]) >> 8,
+		 htons(requester[0]) & 0xff,
+		 htons(requester[1]) >> 8,
+		 htons(requester[1]) & 0xff);
+  
+  /* Copy filename into last line. */		 
+  strncpy(&log[LOG_WIDTH * (LOG_HEIGHT - 1) + size], file, LOG_WIDTH - size);
+	   
+  /* Update log display. */
+  CTK_WIDGET_REDRAW(&loglabel);
+}
+/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-avr/apps/webserver.h b/contiki-avr/apps/webserver.h
new file mode 100644
index 0000000..3ef6c22
--- /dev/null
+++ b/contiki-avr/apps/webserver.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2002, Adam Dunkels.
+ * 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 Adam Dunkels. 
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki desktop environment for the C64.
+ *
+ * $Id: webserver.h,v 1.2 2003/08/25 12:42:41 adamdunkels Exp $
+ *
+ */
+#ifndef __WEBSERVER_H__
+#define __WEBSERVER_H__
+
+void webserver_init(char *arg);
+
+void webserver_log_file(u16_t *requester, char *filename);
+
+#endif /* __WEBSERVER_H__ */
diff --git a/contiki-avr/conf/cc-conf.h b/contiki-avr/conf/cc-conf.h
new file mode 100644
index 0000000..089a09b
--- /dev/null
+++ b/contiki-avr/conf/cc-conf.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2003, Adam Dunkels.
+ * 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 Adam Dunkels. 
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki desktop OS
+ *
+ * $Id: cc-conf.h,v 1.1 2003/07/04 10:54:52 adamdunkels Exp $
+ *
+ */
+#ifndef __CC_CONF_H__
+#define __CC_CONF_H__
+
+#define CC_CONF_REGISTER_ARGS          1
+#define CC_CONF_FUNCTION_POINTER_ARGS  1
+
+#endif /* __CC_CONF_H__ */
+
diff --git a/contiki-avr/conf/clock-conf.h b/contiki-avr/conf/clock-conf.h
new file mode 100644
index 0000000..0f054a6
--- /dev/null
+++ b/contiki-avr/conf/clock-conf.h
@@ -0,0 +1,15 @@
+#ifndef __CLOCK_CONF_H__
+#define __CLOCK_CONF_H__
+
+typedef unsigned short clock_time_t;
+#define CLOCK_CONF_SECOND 500
+
+void clock_delay(unsigned int us2);
+
+void clock_wait(int ms10);
+
+void clock_set_seconds(unsigned long s);
+unsigned long clock_seconds(void);
+
+
+#endif /* __CLOCK_CONF_H__ */
diff --git a/contiki-avr/conf/ctk-conf.h b/contiki-avr/conf/ctk-conf.h
new file mode 100644
index 0000000..508af2b
--- /dev/null
+++ b/contiki-avr/conf/ctk-conf.h
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2002, Adam Dunkels.
+ * 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 Adam Dunkels. 
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the "ctk" console GUI toolkit for cc65
+ *
+ * $Id: ctk-conf.h,v 1.4 2004/08/09 22:29:44 adamdunkels Exp $
+ *
+ */
+
+#ifndef __CTK_CONF_H__
+#define __CTK_CONF_H__
+
+/*
+ * This file is used for setting various compile time settings for the
+ * CTK GUI toolkit.
+*/
+
+/* Defines which key that is to be used for activating the menus */
+#define CTK_CONF_MENU_KEY             CH_F1
+
+/* Defines which key that is to be used for switching the frontmost
+   window.  */
+#define CTK_CONF_WINDOWSWITCH_KEY     CH_ESC
+
+/* Defines which key that is to be used for switching to the next
+   widget.  */
+#define CTK_CONF_WIDGETDOWN_KEY       CH_TAB
+
+/* Defines which key that is to be used for switching to the prevoius
+   widget.  */
+#define CTK_CONF_WIDGETUP_KEY         1
+
+/* Toggles support for icons. */
+#define CTK_CONF_ICONS                1 /* 107 bytes */
+
+/* Toggles support for icon bitmaps. */
+#define CTK_CONF_ICON_BITMAPS         1
+
+/* Toggles support for icon textmaps. */
+#define CTK_CONF_ICON_TEXTMAPS        1
+
+/* Toggles support for movable windows. */
+#define CTK_CONF_WINDOWMOVE           1 /* 333 bytes */
+
+/* Toggles support for closable windows. */
+#define CTK_CONF_WINDOWCLOSE          1 /* 14 bytes */
+
+/* Toggles support for menus. */
+#define CTK_CONF_MENUS                1 /* 1384 bytes */
+
+/* Toggles mouse support (must have support functions in the
+architecture specific files to work). */
+#define CTK_CONF_MOUSE_SUPPORT        1
+
+/* Defines the default width of a menu. */
+#define CTK_CONF_MENUWIDTH            16
+/* The maximum number of menu items in each menu. */
+#define CTK_CONF_MAXMENUITEMS         10
+
+#endif /* __CTK_CONF_H__ */
diff --git a/contiki-avr/conf/ctk-term-conf.h b/contiki-avr/conf/ctk-term-conf.h
new file mode 100644
index 0000000..747e975
--- /dev/null
+++ b/contiki-avr/conf/ctk-term-conf.h
@@ -0,0 +1,20 @@
+#ifndef __CTK_TERM_CONF_H__

+#define __CTK_TERM_CONF_H__

+

+/* Maximum number of clients to the telnet server */

+#define CTK_TERM_CONF_MAX_TELNET_CLIENTS 3

+

+/* Telnet server port */

+#define CTK_TERM_CONF_TELNET_PORT 23

+

+/* Serial server output buffer size */

+#define CTK_TERM_CONF_SERIAL_BUFFER_SIZE 300

+

+/* Maximum number of clients to the terminal module.

+   Should be set to CTK_TERM_CONF_MAX_TELNET_CLIENTS or

+   CTK_TERM_CONF_MAX_TELNET_CLIENTS+1 if the serial server is used too

+*/

+#define CTK_TERM_CONF_MAX_CLIENTS (CTK_TERM_CONF_MAX_TELNET_CLIENTS+1)

+

+#endif /* __CTK_TERM_CONF_H__ */

+

diff --git a/contiki-avr/conf/ctk-vncserver-conf.h b/contiki-avr/conf/ctk-vncserver-conf.h
new file mode 100644
index 0000000..f495975
--- /dev/null
+++ b/contiki-avr/conf/ctk-vncserver-conf.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2003, Adam Dunkels.
+ * 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 Adam Dunkels. 
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki desktop OS
+ *
+ * $Id: ctk-vncserver-conf.h,v 1.2 2004/07/04 20:17:38 adamdunkels Exp $
+ *
+ */
+#ifndef __CTK_VNCSERVER_CONF_H__
+#define __CTK_VNCSERVER_CONF_H__
+
+#define CTK_VNCSERVER_CONF_NUMCONNS 8
+
+#define CTK_VNCSERVER_CONF_MAX_ICONS 8
+
+#endif /* __CTK_VNCSERVER_CONF_H__ */
+
diff --git a/contiki-avr/conf/ek-conf.h b/contiki-avr/conf/ek-conf.h
new file mode 100644
index 0000000..93affa9
--- /dev/null
+++ b/contiki-avr/conf/ek-conf.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2002, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki operating system.
+ *
+ * $Id: ek-conf.h,v 1.2 2004/07/04 20:17:38 adamdunkels Exp $
+ *
+ */
+
+
+#ifndef __EK_CONF_H__
+#define __EK_CONF_H__
+
+/*#include <time.h>*/
+
+typedef void *ek_data_t;
+
+typedef unsigned char ek_event_t;
+typedef unsigned char ek_id_t;
+
+/* ek_ticks_t: should be defined to be the largest type that fits the
+   highest timeout value used by the system. For example, if all
+   timeouts are between 1 and 150, the ek_ticks_t can be typedef'd as
+   "unsigned char", but if the maximum timeout is over 256, "unsigned
+   short" is a better choise. */
+typedef unsigned short ek_ticks_t;
+
+/* ek_clock_t: should be defined to be the native clock ticks type
+   used by the underlying system. (Look for time_t or similar.) */
+typedef unsigned long ek_clock_t; 
+
+typedef unsigned char ek_num_events_t;
+
+#define EK_CONF_MAXPROCS 16
+#define EK_CONF_NUMEVENTS 16
+
+
+#ifndef NULL
+#define NULL (void *)0
+#endif /* NULL */
+
+
+#endif /* __EK_CONF_H__ */
diff --git a/contiki-avr/conf/irc-conf.h b/contiki-avr/conf/irc-conf.h
new file mode 100644
index 0000000..c9c0e23
--- /dev/null
+++ b/contiki-avr/conf/irc-conf.h
@@ -0,0 +1,4 @@
+#ifndef __IRC_CONF_H__
+#define __IRC_CONF_H__
+
+#endif /* __IRC_CONF_H__ */
diff --git a/contiki-avr/conf/libconio-conf.h b/contiki-avr/conf/libconio-conf.h
new file mode 100644
index 0000000..427fb27
--- /dev/null
+++ b/contiki-avr/conf/libconio-conf.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2003, Adam Dunkels.
+ * 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 Adam Dunkels. 
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki desktop OS
+ *
+ * $Id: libconio-conf.h,v 1.1 2003/07/04 10:54:52 adamdunkels Exp $
+ *
+ */
+#ifndef __LIBCONIO_CONF_H__
+#define __LIBCONIO_CONF_H__
+
+#define LIBCONIO_CONF_SCREEN_WIDTH  70
+#define LIBCONIO_CONF_SCREEN_HEIGHT 40
+
+#endif /* __LIBCONIO_CONF_H__ */
+
diff --git a/contiki-avr/conf/log-conf.h b/contiki-avr/conf/log-conf.h
new file mode 100644
index 0000000..9ff4810
--- /dev/null
+++ b/contiki-avr/conf/log-conf.h
@@ -0,0 +1,6 @@
+#ifndef __LOG_CONF_H__
+#define __LOG_CONF_H__
+
+#define LOG_CONF_ENABLED 0
+
+#endif /* __LOG_CONF__H__ */
diff --git a/contiki-avr/conf/program-handler-conf.h b/contiki-avr/conf/program-handler-conf.h
new file mode 100644
index 0000000..1f9c743
--- /dev/null
+++ b/contiki-avr/conf/program-handler-conf.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2004, Adam Dunkels.
+ * 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. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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. 
+ *
+ * This file is part of the Contiki operating system.
+ * 
+ * Author: Adam Dunkels <adam@sics.se>
+ *
+ * $Id: program-handler-conf.h,v 1.1 2005/02/15 14:56:37 oliverschmidt Exp $
+ */
+#ifndef __PROGRAM_HANDLER_CONF_H__
+#define __PROGRAM_HANDLER_CONF_H__
+
+#define PROGRAM_HANDLER_CONF_MAX_NUMDSCS 10
+
+#endif /* __PROGRAM_HANDLER_CONF_H__ */
diff --git a/contiki-avr/conf/telnetd-conf.h b/contiki-avr/conf/telnetd-conf.h
new file mode 100644
index 0000000..6c0ba6f
--- /dev/null
+++ b/contiki-avr/conf/telnetd-conf.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2003, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki Destop OS
+ *
+ * $Id: telnetd-conf.h,v 1.2 2004/08/09 22:29:31 adamdunkels Exp $
+ *
+ */
+#ifndef __TELNETD_CONF_H__
+
+#define TELNETD_CONF_LINELEN 32
+#define TELNETD_CONF_NUMLINES 16
+
+#endif /* __TELNETD_CONF_H__ */
+
+
+
+
+
+
+
+
diff --git a/contiki-avr/conf/uip-conf.h b/contiki-avr/conf/uip-conf.h
new file mode 100644
index 0000000..26566ad
--- /dev/null
+++ b/contiki-avr/conf/uip-conf.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2003, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki Destop OS
+ *
+ * $Id: uip-conf.h,v 1.2 2004/08/09 22:28:01 adamdunkels Exp $
+ *
+ */
+#ifndef __UIP_CONF_H__
+
+#define UIP_CONF_MAX_CONNECTIONS 40
+#define UIP_CONF_MAX_LISTENPORTS 40
+#define UIP_CONF_BUFFER_SIZE     1500
+
+#define UIP_CONF_TCP_SPLIT       1
+
+#endif /* __UIP_CONF_H__ */
diff --git a/contiki-avr/conf/vnc-conf.h b/contiki-avr/conf/vnc-conf.h
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/contiki-avr/conf/vnc-conf.h
@@ -0,0 +1 @@
+
diff --git a/contiki-avr/conf/www-conf.h b/contiki-avr/conf/www-conf.h
new file mode 100644
index 0000000..38dc9c8
--- /dev/null
+++ b/contiki-avr/conf/www-conf.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2002, Adam Dunkels.
+ * 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 Adam Dunkels. 
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki desktop environment
+ *
+ * $Id: www-conf.h,v 1.4 2004/08/09 22:28:40 adamdunkels Exp $
+ *
+ */
+#ifndef __WWW_CONF_H__
+#define __WWW_CONF_H__
+
+/* The size of the HTML viewing area. */
+#define WWW_CONF_WEBPAGE_WIDTH 46
+#define WWW_CONF_WEBPAGE_HEIGHT 25
+
+/* The size of the "Back" history. */
+#define WWW_CONF_HISTORY_SIZE 8
+
+/* Defines the maximum length of an URL */
+#define WWW_CONF_MAX_URLLEN 160
+
+/* The maxiumum number of widgets (i.e., hyperlinks, form elements) on
+   a page. */
+#define WWW_CONF_MAX_NUMPAGEWIDGETS 30
+
+/* Turns <center> support on or off; must be on for forms to work. */
+#define WWW_CONF_RENDERSTATE 1
+
+/* Toggles support for HTML forms. */
+#define WWW_CONF_FORMS       1
+
+/* Maximum lengths for various HTML form parameters. */
+#define WWW_CONF_MAX_FORMACTIONLEN  80
+#define WWW_CONF_MAX_FORMNAMELEN    40
+#define WWW_CONF_MAX_INPUTNAMELEN   40
+#define WWW_CONF_MAX_INPUTVALUELEN  40
+
+#define WWW_CONF_PAGEVIEW 1
+#endif /* __WWW_CONF_H__ */
diff --git a/contiki-avr/contiki-main.c b/contiki-avr/contiki-main.c
new file mode 100644
index 0000000..f1c81f9
--- /dev/null
+++ b/contiki-avr/contiki-main.c
@@ -0,0 +1,241 @@
+/*
+ * Copyright (c) 2002, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the Contiki desktop environment 
+ *
+ * $Id: contiki-main.c,v 1.6 2004/09/13 23:23:16 adamdunkels Exp $
+ *
+ */
+
+#include "ctk.h"
+#include "ctk-draw.h"
+#include "ctk-vncserver.h"
+#include "ctk-termtelnet.h"
+#include "ek.h"
+
+#include "uiplib.h"
+#include "uip.h"
+#include "uip_arp.h"
+#include "rtl8019-drv.h"
+#include "resolv.h"
+
+#include "clock.h"
+
+#include "webserver.h"
+#include "program-handler.h"
+#include "about-dsc.h"
+#include "irc-dsc.h"
+#include "netconf-dsc.h"
+#include "processes-dsc.h"
+#include "calc-dsc.h"
+#include "www-dsc.h"
+#include "webserver-dsc.h"
+/*#include "directory-dsc.h"*/
+#include "weblinks-dsc.h"
+
+#include "telnetd-dsc.h"
+
+#include "debug.h"
+#include "uip.h"
+#include "uip_arp.h"
+#include "compiler.h"
+#include "rtl8019dev.h"
+
+
+#include "avr/pgmspace.h"
+
+
+static const struct uip_eth_addr ethaddr = {{0x00,0x06,0x98,0x01,0x02,0x29}};
+
+
+static u16_t addr[2];
+
+/*-----------------------------------------------------------------------------------*/
+static void setup_xram(void) __attribute__ ((naked)) \
+     __attribute__ ((section (".init1")));
+
+static void
+setup_xram(void)
+{
+  outp(BV(SRE) | BV(SRW), MCUCR);
+}
+/*-----------------------------------------------------------------------------------*/
+static unsigned short count;
+
+static void init_timer(void)
+{
+  /* timer overflows every 32.8ms (with 8MHz clock) */
+  /* timer0 prescale 1/1024 (5) */
+  outp(5, TCCR0);  
+
+  /* interrupt on overflow */
+  sbi(TIMSK, TOIE0);
+        
+  count = 0;
+}
+
+SIGNAL(SIG_OVERFLOW0)
+{
+  ++count;
+}
+
+clock_time_t
+clock_time(void)
+{
+  return count;
+}
+/*-----------------------------------------------------------------------------------*/
+int
+main(int argc, char **argv)
+{
+  
+  /* Setup stack pointer so that it does not interfere with the rest
+     of the RAM. */
+  /*  asm("ldi     r28,lo8(0x00807fff)");
+      asm("ldi     r29,hi8(0x00807fff)");
+      asm("out     0x3e, r29");
+      asm("out     0x3d, r28");*/
+
+  /* Fiddle with RS232 settings of the AVR: */
+  /* Enable transmit. */
+  UCSR0B = _BV(TXEN);
+  /* Set baud rate (23 =~ 38400) */
+  UBRR0H = 0;
+  UBRR0L = 23;
+  UDR0 = '\n';
+
+  
+  outp(BV(SRE) | BV(SRW), MCUCR);
+
+    
+  /* end RS232 fiddling. */
+
+  init_timer();
+  sei();
+
+  ek_init();
+
+  uip_init();
+  tcpip_init(NULL);
+  
+  resolv_init(NULL);
+  
+
+  debug_print8(1);
+  
+  
+  uip_setethaddr(ethaddr);
+
+ 
+    
+#if 1
+  uip_ipaddr(addr, 193,10,67,152);
+  uip_sethostaddr(addr);
+ 
+  uip_ipaddr(addr, 193,10,64,1);
+  uip_setdraddr(addr);
+ 
+  uip_ipaddr(addr, 255,255,252,0);
+  uip_setnetmask(addr);
+
+  uip_ipaddr(addr, 193,10,66,195);
+  resolv_conf(addr);
+
+#else
+
+  uip_ipaddr(addr, 192,168,27,2);
+  uip_sethostaddr(addr);
+ 
+  uip_ipaddr(addr, 192,168,27,1);
+  uip_setdraddr(addr);
+ 
+  uip_ipaddr(addr, 255,255,255,0);
+  uip_setnetmask(addr);
+
+  uip_ipaddr(addr, 195,54,122,204);
+  resolv_conf(addr);
+#endif
+
+   
+  
+  ctk_init();
+
+  rtl8019_drv_init();
+
+  ctk_vncserver_init(NULL);  
+  /*  ctk_termtelnet_init(NULL);*/
+
+  program_handler_init();
+
+  webserver_init(NULL);
+
+  /*  program_handler_add(&netconf_dsc, "Network config", 1);*/
+
+  
+  /*program_handler_add(&irc_dsc, "IRC client", 1);*/
+ 
+  
+
+  program_handler_add(&calc_dsc, "Calculator", 0);
+  program_handler_add(&weblinks_dsc, "Web links", 1);
+
+  program_handler_add(&www_dsc, "Web browser", 1);
+  program_handler_add(&webserver_dsc, "Web server", 1);
+  program_handler_add(&processes_dsc, "Processes", 1);
+  program_handler_add(&about_dsc, "About", 1);
+
+
+
+
+
+  debug_print8(64);
+
+  while(1) {
+    ek_run();
+  }
+
+  
+  return 0;
+
+  argv = argv;
+  argc = argc;
+}
+/*-----------------------------------------------------------------------------------*/
+char *shell_prompt_text = "contiki-ethernut> ";
+
+unsigned char
+uip_fw_forward(void)
+{
+  return 0;
+}
+void
+uip_fw_periodic(void)
+{
+  
+}
diff --git a/contiki-avr/ctk/ctk-arch.h b/contiki-avr/ctk/ctk-arch.h
new file mode 100644
index 0000000..5ec7759
--- /dev/null
+++ b/contiki-avr/ctk/ctk-arch.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2002, Adam Dunkels.
+ * 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 Adam Dunkels. 
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the "ctk" console GUI toolkit for cc65
+ *
+ * $Id: ctk-arch.h,v 1.2 2004/06/06 06:36:27 adamdunkels Exp $
+ *
+ */
+#ifndef __CTK_ARCH_H__
+#define __CTK_ARCH_H__
+
+
+#include "ctk-vncarch.h"
+
+#define ctk_arch_isprint(x) isprint(x)
+
+#endif /* __CTK_ARCH_H__ */
diff --git a/contiki-avr/lib/lc.h b/contiki-avr/lib/lc.h
new file mode 100644
index 0000000..7231892
--- /dev/null
+++ b/contiki-avr/lib/lc.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2004, Swedish Institute of Computer Science.
+ * 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. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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. 
+ *
+ * This file is part of the Contiki operating system.
+ * 
+ * Author: Adam Dunkels <adam@sics.se>
+ *
+ * $Id: lc.h,v 1.1 2004/09/13 10:33:46 adamdunkels Exp $
+ */
+
+#ifndef __LC_H__
+#define __LC_H__
+
+typedef void * lc_t;
+
+#define LC_CONCAT2(s1, s2) s1##s2
+#define LC_CONCAT(s1, s2) LC_CONCAT2(s1, s2)
+
+#define LC_SET(s)				\
+  do {						\
+    LC_CONCAT(LC_LABEL, __LINE__):   	        \
+    (s) = &&LC_CONCAT(LC_LABEL, __LINE__);	\
+  } while(0)
+
+#define LC_RESUME(s)				\
+  do {						\
+    if(s != NULL) {				\
+      goto *s;					\
+    }						\
+  } while(0)
+
+#define LC_END(s)
+
+#define LC_INIT(s) s = NULL
+
+#endif /* __LC_H__ */
diff --git a/contiki-avr/uip/compiler.h b/contiki-avr/uip/compiler.h
new file mode 100644
index 0000000..b1f4918
--- /dev/null
+++ b/contiki-avr/uip/compiler.h
@@ -0,0 +1,40 @@
+#ifndef __COMPILER_H__
+#define __COMPILER_H__
+
+#ifdef __IMAGECRAFT__
+
+
+// choose your AVR device here
+#include <iom161.h>
+
+#include <macros.h>
+
+#define outp(val, reg)  (reg = val)
+#define inp(reg)        (reg)
+
+#define cli()           CLI()
+#define sei()           SEI()
+#define cbi(reg, bit)   (reg &= ~BIT(bit))
+#define sbi(reg, bit)   (reg |= BIT(bit))
+
+#define SIGNAL(x)       void x(void)  
+
+#define nop() NOP()
+
+
+#else /* --- GCC --- */
+#ifndef __AVR_ATmega128__
+#define __AVR_ATmega128__
+#endif
+#include <avr/signal.h>
+#include <avr/interrupt.h>
+#include <avr/io.h>
+
+#define nop() asm volatile("nop\n\t"::);
+
+#endif /* Compiler Used */
+
+
+
+#endif /* __COMPILER_H__ */
+
diff --git a/contiki-avr/uip/debug.c b/contiki-avr/uip/debug.c
new file mode 100644
index 0000000..fdd25a3
--- /dev/null
+++ b/contiki-avr/uip/debug.c
@@ -0,0 +1,72 @@
+
+#include "compiler.h"
+#include "delay.h"
+
+#include "avr/pgmspace.h"
+
+/*-----------------------------------------------------------------------------------*/
+static void
+delay(void)
+{
+  unsigned char i;
+  for(i = 0; i < 1; ++i) {
+    Delay_10ms(1);
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+static char buffer[40];
+static prog_char hextab[] =
+  {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
+/*-----------------------------------------------------------------------------------*/
+static void
+print_buffer(unsigned char len)
+{
+  unsigned char i;
+
+  for(i = 0; i < len; ++i) {
+    delay();
+    UDR0 = buffer[i];
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+void
+debug_print8(unsigned char v)
+{
+  buffer[0] = v / 100 + '0';
+  buffer[1] = (v / 10) % 10 + '0';
+  buffer[2] = v % 10 + '0';
+  buffer[3] = ' ';
+  buffer[4] = PRG_RDB(hextab + (v >> 4));
+  buffer[5] = PRG_RDB(hextab + (v & 0x0f));    
+  buffer[6] = '\n';
+  print_buffer(7);
+}
+/*-----------------------------------------------------------------------------------*/
+void
+debug_print16(unsigned short v)
+{
+  buffer[0] = v / 10000 + '0';
+  buffer[1] = (v / 1000) % 10 + '0';
+  buffer[2] = (v / 100) % 10 + '0';
+  buffer[3] = (v / 10) % 10 + '0';
+  buffer[4] = v % 10 + '0';
+  buffer[5] = ' ';
+  buffer[6] = PRG_RDB(hextab + ((v & 0xf000) >> 12));
+  buffer[7] = PRG_RDB(hextab + ((v & 0x0f00) >> 8));
+  buffer[8] = PRG_RDB(hextab + ((v & 0xf0) >> 4));
+  buffer[9] = PRG_RDB(hextab + (v & 0x0f));    
+  buffer[10] = '\n';
+  print_buffer(11);
+}
+/*-----------------------------------------------------------------------------------*/
+void
+debug_print(prog_char *str)
+{
+  unsigned char i;
+
+  for(i = 0; PRG_RDB(str + i) != 0; ++i) {
+    buffer[i] = PRG_RDB(str + i);
+  }
+  print_buffer(i);
+}
+/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-avr/uip/debug.h b/contiki-avr/uip/debug.h
new file mode 100644
index 0000000..ec38942
--- /dev/null
+++ b/contiki-avr/uip/debug.h
@@ -0,0 +1,20 @@
+#ifndef __DEBUG_H__
+#define __DEBUG_H__
+
+#if 0
+#define debug_print(x)
+#define debug_print8(x) 
+
+#else
+
+#include "avr/pgmspace.h"
+
+void debug_print(char *str);
+
+void debug_print8(unsigned char v);
+void debug_print16(unsigned short v);
+#endif
+
+
+
+#endif /* __DEBUG_H__ */
diff --git a/contiki-avr/uip/delay.c b/contiki-avr/uip/delay.c
new file mode 100644
index 0000000..01cc3e4
--- /dev/null
+++ b/contiki-avr/uip/delay.c
@@ -0,0 +1,29 @@
+#include "delay.h"
+ 
+//----------------------------------------------------------------------------
+// Wait for a specific time in 100 uSec
+// (15 + t*( ((K_DELAY_100us-1)*6)+5 ))
+//----------------------------------------------------------------------------
+void Delay_100us(unsigned char t) {
+  unsigned int i;
+  if (t==0) return;
+  while (t--) for(i=0;i<K_DELAY_100us; i++);
+}
+//----------------------------------------------------------------------------
+// Wait for a specific time in 1 mSec
+// (15 + t*( ((K_DELAY_1ms-1)*6)+5 ))
+//----------------------------------------------------------------------------
+void Delay_1ms(unsigned char t) {
+  unsigned int i;
+  if (t==0) return;
+  while (t--) for(i=0;i<K_DELAY_1ms; i++);
+}
+//----------------------------------------------------------------------------
+// Wait for a specific time in 10 mSec
+// (15 + t*( ((K_DELAY_10ms-1)*6)+5 ))
+//----------------------------------------------------------------------------
+void Delay_10ms(unsigned char t) {
+  unsigned int i;
+  if (t==0) return;
+  while (t--) for(i=0;i<K_DELAY_10ms; i++);
+}
diff --git a/contiki-avr/uip/delay.h b/contiki-avr/uip/delay.h
new file mode 100644
index 0000000..6e44906
--- /dev/null
+++ b/contiki-avr/uip/delay.h
@@ -0,0 +1,9 @@
+#define F_CPU 15000000
+ 
+#define K_DELAY_100us	F_CPU/61349
+#define K_DELAY_1ms		F_CPU/6013
+#define K_DELAY_10ms	F_CPU/600
+
+void Delay_100us(unsigned char t);
+void Delay_1ms(unsigned char t);
+void Delay_10ms(unsigned char t);
diff --git a/contiki-avr/uip/rtl8019-drv.c b/contiki-avr/uip/rtl8019-drv.c
new file mode 100644
index 0000000..b309db2
--- /dev/null
+++ b/contiki-avr/uip/rtl8019-drv.c
@@ -0,0 +1,114 @@
+/*-----------------------------------------------------------------------------------*/
+/*
+ * Copyright (c) 2001-2004, Adam Dunkels.
+ * 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. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the uIP TCP/IP stack.
+ *
+ * $Id: rtl8019-drv.c,v 1.4 2004/08/09 22:23:29 adamdunkels Exp $
+ *
+ */
+
+#include "packet-service.h"
+
+#include "rtl8019dev.h"
+
+#include "uip_arp.h"
+
+static void output(u8_t *hdr, u16_t hdrlen, u8_t *data, u16_t datalen);
+
+static const struct packet_service_state state =
+  {
+    PACKET_SERVICE_VERSION,
+    output
+  };
+
+EK_EVENTHANDLER(eventhandler, ev, data);
+EK_POLLHANDLER(pollhandler);
+EK_PROCESS(proc, PACKET_SERVICE_NAME ": RTL8019as", EK_PRIO_HIGH,
+	   eventhandler, pollhandler, (void *)&state);
+
+/*---------------------------------------------------------------------------*/
+LOADER_INIT_FUNC(rtl8019_drv_init, arg)
+{
+  arg_free(arg);
+  ek_service_start(PACKET_SERVICE_NAME, &proc);
+}
+/*---------------------------------------------------------------------------*/
+static void
+output(u8_t *hdr, u16_t hdrlen, u8_t *data, u16_t datalen)
+{
+  uip_arp_out();
+  RTL8019dev_send();
+}
+/*---------------------------------------------------------------------------*/
+EK_EVENTHANDLER(eventhandler, ev, data)
+{
+  switch(ev) {
+  case EK_EVENT_INIT:
+  case EK_EVENT_REPLACE:
+    RTL8019dev_init();
+    break;
+  case EK_EVENT_REQUEST_REPLACE:
+    ek_replace((struct ek_proc *)data, NULL);
+    LOADER_UNLOAD();
+    break;
+  case EK_EVENT_REQUEST_EXIT:
+    /*    ek_exit();
+	  LOADER_UNLOAD();*/
+    break;
+  default:
+    break;
+  }
+}
+/*---------------------------------------------------------------------------*/
+EK_POLLHANDLER(pollhandler)
+{
+#define BUF ((struct uip_eth_hdr *)&uip_buf[0])
+  
+  /* Poll Ethernet device to see if there is a frame avaliable. */
+  uip_len = RTL8019dev_poll();
+  if(uip_len > 0) {
+    /* A frame was avaliable (and is now read into the uip_buf), so
+       we process it. */
+    if(BUF->type == HTONS(UIP_ETHTYPE_IP)) {
+      uip_arp_ipin();
+      uip_len -= sizeof(struct uip_eth_hdr);
+      tcpip_input();
+    } else if(BUF->type == HTONS(UIP_ETHTYPE_ARP)) {
+      uip_arp_arpin();
+      /* If the above function invocation resulted in data that
+         should be sent out on the network, the global variable
+         uip_len is set to a value > 0. */
+      if(uip_len > 0) {
+	RTL8019dev_send();
+      }
+    }
+  }
+
+}
+/*---------------------------------------------------------------------------*/
diff --git a/contiki-avr/uip/rtl8019-drv.h b/contiki-avr/uip/rtl8019-drv.h
new file mode 100644
index 0000000..7687098
--- /dev/null
+++ b/contiki-avr/uip/rtl8019-drv.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2001, Adam Dunkels.
+ * 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 Adam Dunkels.
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the uIP TCP/IP stack.
+ *
+ * $Id: rtl8019-drv.h,v 1.1 2003/07/04 10:54:52 adamdunkels Exp $
+ *
+ */
+#ifndef __RTL8019_DRV_H__
+#define __RTL8019_DRV_H__
+
+void rtl8019_drv_init(void);
+
+#endif /* __RTL8019_DRV_H__ */
diff --git a/contiki-avr/uip/rtl8019.c b/contiki-avr/uip/rtl8019.c
new file mode 100644
index 0000000..651efaa
--- /dev/null
+++ b/contiki-avr/uip/rtl8019.c
@@ -0,0 +1,931 @@
+#include "rtl8019.h"
+#include "delay.h"
+#include "debug.h"
+#include "avr/pgmspace.h"
+#include "rtlregs.h"
+
+
+/*****************************************************************************
+*  Module Name:       Realtek 8019AS Driver
+*  
+*  Created By:        Louis Beaudoin (www.embedded-creations.com)
+*
+*  Original Release:  September 21, 2002 
+*
+*  Module Description:  
+*  Provides functions to initialize the Realtek 8019AS, and send and retreive
+*  packets
+*
+*  November 15, 2002 - Louis Beaudoin
+*    processRTL8019Interrupt() - bit mask mistake fixed
+*
+*  September 30, 2002 - Louis Beaudoin
+*    Receive functions modified to handle errors encountered when receiving a
+*      fast data stream.  Functions now manually retreive data instead of
+*      using the send packet command.  Interface improved by checking for
+*      overruns and data in the buffer internally.
+*    Corrected the overrun function - overrun flag was not reset after overrun
+*    Added support for the Imagecraft Compiler
+*    Added support to communicate with the NIC using general I/O ports
+*
+*****************************************************************************/
+
+
+/*****************************************************************************
+*  writeRTL( RTL_ADDRESS, RTL_DATA )
+*  Args:        1. unsigned char RTL_ADDRESS - register offset of RTL register
+*               2. unsigned char RTL_DATA - data to write to register
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Writes byte to RTL8019 register.
+*
+*  Notes - If using the External SRAM Interface, performs a write to
+*            address MEMORY_MAPPED_RTL8019_OFFSET + (RTL_ADDRESS<<8)
+*            The address is sent in the non-multiplxed upper address port so
+*            no latch is required.
+*
+*          If using general I/O ports, the data port is left in the input
+*            state with pullups enabled
+*
+*****************************************************************************/
+#if MEMORY_MAPPED_NIC == 1
+/*#define writeRTL(RTL_ADDRESS,RTL_DATA) do{ *(volatile unsigned char *) \
+                             (MEMORY_MAPPED_RTL8019_OFFSET \
+                             + (((unsigned char)(RTL_ADDRESS)) << 8)) = \
+                             (unsigned char)(RTL_DATA); } while(0)*/
+#define writeRTL nic_write
+#else
+
+
+void writeRTL(unsigned char address, unsigned char data)
+{
+    // put the address and data in the port registers - data port is output
+    outp( address, RTL8019_ADDRESS_PORT );
+    outp( 0xFF, RTL8019_DATA_DDR );
+    outp( data, RTL8019_DATA_PORT );
+    
+	// toggle write pin
+    RTL8019_CLEAR_WRITE;
+    RTL8019_SET_WRITE;
+    
+	// set data port back to input with pullups enabled
+    outp( 0x00, RTL8019_DATA_DDR );
+    outp( 0xFF, RTL8019_DATA_PORT );
+}
+
+
+
+#endif
+
+/*****************************************************************************
+*  readRTL(RTL_ADDRESS)
+*  Args:        unsigned char RTL_ADDRESS - register offset of RTL register
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Reads byte from RTL8019 register
+*
+*  Notes - If using the External SRAM Interface, performs a read from
+*            address MEMORY_MAPPED_RTL8019_OFFSET + (RTL_ADDRESS<<8)
+*            The address is sent in the non-multiplxed upper address port so
+*            no latch is required.
+*
+*          If using general I/O ports, the data port is assumed to already be
+*            an input, and is left as an input port when done
+*
+*****************************************************************************/
+#if MEMORY_MAPPED_NIC == 1
+/*#define readRTL(RTL_ADDRESS) (*(volatile unsigned char *) \
+                       (MEMORY_MAPPED_RTL8019_OFFSET \
+                       + (((unsigned char)(RTL_ADDRESS)) << 8)) )*/
+#define readRTL nic_read
+#else
+
+unsigned char readRTL(unsigned char address)
+{
+   unsigned char byte;
+   
+   // drive the read address
+   outp( address, RTL8019_ADDRESS_PORT );
+    
+   //nop();
+   
+   // assert read
+   RTL8019_CLEAR_READ;
+   nop();
+   
+   // read in the data
+   byte = inp( RTL8019_DATA_PIN );
+
+   // negate read
+   RTL8019_SET_READ;
+
+   return byte;
+}
+
+#endif                       
+
+
+
+/*****************************************************************************
+*  RTL8019setupPorts(void);
+*
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Sets up the ports used for communication with the RTL8019 NIC
+*                 (data bus, address bus, read, write, and reset)
+*****************************************************************************/
+void RTL8019setupPorts(void)
+{
+volatile unsigned char *base = (unsigned char *)0x8300;
+
+#if MEMORY_MAPPED_NIC == 1
+  	// enable external SRAM interface - no wait states
+  	outp(inp(MCUCR) | (1<<SRE), MCUCR);
+
+#else
+
+    // make the address port output
+    outp( 0xFF, RTL8019_ADDRESS_DDR );
+    
+    // make the data port input with pull-ups
+    outp( 0xFF, RTL8019_DATA_PORT );
+
+	// make the control port read and write pins outputs and asserted
+	//outp( inp(RTL8019_CONTROL_DDR) | (1<<RTL8019_CONTROL_READPIN) |
+	//          (1<<RTL8019_CONTROL_WRITEPIN), RTL8019_CONTROL_DDR );
+	sbi( RTL8019_CONTROL_DDR, RTL8019_CONTROL_READPIN );
+	sbi( RTL8019_CONTROL_DDR, RTL8019_CONTROL_WRITEPIN );
+	          
+	//outp( inp(RTL8019_CONTROL_PORT) | (1<<RTL8019_CONTROL_READPIN) |
+	//          (1<<RTL8019_CONTROL_WRITEPIN), RTL8019_CONTROL_PORT );
+	sbi( RTL8019_CONTROL_PORT, RTL8019_CONTROL_READPIN );
+	sbi( RTL8019_CONTROL_PORT, RTL8019_CONTROL_WRITEPIN );
+
+#endif
+
+	// enable output pin for Resetting the RTL8019
+	sbi( RTL8019_RESET_DDR, RTL8019_RESET_PIN );
+	
+	
+	
+
+
+}
+
+
+
+/*****************************************************************************
+*  HARD_RESET_RTL8019()
+*
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Simply toggles the pin that resets the NIC
+*****************************************************************************/
+/*#define HARD_RESET_RTL8019() do{ sbi(RTL8019_RESET_PORT, RTL8019_RESET_PIN); \
+                                Delay_10ms(1); \
+                                cbi(RTL8019_RESET_PORT, RTL8019_RESET_PIN);} \
+                                while(0)*/
+
+
+
+/*****************************************************************************
+*  overrun(void);
+*
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: "Canned" receive buffer overrun function originally from
+*                 a National Semiconductor appnote
+*  Notes:       This function must be called before retreiving packets from
+*                 the NIC if there is a buffer overrun
+*****************************************************************************/
+void overrun(void);
+
+
+
+
+//******************************************************************
+//*	REALTEK CONTROL REGISTER OFFSETS
+//*   All offsets in Page 0 unless otherwise specified
+//*	  All functions accessing CR must leave CR in page 0 upon exit
+//******************************************************************
+#define CR		 	0x00
+#define PSTART		0x01
+#define PAR0      	0x01    // Page 1
+#define CR9346    	0x01    // Page 3
+#define PSTOP		0x02
+#define BNRY		0x03
+#define TSR			0x04
+#define TPSR		0x04
+#define TBCR0		0x05
+#define NCR			0x05
+#define TBCR1		0x06
+#define ISR			0x07
+#define CURR		0x07   // Page 1
+#define RSAR0		0x08
+#define CRDA0		0x08
+#define RSAR1		0x09
+#define CRDA1		0x09
+#define RBCR0		0x0A
+#define RBCR1		0x0B
+#define RSR			0x0C
+#define RCR			0x0C
+#define TCR			0x0D
+#define CNTR0		0x0D
+#define DCR			0x0E
+#define CNTR1		0x0E
+#define IMR			0x0F
+#define CNTR2		0x0F
+#define RDMAPORT  	0x10
+#define RSTPORT   	0x18
+
+
+/*****************************************************************************
+*
+* RTL ISR Register Bits
+*
+*****************************************************************************/
+#define ISR_RST	7
+#define ISR_OVW 4
+#define ISR_PRX 0
+#define ISR_RDC 6
+#define ISR_PTX 1
+
+
+/*****************************************************************************
+*
+*  RTL Register Initialization Values
+*
+*****************************************************************************/
+// RCR : accept broadcast packets and packets destined to this MAC
+//         drop short frames and receive errors
+#define RCR_INIT		0x04
+
+// TCR : default transmit operation - CRC is generated 
+#define TCR_INIT		0x00
+
+// DCR : allows send packet to be used for packet retreival
+//         FIFO threshold: 8-bits (works)
+//         8-bit transfer mode
+#define DCR_INIT		0x58
+
+// IMR : interrupt enabled for receive and overrun events
+#define IMR_INIT		0x11
+
+// buffer boundaries - transmit has 6 256-byte pages
+//   receive has 26 256-byte pages
+//   entire available packet buffer space is allocated
+#define TXSTART_INIT   	0x40
+#define RXSTART_INIT   	0x46
+#define RXSTOP_INIT    	0x60
+
+
+
+void RTL8019beginPacketSend(unsigned int packetLength)
+{
+
+  volatile unsigned char *base = (unsigned char *)0x8300;
+	unsigned int sendPacketLength;
+	sendPacketLength = (packetLength>=ETHERNET_MIN_PACKET_LENGTH) ?
+	                 packetLength : ETHERNET_MIN_PACKET_LENGTH ;
+	
+	//start the NIC
+	writeRTL(CR,0x22);
+	
+	// still transmitting a packet - wait for it to finish
+	while( readRTL(CR) & 0x04 );
+
+	//load beginning page for transmit buffer
+	writeRTL(TPSR,TXSTART_INIT);
+	
+	//set start address for remote DMA operation
+	writeRTL(RSAR0,0x00);
+	writeRTL(RSAR1,0x40);
+	
+	//clear the packet stored interrupt
+	writeRTL(ISR,(1<<ISR_PTX));
+
+	//load data byte count for remote DMA
+	writeRTL(RBCR0, (unsigned char)(packetLength));
+	writeRTL(RBCR1, (unsigned char)(packetLength>>8));
+
+	writeRTL(TBCR0, (unsigned char)(sendPacketLength));
+	writeRTL(TBCR1, (unsigned char)((sendPacketLength)>>8));
+	
+	//do remote write operation
+	writeRTL(CR,0x12);
+}
+
+
+
+void RTL8019sendPacketData(unsigned char * localBuffer, unsigned int length)
+{
+	unsigned int i;
+	volatile unsigned char *base = (unsigned char *)0x8300;
+	for(i=0;i<length;i++)
+		writeRTL(RDMAPORT, localBuffer[i]);
+}
+
+
+
+void RTL8019endPacketSend(void)
+{
+  volatile unsigned char *base = (unsigned char *)0x8300;
+	//send the contents of the transmit buffer onto the network
+	writeRTL(CR,0x24);
+	
+	// clear the remote DMA interrupt
+	writeRTL(ISR, (1<<ISR_RDC));
+}
+
+
+
+
+// pointers to locations in the RTL8019 receive buffer
+static unsigned char nextPage;
+static unsigned int currentRetreiveAddress;
+
+// location of items in the RTL8019's page header
+#define  enetpacketstatus     0x00
+#define  nextblock_ptr        0x01
+#define	 enetpacketLenL		  0x02
+#define	 enetpacketLenH		  0x03
+
+
+
+unsigned int RTL8019beginPacketRetreive(void)
+{
+  volatile unsigned char *base = (unsigned char *)0x8300;
+	unsigned char i;
+	unsigned char bnry;
+	
+	unsigned char pageheader[4];
+	unsigned int rxlen;
+	
+	// check for and handle an overflow
+	processRTL8019Interrupt();
+	
+	// read CURR from page 1
+	writeRTL(CR,0x62);
+	i = readRTL(CURR);
+	
+	// return to page 0
+	writeRTL(CR,0x22);
+	
+	// read the boundary register - pointing to the beginning of the packet
+	bnry = readRTL(BNRY) ;
+
+	/*	debug_print(PSTR("bnry: "));
+		debug_print8(bnry);*/
+
+	/*	debug_print(PSTR("RXSTOP_INIT: "));
+	debug_print8(RXSTOP_INIT);
+	debug_print(PSTR("RXSTART_INIT: "));
+	debug_print8(RXSTART_INIT);*/
+	// return if there is no packet in the buffer
+	if( bnry == i ) {
+	  return 0;
+	}
+	
+
+	// clear the packet received interrupt flag
+	writeRTL(ISR, (1<<ISR_PRX));
+	
+	
+	// the boundary pointer is invalid, reset the contents of the buffer and exit
+	if( (bnry >= RXSTOP_INIT) || (bnry < RXSTART_INIT) )
+	{
+		writeRTL(BNRY, RXSTART_INIT);
+		writeRTL(CR, 0x62);
+		writeRTL(CURR, RXSTART_INIT);
+		writeRTL(CR, 0x22);
+		return 0;
+	}
+
+	// initiate DMA to transfer the RTL8019 packet header
+    writeRTL(RBCR0, 4);
+    writeRTL(RBCR1, 0);
+    writeRTL(RSAR0, 0);
+    writeRTL(RSAR1, bnry);
+    writeRTL(CR, 0x0A);
+    /*    	debug_print(PSTR("Page header: "));*/
+
+	for(i=0;i<4;i++) {
+	  pageheader[i] = readRTL(RDMAPORT);
+	  /*	  debug_print8(pageheader[i]);*/
+	}
+	
+	// end the DMA operation
+    writeRTL(CR, 0x22);
+    for(i = 0; i <= 20; i++) {
+      if(readRTL(ISR) & 1<<6) {
+	break;
+      }
+    }
+    writeRTL(ISR, 1<<6);
+
+	
+	
+	rxlen = (pageheader[enetpacketLenH]<<8) + pageheader[enetpacketLenL];
+	nextPage = pageheader[nextblock_ptr] ;
+	
+	currentRetreiveAddress = (bnry<<8) + 4;
+
+	/*	debug_print(PSTR("nextPage: "));
+		debug_print8(nextPage);*/
+	
+	// if the nextPage pointer is invalid, the packet is not ready yet - exit
+	if( (nextPage >= RXSTOP_INIT) || (nextPage < RXSTART_INIT) ) {
+	  /*	  UDR0 = '0';*/
+	  return 0;
+	}
+    
+    return rxlen-4;
+}
+
+
+void RTL8019retreivePacketData(unsigned char * localBuffer, unsigned int length)
+{
+	unsigned int i;
+	volatile unsigned char *base = (unsigned char *)0x8300;
+	// initiate DMA to transfer the data
+    writeRTL(RBCR0, (unsigned char)length);
+    writeRTL(RBCR1, (unsigned char)(length>>8));
+    writeRTL(RSAR0, (unsigned char)currentRetreiveAddress);
+    writeRTL(RSAR1, (unsigned char)(currentRetreiveAddress>>8));
+    writeRTL(CR, 0x0A);
+	for(i=0;i<length;i++)
+		localBuffer[i] = readRTL(RDMAPORT);
+
+	// end the DMA operation
+    writeRTL(CR, 0x22);
+    for(i = 0; i <= 20; i++)
+        if(readRTL(ISR) & 1<<6)
+            break;
+    writeRTL(ISR, 1<<6);
+    
+    currentRetreiveAddress += length;
+    if( currentRetreiveAddress >= 0x6000 )
+    	currentRetreiveAddress = currentRetreiveAddress - (0x6000-0x4600) ;
+}
+
+
+
+void RTL8019endPacketRetreive(void)
+{
+  volatile unsigned char *base = (unsigned char *)0x8300;
+	unsigned char i;
+
+	// end the DMA operation
+    writeRTL(CR, 0x22);
+    for(i = 0; i <= 20; i++)
+        if(readRTL(ISR) & 1<<6)
+            break;
+    writeRTL(ISR, 1<<6);
+
+	// set the boundary register to point to the start of the next packet
+    writeRTL(BNRY, nextPage);
+}
+
+
+void overrun(void)
+{
+  volatile unsigned char *base = (unsigned char *)0x8300;
+	unsigned char data_L, resend;	
+
+	data_L = readRTL(CR);
+	writeRTL(CR, 0x21);
+	Delay_1ms(2);
+	writeRTL(RBCR0, 0x00);
+	writeRTL(RBCR1, 0x00);
+	if(!(data_L & 0x04))
+		resend = 0;
+	else if(data_L & 0x04)
+	{
+		data_L = readRTL(ISR);
+		if((data_L & 0x02) || (data_L & 0x08))
+	    	resend = 0;
+	    else
+	    	resend = 1;
+	}
+	
+	writeRTL(TCR, 0x02);
+	writeRTL(CR, 0x22);
+	writeRTL(BNRY, RXSTART_INIT);
+	writeRTL(CR, 0x62);
+	writeRTL(CURR, RXSTART_INIT);
+	writeRTL(CR, 0x22);
+	writeRTL(ISR, 0x10);
+	writeRTL(TCR, TCR_INIT);
+	
+	writeRTL(ISR, 0xFF);
+}
+
+
+
+
+/*!
+ * \brief Size of a single ring buffer page.
+ */
+#define NIC_PAGE_SIZE   0x100
+
+/*!
+ * \brief First ring buffer page address.
+ */
+#define NIC_START_PAGE  0x40
+
+/*!
+ * \brief Last ring buffer page address plus 1.
+ */
+#define NIC_STOP_PAGE   0x60
+
+/*!
+ * \brief Number of pages in a single transmit buffer.
+ *
+ * This should be at least the MTU size.
+ */
+#define NIC_TX_PAGES    6
+
+/*!
+ * \brief Number of transmit buffers.
+ */
+#define NIC_TX_BUFFERS  2
+
+/*!
+ * \brief Controller memory layout:
+ *
+ * 0x4000 - 0x4bff  3k bytes transmit buffer
+ * 0x4c00 - 0x5fff  5k bytes receive buffer
+ */
+#define NIC_FIRST_TX_PAGE   NIC_START_PAGE
+#define NIC_FIRST_RX_PAGE   (NIC_FIRST_TX_PAGE + NIC_TX_PAGES * NIC_TX_BUFFERS)
+
+/*!
+ * \brief Standard sizing information
+ */
+#define TX_PAGES 12         /* Allow for 2 back-to-back frames */
+
+static unsigned char mac[6] = {0x00,0x06,0x98,0x01,0x02,0x29};
+void Delay(long nops)
+{
+    volatile long i;
+
+    for(i = 0; i < nops; i++) 
+#ifdef __IMAGECRAFT__
+        asm("nop\n");
+#else
+        asm volatile("nop\n\t"::);
+#endif
+}
+
+static int NicReset(void)
+{
+volatile unsigned char *base = (unsigned char *)0x8300;
+    unsigned char i;
+    unsigned char j;
+
+    for(j = 0; j < 20; j++) {
+        debug_print(PSTR("SW-Reset..."));
+        i = nic_read(NIC_RESET);
+        Delay(500);
+        nic_write(NIC_RESET, i);
+        for(i = 0; i < 20; i++) {
+            Delay(5000);
+
+            /*
+             * ID detection added for version 1.1 boards.
+             */
+            if((nic_read(NIC_PG0_ISR) & NIC_ISR_RST) != 0 &&
+               nic_read(NIC_PG0_RBCR0) == 0x50 && 
+               nic_read(NIC_PG0_RBCR1) == 0x70) {
+                debug_print(PSTR("OK\r\n"));
+                return 0;
+            }
+        }
+        debug_print(PSTR("failed\r\n\x07"));
+
+        /*
+         * Toggle the hardware reset line. Since Ethernut version 1.3 the 
+         * hardware reset pin of the nic is no longer connected to bit 4 
+         * on port E, but wired to the board reset line.
+         */
+        if(j == 10) {
+            debug_print(PSTR("Ethernut 1.1 HW-Reset\r\n"));
+            sbi(DDRE, 4);
+            sbi(PORTE, 4);
+            Delay(100000);
+            cbi(PORTE, 4);
+            Delay(250000);
+        }
+    }
+    return -1;
+}
+
+void initRTL8019(void)
+{
+  unsigned char i, rb;
+  volatile unsigned char *base = (unsigned char *)0x8300;
+  
+  RTL8019setupPorts();
+
+  /*#define nic_write writeRTL
+    #define nic_read readRTL*/
+      /*
+     * Disable NIC interrupts.
+     */
+    cbi(EIMSK, INT5);
+
+    /*    if(NicReset(base))
+	  return -1;*/
+#if 0
+    /*
+     * Mask all interrupts and clear any interrupt status flag to set the 
+     * INT pin back to low.
+     */
+    nic_write(NIC_PG0_IMR, 0);
+    nic_write(NIC_PG0_ISR, 0xff);
+
+    /*
+     * During reset the nic loaded its initial configuration from an 
+     * external eeprom. On the ethernut board we do not have any 
+     * configuration eeprom, but simply tied the eeprom data line to 
+     * high level. So we have to clear some bits in the configuration 
+     * register. Switch to register page 3.
+     */
+    nic_write(NIC_CR, NIC_CR_STP | NIC_CR_RD2 | NIC_CR_PS0 | NIC_CR_PS1);
+
+    /*
+     * The nic configuration registers are write protected unless both 
+     * EEM bits are set to 1.
+     */
+    nic_write(NIC_PG3_EECR, NIC_EECR_EEM0 | NIC_EECR_EEM1);
+
+    /*
+     * Disable sleep and power down.
+     */
+    nic_write(NIC_PG3_CONFIG3, 0);
+
+    /*
+     * Network media had been set to 10Base2 by the virtual EEPROM and
+     * will be set now to auto detect. This will initiate a link test.
+     * We don't force 10BaseT, because this would disable the link test.
+     */
+    nic_write(NIC_PG3_CONFIG2, NIC_CONFIG2_BSELB);
+
+    /*
+     * Reenable write protection of the nic configuration registers
+     * and wait for link test to complete.
+     */
+    nic_write(NIC_PG3_EECR, 0);
+    /*    NutSleep(WAIT500);*/
+    Delay_10ms(50);
+
+    /*
+     * Switch to register page 0 and set data configuration register
+     * to byte-wide DMA transfers, normal operation (no loopback),
+     * send command not executed and 8 byte fifo threshold.
+     */
+    nic_write(NIC_CR, NIC_CR_STP | NIC_CR_RD2);
+    nic_write(NIC_PG0_DCR, NIC_DCR_LS | NIC_DCR_FT1);
+
+    /*
+     * Clear remote dma byte count register.
+     */
+    nic_write(NIC_PG0_RBCR0, 0);
+    nic_write(NIC_PG0_RBCR1, 0);
+
+    /*
+     * Temporarily set receiver to monitor mode and transmitter to 
+     * internal loopback mode. Incoming packets will not be stored 
+     * in the nic ring buffer and no data will be send to the network.
+     */
+    nic_write(NIC_PG0_RCR, NIC_RCR_MON);
+    nic_write(NIC_PG0_TCR, NIC_TCR_LB0);
+
+    /*
+     * Configure the nic's ring buffer page layout.
+     * NIC_PG0_BNRY: Last page read.
+     * NIC_PG0_PSTART: First page of receiver buffer.
+     * NIC_PG0_PSTOP: Last page of receiver buffer.
+     */
+    nic_write(NIC_PG0_TPSR, NIC_FIRST_TX_PAGE);
+    nic_write(NIC_PG0_BNRY, NIC_STOP_PAGE - 1);
+    nic_write(NIC_PG0_PSTART, NIC_FIRST_RX_PAGE);
+    nic_write(NIC_PG0_PSTOP, NIC_STOP_PAGE);
+
+    /*
+     * Once again clear interrupt status register.
+     */
+    nic_write(NIC_PG0_ISR, 0xff);
+
+    /*
+     * Switch to register page 1 and copy our MAC address into the nic. 
+     * We are still in stop mode.
+     */
+    nic_write(NIC_CR, NIC_CR_STP | NIC_CR_RD2 | NIC_CR_PS0);
+    for(i = 0; i < 6; i++)
+        nic_write(NIC_PG1_PAR0 + i, mac[i]);
+
+    /*
+     * Clear multicast filter bits to disable all packets.
+     */
+    for(i = 0; i < 8; i++)
+        nic_write(NIC_PG1_MAR0 + i, 0);
+
+    /*
+     * Set current page pointer to one page after the boundary pointer.
+     */
+    nic_write(NIC_PG1_CURR, NIC_START_PAGE + TX_PAGES);
+
+    /*
+     * Switch back to register page 0, remaining in stop mode.
+     */
+    nic_write(NIC_CR, NIC_CR_STP | NIC_CR_RD2);
+
+    /*
+     * Take receiver out of monitor mode and enable it for accepting 
+     * broadcasts.
+     */
+    nic_write(NIC_PG0_RCR, NIC_RCR_AB);
+
+    /*
+     * Clear all interrupt status flags and enable interrupts.
+     */
+    nic_write(NIC_PG0_ISR, 0xff);
+    nic_write(NIC_PG0_IMR, NIC_IMR_PRXE | NIC_IMR_PTXE | NIC_IMR_RXEE | 
+                           NIC_IMR_TXEE | NIC_IMR_OVWE);
+
+    /*
+     * Fire up the nic by clearing the stop bit and setting the start bit. 
+     * To activate the local receive dma we must also take the nic out of
+     * the local loopback mode.
+     */
+    nic_write(NIC_CR, NIC_CR_STA | NIC_CR_RD2);
+    nic_write(NIC_PG0_TCR, 0);
+
+    /*    NutSleep(WAIT500);*/
+    Delay_10ms(50);
+
+
+#endif /* 0 */
+
+    NicReset();
+    
+    debug_print(PSTR("Init controller..."));
+    nic_write(NIC_PG0_IMR, 0);
+    nic_write(NIC_PG0_ISR, 0xff);
+    nic_write(NIC_CR, NIC_CR_STP | NIC_CR_RD2 | NIC_CR_PS0 | NIC_CR_PS1);
+    nic_write(NIC_PG3_EECR, NIC_EECR_EEM0 | NIC_EECR_EEM1);
+    nic_write(NIC_PG3_CONFIG3, 0);
+    nic_write(NIC_PG3_CONFIG2, NIC_CONFIG2_BSELB);
+    nic_write(NIC_PG3_EECR, 0);
+    /*    Delay(50000);*/
+    Delay_10ms(200);
+    nic_write(NIC_CR, NIC_CR_STP | NIC_CR_RD2);
+    nic_write(NIC_PG0_DCR, NIC_DCR_LS | NIC_DCR_FT1);
+    nic_write(NIC_PG0_RBCR0, 0);
+    nic_write(NIC_PG0_RBCR1, 0);
+    nic_write(NIC_PG0_RCR, NIC_RCR_MON);
+    nic_write(NIC_PG0_TCR, NIC_TCR_LB0);
+    nic_write(NIC_PG0_TPSR, NIC_FIRST_TX_PAGE);
+    nic_write(NIC_PG0_BNRY, NIC_STOP_PAGE - 1);
+    nic_write(NIC_PG0_PSTART, NIC_FIRST_RX_PAGE);
+    nic_write(NIC_PG0_PSTOP, NIC_STOP_PAGE);
+    nic_write(NIC_PG0_ISR, 0xff);
+    nic_write(NIC_CR, NIC_CR_STP | NIC_CR_RD2 | NIC_CR_PS0);
+    for(i = 0; i < 6; i++)
+        nic_write(NIC_PG1_PAR0 + i, mac[i]);
+    for(i = 0; i < 8; i++)
+        nic_write(NIC_PG1_MAR0 + i, 0);
+    nic_write(NIC_PG1_CURR, NIC_START_PAGE + TX_PAGES);
+    nic_write(NIC_CR, NIC_CR_STP | NIC_CR_RD2);
+    nic_write(NIC_PG0_RCR, NIC_RCR_AB);
+    nic_write(NIC_PG0_ISR, 0xff);
+    nic_write(NIC_PG0_IMR, 0);
+    nic_write(NIC_CR, NIC_CR_STA | NIC_CR_RD2);
+    nic_write(NIC_PG0_TCR, 0);
+    /*    Delay(1000000)*/
+    Delay_10ms(200);
+
+
+        nic_write(NIC_CR, NIC_CR_STA | NIC_CR_RD2 | NIC_CR_PS0 | NIC_CR_PS1);
+    rb = nic_read(NIC_PG3_CONFIG0);
+    debug_print8(rb);
+    switch(rb & 0xC0) {
+    case 0x00:
+        debug_print(PSTR("RTL8019AS "));
+        if(rb & 0x08)
+            debug_print(PSTR("jumper mode: "));
+        if(rb & 0x20)
+            debug_print(PSTR("AUI "));
+        if(rb & 0x10)
+            debug_print(PSTR("PNP "));
+        break;
+    case 0xC0:
+        debug_print(PSTR("RTL8019 "));
+        if(rb & 0x08)
+            debug_print(PSTR("jumper mode: "));
+        break;
+    default:
+        debug_print(PSTR("Unknown chip "));
+	debug_print8(rb);
+        break;
+    }
+    if(rb & 0x04)
+        debug_print(PSTR("BNC\x07 "));
+    if(rb & 0x03)
+        debug_print(PSTR("Failed\x07 "));
+
+    /*    rb = nic_read(NIC_PG3_CONFIG1);
+	  debug_print8(rb);*/
+    /*    NutPrintFormat(0, "IRQ%u ", (rb >> 4) & 7);*/
+    /*    debug_print("IRQ ");
+	  debug_print8((rb >> 4) & 7);*/
+
+    rb = nic_read(NIC_PG3_CONFIG2);
+    debug_print8(rb);
+    switch(rb & 0xC0) {
+    case 0x00:
+        debug_print(PSTR("Auto "));
+        break;
+    case 0x40:
+        debug_print(PSTR("10BaseT "));
+        break;
+    case 0x80:
+        debug_print(PSTR("10Base5 "));
+        break;
+    case 0xC0:
+        debug_print(PSTR("10Base2 "));
+        break;
+    }
+
+
+    return;
+    
+  /*  HARD_RESET_RTL8019();*/
+
+  // do soft reset
+  writeRTL( ISR, readRTL(ISR) ) ;
+  Delay_10ms(5);
+  
+  writeRTL(CR,0x21);       // stop the NIC, abort DMA, page 0
+  Delay_1ms(2);               // make sure nothing is coming in or going out
+  writeRTL(DCR, DCR_INIT);    // 0x58
+  writeRTL(RBCR0,0x00);
+  writeRTL(RBCR1,0x00);
+  writeRTL(RCR,0x04);
+  writeRTL(TPSR, TXSTART_INIT);
+  writeRTL(TCR,0x02);
+  writeRTL(PSTART, RXSTART_INIT);
+  writeRTL(BNRY, RXSTART_INIT);
+  writeRTL(PSTOP, RXSTOP_INIT);
+  writeRTL(CR, 0x61);
+  Delay_1ms(2);
+  writeRTL(CURR, RXSTART_INIT);
+  
+  writeRTL(PAR0+0, MYMAC_0);
+  writeRTL(PAR0+1, MYMAC_1);
+  writeRTL(PAR0+2, MYMAC_2);
+  writeRTL(PAR0+3, MYMAC_3);
+  writeRTL(PAR0+4, MYMAC_4);
+  writeRTL(PAR0+5, MYMAC_5);
+     	  
+  writeRTL(CR,0x21);
+  writeRTL(DCR, DCR_INIT);
+  writeRTL(CR,0x22);
+  writeRTL(ISR,0xFF);
+  writeRTL(IMR, IMR_INIT);
+  writeRTL(TCR, TCR_INIT);
+	
+  writeRTL(CR, 0x22);	// start the NIC
+}
+
+
+void processRTL8019Interrupt(void)
+{
+  volatile unsigned char *base = (unsigned char *)0x8300;
+  unsigned char byte = readRTL(ISR);
+	
+  if( byte & (1<<ISR_OVW) )
+    overrun();
+
+}
+
+/*
+  unsigned char RTL8019ReceiveEmpty(void)
+  {
+  unsigned char temp;
+
+  // read CURR from page 1
+  writeRTL(CR,0x62);
+  temp = readRTL(CURR);
+	
+  // return to page 0
+  writeRTL(CR,0x22);
+	
+  return ( readRTL(BNRY) == temp );
+	
+  }*/
+
+
+
+
diff --git a/contiki-avr/uip/rtl8019.h b/contiki-avr/uip/rtl8019.h
new file mode 100644
index 0000000..240beff
--- /dev/null
+++ b/contiki-avr/uip/rtl8019.h
@@ -0,0 +1,265 @@
+#ifndef __RTL8019_H__
+#define __RTL8019_H__
+
+/*****************************************************************************
+*  Module Name:       Realtek 8019AS Driver
+*  
+*  Created By:        Louis Beaudoin (www.embedded-creations.com)
+*
+*  Original Release:  September 21, 2002 
+*
+*  Module Description:  
+*  Provides functions to initialize the Realtek 8019AS, and send and retreive
+*  packets
+*
+*  September 30, 2002 - Louis Beaudoin
+*    Receive functions modified to handle errors encountered when receiving a
+*      fast data stream.  Functions now manually retreive data instead of
+*      using the send packet command.  Interface improved by checking for
+*      overruns and data in the buffer internally.
+*    Corrected the overrun function - overrun flag was not reset after overrun
+*    Added support for the Imagecraft Compiler
+*    Added support to communicate with the NIC using general I/O ports
+*
+*****************************************************************************/
+
+/*#include "delay.h"*/
+
+#include "compiler.h"
+
+
+/*****************************************************************************
+*  RTL8019beginPacketSend(unsigned int packetLength)
+*  Args:        unsigned int - length of the Ethernet frame (see note)
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Sets up the NIC to send a packet
+*  Notes:       The NIC will not send packets less than 60 bytes long (the min
+*                 Ethernet frame length.  The transmit length is automatically
+*                 increased to 60 bytes if packetLength is < 60
+*****************************************************************************/
+void RTL8019beginPacketSend(unsigned int packetLength);
+
+
+/*****************************************************************************
+*  RTL8019sendPacketData(unsigned char * localBuffer, unsigned int length)
+*  Args:        1. unsigned char * localBuffer - Pointer to the beginning of
+*                    the buffer to load into the NIC
+*               2. unsigned char length - number of bytes to copy to
+*                    the NIC
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Loads length # of bytes from a local buffer to the transmit
+*                 packet buffer
+*  Notes:       RTL8019beginPacketSend() must be called before sending
+*                 any data.
+*               Several calls to RTL8019retreivePacketData() may be made to 
+*                 copy packet data from different buffers
+*****************************************************************************/
+void RTL8019sendPacketData(unsigned char * localBuffer, unsigned int length);
+
+
+/*****************************************************************************
+*  RTL8019endPacketSend()
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Ends a packet send operation and instructs the NIC to transmit
+*                 the frame over the network
+*****************************************************************************/
+void RTL8019endPacketSend(void);
+
+
+/*****************************************************************************
+*  initRTL8019(void);
+*
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Sets up the RTL8019 NIC hardware interface, and initializes
+*                 the buffers and configuration of the NIC
+*****************************************************************************/
+void initRTL8019(void);
+
+
+/*****************************************************************************
+*  processRTL8019Interrupt(void);
+*
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Reads the NIC's ISR register looking for a receive buffer
+*                 overrun - which is then handled.
+*  Notes:       The function does not need to be called in response to an
+*                 interrupt.  The function can be polled and the NIC's INT
+*                 line not used.  This function should be called before
+*                 attempting to retreive a packet from the NIC
+*****************************************************************************/
+void processRTL8019Interrupt(void);
+
+
+/*****************************************************************************
+*  unsigned char RTL8019ReceiveEmpty(void);
+*
+*  Returns:     non-zero (true) if buffer is empty, zero if data in buffer
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Compares the BNRY and CURR receive buffer pointers to see if
+*                 there is a packet in the receive buffer
+*  ** Removed as of version 0.60.1 **
+*****************************************************************************/
+//unsigned char RTL8019ReceiveEmpty(void);
+
+
+/*****************************************************************************
+*  unsigned int RTL8019beginPacketRetreive()
+*  Returns:     unsigned int - length of the Ethernet frame (see note)
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Sets up the NIC to retreive a packet
+*  Notes:       The size returned is the size of all the data in the Ethernet
+*                 frame minus the Ethernet checksum.  This may include unused
+*                 trailer bytes appended if data is less than the minimum
+*                 Ethernet frame length (60 bytes).  A size of zero indicates
+*                 there are no packets available.
+*               A call to RTL8019beginPacketRetreive() must be followed by a
+*                 call to RTL8019endPacketRetreive() regardless if data is
+*                 retreived, unless 0 is returned.
+*****************************************************************************/
+unsigned int RTL8019beginPacketRetreive(void);
+
+
+/*****************************************************************************
+*  RTL8019retreivePacketData(unsigned char * localBuffer, unsigned int length)
+*  Args:        1. unsigned char * localBuffer - Pointer to the beginning of
+*                    the buffer to store the ethernet frame.
+*               2. unsigned char length - number of bytes to copy to
+*                    localBuffer
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Loads length # of bytes from the receive packet buffer to
+*                 a local buffer
+*  Notes:       RTL8019beginPacketRetreive() must be called before retreiving
+*                 any data.
+*               Several calls to RTL8019retreivePacketData() may be made to 
+*                 copy packet data to different buffers
+*****************************************************************************/
+void RTL8019retreivePacketData(unsigned char * localBuffer,
+                               unsigned int length);
+
+/*****************************************************************************
+*  RTL8019endPacketRetreive()
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Ends a packet retreive operation begun by calling
+*                 RTL8019beginPacketRetreive().  The NIC buffer space used by
+*                 the retreived packet is freed
+*  Notes:       A packet may be removed from the buffer without being read
+*                 by calling RTL8019endPacketRetreive() after
+*                 RTL8019beginPacketRetreive().
+*****************************************************************************/
+void RTL8019endPacketRetreive(void);
+
+
+/*****************************************************************************
+*
+*  AVR hardware setup
+*
+*    External SRAM Interface:
+*      The five NIC address lines are taken from A8-A12 (uses the
+*      non-multiplexed address port so no latch is required)
+*
+*    General I/O Interface:
+*      Two full ports are required for the address and data buses.  Two pins
+*        from another port are used to control the read and write lines
+*
+*    One output pin is required for hard resetting the NIC
+*
+*****************************************************************************/
+
+// set to 1 to use the External SRAM Interface - 0 for General I/O
+#define MEMORY_MAPPED_NIC 1
+
+#if MEMORY_MAPPED_NIC /*** NIC Interface through External SRAM Interface ****/
+
+// NIC is mapped from address 0x8000 - 0x9F00
+#define MEMORY_MAPPED_RTL8019_OFFSET 0x8300
+
+#else /************ NIC Interface through General I/O *******************/
+
+// RTL8019 address port
+#define RTL8019_ADDRESS_PORT        PORTC
+#define RTL8019_ADDRESS_DDR         DDRC
+
+// RTL8019 data port
+#define RTL8019_DATA_PORT           PORTA
+#define RTL8019_DATA_DDR            DDRA
+#define RTL8019_DATA_PIN            PINA
+
+// RTL8019 control port
+#define RTL8019_CONTROL_PORT        PORTD
+#define RTL8019_CONTROL_DDR         DDRD
+#define RTL8019_CONTROL_READPIN     PD7
+#define RTL8019_CONTROL_WRITEPIN    PD6
+
+
+// macros to control the read and write pins
+#define RTL8019_CLEAR_READ   cbi(RTL8019_CONTROL_PORT,\
+                                 RTL8019_CONTROL_READPIN)
+#define RTL8019_SET_READ     sbi(RTL8019_CONTROL_PORT,\
+                                 RTL8019_CONTROL_READPIN) 
+#define RTL8019_CLEAR_WRITE  cbi(RTL8019_CONTROL_PORT,\
+                                 RTL8019_CONTROL_WRITEPIN)
+#define RTL8019_SET_WRITE    sbi(RTL8019_CONTROL_PORT,\
+                                 RTL8019_CONTROL_WRITEPIN)
+
+#endif /** NIC Interface **/
+
+
+
+// RTL RESET - Port B pin 0
+#define RTL8019_RESET_PORT 	PORTE
+#define RTL8019_RESET_DDR 	DDRE
+#define RTL8019_RESET_PIN 	PORTE0
+
+
+
+
+
+/*****************************************************************************
+*
+*  Ethernet constants
+*
+*****************************************************************************/
+#define ETHERNET_MIN_PACKET_LENGTH	0x3C
+#define ETHERNET_HEADER_LENGTH		0x0E
+
+
+
+/*****************************************************************************
+*
+* MAC address assigned to the RTL8019
+*
+*****************************************************************************/
+/*#define MYMAC_0 '0'
+#define MYMAC_1 'F'
+#define MYMAC_2 'F'
+#define MYMAC_3 'I'
+#define MYMAC_4 'C'
+#define MYMAC_5 'E'*/
+
+#define MYMAC_0 0x00
+#define MYMAC_1 0x06
+#define MYMAC_2 0x98
+#define MYMAC_3 0x01
+#define MYMAC_4 0x02
+#define MYMAC_5 0x26
+
+
+
+
+
+
+
+
+
+
+
+#endif /* __RTL8019_H__ */
diff --git a/contiki-avr/uip/rtl8019as-drv.c b/contiki-avr/uip/rtl8019as-drv.c
new file mode 100644
index 0000000..5db3159
--- /dev/null
+++ b/contiki-avr/uip/rtl8019as-drv.c
@@ -0,0 +1,160 @@
+/*
+ * Copyright (c) 2003, Adam Dunkels.
+ * 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 Adam Dunkels.
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the uIP TCP/IP stack.
+ *
+ * $Id: rtl8019as-drv.c,v 1.1 2003/07/04 10:54:52 adamdunkels Exp $
+ *
+ */
+
+
+/* uip_main.c: initialization code and main event loop. */
+
+#define NULL (void *)0
+
+
+
+#include "uip.h"
+#include "uip_arp.h"
+#include "uip-signal.h"
+#include "loader.h"
+#include "rtl8019dev.h"
+
+#include "dispatcher.h"
+#include "ek.h"
+
+#include "debug.h"
+
+#define BUF ((struct uip_eth_hdr *)&uip_buf[0])
+
+static u8_t i, arptimer;
+static u16_t start, current;
+
+static void rtl8019_drv_idle(void);
+static DISPATCHER_SIGHANDLER(rtl8019_drv_sighandler, s, data);
+static struct dispatcher_proc p =
+  {DISPATCHER_PROC("TCP/IP/RTL8019 driver", rtl8019_drv_idle,
+		   rtl8019_drv_sighandler, NULL)};
+ek_id_t id = EK_ID_NONE;
+
+
+/*-----------------------------------------------------------------------------------*/
+static void
+timer(void)
+{
+  for(i = 0; i < UIP_CONNS; ++i) {
+    uip_periodic(i);
+    if(uip_len > 0) {
+      uip_arp_out();
+      rtl8019as_send();
+    }
+  }
+
+  for(i = 0; i < UIP_UDP_CONNS; i++) {
+    uip_udp_periodic(i);
+    /* If the above function invocation resulted in data that
+       should be sent out on the network, the global variable
+       uip_len is set to a value > 0. */
+    if(uip_len > 0) {
+      uip_arp_out();
+      rtl8019as_send();
+    }
+  }   
+}
+/*-----------------------------------------------------------------------------------*/
+static void
+rtl8019_drv_idle(void)
+{
+  /* Poll Ethernet device to see if there is a frame avaliable. */
+  uip_len = rtl8019as_poll();
+  if(uip_len > 0) {
+    /* A frame was avaliable (and is now read into the uip_buf), so
+       we process it. */ 
+    if(BUF->type == htons(UIP_ETHTYPE_IP)) {
+      /*      debug_print16(uip_len);*/
+      uip_arp_ipin();
+      uip_len -= sizeof(struct uip_eth_hdr);
+      uip_input();
+      /* If the above function invocation resulted in data that
+	 should be sent out on the network, the global variable
+	 uip_len is set to a value > 0. */
+      if(uip_len > 0) {
+	/*	debug_print(PSTR("Sending packet\n"));*/
+	uip_arp_out();
+	rtl8019as_send();
+      }
+    } else if(BUF->type == htons(UIP_ETHTYPE_ARP)) {
+      uip_arp_arpin();
+      /* If the above function invocation resulted in data that
+	 should be sent out on the network, the global variable
+	 uip_len is set to a value > 0. */	
+      if(uip_len > 0) {
+	rtl8019as_send();
+      }
+    }
+  }
+  /* Check the clock so see if we should call the periodic uIP
+     processing. */
+  current = ek_clock();
+
+  if((current - start) >= CLK_TCK/2 ||
+     (current - start) < 0) {
+    timer();
+    start = current;
+  }    
+}
+/*-----------------------------------------------------------------------------------*/
+LOADER_INIT_FUNC(rtl8019_drv_init)
+{
+  if(id == EK_ID_NONE) {
+    id = dispatcher_start(&p);
+    
+    arptimer = 0;
+    start = ek_clock();
+
+    rtl8019as_init();
+    
+    dispatcher_listen(uip_signal_uninstall);
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+static
+DISPATCHER_SIGHANDLER(rtl8019_drv_sighandler, s, data)
+{
+  DISPATCHER_SIGHANDLER_ARGS(s, data);
+
+  if(s == uip_signal_uninstall) {
+    dispatcher_exit(&p);
+    id = EK_ID_NONE;
+    LOADER_UNLOAD();   
+  }
+}
+/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-avr/uip/rtl8019dev.c b/contiki-avr/uip/rtl8019dev.c
new file mode 100644
index 0000000..3ca828b
--- /dev/null
+++ b/contiki-avr/uip/rtl8019dev.c
@@ -0,0 +1,77 @@
+#include "uip.h"
+#include "rtl8019dev.h"
+
+/*****************************************************************************
+*  Module Name:       Realtek 8019AS Driver Interface for uIP-AVR Port
+*  
+*  Created By:        Louis Beaudoin (www.embedded-creations.com)
+*
+*  Original Release:  September 21, 2002 
+*
+*  Module Description:  
+*  Provides three functions to interface with the Realtek 8019AS driver
+*  These functions can be called directly from the main uIP control loop
+*  to send packets from uip_buf and uip_appbuf, and store incoming packets to
+*  uip_buf
+*
+*  September 30, 2002 - Louis Beaudoin
+*    Modifications required to handle the packet receive function changes in
+*      rtl8019.c.  There is no longer a need to poll for an empty buffer or
+*      an overflow.
+*    Added support for the Imagecraft Compiler
+*
+*****************************************************************************/
+
+
+#define IP_TCP_HEADER_LENGTH 40
+#define TOTAL_HEADER_LENGTH (IP_TCP_HEADER_LENGTH+ETHERNET_HEADER_LENGTH)
+
+
+
+void RTL8019dev_init(void)
+{
+	initRTL8019();
+}
+
+
+void RTL8019dev_send(void)
+{
+  RTL8019beginPacketSend(uip_len);
+  
+  // send packet, using data in uip_appdata if over the IP+TCP header size
+  if( uip_len <= TOTAL_HEADER_LENGTH ) {
+    RTL8019sendPacketData(uip_buf, uip_len);
+  } else {
+    uip_len -= TOTAL_HEADER_LENGTH;
+    RTL8019sendPacketData(uip_buf, TOTAL_HEADER_LENGTH);
+    RTL8019sendPacketData((unsigned char *)uip_appdata, uip_len);
+  }
+  
+  RTL8019endPacketSend();
+}
+
+
+
+unsigned int RTL8019dev_poll(void)
+{
+	unsigned int packetLength;
+	
+	packetLength = RTL8019beginPacketRetreive();
+
+	// if there's no packet or an error - exit without ending the operation
+	if( !packetLength )
+	  return 0;
+
+	// drop anything too big for the buffer
+	if( packetLength > UIP_BUFSIZE )
+	{
+	  RTL8019endPacketRetreive();
+      return 0;
+	}
+	
+	// copy the packet data into the uIP packet buffer
+	RTL8019retreivePacketData( uip_buf, packetLength );
+	RTL8019endPacketRetreive();
+		
+	return packetLength;
+}
diff --git a/contiki-avr/uip/rtl8019dev.h b/contiki-avr/uip/rtl8019dev.h
new file mode 100644
index 0000000..677614d
--- /dev/null
+++ b/contiki-avr/uip/rtl8019dev.h
@@ -0,0 +1,60 @@
+#ifndef __RTL8019DEV_H__
+#define __RTL8019DEV_H__
+
+/*****************************************************************************
+*  Module Name:       Realtek 8019AS Driver Interface for uIP-AVR Port
+*  
+*  Created By:        Louis Beaudoin (www.embedded-creations.com)
+*
+*  Original Release:  September 21, 2002 
+*
+*  Module Description:  
+*  Provides three functions to interface with the Realtek 8019AS driver
+*  These functions can be called directly from the main uIP control loop
+*  to send packets from uip_buf and uip_appbuf, and store incoming packets to
+*  uip_buf
+*
+*  September 30, 2002 - Louis Beaudoin
+*    Modifications required to handle the packet receive function changes in
+*      rtl8019.c.  There is no longer a need to poll for an empty buffer or
+*      an overflow.
+*    Added support for the Imagecraft Compiler
+*
+*****************************************************************************/
+
+#include "uip.h"
+#include "rtl8019.h"
+
+/*****************************************************************************
+*  RTL8019dev_init()
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Power-up initialization of the RTL8019
+*****************************************************************************/
+void RTL8019dev_init(void);
+
+
+/*****************************************************************************
+*  RTL8019dev_send()
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Sends the packet contained in uip_buf and uip_appdata over
+*                 the network
+*****************************************************************************/
+void RTL8019dev_send(void);
+
+
+/*****************************************************************************
+*  unsigned char/int RTL8019dev_poll()
+*  Returns:     Length of the packet retreived, or zero if no packet retreived
+*  Created By:  Louis Beaudoin
+*  Date:        September 21, 2002
+*  Description: Polls the RTL8019 looking for an overflow condition or a new
+*                 packet in the receive buffer.  If a new packet exists and
+*                 will fit in uip_buf, it is retreived, and the length is
+*                 returned.  A packet bigger than the buffer is discarded
+*****************************************************************************/
+unsigned int RTL8019dev_poll(void);
+
+
+#endif /* __RTL8019DEV_H__ */
diff --git a/contiki-avr/uip/rtlregs.h b/contiki-avr/uip/rtlregs.h
new file mode 100644
index 0000000..fcaaebd
--- /dev/null
+++ b/contiki-avr/uip/rtlregs.h
@@ -0,0 +1,345 @@
+#ifndef _DEV_RTLREGS_H_

+#define _DEV_RTLREGS_H_

+

+/*

+ * Copyright (C) 2001-2002 by egnite Software GmbH. 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 egnite Software GmbH

+ *    and its contributors.

+ *

+ * THIS SOFTWARE IS PROVIDED BY EGNITE SOFTWARE GMBH 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 EGNITE

+ * SOFTWARE GMBH 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.

+ *

+ * For additional information see http://www.ethernut.de/

+ *

+ * -

+ * Portions Copyright (C) 2000 David J. Hudson <dave@humbug.demon.co.uk>

+ *

+ * This file is distributed in the hope that it will be useful, but WITHOUT

+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or

+ * FITNESS FOR A PARTICULAR PURPOSE.

+ *

+ * You can redistribute this file and/or modify it under the terms of the GNU

+ * General Public License (GPL) as published by the Free Software Foundation;

+ * either version 2 of the License, or (at your discretion) any later version.

+ * See the accompanying file "copying-gpl.txt" for more details.

+ *

+ * As a special exception to the GPL, permission is granted for additional

+ * uses of the text contained in this file.  See the accompanying file

+ * "copying-liquorice.txt" for details.

+ * -

+ * Portions Copyright (c) 1983, 1993 by

+ *  The Regents of the University of California.  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 University of

+ *  California, Berkeley and its contributors.

+ * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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.

+ */

+

+/*

+ * $Log: rtlregs.h,v $
+ * Revision 1.1  2003/07/04 10:54:52  adamdunkels
+ * First version of the AVR port
+ *
+ * Revision 1.1  2003/02/05 20:49:07  adam
+ * *** empty log message ***
+ *

+ * Revision 1.6  2002/10/29 15:27:36  harald

+ * *** empty log message ***

+ *

+ * Revision 1.5  2002/06/26 17:29:08  harald

+ * First pre-release with 2.4 stack

+ *

+ */

+

+/*!

+ * \brief Realtek 8019AS register definitions.

+ */

+/*@{*/

+

+/*

+ * Register offset applicable to all register pages.

+ */

+#define NIC_CR 0x00        /*!< \brief Command register */

+#define NIC_IOPORT 0x10    /*!< \brief I/O data port */

+#define NIC_RESET 0x1f     /*!< \brief Reset port */

+

+/*

+ * Page 0 register offsets.

+ */

+#define NIC_PG0_CLDA0 0x01    /*!< \brief Current local DMA address 0 */

+#define NIC_PG0_PSTART 0x01   /*!< \brief Page start register */

+#define NIC_PG0_CLDA1 0x02    /*!< \brief Current local DMA address 1 */

+#define NIC_PG0_PSTOP 0x02    /*!< \brief Page stop register */

+#define NIC_PG0_BNRY 0x03     /*!< \brief Boundary pointer */

+#define NIC_PG0_TSR 0x04      /*!< \brief Transmit status register */

+#define NIC_PG0_TPSR 0x04     /*!< \brief Transmit page start address */

+#define NIC_PG0_NCR 0x05      /*!< \brief Number of collisions register */

+#define NIC_PG0_TBCR0 0x05    /*!< \brief Transmit byte count register 0 */

+#define NIC_PG0_FIFO 0x06     /*!< \brief FIFO */

+#define NIC_PG0_TBCR1 0x06    /*!< \brief Transmit byte count register 1 */

+#define NIC_PG0_ISR 0x07      /*!< \brief Interrupt status register */

+#define NIC_PG0_CRDA0 0x08    /*!< \brief Current remote DMA address 0 */

+#define NIC_PG0_RSAR0 0x08    /*!< \brief Remote start address register 0 

+                                   Low byte address to read from the buffer. */

+#define NIC_PG0_CRDA1 0x09    /*!< \brief Current remote DMA address 1 */

+#define NIC_PG0_RSAR1 0x09    /*!< \brief Remote start address register 1 

+                                   High byte address to read from the buffer. */

+#define NIC_PG0_RBCR0 0x0a    /*!< \brief Remote byte count register 0 

+                                   Low byte of the number of bytes to read

+                                   from the buffer. */

+#define NIC_PG0_RBCR1 0x0b    /*!< \brief Remote byte count register 1

+                                   High byte of the number of bytes to read

+                                   from the buffer. */

+#define NIC_PG0_RSR 0x0c      /*!< \brief Receive status register */

+#define NIC_PG0_RCR 0x0c      /*!< \brief Receive configuration register */

+#define NIC_PG0_CNTR0 0x0d    /*!< \brief Tally counter 0 (frame alignment errors) */

+#define NIC_PG0_TCR 0x0d      /*!< \brief Transmit configuration register */

+#define NIC_PG0_CNTR1 0x0e    /*!< \brief Tally counter 1 (CRC errors) */

+#define NIC_PG0_DCR 0x0e      /*!< \brief Data configuration register */

+#define NIC_PG0_CNTR2 0x0f    /*!< \brief Tally counter 2 (Missed packet errors) */

+#define NIC_PG0_IMR 0x0f      /*!< \brief Interrupt mask register */

+

+/*

+ * Page 1 register offsets.

+ */

+#define NIC_PG1_PAR0 0x01     /*!< \brief Physical address register 0 */

+#define NIC_PG1_PAR1 0x02     /*!< \brief Physical address register 1 */

+#define NIC_PG1_PAR2 0x03     /*!< \brief Physical address register 2 */

+#define NIC_PG1_PAR3 0x04     /*!< \brief Physical address register 3 */

+#define NIC_PG1_PAR4 0x05     /*!< \brief Physical address register 4 */

+#define NIC_PG1_PAR5 0x06     /*!< \brief Physical address register 5 */

+#define NIC_PG1_CURR 0x07     /*!< \brief Current page register

+                                   The next incoming packet will be stored

+                                   at this page address. */

+#define NIC_PG1_MAR0 0x08     /*!< \brief Multicast address register 0 */

+#define NIC_PG1_MAR1 0x09     /*!< \brief Multicast address register 1 */

+#define NIC_PG1_MAR2 0x0a     /*!< \brief Multicast address register 2 */

+#define NIC_PG1_MAR3 0x0b     /*!< \brief Multicast address register 3 */

+#define NIC_PG1_MAR4 0x0c     /*!< \brief Multicast address register 4 */

+#define NIC_PG1_MAR5 0x0d     /*!< \brief Multicast address register 5 */

+#define NIC_PG1_MAR6 0x0e     /*!< \brief Multicast address register 6 */

+#define NIC_PG1_MAR7 0x0f     /*!< \brief Multicast address register 7 */

+

+/*

+ * Page 2 register offsets.

+ */

+#define NIC_PG2_PSTART 0x01   /*!< \brief Page start register */

+#define NIC_PG2_CLDA0 0x01    /*!< \brief Current local DMA address 0 */

+#define NIC_PG2_PSTOP 0x02    /*!< \brief Page stop register */

+#define NIC_PG2_CLDA1 0x02    /*!< \brief Current local DMA address 1 */

+#define NIC_PG2_RNP 0x03      /*!< \brief Remote next packet pointer */

+#define NIC_PG2_TSPR 0x04     /*!< \brief Transmit page start register */

+#define NIC_PG2_LNP 0x05      /*!< \brief Local next packet pointer */

+#define NIC_PG2_ACU 0x06      /*!< \brief Address counter (upper) */

+#define NIC_PG2_ACL 0x07      /*!< \brief Address counter (lower) */

+#define NIC_PG2_RCR 0x0c      /*!< \brief Receive configuration register */

+#define NIC_PG2_TCR 0x0d      /*!< \brief Transmit configuration register */

+#define NIC_PG2_DCR 0x0e      /*!< \brief Data configuration register */

+#define NIC_PG2_IMR 0x0f      /*!< \brief Interrupt mask register */

+

+/*

+ * Page 3 register offsets.

+ */

+#define NIC_PG3_EECR     0x01    /*!< \brief EEPROM command register */

+#define NIC_PG3_BPAGE    0x02    /*!< \brief Boot-ROM page register */

+#define NIC_PG3_CONFIG0  0x03    /*!< \brief Configuration register 0 (r/o) */

+#define NIC_PG3_CONFIG1  0x04    /*!< \brief Configuration register 1 */

+#define NIC_PG3_CONFIG2  0x05    /*!< \brief Configuration register 2 */

+#define NIC_PG3_CONFIG3  0x06    /*!< \brief Configuration register 3 */

+#define NIC_PG3_CSNSAV   0x08    /*!< \brief CSN save register (r/o) */

+#define NIC_PG3_HLTCLK   0x09    /*!< \brief Halt clock */

+#define NIC_PG3_INTR     0x0b    /*!< \brief Interrupt pins (r/o) */

+

+/*

+ * Command register bits.

+ */

+#define NIC_CR_STP 0x01    /*!< \brief Stop */

+#define NIC_CR_STA 0x02    /*!< \brief Start */

+#define NIC_CR_TXP 0x04    /*!< \brief Transmit packet */

+#define NIC_CR_RD0 0x08    /*!< \brief Remote DMA command bit 0 */

+#define NIC_CR_RD1 0x10    /*!< \brief Remote DMA command bit 1 */

+#define NIC_CR_RD2 0x20    /*!< \brief Remote DMA command bit 2 */

+#define NIC_CR_PS0 0x40    /*!< \brief Page select bit 0 */

+#define NIC_CR_PS1 0x80    /*!< \brief Page select bit 1 */

+

+/*

+ * Interrupt status register bits.

+ */

+#define NIC_ISR_PRX 0x01      /*!< \brief Packet received */

+#define NIC_ISR_PTX 0x02      /*!< \brief Packet transmitted */

+#define NIC_ISR_RXE 0x04      /*!< \brief Receive error */

+#define NIC_ISR_TXE 0x08      /*!< \brief Transmit error */

+#define NIC_ISR_OVW 0x10      /*!< \brief Overwrite warning */

+#define NIC_ISR_CNT 0x20      /*!< \brief Counter overflow */

+#define NIC_ISR_RDC 0x40      /*!< \brief Remote DMA complete */

+#define NIC_ISR_RST 0x80      /*!< \brief Reset status */

+

+/*

+ * Interrupt mask register bits.

+ */

+#define NIC_IMR_PRXE 0x01     /*!< \brief Packet received interrupt enable */

+#define NIC_IMR_PTXE 0x02     /*!< \brief Packet transmitted interrupt enable */

+#define NIC_IMR_RXEE 0x04     /*!< \brief Receive error interrupt enable */

+#define NIC_IMR_TXEE 0x08     /*!< \brief Transmit error interrupt enable */

+#define NIC_IMR_OVWE 0x10     /*!< \brief Overwrite warning interrupt enable */

+#define NIC_IMR_CNTE 0x20     /*!< \brief Counter overflow interrupt enable */

+#define NIC_IMR_RCDE 0x40     /*!< \brief Remote DMA complete interrupt enable */

+

+/*

+ * Data configuration register bits.

+ */

+#define NIC_DCR_WTS 0x01      /*!< \brief Word transfer select */

+#define NIC_DCR_BOS 0x02      /*!< \brief Byte order select */

+#define NIC_DCR_LAS 0x04      /*!< \brief Long address select */

+#define NIC_DCR_LS 0x08       /*!< \brief Loopback select */

+#define NIC_DCR_AR 0x10       /*!< \brief Auto-initialize remote */

+#define NIC_DCR_FT0 0x20      /*!< \brief FIFO threshold select bit 0 */

+#define NIC_DCR_FT1 0x40      /*!< \brief FIFO threshold select bit 1 */

+

+/*

+ * Transmit configuration register bits.

+ */

+#define NIC_TCR_CRC 0x01      /*!< \brief Inhibit CRC */

+#define NIC_TCR_LB0 0x02      /*!< \brief Encoded loopback control bit 0 */

+#define NIC_TCR_LB1 0x04      /*!< \brief Encoded loopback control bit 1 */

+#define NIC_TCR_ATD 0x08      /*!< \brief Auto transmit disable */

+#define NIC_TCR_OFST 0x10     /*!< \brief Collision offset enable */

+

+/*

+ * Transmit status register bits.

+ */

+#define NIC_TSR_PTX 0x01      /*!< \brief Packet transmitted */

+#define NIC_TSR_COL 0x04      /*!< \brief Transmit collided */

+#define NIC_TSR_ABT 0x08      /*!< \brief Transmit aborted */

+#define NIC_TSR_CRS 0x10      /*!< \brief Carrier sense lost */

+#define NIC_TSR_FU 0x20       /*!< \brief FIFO underrun */

+#define NIC_TSR_CDH 0x40      /*!< \brief CD heartbeat */

+#define NIC_TSR_OWC 0x80      /*!< \brief Out of window collision */

+

+/*

+ * Receive configuration register bits.

+ */

+#define NIC_RCR_SEP 0x01      /*!< \brief Save errored packets */

+#define NIC_RCR_AR 0x02       /*!< \brief Accept runt packets */

+#define NIC_RCR_AB 0x04       /*!< \brief Accept broadcast */

+#define NIC_RCR_AM 0x08       /*!< \brief Accept multicast */

+#define NIC_RCR_PRO 0x10      /*!< \brief Promiscuous physical */

+#define NIC_RCR_MON 0x20      /*!< \brief Monitor mode */

+

+/*

+ * Receive status register bits.

+ */

+#define NIC_RSR_PRX 0x01      /*!< \brief Packet received intact */

+#define NIC_RSR_CRC 0x02      /*!< \brief CRC error */

+#define NIC_RSR_FAE 0x04      /*!< \brief Frame alignment error */

+#define NIC_RSR_FO 0x08       /*!< \brief FIFO overrun */

+#define NIC_RSR_MPA 0x10      /*!< \brief Missed packet */

+#define NIC_RSR_PHY 0x20      /*!< \brief Physical/multicast address */

+#define NIC_RSR_DIS 0x40      /*!< \brief Receiver disabled */

+#define NIC_RSR_DFR 0x80      /*!< \brief Deferring */

+

+/*

+ * EEPROM command register bits.

+ */

+#define NIC_EECR_EEM1  0x80    /*!< \brief EEPROM Operating Mode */

+#define NIC_EECR_EEM0  0x40    /*!< \brief  EEPROM Operating Mode

+                                    - 0 0 Normal operation

+                                    - 0 1 Auto-load 

+                                    - 1 0 9346 programming 

+                                    - 1 1 Config register write enab */

+#define NIC_EECR_EECS  0x08    /*!< \brief EEPROM Chip Select */

+#define NIC_EECR_EESK  0x04    /*!< \brief EEPROM Clock */

+#define NIC_EECR_EEDI  0x02    /*!< \brief EEPROM Data In */

+#define NIC_EECR_EEDO  0x01    /*!< \brief EEPROM Data Out */

+

+/*

+ * Configuration register 2 bits.

+ */

+#define NIC_CONFIG2_PL1   0x80 /*!< \brief Network media type */

+#define NIC_CONFIG2_PL0   0x40 /*!< \brief Network media type

+                                    - 0 0 TP/CX auto-detect 

+                                    - 0 1 10baseT 

+                                    - 1 0 10base5 

+                                    - 1 1 10base2 */

+#define NIC_CONFIG2_BSELB 0x20 /*!< \brief BROM disable */

+#define NIC_CONFIG2_BS4   0x10 /*!< \brief BROM size/base */

+#define NIC_CONFIG2_BS3   0x08

+#define NIC_CONFIG2_BS2   0x04

+#define NIC_CONFIG2_BS1   0x02

+#define NIC_CONFIG2_BS0   0x01

+

+/*

+ * Configuration register 3 bits

+ */

+#define NIC_CONFIG3_PNP     0x80 /*!< \brief PnP Mode */

+#define NIC_CONFIG3_FUDUP   0x40 /*!< \brief Full duplex */

+#define NIC_CONFIG3_LEDS1   0x20 /*!< \brief LED1/2 pin configuration 

+                                        - 0 LED1 == LED_RX, LED2 == LED_TX 

+                                        - 1 LED1 == LED_CRS, LED2 == MCSB */

+#define NIC_CONFIG3_LEDS0   0x10 /*!< \brief LED0 pin configration

+                                        - 0 LED0 pin == LED_COL 

+                                        - 1 LED0 pin == LED_LINK */

+#define NIC_CONFIG3_SLEEP   0x04 /*!< \brief Sleep mode */

+#define NIC_CONFIG3_PWRDN   0x02 /*!< \brief Power Down */

+#define NIC_CONFIG3_ACTIVEB 0x01 /*!< \brief inverse of bit 0 in PnP Act Reg */

+

+/*@}*/

+

+/*!

+ * \brief Read byte from controller register.

+ */

+#define nic_read(reg) *(base + (reg))

+

+/*!

+ * \brief Write byte to controller register.

+ */

+#define nic_write(reg, data) *(base + (reg)) = data

+

+#endif

diff --git a/contiki-avr/uip/uip_arch.c b/contiki-avr/uip/uip_arch.c
new file mode 100644
index 0000000..9a0ce7d
--- /dev/null
+++ b/contiki-avr/uip/uip_arch.c
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 2001, Adam Dunkels.
+ * 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 Adam Dunkels.
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the uIP TCP/IP stack.
+ *
+ * $Id: uip_arch.c,v 1.3 2005/02/24 22:04:19 oliverschmidt Exp $
+ *
+ */
+
+
+#include "uip.h"
+#include "uip_arch.h"
+
+#define BUF ((uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN])
+#define IP_PROTO_TCP    6
+
+/*-----------------------------------------------------------------------------------*/
+void
+uip_add_rcv_nxt(u16_t n)
+{
+  uip_conn->rcv_nxt[3] += (n & 0xff);
+  uip_conn->rcv_nxt[2] += (n >> 8);
+
+  if(uip_conn->rcv_nxt[2] < (n >> 8)) {
+    ++uip_conn->rcv_nxt[1];    
+    if(uip_conn->rcv_nxt[1] == 0) {
+      ++uip_conn->rcv_nxt[0];
+    }
+  }
+  
+  
+  if(uip_conn->rcv_nxt[3] < (n & 0xff)) {
+    ++uip_conn->rcv_nxt[2];  
+    if(uip_conn->rcv_nxt[2] == 0) {
+      ++uip_conn->rcv_nxt[1];    
+      if(uip_conn->rcv_nxt[1] == 0) {
+	++uip_conn->rcv_nxt[0];
+      }
+    }
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+void
+uip_add32(u8_t *op32, u16_t op16)
+{
+  
+  uip_acc32[3] = op32[3] + (op16 & 0xff);
+  uip_acc32[2] = op32[2] + (op16 >> 8);
+  uip_acc32[1] = op32[1];
+  uip_acc32[0] = op32[0];
+  
+  if(uip_acc32[2] < (op16 >> 8)) {
+    ++uip_acc32[1];    
+    if(uip_acc32[1] == 0) {
+      ++uip_acc32[0];
+    }
+  }
+  
+  
+  if(uip_acc32[3] < (op16 & 0xff)) {
+    ++uip_acc32[2];  
+    if(uip_acc32[2] == 0) {
+      ++uip_acc32[1];    
+      if(uip_acc32[1] == 0) {
+	++uip_acc32[0];
+      }
+    }
+  }
+}
+/*-----------------------------------------------------------------------------------*/
+
+static u16_t
+chksum(u16_t *sdata, u16_t len)
+{ 
+  u16_t acc;
+  for(acc = 0; len > 1; len -= 2) {
+    acc += *sdata;
+    if(acc < *sdata) {
+      /* Overflow, so we add the carry to acc (i.e., increase by
+         one). */
+      ++acc;
+    }
+    ++sdata;
+  }
+
+  /* add up any odd byte */
+  if(len == 1) {
+    acc += htons(((u16_t)(*(u8_t *)sdata)) << 8);
+    if(acc < htons(((u16_t)(*(u8_t *)sdata)) << 8)) {
+      ++acc;
+    }
+  }
+
+  return acc;
+}
+/*-----------------------------------------------------------------------------------*/
+u16_t
+uip_ipchksum(void)
+{
+  return chksum((u16_t *)&uip_buf[UIP_LLH_LEN], UIP_IPH_LEN);
+}
+/*-----------------------------------------------------------------------------------*/
+u16_t
+uip_tcpchksum(void)
+{
+  u16_t hsum, sum;
+
+  
+  /* Compute the checksum of the TCP header. */
+  hsum = uip_chksum((u16_t *)&uip_buf[UIP_LLH_LEN + UIP_IPH_LEN], UIP_TCPH_LEN);
+
+  /* Compute the checksum of the data in the TCP packet and add it to
+     the TCP header checksum. */
+  sum = uip_chksum((u16_t *)uip_appdata,
+		   (u16_t)(((((u16_t)(BUF->len[0]) << 8) + BUF->len[1]) -
+		   UIP_IPTCPH_LEN)));
+
+  if((sum += hsum) < hsum) {
+    ++sum;
+  }
+  
+  if((sum += BUF->srcipaddr[0]) < BUF->srcipaddr[0]) {
+    ++sum;
+  }
+  if((sum += BUF->srcipaddr[1]) < BUF->srcipaddr[1]) {
+    ++sum;
+  }
+  if((sum += BUF->destipaddr[0]) < BUF->destipaddr[0]) {
+    ++sum;
+  }
+  if((sum += BUF->destipaddr[1]) < BUF->destipaddr[1]) {
+    ++sum;
+  }
+  if((sum += (u16_t)htons((u16_t)IP_PROTO_TCP)) < (u16_t)htons((u16_t)IP_PROTO_TCP)) {
+    ++sum;
+  }
+
+  hsum = (u16_t)HTONS((((u16_t)(BUF->len[0]) << 8) + BUF->len[1]) - UIP_IPH_LEN);
+  
+  if((sum += hsum) < hsum) {
+    ++sum;
+  }
+  
+  return sum;
+}
+/*-----------------------------------------------------------------------------------*/
diff --git a/contiki-avr/uip/uip_arch.h b/contiki-avr/uip/uip_arch.h
new file mode 100644
index 0000000..1d393c5
--- /dev/null
+++ b/contiki-avr/uip/uip_arch.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2001, Adam Dunkels.
+ * 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 Adam Dunkels.
+ * 4. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior
+ *    written permission.  
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR 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.  
+ *
+ * This file is part of the uIP TCP/IP stack.
+ *
+ * $Id: uip_arch.h,v 1.2 2005/01/26 23:36:23 oliverschmidt Exp $
+ *
+ */
+
+#ifndef __UIP_ARCH_H__
+#define __UIP_ARCH_H__
+
+#include "uip.h"
+
+void uip_add_rcv_nxt(u16_t n);
+void uip_add32(u8_t *op32, u16_t op16);
+u16_t uip_ipchksum(void);
+u16_t uip_tcpchksum(void);
+
+#endif /* __UIP_ARCH_H__ */