summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpixel <pixel>2008-07-04 12:03:00 +0000
committerpixel <pixel>2008-07-04 12:03:00 +0000
commit694d522362c2d7b8aac83e5b4b57c964f751204c (patch)
treea5a93d6b492563b6ec7db1209d5879734127208c
Adding project files.
-rw-r--r--Makefile174
-rw-r--r--Makefile.mingw32188
-rw-r--r--allmodules.lua13
-rw-r--r--lua-interface.lua407
-rw-r--r--src/lua-interface-hc.h483
-rw-r--r--src/lua-interface.cpp745
6 files changed, 2010 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..e6c1aaf
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,174 @@
+CC = gcc
+CXX = g++
+LD = g++
+STRIP = strip
+
+INCLUDES = \
+-I../mogltk/include \
+-I../Baltisot/include \
+-I../Baltisot/lib/zlib/include \
+-I../Baltisot/lib/lua/include -I../Baltisot/lib/lua/includes \
+-I../lua-modules/src \
+
+HAVES = -DHAVE_VSSCANF -DHAVE_LIBJPEG -DHAVE_FCNTL -DHAVE_MYSQL -DHAVE_UNISTD_H -DHAVE_FORK -DHAVE_PIPE -DHAVE_FSYNC -DHAVE_MALLOC_H -DHAVE_ASPRINTF -DHAVE_BYTESWAP_H
+
+CPPFLAGS += $(INCLUDES) -g -DSTDC_HEADERS -DREADLINE_STATIC -DHOOK_STDS -fexceptions -DWORDS_LITTLEENDIAN -fexceptions -march=i686 $(HAVES) -DUSE_MPQLIB
+
+LDFLAGS += -u gluNewTess -rdynamic -g -fexception -lpthread -ljpeg -lSegFault ../Mesa-7.0.2/lib/libGLU.a ../Mesa-7.0.2/lib/libOSMesa.a /usr/lib/libreadline.a /usr/lib/libncurses.a -lz -ldl
+
+vpath %.c ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml:../lua-modules/src
+vpath %.cc ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml:../lua-modules/src
+vpath %.cpp ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml:../lua-modules/src
+vpath %.lua ../Baltisot/lib:../Baltisot/src
+
+LUAINTERFACE_SOURCES = \
+lua-interface.cc \
+lua-plugin.cc \
+
+BALTISOT_SOURCES = \
+Main.cc \
+\
+Exceptions.cc \
+String.cc \
+Regex.cc \
+\
+Base64.cc \
+\
+Handle.cc \
+Input.cc \
+InPipe.cc \
+Output.cc \
+Buffer.cc \
+\
+ConfigFile.cc \
+\
+Socket.cc \
+\
+Task.cc \
+TaskMan.cc \
+ChainTasks.cc \
+CopyJob.cc \
+ReadJob.cc \
+HttpServ.cc \
+Action.cc \
+Domain.cc \
+HtmlSkinner.cc \
+Variables.cc \
+Message.cc \
+Form.cc \
+SocketClient.cc \
+HttpClient.cc \
+MailClient.cc \
+HashFunction.cc \
+\
+BLua.cc \
+LuaTask.cc \
+LuaHandle.cc \
+LuaCommandLine.cc \
+\
+fileutils.cc \
+generic.cc \
+checkargs.c \
+datecalc.c \
+\
+hashtab.c \
+recycle.c \
+lookupa.c \
+\
+md5.c \
+sha1.c \
+sha256.c \
+
+LUA_SOURCES = \
+lapi.c \
+lcode.c \
+ldebug.c \
+ldo.c \
+ldump.c \
+lfunc.c \
+lgc.c \
+llex.c \
+lmem.c \
+lobject.c \
+lopcodes.c \
+lparser.c \
+lstate.c \
+lstring.c \
+ltable.c \
+ltests.c \
+ltm.c \
+luacomp.c \
+lundump.c \
+lvm.c \
+lzio.c \
+lprint.c \
+\
+linit.c \
+lauxlib.c \
+loadlib.c \
+lbaselib.c \
+ldblib.c \
+ldirlib.c \
+liolib.c \
+loslib.c \
+lmathlib.c \
+lstrlib.c \
+ltablib.c \
+
+LUAC_SOURCES = \
+luac.cc \
+\
+Main.cc \
+Exceptions.cc \
+String.cc \
+\
+Handle.cc \
+Input.cc \
+Output.cc \
+Buffer.cc \
+\
+BLua.cc \
+\
+fileutils.cc \
+generic.cc \
+checkargs.c \
+datecalc.c \
+
+
+WHOLE_SOURCES = $(BALTISOT_SOURCES) $(LUA_SOURCES) $(LUAINTERFACE_SOURCES)
+
+LUAINTERFACE_OBJECTS = $(addsuffix .o, $(notdir $(basename $(LUAINTERFACE_SOURCES))))
+LUAC_OBJECTS = $(addsuffix .o, $(notdir $(basename $(LUAC_SOURCES) $(LUA_SOURCES))))
+
+ALL_OBJECTS = $(addsuffix .o, $(notdir $(basename $(WHOLE_SOURCES))))
+ALL_DEPS = $(addsuffix .dep, $(notdir $(basename $(WHOLE_SOURCES))))
+
+all: dep luac lua-interface
+
+dep: $(ALL_DEPS)
+
+luac: $(LUAC_OBJECTS)
+ $(LD) -o luac $(LUAC_OBJECTS) $(LDFLAGS)
+
+lua-interface: $(ALL_OBJECTS)
+ $(LD) -o lua-interface $(ALL_OBJECTS) $(LDFLAGS)
+
+clean:
+ rm -f lua-interface luac *.o *.dep
+
+%.dep : %.c
+ $(CC) $(CPPFLAGS) -M -MF $@ $<
+
+%.dep : %.cpp
+ $(CXX) $(CPPFLAGS) -M -MF $@ $<
+
+%.dep : %.cc
+ $(CXX) $(CPPFLAGS) -M -MF $@ $<
+
+%.c : %.clua
+ bin2c $< $@ $(basename $@)
+
+%.clua : %.lua
+ ./luac -o $@ $<
+
+-include $(ALL_DEPS)
diff --git a/Makefile.mingw32 b/Makefile.mingw32
new file mode 100644
index 0000000..522947c
--- /dev/null
+++ b/Makefile.mingw32
@@ -0,0 +1,188 @@
+CC = i586-mingw32msvc-gcc
+CXX = i586-mingw32msvc-g++
+LD = i586-mingw32msvc-g++
+STRIP = i586-mingw32msvc-strip
+
+INCLUDES = \
+-I../mogltk/include \
+-I../Baltisot/include \
+-I../Baltisot/lib/zlib/include \
+-I../Baltisot/lib/lua/include -I../Baltisot/lib/lua/includes \
+-I../lua-modules/src \
+-I../Baltisot/MSVC/iconv -I../Baltisot/MSVC/regex -I../Baltisot/MSVC \
+
+HAVES = -DHAVE_VSSCANF -DHAVE_LIBJPEG -DHAVE_MALLOC_H -DHAVE_BYTESWAP_H
+
+CPPFLAGS += $(INCLUDES) -g -fexceptions -DLUATASK_OMIT_COMMAND -DSTDC_HEADERS -DLIBICONV_PLUG -DREADLINE_STATIC -fexceptions -DWORDS_LITTLEENDIAN -march=i686 $(HAVES) -DUSE_MPQLIB
+
+LDFLAGS += -g -fexceptions -Wl,--enable-auto-image-base -Wl,--export-dynamic --export-all-symbols -Wl,--enable-auto-import -fexceptions ../libreadline-static.a ../libz.a -lwsock32 -lws2_32
+
+vpath %.c ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml:../lua-modules/src:../Baltisot/MSVC/iconv:../Baltisot/MSVC/regex
+vpath %.cc ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml:../lua-modules/src:../Baltisot/MSVC/iconv:../Baltisot/MSVC/regex
+vpath %.cpp ../Baltisot/lib:../Baltisot/src:../Baltisot/lib/zlib/src:../Baltisot/lib/lua/src:../Baltisot/lib/lua/src/LuaLib:src:../paperIdol/src:../mogltk/lib:../tinyxml:../lua-modules/src:../Baltisot/MSVC/iconv:../Baltisot/MSVC/regex
+vpath %.lua ../Baltisot/lib:../Baltisot/src
+
+LUAINTERFACE_SOURCES = \
+lua-interface.cc \
+lua-plugin.cc \
+
+BALTISOT_SOURCES = \
+Main.cc \
+\
+Exceptions.cc \
+String.cc \
+Regex.cc \
+\
+Base64.cc \
+\
+Handle.cc \
+Input.cc \
+Output.cc \
+Buffer.cc \
+\
+ConfigFile.cc \
+\
+Socket.cc \
+\
+Task.cc \
+TaskMan.cc \
+ChainTasks.cc \
+CopyJob.cc \
+ReadJob.cc \
+HttpServ.cc \
+Action.cc \
+Domain.cc \
+HtmlSkinner.cc \
+Variables.cc \
+Message.cc \
+Form.cc \
+SocketClient.cc \
+HttpClient.cc \
+MailClient.cc \
+HashFunction.cc \
+\
+BLua.cc \
+LuaTask.cc \
+LuaHandle.cc \
+LuaCommandLine.cc \
+\
+fileutils.cc \
+generic.cc \
+checkargs.c \
+datecalc.c \
+\
+hashtab.c \
+recycle.c \
+lookupa.c \
+\
+iconv.c \
+localcharset.c \
+relocatable.c \
+\
+msvc-regex.c \
+\
+md5.c \
+sha1.c \
+sha256.c \
+
+LUA_SOURCES = \
+lapi.c \
+lcode.c \
+ldebug.c \
+ldo.c \
+ldump.c \
+lfunc.c \
+lgc.c \
+llex.c \
+lmem.c \
+lobject.c \
+lopcodes.c \
+lparser.c \
+lstate.c \
+lstring.c \
+ltable.c \
+ltests.c \
+ltm.c \
+luacomp.c \
+lundump.c \
+lvm.c \
+lzio.c \
+lprint.c \
+\
+linit.c \
+lauxlib.c \
+loadlib.c \
+lbaselib.c \
+ldblib.c \
+ldirlib.c \
+liolib.c \
+loslib.c \
+lmathlib.c \
+lstrlib.c \
+ltablib.c \
+
+LUAC_SOURCES = \
+luac.cc \
+\
+Main.cc \
+Exceptions.cc \
+String.cc \
+\
+Handle.cc \
+Input.cc \
+Output.cc \
+Buffer.cc \
+\
+BLua.cc \
+\
+iconv.c \
+localcharset.c \
+relocatable.c \
+\
+fileutils.cc \
+generic.cc \
+checkargs.c \
+datecalc.c \
+
+
+WHOLE_SOURCES = $(BALTISOT_SOURCES) $(LUA_SOURCES) $(LUAINTERFACE_SOURCES)
+
+LUAINTERFACE_OBJECTS = $(addsuffix .o, $(notdir $(basename $(LUAINTERFACE_SOURCES))))
+LUAINTERFACE_DLL_OBJECTS = $(addsuffix .o, $(notdir $(basename $(BALTISOT_SOURCES) $(LUA_SOURCES))))
+LUAC_OBJECTS = $(addsuffix .o, $(notdir $(basename $(LUAC_SOURCES) $(LUA_SOURCES))))
+
+ALL_OBJECTS = $(addsuffix .o, $(notdir $(basename $(WHOLE_SOURCES))))
+ALL_DEPS = $(addsuffix .dep, $(notdir $(basename $(WHOLE_SOURCES))))
+
+all: dep luac.exe lua-interface.dll lua-interface.exe
+
+dep: $(ALL_DEPS)
+
+luac.exe: $(LUAC_OBJECTS)
+ $(LD) -o luac.exe $(LUAC_OBJECTS) $(LDFLAGS)
+
+lua-interface.dll: $(LUAINTERFACE_DLL_OBJECTS)
+ $(LD) -shared -Wl,--output-def=lua-interface.def -Wl,--out-implib=lua-interface.a -o lua-interface.dll $(LUAINTERFACE_DLL_OBJECTS) $(LDFLAGS)
+
+lua-interface.exe: $(LUAINTERFACE_OBJECTS)
+ $(LD) -o lua-interface.exe $(LUAINTERFACE_OBJECTS) ./lua-interface.a $(LDFLAGS)
+
+clean:
+ rm -f lua-interface.dll lua-interface.exe luac.exe *.o *.dep *.a *.def
+
+%.dep : %.c
+ $(CC) $(CPPFLAGS) -M -MF $@ $<
+
+%.dep : %.cpp
+ $(CXX) $(CPPFLAGS) -M -MF $@ $<
+
+%.dep : %.cc
+ $(CXX) $(CPPFLAGS) -M -MF $@ $<
+
+%.c : %.clua
+ bin2c $< $@ $(basename $@)
+
+%.clua : %.lua
+ ./luac -o $@ $<
+
+-include $(ALL_DEPS)
diff --git a/allmodules.lua b/allmodules.lua
new file mode 100644
index 0000000..6b1be8d
--- /dev/null
+++ b/allmodules.lua
@@ -0,0 +1,13 @@
+loadmodule "lualibs"
+loadmodule "luaconfigfiles"
+loadmodule "luagl"
+loadmodule "luaftgl"
+loadmodule "luahandle"
+loadmodule "luampqhandle"
+loadmodule "luatask"
+loadmodule "luahttp"
+loadmodule "luaocci"
+loadmodule "luapaperidol"
+loadmodule "luaregex"
+loadmodule "luasql"
+loadmodule "luaxml"
diff --git a/lua-interface.lua b/lua-interface.lua
new file mode 100644
index 0000000..d3e592e
--- /dev/null
+++ b/lua-interface.lua
@@ -0,0 +1,407 @@
+ ------------------
+-- misc functions --
+ ------------------
+
+function extract_file(source, dest, mode)
+ if (mode == nil) then
+ source = cdfile(source)
+ else
+ source = cdfile(source, mode)
+ end
+ dest = Output(dest)
+ source:copyto(dest)
+end
+
+function insert_file(source, dest, mode)
+ if (type(source) == "string") then
+ source = Input(source)
+ end
+ if (type(dest) == "string") then
+ dest = findpath(dest)
+ end
+ if (mode == nil) then
+ writefile(source, -1, dest.Sector)
+ else
+ writefile(source, -1, dest.Sector, mode)
+ end
+end
+
+function display(inp, n)
+ local i
+ if (type(inp) == "string") then
+ inp = Input(inp)
+ elseif (type(inp) ~= "table") then
+ error("Display needs a string or an Input object")
+ end
+
+ i = 0
+
+ while(not inp:isclosed()) do
+ i = i + 1
+ print(inp:read())
+ if ((n ~= nil) and (i >= n)) then
+ return
+ end
+ end
+end
+
+function pchar(n)
+ if (not ((n >= 32) and (n <= 127))) then
+ n = 46 -- aka '.' or 0x2e
+ end
+ return hex(n, "%c")
+end
+
+function hexdump(inp, from, to, width)
+ local size, nlines, remaining, data_array, line, byte, outstring
+
+ if (type(inp) == "string") then
+ inp = Input(inp)
+ elseif (type(inp) ~= "table") then
+ error("Hexdump needs a string or an Input object")
+ end
+
+ size = inp:getsize()
+
+ if (from == nil) then
+ from = 0
+ end
+
+ if (to == nil) then
+ to = size
+ end
+
+ if (to > size) then
+ to = size
+ end
+
+ size = to - from
+
+ if (width == nil) then
+ width = 16
+ end
+
+ nlines = math.floor(size / width)
+ remaining = math.mod(size, width)
+ inp:seek(from)
+ data_array = inp:read(size)
+
+ for line = 0, nlines - 1, 1 do
+ outstring = hex(line * width + from, "%08x ")
+ for byte = 0, width - 1, 1 do
+ outstring = outstring .. hex(data_array[line * 16 + byte]) .. " "
+ end
+ outstring = outstring .. " "
+ for byte = 0, width - 1, 1 do
+ outstring = outstring .. pchar(data_array[line * 16 + byte])
+ end
+ print(outstring)
+ end
+
+ if (remaining == 0) then
+ return
+ end
+
+ outstring = hex(nlines * width + from, "%08x ");
+ for byte = 0, remaining - 1, 1 do
+ outstring = outstring .. hex(data_array[nlines * 16 + byte]) .. " "
+ end
+ for byte = remaining + 1, width - 1, 1 do
+ outstring = outstring .. " "
+ end
+ outstring = outstring .. " "
+ for byte = 0, remaining - 1, 1 do
+ outstring = outstring .. pchar(data_array[nlines * 16 + byte])
+ end
+
+ print(outstring)
+end
+
+
+ --------------------------
+-- cdutil object wrappers --
+ --------------------------
+
+function check_cdutil()
+ if (cdutil == nil) then error "cdutil object non existant" end
+end
+
+function cdfile(arg1, arg2, arg3, arg4)
+ local cdutil_implied = false
+
+ if ((type(arg1) ~= "table") or (arg1.cdfile == nil)) then
+ check_cdutil()
+ cdutil_implied = true
+ if (type(arg1) == "string") then
+ arg1 = findpath(arg1)
+ end
+ else
+ if (type(arg2) == "string") then
+ arg2 = findpath(arg2)
+ end
+ end
+
+ if ((arg2 == nil) and (arg3 == nil) and (arg4 == nil)) then
+ return cdutil:cdfile(arg1)
+ elseif ((arg3 == nil) and (arg4 == nil)) then
+ if (cdutil_implied) then
+ return cdutil:cdfile(arg1, arg2)
+ else
+ return arg1:cdfile(arg2)
+ end
+ elseif (arg4 == nil) then
+ if (cdutil_implied) then
+ return cdutil:cdfile(arg1, arg2, arg3)
+ else
+ return arg1:cdfile(arg2, arg3)
+ end
+ else
+ return arg1:cdfile(arg2, arg3, arg4)
+ end
+end
+
+function setisow(iso_w)
+ check_cdutil()
+ return cdutil:setisow(iso_w)
+end
+
+function guessmode(sect)
+ check_cdutil()
+ if (sect == nil) then
+ return cdutil:guessmode()
+ else
+ return cdutil:guessmode(sect)
+ end
+end
+
+function sectorseek(sect)
+ check_cdutil()
+ return cdutil:sectorseek(sect)
+end
+
+function readsector(sect, mode)
+ check_cdutil()
+ if (sect == nil) then
+ return cdutil:readsector()
+ elseif (mode == nil) then
+ return cdutil:readsector(sect)
+ else
+ return cdutil:readsector(sect, mode)
+ end
+end
+
+function readdatas(size, sector, mode)
+ check_cdutil()
+ if (sect == nil) then
+ return cdutil:readdatas(size)
+ elseif (mode == nil) then
+ return cdutil:readdatas(size, sect)
+ else
+ return cdutil:readdatas(size, sect, mode)
+ end
+end
+
+function readfile(handle, size, sector, mode)
+ check_cdutil()
+ if (sect == nil) then
+ return cdutil:readfile(handle, size)
+ elseif (mode == nil) then
+ return cdutil:readfile(handle, size, sect)
+ else
+ return cdutil:readfile(handle, size, sect, mode)
+ end
+end
+
+function writesector(array, sector, mode)
+ check_cdutil()
+ if (sector == nil) then
+ return cdutil:writesector(array, sector)
+ elseif (mode == nil) then
+ return cdutil:writesector(array, sector, mode)
+ end
+end
+
+function writedatas(array, size, sector, mode)
+ check_cdutil()
+ if (sector == nil) then
+ return cdutil:writedatas(array, size)
+ elseif (mode == nil) then
+ return cdutil:writedatas(array, size, sector)
+ else
+ return cdutil:writedatas(array, size, sector, mode)
+ end
+end
+
+function writefile(handle, size, sector, mode)
+ check_cdutil()
+ if (size == nil) then
+ return cdutil:writefile(handle)
+ elseif (sector == nil) then
+ return cdutil:writefile(handle, size)
+ elseif (mode == nil) then
+ return cdutil:writefile(handle, size, sector)
+ else
+ return cdutil:writefile(handle, size, sector, mode)
+ end
+end
+
+function findpath(path)
+ check_cdutil()
+ if (findpath == nil) then
+ return cdutil:findpath "/"
+ else
+ return cdutil:findpath(path)
+ end
+end
+
+function findparent(path)
+ check_cdutil()
+ return cdutil:findparent(path)
+end
+
+function finddirectory(dir, path)
+ check_cdutil()
+ return cdutil:finddirectory(dir, path)
+end
+
+
+ -----------------------
+-- iso object wrappers --
+ -----------------------
+
+function check_iso()
+ if (iso == nil) then error "iso object non existant" end
+end
+
+function foreword(lcdutil)
+ check_iso()
+ if ((lcdutil == nil) and (cdutil == nil)) then error "cdutil object non existant" end
+ if (lcdutil == nil) then
+ return iso:foreword(cdutil)
+ else
+ return iso:foreword(lcdutil)
+ end
+end
+
+function foreword_handle(handle, mode)
+ check_iso()
+ if (mode == nil) then
+ return iso:foreword_handle(handle)
+ else
+ return iso:foreword_handle(handle, mode)
+ end
+end
+
+function foreword_array(array, mode)
+ check_iso()
+ if (mode == nil) then
+ return iso:foreword_array(array)
+ else
+ return iso:foreword_array(array, mode)
+ end
+end
+
+function getdispsect()
+ check_iso()
+ return iso:getdispsect()
+end
+
+function putfile(handle, mode, sector)
+ check_iso()
+ if (mode == nil) then
+ iso:putfile(handle)
+ elseif (sector == nil) then
+ iso:putfile(handle, mode)
+ else
+ iso:putfile(handle, mode, sector)
+ end
+end
+
+function putdatas(array, size, mode, sector)
+ check_iso()
+ if (mode == nil) then
+ iso:putdatas(array, size)
+ elseif (sector == nil) then
+ iso:putdatas(array, size, mode)
+ else
+ iso:putdatas(array, size, mode, sector)
+ end
+end
+
+function createsector(array, mode, sector)
+ check_iso()
+ if (mode == nil) then
+ iso:createsector(array)
+ elseif (sector == nil) then
+ iso:createsector(array, mode)
+ else
+ iso:createsector(array, mode, sector)
+ end
+end
+
+function setEOF()
+ check_iso()
+ iso:setEOF()
+end
+
+function clearEOF()
+ check_iso()
+ iso:clearEOF()
+end
+
+function setbasics(pvd, rootsize, ptsize, nvd, rootsect)
+ check_iso()
+ if (rootsize == nil) then
+ iso:setbasics(pvd)
+ elseif (ptsize == nil) then
+ iso:setbasics(pvd, rootsize)
+ elseif (nvd == nil) then
+ iso:setbasics(pvd, rootsize, ptsize)
+ elseif (rootsect) then
+ iso:setbasics(pvd, rootsize, ptsize, nvd)
+ else
+ iso:setbasics(pvd, rootsize, ptsize, nvd, rootsect)
+ end
+end
+
+function createdir(dirtree, name, size, direntry, mode)
+ check_iso()
+ if (size == nil) then
+ iso:createdir(dirtree, name)
+ elseif (mode == nil) then
+ iso:createdir(dirtree, name, size, direntry)
+ else
+ iso:createdir(dirtree, name, size, direntry, mode)
+ end
+end
+
+function createfile(dirtree, name, size, direntry, mode)
+ check_iso()
+ if (mode == nil) then
+ iso:createfile(dirtree, name, size, direntry)
+ else
+ iso:createfile(dirtree, name, size, direntry, mode)
+ end
+end
+
+function copydir(dirtree, cdutils, direntry, mode)
+ check_iso()
+ if (mode == nil) then
+ iso:copydir(dirtree, cdutils, direntry)
+ else
+ iso:copydir(dirtree, cdutils, direntry, mode)
+ end
+end
+
+function close(cuefile, mode, nsectors)
+ check_iso()
+ if (cuefile == nil) then
+ iso:close()
+ elseif (mode == nil) then
+ iso:close(cuefile)
+ elseif (nsectors == nil) then
+ iso:close(cuefile, mode)
+ else
+ iso:close(cuefile, mode, nsectors)
+ end
+end
diff --git a/src/lua-interface-hc.h b/src/lua-interface-hc.h
new file mode 100644
index 0000000..dc399dd
--- /dev/null
+++ b/src/lua-interface-hc.h
@@ -0,0 +1,483 @@
+unsigned int lua_interface_lua_size = 7678;
+unsigned char lua_interface_lua[] = {
+ 0x1b, 0x4c, 0x75, 0x61, 0x51, 0x00, 0x01, 0x04, 0x04, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x45, 0x00, 0x00, 0x00,
+ 0x24, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x24, 0x40, 0x00, 0x00, 0x07, 0x40, 0x00, 0x00,
+ 0x24, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x24, 0xc0, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00,
+ 0x24, 0x00, 0x01, 0x00, 0x07, 0x00, 0x01, 0x00, 0x24, 0x40, 0x01, 0x00, 0x07, 0x40, 0x01, 0x00,
+ 0x24, 0x80, 0x01, 0x00, 0x07, 0x80, 0x01, 0x00, 0x24, 0xc0, 0x01, 0x00, 0x07, 0xc0, 0x01, 0x00,
+ 0x24, 0x00, 0x02, 0x00, 0x07, 0x00, 0x02, 0x00, 0x24, 0x40, 0x02, 0x00, 0x07, 0x40, 0x02, 0x00,
+ 0x24, 0x80, 0x02, 0x00, 0x07, 0x80, 0x02, 0x00, 0x24, 0xc0, 0x02, 0x00, 0x07, 0xc0, 0x02, 0x00,
+ 0x24, 0x00, 0x03, 0x00, 0x07, 0x00, 0x03, 0x00, 0x24, 0x40, 0x03, 0x00, 0x07, 0x40, 0x03, 0x00,
+ 0x24, 0x80, 0x03, 0x00, 0x07, 0x80, 0x03, 0x00, 0x24, 0xc0, 0x03, 0x00, 0x07, 0xc0, 0x03, 0x00,
+ 0x24, 0x00, 0x04, 0x00, 0x07, 0x00, 0x04, 0x00, 0x24, 0x40, 0x04, 0x00, 0x07, 0x40, 0x04, 0x00,
+ 0x24, 0x80, 0x04, 0x00, 0x07, 0x80, 0x04, 0x00, 0x24, 0xc0, 0x04, 0x00, 0x07, 0xc0, 0x04, 0x00,
+ 0x24, 0x00, 0x05, 0x00, 0x07, 0x00, 0x05, 0x00, 0x24, 0x40, 0x05, 0x00, 0x07, 0x40, 0x05, 0x00,
+ 0x24, 0x80, 0x05, 0x00, 0x07, 0x80, 0x05, 0x00, 0x24, 0xc0, 0x05, 0x00, 0x07, 0xc0, 0x05, 0x00,
+ 0x24, 0x00, 0x06, 0x00, 0x07, 0x00, 0x06, 0x00, 0x24, 0x40, 0x06, 0x00, 0x07, 0x40, 0x06, 0x00,
+ 0x24, 0x80, 0x06, 0x00, 0x07, 0x80, 0x06, 0x00, 0x24, 0xc0, 0x06, 0x00, 0x07, 0xc0, 0x06, 0x00,
+ 0x24, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x24, 0x40, 0x07, 0x00, 0x07, 0x40, 0x07, 0x00,
+ 0x24, 0x80, 0x07, 0x00, 0x07, 0x80, 0x07, 0x00, 0x24, 0xc0, 0x07, 0x00, 0x07, 0xc0, 0x07, 0x00,
+ 0x24, 0x00, 0x08, 0x00, 0x07, 0x00, 0x08, 0x00, 0x24, 0x40, 0x08, 0x00, 0x07, 0x40, 0x08, 0x00,
+ 0x1e, 0x00, 0x80, 0x00, 0x22, 0x00, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x65, 0x78, 0x74,
+ 0x72, 0x61, 0x63, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x69,
+ 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00,
+ 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x70, 0x63, 0x68,
+ 0x61, 0x72, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x68, 0x65, 0x78, 0x64, 0x75, 0x6d, 0x70, 0x00,
+ 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63, 0x64, 0x75, 0x74, 0x69,
+ 0x6c, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x04, 0x08,
+ 0x00, 0x00, 0x00, 0x73, 0x65, 0x74, 0x69, 0x73, 0x6f, 0x77, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00,
+ 0x67, 0x75, 0x65, 0x73, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x00, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x73,
+ 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x65, 0x65, 0x6b, 0x00, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x72,
+ 0x65, 0x61, 0x64, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x72,
+ 0x65, 0x61, 0x64, 0x64, 0x61, 0x74, 0x61, 0x73, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x72, 0x65,
+ 0x61, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x77, 0x72, 0x69, 0x74,
+ 0x65, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x00, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x77, 0x72, 0x69,
+ 0x74, 0x65, 0x64, 0x61, 0x74, 0x61, 0x73, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x77, 0x72, 0x69,
+ 0x74, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x66, 0x69, 0x6e, 0x64,
+ 0x70, 0x61, 0x74, 0x68, 0x00, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x66, 0x69, 0x6e, 0x64, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x00, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x66, 0x69, 0x6e, 0x64, 0x64, 0x69,
+ 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65,
+ 0x63, 0x6b, 0x5f, 0x69, 0x73, 0x6f, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x66, 0x6f, 0x72, 0x65,
+ 0x77, 0x6f, 0x72, 0x64, 0x00, 0x04, 0x10, 0x00, 0x00, 0x00, 0x66, 0x6f, 0x72, 0x65, 0x77, 0x6f,
+ 0x72, 0x64, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x00, 0x04, 0x0f, 0x00, 0x00, 0x00, 0x66,
+ 0x6f, 0x72, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x00, 0x04, 0x0c,
+ 0x00, 0x00, 0x00, 0x67, 0x65, 0x74, 0x64, 0x69, 0x73, 0x70, 0x73, 0x65, 0x63, 0x74, 0x00, 0x04,
+ 0x08, 0x00, 0x00, 0x00, 0x70, 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x04, 0x09, 0x00, 0x00,
+ 0x00, 0x70, 0x75, 0x74, 0x64, 0x61, 0x74, 0x61, 0x73, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x00, 0x04, 0x07, 0x00, 0x00,
+ 0x00, 0x73, 0x65, 0x74, 0x45, 0x4f, 0x46, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x63, 0x6c, 0x65,
+ 0x61, 0x72, 0x45, 0x4f, 0x46, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x73, 0x65, 0x74, 0x62, 0x61,
+ 0x73, 0x69, 0x63, 0x73, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x64, 0x69, 0x72, 0x00, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x66,
+ 0x69, 0x6c, 0x65, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x70, 0x79, 0x64, 0x69, 0x72,
+ 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x00, 0x22, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06,
+ 0x14, 0x00, 0x00, 0x00, 0x17, 0x00, 0x40, 0x01, 0x16, 0x00, 0x01, 0x80, 0xc5, 0x40, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0xdc, 0x80, 0x00, 0x01, 0x00, 0x00, 0x80, 0x01, 0x16, 0x00, 0x01, 0x80,
+ 0xc5, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x01, 0xdc, 0x80, 0x80, 0x01,
+ 0x00, 0x00, 0x80, 0x01, 0xc5, 0x80, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0xdc, 0x80, 0x00, 0x01,
+ 0x40, 0x00, 0x80, 0x01, 0xcb, 0xc0, 0x40, 0x00, 0x40, 0x01, 0x80, 0x00, 0xdc, 0x40, 0x80, 0x01,
+ 0x1e, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64,
+ 0x66, 0x69, 0x6c, 0x65, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74,
+ 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x70, 0x79, 0x74, 0x6f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x0f, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0x21, 0x00, 0x00,
+ 0x00, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xdc, 0x80, 0x00, 0x01, 0x17, 0x40, 0xc0,
+ 0x01, 0x16, 0xc0, 0x00, 0x80, 0xc5, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xdc, 0x80, 0x00,
+ 0x01, 0x00, 0x00, 0x80, 0x01, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0xdc, 0x80, 0x00,
+ 0x01, 0x17, 0x40, 0xc0, 0x01, 0x16, 0xc0, 0x00, 0x80, 0xc5, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x80,
+ 0x00, 0xdc, 0x80, 0x00, 0x01, 0x40, 0x00, 0x80, 0x01, 0x17, 0x00, 0x41, 0x01, 0x16, 0x40, 0x01,
+ 0x80, 0xc5, 0x40, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x41, 0x81, 0x01, 0x00, 0x86, 0xc1, 0xc1,
+ 0x00, 0xdc, 0x40, 0x00, 0x02, 0x16, 0x40, 0x01, 0x80, 0xc5, 0x40, 0x01, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x41, 0x81, 0x01, 0x00, 0x86, 0xc1, 0xc1, 0x00, 0xc0, 0x01, 0x00, 0x01, 0xdc, 0x40, 0x80,
+ 0x02, 0x1e, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x05, 0x00, 0x00, 0x00, 0x74, 0x79,
+ 0x70, 0x65, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x00, 0x04,
+ 0x06, 0x00, 0x00, 0x00, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x66,
+ 0x69, 0x6e, 0x64, 0x70, 0x61, 0x74, 0x68, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x77, 0x72,
+ 0x69, 0x74, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
+ 0xbf, 0x04, 0x07, 0x00, 0x00, 0x00, 0x53, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x1d, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x23, 0x00, 0x00,
+ 0x00, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xdc, 0x80, 0x00, 0x01, 0x17, 0x40, 0xc0,
+ 0x01, 0x16, 0x00, 0x01, 0x80, 0xc5, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xdc, 0x80, 0x00,
+ 0x01, 0x00, 0x00, 0x80, 0x01, 0x16, 0xc0, 0x01, 0x80, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0xdc, 0x80, 0x00, 0x01, 0x57, 0xc0, 0xc0, 0x01, 0x16, 0x80, 0x00, 0x80, 0xc5, 0x00, 0x01,
+ 0x00, 0x01, 0x41, 0x01, 0x00, 0xdc, 0x40, 0x00, 0x01, 0x81, 0x80, 0x01, 0x00, 0xcb, 0xc0, 0x41,
+ 0x00, 0xdc, 0x80, 0x00, 0x01, 0xda, 0x40, 0x00, 0x00, 0x16, 0x80, 0x02, 0x80, 0x8c, 0x00, 0x42,
+ 0x01, 0xc5, 0x40, 0x02, 0x00, 0x0b, 0x81, 0x42, 0x00, 0x1c, 0x01, 0x00, 0x01, 0xdc, 0x40, 0x00,
+ 0x00, 0x57, 0xc0, 0xc2, 0x00, 0x16, 0x00, 0xfd, 0x7f, 0x19, 0x80, 0x80, 0x00, 0x16, 0x80, 0xfc,
+ 0x7f, 0x1e, 0x00, 0x80, 0x00, 0x16, 0x00, 0xfc, 0x7f, 0x1e, 0x00, 0x80, 0x00, 0x0c, 0x00, 0x00,
+ 0x00, 0x04, 0x05, 0x00, 0x00, 0x00, 0x74, 0x79, 0x70, 0x65, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00,
+ 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x49, 0x6e, 0x70, 0x75,
+ 0x74, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x00, 0x04, 0x06, 0x00,
+ 0x00, 0x00, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x00, 0x04, 0x2a, 0x00, 0x00, 0x00, 0x44, 0x69, 0x73,
+ 0x70, 0x6c, 0x61, 0x79, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72,
+ 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x09, 0x00, 0x00, 0x00, 0x69, 0x73, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x04, 0x06, 0x00, 0x00, 0x00, 0x70, 0x72, 0x69, 0x6e,
+ 0x74, 0x00, 0x04, 0x05, 0x00, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x30, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x0b, 0x00, 0x00,
+ 0x00, 0x19, 0x00, 0x00, 0x80, 0x16, 0x40, 0x00, 0x80, 0x59, 0x40, 0x40, 0x00, 0x16, 0x00, 0x00,
+ 0x80, 0x01, 0x80, 0x00, 0x00, 0x45, 0xc0, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x01,
+ 0x00, 0x5d, 0x00, 0x80, 0x01, 0x5e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xc0, 0x5f, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x40, 0x04, 0x04, 0x00, 0x00,
+ 0x00, 0x68, 0x65, 0x78, 0x00, 0x04, 0x03, 0x00, 0x00, 0x00, 0x25, 0x63, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x37, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x16, 0x8f, 0x00, 0x00,
+ 0x00, 0xc5, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xdc, 0x82, 0x00, 0x01, 0x17, 0x40, 0xc0,
+ 0x05, 0x16, 0x00, 0x01, 0x80, 0xc5, 0x82, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xdc, 0x82, 0x00,
+ 0x01, 0x00, 0x00, 0x80, 0x05, 0x16, 0xc0, 0x01, 0x80, 0xc5, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0xdc, 0x82, 0x00, 0x01, 0x57, 0xc0, 0xc0, 0x05, 0x16, 0x80, 0x00, 0x80, 0xc5, 0x02, 0x01,
+ 0x00, 0x01, 0x43, 0x01, 0x00, 0xdc, 0x42, 0x00, 0x01, 0xcb, 0x82, 0x41, 0x00, 0xdc, 0x82, 0x00,
+ 0x01, 0x00, 0x01, 0x80, 0x05, 0x17, 0xc0, 0xc1, 0x00, 0x16, 0x00, 0x00, 0x80, 0x41, 0x00, 0x02,
+ 0x00, 0x17, 0xc0, 0x41, 0x01, 0x16, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x02, 0x18, 0x80, 0x00,
+ 0x02, 0x16, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x02, 0x0d, 0x41, 0x00, 0x01, 0x17, 0xc0, 0xc1,
+ 0x01, 0x16, 0x00, 0x00, 0x80, 0xc1, 0x40, 0x02, 0x00, 0xc5, 0x82, 0x02, 0x00, 0xc6, 0xc2, 0xc2,
+ 0x05, 0x0f, 0xc3, 0x00, 0x02, 0xdc, 0x82, 0x00, 0x01, 0x40, 0x01, 0x80, 0x05, 0xc5, 0x82, 0x02,
+ 0x00, 0xc6, 0x02, 0xc3, 0x05, 0x00, 0x03, 0x00, 0x02, 0x40, 0x03, 0x80, 0x01, 0xdc, 0x82, 0x80,
+ 0x01, 0x80, 0x01, 0x80, 0x05, 0xcb, 0x42, 0x43, 0x00, 0x40, 0x03, 0x80, 0x00, 0xdc, 0x42, 0x80,
+ 0x01, 0xcb, 0x82, 0x43, 0x00, 0x40, 0x03, 0x00, 0x02, 0xdc, 0x82, 0x80, 0x01, 0xc0, 0x01, 0x80,
+ 0x05, 0xc1, 0x02, 0x02, 0x00, 0x0d, 0xc3, 0xc3, 0x02, 0x41, 0xc3, 0x03, 0x00, 0xe0, 0x02, 0x09,
+ 0x80, 0xc5, 0x03, 0x04, 0x00, 0x0e, 0xc4, 0x00, 0x07, 0x0c, 0x44, 0x00, 0x08, 0x41, 0x44, 0x04,
+ 0x00, 0xdc, 0x83, 0x80, 0x01, 0x80, 0x02, 0x80, 0x07, 0xc1, 0x03, 0x02, 0x00, 0x0d, 0xc4, 0xc3,
+ 0x01, 0x41, 0xc4, 0x03, 0x00, 0xe0, 0xc3, 0x01, 0x80, 0xc0, 0x04, 0x00, 0x05, 0x05, 0x05, 0x04,
+ 0x00, 0x4e, 0x45, 0x42, 0x07, 0x4c, 0x85, 0x84, 0x0a, 0x46, 0x45, 0x85, 0x03, 0x1c, 0x85, 0x00,
+ 0x01, 0x41, 0x85, 0x04, 0x00, 0x95, 0x42, 0x85, 0x09, 0xdf, 0x83, 0xfd, 0x7f, 0xc0, 0x03, 0x00,
+ 0x05, 0x01, 0xc4, 0x04, 0x00, 0x95, 0x02, 0x84, 0x07, 0xc1, 0x03, 0x02, 0x00, 0x0d, 0xc4, 0xc3,
+ 0x01, 0x41, 0xc4, 0x03, 0x00, 0xe0, 0x83, 0x01, 0x80, 0xc0, 0x04, 0x00, 0x05, 0x05, 0x05, 0x05,
+ 0x00, 0x4e, 0x45, 0x42, 0x07, 0x4c, 0x85, 0x84, 0x0a, 0x46, 0x45, 0x85, 0x03, 0x1c, 0x85, 0x00,
+ 0x01, 0x95, 0x02, 0x85, 0x09, 0xdf, 0xc3, 0xfd, 0x7f, 0xc5, 0x43, 0x05, 0x00, 0x00, 0x04, 0x00,
+ 0x05, 0xdc, 0x43, 0x00, 0x01, 0xdf, 0x42, 0xf6, 0x7f, 0x17, 0x00, 0x42, 0x03, 0x16, 0x00, 0x00,
+ 0x80, 0x1e, 0x00, 0x80, 0x00, 0xc5, 0x02, 0x04, 0x00, 0x0e, 0xc3, 0x80, 0x02, 0x0c, 0x43, 0x00,
+ 0x06, 0x41, 0x43, 0x04, 0x00, 0xdc, 0x82, 0x80, 0x01, 0x80, 0x02, 0x80, 0x05, 0xc1, 0x02, 0x02,
+ 0x00, 0x0d, 0xc3, 0x43, 0x03, 0x41, 0xc3, 0x03, 0x00, 0xe0, 0xc2, 0x01, 0x80, 0xc0, 0x03, 0x00,
+ 0x05, 0x05, 0x04, 0x04, 0x00, 0x4e, 0x44, 0xc2, 0x02, 0x4c, 0x84, 0x83, 0x08, 0x46, 0x44, 0x84,
+ 0x03, 0x1c, 0x84, 0x00, 0x01, 0x41, 0x84, 0x04, 0x00, 0x95, 0x42, 0x84, 0x07, 0xdf, 0x82, 0xfd,
+ 0x7f, 0xcc, 0xc2, 0x43, 0x03, 0x0d, 0xc3, 0xc3, 0x01, 0x41, 0xc3, 0x03, 0x00, 0xe0, 0x82, 0x00,
+ 0x80, 0xc0, 0x03, 0x00, 0x05, 0x01, 0x84, 0x05, 0x00, 0x95, 0x02, 0x84, 0x07, 0xdf, 0xc2, 0xfe,
+ 0x7f, 0xc0, 0x02, 0x00, 0x05, 0x01, 0xc3, 0x04, 0x00, 0x95, 0x02, 0x83, 0x05, 0xc1, 0x02, 0x02,
+ 0x00, 0x0d, 0xc3, 0x43, 0x03, 0x41, 0xc3, 0x03, 0x00, 0xe0, 0x82, 0x01, 0x80, 0xc0, 0x03, 0x00,
+ 0x05, 0x05, 0x04, 0x05, 0x00, 0x4e, 0x44, 0xc2, 0x02, 0x4c, 0x84, 0x83, 0x08, 0x46, 0x44, 0x84,
+ 0x03, 0x1c, 0x84, 0x00, 0x01, 0x95, 0x02, 0x84, 0x07, 0xdf, 0xc2, 0xfd, 0x7f, 0xc5, 0x42, 0x05,
+ 0x00, 0x00, 0x03, 0x00, 0x05, 0xdc, 0x42, 0x00, 0x01, 0x1e, 0x00, 0x80, 0x00, 0x17, 0x00, 0x00,
+ 0x00, 0x04, 0x05, 0x00, 0x00, 0x00, 0x74, 0x79, 0x70, 0x65, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00,
+ 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x49, 0x6e, 0x70, 0x75,
+ 0x74, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x00, 0x04, 0x06, 0x00,
+ 0x00, 0x00, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x00, 0x04, 0x2a, 0x00, 0x00, 0x00, 0x48, 0x65, 0x78,
+ 0x64, 0x75, 0x6d, 0x70, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x73, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72,
+ 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x67, 0x65, 0x74, 0x73,
+ 0x69, 0x7a, 0x65, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x40, 0x04, 0x05, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x74, 0x68,
+ 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x00, 0x04, 0x04, 0x00, 0x00,
+ 0x00, 0x6d, 0x6f, 0x64, 0x00, 0x04, 0x05, 0x00, 0x00, 0x00, 0x73, 0x65, 0x65, 0x6b, 0x00, 0x04,
+ 0x05, 0x00, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xf0, 0x3f, 0x04, 0x04, 0x00, 0x00, 0x00, 0x68, 0x65, 0x78, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00,
+ 0x25, 0x30, 0x38, 0x78, 0x20, 0x20, 0x20, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04,
+ 0x03, 0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x70, 0x63, 0x68, 0x61,
+ 0x72, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x00, 0x04, 0x04, 0x00,
+ 0x00, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x7f, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x17, 0x40,
+ 0x40, 0x00, 0x16, 0x80, 0x00, 0x80, 0x05, 0x80, 0x00, 0x00, 0x41, 0xc0, 0x00, 0x00, 0x1c, 0x40,
+ 0x00, 0x01, 0x1e, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63,
+ 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x00, 0x04, 0x1b, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x20, 0x6f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x61, 0x6e,
+ 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x00, 0x04,
+ 0x00, 0x0a, 0x56, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, 0x80, 0x01,
+ 0x00, 0x00, 0x5c, 0x81, 0x00, 0x01, 0x17, 0x40, 0xc0, 0x02, 0x16, 0x80, 0x00, 0x80, 0x46, 0x81,
+ 0x40, 0x00, 0x17, 0xc0, 0xc0, 0x02, 0x16, 0x00, 0x03, 0x80, 0x45, 0x01, 0x01, 0x00, 0x5c, 0x41,
+ 0x80, 0x00, 0x02, 0x01, 0x80, 0x00, 0x45, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x5c, 0x81,
+ 0x00, 0x01, 0x17, 0x40, 0xc1, 0x02, 0x16, 0x40, 0x03, 0x80, 0x45, 0x81, 0x01, 0x00, 0x80, 0x01,
+ 0x00, 0x00, 0x5c, 0x81, 0x00, 0x01, 0x00, 0x00, 0x80, 0x02, 0x16, 0x00, 0x02, 0x80, 0x45, 0x01,
+ 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0x5c, 0x81, 0x00, 0x01, 0x17, 0x40, 0xc1, 0x02, 0x16, 0xc0,
+ 0x00, 0x80, 0x45, 0x81, 0x01, 0x00, 0x80, 0x01, 0x80, 0x00, 0x5c, 0x81, 0x00, 0x01, 0x40, 0x00,
+ 0x80, 0x02, 0x17, 0xc0, 0xc0, 0x00, 0x16, 0x40, 0x02, 0x80, 0x17, 0xc0, 0x40, 0x01, 0x16, 0xc0,
+ 0x01, 0x80, 0x17, 0xc0, 0xc0, 0x01, 0x16, 0x40, 0x01, 0x80, 0x45, 0xc1, 0x01, 0x00, 0x4b, 0x81,
+ 0xc0, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x80, 0x01, 0x5e, 0x01, 0x00, 0x00, 0x16, 0x40,
+ 0x0a, 0x80, 0x17, 0xc0, 0x40, 0x01, 0x16, 0xc0, 0x03, 0x80, 0x17, 0xc0, 0xc0, 0x01, 0x16, 0x40,
+ 0x03, 0x80, 0x1a, 0x01, 0x00, 0x00, 0x16, 0x80, 0x01, 0x80, 0x45, 0xc1, 0x01, 0x00, 0x4b, 0x81,
+ 0xc0, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x5d, 0x01, 0x00, 0x02, 0x5e, 0x01,
+ 0x00, 0x00, 0x16, 0x00, 0x07, 0x80, 0x4b, 0x81, 0x40, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x5d, 0x01,
+ 0x80, 0x01, 0x5e, 0x01, 0x00, 0x00, 0x16, 0xc0, 0x05, 0x80, 0x17, 0xc0, 0xc0, 0x01, 0x16, 0xc0,
+ 0x03, 0x80, 0x1a, 0x01, 0x00, 0x00, 0x16, 0xc0, 0x01, 0x80, 0x45, 0xc1, 0x01, 0x00, 0x4b, 0x81,
+ 0xc0, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x40, 0x02, 0x00, 0x01, 0x5d, 0x01,
+ 0x80, 0x02, 0x5e, 0x01, 0x00, 0x00, 0x16, 0xc0, 0x02, 0x80, 0x4b, 0x81, 0x40, 0x00, 0xc0, 0x01,
+ 0x80, 0x00, 0x00, 0x02, 0x00, 0x01, 0x5d, 0x01, 0x00, 0x02, 0x5e, 0x01, 0x00, 0x00, 0x16, 0x40,
+ 0x01, 0x80, 0x4b, 0x81, 0x40, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x01, 0x40, 0x02,
+ 0x80, 0x01, 0x5d, 0x01, 0x80, 0x02, 0x5e, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x04, 0x05, 0x00, 0x00, 0x00, 0x74, 0x79, 0x70, 0x65, 0x00, 0x04, 0x06, 0x00, 0x00,
+ 0x00, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x66, 0x69,
+ 0x6c, 0x65, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63,
+ 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, 0x6e,
+ 0x67, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x66, 0x69, 0x6e, 0x64, 0x70, 0x61, 0x74, 0x68, 0x00,
+ 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xa3, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00,
+ 0x45, 0x00, 0x00, 0x00, 0x5c, 0x40, 0x80, 0x00, 0x45, 0x40, 0x00, 0x00, 0x4b, 0x80, 0xc0, 0x00,
+ 0xc0, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x80, 0x01, 0x5e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63,
+ 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75, 0x74, 0x69,
+ 0x6c, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x73, 0x65, 0x74, 0x69, 0x73, 0x6f, 0x77, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x0f,
+ 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x5c, 0x40, 0x80, 0x00, 0x17, 0x40, 0x40, 0x00, 0x16,
+ 0x00, 0x01, 0x80, 0x45, 0x80, 0x00, 0x00, 0x4b, 0xc0, 0xc0, 0x00, 0x5d, 0x00, 0x00, 0x01, 0x5e,
+ 0x00, 0x00, 0x00, 0x16, 0x00, 0x01, 0x80, 0x45, 0x80, 0x00, 0x00, 0x4b, 0xc0, 0xc0, 0x00, 0xc0,
+ 0x00, 0x00, 0x00, 0x5d, 0x00, 0x80, 0x01, 0x5e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63, 0x64,
+ 0x75, 0x74, 0x69, 0x6c, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75, 0x74, 0x69,
+ 0x6c, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x67, 0x75, 0x65, 0x73, 0x73, 0x6d, 0x6f, 0x64, 0x65,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x04, 0x08, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x5c, 0x40, 0x80, 0x00, 0x45, 0x40, 0x00,
+ 0x00, 0x4b, 0x80, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x80, 0x01, 0x5e, 0x00, 0x00,
+ 0x00, 0x1e, 0x00, 0x80, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68,
+ 0x65, 0x63, 0x6b, 0x5f, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00,
+ 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x73, 0x65, 0x63, 0x74,
+ 0x6f, 0x72, 0x73, 0x65, 0x65, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xbf,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x18, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x9c,
+ 0x40, 0x80, 0x00, 0x17, 0x40, 0x40, 0x00, 0x16, 0x00, 0x01, 0x80, 0x85, 0x80, 0x00, 0x00, 0x8b,
+ 0xc0, 0x40, 0x01, 0x9d, 0x00, 0x00, 0x01, 0x9e, 0x00, 0x00, 0x00, 0x16, 0x40, 0x03, 0x80, 0x17,
+ 0x40, 0xc0, 0x00, 0x16, 0x40, 0x01, 0x80, 0x85, 0x80, 0x00, 0x00, 0x8b, 0xc0, 0x40, 0x01, 0x00,
+ 0x01, 0x00, 0x00, 0x9d, 0x00, 0x80, 0x01, 0x9e, 0x00, 0x00, 0x00, 0x16, 0x40, 0x01, 0x80, 0x85,
+ 0x80, 0x00, 0x00, 0x8b, 0xc0, 0x40, 0x01, 0x00, 0x01, 0x00, 0x00, 0x40, 0x01, 0x80, 0x00, 0x9d,
+ 0x00, 0x00, 0x02, 0x9e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
+ 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c,
+ 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04, 0x0b,
+ 0x00, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0x1c, 0x00,
+ 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xdc, 0x40, 0x80, 0x00, 0xc5, 0x40, 0x00, 0x00, 0x17, 0x80,
+ 0xc0, 0x01, 0x16, 0x40, 0x01, 0x80, 0xc5, 0xc0, 0x00, 0x00, 0xcb, 0x00, 0xc1, 0x01, 0x40, 0x01,
+ 0x00, 0x00, 0xdd, 0x00, 0x80, 0x01, 0xde, 0x00, 0x00, 0x00, 0x16, 0xc0, 0x03, 0x80, 0x17, 0x80,
+ 0x40, 0x01, 0x16, 0x80, 0x01, 0x80, 0xc5, 0xc0, 0x00, 0x00, 0xcb, 0x00, 0xc1, 0x01, 0x40, 0x01,
+ 0x00, 0x00, 0x85, 0x41, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x02, 0xde, 0x00, 0x00, 0x00, 0x16, 0x80,
+ 0x01, 0x80, 0xc5, 0xc0, 0x00, 0x00, 0xcb, 0x00, 0xc1, 0x01, 0x40, 0x01, 0x00, 0x00, 0x85, 0x41,
+ 0x00, 0x00, 0xc0, 0x01, 0x00, 0x01, 0xdd, 0x00, 0x80, 0x02, 0xde, 0x00, 0x00, 0x00, 0x1e, 0x00,
+ 0x80, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b,
+ 0x5f, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04, 0x05, 0x00, 0x00, 0x00, 0x73, 0x65, 0x63,
+ 0x74, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04,
+ 0x0a, 0x00, 0x00, 0x00, 0x72, 0x65, 0x61, 0x64, 0x64, 0x61, 0x74, 0x61, 0x73, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0a, 0x1f, 0x00,
+ 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x1c, 0x41, 0x80, 0x00, 0x05, 0x41, 0x00, 0x00, 0x17, 0x80,
+ 0x40, 0x02, 0x16, 0x80, 0x01, 0x80, 0x05, 0xc1, 0x00, 0x00, 0x0b, 0x01, 0x41, 0x02, 0x80, 0x01,
+ 0x00, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x1d, 0x01, 0x00, 0x02, 0x1e, 0x01, 0x00, 0x00, 0x16, 0x40,
+ 0x04, 0x80, 0x17, 0x80, 0xc0, 0x01, 0x16, 0xc0, 0x01, 0x80, 0x05, 0xc1, 0x00, 0x00, 0x0b, 0x01,
+ 0x41, 0x02, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x05, 0x42, 0x00, 0x00, 0x1d, 0x01,
+ 0x80, 0x02, 0x1e, 0x01, 0x00, 0x00, 0x16, 0xc0, 0x01, 0x80, 0x05, 0xc1, 0x00, 0x00, 0x0b, 0x01,
+ 0x41, 0x02, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x05, 0x42, 0x00, 0x00, 0x40, 0x02,
+ 0x80, 0x01, 0x1d, 0x01, 0x00, 0x03, 0x1e, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00, 0x05, 0x00,
+ 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63, 0x64, 0x75,
+ 0x74, 0x69, 0x6c, 0x00, 0x04, 0x05, 0x00, 0x00, 0x00, 0x73, 0x65, 0x63, 0x74, 0x00, 0x00, 0x04,
+ 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00,
+ 0x72, 0x65, 0x61, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00,
+ 0x00, 0xde, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0x15, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00,
+ 0x00, 0xdc, 0x40, 0x80, 0x00, 0x17, 0x40, 0xc0, 0x00, 0x16, 0x80, 0x01, 0x80, 0xc5, 0x80, 0x00,
+ 0x00, 0xcb, 0xc0, 0xc0, 0x01, 0x40, 0x01, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0xdd, 0x00, 0x00,
+ 0x02, 0xde, 0x00, 0x00, 0x00, 0x16, 0x00, 0x02, 0x80, 0x17, 0x40, 0x40, 0x01, 0x16, 0x80, 0x01,
+ 0x80, 0xc5, 0x80, 0x00, 0x00, 0xcb, 0xc0, 0xc0, 0x01, 0x40, 0x01, 0x00, 0x00, 0x80, 0x01, 0x80,
+ 0x00, 0xc0, 0x01, 0x00, 0x01, 0xdd, 0x00, 0x80, 0x02, 0xde, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x80,
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f,
+ 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75,
+ 0x74, 0x69, 0x6c, 0x00, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x65,
+ 0x63, 0x74, 0x6f, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00,
+ 0x00, 0x00, 0x04, 0x00, 0x0a, 0x1e, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x1c, 0x41, 0x80,
+ 0x00, 0x17, 0x40, 0x40, 0x01, 0x16, 0x80, 0x01, 0x80, 0x05, 0x81, 0x00, 0x00, 0x0b, 0xc1, 0x40,
+ 0x02, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x1d, 0x01, 0x00, 0x02, 0x1e, 0x01, 0x00,
+ 0x00, 0x16, 0x40, 0x04, 0x80, 0x17, 0x40, 0xc0, 0x01, 0x16, 0xc0, 0x01, 0x80, 0x05, 0x81, 0x00,
+ 0x00, 0x0b, 0xc1, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00,
+ 0x01, 0x1d, 0x01, 0x80, 0x02, 0x1e, 0x01, 0x00, 0x00, 0x16, 0xc0, 0x01, 0x80, 0x05, 0x81, 0x00,
+ 0x00, 0x0b, 0xc1, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00,
+ 0x01, 0x40, 0x02, 0x80, 0x01, 0x1d, 0x01, 0x00, 0x03, 0x1e, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x80,
+ 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f,
+ 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75,
+ 0x74, 0x69, 0x6c, 0x00, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x64, 0x61,
+ 0x74, 0x61, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x0a, 0x26, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x1c, 0x41, 0x80, 0x00,
+ 0x17, 0x40, 0xc0, 0x00, 0x16, 0x40, 0x01, 0x80, 0x05, 0x81, 0x00, 0x00, 0x0b, 0xc1, 0x40, 0x02,
+ 0x80, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x80, 0x01, 0x1e, 0x01, 0x00, 0x00, 0x16, 0x80, 0x06, 0x80,
+ 0x17, 0x40, 0x40, 0x01, 0x16, 0x80, 0x01, 0x80, 0x05, 0x81, 0x00, 0x00, 0x0b, 0xc1, 0x40, 0x02,
+ 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x1d, 0x01, 0x00, 0x02, 0x1e, 0x01, 0x00, 0x00,
+ 0x16, 0x40, 0x04, 0x80, 0x17, 0x40, 0xc0, 0x01, 0x16, 0xc0, 0x01, 0x80, 0x05, 0x81, 0x00, 0x00,
+ 0x0b, 0xc1, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x01,
+ 0x1d, 0x01, 0x80, 0x02, 0x1e, 0x01, 0x00, 0x00, 0x16, 0xc0, 0x01, 0x80, 0x05, 0x81, 0x00, 0x00,
+ 0x0b, 0xc1, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x01,
+ 0x40, 0x02, 0x80, 0x01, 0x1d, 0x01, 0x00, 0x03, 0x1e, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63,
+ 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75, 0x74,
+ 0x69, 0x6c, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x77, 0x72, 0x69, 0x74, 0x65, 0x66, 0x69, 0x6c,
+ 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x04, 0x11, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x5c, 0x40, 0x80, 0x00, 0x45, 0x40,
+ 0x00, 0x00, 0x17, 0x80, 0xc0, 0x00, 0x16, 0x40, 0x01, 0x80, 0x45, 0xc0, 0x00, 0x00, 0x4b, 0x40,
+ 0xc0, 0x00, 0xc1, 0x00, 0x01, 0x00, 0x5d, 0x00, 0x80, 0x01, 0x5e, 0x00, 0x00, 0x00, 0x16, 0x00,
+ 0x01, 0x80, 0x45, 0xc0, 0x00, 0x00, 0x4b, 0x40, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x5d, 0x00,
+ 0x80, 0x01, 0x5e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x0d,
+ 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00,
+ 0x04, 0x09, 0x00, 0x00, 0x00, 0x66, 0x69, 0x6e, 0x64, 0x70, 0x61, 0x74, 0x68, 0x00, 0x00, 0x04,
+ 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00,
+ 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x5c, 0x40, 0x80, 0x00, 0x45, 0x40,
+ 0x00, 0x00, 0x4b, 0x80, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x80, 0x01, 0x5e, 0x00,
+ 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63,
+ 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04, 0x07, 0x00, 0x00,
+ 0x00, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x66, 0x69, 0x6e,
+ 0x64, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00,
+ 0x09, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x09, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00,
+ 0x9c, 0x40, 0x80, 0x00, 0x85, 0x40, 0x00, 0x00, 0x8b, 0x80, 0x40, 0x01, 0x00, 0x01, 0x00, 0x00,
+ 0x40, 0x01, 0x80, 0x00, 0x9d, 0x00, 0x00, 0x02, 0x9e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00,
+ 0x03, 0x00, 0x00, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x63,
+ 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75, 0x74, 0x69,
+ 0x6c, 0x00, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x66, 0x69, 0x6e, 0x64, 0x64, 0x69, 0x72, 0x65, 0x63,
+ 0x74, 0x6f, 0x72, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x17, 0x40, 0x40,
+ 0x00, 0x16, 0x80, 0x00, 0x80, 0x05, 0x80, 0x00, 0x00, 0x41, 0xc0, 0x00, 0x00, 0x1c, 0x40, 0x00,
+ 0x01, 0x1e, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x69, 0x73,
+ 0x6f, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x00, 0x04, 0x18,
+ 0x00, 0x00, 0x00, 0x69, 0x73, 0x6f, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x6e, 0x6f,
+ 0x6e, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
+ 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x18, 0x00, 0x00, 0x00, 0x45,
+ 0x00, 0x00, 0x00, 0x5c, 0x40, 0x80, 0x00, 0x17, 0x40, 0x40, 0x00, 0x16, 0x40, 0x01, 0x80, 0x45,
+ 0x80, 0x00, 0x00, 0x17, 0x40, 0xc0, 0x00, 0x16, 0x80, 0x00, 0x80, 0x45, 0xc0, 0x00, 0x00, 0x81,
+ 0x00, 0x01, 0x00, 0x5c, 0x40, 0x00, 0x01, 0x17, 0x40, 0x40, 0x00, 0x16, 0x40, 0x01, 0x80, 0x45,
+ 0x40, 0x01, 0x00, 0x4b, 0x80, 0xc1, 0x00, 0xc5, 0x80, 0x00, 0x00, 0x5d, 0x00, 0x80, 0x01, 0x5e,
+ 0x00, 0x00, 0x00, 0x16, 0x00, 0x01, 0x80, 0x45, 0x40, 0x01, 0x00, 0x4b, 0x80, 0xc1, 0x00, 0xc0,
+ 0x00, 0x00, 0x00, 0x5d, 0x00, 0x80, 0x01, 0x5e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00, 0x07,
+ 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x73,
+ 0x6f, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x63, 0x64, 0x75, 0x74, 0x69, 0x6c, 0x00, 0x04,
+ 0x06, 0x00, 0x00, 0x00, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x00, 0x04, 0x1b, 0x00, 0x00, 0x00, 0x63,
+ 0x64, 0x75, 0x74, 0x69, 0x6c, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x6e, 0x6f, 0x6e,
+ 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x69,
+ 0x73, 0x6f, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x66, 0x6f, 0x72, 0x65, 0x77, 0x6f, 0x72, 0x64,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x06, 0x11, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x9c, 0x40, 0x80, 0x00, 0x17, 0x40, 0xc0,
+ 0x00, 0x16, 0x40, 0x01, 0x80, 0x85, 0x80, 0x00, 0x00, 0x8b, 0xc0, 0x40, 0x01, 0x00, 0x01, 0x00,
+ 0x00, 0x9d, 0x00, 0x80, 0x01, 0x9e, 0x00, 0x00, 0x00, 0x16, 0x40, 0x01, 0x80, 0x85, 0x80, 0x00,
+ 0x00, 0x8b, 0xc0, 0x40, 0x01, 0x00, 0x01, 0x00, 0x00, 0x40, 0x01, 0x80, 0x00, 0x9d, 0x00, 0x00,
+ 0x02, 0x9e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00,
+ 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x73, 0x6f, 0x00, 0x00, 0x04, 0x04, 0x00,
+ 0x00, 0x00, 0x69, 0x73, 0x6f, 0x00, 0x04, 0x10, 0x00, 0x00, 0x00, 0x66, 0x6f, 0x72, 0x65, 0x77,
+ 0x6f, 0x72, 0x64, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27,
+ 0x01, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x11, 0x00, 0x00, 0x00, 0x85,
+ 0x00, 0x00, 0x00, 0x9c, 0x40, 0x80, 0x00, 0x17, 0x40, 0xc0, 0x00, 0x16, 0x40, 0x01, 0x80, 0x85,
+ 0x80, 0x00, 0x00, 0x8b, 0xc0, 0x40, 0x01, 0x00, 0x01, 0x00, 0x00, 0x9d, 0x00, 0x80, 0x01, 0x9e,
+ 0x00, 0x00, 0x00, 0x16, 0x40, 0x01, 0x80, 0x85, 0x80, 0x00, 0x00, 0x8b, 0xc0, 0x40, 0x01, 0x00,
+ 0x01, 0x00, 0x00, 0x40, 0x01, 0x80, 0x00, 0x9d, 0x00, 0x00, 0x02, 0x9e, 0x00, 0x00, 0x00, 0x1e,
+ 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63,
+ 0x6b, 0x5f, 0x69, 0x73, 0x6f, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x69, 0x73, 0x6f, 0x00,
+ 0x04, 0x0f, 0x00, 0x00, 0x00, 0x66, 0x6f, 0x72, 0x65, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x61, 0x72,
+ 0x72, 0x61, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1c, 0x40, 0x80, 0x00,
+ 0x05, 0x40, 0x00, 0x00, 0x0b, 0x80, 0x40, 0x00, 0x1d, 0x00, 0x00, 0x01, 0x1e, 0x00, 0x00, 0x00,
+ 0x1e, 0x00, 0x80, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65,
+ 0x63, 0x6b, 0x5f, 0x69, 0x73, 0x6f, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x69, 0x73, 0x6f, 0x00,
+ 0x04, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x65, 0x74, 0x64, 0x69, 0x73, 0x70, 0x73, 0x65, 0x63, 0x74,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x08, 0x18, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xdc, 0x40, 0x80, 0x00, 0x17, 0x40, 0xc0,
+ 0x00, 0x16, 0x00, 0x01, 0x80, 0xc5, 0x80, 0x00, 0x00, 0xcb, 0xc0, 0xc0, 0x01, 0x40, 0x01, 0x00,
+ 0x00, 0xdc, 0x40, 0x80, 0x01, 0x16, 0x40, 0x03, 0x80, 0x17, 0x40, 0x40, 0x01, 0x16, 0x40, 0x01,
+ 0x80, 0xc5, 0x80, 0x00, 0x00, 0xcb, 0xc0, 0xc0, 0x01, 0x40, 0x01, 0x00, 0x00, 0x80, 0x01, 0x80,
+ 0x00, 0xdc, 0x40, 0x00, 0x02, 0x16, 0x40, 0x01, 0x80, 0xc5, 0x80, 0x00, 0x00, 0xcb, 0xc0, 0xc0,
+ 0x01, 0x40, 0x01, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0xc0, 0x01, 0x00, 0x01, 0xdc, 0x40, 0x80,
+ 0x02, 0x1e, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x68,
+ 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x73, 0x6f, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x69, 0x73,
+ 0x6f, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x70, 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0a, 0x1b,
+ 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x1c, 0x41, 0x80, 0x00, 0x17, 0x40, 0x40, 0x01, 0x16,
+ 0x40, 0x01, 0x80, 0x05, 0x81, 0x00, 0x00, 0x0b, 0xc1, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0xc0,
+ 0x01, 0x80, 0x00, 0x1c, 0x41, 0x00, 0x02, 0x16, 0xc0, 0x03, 0x80, 0x17, 0x40, 0xc0, 0x01, 0x16,
+ 0x80, 0x01, 0x80, 0x05, 0x81, 0x00, 0x00, 0x0b, 0xc1, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0xc0,
+ 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x01, 0x1c, 0x41, 0x80, 0x02, 0x16, 0x80, 0x01, 0x80, 0x05,
+ 0x81, 0x00, 0x00, 0x0b, 0xc1, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x00,
+ 0x02, 0x00, 0x01, 0x40, 0x02, 0x80, 0x01, 0x1c, 0x41, 0x00, 0x03, 0x1e, 0x00, 0x80, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x73,
+ 0x6f, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x69, 0x73, 0x6f, 0x00, 0x04, 0x09, 0x00, 0x00,
+ 0x00, 0x70, 0x75, 0x74, 0x64, 0x61, 0x74, 0x61, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x01,
+ 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0x18, 0x00, 0x00, 0x00, 0xc5, 0x00,
+ 0x00, 0x00, 0xdc, 0x40, 0x80, 0x00, 0x17, 0x40, 0xc0, 0x00, 0x16, 0x00, 0x01, 0x80, 0xc5, 0x80,
+ 0x00, 0x00, 0xcb, 0xc0, 0xc0, 0x01, 0x40, 0x01, 0x00, 0x00, 0xdc, 0x40, 0x80, 0x01, 0x16, 0x40,
+ 0x03, 0x80, 0x17, 0x40, 0x40, 0x01, 0x16, 0x40, 0x01, 0x80, 0xc5, 0x80, 0x00, 0x00, 0xcb, 0xc0,
+ 0xc0, 0x01, 0x40, 0x01, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0xdc, 0x40, 0x00, 0x02, 0x16, 0x40,
+ 0x01, 0x80, 0xc5, 0x80, 0x00, 0x00, 0xcb, 0xc0, 0xc0, 0x01, 0x40, 0x01, 0x00, 0x00, 0x80, 0x01,
+ 0x80, 0x00, 0xc0, 0x01, 0x00, 0x01, 0xdc, 0x40, 0x80, 0x02, 0x1e, 0x00, 0x80, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x73, 0x6f,
+ 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x69, 0x73, 0x6f, 0x00, 0x04, 0x0d, 0x00, 0x00, 0x00,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x56, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0x00, 0x00, 0x1c, 0x40, 0x80, 0x00, 0x05, 0x40, 0x00, 0x00, 0x0b, 0x80, 0x40,
+ 0x00, 0x1c, 0x40, 0x00, 0x01, 0x1e, 0x00, 0x80, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00,
+ 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x73, 0x6f, 0x00, 0x04, 0x04, 0x00, 0x00,
+ 0x00, 0x69, 0x73, 0x6f, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x73, 0x65, 0x74, 0x45, 0x4f, 0x46,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x5e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1c, 0x40, 0x80, 0x00, 0x05, 0x40, 0x00,
+ 0x00, 0x0b, 0x80, 0x40, 0x00, 0x1c, 0x40, 0x00, 0x01, 0x1e, 0x00, 0x80, 0x00, 0x03, 0x00, 0x00,
+ 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x73, 0x6f, 0x00,
+ 0x04, 0x04, 0x00, 0x00, 0x00, 0x69, 0x73, 0x6f, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x63, 0x6c,
+ 0x65, 0x61, 0x72, 0x45, 0x4f, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x6d,
+ 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0c, 0x2d, 0x00, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, 0x5c,
+ 0x41, 0x80, 0x00, 0x17, 0x40, 0xc0, 0x00, 0x16, 0x00, 0x01, 0x80, 0x45, 0x81, 0x00, 0x00, 0x4b,
+ 0xc1, 0xc0, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x5c, 0x41, 0x80, 0x01, 0x16, 0x80, 0x08, 0x80, 0x17,
+ 0x40, 0x40, 0x01, 0x16, 0x40, 0x01, 0x80, 0x45, 0x81, 0x00, 0x00, 0x4b, 0xc1, 0xc0, 0x02, 0xc0,
+ 0x01, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x5c, 0x41, 0x00, 0x02, 0x16, 0x80, 0x06, 0x80, 0x17,
+ 0x40, 0xc0, 0x01, 0x16, 0x80, 0x01, 0x80, 0x45, 0x81, 0x00, 0x00, 0x4b, 0xc1, 0xc0, 0x02, 0xc0,
+ 0x01, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x40, 0x02, 0x00, 0x01, 0x5c, 0x41, 0x80, 0x02, 0x16,
+ 0x40, 0x04, 0x80, 0x1a, 0x01, 0x00, 0x00, 0x16, 0xc0, 0x01, 0x80, 0x45, 0x81, 0x00, 0x00, 0x4b,
+ 0xc1, 0xc0, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x40, 0x02, 0x00, 0x01, 0x80,
+ 0x02, 0x80, 0x01, 0x5c, 0x41, 0x00, 0x03, 0x16, 0xc0, 0x01, 0x80, 0x45, 0x81, 0x00, 0x00, 0x4b,
+ 0xc1, 0xc0, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x40, 0x02, 0x00, 0x01, 0x80,
+ 0x02, 0x80, 0x01, 0xc0, 0x02, 0x00, 0x02, 0x5c, 0x41, 0x80, 0x03, 0x1e, 0x00, 0x80, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x73,
+ 0x6f, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x69, 0x73, 0x6f, 0x00, 0x04, 0x0a, 0x00, 0x00,
+ 0x00, 0x73, 0x65, 0x74, 0x62, 0x61, 0x73, 0x69, 0x63, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f,
+ 0x01, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0c, 0x1d, 0x00, 0x00, 0x00, 0x45,
+ 0x01, 0x00, 0x00, 0x5c, 0x41, 0x80, 0x00, 0x17, 0x40, 0x40, 0x01, 0x16, 0x40, 0x01, 0x80, 0x45,
+ 0x81, 0x00, 0x00, 0x4b, 0xc1, 0xc0, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x5c,
+ 0x41, 0x00, 0x02, 0x16, 0x40, 0x04, 0x80, 0x17, 0x40, 0x40, 0x02, 0x16, 0xc0, 0x01, 0x80, 0x45,
+ 0x81, 0x00, 0x00, 0x4b, 0xc1, 0xc0, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x40,
+ 0x02, 0x00, 0x01, 0x80, 0x02, 0x80, 0x01, 0x5c, 0x41, 0x00, 0x03, 0x16, 0xc0, 0x01, 0x80, 0x45,
+ 0x81, 0x00, 0x00, 0x4b, 0xc1, 0xc0, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x40,
+ 0x02, 0x00, 0x01, 0x80, 0x02, 0x80, 0x01, 0xc0, 0x02, 0x00, 0x02, 0x5c, 0x41, 0x80, 0x03, 0x1e,
+ 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63,
+ 0x6b, 0x5f, 0x69, 0x73, 0x6f, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x69, 0x73, 0x6f, 0x00,
+ 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x69, 0x72, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x7a, 0x01, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x0c, 0x15,
+ 0x00, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, 0x5c, 0x41, 0x80, 0x00, 0x17, 0x40, 0x40, 0x02, 0x16,
+ 0xc0, 0x01, 0x80, 0x45, 0x81, 0x00, 0x00, 0x4b, 0xc1, 0xc0, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x00,
+ 0x02, 0x80, 0x00, 0x40, 0x02, 0x00, 0x01, 0x80, 0x02, 0x80, 0x01, 0x5c, 0x41, 0x00, 0x03, 0x16,
+ 0xc0, 0x01, 0x80, 0x45, 0x81, 0x00, 0x00, 0x4b, 0xc1, 0xc0, 0x02, 0xc0, 0x01, 0x00, 0x00, 0x00,
+ 0x02, 0x80, 0x00, 0x40, 0x02, 0x00, 0x01, 0x80, 0x02, 0x80, 0x01, 0xc0, 0x02, 0x00, 0x02, 0x5c,
+ 0x41, 0x80, 0x03, 0x1e, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00,
+ 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x73, 0x6f, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00,
+ 0x69, 0x73, 0x6f, 0x00, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x66,
+ 0x69, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x8a, 0x01, 0x00, 0x00,
+ 0x00, 0x04, 0x00, 0x0a, 0x13, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x1c, 0x41, 0x80, 0x00,
+ 0x17, 0x40, 0xc0, 0x01, 0x16, 0x80, 0x01, 0x80, 0x05, 0x81, 0x00, 0x00, 0x0b, 0xc1, 0x40, 0x02,
+ 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x01, 0x1c, 0x41, 0x80, 0x02,
+ 0x16, 0x80, 0x01, 0x80, 0x05, 0x81, 0x00, 0x00, 0x0b, 0xc1, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00,
+ 0xc0, 0x01, 0x80, 0x00, 0x00, 0x02, 0x00, 0x01, 0x40, 0x02, 0x80, 0x01, 0x1c, 0x41, 0x00, 0x03,
+ 0x1e, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x63, 0x68, 0x65,
+ 0x63, 0x6b, 0x5f, 0x69, 0x73, 0x6f, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x69, 0x73, 0x6f,
+ 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x70, 0x79, 0x64, 0x69, 0x72, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x8c, 0x01, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x08, 0x1e, 0x00,
+ 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xdc, 0x40, 0x80, 0x00, 0x17, 0x40, 0x40, 0x00, 0x16, 0xc0,
+ 0x00, 0x80, 0xc5, 0x80, 0x00, 0x00, 0xcb, 0xc0, 0xc0, 0x01, 0xdc, 0x40, 0x00, 0x01, 0x16, 0x00,
+ 0x05, 0x80, 0x17, 0x40, 0xc0, 0x00, 0x16, 0x00, 0x01, 0x80, 0xc5, 0x80, 0x00, 0x00, 0xcb, 0xc0,
+ 0xc0, 0x01, 0x40, 0x01, 0x00, 0x00, 0xdc, 0x40, 0x80, 0x01, 0x16, 0x40, 0x03, 0x80, 0x17, 0x40,
+ 0x40, 0x01, 0x16, 0x40, 0x01, 0x80, 0xc5, 0x80, 0x00, 0x00, 0xcb, 0xc0, 0xc0, 0x01, 0x40, 0x01,
+ 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0xdc, 0x40, 0x00, 0x02, 0x16, 0x40, 0x01, 0x80, 0xc5, 0x80,
+ 0x00, 0x00, 0xcb, 0xc0, 0xc0, 0x01, 0x40, 0x01, 0x00, 0x00, 0x80, 0x01, 0x80, 0x00, 0xc0, 0x01,
+ 0x00, 0x01, 0xdc, 0x40, 0x80, 0x02, 0x1e, 0x00, 0x80, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x0a,
+ 0x00, 0x00, 0x00, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x73, 0x6f, 0x00, 0x00, 0x04, 0x04,
+ 0x00, 0x00, 0x00, 0x69, 0x73, 0x6f, 0x00, 0x04, 0x06, 0x00, 0x00, 0x00, 0x63, 0x6c, 0x6f, 0x73,
+ 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
diff --git a/src/lua-interface.cpp b/src/lua-interface.cpp
new file mode 100644
index 0000000..8350680
--- /dev/null
+++ b/src/lua-interface.cpp
@@ -0,0 +1,745 @@
+/*
+ * PSX-Tools Bundle Pack
+ * Copyright (C) 2002-2005 Nicolas "Pixel" Noble
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* $Id: lua-interface.cpp,v 1.1 2008-07-04 12:03:01 pixel Exp $ */
+
+#define WIP
+
+#define VERSION "0.7"
+
+#include <stdio.h>
+
+#include <readline/readline.h>
+#include <readline/history.h>
+
+#include <getopt.h>
+#include <Input.h>
+#include <Output.h>
+#include <Buffer.h>
+#include <BLua.h>
+#include <LuaCommandLine.h>
+#include <HttpServ.h>
+#include <Message.h>
+#include <Form.h>
+#include <BRegex.h>
+#include <LuaTask.h>
+#include <TaskMan.h>
+#include <generic.h>
+#include <Main.h>
+#include <lua-plugin.h>
+
+#include "lua-interface-hc.h"
+
+#ifdef _WIN32
+
+#include <windows.h>
+#include <ctype.h>
+#include <conio.h>
+
+#include <readline/rldefs.h>
+
+#define EXT_PREFIX 0x1f8
+
+#define KEV irec.Event.KeyEvent /* to make life easier */
+#define KST irec.Event.KeyEvent.dwControlKeyState
+
+
+static int pending_key = 0;
+static int pending_count = 0;
+static int pending_prefix = 0;
+
+extern int _rl_last_c_pos; /* imported from display.c */
+extern int _rl_last_v_pos;
+extern int rl_dispatching; /* imported from readline.c */
+extern int rl_point;
+extern int rl_done;
+extern int rl_visible_prompt_length;
+
+extern "C" {
+extern int haveConsole; /* imported from rltty.c */
+extern HANDLE hStdout, hStdin;
+}
+
+int my_getc (FILE * stream)
+{
+ int key;
+
+ if ( pending_count )
+ {
+ --pending_count;
+ if ( pending_prefix && (pending_count & 1) )
+ return pending_prefix;
+ else
+ return pending_key;
+ }
+
+ while ( 1 )
+ {
+ DWORD dummy;
+
+ if (WaitForSingleObject(hStdin, WAIT_FOR_INPUT) != WAIT_OBJECT_0)
+ {
+ if ( rl_done )
+ return( 0 );
+ else
+ continue;
+ }
+ if ( haveConsole & FOR_INPUT )
+ {
+ INPUT_RECORD irec;
+ ReadConsoleInput(hStdin, &irec, 1, &dummy);
+ switch(irec.EventType)
+ {
+ case KEY_EVENT:
+ if ( KEV.bKeyDown
+ && ((KEV.wVirtualKeyCode < VK_SHIFT) || (KEV.wVirtualKeyCode > VK_MENU)) )
+ {
+ int mask = 0;
+
+ key = KEV.uChar.AsciiChar & 0xff;
+// if ( KST & (LEFT_ALT_PRESSED | RIGHT_ALT_PRESSED) )
+// mask=0x100;
+ if ( key )
+ {
+ /* Ascii direct */
+ pending_count = KEV.wRepeatCount - 1;
+ pending_key = key;
+ pending_prefix = 0;
+ if ( mask )
+ key = tolower(key) | mask;
+ }
+ else
+ /* Others prefixed */
+ {
+ key = EXT_PREFIX;
+ if ( mask )
+ key |= 4;
+ if (KST & SHIFT_PRESSED)
+ key |= 1;
+ if (KST & (LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED))
+ key |= 2;
+ mask |= EXT_PREFIX;
+ pending_count = (KEV.wRepeatCount << 1) - 1;
+ pending_key = KEV.wVirtualKeyCode;
+ pending_prefix = key;
+ }
+ return key;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ ReadFile(hStdin, &key, 1, &dummy, NULL);
+ return key;
+ }
+ }
+}
+#endif
+
+bool interactive = false, server = false;
+
+Lua * L = 0;
+
+String server_fname = "server.lua";
+
+static int myprint(lua_State * __L) {
+ Lua * L = Lua::find(__L);
+ String t = "From LUA: " + L->tostring() + "\n";
+ char * tc = t.strdup();
+
+ Base::printm(M_STATUS, "%s", tc);
+
+ free(tc);
+
+ return 0;
+}
+
+static int StartTaskLoop(void * foo) {
+ TaskMan::MainLoop();
+ return 0;
+}
+
+class Luabaselua_interface : public LuaObject {
+ public:
+ static void pushstatics(Lua *) throw (GeneralException);
+};
+
+typedef void baselua_interface;
+
+enum baselua_interface_t {
+ BASELUA_INTERFACE_LOAD = 0,
+ BASELUA_INTERFACE_PRELOAD,
+ BASELUA_INTERFACE_LOADMODULE,
+ BASELUA_INTERFACE_UNLINK,
+};
+
+struct lua_functypes_t baselua_interface_functions[] = {
+ { BASELUA_INTERFACE_LOAD, "load", 0, 1, { BLUA_STRING | BLUA_OBJECT } },
+ { BASELUA_INTERFACE_PRELOAD, "preload", 0, 1, { BLUA_STRING | BLUA_OBJECT } },
+ { BASELUA_INTERFACE_LOADMODULE, "loadmodule", 1, 1, { BLUA_STRING } },
+ { BASELUA_INTERFACE_UNLINK, "unlink", 1, 1, { BLUA_STRING } },
+ { -1, 0, 0, 0, 0 }
+};
+
+class sLua_baselua_interface : public Base {
+ public:
+ DECLARE_FUNCTION(baselua_interface, BASELUA_INTERFACE_LOAD);
+ DECLARE_FUNCTION(baselua_interface, BASELUA_INTERFACE_PRELOAD);
+ DECLARE_FUNCTION(baselua_interface, BASELUA_INTERFACE_LOADMODULE);
+ DECLARE_FUNCTION(baselua_interface, BASELUA_INTERFACE_UNLINK);
+ private:
+ static int baselua_interface_proceed_statics(Lua * L, int n, int caller);
+};
+
+void Luabaselua_interface::pushstatics(Lua * L) throw (GeneralException ) {
+ CHECK_FUNCTIONS(baselua_interface);
+
+ PUSH_FUNCTION(baselua_interface, BASELUA_INTERFACE_LOAD);
+ PUSH_FUNCTION(baselua_interface, BASELUA_INTERFACE_PRELOAD);
+ PUSH_FUNCTION(baselua_interface, BASELUA_INTERFACE_LOADMODULE);
+ PUSH_FUNCTION(baselua_interface, BASELUA_INTERFACE_UNLINK);
+}
+
+int sLua_baselua_interface::baselua_interface_proceed_statics(Lua * L, int n, int caller) {
+ int r = 0;
+ String filename;
+ const char * t;
+
+ switch (caller) {
+ case BASELUA_INTERFACE_LOAD:
+ if (!n) {
+ L->load(&Input("lua-interface.lua"));
+ } else {
+ if (L->isstring(1)) {
+ L->load(&Input(L->tostring(1)));
+ } else {
+ Handle * t = (Handle *) LuaObject::getme(L, 1);
+ L->load(t);
+ }
+ }
+ break;
+ case BASELUA_INTERFACE_PRELOAD:
+ r = 1;
+ if (!n) {
+ L->load(&Input("lua-interface.lua"));
+ } else {
+ if (L->isstring(1)) {
+ L->load(&Input(L->tostring(1)), false);
+ } else {
+ Handle * t = (Handle *) LuaObject::getme(L, 1);
+ L->load(t, false);
+ }
+ }
+ break;
+ case BASELUA_INTERFACE_LOADMODULE:
+ LuaLoadPlugin(L->tostring(1), L);
+ break;
+ case BASELUA_INTERFACE_UNLINK:
+ filename = L->tostring(1);
+ t = filename.to_charp();
+ L->push((lua_Number) unlink(t));
+ r = 1;
+ break;
+ }
+ return r;
+}
+
+class Lualua_interface : public LuaObject {
+ public:
+ static void pushstatics(Lua *) throw (GeneralException);
+};
+
+typedef void lua_interface;
+
+enum lua_interface_functions_t {
+ lua_interface_PRINT = 0,
+ lua_interface_PRINTN,
+ lua_interface_QUIT,
+ lua_interface_EXIT,
+};
+
+struct lua_functypes_t lua_interface_functions[] = {
+ { lua_interface_PRINT, "print", 0, 1, { BLUA_ANY } },
+ { lua_interface_PRINTN, "printn", 1, 1, { BLUA_ANY } },
+ { lua_interface_QUIT, "quit", 0, 0, 0 },
+ { lua_interface_EXIT, "exit", 0, 0, 0 },
+ { -1, 0, 0, 0, 0 }
+};
+
+class sLua_lua_interface : public Base {
+ public:
+ DECLARE_FUNCTION(lua_interface, lua_interface_PRINT);
+ DECLARE_FUNCTION(lua_interface, lua_interface_PRINTN);
+ DECLARE_FUNCTION(lua_interface, lua_interface_QUIT);
+ DECLARE_FUNCTION(lua_interface, lua_interface_EXIT);
+ private:
+ static int lua_interface_proceed_statics(Lua * L, int n, int caller);
+};
+
+void Lualua_interface::pushstatics(Lua * L) throw (GeneralException ) {
+ CHECK_FUNCTIONS(lua_interface);
+
+ PUSH_FUNCTION(lua_interface, lua_interface_PRINT);
+ PUSH_FUNCTION(lua_interface, lua_interface_PRINTN);
+ PUSH_FUNCTION(lua_interface, lua_interface_QUIT);
+ PUSH_FUNCTION(lua_interface, lua_interface_EXIT);
+}
+
+int sLua_lua_interface::lua_interface_proceed_statics(Lua * L, int n, int caller) {
+ int r = 0;
+ String p;
+ char * tc;
+ String eol = "";
+
+ switch (caller) {
+ case lua_interface_PRINT:
+ eol = "\n";
+ case lua_interface_PRINTN:
+ if (n) {
+ p = L->tostring(1) + eol;
+ } else {
+ p = eol;
+ }
+ tc = p.strdup();
+ printm(M_BARE, "%s", tc);
+ free(tc);
+ break;
+ case lua_interface_QUIT:
+ case lua_interface_EXIT:
+ interactive = false;
+ break;
+ }
+
+ return r;
+}
+
+int lga = 0;
+enum {
+ NO_OPTION = 0,
+};
+
+int getopt_flag = NO_OPTION;
+
+struct option long_options[] = {
+ {"help", 0, NULL, 'h'},
+ {"verbose", 0, NULL, 'v'},
+ {"archive", 1, NULL, 'a'},
+ {"compile", 1, NULL, 'c'},
+ {"debug", 0, NULL, 'd'},
+ {"interactive", 0, NULL, 'i'},
+ {"line", 0, NULL, 'l'},
+ {"exec", 1, NULL, 'e'},
+ {"built-in", 0, NULL, 'b'},
+ {"probe", 0, NULL, 'p'},
+ {"log", 1, NULL, 'g'},
+ {"server", 0, NULL, 's'},
+ {"hport", 1, NULL, 'h'},
+ {"tport", 1, NULL, 't'},
+ {"server_fname", 1, NULL, 'f'},
+ {0, 0, NULL, 0 }
+};
+
+static Uint32 elf_hash(const unsigned char * name) {
+ Uint32 h = 0, g;
+
+ while (*name) {
+ h = (h << 4) + *name++;
+ if ((g = h & 0xf0000000))
+ h ^= g >> 24;
+ h &= ~g;
+ }
+
+ return h;
+}
+
+static int lua_elf_hash(lua_State * __L) {
+ Lua * L = Lua::find(__L);
+ String t = L->tostring();
+
+ L->push((lua_Number) elf_hash((unsigned char *) t.to_charp()));
+
+ return 1;
+}
+
+String LUACall_Names[] = {"identifier"};
+String LUACall_Defaults[] = {""};
+String LUACall_Invites[] = {"LUA function name:"};
+String * LUACall_Lists[] = {0};
+String * LUACall_Descs[] = {0};
+
+class ReloadLUA : public Message {
+ public:
+ ReloadLUA(const String & title = "Reloading " + server_fname, const String & url = "reloadlua");
+ virtual ~ReloadLUA() { }
+ virtual Task * Do(Variables *, Variables *, Handle *);
+
+ private:
+};
+
+ReloadLUA::ReloadLUA(const String & _title, const String & _url) : Message(_title, "Reloading " + server_fname + " in progress.", _url, 0) {
+}
+
+Task * ReloadLUA::Do(Variables * v, Variables * headers, Handle * h) {
+ L->load(&Input(server_fname));
+ return Message::Do(v, headers, h);
+}
+
+class LUACall : public Message {
+ public:
+ LUACall(const String & title = "Calling a function.", const String & url = "luacall");
+ virtual ~LUACall() { }
+ virtual Task * Do(Variables *, Variables *, Handle *);
+};
+
+LUACall::LUACall(const String & _title, const String & _url) : Message(_title, "Function call in progress...", _url, 0) {
+}
+
+Task * LUACall::Do(Variables * v, Variables * headers, Handle * h) {
+ static const Regex ValidIdentifier("[a-zA-Z0-9_.:]*");
+
+ if (ValidIdentifier.Match((*v)["identifier"])) {
+ new LuaTask(L, (*v)["identifier"] + "()");
+ }
+ return Message::Do(v, headers, h);
+}
+
+CODE_BEGINS
+
+/* That's the basic lua starter for non interactive mode */
+Lua * start_basic_lua(void) {
+ L = new Lua();
+
+ L->open_base();
+ L->open_math();
+ L->open_string();
+ L->open_table();
+ L->open_dir();
+
+ L->push("print");
+ L->push(myprint);
+ L->setvar();
+
+ L->push("hash");
+ L->push(lua_elf_hash);
+ L->setvar();
+
+ Luabaselua_interface::pushstatics(L);
+
+ return L;
+}
+
+/* That's the extended stuff for interactive mode */
+Lua * start_full_lua(void) {
+ Lua * L = start_basic_lua();
+
+ Lualua_interface::pushstatics(L);
+
+ return L;
+}
+
+void showbanner() {
+ printm(M_BARE,
+"Lua-Interface version " VERSION " (c) 2003-2008 Nicolas \"Pixel\" Noble\n"
+LUA_RELEASE " " LUA_COPYRIGHT "\n"
+#ifdef WIP
+"Special version Work In Progress, compiled the " __DATE__ " at " __TIME__ "\n"
+#endif
+"This is free software with ABSOLUTELY NO WARRANTY.\n"
+"\n");
+}
+
+void showhelp(bool longhelp = false) {
+ printm(M_BARE,
+"Usage:\n"
+"%s [options] [lua-script1] [lua-script2] ...\n"
+"\n"
+"Options:\n"
+" -v for verbose mode.\n"
+" -a <paq> to load an additionnal archive file.\n"
+" -c <out> to dump the compiled byte code to file.\n"
+" -d to enable debug mode (ie, do not strip)\n"
+" -i to start interactive mode.\n"
+" -l to turn off the exec on end line.\n"
+" -e <cmd> to execute this single command in LUA.\n"
+" -b to force the use of the built-in lua-interface.lua\n"
+" -g <log> to log into a file.\n"
+" -s start the built-in http server.\n"
+" -p <hp> http port to bind to.\n"
+" -t <tp> telnet port to bind to.\n"
+" -f <fil> filename of http server to use (server.lua by default).\n"
+" -h for a help page.\n"
+, argv[0]);
+
+ if (longhelp)
+ printm(M_BARE,
+"\n"
+"Verbose mode can be somewhat a floody thing.\n"
+"Options -i/-e and -c are mutually exclusive.\n"
+"Options -i, -s and -c are mutually exclusive.\n"
+"Options -i/-s and -e are NOT mutually exclusive. For example:\n"
+"\n"
+" $ %s -i -e \"main()\" somescript.lua\n"
+"\n"
+"This will first load the script 'somescript.lua', then execute main, and\n"
+"afterward, start the interactive mode.\n"
+"\n"
+"If a script contains inlined code, it will be run right after loading.\n"
+, argv[0]);
+}
+
+class lua_interface_printer_t : public printer_t {
+ public:
+ lua_interface_printer_t(Handle * h) : log(h) { }
+ virtual bool printm(int level, const char * format, va_list ap) {
+ char tmp[10241];
+
+ vsprintf(tmp, format, ap);
+
+ (*log) << tmp;
+
+ return true;
+ }
+ private:
+ Handle * log;
+};
+
+virtual int startup() throw (GeneralException) {
+ char c;
+
+ bool auto_exec = true, strip = true, todo = false, runit, write = false, builtin = false;
+ char * file = 0, * output = 0, * compile = 0, * exec = 0, * line_read = 0;
+ char prompt[10];
+ Lua * L = 0;
+ Buffer command;
+ String line, endline, hport = "1500", tport = "1550";
+ int pos;
+
+ verbosity = M_WARNING;
+
+ showbanner();
+
+ /* Let's start parsing options */
+
+ while ((c = getopt_long(argc, argv, "Hhva:c:dile:bg:st:p:f:", long_options, NULL)) != EOF) {
+ switch (c) {
+ case 'h':
+ case 'H':
+ case '?':
+ showhelp(true);
+ throw Exit(0);
+ case 'v':
+ verbosity = M_INFO;
+ break;
+ case 'a':
+ new Archive(optarg);
+ break;
+ case 'c':
+ compile = strdup(optarg);
+ break;
+ case 'd':
+ strip = false;
+ break;
+ case 'i':
+ interactive = true;
+ todo = true;
+ break;
+ case 'l':
+ auto_exec = false;
+ break;
+ case 'e':
+ exec = strdup(optarg);
+ todo = true;
+ break;
+ case 'b':
+ builtin = true;
+ break;
+ case 'g':
+ printer = new lua_interface_printer_t(new Output(optarg));
+ break;
+ case 's':
+ server = true;
+ todo = true;
+ break;
+ case 'p':
+ hport = optarg;
+ break;
+ case 't':
+ tport = optarg;
+ break;
+ case 'f':
+ server_fname = optarg;
+ break;
+ case 0:
+ if (!getopt_flag) {
+ showhelp();
+ throw Exit(-1);
+ }
+ switch(getopt_flag) {
+ default:
+ throw GeneralException("Unknow option on command-line.");
+ }
+ getopt_flag = NO_OPTION;
+ break;
+ default:
+ showhelp();
+ throw Exit(-1);
+ }
+ }
+
+ if (interactive)
+ L = start_full_lua();
+ else
+ L = start_basic_lua();
+
+ /* Loading lua-interface.lua (only when not compiling) */
+ if (!compile && !builtin) {
+ try {
+ L->load(&Input("lua-interface.lua"));
+ }
+ catch (GeneralException e) {
+ printm(M_WARNING, "There was an error loading lua-interface.lua, using built-in: %s\n", e.GetMsg());
+ builtin = true;
+ }
+ }
+
+ if (!compile && builtin) {
+ Buffer built;
+ built.write(lua_interface_lua, lua_interface_lua_size);
+
+ try {
+ L->load(&built);
+ }
+ catch (GeneralException e) {
+ printm(M_WARNING, "There was an error loading built-in lua-interface.lua: %s\n", e.GetMsg());
+ }
+ }
+
+ /* Loading all the scripts */
+ while (optind < argc) {
+ todo = true;
+ L->load(&Input(argv[optind++]), !compile);
+ }
+
+ /* Doh... */
+ if (!todo) {
+ showhelp();
+ throw Exit(0);
+ }
+
+ /* Compilation process will exit from itself right after */
+ if (compile) {
+ L->dump(&Output(compile), strip);
+ throw Exit(0);
+ }
+
+ /* One shot command */
+ if (exec) {
+ command << exec;
+ L->load(&command);
+ }
+
+ if (server) {
+ HttpServ * httpserv = new HttpServ(new Message("Welcome", "Welcome.", "start"), hport.to_int(), "Lua Interface");
+ new Form("LUACall", "luacallform", "Enter the function name to call", LUACall_Names, LUACall_Invites, LUACall_Defaults, LUACall_Lists, LUACall_Descs, 1, new LUACall());
+ new ReloadLUA();
+ new LuaCommandLine(L, tport.to_int());
+ L->load(&Input(server_fname));
+
+ StartTaskLoop(0);
+ }
+
+ if (!interactive)
+ Exit(0);
+
+ /* Interactive mode loop */
+ strcpy(prompt, "> ");
+#ifdef _WIN32
+ rl_getc_function = my_getc;
+#endif
+ rl_bind_key('\t', rl_insert);
+ while (interactive) {
+ /* Basic usage of readline */
+ if (line_read)
+ free(line_read);
+
+ line_read = readline(prompt);
+
+ if (!line_read) {
+ printm(M_BARE, "\n");
+ break;
+ }
+
+ if (*line_read)
+ add_history(line_read);
+
+ line = line_read;
+ line = line.trim();
+ endline = "";
+
+ /* Splitting the line between ;; */
+ while (line.strlen()) {
+ runit = false;
+
+ if ((pos = line.strstr(";;")) >= 0) {
+ endline = line.extract(pos + 2);
+ line = line.extract(0, pos);
+ runit = true;
+ } else {
+ endline = "";
+ }
+
+ if (line[line.strlen() - 1] == '\\') {
+ line[line.strlen() - 1] = ' ';
+ } else if (auto_exec) {
+ runit = true;
+ }
+
+ command << line;
+
+ if (runit) {
+ try {
+ L->load(&command);
+ }
+ catch (LuaException e) {
+ /* If there was an error, ignore it, and free the stack */
+ while(L->gettop())
+ L->pop();
+ printm(M_ERROR, "%s\n", e.GetMsg());
+ }
+ catch (GeneralException e) {
+ /* A more severe exception... */
+ while(L->gettop())
+ L->pop();
+ printm(M_ERROR, "Aborted. LUA caused the following exception: %s\n", e.GetMsg());
+ }
+ strcpy(prompt, "> ");
+ } else {
+ strcpy(prompt, "- ");
+ command << "\n";
+ }
+ line = endline.trim();
+ }
+ }
+
+ return 0;
+}
+CODE_ENDS