SourceForge: doris/doris: changeset 245:adffc24164b0
Add tolua 5.1b. Latest version from http://www.tecgraf.puc-rio.br/~celes/tolua/ default tip
authorNick <trout@users.sf.net>
Wed Nov 04 01:38:12 2009 +0000 (3 weeks ago)
changeset 245adffc24164b0
parent 244ecd5b106840b
Add tolua 5.1b. Latest version from http://www.tecgraf.puc-rio.br/~celes/tolua/
source/tolua/INSTALL
source/tolua/MANIFEST
source/tolua/Makefile
source/tolua/README
source/tolua/config
source/tolua/include/tolua.h
source/tolua/src/bin/Makefile
source/tolua/src/bin/lua/all.lua
source/tolua/src/bin/lua/array.lua
source/tolua/src/bin/lua/basic.lua
source/tolua/src/bin/lua/class.lua
source/tolua/src/bin/lua/clean.lua
source/tolua/src/bin/lua/code.lua
source/tolua/src/bin/lua/compat.lua
source/tolua/src/bin/lua/container.lua
source/tolua/src/bin/lua/declaration.lua
source/tolua/src/bin/lua/define.lua
source/tolua/src/bin/lua/doit.lua
source/tolua/src/bin/lua/enumerate.lua
source/tolua/src/bin/lua/feature.lua
source/tolua/src/bin/lua/function.lua
source/tolua/src/bin/lua/module.lua
source/tolua/src/bin/lua/namespace.lua
source/tolua/src/bin/lua/operator.lua
source/tolua/src/bin/lua/package.lua
source/tolua/src/bin/lua/typedef.lua
source/tolua/src/bin/lua/variable.lua
source/tolua/src/bin/lua/verbatim.lua
source/tolua/src/bin/tolua.c
source/tolua/src/bin/tolua.pkg
source/tolua/src/bin/toluabind.c
source/tolua/src/lib/Makefile
source/tolua/src/lib/tolua_event.c
source/tolua/src/lib/tolua_event.h
source/tolua/src/lib/tolua_is.c
source/tolua/src/lib/tolua_map.c
source/tolua/src/lib/tolua_push.c
source/tolua/src/lib/tolua_to.c
source/tolua/src/tests/.gdb_history
source/tolua/src/tests/Makefile
source/tolua/src/tests/myassert.lua
source/tolua/src/tests/tarray.c
source/tolua/src/tests/tarray.h
source/tolua/src/tests/tarray.lua
source/tolua/src/tests/tarray.pkg
source/tolua/src/tests/tclass.cpp
source/tolua/src/tests/tclass.h
source/tolua/src/tests/tclass.lua
source/tolua/src/tests/tclass.pkg
source/tolua/src/tests/tconstant.cpp
source/tolua/src/tests/tconstant.h
source/tolua/src/tests/tconstant.lua
source/tolua/src/tests/tconstant.pkg
source/tolua/src/tests/tdirective.lua
source/tolua/src/tests/tdirective.pkg
source/tolua/src/tests/tdirectivelua.lua
source/tolua/src/tests/tdirectivepkg.pkg
source/tolua/src/tests/tfunction.cpp
source/tolua/src/tests/tfunction.h
source/tolua/src/tests/tfunction.lua
source/tolua/src/tests/tfunction.pkg
source/tolua/src/tests/tinheritance.cpp
source/tolua/src/tests/tinheritance.h
source/tolua/src/tests/tinheritance.lua
source/tolua/src/tests/tinheritance.pkg
source/tolua/src/tests/tmodule.c
source/tolua/src/tests/tmodule.h
source/tolua/src/tests/tmodule.lua
source/tolua/src/tests/tmodule.pkg
source/tolua/src/tests/tnamespace.cpp
source/tolua/src/tests/tnamespace.h
source/tolua/src/tests/tnamespace.lua
source/tolua/src/tests/tnamespace.pkg
source/tolua/src/tests/tvariable.c
source/tolua/src/tests/tvariable.h
source/tolua/src/tests/tvariable.lua
source/tolua/src/tests/tvariable.pkg
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/source/tolua/INSTALL	Wed Nov 04 01:38:12 2009 +0000
     1.3 @@ -0,0 +1,31 @@
     1.4 +* Installation
     1.5 +
     1.6 +  Building tolua on a Unix system should be very easy:
     1.7 +
     1.8 +	1. Edit "config" to suit your platform, if at all necessary.
     1.9 +	2. Then, type "make".
    1.10 +
    1.11 +  See below for instructions for Windows and Macintosh.
    1.12 +
    1.13 +* What you get
    1.14 +
    1.15 +  If "make" succeeds, you get:
    1.16 +	* an executable to generate binding code in ./bin;
    1.17 +	* the C library to be linked in your application in ./lib;
    1.18 +	* the include file needed to compile your application in ./include.
    1.19 +  These are the only directories you need for development, besides Lua.
    1.20 +
    1.21 +  There is testing codes in src/tests and, if you are lucky, there is a manual page 
    1.22 +		in html in ./doc. You don't need these directories for development.
    1.23 +
    1.24 +* Installation on Windows or Macintosh
    1.25 +
    1.26 +  The instructions for building tolua on a Mac or Windows machine depend on
    1.27 +  the particular compiler you are using.
    1.28 +  The simplest way is to create a folder with all .c and .h files, and
    1.29 +  then create a project for the executable and the library, as follows:
    1.30 +
    1.31 +  tolua.exe: all *.c *.h in src/bin.
    1.32 +  tolua.lib: all *.c *.h in src/lib.
    1.33 +
    1.34 +		Under directory ./win32, there is a project for Visual C++ 6.
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/source/tolua/MANIFEST	Wed Nov 04 01:38:12 2009 +0000
     2.3 @@ -0,0 +1,88 @@
     2.4 +MANIFEST contents of tolua-5.1b distribution on Wed Dec 19 18:37:05 GST 2007
     2.5 +tolua-5.1b
     2.6 +tolua-5.1b/INSTALL
     2.7 +tolua-5.1b/MANIFEST
     2.8 +tolua-5.1b/Makefile
     2.9 +tolua-5.1b/README
    2.10 +tolua-5.1b/bin
    2.11 +tolua-5.1b/config
    2.12 +tolua-5.1b/include
    2.13 +tolua-5.1b/include/tolua.h
    2.14 +tolua-5.1b/lib
    2.15 +tolua-5.1b/src
    2.16 +tolua-5.1b/src/bin
    2.17 +tolua-5.1b/src/bin/Makefile
    2.18 +tolua-5.1b/src/bin/lua
    2.19 +tolua-5.1b/src/bin/lua/all.lua
    2.20 +tolua-5.1b/src/bin/lua/array.lua
    2.21 +tolua-5.1b/src/bin/lua/basic.lua
    2.22 +tolua-5.1b/src/bin/lua/class.lua
    2.23 +tolua-5.1b/src/bin/lua/clean.lua
    2.24 +tolua-5.1b/src/bin/lua/code.lua
    2.25 +tolua-5.1b/src/bin/lua/compat.lua
    2.26 +tolua-5.1b/src/bin/lua/container.lua
    2.27 +tolua-5.1b/src/bin/lua/declaration.lua
    2.28 +tolua-5.1b/src/bin/lua/define.lua
    2.29 +tolua-5.1b/src/bin/lua/doit.lua
    2.30 +tolua-5.1b/src/bin/lua/enumerate.lua
    2.31 +tolua-5.1b/src/bin/lua/feature.lua
    2.32 +tolua-5.1b/src/bin/lua/function.lua
    2.33 +tolua-5.1b/src/bin/lua/module.lua
    2.34 +tolua-5.1b/src/bin/lua/namespace.lua
    2.35 +tolua-5.1b/src/bin/lua/operator.lua
    2.36 +tolua-5.1b/src/bin/lua/package.lua
    2.37 +tolua-5.1b/src/bin/lua/typedef.lua
    2.38 +tolua-5.1b/src/bin/lua/variable.lua
    2.39 +tolua-5.1b/src/bin/lua/verbatim.lua
    2.40 +tolua-5.1b/src/bin/tolua.c
    2.41 +tolua-5.1b/src/bin/tolua.pkg
    2.42 +tolua-5.1b/src/bin/toluabind.c
    2.43 +tolua-5.1b/src/lib
    2.44 +tolua-5.1b/src/lib/Makefile
    2.45 +tolua-5.1b/src/lib/tolua_event.c
    2.46 +tolua-5.1b/src/lib/tolua_event.h
    2.47 +tolua-5.1b/src/lib/tolua_is.c
    2.48 +tolua-5.1b/src/lib/tolua_map.c
    2.49 +tolua-5.1b/src/lib/tolua_push.c
    2.50 +tolua-5.1b/src/lib/tolua_to.c
    2.51 +tolua-5.1b/src/tests
    2.52 +tolua-5.1b/src/tests/.gdb_history
    2.53 +tolua-5.1b/src/tests/Makefile
    2.54 +tolua-5.1b/src/tests/myassert.lua
    2.55 +tolua-5.1b/src/tests/tarray.c
    2.56 +tolua-5.1b/src/tests/tarray.h
    2.57 +tolua-5.1b/src/tests/tarray.lua
    2.58 +tolua-5.1b/src/tests/tarray.pkg
    2.59 +tolua-5.1b/src/tests/tclass.cpp
    2.60 +tolua-5.1b/src/tests/tclass.h
    2.61 +tolua-5.1b/src/tests/tclass.lua
    2.62 +tolua-5.1b/src/tests/tclass.pkg
    2.63 +tolua-5.1b/src/tests/tconstant.cpp
    2.64 +tolua-5.1b/src/tests/tconstant.h
    2.65 +tolua-5.1b/src/tests/tconstant.lua
    2.66 +tolua-5.1b/src/tests/tconstant.pkg
    2.67 +tolua-5.1b/src/tests/tdirective.lua
    2.68 +tolua-5.1b/src/tests/tdirective.pkg
    2.69 +tolua-5.1b/src/tests/tdirectivelua.lua
    2.70 +tolua-5.1b/src/tests/tdirectivepkg.pkg
    2.71 +tolua-5.1b/src/tests/tfunction.cpp
    2.72 +tolua-5.1b/src/tests/tfunction.h
    2.73 +tolua-5.1b/src/tests/tfunction.lua
    2.74 +tolua-5.1b/src/tests/tfunction.pkg
    2.75 +tolua-5.1b/src/tests/tinheritance.cpp
    2.76 +tolua-5.1b/src/tests/tinheritance.h
    2.77 +tolua-5.1b/src/tests/tinheritance.lua
    2.78 +tolua-5.1b/src/tests/tinheritance.pkg
    2.79 +tolua-5.1b/src/tests/tmodule.c
    2.80 +tolua-5.1b/src/tests/tmodule.h
    2.81 +tolua-5.1b/src/tests/tmodule.lua
    2.82 +tolua-5.1b/src/tests/tmodule.pkg
    2.83 +tolua-5.1b/src/tests/tnamespace.cpp
    2.84 +tolua-5.1b/src/tests/tnamespace.h
    2.85 +tolua-5.1b/src/tests/tnamespace.lua
    2.86 +tolua-5.1b/src/tests/tnamespace.pkg
    2.87 +tolua-5.1b/src/tests/tvariable.c
    2.88 +tolua-5.1b/src/tests/tvariable.h
    2.89 +tolua-5.1b/src/tests/tvariable.lua
    2.90 +tolua-5.1b/src/tests/tvariable.pkg
    2.91 +END OF MANIFEST
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/source/tolua/Makefile	Wed Nov 04 01:38:12 2009 +0000
     3.3 @@ -0,0 +1,17 @@
     3.4 +# makefile for tolua hierarchy
     3.5 +
     3.6 +tolua:
     3.7 +	cd src/lib; make all
     3.8 +	cd src/bin; make all
     3.9 +
    3.10 +tests:
    3.11 +	cd src/tests; make all
    3.12 +
    3.13 +all clean klean:
    3.14 +	cd src/lib; make $@
    3.15 +	cd src/bin; make $@
    3.16 +	cd src/tests; make $@
    3.17 +
    3.18 +debug:
    3.19 +	cd src/bin; make all
    3.20 +
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/source/tolua/README	Wed Nov 04 01:38:12 2009 +0000
     4.3 @@ -0,0 +1,27 @@
     4.4 +This is  tolua-5.1b
     4.5 +
     4.6 +* What is tolua?
     4.7 +  tolua is a tool that greatly simplifies the integration of C/C++ code 
     4.8 +  with Lua. Based on a "cleaned" header file, tolua automatically generates 
     4.9 +  the binding code to access C/C++ features from Lua. Using Lua API and
    4.10 +  tag method facilities, the current version automatically maps C/C++ 
    4.11 +  constants, external variables, functions, namespace, classes, and methods 
    4.12 +		to Lua. It also provides facilities to create Lua modules.
    4.13 +
    4.14 +* Availability
    4.15 +  tolua is freely available; you can redistribute it and/or modify it.
    4.16 +  The software provided hereunder is on an "as is" basis, and
    4.17 +  the author has no obligation to provide maintenance, support, 
    4.18 +  updates, enhancements, or modifications.
    4.19 +
    4.20 +  tolua can be downloaded from the sites below:
    4.21 +            http://www.tecgraf.puc-rio.br/~celes/tolua/
    4.22 +            ftp://ftp.tecgraf.puc-rio.br/pub/users/celes/tolua/tolua.tar.gz
    4.23 +
    4.24 +* Installation
    4.25 +  See INSTALL.
    4.26 +
    4.27 +* Contacting the author
    4.28 +  tolua has been designed and implemented by Waldemar Celes.
    4.29 +  Send your comments, bug reports and anything else to 
    4.30 +  celes@tecgraf.puc-rio.br.
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/source/tolua/config	Wed Nov 04 01:38:12 2009 +0000
     5.3 @@ -0,0 +1,34 @@
     5.4 +# configuration file for making tolua
     5.5 +
     5.6 +# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT ======================
     5.7 +
     5.8 +# you need an ANSI C compiler. gcc is a popular one.
     5.9 +CC= gcc
    5.10 +CCPP = g++
    5.11 +WARN= -ansi -Wall -g
    5.12 +
    5.13 +# on SGI's, cc is ANSI.
    5.14 +#CC= cc
    5.15 +#WARN= -ansi -fullwarn
    5.16 +
    5.17 +# if your system doesn't have (or need) ranlib, change "ranlib" to "true".
    5.18 +# on some systems, "ar s" does it.
    5.19 +RANLIB= ranlib
    5.20 +#RANLIB= ar s
    5.21 +#RANLIB= true
    5.22 +
    5.23 +# this should work in all unix systems.
    5.24 +AR= ar rcu
    5.25 +
    5.26 +# set lua path
    5.27 +LUA=/usr/local
    5.28 +LUAINC=$(LUA)/include
    5.29 +LUALIB=$(LUA)/lib
    5.30 +
    5.31 +# == END OF USER SETTINGS. DO NOT CHANGE ANYTHING BELOW THIS LINE ============
    5.32 +
    5.33 +INC= -I$(TOLUA)/include -I$(LUAINC) 
    5.34 +LIB= -L$(TOLUA)/lib -L$(LUALIB)
    5.35 +
    5.36 +CFLAGS= -O2 $(WARN) $(INC)
    5.37 +CPPFLAGS=  -O2 $(WARN) $(INC)
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/source/tolua/include/tolua.h	Wed Nov 04 01:38:12 2009 +0000
     6.3 @@ -0,0 +1,115 @@
     6.4 +/* tolua
     6.5 +** Support code for Lua bindings.
     6.6 +** Written by Waldemar Celes
     6.7 +** TeCGraf/PUC-Rio
     6.8 +** Apr 2003
     6.9 +** $Id: $
    6.10 +*/
    6.11 +
    6.12 +/* This code is free software; you can redistribute it and/or modify it. 
    6.13 +** The software provided hereunder is on an "as is" basis, and 
    6.14 +** the author has no obligation to provide maintenance, support, updates,
    6.15 +** enhancements, or modifications. 
    6.16 +*/
    6.17 +
    6.18 +
    6.19 +#ifndef TOLUA_H
    6.20 +#define TOLUA_H
    6.21 +
    6.22 +#ifndef TOLUA_API
    6.23 +#define TOLUA_API extern
    6.24 +#endif
    6.25 +
    6.26 +#define TOLUA_VERSION "tolua 5.1b"
    6.27 +
    6.28 +#ifdef __cplusplus
    6.29 +extern "C" {
    6.30 +#endif
    6.31 +
    6.32 +#include "lua.h"
    6.33 +#include "lauxlib.h"
    6.34 +
    6.35 +struct tolua_Error
    6.36 +{
    6.37 +	int index;
    6.38 +	int array;
    6.39 +	const char* type;
    6.40 +};
    6.41 +typedef struct tolua_Error tolua_Error;
    6.42 +
    6.43 +
    6.44 +TOLUA_API const char* tolua_typename (lua_State* L, int lo);
    6.45 +TOLUA_API void tolua_error (lua_State* L, char* msg, tolua_Error* err);
    6.46 +TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err);
    6.47 +TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err);
    6.48 +TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err);
    6.49 +TOLUA_API int tolua_isnumber (lua_State* L, int lo, int def, tolua_Error* err);
    6.50 +TOLUA_API int tolua_isstring (lua_State* L, int lo, int def, tolua_Error* err);
    6.51 +TOLUA_API int tolua_istable (lua_State* L, int lo, int def, tolua_Error* err);
    6.52 +TOLUA_API int tolua_isfunction (lua_State* L, int lo, int def, tolua_Error* err);
    6.53 +TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err);
    6.54 +TOLUA_API int tolua_isuserdata (lua_State* L, int lo, int def, tolua_Error* err);
    6.55 +TOLUA_API int tolua_isusertype (lua_State* L, int lo, const char* type, int def, tolua_Error* err);
    6.56 +TOLUA_API int tolua_isvaluearray 
    6.57 + (lua_State* L, int lo, int dim, int def, tolua_Error* err);
    6.58 +TOLUA_API int tolua_isbooleanarray 
    6.59 + (lua_State* L, int lo, int dim, int def, tolua_Error* err);
    6.60 +TOLUA_API int tolua_isnumberarray 
    6.61 + (lua_State* L, int lo, int dim, int def, tolua_Error* err);
    6.62 +TOLUA_API int tolua_isstringarray 
    6.63 + (lua_State* L, int lo, int dim, int def, tolua_Error* err);
    6.64 +TOLUA_API int tolua_istablearray 
    6.65 + (lua_State* L, int lo, int dim, int def, tolua_Error* err);
    6.66 +TOLUA_API int tolua_isuserdataarray 
    6.67 + (lua_State* L, int lo, int dim, int def, tolua_Error* err);
    6.68 +TOLUA_API int tolua_isusertypearray 
    6.69 + (lua_State* L, int lo, char* type, int dim, int def, tolua_Error* err);
    6.70 +
    6.71 +TOLUA_API void tolua_open (lua_State* L);
    6.72 +
    6.73 +TOLUA_API void* tolua_copy (lua_State* L, void* value, unsigned int size);
    6.74 +TOLUA_API void* tolua_clone (lua_State* L, void* value, lua_CFunction func);
    6.75 +
    6.76 +TOLUA_API void tolua_usertype (lua_State* L, char* type);
    6.77 +TOLUA_API void tolua_beginmodule (lua_State* L, char* name);
    6.78 +TOLUA_API void tolua_endmodule (lua_State* L);
    6.79 +TOLUA_API void tolua_module (lua_State* L, char* name, int hasvar);
    6.80 +TOLUA_API void tolua_class (lua_State* L, char* name, char* base);
    6.81 +TOLUA_API void tolua_cclass (lua_State* L, char* lname, char* name, char* base, lua_CFunction col);
    6.82 +TOLUA_API void tolua_function (lua_State* L, char* name, lua_CFunction func);
    6.83 +TOLUA_API void tolua_constant (lua_State* L, char* name, double value);
    6.84 +TOLUA_API void tolua_variable (lua_State* L, char* name, lua_CFunction get, lua_CFunction set);
    6.85 +TOLUA_API void tolua_array (lua_State* L,char* name, lua_CFunction get, lua_CFunction set);
    6.86 +
    6.87 +
    6.88 +TOLUA_API void tolua_pushvalue (lua_State* L, int lo);
    6.89 +TOLUA_API void tolua_pushboolean (lua_State* L, int value);
    6.90 +TOLUA_API void tolua_pushnumber (lua_State* L, double value);
    6.91 +TOLUA_API void tolua_pushstring (lua_State* L, const char* value);
    6.92 +TOLUA_API void tolua_pushuserdata (lua_State* L, void* value);
    6.93 +TOLUA_API void tolua_pushusertype (lua_State* L, void* value, char* type);
    6.94 +TOLUA_API void tolua_pushfieldvalue (lua_State* L, int lo, int index, int v);
    6.95 +TOLUA_API void tolua_pushfieldboolean (lua_State* L, int lo, int index, int v);
    6.96 +TOLUA_API void tolua_pushfieldnumber (lua_State* L, int lo, int index, double v);
    6.97 +TOLUA_API void tolua_pushfieldstring (lua_State* L, int lo, int index, char* v);
    6.98 +TOLUA_API void tolua_pushfielduserdata (lua_State* L, int lo, int index, void* v);
    6.99 +TOLUA_API void tolua_pushfieldusertype (lua_State* L, int lo, int index, void* v, char* type);
   6.100 +
   6.101 +TOLUA_API double tolua_tonumber (lua_State* L, int narg, double def);
   6.102 +TOLUA_API const char* tolua_tostring (lua_State* L, int narg, const char* def);
   6.103 +TOLUA_API void* tolua_touserdata (lua_State* L, int narg, void* def);
   6.104 +TOLUA_API void* tolua_tousertype (lua_State* L, int narg, void* def);
   6.105 +TOLUA_API int tolua_tovalue (lua_State* L, int narg, int def);
   6.106 +TOLUA_API int tolua_toboolean (lua_State* L, int narg, int def);
   6.107 +TOLUA_API double tolua_tofieldnumber (lua_State* L, int lo, int index, double def);
   6.108 +TOLUA_API const char* tolua_tofieldstring (lua_State* L, int lo, int index, const char* def);
   6.109 +TOLUA_API void* tolua_tofielduserdata (lua_State* L, int lo, int index, void* def);
   6.110 +TOLUA_API void* tolua_tofieldusertype (lua_State* L, int lo, int index, void* def);
   6.111 +TOLUA_API int tolua_tofieldvalue (lua_State* L, int lo, int index, int def);
   6.112 +TOLUA_API int tolua_getfieldboolean (lua_State* L, int lo, int index, int def);
   6.113 +
   6.114 +#ifdef __cplusplus
   6.115 +}
   6.116 +#endif
   6.117 +
   6.118 +#endif
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/source/tolua/src/bin/Makefile	Wed Nov 04 01:38:12 2009 +0000
     7.3 @@ -0,0 +1,23 @@
     7.4 +# makefile for tolua executable
     7.5 +
     7.6 +TOLUA=../..
     7.7 +
     7.8 +include $(TOLUA)/config
     7.9 +
    7.10 +OBJS=	\
    7.11 +	tolua.o \
    7.12 +	toluabind.o
    7.13 +
    7.14 +T= $(TOLUA)/bin/tolua
    7.15 +
    7.16 +all: $T
    7.17 +
    7.18 +$T: $(OBJS)
    7.19 +	$(CC) -o $@ $(OBJS) $(LIB) -ltolua -llua -lm
    7.20 +
    7.21 +clean:
    7.22 +	rm -f $(OBJS) $T
    7.23 +
    7.24 +klean:
    7.25 +	rm -f $T
    7.26 +
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/source/tolua/src/bin/lua/all.lua	Wed Nov 04 01:38:12 2009 +0000
     8.3 @@ -0,0 +1,26 @@
     8.4 +dofile(path.."compat.lua")
     8.5 +dofile(path.."basic.lua")
     8.6 +dofile(path.."feature.lua")
     8.7 +dofile(path.."verbatim.lua")
     8.8 +dofile(path.."code.lua")
     8.9 +dofile(path.."typedef.lua")
    8.10 +dofile(path.."container.lua")
    8.11 +dofile(path.."package.lua")
    8.12 +dofile(path.."module.lua")
    8.13 +dofile(path.."namespace.lua")
    8.14 +dofile(path.."define.lua")
    8.15 +dofile(path.."enumerate.lua")
    8.16 +dofile(path.."declaration.lua")
    8.17 +dofile(path.."variable.lua")
    8.18 +dofile(path.."array.lua")
    8.19 +dofile(path.."function.lua")
    8.20 +dofile(path.."operator.lua")
    8.21 +dofile(path.."class.lua")
    8.22 +dofile(path.."clean.lua")
    8.23 +dofile(path.."doit.lua")
    8.24 +
    8.25 +local err,msg = pcall(doit)
    8.26 +if not err then
    8.27 + local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)")
    8.28 + tolua_error(msg,label)
    8.29 +end
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/source/tolua/src/bin/lua/array.lua	Wed Nov 04 01:38:12 2009 +0000
     9.3 @@ -0,0 +1,204 @@
     9.4 +-- tolua: array class
     9.5 +-- Written by Waldemar Celes
     9.6 +-- TeCGraf/PUC-Rio
     9.7 +-- Jul 1999
     9.8 +-- $Id: array.lua,v 1.1 2000/11/06 22:03:57 celes Exp $
     9.9 +
    9.10 +-- This code is free software; you can redistribute it and/or modify it.
    9.11 +-- The software provided hereunder is on an "as is" basis, and
    9.12 +-- the author has no obligation to provide maintenance, support, updates,
    9.13 +-- enhancements, or modifications. 
    9.14 +
    9.15 +
    9.16 +-- Array class
    9.17 +-- Represents a extern array variable or a public member of a class.
    9.18 +-- Stores all fields present in a declaration.
    9.19 +classArray = {
    9.20 +}
    9.21 +classArray.__index = classArray
    9.22 +setmetatable(classArray,classDeclaration)
    9.23 +
    9.24 +-- Print method
    9.25 +function classArray:print (ident,close)
    9.26 + print(ident.."Array{")
    9.27 + print(ident.." mod  = '"..self.mod.."',")
    9.28 + print(ident.." type = '"..self.type.."',")
    9.29 + print(ident.." ptr  = '"..self.ptr.."',")
    9.30 + print(ident.." name = '"..self.name.."',")
    9.31 + print(ident.." def  = '"..self.def.."',")
    9.32 + print(ident.." dim  = '"..self.dim.."',")
    9.33 + print(ident.." ret  = '"..self.ret.."',")
    9.34 + print(ident.."}"..close)
    9.35 +end
    9.36 +
    9.37 +-- check if it is a variable
    9.38 +function classArray:isvariable ()
    9.39 + return true
    9.40 +end
    9.41 +
    9.42 +
    9.43 +-- get variable value
    9.44 +function classArray:getvalue (class,static)
    9.45 + if class and static then
    9.46 +  return class..'::'..self.name..'[tolua_index]'
    9.47 + elseif class then
    9.48 +  return 'self->'..self.name..'[tolua_index]'
    9.49 + else
    9.50 +  return self.name..'[tolua_index]'
    9.51 + end
    9.52 +end
    9.53 +
    9.54 +-- Write binding functions
    9.55 +function classArray:supcode ()
    9.56 + local class = self:inclass()
    9.57 +
    9.58 + -- get function ------------------------------------------------
    9.59 + if class then
    9.60 +  output("/* get function:",self.name," of class ",class," */")
    9.61 + else
    9.62 +  output("/* get function:",self.name," */")
    9.63 + end
    9.64 + self.cgetname = self:cfuncname("tolua_get")
    9.65 + output("static int",self.cgetname,"(lua_State* tolua_S)") 
    9.66 + output("{")
    9.67 + output(" int tolua_index;")
    9.68 +
    9.69 + -- declare self, if the case
    9.70 + local _,_,static = strfind(self.mod,'^%s*(static)')
    9.71 + if class and static==nil then
    9.72 +  output(' ',self.parent.type,'*','self;')
    9.73 +  output(' lua_pushstring(tolua_S,".self");')
    9.74 +  output(' lua_rawget(tolua_S,1);')
    9.75 +  output(' self = ')
    9.76 +  output('(',class,'*) ')
    9.77 +  output('lua_touserdata(tolua_S,-1);')
    9.78 + elseif static then
    9.79 +  _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
    9.80 + end
    9.81 +
    9.82 + -- check index
    9.83 +	output('#ifndef TOLUA_RELEASE\n')
    9.84 +	output(' {')
    9.85 +	output('  tolua_Error tolua_err;')
    9.86 + output('  if (!tolua_isnumber(tolua_S,2,0,&tolua_err))')
    9.87 + output('   tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);')
    9.88 +	output(' }')
    9.89 +	output('#endif\n')
    9.90 + output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;')
    9.91 +	output('#ifndef TOLUA_RELEASE\n')
    9.92 + output(' if (tolua_index<0 || tolua_index>='..self.dim..')')
    9.93 + output('  tolua_error(tolua_S,"array indexing out of range.",NULL);')
    9.94 +	output('#endif\n')
    9.95 +
    9.96 + -- return value
    9.97 + local t,ct = isbasic(self.type)
    9.98 + if t then
    9.99 +  output(' tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static)..');')
   9.100 + else
   9.101 +		t = self.type
   9.102 +  if self.ptr == '&' or self.ptr == '' then
   9.103 +   output(' tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");')
   9.104 +  else
   9.105 +   output(' tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");')
   9.106 +  end
   9.107 + end
   9.108 + output(' return 1;')
   9.109 + output('}')
   9.110 + output('\n')
   9.111 +
   9.112 + -- set function ------------------------------------------------
   9.113 + if not strfind(self.type,'const') then
   9.114 +  if class then
   9.115 +   output("/* set function:",self.name," of class ",class," */")
   9.116 +  else
   9.117 +   output("/* set function:",self.name," */")
   9.118 +  end
   9.119 +  self.csetname = self:cfuncname("tolua_set")
   9.120 +  output("static int",self.csetname,"(lua_State* tolua_S)")
   9.121 +  output("{")
   9.122 +
   9.123 +  -- declare index
   9.124 +  output(' int tolua_index;')
   9.125 +
   9.126 +  -- declare self, if the case
   9.127 +  local _,_,static = strfind(self.mod,'^%s*(static)')
   9.128 +  if class and static==nil then
   9.129 +   output(' ',class,'*','self;')
   9.130 +   output(' lua_pushstring(tolua_S,".self");')
   9.131 +   output(' lua_rawget(tolua_S,1);')
   9.132 +   output(' self = ')
   9.133 +   output('(',class,'*) ')
   9.134 +   output('lua_touserdata(tolua_S,-1);')
   9.135 +  elseif static then
   9.136 +   _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
   9.137 +  end
   9.138 + 
   9.139 +  -- check index
   9.140 +	 output('#ifndef TOLUA_RELEASE\n')
   9.141 +	 output(' {')
   9.142 +	 output('  tolua_Error tolua_err;')
   9.143 +  output('  if (!tolua_isnumber(tolua_S,2,0,&tolua_err))')
   9.144 +  output('   tolua_error(tolua_S,"#vinvalid type in array indexing.",&tolua_err);')
   9.145 +		output(' }')
   9.146 +		output('#endif\n')
   9.147 +  output(' tolua_index = (int)tolua_tonumber(tolua_S,2,0)-1;')
   9.148 +	 output('#ifndef TOLUA_RELEASE\n')
   9.149 +  output(' if (tolua_index<0 || tolua_index>='..self.dim..')')
   9.150 +  output('  tolua_error(tolua_S,"array indexing out of range.",NULL);')
   9.151 +		output('#endif\n')
   9.152 +
   9.153 +  -- assign value
   9.154 +  local ptr = ''
   9.155 +  if self.ptr~='' then ptr = '*' end
   9.156 +  output(' ')
   9.157 +  if class and static then
   9.158 +   output(class..'::'..self.name..'[tolua_index]')
   9.159 +  elseif class then
   9.160 +   output('self->'..self.name..'[tolua_index]')
   9.161 +  else
   9.162 +   output(self.name..'[tolua_index]')
   9.163 +  end
   9.164 +  local t = isbasic(self.type)
   9.165 +  output(' = ')
   9.166 +  if not t and ptr=='' then output('*') end
   9.167 +  output('((',self.mod,self.type)
   9.168 +  if not t then
   9.169 +   output('*')
   9.170 +  end
   9.171 +  output(') ')
   9.172 +  local def = 0
   9.173 +  if self.def ~= '' then def = self.def end
   9.174 +  if t then
   9.175 +   output('tolua_to'..t,'(tolua_S,3,',def,'));')
   9.176 +  else
   9.177 +   output('tolua_tousertype(tolua_S,3,',def,'));')
   9.178 +  end
   9.179 +  output(' return 0;')
   9.180 +  output('}')
   9.181 +  output('\n')
   9.182 + end 
   9.183 +
   9.184 +end
   9.185 +
   9.186 +function classArray:register ()
   9.187 + if self.csetname then
   9.188 +  output(' tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');')
   9.189 + else
   9.190 +  output(' tolua_array(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);')
   9.191 + end
   9.192 +end
   9.193 +
   9.194 +-- Internal constructor
   9.195 +function _Array (t)
   9.196 + setmetatable(t,classArray)
   9.197 + append(t)
   9.198 + return t
   9.199 +end
   9.200 +
   9.201 +-- Constructor
   9.202 +-- Expects a string representing the variable declaration.
   9.203 +function Array (s)
   9.204 + return _Array (Declaration(s,'var'))
   9.205 +end
   9.206 +
   9.207 +
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/source/tolua/src/bin/lua/basic.lua	Wed Nov 04 01:38:12 2009 +0000
    10.3 @@ -0,0 +1,202 @@
    10.4 +-- tolua: basic utility functions
    10.5 +-- Written by Waldemar Celes
    10.6 +-- TeCGraf/PUC-Rio
    10.7 +-- Jul 1998
    10.8 +-- Last update: Apr 2003
    10.9 +-- $Id: $
   10.10 +
   10.11 +-- This code is free software; you can redistribute it and/or modify it.
   10.12 +-- The software provided hereunder is on an "as is" basis, and
   10.13 +-- the author has no obligation to provide maintenance, support, updates,
   10.14 +-- enhancements, or modifications.
   10.15 +
   10.16 +
   10.17 +-- Basic C types and their corresponding Lua types
   10.18 +-- All occurrences of "char*" will be replaced by "_cstring",
   10.19 +-- and all occurrences of "void*" will be replaced by "_userdata" 
   10.20 +_basic = {
   10.21 + ['void'] = '',
   10.22 + ['char'] = 'number',
   10.23 + ['int'] = 'number',
   10.24 + ['short'] = 'number',
   10.25 + ['long'] = 'number',
   10.26 + ['unsigned'] = 'number',
   10.27 + ['float'] = 'number',
   10.28 + ['double'] = 'number',
   10.29 + ['_cstring'] = 'string',
   10.30 + ['_userdata'] = 'userdata',
   10.31 + ['char*'] = 'string',
   10.32 + ['void*'] = 'userdata',
   10.33 + ['bool'] = 'boolean',
   10.34 + ['lua_Object'] = 'value',
   10.35 + ['LUA_VALUE'] = 'value',    -- for compatibility with tolua 4.0
   10.36 +}
   10.37 +
   10.38 +_basic_ctype = {
   10.39 + number = "double",
   10.40 + string = "const char*",
   10.41 + userdata = "void*",
   10.42 + boolean = "bool",
   10.43 +}
   10.44 +
   10.45 +-- List of user defined types
   10.46 +-- Each type corresponds to a variable name that stores its tag value.
   10.47 +_usertype = {}
   10.48 +
   10.49 +-- List of types that have to be collected
   10.50 +_collect = {}
   10.51 +
   10.52 +
   10.53 +-- List of auto renaming
   10.54 +_renaming = {}
   10.55 +function appendrenaming (s)
   10.56 + local b,e,old,new = strfind(s,"%s*(.-)%s*@%s*(.-)%s*$")
   10.57 +	if not b then
   10.58 +	 error("#Invalid renaming syntax; it should be of the form: pattern@pattern")
   10.59 +	end
   10.60 +	tinsert(_renaming,{old=old, new=new})
   10.61 +end
   10.62 +
   10.63 +function applyrenaming (s)
   10.64 +	for i=1,getn(_renaming) do
   10.65 +	 local m,n = gsub(s,_renaming[i].old,_renaming[i].new)
   10.66 +		if n ~= 0 then
   10.67 +		 return m
   10.68 +		end
   10.69 +	end
   10.70 +	return nil
   10.71 +end
   10.72 +
   10.73 +-- Error handler
   10.74 +function tolua_error (s,f)
   10.75 + local out = _OUTPUT
   10.76 + _OUTPUT = _STDERR
   10.77 + if strsub(s,1,1) == '#' then
   10.78 +  write("\n** tolua: "..strsub(s,2)..".\n\n")
   10.79 +  if _curr_code then
   10.80 +   local _,_,s = strfind(_curr_code,"^%s*(.-\n)") -- extract first line
   10.81 +   if s==nil then s = _curr_code end
   10.82 +   s = gsub(s,"_userdata","void*") -- return with 'void*'
   10.83 +   s = gsub(s,"_cstring","char*")  -- return with 'char*'
   10.84 +   write("Code being processed:\n"..s.."\n")
   10.85 +  end
   10.86 + else
   10.87 +  print("\n** tolua internal error: "..f..s..".\n\n")
   10.88 +  return
   10.89 + end
   10.90 + _OUTPUT = out
   10.91 +end
   10.92 +
   10.93 +function warning (msg)
   10.94 + local out = _OUTPUT
   10.95 + _OUTPUT = _STDERR
   10.96 + write("\n** tolua warning: "..msg..".\n\n")
   10.97 + _OUTPUT = out
   10.98 +end
   10.99 +
  10.100 +-- register an user defined type: returns full type
  10.101 +function regtype (t)
  10.102 + local ft = findtype(t)
  10.103 +	if isbasic(t) then
  10.104 +	 return t
  10.105 +	end
  10.106 + if not ft then
  10.107 +		return appendusertype(t)
  10.108 + end
  10.109 +end
  10.110 +
  10.111 +-- return type name: returns full type
  10.112 +function typevar(type)
  10.113 + if type == '' or type == 'void' then
  10.114 +  return type
  10.115 + else
  10.116 +		local ft = findtype(type)
  10.117 +  if ft then
  10.118 +   return ft
  10.119 +  end
  10.120 +		_usertype[type] = type
  10.121 +		return type
  10.122 +	end
  10.123 +end
  10.124 +
  10.125 +-- check if basic type
  10.126 +function isbasic (type)
  10.127 + local t = gsub(type,'const ','')
  10.128 + local m,t = applytypedef(t)
  10.129 + local b = _basic[t]
  10.130 + if b then
  10.131 +  return b,_basic_ctype[b]
  10.132 + end
  10.133 + return nil
  10.134 +end
  10.135 +
  10.136 +-- split string using a token
  10.137 +function split (s,t)
  10.138 + local l = {n=0}
  10.139 + local f = function (s)
  10.140 +  l.n = l.n + 1
  10.141 +  l[l.n] = s
  10.142 +  return ""
  10.143 + end
  10.144 + local p = "%s*(.-)%s*"..t.."%s*"
  10.145 + s = gsub(s,"^%s+","")
  10.146 + s = gsub(s,"%s+$","")
  10.147 + s = gsub(s,p,f)
  10.148 + l.n = l.n + 1
  10.149 + l[l.n] = gsub(s,"(%s%s*)$","")
  10.150 + return l
  10.151 +end
  10.152 +
  10.153 +
  10.154 +-- concatenate strings of a table
  10.155 +function concat (t,f,l)
  10.156 + local s = ''
  10.157 + local i=f
  10.158 + while i<=l do
  10.159 +  s = s..t[i]
  10.160 +  i = i+1
  10.161 +  if i <= l then s = s..' ' end
  10.162 + end
  10.163 + return s
  10.164 +end
  10.165 +
  10.166 +-- concatenate all parameters, following output rules
  10.167 +function concatparam (line, ...)
  10.168 + local i=1
  10.169 + while i<=arg.n do
  10.170 +  if _cont and not strfind(_cont,'[%(,"]') and 
  10.171 +     strfind(arg[i],"^[%a_~]") then 
  10.172 +	    line = line .. ' ' 
  10.173 +  end
  10.174 +  line = line .. arg[i]
  10.175 +  if arg[i] ~= '' then
  10.176 +   _cont = strsub(arg[i],-1,-1)
  10.177 +  end
  10.178 +  i = i+1
  10.179 + end
  10.180 + if strfind(arg[arg.n],"[%/%)%;%{%}]$") then 
  10.181 +  _cont=nil line = line .. '\n'
  10.182 + end
  10.183 +	return line
  10.184 +end
  10.185 +
  10.186 +-- output line
  10.187 +function output (...)
  10.188 + local i=1
  10.189 + while i<=arg.n do
  10.190 +  if _cont and not strfind(_cont,'[%(,"]') and 
  10.191 +     strfind(arg[i],"^[%a_~]") then 
  10.192 +	    write(' ') 
  10.193 +  end
  10.194 +  write(arg[i])
  10.195 +  if arg[i] ~= '' then
  10.196 +   _cont = strsub(arg[i],-1,-1)
  10.197 +  end
  10.198 +  i = i+1
  10.199 + end
  10.200 + if strfind(arg[arg.n],"[%/%)%;%{%}]$") then 
  10.201 +  _cont=nil write('\n')
  10.202 + end
  10.203 +end
  10.204 +
  10.205 +
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/source/tolua/src/bin/lua/class.lua	Wed Nov 04 01:38:12 2009 +0000
    11.3 @@ -0,0 +1,116 @@
    11.4 +-- tolua: class class
    11.5 +-- Written by Waldemar Celes
    11.6 +-- TeCGraf/PUC-Rio
    11.7 +-- Jul 1998
    11.8 +-- $Id: $
    11.9 +
   11.10 +-- This code is free software; you can redistribute it and/or modify it.
   11.11 +-- The software provided hereunder is on an "as is" basis, and
   11.12 +-- the author has no obligation to provide maintenance, support, updates,
   11.13 +-- enhancements, or modifications.
   11.14 +
   11.15 +
   11.16 +-- Class class
   11.17 +-- Represents a class definition.
   11.18 +-- Stores the following fields:
   11.19 +--    name = class name
   11.20 +--    base = class base, if any (only single inheritance is supported)
   11.21 +--    {i}  = list of members
   11.22 +classClass = {
   11.23 + classtype = 'class',
   11.24 + name = '',
   11.25 + base = '',
   11.26 +	type = '',
   11.27 + btype = '',
   11.28 +	ctype = '',
   11.29 +}
   11.30 +classClass.__index = classClass
   11.31 +setmetatable(classClass,classContainer)
   11.32 +
   11.33 +
   11.34 +-- register class
   11.35 +function classClass:register ()
   11.36 + push(self)
   11.37 + output('#ifdef __cplusplus\n')
   11.38 + if _collect[self.type] then
   11.39 +   output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",tolua_collect_'.._collect[self.type]..');')
   11.40 + else
   11.41 +   output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",0);')
   11.42 + end
   11.43 +	output('#else\n')
   11.44 + output(' tolua_cclass(tolua_S,"'..self.lname..'","'..self.type..'","'..self.btype..'",tolua_collect);')
   11.45 +	output('#endif\n')
   11.46 +	output(' tolua_beginmodule(tolua_S,"'..self.lname..'");')
   11.47 + local i=1
   11.48 + while self[i] do
   11.49 +  self[i]:register()
   11.50 +  i = i+1
   11.51 + end
   11.52 +	output(' tolua_endmodule(tolua_S);')
   11.53 +	pop()
   11.54 +end
   11.55 +
   11.56 +-- return collection requirement
   11.57 +function classClass:requirecollection (t)
   11.58 + push(self)
   11.59 + local i=1
   11.60 + while self[i] do
   11.61 +  self[i]:requirecollection(t)
   11.62 +  i = i+1
   11.63 + end
   11.64 + pop()
   11.65 +  -- TODO
   11.66 + --t[self.type] = gsub(self.type,"::","_")
   11.67 + return true
   11.68 +end
   11.69 +
   11.70 +-- output tags
   11.71 +function classClass:decltype ()
   11.72 + push(self)
   11.73 +	self.type = regtype(self.name)
   11.74 +	self.btype = typevar(self.base)
   11.75 +	self.ctype = 'const '..self.type
   11.76 + local i=1
   11.77 + while self[i] do
   11.78 +  self[i]:decltype()
   11.79 +  i = i+1
   11.80 + end
   11.81 +	pop()
   11.82 +end
   11.83 +
   11.84 +
   11.85 +-- Print method
   11.86 +function classClass:print (ident,close)
   11.87 + print(ident.."Class{")
   11.88 + print(ident.." name = '"..self.name.."',")
   11.89 + print(ident.." base = '"..self.base.."';")
   11.90 + print(ident.." lname = '"..self.lname.."',")
   11.91 + print(ident.." type = '"..self.type.."',")
   11.92 + print(ident.." btype = '"..self.btype.."',")
   11.93 + print(ident.." ctype = '"..self.ctype.."',")
   11.94 + local i=1
   11.95 + while self[i] do
   11.96 +  self[i]:print(ident.." ",",")
   11.97 +  i = i+1
   11.98 + end
   11.99 + print(ident.."}"..close)
  11.100 +end
  11.101 +
  11.102 +-- Internal constructor
  11.103 +function _Class (t)
  11.104 + setmetatable(t,classClass)
  11.105 + t:buildnames()
  11.106 + append(t)
  11.107 + return t
  11.108 +end
  11.109 +
  11.110 +-- Constructor
  11.111 +-- Expects the name, the base and the body of the class.
  11.112 +function Class (n,p,b)
  11.113 + local c = _Class(_Container{name=n, base=p})
  11.114 + push(c)
  11.115 + c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces
  11.116 + pop()
  11.117 +end
  11.118 +
  11.119 +
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/source/tolua/src/bin/lua/clean.lua	Wed Nov 04 01:38:12 2009 +0000
    12.3 @@ -0,0 +1,74 @@
    12.4 +-- mark up comments and strings
    12.5 +STR1 = "\001"
    12.6 +STR2 = "\002"
    12.7 +STR3 = "\003"
    12.8 +STR4 = "\004"
    12.9 +REM  = "\005"
   12.10 +ANY  = "([\001-\005])"
   12.11 +ESC1 = "\006"
   12.12 +ESC2 = "\007"
   12.13 +
   12.14 +MASK = { -- the substitution order is important
   12.15 + {ESC1, "\\'"},
   12.16 + {ESC2, '\\"'},
   12.17 + {STR1, "'"},
   12.18 + {STR2, '"'},
   12.19 + {STR3, "%[%["},
   12.20 + {STR4, "%]%]"},
   12.21 + {REM , "%-%-"},
   12.22 +}
   12.23 +
   12.24 +function mask (s)
   12.25 + for i = 1,getn(MASK)  do
   12.26 +  s = gsub(s,MASK[i][2],MASK[i][1])
   12.27 + end
   12.28 + return s
   12.29 +end
   12.30 +
   12.31 +function unmask (s)
   12.32 + for i = 1,getn(MASK)  do
   12.33 +  s = gsub(s,MASK[i][1],MASK[i][2])
   12.34 + end
   12.35 + return s
   12.36 +end
   12.37 +
   12.38 +function clean (s)
   12.39 + -- check for compilation error
   12.40 + local code = "return function () " .. s .. " end" 
   12.41 + if not dostring(code) then
   12.42 +  return nil
   12.43 + end
   12.44 +
   12.45 + local S = "" -- saved string
   12.46 +
   12.47 + s = mask(s)
   12.48 +
   12.49 + -- remove blanks and comments
   12.50 + while 1 do
   12.51 +  local b,e,d = strfind(s,ANY)
   12.52 +  if b then 
   12.53 +   S = S..strsub(s,1,b-1)
   12.54 +   s = strsub(s,b+1)
   12.55 +   if d==STR1 or d==STR2 then
   12.56 +    e = strfind(s,d)
   12.57 +    S = S ..d..strsub(s,1,e)
   12.58 +    s = strsub(s,e+1)
   12.59 +   elseif d==STR3 then
   12.60 +    e = strfind(s,STR4)
   12.61 +    S = S..d..strsub(s,1,e)
   12.62 +    s = strsub(s,e+1)
   12.63 +   elseif d==REM then
   12.64 +    s = gsub(s,"[^\n]*(\n?)","%1",1)
   12.65 +   end 
   12.66 +  else
   12.67 +   S = S..s
   12.68 +   break
   12.69 +  end
   12.70 + end
   12.71 + -- eliminate unecessary spaces
   12.72 + S = gsub(S,"[ \t]+"," ")
   12.73 + S = gsub(S,"[ \t]*\n[ \t]*","\n")
   12.74 + S = unmask(S)
   12.75 + return S
   12.76 +end
   12.77 +
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/source/tolua/src/bin/lua/code.lua	Wed Nov 04 01:38:12 2009 +0000
    13.3 @@ -0,0 +1,73 @@
    13.4 +-- tolua: code class
    13.5 +-- Written by Waldemar Celes
    13.6 +-- TeCGraf/PUC-Rio
    13.7 +-- Jul 1999
    13.8 +-- $Id: $
    13.9 +
   13.10 +-- This code is free software; you can redistribute it and/or modify it.
   13.11 +-- The software provided hereunder is on an "as is" basis, and
   13.12 +-- the author has no obligation to provide maintenance, support, updates,
   13.13 +-- enhancements, or modifications. 
   13.14 +
   13.15 +
   13.16 +-- Code class
   13.17 +-- Represents Lua code to be compiled and included
   13.18 +-- in the initialization function.
   13.19 +-- The following fields are stored:
   13.20 +--   text = text code
   13.21 +classCode = {
   13.22 + text = '',
   13.23 +}
   13.24 +classCode.__index = classCode
   13.25 +setmetatable(classCode,classFeature)
   13.26 +
   13.27 +-- register code
   13.28 +function classCode:register ()
   13.29 + -- clean Lua code
   13.30 + local s = clean(self.text)
   13.31 + if not s then
   13.32 +  error("parser error in embedded code")  
   13.33 + end
   13.34 + 
   13.35 + -- convert to C
   13.36 + output('\n { /* begin embedded lua code */\n')
   13.37 + output('  static unsigned char B[] = {\n   ')
   13.38 + local t={n=0}
   13.39 + local b = gsub(s,'(.)',function (c) 
   13.40 +                         local e = '' 
   13.41 +                         t.n=t.n+1 if t.n==15 then t.n=0 e='\n   ' end 
   13.42 +                         return format('%3u,%s',strbyte(c),e) 
   13.43 +                        end
   13.44 +               )
   13.45 + output(b..strbyte(" "))
   13.46 + output('\n  };\n')
   13.47 + output('  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||\n')
   13.48 + output('  lua_pcall(tolua_S,0,LUA_MULTRET,0);')
   13.49 + output(' } /* end of embedded lua code */\n\n')
   13.50 +end
   13.51 + 
   13.52 +
   13.53 +-- Print method
   13.54 +function classCode:print (ident,close)
   13.55 + print(ident.."Code{")
   13.56 + print(ident.." text = [["..self.text.."]],")
   13.57 + print(ident.."}"..close)
   13.58 +end
   13.59 +
   13.60 +
   13.61 +-- Internal constructor
   13.62 +function _Code (t)
   13.63 + setmetatable(t,classCode)
   13.64 + append(t)
   13.65 + return t
   13.66 +end
   13.67 +
   13.68 +-- Constructor
   13.69 +-- Expects a string representing the code text
   13.70 +function Code (l)
   13.71 + return _Code {
   13.72 +  text = l
   13.73 + }
   13.74 +end
   13.75 +
   13.76 +
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/source/tolua/src/bin/lua/compat.lua	Wed Nov 04 01:38:12 2009 +0000
    14.3 @@ -0,0 +1,193 @@
    14.4 +-------------------------------------------------------------------
    14.5 +-- Real globals
    14.6 +-- _ALERT
    14.7 +-- _ERRORMESSAGE
    14.8 +-- _VERSION
    14.9 +-- _G
   14.10 +-- assert
   14.11 +-- error
   14.12 +-- metatable
   14.13 +-- next
   14.14 +-- print
   14.15 +-- require
   14.16 +-- tonumber
   14.17 +-- tostring
   14.18 +-- type
   14.19 +-- unpack
   14.20 +
   14.21 +-------------------------------------------------------------------
   14.22 +-- collectgarbage
   14.23 +-- gcinfo
   14.24 +
   14.25 +-- globals
   14.26 +
   14.27 +-- call   -> protect(f, err)
   14.28 +-- loadfile
   14.29 +-- loadstring
   14.30 +
   14.31 +-- rawget
   14.32 +-- rawset
   14.33 +
   14.34 +-- getargs = Main.getargs ??
   14.35 +
   14.36 +rawtype = type
   14.37 +
   14.38 +function do_ (f, err)
   14.39 +  if not f then print(err); return end
   14.40 +  local a,b = pcall(f)
   14.41 +  if not a then print(b); return nil
   14.42 +  else return b or true
   14.43 +  end
   14.44 +end
   14.45 +
   14.46 +function dostring(s) return do_(loadstring(s)) end
   14.47 +-- function dofile(s) return do_(loadfile(s)) end
   14.48 +
   14.49 +-------------------------------------------------------------------
   14.50 +-- Table library
   14.51 +local tab = table
   14.52 +foreach = tab.foreach
   14.53 +foreachi = tab.foreachi
   14.54 +getn = tab.getn
   14.55 +tinsert = tab.insert
   14.56 +tremove = tab.remove
   14.57 +sort = tab.sort
   14.58 +
   14.59 +-------------------------------------------------------------------
   14.60 +-- Debug library
   14.61 +local dbg = debug
   14.62 +getinfo = dbg.getinfo
   14.63 +getlocal = dbg.getlocal
   14.64 +setcallhook = function () error"`setcallhook' is deprecated" end
   14.65 +setlinehook = function () error"`setlinehook' is deprecated" end
   14.66 +setlocal = dbg.setlocal
   14.67 +
   14.68 +-------------------------------------------------------------------
   14.69 +-- math library
   14.70 +local math = math
   14.71 +abs = math.abs
   14.72 +acos = function (x) return math.deg(math.acos(x)) end
   14.73 +asin = function (x) return math.deg(math.asin(x)) end
   14.74 +atan = function (x) return math.deg(math.atan(x)) end
   14.75 +atan2 = function (x,y) return math.deg(math.atan2(x,y)) end
   14.76 +ceil = math.ceil
   14.77 +cos = function (x) return math.cos(math.rad(x)) end
   14.78 +deg = math.deg
   14.79 +exp = math.exp
   14.80 +floor = math.floor
   14.81 +frexp = math.frexp
   14.82 +ldexp = math.ldexp
   14.83 +log = math.log
   14.84 +log10 = math.log10
   14.85 +max = math.max
   14.86 +min = math.min
   14.87 +mod = math.mod
   14.88 +PI = math.pi
   14.89 +--??? pow = math.pow  
   14.90 +rad = math.rad
   14.91 +random = math.random
   14.92 +randomseed = math.randomseed
   14.93 +sin = function (x) return math.sin(math.rad(x)) end
   14.94 +sqrt = math.sqrt
   14.95 +tan = function (x) return math.tan(math.rad(x)) end
   14.96 +
   14.97 +-------------------------------------------------------------------
   14.98 +-- string library
   14.99 +local str = string
  14.100 +strbyte = str.byte
  14.101 +strchar = str.char
  14.102 +strfind = str.find
  14.103 +format = str.format
  14.104 +gsub = str.gsub
  14.105 +strlen = str.len
  14.106 +strlower = str.lower
  14.107 +strrep = str.rep
  14.108 +strsub = str.sub
  14.109 +strupper = str.upper
  14.110 +
  14.111 +-------------------------------------------------------------------
  14.112 +-- os library
  14.113 +clock = os.clock
  14.114 +date = os.date
  14.115 +difftime = os.difftime
  14.116 +execute = os.execute --?
  14.117 +exit = os.exit
  14.118 +getenv = os.getenv
  14.119 +remove = os.remove
  14.120 +rename = os.rename
  14.121 +setlocale = os.setlocale
  14.122 +time = os.time
  14.123 +tmpname = os.tmpname
  14.124 +
  14.125 +-------------------------------------------------------------------
  14.126 +-- compatibility only
  14.127 +getglobal = function (n) return _G[n] end
  14.128 +setglobal = function (n,v) _G[n] = v end
  14.129 +
  14.130 +-------------------------------------------------------------------
  14.131 +
  14.132 +local io, tab = io, table
  14.133 +
  14.134 +-- IO library (files)
  14.135 +_STDIN = io.stdin
  14.136 +_STDERR = io.stderr
  14.137 +_STDOUT = io.stdout
  14.138 +_INPUT = io.stdin
  14.139 +_OUTPUT = io.stdout
  14.140 +seek = io.stdin.seek   -- sick ;-)
  14.141 +tmpfile = io.tmpfile
  14.142 +closefile = io.close
  14.143 +openfile = io.open
  14.144 +
  14.145 +function flush (f)
  14.146 +  if f then f:flush()
  14.147 +  else _OUTPUT:flush()
  14.148 +  end
  14.149 +end
  14.150 +
  14.151 +function readfrom (name)
  14.152 +  if name == nil then
  14.153 +    local f, err, cod = io.close(_INPUT)
  14.154 +    _INPUT = io.stdin
  14.155 +    return f, err, cod
  14.156 +  else
  14.157 +    local f, err, cod = io.open(name, "r")
  14.158 +    _INPUT = f or _INPUT
  14.159 +    return f, err, cod
  14.160 +  end
  14.161 +end
  14.162 +
  14.163 +function writeto (name)
  14.164 +  if name == nil then
  14.165 +    local f, err, cod = io.close(_OUTPUT)
  14.166 +    _OUTPUT = io.stdout
  14.167 +    return f, err, cod
  14.168 +  else
  14.169 +    local f, err, cod = io.open(name, "w")
  14.170 +    _OUTPUT = f or _OUTPUT
  14.171 +    return f, err, cod
  14.172 +  end
  14.173 +end
  14.174 +
  14.175 +function appendto (name)
  14.176 +  local f, err, cod = io.open(name, "a")
  14.177 +  _OUTPUT = f or _OUTPUT
  14.178 +  return f, err, cod
  14.179 +end
  14.180 +
  14.181 +function read (...)
  14.182 +  local f = _INPUT
  14.183 +  if rawtype(arg[1]) == 'userdata' then
  14.184 +    f = tab.remove(arg, 1)
  14.185 +  end
  14.186 +  return f:read(unpack(arg))
  14.187 +end
  14.188 +
  14.189 +function write (...)
  14.190 +  local f = _OUTPUT
  14.191 +  if rawtype(arg[1]) == 'userdata' then
  14.192 +    f = tab.remove(arg, 1)
  14.193 +  end
  14.194 +  return f:write(unpack(arg))
  14.195 +end
  14.196 +
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/source/tolua/src/bin/lua/container.lua	Wed Nov 04 01:38:12 2009 +0000
    15.3 @@ -0,0 +1,517 @@
    15.4 +-- tolua: container abstract class
    15.5 +-- Written by Waldemar Celes
    15.6 +-- TeCGraf/PUC-Rio
    15.7 +-- Jul 1998
    15.8 +-- $Id: $
    15.9 +
   15.10 +-- This code is free software; you can redistribute it and/or modify it.
   15.11 +-- The software provided hereunder is on an "as is" basis, and
   15.12 +-- the author has no obligation to provide maintenance, support, updates,
   15.13 +-- enhancements, or modifications. 
   15.14 +
   15.15 +
   15.16 +-- Container class
   15.17 +-- Represents a container of features to be bound
   15.18 +-- to lua.
   15.19 +classContainer = 
   15.20 +{
   15.21 + curr = nil,
   15.22 +}
   15.23 +classContainer.__index = classContainer
   15.24 +setmetatable(classContainer,classFeature)
   15.25 +
   15.26 +-- output tags
   15.27 +function classContainer:decltype ()
   15.28 + push(self)
   15.29 + local i=1
   15.30 + while self[i] do
   15.31 +  self[i]:decltype()
   15.32 +  i = i+1
   15.33 + end
   15.34 + pop()
   15.35 +end
   15.36 +
   15.37 +
   15.38 +-- write support code
   15.39 +function classContainer:supcode ()
   15.40 + push(self)
   15.41 + local i=1
   15.42 + while self[i] do
   15.43 +  self[i]:supcode()
   15.44 +  i = i+1
   15.45 + end
   15.46 + pop()
   15.47 +end
   15.48 +
   15.49 +function classContainer:hasvar ()
   15.50 + local i=1
   15.51 + while self[i] do
   15.52 +  if self[i]:isvariable() then
   15.53 +		 return 1
   15.54 +		end
   15.55 +  i = i+1
   15.56 + end
   15.57 +	return 0
   15.58 +end
   15.59 +
   15.60 +-- Internal container constructor
   15.61 +function _Container (self)
   15.62 + setmetatable(self,classContainer)
   15.63 + self.n = 0
   15.64 + self.typedefs = {tolua_n=0}
   15.65 + self.usertypes = {}
   15.66 + self.enums = {tolua_n=0}
   15.67 + self.lnames = {}
   15.68 + return self
   15.69 +end
   15.70 +
   15.71 +-- push container
   15.72 +function push (t)
   15.73 +	t.prox = classContainer.curr
   15.74 + classContainer.curr = t
   15.75 +end
   15.76 +
   15.77 +-- pop container
   15.78 +function pop ()
   15.79 +--print("name",classContainer.curr.name)
   15.80 +--foreach(classContainer.curr.usertypes,print)
   15.81 +--print("______________")
   15.82 + classContainer.curr = classContainer.curr.prox
   15.83 +end
   15.84 +
   15.85 +-- get current namespace
   15.86 +function getcurrnamespace ()
   15.87 +	return getnamespace(classContainer.curr) 
   15.88 +end
   15.89 +
   15.90 +-- append to current container
   15.91 +function append (t)
   15.92 + return classContainer.curr:append(t)
   15.93 +end
   15.94 + 
   15.95 +-- append typedef to current container
   15.96 +function appendtypedef (t)
   15.97 + return classContainer.curr:appendtypedef(t)
   15.98 +end
   15.99 +
  15.100 +-- append usertype to current container
  15.101 +function appendusertype (t)
  15.102 + return classContainer.curr:appendusertype(t)
  15.103 +end
  15.104 +
  15.105 +-- append enum to current container
  15.106 +function appendenum (t)
  15.107 + return classContainer.curr:appendenum(t)
  15.108 +end
  15.109 + 
  15.110 +-- substitute typedef
  15.111 +function applytypedef (type)
  15.112 + return classContainer.curr:applytypedef(type)
  15.113 +end
  15.114 +
  15.115 +-- check if is type
  15.116 +function findtype (type)
  15.117 + local t = classContainer.curr:findtype(type)
  15.118 +	return t
  15.119 +end
  15.120 +
  15.121 +-- check if is typedef
  15.122 +function istypedef (type)
  15.123 + return classContainer.curr:istypedef(type)
  15.124 +end
  15.125 +
  15.126 +-- get fulltype (with namespace)
  15.127 +function fulltype (t)
  15.128 + local curr =  classContainer.curr
  15.129 +	while curr do
  15.130 +	 if curr then
  15.131 +		 if curr.typedefs and curr.typedefs[t] then
  15.132 +		  return curr.typedefs[t]
  15.133 +		 elseif curr.usertypes and curr.usertypes[t] then
  15.134 +		  return curr.usertypes[t]
  15.135 +			end
  15.136 +		end
  15.137 +	 curr = curr.prox
  15.138 +	end
  15.139 +	return t
  15.140 +end
  15.141 +
  15.142 +-- checks if it requires collection
  15.143 +function classContainer:requirecollection (t)
  15.144 + push(self)
  15.145 + local i=1
  15.146 +	local r = false
  15.147 + while self[i] do
  15.148 +  r = self[i]:requirecollection(t) or r
  15.149 +  i = i+1
  15.150 + end
  15.151 +	pop()
  15.152 +	return r
  15.153 +end
  15.154 +
  15.155 +
  15.156 +-- get namesapce
  15.157 +function getnamespace (curr)
  15.158 +	local namespace = ''
  15.159 +	while curr do
  15.160 +	 if curr and 
  15.161 +		   ( curr.classtype == 'class' or curr.classtype == 'namespace')
  15.162 +		then
  15.163 +		 namespace = curr.name .. '::' .. namespace 
  15.164 +		end
  15.165 +	 curr = curr.prox
  15.166 +	end
  15.167 +	return namespace
  15.168 +end
  15.169 +
  15.170 +-- get namespace (only namespace)
  15.171 +function getonlynamespace ()
  15.172 + local curr = classContainer.curr
  15.173 +	local namespace = ''
  15.174 +	while curr do
  15.175 +		if curr.classtype == 'class' then
  15.176 +		 return namespace 
  15.177 +		elseif curr.classtype == 'namespace' then
  15.178 +		 namespace = curr.name .. '::' .. namespace 
  15.179 +		end
  15.180 +	 curr = curr.prox
  15.181 +	end
  15.182 +	return namespace
  15.183 +end
  15.184 +
  15.185 +-- check if is enum
  15.186 +function isenum (type)
  15.187 + return classContainer.curr:isenum(type)
  15.188 +end
  15.189 +
  15.190 +-- append feature to container
  15.191 +function classContainer:append (t)
  15.192 + self.n = self.n + 1
  15.193 + self[self.n] = t
  15.194 + t.parent = self
  15.195 +end
  15.196 +
  15.197 +-- append typedef 
  15.198 +function classContainer:appendtypedef (t)
  15.199 + self.typedefs.tolua_n = self.typedefs.tolua_n + 1
  15.200 + self.typedefs[self.typedefs.tolua_n] = t
  15.201 +	self.typedefs[t.utype] = getnamespace(classContainer.curr) .. t.utype
  15.202 +end
  15.203 +
  15.204 +-- append usertype: return full type
  15.205 +function classContainer:appendusertype (t)
  15.206 + local container
  15.207 +	if t == self.name then
  15.208 +	 container = self.prox
  15.209 +	else
  15.210 +	 container = self
  15.211 +	end
  15.212 + local ft = getnamespace(container) .. t
  15.213 +	container.usertypes[t] = ft
  15.214 +	_usertype[ft] = ft
  15.215 +	return ft
  15.216 +end
  15.217 +
  15.218 +-- append enum 
  15.219 +function classContainer:appendenum (t)
  15.220 + self.enums.tolua_n = self.enums.tolua_n + 1
  15.221 + self.enums[self.enums.tolua_n] = t
  15.222 +end
  15.223 +
  15.224 +-- determine lua function name overload
  15.225 +function classContainer:overload (lname)
  15.226 + if not self.lnames[lname] then 
  15.227 +  self.lnames[lname] = 0
  15.228 + else
  15.229 +  self.lnames[lname] = self.lnames[lname] + 1
  15.230 + end
  15.231 + return format("%02d",self.lnames[lname])
  15.232 +end
  15.233 +
  15.234 +-- applies typedef: returns the 'the facto' modifier and type
  15.235 +function classContainer:applytypedef (type)
  15.236 + local basetype = gsub(type,"^.*::","")
  15.237 + local env = self
  15.238 + while env do
  15.239 +  if env.typedefs then
  15.240 +   local i=1
  15.241 +   while env.typedefs[i] do
  15.242 +    if env.typedefs[i].utype == basetype then
  15.243 +	    local mod1,type1 = env.typedefs[i].mod,env.typedefs[i].type
  15.244 +     local mod2,type2 = applytypedef(type1)
  15.245 +     return mod2..' '..mod1,type2
  15.246 +	   end
  15.247 +	  i = i+1
  15.248 +   end
  15.249 +  end
  15.250 +  env = env.parent
  15.251 + end
  15.252 + return '',type
  15.253 +end 
  15.254 +
  15.255 +-- check if it is a typedef
  15.256 +function classContainer:istypedef (type)
  15.257 + local env = self
  15.258 + while env do
  15.259 +  if env.typedefs then
  15.260 +   local i=1
  15.261 +   while env.typedefs[i] do
  15.262 +    if env.typedefs[i].utype == type then
  15.263 +         return type
  15.264 +        end
  15.265 +        i = i+1
  15.266 +   end
  15.267 +  end
  15.268 +  env = env.parent
  15.269 + end
  15.270 + return nil 
  15.271 +end
  15.272 +
  15.273 +-- check if is a registered type: return full type or nil
  15.274 +function classContainer:findtype (t)
  15.275 + local curr =  self
  15.276 +	while curr do
  15.277 +		if curr.typedefs and curr.typedefs[t] then
  15.278 +		 return curr.typedefs[t]
  15.279 +		elseif curr.usertypes and curr.usertypes[t] then
  15.280 +		 return curr.usertypes[t]
  15.281 +		end
  15.282 +	 curr = curr.prox
  15.283 +	end
  15.284 +	if _basic[t] then
  15.285 +	 return t
  15.286 +	end
  15.287 +	return nil
  15.288 +end
  15.289 +
  15.290 +
  15.291 +function classContainer:isenum (type)
  15.292 + local basetype = gsub(type,"^.*::","")
  15.293 + local env = self
  15.294 + while env do
  15.295 +  if env.enums then
  15.296 +   local i=1
  15.297 +   while env.enums[i] do
  15.298 +    if env.enums[i].name == basetype then
  15.299 +         return 1
  15.300 +        end
  15.301 +        i = i+1
  15.302 +   end
  15.303 +  end
  15.304 +  env = env.parent
  15.305 + end
  15.306 + return nil 
  15.307 +end
  15.308 +
  15.309 +-- parse chunk
  15.310 +function classContainer:doparse (s)
  15.311 +
  15.312 + -- try Lua code
  15.313 + do
  15.314 +  local b,e,code = strfind(s,"^%s*(%b\1\2)")
  15.315 +  if b then
  15.316 +   Code(strsub(code,2,-2))
  15.317 +   return strsub(s,e+1)
  15.318 +  end 
  15.319 + end 
  15.320 +
  15.321 + -- try C code
  15.322 + do
  15.323 +  local b,e,code = strfind(s,"^%s*(%b\3\4)")
  15.324 +  if b then
  15.325 +		 code = '{'..strsub(code,2,-2)..'\n}\n'
  15.326 +   Verbatim(code,'r')        -- verbatim code for 'r'egister fragment
  15.327 +   return strsub(s,e+1)
  15.328 +  end 
  15.329 + end 
  15.330 +
  15.331 + -- try verbatim
  15.332 + do
  15.333 +  local b,e,line = strfind(s,"^%s*%$(.-\n)")
  15.334 +  if b then
  15.335 +   Verbatim(line)
  15.336 +   return strsub(s,e+1)
  15.337 +  end 
  15.338 + end 
  15.339 +
  15.340 +
  15.341 + -- try module
  15.342 + do
  15.343 +  local b,e,name,body = strfind(s,"^%s*module%s%s*([_%w][_%w]*)%s*(%b{})%s*")
  15.344 +  if b then
  15.345 +   _curr_code = strsub(s,b,e)
  15.346 +   Module(name,body)
  15.347 +   return strsub(s,e+1)
  15.348 +  end
  15.349 + end
  15.350 +
  15.351 + -- try namesapce
  15.352 + do
  15.353 +  local b,e,name,body = strfind(s,"^%s*namespace%s%s*([_%w][_%w]*)%s*(%b{})%s*")
  15.354 +  if b then
  15.355 +   _curr_code = strsub(s,b,e)
  15.356 +   Namespace(name,body)
  15.357 +   return strsub(s,e+1)
  15.358 +  end
  15.359 + end
  15.360 +
  15.361 + -- try define
  15.362 + do
  15.363 +  local b,e,name = strfind(s,"^%s*#define%s%s*([^%s]*)[^\n]*\n%s*")
  15.364 +  if b then
  15.365 +   _curr_code = strsub(s,b,e)
  15.366 +   Define(name)
  15.367 +   return strsub(s,e+1)
  15.368 +  end
  15.369 + end
  15.370 +
  15.371 + -- try enumerates
  15.372 + do
  15.373 +  local b,e,name,body = strfind(s,"^%s*enum%s+(%S*)%s*(%b{})%s*;?%s*")
  15.374 +  if b then
  15.375 +   _curr_code = strsub(s,b,e)
  15.376 +   Enumerate(name,body)
  15.377 +   return strsub(s,e+1)
  15.378 +  end
  15.379 + end
  15.380 +
  15.381 + do
  15.382 +  local b,e,body,name = strfind(s,"^%s*typedef%s+enum[^{]*(%b{})%s*([%w_][^%s]*)%s*;%s*")
  15.383 +  if b then
  15.384 +   _curr_code = strsub(s,b,e)
  15.385 +   Enumerate(name,body)
  15.386 +   return strsub(s,e+1)
  15.387 +  end
  15.388 + end
  15.389 +
  15.390 + -- try operator 
  15.391 + do
  15.392 +  local b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:]*operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)%s*;%s*")
  15.393 +  if not b then
  15.394 +		 -- try inline
  15.395 +   b,e,decl,kind,arg,const = strfind(s,"^%s*([_%w][_%w%s%*&:]*operator)%s*([^%s][^%s]*)%s*(%b())%s*(c?o?n?s?t?)%s*%b{}%s*")
  15.396 +  end 
  15.397 +		if b then
  15.398 +   _curr_code = strsub(s,b,e)
  15.399 +   Operator(decl,kind,arg,const)
  15.400 +   return strsub(s,e+1)
  15.401 +  end
  15.402 + end
  15.403 +
  15.404 + -- try function
  15.405 + do
  15.406 +  local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:]*[_%w])%s*(%b())%s*(c?o?n?s?t?)%s*=?%s*0?%s*;%s*")
  15.407 +  if not b then
  15.408 +   -- try a single letter function name
  15.409 +   b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?)%s*;%s*")
  15.410 +  end
  15.411 +  if b then
  15.412 +   _curr_code = strsub(s,b,e)
  15.413 +   Function(decl,arg,const)
  15.414 +   return strsub(s,e+1)
  15.415 +  end
  15.416 + end
  15.417 +
  15.418 + -- try inline function
  15.419 + do
  15.420 +  local b,e,decl,arg,const = strfind(s,"^%s*([~_%w][_@%w%s%*&:]*[_%w])%s*(%b())%s*(c?o?n?s?t?).-%b{}%s*")
  15.421 +  if not b then
  15.422 +   -- try a single letter function name
  15.423 +   b,e,decl,arg,const = strfind(s,"^%s*([_%w])%s*(%b())%s*(c?o?n?s?t?).-%b{}%s*")
  15.424 +  end
  15.425 +  if b then
  15.426 +   _curr_code = strsub(s,b,e)
  15.427 +   Function(decl,arg,const)
  15.428 +   return strsub(s,e+1)
  15.429 +  end
  15.430 + end
  15.431 +
  15.432 + -- try class
  15.433 + do
  15.434 +	 local b,e,name,base,body
  15.435 +		base = '' body = ''
  15.436 +		b,e,name = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*;")  -- dummy class
  15.437 +		if not b then
  15.438 +			b,e,name = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*;")    -- dummy struct
  15.439 +			if not b then
  15.440 +				b,e,name,base,body = strfind(s,"^%s*class%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*")
  15.441 +				if not b then
  15.442 +					b,e,name,base,body = strfind(s,"^%s*struct%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*")
  15.443 +					if not b then
  15.444 +						b,e,name,base,body = strfind(s,"^%s*union%s*([_%w][_%w@]*)%s*(.-)%s*(%b{})%s*;%s*")
  15.445 +						if not b then
  15.446 +							base = ''
  15.447 +							b,e,body,name = strfind(s,"^%s*typedef%s%s*struct%s%s*[_%w]*%s*(%b{})%s*([_%w][_%w@]*)%s*;%s*")
  15.448 +						end
  15.449 +					end
  15.450 +				end
  15.451 +			end
  15.452 +		end
  15.453 +		if b then
  15.454 +			if base ~= '' then 
  15.455 +				local b,e
  15.456 +				b,e,base = strfind(base,".-([_%w][_%w]*)$") 
  15.457 +			end
  15.458 +			_curr_code = strsub(s,b,e)
  15.459 +			Class(name,base,body)
  15.460 +			return strsub(s,e+1)
  15.461 +		end
  15.462 +	end
  15.463 +
  15.464 + -- try typedef
  15.465 + do
  15.466 +  local b,e,types = strfind(s,"^%s*typedef%s%s*(.-)%s*;%s*")
  15.467 +  if b then
  15.468 +   _curr_code = strsub(s,b,e)
  15.469 +   Typedef(types)
  15.470 +   return strsub(s,e+1)
  15.471 +  end
  15.472 + end
  15.473 +
  15.474 + -- try variable
  15.475 + do
  15.476 +  local b,e,decl = strfind(s,"^%s*([_%w][_@%s%w%d%*&:]*[_%w%d])%s*;%s*")
  15.477 +  if b then
  15.478 +   _curr_code = strsub(s,b,e)
  15.479 +   Variable(decl)
  15.480 +   return strsub(s,e+1)
  15.481 +  end
  15.482 + end
  15.483 +
  15.484 +	-- try string
  15.485 + do
  15.486 +  local b,e,decl = strfind(s,"^%s*([_%w]?[_%s%w%d]-char%s+[_@%w%d]*%s*%[%s*%S+%s*%])%s*;%s*")
  15.487 +  if b then
  15.488 +   _curr_code = strsub(s,b,e)
  15.489 +   Variable(decl)
  15.490 +   return strsub(s,e+1)
  15.491 +  end
  15.492 + end
  15.493 +
  15.494 + -- try array
  15.495 + do
  15.496 +  local b,e,decl = strfind(s,"^%s*([_%w][][_@%s%w%d%*&:]*[]_%w%d])%s*;%s*")
  15.497 +  if b then
  15.498 +   _curr_code = strsub(s,b,e)
  15.499 +   Array(decl)
  15.500 +   return strsub(s,e+1)
  15.501 +  end
  15.502 + end
  15.503 +
  15.504 + -- no matching
  15.505 + if gsub(s,"%s%s*","") ~= "" then
  15.506 +  _curr_code = s
  15.507 +  error("#parse error")
  15.508 + else
  15.509 +  return ""
  15.510 + end
  15.511 +
  15.512 +end
  15.513 +
  15.514 +function classContainer:parse (s)
  15.515 + while s ~= '' do
  15.516 +  s = self:doparse(s)
  15.517 + end
  15.518 +end
  15.519 +
  15.520 +
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/source/tolua/src/bin/lua/declaration.lua	Wed Nov 04 01:38:12 2009 +0000
    16.3 @@ -0,0 +1,462 @@
    16.4 +-- tolua: declaration class
    16.5 +-- Written by Waldemar Celes
    16.6 +-- TeCGraf/PUC-Rio
    16.7 +-- Jul 1998
    16.8 +-- $Id: $
    16.9 +
   16.10 +-- This code is free software; you can redistribute it and/or modify it.
   16.11 +-- The software provided hereunder is on an "as is" basis, and
   16.12 +-- the author has no obligation to provide maintenance, support, updates,
   16.13 +-- enhancements, or modifications. 
   16.14 +
   16.15 +
   16.16 +-- Declaration class
   16.17 +-- Represents variable, function, or argument declaration.
   16.18 +-- Stores the following fields:
   16.19 +--  mod  = type modifiers
   16.20 +--  type = type
   16.21 +--  ptr  = "*" or "&", if representing a pointer or a reference
   16.22 +--  name = name
   16.23 +--  dim  = dimension, if a vector
   16.24 +--  def  = default value, if any (only for arguments)
   16.25 +--  ret  = "*" or "&", if value is to be returned (only for arguments)
   16.26 +classDeclaration = {
   16.27 + mod = '',
   16.28 + type = '',
   16.29 + ptr = '',
   16.30 + name = '',
   16.31 + dim = '',
   16.32 + ret = '',
   16.33 + def = ''
   16.34 +}
   16.35 +classDeclaration.__index = classDeclaration
   16.36 +setmetatable(classDeclaration,classFeature)
   16.37 +
   16.38 +-- Create an unique variable name
   16.39 +function create_varname ()
   16.40 + if not _varnumber then _varnumber = 0 end
   16.41 + _varnumber = _varnumber + 1
   16.42 + return "tolua_var_".._varnumber
   16.43 +end
   16.44 +
   16.45 +-- Check declaration name
   16.46 +-- It also identifies default values
   16.47 +function classDeclaration:checkname ()
   16.48 +
   16.49 + if strsub(self.name,1,1) == '[' and not findtype(self.type) then
   16.50 +  self.name = self.type..self.name
   16.51 +  local m = split(self.mod,'%s%s*')
   16.52 +  self.type = m[m.n]
   16.53 +  self.mod = concat(m,1,m.n-1)
   16.54 + end
   16.55 +
   16.56 + local t = split(self.name,'=')
   16.57 + if t.n==2 then
   16.58 +  self.name = t[1]
   16.59 +  self.def = t[t.n]
   16.60 + end
   16.61 +
   16.62 + local b,e,d = strfind(self.name,"%[(.-)%]")
   16.63 + if b then
   16.64 +  self.name = strsub(self.name,1,b-1)
   16.65 +  self.dim = d
   16.66 + end
   16.67 +
   16.68 +
   16.69 + if self.type ~= '' and self.type ~= 'void' and self.name == '' then
   16.70 +  self.name = create_varname()
   16.71 + elseif self.kind=='var' then
   16.72 +  if self.type=='' and self.name~='' then
   16.73 +   self.type = self.type..self.name
   16.74 +   self.name = create_varname()
   16.75 +  elseif findtype(self.name) then
   16.76 +   if self.type=='' then self.type = self.name
   16.77 +   else self.type = self.type..' '..self.name end
   16.78 +   self.name = create_varname()
   16.79 +  end
   16.80 + end
   16.81 +
   16.82 + -- adjust type of string
   16.83 + if self.type == 'char' and self.dim ~= '' then
   16.84 +	 self.type = 'char*'
   16.85 +	end
   16.86 +end
   16.87 +
   16.88 +-- Check declaration type
   16.89 +-- Substitutes typedef's.
   16.90 +function classDeclaration:checktype ()
   16.91 +
   16.92 + -- check if there is a pointer to basic type
   16.93 + if isbasic(self.type) and self.ptr~='' then
   16.94 +  self.ret = self.ptr
   16.95 +  self.ptr = nil
   16.96 + end
   16.97 +
   16.98 + -- check if there is array to be returned
   16.99 + if self.dim~='' and self.ret~='' then
  16.100 +   error('#invalid parameter: cannot return an array of values')
  16.101 + end
  16.102 +
  16.103 + -- restore 'void*' and 'string*'
  16.104 + if self.type == '_userdata' then self.type = 'void*'
  16.105 + elseif self.type == '_cstring' then self.type = 'char*'
  16.106 + end
  16.107 +
  16.108 +--
  16.109 +-- -- if returning value, automatically set default value
  16.110 +-- if self.ret ~= '' and self.def == '' then
  16.111 +--  self.def = '0'
  16.112 +-- end
  16.113 +--
  16.114 +
  16.115 +end
  16.116 +
  16.117 +-- Print method
  16.118 +function classDeclaration:print (ident,close)
  16.119 + print(ident.."Declaration{")
  16.120 + print(ident.." mod  = '"..self.mod.."',")
  16.121 + print(ident.." type = '"..self.type.."',")
  16.122 + print(ident.." ptr  = '"..self.ptr.."',")
  16.123 + print(ident.." name = '"..self.name.."',")
  16.124 + print(ident.." dim  = '"..self.dim.."',")
  16.125 + print(ident.." def  = '"..self.def.."',")
  16.126 + print(ident.." ret  = '"..self.ret.."',")
  16.127 + print(ident.."}"..close)
  16.128 +end
  16.129 +
  16.130 +-- check if array of values are returned to Lua
  16.131 +function classDeclaration:requirecollection (t)
  16.132 + if  self.mod ~= 'const' and
  16.133 +	    self.dim and self.dim ~= '' and
  16.134 +				 not isbasic(self.type) and
  16.135 +				 self.ptr == '' then
  16.136 +		local type = gsub(self.type,"%s*const%s*","")
  16.137 +		t[type] = gsub(type,"::","_")
  16.138 +		return true
  16.139 +	end
  16.140 +	return false
  16.141 +end
  16.142 +
  16.143 +-- declare tag
  16.144 +function classDeclaration:decltype ()
  16.145 + self.type = typevar(self.type)
  16.146 + if strfind(self.mod,'const') then
  16.147 +	 self.type = 'const '..self.type
  16.148 +		self.mod = gsub(self.mod,'const%s*','')
  16.149 +	end
  16.150 +end
  16.151 +
  16.152 +
  16.153 +-- output type checking
  16.154 +function classDeclaration:outchecktype (narg)
  16.155 + local def
  16.156 + local t = isbasic(self.type)
  16.157 + if self.def~='' then
  16.158 +  def = 1
  16.159 + else
  16.160 +  def = 0
  16.161 + end
  16.162 + if self.dim ~= '' then 
  16.163 +	 if t=='string' then
  16.164 +   return 'tolua_isstring(tolua_S,'..narg..','..def..',&tolua_err)'
  16.165 +		else
  16.166 +   return 'tolua_istable(tolua_S,'..narg..',0,&tolua_err)'
  16.167 +		end
  16.168 +	elseif t then
  16.169 +  return 'tolua_is'..t..'(tolua_S,'..narg..','..def..',&tolua_err)'
  16.170 +	else
  16.171 +  return 'tolua_isusertype(tolua_S,'..narg..',"'..self.type..'",'..def..',&tolua_err)'
  16.172 +	end
  16.173 +end
  16.174 +
  16.175 +function classDeclaration:builddeclaration (narg, cplusplus)
  16.176 + local array = self.dim ~= '' and tonumber(self.dim)==nil
  16.177 +	local line = ""
  16.178 + local ptr = ''
  16.179 +	local mod
  16.180 +	local type = self.type
  16.181 + if self.dim ~= '' then
  16.182 +	 type = gsub(self.type,'const%s*','')  -- eliminates const modifier for arrays
  16.183 +	end
  16.184 + local ctype = type
  16.185 + if ctype=="lua_Object" or ctype=="lua_Function" then
  16.186 +   ctype = "int"
  16.187 + end
  16.188 + if self.ptr~='' then ptr = '*' end
  16.189 + line = concatparam(line," ",self.mod,ctype,ptr)
  16.190 + if array then
  16.191 +  line = concatparam(line,'*')
  16.192 + end 
  16.193 + line = concatparam(line,self.name)
  16.194 + if self.dim ~= '' then
  16.195 +  if tonumber(self.dim)~=nil then
  16.196 +   line = concatparam(line,'[',self.dim,'];')
  16.197 +  else
  16.198 +		 if cplusplus then
  16.199 +			 line = concatparam(line,' = new',type,ptr,'['..self.dim..'];')
  16.200 +			else
  16.201 +    line = concatparam(line,' = (',type,ptr,'*)',
  16.202 +           'malloc((',self.dim,')*sizeof(',type,ptr,'));')
  16.203 +			end
  16.204 +  end
  16.205 + else
  16.206 +  local t = isbasic(type)
  16.207 +  line = concatparam(line,' = ')
  16.208 +  if not t and ptr=='' then line = concatparam(line,'*') end
  16.209 +  line = concatparam(line,'((',self.mod,type)
  16.210 +  if not t then
  16.211 +   line = concatparam(line,'*')
  16.212 +  end
  16.213 +  line = concatparam(line,') ')
  16.214 +		if isenum(type) then
  16.215 +		 line = concatparam(line,'(int) ')
  16.216 +		end
  16.217 +  local def = 0
  16.218 +  if self.def ~= '' then def = self.def end
  16.219 +  if t then
  16.220 +   line = concatparam(line,'tolua_to'..t,'(tolua_S,',narg,',',def,'));')
  16.221 +  else
  16.222 +   line = concatparam(line,'tolua_tousertype(tolua_S,',narg,',',def,'));')
  16.223 +  end
  16.224 + end
  16.225 +	return line
  16.226 +end
  16.227 +
  16.228 +-- Declare variable
  16.229 +function classDeclaration:declare (narg)
  16.230 + if self.dim ~= '' and tonumber(self.dim)==nil then
  16.231 +	 output('#ifdef __cplusplus\n')
  16.232 +		output(self:builddeclaration(narg,true))
  16.233 +		output('#else\n')
  16.234 +		output(self:builddeclaration(narg,false))
  16.235 +	 output('#endif\n')
  16.236 +	else
  16.237 +		output(self:builddeclaration(narg,false))
  16.238 +	end
  16.239 +end
  16.240 +
  16.241 +-- Get parameter value
  16.242 +function classDeclaration:getarray (narg)
  16.243 + if self.dim ~= '' then
  16.244 +	 local type = gsub(self.type,'const ','')
  16.245 +  output('  {')
  16.246 +	 output('#ifndef TOLUA_RELEASE\n')
  16.247 +  local def; if self.def~='' then def=1 else def=0 end
  16.248 +		local t = isbasic(type)
  16.249 +		if (t) then
  16.250 +   output('   if (!tolua_is'..t..'array(tolua_S,',narg,',',self.dim,',',def,',&tolua_err))')
  16.251 +		else
  16.252 +   output('   if (!tolua_isusertypearray(tolua_S,',narg,',"',type,'",',self.dim,',',def,',&tolua_err))')
  16.253 +		end
  16.254 +  output('    goto tolua_lerror;')
  16.255 +  output('   else\n')
  16.256 +	 output('#endif\n')
  16.257 +  output('   {')
  16.258 +  output('    int i;')
  16.259 +  output('    for(i=0; i<'..self.dim..';i++)')
  16.260 +  local t = isbasic(type)
  16.261 +  local ptr = ''
  16.262 +  if self.ptr~='' then ptr = '*' end
  16.263 +  output('   ',self.name..'[i] = ')
  16.264 +  if not t and ptr=='' then output('*') end
  16.265 +  output('((',type)
  16.266 +  if not t then
  16.267 +   output('*')
  16.268 +  end
  16.269 +  output(') ')
  16.270 +  local def = 0
  16.271 +  if self.def ~= '' then def = self.def end
  16.272 +  if t then
  16.273 +   output('tolua_tofield'..t..'(tolua_S,',narg,',i+1,',def,'));')
  16.274 +  else 
  16.275 +   output('tolua_tofieldusertype(tolua_S,',narg,',i+1,',def,'));')
  16.276 +  end
  16.277 +  output('   }')
  16.278 +  output('  }')
  16.279 + end
  16.280 +end
  16.281 +
  16.282 +-- Get parameter value
  16.283 +function classDeclaration:setarray (narg)
  16.284 + if not strfind(self.type,'const') and self.dim ~= '' then
  16.285 +	 local type = gsub(self.type,'const ','')
  16.286 +  output('  {')
  16.287 +  output('   int i;')
  16.288 +  output('   for(i=0; i<'..self.dim..';i++)')
  16.289 +  local t,ct = isbasic(type)
  16.290 +  if t then
  16.291 +   output('    tolua_pushfield'..t..'(tolua_S,',narg,',i+1,(',ct,')',self.name,'[i]);')
  16.292 +  else
  16.293 +   if self.ptr == '' then
  16.294 +     output('   {')
  16.295 +     output('#ifdef __cplusplus\n')
  16.296 +     output('    void* tolua_obj = new',type,'(',self.name,'[i]);')
  16.297 +     output('    tolua_pushfieldusertype(tolua_S,',narg,',i+1,tolua_clone(tolua_S,tolua_obj,tolua_collect_'.._collect[type]..'),"',type,'");')
  16.298 +     output('#else\n')
  16.299 +     output('    void* tolua_obj = tolua_copy(tolua_S,(void*)&',self.name,'[i],sizeof(',type,'));')
  16.300 +     output('    tolua_pushfieldusertype(tolua_S,',narg,',i+1,tolua_clone(tolua_S,tolua_obj,tolua_collect),"',type,'");')
  16.301 +     output('#endif\n')
  16.302 +     output('   }')
  16.303 +   else
  16.304 +    output('   tolua_pushfieldusertype(tolua_S,',narg,',i+1,(void*)',self.name,'[i],"',type,'");')
  16.305 +   end
  16.306 +  end
  16.307 +  output('  }')
  16.308 + end
  16.309 +end
  16.310 +
  16.311 +-- Free dynamically allocated array
  16.312 +function classDeclaration:freearray ()
  16.313 + if self.dim ~= '' and tonumber(self.dim)==nil then
  16.314 +	 output('#ifdef __cplusplus\n')
  16.315 +		output('  delete []',self.name,';')
  16.316 +	 output('#else\n')
  16.317 +  output('  free(',self.name,');')
  16.318 +	 output('#endif\n')
  16.319 + end
  16.320 +end
  16.321 +
  16.322 +-- Pass parameter
  16.323 +function classDeclaration:passpar ()
  16.324 + if self.ptr=='&' then
  16.325 +  output('*'..self.name)
  16.326 + elseif self.ret=='*' then
  16.327 +  output('&'..self.name)
  16.328 + else
  16.329 +  output(self.name)
  16.330 + end
  16.331 +end
  16.332 +
  16.333 +-- Return parameter value
  16.334 +function classDeclaration:retvalue ()
  16.335 + if self.ret ~= '' then
  16.336 +  local t,ct = isbasic(self.type)
  16.337 +  if t then
  16.338 +   output('   tolua_push'..t..'(tolua_S,(',ct,')'..self.name..');')
  16.339 +  else
  16.340 +   output('   tolua_pushusertype(tolua_S,(void*)'..self.name..',"',self.type,'");')
  16.341 +  end
  16.342 +  return 1
  16.343 + end
  16.344 + return 0
  16.345 +end
  16.346 +
  16.347 +-- Internal constructor
  16.348 +function _Declaration (t)
  16.349 + setmetatable(t,classDeclaration)
  16.350 + t:buildnames()
  16.351 + t:checkname()
  16.352 + t:checktype()
  16.353 + return t
  16.354 +end
  16.355 +
  16.356 +-- Constructor
  16.357 +-- Expects the string declaration.
  16.358 +-- The kind of declaration can be "var" or "func".
  16.359 +function Declaration (s,kind)
  16.360 + -- eliminate spaces if default value is provided
  16.361 + s = gsub(s,"%s*=%s*","=")
  16.362 +
  16.363 + if kind == "var" then
  16.364 +  -- check the form: void
  16.365 +  if s == '' or s == 'void' then
  16.366 +   return _Declaration{type = 'void', kind = kind}
  16.367 +  end
  16.368 + end
  16.369 +
  16.370 + -- check the form: mod type*& name
  16.371 + local t = split(s,'%*%s*&')
  16.372 + if t.n == 2 then
  16.373 +  if kind == 'func' then
  16.374 +   error("#invalid function return type: "..s)
  16.375 +  end
  16.376 +  local m = split(t[1],'%s%s*')
  16.377 +  return _Declaration{
  16.378 +   name = t[2],
  16.379 +   ptr = '*',
  16.380 +   ret = '&',
  16.381 +   type = m[m.n],
  16.382 +   mod = concat(m,1,m.n-1),
  16.383 +   kind = kind
  16.384 +  }
  16.385 + end
  16.386 +
  16.387 + -- check the form: mod type** name
  16.388 + t = split(s,'%*%s*%*')
  16.389 + if t.n == 2 then
  16.390 +  if kind == 'func' then
  16.391 +   error("#invalid function return type: "..s)
  16.392 +  end
  16.393 +  local m = split(t[1],'%s%s*')
  16.394 +  return _Declaration{
  16.395 +   name = t[2],
  16.396 +   ptr = '*',
  16.397 +   ret = '*',
  16.398 +   type = m[m.n],
  16.399 +   mod = concat(m,1,m.n-1),
  16.400 +   kind = kind
  16.401 +  }
  16.402 + end
  16.403 + 
  16.404 + -- check the form: mod type& name
  16.405 + t = split(s,'&')
  16.406 + if t.n == 2 then
  16.407 +  local m = split(t[1],'%s%s*')
  16.408 +  return _Declaration{
  16.409 +   name = t[2],
  16.410 +   ptr = '&',
  16.411 +   type = m[m.n],
  16.412 +   mod = concat(m,1,m.n-1)   ,
  16.413 +   kind = kind
  16.414 +  }
  16.415 + end
  16.416 +  
  16.417 + -- check the form: mod type* name
  16.418 + local s1 = gsub(s,"(%b\[\])",function (n) return gsub(n,'%*','\1') end)
  16.419 + t = split(s1,'%*')
  16.420 + if t.n == 2 then
  16.421 +  t[2] = gsub(t[2],'\1','%*') -- restore * in dimension expression
  16.422 +  local m = split(t[1],'%s%s*')
  16.423 +  return _Declaration{
  16.424 +   name = t[2],
  16.425 +   ptr = '*',
  16.426 +   type = m[m.n],
  16.427 +   mod = concat(m,1,m.n-1)   ,
  16.428 +   kind = kind
  16.429 +  }
  16.430 + end
  16.431 +
  16.432 + if kind == 'var' then
  16.433 +  -- check the form: mod type name
  16.434 +  t = split(s,'%s%s*')
  16.435 +  local v
  16.436 +  if findtype(t[t.n]) then v = '' else v = t[t.n]; t.n = t.n-1 end
  16.437 +  return _Declaration{
  16.438 +   name = v,
  16.439 +   type = t[t.n],
  16.440 +   mod = concat(t,1,t.n-1),
  16.441 +   kind = kind
  16.442 +  }
  16.443 +
  16.444 + else -- kind == "func"
  16.445 + 
  16.446 +  -- check the form: mod type name
  16.447 +  t = split(s,'%s%s*')
  16.448 +  local v = t[t.n]  -- last word is the function name
  16.449 +  local tp,md
  16.450 +  if t.n>1 then
  16.451 +   tp = t[t.n-1]
  16.452 +   md = concat(t,1,t.n-2)
  16.453 +  end
  16.454 +  return _Declaration{
  16.455 +   name = v,
  16.456 +   type = tp,
  16.457 +   mod = md,
  16.458 +   kind = kind
  16.459 +  }
  16.460 + end
  16.461 +
  16.462 +end
  16.463 +
  16.464 +
  16.465 +
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/source/tolua/src/bin/lua/define.lua	Wed Nov 04 01:38:12 2009 +0000
    17.3 @@ -0,0 +1,58 @@
    17.4 +-- tolua: define class
    17.5 +-- Written by Waldemar Celes
    17.6 +-- TeCGraf/PUC-Rio
    17.7 +-- Jul 1998
    17.8 +-- $Id: define.lua,v 1.2 1999/07/28 22:21:08 celes Exp $
    17.9 +
   17.10 +-- This code is free software; you can redistribute it and/or modify it.
   17.11 +-- The software provided hereunder is on an "as is" basis, and
   17.12 +-- the author has no obligation to provide maintenance, support, updates,
   17.13 +-- enhancements, or modifications. 
   17.14 +
   17.15 +
   17.16 +-- Define class
   17.17 +-- Represents a numeric const definition
   17.18 +-- The following filds are stored:
   17.19 +--   name = constant name
   17.20 +classDefine = {
   17.21 + name = '',
   17.22 +}
   17.23 +classDefine.__index = classDefine
   17.24 +setmetatable(classDefine,classFeature)
   17.25 +
   17.26 +-- register define
   17.27 +function classDefine:register ()
   17.28 + output(' tolua_constant(tolua_S,"'..self.lname..'",'..self.name..');') 
   17.29 +end
   17.30 +
   17.31 +-- Print method
   17.32 +function classDefine:print (ident,close)
   17.33 + print(ident.."Define{")
   17.34 + print(ident.." name = '"..self.name.."',")
   17.35 + print(ident.." lname = '"..self.lname.."',")
   17.36 + print(ident.."}"..close)
   17.37 +end
   17.38 +
   17.39 +
   17.40 +-- Internal constructor
   17.41 +function _Define (t)
   17.42 + setmetatable(t,classDefine)
   17.43 + t:buildnames()
   17.44 +
   17.45 + if t.name == '' then
   17.46 +  error("#invalid define")
   17.47 + end
   17.48 +
   17.49 + append(t)
   17.50 + return t
   17.51 +end
   17.52 +
   17.53 +-- Constructor
   17.54 +-- Expects a string representing the constant name
   17.55 +function Define (n)
   17.56 + return _Define{
   17.57 +  name = n
   17.58 + }
   17.59 +end
   17.60 +
   17.61 +
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/source/tolua/src/bin/lua/doit.lua	Wed Nov 04 01:38:12 2009 +0000
    18.3 @@ -0,0 +1,63 @@
    18.4 +-- Generate binding code
    18.5 +-- Written by Waldemar Celes
    18.6 +-- TeCGraf/PUC-Rio
    18.7 +-- Jul 1998
    18.8 +-- Last update: Apr 2003
    18.9 +-- $Id: $
   18.10 +
   18.11 +
   18.12 +-- This code is free software; you can redistribute it and/or modify it.
   18.13 +-- The software provided hereunder is on an "as is" basis, and
   18.14 +-- the author has no obligation to provide maintenance, support, updates,
   18.15 +-- enhancements, or modifications. 
   18.16 +
   18.17 +function doit ()
   18.18 +	-- define package name, if not provided
   18.19 +	if not flags.n then
   18.20 +		if flags.f then
   18.21 +			flags.n = gsub(flags.f,"%..*","")
   18.22 +		else
   18.23 +			error("#no package name nor input file provided")
   18.24 +		end
   18.25 +	end
   18.26 +
   18.27 +	-- proccess package
   18.28 +	local p  = Package(flags.n,flags.f)
   18.29 +
   18.30 +	if flags.p then
   18.31 +		return        -- only parse
   18.32 +	end
   18.33 +
   18.34 +	if flags.o then
   18.35 +		local st,msg = writeto(flags.o)
   18.36 +		if not st then
   18.37 +			error('#'..msg)
   18.38 +		end
   18.39 +	end
   18.40 +
   18.41 +	p:decltype()
   18.42 +	if flags.P then
   18.43 +		p:print()
   18.44 +	else
   18.45 +		p:preamble()
   18.46 +		p:supcode()
   18.47 +		p:register()
   18.48 +	end
   18.49 +
   18.50 +	if flags.o then
   18.51 +		writeto()
   18.52 +	end
   18.53 +
   18.54 +	-- write header file
   18.55 +	if not flags.P then
   18.56 +		if flags.H then
   18.57 +			local st,msg = writeto(flags.H)
   18.58 +			if not st then
   18.59 +				error('#'..msg)
   18.60 +			end
   18.61 +			p:header()
   18.62 +			writeto()
   18.63 +		end
   18.64 +	end
   18.65 +end
   18.66 +
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/source/tolua/src/bin/lua/enumerate.lua	Wed Nov 04 01:38:12 2009 +0000
    19.3 @@ -0,0 +1,81 @@
    19.4 +-- tolua: enumerate class
    19.5 +-- Written by Waldemar Celes
    19.6 +-- TeCGraf/PUC-Rio
    19.7 +-- Jul 1998
    19.8 +-- $Id: enumerate.lua,v 1.3 2000/01/24 20:41:15 celes Exp $
    19.9 +
   19.10 +-- This code is free software; you can redistribute it and/or modify it.
   19.11 +-- The software provided hereunder is on an "as is" basis, and
   19.12 +-- the author has no obligation to provide maintenance, support, updates,
   19.13 +-- enhancements, or modifications. 
   19.14 +
   19.15 +
   19.16 +-- Enumerate class
   19.17 +-- Represents enumeration
   19.18 +-- The following fields are stored:
   19.19 +--    {i} = list of constant names
   19.20 +classEnumerate = {
   19.21 +}
   19.22 +classEnumerate.__index = classEnumerate
   19.23 +setmetatable(classEnumerate,classFeature)
   19.24 +
   19.25 +-- register enumeration
   19.26 +function classEnumerate:register ()
   19.27 + local nspace = getnamespace(classContainer.curr)
   19.28 + local i=1
   19.29 + while self[i] do
   19.30 +  output(' tolua_constant(tolua_S,"'..self.lnames[i]..'",'..nspace..self[i]..');')
   19.31 +  i = i+1
   19.32 + end
   19.33 +end
   19.34 +
   19.35 +-- Print method
   19.36 +function classEnumerate:print (ident,close)
   19.37 + print(ident.."Enumerate{")
   19.38 + print(ident.." name = "..self.name)
   19.39 + local i=1
   19.40 + while self[i] do
   19.41 +  print(ident.." '"..self[i].."'("..self.lnames[i].."),")
   19.42 +  i = i+1
   19.43 + end
   19.44 + print(ident.."}"..close)
   19.45 +end
   19.46 +
   19.47 +-- Internal constructor
   19.48 +function _Enumerate (t)
   19.49 + setmetatable(t,classEnumerate)
   19.50 + append(t)
   19.51 + appendenum(t)
   19.52 + return t
   19.53 +end
   19.54 +
   19.55 +-- Constructor
   19.56 +-- Expects a string representing the enumerate body
   19.57 +function Enumerate (n,b)
   19.58 + local t = split(strsub(b,2,-2),',') -- eliminate braces
   19.59 + local i = 1
   19.60 + local e = {n=0}
   19.61 + while t[i] do
   19.62 +  local tt = split(t[i],'=')  -- discard initial value
   19.63 +  e.n = e.n + 1
   19.64 +  e[e.n] = tt[1]
   19.65 +  i = i+1
   19.66 + end
   19.67 + -- set lua names
   19.68 + i  = 1
   19.69 + e.lnames = {}
   19.70 + while e[i] do
   19.71 +  local t = split(e[i],'@')
   19.72 +  e[i] = t[1]
   19.73 +		if not t[2] then
   19.74 +		 t[2] = applyrenaming(t[1])
   19.75 +		end
   19.76 +  e.lnames[i] = t[2] or t[1]
   19.77 +  i = i+1
   19.78 + end 
   19.79 +	e.name = n
   19.80 + Typedef("int "..n)
   19.81 + return _Enumerate(e)
   19.82 +end
   19.83 +
   19.84 +
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/source/tolua/src/bin/lua/feature.lua	Wed Nov 04 01:38:12 2009 +0000
    20.3 @@ -0,0 +1,99 @@
    20.4 +-- tolua: abstract feature class
    20.5 +-- Written by Waldemar Celes
    20.6 +-- TeCGraf/PUC-Rio
    20.7 +-- Jul 1998
    20.8 +-- $Id: $
    20.9 +
   20.10 +-- This code is free software; you can redistribute it and/or modify it.
   20.11 +-- The software provided hereunder is on an "as is" basis, and
   20.12 +-- the author has no obligation to provide maintenance, support, updates,
   20.13 +-- enhancements, or modifications. 
   20.14 +
   20.15 +
   20.16 +-- Feature class
   20.17 +-- Represents the base class of all mapped feature.
   20.18 +classFeature = {
   20.19 +}
   20.20 +classFeature.__index = classFeature
   20.21 +
   20.22 +-- write support code
   20.23 +function classFeature:supcode ()
   20.24 +end
   20.25 +
   20.26 +-- output tag
   20.27 +function classFeature:decltype ()
   20.28 +end
   20.29 +
   20.30 +-- register feature
   20.31 +function classFeature:register ()
   20.32 +end
   20.33 +
   20.34 +-- translate verbatim
   20.35 +function classFeature:preamble ()
   20.36 +end
   20.37 +
   20.38 +-- check if it is a variable
   20.39 +function classFeature:isvariable ()
   20.40 + return false
   20.41 +end
   20.42 +
   20.43 +-- checi if it requires collection
   20.44 +function classFeature:requirecollection (t)
   20.45 + return false
   20.46 +end
   20.47 +
   20.48 +-- build names
   20.49 +function classFeature:buildnames ()
   20.50 + if self.name and self.name~='' then
   20.51 +  local n = split(self.name,'@')
   20.52 +  self.name = n[1]
   20.53 +		if not n[2] then
   20.54 +		 n[2] = applyrenaming(n[1])
   20.55 +		end
   20.56 +  self.lname = n[2] or gsub(n[1],"%[.-%]","")
   20.57 + end
   20.58 + self.name = getonlynamespace() .. self.name
   20.59 +end
   20.60 +
   20.61 +
   20.62 +-- check if feature is inside a container definition
   20.63 +-- it returns the container class name or nil.
   20.64 +function classFeature:incontainer (which)
   20.65 + if self.parent then
   20.66 +  local parent = self.parent
   20.67 +  while parent do
   20.68 +   if parent.classtype == which then
   20.69 +    return parent.name
   20.70 +   end
   20.71 +   parent = parent.parent
   20.72 +  end
   20.73 + end
   20.74 + return nil
   20.75 +end
   20.76 +
   20.77 +function classFeature:inclass ()
   20.78 + return self:incontainer('class')
   20.79 +end
   20.80 +
   20.81 +function classFeature:inmodule ()
   20.82 + return self:incontainer('module')
   20.83 +end
   20.84 +
   20.85 +function classFeature:innamespace ()
   20.86 + return self:incontainer('namespace')
   20.87 +end
   20.88 +
   20.89 +-- return C binding function name based on name
   20.90 +-- the client specifies a prefix
   20.91 +function classFeature:cfuncname (n)
   20.92 + if self.parent then
   20.93 +  n = self.parent:cfuncname(n)
   20.94 + end
   20.95 +
   20.96 +-- if self.lname then
   20.97 +--  return n..'_'..self.lname
   20.98 +-- else
   20.99 +  return n..'_'..self.name
  20.100 +-- end
  20.101 +end
  20.102 +
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/source/tolua/src/bin/lua/function.lua	Wed Nov 04 01:38:12 2009 +0000
    21.3 @@ -0,0 +1,345 @@
    21.4 +-- tolua: function class
    21.5 +-- Written by Waldemar Celes
    21.6 +-- TeCGraf/PUC-Rio
    21.7 +-- Jul 1998
    21.8 +-- $Id: $
    21.9 +
   21.10 +-- This code is free software; you can redistribute it and/or modify it.
   21.11 +-- The software provided hereunder is on an "as is" basis, and
   21.12 +-- the author has no obligation to provide maintenance, support, updates,
   21.13 +-- enhancements, or modifications. 
   21.14 +
   21.15 +
   21.16 +
   21.17 +-- Function class
   21.18 +-- Represents a function or a class method.
   21.19 +-- The following fields are stored:
   21.20 +--  mod  = type modifiers
   21.21 +--  type = type
   21.22 +--  ptr  = "*" or "&", if representing a pointer or a reference
   21.23 +--  name = name
   21.24 +--  lname = lua name
   21.25 +--  args  = list of argument declarations
   21.26 +--  const = if it is a method receiving a const "this".
   21.27 +classFunction = {
   21.28 + mod = '',
   21.29 + type = '',
   21.30 + ptr = '',
   21.31 + name = '',
   21.32 + args = {n=0},
   21.33 + const = '',
   21.34 +}
   21.35 +classFunction.__index = classFunction
   21.36 +setmetatable(classFunction,classFeature)
   21.37 +
   21.38 +-- declare tags
   21.39 +function classFunction:decltype ()
   21.40 + self.type = typevar(self.type)
   21.41 + if strfind(self.mod,'const') then
   21.42 +	 self.type = 'const '..self.type
   21.43 +		self.mod = gsub(self.mod,'const%s*','')
   21.44 +	end
   21.45 + local i=1
   21.46 + while self.args[i] do
   21.47 +  self.args[i]:decltype()
   21.48 +  i = i+1
   21.49 + end
   21.50 +end
   21.51 +
   21.52 +
   21.53 +-- Write binding function
   21.54 +-- Outputs C/C++ binding function.
   21.55 +function classFunction:supcode ()
   21.56 + local overload = strsub(self.cname,-2,-1) - 1  -- indicate overloaded func
   21.57 + local nret = 0      -- number of returned values
   21.58 + local class = self:inclass()
   21.59 + local _,_,static = strfind(self.mod,'^%s*(static)')
   21.60 +
   21.61 + if class then
   21.62 +  output("/* method:",self.name," of class ",class," */")
   21.63 + else
   21.64 +  output("/* function:",self.name," */")
   21.65 + end
   21.66 + output("static int",self.cname,"(lua_State* tolua_S)")
   21.67 + output("{")
   21.68 +
   21.69 + -- check types
   21.70 +	if overload < 0 then
   21.71 +	 output('#ifndef TOLUA_RELEASE\n')
   21.72 +	end
   21.73 +	output(' tolua_Error tolua_err;')
   21.74 + output(' if (\n')
   21.75 + -- check self
   21.76 + local narg
   21.77 + if class then narg=2 else narg=1 end
   21.78 + if class then
   21.79 +	 local func = 'tolua_isusertype'
   21.80 +		local type = self.parent.type
   21.81 +	 if self.name=='new' or static~=nil then
   21.82 +		 func = 'tolua_isusertable'
   21.83 +			type = self.parent.type
   21.84 +		end
   21.85 +		output('     !'..func..'(tolua_S,1,"'..type..'",0,&tolua_err) ||\n') 
   21.86 + end
   21.87 + -- check args
   21.88 + if self.args[1].type ~= 'void' then
   21.89 +  local i=1
   21.90 +  while self.args[i] do
   21.91 +   if isbasic(self.args[i].type) ~= 'value' then
   21.92 +    output('     !'..self.args[i]:outchecktype(narg)..' ||\n')
   21.93 +   end
   21.94 +   narg = narg+1
   21.95 +   i = i+1
   21.96 +  end
   21.97 + end
   21.98 + -- check end of list 
   21.99 + output('     !tolua_isnoobj(tolua_S,'..narg..',&tolua_err)\n )')
  21.100 +	output('  goto tolua_lerror;')
  21.101 +
  21.102 + output(' else\n')
  21.103 +	if overload < 0 then
  21.104 +	 output('#endif\n')
  21.105 +	end
  21.106 +	output(' {')
  21.107 + 
  21.108 + -- declare self, if the case
  21.109 + local narg
  21.110 + if class then narg=2 else narg=1 end
  21.111 + if class and self.name~='new' and static==nil then
  21.112 +  output(' ',self.const,self.parent.type,'*','self = ')
  21.113 +  output('(',self.const,self.parent.type,'*) ')
  21.114 +  output('tolua_tousertype(tolua_S,1,0);')
  21.115 + elseif static then
  21.116 +  _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
  21.117 + end
  21.118 + -- declare parameters
  21.119 + if self.args[1].type ~= 'void' then
  21.120 +  local i=1
  21.121 +  while self.args[i] do
  21.122 +   self.args[i]:declare(narg)
  21.123 +   narg = narg+1
  21.124 +   i = i+1
  21.125 +  end
  21.126 + end
  21.127 +
  21.128 + -- check self
  21.129 + if class and self.name~='new' and static==nil then 
  21.130 +	 output('#ifndef TOLUA_RELEASE\n')
  21.131 +  output('  if (!self) tolua_error(tolua_S,"invalid \'self\' in function \''..self.name..'\'",NULL);');
  21.132 +	 output('#endif\n')
  21.133 + end
  21.134 +
  21.135 + -- get array element values
  21.136 + if class then narg=2 else narg=1 end
  21.137 + if self.args[1].type ~= 'void' then
  21.138 +  local i=1
  21.139 +  while self.args[i] do
  21.140 +   self.args[i]:getarray(narg)
  21.141 +   narg = narg+1
  21.142 +   i = i+1
  21.143 +  end
  21.144 + end
  21.145 +
  21.146 + -- call function
  21.147 + if class and self.name=='delete' then
  21.148 +  output('  delete self;')
  21.149 + elseif class and self.name == 'operator&[]' then
  21.150 +  output('  self->operator[](',self.args[1].name,'-1) = ',self.args[2].name,';')
  21.151 + else
  21.152 +  output('  {')
  21.153 +  if self.type ~= '' and self.type ~= 'void' then
  21.154 +   output('  ',self.mod,self.type,self.ptr,'tolua_ret = ')
  21.155 +   output('(',self.mod,self.type,self.ptr,') ')
  21.156 +  else
  21.157 +   output('  ')
  21.158 +  end
  21.159 +  if class and self.name=='new' then
  21.160 +   output('new',self.type,'(')
  21.161 +  elseif class and static then
  21.162 +   output(class..'::'..self.name,'(')
  21.163 +  elseif class then
  21.164 +   output('self->'..self.name,'(')
  21.165 +  else
  21.166 +   output(self.name,'(')
  21.167 +  end
  21.168 +
  21.169 +  -- write parameters
  21.170 +  local i=1
  21.171 +  while self.args[i] do
  21.172 +   self.args[i]:passpar()
  21.173 +   i = i+1
  21.174 +   if self.args[i] then
  21.175 +    output(',')
  21.176 +   end
  21.177 +  end
  21.178 +     
  21.179 +  if class and self.name == 'operator[]' then
  21.180 +   output('-1);')
  21.181 +		else
  21.182 +   output(');')
  21.183 +		end
  21.184 +
  21.185 +  -- return values
  21.186 +  if self.type ~= '' and self.type ~= 'void' then
  21.187 +   nret = nret + 1
  21.188 +   local t,ct = isbasic(self.type)
  21.189 +   if t then
  21.190 +    output('   tolua_push'..t..'(tolua_S,(',ct,')tolua_ret);')
  21.191 +   else
  21.192 +			 t = self.type
  21.193 +    if self.ptr == '' then
  21.194 +     output('   {')
  21.195 +     output('#ifdef __cplusplus\n')
  21.196 +     output('    void* tolua_obj = new',t,'(tolua_ret);') 
  21.197 +     output('    tolua_pushusertype(tolua_S,tolua_clone(tolua_S,tolua_obj,tolua_collect_'.._collect[t]..'),"',t,'");')
  21.198 +     output('#else\n')
  21.199 +     output('    void* tolua_obj = tolua_copy(tolua_S,(void*)&tolua_ret,sizeof(',t,'));')
  21.200 +     output('    tolua_pushusertype(tolua_S,tolua_clone(tolua_S,tolua_obj,tolua_collect),"',t,'");')
  21.201 +     output('#endif\n')
  21.202 +     output('   }')
  21.203 +    elseif self.ptr == '&' then
  21.204 +     output('   tolua_pushusertype(tolua_S,(void*)&tolua_ret,"',t,'");')
  21.205 +    else
  21.206 +     output('   tolua_pushusertype(tolua_S,(void*)tolua_ret,"',t,'");')
  21.207 +    end
  21.208 +   end
  21.209 +  end
  21.210 +  local i=1
  21.211 +  while self.args[i] do
  21.212 +   nret = nret + self.args[i]:retvalue()
  21.213 +   i = i+1
  21.214 +  end
  21.215 +  output('  }')
  21.216 +
  21.217 +  -- set array element values
  21.218 +  if class then narg=2 else narg=1 end
  21.219 +  if self.args[1].type ~= 'void' then
  21.220 +   local i=1
  21.221 +   while self.args[i] do
  21.222 +    self.args[i]:setarray(narg)
  21.223 +    narg = narg+1
  21.224 +    i = i+1
  21.225 +   end
  21.226 +  end
  21.227 + 
  21.228 +  -- free dynamically allocated array
  21.229 +  if self.args[1].type ~= 'void' then
  21.230 +   local i=1
  21.231 +   while self.args[i] do
  21.232 +    self.args[i]:freearray()
  21.233 +    i = i+1
  21.234 +   end
  21.235 +  end
  21.236 + end
  21.237 +
  21.238 + output(' }')
  21.239 + output(' return '..nret..';')
  21.240 +
  21.241 + -- call overloaded function or generate error
  21.242 +	if overload < 0 then
  21.243 +	 output('#ifndef TOLUA_RELEASE\n')
  21.244 +  output('tolua_lerror:\n')
  21.245 +  output(' tolua_error(tolua_S,"#ferror in function \''..self.lname..'\'.",&tolua_err);')
  21.246 +  output(' return 0;')
  21.247 +  output('#endif\n')
  21.248 +	else
  21.249 +  output('tolua_lerror:\n')
  21.250 +  output(' return '..strsub(self.cname,1,-3)..format("%02d",overload)..'(tolua_S);')
  21.251 + end
  21.252 + output('}')
  21.253 + output('\n')
  21.254 +end
  21.255 +
  21.256 +
  21.257 +-- register function
  21.258 +function classFunction:register ()
  21.259 + output(' tolua_function(tolua_S,"'..self.lname..'",'..self.cname..');')
  21.260 +end
  21.261 +
  21.262 +-- Print method
  21.263 +function classFunction:print (ident,close)
  21.264 + print(ident.."Function{")
  21.265 + print(ident.." mod  = '"..self.mod.."',")
  21.266 + print(ident.." type = '"..self.type.."',")
  21.267 + print(ident.." ptr  = '"..self.ptr.."',")
  21.268 + print(ident.." name = '"..self.name.."',")
  21.269 + print(ident.." lname = '"..self.lname.."',")
  21.270 + print(ident.." const = '"..self.const.."',")
  21.271 + print(ident.." cname = '"..self.cname.."',")
  21.272 + print(ident.." lname = '"..self.lname.."',")
  21.273 + print(ident.." args = {")
  21.274 + local i=1
  21.275 + while self.args[i] do
  21.276 +  self.args[i]:print(ident.."  ",",")
  21.277 +  i = i+1
  21.278 + end
  21.279 + print(ident.." }")
  21.280 + print(ident.."}"..close)
  21.281 +end
  21.282 +
  21.283 +-- check if it returns a object by value
  21.284 +function classFunction:requirecollection (t)
  21.285 +	local r = false
  21.286 +	if self.type ~= '' and not isbasic(self.type) and self.ptr=='' then
  21.287 +	 t[self.type] = gsub(self.type,"::","_")
  21.288 +	 r = true
  21.289 +	end
  21.290 +	local i=1
  21.291 +	while self.args[i] do
  21.292 +		r = self.args[i]:requirecollection(t) or r
  21.293 +		i = i+1
  21.294 +	end
  21.295 +	return r
  21.296 +end
  21.297 +
  21.298 +-- determine lua function name overload
  21.299 +function classFunction:overload ()
  21.300 + return self.parent:overload(self.lname)
  21.301 +end
  21.302 +
  21.303 +
  21.304 +
  21.305 +-- Internal constructor
  21.306 +function _Function (t)
  21.307 + setmetatable(t,classFunction)
  21.308 +
  21.309 + if t.const ~= 'const' and t.const ~= '' then
  21.310 +  error("#invalid 'const' specification")
  21.311 + end
  21.312 +
  21.313 + append(t)
  21.314 + if t:inclass() then
  21.315 +  if t.name == t.parent.name then
  21.316 +   t.name = 'new'
  21.317 +   t.lname = 'new'
  21.318 +   t.type = t.parent.name
  21.319 +   t.ptr = '*'
  21.320 +  elseif t.name == '~'..t.parent.name then
  21.321 +   t.name = 'delete'
  21.322 +   t.lname = 'delete'
  21.323 +  end
  21.324 + end
  21.325 + t.cname = t:cfuncname("tolua")..t:overload(t)
  21.326 + return t
  21.327 +end
  21.328 +
  21.329 +-- Constructor
  21.330 +-- Expects three strings: one representing the function declaration,
  21.331 +-- another representing the argument list, and the third representing
  21.332 +-- the "const" or empty string.
  21.333 +function Function (d,a,c)
  21.334 + local t = split(strsub(a,2,-2),',') -- eliminate braces
  21.335 + local i=1
  21.336 + local l = {n=0}
  21.337 + while t[i] do
  21.338 +  l.n = l.n+1
  21.339 +  l[l.n] = Declaration(t[i],'var')
  21.340 +  i = i+1
  21.341 + end
  21.342 + local f = Declaration(d,'func')
  21.343 + f.args = l
  21.344 + f.const = c
  21.345 + return _Function(f)
  21.346 +end
  21.347 +
  21.348 +
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/source/tolua/src/bin/lua/module.lua	Wed Nov 04 01:38:12 2009 +0000
    22.3 @@ -0,0 +1,67 @@
    22.4 +-- tolua: module class
    22.5 +-- Written by Waldemar Celes
    22.6 +-- TeCGraf/PUC-Rio
    22.7 +-- Jul 1998
    22.8 +-- $Id: $
    22.9 +
   22.10 +-- This code is free software; you can redistribute it and/or modify it.
   22.11 +-- The software provided hereunder is on an "as is" basis, and
   22.12 +-- the author has no obligation to provide maintenance, support, updates,
   22.13 +-- enhancements, or modifications. 
   22.14 +
   22.15 +
   22.16 +
   22.17 +-- Module class
   22.18 +-- Represents module.
   22.19 +-- The following fields are stored:
   22.20 +--    {i} = list of objects in the module.
   22.21 +classModule = {
   22.22 + classtype = 'module'
   22.23 +}
   22.24 +classModule.__index = classModule
   22.25 +setmetatable(classModule,classContainer)
   22.26 +
   22.27 +-- register module
   22.28 +function classModule:register ()
   22.29 + push(self)
   22.30 + output(' tolua_module(tolua_S,"'..self.name..'",',self:hasvar(),');')
   22.31 +	output(' tolua_beginmodule(tolua_S,"'..self.name..'");')
   22.32 + local i=1
   22.33 + while self[i] do
   22.34 +  self[i]:register()
   22.35 +  i = i+1
   22.36 + end
   22.37 +	output(' tolua_endmodule(tolua_S);')
   22.38 +	pop()
   22.39 +end
   22.40 +
   22.41 +-- Print method
   22.42 +function classModule:print (ident,close)
   22.43 + print(ident.."Module{")
   22.44 + print(ident.." name = '"..self.name.."';")
   22.45 + local i=1
   22.46 + while self[i] do
   22.47 +  self[i]:print(ident.." ",",")
   22.48 +  i = i+1
   22.49 + end
   22.50 + print(ident.."}"..close)
   22.51 +end
   22.52 +
   22.53 +-- Internal constructor
   22.54 +function _Module (t)
   22.55 + setmetatable(t,classModule)
   22.56 + append(t)
   22.57 + return t
   22.58 +end
   22.59 +
   22.60 +-- Constructor
   22.61 +-- Expects two string representing the module name and body.
   22.62 +function Module (n,b)
   22.63 + local t = _Module(_Container{name=n})
   22.64 + push(t)
   22.65 + t:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces
   22.66 + pop()
   22.67 + return t
   22.68 +end
   22.69 +
   22.70 +
    23.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.2 +++ b/source/tolua/src/bin/lua/namespace.lua	Wed Nov 04 01:38:12 2009 +0000
    23.3 @@ -0,0 +1,52 @@
    23.4 +-- tolua: namespace class
    23.5 +-- Written by Waldemar Celes
    23.6 +-- TeCGraf/PUC-Rio
    23.7 +-- Jul 2003
    23.8 +-- $Id: $
    23.9 +
   23.10 +-- This code is free software; you can redistribute it and/or modify it.
   23.11 +-- The software provided hereunder is on an "as is" basis, and
   23.12 +-- the author has no obligation to provide maintenance, support, updates,
   23.13 +-- enhancements, or modifications.
   23.14 +
   23.15 +
   23.16 +-- Namespace class
   23.17 +-- Represents a namesapce definition.
   23.18 +-- Stores the following fields:
   23.19 +--    name = class name
   23.20 +--    {i}  = list of members
   23.21 +classNamespace = {
   23.22 + classtype = 'namespace',
   23.23 + name = '',
   23.24 +}
   23.25 +classNamespace.__index = classNamespace
   23.26 +setmetatable(classNamespace,classModule)
   23.27 +
   23.28 +-- Print method
   23.29 +function classNamespace:print (ident,close)
   23.30 + print(ident.."Namespace{")
   23.31 + print(ident.." name = '"..self.name.."',")
   23.32 + local i=1
   23.33 + while self[i] do
   23.34 +  self[i]:print(ident.." ",",")
   23.35 +  i = i+1
   23.36 + end
   23.37 + print(ident.."}"..close)
   23.38 +end
   23.39 +
   23.40 +-- Internal constructor
   23.41 +function _Namespace (t)
   23.42 + setmetatable(t,classNamespace)
   23.43 + append(t)
   23.44 + return t
   23.45 +end
   23.46 +
   23.47 +-- Constructor
   23.48 +-- Expects the name and the body of the namespace.
   23.49 +function Namespace (n,b)
   23.50 + local c = _Namespace(_Container{name=n})
   23.51 + push(c)
   23.52 + c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces
   23.53 + pop()
   23.54 +end
   23.55 +
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/source/tolua/src/bin/lua/operator.lua	Wed Nov 04 01:38:12 2009 +0000
    24.3 @@ -0,0 +1,113 @@
    24.4 +-- tolua: operator class
    24.5 +-- Written by Waldemar Celes
    24.6 +-- TeCGraf/PUC-Rio
    24.7 +-- Jul 1998
    24.8 +-- $Id: $
    24.9 +
   24.10 +-- This code is free software; you can redistribute it and/or modify it.
   24.11 +-- The software provided hereunder is on an "as is" basis, and
   24.12 +-- the author has no obligation to provide maintenance, support, updates,
   24.13 +-- enhancements, or modifications. 
   24.14 +
   24.15 +
   24.16 +-- Operator class
   24.17 +-- Represents an operator function or a class operator method.
   24.18 +-- It stores the same fields as functions do plus:
   24.19 +--  kind = set of character representing the operator (as it appers in C++ code)
   24.20 +classOperator = {
   24.21 + kind = '',
   24.22 +}
   24.23 +classOperator.__index = classOperator
   24.24 +setmetatable(classOperator,classFunction)
   24.25 +
   24.26 +-- table to transform operator kind into the appropriate tag method name
   24.27 +_TM = {['+'] = 'add',
   24.28 +       ['-'] = 'sub',
   24.29 +       ['*'] = 'mul',
   24.30 +       ['/'] = 'div',
   24.31 +       ['<'] = 'lt',
   24.32 +       ['<='] = 'le',
   24.33 +       ['=='] = 'eq',
   24.34 +       ['[]'] = 'geti',
   24.35 +       ['&[]'] = 'seti',
   24.36 +      }
   24.37 +       
   24.38 +
   24.39 +-- Print method
   24.40 +function classOperator:print (ident,close)
   24.41 + print(ident.."Operator{")
   24.42 + print(ident.." kind  = '"..self.kind.."',")
   24.43 + print(ident.." mod  = '"..self.mod.."',")
   24.44 + print(ident.." type = '"..self.type.."',")
   24.45 + print(ident.." ptr  = '"..self.ptr.."',")
   24.46 + print(ident.." name = '"..self.name.."',")
   24.47 + print(ident.." const = '"..self.const.."',")
   24.48 + print(ident.." cname = '"..self.cname.."',")
   24.49 + print(ident.." lname = '"..self.lname.."',")
   24.50 + print(ident.." args = {")
   24.51 + local i=1
   24.52 + while self.args[i] do
   24.53 +  self.args[i]:print(ident.."  ",",")
   24.54 +  i = i+1
   24.55 + end
   24.56 + print(ident.." }")
   24.57 + print(ident.."}"..close)
   24.58 +end
   24.59 +
   24.60 +-- Internal constructor
   24.61 +function _Operator (t)
   24.62 + setmetatable(t,classOperator)
   24.63 +
   24.64 + if t.const ~= 'const' and t.const ~= '' then
   24.65 +  error("#invalid 'const' specification")
   24.66 + end
   24.67 +
   24.68 + append(t)
   24.69 + if not t:inclass() then
   24.70 +  error("#operator can only be defined as class member")
   24.71 + end
   24.72 +
   24.73 + t.name = t.name .. "_" .. _TM[t.kind]
   24.74 + t.cname = t:cfuncname("tolua")..t:overload(t)
   24.75 + t.name = "operator" .. t.kind  -- set appropriate calling name
   24.76 + return t
   24.77 +end
   24.78 +
   24.79 +-- Constructor
   24.80 +function Operator (d,k,a,c)
   24.81 +	local ref = ''
   24.82 + local t = split(strsub(a,2,strlen(a)-1),',') -- eliminate braces
   24.83 + local i=1
   24.84 + local l = {n=0}
   24.85 + while t[i] do
   24.86 +  l.n = l.n+1
   24.87 +  l[l.n] = Declaration(t[i],'var')
   24.88 +  i = i+1
   24.89 + end
   24.90 + if k == '[]' then
   24.91 +	 local _
   24.92 +	 _, _, ref = strfind(d,'(&)')
   24.93 +  d = gsub(d,'&','')
   24.94 + elseif k=='&[]' then
   24.95 +  l.n = l.n+1
   24.96 +  l[l.n] = Declaration(d,'var')
   24.97 +  l[l.n].name = 'tolua_value'
   24.98 + end
   24.99 + local f = Declaration(d,'func')
  24.100 + if k == '[]' and (l[1]==nil or isbasic(l[1].type)~='number') then
  24.101 +  error('operator[] can only be defined for numeric index.')
  24.102 + end
  24.103 + f.args = l
  24.104 + f.const = c
  24.105 + f.kind = gsub(k,"%s","")
  24.106 + if not _TM[f.kind] then
  24.107 +  error("tolua: no support for operator" .. f.kind)
  24.108 + end
  24.109 + f.lname = ".".._TM[f.kind]
  24.110 + if f.kind == '[]' and ref=='&' and f.const~='const' then
  24.111 +  Operator(d,'&'..k,a,c) 	-- create correspoding set operator
  24.112 + end
  24.113 + return _Operator(f)
  24.114 +end
  24.115 +
  24.116 +
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/source/tolua/src/bin/lua/package.lua	Wed Nov 04 01:38:12 2009 +0000
    25.3 @@ -0,0 +1,278 @@
    25.4 +-- tolua: package class
    25.5 +-- Written by Waldemar Celes
    25.6 +-- TeCGraf/PUC-Rio
    25.7 +-- Jul 1998
    25.8 +-- $Id: $
    25.9 +
   25.10 +-- This code is free software; you can redistribute it and/or modify it.
   25.11 +-- The software provided hereunder is on an "as is" basis, and
   25.12 +-- the author has no obligation to provide maintenance, support, updates,
   25.13 +-- enhancements, or modifications. 
   25.14 +
   25.15 +
   25.16 +
   25.17 +-- Package class
   25.18 +-- Represents the whole package being bound.
   25.19 +-- The following fields are stored:
   25.20 +--    {i} = list of objects in the package.
   25.21 +classPackage = {
   25.22 + classtype = 'package'
   25.23 +}
   25.24 +classPackage.__index = classPackage
   25.25 +setmetatable(classPackage,classContainer)
   25.26 +
   25.27 +-- Print method
   25.28 +function classPackage:print ()
   25.29 + print("Package: "..self.name)
   25.30 + local i=1
   25.31 + while self[i] do
   25.32 +  self[i]:print("","")
   25.33 +  i = i+1
   25.34 + end
   25.35 +end
   25.36 +
   25.37 +function classPackage:preprocess ()
   25.38 + -- avoid preprocessing embedded Lua code
   25.39 + local L = {}
   25.40 + self.code = gsub(self.code,"\n%s*%$%[","\1") -- deal with embedded C code
   25.41 + self.code = gsub(self.code,"\n%s*%$%]","\2")
   25.42 + self.code = gsub(self.code,"(%b\1\2)",       function (c)
   25.43 +                                               tinsert(L,c)
   25.44 +                                               return "\n#["..getn(L).."]#" 
   25.45 +                                              end)
   25.46 + -- avoid preprocessing embedded C code
   25.47 + local C = {}
   25.48 + self.code = gsub(self.code,"\n%s*%$%<","\3") -- deal with embedded C code
   25.49 + self.code = gsub(self.code,"\n%s*%$%>","\4")
   25.50 + self.code = gsub(self.code,"(%b\3\4)",       function (c)
   25.51 +                                               tinsert(C,c)
   25.52 +                                               return "\n#<"..getn(C)..">#" 
   25.53 +                                              end)
   25.54 +
   25.55 + -- avoid preprocessing verbatim lines
   25.56 + local V = {}
   25.57 + self.code = gsub(self.code,"\n(%s*%$[^%[%]][^\n]*)",function (v)
   25.58 +                                               tinsert(V,v)
   25.59 +                                               return "\n#"..getn(V).."#" 
   25.60 +                                              end)
   25.61 + -- perform global substitution
   25.62 +
   25.63 + self.code = gsub(self.code,"(//[^\n]*)","")     -- eliminate C++ comments
   25.64 + self.code = gsub(self.code,"/%*","\1")
   25.65 + self.code = gsub(self.code,"%*/","\2")
   25.66 + self.code = gsub(self.code,"%b\1\2","")
   25.67 + self.code = gsub(self.code,"\1","/%*")
   25.68 + self.code = gsub(self.code,"\2","%*/")
   25.69 + self.code = gsub(self.code,"%s*@%s*","@") -- eliminate spaces beside @
   25.70 + self.code = gsub(self.code,"%s?inline(%s)","%1") -- eliminate 'inline' keyword
   25.71 + self.code = gsub(self.code,"%s?extern(%s)","%1") -- eliminate 'extern' keyword
   25.72 + self.code = gsub(self.code,"%s?virtual(%s)","%1") -- eliminate 'virtual' keyword
   25.73 + self.code = gsub(self.code,"public:","") -- eliminate 'public:' keyword
   25.74 + self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*'
   25.75 + self.code = gsub(self.code,"([^%w_])void%s*%*","%1_userdata ") -- substitute 'void*'
   25.76 + self.code = gsub(self.code,"([^%w_])char%s*%*","%1_cstring ")  -- substitute 'char*'
   25.77 +
   25.78 + -- restore embedded code
   25.79 + self.code = gsub(self.code,"%#%[(%d+)%]%#",function (n)
   25.80 +                                             return L[tonumber(n)]
   25.81 +                                            end)
   25.82 + -- restore embedded code
   25.83 + self.code = gsub(self.code,"%#%<(%d+)%>%#",function (n)
   25.84 +                                             return C[tonumber(n)]
   25.85 +                                            end)
   25.86 + -- restore verbatim lines
   25.87 + self.code = gsub(self.code,"%#(%d+)%#",function (n)
   25.88 +                                         return V[tonumber(n)]
   25.89 +                                        end)
   25.90 +end
   25.91 +
   25.92 +-- translate verbatim
   25.93 +function classPackage:preamble ()
   25.94 + output('/*\n')
   25.95 + output('** Lua binding: '..self.name..'\n')
   25.96 + output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n')
   25.97 + output('*/\n\n')
   25.98 +
   25.99 +	output('#ifndef __cplusplus\n')
  25.100 +	output('#include "stdlib.h"\n')
  25.101 +	output('#endif\n')
  25.102 +	output('#include "string.h"\n\n')
  25.103 + output('#include "tolua.h"\n\n')
  25.104 +
  25.105 + if not flags.h then
  25.106 +  output('/* Exported function */')
  25.107 +  output('TOLUA_API int  tolua_'..self.name..'_open (lua_State* tolua_S);')
  25.108 +  output('LUALIB_API int  luaopen_'..self.name..' (lua_State* tolua_S);')
  25.109 +  output('\n')
  25.110 + end
  25.111 +
  25.112 + local i=1
  25.113 + while self[i] do
  25.114 +  self[i]:preamble()
  25.115 +  i = i+1
  25.116 + end
  25.117 +
  25.118 +
  25.119 +
  25.120 +	if self:requirecollection(_collect) then
  25.121 +		output('\n')
  25.122 +		output('/* function to release collected object */')
  25.123 +		output('#ifdef __cplusplus\n')
  25.124 +		for i,v in pairs(_collect) do
  25.125 +		 output('static int tolua_collect_'..v..' (lua_State* tolua_S)')
  25.126 +			output('{')
  25.127 +			output(' '..i..'* self = ('..i..'*) tolua_tousertype(tolua_S,1,0);')
  25.128 +			output('	delete self;')
  25.129 +			output('	return 0;')
  25.130 +			output('}\n')
  25.131 +		end
  25.132 +		output('#else\nstatic int tolua_collect (lua_State* tolua_S)')
  25.133 +		output('{')
  25.134 +		output('	void* self = tolua_tousertype(tolua_S,1,0);')
  25.135 +		output('	free(self);')
  25.136 +		output('	return 0;')
  25.137 +		output('}')
  25.138 +		output('#endif\n\n')
  25.139 +	end
  25.140 +
  25.141 + output('\n')
  25.142 + output('/* function to register type */')
  25.143 + output('static void tolua_reg_types (lua_State* tolua_S)')
  25.144 + output('{')
  25.145 + foreach(_usertype,function(n,v) output(' tolua_usertype(tolua_S,"',v,'");') end)
  25.146 + output('}')
  25.147 + output('\n')
  25.148 +end
  25.149 +
  25.150 +-- register package
  25.151 +-- write package open function
  25.152 +function classPackage:register ()
  25.153 + push(self)
  25.154 +
  25.155 + output("/* Open lib function */")
  25.156 + output('LUALIB_API int  luaopen_'..self.name..' (lua_State* tolua_S)')
  25.157 + output("{")
  25.158 + output(" tolua_open(tolua_S);")
  25.159 + output(" tolua_reg_types(tolua_S);")
  25.160 + output(" tolua_module(tolua_S,NULL,",self:hasvar(),");")
  25.161 + output(" tolua_beginmodule(tolua_S,NULL);")
  25.162 + local i=1
  25.163 + while self[i] do
  25.164 +  self[i]:register()
  25.165 +  i = i+1
  25.166 + end
  25.167 + output(" tolua_endmodule(tolua_S);")
  25.168 + output(" return 1;")
  25.169 + output("}")
  25.170 +
  25.171 + output("/* Open tolua function */")
  25.172 + output("TOLUA_API int tolua_"..self.name.."_open (lua_State* tolua_S)")
  25.173 + output("{")
  25.174 + output("  lua_pushcfunction(tolua_S, luaopen_"..self.name..");")
  25.175 + output('  lua_pushstring(tolua_S, "'..self.name..'");')
  25.176 + output("  lua_call(tolua_S, 1, 0);")
  25.177 + output("  return 1;")
  25.178 + output("}")
  25.179 +
  25.180 + pop()
  25.181 +end
  25.182 +
  25.183 +-- write header file
  25.184 +function classPackage:header ()
  25.185 + output('/*\n') output('** Lua binding: '..self.name..'\n')
  25.186 + output('** Generated automatically by '..TOLUA_VERSION..' on '..date()..'.\n')
  25.187 + output('*/\n\n')
  25.188 +
  25.189 + if not flags.h then
  25.190 +  output('/* Exported function */')
  25.191 +  output('TOLUA_API int  tolua_'..self.name..'_open (lua_State* tolua_S);')
  25.192 +  output('LUALIB_API int  luaopen_'..self.name..' (lua_State* tolua_S);')
  25.193 +  output('\n')
  25.194 + end
  25.195 +end
  25.196 +
  25.197 +-- Internal constructor
  25.198 +function _Package (self)
  25.199 + setmetatable(self,classPackage)
  25.200 + return self
  25.201 +end
  25.202 +
  25.203 +-- Parse C header file with tolua directives
  25.204 +-- *** Thanks to Ariel Manzur for fixing bugs in nested directives ***
  25.205 +function extract_code(fn,s)
  25.206 +	local code = '\n$#include "'..fn..'"\n'
  25.207 +	s= "\n" .. s .. "\n" -- add blank lines as sentinels
  25.208 +	local _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n")
  25.209 +	while e do
  25.210 +		t = strlower(t)
  25.211 +		if t == "begin" then
  25.212 +			_,e,c = strfind(s,"(.-)\n[^\n]*[Tt][Oo][Ll][Uu][Aa]_[Ee][Nn][Dd][^\n]*\n",e)
  25.213 +			if not e then
  25.214 +			 tolua_error("Unbalanced 'tolua_begin' directive in header file")
  25.215 +			end
  25.216 +		end
  25.217 +		code = code .. c .. "\n"
  25.218 +	 _,e,c,t = strfind(s, "\n([^\n]-)[Tt][Oo][Ll][Uu][Aa]_([^%s]*)[^\n]*\n",e)
  25.219 +	end
  25.220 +	return code
  25.221 +end
  25.222 +
  25.223 +-- Constructor
  25.224 +-- Expects the package name, the file extension, and the file text.
  25.225 +function Package (name,fn)
  25.226 + local ext = "pkg"
  25.227 +
  25.228 + -- open input file, if any
  25.229 + if fn then
  25.230 +  local st, msg = readfrom(flags.f)
  25.231 +  if not st then
  25.232 +   error('#'..msg)
  25.233 +  end
  25.234 +		local _; _, _, ext = strfind(fn,".*%.(.*)$")
  25.235 + end
  25.236 + local code = "\n" .. read('*a')
  25.237 +	if ext == 'h' or ext == 'hpp' then
  25.238 +	 code = extract_code(fn,code)
  25.239 +	end
  25.240 +
  25.241 + -- close file
  25.242 + if fn then
  25.243 +  readfrom()
  25.244 + end
  25.245 +
  25.246 + -- deal with renaming directive
  25.247 +	code = gsub(code,'\n%s*%$renaming%s*(.-)%s*\n', function (r) appendrenaming(r) return "\n" end)
  25.248 +
  25.249 + -- deal with include directive
  25.250 + local nsubst
  25.251 + repeat
  25.252 +  code,nsubst = gsub(code,'\n%s*%$(.)file%s*"(.-)"%s*\n',
  25.253 +		                   function (kind,fn)
  25.254 +                      local _, _, ext = strfind(fn,".*%.(.*)$")
  25.255 +                      local fp,msg = openfile(fn,'r')
  25.256 +                      if not fp then
  25.257 +                       error('#'..msg..': '..fn)
  25.258 +                      end
  25.259 +                      local s = read(fp,'*a')
  25.260 +                      closefile(fp)
  25.261 +																						if kind == 'c' or kind == 'h' then
  25.262 +									              return extract_code(fn,s)
  25.263 +																						elseif kind == 'p' then
  25.264 +                       return "\n\n" .. s
  25.265 +																						elseif kind == 'l' then
  25.266 +																						 return "\n$[\n" .. s .. "\n$]\n"
  25.267 +																						else
  25.268 +																						 error('#Invalid include directive (use $cfile, $pfile or $lfile)')
  25.269 +                      end
  25.270 +																					end)
  25.271 + until nsubst==0
  25.272 +
  25.273 + local t = _Package(_Container{name=name, code=code})
  25.274 + push(t)
  25.275 + t:preprocess()
  25.276 + t:parse(t.code)
  25.277 + pop()
  25.278 + return t
  25.279 +end
  25.280 +
  25.281 +
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/source/tolua/src/bin/lua/typedef.lua	Wed Nov 04 01:38:12 2009 +0000
    26.3 @@ -0,0 +1,64 @@
    26.4 +-- tolua: typedef class
    26.5 +-- Written by Waldemar Celes
    26.6 +-- TeCGraf/PUC-Rio
    26.7 +-- Jul 1998
    26.8 +-- $Id: $
    26.9 +
   26.10 +-- This code is free software; you can redistribute it and/or modify it.
   26.11 +-- The software provided hereunder is on an "as is" basis, and
   26.12 +-- the author has no obligation to provide maintenance, support, updates,
   26.13 +-- enhancements, or modifications. 
   26.14 +
   26.15 +
   26.16 +
   26.17 +-- Typedef class
   26.18 +-- Represents a type synonym.
   26.19 +-- The 'de facto' type replaces the typedef before the
   26.20 +-- remaining code is parsed.
   26.21 +-- The following fields are stored:
   26.22 +--   utype = typedef name
   26.23 +--   type = 'the facto' type
   26.24 +--   mod = modifiers to the 'de facto' type
   26.25 +classTypedef = {
   26.26 + utype = '',
   26.27 + mod = '',
   26.28 + type = ''
   26.29 +}
   26.30 +classTypedef.__index = classTypedef
   26.31 +
   26.32 +-- Print method
   26.33 +function classTypedef:print (ident,close)
   26.34 + print(ident.."Typedef{")
   26.35 + print(ident.." utype = '"..self.utype.."',")
   26.36 + print(ident.." mod = '"..self.mod.."',")
   26.37 + print(ident.." type = '"..self.type.."',")
   26.38 + print(ident.."}"..close)
   26.39 +end
   26.40 +
   26.41 +-- Return it's not a variable
   26.42 +function classTypedef:isvariable ()
   26.43 + return false
   26.44 +end
   26.45 +
   26.46 +-- Internal constructor
   26.47 +function _Typedef (t)
   26.48 + setmetatable(t,classTypedef)
   26.49 + appendtypedef(t)
   26.50 + return t
   26.51 +end
   26.52 +
   26.53 +-- Constructor
   26.54 +-- Expects one string representing the type definition.
   26.55 +function Typedef (s)
   26.56 + if strfind(s,'[%*&]') then
   26.57 +  tolua_error("#invalid typedef: pointers (and references) are not supported")
   26.58 + end
   26.59 + local t = split(gsub(s,"%s%s*"," ")," ")
   26.60 + return _Typedef {
   26.61 +  utype = t[t.n],
   26.62 +  type = t[t.n-1],
   26.63 +  mod = concat(t,1,t.n-2),
   26.64 + }
   26.65 +end
   26.66 +
   26.67 +
    27.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.2 +++ b/source/tolua/src/bin/lua/variable.lua	Wed Nov 04 01:38:12 2009 +0000
    27.3 @@ -0,0 +1,242 @@
    27.4 +-- tolua: variable class
    27.5 +-- Written by Waldemar Celes
    27.6 +-- TeCGraf/PUC-Rio
    27.7 +-- Jul 1998
    27.8 +-- $Id: $
    27.9 +
   27.10 +-- This code is free software; you can redistribute it and/or modify it.
   27.11 +-- The software provided hereunder is on an "as is" basis, and
   27.12 +-- the author has no obligation to provide maintenance, support, updates,
   27.13 +-- enhancements, or modifications. 
   27.14 +
   27.15 +
   27.16 +-- Variable class
   27.17 +-- Represents a extern variable or a public member of a class.
   27.18 +-- Stores all fields present in a declaration.
   27.19 +classVariable = {
   27.20 + _get = {},   -- mapped get functions
   27.21 + _set = {},   -- mapped set functions
   27.22 +}
   27.23 +classVariable.__index = classVariable
   27.24 +setmetatable(classVariable,classDeclaration)
   27.25 +
   27.26 +-- Print method
   27.27 +function classVariable:print (ident,close)
   27.28 + print(ident.."Variable{")
   27.29 + print(ident.." mod  = '"..self.mod.."',")
   27.30 + print(ident.." type = '"..self.type.."',")
   27.31 + print(ident.." ptr  = '"..self.ptr.."',")
   27.32 + print(ident.." name = '"..self.name.."',")
   27.33 + if self.dim then print(ident.." dim = '"..self.dim.."',") end
   27.34 + print(ident.." def  = '"..self.def.."',")
   27.35 + print(ident.." ret  = '"..self.ret.."',")
   27.36 + print(ident.."}"..close)
   27.37 +end
   27.38 +
   27.39 +-- Generates C function name
   27.40 +function classVariable:cfuncname (prefix)
   27.41 + local parent = ""
   27.42 + local unsigned = ""
   27.43 + local ptr = ""
   27.44 +
   27.45 + local p = self:inmodule() or self:innamespace() or self:inclass()
   27.46 +
   27.47 + if p then
   27.48 +  parent = "_" .. p
   27.49 + end
   27.50 +
   27.51 + if strfind(self.mod,"(unsigned)") then
   27.52 +  unsigned = "_unsigned"
   27.53 + end
   27.54 +
   27.55 + if self.ptr == "*" then ptr = "_ptr"
   27.56 + elseif self.ptr == "&" then ptr = "_ref"
   27.57 + end
   27.58 +
   27.59 + local name =  prefix .. parent .. unsigned .. "_" .. gsub(self.name,".*::","") .. ptr 
   27.60 +
   27.61 + return name
   27.62 +
   27.63 +end
   27.64 +
   27.65 +-- check if it is a variable
   27.66 +function classVariable:isvariable ()
   27.67 + return true
   27.68 +end
   27.69 +
   27.70 +-- get variable value
   27.71 +function classVariable:getvalue (class,static)
   27.72 + if class and static then
   27.73 +  return class..'::'..self.name
   27.74 + elseif class then
   27.75 +  return 'self->'..self.name
   27.76 + else
   27.77 +  return self.name
   27.78 + end
   27.79 +end
   27.80 +
   27.81 +-- get variable pointer value
   27.82 +function classVariable:getpointervalue (class,static)
   27.83 + if class and static then
   27.84 +  return class..'::p'
   27.85 + elseif class then
   27.86 +  return 'self->p'
   27.87 + else
   27.88 +  return 'p'
   27.89 + end
   27.90 +end
   27.91 +
   27.92 +-- Write binding functions
   27.93 +function classVariable:supcode ()
   27.94 + local class = self:inclass()
   27.95 +
   27.96 + -- get function ------------------------------------------------
   27.97 + if class then
   27.98 +  output("/* get function:",self.name," of class ",class," */")
   27.99 + else
  27.100 +  output("/* get function:",self.name," */")
  27.101 + end
  27.102 + self.cgetname = self:cfuncname("tolua_get")
  27.103 + output("static int",self.cgetname,"(lua_State* tolua_S)") 
  27.104 + output("{")
  27.105 +
  27.106 + -- declare self, if the case
  27.107 + local _,_,static = strfind(self.mod,'^%s*(static)')
  27.108 + if class and static==nil then
  27.109 +  output(' ',class,'*','self = ')
  27.110 +  output('(',class,'*) ')
  27.111 +  output('tolua_tousertype(tolua_S,1,0);')
  27.112 + elseif static then
  27.113 +  _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
  27.114 + end
  27.115 +
  27.116 +
  27.117 + -- check self value
  27.118 + if class and static==nil then
  27.119 +	 output('#ifndef TOLUA_RELEASE\n')
  27.120 +  output('  if (!self) tolua_error(tolua_S,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);');
  27.121 +		output('#endif\n')
  27.122 + end
  27.123 +
  27.124 + -- return value
  27.125 + local t,ct = isbasic(self.type)
  27.126 + if t then
  27.127 +  output('  tolua_push'..t..'(tolua_S,(',ct,')'..self:getvalue(class,static)..');')
  27.128 + else
  27.129 +	 t = self.type
  27.130 +  if self.ptr == '&' or self.ptr == '' then
  27.131 +   output('  tolua_pushusertype(tolua_S,(void*)&'..self:getvalue(class,static)..',"',t,'");')
  27.132 +  else
  27.133 +   output('  tolua_pushusertype(tolua_S,(void*)'..self:getvalue(class,static)..',"',t,'");')
  27.134 +  end
  27.135 + end
  27.136 + output(' return 1;')
  27.137 + output('}')
  27.138 + output('\n')
  27.139 +
  27.140 + -- set function ------------------------------------------------
  27.141 + if not strfind(self.type,'const') then
  27.142 +  if class then
  27.143 +   output("/* set function:",self.name," of class ",class," */")
  27.144 +  else
  27.145 +   output("/* set function:",self.name," */")
  27.146 +  end
  27.147 +  self.csetname = self:cfuncname("tolua_set")
  27.148 +  output("static int",self.csetname,"(lua_State* tolua_S)")
  27.149 +  output("{")
  27.150 +
  27.151 +  -- declare self, if the case
  27.152 +  if class and static==nil then
  27.153 +   output(' ',class,'*','self = ')
  27.154 +   output('(',class,'*) ')
  27.155 +   output('tolua_tousertype(tolua_S,1,0);')
  27.156 +   -- check self value
  27.157 +		end
  27.158 +  -- check types
  27.159 +		output('#ifndef TOLUA_RELEASE\n')
  27.160 +		output('  tolua_Error tolua_err;')
  27.161 +  if class and static==nil then
  27.162 +   output('  if (!self) tolua_error(tolua_S,"invalid \'self\' in accessing variable \''..self.name..'\'",NULL);');
  27.163 +  elseif static then
  27.164 +   _,_,self.mod = strfind(self.mod,'^%s*static%s%s*(.*)')
  27.165 +  end
  27.166 +
  27.167 +  -- check variable type
  27.168 +  output('  if (!'..self:outchecktype(2)..')')
  27.169 +  output('   tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err);')
  27.170 +		output('#endif\n')
  27.171 + 
  27.172 +  -- assign value
  27.173 +		local def = 0
  27.174 +		if self.def ~= '' then def = self.def end
  27.175 +		if self.type == 'char*' and self.dim ~= '' then -- is string
  27.176 +		 output(' strncpy(')
  27.177 +			if class and static then
  27.178 +				output(class..'::'..self.name)
  27.179 +			elseif class then
  27.180 +				output('self->'..self.name)
  27.181 +			else
  27.182 +				output(self.name)
  27.183 +			end
  27.184 +			output(',tolua_tostring(tolua_S,2,',def,'),',self.dim,'-1);')
  27.185 +		else
  27.186 +			local ptr = ''
  27.187 +			if self.ptr~='' then ptr = '*' end
  27.188 +			output(' ')
  27.189 +			if class and static then
  27.190 +				output(class..'::'..self.name)
  27.191 +			elseif class then
  27.192 +				output('self->'..self.name)
  27.193 +			else
  27.194 +				output(self.name)
  27.195 +			end
  27.196 +			local t = isbasic(self.type)
  27.197 +			output(' = ')
  27.198 +			if not t and ptr=='' then output('*') end
  27.199 +			output('((',self.mod,self.type)
  27.200 +			if not t then
  27.201 +				output('*')
  27.202 +			end
  27.203 +			output(') ')
  27.204 +			if t then
  27.205 +				output('tolua_to'..t,'(tolua_S,2,',def,'));')
  27.206 +			else
  27.207 +				output('tolua_tousertype(tolua_S,2,',def,'));')
  27.208 +			end
  27.209 +		end
  27.210 +  output(' return 0;')
  27.211 +  output('}')
  27.212 +  output('\n')
  27.213 + end 
  27.214 +
  27.215 +end
  27.216 +
  27.217 +function classVariable:register ()
  27.218 + local parent = self:inmodule() or self:innamespace() or self:inclass()
  27.219 + if not parent then
  27.220 +  if classVariable._warning==nil then
  27.221 +   warning("Mapping variable to global may degrade performance")
  27.222 +   classVariable._warning = 1 
  27.223 +  end
  27.224 + end
  27.225 + if self.csetname then
  27.226 +  output(' tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..','..self.csetname..');')
  27.227 + else
  27.228 +  output(' tolua_variable(tolua_S,"'..self.lname..'",'..self.cgetname..',NULL);')
  27.229 + end
  27.230 +end
  27.231 +
  27.232 +-- Internal constructor
  27.233 +function _Variable (t)
  27.234 + setmetatable(t,classVariable)
  27.235 + append(t)
  27.236 + return t
  27.237 +end
  27.238 +
  27.239 +-- Constructor
  27.240 +-- Expects a string representing the variable declaration.
  27.241 +function Variable (s)
  27.242 + return _Variable (Declaration(s,'var'))
  27.243 +end
  27.244 +
  27.245 +
    28.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.2 +++ b/source/tolua/src/bin/lua/verbatim.lua	Wed Nov 04 01:38:12 2009 +0000
    28.3 @@ -0,0 +1,76 @@
    28.4 +-- tolua: verbatim class
    28.5 +-- Written by Waldemar Celes
    28.6 +-- TeCGraf/PUC-Rio
    28.7 +-- Jul 1998
    28.8 +-- $Id: verbatim.lua,v 1.3 2000/01/24 20:41:16 celes Exp $
    28.9 +
   28.10 +-- This code is free software; you can redistribute it and/or modify it.
   28.11 +-- The software provided hereunder is on an "as is" basis, and
   28.12 +-- the author has no obligation to provide maintenance, support, updates,
   28.13 +-- enhancements, or modifications. 
   28.14 +
   28.15 +
   28.16 +
   28.17 +-- Verbatim class
   28.18 +-- Represents a line translated directed to the binding file.
   28.19 +-- The following filds are stored:
   28.20 +--   line = line text
   28.21 +classVerbatim = {
   28.22 + line = '',
   28.23 +	cond = nil,    -- condition: where to generate the code (s=suport, r=register)
   28.24 +}
   28.25 +classVerbatim.__index = classVerbatim
   28.26 +setmetatable(classVerbatim,classFeature)
   28.27 +
   28.28 +-- preamble verbatim
   28.29 +function classVerbatim:preamble ()
   28.30 + if self.cond == '' then
   28.31 +  write(self.line)
   28.32 + end
   28.33 +end
   28.34 +
   28.35 +-- support code
   28.36 +function classVerbatim:supcode ()
   28.37 + if strfind(self.cond,'s') then
   28.38 +  write(self.line)
   28.39 +  write('\n')
   28.40 + end
   28.41 +end
   28.42 +
   28.43 +-- register code
   28.44 +function classVerbatim:register ()
   28.45 + if strfind(self.cond,'r') then
   28.46 +  write(self.line)
   28.47 + end
   28.48 +end
   28.49 + 
   28.50 +
   28.51 +-- Print method
   28.52 +function classVerbatim:print (ident,close)
   28.53 + print(ident.."Verbatim{")
   28.54 + print(ident.." line = '"..self.line.."',")
   28.55 + print(ident.."}"..close)
   28.56 +end
   28.57 +
   28.58 +
   28.59 +-- Internal constructor
   28.60 +function _Verbatim (t)
   28.61 + setmetatable(t,classVerbatim)
   28.62 + append(t)
   28.63 + return t
   28.64 +end
   28.65 +
   28.66 +-- Constructor
   28.67 +-- Expects a string representing the text line
   28.68 +function Verbatim (l,cond)
   28.69 + if strsub(l,1,1) == '$' then
   28.70 +  cond = 'sr'       -- generates in both suport and register fragments
   28.71 +  l = strsub(l,2)
   28.72 + end
   28.73 + return _Verbatim {
   28.74 +  line = l,
   28.75 +  cond = cond or '',
   28.76 + }
   28.77 +end
   28.78 +
   28.79 +
    29.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.2 +++ b/source/tolua/src/bin/tolua.c	Wed Nov 04 01:38:12 2009 +0000
    29.3 @@ -0,0 +1,127 @@
    29.4 +/* tolua
    29.5 +** Support code for Lua bindings.
    29.6 +** Written by Waldemar Celes
    29.7 +** TeCGraf/PUC-Rio
    29.8 +** Aug 2003
    29.9 +** $Id:$
   29.10 +*/
   29.11 +
   29.12 +/* This code is free software; you can redistribute it and/or modify it. 
   29.13 +** The software provided hereunder is on an "as is" basis, and 
   29.14 +** the author has no obligation to provide maintenance, support, updates,
   29.15 +** enhancements, or modifications. 
   29.16 +*/
   29.17 +
   29.18 +#include "tolua.h"
   29.19 +
   29.20 +#include "lua.h"
   29.21 +#include "lualib.h"
   29.22 +#include "lauxlib.h"
   29.23 +
   29.24 +#include <stdio.h>
   29.25 +#include <stdlib.h>
   29.26 +#include <string.h>
   29.27 +
   29.28 +
   29.29 +static void help (void)
   29.30 +{
   29.31 + fprintf(stderr,"\n"
   29.32 +         "usage: tolua [options] input_file\n"
   29.33 +         "\n"
   29.34 +         "Command line options are:\n"
   29.35 +         "  -v       : print version information.\n"
   29.36 +         "  -o  file : set output file; default is stdout.\n"
   29.37 +         "  -H  file : create include file.\n"
   29.38 +         "  -n  name : set package name; default is input file root name.\n"
   29.39 +         "  -p       : parse only.\n"
   29.40 +         "  -P       : parse and print structure information (for debug).\n"
   29.41 +         "  -h       : print this message.\n"
   29.42 +         "Should the input file be omitted, stdin is assumed;\n"
   29.43 +         "in that case, the package name must be explicitly set.\n\n" 
   29.44 +        );
   29.45 +}
   29.46 +
   29.47 +static void version (void)
   29.48 +{
   29.49 + fprintf(stderr, "%s (written by W. Celes)\n",TOLUA_VERSION);
   29.50 +}
   29.51 +
   29.52 +static void setfield (lua_State* L, int table, char* f, char* v)
   29.53 +{
   29.54 + lua_pushstring(L,f);
   29.55 + lua_pushstring(L,v);
   29.56 + lua_settable(L,table);
   29.57 +}
   29.58 +
   29.59 +static void error (char* o)
   29.60 +{
   29.61 + fprintf(stderr,"tolua: unknown option '%s'\n",o);
   29.62 + help();
   29.63 + exit(1);
   29.64 +}
   29.65 +
   29.66 +int main (int argc, char* argv[])
   29.67 +{
   29.68 + lua_State* L = lua_open();
   29.69 +  luaL_openlibs(L);
   29.70 +
   29.71 + lua_pushstring(L,TOLUA_VERSION); lua_setglobal(L,"TOLUA_VERSION");
   29.72 +
   29.73 + if (argc==1)
   29.74 + {
   29.75 +  help();
   29.76 +  return 0;
   29.77 + }
   29.78 + else
   29.79 + {
   29.80 +  int i, t;
   29.81 +  lua_newtable(L);
   29.82 +  lua_pushvalue(L,-1);
   29.83 +  lua_setglobal(L,"flags");
   29.84 +  t = lua_gettop(L);
   29.85 +  for (i=1; i<argc; ++i)
   29.86 +  {
   29.87 +   if (*argv[i] == '-')
   29.88 +   {
   29.89 +    switch (argv[i][1])
   29.90 +    {
   29.91 +     case 'v': version(); return 0;
   29.92 +     case 'h': help(); return 0;
   29.93 +     case 'p': setfield(L,t,"p",""); break;
   29.94 +     case 'P': setfield(L,t,"P",""); break;
   29.95 +     case 'o': setfield(L,t,"o",argv[++i]); break;
   29.96 +     case 'n': setfield(L,t,"n",argv[++i]); break;
   29.97 +     case 'H': setfield(L,t,"H",argv[++i]); break;
   29.98 +     default: error(argv[i]); break;
   29.99 +    }
  29.100 +   }
  29.101 +   else
  29.102 +   {
  29.103 +    setfield(L,t,"f",argv[i]);
  29.104 +    break;
  29.105 +   }
  29.106 +  }
  29.107 +  lua_pop(L,1);
  29.108 + }
  29.109 +
  29.110 +#if 1
  29.111 + {
  29.112 +  int tolua_tolua_open (lua_State* L);
  29.113 +  tolua_tolua_open(L);
  29.114 + }
  29.115 +#else
  29.116 + {
  29.117 +  char* p;
  29.118 +  char  path[BUFSIZ];
  29.119 +  strcpy(path,argv[0]);
  29.120 +  p = strrchr(path,'/');
  29.121 +  if (p==NULL) p = strrchr(path,'\\');
  29.122 +  p = (p==NULL) ? path : p+1;
  29.123 +  sprintf(p,"%s","../src/bin/lua/");
  29.124 +  lua_pushstring(L,path); lua_setglobal(L,"path");
  29.125 +		strcat(path,"all.lua");
  29.126 +  luaL_dofile(L,path); 
  29.127 + }
  29.128 +#endif
  29.129 + return 0;
  29.130 +}
    30.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.2 +++ b/source/tolua/src/bin/tolua.pkg	Wed Nov 04 01:38:12 2009 +0000
    30.3 @@ -0,0 +1,28 @@
    30.4 +$lfile "lua/compat.lua"
    30.5 +$lfile "lua/basic.lua"
    30.6 +$lfile "lua/feature.lua"
    30.7 +$lfile "lua/verbatim.lua"
    30.8 +$lfile "lua/code.lua"
    30.9 +$lfile "lua/typedef.lua"
   30.10 +$lfile "lua/container.lua"
   30.11 +$lfile "lua/package.lua"
   30.12 +$lfile "lua/module.lua"
   30.13 +$lfile "lua/namespace.lua"
   30.14 +$lfile "lua/define.lua"
   30.15 +$lfile "lua/enumerate.lua"
   30.16 +$lfile "lua/declaration.lua"
   30.17 +$lfile "lua/variable.lua"
   30.18 +$lfile "lua/array.lua"
   30.19 +$lfile "lua/function.lua"
   30.20 +$lfile "lua/operator.lua"
   30.21 +$lfile "lua/class.lua"
   30.22 +$lfile "lua/clean.lua"
   30.23 +$lfile "lua/doit.lua"
   30.24 +
   30.25 +$[
   30.26 +local err,msg = pcall(doit)
   30.27 +if not err then
   30.28 + local _,_,label,msg = strfind(msg,"(.-:.-:%s*)(.*)")
   30.29 + tolua_error(msg,label)
   30.30 +end
   30.31 +$]
    31.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.2 +++ b/source/tolua/src/bin/toluabind.c	Wed Nov 04 01:38:12 2009 +0000
    31.3 @@ -0,0 +1,4028 @@
    31.4 +/*
    31.5 +** Lua binding: tolua
    31.6 +** Generated automatically by tolua 5.1b on Wed Dec 19 18:36:30 2007.
    31.7 +*/
    31.8 +
    31.9 +#ifndef __cplusplus
   31.10 +#include "stdlib.h"
   31.11 +#endif
   31.12 +#include "string.h"
   31.13 +
   31.14 +#include "tolua.h"
   31.15 +
   31.16 +/* Exported function */
   31.17 +TOLUA_API int  tolua_tolua_open (lua_State* tolua_S);
   31.18 +LUALIB_API int  luaopen_tolua (lua_State* tolua_S);
   31.19 +
   31.20 +
   31.21 +/* function to register type */
   31.22 +static void tolua_reg_types (lua_State* tolua_S)
   31.23 +{
   31.24 +}
   31.25 +
   31.26 +/* Open lib function */
   31.27 +LUALIB_API int  luaopen_tolua (lua_State* tolua_S)
   31.28 +{
   31.29 + tolua_open(tolua_S);
   31.30 + tolua_reg_types(tolua_S);
   31.31 + tolua_module(tolua_S,NULL,0);
   31.32 + tolua_beginmodule(tolua_S,NULL);
   31.33 +
   31.34 + { /* begin embedded lua code */
   31.35 +  static unsigned char B[] = {
   31.36 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
   31.37 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
   31.38 +    10, 10, 10,114, 97,119,116,121,112,101, 32, 61, 32,116,121,
   31.39 +   112,101, 10, 10,102,117,110, 99,116,105,111,110, 32,100,111,
   31.40 +    95, 32, 40,102, 44, 32,101,114,114, 41, 10,105,102, 32,110,
   31.41 +   111,116, 32,102, 32,116,104,101,110, 32,112,114,105,110,116,
   31.42 +    40,101,114,114, 41, 59, 32,114,101,116,117,114,110, 32,101,
   31.43 +   110,100, 10,108,111, 99, 97,108, 32, 97, 44, 98, 32, 61, 32,
   31.44 +   112, 99, 97,108,108, 40,102, 41, 10,105,102, 32,110,111,116,
   31.45 +    32, 97, 32,116,104,101,110, 32,112,114,105,110,116, 40, 98,
   31.46 +    41, 59, 32,114,101,116,117,114,110, 32,110,105,108, 10,101,
   31.47 +   108,115,101, 32,114,101,116,117,114,110, 32, 98, 32,111,114,
   31.48 +    32,116,114,117,101, 10,101,110,100, 10,101,110,100, 10, 10,
   31.49 +   102,117,110, 99,116,105,111,110, 32,100,111,115,116,114,105,
   31.50 +   110,103, 40,115, 41, 32,114,101,116,117,114,110, 32,100,111,
   31.51 +    95, 40,108,111, 97,100,115,116,114,105,110,103, 40,115, 41,
   31.52 +    41, 32,101,110,100, 10, 10, 10, 10, 10,108,111, 99, 97,108,
   31.53 +    32,116, 97, 98, 32, 61, 32,116, 97, 98,108,101, 10,102,111,
   31.54 +   114,101, 97, 99,104, 32, 61, 32,116, 97, 98, 46,102,111,114,
   31.55 +   101, 97, 99,104, 10,102,111,114,101, 97, 99,104,105, 32, 61,
   31.56 +    32,116, 97, 98, 46,102,111,114,101, 97, 99,104,105, 10,103,
   31.57 +   101,116,110, 32, 61, 32,116, 97, 98, 46,103,101,116,110, 10,
   31.58 +   116,105,110,115,101,114,116, 32, 61, 32,116, 97, 98, 46,105,
   31.59 +   110,115,101,114,116, 10,116,114,101,109,111,118,101, 32, 61,
   31.60 +    32,116, 97, 98, 46,114,101,109,111,118,101, 10,115,111,114,
   31.61 +   116, 32, 61, 32,116, 97, 98, 46,115,111,114,116, 10, 10, 10,
   31.62 +    10,108,111, 99, 97,108, 32,100, 98,103, 32, 61, 32,100,101,
   31.63 +    98,117,103, 10,103,101,116,105,110,102,111, 32, 61, 32,100,
   31.64 +    98,103, 46,103,101,116,105,110,102,111, 10,103,101,116,108,
   31.65 +   111, 99, 97,108, 32, 61, 32,100, 98,103, 46,103,101,116,108,
   31.66 +   111, 99, 97,108, 10,115,101,116, 99, 97,108,108,104,111,111,
   31.67 +   107, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40, 41,
   31.68 +    32,101,114,114,111,114, 34, 96,115,101,116, 99, 97,108,108,
   31.69 +   104,111,111,107, 39, 32,105,115, 32,100,101,112,114,101, 99,
   31.70 +    97,116,101,100, 34, 32,101,110,100, 10,115,101,116,108,105,
   31.71 +   110,101,104,111,111,107, 32, 61, 32,102,117,110, 99,116,105,
   31.72 +   111,110, 32, 40, 41, 32,101,114,114,111,114, 34, 96,115,101,
   31.73 +   116,108,105,110,101,104,111,111,107, 39, 32,105,115, 32,100,
   31.74 +   101,112,114,101, 99, 97,116,101,100, 34, 32,101,110,100, 10,
   31.75 +   115,101,116,108,111, 99, 97,108, 32, 61, 32,100, 98,103, 46,
   31.76 +   115,101,116,108,111, 99, 97,108, 10, 10, 10, 10,108,111, 99,
   31.77 +    97,108, 32,109, 97,116,104, 32, 61, 32,109, 97,116,104, 10,
   31.78 +    97, 98,115, 32, 61, 32,109, 97,116,104, 46, 97, 98,115, 10,
   31.79 +    97, 99,111,115, 32, 61, 32,102,117,110, 99,116,105,111,110,
   31.80 +    32, 40,120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,
   31.81 +   104, 46,100,101,103, 40,109, 97,116,104, 46, 97, 99,111,115,
   31.82 +    40,120, 41, 41, 32,101,110,100, 10, 97,115,105,110, 32, 61,
   31.83 +    32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,114,
   31.84 +   101,116,117,114,110, 32,109, 97,116,104, 46,100,101,103, 40,
   31.85 +   109, 97,116,104, 46, 97,115,105,110, 40,120, 41, 41, 32,101,
   31.86 +   110,100, 10, 97,116, 97,110, 32, 61, 32,102,117,110, 99,116,
   31.87 +   105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110, 32,
   31.88 +   109, 97,116,104, 46,100,101,103, 40,109, 97,116,104, 46, 97,
   31.89 +   116, 97,110, 40,120, 41, 41, 32,101,110,100, 10, 97,116, 97,
   31.90 +   110, 50, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,
   31.91 +   120, 44,121, 41, 32,114,101,116,117,114,110, 32,109, 97,116,
   31.92 +   104, 46,100,101,103, 40,109, 97,116,104, 46, 97,116, 97,110,
   31.93 +    50, 40,120, 44,121, 41, 41, 32,101,110,100, 10, 99,101,105,
   31.94 +   108, 32, 61, 32,109, 97,116,104, 46, 99,101,105,108, 10, 99,
   31.95 +   111,115, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,
   31.96 +   120, 41, 32,114,101,116,117,114,110, 32,109, 97,116,104, 46,
   31.97 +    99,111,115, 40,109, 97,116,104, 46,114, 97,100, 40,120, 41,
   31.98 +    41, 32,101,110,100, 10,100,101,103, 32, 61, 32,109, 97,116,
   31.99 +   104, 46,100,101,103, 10,101,120,112, 32, 61, 32,109, 97,116,
  31.100 +   104, 46,101,120,112, 10,102,108,111,111,114, 32, 61, 32,109,
  31.101 +    97,116,104, 46,102,108,111,111,114, 10,102,114,101,120,112,
  31.102 +    32, 61, 32,109, 97,116,104, 46,102,114,101,120,112, 10,108,
  31.103 +   100,101,120,112, 32, 61, 32,109, 97,116,104, 46,108,100,101,
  31.104 +   120,112, 10,108,111,103, 32, 61, 32,109, 97,116,104, 46,108,
  31.105 +   111,103, 10,108,111,103, 49, 48, 32, 61, 32,109, 97,116,104,
  31.106 +    46,108,111,103, 49, 48, 10,109, 97,120, 32, 61, 32,109, 97,
  31.107 +   116,104, 46,109, 97,120, 10,109,105,110, 32, 61, 32,109, 97,
  31.108 +   116,104, 46,109,105,110, 10,109,111,100, 32, 61, 32,109, 97,
  31.109 +   116,104, 46,109,111,100, 10, 80, 73, 32, 61, 32,109, 97,116,
  31.110 +   104, 46,112,105, 10, 10,114, 97,100, 32, 61, 32,109, 97,116,
  31.111 +   104, 46,114, 97,100, 10,114, 97,110,100,111,109, 32, 61, 32,
  31.112 +   109, 97,116,104, 46,114, 97,110,100,111,109, 10,114, 97,110,
  31.113 +   100,111,109,115,101,101,100, 32, 61, 32,109, 97,116,104, 46,
  31.114 +   114, 97,110,100,111,109,115,101,101,100, 10,115,105,110, 32,
  31.115 +    61, 32,102,117,110, 99,116,105,111,110, 32, 40,120, 41, 32,
  31.116 +   114,101,116,117,114,110, 32,109, 97,116,104, 46,115,105,110,
  31.117 +    40,109, 97,116,104, 46,114, 97,100, 40,120, 41, 41, 32,101,
  31.118 +   110,100, 10,115,113,114,116, 32, 61, 32,109, 97,116,104, 46,
  31.119 +   115,113,114,116, 10,116, 97,110, 32, 61, 32,102,117,110, 99,
  31.120 +   116,105,111,110, 32, 40,120, 41, 32,114,101,116,117,114,110,
  31.121 +    32,109, 97,116,104, 46,116, 97,110, 40,109, 97,116,104, 46,
  31.122 +   114, 97,100, 40,120, 41, 41, 32,101,110,100, 10, 10, 10, 10,
  31.123 +   108,111, 99, 97,108, 32,115,116,114, 32, 61, 32,115,116,114,
  31.124 +   105,110,103, 10,115,116,114, 98,121,116,101, 32, 61, 32,115,
  31.125 +   116,114, 46, 98,121,116,101, 10,115,116,114, 99,104, 97,114,
  31.126 +    32, 61, 32,115,116,114, 46, 99,104, 97,114, 10,115,116,114,
  31.127 +   102,105,110,100, 32, 61, 32,115,116,114, 46,102,105,110,100,
  31.128 +    10,102,111,114,109, 97,116, 32, 61, 32,115,116,114, 46,102,
  31.129 +   111,114,109, 97,116, 10,103,115,117, 98, 32, 61, 32,115,116,
  31.130 +   114, 46,103,115,117, 98, 10,115,116,114,108,101,110, 32, 61,
  31.131 +    32,115,116,114, 46,108,101,110, 10,115,116,114,108,111,119,
  31.132 +   101,114, 32, 61, 32,115,116,114, 46,108,111,119,101,114, 10,
  31.133 +   115,116,114,114,101,112, 32, 61, 32,115,116,114, 46,114,101,
  31.134 +   112, 10,115,116,114,115,117, 98, 32, 61, 32,115,116,114, 46,
  31.135 +   115,117, 98, 10,115,116,114,117,112,112,101,114, 32, 61, 32,
  31.136 +   115,116,114, 46,117,112,112,101,114, 10, 10, 10, 10, 99,108,
  31.137 +   111, 99,107, 32, 61, 32,111,115, 46, 99,108,111, 99,107, 10,
  31.138 +   100, 97,116,101, 32, 61, 32,111,115, 46,100, 97,116,101, 10,
  31.139 +   100,105,102,102,116,105,109,101, 32, 61, 32,111,115, 46,100,
  31.140 +   105,102,102,116,105,109,101, 10,101,120,101, 99,117,116,101,
  31.141 +    32, 61, 32,111,115, 46,101,120,101, 99,117,116,101, 10,101,
  31.142 +   120,105,116, 32, 61, 32,111,115, 46,101,120,105,116, 10,103,
  31.143 +   101,116,101,110,118, 32, 61, 32,111,115, 46,103,101,116,101,
  31.144 +   110,118, 10,114,101,109,111,118,101, 32, 61, 32,111,115, 46,
  31.145 +   114,101,109,111,118,101, 10,114,101,110, 97,109,101, 32, 61,
  31.146 +    32,111,115, 46,114,101,110, 97,109,101, 10,115,101,116,108,
  31.147 +   111, 99, 97,108,101, 32, 61, 32,111,115, 46,115,101,116,108,
  31.148 +   111, 99, 97,108,101, 10,116,105,109,101, 32, 61, 32,111,115,
  31.149 +    46,116,105,109,101, 10,116,109,112,110, 97,109,101, 32, 61,
  31.150 +    32,111,115, 46,116,109,112,110, 97,109,101, 10, 10, 10, 10,
  31.151 +   103,101,116,103,108,111, 98, 97,108, 32, 61, 32,102,117,110,
  31.152 +    99,116,105,111,110, 32, 40,110, 41, 32,114,101,116,117,114,
  31.153 +   110, 32, 95, 71, 91,110, 93, 32,101,110,100, 10,115,101,116,
  31.154 +   103,108,111, 98, 97,108, 32, 61, 32,102,117,110, 99,116,105,
  31.155 +   111,110, 32, 40,110, 44,118, 41, 32, 95, 71, 91,110, 93, 32,
  31.156 +    61, 32,118, 32,101,110,100, 10, 10, 10, 10,108,111, 99, 97,
  31.157 +   108, 32,105,111, 44, 32,116, 97, 98, 32, 61, 32,105,111, 44,
  31.158 +    32,116, 97, 98,108,101, 10, 10, 10, 95, 83, 84, 68, 73, 78,
  31.159 +    32, 61, 32,105,111, 46,115,116,100,105,110, 10, 95, 83, 84,
  31.160 +    68, 69, 82, 82, 32, 61, 32,105,111, 46,115,116,100,101,114,
  31.161 +   114, 10, 95, 83, 84, 68, 79, 85, 84, 32, 61, 32,105,111, 46,
  31.162 +   115,116,100,111,117,116, 10, 95, 73, 78, 80, 85, 84, 32, 61,
  31.163 +    32,105,111, 46,115,116,100,105,110, 10, 95, 79, 85, 84, 80,
  31.164 +    85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116, 10,
  31.165 +   115,101,101,107, 32, 61, 32,105,111, 46,115,116,100,105,110,
  31.166 +    46,115,101,101,107, 10,116,109,112,102,105,108,101, 32, 61,
  31.167 +    32,105,111, 46,116,109,112,102,105,108,101, 10, 99,108,111,
  31.168 +   115,101,102,105,108,101, 32, 61, 32,105,111, 46, 99,108,111,
  31.169 +   115,101, 10,111,112,101,110,102,105,108,101, 32, 61, 32,105,
  31.170 +   111, 46,111,112,101,110, 10, 10,102,117,110, 99,116,105,111,
  31.171 +   110, 32,102,108,117,115,104, 32, 40,102, 41, 10,105,102, 32,
  31.172 +   102, 32,116,104,101,110, 32,102, 58,102,108,117,115,104, 40,
  31.173 +    41, 10,101,108,115,101, 32, 95, 79, 85, 84, 80, 85, 84, 58,
  31.174 +   102,108,117,115,104, 40, 41, 10,101,110,100, 10,101,110,100,
  31.175 +    10, 10,102,117,110, 99,116,105,111,110, 32,114,101, 97,100,
  31.176 +   102,114,111,109, 32, 40,110, 97,109,101, 41, 10,105,102, 32,
  31.177 +   110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,101,
  31.178 +   110, 10,108,111, 99, 97,108, 32,102, 44, 32,101,114,114, 44,
  31.179 +    32, 99,111,100, 32, 61, 32,105,111, 46, 99,108,111,115,101,
  31.180 +    40, 95, 73, 78, 80, 85, 84, 41, 10, 95, 73, 78, 80, 85, 84,
  31.181 +    32, 61, 32,105,111, 46,115,116,100,105,110, 10,114,101,116,
  31.182 +   117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100,
  31.183 +    10,101,108,115,101, 10,108,111, 99, 97,108, 32,102, 44, 32,
  31.184 +   101,114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,
  31.185 +   112,101,110, 40,110, 97,109,101, 44, 32, 34,114, 34, 41, 10,
  31.186 +    95, 73, 78, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95,
  31.187 +    73, 78, 80, 85, 84, 10,114,101,116,117,114,110, 32,102, 44,
  31.188 +    32,101,114,114, 44, 32, 99,111,100, 10,101,110,100, 10,101,
  31.189 +   110,100, 10, 10,102,117,110, 99,116,105,111,110, 32,119,114,
  31.190 +   105,116,101,116,111, 32, 40,110, 97,109,101, 41, 10,105,102,
  31.191 +    32,110, 97,109,101, 32, 61, 61, 32,110,105,108, 32,116,104,
  31.192 +   101,110, 10,108,111, 99, 97,108, 32,102, 44, 32,101,114,114,
  31.193 +    44, 32, 99,111,100, 32, 61, 32,105,111, 46, 99,108,111,115,
  31.194 +   101, 40, 95, 79, 85, 84, 80, 85, 84, 41, 10, 95, 79, 85, 84,
  31.195 +    80, 85, 84, 32, 61, 32,105,111, 46,115,116,100,111,117,116,
  31.196 +    10,114,101,116,117,114,110, 32,102, 44, 32,101,114,114, 44,
  31.197 +    32, 99,111,100, 10,101,108,115,101, 10,108,111, 99, 97,108,
  31.198 +    32,102, 44, 32,101,114,114, 44, 32, 99,111,100, 32, 61, 32,
  31.199 +   105,111, 46,111,112,101,110, 40,110, 97,109,101, 44, 32, 34,
  31.200 +   119, 34, 41, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,102,
  31.201 +    32,111,114, 32, 95, 79, 85, 84, 80, 85, 84, 10,114,101,116,
  31.202 +   117,114,110, 32,102, 44, 32,101,114,114, 44, 32, 99,111,100,
  31.203 +    10,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,
  31.204 +   105,111,110, 32, 97,112,112,101,110,100,116,111, 32, 40,110,
  31.205 +    97,109,101, 41, 10,108,111, 99, 97,108, 32,102, 44, 32,101,
  31.206 +   114,114, 44, 32, 99,111,100, 32, 61, 32,105,111, 46,111,112,
  31.207 +   101,110, 40,110, 97,109,101, 44, 32, 34, 97, 34, 41, 10, 95,
  31.208 +    79, 85, 84, 80, 85, 84, 32, 61, 32,102, 32,111,114, 32, 95,
  31.209 +    79, 85, 84, 80, 85, 84, 10,114,101,116,117,114,110, 32,102,
  31.210 +    44, 32,101,114,114, 44, 32, 99,111,100, 10,101,110,100, 10,
  31.211 +    10,102,117,110, 99,116,105,111,110, 32,114,101, 97,100, 32,
  31.212 +    40, 46, 46, 46, 41, 10,108,111, 99, 97,108, 32,102, 32, 61,
  31.213 +    32, 95, 73, 78, 80, 85, 84, 10,105,102, 32,114, 97,119,116,
  31.214 +   121,112,101, 40, 97,114,103, 91, 49, 93, 41, 32, 61, 61, 32,
  31.215 +    39,117,115,101,114,100, 97,116, 97, 39, 32,116,104,101,110,
  31.216 +    10,102, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,101,
  31.217 +    40, 97,114,103, 44, 32, 49, 41, 10,101,110,100, 10,114,101,
  31.218 +   116,117,114,110, 32,102, 58,114,101, 97,100, 40,117,110,112,
  31.219 +    97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100, 10, 10,
  31.220 +   102,117,110, 99,116,105,111,110, 32,119,114,105,116,101, 32,
  31.221 +    40, 46, 46, 46, 41, 10,108,111, 99, 97,108, 32,102, 32, 61,
  31.222 +    32, 95, 79, 85, 84, 80, 85, 84, 10,105,102, 32,114, 97,119,
  31.223 +   116,121,112,101, 40, 97,114,103, 91, 49, 93, 41, 32, 61, 61,
  31.224 +    32, 39,117,115,101,114,100, 97,116, 97, 39, 32,116,104,101,
  31.225 +   110, 10,102, 32, 61, 32,116, 97, 98, 46,114,101,109,111,118,
  31.226 +   101, 40, 97,114,103, 44, 32, 49, 41, 10,101,110,100, 10,114,
  31.227 +   101,116,117,114,110, 32,102, 58,119,114,105,116,101, 40,117,
  31.228 +   110,112, 97, 99,107, 40, 97,114,103, 41, 41, 10,101,110,100,
  31.229 +   32
  31.230 +  };
  31.231 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
  31.232 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
  31.233 + } /* end of embedded lua code */
  31.234 +
  31.235 +
  31.236 + { /* begin embedded lua code */
  31.237 +  static unsigned char B[] = {
  31.238 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
  31.239 +    10, 10, 95, 98, 97,115,105, 99, 32, 61, 32,123, 10, 91, 39,
  31.240 +   118,111,105,100, 39, 93, 32, 61, 32, 39, 39, 44, 10, 91, 39,
  31.241 +    99,104, 97,114, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,
  31.242 +   114, 39, 44, 10, 91, 39,105,110,116, 39, 93, 32, 61, 32, 39,
  31.243 +   110,117,109, 98,101,114, 39, 44, 10, 91, 39,115,104,111,114,
  31.244 +   116, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39, 44,
  31.245 +    10, 91, 39,108,111,110,103, 39, 93, 32, 61, 32, 39,110,117,
  31.246 +   109, 98,101,114, 39, 44, 10, 91, 39,117,110,115,105,103,110,
  31.247 +   101,100, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39,
  31.248 +    44, 10, 91, 39,102,108,111, 97,116, 39, 93, 32, 61, 32, 39,
  31.249 +   110,117,109, 98,101,114, 39, 44, 10, 91, 39,100,111,117, 98,
  31.250 +   108,101, 39, 93, 32, 61, 32, 39,110,117,109, 98,101,114, 39,
  31.251 +    44, 10, 91, 39, 95, 99,115,116,114,105,110,103, 39, 93, 32,
  31.252 +    61, 32, 39,115,116,114,105,110,103, 39, 44, 10, 91, 39, 95,
  31.253 +   117,115,101,114,100, 97,116, 97, 39, 93, 32, 61, 32, 39,117,
  31.254 +   115,101,114,100, 97,116, 97, 39, 44, 10, 91, 39, 99,104, 97,
  31.255 +   114, 42, 39, 93, 32, 61, 32, 39,115,116,114,105,110,103, 39,
  31.256 +    44, 10, 91, 39,118,111,105,100, 42, 39, 93, 32, 61, 32, 39,
  31.257 +   117,115,101,114,100, 97,116, 97, 39, 44, 10, 91, 39, 98,111,
  31.258 +   111,108, 39, 93, 32, 61, 32, 39, 98,111,111,108,101, 97,110,
  31.259 +    39, 44, 10, 91, 39,108,117, 97, 95, 79, 98,106,101, 99,116,
  31.260 +    39, 93, 32, 61, 32, 39,118, 97,108,117,101, 39, 44, 10, 91,
  31.261 +    39, 76, 85, 65, 95, 86, 65, 76, 85, 69, 39, 93, 32, 61, 32,
  31.262 +    39,118, 97,108,117,101, 39, 44, 10,125, 10, 10, 95, 98, 97,
  31.263 +   115,105, 99, 95, 99,116,121,112,101, 32, 61, 32,123, 10,110,
  31.264 +   117,109, 98,101,114, 32, 61, 32, 34,100,111,117, 98,108,101,
  31.265 +    34, 44, 10,115,116,114,105,110,103, 32, 61, 32, 34, 99,111,
  31.266 +   110,115,116, 32, 99,104, 97,114, 42, 34, 44, 10,117,115,101,
  31.267 +   114,100, 97,116, 97, 32, 61, 32, 34,118,111,105,100, 42, 34,
  31.268 +    44, 10, 98,111,111,108,101, 97,110, 32, 61, 32, 34, 98,111,
  31.269 +   111,108, 34, 44, 10,125, 10, 10, 10, 10, 95,117,115,101,114,
  31.270 +   116,121,112,101, 32, 61, 32,123,125, 10, 10, 10, 95, 99,111,
  31.271 +   108,108,101, 99,116, 32, 61, 32,123,125, 10, 10, 10, 10, 95,
  31.272 +   114,101,110, 97,109,105,110,103, 32, 61, 32,123,125, 10,102,
  31.273 +   117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100,114,
  31.274 +   101,110, 97,109,105,110,103, 32, 40,115, 41, 10,108,111, 99,
  31.275 +    97,108, 32, 98, 44,101, 44,111,108,100, 44,110,101,119, 32,
  31.276 +    61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 37,115,
  31.277 +    42, 40, 46, 45, 41, 37,115, 42, 64, 37,115, 42, 40, 46, 45,
  31.278 +    41, 37,115, 42, 36, 34, 41, 10,105,102, 32,110,111,116, 32,
  31.279 +    98, 32,116,104,101,110, 10,101,114,114,111,114, 40, 34, 35,
  31.280 +    73,110,118, 97,108,105,100, 32,114,101,110, 97,109,105,110,
  31.281 +   103, 32,115,121,110,116, 97,120, 59, 32,105,116, 32,115,104,
  31.282 +   111,117,108,100, 32, 98,101, 32,111,102, 32,116,104,101, 32,
  31.283 +   102,111,114,109, 58, 32,112, 97,116,116,101,114,110, 64,112,
  31.284 +    97,116,116,101,114,110, 34, 41, 10,101,110,100, 10,116,105,
  31.285 +   110,115,101,114,116, 40, 95,114,101,110, 97,109,105,110,103,
  31.286 +    44,123,111,108,100, 61,111,108,100, 44, 32,110,101,119, 61,
  31.287 +   110,101,119,125, 41, 10,101,110,100, 10, 10,102,117,110, 99,
  31.288 +   116,105,111,110, 32, 97,112,112,108,121,114,101,110, 97,109,
  31.289 +   105,110,103, 32, 40,115, 41, 10,102,111,114, 32,105, 61, 49,
  31.290 +    44,103,101,116,110, 40, 95,114,101,110, 97,109,105,110,103,
  31.291 +    41, 32,100,111, 10,108,111, 99, 97,108, 32,109, 44,110, 32,
  31.292 +    61, 32,103,115,117, 98, 40,115, 44, 95,114,101,110, 97,109,
  31.293 +   105,110,103, 91,105, 93, 46,111,108,100, 44, 95,114,101,110,
  31.294 +    97,109,105,110,103, 91,105, 93, 46,110,101,119, 41, 10,105,
  31.295 +   102, 32,110, 32,126, 61, 32, 48, 32,116,104,101,110, 10,114,
  31.296 +   101,116,117,114,110, 32,109, 10,101,110,100, 10,101,110,100,
  31.297 +    10,114,101,116,117,114,110, 32,110,105,108, 10,101,110,100,
  31.298 +    10, 10, 10,102,117,110, 99,116,105,111,110, 32,116,111,108,
  31.299 +   117, 97, 95,101,114,114,111,114, 32, 40,115, 44,102, 41, 10,
  31.300 +   108,111, 99, 97,108, 32,111,117,116, 32, 61, 32, 95, 79, 85,
  31.301 +    84, 80, 85, 84, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,
  31.302 +    95, 83, 84, 68, 69, 82, 82, 10,105,102, 32,115,116,114,115,
  31.303 +   117, 98, 40,115, 44, 49, 44, 49, 41, 32, 61, 61, 32, 39, 35,
  31.304 +    39, 32,116,104,101,110, 10,119,114,105,116,101, 40, 34, 92,
  31.305 +   110, 42, 42, 32,116,111,108,117, 97, 58, 32, 34, 46, 46,115,
  31.306 +   116,114,115,117, 98, 40,115, 44, 50, 41, 46, 46, 34, 46, 92,
  31.307 +   110, 92,110, 34, 41, 10,105,102, 32, 95, 99,117,114,114, 95,
  31.308 +    99,111,100,101, 32,116,104,101,110, 10,108,111, 99, 97,108,
  31.309 +    32, 95, 44, 95, 44,115, 32, 61, 32,115,116,114,102,105,110,
  31.310 +   100, 40, 95, 99,117,114,114, 95, 99,111,100,101, 44, 34, 94,
  31.311 +    37,115, 42, 40, 46, 45, 92,110, 41, 34, 41, 10,105,102, 32,
  31.312 +   115, 61, 61,110,105,108, 32,116,104,101,110, 32,115, 32, 61,
  31.313 +    32, 95, 99,117,114,114, 95, 99,111,100,101, 32,101,110,100,
  31.314 +    10,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34, 95,117,
  31.315 +   115,101,114,100, 97,116, 97, 34, 44, 34,118,111,105,100, 42,
  31.316 +    34, 41, 10,115, 32, 61, 32,103,115,117, 98, 40,115, 44, 34,
  31.317 +    95, 99,115,116,114,105,110,103, 34, 44, 34, 99,104, 97,114,
  31.318 +    42, 34, 41, 10,119,114,105,116,101, 40, 34, 67,111,100,101,
  31.319 +    32, 98,101,105,110,103, 32,112,114,111, 99,101,115,115,101,
  31.320 +   100, 58, 92,110, 34, 46, 46,115, 46, 46, 34, 92,110, 34, 41,
  31.321 +    10,101,110,100, 10,101,108,115,101, 10,112,114,105,110,116,
  31.322 +    40, 34, 92,110, 42, 42, 32,116,111,108,117, 97, 32,105,110,
  31.323 +   116,101,114,110, 97,108, 32,101,114,114,111,114, 58, 32, 34,
  31.324 +    46, 46,102, 46, 46,115, 46, 46, 34, 46, 92,110, 92,110, 34,
  31.325 +    41, 10,114,101,116,117,114,110, 10,101,110,100, 10, 95, 79,
  31.326 +    85, 84, 80, 85, 84, 32, 61, 32,111,117,116, 10,101,110,100,
  31.327 +    10, 10,102,117,110, 99,116,105,111,110, 32,119, 97,114,110,
  31.328 +   105,110,103, 32, 40,109,115,103, 41, 10,108,111, 99, 97,108,
  31.329 +    32,111,117,116, 32, 61, 32, 95, 79, 85, 84, 80, 85, 84, 10,
  31.330 +    95, 79, 85, 84, 80, 85, 84, 32, 61, 32, 95, 83, 84, 68, 69,
  31.331 +    82, 82, 10,119,114,105,116,101, 40, 34, 92,110, 42, 42, 32,
  31.332 +   116,111,108,117, 97, 32,119, 97,114,110,105,110,103, 58, 32,
  31.333 +    34, 46, 46,109,115,103, 46, 46, 34, 46, 92,110, 92,110, 34,
  31.334 +    41, 10, 95, 79, 85, 84, 80, 85, 84, 32, 61, 32,111,117,116,
  31.335 +    10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110,
  31.336 +    32,114,101,103,116,121,112,101, 32, 40,116, 41, 10,108,111,
  31.337 +    99, 97,108, 32,102,116, 32, 61, 32,102,105,110,100,116,121,
  31.338 +   112,101, 40,116, 41, 10,105,102, 32,105,115, 98, 97,115,105,
  31.339 +    99, 40,116, 41, 32,116,104,101,110, 10,114,101,116,117,114,
  31.340 +   110, 32,116, 10,101,110,100, 10,105,102, 32,110,111,116, 32,
  31.341 +   102,116, 32,116,104,101,110, 10,114,101,116,117,114,110, 32,
  31.342 +    97,112,112,101,110,100,117,115,101,114,116,121,112,101, 40,
  31.343 +   116, 41, 10,101,110,100, 10,101,110,100, 10, 10, 10,102,117,
  31.344 +   110, 99,116,105,111,110, 32,116,121,112,101,118, 97,114, 40,
  31.345 +   116,121,112,101, 41, 10,105,102, 32,116,121,112,101, 32, 61,
  31.346 +    61, 32, 39, 39, 32,111,114, 32,116,121,112,101, 32, 61, 61,
  31.347 +    32, 39,118,111,105,100, 39, 32,116,104,101,110, 10,114,101,
  31.348 +   116,117,114,110, 32,116,121,112,101, 10,101,108,115,101, 10,
  31.349 +   108,111, 99, 97,108, 32,102,116, 32, 61, 32,102,105,110,100,
  31.350 +   116,121,112,101, 40,116,121,112,101, 41, 10,105,102, 32,102,
  31.351 +   116, 32,116,104,101,110, 10,114,101,116,117,114,110, 32,102,
  31.352 +   116, 10,101,110,100, 10, 95,117,115,101,114,116,121,112,101,
  31.353 +    91,116,121,112,101, 93, 32, 61, 32,116,121,112,101, 10,114,
  31.354 +   101,116,117,114,110, 32,116,121,112,101, 10,101,110,100, 10,
  31.355 +   101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,
  31.356 +   105,115, 98, 97,115,105, 99, 32, 40,116,121,112,101, 41, 10,
  31.357 +   108,111, 99, 97,108, 32,116, 32, 61, 32,103,115,117, 98, 40,
  31.358 +   116,121,112,101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39,
  31.359 +    39, 41, 10,108,111, 99, 97,108, 32,109, 44,116, 32, 61, 32,
  31.360 +    97,112,112,108,121,116,121,112,101,100,101,102, 40,116, 41,
  31.361 +    10,108,111, 99, 97,108, 32, 98, 32, 61, 32, 95, 98, 97,115,
  31.362 +   105, 99, 91,116, 93, 10,105,102, 32, 98, 32,116,104,101,110,
  31.363 +    10,114,101,116,117,114,110, 32, 98, 44, 95, 98, 97,115,105,
  31.364 +    99, 95, 99,116,121,112,101, 91, 98, 93, 10,101,110,100, 10,
  31.365 +   114,101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10,
  31.366 +    10, 10,102,117,110, 99,116,105,111,110, 32,115,112,108,105,
  31.367 +   116, 32, 40,115, 44,116, 41, 10,108,111, 99, 97,108, 32,108,
  31.368 +    32, 61, 32,123,110, 61, 48,125, 10,108,111, 99, 97,108, 32,
  31.369 +   102, 32, 61, 32,102,117,110, 99,116,105,111,110, 32, 40,115,
  31.370 +    41, 10,108, 46,110, 32, 61, 32,108, 46,110, 32, 43, 32, 49,
  31.371 +    10,108, 91,108, 46,110, 93, 32, 61, 32,115, 10,114,101,116,
  31.372 +   117,114,110, 32, 34, 34, 10,101,110,100, 10,108,111, 99, 97,
  31.373 +   108, 32,112, 32, 61, 32, 34, 37,115, 42, 40, 46, 45, 41, 37,
  31.374 +   115, 42, 34, 46, 46,116, 46, 46, 34, 37,115, 42, 34, 10,115,
  31.375 +    32, 61, 32,103,115,117, 98, 40,115, 44, 34, 94, 37,115, 43,
  31.376 +    34, 44, 34, 34, 41, 10,115, 32, 61, 32,103,115,117, 98, 40,
  31.377 +   115, 44, 34, 37,115, 43, 36, 34, 44, 34, 34, 41, 10,115, 32,
  31.378 +    61, 32,103,115,117, 98, 40,115, 44,112, 44,102, 41, 10,108,
  31.379 +    46,110, 32, 61, 32,108, 46,110, 32, 43, 32, 49, 10,108, 91,
  31.380 +   108, 46,110, 93, 32, 61, 32,103,115,117, 98, 40,115, 44, 34,
  31.381 +    40, 37,115, 37,115, 42, 41, 36, 34, 44, 34, 34, 41, 10,114,
  31.382 +   101,116,117,114,110, 32,108, 10,101,110,100, 10, 10, 10, 10,
  31.383 +   102,117,110, 99,116,105,111,110, 32, 99,111,110, 99, 97,116,
  31.384 +    32, 40,116, 44,102, 44,108, 41, 10,108,111, 99, 97,108, 32,
  31.385 +   115, 32, 61, 32, 39, 39, 10,108,111, 99, 97,108, 32,105, 61,
  31.386 +   102, 10,119,104,105,108,101, 32,105, 60, 61,108, 32,100,111,
  31.387 +    10,115, 32, 61, 32,115, 46, 46,116, 91,105, 93, 10,105, 32,
  31.388 +    61, 32,105, 43, 49, 10,105,102, 32,105, 32, 60, 61, 32,108,
  31.389 +    32,116,104,101,110, 32,115, 32, 61, 32,115, 46, 46, 39, 32,
  31.390 +    39, 32,101,110,100, 10,101,110,100, 10,114,101,116,117,114,
  31.391 +   110, 32,115, 10,101,110,100, 10, 10, 10,102,117,110, 99,116,
  31.392 +   105,111,110, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109,
  31.393 +    32, 40,108,105,110,101, 44, 32, 46, 46, 46, 41, 10,108,111,
  31.394 +    99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,105,
  31.395 +    60, 61, 97,114,103, 46,110, 32,100,111, 10,105,102, 32, 95,
  31.396 +    99,111,110,116, 32, 97,110,100, 32,110,111,116, 32,115,116,
  31.397 +   114,102,105,110,100, 40, 95, 99,111,110,116, 44, 39, 91, 37,
  31.398 +    40, 44, 34, 93, 39, 41, 32, 97,110,100, 10,115,116,114,102,
  31.399 +   105,110,100, 40, 97,114,103, 91,105, 93, 44, 34, 94, 91, 37,
  31.400 +    97, 95,126, 93, 34, 41, 32,116,104,101,110, 10,108,105,110,
  31.401 +   101, 32, 61, 32,108,105,110,101, 32, 46, 46, 32, 39, 32, 39,
  31.402 +    10,101,110,100, 10,108,105,110,101, 32, 61, 32,108,105,110,
  31.403 +   101, 32, 46, 46, 32, 97,114,103, 91,105, 93, 10,105,102, 32,
  31.404 +    97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,116,104,
  31.405 +   101,110, 10, 95, 99,111,110,116, 32, 61, 32,115,116,114,115,
  31.406 +   117, 98, 40, 97,114,103, 91,105, 93, 44, 45, 49, 44, 45, 49,
  31.407 +    41, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,
  31.408 +   110,100, 10,105,102, 32,115,116,114,102,105,110,100, 40, 97,
  31.409 +   114,103, 91, 97,114,103, 46,110, 93, 44, 34, 91, 37, 47, 37,
  31.410 +    41, 37, 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,104,101,
  31.411 +   110, 10, 95, 99,111,110,116, 61,110,105,108, 32,108,105,110,
  31.412 +   101, 32, 61, 32,108,105,110,101, 32, 46, 46, 32, 39, 92,110,
  31.413 +    39, 10,101,110,100, 10,114,101,116,117,114,110, 32,108,105,
  31.414 +   110,101, 10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,
  31.415 +   111,110, 32,111,117,116,112,117,116, 32, 40, 46, 46, 46, 41,
  31.416 +    10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,
  31.417 +   101, 32,105, 60, 61, 97,114,103, 46,110, 32,100,111, 10,105,
  31.418 +   102, 32, 95, 99,111,110,116, 32, 97,110,100, 32,110,111,116,
  31.419 +    32,115,116,114,102,105,110,100, 40, 95, 99,111,110,116, 44,
  31.420 +    39, 91, 37, 40, 44, 34, 93, 39, 41, 32, 97,110,100, 10,115,
  31.421 +   116,114,102,105,110,100, 40, 97,114,103, 91,105, 93, 44, 34,
  31.422 +    94, 91, 37, 97, 95,126, 93, 34, 41, 32,116,104,101,110, 10,
  31.423 +   119,114,105,116,101, 40, 39, 32, 39, 41, 10,101,110,100, 10,
  31.424 +   119,114,105,116,101, 40, 97,114,103, 91,105, 93, 41, 10,105,
  31.425 +   102, 32, 97,114,103, 91,105, 93, 32,126, 61, 32, 39, 39, 32,
  31.426 +   116,104,101,110, 10, 95, 99,111,110,116, 32, 61, 32,115,116,
  31.427 +   114,115,117, 98, 40, 97,114,103, 91,105, 93, 44, 45, 49, 44,
  31.428 +    45, 49, 41, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49,
  31.429 +    10,101,110,100, 10,105,102, 32,115,116,114,102,105,110,100,
  31.430 +    40, 97,114,103, 91, 97,114,103, 46,110, 93, 44, 34, 91, 37,
  31.431 +    47, 37, 41, 37, 59, 37,123, 37,125, 93, 36, 34, 41, 32,116,
  31.432 +   104,101,110, 10, 95, 99,111,110,116, 61,110,105,108, 32,119,
  31.433 +   114,105,116,101, 40, 39, 92,110, 39, 41, 10,101,110,100, 10,
  31.434 +   101,110,100,32
  31.435 +  };
  31.436 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
  31.437 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
  31.438 + } /* end of embedded lua code */
  31.439 +
  31.440 +
  31.441 + { /* begin embedded lua code */
  31.442 +  static unsigned char B[] = {
  31.443 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
  31.444 +    99,108, 97,115,115, 70,101, 97,116,117,114,101, 32, 61, 32,
  31.445 +   123, 10,125, 10, 99,108, 97,115,115, 70,101, 97,116,117,114,
  31.446 +   101, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,
  31.447 +   115,115, 70,101, 97,116,117,114,101, 10, 10, 10,102,117,110,
  31.448 +    99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,
  31.449 +   117,114,101, 58,115,117,112, 99,111,100,101, 32, 40, 41, 10,
  31.450 +   101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,
  31.451 +    99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,100,101,
  31.452 +    99,108,116,121,112,101, 32, 40, 41, 10,101,110,100, 10, 10,
  31.453 +    10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
  31.454 +    70,101, 97,116,117,114,101, 58,114,101,103,105,115,116,101,
  31.455 +   114, 32, 40, 41, 10,101,110,100, 10, 10, 10,102,117,110, 99,
  31.456 +   116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,
  31.457 +   114,101, 58,112,114,101, 97,109, 98,108,101, 32, 40, 41, 10,
  31.458 +   101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,
  31.459 +    99,108, 97,115,115, 70,101, 97,116,117,114,101, 58,105,115,
  31.460 +   118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10,114,101,116,
  31.461 +   117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10, 10,
  31.462 +    10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
  31.463 +    70,101, 97,116,117,114,101, 58,114,101,113,117,105,114,101,
  31.464 +    99,111,108,108,101, 99,116,105,111,110, 32, 40,116, 41, 10,
  31.465 +   114,101,116,117,114,110, 32,102, 97,108,115,101, 10,101,110,
  31.466 +   100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108,
  31.467 +    97,115,115, 70,101, 97,116,117,114,101, 58, 98,117,105,108,
  31.468 +   100,110, 97,109,101,115, 32, 40, 41, 10,105,102, 32,115,101,
  31.469 +   108,102, 46,110, 97,109,101, 32, 97,110,100, 32,115,101,108,
  31.470 +   102, 46,110, 97,109,101,126, 61, 39, 39, 32,116,104,101,110,
  31.471 +    10,108,111, 99, 97,108, 32,110, 32, 61, 32,115,112,108,105,
  31.472 +   116, 40,115,101,108,102, 46,110, 97,109,101, 44, 39, 64, 39,
  31.473 +    41, 10,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,110,
  31.474 +    91, 49, 93, 10,105,102, 32,110,111,116, 32,110, 91, 50, 93,
  31.475 +    32,116,104,101,110, 10,110, 91, 50, 93, 32, 61, 32, 97,112,
  31.476 +   112,108,121,114,101,110, 97,109,105,110,103, 40,110, 91, 49,
  31.477 +    93, 41, 10,101,110,100, 10,115,101,108,102, 46,108,110, 97,
  31.478 +   109,101, 32, 61, 32,110, 91, 50, 93, 32,111,114, 32,103,115,
  31.479 +   117, 98, 40,110, 91, 49, 93, 44, 34, 37, 91, 46, 45, 37, 93,
  31.480 +    34, 44, 34, 34, 41, 10,101,110,100, 10,115,101,108,102, 46,
  31.481 +   110, 97,109,101, 32, 61, 32,103,101,116,111,110,108,121,110,
  31.482 +    97,109,101,115,112, 97, 99,101, 40, 41, 32, 46, 46, 32,115,
  31.483 +   101,108,102, 46,110, 97,109,101, 10,101,110,100, 10, 10, 10,
  31.484 +    10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
  31.485 +   115, 70,101, 97,116,117,114,101, 58,105,110, 99,111,110,116,
  31.486 +    97,105,110,101,114, 32, 40,119,104,105, 99,104, 41, 10,105,
  31.487 +   102, 32,115,101,108,102, 46,112, 97,114,101,110,116, 32,116,
  31.488 +   104,101,110, 10,108,111, 99, 97,108, 32,112, 97,114,101,110,
  31.489 +   116, 32, 61, 32,115,101,108,102, 46,112, 97,114,101,110,116,
  31.490 +    10,119,104,105,108,101, 32,112, 97,114,101,110,116, 32,100,
  31.491 +   111, 10,105,102, 32,112, 97,114,101,110,116, 46, 99,108, 97,
  31.492 +   115,115,116,121,112,101, 32, 61, 61, 32,119,104,105, 99,104,
  31.493 +    32,116,104,101,110, 10,114,101,116,117,114,110, 32,112, 97,
  31.494 +   114,101,110,116, 46,110, 97,109,101, 10,101,110,100, 10,112,
  31.495 +    97,114,101,110,116, 32, 61, 32,112, 97,114,101,110,116, 46,
  31.496 +   112, 97,114,101,110,116, 10,101,110,100, 10,101,110,100, 10,
  31.497 +   114,101,116,117,114,110, 32,110,105,108, 10,101,110,100, 10,
  31.498 +    10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
  31.499 +    70,101, 97,116,117,114,101, 58,105,110, 99,108, 97,115,115,
  31.500 +    32, 40, 41, 10,114,101,116,117,114,110, 32,115,101,108,102,
  31.501 +    58,105,110, 99,111,110,116, 97,105,110,101,114, 40, 39, 99,
  31.502 +   108, 97,115,115, 39, 41, 10,101,110,100, 10, 10,102,117,110,
  31.503 +    99,116,105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,
  31.504 +   117,114,101, 58,105,110,109,111,100,117,108,101, 32, 40, 41,
  31.505 +    10,114,101,116,117,114,110, 32,115,101,108,102, 58,105,110,
  31.506 +    99,111,110,116, 97,105,110,101,114, 40, 39,109,111,100,117,
  31.507 +   108,101, 39, 41, 10,101,110,100, 10, 10,102,117,110, 99,116,
  31.508 +   105,111,110, 32, 99,108, 97,115,115, 70,101, 97,116,117,114,
  31.509 +   101, 58,105,110,110, 97,109,101,115,112, 97, 99,101, 32, 40,
  31.510 +    41, 10,114,101,116,117,114,110, 32,115,101,108,102, 58,105,
  31.511 +   110, 99,111,110,116, 97,105,110,101,114, 40, 39,110, 97,109,
  31.512 +   101,115,112, 97, 99,101, 39, 41, 10,101,110,100, 10, 10, 10,
  31.513 +    10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
  31.514 +    70,101, 97,116,117,114,101, 58, 99,102,117,110, 99,110, 97,
  31.515 +   109,101, 32, 40,110, 41, 10,105,102, 32,115,101,108,102, 46,
  31.516 +   112, 97,114,101,110,116, 32,116,104,101,110, 10,110, 32, 61,
  31.517 +    32,115,101,108,102, 46,112, 97,114,101,110,116, 58, 99,102,
  31.518 +   117,110, 99,110, 97,109,101, 40,110, 41, 10,101,110,100, 10,
  31.519 +    10, 10, 10, 10,114,101,116,117,114,110, 32,110, 46, 46, 39,
  31.520 +    95, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 10, 10,
  31.521 +   101,110,100,32
  31.522 +  };
  31.523 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
  31.524 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
  31.525 + } /* end of embedded lua code */
  31.526 +
  31.527 +
  31.528 + { /* begin embedded lua code */
  31.529 +  static unsigned char B[] = {
  31.530 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
  31.531 +    10, 10, 10, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,
  31.532 +   109, 32, 61, 32,123, 10,108,105,110,101, 32, 61, 32, 39, 39,
  31.533 +    44, 10, 99,111,110,100, 32, 61, 32,110,105,108, 44, 10,125,
  31.534 +    10, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 46,
  31.535 +    95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115,
  31.536 +    86,101,114, 98, 97,116,105,109, 10,115,101,116,109,101,116,
  31.537 +    97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 86,101,114,
  31.538 +    98, 97,116,105,109, 44, 99,108, 97,115,115, 70,101, 97,116,
  31.539 +   117,114,101, 41, 10, 10, 10,102,117,110, 99,116,105,111,110,
  31.540 +    32, 99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 58,
  31.541 +   112,114,101, 97,109, 98,108,101, 32, 40, 41, 10,105,102, 32,
  31.542 +   115,101,108,102, 46, 99,111,110,100, 32, 61, 61, 32, 39, 39,
  31.543 +    32,116,104,101,110, 10,119,114,105,116,101, 40,115,101,108,
  31.544 +   102, 46,108,105,110,101, 41, 10,101,110,100, 10,101,110,100,
  31.545 +    10, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,
  31.546 +   115,115, 86,101,114, 98, 97,116,105,109, 58,115,117,112, 99,
  31.547 +   111,100,101, 32, 40, 41, 10,105,102, 32,115,116,114,102,105,
  31.548 +   110,100, 40,115,101,108,102, 46, 99,111,110,100, 44, 39,115,
  31.549 +    39, 41, 32,116,104,101,110, 10,119,114,105,116,101, 40,115,
  31.550 +   101,108,102, 46,108,105,110,101, 41, 10,119,114,105,116,101,
  31.551 +    40, 39, 92,110, 39, 41, 10,101,110,100, 10,101,110,100, 10,
  31.552 +    10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
  31.553 +   115, 86,101,114, 98, 97,116,105,109, 58,114,101,103,105,115,
  31.554 +   116,101,114, 32, 40, 41, 10,105,102, 32,115,116,114,102,105,
  31.555 +   110,100, 40,115,101,108,102, 46, 99,111,110,100, 44, 39,114,
  31.556 +    39, 41, 32,116,104,101,110, 10,119,114,105,116,101, 40,115,
  31.557 +   101,108,102, 46,108,105,110,101, 41, 10,101,110,100, 10,101,
  31.558 +   110,100, 10, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,
  31.559 +    99,108, 97,115,115, 86,101,114, 98, 97,116,105,109, 58,112,
  31.560 +   114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,
  31.561 +   115,101, 41, 10,112,114,105,110,116, 40,105,100,101,110,116,
  31.562 +    46, 46, 34, 86,101,114, 98, 97,116,105,109,123, 34, 41, 10,
  31.563 +   112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
  31.564 +   108,105,110,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102,
  31.565 +    46,108,105,110,101, 46, 46, 34, 39, 44, 34, 41, 10,112,114,
  31.566 +   105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46,
  31.567 +    46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10, 10,
  31.568 +   102,117,110, 99,116,105,111,110, 32, 95, 86,101,114, 98, 97,
  31.569 +   116,105,109, 32, 40,116, 41, 10,115,101,116,109,101,116, 97,
  31.570 +   116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 86,101,
  31.571 +   114, 98, 97,116,105,109, 41, 10, 97,112,112,101,110,100, 40,
  31.572 +   116, 41, 10,114,101,116,117,114,110, 32,116, 10,101,110,100,
  31.573 +    10, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 86,101,
  31.574 +   114, 98, 97,116,105,109, 32, 40,108, 44, 99,111,110,100, 41,
  31.575 +    10,105,102, 32,115,116,114,115,117, 98, 40,108, 44, 49, 44,
  31.576 +    49, 41, 32, 61, 61, 32, 39, 36, 39, 32,116,104,101,110, 10,
  31.577 +    99,111,110,100, 32, 61, 32, 39,115,114, 39, 10,108, 32, 61,
  31.578 +    32,115,116,114,115,117, 98, 40,108, 44, 50, 41, 10,101,110,
  31.579 +   100, 10,114,101,116,117,114,110, 32, 95, 86,101,114, 98, 97,
  31.580 +   116,105,109, 32,123, 10,108,105,110,101, 32, 61, 32,108, 44,
  31.581 +    10, 99,111,110,100, 32, 61, 32, 99,111,110,100, 32,111,114,
  31.582 +    32, 39, 39, 44, 10,125, 10,101,110,100,32
  31.583 +  };
  31.584 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
  31.585 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
  31.586 + } /* end of embedded lua code */
  31.587 +
  31.588 +
  31.589 + { /* begin embedded lua code */
  31.590 +  static unsigned char B[] = {
  31.591 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
  31.592 +    10, 10, 10, 99,108, 97,115,115, 67,111,100,101, 32, 61, 32,
  31.593 +   123, 10,116,101,120,116, 32, 61, 32, 39, 39, 44, 10,125, 10,
  31.594 +    99,108, 97,115,115, 67,111,100,101, 46, 95, 95,105,110,100,
  31.595 +   101,120, 32, 61, 32, 99,108, 97,115,115, 67,111,100,101, 10,
  31.596 +   115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108,
  31.597 +    97,115,115, 67,111,100,101, 44, 99,108, 97,115,115, 70,101,
  31.598 +    97,116,117,114,101, 41, 10, 10, 10,102,117,110, 99,116,105,
  31.599 +   111,110, 32, 99,108, 97,115,115, 67,111,100,101, 58,114,101,
  31.600 +   103,105,115,116,101,114, 32, 40, 41, 10, 10,108,111, 99, 97,
  31.601 +   108, 32,115, 32, 61, 32, 99,108,101, 97,110, 40,115,101,108,
  31.602 +   102, 46,116,101,120,116, 41, 10,105,102, 32,110,111,116, 32,
  31.603 +   115, 32,116,104,101,110, 10,101,114,114,111,114, 40, 34,112,
  31.604 +    97,114,115,101,114, 32,101,114,114,111,114, 32,105,110, 32,
  31.605 +   101,109, 98,101,100,100,101,100, 32, 99,111,100,101, 34, 41,
  31.606 +    10,101,110,100, 10, 10, 10,111,117,116,112,117,116, 40, 39,
  31.607 +    92,110, 32,123, 32, 47, 42, 32, 98,101,103,105,110, 32,101,
  31.608 +   109, 98,101,100,100,101,100, 32,108,117, 97, 32, 99,111,100,
  31.609 +   101, 32, 42, 47, 92,110, 39, 41, 10,111,117,116,112,117,116,
  31.610 +    40, 39, 32,115,116, 97,116,105, 99, 32,117,110,115,105,103,
  31.611 +   110,101,100, 32, 99,104, 97,114, 32, 66, 91, 93, 32, 61, 32,
  31.612 +   123, 92,110, 32, 39, 41, 10,108,111, 99, 97,108, 32,116, 61,
  31.613 +   123,110, 61, 48,125, 10,108,111, 99, 97,108, 32, 98, 32, 61,
  31.614 +    32,103,115,117, 98, 40,115, 44, 39, 40, 46, 41, 39, 44,102,
  31.615 +   117,110, 99,116,105,111,110, 32, 40, 99, 41, 10,108,111, 99,
  31.616 +    97,108, 32,101, 32, 61, 32, 39, 39, 10,116, 46,110, 61,116,
  31.617 +    46,110, 43, 49, 32,105,102, 32,116, 46,110, 61, 61, 49, 53,
  31.618 +    32,116,104,101,110, 32,116, 46,110, 61, 48, 32,101, 61, 39,
  31.619 +    92,110, 32, 39, 32,101,110,100, 10,114,101,116,117,114,110,
  31.620 +    32,102,111,114,109, 97,116, 40, 39, 37, 51,117, 44, 37,115,
  31.621 +    39, 44,115,116,114, 98,121,116,101, 40, 99, 41, 44,101, 41,
  31.622 +    10,101,110,100, 10, 41, 10,111,117,116,112,117,116, 40, 98,
  31.623 +    46, 46,115,116,114, 98,121,116,101, 40, 34, 32, 34, 41, 41,
  31.624 +    10,111,117,116,112,117,116, 40, 39, 92,110, 32,125, 59, 92,
  31.625 +   110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,108,117,
  31.626 +    97, 76, 95,108,111, 97,100, 98,117,102,102,101,114, 40,116,
  31.627 +   111,108,117, 97, 95, 83, 44, 40, 99,104, 97,114, 42, 41, 66,
  31.628 +    44,115,105,122,101,111,102, 40, 66, 41, 44, 34,116,111,108,
  31.629 +   117, 97, 58, 32,101,109, 98,101,100,100,101,100, 32, 76,117,
  31.630 +    97, 32, 99,111,100,101, 34, 41, 32,124,124, 92,110, 39, 41,
  31.631 +    10,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,
  31.632 +    99, 97,108,108, 40,116,111,108,117, 97, 95, 83, 44, 48, 44,
  31.633 +    76, 85, 65, 95, 77, 85, 76, 84, 82, 69, 84, 44, 48, 41, 59,
  31.634 +    39, 41, 10,111,117,116,112,117,116, 40, 39, 32,125, 32, 47,
  31.635 +    42, 32,101,110,100, 32,111,102, 32,101,109, 98,101,100,100,
  31.636 +   101,100, 32,108,117, 97, 32, 99,111,100,101, 32, 42, 47, 92,
  31.637 +   110, 92,110, 39, 41, 10,101,110,100, 10, 10, 10, 10,102,117,
  31.638 +   110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,100,
  31.639 +   101, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44,
  31.640 +    99,108,111,115,101, 41, 10,112,114,105,110,116, 40,105,100,
  31.641 +   101,110,116, 46, 46, 34, 67,111,100,101,123, 34, 41, 10,112,
  31.642 +   114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,
  31.643 +   101,120,116, 32, 61, 32, 91, 91, 34, 46, 46,115,101,108,102,
  31.644 +    46,116,101,120,116, 46, 46, 34, 93, 93, 44, 34, 41, 10,112,
  31.645 +   114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34,
  31.646 +    46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10,
  31.647 +    10,102,117,110, 99,116,105,111,110, 32, 95, 67,111,100,101,
  31.648 +    32, 40,116, 41, 10,115,101,116,109,101,116, 97,116, 97, 98,
  31.649 +   108,101, 40,116, 44, 99,108, 97,115,115, 67,111,100,101, 41,
  31.650 +    10, 97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117,
  31.651 +   114,110, 32,116, 10,101,110,100, 10, 10, 10, 10,102,117,110,
  31.652 +    99,116,105,111,110, 32, 67,111,100,101, 32, 40,108, 41, 10,
  31.653 +   114,101,116,117,114,110, 32, 95, 67,111,100,101, 32,123, 10,
  31.654 +   116,101,120,116, 32, 61, 32,108, 10,125, 10,101,110,100,32
  31.655 +  };
  31.656 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
  31.657 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
  31.658 + } /* end of embedded lua code */
  31.659 +
  31.660 +
  31.661 + { /* begin embedded lua code */
  31.662 +  static unsigned char B[] = {
  31.663 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
  31.664 +    10, 10, 10, 10, 10, 10, 10, 99,108, 97,115,115, 84,121,112,
  31.665 +   101,100,101,102, 32, 61, 32,123, 10,117,116,121,112,101, 32,
  31.666 +    61, 32, 39, 39, 44, 10,109,111,100, 32, 61, 32, 39, 39, 44,
  31.667 +    10,116,121,112,101, 32, 61, 32, 39, 39, 10,125, 10, 99,108,
  31.668 +    97,115,115, 84,121,112,101,100,101,102, 46, 95, 95,105,110,
  31.669 +   100,101,120, 32, 61, 32, 99,108, 97,115,115, 84,121,112,101,
  31.670 +   100,101,102, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,
  31.671 +    99,108, 97,115,115, 84,121,112,101,100,101,102, 58,112,114,
  31.672 +   105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,
  31.673 +   101, 41, 10,112,114,105,110,116, 40,105,100,101,110,116, 46,
  31.674 +    46, 34, 84,121,112,101,100,101,102,123, 34, 41, 10,112,114,
  31.675 +   105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,117,116,
  31.676 +   121,112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,
  31.677 +   117,116,121,112,101, 46, 46, 34, 39, 44, 34, 41, 10,112,114,
  31.678 +   105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,109,111,
  31.679 +   100, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,109,111,
  31.680 +   100, 46, 46, 34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,
  31.681 +   105,100,101,110,116, 46, 46, 34, 32,116,121,112,101, 32, 61,
  31.682 +    32, 39, 34, 46, 46,115,101,108,102, 46,116,121,112,101, 46,
  31.683 +    46, 34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,105,100,
  31.684 +   101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101,
  31.685 +    41, 10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,
  31.686 +   110, 32, 99,108, 97,115,115, 84,121,112,101,100,101,102, 58,
  31.687 +   105,115,118, 97,114,105, 97, 98,108,101, 32, 40, 41, 10,114,
  31.688 +   101,116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100,
  31.689 +    10, 10, 10,102,117,110, 99,116,105,111,110, 32, 95, 84,121,
  31.690 +   112,101,100,101,102, 32, 40,116, 41, 10,115,101,116,109,101,
  31.691 +   116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115,
  31.692 +    84,121,112,101,100,101,102, 41, 10, 97,112,112,101,110,100,
  31.693 +   116,121,112,101,100,101,102, 40,116, 41, 10,114,101,116,117,
  31.694 +   114,110, 32,116, 10,101,110,100, 10, 10, 10, 10,102,117,110,
  31.695 +    99,116,105,111,110, 32, 84,121,112,101,100,101,102, 32, 40,
  31.696 +   115, 41, 10,105,102, 32,115,116,114,102,105,110,100, 40,115,
  31.697 +    44, 39, 91, 37, 42, 38, 93, 39, 41, 32,116,104,101,110, 10,
  31.698 +   116,111,108,117, 97, 95,101,114,114,111,114, 40, 34, 35,105,
  31.699 +   110,118, 97,108,105,100, 32,116,121,112,101,100,101,102, 58,
  31.700 +    32,112,111,105,110,116,101,114,115, 32, 40, 97,110,100, 32,
  31.701 +   114,101,102,101,114,101,110, 99,101,115, 41, 32, 97,114,101,
  31.702 +    32,110,111,116, 32,115,117,112,112,111,114,116,101,100, 34,
  31.703 +    41, 10,101,110,100, 10,108,111, 99, 97,108, 32,116, 32, 61,
  31.704 +    32,115,112,108,105,116, 40,103,115,117, 98, 40,115, 44, 34,
  31.705 +    37,115, 37,115, 42, 34, 44, 34, 32, 34, 41, 44, 34, 32, 34,
  31.706 +    41, 10,114,101,116,117,114,110, 32, 95, 84,121,112,101,100,
  31.707 +   101,102, 32,123, 10,117,116,121,112,101, 32, 61, 32,116, 91,
  31.708 +   116, 46,110, 93, 44, 10,116,121,112,101, 32, 61, 32,116, 91,
  31.709 +   116, 46,110, 45, 49, 93, 44, 10,109,111,100, 32, 61, 32, 99,
  31.710 +   111,110, 99, 97,116, 40,116, 44, 49, 44,116, 46,110, 45, 50,
  31.711 +    41, 44, 10,125, 10,101,110,100,32
  31.712 +  };
  31.713 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
  31.714 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
  31.715 + } /* end of embedded lua code */
  31.716 +
  31.717 +
  31.718 + { /* begin embedded lua code */
  31.719 +  static unsigned char B[] = {
  31.720 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
  31.721 +    10, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114,
  31.722 +    32, 61, 10,123, 10, 99,117,114,114, 32, 61, 32,110,105,108,
  31.723 +    44, 10,125, 10, 99,108, 97,115,115, 67,111,110,116, 97,105,
  31.724 +   110,101,114, 46, 95, 95,105,110,100,101,120, 32, 61, 32, 99,
  31.725 +   108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 10,115,
  31.726 +   101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,
  31.727 +   115,115, 67,111,110,116, 97,105,110,101,114, 44, 99,108, 97,
  31.728 +   115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 10,102,117,
  31.729 +   110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,
  31.730 +   116, 97,105,110,101,114, 58,100,101, 99,108,116,121,112,101,
  31.731 +    32, 40, 41, 10,112,117,115,104, 40,115,101,108,102, 41, 10,
  31.732 +   108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101,
  31.733 +    32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101,108,
  31.734 +   102, 91,105, 93, 58,100,101, 99,108,116,121,112,101, 40, 41,
  31.735 +    10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,111,
  31.736 +   112, 40, 41, 10,101,110,100, 10, 10, 10, 10,102,117,110, 99,
  31.737 +   116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,
  31.738 +   105,110,101,114, 58,115,117,112, 99,111,100,101, 32, 40, 41,
  31.739 +    10,112,117,115,104, 40,115,101,108,102, 41, 10,108,111, 99,
  31.740 +    97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,
  31.741 +   108,102, 91,105, 93, 32,100,111, 10,115,101,108,102, 91,105,
  31.742 +    93, 58,115,117,112, 99,111,100,101, 40, 41, 10,105, 32, 61,
  31.743 +    32,105, 43, 49, 10,101,110,100, 10,112,111,112, 40, 41, 10,
  31.744 +   101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,
  31.745 +   108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,104,
  31.746 +    97,115,118, 97,114, 32, 40, 41, 10,108,111, 99, 97,108, 32,
  31.747 +   105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102, 91,
  31.748 +   105, 93, 32,100,111, 10,105,102, 32,115,101,108,102, 91,105,
  31.749 +    93, 58,105,115,118, 97,114,105, 97, 98,108,101, 40, 41, 32,
  31.750 +   116,104,101,110, 10,114,101,116,117,114,110, 32, 49, 10,101,
  31.751 +   110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,
  31.752 +   114,101,116,117,114,110, 32, 48, 10,101,110,100, 10, 10, 10,
  31.753 +   102,117,110, 99,116,105,111,110, 32, 95, 67,111,110,116, 97,
  31.754 +   105,110,101,114, 32, 40,115,101,108,102, 41, 10,115,101,116,
  31.755 +   109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,102, 44,
  31.756 +    99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 41,
  31.757 +    10,115,101,108,102, 46,110, 32, 61, 32, 48, 10,115,101,108,
  31.758 +   102, 46,116,121,112,101,100,101,102,115, 32, 61, 32,123,116,
  31.759 +   111,108,117, 97, 95,110, 61, 48,125, 10,115,101,108,102, 46,
  31.760 +   117,115,101,114,116,121,112,101,115, 32, 61, 32,123,125, 10,
  31.761 +   115,101,108,102, 46,101,110,117,109,115, 32, 61, 32,123,116,
  31.762 +   111,108,117, 97, 95,110, 61, 48,125, 10,115,101,108,102, 46,
  31.763 +   108,110, 97,109,101,115, 32, 61, 32,123,125, 10,114,101,116,
  31.764 +   117,114,110, 32,115,101,108,102, 10,101,110,100, 10, 10, 10,
  31.765 +   102,117,110, 99,116,105,111,110, 32,112,117,115,104, 32, 40,
  31.766 +   116, 41, 10,116, 46,112,114,111,120, 32, 61, 32, 99,108, 97,
  31.767 +   115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,
  31.768 +   114, 10, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,
  31.769 +   114, 46, 99,117,114,114, 32, 61, 32,116, 10,101,110,100, 10,
  31.770 +    10, 10,102,117,110, 99,116,105,111,110, 32,112,111,112, 32,
  31.771 +    40, 41, 10, 10, 10, 10, 99,108, 97,115,115, 67,111,110,116,
  31.772 +    97,105,110,101,114, 46, 99,117,114,114, 32, 61, 32, 99,108,
  31.773 +    97,115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,
  31.774 +   114,114, 46,112,114,111,120, 10,101,110,100, 10, 10, 10,102,
  31.775 +   117,110, 99,116,105,111,110, 32,103,101,116, 99,117,114,114,
  31.776 +   110, 97,109,101,115,112, 97, 99,101, 32, 40, 41, 10,114,101,
  31.777 +   116,117,114,110, 32,103,101,116,110, 97,109,101,115,112, 97,
  31.778 +    99,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,110,
  31.779 +   101,114, 46, 99,117,114,114, 41, 10,101,110,100, 10, 10, 10,
  31.780 +   102,117,110, 99,116,105,111,110, 32, 97,112,112,101,110,100,
  31.781 +    32, 40,116, 41, 10,114,101,116,117,114,110, 32, 99,108, 97,
  31.782 +   115,115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,
  31.783 +   114, 58, 97,112,112,101,110,100, 40,116, 41, 10,101,110,100,
  31.784 +    10, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,112,112,
  31.785 +   101,110,100,116,121,112,101,100,101,102, 32, 40,116, 41, 10,
  31.786 +   114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,111,110,
  31.787 +   116, 97,105,110,101,114, 46, 99,117,114,114, 58, 97,112,112,
  31.788 +   101,110,100,116,121,112,101,100,101,102, 40,116, 41, 10,101,
  31.789 +   110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,
  31.790 +   112,112,101,110,100,117,115,101,114,116,121,112,101, 32, 40,
  31.791 +   116, 41, 10,114,101,116,117,114,110, 32, 99,108, 97,115,115,
  31.792 +    67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,
  31.793 +    97,112,112,101,110,100,117,115,101,114,116,121,112,101, 40,
  31.794 +   116, 41, 10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,
  31.795 +   111,110, 32, 97,112,112,101,110,100,101,110,117,109, 32, 40,
  31.796 +   116, 41, 10,114,101,116,117,114,110, 32, 99,108, 97,115,115,
  31.797 +    67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,
  31.798 +    97,112,112,101,110,100,101,110,117,109, 40,116, 41, 10,101,
  31.799 +   110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 97,
  31.800 +   112,112,108,121,116,121,112,101,100,101,102, 32, 40,116,121,
  31.801 +   112,101, 41, 10,114,101,116,117,114,110, 32, 99,108, 97,115,
  31.802 +   115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114,
  31.803 +    58, 97,112,112,108,121,116,121,112,101,100,101,102, 40,116,
  31.804 +   121,112,101, 41, 10,101,110,100, 10, 10, 10,102,117,110, 99,
  31.805 +   116,105,111,110, 32,102,105,110,100,116,121,112,101, 32, 40,
  31.806 +   116,121,112,101, 41, 10,108,111, 99, 97,108, 32,116, 32, 61,
  31.807 +    32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114,
  31.808 +    46, 99,117,114,114, 58,102,105,110,100,116,121,112,101, 40,
  31.809 +   116,121,112,101, 41, 10,114,101,116,117,114,110, 32,116, 10,
  31.810 +   101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,
  31.811 +   105,115,116,121,112,101,100,101,102, 32, 40,116,121,112,101,
  31.812 +    41, 10,114,101,116,117,114,110, 32, 99,108, 97,115,115, 67,
  31.813 +   111,110,116, 97,105,110,101,114, 46, 99,117,114,114, 58,105,
  31.814 +   115,116,121,112,101,100,101,102, 40,116,121,112,101, 41, 10,
  31.815 +   101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,
  31.816 +   102,117,108,108,116,121,112,101, 32, 40,116, 41, 10,108,111,
  31.817 +    99, 97,108, 32, 99,117,114,114, 32, 61, 32, 99,108, 97,115,
  31.818 +   115, 67,111,110,116, 97,105,110,101,114, 46, 99,117,114,114,
  31.819 +    10,119,104,105,108,101, 32, 99,117,114,114, 32,100,111, 10,
  31.820 +   105,102, 32, 99,117,114,114, 32,116,104,101,110, 10,105,102,
  31.821 +    32, 99,117,114,114, 46,116,121,112,101,100,101,102,115, 32,
  31.822 +    97,110,100, 32, 99,117,114,114, 46,116,121,112,101,100,101,
  31.823 +   102,115, 91,116, 93, 32,116,104,101,110, 10,114,101,116,117,
  31.824 +   114,110, 32, 99,117,114,114, 46,116,121,112,101,100,101,102,
  31.825 +   115, 91,116, 93, 10,101,108,115,101,105,102, 32, 99,117,114,
  31.826 +   114, 46,117,115,101,114,116,121,112,101,115, 32, 97,110,100,
  31.827 +    32, 99,117,114,114, 46,117,115,101,114,116,121,112,101,115,
  31.828 +    91,116, 93, 32,116,104,101,110, 10,114,101,116,117,114,110,
  31.829 +    32, 99,117,114,114, 46,117,115,101,114,116,121,112,101,115,
  31.830 +    91,116, 93, 10,101,110,100, 10,101,110,100, 10, 99,117,114,
  31.831 +   114, 32, 61, 32, 99,117,114,114, 46,112,114,111,120, 10,101,
  31.832 +   110,100, 10,114,101,116,117,114,110, 32,116, 10,101,110,100,
  31.833 +    10, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,
  31.834 +   115,115, 67,111,110,116, 97,105,110,101,114, 58,114,101,113,
  31.835 +   117,105,114,101, 99,111,108,108,101, 99,116,105,111,110, 32,
  31.836 +    40,116, 41, 10,112,117,115,104, 40,115,101,108,102, 41, 10,
  31.837 +   108,111, 99, 97,108, 32,105, 61, 49, 10,108,111, 99, 97,108,
  31.838 +    32,114, 32, 61, 32,102, 97,108,115,101, 10,119,104,105,108,
  31.839 +   101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,114, 32,
  31.840 +    61, 32,115,101,108,102, 91,105, 93, 58,114,101,113,117,105,
  31.841 +   114,101, 99,111,108,108,101, 99,116,105,111,110, 40,116, 41,
  31.842 +    32,111,114, 32,114, 10,105, 32, 61, 32,105, 43, 49, 10,101,
  31.843 +   110,100, 10,112,111,112, 40, 41, 10,114,101,116,117,114,110,
  31.844 +    32,114, 10,101,110,100, 10, 10, 10, 10,102,117,110, 99,116,
  31.845 +   105,111,110, 32,103,101,116,110, 97,109,101,115,112, 97, 99,
  31.846 +   101, 32, 40, 99,117,114,114, 41, 10,108,111, 99, 97,108, 32,
  31.847 +   110, 97,109,101,115,112, 97, 99,101, 32, 61, 32, 39, 39, 10,
  31.848 +   119,104,105,108,101, 32, 99,117,114,114, 32,100,111, 10,105,
  31.849 +   102, 32, 99,117,114,114, 32, 97,110,100, 10, 40, 32, 99,117,
  31.850 +   114,114, 46, 99,108, 97,115,115,116,121,112,101, 32, 61, 61,
  31.851 +    32, 39, 99,108, 97,115,115, 39, 32,111,114, 32, 99,117,114,
  31.852 +   114, 46, 99,108, 97,115,115,116,121,112,101, 32, 61, 61, 32,
  31.853 +    39,110, 97,109,101,115,112, 97, 99,101, 39, 41, 10,116,104,
  31.854 +   101,110, 10,110, 97,109,101,115,112, 97, 99,101, 32, 61, 32,
  31.855 +    99,117,114,114, 46,110, 97,109,101, 32, 46, 46, 32, 39, 58,
  31.856 +    58, 39, 32, 46, 46, 32,110, 97,109,101,115,112, 97, 99,101,
  31.857 +    10,101,110,100, 10, 99,117,114,114, 32, 61, 32, 99,117,114,
  31.858 +   114, 46,112,114,111,120, 10,101,110,100, 10,114,101,116,117,
  31.859 +   114,110, 32,110, 97,109,101,115,112, 97, 99,101, 10,101,110,
  31.860 +   100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,103,101,
  31.861 +   116,111,110,108,121,110, 97,109,101,115,112, 97, 99,101, 32,
  31.862 +    40, 41, 10,108,111, 99, 97,108, 32, 99,117,114,114, 32, 61,
  31.863 +    32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114,
  31.864 +    46, 99,117,114,114, 10,108,111, 99, 97,108, 32,110, 97,109,
  31.865 +   101,115,112, 97, 99,101, 32, 61, 32, 39, 39, 10,119,104,105,
  31.866 +   108,101, 32, 99,117,114,114, 32,100,111, 10,105,102, 32, 99,
  31.867 +   117,114,114, 46, 99,108, 97,115,115,116,121,112,101, 32, 61,
  31.868 +    61, 32, 39, 99,108, 97,115,115, 39, 32,116,104,101,110, 10,
  31.869 +   114,101,116,117,114,110, 32,110, 97,109,101,115,112, 97, 99,
  31.870 +   101, 10,101,108,115,101,105,102, 32, 99,117,114,114, 46, 99,
  31.871 +   108, 97,115,115,116,121,112,101, 32, 61, 61, 32, 39,110, 97,
  31.872 +   109,101,115,112, 97, 99,101, 39, 32,116,104,101,110, 10,110,
  31.873 +    97,109,101,115,112, 97, 99,101, 32, 61, 32, 99,117,114,114,
  31.874 +    46,110, 97,109,101, 32, 46, 46, 32, 39, 58, 58, 39, 32, 46,
  31.875 +    46, 32,110, 97,109,101,115,112, 97, 99,101, 10,101,110,100,
  31.876 +    10, 99,117,114,114, 32, 61, 32, 99,117,114,114, 46,112,114,
  31.877 +   111,120, 10,101,110,100, 10,114,101,116,117,114,110, 32,110,
  31.878 +    97,109,101,115,112, 97, 99,101, 10,101,110,100, 10, 10, 10,
  31.879 +   102,117,110, 99,116,105,111,110, 32,105,115,101,110,117,109,
  31.880 +    32, 40,116,121,112,101, 41, 10,114,101,116,117,114,110, 32,
  31.881 +    99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 46,
  31.882 +    99,117,114,114, 58,105,115,101,110,117,109, 40,116,121,112,
  31.883 +   101, 41, 10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,
  31.884 +   111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,
  31.885 +   101,114, 58, 97,112,112,101,110,100, 32, 40,116, 41, 10,115,
  31.886 +   101,108,102, 46,110, 32, 61, 32,115,101,108,102, 46,110, 32,
  31.887 +    43, 32, 49, 10,115,101,108,102, 91,115,101,108,102, 46,110,
  31.888 +    93, 32, 61, 32,116, 10,116, 46,112, 97,114,101,110,116, 32,
  31.889 +    61, 32,115,101,108,102, 10,101,110,100, 10, 10, 10,102,117,
  31.890 +   110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,
  31.891 +   116, 97,105,110,101,114, 58, 97,112,112,101,110,100,116,121,
  31.892 +   112,101,100,101,102, 32, 40,116, 41, 10,115,101,108,102, 46,
  31.893 +   116,121,112,101,100,101,102,115, 46,116,111,108,117, 97, 95,
  31.894 +   110, 32, 61, 32,115,101,108,102, 46,116,121,112,101,100,101,
  31.895 +   102,115, 46,116,111,108,117, 97, 95,110, 32, 43, 32, 49, 10,
  31.896 +   115,101,108,102, 46,116,121,112,101,100,101,102,115, 91,115,
  31.897 +   101,108,102, 46,116,121,112,101,100,101,102,115, 46,116,111,
  31.898 +   108,117, 97, 95,110, 93, 32, 61, 32,116, 10,115,101,108,102,
  31.899 +    46,116,121,112,101,100,101,102,115, 91,116, 46,117,116,121,
  31.900 +   112,101, 93, 32, 61, 32,103,101,116,110, 97,109,101,115,112,
  31.901 +    97, 99,101, 40, 99,108, 97,115,115, 67,111,110,116, 97,105,
  31.902 +   110,101,114, 46, 99,117,114,114, 41, 32, 46, 46, 32,116, 46,
  31.903 +   117,116,121,112,101, 10,101,110,100, 10, 10, 10,102,117,110,
  31.904 +    99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116,
  31.905 +    97,105,110,101,114, 58, 97,112,112,101,110,100,117,115,101,
  31.906 +   114,116,121,112,101, 32, 40,116, 41, 10,108,111, 99, 97,108,
  31.907 +    32, 99,111,110,116, 97,105,110,101,114, 10,105,102, 32,116,
  31.908 +    32, 61, 61, 32,115,101,108,102, 46,110, 97,109,101, 32,116,
  31.909 +   104,101,110, 10, 99,111,110,116, 97,105,110,101,114, 32, 61,
  31.910 +    32,115,101,108,102, 46,112,114,111,120, 10,101,108,115,101,
  31.911 +    10, 99,111,110,116, 97,105,110,101,114, 32, 61, 32,115,101,
  31.912 +   108,102, 10,101,110,100, 10,108,111, 99, 97,108, 32,102,116,
  31.913 +    32, 61, 32,103,101,116,110, 97,109,101,115,112, 97, 99,101,
  31.914 +    40, 99,111,110,116, 97,105,110,101,114, 41, 32, 46, 46, 32,
  31.915 +   116, 10, 99,111,110,116, 97,105,110,101,114, 46,117,115,101,
  31.916 +   114,116,121,112,101,115, 91,116, 93, 32, 61, 32,102,116, 10,
  31.917 +    95,117,115,101,114,116,121,112,101, 91,102,116, 93, 32, 61,
  31.918 +    32,102,116, 10,114,101,116,117,114,110, 32,102,116, 10,101,
  31.919 +   110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,
  31.920 +   108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58, 97,
  31.921 +   112,112,101,110,100,101,110,117,109, 32, 40,116, 41, 10,115,
  31.922 +   101,108,102, 46,101,110,117,109,115, 46,116,111,108,117, 97,
  31.923 +    95,110, 32, 61, 32,115,101,108,102, 46,101,110,117,109,115,
  31.924 +    46,116,111,108,117, 97, 95,110, 32, 43, 32, 49, 10,115,101,
  31.925 +   108,102, 46,101,110,117,109,115, 91,115,101,108,102, 46,101,
  31.926 +   110,117,109,115, 46,116,111,108,117, 97, 95,110, 93, 32, 61,
  31.927 +    32,116, 10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,
  31.928 +   111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,
  31.929 +   101,114, 58,111,118,101,114,108,111, 97,100, 32, 40,108,110,
  31.930 +    97,109,101, 41, 10,105,102, 32,110,111,116, 32,115,101,108,
  31.931 +   102, 46,108,110, 97,109,101,115, 91,108,110, 97,109,101, 93,
  31.932 +    32,116,104,101,110, 10,115,101,108,102, 46,108,110, 97,109,
  31.933 +   101,115, 91,108,110, 97,109,101, 93, 32, 61, 32, 48, 10,101,
  31.934 +   108,115,101, 10,115,101,108,102, 46,108,110, 97,109,101,115,
  31.935 +    91,108,110, 97,109,101, 93, 32, 61, 32,115,101,108,102, 46,
  31.936 +   108,110, 97,109,101,115, 91,108,110, 97,109,101, 93, 32, 43,
  31.937 +    32, 49, 10,101,110,100, 10,114,101,116,117,114,110, 32,102,
  31.938 +   111,114,109, 97,116, 40, 34, 37, 48, 50,100, 34, 44,115,101,
  31.939 +   108,102, 46,108,110, 97,109,101,115, 91,108,110, 97,109,101,
  31.940 +    93, 41, 10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,
  31.941 +   111,110, 32, 99,108, 97,115,115, 67,111,110,116, 97,105,110,
  31.942 +   101,114, 58, 97,112,112,108,121,116,121,112,101,100,101,102,
  31.943 +    32, 40,116,121,112,101, 41, 10,108,111, 99, 97,108, 32, 98,
  31.944 +    97,115,101,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,
  31.945 +   116,121,112,101, 44, 34, 94, 46, 42, 58, 58, 34, 44, 34, 34,
  31.946 +    41, 10,108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,
  31.947 +   101,108,102, 10,119,104,105,108,101, 32,101,110,118, 32,100,
  31.948 +   111, 10,105,102, 32,101,110,118, 46,116,121,112,101,100,101,
  31.949 +   102,115, 32,116,104,101,110, 10,108,111, 99, 97,108, 32,105,
  31.950 +    61, 49, 10,119,104,105,108,101, 32,101,110,118, 46,116,121,
  31.951 +   112,101,100,101,102,115, 91,105, 93, 32,100,111, 10,105,102,
  31.952 +    32,101,110,118, 46,116,121,112,101,100,101,102,115, 91,105,
  31.953 +    93, 46,117,116,121,112,101, 32, 61, 61, 32, 98, 97,115,101,
  31.954 +   116,121,112,101, 32,116,104,101,110, 10,108,111, 99, 97,108,
  31.955 +    32,109,111,100, 49, 44,116,121,112,101, 49, 32, 61, 32,101,
  31.956 +   110,118, 46,116,121,112,101,100,101,102,115, 91,105, 93, 46,
  31.957 +   109,111,100, 44,101,110,118, 46,116,121,112,101,100,101,102,
  31.958 +   115, 91,105, 93, 46,116,121,112,101, 10,108,111, 99, 97,108,
  31.959 +    32,109,111,100, 50, 44,116,121,112,101, 50, 32, 61, 32, 97,
  31.960 +   112,112,108,121,116,121,112,101,100,101,102, 40,116,121,112,
  31.961 +   101, 49, 41, 10,114,101,116,117,114,110, 32,109,111,100, 50,
  31.962 +    46, 46, 39, 32, 39, 46, 46,109,111,100, 49, 44,116,121,112,
  31.963 +   101, 50, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,
  31.964 +   101,110,100, 10,101,110,100, 10,101,110,118, 32, 61, 32,101,
  31.965 +   110,118, 46,112, 97,114,101,110,116, 10,101,110,100, 10,114,
  31.966 +   101,116,117,114,110, 32, 39, 39, 44,116,121,112,101, 10,101,
  31.967 +   110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,
  31.968 +   108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,105,
  31.969 +   115,116,121,112,101,100,101,102, 32, 40,116,121,112,101, 41,
  31.970 +    10,108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,
  31.971 +   108,102, 10,119,104,105,108,101, 32,101,110,118, 32,100,111,
  31.972 +    10,105,102, 32,101,110,118, 46,116,121,112,101,100,101,102,
  31.973 +   115, 32,116,104,101,110, 10,108,111, 99, 97,108, 32,105, 61,
  31.974 +    49, 10,119,104,105,108,101, 32,101,110,118, 46,116,121,112,
  31.975 +   101,100,101,102,115, 91,105, 93, 32,100,111, 10,105,102, 32,
  31.976 +   101,110,118, 46,116,121,112,101,100,101,102,115, 91,105, 93,
  31.977 +    46,117,116,121,112,101, 32, 61, 61, 32,116,121,112,101, 32,
  31.978 +   116,104,101,110, 10,114,101,116,117,114,110, 32,116,121,112,
  31.979 +   101, 10,101,110,100, 10,105, 32, 61, 32,105, 43, 49, 10,101,
  31.980 +   110,100, 10,101,110,100, 10,101,110,118, 32, 61, 32,101,110,
  31.981 +   118, 46,112, 97,114,101,110,116, 10,101,110,100, 10,114,101,
  31.982 +   116,117,114,110, 32,110,105,108, 10,101,110,100, 10, 10, 10,
  31.983 +   102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,
  31.984 +   111,110,116, 97,105,110,101,114, 58,102,105,110,100,116,121,
  31.985 +   112,101, 32, 40,116, 41, 10,108,111, 99, 97,108, 32, 99,117,
  31.986 +   114,114, 32, 61, 32,115,101,108,102, 10,119,104,105,108,101,
  31.987 +    32, 99,117,114,114, 32,100,111, 10,105,102, 32, 99,117,114,
  31.988 +   114, 46,116,121,112,101,100,101,102,115, 32, 97,110,100, 32,
  31.989 +    99,117,114,114, 46,116,121,112,101,100,101,102,115, 91,116,
  31.990 +    93, 32,116,104,101,110, 10,114,101,116,117,114,110, 32, 99,
  31.991 +   117,114,114, 46,116,121,112,101,100,101,102,115, 91,116, 93,
  31.992 +    10,101,108,115,101,105,102, 32, 99,117,114,114, 46,117,115,
  31.993 +   101,114,116,121,112,101,115, 32, 97,110,100, 32, 99,117,114,
  31.994 +   114, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 32,
  31.995 +   116,104,101,110, 10,114,101,116,117,114,110, 32, 99,117,114,
  31.996 +   114, 46,117,115,101,114,116,121,112,101,115, 91,116, 93, 10,
  31.997 +   101,110,100, 10, 99,117,114,114, 32, 61, 32, 99,117,114,114,
  31.998 +    46,112,114,111,120, 10,101,110,100, 10,105,102, 32, 95, 98,
  31.999 +    97,115,105, 99, 91,116, 93, 32,116,104,101,110, 10,114,101,
 31.1000 +   116,117,114,110, 32,116, 10,101,110,100, 10,114,101,116,117,
 31.1001 +   114,110, 32,110,105,108, 10,101,110,100, 10, 10, 10,102,117,
 31.1002 +   110, 99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,
 31.1003 +   116, 97,105,110,101,114, 58,105,115,101,110,117,109, 32, 40,
 31.1004 +   116,121,112,101, 41, 10,108,111, 99, 97,108, 32, 98, 97,115,
 31.1005 +   101,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,116,121,
 31.1006 +   112,101, 44, 34, 94, 46, 42, 58, 58, 34, 44, 34, 34, 41, 10,
 31.1007 +   108,111, 99, 97,108, 32,101,110,118, 32, 61, 32,115,101,108,
 31.1008 +   102, 10,119,104,105,108,101, 32,101,110,118, 32,100,111, 10,
 31.1009 +   105,102, 32,101,110,118, 46,101,110,117,109,115, 32,116,104,
 31.1010 +   101,110, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,
 31.1011 +   105,108,101, 32,101,110,118, 46,101,110,117,109,115, 91,105,
 31.1012 +    93, 32,100,111, 10,105,102, 32,101,110,118, 46,101,110,117,
 31.1013 +   109,115, 91,105, 93, 46,110, 97,109,101, 32, 61, 61, 32, 98,
 31.1014 +    97,115,101,116,121,112,101, 32,116,104,101,110, 10,114,101,
 31.1015 +   116,117,114,110, 32, 49, 10,101,110,100, 10,105, 32, 61, 32,
 31.1016 +   105, 43, 49, 10,101,110,100, 10,101,110,100, 10,101,110,118,
 31.1017 +    32, 61, 32,101,110,118, 46,112, 97,114,101,110,116, 10,101,
 31.1018 +   110,100, 10,114,101,116,117,114,110, 32,110,105,108, 10,101,
 31.1019 +   110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,
 31.1020 +   108, 97,115,115, 67,111,110,116, 97,105,110,101,114, 58,100,
 31.1021 +   111,112, 97,114,115,101, 32, 40,115, 41, 10, 10, 10,100,111,
 31.1022 +    10,108,111, 99, 97,108, 32, 98, 44,101, 44, 99,111,100,101,
 31.1023 +    32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94,
 31.1024 +    37,115, 42, 40, 37, 98, 92, 49, 92, 50, 41, 34, 41, 10,105,
 31.1025 +   102, 32, 98, 32,116,104,101,110, 10, 67,111,100,101, 40,115,
 31.1026 +   116,114,115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, 50,
 31.1027 +    41, 41, 10,114,101,116,117,114,110, 32,115,116,114,115,117,
 31.1028 +    98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,
 31.1029 +   100, 10, 10, 10,100,111, 10,108,111, 99, 97,108, 32, 98, 44,
 31.1030 +   101, 44, 99,111,100,101, 32, 61, 32,115,116,114,102,105,110,
 31.1031 +   100, 40,115, 44, 34, 94, 37,115, 42, 40, 37, 98, 92, 51, 92,
 31.1032 +    52, 41, 34, 41, 10,105,102, 32, 98, 32,116,104,101,110, 10,
 31.1033 +    99,111,100,101, 32, 61, 32, 39,123, 39, 46, 46,115,116,114,
 31.1034 +   115,117, 98, 40, 99,111,100,101, 44, 50, 44, 45, 50, 41, 46,
 31.1035 +    46, 39, 92,110,125, 92,110, 39, 10, 86,101,114, 98, 97,116,
 31.1036 +   105,109, 40, 99,111,100,101, 44, 39,114, 39, 41, 10,114,101,
 31.1037 +   116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101,
 31.1038 +    43, 49, 41, 10,101,110,100, 10,101,110,100, 10, 10, 10,100,
 31.1039 +   111, 10,108,111, 99, 97,108, 32, 98, 44,101, 44,108,105,110,
 31.1040 +   101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34,
 31.1041 +    94, 37,115, 42, 37, 36, 40, 46, 45, 92,110, 41, 34, 41, 10,
 31.1042 +   105,102, 32, 98, 32,116,104,101,110, 10, 86,101,114, 98, 97,
 31.1043 +   116,105,109, 40,108,105,110,101, 41, 10,114,101,116,117,114,
 31.1044 +   110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41,
 31.1045 +    10,101,110,100, 10,101,110,100, 10, 10, 10, 10,100,111, 10,
 31.1046 +   108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44,
 31.1047 +    98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100, 40,
 31.1048 +   115, 44, 34, 94, 37,115, 42,109,111,100,117,108,101, 37,115,
 31.1049 +    37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93, 42,
 31.1050 +    41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 34, 41,
 31.1051 +    10,105,102, 32, 98, 32,116,104,101,110, 10, 95, 99,117,114,
 31.1052 +   114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98,
 31.1053 +    40,115, 44, 98, 44,101, 41, 10, 77,111,100,117,108,101, 40,
 31.1054 +   110, 97,109,101, 44, 98,111,100,121, 41, 10,114,101,116,117,
 31.1055 +   114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49,
 31.1056 +    41, 10,101,110,100, 10,101,110,100, 10, 10, 10,100,111, 10,
 31.1057 +   108,111, 99, 97,108, 32, 98, 44,101, 44,110, 97,109,101, 44,
 31.1058 +    98,111,100,121, 32, 61, 32,115,116,114,102,105,110,100, 40,
 31.1059 +   115, 44, 34, 94, 37,115, 42,110, 97,109,101,115,112, 97, 99,
 31.1060 +   101, 37,115, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,
 31.1061 +   119, 93, 42, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115,
 31.1062 +    42, 34, 41, 10,105,102, 32, 98, 32,116,104,101,110, 10, 95,
 31.1063 +    99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,
 31.1064 +   115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 78, 97,109,101,
 31.1065 +   115,112, 97, 99,101, 40,110, 97,109,101, 44, 98,111,100,121,
 31.1066 +    41, 10,114,101,116,117,114,110, 32,115,116,114,115,117, 98,
 31.1067 +    40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100,
 31.1068 +    10, 10, 10,100,111, 10,108,111, 99, 97,108, 32, 98, 44,101,
 31.1069 +    44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100,
 31.1070 +    40,115, 44, 34, 94, 37,115, 42, 35,100,101,102,105,110,101,
 31.1071 +    37,115, 37,115, 42, 40, 91, 94, 37,115, 93, 42, 41, 91, 94,
 31.1072 +    92,110, 93, 42, 92,110, 37,115, 42, 34, 41, 10,105,102, 32,
 31.1073 +    98, 32,116,104,101,110, 10, 95, 99,117,114,114, 95, 99,111,
 31.1074 +   100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98,
 31.1075 +    44,101, 41, 10, 68,101,102,105,110,101, 40,110, 97,109,101,
 31.1076 +    41, 10,114,101,116,117,114,110, 32,115,116,114,115,117, 98,
 31.1077 +    40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100,
 31.1078 +    10, 10, 10,100,111, 10,108,111, 99, 97,108, 32, 98, 44,101,
 31.1079 +    44,110, 97,109,101, 44, 98,111,100,121, 32, 61, 32,115,116,
 31.1080 +   114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,101,110,
 31.1081 +   117,109, 37,115, 43, 40, 37, 83, 42, 41, 37,115, 42, 40, 37,
 31.1082 +    98,123,125, 41, 37,115, 42, 59, 63, 37,115, 42, 34, 41, 10,
 31.1083 +   105,102, 32, 98, 32,116,104,101,110, 10, 95, 99,117,114,114,
 31.1084 +    95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,
 31.1085 +   115, 44, 98, 44,101, 41, 10, 69,110,117,109,101,114, 97,116,
 31.1086 +   101, 40,110, 97,109,101, 44, 98,111,100,121, 41, 10,114,101,
 31.1087 +   116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101,
 31.1088 +    43, 49, 41, 10,101,110,100, 10,101,110,100, 10, 10,100,111,
 31.1089 +    10,108,111, 99, 97,108, 32, 98, 44,101, 44, 98,111,100,121,
 31.1090 +    44,110, 97,109,101, 32, 61, 32,115,116,114,102,105,110,100,
 31.1091 +    40,115, 44, 34, 94, 37,115, 42,116,121,112,101,100,101,102,
 31.1092 +    37,115, 43,101,110,117,109, 91, 94,123, 93, 42, 40, 37, 98,
 31.1093 +   123,125, 41, 37,115, 42, 40, 91, 37,119, 95, 93, 91, 94, 37,
 31.1094 +   115, 93, 42, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,105,
 31.1095 +   102, 32, 98, 32,116,104,101,110, 10, 95, 99,117,114,114, 95,
 31.1096 +    99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,115,
 31.1097 +    44, 98, 44,101, 41, 10, 69,110,117,109,101,114, 97,116,101,
 31.1098 +    40,110, 97,109,101, 44, 98,111,100,121, 41, 10,114,101,116,
 31.1099 +   117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,101, 43,
 31.1100 +    49, 41, 10,101,110,100, 10,101,110,100, 10, 10, 10,100,111,
 31.1101 +    10,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101, 99,108,
 31.1102 +    44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116,
 31.1103 +    32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94,
 31.1104 +    37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 37,115,
 31.1105 +    37, 42, 38, 58, 93, 42,111,112,101,114, 97,116,111,114, 41,
 31.1106 +    37,115, 42, 40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42,
 31.1107 +    41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99,
 31.1108 +    63,111, 63,110, 63,115, 63,116, 63, 41, 37,115, 42, 59, 37,
 31.1109 +   115, 42, 34, 41, 10,105,102, 32,110,111,116, 32, 98, 32,116,
 31.1110 +   104,101,110, 10, 10, 98, 44,101, 44,100,101, 99,108, 44,107,
 31.1111 +   105,110,100, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61,
 31.1112 +    32,115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115,
 31.1113 +    42, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 37,115, 37, 42,
 31.1114 +    38, 58, 93, 42,111,112,101,114, 97,116,111,114, 41, 37,115,
 31.1115 +    42, 40, 91, 94, 37,115, 93, 91, 94, 37,115, 93, 42, 41, 37,
 31.1116 +   115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111,
 31.1117 +    63,110, 63,115, 63,116, 63, 41, 37,115, 42, 37, 98,123,125,
 31.1118 +    37,115, 42, 34, 41, 10,101,110,100, 10,105,102, 32, 98, 32,
 31.1119 +   116,104,101,110, 10, 95, 99,117,114,114, 95, 99,111,100,101,
 31.1120 +    32, 61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101,
 31.1121 +    41, 10, 79,112,101,114, 97,116,111,114, 40,100,101, 99,108,
 31.1122 +    44,107,105,110,100, 44, 97,114,103, 44, 99,111,110,115,116,
 31.1123 +    41, 10,114,101,116,117,114,110, 32,115,116,114,115,117, 98,
 31.1124 +    40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100,
 31.1125 +    10, 10, 10,100,111, 10,108,111, 99, 97,108, 32, 98, 44,101,
 31.1126 +    44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,116,
 31.1127 +    32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94,
 31.1128 +    37,115, 42, 40, 91,126, 95, 37,119, 93, 91, 95, 64, 37,119,
 31.1129 +    37,115, 37, 42, 38, 58, 93, 42, 91, 95, 37,119, 93, 41, 37,
 31.1130 +   115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111,
 31.1131 +    63,110, 63,115, 63,116, 63, 41, 37,115, 42, 61, 63, 37,115,
 31.1132 +    42, 48, 63, 37,115, 42, 59, 37,115, 42, 34, 41, 10,105,102,
 31.1133 +    32,110,111,116, 32, 98, 32,116,104,101,110, 10, 10, 98, 44,
 31.1134 +   101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,115,
 31.1135 +   116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34,
 31.1136 +    94, 37,115, 42, 40, 91, 95, 37,119, 93, 41, 37,115, 42, 40,
 31.1137 +    37, 98, 40, 41, 41, 37,115, 42, 40, 99, 63,111, 63,110, 63,
 31.1138 +   115, 63,116, 63, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,
 31.1139 +   101,110,100, 10,105,102, 32, 98, 32,116,104,101,110, 10, 95,
 31.1140 +    99,117,114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,
 31.1141 +   115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 70,117,110, 99,
 31.1142 +   116,105,111,110, 40,100,101, 99,108, 44, 97,114,103, 44, 99,
 31.1143 +   111,110,115,116, 41, 10,114,101,116,117,114,110, 32,115,116,
 31.1144 +   114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100,
 31.1145 +    10,101,110,100, 10, 10, 10,100,111, 10,108,111, 99, 97,108,
 31.1146 +    32, 98, 44,101, 44,100,101, 99,108, 44, 97,114,103, 44, 99,
 31.1147 +   111,110,115,116, 32, 61, 32,115,116,114,102,105,110,100, 40,
 31.1148 +   115, 44, 34, 94, 37,115, 42, 40, 91,126, 95, 37,119, 93, 91,
 31.1149 +    95, 64, 37,119, 37,115, 37, 42, 38, 58, 93, 42, 91, 95, 37,
 31.1150 +   119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41, 41, 37,115, 42,
 31.1151 +    40, 99, 63,111, 63,110, 63,115, 63,116, 63, 41, 46, 45, 37,
 31.1152 +    98,123,125, 37,115, 42, 34, 41, 10,105,102, 32,110,111,116,
 31.1153 +    32, 98, 32,116,104,101,110, 10, 10, 98, 44,101, 44,100,101,
 31.1154 +    99,108, 44, 97,114,103, 44, 99,111,110,115,116, 32, 61, 32,
 31.1155 +   115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,
 31.1156 +    40, 91, 95, 37,119, 93, 41, 37,115, 42, 40, 37, 98, 40, 41,
 31.1157 +    41, 37,115, 42, 40, 99, 63,111, 63,110, 63,115, 63,116, 63,
 31.1158 +    41, 46, 45, 37, 98,123,125, 37,115, 42, 34, 41, 10,101,110,
 31.1159 +   100, 10,105,102, 32, 98, 32,116,104,101,110, 10, 95, 99,117,
 31.1160 +   114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117,
 31.1161 +    98, 40,115, 44, 98, 44,101, 41, 10, 70,117,110, 99,116,105,
 31.1162 +   111,110, 40,100,101, 99,108, 44, 97,114,103, 44, 99,111,110,
 31.1163 +   115,116, 41, 10,114,101,116,117,114,110, 32,115,116,114,115,
 31.1164 +   117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,
 31.1165 +   110,100, 10, 10, 10,100,111, 10,108,111, 99, 97,108, 32, 98,
 31.1166 +    44,101, 44,110, 97,109,101, 44, 98, 97,115,101, 44, 98,111,
 31.1167 +   100,121, 10, 98, 97,115,101, 32, 61, 32, 39, 39, 32, 98,111,
 31.1168 +   100,121, 32, 61, 32, 39, 39, 10, 98, 44,101, 44,110, 97,109,
 31.1169 +   101, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34,
 31.1170 +    94, 37,115, 42, 99,108, 97,115,115, 37,115, 42, 40, 91, 95,
 31.1171 +    37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 59,
 31.1172 +    34, 41, 10,105,102, 32,110,111,116, 32, 98, 32,116,104,101,
 31.1173 +   110, 10, 98, 44,101, 44,110, 97,109,101, 32, 61, 32,115,116,
 31.1174 +   114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,
 31.1175 +   114,117, 99,116, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95,
 31.1176 +    37,119, 64, 93, 42, 41, 37,115, 42, 59, 34, 41, 10,105,102,
 31.1177 +    32,110,111,116, 32, 98, 32,116,104,101,110, 10, 98, 44,101,
 31.1178 +    44,110, 97,109,101, 44, 98, 97,115,101, 44, 98,111,100,121,
 31.1179 +    32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94,
 31.1180 +    37,115, 42, 99,108, 97,115,115, 37,115, 42, 40, 91, 95, 37,
 31.1181 +   119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42, 40, 46,
 31.1182 +    45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 59,
 31.1183 +    37,115, 42, 34, 41, 10,105,102, 32,110,111,116, 32, 98, 32,
 31.1184 +   116,104,101,110, 10, 98, 44,101, 44,110, 97,109,101, 44, 98,
 31.1185 +    97,115,101, 44, 98,111,100,121, 32, 61, 32,115,116,114,102,
 31.1186 +   105,110,100, 40,115, 44, 34, 94, 37,115, 42,115,116,114,117,
 31.1187 +    99,116, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 95, 37,119,
 31.1188 +    64, 93, 42, 41, 37,115, 42, 40, 46, 45, 41, 37,115, 42, 40,
 31.1189 +    37, 98,123,125, 41, 37,115, 42, 59, 37,115, 42, 34, 41, 10,
 31.1190 +   105,102, 32,110,111,116, 32, 98, 32,116,104,101,110, 10, 98,
 31.1191 +    44,101, 44,110, 97,109,101, 44, 98, 97,115,101, 44, 98,111,
 31.1192 +   100,121, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44,
 31.1193 +    34, 94, 37,115, 42,117,110,105,111,110, 37,115, 42, 40, 91,
 31.1194 +    95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115, 42,
 31.1195 +    40, 46, 45, 41, 37,115, 42, 40, 37, 98,123,125, 41, 37,115,
 31.1196 +    42, 59, 37,115, 42, 34, 41, 10,105,102, 32,110,111,116, 32,
 31.1197 +    98, 32,116,104,101,110, 10, 98, 97,115,101, 32, 61, 32, 39,
 31.1198 +    39, 10, 98, 44,101, 44, 98,111,100,121, 44,110, 97,109,101,
 31.1199 +    32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 94,
 31.1200 +    37,115, 42,116,121,112,101,100,101,102, 37,115, 37,115, 42,
 31.1201 +   115,116,114,117, 99,116, 37,115, 37,115, 42, 91, 95, 37,119,
 31.1202 +    93, 42, 37,115, 42, 40, 37, 98,123,125, 41, 37,115, 42, 40,
 31.1203 +    91, 95, 37,119, 93, 91, 95, 37,119, 64, 93, 42, 41, 37,115,
 31.1204 +    42, 59, 37,115, 42, 34, 41, 10,101,110,100, 10,101,110,100,
 31.1205 +    10,101,110,100, 10,101,110,100, 10,101,110,100, 10,105,102,
 31.1206 +    32, 98, 32,116,104,101,110, 10,105,102, 32, 98, 97,115,101,
 31.1207 +    32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,108,111, 99,
 31.1208 +    97,108, 32, 98, 44,101, 10, 98, 44,101, 44, 98, 97,115,101,
 31.1209 +    32, 61, 32,115,116,114,102,105,110,100, 40, 98, 97,115,101,
 31.1210 +    44, 34, 46, 45, 40, 91, 95, 37,119, 93, 91, 95, 37,119, 93,
 31.1211 +    42, 41, 36, 34, 41, 10,101,110,100, 10, 95, 99,117,114,114,
 31.1212 +    95, 99,111,100,101, 32, 61, 32,115,116,114,115,117, 98, 40,
 31.1213 +   115, 44, 98, 44,101, 41, 10, 67,108, 97,115,115, 40,110, 97,
 31.1214 +   109,101, 44, 98, 97,115,101, 44, 98,111,100,121, 41, 10,114,
 31.1215 +   101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,
 31.1216 +   101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10, 10, 10,
 31.1217 +   100,111, 10,108,111, 99, 97,108, 32, 98, 44,101, 44,116,121,
 31.1218 +   112,101,115, 32, 61, 32,115,116,114,102,105,110,100, 40,115,
 31.1219 +    44, 34, 94, 37,115, 42,116,121,112,101,100,101,102, 37,115,
 31.1220 +    37,115, 42, 40, 46, 45, 41, 37,115, 42, 59, 37,115, 42, 34,
 31.1221 +    41, 10,105,102, 32, 98, 32,116,104,101,110, 10, 95, 99,117,
 31.1222 +   114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117,
 31.1223 +    98, 40,115, 44, 98, 44,101, 41, 10, 84,121,112,101,100,101,
 31.1224 +   102, 40,116,121,112,101,115, 41, 10,114,101,116,117,114,110,
 31.1225 +    32,115,116,114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,
 31.1226 +   101,110,100, 10,101,110,100, 10, 10, 10,100,111, 10,108,111,
 31.1227 +    99, 97,108, 32, 98, 44,101, 44,100,101, 99,108, 32, 61, 32,
 31.1228 +   115,116,114,102,105,110,100, 40,115, 44, 34, 94, 37,115, 42,
 31.1229 +    40, 91, 95, 37,119, 93, 91, 95, 64, 37,115, 37,119, 37,100,
 31.1230 +    37, 42, 38, 58, 93, 42, 91, 95, 37,119, 37,100, 93, 41, 37,
 31.1231 +   115, 42, 59, 37,115, 42, 34, 41, 10,105,102, 32, 98, 32,116,
 31.1232 +   104,101,110, 10, 95, 99,117,114,114, 95, 99,111,100,101, 32,
 31.1233 +    61, 32,115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41,
 31.1234 +    10, 86, 97,114,105, 97, 98,108,101, 40,100,101, 99,108, 41,
 31.1235 +    10,114,101,116,117,114,110, 32,115,116,114,115,117, 98, 40,
 31.1236 +   115, 44,101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10,
 31.1237 +    10, 10,100,111, 10,108,111, 99, 97,108, 32, 98, 44,101, 44,
 31.1238 +   100,101, 99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,
 31.1239 +   115, 44, 34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 63, 91,
 31.1240 +    95, 37,115, 37,119, 37,100, 93, 45, 99,104, 97,114, 37,115,
 31.1241 +    43, 91, 95, 64, 37,119, 37,100, 93, 42, 37,115, 42, 37, 91,
 31.1242 +    37,115, 42, 37, 83, 43, 37,115, 42, 37, 93, 41, 37,115, 42,
 31.1243 +    59, 37,115, 42, 34, 41, 10,105,102, 32, 98, 32,116,104,101,
 31.1244 +   110, 10, 95, 99,117,114,114, 95, 99,111,100,101, 32, 61, 32,
 31.1245 +   115,116,114,115,117, 98, 40,115, 44, 98, 44,101, 41, 10, 86,
 31.1246 +    97,114,105, 97, 98,108,101, 40,100,101, 99,108, 41, 10,114,
 31.1247 +   101,116,117,114,110, 32,115,116,114,115,117, 98, 40,115, 44,
 31.1248 +   101, 43, 49, 41, 10,101,110,100, 10,101,110,100, 10, 10, 10,
 31.1249 +   100,111, 10,108,111, 99, 97,108, 32, 98, 44,101, 44,100,101,
 31.1250 +    99,108, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44,
 31.1251 +    34, 94, 37,115, 42, 40, 91, 95, 37,119, 93, 91, 93, 91, 95,
 31.1252 +    64, 37,115, 37,119, 37,100, 37, 42, 38, 58, 93, 42, 91, 93,
 31.1253 +    95, 37,119, 37,100, 93, 41, 37,115, 42, 59, 37,115, 42, 34,
 31.1254 +    41, 10,105,102, 32, 98, 32,116,104,101,110, 10, 95, 99,117,
 31.1255 +   114,114, 95, 99,111,100,101, 32, 61, 32,115,116,114,115,117,
 31.1256 +    98, 40,115, 44, 98, 44,101, 41, 10, 65,114,114, 97,121, 40,
 31.1257 +   100,101, 99,108, 41, 10,114,101,116,117,114,110, 32,115,116,
 31.1258 +   114,115,117, 98, 40,115, 44,101, 43, 49, 41, 10,101,110,100,
 31.1259 +    10,101,110,100, 10, 10, 10,105,102, 32,103,115,117, 98, 40,
 31.1260 +   115, 44, 34, 37,115, 37,115, 42, 34, 44, 34, 34, 41, 32,126,
 31.1261 +    61, 32, 34, 34, 32,116,104,101,110, 10, 95, 99,117,114,114,
 31.1262 +    95, 99,111,100,101, 32, 61, 32,115, 10,101,114,114,111,114,
 31.1263 +    40, 34, 35,112, 97,114,115,101, 32,101,114,114,111,114, 34,
 31.1264 +    41, 10,101,108,115,101, 10,114,101,116,117,114,110, 32, 34,
 31.1265 +    34, 10,101,110,100, 10, 10,101,110,100, 10, 10,102,117,110,
 31.1266 +    99,116,105,111,110, 32, 99,108, 97,115,115, 67,111,110,116,
 31.1267 +    97,105,110,101,114, 58,112, 97,114,115,101, 32, 40,115, 41,
 31.1268 +    10,119,104,105,108,101, 32,115, 32,126, 61, 32, 39, 39, 32,
 31.1269 +   100,111, 10,115, 32, 61, 32,115,101,108,102, 58,100,111,112,
 31.1270 +    97,114,115,101, 40,115, 41, 10,101,110,100, 10,101,110,100,
 31.1271 +   32
 31.1272 +  };
 31.1273 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
 31.1274 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
 31.1275 + } /* end of embedded lua code */
 31.1276 +
 31.1277 +
 31.1278 + { /* begin embedded lua code */
 31.1279 +  static unsigned char B[] = {
 31.1280 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
 31.1281 +    10, 10, 10, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101,
 31.1282 +    32, 61, 32,123, 10, 99,108, 97,115,115,116,121,112,101, 32,
 31.1283 +    61, 32, 39,112, 97, 99,107, 97,103,101, 39, 10,125, 10, 99,
 31.1284 +   108, 97,115,115, 80, 97, 99,107, 97,103,101, 46, 95, 95,105,
 31.1285 +   110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 80, 97, 99,
 31.1286 +   107, 97,103,101, 10,115,101,116,109,101,116, 97,116, 97, 98,
 31.1287 +   108,101, 40, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101,
 31.1288 +    44, 99,108, 97,115,115, 67,111,110,116, 97,105,110,101,114,
 31.1289 +    41, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108,
 31.1290 +    97,115,115, 80, 97, 99,107, 97,103,101, 58,112,114,105,110,
 31.1291 +   116, 32, 40, 41, 10,112,114,105,110,116, 40, 34, 80, 97, 99,
 31.1292 +   107, 97,103,101, 58, 32, 34, 46, 46,115,101,108,102, 46,110,
 31.1293 +    97,109,101, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,
 31.1294 +   119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,
 31.1295 +   111, 10,115,101,108,102, 91,105, 93, 58,112,114,105,110,116,
 31.1296 +    40, 34, 34, 44, 34, 34, 41, 10,105, 32, 61, 32,105, 43, 49,
 31.1297 +    10,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,116,
 31.1298 +   105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,
 31.1299 +   101, 58,112,114,101,112,114,111, 99,101,115,115, 32, 40, 41,
 31.1300 +    10, 10,108,111, 99, 97,108, 32, 76, 32, 61, 32,123,125, 10,
 31.1301 +   115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117,
 31.1302 +    98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110,
 31.1303 +    37,115, 42, 37, 36, 37, 91, 34, 44, 34, 92, 49, 34, 41, 10,
 31.1304 +   115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117,
 31.1305 +    98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92,110,
 31.1306 +    37,115, 42, 37, 36, 37, 93, 34, 44, 34, 92, 50, 34, 41, 10,
 31.1307 +   115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117,
 31.1308 +    98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 37,
 31.1309 +    98, 92, 49, 92, 50, 41, 34, 44, 32,102,117,110, 99,116,105,
 31.1310 +   111,110, 32, 40, 99, 41, 10,116,105,110,115,101,114,116, 40,
 31.1311 +    76, 44, 99, 41, 10,114,101,116,117,114,110, 32, 34, 92,110,
 31.1312 +    35, 91, 34, 46, 46,103,101,116,110, 40, 76, 41, 46, 46, 34,
 31.1313 +    93, 35, 34, 10,101,110,100, 41, 10, 10,108,111, 99, 97,108,
 31.1314 +    32, 67, 32, 61, 32,123,125, 10,115,101,108,102, 46, 99,111,
 31.1315 +   100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,
 31.1316 +    99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 60,
 31.1317 +    34, 44, 34, 92, 51, 34, 41, 10,115,101,108,102, 46, 99,111,
 31.1318 +   100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,
 31.1319 +    99,111,100,101, 44, 34, 92,110, 37,115, 42, 37, 36, 37, 62,
 31.1320 +    34, 44, 34, 92, 52, 34, 41, 10,115,101,108,102, 46, 99,111,
 31.1321 +   100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,
 31.1322 +    99,111,100,101, 44, 34, 40, 37, 98, 92, 51, 92, 52, 41, 34,
 31.1323 +    44, 32,102,117,110, 99,116,105,111,110, 32, 40, 99, 41, 10,
 31.1324 +   116,105,110,115,101,114,116, 40, 67, 44, 99, 41, 10,114,101,
 31.1325 +   116,117,114,110, 32, 34, 92,110, 35, 60, 34, 46, 46,103,101,
 31.1326 +   116,110, 40, 67, 41, 46, 46, 34, 62, 35, 34, 10,101,110,100,
 31.1327 +    41, 10, 10, 10,108,111, 99, 97,108, 32, 86, 32, 61, 32,123,
 31.1328 +   125, 10,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,
 31.1329 +   115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34,
 31.1330 +    92,110, 40, 37,115, 42, 37, 36, 91, 94, 37, 91, 37, 93, 93,
 31.1331 +    91, 94, 92,110, 93, 42, 41, 34, 44,102,117,110, 99,116,105,
 31.1332 +   111,110, 32, 40,118, 41, 10,116,105,110,115,101,114,116, 40,
 31.1333 +    86, 44,118, 41, 10,114,101,116,117,114,110, 32, 34, 92,110,
 31.1334 +    35, 34, 46, 46,103,101,116,110, 40, 86, 41, 46, 46, 34, 35,
 31.1335 +    34, 10,101,110,100, 41, 10, 10, 10,115,101,108,102, 46, 99,
 31.1336 +   111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102,
 31.1337 +    46, 99,111,100,101, 44, 34, 40, 47, 47, 91, 94, 92,110, 93,
 31.1338 +    42, 41, 34, 44, 34, 34, 41, 10,115,101,108,102, 46, 99,111,
 31.1339 +   100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,
 31.1340 +    99,111,100,101, 44, 34, 47, 37, 42, 34, 44, 34, 92, 49, 34,
 31.1341 +    41, 10,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,
 31.1342 +   115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34,
 31.1343 +    37, 42, 47, 34, 44, 34, 92, 50, 34, 41, 10,115,101,108,102,
 31.1344 +    46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,
 31.1345 +   108,102, 46, 99,111,100,101, 44, 34, 37, 98, 92, 49, 92, 50,
 31.1346 +    34, 44, 34, 34, 41, 10,115,101,108,102, 46, 99,111,100,101,
 31.1347 +    32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,
 31.1348 +   100,101, 44, 34, 92, 49, 34, 44, 34, 47, 37, 42, 34, 41, 10,
 31.1349 +   115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117,
 31.1350 +    98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 92, 50,
 31.1351 +    34, 44, 34, 37, 42, 47, 34, 41, 10,115,101,108,102, 46, 99,
 31.1352 +   111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102,
 31.1353 +    46, 99,111,100,101, 44, 34, 37,115, 42, 64, 37,115, 42, 34,
 31.1354 +    44, 34, 64, 34, 41, 10,115,101,108,102, 46, 99,111,100,101,
 31.1355 +    32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,
 31.1356 +   100,101, 44, 34, 37,115, 63,105,110,108,105,110,101, 40, 37,
 31.1357 +   115, 41, 34, 44, 34, 37, 49, 34, 41, 10,115,101,108,102, 46,
 31.1358 +    99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,
 31.1359 +   102, 46, 99,111,100,101, 44, 34, 37,115, 63,101,120,116,101,
 31.1360 +   114,110, 40, 37,115, 41, 34, 44, 34, 37, 49, 34, 41, 10,115,
 31.1361 +   101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98,
 31.1362 +    40,115,101,108,102, 46, 99,111,100,101, 44, 34, 37,115, 63,
 31.1363 +   118,105,114,116,117, 97,108, 40, 37,115, 41, 34, 44, 34, 37,
 31.1364 +    49, 34, 41, 10,115,101,108,102, 46, 99,111,100,101, 32, 61,
 31.1365 +    32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101,
 31.1366 +    44, 34,112,117, 98,108,105, 99, 58, 34, 44, 34, 34, 41, 10,
 31.1367 +   115,101,108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117,
 31.1368 +    98, 40,115,101,108,102, 46, 99,111,100,101, 44, 34, 40, 91,
 31.1369 +    94, 37,119, 95, 93, 41,118,111,105,100, 37,115, 42, 37, 42,
 31.1370 +    34, 44, 34, 37, 49, 95,117,115,101,114,100, 97,116, 97, 32,
 31.1371 +    34, 41, 10,115,101,108,102, 46, 99,111,100,101, 32, 61, 32,
 31.1372 +   103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101, 44,
 31.1373 +    34, 40, 91, 94, 37,119, 95, 93, 41,118,111,105,100, 37,115,
 31.1374 +    42, 37, 42, 34, 44, 34, 37, 49, 95,117,115,101,114,100, 97,
 31.1375 +   116, 97, 32, 34, 41, 10,115,101,108,102, 46, 99,111,100,101,
 31.1376 +    32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,
 31.1377 +   100,101, 44, 34, 40, 91, 94, 37,119, 95, 93, 41, 99,104, 97,
 31.1378 +   114, 37,115, 42, 37, 42, 34, 44, 34, 37, 49, 95, 99,115,116,
 31.1379 +   114,105,110,103, 32, 34, 41, 10, 10, 10,115,101,108,102, 46,
 31.1380 +    99,111,100,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,
 31.1381 +   102, 46, 99,111,100,101, 44, 34, 37, 35, 37, 91, 40, 37,100,
 31.1382 +    43, 41, 37, 93, 37, 35, 34, 44,102,117,110, 99,116,105,111,
 31.1383 +   110, 32, 40,110, 41, 10,114,101,116,117,114,110, 32, 76, 91,
 31.1384 +   116,111,110,117,109, 98,101,114, 40,110, 41, 93, 10,101,110,
 31.1385 +   100, 41, 10, 10,115,101,108,102, 46, 99,111,100,101, 32, 61,
 31.1386 +    32,103,115,117, 98, 40,115,101,108,102, 46, 99,111,100,101,
 31.1387 +    44, 34, 37, 35, 37, 60, 40, 37,100, 43, 41, 37, 62, 37, 35,
 31.1388 +    34, 44,102,117,110, 99,116,105,111,110, 32, 40,110, 41, 10,
 31.1389 +   114,101,116,117,114,110, 32, 67, 91,116,111,110,117,109, 98,
 31.1390 +   101,114, 40,110, 41, 93, 10,101,110,100, 41, 10, 10,115,101,
 31.1391 +   108,102, 46, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40,
 31.1392 +   115,101,108,102, 46, 99,111,100,101, 44, 34, 37, 35, 40, 37,
 31.1393 +   100, 43, 41, 37, 35, 34, 44,102,117,110, 99,116,105,111,110,
 31.1394 +    32, 40,110, 41, 10,114,101,116,117,114,110, 32, 86, 91,116,
 31.1395 +   111,110,117,109, 98,101,114, 40,110, 41, 93, 10,101,110,100,
 31.1396 +    41, 10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,
 31.1397 +   110, 32, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 58,
 31.1398 +   112,114,101, 97,109, 98,108,101, 32, 40, 41, 10,111,117,116,
 31.1399 +   112,117,116, 40, 39, 47, 42, 92,110, 39, 41, 10,111,117,116,
 31.1400 +   112,117,116, 40, 39, 42, 42, 32, 76,117, 97, 32, 98,105,110,
 31.1401 +   100,105,110,103, 58, 32, 39, 46, 46,115,101,108,102, 46,110,
 31.1402 +    97,109,101, 46, 46, 39, 92,110, 39, 41, 10,111,117,116,112,
 31.1403 +   117,116, 40, 39, 42, 42, 32, 71,101,110,101,114, 97,116,101,
 31.1404 +   100, 32, 97,117,116,111,109, 97,116,105, 99, 97,108,108,121,
 31.1405 +    32, 98,121, 32, 39, 46, 46, 84, 79, 76, 85, 65, 95, 86, 69,
 31.1406 +    82, 83, 73, 79, 78, 46, 46, 39, 32,111,110, 32, 39, 46, 46,
 31.1407 +   100, 97,116,101, 40, 41, 46, 46, 39, 46, 92,110, 39, 41, 10,
 31.1408 +   111,117,116,112,117,116, 40, 39, 42, 47, 92,110, 92,110, 39,
 31.1409 +    41, 10, 10,111,117,116,112,117,116, 40, 39, 35,105,102,110,
 31.1410 +   100,101,102, 32, 95, 95, 99,112,108,117,115,112,108,117,115,
 31.1411 +    92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,105,
 31.1412 +   110, 99,108,117,100,101, 32, 34,115,116,100,108,105, 98, 46,
 31.1413 +   104, 34, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39,
 31.1414 +    35,101,110,100,105,102, 92,110, 39, 41, 10,111,117,116,112,
 31.1415 +   117,116, 40, 39, 35,105,110, 99,108,117,100,101, 32, 34,115,
 31.1416 +   116,114,105,110,103, 46,104, 34, 92,110, 92,110, 39, 41, 10,
 31.1417 +   111,117,116,112,117,116, 40, 39, 35,105,110, 99,108,117,100,
 31.1418 +   101, 32, 34,116,111,108,117, 97, 46,104, 34, 92,110, 92,110,
 31.1419 +    39, 41, 10, 10,105,102, 32,110,111,116, 32,102,108, 97,103,
 31.1420 +   115, 46,104, 32,116,104,101,110, 10,111,117,116,112,117,116,
 31.1421 +    40, 39, 47, 42, 32, 69,120,112,111,114,116,101,100, 32,102,
 31.1422 +   117,110, 99,116,105,111,110, 32, 42, 47, 39, 41, 10,111,117,
 31.1423 +   116,112,117,116, 40, 39, 84, 79, 76, 85, 65, 95, 65, 80, 73,
 31.1424 +    32,105,110,116, 32,116,111,108,117, 97, 95, 39, 46, 46,115,
 31.1425 +   101,108,102, 46,110, 97,109,101, 46, 46, 39, 95,111,112,101,
 31.1426 +   110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,
 31.1427 +   111,108,117, 97, 95, 83, 41, 59, 39, 41, 10,111,117,116,112,
 31.1428 +   117,116, 40, 39, 76, 85, 65, 76, 73, 66, 95, 65, 80, 73, 32,
 31.1429 +   105,110,116, 32,108,117, 97,111,112,101,110, 95, 39, 46, 46,
 31.1430 +   115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 32, 40,108,
 31.1431 +   117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,117, 97,
 31.1432 +    95, 83, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39,
 31.1433 +    92,110, 39, 41, 10,101,110,100, 10, 10,108,111, 99, 97,108,
 31.1434 +    32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102,
 31.1435 +    91,105, 93, 32,100,111, 10,115,101,108,102, 91,105, 93, 58,
 31.1436 +   112,114,101, 97,109, 98,108,101, 40, 41, 10,105, 32, 61, 32,
 31.1437 +   105, 43, 49, 10,101,110,100, 10, 10, 10, 10,105,102, 32,115,
 31.1438 +   101,108,102, 58,114,101,113,117,105,114,101, 99,111,108,108,
 31.1439 +   101, 99,116,105,111,110, 40, 95, 99,111,108,108,101, 99,116,
 31.1440 +    41, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39,
 31.1441 +    92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 47, 42,
 31.1442 +    32,102,117,110, 99,116,105,111,110, 32,116,111, 32,114,101,
 31.1443 +   108,101, 97,115,101, 32, 99,111,108,108,101, 99,116,101,100,
 31.1444 +    32,111, 98,106,101, 99,116, 32, 42, 47, 39, 41, 10,111,117,
 31.1445 +   116,112,117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95,
 31.1446 +    99,112,108,117,115,112,108,117,115, 92,110, 39, 41, 10,102,
 31.1447 +   111,114, 32,105, 44,118, 32,105,110, 32,112, 97,105,114,115,
 31.1448 +    40, 95, 99,111,108,108,101, 99,116, 41, 32,100,111, 10,111,
 31.1449 +   117,116,112,117,116, 40, 39,115,116, 97,116,105, 99, 32,105,
 31.1450 +   110,116, 32,116,111,108,117, 97, 95, 99,111,108,108,101, 99,
 31.1451 +   116, 95, 39, 46, 46,118, 46, 46, 39, 32, 40,108,117, 97, 95,
 31.1452 +    83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41,
 31.1453 +    39, 41, 10,111,117,116,112,117,116, 40, 39,123, 39, 41, 10,
 31.1454 +   111,117,116,112,117,116, 40, 39, 32, 39, 46, 46,105, 46, 46,
 31.1455 +    39, 42, 32,115,101,108,102, 32, 61, 32, 40, 39, 46, 46,105,
 31.1456 +    46, 46, 39, 42, 41, 32,116,111,108,117, 97, 95,116,111,117,
 31.1457 +   115,101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83,
 31.1458 +    44, 49, 44, 48, 41, 59, 39, 41, 10,111,117,116,112,117,116,
 31.1459 +    40, 39, 32,100,101,108,101,116,101, 32,115,101,108,102, 59,
 31.1460 +    39, 41, 10,111,117,116,112,117,116, 40, 39, 32,114,101,116,
 31.1461 +   117,114,110, 32, 48, 59, 39, 41, 10,111,117,116,112,117,116,
 31.1462 +    40, 39,125, 92,110, 39, 41, 10,101,110,100, 10,111,117,116,
 31.1463 +   112,117,116, 40, 39, 35,101,108,115,101, 92,110,115,116, 97,
 31.1464 +   116,105, 99, 32,105,110,116, 32,116,111,108,117, 97, 95, 99,
 31.1465 +   111,108,108,101, 99,116, 32, 40,108,117, 97, 95, 83,116, 97,
 31.1466 +   116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10,
 31.1467 +   111,117,116,112,117,116, 40, 39,123, 39, 41, 10,111,117,116,
 31.1468 +   112,117,116, 40, 39, 32,118,111,105,100, 42, 32,115,101,108,
 31.1469 +   102, 32, 61, 32,116,111,108,117, 97, 95,116,111,117,115,101,
 31.1470 +   114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 49,
 31.1471 +    44, 48, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39,
 31.1472 +    32,102,114,101,101, 40,115,101,108,102, 41, 59, 39, 41, 10,
 31.1473 +   111,117,116,112,117,116, 40, 39, 32,114,101,116,117,114,110,
 31.1474 +    32, 48, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39,125,
 31.1475 +    39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100,
 31.1476 +   105,102, 92,110, 92,110, 39, 41, 10,101,110,100, 10, 10,111,
 31.1477 +   117,116,112,117,116, 40, 39, 92,110, 39, 41, 10,111,117,116,
 31.1478 +   112,117,116, 40, 39, 47, 42, 32,102,117,110, 99,116,105,111,
 31.1479 +   110, 32,116,111, 32,114,101,103,105,115,116,101,114, 32,116,
 31.1480 +   121,112,101, 32, 42, 47, 39, 41, 10,111,117,116,112,117,116,
 31.1481 +    40, 39,115,116, 97,116,105, 99, 32,118,111,105,100, 32,116,
 31.1482 +   111,108,117, 97, 95,114,101,103, 95,116,121,112,101,115, 32,
 31.1483 +    40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,111,108,
 31.1484 +   117, 97, 95, 83, 41, 39, 41, 10,111,117,116,112,117,116, 40,
 31.1485 +    39,123, 39, 41, 10,102,111,114,101, 97, 99,104, 40, 95,117,
 31.1486 +   115,101,114,116,121,112,101, 44,102,117,110, 99,116,105,111,
 31.1487 +   110, 40,110, 44,118, 41, 32,111,117,116,112,117,116, 40, 39,
 31.1488 +    32,116,111,108,117, 97, 95,117,115,101,114,116,121,112,101,
 31.1489 +    40,116,111,108,117, 97, 95, 83, 44, 34, 39, 44,118, 44, 39,
 31.1490 +    34, 41, 59, 39, 41, 32,101,110,100, 41, 10,111,117,116,112,
 31.1491 +   117,116, 40, 39,125, 39, 41, 10,111,117,116,112,117,116, 40,
 31.1492 +    39, 92,110, 39, 41, 10,101,110,100, 10, 10, 10, 10,102,117,
 31.1493 +   110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80, 97, 99,
 31.1494 +   107, 97,103,101, 58,114,101,103,105,115,116,101,114, 32, 40,
 31.1495 +    41, 10,112,117,115,104, 40,115,101,108,102, 41, 10, 10,111,
 31.1496 +   117,116,112,117,116, 40, 34, 47, 42, 32, 79,112,101,110, 32,
 31.1497 +   108,105, 98, 32,102,117,110, 99,116,105,111,110, 32, 42, 47,
 31.1498 +    34, 41, 10,111,117,116,112,117,116, 40, 39, 76, 85, 65, 76,
 31.1499 +    73, 66, 95, 65, 80, 73, 32,105,110,116, 32,108,117, 97,111,
 31.1500 +   112,101,110, 95, 39, 46, 46,115,101,108,102, 46,110, 97,109,
 31.1501 +   101, 46, 46, 39, 32, 40,108,117, 97, 95, 83,116, 97,116,101,
 31.1502 +    42, 32,116,111,108,117, 97, 95, 83, 41, 39, 41, 10,111,117,
 31.1503 +   116,112,117,116, 40, 34,123, 34, 41, 10,111,117,116,112,117,
 31.1504 +   116, 40, 34, 32,116,111,108,117, 97, 95,111,112,101,110, 40,
 31.1505 +   116,111,108,117, 97, 95, 83, 41, 59, 34, 41, 10,111,117,116,
 31.1506 +   112,117,116, 40, 34, 32,116,111,108,117, 97, 95,114,101,103,
 31.1507 +    95,116,121,112,101,115, 40,116,111,108,117, 97, 95, 83, 41,
 31.1508 +    59, 34, 41, 10,111,117,116,112,117,116, 40, 34, 32,116,111,
 31.1509 +   108,117, 97, 95,109,111,100,117,108,101, 40,116,111,108,117,
 31.1510 +    97, 95, 83, 44, 78, 85, 76, 76, 44, 34, 44,115,101,108,102,
 31.1511 +    58,104, 97,115,118, 97,114, 40, 41, 44, 34, 41, 59, 34, 41,
 31.1512 +    10,111,117,116,112,117,116, 40, 34, 32,116,111,108,117, 97,
 31.1513 +    95, 98,101,103,105,110,109,111,100,117,108,101, 40,116,111,
 31.1514 +   108,117, 97, 95, 83, 44, 78, 85, 76, 76, 41, 59, 34, 41, 10,
 31.1515 +   108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,108,101,
 31.1516 +    32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,101,108,
 31.1517 +   102, 91,105, 93, 58,114,101,103,105,115,116,101,114, 40, 41,
 31.1518 +    10,105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,111,117,
 31.1519 +   116,112,117,116, 40, 34, 32,116,111,108,117, 97, 95,101,110,
 31.1520 +   100,109,111,100,117,108,101, 40,116,111,108,117, 97, 95, 83,
 31.1521 +    41, 59, 34, 41, 10,111,117,116,112,117,116, 40, 34, 32,114,
 31.1522 +   101,116,117,114,110, 32, 49, 59, 34, 41, 10,111,117,116,112,
 31.1523 +   117,116, 40, 34,125, 34, 41, 10, 10,111,117,116,112,117,116,
 31.1524 +    40, 34, 47, 42, 32, 79,112,101,110, 32,116,111,108,117, 97,
 31.1525 +    32,102,117,110, 99,116,105,111,110, 32, 42, 47, 34, 41, 10,
 31.1526 +   111,117,116,112,117,116, 40, 34, 84, 79, 76, 85, 65, 95, 65,
 31.1527 +    80, 73, 32,105,110,116, 32,116,111,108,117, 97, 95, 34, 46,
 31.1528 +    46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 95,111,
 31.1529 +   112,101,110, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42,
 31.1530 +    32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10,111,117,116,
 31.1531 +   112,117,116, 40, 34,123, 34, 41, 10,111,117,116,112,117,116,
 31.1532 +    40, 34, 32,108,117, 97, 95,112,117,115,104, 99,102,117,110,
 31.1533 +    99,116,105,111,110, 40,116,111,108,117, 97, 95, 83, 44, 32,
 31.1534 +   108,117, 97,111,112,101,110, 95, 34, 46, 46,115,101,108,102,
 31.1535 +    46,110, 97,109,101, 46, 46, 34, 41, 59, 34, 41, 10,111,117,
 31.1536 +   116,112,117,116, 40, 39, 32,108,117, 97, 95,112,117,115,104,
 31.1537 +   115,116,114,105,110,103, 40,116,111,108,117, 97, 95, 83, 44,
 31.1538 +    32, 34, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46,
 31.1539 +    46, 39, 34, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40,
 31.1540 +    34, 32,108,117, 97, 95, 99, 97,108,108, 40,116,111,108,117,
 31.1541 +    97, 95, 83, 44, 32, 49, 44, 32, 48, 41, 59, 34, 41, 10,111,
 31.1542 +   117,116,112,117,116, 40, 34, 32,114,101,116,117,114,110, 32,
 31.1543 +    49, 59, 34, 41, 10,111,117,116,112,117,116, 40, 34,125, 34,
 31.1544 +    41, 10, 10,112,111,112, 40, 41, 10,101,110,100, 10, 10, 10,
 31.1545 +   102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 80,
 31.1546 +    97, 99,107, 97,103,101, 58,104,101, 97,100,101,114, 32, 40,
 31.1547 +    41, 10,111,117,116,112,117,116, 40, 39, 47, 42, 92,110, 39,
 31.1548 +    41, 32,111,117,116,112,117,116, 40, 39, 42, 42, 32, 76,117,
 31.1549 +    97, 32, 98,105,110,100,105,110,103, 58, 32, 39, 46, 46,115,
 31.1550 +   101,108,102, 46,110, 97,109,101, 46, 46, 39, 92,110, 39, 41,
 31.1551 +    10,111,117,116,112,117,116, 40, 39, 42, 42, 32, 71,101,110,
 31.1552 +   101,114, 97,116,101,100, 32, 97,117,116,111,109, 97,116,105,
 31.1553 +    99, 97,108,108,121, 32, 98,121, 32, 39, 46, 46, 84, 79, 76,
 31.1554 +    85, 65, 95, 86, 69, 82, 83, 73, 79, 78, 46, 46, 39, 32,111,
 31.1555 +   110, 32, 39, 46, 46,100, 97,116,101, 40, 41, 46, 46, 39, 46,
 31.1556 +    92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 42, 47,
 31.1557 +    92,110, 92,110, 39, 41, 10, 10,105,102, 32,110,111,116, 32,
 31.1558 +   102,108, 97,103,115, 46,104, 32,116,104,101,110, 10,111,117,
 31.1559 +   116,112,117,116, 40, 39, 47, 42, 32, 69,120,112,111,114,116,
 31.1560 +   101,100, 32,102,117,110, 99,116,105,111,110, 32, 42, 47, 39,
 31.1561 +    41, 10,111,117,116,112,117,116, 40, 39, 84, 79, 76, 85, 65,
 31.1562 +    95, 65, 80, 73, 32,105,110,116, 32,116,111,108,117, 97, 95,
 31.1563 +    39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39,
 31.1564 +    95,111,112,101,110, 32, 40,108,117, 97, 95, 83,116, 97,116,
 31.1565 +   101, 42, 32,116,111,108,117, 97, 95, 83, 41, 59, 39, 41, 10,
 31.1566 +   111,117,116,112,117,116, 40, 39, 76, 85, 65, 76, 73, 66, 95,
 31.1567 +    65, 80, 73, 32,105,110,116, 32,108,117, 97,111,112,101,110,
 31.1568 +    95, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46,
 31.1569 +    39, 32, 40,108,117, 97, 95, 83,116, 97,116,101, 42, 32,116,
 31.1570 +   111,108,117, 97, 95, 83, 41, 59, 39, 41, 10,111,117,116,112,
 31.1571 +   117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10,101,110,
 31.1572 +   100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 95, 80,
 31.1573 +    97, 99,107, 97,103,101, 32, 40,115,101,108,102, 41, 10,115,
 31.1574 +   101,116,109,101,116, 97,116, 97, 98,108,101, 40,115,101,108,
 31.1575 +   102, 44, 99,108, 97,115,115, 80, 97, 99,107, 97,103,101, 41,
 31.1576 +    10,114,101,116,117,114,110, 32,115,101,108,102, 10,101,110,
 31.1577 +   100, 10, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,101,
 31.1578 +   120,116,114, 97, 99,116, 95, 99,111,100,101, 40,102,110, 44,
 31.1579 +   115, 41, 10,108,111, 99, 97,108, 32, 99,111,100,101, 32, 61,
 31.1580 +    32, 39, 92,110, 36, 35,105,110, 99,108,117,100,101, 32, 34,
 31.1581 +    39, 46, 46,102,110, 46, 46, 39, 34, 92,110, 39, 10,115, 61,
 31.1582 +    32, 34, 92,110, 34, 32, 46, 46, 32,115, 32, 46, 46, 32, 34,
 31.1583 +    92,110, 34, 10,108,111, 99, 97,108, 32, 95, 44,101, 44, 99,
 31.1584 +    44,116, 32, 61, 32,115,116,114,102,105,110,100, 40,115, 44,
 31.1585 +    32, 34, 92,110, 40, 91, 94, 92,110, 93, 45, 41, 91, 84,116,
 31.1586 +    93, 91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65,
 31.1587 +    97, 93, 95, 40, 91, 94, 37,115, 93, 42, 41, 91, 94, 92,110,
 31.1588 +    93, 42, 92,110, 34, 41, 10,119,104,105,108,101, 32,101, 32,
 31.1589 +   100,111, 10,116, 32, 61, 32,115,116,114,108,111,119,101,114,
 31.1590 +    40,116, 41, 10,105,102, 32,116, 32, 61, 61, 32, 34, 98,101,
 31.1591 +   103,105,110, 34, 32,116,104,101,110, 10, 95, 44,101, 44, 99,
 31.1592 +    32, 61, 32,115,116,114,102,105,110,100, 40,115, 44, 34, 40,
 31.1593 +    46, 45, 41, 92,110, 91, 94, 92,110, 93, 42, 91, 84,116, 93,
 31.1594 +    91, 79,111, 93, 91, 76,108, 93, 91, 85,117, 93, 91, 65, 97,
 31.1595 +    93, 95, 91, 69,101, 93, 91, 78,110, 93, 91, 68,100, 93, 91,
 31.1596 +    94, 92,110, 93, 42, 92,110, 34, 44,101, 41, 10,105,102, 32,
 31.1597 +   110,111,116, 32,101, 32,116,104,101,110, 10,116,111,108,117,
 31.1598 +    97, 95,101,114,114,111,114, 40, 34, 85,110, 98, 97,108, 97,
 31.1599 +   110, 99,101,100, 32, 39,116,111,108,117, 97, 95, 98,101,103,
 31.1600 +   105,110, 39, 32,100,105,114,101, 99,116,105,118,101, 32,105,
 31.1601 +   110, 32,104,101, 97,100,101,114, 32,102,105,108,101, 34, 41,
 31.1602 +    10,101,110,100, 10,101,110,100, 10, 99,111,100,101, 32, 61,
 31.1603 +    32, 99,111,100,101, 32, 46, 46, 32, 99, 32, 46, 46, 32, 34,
 31.1604 +    92,110, 34, 10, 95, 44,101, 44, 99, 44,116, 32, 61, 32,115,
 31.1605 +   116,114,102,105,110,100, 40,115, 44, 32, 34, 92,110, 40, 91,
 31.1606 +    94, 92,110, 93, 45, 41, 91, 84,116, 93, 91, 79,111, 93, 91,
 31.1607 +    76,108, 93, 91, 85,117, 93, 91, 65, 97, 93, 95, 40, 91, 94,
 31.1608 +    37,115, 93, 42, 41, 91, 94, 92,110, 93, 42, 92,110, 34, 44,
 31.1609 +   101, 41, 10,101,110,100, 10,114,101,116,117,114,110, 32, 99,
 31.1610 +   111,100,101, 10,101,110,100, 10, 10, 10, 10,102,117,110, 99,
 31.1611 +   116,105,111,110, 32, 80, 97, 99,107, 97,103,101, 32, 40,110,
 31.1612 +    97,109,101, 44,102,110, 41, 10,108,111, 99, 97,108, 32,101,
 31.1613 +   120,116, 32, 61, 32, 34,112,107,103, 34, 10, 10, 10,105,102,
 31.1614 +    32,102,110, 32,116,104,101,110, 10,108,111, 99, 97,108, 32,
 31.1615 +   115,116, 44, 32,109,115,103, 32, 61, 32,114,101, 97,100,102,
 31.1616 +   114,111,109, 40,102,108, 97,103,115, 46,102, 41, 10,105,102,
 31.1617 +    32,110,111,116, 32,115,116, 32,116,104,101,110, 10,101,114,
 31.1618 +   114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 41, 10,101,
 31.1619 +   110,100, 10,108,111, 99, 97,108, 32, 95, 59, 32, 95, 44, 32,
 31.1620 +    95, 44, 32,101,120,116, 32, 61, 32,115,116,114,102,105,110,
 31.1621 +   100, 40,102,110, 44, 34, 46, 42, 37, 46, 40, 46, 42, 41, 36,
 31.1622 +    34, 41, 10,101,110,100, 10,108,111, 99, 97,108, 32, 99,111,
 31.1623 +   100,101, 32, 61, 32, 34, 92,110, 34, 32, 46, 46, 32,114,101,
 31.1624 +    97,100, 40, 39, 42, 97, 39, 41, 10,105,102, 32,101,120,116,
 31.1625 +    32, 61, 61, 32, 39,104, 39, 32,111,114, 32,101,120,116, 32,
 31.1626 +    61, 61, 32, 39,104,112,112, 39, 32,116,104,101,110, 10, 99,
 31.1627 +   111,100,101, 32, 61, 32,101,120,116,114, 97, 99,116, 95, 99,
 31.1628 +   111,100,101, 40,102,110, 44, 99,111,100,101, 41, 10,101,110,
 31.1629 +   100, 10, 10, 10,105,102, 32,102,110, 32,116,104,101,110, 10,
 31.1630 +   114,101, 97,100,102,114,111,109, 40, 41, 10,101,110,100, 10,
 31.1631 +    10, 10, 99,111,100,101, 32, 61, 32,103,115,117, 98, 40, 99,
 31.1632 +   111,100,101, 44, 39, 92,110, 37,115, 42, 37, 36,114,101,110,
 31.1633 +    97,109,105,110,103, 37,115, 42, 40, 46, 45, 41, 37,115, 42,
 31.1634 +    92,110, 39, 44, 32,102,117,110, 99,116,105,111,110, 32, 40,
 31.1635 +   114, 41, 32, 97,112,112,101,110,100,114,101,110, 97,109,105,
 31.1636 +   110,103, 40,114, 41, 32,114,101,116,117,114,110, 32, 34, 92,
 31.1637 +   110, 34, 32,101,110,100, 41, 10, 10, 10,108,111, 99, 97,108,
 31.1638 +    32,110,115,117, 98,115,116, 10,114,101,112,101, 97,116, 10,
 31.1639 +    99,111,100,101, 44,110,115,117, 98,115,116, 32, 61, 32,103,
 31.1640 +   115,117, 98, 40, 99,111,100,101, 44, 39, 92,110, 37,115, 42,
 31.1641 +    37, 36, 40, 46, 41,102,105,108,101, 37,115, 42, 34, 40, 46,
 31.1642 +    45, 41, 34, 37,115, 42, 92,110, 39, 44, 10,102,117,110, 99,
 31.1643 +   116,105,111,110, 32, 40,107,105,110,100, 44,102,110, 41, 10,
 31.1644 +   108,111, 99, 97,108, 32, 95, 44, 32, 95, 44, 32,101,120,116,
 31.1645 +    32, 61, 32,115,116,114,102,105,110,100, 40,102,110, 44, 34,
 31.1646 +    46, 42, 37, 46, 40, 46, 42, 41, 36, 34, 41, 10,108,111, 99,
 31.1647 +    97,108, 32,102,112, 44,109,115,103, 32, 61, 32,111,112,101,
 31.1648 +   110,102,105,108,101, 40,102,110, 44, 39,114, 39, 41, 10,105,
 31.1649 +   102, 32,110,111,116, 32,102,112, 32,116,104,101,110, 10,101,
 31.1650 +   114,114,111,114, 40, 39, 35, 39, 46, 46,109,115,103, 46, 46,
 31.1651 +    39, 58, 32, 39, 46, 46,102,110, 41, 10,101,110,100, 10,108,
 31.1652 +   111, 99, 97,108, 32,115, 32, 61, 32,114,101, 97,100, 40,102,
 31.1653 +   112, 44, 39, 42, 97, 39, 41, 10, 99,108,111,115,101,102,105,
 31.1654 +   108,101, 40,102,112, 41, 10,105,102, 32,107,105,110,100, 32,
 31.1655 +    61, 61, 32, 39, 99, 39, 32,111,114, 32,107,105,110,100, 32,
 31.1656 +    61, 61, 32, 39,104, 39, 32,116,104,101,110, 10,114,101,116,
 31.1657 +   117,114,110, 32,101,120,116,114, 97, 99,116, 95, 99,111,100,
 31.1658 +   101, 40,102,110, 44,115, 41, 10,101,108,115,101,105,102, 32,
 31.1659 +   107,105,110,100, 32, 61, 61, 32, 39,112, 39, 32,116,104,101,
 31.1660 +   110, 10,114,101,116,117,114,110, 32, 34, 92,110, 92,110, 34,
 31.1661 +    32, 46, 46, 32,115, 10,101,108,115,101,105,102, 32,107,105,
 31.1662 +   110,100, 32, 61, 61, 32, 39,108, 39, 32,116,104,101,110, 10,
 31.1663 +   114,101,116,117,114,110, 32, 34, 92,110, 36, 91, 92,110, 34,
 31.1664 +    32, 46, 46, 32,115, 32, 46, 46, 32, 34, 92,110, 36, 93, 92,
 31.1665 +   110, 34, 10,101,108,115,101, 10,101,114,114,111,114, 40, 39,
 31.1666 +    35, 73,110,118, 97,108,105,100, 32,105,110, 99,108,117,100,
 31.1667 +   101, 32,100,105,114,101, 99,116,105,118,101, 32, 40,117,115,
 31.1668 +   101, 32, 36, 99,102,105,108,101, 44, 32, 36,112,102,105,108,
 31.1669 +   101, 32,111,114, 32, 36,108,102,105,108,101, 41, 39, 41, 10,
 31.1670 +   101,110,100, 10,101,110,100, 41, 10,117,110,116,105,108, 32,
 31.1671 +   110,115,117, 98,115,116, 61, 61, 48, 10, 10,108,111, 99, 97,
 31.1672 +   108, 32,116, 32, 61, 32, 95, 80, 97, 99,107, 97,103,101, 40,
 31.1673 +    95, 67,111,110,116, 97,105,110,101,114,123,110, 97,109,101,
 31.1674 +    61,110, 97,109,101, 44, 32, 99,111,100,101, 61, 99,111,100,
 31.1675 +   101,125, 41, 10,112,117,115,104, 40,116, 41, 10,116, 58,112,
 31.1676 +   114,101,112,114,111, 99,101,115,115, 40, 41, 10,116, 58,112,
 31.1677 +    97,114,115,101, 40,116, 46, 99,111,100,101, 41, 10,112,111,
 31.1678 +   112, 40, 41, 10,114,101,116,117,114,110, 32,116, 10,101,110,
 31.1679 +   100,32
 31.1680 +  };
 31.1681 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
 31.1682 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
 31.1683 + } /* end of embedded lua code */
 31.1684 +
 31.1685 +
 31.1686 + { /* begin embedded lua code */
 31.1687 +  static unsigned char B[] = {
 31.1688 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
 31.1689 +    10, 10, 10, 99,108, 97,115,115, 77,111,100,117,108,101, 32,
 31.1690 +    61, 32,123, 10, 99,108, 97,115,115,116,121,112,101, 32, 61,
 31.1691 +    32, 39,109,111,100,117,108,101, 39, 10,125, 10, 99,108, 97,
 31.1692 +   115,115, 77,111,100,117,108,101, 46, 95, 95,105,110,100,101,
 31.1693 +   120, 32, 61, 32, 99,108, 97,115,115, 77,111,100,117,108,101,
 31.1694 +    10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,
 31.1695 +   108, 97,115,115, 77,111,100,117,108,101, 44, 99,108, 97,115,
 31.1696 +   115, 67,111,110,116, 97,105,110,101,114, 41, 10, 10, 10,102,
 31.1697 +   117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 77,111,
 31.1698 +   100,117,108,101, 58,114,101,103,105,115,116,101,114, 32, 40,
 31.1699 +    41, 10,112,117,115,104, 40,115,101,108,102, 41, 10,111,117,
 31.1700 +   116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,109,111,
 31.1701 +   100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39,
 31.1702 +    46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 34,
 31.1703 +    44, 39, 44,115,101,108,102, 58,104, 97,115,118, 97,114, 40,
 31.1704 +    41, 44, 39, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40,
 31.1705 +    39, 32,116,111,108,117, 97, 95, 98,101,103,105,110,109,111,
 31.1706 +   100,117,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34, 39,
 31.1707 +    46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 34,
 31.1708 +    41, 59, 39, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,
 31.1709 +   119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,
 31.1710 +   111, 10,115,101,108,102, 91,105, 93, 58,114,101,103,105,115,
 31.1711 +   116,101,114, 40, 41, 10,105, 32, 61, 32,105, 43, 49, 10,101,
 31.1712 +   110,100, 10,111,117,116,112,117,116, 40, 39, 32,116,111,108,
 31.1713 +   117, 97, 95,101,110,100,109,111,100,117,108,101, 40,116,111,
 31.1714 +   108,117, 97, 95, 83, 41, 59, 39, 41, 10,112,111,112, 40, 41,
 31.1715 +    10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110,
 31.1716 +    32, 99,108, 97,115,115, 77,111,100,117,108,101, 58,112,114,
 31.1717 +   105,110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,
 31.1718 +   101, 41, 10,112,114,105,110,116, 40,105,100,101,110,116, 46,
 31.1719 +    46, 34, 77,111,100,117,108,101,123, 34, 41, 10,112,114,105,
 31.1720 +   110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,
 31.1721 +   101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,
 31.1722 +   109,101, 46, 46, 34, 39, 59, 34, 41, 10,108,111, 99, 97,108,
 31.1723 +    32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,108,102,
 31.1724 +    91,105, 93, 32,100,111, 10,115,101,108,102, 91,105, 93, 58,
 31.1725 +   112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
 31.1726 +    34, 44, 34, 44, 34, 41, 10,105, 32, 61, 32,105, 43, 49, 10,
 31.1727 +   101,110,100, 10,112,114,105,110,116, 40,105,100,101,110,116,
 31.1728 +    46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41, 10,101,
 31.1729 +   110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 95,
 31.1730 +    77,111,100,117,108,101, 32, 40,116, 41, 10,115,101,116,109,
 31.1731 +   101,116, 97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,
 31.1732 +   115, 77,111,100,117,108,101, 41, 10, 97,112,112,101,110,100,
 31.1733 +    40,116, 41, 10,114,101,116,117,114,110, 32,116, 10,101,110,
 31.1734 +   100, 10, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 77,
 31.1735 +   111,100,117,108,101, 32, 40,110, 44, 98, 41, 10,108,111, 99,
 31.1736 +    97,108, 32,116, 32, 61, 32, 95, 77,111,100,117,108,101, 40,
 31.1737 +    95, 67,111,110,116, 97,105,110,101,114,123,110, 97,109,101,
 31.1738 +    61,110,125, 41, 10,112,117,115,104, 40,116, 41, 10,116, 58,
 31.1739 +   112, 97,114,115,101, 40,115,116,114,115,117, 98, 40, 98, 44,
 31.1740 +    50, 44,115,116,114,108,101,110, 40, 98, 41, 45, 49, 41, 41,
 31.1741 +    10,112,111,112, 40, 41, 10,114,101,116,117,114,110, 32,116,
 31.1742 +    10,101,110,100,32
 31.1743 +  };
 31.1744 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
 31.1745 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
 31.1746 + } /* end of embedded lua code */
 31.1747 +
 31.1748 +
 31.1749 + { /* begin embedded lua code */
 31.1750 +  static unsigned char B[] = {
 31.1751 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
 31.1752 +    10, 10, 10, 99,108, 97,115,115, 78, 97,109,101,115,112, 97,
 31.1753 +    99,101, 32, 61, 32,123, 10, 99,108, 97,115,115,116,121,112,
 31.1754 +   101, 32, 61, 32, 39,110, 97,109,101,115,112, 97, 99,101, 39,
 31.1755 +    44, 10,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10,125, 10,
 31.1756 +    99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,101, 46,
 31.1757 +    95, 95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115,
 31.1758 +    78, 97,109,101,115,112, 97, 99,101, 10,115,101,116,109,101,
 31.1759 +   116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 78, 97,
 31.1760 +   109,101,115,112, 97, 99,101, 44, 99,108, 97,115,115, 77,111,
 31.1761 +   100,117,108,101, 41, 10, 10, 10,102,117,110, 99,116,105,111,
 31.1762 +   110, 32, 99,108, 97,115,115, 78, 97,109,101,115,112, 97, 99,
 31.1763 +   101, 58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44,
 31.1764 +    99,108,111,115,101, 41, 10,112,114,105,110,116, 40,105,100,
 31.1765 +   101,110,116, 46, 46, 34, 78, 97,109,101,115,112, 97, 99,101,
 31.1766 +   123, 34, 41, 10,112,114,105,110,116, 40,105,100,101,110,116,
 31.1767 +    46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46, 46,
 31.1768 +   115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44, 34,
 31.1769 +    41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,119,104,105,
 31.1770 +   108,101, 32,115,101,108,102, 91,105, 93, 32,100,111, 10,115,
 31.1771 +   101,108,102, 91,105, 93, 58,112,114,105,110,116, 40,105,100,
 31.1772 +   101,110,116, 46, 46, 34, 32, 34, 44, 34, 44, 34, 41, 10,105,
 31.1773 +    32, 61, 32,105, 43, 49, 10,101,110,100, 10,112,114,105,110,
 31.1774 +   116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,
 31.1775 +   108,111,115,101, 41, 10,101,110,100, 10, 10, 10,102,117,110,
 31.1776 +    99,116,105,111,110, 32, 95, 78, 97,109,101,115,112, 97, 99,
 31.1777 +   101, 32, 40,116, 41, 10,115,101,116,109,101,116, 97,116, 97,
 31.1778 +    98,108,101, 40,116, 44, 99,108, 97,115,115, 78, 97,109,101,
 31.1779 +   115,112, 97, 99,101, 41, 10, 97,112,112,101,110,100, 40,116,
 31.1780 +    41, 10,114,101,116,117,114,110, 32,116, 10,101,110,100, 10,
 31.1781 +    10, 10, 10,102,117,110, 99,116,105,111,110, 32, 78, 97,109,
 31.1782 +   101,115,112, 97, 99,101, 32, 40,110, 44, 98, 41, 10,108,111,
 31.1783 +    99, 97,108, 32, 99, 32, 61, 32, 95, 78, 97,109,101,115,112,
 31.1784 +    97, 99,101, 40, 95, 67,111,110,116, 97,105,110,101,114,123,
 31.1785 +   110, 97,109,101, 61,110,125, 41, 10,112,117,115,104, 40, 99,
 31.1786 +    41, 10, 99, 58,112, 97,114,115,101, 40,115,116,114,115,117,
 31.1787 +    98, 40, 98, 44, 50, 44,115,116,114,108,101,110, 40, 98, 41,
 31.1788 +    45, 49, 41, 41, 10,112,111,112, 40, 41, 10,101,110,100,32
 31.1789 +  };
 31.1790 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
 31.1791 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
 31.1792 + } /* end of embedded lua code */
 31.1793 +
 31.1794 +
 31.1795 + { /* begin embedded lua code */
 31.1796 +  static unsigned char B[] = {
 31.1797 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
 31.1798 +    10, 10, 99,108, 97,115,115, 68,101,102,105,110,101, 32, 61,
 31.1799 +    32,123, 10,110, 97,109,101, 32, 61, 32, 39, 39, 44, 10,125,
 31.1800 +    10, 99,108, 97,115,115, 68,101,102,105,110,101, 46, 95, 95,
 31.1801 +   105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 68,101,
 31.1802 +   102,105,110,101, 10,115,101,116,109,101,116, 97,116, 97, 98,
 31.1803 +   108,101, 40, 99,108, 97,115,115, 68,101,102,105,110,101, 44,
 31.1804 +    99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10, 10,
 31.1805 +    10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
 31.1806 +    68,101,102,105,110,101, 58,114,101,103,105,115,116,101,114,
 31.1807 +    32, 40, 41, 10,111,117,116,112,117,116, 40, 39, 32,116,111,
 31.1808 +   108,117, 97, 95, 99,111,110,115,116, 97,110,116, 40,116,111,
 31.1809 +   108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,
 31.1810 +   108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,
 31.1811 +   108,102, 46,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41, 10,
 31.1812 +   101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,
 31.1813 +    99,108, 97,115,115, 68,101,102,105,110,101, 58,112,114,105,
 31.1814 +   110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101,
 31.1815 +    41, 10,112,114,105,110,116, 40,105,100,101,110,116, 46, 46,
 31.1816 +    34, 68,101,102,105,110,101,123, 34, 41, 10,112,114,105,110,
 31.1817 +   116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,101,
 31.1818 +    32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,109,
 31.1819 +   101, 46, 46, 34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,
 31.1820 +   105,100,101,110,116, 46, 46, 34, 32,108,110, 97,109,101, 32,
 31.1821 +    61, 32, 39, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,
 31.1822 +   101, 46, 46, 34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,
 31.1823 +   105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,
 31.1824 +   115,101, 41, 10,101,110,100, 10, 10, 10, 10,102,117,110, 99,
 31.1825 +   116,105,111,110, 32, 95, 68,101,102,105,110,101, 32, 40,116,
 31.1826 +    41, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,
 31.1827 +   116, 44, 99,108, 97,115,115, 68,101,102,105,110,101, 41, 10,
 31.1828 +   116, 58, 98,117,105,108,100,110, 97,109,101,115, 40, 41, 10,
 31.1829 +    10,105,102, 32,116, 46,110, 97,109,101, 32, 61, 61, 32, 39,
 31.1830 +    39, 32,116,104,101,110, 10,101,114,114,111,114, 40, 34, 35,
 31.1831 +   105,110,118, 97,108,105,100, 32,100,101,102,105,110,101, 34,
 31.1832 +    41, 10,101,110,100, 10, 10, 97,112,112,101,110,100, 40,116,
 31.1833 +    41, 10,114,101,116,117,114,110, 32,116, 10,101,110,100, 10,
 31.1834 +    10, 10, 10,102,117,110, 99,116,105,111,110, 32, 68,101,102,
 31.1835 +   105,110,101, 32, 40,110, 41, 10,114,101,116,117,114,110, 32,
 31.1836 +    95, 68,101,102,105,110,101,123, 10,110, 97,109,101, 32, 61,
 31.1837 +    32,110, 10,125, 10,101,110,100,32
 31.1838 +  };
 31.1839 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
 31.1840 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
 31.1841 + } /* end of embedded lua code */
 31.1842 +
 31.1843 +
 31.1844 + { /* begin embedded lua code */
 31.1845 +  static unsigned char B[] = {
 31.1846 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
 31.1847 +    10, 10, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,
 31.1848 +   101, 32, 61, 32,123, 10,125, 10, 99,108, 97,115,115, 69,110,
 31.1849 +   117,109,101,114, 97,116,101, 46, 95, 95,105,110,100,101,120,
 31.1850 +    32, 61, 32, 99,108, 97,115,115, 69,110,117,109,101,114, 97,
 31.1851 +   116,101, 10,115,101,116,109,101,116, 97,116, 97, 98,108,101,
 31.1852 +    40, 99,108, 97,115,115, 69,110,117,109,101,114, 97,116,101,
 31.1853 +    44, 99,108, 97,115,115, 70,101, 97,116,117,114,101, 41, 10,
 31.1854 +    10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
 31.1855 +   115, 69,110,117,109,101,114, 97,116,101, 58,114,101,103,105,
 31.1856 +   115,116,101,114, 32, 40, 41, 10,108,111, 99, 97,108, 32,110,
 31.1857 +   115,112, 97, 99,101, 32, 61, 32,103,101,116,110, 97,109,101,
 31.1858 +   115,112, 97, 99,101, 40, 99,108, 97,115,115, 67,111,110,116,
 31.1859 +    97,105,110,101,114, 46, 99,117,114,114, 41, 10,108,111, 99,
 31.1860 +    97,108, 32,105, 61, 49, 10,119,104,105,108,101, 32,115,101,
 31.1861 +   108,102, 91,105, 93, 32,100,111, 10,111,117,116,112,117,116,
 31.1862 +    40, 39, 32,116,111,108,117, 97, 95, 99,111,110,115,116, 97,
 31.1863 +   110,116, 40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,
 31.1864 +   115,101,108,102, 46,108,110, 97,109,101,115, 91,105, 93, 46,
 31.1865 +    46, 39, 34, 44, 39, 46, 46,110,115,112, 97, 99,101, 46, 46,
 31.1866 +   115,101,108,102, 91,105, 93, 46, 46, 39, 41, 59, 39, 41, 10,
 31.1867 +   105, 32, 61, 32,105, 43, 49, 10,101,110,100, 10,101,110,100,
 31.1868 +    10, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,
 31.1869 +   115,115, 69,110,117,109,101,114, 97,116,101, 58,112,114,105,
 31.1870 +   110,116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101,
 31.1871 +    41, 10,112,114,105,110,116, 40,105,100,101,110,116, 46, 46,
 31.1872 +    34, 69,110,117,109,101,114, 97,116,101,123, 34, 41, 10,112,
 31.1873 +   114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110,
 31.1874 +    97,109,101, 32, 61, 32, 34, 46, 46,115,101,108,102, 46,110,
 31.1875 +    97,109,101, 41, 10,108,111, 99, 97,108, 32,105, 61, 49, 10,
 31.1876 +   119,104,105,108,101, 32,115,101,108,102, 91,105, 93, 32,100,
 31.1877 +   111, 10,112,114,105,110,116, 40,105,100,101,110,116, 46, 46,
 31.1878 +    34, 32, 39, 34, 46, 46,115,101,108,102, 91,105, 93, 46, 46,
 31.1879 +    34, 39, 40, 34, 46, 46,115,101,108,102, 46,108,110, 97,109,
 31.1880 +   101,115, 91,105, 93, 46, 46, 34, 41, 44, 34, 41, 10,105, 32,
 31.1881 +    61, 32,105, 43, 49, 10,101,110,100, 10,112,114,105,110,116,
 31.1882 +    40,105,100,101,110,116, 46, 46, 34,125, 34, 46, 46, 99,108,
 31.1883 +   111,115,101, 41, 10,101,110,100, 10, 10, 10,102,117,110, 99,
 31.1884 +   116,105,111,110, 32, 95, 69,110,117,109,101,114, 97,116,101,
 31.1885 +    32, 40,116, 41, 10,115,101,116,109,101,116, 97,116, 97, 98,
 31.1886 +   108,101, 40,116, 44, 99,108, 97,115,115, 69,110,117,109,101,
 31.1887 +   114, 97,116,101, 41, 10, 97,112,112,101,110,100, 40,116, 41,
 31.1888 +    10, 97,112,112,101,110,100,101,110,117,109, 40,116, 41, 10,
 31.1889 +   114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 10,
 31.1890 +    10,102,117,110, 99,116,105,111,110, 32, 69,110,117,109,101,
 31.1891 +   114, 97,116,101, 32, 40,110, 44, 98, 41, 10,108,111, 99, 97,
 31.1892 +   108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,116,114,
 31.1893 +   115,117, 98, 40, 98, 44, 50, 44, 45, 50, 41, 44, 39, 44, 39,
 31.1894 +    41, 10,108,111, 99, 97,108, 32,105, 32, 61, 32, 49, 10,108,
 31.1895 +   111, 99, 97,108, 32,101, 32, 61, 32,123,110, 61, 48,125, 10,
 31.1896 +   119,104,105,108,101, 32,116, 91,105, 93, 32,100,111, 10,108,
 31.1897 +   111, 99, 97,108, 32,116,116, 32, 61, 32,115,112,108,105,116,
 31.1898 +    40,116, 91,105, 93, 44, 39, 61, 39, 41, 10,101, 46,110, 32,
 31.1899 +    61, 32,101, 46,110, 32, 43, 32, 49, 10,101, 91,101, 46,110,
 31.1900 +    93, 32, 61, 32,116,116, 91, 49, 93, 10,105, 32, 61, 32,105,
 31.1901 +    43, 49, 10,101,110,100, 10, 10,105, 32, 61, 32, 49, 10,101,
 31.1902 +    46,108,110, 97,109,101,115, 32, 61, 32,123,125, 10,119,104,
 31.1903 +   105,108,101, 32,101, 91,105, 93, 32,100,111, 10,108,111, 99,
 31.1904 +    97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,101, 91,
 31.1905 +   105, 93, 44, 39, 64, 39, 41, 10,101, 91,105, 93, 32, 61, 32,
 31.1906 +   116, 91, 49, 93, 10,105,102, 32,110,111,116, 32,116, 91, 50,
 31.1907 +    93, 32,116,104,101,110, 10,116, 91, 50, 93, 32, 61, 32, 97,
 31.1908 +   112,112,108,121,114,101,110, 97,109,105,110,103, 40,116, 91,
 31.1909 +    49, 93, 41, 10,101,110,100, 10,101, 46,108,110, 97,109,101,
 31.1910 +   115, 91,105, 93, 32, 61, 32,116, 91, 50, 93, 32,111,114, 32,
 31.1911 +   116, 91, 49, 93, 10,105, 32, 61, 32,105, 43, 49, 10,101,110,
 31.1912 +   100, 10,101, 46,110, 97,109,101, 32, 61, 32,110, 10, 84,121,
 31.1913 +   112,101,100,101,102, 40, 34,105,110,116, 32, 34, 46, 46,110,
 31.1914 +    41, 10,114,101,116,117,114,110, 32, 95, 69,110,117,109,101,
 31.1915 +   114, 97,116,101, 40,101, 41, 10,101,110,100,32
 31.1916 +  };
 31.1917 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
 31.1918 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
 31.1919 + } /* end of embedded lua code */
 31.1920 +
 31.1921 +
 31.1922 + { /* begin embedded lua code */
 31.1923 +  static unsigned char B[] = {
 31.1924 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
 31.1925 +    10, 10, 10, 10, 10, 10, 10, 10, 99,108, 97,115,115, 68,101,
 31.1926 +    99,108, 97,114, 97,116,105,111,110, 32, 61, 32,123, 10,109,
 31.1927 +   111,100, 32, 61, 32, 39, 39, 44, 10,116,121,112,101, 32, 61,
 31.1928 +    32, 39, 39, 44, 10,112,116,114, 32, 61, 32, 39, 39, 44, 10,
 31.1929 +   110, 97,109,101, 32, 61, 32, 39, 39, 44, 10,100,105,109, 32,
 31.1930 +    61, 32, 39, 39, 44, 10,114,101,116, 32, 61, 32, 39, 39, 44,
 31.1931 +    10,100,101,102, 32, 61, 32, 39, 39, 10,125, 10, 99,108, 97,
 31.1932 +   115,115, 68,101, 99,108, 97,114, 97,116,105,111,110, 46, 95,
 31.1933 +    95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 68,
 31.1934 +   101, 99,108, 97,114, 97,116,105,111,110, 10,115,101,116,109,
 31.1935 +   101,116, 97,116, 97, 98,108,101, 40, 99,108, 97,115,115, 68,
 31.1936 +   101, 99,108, 97,114, 97,116,105,111,110, 44, 99,108, 97,115,
 31.1937 +   115, 70,101, 97,116,117,114,101, 41, 10, 10, 10,102,117,110,
 31.1938 +    99,116,105,111,110, 32, 99,114,101, 97,116,101, 95,118, 97,
 31.1939 +   114,110, 97,109,101, 32, 40, 41, 10,105,102, 32,110,111,116,
 31.1940 +    32, 95,118, 97,114,110,117,109, 98,101,114, 32,116,104,101,
 31.1941 +   110, 32, 95,118, 97,114,110,117,109, 98,101,114, 32, 61, 32,
 31.1942 +    48, 32,101,110,100, 10, 95,118, 97,114,110,117,109, 98,101,
 31.1943 +   114, 32, 61, 32, 95,118, 97,114,110,117,109, 98,101,114, 32,
 31.1944 +    43, 32, 49, 10,114,101,116,117,114,110, 32, 34,116,111,108,
 31.1945 +   117, 97, 95,118, 97,114, 95, 34, 46, 46, 95,118, 97,114,110,
 31.1946 +   117,109, 98,101,114, 10,101,110,100, 10, 10, 10, 10,102,117,
 31.1947 +   110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,
 31.1948 +   108, 97,114, 97,116,105,111,110, 58, 99,104,101, 99,107,110,
 31.1949 +    97,109,101, 32, 40, 41, 10, 10,105,102, 32,115,116,114,115,
 31.1950 +   117, 98, 40,115,101,108,102, 46,110, 97,109,101, 44, 49, 44,
 31.1951 +    49, 41, 32, 61, 61, 32, 39, 91, 39, 32, 97,110,100, 32,110,
 31.1952 +   111,116, 32,102,105,110,100,116,121,112,101, 40,115,101,108,
 31.1953 +   102, 46,116,121,112,101, 41, 32,116,104,101,110, 10,115,101,
 31.1954 +   108,102, 46,110, 97,109,101, 32, 61, 32,115,101,108,102, 46,
 31.1955 +   116,121,112,101, 46, 46,115,101,108,102, 46,110, 97,109,101,
 31.1956 +    10,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,
 31.1957 +   116, 40,115,101,108,102, 46,109,111,100, 44, 39, 37,115, 37,
 31.1958 +   115, 42, 39, 41, 10,115,101,108,102, 46,116,121,112,101, 32,
 31.1959 +    61, 32,109, 91,109, 46,110, 93, 10,115,101,108,102, 46,109,
 31.1960 +   111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49,
 31.1961 +    44,109, 46,110, 45, 49, 41, 10,101,110,100, 10, 10,108,111,
 31.1962 +    99, 97,108, 32,116, 32, 61, 32,115,112,108,105,116, 40,115,
 31.1963 +   101,108,102, 46,110, 97,109,101, 44, 39, 61, 39, 41, 10,105,
 31.1964 +   102, 32,116, 46,110, 61, 61, 50, 32,116,104,101,110, 10,115,
 31.1965 +   101,108,102, 46,110, 97,109,101, 32, 61, 32,116, 91, 49, 93,
 31.1966 +    10,115,101,108,102, 46,100,101,102, 32, 61, 32,116, 91,116,
 31.1967 +    46,110, 93, 10,101,110,100, 10, 10,108,111, 99, 97,108, 32,
 31.1968 +    98, 44,101, 44,100, 32, 61, 32,115,116,114,102,105,110,100,
 31.1969 +    40,115,101,108,102, 46,110, 97,109,101, 44, 34, 37, 91, 40,
 31.1970 +    46, 45, 41, 37, 93, 34, 41, 10,105,102, 32, 98, 32,116,104,
 31.1971 +   101,110, 10,115,101,108,102, 46,110, 97,109,101, 32, 61, 32,
 31.1972 +   115,116,114,115,117, 98, 40,115,101,108,102, 46,110, 97,109,
 31.1973 +   101, 44, 49, 44, 98, 45, 49, 41, 10,115,101,108,102, 46,100,
 31.1974 +   105,109, 32, 61, 32,100, 10,101,110,100, 10, 10, 10,105,102,
 31.1975 +    32,115,101,108,102, 46,116,121,112,101, 32,126, 61, 32, 39,
 31.1976 +    39, 32, 97,110,100, 32,115,101,108,102, 46,116,121,112,101,
 31.1977 +    32,126, 61, 32, 39,118,111,105,100, 39, 32, 97,110,100, 32,
 31.1978 +   115,101,108,102, 46,110, 97,109,101, 32, 61, 61, 32, 39, 39,
 31.1979 +    32,116,104,101,110, 10,115,101,108,102, 46,110, 97,109,101,
 31.1980 +    32, 61, 32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97,
 31.1981 +   109,101, 40, 41, 10,101,108,115,101,105,102, 32,115,101,108,
 31.1982 +   102, 46,107,105,110,100, 61, 61, 39,118, 97,114, 39, 32,116,
 31.1983 +   104,101,110, 10,105,102, 32,115,101,108,102, 46,116,121,112,
 31.1984 +   101, 61, 61, 39, 39, 32, 97,110,100, 32,115,101,108,102, 46,
 31.1985 +   110, 97,109,101,126, 61, 39, 39, 32,116,104,101,110, 10,115,
 31.1986 +   101,108,102, 46,116,121,112,101, 32, 61, 32,115,101,108,102,
 31.1987 +    46,116,121,112,101, 46, 46,115,101,108,102, 46,110, 97,109,
 31.1988 +   101, 10,115,101,108,102, 46,110, 97,109,101, 32, 61, 32, 99,
 31.1989 +   114,101, 97,116,101, 95,118, 97,114,110, 97,109,101, 40, 41,
 31.1990 +    10,101,108,115,101,105,102, 32,102,105,110,100,116,121,112,
 31.1991 +   101, 40,115,101,108,102, 46,110, 97,109,101, 41, 32,116,104,
 31.1992 +   101,110, 10,105,102, 32,115,101,108,102, 46,116,121,112,101,
 31.1993 +    61, 61, 39, 39, 32,116,104,101,110, 32,115,101,108,102, 46,
 31.1994 +   116,121,112,101, 32, 61, 32,115,101,108,102, 46,110, 97,109,
 31.1995 +   101, 10,101,108,115,101, 32,115,101,108,102, 46,116,121,112,
 31.1996 +   101, 32, 61, 32,115,101,108,102, 46,116,121,112,101, 46, 46,
 31.1997 +    39, 32, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 32,
 31.1998 +   101,110,100, 10,115,101,108,102, 46,110, 97,109,101, 32, 61,
 31.1999 +    32, 99,114,101, 97,116,101, 95,118, 97,114,110, 97,109,101,
 31.2000 +    40, 41, 10,101,110,100, 10,101,110,100, 10, 10, 10,105,102,
 31.2001 +    32,115,101,108,102, 46,116,121,112,101, 32, 61, 61, 32, 39,
 31.2002 +    99,104, 97,114, 39, 32, 97,110,100, 32,115,101,108,102, 46,
 31.2003 +   100,105,109, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,
 31.2004 +   115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,104,
 31.2005 +    97,114, 42, 39, 10,101,110,100, 10,101,110,100, 10, 10, 10,
 31.2006 +    10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
 31.2007 +    68,101, 99,108, 97,114, 97,116,105,111,110, 58, 99,104,101,
 31.2008 +    99,107,116,121,112,101, 32, 40, 41, 10, 10, 10,105,102, 32,
 31.2009 +   105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,
 31.2010 +   112,101, 41, 32, 97,110,100, 32,115,101,108,102, 46,112,116,
 31.2011 +   114,126, 61, 39, 39, 32,116,104,101,110, 10,115,101,108,102,
 31.2012 +    46,114,101,116, 32, 61, 32,115,101,108,102, 46,112,116,114,
 31.2013 +    10,115,101,108,102, 46,112,116,114, 32, 61, 32,110,105,108,
 31.2014 +    10,101,110,100, 10, 10, 10,105,102, 32,115,101,108,102, 46,
 31.2015 +   100,105,109,126, 61, 39, 39, 32, 97,110,100, 32,115,101,108,
 31.2016 +   102, 46,114,101,116,126, 61, 39, 39, 32,116,104,101,110, 10,
 31.2017 +   101,114,114,111,114, 40, 39, 35,105,110,118, 97,108,105,100,
 31.2018 +    32,112, 97,114, 97,109,101,116,101,114, 58, 32, 99, 97,110,
 31.2019 +   110,111,116, 32,114,101,116,117,114,110, 32, 97,110, 32, 97,
 31.2020 +   114,114, 97,121, 32,111,102, 32,118, 97,108,117,101,115, 39,
 31.2021 +    41, 10,101,110,100, 10, 10, 10,105,102, 32,115,101,108,102,
 31.2022 +    46,116,121,112,101, 32, 61, 61, 32, 39, 95,117,115,101,114,
 31.2023 +   100, 97,116, 97, 39, 32,116,104,101,110, 32,115,101,108,102,
 31.2024 +    46,116,121,112,101, 32, 61, 32, 39,118,111,105,100, 42, 39,
 31.2025 +    10,101,108,115,101,105,102, 32,115,101,108,102, 46,116,121,
 31.2026 +   112,101, 32, 61, 61, 32, 39, 95, 99,115,116,114,105,110,103,
 31.2027 +    39, 32,116,104,101,110, 32,115,101,108,102, 46,116,121,112,
 31.2028 +   101, 32, 61, 32, 39, 99,104, 97,114, 42, 39, 10,101,110,100,
 31.2029 +    10, 10, 10, 10, 10, 10, 10, 10, 10,101,110,100, 10, 10, 10,
 31.2030 +   102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 68,
 31.2031 +   101, 99,108, 97,114, 97,116,105,111,110, 58,112,114,105,110,
 31.2032 +   116, 32, 40,105,100,101,110,116, 44, 99,108,111,115,101, 41,
 31.2033 +    10,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
 31.2034 +    68,101, 99,108, 97,114, 97,116,105,111,110,123, 34, 41, 10,
 31.2035 +   112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,
 31.2036 +   109,111,100, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,
 31.2037 +   109,111,100, 46, 46, 34, 39, 44, 34, 41, 10,112,114,105,110,
 31.2038 +   116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,112,101,
 31.2039 +    32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116,121,112,
 31.2040 +   101, 46, 46, 34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,
 31.2041 +   105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32, 61, 32,
 31.2042 +    39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46, 46, 34,
 31.2043 +    39, 44, 34, 41, 10,112,114,105,110,116, 40,105,100,101,110,
 31.2044 +   116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39, 34, 46,
 31.2045 +    46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34, 39, 44,
 31.2046 +    34, 41, 10,112,114,105,110,116, 40,105,100,101,110,116, 46,
 31.2047 +    46, 34, 32,100,105,109, 32, 61, 32, 39, 34, 46, 46,115,101,
 31.2048 +   108,102, 46,100,105,109, 46, 46, 34, 39, 44, 34, 41, 10,112,
 31.2049 +   114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,100,
 31.2050 +   101,102, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,100,
 31.2051 +   101,102, 46, 46, 34, 39, 44, 34, 41, 10,112,114,105,110,116,
 31.2052 +    40,105,100,101,110,116, 46, 46, 34, 32,114,101,116, 32, 61,
 31.2053 +    32, 39, 34, 46, 46,115,101,108,102, 46,114,101,116, 46, 46,
 31.2054 +    34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,105,100,101,
 31.2055 +   110,116, 46, 46, 34,125, 34, 46, 46, 99,108,111,115,101, 41,
 31.2056 +    10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110,
 31.2057 +    32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,
 31.2058 +   111,110, 58,114,101,113,117,105,114,101, 99,111,108,108,101,
 31.2059 +    99,116,105,111,110, 32, 40,116, 41, 10,105,102, 32,115,101,
 31.2060 +   108,102, 46,109,111,100, 32,126, 61, 32, 39, 99,111,110,115,
 31.2061 +   116, 39, 32, 97,110,100, 10,115,101,108,102, 46,100,105,109,
 31.2062 +    32, 97,110,100, 32,115,101,108,102, 46,100,105,109, 32,126,
 31.2063 +    61, 32, 39, 39, 32, 97,110,100, 10,110,111,116, 32,105,115,
 31.2064 +    98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101,
 31.2065 +    41, 32, 97,110,100, 10,115,101,108,102, 46,112,116,114, 32,
 31.2066 +    61, 61, 32, 39, 39, 32,116,104,101,110, 10,108,111, 99, 97,
 31.2067 +   108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,
 31.2068 +   101,108,102, 46,116,121,112,101, 44, 34, 37,115, 42, 99,111,
 31.2069 +   110,115,116, 37,115, 42, 34, 44, 34, 34, 41, 10,116, 91,116,
 31.2070 +   121,112,101, 93, 32, 61, 32,103,115,117, 98, 40,116,121,112,
 31.2071 +   101, 44, 34, 58, 58, 34, 44, 34, 95, 34, 41, 10,114,101,116,
 31.2072 +   117,114,110, 32,116,114,117,101, 10,101,110,100, 10,114,101,
 31.2073 +   116,117,114,110, 32,102, 97,108,115,101, 10,101,110,100, 10,
 31.2074 +    10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
 31.2075 +   115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,100,101,
 31.2076 +    99,108,116,121,112,101, 32, 40, 41, 10,115,101,108,102, 46,
 31.2077 +   116,121,112,101, 32, 61, 32,116,121,112,101,118, 97,114, 40,
 31.2078 +   115,101,108,102, 46,116,121,112,101, 41, 10,105,102, 32,115,
 31.2079 +   116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100,
 31.2080 +    44, 39, 99,111,110,115,116, 39, 41, 32,116,104,101,110, 10,
 31.2081 +   115,101,108,102, 46,116,121,112,101, 32, 61, 32, 39, 99,111,
 31.2082 +   110,115,116, 32, 39, 46, 46,115,101,108,102, 46,116,121,112,
 31.2083 +   101, 10,115,101,108,102, 46,109,111,100, 32, 61, 32,103,115,
 31.2084 +   117, 98, 40,115,101,108,102, 46,109,111,100, 44, 39, 99,111,
 31.2085 +   110,115,116, 37,115, 42, 39, 44, 39, 39, 41, 10,101,110,100,
 31.2086 +    10,101,110,100, 10, 10, 10, 10,102,117,110, 99,116,105,111,
 31.2087 +   110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,
 31.2088 +   105,111,110, 58,111,117,116, 99,104,101, 99,107,116,121,112,
 31.2089 +   101, 32, 40,110, 97,114,103, 41, 10,108,111, 99, 97,108, 32,
 31.2090 +   100,101,102, 10,108,111, 99, 97,108, 32,116, 32, 61, 32,105,
 31.2091 +   115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,
 31.2092 +   101, 41, 10,105,102, 32,115,101,108,102, 46,100,101,102,126,
 31.2093 +    61, 39, 39, 32,116,104,101,110, 10,100,101,102, 32, 61, 32,
 31.2094 +    49, 10,101,108,115,101, 10,100,101,102, 32, 61, 32, 48, 10,
 31.2095 +   101,110,100, 10,105,102, 32,115,101,108,102, 46,100,105,109,
 31.2096 +    32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,105,102, 32,
 31.2097 +   116, 61, 61, 39,115,116,114,105,110,103, 39, 32,116,104,101,
 31.2098 +   110, 10,114,101,116,117,114,110, 32, 39,116,111,108,117, 97,
 31.2099 +    95,105,115,115,116,114,105,110,103, 40,116,111,108,117, 97,
 31.2100 +    95, 83, 44, 39, 46, 46,110, 97,114,103, 46, 46, 39, 44, 39,
 31.2101 +    46, 46,100,101,102, 46, 46, 39, 44, 38,116,111,108,117, 97,
 31.2102 +    95,101,114,114, 41, 39, 10,101,108,115,101, 10,114,101,116,
 31.2103 +   117,114,110, 32, 39,116,111,108,117, 97, 95,105,115,116, 97,
 31.2104 +    98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,
 31.2105 +   110, 97,114,103, 46, 46, 39, 44, 48, 44, 38,116,111,108,117,
 31.2106 +    97, 95,101,114,114, 41, 39, 10,101,110,100, 10,101,108,115,
 31.2107 +   101,105,102, 32,116, 32,116,104,101,110, 10,114,101,116,117,
 31.2108 +   114,110, 32, 39,116,111,108,117, 97, 95,105,115, 39, 46, 46,
 31.2109 +   116, 46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 46,
 31.2110 +    46,110, 97,114,103, 46, 46, 39, 44, 39, 46, 46,100,101,102,
 31.2111 +    46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41,
 31.2112 +    39, 10,101,108,115,101, 10,114,101,116,117,114,110, 32, 39,
 31.2113 +   116,111,108,117, 97, 95,105,115,117,115,101,114,116,121,112,
 31.2114 +   101, 40,116,111,108,117, 97, 95, 83, 44, 39, 46, 46,110, 97,
 31.2115 +   114,103, 46, 46, 39, 44, 34, 39, 46, 46,115,101,108,102, 46,
 31.2116 +   116,121,112,101, 46, 46, 39, 34, 44, 39, 46, 46,100,101,102,
 31.2117 +    46, 46, 39, 44, 38,116,111,108,117, 97, 95,101,114,114, 41,
 31.2118 +    39, 10,101,110,100, 10,101,110,100, 10, 10,102,117,110, 99,
 31.2119 +   116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108, 97,
 31.2120 +   114, 97,116,105,111,110, 58, 98,117,105,108,100,100,101, 99,
 31.2121 +   108, 97,114, 97,116,105,111,110, 32, 40,110, 97,114,103, 44,
 31.2122 +    32, 99,112,108,117,115,112,108,117,115, 41, 10,108,111, 99,
 31.2123 +    97,108, 32, 97,114,114, 97,121, 32, 61, 32,115,101,108,102,
 31.2124 +    46,100,105,109, 32,126, 61, 32, 39, 39, 32, 97,110,100, 32,
 31.2125 +   116,111,110,117,109, 98,101,114, 40,115,101,108,102, 46,100,
 31.2126 +   105,109, 41, 61, 61,110,105,108, 10,108,111, 99, 97,108, 32,
 31.2127 +   108,105,110,101, 32, 61, 32, 34, 34, 10,108,111, 99, 97,108,
 31.2128 +    32,112,116,114, 32, 61, 32, 39, 39, 10,108,111, 99, 97,108,
 31.2129 +    32,109,111,100, 10,108,111, 99, 97,108, 32,116,121,112,101,
 31.2130 +    32, 61, 32,115,101,108,102, 46,116,121,112,101, 10,105,102,
 31.2131 +    32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39, 39,
 31.2132 +    32,116,104,101,110, 10,116,121,112,101, 32, 61, 32,103,115,
 31.2133 +   117, 98, 40,115,101,108,102, 46,116,121,112,101, 44, 39, 99,
 31.2134 +   111,110,115,116, 37,115, 42, 39, 44, 39, 39, 41, 10,101,110,
 31.2135 +   100, 10,108,111, 99, 97,108, 32, 99,116,121,112,101, 32, 61,
 31.2136 +    32,116,121,112,101, 10,105,102, 32, 99,116,121,112,101, 61,
 31.2137 +    61, 34,108,117, 97, 95, 79, 98,106,101, 99,116, 34, 32,111,
 31.2138 +   114, 32, 99,116,121,112,101, 61, 61, 34,108,117, 97, 95, 70,
 31.2139 +   117,110, 99,116,105,111,110, 34, 32,116,104,101,110, 10, 99,
 31.2140 +   116,121,112,101, 32, 61, 32, 34,105,110,116, 34, 10,101,110,
 31.2141 +   100, 10,105,102, 32,115,101,108,102, 46,112,116,114,126, 61,
 31.2142 +    39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32, 39,
 31.2143 +    42, 39, 32,101,110,100, 10,108,105,110,101, 32, 61, 32, 99,
 31.2144 +   111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101,
 31.2145 +    44, 34, 32, 34, 44,115,101,108,102, 46,109,111,100, 44, 99,
 31.2146 +   116,121,112,101, 44,112,116,114, 41, 10,105,102, 32, 97,114,
 31.2147 +   114, 97,121, 32,116,104,101,110, 10,108,105,110,101, 32, 61,
 31.2148 +    32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,
 31.2149 +   110,101, 44, 39, 42, 39, 41, 10,101,110,100, 10,108,105,110,
 31.2150 +   101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109,
 31.2151 +    40,108,105,110,101, 44,115,101,108,102, 46,110, 97,109,101,
 31.2152 +    41, 10,105,102, 32,115,101,108,102, 46,100,105,109, 32,126,
 31.2153 +    61, 32, 39, 39, 32,116,104,101,110, 10,105,102, 32,116,111,
 31.2154 +   110,117,109, 98,101,114, 40,115,101,108,102, 46,100,105,109,
 31.2155 +    41,126, 61,110,105,108, 32,116,104,101,110, 10,108,105,110,
 31.2156 +   101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109,
 31.2157 +    40,108,105,110,101, 44, 39, 91, 39, 44,115,101,108,102, 46,
 31.2158 +   100,105,109, 44, 39, 93, 59, 39, 41, 10,101,108,115,101, 10,
 31.2159 +   105,102, 32, 99,112,108,117,115,112,108,117,115, 32,116,104,
 31.2160 +   101,110, 10,108,105,110,101, 32, 61, 32, 99,111,110, 99, 97,
 31.2161 +   116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 32, 61,
 31.2162 +    32,110,101,119, 39, 44,116,121,112,101, 44,112,116,114, 44,
 31.2163 +    39, 91, 39, 46, 46,115,101,108,102, 46,100,105,109, 46, 46,
 31.2164 +    39, 93, 59, 39, 41, 10,101,108,115,101, 10,108,105,110,101,
 31.2165 +    32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,109, 40,
 31.2166 +   108,105,110,101, 44, 39, 32, 61, 32, 40, 39, 44,116,121,112,
 31.2167 +   101, 44,112,116,114, 44, 39, 42, 41, 39, 44, 10, 39,109, 97,
 31.2168 +   108,108,111, 99, 40, 40, 39, 44,115,101,108,102, 46,100,105,
 31.2169 +   109, 44, 39, 41, 42,115,105,122,101,111,102, 40, 39, 44,116,
 31.2170 +   121,112,101, 44,112,116,114, 44, 39, 41, 41, 59, 39, 41, 10,
 31.2171 +   101,110,100, 10,101,110,100, 10,101,108,115,101, 10,108,111,
 31.2172 +    99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105, 99,
 31.2173 +    40,116,121,112,101, 41, 10,108,105,110,101, 32, 61, 32, 99,
 31.2174 +   111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101,
 31.2175 +    44, 39, 32, 61, 32, 39, 41, 10,105,102, 32,110,111,116, 32,
 31.2176 +   116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,
 31.2177 +   104,101,110, 32,108,105,110,101, 32, 61, 32, 99,111,110, 99,
 31.2178 +    97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39, 42,
 31.2179 +    39, 41, 32,101,110,100, 10,108,105,110,101, 32, 61, 32, 99,
 31.2180 +   111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,101,
 31.2181 +    44, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,
 31.2182 +   116,121,112,101, 41, 10,105,102, 32,110,111,116, 32,116, 32,
 31.2183 +   116,104,101,110, 10,108,105,110,101, 32, 61, 32, 99,111,110,
 31.2184 +    99, 97,116,112, 97,114, 97,109, 40,108,105,110,101, 44, 39,
 31.2185 +    42, 39, 41, 10,101,110,100, 10,108,105,110,101, 32, 61, 32,
 31.2186 +    99,111,110, 99, 97,116,112, 97,114, 97,109, 40,108,105,110,
 31.2187 +   101, 44, 39, 41, 32, 39, 41, 10,105,102, 32,105,115,101,110,
 31.2188 +   117,109, 40,116,121,112,101, 41, 32,116,104,101,110, 10,108,
 31.2189 +   105,110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114,
 31.2190 +    97,109, 40,108,105,110,101, 44, 39, 40,105,110,116, 41, 32,
 31.2191 +    39, 41, 10,101,110,100, 10,108,111, 99, 97,108, 32,100,101,
 31.2192 +   102, 32, 61, 32, 48, 10,105,102, 32,115,101,108,102, 46,100,
 31.2193 +   101,102, 32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100,
 31.2194 +   101,102, 32, 61, 32,115,101,108,102, 46,100,101,102, 32,101,
 31.2195 +   110,100, 10,105,102, 32,116, 32,116,104,101,110, 10,108,105,
 31.2196 +   110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,
 31.2197 +   109, 40,108,105,110,101, 44, 39,116,111,108,117, 97, 95,116,
 31.2198 +   111, 39, 46, 46,116, 44, 39, 40,116,111,108,117, 97, 95, 83,
 31.2199 +    44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,100,101,102,
 31.2200 +    44, 39, 41, 41, 59, 39, 41, 10,101,108,115,101, 10,108,105,
 31.2201 +   110,101, 32, 61, 32, 99,111,110, 99, 97,116,112, 97,114, 97,
 31.2202 +   109, 40,108,105,110,101, 44, 39,116,111,108,117, 97, 95,116,
 31.2203 +   111,117,115,101,114,116,121,112,101, 40,116,111,108,117, 97,
 31.2204 +    95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44, 39, 44,100,
 31.2205 +   101,102, 44, 39, 41, 41, 59, 39, 41, 10,101,110,100, 10,101,
 31.2206 +   110,100, 10,114,101,116,117,114,110, 32,108,105,110,101, 10,
 31.2207 +   101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,
 31.2208 +    99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,
 31.2209 +   110, 58,100,101, 99,108, 97,114,101, 32, 40,110, 97,114,103,
 31.2210 +    41, 10,105,102, 32,115,101,108,102, 46,100,105,109, 32,126,
 31.2211 +    61, 32, 39, 39, 32, 97,110,100, 32,116,111,110,117,109, 98,
 31.2212 +   101,114, 40,115,101,108,102, 46,100,105,109, 41, 61, 61,110,
 31.2213 +   105,108, 32,116,104,101,110, 10,111,117,116,112,117,116, 40,
 31.2214 +    39, 35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,
 31.2215 +   112,108,117,115, 92,110, 39, 41, 10,111,117,116,112,117,116,
 31.2216 +    40,115,101,108,102, 58, 98,117,105,108,100,100,101, 99,108,
 31.2217 +    97,114, 97,116,105,111,110, 40,110, 97,114,103, 44,116,114,
 31.2218 +   117,101, 41, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,
 31.2219 +   108,115,101, 92,110, 39, 41, 10,111,117,116,112,117,116, 40,
 31.2220 +   115,101,108,102, 58, 98,117,105,108,100,100,101, 99,108, 97,
 31.2221 +   114, 97,116,105,111,110, 40,110, 97,114,103, 44,102, 97,108,
 31.2222 +   115,101, 41, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,
 31.2223 +   110,100,105,102, 92,110, 39, 41, 10,101,108,115,101, 10,111,
 31.2224 +   117,116,112,117,116, 40,115,101,108,102, 58, 98,117,105,108,
 31.2225 +   100,100,101, 99,108, 97,114, 97,116,105,111,110, 40,110, 97,
 31.2226 +   114,103, 44,102, 97,108,115,101, 41, 41, 10,101,110,100, 10,
 31.2227 +   101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32,
 31.2228 +    99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,
 31.2229 +   110, 58,103,101,116, 97,114,114, 97,121, 32, 40,110, 97,114,
 31.2230 +   103, 41, 10,105,102, 32,115,101,108,102, 46,100,105,109, 32,
 31.2231 +   126, 61, 32, 39, 39, 32,116,104,101,110, 10,108,111, 99, 97,
 31.2232 +   108, 32,116,121,112,101, 32, 61, 32,103,115,117, 98, 40,115,
 31.2233 +   101,108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116,
 31.2234 +    32, 39, 44, 39, 39, 41, 10,111,117,116,112,117,116, 40, 39,
 31.2235 +    32,123, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,105,
 31.2236 +   102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76,
 31.2237 +    69, 65, 83, 69, 92,110, 39, 41, 10,108,111, 99, 97,108, 32,
 31.2238 +   100,101,102, 59, 32,105,102, 32,115,101,108,102, 46,100,101,
 31.2239 +   102,126, 61, 39, 39, 32,116,104,101,110, 32,100,101,102, 61,
 31.2240 +    49, 32,101,108,115,101, 32,100,101,102, 61, 48, 32,101,110,
 31.2241 +   100, 10,108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98,
 31.2242 +    97,115,105, 99, 40,116,121,112,101, 41, 10,105,102, 32, 40,
 31.2243 +   116, 41, 32,116,104,101,110, 10,111,117,116,112,117,116, 40,
 31.2244 +    39, 32,105,102, 32, 40, 33,116,111,108,117, 97, 95,105,115,
 31.2245 +    39, 46, 46,116, 46, 46, 39, 97,114,114, 97,121, 40,116,111,
 31.2246 +   108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,
 31.2247 +    39, 44,115,101,108,102, 46,100,105,109, 44, 39, 44, 39, 44,
 31.2248 +   100,101,102, 44, 39, 44, 38,116,111,108,117, 97, 95,101,114,
 31.2249 +   114, 41, 41, 39, 41, 10,101,108,115,101, 10,111,117,116,112,
 31.2250 +   117,116, 40, 39, 32,105,102, 32, 40, 33,116,111,108,117, 97,
 31.2251 +    95,105,115,117,115,101,114,116,121,112,101, 97,114,114, 97,
 31.2252 +   121, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,
 31.2253 +   103, 44, 39, 44, 34, 39, 44,116,121,112,101, 44, 39, 34, 44,
 31.2254 +    39, 44,115,101,108,102, 46,100,105,109, 44, 39, 44, 39, 44,
 31.2255 +   100,101,102, 44, 39, 44, 38,116,111,108,117, 97, 95,101,114,
 31.2256 +   114, 41, 41, 39, 41, 10,101,110,100, 10,111,117,116,112,117,
 31.2257 +   116, 40, 39, 32,103,111,116,111, 32,116,111,108,117, 97, 95,
 31.2258 +   108,101,114,114,111,114, 59, 39, 41, 10,111,117,116,112,117,
 31.2259 +   116, 40, 39, 32,101,108,115,101, 92,110, 39, 41, 10,111,117,
 31.2260 +   116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39,
 31.2261 +    41, 10,111,117,116,112,117,116, 40, 39, 32,123, 39, 41, 10,
 31.2262 +   111,117,116,112,117,116, 40, 39, 32,105,110,116, 32,105, 59,
 31.2263 +    39, 41, 10,111,117,116,112,117,116, 40, 39, 32,102,111,114,
 31.2264 +    40,105, 61, 48, 59, 32,105, 60, 39, 46, 46,115,101,108,102,
 31.2265 +    46,100,105,109, 46, 46, 39, 59,105, 43, 43, 41, 39, 41, 10,
 31.2266 +   108,111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,
 31.2267 +   105, 99, 40,116,121,112,101, 41, 10,108,111, 99, 97,108, 32,
 31.2268 +   112,116,114, 32, 61, 32, 39, 39, 10,105,102, 32,115,101,108,
 31.2269 +   102, 46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,
 31.2270 +   112,116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10,111,
 31.2271 +   117,116,112,117,116, 40, 39, 32, 39, 44,115,101,108,102, 46,
 31.2272 +   110, 97,109,101, 46, 46, 39, 91,105, 93, 32, 61, 32, 39, 41,
 31.2273 +    10,105,102, 32,110,111,116, 32,116, 32, 97,110,100, 32,112,
 31.2274 +   116,114, 61, 61, 39, 39, 32,116,104,101,110, 32,111,117,116,
 31.2275 +   112,117,116, 40, 39, 42, 39, 41, 32,101,110,100, 10,111,117,
 31.2276 +   116,112,117,116, 40, 39, 40, 40, 39, 44,116,121,112,101, 41,
 31.2277 +    10,105,102, 32,110,111,116, 32,116, 32,116,104,101,110, 10,
 31.2278 +   111,117,116,112,117,116, 40, 39, 42, 39, 41, 10,101,110,100,
 31.2279 +    10,111,117,116,112,117,116, 40, 39, 41, 32, 39, 41, 10,108,
 31.2280 +   111, 99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10,105,102,
 31.2281 +    32,115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39,
 31.2282 +    32,116,104,101,110, 32,100,101,102, 32, 61, 32,115,101,108,
 31.2283 +   102, 46,100,101,102, 32,101,110,100, 10,105,102, 32,116, 32,
 31.2284 +   116,104,101,110, 10,111,117,116,112,117,116, 40, 39,116,111,
 31.2285 +   108,117, 97, 95,116,111,102,105,101,108,100, 39, 46, 46,116,
 31.2286 +    46, 46, 39, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,110,
 31.2287 +    97,114,103, 44, 39, 44,105, 43, 49, 44, 39, 44,100,101,102,
 31.2288 +    44, 39, 41, 41, 59, 39, 41, 10,101,108,115,101, 10,111,117,
 31.2289 +   116,112,117,116, 40, 39,116,111,108,117, 97, 95,116,111,102,
 31.2290 +   105,101,108,100,117,115,101,114,116,121,112,101, 40,116,111,
 31.2291 +   108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,
 31.2292 +   105, 43, 49, 44, 39, 44,100,101,102, 44, 39, 41, 41, 59, 39,
 31.2293 +    41, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, 32,
 31.2294 +   125, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,125, 39,
 31.2295 +    41, 10,101,110,100, 10,101,110,100, 10, 10, 10,102,117,110,
 31.2296 +    99,116,105,111,110, 32, 99,108, 97,115,115, 68,101, 99,108,
 31.2297 +    97,114, 97,116,105,111,110, 58,115,101,116, 97,114,114, 97,
 31.2298 +   121, 32, 40,110, 97,114,103, 41, 10,105,102, 32,110,111,116,
 31.2299 +    32,115,116,114,102,105,110,100, 40,115,101,108,102, 46,116,
 31.2300 +   121,112,101, 44, 39, 99,111,110,115,116, 39, 41, 32, 97,110,
 31.2301 +   100, 32,115,101,108,102, 46,100,105,109, 32,126, 61, 32, 39,
 31.2302 +    39, 32,116,104,101,110, 10,108,111, 99, 97,108, 32,116,121,
 31.2303 +   112,101, 32, 61, 32,103,115,117, 98, 40,115,101,108,102, 46,
 31.2304 +   116,121,112,101, 44, 39, 99,111,110,115,116, 32, 39, 44, 39,
 31.2305 +    39, 41, 10,111,117,116,112,117,116, 40, 39, 32,123, 39, 41,
 31.2306 +    10,111,117,116,112,117,116, 40, 39, 32,105,110,116, 32,105,
 31.2307 +    59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,102,111,
 31.2308 +   114, 40,105, 61, 48, 59, 32,105, 60, 39, 46, 46,115,101,108,
 31.2309 +   102, 46,100,105,109, 46, 46, 39, 59,105, 43, 43, 41, 39, 41,
 31.2310 +    10,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,
 31.2311 +   115, 98, 97,115,105, 99, 40,116,121,112,101, 41, 10,105,102,
 31.2312 +    32,116, 32,116,104,101,110, 10,111,117,116,112,117,116, 40,
 31.2313 +    39, 32,116,111,108,117, 97, 95,112,117,115,104,102,105,101,
 31.2314 +   108,100, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97,
 31.2315 +    95, 83, 44, 39, 44,110, 97,114,103, 44, 39, 44,105, 43, 49,
 31.2316 +    44, 40, 39, 44, 99,116, 44, 39, 41, 39, 44,115,101,108,102,
 31.2317 +    46,110, 97,109,101, 44, 39, 91,105, 93, 41, 59, 39, 41, 10,
 31.2318 +   101,108,115,101, 10,105,102, 32,115,101,108,102, 46,112,116,
 31.2319 +   114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10,111,117,
 31.2320 +   116,112,117,116, 40, 39, 32,123, 39, 41, 10,111,117,116,112,
 31.2321 +   117,116, 40, 39, 35,105,102,100,101,102, 32, 95, 95, 99,112,
 31.2322 +   108,117,115,112,108,117,115, 92,110, 39, 41, 10,111,117,116,
 31.2323 +   112,117,116, 40, 39, 32,118,111,105,100, 42, 32,116,111,108,
 31.2324 +   117, 97, 95,111, 98,106, 32, 61, 32,110,101,119, 39, 44,116,
 31.2325 +   121,112,101, 44, 39, 40, 39, 44,115,101,108,102, 46,110, 97,
 31.2326 +   109,101, 44, 39, 91,105, 93, 41, 59, 39, 41, 10,111,117,116,
 31.2327 +   112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,
 31.2328 +   104,102,105,101,108,100,117,115,101,114,116,121,112,101, 40,
 31.2329 +   116,111,108,117, 97, 95, 83, 44, 39, 44,110, 97,114,103, 44,
 31.2330 +    39, 44,105, 43, 49, 44,116,111,108,117, 97, 95, 99,108,111,
 31.2331 +   110,101, 40,116,111,108,117, 97, 95, 83, 44,116,111,108,117,
 31.2332 +    97, 95,111, 98,106, 44,116,111,108,117, 97, 95, 99,111,108,
 31.2333 +   108,101, 99,116, 95, 39, 46, 46, 95, 99,111,108,108,101, 99,
 31.2334 +   116, 91,116,121,112,101, 93, 46, 46, 39, 41, 44, 34, 39, 44,
 31.2335 +   116,121,112,101, 44, 39, 34, 41, 59, 39, 41, 10,111,117,116,
 31.2336 +   112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41, 10,
 31.2337 +   111,117,116,112,117,116, 40, 39, 32,118,111,105,100, 42, 32,
 31.2338 +   116,111,108,117, 97, 95,111, 98,106, 32, 61, 32,116,111,108,
 31.2339 +   117, 97, 95, 99,111,112,121, 40,116,111,108,117, 97, 95, 83,
 31.2340 +    44, 40,118,111,105,100, 42, 41, 38, 39, 44,115,101,108,102,
 31.2341 +    46,110, 97,109,101, 44, 39, 91,105, 93, 44,115,105,122,101,
 31.2342 +   111,102, 40, 39, 44,116,121,112,101, 44, 39, 41, 41, 59, 39,
 31.2343 +    41, 10,111,117,116,112,117,116, 40, 39, 32,116,111,108,117,
 31.2344 +    97, 95,112,117,115,104,102,105,101,108,100,117,115,101,114,
 31.2345 +   116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 39, 44,
 31.2346 +   110, 97,114,103, 44, 39, 44,105, 43, 49, 44,116,111,108,117,
 31.2347 +    97, 95, 99,108,111,110,101, 40,116,111,108,117, 97, 95, 83,
 31.2348 +    44,116,111,108,117, 97, 95,111, 98,106, 44,116,111,108,117,
 31.2349 +    97, 95, 99,111,108,108,101, 99,116, 41, 44, 34, 39, 44,116,
 31.2350 +   121,112,101, 44, 39, 34, 41, 59, 39, 41, 10,111,117,116,112,
 31.2351 +   117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10,
 31.2352 +   111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,101,108,
 31.2353 +   115,101, 10,111,117,116,112,117,116, 40, 39, 32,116,111,108,
 31.2354 +   117, 97, 95,112,117,115,104,102,105,101,108,100,117,115,101,
 31.2355 +   114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 39,
 31.2356 +    44,110, 97,114,103, 44, 39, 44,105, 43, 49, 44, 40,118,111,
 31.2357 +   105,100, 42, 41, 39, 44,115,101,108,102, 46,110, 97,109,101,
 31.2358 +    44, 39, 91,105, 93, 44, 34, 39, 44,116,121,112,101, 44, 39,
 31.2359 +    34, 41, 59, 39, 41, 10,101,110,100, 10,101,110,100, 10,111,
 31.2360 +   117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,101,110,100,
 31.2361 +    10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110,
 31.2362 +    32, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,
 31.2363 +   111,110, 58,102,114,101,101, 97,114,114, 97,121, 32, 40, 41,
 31.2364 +    10,105,102, 32,115,101,108,102, 46,100,105,109, 32,126, 61,
 31.2365 +    32, 39, 39, 32, 97,110,100, 32,116,111,110,117,109, 98,101,
 31.2366 +   114, 40,115,101,108,102, 46,100,105,109, 41, 61, 61,110,105,
 31.2367 +   108, 32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39,
 31.2368 +    35,105,102,100,101,102, 32, 95, 95, 99,112,108,117,115,112,
 31.2369 +   108,117,115, 92,110, 39, 41, 10,111,117,116,112,117,116, 40,
 31.2370 +    39, 32,100,101,108,101,116,101, 32, 91, 93, 39, 44,115,101,
 31.2371 +   108,102, 46,110, 97,109,101, 44, 39, 59, 39, 41, 10,111,117,
 31.2372 +   116,112,117,116, 40, 39, 35,101,108,115,101, 92,110, 39, 41,
 31.2373 +    10,111,117,116,112,117,116, 40, 39, 32,102,114,101,101, 40,
 31.2374 +    39, 44,115,101,108,102, 46,110, 97,109,101, 44, 39, 41, 59,
 31.2375 +    39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100,
 31.2376 +   105,102, 92,110, 39, 41, 10,101,110,100, 10,101,110,100, 10,
 31.2377 +    10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
 31.2378 +   115, 68,101, 99,108, 97,114, 97,116,105,111,110, 58,112, 97,
 31.2379 +   115,115,112, 97,114, 32, 40, 41, 10,105,102, 32,115,101,108,
 31.2380 +   102, 46,112,116,114, 61, 61, 39, 38, 39, 32,116,104,101,110,
 31.2381 +    10,111,117,116,112,117,116, 40, 39, 42, 39, 46, 46,115,101,
 31.2382 +   108,102, 46,110, 97,109,101, 41, 10,101,108,115,101,105,102,
 31.2383 +    32,115,101,108,102, 46,114,101,116, 61, 61, 39, 42, 39, 32,
 31.2384 +   116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 38, 39,
 31.2385 +    46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10,101,108,
 31.2386 +   115,101, 10,111,117,116,112,117,116, 40,115,101,108,102, 46,
 31.2387 +   110, 97,109,101, 41, 10,101,110,100, 10,101,110,100, 10, 10,
 31.2388 +    10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
 31.2389 +    68,101, 99,108, 97,114, 97,116,105,111,110, 58,114,101,116,
 31.2390 +   118, 97,108,117,101, 32, 40, 41, 10,105,102, 32,115,101,108,
 31.2391 +   102, 46,114,101,116, 32,126, 61, 32, 39, 39, 32,116,104,101,
 31.2392 +   110, 10,108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,
 31.2393 +   105,115, 98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,
 31.2394 +   112,101, 41, 10,105,102, 32,116, 32,116,104,101,110, 10,111,
 31.2395 +   117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,
 31.2396 +   117,115,104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117,
 31.2397 +    97, 95, 83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,
 31.2398 +   115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 41, 59, 39,
 31.2399 +    41, 10,101,108,115,101, 10,111,117,116,112,117,116, 40, 39,
 31.2400 +    32,116,111,108,117, 97, 95,112,117,115,104,117,115,101,114,
 31.2401 +   116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 40,118,
 31.2402 +   111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 46,110, 97,
 31.2403 +   109,101, 46, 46, 39, 44, 34, 39, 44,115,101,108,102, 46,116,
 31.2404 +   121,112,101, 44, 39, 34, 41, 59, 39, 41, 10,101,110,100, 10,
 31.2405 +   114,101,116,117,114,110, 32, 49, 10,101,110,100, 10,114,101,
 31.2406 +   116,117,114,110, 32, 48, 10,101,110,100, 10, 10, 10,102,117,
 31.2407 +   110, 99,116,105,111,110, 32, 95, 68,101, 99,108, 97,114, 97,
 31.2408 +   116,105,111,110, 32, 40,116, 41, 10,115,101,116,109,101,116,
 31.2409 +    97,116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 68,
 31.2410 +   101, 99,108, 97,114, 97,116,105,111,110, 41, 10,116, 58, 98,
 31.2411 +   117,105,108,100,110, 97,109,101,115, 40, 41, 10,116, 58, 99,
 31.2412 +   104,101, 99,107,110, 97,109,101, 40, 41, 10,116, 58, 99,104,
 31.2413 +   101, 99,107,116,121,112,101, 40, 41, 10,114,101,116,117,114,
 31.2414 +   110, 32,116, 10,101,110,100, 10, 10, 10, 10, 10,102,117,110,
 31.2415 +    99,116,105,111,110, 32, 68,101, 99,108, 97,114, 97,116,105,
 31.2416 +   111,110, 32, 40,115, 44,107,105,110,100, 41, 10, 10,115, 32,
 31.2417 +    61, 32,103,115,117, 98, 40,115, 44, 34, 37,115, 42, 61, 37,
 31.2418 +   115, 42, 34, 44, 34, 61, 34, 41, 10, 10,105,102, 32,107,105,
 31.2419 +   110,100, 32, 61, 61, 32, 34,118, 97,114, 34, 32,116,104,101,
 31.2420 +   110, 10, 10,105,102, 32,115, 32, 61, 61, 32, 39, 39, 32,111,
 31.2421 +   114, 32,115, 32, 61, 61, 32, 39,118,111,105,100, 39, 32,116,
 31.2422 +   104,101,110, 10,114,101,116,117,114,110, 32, 95, 68,101, 99,
 31.2423 +   108, 97,114, 97,116,105,111,110,123,116,121,112,101, 32, 61,
 31.2424 +    32, 39,118,111,105,100, 39, 44, 32,107,105,110,100, 32, 61,
 31.2425 +    32,107,105,110,100,125, 10,101,110,100, 10,101,110,100, 10,
 31.2426 +    10, 10,108,111, 99, 97,108, 32,116, 32, 61, 32,115,112,108,
 31.2427 +   105,116, 40,115, 44, 39, 37, 42, 37,115, 42, 38, 39, 41, 10,
 31.2428 +   105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,
 31.2429 +   110, 10,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,102,
 31.2430 +   117,110, 99, 39, 32,116,104,101,110, 10,101,114,114,111,114,
 31.2431 +    40, 34, 35,105,110,118, 97,108,105,100, 32,102,117,110, 99,
 31.2432 +   116,105,111,110, 32,114,101,116,117,114,110, 32,116,121,112,
 31.2433 +   101, 58, 32, 34, 46, 46,115, 41, 10,101,110,100, 10,108,111,
 31.2434 +    99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116, 40,116,
 31.2435 +    91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10,114,101,
 31.2436 +   116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,105,
 31.2437 +   111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91, 50, 93,
 31.2438 +    44, 10,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10,114,101,
 31.2439 +   116, 32, 61, 32, 39, 38, 39, 44, 10,116,121,112,101, 32, 61,
 31.2440 +    32,109, 91,109, 46,110, 93, 44, 10,109,111,100, 32, 61, 32,
 31.2441 +    99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,110, 45,
 31.2442 +    49, 41, 44, 10,107,105,110,100, 32, 61, 32,107,105,110,100,
 31.2443 +    10,125, 10,101,110,100, 10, 10, 10,116, 32, 61, 32,115,112,
 31.2444 +   108,105,116, 40,115, 44, 39, 37, 42, 37,115, 42, 37, 42, 39,
 31.2445 +    41, 10,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,
 31.2446 +   104,101,110, 10,105,102, 32,107,105,110,100, 32, 61, 61, 32,
 31.2447 +    39,102,117,110, 99, 39, 32,116,104,101,110, 10,101,114,114,
 31.2448 +   111,114, 40, 34, 35,105,110,118, 97,108,105,100, 32,102,117,
 31.2449 +   110, 99,116,105,111,110, 32,114,101,116,117,114,110, 32,116,
 31.2450 +   121,112,101, 58, 32, 34, 46, 46,115, 41, 10,101,110,100, 10,
 31.2451 +   108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116,
 31.2452 +    40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10,
 31.2453 +   114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,
 31.2454 +   116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91,
 31.2455 +    50, 93, 44, 10,112,116,114, 32, 61, 32, 39, 42, 39, 44, 10,
 31.2456 +   114,101,116, 32, 61, 32, 39, 42, 39, 44, 10,116,121,112,101,
 31.2457 +    32, 61, 32,109, 91,109, 46,110, 93, 44, 10,109,111,100, 32,
 31.2458 +    61, 32, 99,111,110, 99, 97,116, 40,109, 44, 49, 44,109, 46,
 31.2459 +   110, 45, 49, 41, 44, 10,107,105,110,100, 32, 61, 32,107,105,
 31.2460 +   110,100, 10,125, 10,101,110,100, 10, 10, 10,116, 32, 61, 32,
 31.2461 +   115,112,108,105,116, 40,115, 44, 39, 38, 39, 41, 10,105,102,
 31.2462 +    32,116, 46,110, 32, 61, 61, 32, 50, 32,116,104,101,110, 10,
 31.2463 +   108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,105,116,
 31.2464 +    40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39, 41, 10,
 31.2465 +   114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,
 31.2466 +   116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,116, 91,
 31.2467 +    50, 93, 44, 10,112,116,114, 32, 61, 32, 39, 38, 39, 44, 10,
 31.2468 +   116,121,112,101, 32, 61, 32,109, 91,109, 46,110, 93, 44, 10,
 31.2469 +   109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,109, 44,
 31.2470 +    49, 44,109, 46,110, 45, 49, 41, 32, 44, 10,107,105,110,100,
 31.2471 +    32, 61, 32,107,105,110,100, 10,125, 10,101,110,100, 10, 10,
 31.2472 +    10,108,111, 99, 97,108, 32,115, 49, 32, 61, 32,103,115,117,
 31.2473 +    98, 40,115, 44, 34, 40, 37, 98, 92, 91, 92, 93, 41, 34, 44,
 31.2474 +   102,117,110, 99,116,105,111,110, 32, 40,110, 41, 32,114,101,
 31.2475 +   116,117,114,110, 32,103,115,117, 98, 40,110, 44, 39, 37, 42,
 31.2476 +    39, 44, 39, 92, 49, 39, 41, 32,101,110,100, 41, 10,116, 32,
 31.2477 +    61, 32,115,112,108,105,116, 40,115, 49, 44, 39, 37, 42, 39,
 31.2478 +    41, 10,105,102, 32,116, 46,110, 32, 61, 61, 32, 50, 32,116,
 31.2479 +   104,101,110, 10,116, 91, 50, 93, 32, 61, 32,103,115,117, 98,
 31.2480 +    40,116, 91, 50, 93, 44, 39, 92, 49, 39, 44, 39, 37, 42, 39,
 31.2481 +    41, 10,108,111, 99, 97,108, 32,109, 32, 61, 32,115,112,108,
 31.2482 +   105,116, 40,116, 91, 49, 93, 44, 39, 37,115, 37,115, 42, 39,
 31.2483 +    41, 10,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,
 31.2484 +   114, 97,116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,
 31.2485 +   116, 91, 50, 93, 44, 10,112,116,114, 32, 61, 32, 39, 42, 39,
 31.2486 +    44, 10,116,121,112,101, 32, 61, 32,109, 91,109, 46,110, 93,
 31.2487 +    44, 10,109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,
 31.2488 +   109, 44, 49, 44,109, 46,110, 45, 49, 41, 32, 44, 10,107,105,
 31.2489 +   110,100, 32, 61, 32,107,105,110,100, 10,125, 10,101,110,100,
 31.2490 +    10, 10,105,102, 32,107,105,110,100, 32, 61, 61, 32, 39,118,
 31.2491 +    97,114, 39, 32,116,104,101,110, 10, 10,116, 32, 61, 32,115,
 31.2492 +   112,108,105,116, 40,115, 44, 39, 37,115, 37,115, 42, 39, 41,
 31.2493 +    10,108,111, 99, 97,108, 32,118, 10,105,102, 32,102,105,110,
 31.2494 +   100,116,121,112,101, 40,116, 91,116, 46,110, 93, 41, 32,116,
 31.2495 +   104,101,110, 32,118, 32, 61, 32, 39, 39, 32,101,108,115,101,
 31.2496 +    32,118, 32, 61, 32,116, 91,116, 46,110, 93, 59, 32,116, 46,
 31.2497 +   110, 32, 61, 32,116, 46,110, 45, 49, 32,101,110,100, 10,114,
 31.2498 +   101,116,117,114,110, 32, 95, 68,101, 99,108, 97,114, 97,116,
 31.2499 +   105,111,110,123, 10,110, 97,109,101, 32, 61, 32,118, 44, 10,
 31.2500 +   116,121,112,101, 32, 61, 32,116, 91,116, 46,110, 93, 44, 10,
 31.2501 +   109,111,100, 32, 61, 32, 99,111,110, 99, 97,116, 40,116, 44,
 31.2502 +    49, 44,116, 46,110, 45, 49, 41, 44, 10,107,105,110,100, 32,
 31.2503 +    61, 32,107,105,110,100, 10,125, 10, 10,101,108,115,101, 10,
 31.2504 +    10, 10,116, 32, 61, 32,115,112,108,105,116, 40,115, 44, 39,
 31.2505 +    37,115, 37,115, 42, 39, 41, 10,108,111, 99, 97,108, 32,118,
 31.2506 +    32, 61, 32,116, 91,116, 46,110, 93, 10,108,111, 99, 97,108,
 31.2507 +    32,116,112, 44,109,100, 10,105,102, 32,116, 46,110, 62, 49,
 31.2508 +    32,116,104,101,110, 10,116,112, 32, 61, 32,116, 91,116, 46,
 31.2509 +   110, 45, 49, 93, 10,109,100, 32, 61, 32, 99,111,110, 99, 97,
 31.2510 +   116, 40,116, 44, 49, 44,116, 46,110, 45, 50, 41, 10,101,110,
 31.2511 +   100, 10,114,101,116,117,114,110, 32, 95, 68,101, 99,108, 97,
 31.2512 +   114, 97,116,105,111,110,123, 10,110, 97,109,101, 32, 61, 32,
 31.2513 +   118, 44, 10,116,121,112,101, 32, 61, 32,116,112, 44, 10,109,
 31.2514 +   111,100, 32, 61, 32,109,100, 44, 10,107,105,110,100, 32, 61,
 31.2515 +    32,107,105,110,100, 10,125, 10,101,110,100, 10, 10,101,110,
 31.2516 +   100,32
 31.2517 +  };
 31.2518 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
 31.2519 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
 31.2520 + } /* end of embedded lua code */
 31.2521 +
 31.2522 +
 31.2523 + { /* begin embedded lua code */
 31.2524 +  static unsigned char B[] = {
 31.2525 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
 31.2526 +    10, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 32,
 31.2527 +    61, 32,123, 10, 95,103,101,116, 32, 61, 32,123,125, 44, 10,
 31.2528 +    95,115,101,116, 32, 61, 32,123,125, 44, 10,125, 10, 99,108,
 31.2529 +    97,115,115, 86, 97,114,105, 97, 98,108,101, 46, 95, 95,105,
 31.2530 +   110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 86, 97,114,
 31.2531 +   105, 97, 98,108,101, 10,115,101,116,109,101,116, 97,116, 97,
 31.2532 +    98,108,101, 40, 99,108, 97,115,115, 86, 97,114,105, 97, 98,
 31.2533 +   108,101, 44, 99,108, 97,115,115, 68,101, 99,108, 97,114, 97,
 31.2534 +   116,105,111,110, 41, 10, 10, 10,102,117,110, 99,116,105,111,
 31.2535 +   110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101,
 31.2536 +    58,112,114,105,110,116, 32, 40,105,100,101,110,116, 44, 99,
 31.2537 +   108,111,115,101, 41, 10,112,114,105,110,116, 40,105,100,101,
 31.2538 +   110,116, 46, 46, 34, 86, 97,114,105, 97, 98,108,101,123, 34,
 31.2539 +    41, 10,112,114,105,110,116, 40,105,100,101,110,116, 46, 46,
 31.2540 +    34, 32,109,111,100, 32, 61, 32, 39, 34, 46, 46,115,101,108,
 31.2541 +   102, 46,109,111,100, 46, 46, 34, 39, 44, 34, 41, 10,112,114,
 31.2542 +   105,110,116, 40,105,100,101,110,116, 46, 46, 34, 32,116,121,
 31.2543 +   112,101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,116,
 31.2544 +   121,112,101, 46, 46, 34, 39, 44, 34, 41, 10,112,114,105,110,
 31.2545 +   116, 40,105,100,101,110,116, 46, 46, 34, 32,112,116,114, 32,
 31.2546 +    61, 32, 39, 34, 46, 46,115,101,108,102, 46,112,116,114, 46,
 31.2547 +    46, 34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,105,100,
 31.2548 +   101,110,116, 46, 46, 34, 32,110, 97,109,101, 32, 61, 32, 39,
 31.2549 +    34, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 34,
 31.2550 +    39, 44, 34, 41, 10,105,102, 32,115,101,108,102, 46,100,105,
 31.2551 +   109, 32,116,104,101,110, 32,112,114,105,110,116, 40,105,100,
 31.2552 +   101,110,116, 46, 46, 34, 32,100,105,109, 32, 61, 32, 39, 34,
 31.2553 +    46, 46,115,101,108,102, 46,100,105,109, 46, 46, 34, 39, 44,
 31.2554 +    34, 41, 32,101,110,100, 10,112,114,105,110,116, 40,105,100,
 31.2555 +   101,110,116, 46, 46, 34, 32,100,101,102, 32, 61, 32, 39, 34,
 31.2556 +    46, 46,115,101,108,102, 46,100,101,102, 46, 46, 34, 39, 44,
 31.2557 +    34, 41, 10,112,114,105,110,116, 40,105,100,101,110,116, 46,
 31.2558 +    46, 34, 32,114,101,116, 32, 61, 32, 39, 34, 46, 46,115,101,
 31.2559 +   108,102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10,112,
 31.2560 +   114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34,
 31.2561 +    46, 46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10,
 31.2562 +   102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 86,
 31.2563 +    97,114,105, 97, 98,108,101, 58, 99,102,117,110, 99,110, 97,
 31.2564 +   109,101, 32, 40,112,114,101,102,105,120, 41, 10,108,111, 99,
 31.2565 +    97,108, 32,112, 97,114,101,110,116, 32, 61, 32, 34, 34, 10,
 31.2566 +   108,111, 99, 97,108, 32,117,110,115,105,103,110,101,100, 32,
 31.2567 +    61, 32, 34, 34, 10,108,111, 99, 97,108, 32,112,116,114, 32,
 31.2568 +    61, 32, 34, 34, 10, 10,108,111, 99, 97,108, 32,112, 32, 61,
 31.2569 +    32,115,101,108,102, 58,105,110,109,111,100,117,108,101, 40,
 31.2570 +    41, 32,111,114, 32,115,101,108,102, 58,105,110,110, 97,109,
 31.2571 +   101,115,112, 97, 99,101, 40, 41, 32,111,114, 32,115,101,108,
 31.2572 +   102, 58,105,110, 99,108, 97,115,115, 40, 41, 10, 10,105,102,
 31.2573 +    32,112, 32,116,104,101,110, 10,112, 97,114,101,110,116, 32,
 31.2574 +    61, 32, 34, 95, 34, 32, 46, 46, 32,112, 10,101,110,100, 10,
 31.2575 +    10,105,102, 32,115,116,114,102,105,110,100, 40,115,101,108,
 31.2576 +   102, 46,109,111,100, 44, 34, 40,117,110,115,105,103,110,101,
 31.2577 +   100, 41, 34, 41, 32,116,104,101,110, 10,117,110,115,105,103,
 31.2578 +   110,101,100, 32, 61, 32, 34, 95,117,110,115,105,103,110,101,
 31.2579 +   100, 34, 10,101,110,100, 10, 10,105,102, 32,115,101,108,102,
 31.2580 +    46,112,116,114, 32, 61, 61, 32, 34, 42, 34, 32,116,104,101,
 31.2581 +   110, 32,112,116,114, 32, 61, 32, 34, 95,112,116,114, 34, 10,
 31.2582 +   101,108,115,101,105,102, 32,115,101,108,102, 46,112,116,114,
 31.2583 +    32, 61, 61, 32, 34, 38, 34, 32,116,104,101,110, 32,112,116,
 31.2584 +   114, 32, 61, 32, 34, 95,114,101,102, 34, 10,101,110,100, 10,
 31.2585 +    10,108,111, 99, 97,108, 32,110, 97,109,101, 32, 61, 32,112,
 31.2586 +   114,101,102,105,120, 32, 46, 46, 32,112, 97,114,101,110,116,
 31.2587 +    32, 46, 46, 32,117,110,115,105,103,110,101,100, 32, 46, 46,
 31.2588 +    32, 34, 95, 34, 32, 46, 46, 32,103,115,117, 98, 40,115,101,
 31.2589 +   108,102, 46,110, 97,109,101, 44, 34, 46, 42, 58, 58, 34, 44,
 31.2590 +    34, 34, 41, 32, 46, 46, 32,112,116,114, 10, 10,114,101,116,
 31.2591 +   117,114,110, 32,110, 97,109,101, 10, 10,101,110,100, 10, 10,
 31.2592 +    10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,115,
 31.2593 +    86, 97,114,105, 97, 98,108,101, 58,105,115,118, 97,114,105,
 31.2594 +    97, 98,108,101, 32, 40, 41, 10,114,101,116,117,114,110, 32,
 31.2595 +   116,114,117,101, 10,101,110,100, 10, 10, 10,102,117,110, 99,
 31.2596 +   116,105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97,
 31.2597 +    98,108,101, 58,103,101,116,118, 97,108,117,101, 32, 40, 99,
 31.2598 +   108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 10,105,102,
 31.2599 +    32, 99,108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,
 31.2600 +   105, 99, 32,116,104,101,110, 10,114,101,116,117,114,110, 32,
 31.2601 +    99,108, 97,115,115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,
 31.2602 +   108,102, 46,110, 97,109,101, 10,101,108,115,101,105,102, 32,
 31.2603 +    99,108, 97,115,115, 32,116,104,101,110, 10,114,101,116,117,
 31.2604 +   114,110, 32, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101,
 31.2605 +   108,102, 46,110, 97,109,101, 10,101,108,115,101, 10,114,101,
 31.2606 +   116,117,114,110, 32,115,101,108,102, 46,110, 97,109,101, 10,
 31.2607 +   101,110,100, 10,101,110,100, 10, 10, 10,102,117,110, 99,116,
 31.2608 +   105,111,110, 32, 99,108, 97,115,115, 86, 97,114,105, 97, 98,
 31.2609 +   108,101, 58,103,101,116,112,111,105,110,116,101,114,118, 97,
 31.2610 +   108,117,101, 32, 40, 99,108, 97,115,115, 44,115,116, 97,116,
 31.2611 +   105, 99, 41, 10,105,102, 32, 99,108, 97,115,115, 32, 97,110,
 31.2612 +   100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10,114,
 31.2613 +   101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46, 39, 58,
 31.2614 +    58,112, 39, 10,101,108,115,101,105,102, 32, 99,108, 97,115,
 31.2615 +   115, 32,116,104,101,110, 10,114,101,116,117,114,110, 32, 39,
 31.2616 +   115,101,108,102, 45, 62,112, 39, 10,101,108,115,101, 10,114,
 31.2617 +   101,116,117,114,110, 32, 39,112, 39, 10,101,110,100, 10,101,
 31.2618 +   110,100, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,
 31.2619 +   108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 58,115,117,
 31.2620 +   112, 99,111,100,101, 32, 40, 41, 10,108,111, 99, 97,108, 32,
 31.2621 +    99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,110,
 31.2622 +    99,108, 97,115,115, 40, 41, 10, 10, 10,105,102, 32, 99,108,
 31.2623 +    97,115,115, 32,116,104,101,110, 10,111,117,116,112,117,116,
 31.2624 +    40, 34, 47, 42, 32,103,101,116, 32,102,117,110, 99,116,105,
 31.2625 +   111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101, 44,
 31.2626 +    34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108,
 31.2627 +    97,115,115, 44, 34, 32, 42, 47, 34, 41, 10,101,108,115,101,
 31.2628 +    10,111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,116,
 31.2629 +    32,102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,108,
 31.2630 +   102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10,101,
 31.2631 +   110,100, 10,115,101,108,102, 46, 99,103,101,116,110, 97,109,
 31.2632 +   101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99,110,
 31.2633 +    97,109,101, 40, 34,116,111,108,117, 97, 95,103,101,116, 34,
 31.2634 +    41, 10,111,117,116,112,117,116, 40, 34,115,116, 97,116,105,
 31.2635 +    99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,103,101,
 31.2636 +   116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,
 31.2637 +   116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10,
 31.2638 +   111,117,116,112,117,116, 40, 34,123, 34, 41, 10, 10, 10,108,
 31.2639 +   111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99,
 31.2640 +    32, 61, 32,115,116,114,102,105,110,100, 40,115,101,108,102,
 31.2641 +    46,109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,
 31.2642 +   105, 99, 41, 39, 41, 10,105,102, 32, 99,108, 97,115,115, 32,
 31.2643 +    97,110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108,
 31.2644 +    32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 32,
 31.2645 +    39, 44, 99,108, 97,115,115, 44, 39, 42, 39, 44, 39,115,101,
 31.2646 +   108,102, 32, 61, 32, 39, 41, 10,111,117,116,112,117,116, 40,
 31.2647 +    39, 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, 32, 39,
 31.2648 +    41, 10,111,117,116,112,117,116, 40, 39,116,111,108,117, 97,
 31.2649 +    95,116,111,117,115,101,114,116,121,112,101, 40,116,111,108,
 31.2650 +   117, 97, 95, 83, 44, 49, 44, 48, 41, 59, 39, 41, 10,101,108,
 31.2651 +   115,101,105,102, 32,115,116, 97,116,105, 99, 32,116,104,101,
 31.2652 +   110, 10, 95, 44, 95, 44,115,101,108,102, 46,109,111,100, 32,
 31.2653 +    61, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46,
 31.2654 +   109,111,100, 44, 39, 94, 37,115, 42,115,116, 97,116,105, 99,
 31.2655 +    37,115, 37,115, 42, 40, 46, 42, 41, 39, 41, 10,101,110,100,
 31.2656 +    10, 10, 10, 10,105,102, 32, 99,108, 97,115,115, 32, 97,110,
 31.2657 +   100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,
 31.2658 +   104,101,110, 10,111,117,116,112,117,116, 40, 39, 35,105,102,
 31.2659 +   110,100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69,
 31.2660 +    65, 83, 69, 92,110, 39, 41, 10,111,117,116,112,117,116, 40,
 31.2661 +    39, 32,105,102, 32, 40, 33,115,101,108,102, 41, 32,116,111,
 31.2662 +   108,117, 97, 95,101,114,114,111,114, 40,116,111,108,117, 97,
 31.2663 +    95, 83, 44, 34,105,110,118, 97,108,105,100, 32, 92, 39,115,
 31.2664 +   101,108,102, 92, 39, 32,105,110, 32, 97, 99, 99,101,115,115,
 31.2665 +   105,110,103, 32,118, 97,114,105, 97, 98,108,101, 32, 92, 39,
 31.2666 +    39, 46, 46,115,101,108,102, 46,110, 97,109,101, 46, 46, 39,
 31.2667 +    92, 39, 34, 44, 78, 85, 76, 76, 41, 59, 39, 41, 59, 10,111,
 31.2668 +   117,116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110,
 31.2669 +    39, 41, 10,101,110,100, 10, 10, 10,108,111, 99, 97,108, 32,
 31.2670 +   116, 44, 99,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,
 31.2671 +   115,101,108,102, 46,116,121,112,101, 41, 10,105,102, 32,116,
 31.2672 +    32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 32,
 31.2673 +   116,111,108,117, 97, 95,112,117,115,104, 39, 46, 46,116, 46,
 31.2674 +    46, 39, 40,116,111,108,117, 97, 95, 83, 44, 40, 39, 44, 99,
 31.2675 +   116, 44, 39, 41, 39, 46, 46,115,101,108,102, 58,103,101,116,
 31.2676 +   118, 97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,
 31.2677 +   116,105, 99, 41, 46, 46, 39, 41, 59, 39, 41, 10,101,108,115,
 31.2678 +   101, 10,116, 32, 61, 32,115,101,108,102, 46,116,121,112,101,
 31.2679 +    10,105,102, 32,115,101,108,102, 46,112,116,114, 32, 61, 61,
 31.2680 +    32, 39, 38, 39, 32,111,114, 32,115,101,108,102, 46,112,116,
 31.2681 +   114, 32, 61, 61, 32, 39, 39, 32,116,104,101,110, 10,111,117,
 31.2682 +   116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,
 31.2683 +   115,104,117,115,101,114,116,121,112,101, 40,116,111,108,117,
 31.2684 +    97, 95, 83, 44, 40,118,111,105,100, 42, 41, 38, 39, 46, 46,
 31.2685 +   115,101,108,102, 58,103,101,116,118, 97,108,117,101, 40, 99,
 31.2686 +   108, 97,115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39,
 31.2687 +    44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39, 41, 10,101,108,
 31.2688 +   115,101, 10,111,117,116,112,117,116, 40, 39, 32,116,111,108,
 31.2689 +   117, 97, 95,112,117,115,104,117,115,101,114,116,121,112,101,
 31.2690 +    40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100, 42,
 31.2691 +    41, 39, 46, 46,115,101,108,102, 58,103,101,116,118, 97,108,
 31.2692 +   117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,105, 99,
 31.2693 +    41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41, 59, 39,
 31.2694 +    41, 10,101,110,100, 10,101,110,100, 10,111,117,116,112,117,
 31.2695 +   116, 40, 39, 32,114,101,116,117,114,110, 32, 49, 59, 39, 41,
 31.2696 +    10,111,117,116,112,117,116, 40, 39,125, 39, 41, 10,111,117,
 31.2697 +   116,112,117,116, 40, 39, 92,110, 39, 41, 10, 10, 10,105,102,
 31.2698 +    32,110,111,116, 32,115,116,114,102,105,110,100, 40,115,101,
 31.2699 +   108,102, 46,116,121,112,101, 44, 39, 99,111,110,115,116, 39,
 31.2700 +    41, 32,116,104,101,110, 10,105,102, 32, 99,108, 97,115,115,
 31.2701 +    32,116,104,101,110, 10,111,117,116,112,117,116, 40, 34, 47,
 31.2702 +    42, 32,115,101,116, 32,102,117,110, 99,116,105,111,110, 58,
 31.2703 +    34, 44,115,101,108,102, 46,110, 97,109,101, 44, 34, 32,111,
 31.2704 +   102, 32, 99,108, 97,115,115, 32, 34, 44, 99,108, 97,115,115,
 31.2705 +    44, 34, 32, 42, 47, 34, 41, 10,101,108,115,101, 10,111,117,
 31.2706 +   116,112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,
 31.2707 +   110, 99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110,
 31.2708 +    97,109,101, 44, 34, 32, 42, 47, 34, 41, 10,101,110,100, 10,
 31.2709 +   115,101,108,102, 46, 99,115,101,116,110, 97,109,101, 32, 61,
 31.2710 +    32,115,101,108,102, 58, 99,102,117,110, 99,110, 97,109,101,
 31.2711 +    40, 34,116,111,108,117, 97, 95,115,101,116, 34, 41, 10,111,
 31.2712 +   117,116,112,117,116, 40, 34,115,116, 97,116,105, 99, 32,105,
 31.2713 +   110,116, 34, 44,115,101,108,102, 46, 99,115,101,116,110, 97,
 31.2714 +   109,101, 44, 34, 40,108,117, 97, 95, 83,116, 97,116,101, 42,
 31.2715 +    32,116,111,108,117, 97, 95, 83, 41, 34, 41, 10,111,117,116,
 31.2716 +   112,117,116, 40, 34,123, 34, 41, 10, 10, 10,105,102, 32, 99,
 31.2717 +   108, 97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99,
 31.2718 +    61, 61,110,105,108, 32,116,104,101,110, 10,111,117,116,112,
 31.2719 +   117,116, 40, 39, 32, 39, 44, 99,108, 97,115,115, 44, 39, 42,
 31.2720 +    39, 44, 39,115,101,108,102, 32, 61, 32, 39, 41, 10,111,117,
 31.2721 +   116,112,117,116, 40, 39, 40, 39, 44, 99,108, 97,115,115, 44,
 31.2722 +    39, 42, 41, 32, 39, 41, 10,111,117,116,112,117,116, 40, 39,
 31.2723 +   116,111,108,117, 97, 95,116,111,117,115,101,114,116,121,112,
 31.2724 +   101, 40,116,111,108,117, 97, 95, 83, 44, 49, 44, 48, 41, 59,
 31.2725 +    39, 41, 10, 10,101,110,100, 10, 10,111,117,116,112,117,116,
 31.2726 +    40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65,
 31.2727 +    95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10,111,117,
 31.2728 +   116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95, 69,114,
 31.2729 +   114,111,114, 32,116,111,108,117, 97, 95,101,114,114, 59, 39,
 31.2730 +    41, 10,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,
 31.2731 +   115,116, 97,116,105, 99, 61, 61,110,105,108, 32,116,104,101,
 31.2732 +   110, 10,111,117,116,112,117,116, 40, 39, 32,105,102, 32, 40,
 31.2733 +    33,115,101,108,102, 41, 32,116,111,108,117, 97, 95,101,114,
 31.2734 +   114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34,105,110,
 31.2735 +   118, 97,108,105,100, 32, 92, 39,115,101,108,102, 92, 39, 32,
 31.2736 +   105,110, 32, 97, 99, 99,101,115,115,105,110,103, 32,118, 97,
 31.2737 +   114,105, 97, 98,108,101, 32, 92, 39, 39, 46, 46,115,101,108,
 31.2738 +   102, 46,110, 97,109,101, 46, 46, 39, 92, 39, 34, 44, 78, 85,
 31.2739 +    76, 76, 41, 59, 39, 41, 59, 10,101,108,115,101,105,102, 32,
 31.2740 +   115,116, 97,116,105, 99, 32,116,104,101,110, 10, 95, 44, 95,
 31.2741 +    44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,116,114,
 31.2742 +   102,105,110,100, 40,115,101,108,102, 46,109,111,100, 44, 39,
 31.2743 +    94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,115, 42,
 31.2744 +    40, 46, 42, 41, 39, 41, 10,101,110,100, 10, 10, 10,111,117,
 31.2745 +   116,112,117,116, 40, 39, 32,105,102, 32, 40, 33, 39, 46, 46,
 31.2746 +   115,101,108,102, 58,111,117,116, 99,104,101, 99,107,116,121,
 31.2747 +   112,101, 40, 50, 41, 46, 46, 39, 41, 39, 41, 10,111,117,116,
 31.2748 +   112,117,116, 40, 39, 32,116,111,108,117, 97, 95,101,114,114,
 31.2749 +   111,114, 40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,
 31.2750 +   110,118, 97,108,105,100, 32,116,121,112,101, 32,105,110, 32,
 31.2751 +   118, 97,114,105, 97, 98,108,101, 32, 97,115,115,105,103,110,
 31.2752 +   109,101,110,116, 46, 34, 44, 38,116,111,108,117, 97, 95,101,
 31.2753 +   114,114, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39,
 31.2754 +    35,101,110,100,105,102, 92,110, 39, 41, 10, 10, 10,108,111,
 31.2755 +    99, 97,108, 32,100,101,102, 32, 61, 32, 48, 10,105,102, 32,
 31.2756 +   115,101,108,102, 46,100,101,102, 32,126, 61, 32, 39, 39, 32,
 31.2757 +   116,104,101,110, 32,100,101,102, 32, 61, 32,115,101,108,102,
 31.2758 +    46,100,101,102, 32,101,110,100, 10,105,102, 32,115,101,108,
 31.2759 +   102, 46,116,121,112,101, 32, 61, 61, 32, 39, 99,104, 97,114,
 31.2760 +    42, 39, 32, 97,110,100, 32,115,101,108,102, 46,100,105,109,
 31.2761 +    32,126, 61, 32, 39, 39, 32,116,104,101,110, 10,111,117,116,
 31.2762 +   112,117,116, 40, 39, 32,115,116,114,110, 99,112,121, 40, 39,
 31.2763 +    41, 10,105,102, 32, 99,108, 97,115,115, 32, 97,110,100, 32,
 31.2764 +   115,116, 97,116,105, 99, 32,116,104,101,110, 10,111,117,116,
 31.2765 +   112,117,116, 40, 99,108, 97,115,115, 46, 46, 39, 58, 58, 39,
 31.2766 +    46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10,101,108,
 31.2767 +   115,101,105,102, 32, 99,108, 97,115,115, 32,116,104,101,110,
 31.2768 +    10,111,117,116,112,117,116, 40, 39,115,101,108,102, 45, 62,
 31.2769 +    39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41, 10,101,
 31.2770 +   108,115,101, 10,111,117,116,112,117,116, 40,115,101,108,102,
 31.2771 +    46,110, 97,109,101, 41, 10,101,110,100, 10,111,117,116,112,
 31.2772 +   117,116, 40, 39, 44,116,111,108,117, 97, 95,116,111,115,116,
 31.2773 +   114,105,110,103, 40,116,111,108,117, 97, 95, 83, 44, 50, 44,
 31.2774 +    39, 44,100,101,102, 44, 39, 41, 44, 39, 44,115,101,108,102,
 31.2775 +    46,100,105,109, 44, 39, 45, 49, 41, 59, 39, 41, 10,101,108,
 31.2776 +   115,101, 10,108,111, 99, 97,108, 32,112,116,114, 32, 61, 32,
 31.2777 +    39, 39, 10,105,102, 32,115,101,108,102, 46,112,116,114,126,
 31.2778 +    61, 39, 39, 32,116,104,101,110, 32,112,116,114, 32, 61, 32,
 31.2779 +    39, 42, 39, 32,101,110,100, 10,111,117,116,112,117,116, 40,
 31.2780 +    39, 32, 39, 41, 10,105,102, 32, 99,108, 97,115,115, 32, 97,
 31.2781 +   110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10,
 31.2782 +   111,117,116,112,117,116, 40, 99,108, 97,115,115, 46, 46, 39,
 31.2783 +    58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101, 41,
 31.2784 +    10,101,108,115,101,105,102, 32, 99,108, 97,115,115, 32,116,
 31.2785 +   104,101,110, 10,111,117,116,112,117,116, 40, 39,115,101,108,
 31.2786 +   102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,109,101,
 31.2787 +    41, 10,101,108,115,101, 10,111,117,116,112,117,116, 40,115,
 31.2788 +   101,108,102, 46,110, 97,109,101, 41, 10,101,110,100, 10,108,
 31.2789 +   111, 99, 97,108, 32,116, 32, 61, 32,105,115, 98, 97,115,105,
 31.2790 +    99, 40,115,101,108,102, 46,116,121,112,101, 41, 10,111,117,
 31.2791 +   116,112,117,116, 40, 39, 32, 61, 32, 39, 41, 10,105,102, 32,
 31.2792 +   110,111,116, 32,116, 32, 97,110,100, 32,112,116,114, 61, 61,
 31.2793 +    39, 39, 32,116,104,101,110, 32,111,117,116,112,117,116, 40,
 31.2794 +    39, 42, 39, 41, 32,101,110,100, 10,111,117,116,112,117,116,
 31.2795 +    40, 39, 40, 40, 39, 44,115,101,108,102, 46,109,111,100, 44,
 31.2796 +   115,101,108,102, 46,116,121,112,101, 41, 10,105,102, 32,110,
 31.2797 +   111,116, 32,116, 32,116,104,101,110, 10,111,117,116,112,117,
 31.2798 +   116, 40, 39, 42, 39, 41, 10,101,110,100, 10,111,117,116,112,
 31.2799 +   117,116, 40, 39, 41, 32, 39, 41, 10,105,102, 32,116, 32,116,
 31.2800 +   104,101,110, 10,111,117,116,112,117,116, 40, 39,116,111,108,
 31.2801 +   117, 97, 95,116,111, 39, 46, 46,116, 44, 39, 40,116,111,108,
 31.2802 +   117, 97, 95, 83, 44, 50, 44, 39, 44,100,101,102, 44, 39, 41,
 31.2803 +    41, 59, 39, 41, 10,101,108,115,101, 10,111,117,116,112,117,
 31.2804 +   116, 40, 39,116,111,108,117, 97, 95,116,111,117,115,101,114,
 31.2805 +   116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44, 50, 44,
 31.2806 +    39, 44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10,101,110,
 31.2807 +   100, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39, 32,
 31.2808 +   114,101,116,117,114,110, 32, 48, 59, 39, 41, 10,111,117,116,
 31.2809 +   112,117,116, 40, 39,125, 39, 41, 10,111,117,116,112,117,116,
 31.2810 +    40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10,101,110,100,
 31.2811 +    10, 10,102,117,110, 99,116,105,111,110, 32, 99,108, 97,115,
 31.2812 +   115, 86, 97,114,105, 97, 98,108,101, 58,114,101,103,105,115,
 31.2813 +   116,101,114, 32, 40, 41, 10,108,111, 99, 97,108, 32,112, 97,
 31.2814 +   114,101,110,116, 32, 61, 32,115,101,108,102, 58,105,110,109,
 31.2815 +   111,100,117,108,101, 40, 41, 32,111,114, 32,115,101,108,102,
 31.2816 +    58,105,110,110, 97,109,101,115,112, 97, 99,101, 40, 41, 32,
 31.2817 +   111,114, 32,115,101,108,102, 58,105,110, 99,108, 97,115,115,
 31.2818 +    40, 41, 10,105,102, 32,110,111,116, 32,112, 97,114,101,110,
 31.2819 +   116, 32,116,104,101,110, 10,105,102, 32, 99,108, 97,115,115,
 31.2820 +    86, 97,114,105, 97, 98,108,101, 46, 95,119, 97,114,110,105,
 31.2821 +   110,103, 61, 61,110,105,108, 32,116,104,101,110, 10,119, 97,
 31.2822 +   114,110,105,110,103, 40, 34, 77, 97,112,112,105,110,103, 32,
 31.2823 +   118, 97,114,105, 97, 98,108,101, 32,116,111, 32,103,108,111,
 31.2824 +    98, 97,108, 32,109, 97,121, 32,100,101,103,114, 97,100,101,
 31.2825 +    32,112,101,114,102,111,114,109, 97,110, 99,101, 34, 41, 10,
 31.2826 +    99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 46, 95,
 31.2827 +   119, 97,114,110,105,110,103, 32, 61, 32, 49, 10,101,110,100,
 31.2828 +    10,101,110,100, 10,105,102, 32,115,101,108,102, 46, 99,115,
 31.2829 +   101,116,110, 97,109,101, 32,116,104,101,110, 10,111,117,116,
 31.2830 +   112,117,116, 40, 39, 32,116,111,108,117, 97, 95,118, 97,114,
 31.2831 +   105, 97, 98,108,101, 40,116,111,108,117, 97, 95, 83, 44, 34,
 31.2832 +    39, 46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46,
 31.2833 +    39, 34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,
 31.2834 +   110, 97,109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102,
 31.2835 +    46, 99,115,101,116,110, 97,109,101, 46, 46, 39, 41, 59, 39,
 31.2836 +    41, 10,101,108,115,101, 10,111,117,116,112,117,116, 40, 39,
 31.2837 +    32,116,111,108,117, 97, 95,118, 97,114,105, 97, 98,108,101,
 31.2838 +    40,116,111,108,117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,
 31.2839 +   108,102, 46,108,110, 97,109,101, 46, 46, 39, 34, 44, 39, 46,
 31.2840 +    46,115,101,108,102, 46, 99,103,101,116,110, 97,109,101, 46,
 31.2841 +    46, 39, 44, 78, 85, 76, 76, 41, 59, 39, 41, 10,101,110,100,
 31.2842 +    10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,111,110,
 31.2843 +    32, 95, 86, 97,114,105, 97, 98,108,101, 32, 40,116, 41, 10,
 31.2844 +   115,101,116,109,101,116, 97,116, 97, 98,108,101, 40,116, 44,
 31.2845 +    99,108, 97,115,115, 86, 97,114,105, 97, 98,108,101, 41, 10,
 31.2846 +    97,112,112,101,110,100, 40,116, 41, 10,114,101,116,117,114,
 31.2847 +   110, 32,116, 10,101,110,100, 10, 10, 10, 10,102,117,110, 99,
 31.2848 +   116,105,111,110, 32, 86, 97,114,105, 97, 98,108,101, 32, 40,
 31.2849 +   115, 41, 10,114,101,116,117,114,110, 32, 95, 86, 97,114,105,
 31.2850 +    97, 98,108,101, 32, 40, 68,101, 99,108, 97,114, 97,116,105,
 31.2851 +   111,110, 40,115, 44, 39,118, 97,114, 39, 41, 41, 10,101,110,
 31.2852 +   100,32
 31.2853 +  };
 31.2854 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
 31.2855 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
 31.2856 + } /* end of embedded lua code */
 31.2857 +
 31.2858 +
 31.2859 + { /* begin embedded lua code */
 31.2860 +  static unsigned char B[] = {
 31.2861 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
 31.2862 +    10, 99,108, 97,115,115, 65,114,114, 97,121, 32, 61, 32,123,
 31.2863 +    10,125, 10, 99,108, 97,115,115, 65,114,114, 97,121, 46, 95,
 31.2864 +    95,105,110,100,101,120, 32, 61, 32, 99,108, 97,115,115, 65,
 31.2865 +   114,114, 97,121, 10,115,101,116,109,101,116, 97,116, 97, 98,
 31.2866 +   108,101, 40, 99,108, 97,115,115, 65,114,114, 97,121, 44, 99,
 31.2867 +   108, 97,115,115, 68,101, 99,108, 97,114, 97,116,105,111,110,
 31.2868 +    41, 10, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,108,
 31.2869 +    97,115,115, 65,114,114, 97,121, 58,112,114,105,110,116, 32,
 31.2870 +    40,105,100,101,110,116, 44, 99,108,111,115,101, 41, 10,112,
 31.2871 +   114,105,110,116, 40,105,100,101,110,116, 46, 46, 34, 65,114,
 31.2872 +   114, 97,121,123, 34, 41, 10,112,114,105,110,116, 40,105,100,
 31.2873 +   101,110,116, 46, 46, 34, 32,109,111,100, 32, 61, 32, 39, 34,
 31.2874 +    46, 46,115,101,108,102, 46,109,111,100, 46, 46, 34, 39, 44,
 31.2875 +    34, 41, 10,112,114,105,110,116, 40,105,100,101,110,116, 46,
 31.2876 +    46, 34, 32,116,121,112,101, 32, 61, 32, 39, 34, 46, 46,115,
 31.2877 +   101,108,102, 46,116,121,112,101, 46, 46, 34, 39, 44, 34, 41,
 31.2878 +    10,112,114,105,110,116, 40,105,100,101,110,116, 46, 46, 34,
 31.2879 +    32,112,116,114, 32, 61, 32, 39, 34, 46, 46,115,101,108,102,
 31.2880 +    46,112,116,114, 46, 46, 34, 39, 44, 34, 41, 10,112,114,105,
 31.2881 +   110,116, 40,105,100,101,110,116, 46, 46, 34, 32,110, 97,109,
 31.2882 +   101, 32, 61, 32, 39, 34, 46, 46,115,101,108,102, 46,110, 97,
 31.2883 +   109,101, 46, 46, 34, 39, 44, 34, 41, 10,112,114,105,110,116,
 31.2884 +    40,105,100,101,110,116, 46, 46, 34, 32,100,101,102, 32, 61,
 31.2885 +    32, 39, 34, 46, 46,115,101,108,102, 46,100,101,102, 46, 46,
 31.2886 +    34, 39, 44, 34, 41, 10,112,114,105,110,116, 40,105,100,101,
 31.2887 +   110,116, 46, 46, 34, 32,100,105,109, 32, 61, 32, 39, 34, 46,
 31.2888 +    46,115,101,108,102, 46,100,105,109, 46, 46, 34, 39, 44, 34,
 31.2889 +    41, 10,112,114,105,110,116, 40,105,100,101,110,116, 46, 46,
 31.2890 +    34, 32,114,101,116, 32, 61, 32, 39, 34, 46, 46,115,101,108,
 31.2891 +   102, 46,114,101,116, 46, 46, 34, 39, 44, 34, 41, 10,112,114,
 31.2892 +   105,110,116, 40,105,100,101,110,116, 46, 46, 34,125, 34, 46,
 31.2893 +    46, 99,108,111,115,101, 41, 10,101,110,100, 10, 10, 10,102,
 31.2894 +   117,110, 99,116,105,111,110, 32, 99,108, 97,115,115, 65,114,
 31.2895 +   114, 97,121, 58,105,115,118, 97,114,105, 97, 98,108,101, 32,
 31.2896 +    40, 41, 10,114,101,116,117,114,110, 32,116,114,117,101, 10,
 31.2897 +   101,110,100, 10, 10, 10, 10,102,117,110, 99,116,105,111,110,
 31.2898 +    32, 99,108, 97,115,115, 65,114,114, 97,121, 58,103,101,116,
 31.2899 +   118, 97,108,117,101, 32, 40, 99,108, 97,115,115, 44,115,116,
 31.2900 +    97,116,105, 99, 41, 10,105,102, 32, 99,108, 97,115,115, 32,
 31.2901 +    97,110,100, 32,115,116, 97,116,105, 99, 32,116,104,101,110,
 31.2902 +    10,114,101,116,117,114,110, 32, 99,108, 97,115,115, 46, 46,
 31.2903 +    39, 58, 58, 39, 46, 46,115,101,108,102, 46,110, 97,109,101,
 31.2904 +    46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,101,120,
 31.2905 +    93, 39, 10,101,108,115,101,105,102, 32, 99,108, 97,115,115,
 31.2906 +    32,116,104,101,110, 10,114,101,116,117,114,110, 32, 39,115,
 31.2907 +   101,108,102, 45, 62, 39, 46, 46,115,101,108,102, 46,110, 97,
 31.2908 +   109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,
 31.2909 +   101,120, 93, 39, 10,101,108,115,101, 10,114,101,116,117,114,
 31.2910 +   110, 32,115,101,108,102, 46,110, 97,109,101, 46, 46, 39, 91,
 31.2911 +   116,111,108,117, 97, 95,105,110,100,101,120, 93, 39, 10,101,
 31.2912 +   110,100, 10,101,110,100, 10, 10, 10,102,117,110, 99,116,105,
 31.2913 +   111,110, 32, 99,108, 97,115,115, 65,114,114, 97,121, 58,115,
 31.2914 +   117,112, 99,111,100,101, 32, 40, 41, 10,108,111, 99, 97,108,
 31.2915 +    32, 99,108, 97,115,115, 32, 61, 32,115,101,108,102, 58,105,
 31.2916 +   110, 99,108, 97,115,115, 40, 41, 10, 10, 10,105,102, 32, 99,
 31.2917 +   108, 97,115,115, 32,116,104,101,110, 10,111,117,116,112,117,
 31.2918 +   116, 40, 34, 47, 42, 32,103,101,116, 32,102,117,110, 99,116,
 31.2919 +   105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,109,101,
 31.2920 +    44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34, 44, 99,
 31.2921 +   108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10,101,108,115,
 31.2922 +   101, 10,111,117,116,112,117,116, 40, 34, 47, 42, 32,103,101,
 31.2923 +   116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,115,101,
 31.2924 +   108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34, 41, 10,
 31.2925 +   101,110,100, 10,115,101,108,102, 46, 99,103,101,116,110, 97,
 31.2926 +   109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,110, 99,
 31.2927 +   110, 97,109,101, 40, 34,116,111,108,117, 97, 95,103,101,116,
 31.2928 +    34, 41, 10,111,117,116,112,117,116, 40, 34,115,116, 97,116,
 31.2929 +   105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46, 99,103,
 31.2930 +   101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95, 83,116,
 31.2931 +    97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41, 34, 41,
 31.2932 +    10,111,117,116,112,117,116, 40, 34,123, 34, 41, 10,111,117,
 31.2933 +   116,112,117,116, 40, 34, 32,105,110,116, 32,116,111,108,117,
 31.2934 +    97, 95,105,110,100,101,120, 59, 34, 41, 10, 10, 10,108,111,
 31.2935 +    99, 97,108, 32, 95, 44, 95, 44,115,116, 97,116,105, 99, 32,
 31.2936 +    61, 32,115,116,114,102,105,110,100, 40,115,101,108,102, 46,
 31.2937 +   109,111,100, 44, 39, 94, 37,115, 42, 40,115,116, 97,116,105,
 31.2938 +    99, 41, 39, 41, 10,105,102, 32, 99,108, 97,115,115, 32, 97,
 31.2939 +   110,100, 32,115,116, 97,116,105, 99, 61, 61,110,105,108, 32,
 31.2940 +   116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 32, 39,
 31.2941 +    44,115,101,108,102, 46,112, 97,114,101,110,116, 46,116,121,
 31.2942 +   112,101, 44, 39, 42, 39, 44, 39,115,101,108,102, 59, 39, 41,
 31.2943 +    10,111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,112,
 31.2944 +   117,115,104,115,116,114,105,110,103, 40,116,111,108,117, 97,
 31.2945 +    95, 83, 44, 34, 46,115,101,108,102, 34, 41, 59, 39, 41, 10,
 31.2946 +   111,117,116,112,117,116, 40, 39, 32,108,117, 97, 95,114, 97,
 31.2947 +   119,103,101,116, 40,116,111,108,117, 97, 95, 83, 44, 49, 41,
 31.2948 +    59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,115,101,
 31.2949 +   108,102, 32, 61, 32, 39, 41, 10,111,117,116,112,117,116, 40,
 31.2950 +    39, 40, 39, 44, 99,108, 97,115,115, 44, 39, 42, 41, 32, 39,
 31.2951 +    41, 10,111,117,116,112,117,116, 40, 39,108,117, 97, 95,116,
 31.2952 +   111,117,115,101,114,100, 97,116, 97, 40,116,111,108,117, 97,
 31.2953 +    95, 83, 44, 45, 49, 41, 59, 39, 41, 10,101,108,115,101,105,
 31.2954 +   102, 32,115,116, 97,116,105, 99, 32,116,104,101,110, 10, 95,
 31.2955 +    44, 95, 44,115,101,108,102, 46,109,111,100, 32, 61, 32,115,
 31.2956 +   116,114,102,105,110,100, 40,115,101,108,102, 46,109,111,100,
 31.2957 +    44, 39, 94, 37,115, 42,115,116, 97,116,105, 99, 37,115, 37,
 31.2958 +   115, 42, 40, 46, 42, 41, 39, 41, 10,101,110,100, 10, 10, 10,
 31.2959 +   111,117,116,112,117,116, 40, 39, 35,105,102,110,100,101,102,
 31.2960 +    32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65, 83, 69, 92,
 31.2961 +   110, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,123, 39,
 31.2962 +    41, 10,111,117,116,112,117,116, 40, 39, 32,116,111,108,117,
 31.2963 +    97, 95, 69,114,114,111,114, 32,116,111,108,117, 97, 95,101,
 31.2964 +   114,114, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39, 32,
 31.2965 +   105,102, 32, 40, 33,116,111,108,117, 97, 95,105,115,110,117,
 31.2966 +   109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44, 50, 44,
 31.2967 +    48, 44, 38,116,111,108,117, 97, 95,101,114,114, 41, 41, 39,
 31.2968 +    41, 10,111,117,116,112,117,116, 40, 39, 32,116,111,108,117,
 31.2969 +    97, 95,101,114,114,111,114, 40,116,111,108,117, 97, 95, 83,
 31.2970 +    44, 34, 35,118,105,110,118, 97,108,105,100, 32,116,121,112,
 31.2971 +   101, 32,105,110, 32, 97,114,114, 97,121, 32,105,110,100,101,
 31.2972 +   120,105,110,103, 46, 34, 44, 38,116,111,108,117, 97, 95,101,
 31.2973 +   114,114, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39,
 31.2974 +    32,125, 39, 41, 10,111,117,116,112,117,116, 40, 39, 35,101,
 31.2975 +   110,100,105,102, 92,110, 39, 41, 10,111,117,116,112,117,116,
 31.2976 +    40, 39, 32,116,111,108,117, 97, 95,105,110,100,101,120, 32,
 31.2977 +    61, 32, 40,105,110,116, 41,116,111,108,117, 97, 95,116,111,
 31.2978 +   110,117,109, 98,101,114, 40,116,111,108,117, 97, 95, 83, 44,
 31.2979 +    50, 44, 48, 41, 45, 49, 59, 39, 41, 10,111,117,116,112,117,
 31.2980 +   116, 40, 39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85,
 31.2981 +    65, 95, 82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10,111,
 31.2982 +   117,116,112,117,116, 40, 39, 32,105,102, 32, 40,116,111,108,
 31.2983 +   117, 97, 95,105,110,100,101,120, 60, 48, 32,124,124, 32,116,
 31.2984 +   111,108,117, 97, 95,105,110,100,101,120, 62, 61, 39, 46, 46,
 31.2985 +   115,101,108,102, 46,100,105,109, 46, 46, 39, 41, 39, 41, 10,
 31.2986 +   111,117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95,
 31.2987 +   101,114,114,111,114, 40,116,111,108,117, 97, 95, 83, 44, 34,
 31.2988 +    97,114,114, 97,121, 32,105,110,100,101,120,105,110,103, 32,
 31.2989 +   111,117,116, 32,111,102, 32,114, 97,110,103,101, 46, 34, 44,
 31.2990 +    78, 85, 76, 76, 41, 59, 39, 41, 10,111,117,116,112,117,116,
 31.2991 +    40, 39, 35,101,110,100,105,102, 92,110, 39, 41, 10, 10, 10,
 31.2992 +   108,111, 99, 97,108, 32,116, 44, 99,116, 32, 61, 32,105,115,
 31.2993 +    98, 97,115,105, 99, 40,115,101,108,102, 46,116,121,112,101,
 31.2994 +    41, 10,105,102, 32,116, 32,116,104,101,110, 10,111,117,116,
 31.2995 +   112,117,116, 40, 39, 32,116,111,108,117, 97, 95,112,117,115,
 31.2996 +   104, 39, 46, 46,116, 46, 46, 39, 40,116,111,108,117, 97, 95,
 31.2997 +    83, 44, 40, 39, 44, 99,116, 44, 39, 41, 39, 46, 46,115,101,
 31.2998 +   108,102, 58,103,101,116,118, 97,108,117,101, 40, 99,108, 97,
 31.2999 +   115,115, 44,115,116, 97,116,105, 99, 41, 46, 46, 39, 41, 59,
 31.3000 +    39, 41, 10,101,108,115,101, 10,116, 32, 61, 32,115,101,108,
 31.3001 +   102, 46,116,121,112,101, 10,105,102, 32,115,101,108,102, 46,
 31.3002 +   112,116,114, 32, 61, 61, 32, 39, 38, 39, 32,111,114, 32,115,
 31.3003 +   101,108,102, 46,112,116,114, 32, 61, 61, 32, 39, 39, 32,116,
 31.3004 +   104,101,110, 10,111,117,116,112,117,116, 40, 39, 32,116,111,
 31.3005 +   108,117, 97, 95,112,117,115,104,117,115,101,114,116,121,112,
 31.3006 +   101, 40,116,111,108,117, 97, 95, 83, 44, 40,118,111,105,100,
 31.3007 +    42, 41, 38, 39, 46, 46,115,101,108,102, 58,103,101,116,118,
 31.3008 +    97,108,117,101, 40, 99,108, 97,115,115, 44,115,116, 97,116,
 31.3009 +   105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116, 44, 39, 34, 41,
 31.3010 +    59, 39, 41, 10,101,108,115,101, 10,111,117,116,112,117,116,
 31.3011 +    40, 39, 32,116,111,108,117, 97, 95,112,117,115,104,117,115,
 31.3012 +   101,114,116,121,112,101, 40,116,111,108,117, 97, 95, 83, 44,
 31.3013 +    40,118,111,105,100, 42, 41, 39, 46, 46,115,101,108,102, 58,
 31.3014 +   103,101,116,118, 97,108,117,101, 40, 99,108, 97,115,115, 44,
 31.3015 +   115,116, 97,116,105, 99, 41, 46, 46, 39, 44, 34, 39, 44,116,
 31.3016 +    44, 39, 34, 41, 59, 39, 41, 10,101,110,100, 10,101,110,100,
 31.3017 +    10,111,117,116,112,117,116, 40, 39, 32,114,101,116,117,114,
 31.3018 +   110, 32, 49, 59, 39, 41, 10,111,117,116,112,117,116, 40, 39,
 31.3019 +   125, 39, 41, 10,111,117,116,112,117,116, 40, 39, 92,110, 39,
 31.3020 +    41, 10, 10, 10,105,102, 32,110,111,116, 32,115,116,114,102,
 31.3021 +   105,110,100, 40,115,101,108,102, 46,116,121,112,101, 44, 39,
 31.3022 +    99,111,110,115,116, 39, 41, 32,116,104,101,110, 10,105,102,
 31.3023 +    32, 99,108, 97,115,115, 32,116,104,101,110, 10,111,117,116,
 31.3024 +   112,117,116, 40, 34, 47, 42, 32,115,101,116, 32,102,117,110,
 31.3025 +    99,116,105,111,110, 58, 34, 44,115,101,108,102, 46,110, 97,
 31.3026 +   109,101, 44, 34, 32,111,102, 32, 99,108, 97,115,115, 32, 34,
 31.3027 +    44, 99,108, 97,115,115, 44, 34, 32, 42, 47, 34, 41, 10,101,
 31.3028 +   108,115,101, 10,111,117,116,112,117,116, 40, 34, 47, 42, 32,
 31.3029 +   115,101,116, 32,102,117,110, 99,116,105,111,110, 58, 34, 44,
 31.3030 +   115,101,108,102, 46,110, 97,109,101, 44, 34, 32, 42, 47, 34,
 31.3031 +    41, 10,101,110,100, 10,115,101,108,102, 46, 99,115,101,116,
 31.3032 +   110, 97,109,101, 32, 61, 32,115,101,108,102, 58, 99,102,117,
 31.3033 +   110, 99,110, 97,109,101, 40, 34,116,111,108,117, 97, 95,115,
 31.3034 +   101,116, 34, 41, 10,111,117,116,112,117,116, 40, 34,115,116,
 31.3035 +    97,116,105, 99, 32,105,110,116, 34, 44,115,101,108,102, 46,
 31.3036 +    99,115,101,116,110, 97,109,101, 44, 34, 40,108,117, 97, 95,
 31.3037 +    83,116, 97,116,101, 42, 32,116,111,108,117, 97, 95, 83, 41,
 31.3038 +    34, 41, 10,111,117,116,112,117,116, 40, 34,123, 34, 41, 10,
 31.3039 +    10, 10,111,117,116,112,117,116, 40, 39, 32,105,110,116, 32,
 31.3040 +   116,111,108,117, 97, 95,105,110,100,101,120, 59, 39, 41, 10,
 31.3041 +    10, 10,108,111, 99, 97,108, 32, 95, 44, 95, 44,115,116, 97,
 31.3042 +   116,105, 99, 32, 61, 32,115,116,114,102,105,110,100, 40,115,
 31.3043 +   101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42, 40,115,
 31.3044 +   116, 97,116,105, 99, 41, 39, 41, 10,105,102, 32, 99,108, 97,
 31.3045 +   115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 61, 61,
 31.3046 +   110,105,108, 32,116,104,101,110, 10,111,117,116,112,117,116,
 31.3047 +    40, 39, 32, 39, 44, 99,108, 97,115,115, 44, 39, 42, 39, 44,
 31.3048 +    39,115,101,108,102, 59, 39, 41, 10,111,117,116,112,117,116,
 31.3049 +    40, 39, 32,108,117, 97, 95,112,117,115,104,115,116,114,105,
 31.3050 +   110,103, 40,116,111,108,117, 97, 95, 83, 44, 34, 46,115,101,
 31.3051 +   108,102, 34, 41, 59, 39, 41, 10,111,117,116,112,117,116, 40,
 31.3052 +    39, 32,108,117, 97, 95,114, 97,119,103,101,116, 40,116,111,
 31.3053 +   108,117, 97, 95, 83, 44, 49, 41, 59, 39, 41, 10,111,117,116,
 31.3054 +   112,117,116, 40, 39, 32,115,101,108,102, 32, 61, 32, 39, 41,
 31.3055 +    10,111,117,116,112,117,116, 40, 39, 40, 39, 44, 99,108, 97,
 31.3056 +   115,115, 44, 39, 42, 41, 32, 39, 41, 10,111,117,116,112,117,
 31.3057 +   116, 40, 39,108,117, 97, 95,116,111,117,115,101,114,100, 97,
 31.3058 +   116, 97, 40,116,111,108,117, 97, 95, 83, 44, 45, 49, 41, 59,
 31.3059 +    39, 41, 10,101,108,115,101,105,102, 32,115,116, 97,116,105,
 31.3060 +    99, 32,116,104,101,110, 10, 95, 44, 95, 44,115,101,108,102,
 31.3061 +    46,109,111,100, 32, 61, 32,115,116,114,102,105,110,100, 40,
 31.3062 +   115,101,108,102, 46,109,111,100, 44, 39, 94, 37,115, 42,115,
 31.3063 +   116, 97,116,105, 99, 37,115, 37,115, 42, 40, 46, 42, 41, 39,
 31.3064 +    41, 10,101,110,100, 10, 10, 10,111,117,116,112,117,116, 40,
 31.3065 +    39, 35,105,102,110,100,101,102, 32, 84, 79, 76, 85, 65, 95,
 31.3066 +    82, 69, 76, 69, 65, 83, 69, 92,110, 39, 41, 10,111,117,116,
 31.3067 +   112,117,116, 40, 39, 32,123, 39, 41, 10,111,117,116,112,117,
 31.3068 +   116, 40, 39, 32,116,111,108,117, 97, 95, 69,114,114,111,114,
 31.3069 +    32,116,111,108,117, 97, 95,101,114,114, 59, 39, 41, 10,111,
 31.3070 +   117,116,112,117,116, 40, 39, 32,105,102, 32, 40, 33,116,111,
 31.3071 +   108,117, 97, 95,105,115,110,117,109, 98,101,114, 40,116,111,
 31.3072 +   108,117, 97, 95, 83, 44, 50, 44, 48, 44, 38,116,111,108,117,
 31.3073 +    97, 95,101,114,114, 41, 41, 39, 41, 10,111,117,116,112,117,
 31.3074 +   116, 40, 39, 32,116,111,108,117, 97, 95,101,114,114,111,114,
 31.3075 +    40,116,111,108,117, 97, 95, 83, 44, 34, 35,118,105,110,118,
 31.3076 +    97,108,105,100, 32,116,121,112,101, 32,105,110, 32, 97,114,
 31.3077 +   114, 97,121, 32,105,110,100,101,120,105,110,103, 46, 34, 44,
 31.3078 +    38,116,111,108,117, 97, 95,101,114,114, 41, 59, 39, 41, 10,
 31.3079 +   111,117,116,112,117,116, 40, 39, 32,125, 39, 41, 10,111,117,
 31.3080 +   116,112,117,116, 40, 39, 35,101,110,100,105,102, 92,110, 39,
 31.3081 +    41, 10,111,117,116,112,117,116, 40, 39, 32,116,111,108,117,
 31.3082 +    97, 95,105,110,100,101,120, 32, 61, 32, 40,105,110,116, 41,
 31.3083 +   116,111,108,117, 97, 95,116,111,110,117,109, 98,101,114, 40,
 31.3084 +   116,111,108,117, 97, 95, 83, 44, 50, 44, 48, 41, 45, 49, 59,
 31.3085 +    39, 41, 10,111,117,116,112,117,116, 40, 39, 35,105,102,110,
 31.3086 +   100,101,102, 32, 84, 79, 76, 85, 65, 95, 82, 69, 76, 69, 65,
 31.3087 +    83, 69, 92,110, 39, 41, 10,111,117,116,112,117,116, 40, 39,
 31.3088 +    32,105,102, 32, 40,116,111,108,117, 97, 95,105,110,100,101,
 31.3089 +   120, 60, 48, 32,124,124, 32,116,111,108,117, 97, 95,105,110,
 31.3090 +   100,101,120, 62, 61, 39, 46, 46,115,101,108,102, 46,100,105,
 31.3091 +   109, 46, 46, 39, 41, 39, 41, 10,111,117,116,112,117,116, 40,
 31.3092 +    39, 32,116,111,108,117, 97, 95,101,114,114,111,114, 40,116,
 31.3093 +   111,108,117, 97, 95, 83, 44, 34, 97,114,114, 97,121, 32,105,
 31.3094 +   110,100,101,120,105,110,103, 32,111,117,116, 32,111,102, 32,
 31.3095 +   114, 97,110,103,101, 46, 34, 44, 78, 85, 76, 76, 41, 59, 39,
 31.3096 +    41, 10,111,117,116,112,117,116, 40, 39, 35,101,110,100,105,
 31.3097 +   102, 92,110, 39, 41, 10, 10, 10,108,111, 99, 97,108, 32,112,
 31.3098 +   116,114, 32, 61, 32, 39, 39, 10,105,102, 32,115,101,108,102,
 31.3099 +    46,112,116,114,126, 61, 39, 39, 32,116,104,101,110, 32,112,
 31.3100 +   116,114, 32, 61, 32, 39, 42, 39, 32,101,110,100, 10,111,117,
 31.3101 +   116,112,117,116, 40, 39, 32, 39, 41, 10,105,102, 32, 99,108,
 31.3102 +    97,115,115, 32, 97,110,100, 32,115,116, 97,116,105, 99, 32,
 31.3103 +   116,104,101,110, 10,111,117,116,112,117,116, 40, 99,108, 97,
 31.3104 +   115,115, 46, 46, 39, 58, 58, 39, 46, 46,115,101,108,102, 46,
 31.3105 +   110, 97,109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,
 31.3106 +   110,100,101,120, 93, 39, 41, 10,101,108,115,101,105,102, 32,
 31.3107 +    99,108, 97,115,115, 32,116,104,101,110, 10,111,117,116,112,
 31.3108 +   117,116, 40, 39,115,101,108,102, 45, 62, 39, 46, 46,115,101,
 31.3109 +   108,102, 46,110, 97,109,101, 46, 46, 39, 91,116,111,108,117,
 31.3110 +    97, 95,105,110,100,101,120, 93, 39, 41, 10,101,108,115,101,
 31.3111 +    10,111,117,116,112,117,116, 40,115,101,108,102, 46,110, 97,
 31.3112 +   109,101, 46, 46, 39, 91,116,111,108,117, 97, 95,105,110,100,
 31.3113 +   101,120, 93, 39, 41, 10,101,110,100, 10,108,111, 99, 97,108,
 31.3114 +    32,116, 32, 61, 32,105,115, 98, 97,115,105, 99, 40,115,101,
 31.3115 +   108,102, 46,116,121,112,101, 41, 10,111,117,116,112,117,116,
 31.3116 +    40, 39, 32, 61, 32, 39, 41, 10,105,102, 32,110,111,116, 32,
 31.3117 +   116, 32, 97,110,100, 32,112,116,114, 61, 61, 39, 39, 32,116,
 31.3118 +   104,101,110, 32,111,117,116,112,117,116, 40, 39, 42, 39, 41,
 31.3119 +    32,101,110,100, 10,111,117,116,112,117,116, 40, 39, 40, 40,
 31.3120 +    39, 44,115,101,108,102, 46,109,111,100, 44,115,101,108,102,
 31.3121 +    46,116,121,112,101, 41, 10,105,102, 32,110,111,116, 32,116,
 31.3122 +    32,116,104,101,110, 10,111,117,116,112,117,116, 40, 39, 42,
 31.3123 +    39, 41, 10,101,110,100, 10,111,117,116,112,117,116, 40, 39,
 31.3124 +    41, 32, 39, 41, 10,108,111, 99, 97,108, 32,100,101,102, 32,
 31.3125 +    61, 32, 48, 10,105,102, 32,115,101,108,102, 46,100,101,102,
 31.3126 +    32,126, 61, 32, 39, 39, 32,116,104,101,110, 32,100,101,102,
 31.3127 +    32, 61, 32,115,101,108,102, 46,100,101,102, 32,101,110,100,
 31.3128 +    10,105,102, 32,116, 32,116,104,101,110, 10,111,117,116,112,
 31.3129 +   117,116, 40, 39,116,111,108,117, 97, 95,116,111, 39, 46, 46,
 31.3130 +   116, 44, 39, 40,116,111,108,117, 97, 95, 83, 44, 51, 44, 39,
 31.3131 +    44,100,101,102, 44, 39, 41, 41, 59, 39, 41, 10,101,108,115,
 31.3132 +   101, 10,111,117,116,112,117,116, 40, 39,116,111,108,117, 97,
 31.3133 +    95,116,111,117,115,101,114,116,121,112,101, 40,116,111,108,
 31.3134 +   117, 97, 95, 83, 44, 51, 44, 39, 44,100,101,102, 44, 39, 41,
 31.3135 +    41, 59, 39, 41, 10,101,110,100, 10,111,117,116,112,117,116,
 31.3136 +    40, 39, 32,114,101,116,117,114,110, 32, 48, 59, 39, 41, 10,
 31.3137 +   111,117,116,112,117,116, 40, 39,125, 39, 41, 10,111,117,116,
 31.3138 +   112,117,116, 40, 39, 92,110, 39, 41, 10,101,110,100, 10, 10,
 31.3139 +   101,110,100, 10, 10,102,117,110, 99,116,105,111,110, 32, 99,
 31.3140 +   108, 97,115,115, 65,114,114, 97,121, 58,114,101,103,105,115,
 31.3141 +   116,101,114, 32, 40, 41, 10,105,102, 32,115,101,108,102, 46,
 31.3142 +    99,115,101,116,110, 97,109,101, 32,116,104,101,110, 10,111,
 31.3143 +   117,116,112,117,116, 40, 39, 32,116,111,108,117, 97, 95, 97,
 31.3144 +   114,114, 97,121, 40,116,111,108,117, 97, 95, 83, 44, 34, 39,
 31.3145 +    46, 46,115,101,108,102, 46,108,110, 97,109,101, 46, 46, 39,
 31.3146 +    34, 44, 39, 46, 46,115,101,108,102, 46, 99,103,101,116,110,
 31.3147 +    97,109,101, 46, 46, 39, 44, 39, 46, 46,115,101,108,102, 46,
 31.3148 +    99,115,101,116,110, 97,109,101, 46, 46, 39, 41, 59, 39, 41,
 31.3149 +    10,101,108,115,101, 10,111,117,116,112,117,116, 40, 39, 32,
 31.3150 +   116,111,108,117, 97, 95, 97,114,114, 97,121, 40,116,111,108,
 31.3151 +   117, 97, 95, 83, 44, 34, 39, 46, 46,115,101,108,102, 46,108,
 31.3152 +   110, 97,109,101, 46, 46, 39, 34, 44, 39, 46, 46,115,101,108,
 31.3153 +   102, 46, 99,103,101,116,110, 97,109,101, 46, 46, 39, 44, 78,
 31.3154 +    85, 76, 76, 41, 59, 39, 41, 10,101,110,100, 10,101,110,100,
 31.3155 +    10, 10, 10,102,117,110, 99,116,105,111,110, 32, 95, 65,114,
 31.3156 +   114, 97,121, 32, 40,116, 41, 10,115,101,116,109,101,116, 97,
 31.3157 +   116, 97, 98,108,101, 40,116, 44, 99,108, 97,115,115, 65,114,
 31.3158 +   114, 97,121, 41, 10, 97,112,112,101,110,100, 40,116, 41, 10,
 31.3159 +   114,101,116,117,114,110, 32,116, 10,101,110,100, 10, 10, 10,
 31.3160 +    10,102,117,110, 99,116,105,111,110, 32, 65,114,114, 97,121,
 31.3161 +    32, 40,115, 41, 10,114,101,116,117,114,110, 32, 95, 65,114,
 31.3162 +   114, 97,121, 32, 40, 68,101, 99,108, 97,114, 97,116,105,111,
 31.3163 +   110, 40,115, 44, 39,118, 97,114, 39, 41, 41, 10,101,110,100,
 31.3164 +   32
 31.3165 +  };
 31.3166 +  luaL_loadbuffer(tolua_S,(char*)B,sizeof(B),"tolua: embedded Lua code") ||
 31.3167 +  lua_pcall(tolua_S,0,LUA_MULTRET,0);
 31.3168 + } /* end of embedded lua code */
 31.3169 +
 31.3170 +
 31.3171 + { /* begin embedded lua code */
 31.3172 +  static unsigned char B[] = {
 31.3173 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
 31.3174 +    10, 10, 10, 10, 10, 10, 10, 10, 10, 99,108, 97,115,115, 70,
 31.3175 +   117,110, 99,116,105,111,110, 32, 61, 32,123, 10,109,111,100,
 31.3176 +    32, 61, 32, 39, 39, 44, 10,116,121,112,101, 32, 61, 32, 39,
 31.3177 +    39, 44, 10,112,116,114, 32, 61, 32, 39, 39, 44, 10,110, 97,
 31.3178 +   109,101, 32, 61, 32, 39, 39, 44, 10, 97,114,103,115, 32, 61,
 31.3179 +    32,123,110, 61, 48,125, 44, 10, 99,111,110,115,116, 32, 61,
 31.3180 +    32, 39, 39, 44, 10,125, 10, 99,108, 97,115,115, 70,117,110,
 31.3181 +    99,116,105,111,110, 46, 95, 95,105,110,100,101,120, 32, 61,
 31.3182 +    32, 99,108, 97,115,115, 70,117,110, 99,116,105,111,110, 10,
 31.3183 +   115,101,116,109,101,116, 97,116, 97, 98,108,101, 40, 99,108,
 31.3184 +    97,115,115, 70,117,110, 99,116,105,111,110, 44, 99,108, 97,
 31.3185 +   115,115, 70,101, 97,116,117,114,101, 41, 10, 10, 10,102,117,
 31.3186 +   110, 99,116,105,111,110, 32, 99,108, 97,115,115, 70,117,110,
 31.3187 +    99,116,105,111,110, 58,100,101, 99,108,116,121,112,101, 32,
 31.3188 +    40, 41, 10,115,101,108,102, 46,116,121,112,101, 32, 61, 32,
 31.3189 +   116,121,112,101,118, 97,114, 40,115,101,108,102, 46,116,121,
 31.3190 +   112,101, 41, 10,105,102, 32,115,116,114,102,105,110,100, 40,
 31.3191 +   115,101,108,102, 46,109,111,100, 44, 39, 99,111,110,115,116,
 31.3192 +    39, 41, 32,116,104,101,110, 10,115,101,108,102, 46,116,121,
 31.3193 +   112,101, 32, 61, 32, 39, 99,111,110,115,116, 32, 39, 46, 46,