[Scummvm-git-logs] scummvm master -> 91c463184d9a2ed429baae343039f28c9671d523

athrxx athrxx at scummvm.org
Wed Nov 14 18:47:25 CET 2018


This automated email contains information about 12 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
cc25424dae AUDIO: (FM-TOWNS) - add error codes
506f900f94 KYRA: minor cleanup
f67ca1ba47 AUDIO: (FM-TOWNS) - remove wave memory limit
35126dba8a KYRA: (EOB) - minor cleanup of shape drawing code
e4e5e68f0d KYRA: implement SJIS features required for EOB II FM-Towns
16ead6f58a KYRA: add 16bit mode required for EOB II FM-TOWNS
61bd730bcf KYRA: (EOB) - fix thumbnails for special cases
f49eaa5654 KYRA: (EOB) - add support for FM-Towns version of EOB II
4cce54efee KYRA: (EOB) - fix load menu graphics glitch
b81493718e KYRA: (EOB) - fix 16 bit mouse cursor color key
09f513fb11 KYRA: (EOB) - fix minor graphics glitch in FM-TOWNS version
91c463184d KYRA: (EOB II FM-TOWNS) - fix mouse cursor hot spot


Commit: cc25424dae4b0accad45cc40280f99cca384a15d
    https://github.com/scummvm/scummvm/commit/cc25424dae4b0accad45cc40280f99cca384a15d
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:19+01:00

Commit Message:
AUDIO: (FM-TOWNS) - add error codes

Changed paths:
    audio/softsynth/fmtowns_pc98/towns_audio.cpp
    audio/softsynth/fmtowns_pc98/towns_audio.h


diff --git a/audio/softsynth/fmtowns_pc98/towns_audio.cpp b/audio/softsynth/fmtowns_pc98/towns_audio.cpp
index 42824d8..2506e02 100644
--- a/audio/softsynth/fmtowns_pc98/towns_audio.cpp
+++ b/audio/softsynth/fmtowns_pc98/towns_audio.cpp
@@ -1940,14 +1940,14 @@ bool TownsAudioInterface::init() {
 	return _intf->init();
 }
 
-int TownsAudioInterface::callback(int command, ...) {
+TownsAudioInterface::ErrorCode TownsAudioInterface::callback(int command, ...) {
 	va_list args;
 	va_start(args, command);
 
 	int res = _intf->processCommand(command, args);
 
 	va_end(args);
-	return res;
+	return (TownsAudioInterface::ErrorCode)res;
 }
 
 void TownsAudioInterface::setMusicVolume(int volume) {
diff --git a/audio/softsynth/fmtowns_pc98/towns_audio.h b/audio/softsynth/fmtowns_pc98/towns_audio.h
index 0003f02..ba13bd1 100644
--- a/audio/softsynth/fmtowns_pc98/towns_audio.h
+++ b/audio/softsynth/fmtowns_pc98/towns_audio.h
@@ -40,9 +40,23 @@ public:
 	TownsAudioInterface(Audio::Mixer *mixer, TownsAudioInterfacePluginDriver *driver, bool externalMutexHandling = false);
 	~TownsAudioInterface();
 
+	enum ErrorCode {
+		kSuccess = 0,
+		kInvalidChannel,
+		kUnavailable,
+		kArgumentOutOfRange,
+		kNotImplemented,
+		kOutOfWaveMemory,
+		kInvalidWaveTable,
+		kChannelNotReserved,
+		kNoteOutOfRangeForInstrument,
+		kNoMatchingWaveTable,
+		kDuplicateWaveTable
+	};
+
 	bool init();
 
-	int callback(int command, ...);
+	ErrorCode callback(int command, ...);
 
 	void setMusicVolume(int volume);
 	void setSoundEffectVolume(int volume);


Commit: 506f900f9446cc7df91c0384e70e4dc7a98cc43a
    https://github.com/scummvm/scummvm/commit/506f900f9446cc7df91c0384e70e4dc7a98cc43a
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:19+01:00

Commit Message:
KYRA: minor cleanup

(rename some variables in Screen::drawShape for better readability)

Changed paths:
    engines/kyra/screen.cpp
    engines/kyra/screen.h


diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp
index 584b0e2..c994f47 100644
--- a/engines/kyra/screen.cpp
+++ b/engines/kyra/screen.cpp
@@ -1388,28 +1388,28 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
 		1, 3, 2, 5, 4, 3, 2, 1
 	};
 
-	_dsTable = 0;
-	_dsTableLoopCount = 0;
-	_dsTable2 = 0;
-	_dsTable3 = 0;
-	_dsTable4 = 0;
-	_dsTable5 = 0;
+	_dsShapeFadingTable = 0;
+	_dsShapeFadingLevel = 0;
+	_dsColorTable = 0;
+	_dsTransparencyTable1 = 0;
+	_dsTransparencyTable2 = 0;
+	_dsBackgroundFadingTable = 0;
 	_dsDrawLayer = 0;
 
-	if (flags & 0x8000) {
-		_dsTable2 = va_arg(args, uint8 *);
+	if (flags & DSF_CUSTOM_PALETTE) {
+		_dsColorTable = va_arg(args, uint8 *);
 	}
 
-	if (flags & 0x100) {
-		_dsTable = va_arg(args, uint8 *);
-		_dsTableLoopCount = va_arg(args, int);
-		if (!_dsTableLoopCount)
-			flags &= ~0x100;
+	if (flags & DSF_SHAPE_FADING) {
+		_dsShapeFadingTable = va_arg(args, uint8 *);
+		_dsShapeFadingLevel = va_arg(args, int);
+		if (!_dsShapeFadingLevel)
+			flags &= ~DSF_SHAPE_FADING;
 	}
 
-	if (flags & 0x1000) {
-		_dsTable3 = va_arg(args, uint8 *);
-		_dsTable4 = va_arg(args, uint8 *);
+	if (flags & DSF_TRANSPARENCY) {
+		_dsTransparencyTable1 = va_arg(args, uint8 *);
+		_dsTransparencyTable2 = va_arg(args, uint8 *);
 	}
 
 	if (flags & 0x200) {
@@ -1433,8 +1433,8 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
 		_dsScaleH = 0x100;
 	}
 
-	if ((flags & 0x2000) && _vm->game() != GI_KYRA1)
-		_dsTable5 = va_arg(args, uint8 *);
+	if ((flags & DSF_BACKGROUND_FADING) && _vm->game() != GI_KYRA1)
+		_dsBackgroundFadingTable = va_arg(args, uint8 *);
 
 	va_end(args);
 
@@ -1571,7 +1571,7 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
 	int colorTableColors = ((_vm->game() != GI_KYRA1) && (shapeFlags & 4)) ? *src++ : 16;
 
 	if (!(flags & 0x8000) && (shapeFlags & 1))
-		_dsTable2 = src;
+		_dsColorTable = src;
 
 	if (flags & 0x400)
 		src += colorTableColors;
@@ -1924,8 +1924,8 @@ void Screen::drawShapePlotType0(uint8 *dst, uint8 cmd) {
 }
 
 void Screen::drawShapePlotType1(uint8 *dst, uint8 cmd) {
-	for (int i = 0; i < _dsTableLoopCount; ++i)
-		cmd = _dsTable[cmd];
+	for (int i = 0; i < _dsShapeFadingLevel; ++i)
+		cmd = _dsShapeFadingTable[cmd];
 
 	if (cmd)
 		*dst = cmd;
@@ -1933,21 +1933,21 @@ void Screen::drawShapePlotType1(uint8 *dst, uint8 cmd) {
 
 void Screen::drawShapePlotType3_7(uint8 *dst, uint8 cmd) {
 	cmd = *dst;
-	for (int i = 0; i < _dsTableLoopCount; ++i)
-		cmd = _dsTable[cmd];
+	for (int i = 0; i < _dsShapeFadingLevel; ++i)
+		cmd = _dsShapeFadingTable[cmd];
 
 	if (cmd)
 		*dst = cmd;
 }
 
 void Screen::drawShapePlotType4(uint8 *dst, uint8 cmd) {
-	*dst = _dsTable2[cmd];
+	*dst = _dsColorTable[cmd];
 }
 
 void Screen::drawShapePlotType5(uint8 *dst, uint8 cmd) {
-	cmd = _dsTable2[cmd];
-	for (int i = 0; i < _dsTableLoopCount; ++i)
-		cmd = _dsTable[cmd];
+	cmd = _dsColorTable[cmd];
+	for (int i = 0; i < _dsShapeFadingLevel; ++i)
+		cmd = _dsShapeFadingTable[cmd];
 
 	if (cmd)
 		*dst = cmd;
@@ -1959,7 +1959,7 @@ void Screen::drawShapePlotType6(uint8 *dst, uint8 cmd) {
 		cmd = dst[_drawShapeVar3];
 		t &= 0xFF;
 	} else {
-		cmd = _dsTable2[cmd];
+		cmd = _dsColorTable[cmd];
 	}
 
 	_drawShapeVar4 = t;
@@ -1981,8 +1981,8 @@ void Screen::drawShapePlotType9(uint8 *dst, uint8 cmd) {
 	if (_dsDrawLayer < t) {
 		cmd = _shapePages[1][relOffs];
 	} else {
-		for (int i = 0; i < _dsTableLoopCount; ++i)
-			cmd = _dsTable[cmd];
+		for (int i = 0; i < _dsShapeFadingLevel; ++i)
+			cmd = _dsShapeFadingTable[cmd];
 	}
 
 	if (cmd)
@@ -1997,8 +1997,8 @@ void Screen::drawShapePlotType11_15(uint8 *dst, uint8 cmd) {
 		cmd = _shapePages[1][relOffs];
 	} else {
 		cmd = *dst;
-		for (int i = 0; i < _dsTableLoopCount; ++i)
-			cmd = _dsTable[cmd];
+		for (int i = 0; i < _dsShapeFadingLevel; ++i)
+			cmd = _dsShapeFadingTable[cmd];
 	}
 
 	if (cmd)
@@ -2011,7 +2011,7 @@ void Screen::drawShapePlotType12(uint8 *dst, uint8 cmd) {
 	if (_dsDrawLayer < t) {
 		cmd = _shapePages[1][relOffs];
 	} else {
-		cmd = _dsTable2[cmd];
+		cmd = _dsColorTable[cmd];
 	}
 
 	*dst = cmd;
@@ -2023,9 +2023,9 @@ void Screen::drawShapePlotType13(uint8 *dst, uint8 cmd) {
 	if (_dsDrawLayer < t) {
 		cmd = _shapePages[1][relOffs];
 	} else {
-		cmd = _dsTable2[cmd];
-		for (int i = 0; i < _dsTableLoopCount; ++i)
-			cmd = _dsTable[cmd];
+		cmd = _dsColorTable[cmd];
+		for (int i = 0; i < _dsShapeFadingLevel; ++i)
+			cmd = _dsShapeFadingTable[cmd];
 	}
 
 	if (cmd)
@@ -2043,7 +2043,7 @@ void Screen::drawShapePlotType14(uint8 *dst, uint8 cmd) {
 			cmd = dst[_drawShapeVar3];
 			t &= 0xFF;
 		} else {
-			cmd = _dsTable2[cmd];
+			cmd = _dsColorTable[cmd];
 		}
 	}
 
@@ -2052,29 +2052,29 @@ void Screen::drawShapePlotType14(uint8 *dst, uint8 cmd) {
 }
 
 void Screen::drawShapePlotType16(uint8 *dst, uint8 cmd) {
-	uint8 tOffs = _dsTable3[cmd];
+	uint8 tOffs = _dsTransparencyTable1[cmd];
 	if (!(tOffs & 0x80))
-		cmd = _dsTable4[tOffs << 8 | *dst];
+		cmd = _dsTransparencyTable2[tOffs << 8 | *dst];
 	*dst = cmd;
 }
 
 void Screen::drawShapePlotType20(uint8 *dst, uint8 cmd) {
-	cmd = _dsTable2[cmd];
-	uint8 tOffs = _dsTable3[cmd];
+	cmd = _dsColorTable[cmd];
+	uint8 tOffs = _dsTransparencyTable1[cmd];
 	if (!(tOffs & 0x80))
-		cmd = _dsTable4[tOffs << 8 | *dst];
+		cmd = _dsTransparencyTable2[tOffs << 8 | *dst];
 
 	*dst = cmd;
 }
 
 void Screen::drawShapePlotType21(uint8 *dst, uint8 cmd) {
-	cmd = _dsTable2[cmd];
-	uint8 tOffs = _dsTable3[cmd];
+	cmd = _dsColorTable[cmd];
+	uint8 tOffs = _dsTransparencyTable1[cmd];
 	if (!(tOffs & 0x80))
-		cmd = _dsTable4[tOffs << 8 | *dst];
+		cmd = _dsTransparencyTable2[tOffs << 8 | *dst];
 
-	for (int i = 0; i < _dsTableLoopCount; ++i)
-		cmd = _dsTable[cmd];
+	for (int i = 0; i < _dsShapeFadingLevel; ++i)
+		cmd = _dsShapeFadingTable[cmd];
 
 	if (cmd)
 		*dst = cmd;
@@ -2082,23 +2082,23 @@ void Screen::drawShapePlotType21(uint8 *dst, uint8 cmd) {
 
 void Screen::drawShapePlotType33(uint8 *dst, uint8 cmd) {
 	if (cmd == 255) {
-		*dst = _dsTable5[*dst];
+		*dst = _dsBackgroundFadingTable[*dst];
 	} else {
-		for (int i = 0; i < _dsTableLoopCount; ++i)
-			cmd = _dsTable[cmd];
+		for (int i = 0; i < _dsShapeFadingLevel; ++i)
+			cmd = _dsShapeFadingTable[cmd];
 		if (cmd)
 			*dst = cmd;
 	}
 }
 
 void Screen::drawShapePlotType37(uint8 *dst, uint8 cmd) {
-	cmd = _dsTable2[cmd];
+	cmd = _dsColorTable[cmd];
 
 	if (cmd == 255) {
-		cmd = _dsTable5[*dst];
+		cmd = _dsBackgroundFadingTable[*dst];
 	} else {
-		for (int i = 0; i < _dsTableLoopCount; ++i)
-			cmd = _dsTable[cmd];
+		for (int i = 0; i < _dsShapeFadingLevel; ++i)
+			cmd = _dsShapeFadingTable[cmd];
 	}
 
 	if (cmd)
@@ -2106,18 +2106,18 @@ void Screen::drawShapePlotType37(uint8 *dst, uint8 cmd) {
 }
 
 void Screen::drawShapePlotType48(uint8 *dst, uint8 cmd) {
-	uint8 offs = _dsTable3[cmd];
+	uint8 offs = _dsTransparencyTable1[cmd];
 	if (!(offs & 0x80))
-		cmd = _dsTable4[(offs << 8) | *dst];
+		cmd = _dsTransparencyTable2[(offs << 8) | *dst];
 	*dst = cmd;
 }
 
 void Screen::drawShapePlotType52(uint8 *dst, uint8 cmd) {
-	cmd = _dsTable2[cmd];
-	uint8 offs = _dsTable3[cmd];
+	cmd = _dsColorTable[cmd];
+	uint8 offs = _dsTransparencyTable1[cmd];
 
 	if (!(offs & 0x80))
-		cmd = _dsTable4[(offs << 8) | *dst];
+		cmd = _dsTransparencyTable2[(offs << 8) | *dst];
 
 	*dst = cmd;
 }
diff --git a/engines/kyra/screen.h b/engines/kyra/screen.h
index 31b77b4..b58371c 100644
--- a/engines/kyra/screen.h
+++ b/engines/kyra/screen.h
@@ -382,7 +382,12 @@ public:
 		DSF_Y_FLIPPED  = 0x02,
 		DSF_SCALE      = 0x04,
 		DSF_WND_COORDS = 0x10,
-		DSF_CENTER     = 0x20
+		DSF_CENTER     = 0x20,
+
+		DSF_SHAPE_FADING		= 0x100,
+		DSF_TRANSPARENCY		= 0x1000,
+		DSF_BACKGROUND_FADING	= 0x2000,
+		DSF_CUSTOM_PALETTE		= 0x8000
 	};
 
 	enum FontId {
@@ -668,12 +673,12 @@ protected:
 	DsLineFunc _dsProcessLine;
 	DsPlotFunc _dsPlot;
 
-	const uint8 *_dsTable;
-	int _dsTableLoopCount;
-	const uint8 *_dsTable2;
-	const uint8 *_dsTable3;
-	const uint8 *_dsTable4;
-	const uint8 *_dsTable5;
+	const uint8 *_dsShapeFadingTable;
+	int _dsShapeFadingLevel;
+	const uint8 *_dsColorTable;
+	const uint8 *_dsTransparencyTable1;
+	const uint8 *_dsTransparencyTable2;
+	const uint8 *_dsBackgroundFadingTable;
 	int _dsDrawLayer;
 	uint8 *_dsDstPage;
 	int _dsTmpWidth;


Commit: f67ca1ba4704d450a4a2b3139da46da135122c0e
    https://github.com/scummvm/scummvm/commit/f67ca1ba4704d450a4a2b3139da46da135122c0e
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:19+01:00

Commit Message:
AUDIO: (FM-TOWNS) - remove wave memory limit

(This is basically an unnecessary emulation of a hardware limitation. EOB II will try to load approximately 70 KByte of samples for the outro sequence, which would lead to some missing sounds with the 64 Kbyte limit).

Changed paths:
    audio/softsynth/fmtowns_pc98/towns_audio.cpp


diff --git a/audio/softsynth/fmtowns_pc98/towns_audio.cpp b/audio/softsynth/fmtowns_pc98/towns_audio.cpp
index 2506e02..7d61631 100644
--- a/audio/softsynth/fmtowns_pc98/towns_audio.cpp
+++ b/audio/softsynth/fmtowns_pc98/towns_audio.cpp
@@ -728,7 +728,11 @@ int TownsAudioInterfaceInternal::intf_loadSamples(va_list &args) {
 	if (dest >= 65536 || size == 0 || size > 65536)
 		return 3;
 	if (size + dest > 65536)
-		return 5;
+		// EOB II FM-TOWNS tries to load more than 65536 bytes of wave sounds for the outro sequence.
+		// This means that some sfx would not play. Since we don't really need the memory limit,
+		// I have commented out the error return and added a warning instead.
+		warning("FM-TOWNS AUDIO: exceeding wave memory size by %d bytes", size + dest - 65536);
+		// return 5;
 
 	int dwIndex = _numWaveTables - 1;
 	for (uint32 t = _waveTablesTotalDataSize; dwIndex && (dest < t); dwIndex--)
@@ -796,9 +800,13 @@ int TownsAudioInterfaceInternal::intf_loadWaveTable(va_list &args) {
 	s->readHeader(data);
 
 	_waveTablesTotalDataSize += s->size;
-	callback(32, _waveTablesTotalDataSize, s->size, data + 32);
+	int res = callback(32, _waveTablesTotalDataSize, s->size, data + 32);
+	if (res) {
+		_waveTablesTotalDataSize -= s->size;
+		_numWaveTables--;
+	}
 
-	return 0;
+	return res;
 }
 
 int TownsAudioInterfaceInternal::intf_unloadWaveTable(va_list &args) {


Commit: 35126dba8a22aea3b0235ffbe5ae9df2ad248f7b
    https://github.com/scummvm/scummvm/commit/35126dba8a22aea3b0235ffbe5ae9df2ad248f7b
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:19+01:00

Commit Message:
KYRA: (EOB) - minor cleanup of shape drawing code

Changed paths:
    engines/kyra/eobcommon.cpp
    engines/kyra/eobcommon.h
    engines/kyra/gui_eob.cpp
    engines/kyra/items_eob.cpp
    engines/kyra/scene_eob.cpp
    engines/kyra/screen_eob.cpp
    engines/kyra/screen_eob.h
    engines/kyra/sequences_darkmoon.cpp
    engines/kyra/sprites_eob.cpp


diff --git a/engines/kyra/eobcommon.cpp b/engines/kyra/eobcommon.cpp
index d5327c8..4f5dfcd 100644
--- a/engines/kyra/eobcommon.cpp
+++ b/engines/kyra/eobcommon.cpp
@@ -114,6 +114,8 @@ EoBCoreEngine::EoBCoreEngine(OSystem *system, const GameFlags &flags)
 	_dscDoorY1 = 0;
 	_dscDoorXE = 0;
 
+	_greenFadingTable = _blueFadingTable = _lightBlueFadingTable = _blackFadingTable = _greyFadingTable = 0;
+
 	_menuDefs = 0;
 
 	_exchangeCharacterId = -1;
@@ -297,6 +299,12 @@ EoBCoreEngine::~EoBCoreEngine() {
 	delete[] _levelDecorationRects;
 	_dscWallMapping.clear();
 
+	delete[] _greenFadingTable;
+	delete[] _blueFadingTable;
+	delete[] _lightBlueFadingTable;
+	delete[] _blackFadingTable;
+	delete[] _greyFadingTable;
+
 	delete[] _spells;
 	delete[] _spellAnimBuffer;
 	delete[] _wallsOfForce;
@@ -447,6 +455,12 @@ Common::Error EoBCoreEngine::init() {
 
 	_wllVcnOffset = 16;
 
+	_greenFadingTable = new uint8[256];
+	_blueFadingTable = new uint8[256];
+	_lightBlueFadingTable = new uint8[256];
+	_blackFadingTable = new uint8[256];
+	_greyFadingTable = new uint8[256];
+
 	_monsters = new EoBMonsterInPlay[30];
 	memset(_monsters, 0, 30 * sizeof(EoBMonsterInPlay));
 
@@ -842,7 +856,7 @@ void EoBCoreEngine::setHandItem(Item itemIndex) {
 	const uint8 *ovl = 0;
 
 	if (icon && (_items[_itemInHand].flags & 0x80) && (_partyEffectFlags & 2))
-		ovl = _flags.gameID == GI_EOB1 ? ((_configRenderMode == Common::kRenderCGA) ? _itemsOverlayCGA : &_itemsOverlay[icon << 4]) : _screen->generateShapeOverlay(shp, 3);
+		ovl = _flags.gameID == GI_EOB1 ? ((_configRenderMode == Common::kRenderCGA) ? _itemsOverlayCGA : &_itemsOverlay[icon << 4]) : _screen->generateShapeOverlay(shp, _lightBlueFadingTable);
 
 	int mouseOffs = itemIndex ? 8 : 0;
 	_screen->setMouseCursor(mouseOffs, mouseOffs, shp, ovl);
diff --git a/engines/kyra/eobcommon.h b/engines/kyra/eobcommon.h
index 157c820..810b792 100644
--- a/engines/kyra/eobcommon.h
+++ b/engines/kyra/eobcommon.h
@@ -639,6 +639,12 @@ protected:
 	const uint8 *_dscDoorY1;
 	const uint8 *_dscDoorXE;
 
+	uint8 *_greenFadingTable;
+	uint8 *_blueFadingTable;
+	uint8 *_lightBlueFadingTable;
+	uint8 *_blackFadingTable;
+	uint8 *_greyFadingTable;
+
 	const uint8 *_wllFlagPreset;
 	int _wllFlagPresetSize;
 	const uint8 *_teleporterShapeCoords;
diff --git a/engines/kyra/gui_eob.cpp b/engines/kyra/gui_eob.cpp
index 968bca2..cdc5fba 100644
--- a/engines/kyra/gui_eob.cpp
+++ b/engines/kyra/gui_eob.cpp
@@ -236,18 +236,18 @@ void EoBCoreEngine::gui_drawFaceShape(int index) {
 		}
 	} else {
 		if (c->effectFlags & 0x140) {
-			_screen->setFadeTableIndex(1);
-			_screen->setShapeFadeMode(1, true);
+			_screen->setFadeTable(_blackFadingTable);
+			_screen->setShapeFadingLevel(1);
 		}
 
 		if (c->flags & 2) {
-			_screen->setFadeTableIndex(0);
-			_screen->setShapeFadeMode(1, true);
+			_screen->setFadeTable(_greenFadingTable);
+			_screen->setShapeFadingLevel(1);
 		}
 
 		if (c->flags & 8) {
-			_screen->setFadeTableIndex(2);
-			_screen->setShapeFadeMode(1, true);
+			_screen->setFadeTable(_blueFadingTable);
+			_screen->setShapeFadingLevel(1);
 		}
 	}
 
@@ -256,8 +256,8 @@ void EoBCoreEngine::gui_drawFaceShape(int index) {
 	if (c->hitPointsCur < 1)
 		_screen->drawShape(_screen->_curPage, _disabledCharGrid, x, y, 0);
 
-	_screen->setFadeTableIndex(4);
-	_screen->setShapeFadeMode(1, false);
+	_screen->setFadeTable(_greyFadingTable);
+	_screen->setShapeFadingLevel(0);
 }
 
 void EoBCoreEngine::gui_drawWeaponSlot(int charIndex, int slot) {
diff --git a/engines/kyra/items_eob.cpp b/engines/kyra/items_eob.cpp
index e2d4b1b..6ec9b33 100644
--- a/engines/kyra/items_eob.cpp
+++ b/engines/kyra/items_eob.cpp
@@ -468,16 +468,16 @@ void EoBCoreEngine::drawItemIconShape(int pageNum, Item itemId, int x, int y) {
 		if (_flags.gameID == GI_EOB1) {
 			ovl = (_configRenderMode == Common::kRenderCGA) ? _itemsOverlayCGA : &_itemsOverlay[icn << 4];
 		} else {
-			_screen->setFadeTableIndex(3);
-			_screen->setShapeFadeMode(1, true);
+			_screen->setFadeTable(_lightBlueFadingTable);
+			_screen->setShapeFadingLevel(1);
 		}
 	}
 
 	_screen->drawShape(pageNum, _itemIconShapes[icn], x, y, 0, ovl ? 2 : 0, ovl);
 
 	if (applyBluePal) {
-		_screen->setFadeTableIndex(4);
-		_screen->setShapeFadeMode(1, false);
+		_screen->setFadeTable(_greyFadingTable);
+		_screen->setShapeFadingLevel(0);
 	}
 }
 
diff --git a/engines/kyra/scene_eob.cpp b/engines/kyra/scene_eob.cpp
index 84822c3..6fac56f 100644
--- a/engines/kyra/scene_eob.cpp
+++ b/engines/kyra/scene_eob.cpp
@@ -168,8 +168,8 @@ Common::String EoBCoreEngine::initLevelData(int sub) {
 
 		if (_flags.gameID == GI_EOB1) {
 			pos += 11;
-			_screen->setShapeFadeMode(0, false);
-			_screen->setShapeFadeMode(1, false);
+			_screen->setShapeFadingLevel(0);
+			_screen->enableShapeBackgroundFading(false);
 		}
 
 		if (_flags.gameID == GI_EOB2 || _configRenderMode != Common::kRenderEGA)
@@ -181,14 +181,14 @@ Common::String EoBCoreEngine::initLevelData(int sub) {
 			_screen->getPalette(0).fill(224, 32, 0x3F);
 			uint8 *src = _screen->getPalette(0).getData();
 
-			_screen->createFadeTable(src, _screen->getFadeTable(0), 4, 75);     // green
-			_screen->createFadeTable(src, _screen->getFadeTable(1), 12, 200);   // black
-			_screen->createFadeTable(src, _screen->getFadeTable(2), 10, 85);    // blue
-			_screen->createFadeTable(src, _screen->getFadeTable(3), 11, 125);   // light blue
+			_screen->createFadeTable(src, _greenFadingTable, 4, 75);
+			_screen->createFadeTable(src, _blackFadingTable, 12, 200);
+			_screen->createFadeTable(src, _blueFadingTable, 10, 85);
+			_screen->createFadeTable(src, _lightBlueFadingTable, 11, 125);
 
 			_screen->getPalette(0).copy(backupPal, 224, 32, 224);
-			_screen->createFadeTable(src, _screen->getFadeTable(4), 12, 85);    // grey (shadow)
-			_screen->setFadeTableIndex(4);
+			_screen->createFadeTable(src, _greyFadingTable, 12, 85);
+			_screen->setFadeTable(_greyFadingTable);
 			if (_flags.gameID == GI_EOB2 && _configRenderMode == Common::kRenderEGA)
 				_screen->setScreenPalette(_screen->getPalette(0));
 		}
diff --git a/engines/kyra/screen_eob.cpp b/engines/kyra/screen_eob.cpp
index 3a9a647..6553ffa 100644
--- a/engines/kyra/screen_eob.cpp
+++ b/engines/kyra/screen_eob.cpp
@@ -38,10 +38,10 @@
 namespace Kyra {
 
 Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system, _screenDimTable, _screenDimTableCount) {
-	_shapeFadeMode[0] = _shapeFadeMode[1] = 0;
-	_shapeFadeInternal = 0;
-	_fadeData = 0;
-	_fadeDataIndex = 0;
+	_dsBackgroundFading = false;
+	_dsShapeFadingLevel = 0;
+	_dsBackgroundFadingXOffs = 0;
+	_dsShapeFadingTable = 0;
 	_dsX1 = _dsX2 = _dsY1 = _dsY2 = 0;
 	_gfxX = _gfxY = 0;
 	_gfxCol = 0;
@@ -59,7 +59,6 @@ Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system,
 }
 
 Screen_EoB::~Screen_EoB() {
-	delete[] _fadeData;
 	delete[] _dsTempPage;
 	delete[] _cgaScaleTable;
 	delete[] _egaDitheringTable;
@@ -73,20 +72,6 @@ bool Screen_EoB::init() {
 		int temp;
 		_gfxMaxY = _vm->staticres()->loadRawData(kEoBBaseExpObjectY, temp);
 
-		if (_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA)
-			_fadeData = _vm->resource()->fileData("FADING.DAT", 0);
-
-		if (!_fadeData) {
-			_fadeData = new uint8[0x700];
-			memset(_fadeData, 0, 0x700);
-			if (_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA) {
-				uint8 *pal = _vm->resource()->fileData("PALETTE1.PAL", 0);
-				for (int i = 0; i < 7; i++)
-					createFadeTable(pal, &_fadeData[i << 8], 18, (i + 1) * 36);
-				delete[] pal;
-			}
-		}
-
 		_dsTempPage = new uint8[12000];
 
 		if (_vm->gameFlags().useHiRes && _renderMode == Common::kRenderEGA) {
@@ -379,7 +364,7 @@ uint8 *Screen_EoB::encodeShape(uint16 x, uint16 y, uint16 w, uint16 h, bool enco
 		memset(shp, 0, shapesize);
 		uint8 *dst = shp;
 
-		*dst++ = 8;
+		*dst++ = 1;
 		*dst++ = (h & 0xFF);
 		*dst++ = (w & 0xFF);
 		*dst++ = (h & 0xFF);
@@ -483,11 +468,6 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
 	if (!src)
 		return;
 
-	va_list args;
-	va_start(args, flags);
-	uint8 *ovl = (flags & 2) ? va_arg(args, uint8 *) : 0;
-	va_end(args);
-
 	if (sd != -1) {
 		const ScreenDim *dm = getScreenDim(sd);
 		setShapeFrame(dm->sx, dm->sy, dm->sx + dm->w, dm->sy + dm->h);
@@ -495,12 +475,22 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
 		y += _dsY1;
 	}
 
+	uint8 *ovl = 0;
+
+	va_list args;
+	va_start(args, flags);
+	if (flags & 2) {
+		ovl = va_arg(args, uint8 *);
+		_dsBackgroundFadingXOffs = x;
+	}
+	va_end(args);
+
 	dst += (_dsX1 << 3);
 	int16 dX = x - (_dsX1 << 3);
 	int16 dY = y;
 	int16 dW = _dsX2 - _dsX1;
+	
 	uint8 pixelsPerByte = *src++;
-
 	uint16 dH = *src++;
 	uint16 width = (*src++) << 3;
 	uint16 transOffset = (pixelsPerByte == 4) ? (dH * width) >> 2 : 0;
@@ -516,7 +506,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
 
 	int pixelStep = (flags & 1) ? -1 : 1;
 
-	if (pixelsPerByte == 8)  {
+	if (pixelsPerByte == 1)  {
 		uint16 marginLeft = 0;
 		uint16 marginRight = 0;
 
@@ -773,7 +763,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
 }
 
 const uint8 *Screen_EoB::scaleShape(const uint8 *shapeData, int steps) {
-	setShapeFadeMode(1, steps ? true : false);
+	setShapeFadingLevel(steps);
 
 	while (shapeData && steps--)
 		shapeData = scaleShapeStep(shapeData);
@@ -842,14 +832,13 @@ const uint8 *Screen_EoB::scaleShapeStep(const uint8 *shp) {
 	return (const uint8 *)dst;
 }
 
-const uint8 *Screen_EoB::generateShapeOverlay(const uint8 *shp, int paletteOverlayIndex) {
+const uint8 *Screen_EoB::generateShapeOverlay(const uint8 *shp, const uint8 *fadingTable) {
 	if (*shp != 2)
 		return 0;
 
 	shp += 4;
-	uint8 *ovl = getFadeTable(paletteOverlayIndex);
 	for (int i = 0; i < 16; i++)
-		_shapeOverlay[i] = ovl[shp[i]];
+		_shapeOverlay[i] = fadingTable[shp[i]];
 	return _shapeOverlay;
 }
 
@@ -860,9 +849,12 @@ void Screen_EoB::setShapeFrame(int x1, int y1, int x2, int y2) {
 	_dsY2 = y2;
 }
 
-void Screen_EoB::setShapeFadeMode(uint8 i, bool b) {
-	if (!i || i == 1)
-		_shapeFadeMode[i] = b;
+void Screen_EoB::enableShapeBackgroundFading(bool enable) {
+	_dsBackgroundFading = enable;
+}
+
+void Screen_EoB::setShapeFadingLevel(int level) {
+	_dsShapeFadingLevel = level;
 }
 
 void Screen_EoB::setGfxParameters(int x, int y, int col) {
@@ -1171,8 +1163,8 @@ int Screen_EoB::getRectSize(int w, int h) {
 	return w * h;
 }
 
-void Screen_EoB::setFadeTableIndex(int index) {
-	_fadeDataIndex = (CLIP(index, 0, 7) << 8);
+void Screen_EoB::setFadeTable(const uint8 *table) {
+	_dsShapeFadingTable = table;
 }
 
 void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight) {
@@ -1218,10 +1210,6 @@ void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, ui
 	}
 }
 
-uint8 *Screen_EoB::getFadeTable(int index) {
-	return (index >= 0 && index < 5) ? &_fadeData[index << 8] : 0;
-}
-
 const uint16 *Screen_EoB::getCGADitheringTable(int index) {
 	return !(index & ~1) ? _cgaDitheringTables[index] : 0;
 }
@@ -1273,19 +1261,19 @@ void Screen_EoB::ditherRect(const uint8 *src, uint8 *dst, int dstPitch, int srcW
 
 void Screen_EoB::drawShapeSetPixel(uint8 *dst, uint8 col) {
 	if ((_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA) || _useHiResEGADithering) {
-		if (_shapeFadeMode[0]) {
-			if (_shapeFadeMode[1]) {
+		if (_dsBackgroundFading) {
+			if (_dsShapeFadingLevel) {
 				col = *dst;
 			} else {
-				_shapeFadeInternal &= 7;
-				col = *(dst + _shapeFadeInternal++);
+				_dsBackgroundFadingXOffs &= 7;
+				col = *(dst + _dsBackgroundFadingXOffs++);
 			}
 		}
 
-		if (_shapeFadeMode[1]) {
-			uint8 cnt = _shapeFadeMode[1];
+		if (_dsShapeFadingLevel) {
+			uint8 cnt = _dsShapeFadingLevel;
 			while (cnt--)
-				col = _fadeData[_fadeDataIndex + col];
+				col = _dsShapeFadingTable[col];
 		}
 	}
 
diff --git a/engines/kyra/screen_eob.h b/engines/kyra/screen_eob.h
index 3634ae1..42c7e59 100644
--- a/engines/kyra/screen_eob.h
+++ b/engines/kyra/screen_eob.h
@@ -59,10 +59,11 @@ public:
 	void drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int sd = -1, int flags = 0, ...);
 	const uint8 *scaleShape(const uint8 *shapeData, int blockDistance);
 	const uint8 *scaleShapeStep(const uint8 *shp);
-	const uint8 *generateShapeOverlay(const uint8 *shp, int paletteOverlayIndex);
+	const uint8 *generateShapeOverlay(const uint8 *shp, const uint8 *fadingTable);
 
 	void setShapeFrame(int x1, int y1, int x2, int y2);
-	void setShapeFadeMode(uint8 i, bool b);
+	void enableShapeBackgroundFading(bool enable);
+	void setShapeFadingLevel(int val);
 
 	void setGfxParameters(int x, int y, int col);
 	void drawExplosion(int scale, int radius, int numElements, int stepSize, int aspectRatio, const uint8 *colorTable, int colorTableSize);
@@ -74,10 +75,9 @@ public:
 	void setTextColorMap(const uint8 *cmap) {}
 	int getRectSize(int w, int h);
 
-	void setFadeTableIndex(int index);
+	void setFadeTable(const uint8 *table);
 	void createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight);
-	uint8 *getFadeTable(int index);
-
+	
 	const uint16 *getCGADitheringTable(int index);
 	const uint8 *getEGADitheringTable();
 
@@ -100,10 +100,9 @@ private:
 	const uint8 *_gfxMaxY;
 
 	int16 _dsX1, _dsX2, _dsY1, _dsY2;
-	bool _shapeFadeMode[2];
-	uint16 _shapeFadeInternal;
-	uint8 *_fadeData;
-	int _fadeDataIndex;
+	
+	bool _dsBackgroundFading;
+	int16 _dsBackgroundFadingXOffs;
 	uint8 _shapeOverlay[16];
 
 	uint8 *_dsTempPage;
diff --git a/engines/kyra/sequences_darkmoon.cpp b/engines/kyra/sequences_darkmoon.cpp
index 68d6f75..befa8aa 100644
--- a/engines/kyra/sequences_darkmoon.cpp
+++ b/engines/kyra/sequences_darkmoon.cpp
@@ -82,6 +82,7 @@ private:
 	const Config *_config;
 
 	Palette *_palettes[12];
+	uint8 *_fadingTables[7];
 
 	const uint8 **_shapes;
 
@@ -972,6 +973,27 @@ DarkmoonSequenceHelper::DarkmoonSequenceHelper(OSystem *system, DarkMoonEngine *
 	_palettes[11] = new Palette(256);
 	_palettes[11]->fill(0, 256, 0);
 
+	for (int i = 0; i < 7; i++)
+		_fadingTables[i] = 0;
+
+	uint8 *fadeData = (_vm->_configRenderMode != Common::kRenderCGA && _vm->_configRenderMode != Common::kRenderEGA) ? _vm->resource()->fileData("FADING.DAT", 0) : 0;
+	
+	if (fadeData) {
+		for (int i = 0; i < 7; i++) {
+			_fadingTables[i] = new uint8[256];
+			memcpy(_fadingTables[i], fadeData + (i << 8), 256);
+		}
+	} else {
+		if (_vm->_configRenderMode != Common::kRenderCGA && _vm->_configRenderMode != Common::kRenderEGA) {
+			uint8 *pal = _vm->resource()->fileData("PALETTE1.PAL", 0);
+			for (int i = 0; i < 7; i++)
+				_screen->createFadeTable(pal, _fadingTables[i], 18, (i + 1) * 36);
+			delete[] pal;
+		}
+	}
+
+	delete[] fadeData;
+
 	_shapes = new const uint8*[30];
 	memset(_shapes, 0, 30 * sizeof(uint8 *));
 
@@ -994,6 +1016,9 @@ DarkmoonSequenceHelper::~DarkmoonSequenceHelper() {
 	delete _palettes[10];
 	delete _palettes[11];
 
+	for (int i = 0; i < 7; i++)
+		delete[] _fadingTables[i];
+
 	for (int i = 0; i < 30; i++)
 		delete[] _shapes[i];
 	delete[] _shapes;
@@ -1152,13 +1177,13 @@ void DarkmoonSequenceHelper::animCommand(int index, int del) {
 				_screen->updateScreen();
 				delay(s->delay /** 7*/);
 			} else {
-				_screen->setShapeFadeMode(0, true);
-				_screen->setShapeFadeMode(1, true);
+				_screen->enableShapeBackgroundFading(true);
+				_screen->setShapeFadingLevel(1);
 
 				end = _system->getMillis() + s->delay * _vm->tickLength();
 
 				if (palIndex) {
-					_screen->setFadeTableIndex(palIndex - 1);
+					_screen->setFadeTable(_fadingTables[palIndex - 1]);
 
 					_screen->copyRegion(s->x1 - 8, s->y1 - 8, 0, 0, (_shapes[s->obj][2] + 1) << 3, _shapes[s->obj][3], 2, 4, Screen::CR_NO_P_CHECK);
 					_screen->drawShape(4, _shapes[s->obj], s->x1 & 7, 0, 0);
@@ -1169,8 +1194,8 @@ void DarkmoonSequenceHelper::animCommand(int index, int del) {
 				_screen->updateScreen();
 
 				_vm->delayUntil(end);
-				_screen->setShapeFadeMode(0, false);
-				_screen->setShapeFadeMode(1, false);
+				_screen->enableShapeBackgroundFading(false);
+				_screen->setShapeFadingLevel(0);
 			}
 			break;
 
diff --git a/engines/kyra/sprites_eob.cpp b/engines/kyra/sprites_eob.cpp
index 5a82cf6..c93bf0e 100644
--- a/engines/kyra/sprites_eob.cpp
+++ b/engines/kyra/sprites_eob.cpp
@@ -429,7 +429,7 @@ void EoBCoreEngine::drawBlockItems(int index) {
 					y += itemPosFin[(o >> 1) & 7];
 
 				drawBlockObject(0, 2, shp, x, y, 5);
-				_screen->setShapeFadeMode(1, false);
+				_screen->setShapeFadingLevel(0);
 			}
 		}
 
@@ -535,7 +535,7 @@ void EoBCoreEngine::drawMonsters(int index) {
 		drawMonsterShape(shp, x, y, f >= 0 ? 0 : 1, d->flags, palIndex);
 
 		if (_flags.gameID == GI_EOB1) {
-			_screen->setShapeFadeMode(1, false);
+			_screen->setShapeFadingLevel(0);
 			continue;
 		}
 
@@ -559,7 +559,7 @@ void EoBCoreEngine::drawMonsters(int index) {
 
 			drawMonsterShape(shp, x + ((f < 0) ? (w - dx - (shp[2] << 3)) : dx), y + dy, f >= 0 ? 0 : 1, d->flags, -1);
 		}
-		_screen->setShapeFadeMode(1, false);
+		_screen->setShapeFadingLevel(0);
 	}
 }
 
@@ -614,12 +614,12 @@ void EoBCoreEngine::drawFlyingObjects(int index) {
 		int flipped = 0;
 
 		if (sclValue < 0) {
-			_screen->setShapeFadeMode(1, false);
+			_screen->setShapeFadingLevel(0);
 			continue;
 		}
 
 		const uint8 *shp = 0;
-		bool rstFade = false;
+		bool noFade = false;
 
 		if (fo->enable == 1) {
 			int shpIx = _dscItemShapeMap[_items[fo->item].icon];
@@ -634,7 +634,7 @@ void EoBCoreEngine::drawFlyingObjects(int index) {
 			}
 
 		} else {
-			rstFade = true;
+			noFade = true;
 			shp = (fo->objectType < _numThrownItemShapes) ? _thrownItemShapes[fo->objectType] : _spellShapes[fo->objectType - _numThrownItemShapes];
 			flipped = _flightObjFlipIndex[(fo->direction << 2) + (fo->curPos & 3)];
 
@@ -648,16 +648,16 @@ void EoBCoreEngine::drawFlyingObjects(int index) {
 
 		shp = _screen->scaleShape(shp, sclValue);
 
-		if (rstFade) {
-			_screen->setShapeFadeMode(1, false);
-			rstFade = false;
+		if (noFade) {
+			_screen->setShapeFadingLevel(0);
+			noFade = false;
 		}
 
 		x -= (shp[2] << 2);
 		y -= (y == 44 ? (shp[1]  >> 1) : shp[1]);
 
 		drawBlockObject(flipped, 2, shp, x, y, 5);
-		_screen->setShapeFadeMode(1, false);
+		_screen->setShapeFadingLevel(0);
 	}
 }
 


Commit: e4e5e68f0dbec85bb28157e094a95ef33440a2ba
    https://github.com/scummvm/scummvm/commit/e4e5e68f0dbec85bb28157e094a95ef33440a2ba
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:20+01:00

Commit Message:
KYRA: implement SJIS features required for EOB II FM-Towns

- low res font drawing for intro and outro texts
- fat print mode for ingame texts

Changed paths:
    engines/kyra/screen.cpp
    engines/kyra/screen.h
    graphics/sjis.cpp
    graphics/sjis.h


diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp
index c994f47..bce45b2 100644
--- a/engines/kyra/screen.cpp
+++ b/engines/kyra/screen.cpp
@@ -141,7 +141,7 @@ bool Screen::init() {
 			if (!font)
 				error("Could not load any SJIS font, neither the original nor ScummVM's 'SJIS.FNT'");
 
-			_fonts[FID_SJIS_FNT] = new SJISFont(font, _sjisInvisibleColor, _use16ColorMode, !_use16ColorMode && _vm->game() != GI_LOL, !_use16ColorMode && _vm->game() == GI_LOL ? 1 : 0);
+			_fonts[FID_SJIS_FNT] = new SJISFont(font, _sjisInvisibleColor, _use16ColorMode, !_use16ColorMode && _vm->game() != GI_LOL && _vm->game() != GI_EOB2, _vm->game() == GI_EOB2 && _vm->gameFlags().platform == Common::kPlatformFMTowns, !_use16ColorMode && _vm->game() == GI_LOL ? 1 : 0);
 		}
 	}
 
@@ -3583,12 +3583,11 @@ void AMIGAFont::unload() {
 	memset(_chars, 0, sizeof(_chars));
 }
 
-SJISFont::SJISFont(Graphics::FontSJIS *font, const uint8 invisColor, bool is16Color, bool drawOutline, int extraSpacing)
-    : _colorMap(0), _font(font), _invisColor(invisColor), _is16Color(is16Color), _drawOutline(drawOutline), _sjisWidthOffset(extraSpacing) {
+SJISFont::SJISFont(Graphics::FontSJIS *font, const uint8 invisColor, bool is16Color, bool drawOutline, bool fatPrint, int extraSpacing)
+	: _colorMap(0), _font(font), _invisColor(invisColor), _is16Color(is16Color), _drawOutline(drawOutline), _sjisWidthOffset(extraSpacing) {
 	assert(_font);
-
 	_font->setDrawingMode(_drawOutline ? Graphics::FontSJIS::kOutlineMode : Graphics::FontSJIS::kDefaultMode);
-
+	_font->toggleFatPrint(fatPrint);
 	_sjisWidth = _font->getMaxFontWidth() >> 1;
 	_fontHeight = _font->getFontHeight() >> 1;
 	_asciiWidth = _font->getCharWidth('a') >> 1;
@@ -3641,6 +3640,16 @@ void SJISFont::drawChar(uint16 c, byte *dst, int pitch) const {
 	_font->drawChar(dst, c, 640, 1, color1, color2, 640, 400);
 }
 
+SJISFontLarge::SJISFontLarge(Graphics::FontSJIS *font) : SJISFont(font, 0, false, false, false, 0) {
+	_sjisWidth = _font->getMaxFontWidth();
+	_fontHeight = _font->getFontHeight();
+	_asciiWidth = _font->getCharWidth('a');
+}
+
+void SJISFontLarge::drawChar(uint16 c, byte *dst, int pitch) const {
+	_font->drawChar(dst, c, 320, 1, _colorMap[1], _colorMap[0], 320, 200);
+}
+
 #pragma mark -
 
 Palette::Palette(const int numColors) : _palData(0), _numColors(numColors) {
diff --git a/engines/kyra/screen.h b/engines/kyra/screen.h
index b58371c..0b287aa 100644
--- a/engines/kyra/screen.h
+++ b/engines/kyra/screen.h
@@ -211,34 +211,47 @@ private:
  */
 class SJISFont : public Font {
 public:
-	SJISFont(Graphics::FontSJIS *font, const uint8 invisColor, bool is16Color, bool drawOutline, int extraSpacing);
-	~SJISFont() { unload(); }
+	SJISFont(Graphics::FontSJIS *font, const uint8 invisColor, bool is16Color, bool drawOutline, bool fatPrint, int extraSpacing);
+	virtual ~SJISFont() { unload(); }
 
-	bool usesOverlay() const { return true; }
+	virtual bool usesOverlay() const { return true; }
 
 	bool load(Common::SeekableReadStream &) { return true; }
 	int getHeight() const;
 	int getWidth() const;
 	int getCharWidth(uint16 c) const;
 	void setColorMap(const uint8 *src);
-	void drawChar(uint16 c, byte *dst, int pitch) const;
-private:
+	virtual void drawChar(uint16 c, byte *dst, int pitch) const;
+
+protected:
 	void unload();
 
 	const uint8 *_colorMap;
+	Graphics::FontSJIS *_font;	
+	int _sjisWidth, _asciiWidth;
+	int _fontHeight;
+	const bool _drawOutline;
 
-	Graphics::FontSJIS *_font;
+private:
 	const uint8 _invisColor;
 	const bool _is16Color;
-	const bool _drawOutline;
 	// We use this for cases where the font width returned by getWidth() or getCharWidth() does not match the original.
 	// The original Japanese game versions use hard coded sjis font widths of 8 or 9. However, this does not necessarily
 	// depend on whether an outline is used or not (neither LOL/PC-9801 nor LOL/FM-TOWNS use an outline, but the first
 	// version uses a font width of 8 where the latter uses a font width of 9).
 	const int _sjisWidthOffset;
+};
 
-	int _sjisWidth, _asciiWidth;
-	int _fontHeight;
+/**
+* SJISFont variant used in the intro and outro of EOB II FM-Towns. It appears twice as large, since it is not rendered on the hires overlay pages
+*/
+class SJISFontLarge : public SJISFont {
+public:
+	SJISFontLarge(Graphics::FontSJIS *font);
+	virtual ~SJISFontLarge() { unload(); }
+
+	virtual bool usesOverlay() const { return false; }
+	virtual void drawChar(uint16 c, byte *dst, int pitch) const;
 };
 
 /**
@@ -400,6 +413,7 @@ public:
 		FID_GOLDFONT_FNT,
 		FID_INTRO_FNT,
 		FID_SJIS_FNT,
+		FID_SJIS_LARGE_FNT,
 		FID_NUM
 	};
 
diff --git a/graphics/sjis.cpp b/graphics/sjis.cpp
index 877f314..0c65492 100644
--- a/graphics/sjis.cpp
+++ b/graphics/sjis.cpp
@@ -71,7 +71,7 @@ void FontSJIS::drawChar(Graphics::Surface &dst, uint16 ch, int x, int y, uint32
 }
 
 FontSJISBase::FontSJISBase()
-	: _drawMode(kDefaultMode), _flippedMode(false), _fontWidth(16), _fontHeight(16), _bitPosNewLineMask(0) {
+: _drawMode(kDefaultMode), _flippedMode(false), _fatPrint(false), _fontWidth(16), _fontHeight(16), _bitPosNewLineMask(0) {
 }
 
 void FontSJISBase::setDrawingMode(DrawingMode mode) {
@@ -88,6 +88,13 @@ void FontSJISBase::toggleFlippedMode(bool enable) {
 		warning("Flipped mode unsupported by this font");
 }
 
+void FontSJISBase::toggleFatPrint(bool enable) {
+	if (hasFeature(kFeatFatPrint))
+		_fatPrint = enable;
+	else
+		warning("Fat print unsupported by this font");
+}
+
 uint FontSJISBase::getFontHeight() const {
 	switch (_drawMode) {
 	case kOutlineMode:
@@ -207,6 +214,25 @@ const uint8 *FontSJISBase::flipCharacter(const uint8 *glyph, const int w) const
 }
 #endif
 
+const uint8 *FontSJISBase::makeFatCharacter(const uint8 *glyph, const int w) const {
+	// This is the EOB II FM-Towns implementation.
+	// The last bit to the right of each line is cut off so that the fat
+	// character actually has the same width as it would normally have.
+	if (w == 8) {
+		for (int i = 0; i < 16; ++i) {
+			_tempGlyph2[i] = *glyph | (*glyph >> 1);
+			glyph++;
+		}
+	} else {
+		for (int i = 0; i < 16; ++i) {
+			uint16 l = READ_BE_UINT16(glyph);
+			WRITE_BE_UINT16(&_tempGlyph2[i << 1], l | (l >> 1));
+			glyph += 2;
+		}
+	}
+	return _tempGlyph2;
+}
+
 void FontSJISBase::drawChar(void *dst, uint16 ch, int pitch, int bpp, uint32 c1, uint32 c2, int maxW, int maxH) const {
 	const uint8 *glyphSource = 0;
 	int width = 0, height = 0;
@@ -243,11 +269,14 @@ void FontSJISBase::drawChar(void *dst, uint16 ch, int pitch, int bpp, uint32 c1,
 		return;
 	}
 
+	if (_fatPrint)
+		glyphSource = makeFatCharacter(glyphSource, width);
+
 #ifndef DISABLE_FLIPPED_MODE
 	if (_flippedMode)
 		glyphSource = flipCharacter(glyphSource, width);
 #endif
-
+	
 	uint8 outline[18 * 18];
 	if (_drawMode == kOutlineMode) {
 		memset(outline, 0, sizeof(outline));
@@ -409,7 +438,7 @@ const uint8 *FontTowns::getCharData(uint16 ch) const {
 }
 
 bool FontTowns::hasFeature(int feat) const {
-	static const int features = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow | kFeatFlipped;
+	static const int features = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow | kFeatFlipped | kFeatFatPrint;
 	return (features & feat) ? true : false;
 }
 
@@ -577,7 +606,7 @@ bool FontSjisSVM::hasFeature(int feat) const {
 	// Flipped mode is not supported since the hard coded table (taken from SCUMM 5 FM-TOWNS)
 	// is set up for font sizes of 8/16. This mode is also not required at the moment, since
 	// there aren't any SCUMM 5 PC-Engine games.
-	static const int features16 = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow | kFeatFlipped;
+	static const int features16 = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow | kFeatFlipped | kFeatFatPrint;
 	static const int features12 = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow;
 	return (((_fontWidth == 12) ? features12 : features16) & feat) ? true : false;
 }
diff --git a/graphics/sjis.h b/graphics/sjis.h
index 4c5b279..2872471 100644
--- a/graphics/sjis.h
+++ b/graphics/sjis.h
@@ -91,6 +91,11 @@ public:
 	virtual void setDrawingMode(DrawingMode mode) {}
 
 	/**
+	* Enable fat character drawing if supported by the Font (used in EOB II FM-Towns).
+	*/
+	virtual void toggleFatPrint(bool enable) {}
+
+	/**
 	 * Enable flipped character drawing if supported by the Font (e.g. in the MI1 circus scene after Guybrush gets shot out of the cannon).
 	 */
 	virtual void toggleFlippedMode(bool enable) {}
@@ -147,6 +152,8 @@ public:
 
 	virtual void toggleFlippedMode(bool enable);
 
+	virtual void toggleFatPrint(bool enable);
+
 	virtual uint getFontHeight() const;
 
 	virtual uint getMaxFontWidth() const;
@@ -165,9 +172,11 @@ private:
 	const uint8 *flipCharacter(const uint8 *glyph, const int w) const;
 	mutable uint8 _tempGlyph[32];
 #endif
+	const uint8 *makeFatCharacter(const uint8 *glyph, const int w) const;
+	mutable uint8 _tempGlyph2[32];
 protected:
 	DrawingMode _drawMode;
-	bool _flippedMode;
+	bool _flippedMode, _fatPrint;
 	int _fontWidth, _fontHeight;
 	uint8 _bitPosNewLineMask;
 
@@ -180,7 +189,8 @@ protected:
 		kFeatOutline		= 1 << 1,
 		kFeatShadow			= 1 << 2,
 		kFeatFMTownsShadow	= 1 << 3,
-		kFeatFlipped		= 1 << 4
+		kFeatFlipped		= 1 << 4,
+		kFeatFatPrint		= 1 << 5
 	};
 
 	virtual bool hasFeature(int feat) const = 0;


Commit: 16ead6f58a041adaa7fedb9f08d8435fff24f3ae
    https://github.com/scummvm/scummvm/commit/16ead6f58a041adaa7fedb9f08d8435fff24f3ae
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:21+01:00

Commit Message:
KYRA: add 16bit mode required for EOB II FM-TOWNS

Changed paths:
    engines/kyra/detection_tables.h
    engines/kyra/kyra_v1.h
    engines/kyra/screen.cpp
    engines/kyra/screen.h
    engines/kyra/screen_eob.cpp
    engines/kyra/screen_eob.h


diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index 43dc0cc..0b45977 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -22,45 +22,46 @@
 
 namespace {
 
-#define FLAGS(x, y, z, a, b, c, d, e, id) { Common::UNK_LANG, Common::UNK_LANG, Common::UNK_LANG, Common::kPlatformUnknown, x, y, z, a, b, c, d, e, id }
-#define FLAGS_FAN(fanLang, repLang, x, y, z, a, b, c, d, e, id) { Common::UNK_LANG, fanLang, repLang, Common::kPlatformUnknown, x, y, z, a, b, c, d, e, id }
-
-#define KYRA1_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, true, Kyra::GI_KYRA1)
-#define KYRA1_OLDFLOPPY_FLAGS FLAGS(false, false, false, true, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_AMIGA_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_TOWNS_FLAGS FLAGS(false, true, false, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_TOWNS_SJIS_FLAGS FLAGS(false, true, false, false, true, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_CD_FLAGS FLAGS(false, true, true, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_DEMO_CD_FLAGS FLAGS(true, true, true, false, false, false, false, false, Kyra::GI_KYRA1)
-
-#define KYRA2_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, true, Kyra::GI_KYRA2)
-#define KYRA2_FLOPPY_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_CD_FLAGS FLAGS(false, false, true, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_CD_DEMO_FLAGS FLAGS(true, false, true, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_TOWNS_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_TOWNS_SJIS_FLAGS FLAGS(false, false, false, false, true, false, false, false, Kyra::GI_KYRA2)
-
-#define KYRA3_CD_FLAGS FLAGS(false, false, true, false, false, false, true, true, Kyra::GI_KYRA3)
-#define KYRA3_CD_INS_FLAGS FLAGS(false, false, true, false, false, false, true, false, Kyra::GI_KYRA3)
-#define KYRA3_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, true, false, Kyra::GI_KYRA3)
-
-#define LOL_CD_FLAGS FLAGS(false, false, true, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_FLOPPY_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, false, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, true, Kyra::GI_LOL)
-#define LOL_PC9801_FLAGS FLAGS(false, false, false, false, true, true, false, false, Kyra::GI_LOL)
-#define LOL_FMTOWNS_FLAGS FLAGS(false, false, false, false, true, false, false, false, Kyra::GI_LOL)
-#define LOL_DEMO_FLAGS FLAGS(true, true, false, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-
-#define EOB_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_EOB1)
-#define EOB2_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_EOB2)
+#define EOB2_SJIS_FLAGS FLAGS(false, false, false, false, true, false, false, false, Kyra::GI_EOB2)
+#define FLAGS(x, y, z, a, b, c, d, e, f, id) { Common::UNK_LANG, Common::UNK_LANG, Common::UNK_LANG, Common::kPlatformUnknown, x, y, z, a, b, c, d, e, f, id }
+#define FLAGS_FAN(fanLang, repLang, x, y, z, a, b, c, d, e, f, id) { Common::UNK_LANG, fanLang, repLang, Common::kPlatformUnknown, x, y, z, a, b, c, d, e, f, id }
+
+#define KYRA1_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, false, true, Kyra::GI_KYRA1)
+#define KYRA1_OLDFLOPPY_FLAGS FLAGS(false, false, false, true, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_AMIGA_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_TOWNS_FLAGS FLAGS(false, true, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_TOWNS_SJIS_FLAGS FLAGS(false, true, false, false, true, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_CD_FLAGS FLAGS(false, true, true, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_DEMO_CD_FLAGS FLAGS(true, true, true, false, false, false, false, false, false, Kyra::GI_KYRA1)
+
+#define KYRA2_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, false, true, Kyra::GI_KYRA2)
+#define KYRA2_FLOPPY_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_CD_FLAGS FLAGS(false, false, true, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_CD_DEMO_FLAGS FLAGS(true, false, true, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_TOWNS_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_TOWNS_SJIS_FLAGS FLAGS(false, false, false, false, true, false, false, false, false, Kyra::GI_KYRA2)
+
+#define KYRA3_CD_FLAGS FLAGS(false, false, true, false, false, false, false, true, true, Kyra::GI_KYRA3)
+#define KYRA3_CD_INS_FLAGS FLAGS(false, false, true, false, false, false, false, true, false, Kyra::GI_KYRA3)
+#define KYRA3_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, true, false, Kyra::GI_KYRA3)
+
+#define LOL_CD_FLAGS FLAGS(false, false, true, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_FLOPPY_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, false, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, false, true, Kyra::GI_LOL)
+#define LOL_PC9801_FLAGS FLAGS(false, false, false, false, true, true, false, false, false, Kyra::GI_LOL)
+#define LOL_FMTOWNS_FLAGS FLAGS(false, false, false, false, true, false, false, false, false, Kyra::GI_LOL)
+#define LOL_DEMO_FLAGS FLAGS(true, true, false, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+
+#define EOB_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_EOB1)
+#define EOB2_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_EOB2)
 
 #define GAMEOPTION_KYRA3_AUDIENCE GUIO_GAMEOPTIONS1
 #define GAMEOPTION_KYRA3_SKIP     GUIO_GAMEOPTIONS2
@@ -1685,7 +1686,7 @@ const KYRAGameDescription adGameDescs[] = {
 	},
 #endif // ENABLE_EOB
 
-	{ AD_TABLE_END_MARKER, FLAGS(0, 0, 0, 0, 0, 0, 0, 0, 0) }
+	{ AD_TABLE_END_MARKER, FLAGS(0, 0, 0, 0, 0, 0, 0, 0, 0, 0) }
 };
 
 const PlainGameDescriptor gameList[] = {
diff --git a/engines/kyra/kyra_v1.h b/engines/kyra/kyra_v1.h
index bbbd59a..9fdddb8 100644
--- a/engines/kyra/kyra_v1.h
+++ b/engines/kyra/kyra_v1.h
@@ -122,6 +122,7 @@ struct GameFlags {
 	bool isOldFloppy          : 1;
 	bool useHiRes             : 1;
 	bool use16ColorMode       : 1;
+	bool useHiColorMode       : 1;
 	bool useDigSound          : 1;
 	bool useInstallerPackage  : 1;
 
diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp
index bce45b2..a0cab91 100644
--- a/engines/kyra/screen.cpp
+++ b/engines/kyra/screen.cpp
@@ -58,6 +58,13 @@ Screen::Screen(KyraEngine_v1 *vm, OSystem *system, const ScreenDim *dimTable, co
 	_renderMode = Common::kRenderDefault;
 	_sjisMixedFontMode = false;
 
+	_useHiColorScreen = _vm->gameFlags().useHiColorMode;
+	_screenPageSize = SCREEN_PAGE_SIZE;
+	_16bitPalette = 0;
+	_16bitConversionPalette = 0;
+	_16bitShadingLevel = 0;
+	_bytesPerPixel = 1;
+
 	_currentFont = FID_8_FNT;
 	_paletteChanged = true;
 	_curDim = 0;
@@ -76,6 +83,8 @@ Screen::~Screen() {
 	delete _internFadePalette;
 	delete[] _decodeShapeBuffer;
 	delete[] _animBlockPtr;
+	delete[] _16bitPalette;
+	delete[] _16bitConversionPalette;
 
 	for (uint i = 0; i < _palettes.size(); ++i)
 		delete _palettes[i];
@@ -127,7 +136,17 @@ bool Screen::init() {
 		_sjisInvisibleColor = (_vm->game() == GI_KYRA1) ? 0x80 : 0xF6;
 		_sjisMixedFontMode = !_use16ColorMode;
 
-		for (int i = 0; i < SCREEN_OVLS_NUM; ++i) {
+		if (!_sjisOverlayPtrs[0]) {
+			// We alway assume 2 bytes per pixel here when the backend is in hicolor mode, since this is the surface that is passed to the backend.
+			// We do this regardsless of the paramater sent to enableHiColorMode() so as not to have to change the backend color mode.
+			// Conversions from 8bit to 16bit have to take place when copying data to this surface here.
+			int bpp = _useHiColorScreen ? 2 : 1;
+			_sjisOverlayPtrs[0] = new uint8[SCREEN_OVL_SJIS_SIZE * bpp];
+			assert(_sjisOverlayPtrs[0]);
+			memset(_sjisOverlayPtrs[0], _sjisInvisibleColor, SCREEN_OVL_SJIS_SIZE * bpp);
+		}
+
+		for (int i = 1; i < SCREEN_OVLS_NUM; ++i) {
 			if (!_sjisOverlayPtrs[i]) {
 				_sjisOverlayPtrs[i] = new uint8[SCREEN_OVL_SJIS_SIZE];
 				assert(_sjisOverlayPtrs[i]);
@@ -147,27 +166,7 @@ bool Screen::init() {
 
 	_curPage = 0;
 
-	Common::Array<uint8> realPages;
-	for (int i = 0; i < SCREEN_PAGE_NUM; i++) {
-		if (Common::find(realPages.begin(), realPages.end(), _pageMapping[i]) == realPages.end())
-			realPages.push_back(_pageMapping[i]);
-	}
-
-	int numPages = realPages.size();
-	uint32 bufferSize = numPages * SCREEN_PAGE_SIZE;
-
-	uint8 *pagePtr = new uint8[bufferSize];
-	memset(pagePtr, 0, bufferSize);
-
-	memset(_pagePtrs, 0, sizeof(_pagePtrs));
-	for (int i = 0; i < SCREEN_PAGE_NUM; i++) {
-		if (_pagePtrs[_pageMapping[i]]) {
-			_pagePtrs[i] = _pagePtrs[_pageMapping[i]];
-		} else {
-			_pagePtrs[i] = pagePtr;
-			pagePtr += SCREEN_PAGE_SIZE;
-		}
-	}
+	enableHiColorMode(false);
 
 	memset(_shapePages, 0, sizeof(_shapePages));
 
@@ -223,6 +222,7 @@ bool Screen::init() {
 	_charOffset = 0;
 	for (int i = 0; i < ARRAYSIZE(_textColorsMap); ++i)
 		_textColorsMap[i] = i;
+	_textColorsMap16bit[0] = _textColorsMap16bit[1] = 0;
 	_decodeShapeBuffer = NULL;
 	_decodeShapeBufferSize = 0;
 	_animBlockPtr = NULL;
@@ -249,8 +249,9 @@ bool Screen::enableScreenDebug(bool enable) {
 }
 
 void Screen::setResolution() {
-	byte palette[3*256];
-	_system->getPaletteManager()->grabPalette(palette, 0, 256);
+	byte palette[3 * 256];
+	if (!_useHiColorScreen)
+		_system->getPaletteManager()->grabPalette(palette, 0, 256);
 
 	int width = 320, height = 200;
 
@@ -268,9 +269,49 @@ void Screen::setResolution() {
 			width = 320;
 	}
 
-	initGraphics(width, height);
+	if (_useHiColorScreen) {
+		Graphics::PixelFormat px(2, 5, 5, 5, 0, 10, 5, 0, 0);
+		Common::List<Graphics::PixelFormat> tryModes = _system->getSupportedFormats();
+		for (Common::List<Graphics::PixelFormat>::iterator g = tryModes.begin(); g != tryModes.end(); ++g) {
+			if (g->bytesPerPixel != 2 || g->aBits()) {
+				g = tryModes.reverse_erase(g);
+			} else if (*g == px) {
+				tryModes.clear();
+				tryModes.push_back(px);
+				break;
+			}
+		}
+		initGraphics(width, height, tryModes);
+		if (_system->getScreenFormat().bytesPerPixel != 2)
+			error("Required graphics mode not supported by platform.");
+		
+	} else {
+		initGraphics(width, height);
+		_system->getPaletteManager()->setPalette(palette, 0, 256);
+	}
+}
+
+void Screen::enableHiColorMode(bool enabled) {
+	if (_useHiColorScreen && enabled) {
+		if (!_16bitPalette)
+			_16bitPalette = new uint16[1024];
+		memset(_16bitPalette, 0, 1024 * sizeof(uint16));
+		delete[] _16bitConversionPalette;
+		_16bitConversionPalette = 0;
+		_bytesPerPixel = 2;
+	} else {
+		if (_useHiColorScreen) {
+			if (!_16bitConversionPalette)
+				_16bitConversionPalette = new uint16[256];
+			memset(_16bitConversionPalette, 0, 256 * sizeof(uint16));
+		}
+
+		delete[] _16bitPalette;
+		_16bitPalette = 0;
+		_bytesPerPixel = 1;
+	}
 
-	_system->getPaletteManager()->setPalette(palette, 0, 256);
+	resetPagePtrsAndBuffers(SCREEN_PAGE_SIZE * _bytesPerPixel);
 }
 
 void Screen::updateScreen() {
@@ -386,22 +427,22 @@ void Screen::updateDirtyRectsOvl() {
 	if (_forceFullUpdate) {
 		const byte *src = getCPagePtr(0);
 		byte *dst = _sjisOverlayPtrs[0];
-
 		scale2x(dst, 640, src, SCREEN_W, SCREEN_W, SCREEN_H);
 		mergeOverlay(0, 0, 640, 400);
-		_system->copyRectToScreen(dst, 640, 0, 0, 640, 400);
+		_system->copyRectToScreen(dst, _useHiColorScreen ? 1280 : 640, 0, 0, 640, 400);
 	} else {
 		const byte *page0 = getCPagePtr(0);
 		byte *ovl0 = _sjisOverlayPtrs[0];
+		int dstBpp = _useHiColorScreen ? 2 : 1;
 
 		Common::List<Common::Rect>::iterator it;
 		for (it = _dirtyRects.begin(); it != _dirtyRects.end(); ++it) {
-			byte *dst = ovl0 + it->top * 1280 + (it->left<<1);
-			const byte *src = page0 + it->top * SCREEN_W + it->left;
+			byte *dst = ovl0 + it->top * 1280 * dstBpp + (it->left << dstBpp);
+			const byte *src = page0 + it->top * SCREEN_W * _bytesPerPixel + it->left * _bytesPerPixel;
 
 			scale2x(dst, 640, src, SCREEN_W, it->width(), it->height());
 			mergeOverlay(it->left<<1, it->top<<1, it->width()<<1, it->height()<<1);
-			_system->copyRectToScreen(dst, 640, it->left<<1, it->top<<1, it->width()<<1, it->height()<<1);
+			_system->copyRectToScreen(dst, _useHiColorScreen ? 1280 : 640, it->left << 1, it->top << 1, it->width() << 1, it->height() << 1);
 		}
 	}
 
@@ -410,18 +451,31 @@ void Screen::updateDirtyRectsOvl() {
 }
 
 void Screen::scale2x(byte *dst, int dstPitch, const byte *src, int srcPitch, int w, int h) {
+	int srcBpp = _bytesPerPixel;
+	int dstBpp = _useHiColorScreen ? 2 : 1;
+
 	byte *dstL1 = dst;
-	byte *dstL2 = dst + dstPitch;
+	byte *dstL2 = dst + dstPitch * dstBpp;
 
-	int dstAdd = dstPitch * 2 - w * 2;
-	int srcAdd = srcPitch - w;
+	int dstAdd = (dstPitch * 2 - w * 2) * dstBpp;
+	int srcAdd = (srcPitch - w) * srcBpp;
+	int dstInc = 2 * dstBpp;
 
 	while (h--) {
-		for (int x = 0; x < w; ++x, dstL1 += 2, dstL2 += 2) {
-			uint16 col = *src++;
-			col |= col << 8;
-			*(uint16 *)(dstL1) = col;
-			*(uint16 *)(dstL2) = col;
+		for (int x = 0; x < w; x++, src += srcBpp, dstL1 += dstInc, dstL2 += dstInc) {
+			if (dstBpp == 1) {
+				uint16 col = *src;
+				col |= col << 8;
+				*(uint16 *)(dstL1) = *(uint16 *)(dstL2) = col;
+			} else if (dstBpp == srcBpp) {
+				uint32 col = *(const uint16 *)src;
+				col |= col << 16;
+				*(uint32 *)(dstL1) = *(uint32 *)(dstL2) = col;
+			} else if (dstBpp == 2) {
+				uint32 col = _16bitConversionPalette[*src];
+				col |= col << 16;
+				*(uint32 *)(dstL1) = *(uint32 *)(dstL2) = col;
+			}
 		}
 		dstL1 += dstAdd; dstL2 += dstAdd;
 		src += srcAdd;
@@ -429,18 +483,24 @@ void Screen::scale2x(byte *dst, int dstPitch, const byte *src, int srcPitch, int
 }
 
 void Screen::mergeOverlay(int x, int y, int w, int h) {
-	byte *dst = _sjisOverlayPtrs[0] + y * 640 + x;
+	int bpp = _useHiColorScreen ? 2 : 1;
+	byte *dst = _sjisOverlayPtrs[0] + y * 640 * bpp + x * bpp;
 	const byte *src = _sjisOverlayPtrs[1] + y * 640 + x;
+	uint16 *p16 = _16bitPalette ? _16bitPalette : (_16bitConversionPalette ? _16bitConversionPalette : 0);
 
 	int add = 640 - w;
 
 	while (h--) {
-		for (x = 0; x < w; ++x, ++dst) {
+		for (x = 0; x < w; ++x, dst += bpp) {
 			byte col = *src++;
-			if (col != _sjisInvisibleColor)
-				*dst = col;
+			if (col != _sjisInvisibleColor) {
+				if (bpp == 2)
+					*(uint16*)dst = p16[col];
+				else
+					*dst = col;
+			}
 		}
-		dst += add;
+		dst += add * bpp;
 		src += add;
 	}
 }
@@ -468,6 +528,35 @@ void Screen::setScreenDim(int dim) {
 	_curDimIndex = dim;
 }
 
+void Screen::resetPagePtrsAndBuffers(int pageSize) {
+	_screenPageSize = pageSize;
+
+	delete[] _pagePtrs[0];
+	memset(_pagePtrs, 0, sizeof(_pagePtrs));
+
+	Common::Array<uint8> realPages;
+	for (int i = 0; i < SCREEN_PAGE_NUM; i++) {
+		if (Common::find(realPages.begin(), realPages.end(), _pageMapping[i]) == realPages.end())
+			realPages.push_back(_pageMapping[i]);
+	}
+
+	int numPages = realPages.size();
+	uint32 bufferSize = numPages * _screenPageSize;
+
+	uint8 *pagePtr = new uint8[bufferSize];
+	memset(pagePtr, 0, bufferSize);
+
+	memset(_pagePtrs, 0, sizeof(_pagePtrs));
+	for (int i = 0; i < SCREEN_PAGE_NUM; i++) {
+		if (_pagePtrs[_pageMapping[i]]) {
+			_pagePtrs[i] = _pagePtrs[_pageMapping[i]];
+		} else {
+			_pagePtrs[i] = pagePtr;
+			pagePtr += _screenPageSize;
+		}
+	}
+}
+
 uint8 *Screen::getPagePtr(int pageNum) {
 	assert(pageNum < SCREEN_PAGE_NUM);
 	return _pagePtrs[pageNum];
@@ -489,7 +578,7 @@ void Screen::clearPage(int pageNum) {
 	assert(pageNum < SCREEN_PAGE_NUM);
 	if (pageNum == 0 || pageNum == 1)
 		_forceFullUpdate = true;
-	memset(getPagePtr(pageNum), 0, SCREEN_PAGE_SIZE);
+	memset(getPagePtr(pageNum), 0, _screenPageSize);
 	clearOverlayPage(pageNum);
 }
 
@@ -503,7 +592,7 @@ int Screen::setCurPage(int pageNum) {
 void Screen::clearCurPage() {
 	if (_curPage == 0 || _curPage == 1)
 		_forceFullUpdate = true;
-	memset(getPagePtr(_curPage), 0, SCREEN_PAGE_SIZE);
+	memset(getPagePtr(_curPage), 0, _screenPageSize);
 	clearOverlayPage(_curPage);
 }
 
@@ -670,9 +759,13 @@ void Screen::setPagePixel(int pageNum, int x, int y, uint8 color) {
 		color &= 0x03;
 	} else if (_renderMode == Common::kRenderEGA && !_useHiResEGADithering) {
 		color &= 0x0F;
+	} 
+	
+	if (_bytesPerPixel == 2) {
+		*(uint16*)(&_pagePtrs[pageNum][y * SCREEN_W * 2 + x * 2]) = _16bitPalette[color];
+	} else {
+		_pagePtrs[pageNum][y * SCREEN_W + x] = color;
 	}
-
-	_pagePtrs[pageNum][y * SCREEN_W + x] = color;
 }
 
 void Screen::fadeFromBlack(int delay, const UpdateFunctor *upFunc) {
@@ -707,6 +800,8 @@ void Screen::fadePalette(const Palette &pal, int delay, const UpdateFunctor *upF
 
 		if (upFunc && upFunc->isValid())
 			(*upFunc)();
+		else if (_useHiColorScreen)
+			updateScreen();
 		else
 			_system->updateScreen();
 
@@ -821,6 +916,22 @@ void Screen::setScreenPalette(const Palette &pal) {
 	}
 
 	_paletteChanged = true;
+
+	if (_useHiColorScreen) {
+		if (_16bitPalette)
+			memcpy(_16bitPalette, pal.getData(), 512);
+
+		// Generate 16bit palette for the 8bit/16 bit conversion in scale2x()
+		if (_16bitConversionPalette) {
+			Graphics::PixelFormat pixelFormat = _system->getScreenFormat();
+			for (int i = 0; i < 256; ++i)
+				_16bitConversionPalette[i] = pixelFormat.RGBToColor(screenPal[i * 3], screenPal[i * 3 + 1], screenPal[i * 3 + 2]);
+			// The whole Surface has to be converted again after each palette chance
+			_forceFullUpdate = true;
+		}
+		return;
+	}
+
 	_system->getPaletteManager()->setPalette(screenPal, 0, pal.getNumColors());
 }
 
@@ -908,8 +1019,8 @@ void Screen::copyRegion(int x1, int y1, int x2, int y2, int w, int h, int srcPag
 		h = SCREEN_H - y2;
 	}
 
-	const uint8 *src = getPagePtr(srcPage) + y1 * SCREEN_W + x1;
-	uint8 *dst = getPagePtr(dstPage) + y2 * SCREEN_W + x2;
+	const uint8 *src = getPagePtr(srcPage) + y1 * SCREEN_W * _bytesPerPixel + x1 * _bytesPerPixel;
+	uint8 *dst = getPagePtr(dstPage) + y2 * SCREEN_W * _bytesPerPixel + x2 * _bytesPerPixel;
 
 	if (src == dst)
 		return;
@@ -921,18 +1032,24 @@ void Screen::copyRegion(int x1, int y1, int x2, int y2, int w, int h, int srcPag
 
 	if (flags & CR_NO_P_CHECK) {
 		while (h--) {
-			memmove(dst, src, w);
-			src += SCREEN_W;
-			dst += SCREEN_W;
+			memmove(dst, src, w * _bytesPerPixel);
+			src += SCREEN_W * _bytesPerPixel;
+			dst += SCREEN_W * _bytesPerPixel;
 		}
 	} else {
 		while (h--) {
 			for (int i = 0; i < w; ++i) {
-				if (src[i])
-					dst[i] = src[i];
+				if (_bytesPerPixel == 2) {
+					uint px = *(const uint16*)&src[i << 1];
+					if (px)
+						*(uint16*)&dst[i << 1] = px;
+				} else {
+					if (src[i])
+						dst[i] = src[i];
+				}
 			}
-			src += SCREEN_W;
-			dst += SCREEN_W;
+			src += SCREEN_W * _bytesPerPixel;
+			dst += SCREEN_W * _bytesPerPixel;
 		}
 	}
 }
@@ -960,14 +1077,14 @@ void Screen::copyRegionToBuffer(int pageNum, int x, int y, int w, int h, uint8 *
 	uint8 *pagePtr = getPagePtr(pageNum);
 
 	for (int i = y; i < y + h; ++i)
-		memcpy(dest + (i - y) * w, pagePtr + i * SCREEN_W + x, w);
+		memcpy(dest + (i - y) * w * _bytesPerPixel, pagePtr + i * SCREEN_W * _bytesPerPixel + x * _bytesPerPixel, w * _bytesPerPixel);
 }
 
 void Screen::copyPage(uint8 srcPage, uint8 dstPage) {
 	uint8 *src = getPagePtr(srcPage);
 	uint8 *dst = getPagePtr(dstPage);
 	if (src != dst)
-		memcpy(dst, src, SCREEN_W * SCREEN_H);
+		memcpy(dst, src, SCREEN_W * SCREEN_H * _bytesPerPixel);
 	copyOverlayRegion(0, 0, 0, 0, SCREEN_W, SCREEN_H, srcPage, dstPage);
 
 	if (dstPage == 0 || dstPage == 1)
@@ -994,7 +1111,7 @@ void Screen::copyBlockToPage(int pageNum, int x, int y, int w, int h, const uint
 	if (w < 0 || h < 0)
 		return;
 
-	uint8 *dst = getPagePtr(pageNum) + y * SCREEN_W + x;
+	uint8 *dst = getPagePtr(pageNum) + y * SCREEN_W * _bytesPerPixel + x * _bytesPerPixel;
 
 	if (pageNum == 0 || pageNum == 1)
 		addDirtyRect(x, y, w, h);
@@ -1002,9 +1119,9 @@ void Screen::copyBlockToPage(int pageNum, int x, int y, int w, int h, const uint
 	clearOverlayRect(pageNum, x, y, w, h);
 
 	while (h--) {
-		memcpy(dst, src, w);
-		dst += SCREEN_W;
-		src += w;
+		memcpy(dst, src, w * _bytesPerPixel);
+		dst += SCREEN_W * _bytesPerPixel;
+		src += w * _bytesPerPixel;
 	}
 }
 
@@ -1066,10 +1183,11 @@ void Screen::shuffleScreen(int sx, int sy, int w, int h, int srcPage, int dstPag
 
 void Screen::fillRect(int x1, int y1, int x2, int y2, uint8 color, int pageNum, bool xored) {
 	assert(x2 < SCREEN_W && y2 < SCREEN_H);
+	uint16 color16 = 0;
 	if (pageNum == -1)
 		pageNum = _curPage;
 
-	uint8 *dst = getPagePtr(pageNum) + y1 * SCREEN_W + x1;
+	uint8 *dst = getPagePtr(pageNum) + y1 * SCREEN_W * _bytesPerPixel + x1 * _bytesPerPixel;
 
 	if (pageNum == 0 || pageNum == 1)
 		addDirtyRect(x1, y1, x2-x1+1, y2-y1+1);
@@ -1083,9 +1201,11 @@ void Screen::fillRect(int x1, int y1, int x2, int y2, uint8 color, int pageNum,
 		color &= 0x03;
 	} else if (_renderMode == Common::kRenderEGA && !_useHiResEGADithering) {
 		color &= 0x0F;
-	}
+	} else if (_bytesPerPixel == 2)
+		color16 = shade16bitColor(_16bitPalette[color]);
 
 	if (xored) {
+		// no 16 bit support for this (unneeded)
 		for (; y1 <= y2; ++y1) {
 			for (int x = x1; x <= x2; ++x)
 				dst[x] ^= color;
@@ -1093,8 +1213,14 @@ void Screen::fillRect(int x1, int y1, int x2, int y2, uint8 color, int pageNum,
 		}
 	} else {
 		for (; y1 <= y2; ++y1) {
-			memset(dst, color, x2 - x1 + 1);
-			dst += SCREEN_W;
+			if (_bytesPerPixel == 2) {
+				uint16 *ptr = (uint16*)dst;
+				for (int i = 0; i < x2 - x1 + 1; i++)
+					*ptr++ = color16;
+			} else {
+				memset(dst, color, x2 - x1 + 1);
+			}
+			dst += SCREEN_W * _bytesPerPixel;
 		}
 	}
 }
@@ -1151,7 +1277,7 @@ void Screen::drawClippedLine(int x1, int y1, int x2, int y2, int color) {
 }
 
 void Screen::drawLine(bool vertical, int x, int y, int length, int color) {
-	uint8 *ptr = getPagePtr(_curPage) + y * SCREEN_W + x;
+	uint8 *ptr = getPagePtr(_curPage) + y * SCREEN_W * _bytesPerPixel + x * _bytesPerPixel;
 
 	if (_use16ColorMode) {
 		color &= 0x0F;
@@ -1160,19 +1286,30 @@ void Screen::drawLine(bool vertical, int x, int y, int length, int color) {
 		color &= 0x03;
 	} else if (_renderMode == Common::kRenderEGA && !_useHiResEGADithering) {
 		color &= 0x0F;
-	}
+	} else if (_bytesPerPixel == 2)
+		color = shade16bitColor(_16bitPalette[color]);
 
 	if (vertical) {
 		assert((y + length) <= SCREEN_H);
 		int currLine = 0;
 		while (currLine < length) {
-			*ptr = color;
-			ptr += SCREEN_W;
+			if (_bytesPerPixel == 2)
+				*(uint16*)ptr = color;
+			else
+				*ptr = color;
+			ptr += SCREEN_W * _bytesPerPixel;
 			currLine++;
 		}
 	} else {
 		assert((x + length) <= SCREEN_W);
-		memset(ptr, color, length);
+		if (_bytesPerPixel == 2) {
+			for (int i = 0; i < length; i++) {
+				*(uint16*)ptr = color;
+				ptr += 2;
+			}
+		} else {
+			memset(ptr, color, length);
+		}
 	}
 
 	if (_curPage == 0 || _curPage == 1)
@@ -1189,14 +1326,25 @@ void Screen::setAnimBlockPtr(int size) {
 	_animBlockSize = size;
 }
 
-void Screen::setTextColor(const uint8 *cmap, int a, int b) {
-	memcpy(&_textColorsMap[a], cmap, b-a+1);
+void Screen::setTextColor(const uint8 *cmap8, int a, int b) {
+	memcpy(&_textColorsMap[a], cmap8, (b - a + 1));
+	// We need to update the color tables of all fonts, we
+	// setup so far here.
+	for (int i = 0; i < FID_NUM; ++i) {
+		if (_fonts[i]) 
+			_fonts[i]->setColorMap(_textColorsMap);
+	}
+}
 
+void Screen::setTextColor16bit(const uint16 *cmap16) {
+	assert(cmap16);
+	_textColorsMap16bit[0] = cmap16[0];
+	_textColorsMap16bit[1] = cmap16[1];
 	// We need to update the color tables of all fonts, we
 	// setup so far here.
 	for (int i = 0; i < FID_NUM; ++i) {
 		if (_fonts[i])
-			_fonts[i]->setColorMap(_textColorsMap);
+			_fonts[i]->set16bitColorMap(_textColorsMap16bit);
 	}
 }
 
@@ -1281,10 +1429,17 @@ int Screen::getTextWidth(const char *str) {
 }
 
 void Screen::printText(const char *str, int x, int y, uint8 color1, uint8 color2) {
-	uint8 cmap[2];
-	cmap[0] = color2;
-	cmap[1] = color1;
-	setTextColor(cmap, 0, 1);
+	uint16 cmap16[2];
+	if (_16bitPalette) {
+		cmap16[0] = color2 ? shade16bitColor(_16bitPalette[color2]) : 0xFFFF;
+		cmap16[1] = _16bitPalette[color1];
+		setTextColor16bit(cmap16);
+	}	
+
+	uint8 cmap8[2];
+	cmap8[0] = color2;
+	cmap8[1] = color1;
+	setTextColor(cmap8, 0, 1);
 
 	FontId curFont = _currentFont;
 
@@ -1360,11 +1515,12 @@ void Screen::drawChar(uint16 c, int x, int y) {
 			return;
 		}
 
-		destPage += (y * 2) * 640 + (x * 2);
+		int bpp = (_currentFont == Screen::FID_SJIS_FNT) ? 1 : 2;
+		destPage += (y * 2) * 640 * bpp + (x * 2 * bpp);
 
-		fnt->drawChar(c, destPage, 640);
+		fnt->drawChar(c, destPage, 640, bpp);
 	} else {
-		fnt->drawChar(c, getPagePtr(_curPage) + y * SCREEN_W + x, SCREEN_W);
+		fnt->drawChar(c, getPagePtr(_curPage) + y * SCREEN_W * _bytesPerPixel + x * _bytesPerPixel, SCREEN_W, _bytesPerPixel);
 	}
 
 	if (_curPage == 0 || _curPage == 1)
@@ -2846,6 +3002,18 @@ int16 Screen::encodeShapeAndCalculateSize(uint8 *from, uint8 *to, int size_to) {
 	return (to - toPtr);
 }
 
+uint16 Screen::shade16bitColor(uint16 col) {
+	uint8 r = (col & 0x1f);
+	uint8 g = (col & 0x3E0) >> 5;
+	uint8 b = (col & 0x7C00) >> 10;
+
+	r = (r > _16bitShadingLevel) ? r - _16bitShadingLevel : 0;
+	g = (g > _16bitShadingLevel) ? g - _16bitShadingLevel : 0;
+	b = (b > _16bitShadingLevel) ? b - _16bitShadingLevel : 0;
+
+	return (b << 10) | (g << 5) | r;
+}
+
 void Screen::hideMouse() {
 	++_mouseLockCount;
 	CursorMan.showMouse(false);
@@ -3072,7 +3240,7 @@ void Screen::loadBitmap(const char *filename, int tempPage, int dstPage, Palette
 
 	uint8 *srcPtr = srcData + 10 + palSize;
 	uint8 *dstData = getPagePtr(dstPage);
-	memset(dstData, 0, SCREEN_PAGE_SIZE);
+	memset(dstData, 0, _screenPageSize);
 	if (dstPage == 0 || tempPage == 0)
 		_forceFullUpdate = true;
 
@@ -3117,7 +3285,7 @@ bool Screen::loadPalette(const char *filename, Palette &pal) {
 
 	debugC(3, kDebugLevelScreen, "Screen::loadPalette('%s', %p)", filename, (const void *)&pal);
 
-	const int maxCols = pal.getNumColors();
+	const int maxCols = _16bitPalette ? 256 : pal.getNumColors();
 	int numCols = 0;
 
 	if (_isAmiga) {
@@ -3133,8 +3301,15 @@ bool Screen::loadPalette(const char *filename, Palette &pal) {
 		numCols /= Palette::kVGABytesPerColor;
 		pal.loadVGAPalette(*stream, 0, numCols);
 	} else {
-		numCols = stream->size() / Palette::kVGABytesPerColor;
-		pal.loadVGAPalette(*stream, 0, MIN(maxCols, numCols));
+		if (_bytesPerPixel == 2) {
+			numCols = stream->size() / 2;
+			pal.loadHiColorPalette(*stream, 0, numCols);
+		} else if (!_16bitPalette) {
+			numCols = stream->size() / Palette::kVGABytesPerColor;
+			pal.loadVGAPalette(*stream, 0, MIN(maxCols, numCols));
+		} else {
+			error("Screen::loadPalette(): Failed to load file '%s' with invalid size %d in HiColor mode", filename, stream->size());
+		}
 	}
 
 	if (numCols > maxCols)
@@ -3407,7 +3582,7 @@ int DOSFont::getCharWidth(uint16 c) const {
 	return _widthTable[c];
 }
 
-void DOSFont::drawChar(uint16 c, byte *dst, int pitch) const {
+void DOSFont::drawChar(uint16 c, byte *dst, int pitch, int) const {
 	if (c >= _numGlyphs)
 		return;
 
@@ -3549,7 +3724,7 @@ int AMIGAFont::getCharWidth(uint16 c) const {
 	return _chars[c].width;
 }
 
-void AMIGAFont::drawChar(uint16 c, byte *dst, int pitch) const {
+void AMIGAFont::drawChar(uint16 c, byte *dst, int pitch, int) const {
 	if (c >= 255)
 		return;
 
@@ -3624,7 +3799,7 @@ void SJISFont::setColorMap(const uint8 *src) {
 	}
 }
 
-void SJISFont::drawChar(uint16 c, byte *dst, int pitch) const {
+void SJISFont::drawChar(uint16 c, byte *dst, int pitch, int) const {
 	uint8 color1, color2;
 
 	if (_is16Color) {
@@ -3672,6 +3847,19 @@ void Palette::loadVGAPalette(Common::ReadStream &stream, int startIndex, int col
 		*pos++ = stream.readByte() & 0x3F;
 }
 
+void Palette::loadHiColorPalette(Common::ReadStream &stream, int startIndex, int colors) {
+	uint16 *pos = (uint16*)(_palData + startIndex * 2);
+
+	Graphics::PixelFormat currentFormat = g_system->getScreenFormat();
+	Graphics::PixelFormat originalFormat(2, 5, 5, 5, 0, 5, 10, 0, 0);
+
+	for (int i = 0; i < colors; i++) {
+		uint8 r, g, b;
+		originalFormat.colorToRGB(stream.readUint16LE(), r, g, b);
+		*pos++ = currentFormat.RGBToColor(r, g, b);
+	}
+}
+
 void Palette::loadEGAPalette(Common::ReadStream &stream, int startIndex, int colors) {
 	assert(startIndex + colors <= 16);
 
diff --git a/engines/kyra/screen.h b/engines/kyra/screen.h
index 0b287aa..bac93ae 100644
--- a/engines/kyra/screen.h
+++ b/engines/kyra/screen.h
@@ -94,6 +94,11 @@ public:
 	virtual void setColorMap(const uint8 *src) = 0;
 
 	/**
+	* Sets a text 16bit palette map. Only used in in EOB II FM-Towns. The map contains 2 entries.
+	*/
+	virtual void set16bitColorMap(const uint16 *src) {}
+
+	/**
 	 * Draws a specific character.
 	 *
 	 * TODO/FIXME: Replace this with a nicer API. Currently
@@ -101,7 +106,7 @@ public:
 	 * We use this API, since it's hard to assure dirty rect
 	 * handling from outside Screen.
 	 */
-	virtual void drawChar(uint16 c, byte *dst, int pitch) const = 0;
+	virtual void drawChar(uint16 c, byte *dst, int pitch, int bpp) const = 0;
 };
 
 /**
@@ -120,7 +125,7 @@ public:
 	int getWidth() const { return _width; }
 	int getCharWidth(uint16 c) const;
 	void setColorMap(const uint8 *src) { _colorMap = src; }
-	void drawChar(uint16 c, byte *dst, int pitch) const;
+	void drawChar(uint16 c, byte *dst, int pitch, int) const;
 
 private:
 	void unload();
@@ -153,8 +158,9 @@ public:
 	int getHeight() const { return _height; }
 	int getWidth() const { return _width; }
 	int getCharWidth(uint16 c) const;
-	void setColorMap(const uint8 *src) { _colorMap = src; }
-	void drawChar(uint16 c, byte *dst, int pitch) const;
+	void setColorMap(const uint8 *src) { _colorMap8bit = src; }
+	void set16bitColorMap(const uint16 *src) { _colorMap16bit = src; }
+	void drawChar(uint16 c, byte *dst, int pitch, int bpp) const;
 
 private:
 	void unload();
@@ -163,7 +169,8 @@ private:
 	uint16 *_bitmapOffsets;
 
 	int _width, _height;
-	const uint8 *_colorMap;
+	const uint8 *_colorMap8bit;
+	const uint16 *_colorMap16bit;
 
 	int _numGlyphs;
 
@@ -187,7 +194,7 @@ public:
 	int getWidth() const { return _width; }
 	int getCharWidth(uint16 c) const;
 	void setColorMap(const uint8 *src) {}
-	void drawChar(uint16 c, byte *dst, int pitch) const;
+	void drawChar(uint16 c, byte *dst, int pitch, int) const;
 
 private:
 	void unload();
@@ -221,7 +228,7 @@ public:
 	int getWidth() const;
 	int getCharWidth(uint16 c) const;
 	void setColorMap(const uint8 *src);
-	virtual void drawChar(uint16 c, byte *dst, int pitch) const;
+	virtual void drawChar(uint16 c, byte *dst, int pitch, int) const;
 
 protected:
 	void unload();
@@ -276,6 +283,11 @@ public:
 	void loadVGAPalette(Common::ReadStream &stream, int startIndex, int colors);
 
 	/**
+	* Load a HiColor palette from the given stream.
+	*/
+	void loadHiColorPalette(Common::ReadStream &stream, int startIndex, int colors);
+
+	/**
 	 * Load a EGA palette from the given stream.
 	 */
 	void loadEGAPalette(Common::ReadStream &stream, int startIndex, int colors);
@@ -423,6 +435,7 @@ public:
 	// init
 	virtual bool init();
 	virtual void setResolution();
+	virtual void enableHiColorMode(bool enabled);
 
 	void updateScreen();
 
@@ -499,6 +512,7 @@ public:
 
 	virtual void setTextColorMap(const uint8 *cmap) = 0;
 	void setTextColor(const uint8 *cmap, int a, int b);
+	void setTextColor16bit(const uint16 *cmap16);
 
 	const ScreenDim *getScreenDim(int dim) const;
 	void modifyScreenDim(int dim, int x, int y, int w, int h);
@@ -570,7 +584,10 @@ public:
 	// RPG specific, this does not belong here
 	void crossFadeRegion(int x1, int y1, int x2, int y2, int w, int h, int srcPage, int dstPage);
 
+	void set16bitShadingLevel(int lvl) { _16bitShadingLevel = lvl; }
+
 protected:
+	void resetPagePtrsAndBuffers(int pageSize);
 	uint8 *getPagePtr(int pageNum);
 	virtual void updateDirtyRects();
 	void updateDirtyRectsAmiga();
@@ -602,8 +619,11 @@ protected:
 	bool _useSJIS;
 	bool _use16ColorMode;
 	bool _useHiResEGADithering;
+	bool _useHiColorScreen;
 	bool _isAmiga;
 	Common::RenderMode _renderMode;
+	int _bytesPerPixel;
+	int _screenPageSize;
 
 	uint8 _sjisInvisibleColor;
 	bool _sjisMixedFontMode;
@@ -612,8 +632,15 @@ protected:
 	Common::Array<Palette *> _palettes;
 	Palette *_internFadePalette;
 
+	uint16 shade16bitColor(uint16 col);
+
+	uint16 *_16bitPalette;
+	uint16 *_16bitConversionPalette;
+	uint8 _16bitShadingLevel;
+
 	Font *_fonts[FID_NUM];
 	uint8 _textColorsMap[16];
+	uint16 _textColorsMap16bit[2];
 
 	uint8 *_decodeShapeBuffer;
 	int _decodeShapeBufferSize;
diff --git a/engines/kyra/screen_eob.cpp b/engines/kyra/screen_eob.cpp
index 6553ffa..88c53fd 100644
--- a/engines/kyra/screen_eob.cpp
+++ b/engines/kyra/screen_eob.cpp
@@ -46,6 +46,7 @@ Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system,
 	_gfxX = _gfxY = 0;
 	_gfxCol = 0;
 	_dsTempPage = 0;
+	_convertHiColorBuffer = 0;
 	_dsDiv = 0;
 	_dsRem = 0;
 	_dsScaleTrans = 0;
@@ -60,6 +61,7 @@ Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system,
 
 Screen_EoB::~Screen_EoB() {
 	delete[] _dsTempPage;
+	delete[] _convertHiColorBuffer;
 	delete[] _cgaScaleTable;
 	delete[] _egaDitheringTable;
 	delete[] _egaDitheringTempPage;
@@ -74,6 +76,9 @@ bool Screen_EoB::init() {
 
 		_dsTempPage = new uint8[12000];
 
+		if (_vm->gameFlags().platform == Common::kPlatformFMTowns) {
+			_convertHiColorBuffer = new uint8[SCREEN_H * SCREEN_W];
+		}
 		if (_vm->gameFlags().useHiRes && _renderMode == Common::kRenderEGA) {
 			_useHiResEGADithering = true;
 			_egaDitheringTable = new uint8[256];
@@ -120,11 +125,12 @@ void Screen_EoB::setMouseCursor(int x, int y, const byte *shape, const uint8 *ov
 	int colorKey = (_renderMode == Common::kRenderCGA) ? 0 : _cursorColorKey;
 
 	int scaleFactor = _useHiResEGADithering ? 2 : 1;
+	int bpp = _useHiColorScreen ? 2 : 1;
 
-	uint8 *cursor = new uint8[mouseW * scaleFactor * mouseH * scaleFactor];
+	uint8 *cursor = new uint8[mouseW * scaleFactor * bpp * mouseH * scaleFactor];
 	// We use memset and copyBlockToPage instead of fillRect to make sure that the
 	// color key 0xFF doesn't get converted into EGA color
-	memset(cursor, colorKey, mouseW * scaleFactor * mouseH * scaleFactor);
+	memset(cursor, colorKey, mouseW * scaleFactor * bpp * mouseH * scaleFactor);
 	copyBlockToPage(6, 0, 0, mouseW * scaleFactor, mouseH * scaleFactor, cursor);
 	drawShape(6, shape, 0, 0, 0, 2, ovl);
 	CursorMan.showMouse(false);
@@ -156,8 +162,13 @@ void Screen_EoB::setMouseCursor(int x, int y, const byte *shape, const uint8 *ov
 			}
 		}
 	}
+	
+	// Convert color key to 16 bit after drawing the mouse cursor.
+	// The cursor has been converted to 16 bit in scale2x().
+	colorKey = _16bitConversionPalette ? _16bitConversionPalette[colorKey] : colorKey;
+	Graphics::PixelFormat pixelFormat = _system->getScreenFormat();
 
-	CursorMan.replaceCursor(cursor, mouseW * scaleFactor, mouseH * scaleFactor, x, y, colorKey);
+	CursorMan.replaceCursor(cursor, mouseW * scaleFactor, mouseH * scaleFactor, x, y, colorKey, false, &pixelFormat);
 	if (isMouseVisible())
 		CursorMan.showMouse(true);
 	delete[] cursor;
@@ -217,9 +228,13 @@ void Screen_EoB::loadEoBBitmap(const char *file, const uint8 *cgaMapping, int te
 		}
 	}
 
-	if (convertToPage == -1) {
+	if (convertToPage == -1)
 		return;
-	} else if (convertToPage == 2 && _renderMode == Common::kRenderCGA) {
+
+	if (_16bitPalette)
+		convertToHiColor(destPage);
+
+	if (convertToPage == 2 && _renderMode == Common::kRenderCGA) {
 		convertPage(destPage, 4, cgaMapping);
 		copyRegion(0, 0, 0, 0, 320, 200, 4, 2, Screen::CR_NO_P_CHECK);
 	} else if (convertToPage == 0) {
@@ -262,7 +277,10 @@ void Screen_EoB::convertPage(int srcPage, int dstPage, const uint8 *cgaMapping)
 }
 
 void Screen_EoB::setScreenPalette(const Palette &pal) {
-	if (_useHiResEGADithering && pal.getNumColors() != 16) {
+	if (_bytesPerPixel == 2) {
+		for (int i = 0; i < 4; i++)
+			createFadeTable16bit((const uint16*)(pal.getData()), &_16bitPalette[i * 256], 0, i * 53);
+	}else if (_useHiResEGADithering && pal.getNumColors() != 16) {
 		generateEGADitheringTable(pal);
 	} else if (_renderMode == Common::kRenderEGA && pal.getNumColors() == 16) {
 		_screenPalette->copy(pal);
@@ -297,7 +315,26 @@ uint8 *Screen_EoB::encodeShape(uint16 x, uint16 y, uint16 w, uint16 h, bool enco
 	if (_renderMode == Common::kRenderEGA && !_useHiResEGADithering)
 		encode8bit = false;
 
-	if (_renderMode == Common::kRenderCGA) {
+	if (_bytesPerPixel == 2) {
+		shapesize = h * (w << 3) + 4;
+		shp = new uint8[shapesize];
+		memset(shp, 0, shapesize);
+		uint8 *dst = shp;
+
+		*dst++ = 0;
+		*dst++ = (h & 0xFF);
+		*dst++ = (w & 0xFF);
+		*dst++ = (h & 0xFF);
+
+		w <<= 3;
+
+		for (int i = 0; i < h; ++i) {
+			memcpy(dst, src, w);
+			srcLineStart += SCREEN_W;
+			src = srcLineStart;
+			dst += w;
+		}
+	} else if (_renderMode == Common::kRenderCGA) {
 		if (cgaMapping)
 			generateCGADitheringTables(cgaMapping);
 		shapesize = h * (w << 2) + 4;
@@ -485,7 +522,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
 	}
 	va_end(args);
 
-	dst += (_dsX1 << 3);
+	dst += (_dsX1 << (2 + _bytesPerPixel));
 	int16 dX = x - (_dsX1 << 3);
 	int16 dY = y;
 	int16 dW = _dsX2 - _dsX1;
@@ -506,7 +543,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
 
 	int pixelStep = (flags & 1) ? -1 : 1;
 
-	if (pixelsPerByte == 1)  {
+	if (pixelsPerByte < 2)  {
 		uint16 marginLeft = 0;
 		uint16 marginRight = 0;
 
@@ -557,7 +594,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
 			marginRight = w2 - marginLeft - width;
 		}
 
-		dst += (dY * SCREEN_W + dX);
+		dst += (dY * SCREEN_W * _bytesPerPixel + dX * _bytesPerPixel);
 		uint8 *dstL = dst;
 
 		if (pageNum == 0 || pageNum == 1)
@@ -567,36 +604,45 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
 			int16 xpos = (int16) marginLeft;
 
 			if (flags & 1) {
-				for (int i = 0; i < w2; i++) {
-					if (*src++ == 0) {
-						i += (*src - 1);
-						src += (*src - 1);
+				if (pixelsPerByte == 1) {
+					for (int i = 0; i < w2; i++) {
+						if (*src++ == 0) {
+							i += (*src - 1);
+							src += (*src - 1);
+						}
 					}
+				} else {
+					src += w2;
 				}
 				src--;
 			}
 			const uint8 *src2 = src;
 
 			if (xpos) {
-				do {
-					uint8 val = (flags & 1) ? *(src - 1) : *src;
-					while (val && xpos) {
-						src += pixelStep;
-						xpos--;
-						val = (flags & 1) ? *(src - 1) : *src;
-					}
+				if (pixelsPerByte == 1) {
+					do {
+						uint8 val = (flags & 1) ? *(src - 1) : *src;
+						while (val && xpos) {
+							src += pixelStep;
+							xpos--;
+							val = (flags & 1) ? *(src - 1) : *src;
+						}
 
-					val = (flags & 1) ? *(src - 1) : *src;
-					if (!val) {
-						src += pixelStep;
-						uint8 bt = (flags & 1) ? src[1] : src[0];
-						src += pixelStep;
-						xpos = xpos - bt;
-					}
-				} while (xpos > 0);
+						val = (flags & 1) ? *(src - 1) : *src;
+						if (!val) {
+							src += pixelStep;
+							uint8 bt = (flags & 1) ? src[1] : src[0];
+							src += pixelStep;
+							xpos = xpos - bt;
+						}
+					} while (xpos > 0);
+				} else {
+					src += (xpos * pixelStep);
+					xpos = 0;
+				}
 			}
 
-			dst -= xpos;
+			dst -= xpos * _bytesPerPixel;
 			xpos += width;
 
 			while (xpos > 0) {
@@ -606,37 +652,45 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
 
 				if (m) {
 					drawShapeSetPixel(dst, c);
-					dst++;
+					dst += _bytesPerPixel;
 					xpos--;
-				} else {
+				} else if (pixelsPerByte) {
 					uint8 len = (flags & 1) ? src[1] : src[0];
-					dst += len;
+					dst += len * _bytesPerPixel;
 					xpos -= len;
 					src += pixelStep;
+				} else {
+					dst += _bytesPerPixel;
+					xpos--;
 				}
 			}
 			xpos += marginRight;
 
 			if (xpos) {
 				do {
-					uint8 val = (flags & 1) ? *(src - 1) : *src;
-					while (val && xpos) {
-						src += pixelStep;
-						xpos--;
-						val = (flags & 1) ? *(src - 1) : *src;
-					}
+					if (pixelsPerByte == 1) {
+						uint8 val = (flags & 1) ? *(src - 1) : *src;
+						while (val && xpos) {
+							src += pixelStep;
+							xpos--;
+							val = (flags & 1) ? *(src - 1) : *src;
+						}
 
-					val = (flags & 1) ? *(src - 1) : *src;
-					if (!val) {
-						src += pixelStep;
-						uint8 bt = (flags & 1) ? src[1] : src[0];
-						src += pixelStep;
-						xpos = xpos - bt;
+						val = (flags & 1) ? *(src - 1) : *src;
+						if (!val) {
+							src += pixelStep;
+							uint8 bt = (flags & 1) ? src[1] : src[0];
+							src += pixelStep;
+							xpos = xpos - bt;
+						}
+					} else {
+						src += (xpos * pixelStep);
+						xpos = 0;
 					}
 				} while (xpos > 0);
 			}
 
-			dstL += SCREEN_W;
+			dstL += SCREEN_W * _bytesPerPixel;
 			dst = dstL;
 			if (flags & 1)
 				src = src2 + 1;
@@ -704,7 +758,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
 		if (d < width)
 			width = d;
 
-		dst += (dY * SCREEN_W + dX);
+		dst += (dY * SCREEN_W * _bytesPerPixel + dX * _bytesPerPixel);
 
 		if (pageNum == 0 || pageNum == 1)
 			addDirtyRect(rX, rY, rW, rH);
@@ -753,11 +807,11 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
 				uint8 col = (pixelsPerByte == 2) ? pal[(in >> shift) & pixelPackingMask] : (*dst & ((trans >> shift) & (pixelPackingMask))) | pal[(in >> shift) & pixelPackingMask];
 				if (col || pixelsPerByte == 4)
 					drawShapeSetPixel(dst, col);
-				dst++;
+				dst += _bytesPerPixel;
 				shift = ((shift - (pixelStep * pixelPacking)) & 7);
 			}
 			src += lineSrcStep;
-			dst += pitch;
+			dst += (pitch * _bytesPerPixel);
 		}
 	}
 }
@@ -1167,11 +1221,11 @@ void Screen_EoB::setFadeTable(const uint8 *table) {
 	_dsShapeFadingTable = table;
 }
 
-void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight) {
+void Screen_EoB::createFadeTable(const uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight) {
 	if (!palData)
 		return;
 
-	uint8 *src = palData + 3 * rootColor;
+	const uint8 *src = palData + 3 * rootColor;
 	uint8 r = *src++;
 	uint8 g = *src++;
 	uint8 b = *src;
@@ -1189,7 +1243,7 @@ void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, ui
 		tmp = (uint16)((*src - b) * weight) << 1;
 		tb = *src++ - ((tmp >> 8) & 0xFF);
 
-		uint8 *d = palData + 3;
+		const uint8 *d = palData + 3;
 		uint16 v = 0xFFFF;
 		uint8 col = rootColor;
 
@@ -1210,6 +1264,65 @@ void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, ui
 	}
 }
 
+void Screen_EoB::createFadeTable16bit(const uint16 *palData, uint16 *dst, uint16 rootColor, uint8 weight) {
+	uint8 r8 = (rootColor & 0x1f);
+	uint8 g8 = (rootColor & 0x3E0) >> 5;
+	uint8 b8 = (rootColor & 0x7C00) >> 10;
+
+	int root_r = r8 << 4;
+	int root_g = g8 << 4;
+	int root_b = b8 << 4;
+
+	*dst++ = palData[0];
+
+	for (uint8 i = 1; i; i++) {
+		r8 = (palData[i] & 0x1f);
+		g8 = (palData[i] & 0x3E0) >> 5;
+		b8 = (palData[i] & 0x7C00) >> 10;
+
+		int red = r8 << 4;
+		int green = g8 << 4;
+		int blue = b8 << 4;
+
+		if (red > root_r) {
+			red -= weight;
+			if (root_r > red)
+				red = root_r;
+		} else {
+			red += weight;
+			if (root_r < red)
+				red = root_r;
+		}
+
+		if (green > root_g) {
+			green -= weight;
+			if (root_g > green)
+				green = root_g;
+		} else {
+			green += weight;
+			if (root_g < green)
+				green = root_g;
+		}
+
+		if (blue > root_b) {
+			blue -= weight;
+			if (root_b > blue)
+				blue = root_b;
+		} else {
+			blue += weight;
+			if (root_b < blue)
+				blue = root_b;
+		}
+
+		r8 = red >> 4;
+		g8 = green >> 4;
+		b8 = blue >> 4;
+
+		*dst++ = (b8 << 10) | (g8 << 5) | r8;
+	}
+
+}
+
 const uint16 *Screen_EoB::getCGADitheringTable(int index) {
 	return !(index & ~1) ? _cgaDitheringTables[index] : 0;
 }
@@ -1218,6 +1331,40 @@ const uint8 *Screen_EoB::getEGADitheringTable() {
 	return _egaDitheringTable;
 }
 
+void Screen_EoB::convertToHiColor(int page) {
+	if (!_16bitPalette)
+		return;
+	uint16 *dst = (uint16 *)getCPagePtr(page);
+	memcpy(_convertHiColorBuffer, dst, SCREEN_H * SCREEN_W);
+	uint8 *src = _convertHiColorBuffer;
+	for (int s = SCREEN_H * SCREEN_W; s; --s)
+		*dst++ = _16bitPalette[*src++];
+}
+
+void Screen_EoB::shadeRect(int x1, int y1, int x2, int y2, int shadingLevel) {
+	if (!_16bitPalette)
+		return;
+
+	int l = _16bitShadingLevel;
+	_16bitShadingLevel = shadingLevel;
+
+	if (_curPage == 0 || _curPage == 1)
+		addDirtyRect(x1, y1, x2 - x1 + 1, y2 - y1 + 1);
+
+	uint16 *dst = (uint16*)(getPagePtr(_curPage) + y1 * SCREEN_W * _bytesPerPixel + x1 * _bytesPerPixel);
+
+	for (; y1 < y2; ++y1) {
+		uint16 *ptr = dst;
+		for (int i = 0; i < x2 - x1; i++) {
+			*ptr = shade16bitColor(*ptr);
+			ptr++;
+		}
+		dst += SCREEN_W;
+	}
+
+	_16bitShadingLevel = l;
+}
+
 void Screen_EoB::updateDirtyRects() {
 	if (!_useHiResEGADithering) {
 		Screen::updateDirtyRects();
@@ -1260,7 +1407,10 @@ void Screen_EoB::ditherRect(const uint8 *src, uint8 *dst, int dstPitch, int srcW
 }
 
 void Screen_EoB::drawShapeSetPixel(uint8 *dst, uint8 col) {
-	if ((_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA) || _useHiResEGADithering) {
+	if (_bytesPerPixel == 2) {
+		*(uint16*)dst = _16bitPalette[(_dsShapeFadingLevel << 8) + col];
+		return;
+	} else if ((_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA) || _useHiResEGADithering) {
 		if (_dsBackgroundFading) {
 			if (_dsShapeFadingLevel) {
 				col = *dst;
@@ -1485,7 +1635,7 @@ int OldDOSFont::getCharWidth(uint16 c) const {
 	return _width;
 }
 
-void OldDOSFont::drawChar(uint16 c, byte *dst, int pitch) const {
+void OldDOSFont::drawChar(uint16 c, byte *dst, int pitch, int bpp) const {
 	static const uint8 renderMaskTable6[] = { 0xFC, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x1F, 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xF8 };
 	static const uint8 renderMaskTable8[] = { 0xFF, 0x00, 0x7F, 0x80, 0x3F, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xFE };
 
@@ -1536,24 +1686,28 @@ void OldDOSFont::drawChar(uint16 c, byte *dst, int pitch) const {
 		}
 	}
 
+	pitch *= bpp;
 	const uint8 *src = &_data[_bitmapOffsets[c]];
 	uint8 *dst2 = dst + pitch;
 
 	int w = (_width - 1) >> 3;
-	pitch -= _width;
+	pitch -= _width * bpp;
 
-	uint8 color1 = _colorMap[1];
-	uint8 color2 = _colorMap[0];
+	uint16 color1 = _colorMap8bit[1];
+	uint16 color2 = _colorMap8bit[0];
 
-	static const uint16 cgaColorMask[] = { 0, 0x5555, 0xAAAA, 0xFFFF };
-	uint16 cgaMask1 = cgaColorMask[color1 & 3];
-	uint16 cgaMask2 = cgaColorMask[color2 & 3];
-
-	if (_renderMode == Common::kRenderCGA || _renderMode == Common::kRenderEGA) {
+	if (bpp == 2) {
+		color1 = _colorMap16bit[1];
+		color2 = _colorMap16bit[0];
+	} else if (_renderMode == Common::kRenderCGA || _renderMode == Common::kRenderEGA) {
 		color1 &= 0x0F;
 		color2 &= 0x0F;
 	}
 
+	static const uint16 cgaColorMask[] = { 0, 0x5555, 0xAAAA, 0xFFFF };
+	uint16 cgaMask1 = cgaColorMask[color1 & 3];
+	uint16 cgaMask2 = cgaColorMask[color2 & 3];
+
 	int cH = _height;
 	while (cH--) {
 		int cW = w;
@@ -1607,12 +1761,19 @@ void OldDOSFont::drawChar(uint16 c, byte *dst, int pitch) const {
 					}
 
 					if (s & i) {
-						if (color1)
+						if (bpp == 2)
+							*(uint16*)dst = color1;
+						else if (color1)
 							*dst = color1;
-					} else if (color2) {
-						*dst = color2;
+					} else {
+						if (bpp == 2) {
+							if (color2 != 0xFFFF)
+								*(uint16*)dst = color2;
+						} else if (color2) {
+							*dst = color2;
+						}
 					}
-					dst++;
+					dst += bpp;
 				}
 
 				if (cW)
diff --git a/engines/kyra/screen_eob.h b/engines/kyra/screen_eob.h
index 42c7e59..7c2a31e 100644
--- a/engines/kyra/screen_eob.h
+++ b/engines/kyra/screen_eob.h
@@ -76,11 +76,14 @@ public:
 	int getRectSize(int w, int h);
 
 	void setFadeTable(const uint8 *table);
-	void createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight);
+	void createFadeTable(const uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight);
+	void createFadeTable16bit(const uint16 *palData, uint16 *dst, uint16 rootColor, uint8 weight);
 	
 	const uint16 *getCGADitheringTable(int index);
 	const uint8 *getEGADitheringTable();
 
+	void convertToHiColor(int page);
+	void shadeRect(int x1, int y1, int x2, int y2, int shadingLevel);
 private:
 	void updateDirtyRects();
 	void ditherRect(const uint8 *src, uint8 *dst, int dstPitch, int srcW, int srcH, int colorKey = -1);
@@ -106,6 +109,7 @@ private:
 	uint8 _shapeOverlay[16];
 
 	uint8 *_dsTempPage;
+	uint8 *_convertHiColorBuffer;
 
 	uint16 *_cgaDitheringTables[2];
 	const uint8 *_cgaMappingDefault;


Commit: 61bd730bcf4ee311e79ab2fc49e3eca21018cdfe
    https://github.com/scummvm/scummvm/commit/61bd730bcf4ee311e79ab2fc49e3eca21018cdfe
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:21+01:00

Commit Message:
KYRA: (EOB) - fix thumbnails for special cases

(EGA dithering, 16bit mode, Japanese font rendering)

Changed paths:
    engines/kyra/eobcommon.h
    engines/kyra/gui_eob.cpp


diff --git a/engines/kyra/eobcommon.h b/engines/kyra/eobcommon.h
index 810b792..8d740f1 100644
--- a/engines/kyra/eobcommon.h
+++ b/engines/kyra/eobcommon.h
@@ -765,6 +765,8 @@ protected:
 	uint8 _charExchangeSwap;
 	bool _configHpBarGraphs;
 
+	Graphics::Surface _thumbNail;
+
 	// text
 	void setupDialogueButtons(int presetfirst, int numStr, va_list &args);
 	void initDialogueSequence();
diff --git a/engines/kyra/gui_eob.cpp b/engines/kyra/gui_eob.cpp
index cdc5fba..eaefa50 100644
--- a/engines/kyra/gui_eob.cpp
+++ b/engines/kyra/gui_eob.cpp
@@ -777,12 +777,20 @@ int EoBCoreEngine::clickedCamp(Button *button) {
 	}
 
 	_screen->copyPage(0, 7);
+	
+	// Create a thumbnail from the screen for a possible savegame.
+	// This ensures that all special rendering (EGA dithering, 16bit rendering, Japanese font rendering) will be visible on the thumbnail.
+	::createThumbnailFromScreen(&_thumbNail);
+
 	_screen->copyRegion(0, 120, 0, 0, 176, 24, 0, 12, Screen::CR_NO_P_CHECK);
 
 	_gui->runCampMenu();
 
 	_screen->copyRegion(0, 0, 0, 120, 176, 24, 12, 2, Screen::CR_NO_P_CHECK);
 	_screen->setScreenDim(cd);
+
+	_thumbNail.free();
+
 	drawScene(0);
 
 	for (int i = 0; i < 6; i++)
@@ -2645,17 +2653,7 @@ bool GUI_EoB::transferFileMenu(Common::String &targetName, Common::String &selec
 }
 
 void GUI_EoB::createScreenThumbnail(Graphics::Surface &dst) {
-	uint8 *screenPal = new uint8[768];
-	_screen->getRealPalette(0, screenPal);
-	uint16 width = Screen::SCREEN_W;
-	uint16 height = Screen::SCREEN_H;
-	if (_vm->gameFlags().useHiRes) {
-		width <<= 1;
-		height <<= 1;
-	}
-
-	::createThumbnail(&dst, _screen->getCPagePtr(7), width, height, screenPal);
-	delete[] screenPal;
+	dst.copyFrom(_vm->_thumbNail);
 }
 
 void GUI_EoB::simpleMenu_initMenuItemsMask(int menuId, int maxItem, int32 menuItemsMask, int itemOffset) {


Commit: f49eaa5654b2ee2e41b1794a4576d24967e2f7d7
    https://github.com/scummvm/scummvm/commit/f49eaa5654b2ee2e41b1794a4576d24967e2f7d7
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:22+01:00

Commit Message:
KYRA: (EOB) - add support for FM-Towns version of EOB II

Changed paths:
  A devtools/create_kyradat/resources/eob2_fmtowns.h
  A devtools/create_kyradat/resources/eob2_fmtowns_japanese.h
  A engines/kyra/sound_towns_darkmoon.cpp
    devtools/create_kyradat/create_kyradat.cpp
    devtools/create_kyradat/create_kyradat.h
    devtools/create_kyradat/games.cpp
    devtools/create_kyradat/resources.cpp
    devtools/create_kyradat/resources/eob1_dos.h
    devtools/create_kyradat/resources/eob2_dos.h
    devtools/create_kyradat/resources/lol_dos.h
    devtools/create_kyradat/resources/lol_dos_cd.h
    devtools/create_kyradat/resources/lol_fmtowns.h
    devtools/create_kyradat/resources/lol_pc98.h
    dists/engine-data/kyra.dat
    engines/kyra/chargen.cpp
    engines/kyra/darkmoon.cpp
    engines/kyra/darkmoon.h
    engines/kyra/detection.cpp
    engines/kyra/detection_tables.h
    engines/kyra/eobcommon.cpp
    engines/kyra/eobcommon.h
    engines/kyra/gui_eob.cpp
    engines/kyra/gui_eob.h
    engines/kyra/items_eob.cpp
    engines/kyra/kyra_rpg.cpp
    engines/kyra/kyra_rpg.h
    engines/kyra/kyra_v1.cpp
    engines/kyra/magic_eob.cpp
    engines/kyra/module.mk
    engines/kyra/resource.h
    engines/kyra/saveload.cpp
    engines/kyra/saveload_eob.cpp
    engines/kyra/scene_eob.cpp
    engines/kyra/scene_lol.cpp
    engines/kyra/scene_rpg.cpp
    engines/kyra/screen.cpp
    engines/kyra/screen.h
    engines/kyra/screen_eob.cpp
    engines/kyra/screen_eob.h
    engines/kyra/script_eob.cpp
    engines/kyra/sequences_darkmoon.cpp
    engines/kyra/sound.h
    engines/kyra/sound_intern.h
    engines/kyra/sprites_eob.cpp
    engines/kyra/staticres.cpp
    engines/kyra/staticres_eob.cpp
    engines/kyra/staticres_rpg.cpp
    engines/kyra/text_rpg.cpp


diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp
index 8856112..19c9fa8 100644
--- a/devtools/create_kyradat/create_kyradat.cpp
+++ b/devtools/create_kyradat/create_kyradat.cpp
@@ -323,7 +323,7 @@ const ExtractFilename extractFilenames[] = {
 
 	{ kEoBBaseWllFlagPreset, kRawData, false },
 	{ kEoBBaseDscShapeCoords, kRawDataBe16, false },
-	{ kEoBBaseDscDoorScaleOffs, kRawData, false },
+	{ kRpgCommonDscDoorScaleOffs, kRawData, false },
 	{ kEoBBaseDscDoorScaleMult1, kRawData, false },
 	{ kEoBBaseDscDoorScaleMult2, kRawData, false },
 	{ kEoBBaseDscDoorScaleMult3, kRawData, false },
@@ -477,6 +477,7 @@ const ExtractFilename extractFilenames[] = {
 
 	// EYE OF THE BEHOLDER II
 	{ kEoB2MainMenuStrings, kStringList, true },
+	{ kEoB2MainMenuUtilStrings, kStringList, true },
 
 	{ kEoB2TransferPortraitFrames, kRawDataBe16, false },
 	{ kEoB2TransferConvertTable, kRawData, false },
@@ -536,6 +537,19 @@ const ExtractFilename extractFilenames[] = {
 	{ kEoB2IntroShapes01, kEoB2ShapeData, false },
 	{ kEoB2IntroShapes04, kEoB2ShapeData, false },
 	{ kEoB2IntroShapes07, kEoB2ShapeData, false },
+	{ kEoB2IntroCpsDataStreet1, kRawData, false },
+	{ kEoB2IntroCpsDataStreet2, kRawData, false },
+	{ kEoB2IntroCpsDataDoorway1, kRawData, false },
+	{ kEoB2IntroCpsDataDoorway2, kRawData, false },
+	{ kEoB2IntroCpsDataWestwood, kRawData, false },
+	{ kEoB2IntroCpsDataWinding, kRawData, false },
+	{ kEoB2IntroCpsDataKhelban2, kRawData, false },
+	{ kEoB2IntroCpsDataKhelban1, kRawData, false },
+	{ kEoB2IntroCpsDataKhelban3, kRawData, false },
+	{ kEoB2IntroCpsDataKhelban4, kRawData, false },
+	{ kEoB2IntroCpsDataCoin, kRawData, false },
+	{ kEoB2IntroCpsDataKhelban5, kRawData, false },
+	{ kEoB2IntroCpsDataKhelban6, kRawData, false },
 
 	{ kEoB2FinaleStrings, kStringList, true },
 	{ kEoB2CreditsData, kRawData, true },
@@ -566,6 +580,20 @@ const ExtractFilename extractFilenames[] = {
 	{ kEoB2FinaleShapes07, kEoB2ShapeData, false },
 	{ kEoB2FinaleShapes09, kEoB2ShapeData, false },
 	{ kEoB2FinaleShapes10, kEoB2ShapeData, false },
+	{ kEoB2FinaleCpsDataDragon1, kRawData, false },
+	{ kEoB2FinaleCpsDataDragon2, kRawData, false },
+	{ kEoB2FinaleCpsDataHurry1, kRawData, false },
+	{ kEoB2FinaleCpsDataHurry2, kRawData, false },
+	{ kEoB2FinaleCpsDataDestroy0, kRawData, false },
+	{ kEoB2FinaleCpsDataDestroy1, kRawData, false },
+	{ kEoB2FinaleCpsDataDestroy2, kRawData, false },
+	{ kEoB2FinaleCpsDataMagic, kRawData, false },
+	{ kEoB2FinaleCpsDataDestroy3, kRawData, false },
+	{ kEoB2FinaleCpsDataCredits2, kRawData, false },
+	{ kEoB2FinaleCpsDataCredits3, kRawData, false },
+	{ kEoB2FinaleCpsDataHeroes, kRawData, false },
+	{ kEoB2FinaleCpsDataThanks, kRawData, false },
+
 	{ kEoB2NpcShapeData, kRawData, false },
 	{ kEoBBaseClassModifierFlags, kRawData, false },
 	{ kEoBBaseMonsterStepTable01, kRawData, false },
@@ -600,6 +628,230 @@ const ExtractFilename extractFilenames[] = {
 	{ kEoB2WallOfForceNumH, kRawData, false },
 	{ kEoB2WallOfForceShpId, kRawData, false },
 
+	{ kEoB2ItemIconShapeData00, kRawData, false },
+	{ kEoB2ItemIconShapeData01, kRawData, false },
+	{ kEoB2ItemIconShapeData02, kRawData, false },
+	{ kEoB2ItemIconShapeData03, kRawData, false },
+	{ kEoB2ItemIconShapeData04, kRawData, false },
+	{ kEoB2ItemIconShapeData05, kRawData, false },
+	{ kEoB2ItemIconShapeData06, kRawData, false },
+	{ kEoB2ItemIconShapeData07, kRawData, false },
+	{ kEoB2ItemIconShapeData08, kRawData, false },
+	{ kEoB2ItemIconShapeData09, kRawData, false },
+	{ kEoB2ItemIconShapeData10, kRawData, false },
+	{ kEoB2ItemIconShapeData11, kRawData, false },
+	{ kEoB2ItemIconShapeData12, kRawData, false },
+	{ kEoB2ItemIconShapeData13, kRawData, false },
+	{ kEoB2ItemIconShapeData14, kRawData, false },
+	{ kEoB2ItemIconShapeData15, kRawData, false },
+	{ kEoB2ItemIconShapeData16, kRawData, false },
+	{ kEoB2ItemIconShapeData17, kRawData, false },
+	{ kEoB2ItemIconShapeData18, kRawData, false },
+	{ kEoB2ItemIconShapeData19, kRawData, false },
+	{ kEoB2ItemIconShapeData20, kRawData, false },
+	{ kEoB2ItemIconShapeData21, kRawData, false },
+	{ kEoB2ItemIconShapeData22, kRawData, false },
+	{ kEoB2ItemIconShapeData23, kRawData, false },
+	{ kEoB2ItemIconShapeData24, kRawData, false },
+	{ kEoB2ItemIconShapeData25, kRawData, false },
+	{ kEoB2ItemIconShapeData26, kRawData, false },
+	{ kEoB2ItemIconShapeData27, kRawData, false },
+	{ kEoB2ItemIconShapeData28, kRawData, false },
+	{ kEoB2ItemIconShapeData29, kRawData, false },
+	{ kEoB2ItemIconShapeData30, kRawData, false },
+	{ kEoB2ItemIconShapeData31, kRawData, false },
+	{ kEoB2ItemIconShapeData32, kRawData, false },
+	{ kEoB2ItemIconShapeData33, kRawData, false },
+	{ kEoB2ItemIconShapeData34, kRawData, false },
+	{ kEoB2ItemIconShapeData35, kRawData, false },
+	{ kEoB2ItemIconShapeData36, kRawData, false },
+	{ kEoB2ItemIconShapeData37, kRawData, false },
+	{ kEoB2ItemIconShapeData38, kRawData, false },
+	{ kEoB2ItemIconShapeData39, kRawData, false },
+	{ kEoB2ItemIconShapeData40, kRawData, false },
+	{ kEoB2ItemIconShapeData41, kRawData, false },
+	{ kEoB2ItemIconShapeData42, kRawData, false },
+	{ kEoB2ItemIconShapeData43, kRawData, false },
+	{ kEoB2ItemIconShapeData44, kRawData, false },
+	{ kEoB2ItemIconShapeData45, kRawData, false },
+	{ kEoB2ItemIconShapeData46, kRawData, false },
+	{ kEoB2ItemIconShapeData47, kRawData, false },
+	{ kEoB2ItemIconShapeData48, kRawData, false },
+	{ kEoB2ItemIconShapeData49, kRawData, false },
+	{ kEoB2ItemIconShapeData50, kRawData, false },
+	{ kEoB2ItemIconShapeData51, kRawData, false },
+	{ kEoB2ItemIconShapeData52, kRawData, false },
+	{ kEoB2ItemIconShapeData53, kRawData, false },
+	{ kEoB2ItemIconShapeData54, kRawData, false },
+	{ kEoB2ItemIconShapeData55, kRawData, false },
+	{ kEoB2ItemIconShapeData56, kRawData, false },
+	{ kEoB2ItemIconShapeData57, kRawData, false },
+	{ kEoB2ItemIconShapeData58, kRawData, false },
+	{ kEoB2ItemIconShapeData59, kRawData, false },
+	{ kEoB2ItemIconShapeData60, kRawData, false },
+	{ kEoB2ItemIconShapeData61, kRawData, false },
+	{ kEoB2ItemIconShapeData62, kRawData, false },
+	{ kEoB2ItemIconShapeData63, kRawData, false },
+	{ kEoB2ItemIconShapeData64, kRawData, false },
+	{ kEoB2ItemIconShapeData65, kRawData, false },
+	{ kEoB2ItemIconShapeData66, kRawData, false },
+	{ kEoB2ItemIconShapeData67, kRawData, false },
+	{ kEoB2ItemIconShapeData68, kRawData, false },
+	{ kEoB2ItemIconShapeData69, kRawData, false },
+	{ kEoB2ItemIconShapeData70, kRawData, false },
+	{ kEoB2ItemIconShapeData71, kRawData, false },
+	{ kEoB2ItemIconShapeData72, kRawData, false },
+	{ kEoB2ItemIconShapeData73, kRawData, false },
+	{ kEoB2ItemIconShapeData74, kRawData, false },
+	{ kEoB2ItemIconShapeData75, kRawData, false },
+	{ kEoB2ItemIconShapeData76, kRawData, false },
+	{ kEoB2ItemIconShapeData77, kRawData, false },
+	{ kEoB2ItemIconShapeData78, kRawData, false },
+	{ kEoB2ItemIconShapeData79, kRawData, false },
+	{ kEoB2ItemIconShapeData80, kRawData, false },
+	{ kEoB2ItemIconShapeData81, kRawData, false },
+	{ kEoB2ItemIconShapeData82, kRawData, false },
+	{ kEoB2ItemIconShapeData83, kRawData, false },
+	{ kEoB2ItemIconShapeData84, kRawData, false },
+	{ kEoB2ItemIconShapeData85, kRawData, false },
+	{ kEoB2ItemIconShapeData86, kRawData, false },
+	{ kEoB2ItemIconShapeData87, kRawData, false },
+	{ kEoB2ItemIconShapeData88, kRawData, false },
+	{ kEoB2ItemIconShapeData89, kRawData, false },
+	{ kEoB2ItemIconShapeData90, kRawData, false },
+	{ kEoB2ItemIconShapeData91, kRawData, false },
+	{ kEoB2ItemIconShapeData92, kRawData, false },
+	{ kEoB2ItemIconShapeData93, kRawData, false },
+	{ kEoB2ItemIconShapeData94, kRawData, false },
+	{ kEoB2ItemIconShapeData95, kRawData, false },
+	{ kEoB2ItemIconShapeData96, kRawData, false },
+	{ kEoB2ItemIconShapeData97, kRawData, false },
+	{ kEoB2ItemIconShapeData98, kRawData, false },
+	{ kEoB2ItemIconShapeData99, kRawData, false },
+	{ kEoB2ItemIconShapeData100, kRawData, false },
+	{ kEoB2ItemIconShapeData101, kRawData, false },
+	{ kEoB2ItemIconShapeData102, kRawData, false },
+	{ kEoB2ItemIconShapeData103, kRawData, false },
+	{ kEoB2ItemIconShapeData104, kRawData, false },
+	{ kEoB2ItemIconShapeData105, kRawData, false },
+	{ kEoB2ItemIconShapeData106, kRawData, false },
+	{ kEoB2ItemIconShapeData107, kRawData, false },
+	{ kEoB2ItemIconShapeData108, kRawData, false },
+	{ kEoB2ItemIconShapeData109, kRawData, false },
+	{ kEoB2ItemIconShapeData110, kRawData, false },
+	{ kEoB2ItemIconShapeData111, kRawData, false },
+
+	{ kEoB2LargeItemsShapeData00, kRawData, false },
+	{ kEoB2LargeItemsShapeData01, kRawData, false },
+	{ kEoB2LargeItemsShapeData02, kRawData, false },
+	{ kEoB2LargeItemsShapeData03, kRawData, false },
+	{ kEoB2LargeItemsShapeData04, kRawData, false },
+	{ kEoB2LargeItemsShapeData05, kRawData, false },
+	{ kEoB2LargeItemsShapeData06, kRawData, false },
+	{ kEoB2LargeItemsShapeData07, kRawData, false },
+	{ kEoB2LargeItemsShapeData08, kRawData, false },
+	{ kEoB2LargeItemsShapeData09, kRawData, false },
+	{ kEoB2LargeItemsShapeData10, kRawData, false },
+
+	{ kEoB2SmallItemsShapeData00, kRawData, false },
+	{ kEoB2SmallItemsShapeData01, kRawData, false },
+	{ kEoB2SmallItemsShapeData02, kRawData, false },
+	{ kEoB2SmallItemsShapeData03, kRawData, false },
+	{ kEoB2SmallItemsShapeData04, kRawData, false },
+	{ kEoB2SmallItemsShapeData05, kRawData, false },
+	{ kEoB2SmallItemsShapeData06, kRawData, false },
+	{ kEoB2SmallItemsShapeData07, kRawData, false },
+	{ kEoB2SmallItemsShapeData08, kRawData, false },
+	{ kEoB2SmallItemsShapeData09, kRawData, false },
+	{ kEoB2SmallItemsShapeData10, kRawData, false },
+	{ kEoB2SmallItemsShapeData11, kRawData, false },
+	{ kEoB2SmallItemsShapeData12, kRawData, false },
+	{ kEoB2SmallItemsShapeData13, kRawData, false },
+	{ kEoB2SmallItemsShapeData14, kRawData, false },
+	{ kEoB2SmallItemsShapeData15, kRawData, false },
+	{ kEoB2SmallItemsShapeData16, kRawData, false },
+	{ kEoB2SmallItemsShapeData17, kRawData, false },
+	{ kEoB2SmallItemsShapeData18, kRawData, false },
+	{ kEoB2SmallItemsShapeData19, kRawData, false },
+	{ kEoB2SmallItemsShapeData20, kRawData, false },
+	{ kEoB2SmallItemsShapeData21, kRawData, false },
+	{ kEoB2SmallItemsShapeData22, kRawData, false },
+	{ kEoB2SmallItemsShapeData23, kRawData, false },
+	{ kEoB2SmallItemsShapeData24, kRawData, false },
+	{ kEoB2SmallItemsShapeData25, kRawData, false },
+
+	{ kEoB2ThrownShapeData00, kRawData, false },
+	{ kEoB2ThrownShapeData01, kRawData, false },
+	{ kEoB2ThrownShapeData02, kRawData, false },
+	{ kEoB2ThrownShapeData03, kRawData, false },
+	{ kEoB2ThrownShapeData04, kRawData, false },
+	{ kEoB2ThrownShapeData05, kRawData, false },
+	{ kEoB2ThrownShapeData06, kRawData, false },
+	{ kEoB2ThrownShapeData07, kRawData, false },
+	{ kEoB2ThrownShapeData08, kRawData, false },
+
+	{ kEoB2SpellShapeData00, kRawData, false },
+	{ kEoB2SpellShapeData01, kRawData, false },
+	{ kEoB2SpellShapeData02, kRawData, false },
+	{ kEoB2SpellShapeData03, kRawData, false },
+
+	{ kEoB2TeleporterShapeData00, kRawData, false },
+	{ kEoB2TeleporterShapeData01, kRawData, false },
+	{ kEoB2TeleporterShapeData02, kRawData, false },
+	{ kEoB2TeleporterShapeData03, kRawData, false },
+	{ kEoB2TeleporterShapeData04, kRawData, false },
+	{ kEoB2TeleporterShapeData05, kRawData, false },
+
+	{ kEoB2LightningColumnShapeData, kRawData, false },
+	{ kEoB2DeadCharShapeData, kRawData, false },
+	{ kEoB2DisabledCharGridShapeData, kRawData, false },
+	{ kEoB2WeaponSlotGridShapeData, kRawData, false },
+	{ kEoB2SmallGridShapeData, kRawData, false },
+	{ kEoB2WideGridShapeData, kRawData, false },
+	{ kEoB2RedSplatShapeData, kRawData, false },
+	{ kEoB2GreenSplatShapeData, kRawData, false },
+
+	{ kEoB2FirebeamShapeData00, kRawData, false },
+	{ kEoB2FirebeamShapeData01, kRawData, false },
+	{ kEoB2FirebeamShapeData02, kRawData, false },
+
+	{ kEoB2SparkShapeData00, kRawData, false },
+	{ kEoB2SparkShapeData01, kRawData, false },
+	{ kEoB2SparkShapeData02, kRawData, false },
+
+	{ kEoB2CompassShapeData00, kRawData, false },
+	{ kEoB2CompassShapeData01, kRawData, false },
+	{ kEoB2CompassShapeData02, kRawData, false },
+	{ kEoB2CompassShapeData03, kRawData, false },
+	{ kEoB2CompassShapeData04, kRawData, false },
+	{ kEoB2CompassShapeData05, kRawData, false },
+	{ kEoB2CompassShapeData06, kRawData, false },
+	{ kEoB2CompassShapeData07, kRawData, false },
+	{ kEoB2CompassShapeData08, kRawData, false },
+	{ kEoB2CompassShapeData09, kRawData, false },
+	{ kEoB2CompassShapeData10, kRawData, false },
+	{ kEoB2CompassShapeData11, kRawData, false },
+
+	{ kEoB2WallOfForceShapeData00, kRawData, false },
+	{ kEoB2WallOfForceShapeData01, kRawData, false },
+	{ kEoB2WallOfForceShapeData02, kRawData, false },
+	{ kEoB2WallOfForceShapeData03, kRawData, false },
+	{ kEoB2WallOfForceShapeData04, kRawData, false },
+	{ kEoB2WallOfForceShapeData05, kRawData, false },
+
+	{ kEoB2UtilMenuStrings, kStringList, true },
+	{ kEoB2Config2431Strings, kStringList, true },
+	{ kEoB2KatakanaLines, kStringList, true },
+	{ kEoB2KanaSelectStrings, kStringList, true },
+	{ kEoB2FontDmpSearchTbl, kRawDataBe16, false },
+	{ kEoB2Ascii2SjisTables, kStringList, false },
+	{ kEoB2Ascii2SjisTables2, kStringList, false },
+	{ kEoB2SaveNamePatterns, kStringList, false },
+
+	{ kEoB2PcmSoundEffectsIngame, kRawData, false },
+	{ kEoB2PcmSoundEffectsIntro, kRawData, false },
+	{ kEoB2PcmSoundEffectsFinale, kRawData, false },
+
 	// LANDS OF LORE
 
 	// Ingame
@@ -647,7 +899,6 @@ const ExtractFilename extractFilenames[] = {
 	{ kRpgCommonDscX, kRawDataBe16, false },
 	{ kLoLBaseDscY, kRawData, false },
 	{ kRpgCommonDscTileIndex, kRawData, false },
-	{ kRpgCommonDscUnk2, kRawData, false },
 	{ kRpgCommonDscDoorShapeIndex, kRawData, false },
 	{ kRpgCommonDscDimData1, kRawData, false },
 	{ kRpgCommonDscDimData2, kRawData, false },
diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h
index 1d58d75..cb70f25 100644
--- a/devtools/create_kyradat/create_kyradat.h
+++ b/devtools/create_kyradat/create_kyradat.h
@@ -182,7 +182,6 @@ enum kExtractID {
 	kRpgCommonDscShapeIndex,
 	kRpgCommonDscX,
 	kRpgCommonDscTileIndex,
-	kRpgCommonDscUnk2,
 	kRpgCommonDscDoorShapeIndex,
 	kRpgCommonDscDimData1,
 	kRpgCommonDscDimData2,
@@ -193,6 +192,7 @@ enum kExtractID {
 	kRpgCommonDscDoorFrameY2,
 	kRpgCommonDscDoorFrameIndex1,
 	kRpgCommonDscDoorFrameIndex2,
+	kRpgCommonDscDoorScaleOffs,
 	kRpgCommonDscBlockIndex,
 
 	kEoBBaseChargenStrings1,
@@ -327,7 +327,6 @@ enum kExtractID {
 	kEoBBaseWllFlagPreset,
 	kEoBBaseDscShapeCoords,
 
-	kEoBBaseDscDoorScaleOffs,
 	kEoBBaseDscDoorScaleMult1,
 	kEoBBaseDscDoorScaleMult2,
 	kEoBBaseDscDoorScaleMult3,
@@ -481,6 +480,7 @@ enum kExtractID {
 	kEoB1Npc7Strings,
 
 	kEoB2MainMenuStrings,
+	kEoB2MainMenuUtilStrings,
 
 	kEoB2TransferPortraitFrames,
 	kEoB2TransferConvertTable,
@@ -536,6 +536,7 @@ enum kExtractID {
 	kEoB2IntroAnimData41,
 	kEoB2IntroAnimData42,
 	kEoB2IntroAnimData43,
+
 	kEoB2IntroShapes00,
 	kEoB2IntroShapes01,
 	kEoB2IntroShapes04,
@@ -587,6 +588,258 @@ enum kExtractID {
 	kEoB2WallOfForceNumH,
 	kEoB2WallOfForceShpId,
 
+	// FM-Towns specific
+	kEoB2IntroCpsDataStreet1,
+	kEoB2IntroCpsDataStreet2,
+	kEoB2IntroCpsDataDoorway1,
+	kEoB2IntroCpsDataDoorway2,
+	kEoB2IntroCpsDataWestwood,
+	kEoB2IntroCpsDataWinding,
+	kEoB2IntroCpsDataKhelban2,
+	kEoB2IntroCpsDataKhelban1,
+	kEoB2IntroCpsDataKhelban3,
+	kEoB2IntroCpsDataKhelban4,
+	kEoB2IntroCpsDataCoin,
+	kEoB2IntroCpsDataKhelban5,
+	kEoB2IntroCpsDataKhelban6,
+
+	kEoB2FinaleCpsDataDragon1,
+	kEoB2FinaleCpsDataDragon2,
+	kEoB2FinaleCpsDataHurry1,
+	kEoB2FinaleCpsDataHurry2,
+	kEoB2FinaleCpsDataDestroy0,
+	kEoB2FinaleCpsDataDestroy1,
+	kEoB2FinaleCpsDataDestroy2,
+	kEoB2FinaleCpsDataMagic,
+	kEoB2FinaleCpsDataDestroy3,
+	kEoB2FinaleCpsDataCredits2,
+	kEoB2FinaleCpsDataCredits3,
+	kEoB2FinaleCpsDataHeroes,
+	kEoB2FinaleCpsDataThanks,
+
+	kEoB2ItemIconShapeData00,
+	kEoB2ItemIconShapeData01,
+	kEoB2ItemIconShapeData02,
+	kEoB2ItemIconShapeData03,
+	kEoB2ItemIconShapeData04,
+	kEoB2ItemIconShapeData05,
+	kEoB2ItemIconShapeData06,
+	kEoB2ItemIconShapeData07,
+	kEoB2ItemIconShapeData08,
+	kEoB2ItemIconShapeData09,
+	kEoB2ItemIconShapeData10,
+	kEoB2ItemIconShapeData11,
+	kEoB2ItemIconShapeData12,
+	kEoB2ItemIconShapeData13,
+	kEoB2ItemIconShapeData14,
+	kEoB2ItemIconShapeData15,
+	kEoB2ItemIconShapeData16,
+	kEoB2ItemIconShapeData17,
+	kEoB2ItemIconShapeData18,
+	kEoB2ItemIconShapeData19,
+	kEoB2ItemIconShapeData20,
+	kEoB2ItemIconShapeData21,
+	kEoB2ItemIconShapeData22,
+	kEoB2ItemIconShapeData23,
+	kEoB2ItemIconShapeData24,
+	kEoB2ItemIconShapeData25,
+	kEoB2ItemIconShapeData26,
+	kEoB2ItemIconShapeData27,
+	kEoB2ItemIconShapeData28,
+	kEoB2ItemIconShapeData29,
+	kEoB2ItemIconShapeData30,
+	kEoB2ItemIconShapeData31,
+	kEoB2ItemIconShapeData32,
+	kEoB2ItemIconShapeData33,
+	kEoB2ItemIconShapeData34,
+	kEoB2ItemIconShapeData35,
+	kEoB2ItemIconShapeData36,
+	kEoB2ItemIconShapeData37,
+	kEoB2ItemIconShapeData38,
+	kEoB2ItemIconShapeData39,
+	kEoB2ItemIconShapeData40,
+	kEoB2ItemIconShapeData41,
+	kEoB2ItemIconShapeData42,
+	kEoB2ItemIconShapeData43,
+	kEoB2ItemIconShapeData44,
+	kEoB2ItemIconShapeData45,
+	kEoB2ItemIconShapeData46,
+	kEoB2ItemIconShapeData47,
+	kEoB2ItemIconShapeData48,
+	kEoB2ItemIconShapeData49,
+	kEoB2ItemIconShapeData50,
+	kEoB2ItemIconShapeData51,
+	kEoB2ItemIconShapeData52,
+	kEoB2ItemIconShapeData53,
+	kEoB2ItemIconShapeData54,
+	kEoB2ItemIconShapeData55,
+	kEoB2ItemIconShapeData56,
+	kEoB2ItemIconShapeData57,
+	kEoB2ItemIconShapeData58,
+	kEoB2ItemIconShapeData59,
+	kEoB2ItemIconShapeData60,
+	kEoB2ItemIconShapeData61,
+	kEoB2ItemIconShapeData62,
+	kEoB2ItemIconShapeData63,
+	kEoB2ItemIconShapeData64,
+	kEoB2ItemIconShapeData65,
+	kEoB2ItemIconShapeData66,
+	kEoB2ItemIconShapeData67,
+	kEoB2ItemIconShapeData68,
+	kEoB2ItemIconShapeData69,
+	kEoB2ItemIconShapeData70,
+	kEoB2ItemIconShapeData71,
+	kEoB2ItemIconShapeData72,
+	kEoB2ItemIconShapeData73,
+	kEoB2ItemIconShapeData74,
+	kEoB2ItemIconShapeData75,
+	kEoB2ItemIconShapeData76,
+	kEoB2ItemIconShapeData77,
+	kEoB2ItemIconShapeData78,
+	kEoB2ItemIconShapeData79,
+	kEoB2ItemIconShapeData80,
+	kEoB2ItemIconShapeData81,
+	kEoB2ItemIconShapeData82,
+	kEoB2ItemIconShapeData83,
+	kEoB2ItemIconShapeData84,
+	kEoB2ItemIconShapeData85,
+	kEoB2ItemIconShapeData86,
+	kEoB2ItemIconShapeData87,
+	kEoB2ItemIconShapeData88,
+	kEoB2ItemIconShapeData89,
+	kEoB2ItemIconShapeData90,
+	kEoB2ItemIconShapeData91,
+	kEoB2ItemIconShapeData92,
+	kEoB2ItemIconShapeData93,
+	kEoB2ItemIconShapeData94,
+	kEoB2ItemIconShapeData95,
+	kEoB2ItemIconShapeData96,
+	kEoB2ItemIconShapeData97,
+	kEoB2ItemIconShapeData98,
+	kEoB2ItemIconShapeData99,
+	kEoB2ItemIconShapeData100,
+	kEoB2ItemIconShapeData101,
+	kEoB2ItemIconShapeData102,
+	kEoB2ItemIconShapeData103,
+	kEoB2ItemIconShapeData104,
+	kEoB2ItemIconShapeData105,
+	kEoB2ItemIconShapeData106,
+	kEoB2ItemIconShapeData107,
+	kEoB2ItemIconShapeData108,
+	kEoB2ItemIconShapeData109,
+	kEoB2ItemIconShapeData110,
+	kEoB2ItemIconShapeData111,
+
+	kEoB2LargeItemsShapeData00,
+	kEoB2LargeItemsShapeData01,
+	kEoB2LargeItemsShapeData02,
+	kEoB2LargeItemsShapeData03,
+	kEoB2LargeItemsShapeData04,
+	kEoB2LargeItemsShapeData05,
+	kEoB2LargeItemsShapeData06,
+	kEoB2LargeItemsShapeData07,
+	kEoB2LargeItemsShapeData08,
+	kEoB2LargeItemsShapeData09,
+	kEoB2LargeItemsShapeData10,
+
+	kEoB2SmallItemsShapeData00,
+	kEoB2SmallItemsShapeData01,
+	kEoB2SmallItemsShapeData02,
+	kEoB2SmallItemsShapeData03,
+	kEoB2SmallItemsShapeData04,
+	kEoB2SmallItemsShapeData05,
+	kEoB2SmallItemsShapeData06,
+	kEoB2SmallItemsShapeData07,
+	kEoB2SmallItemsShapeData08,
+	kEoB2SmallItemsShapeData09,
+	kEoB2SmallItemsShapeData10,
+	kEoB2SmallItemsShapeData11,
+	kEoB2SmallItemsShapeData12,
+	kEoB2SmallItemsShapeData13,
+	kEoB2SmallItemsShapeData14,
+	kEoB2SmallItemsShapeData15,
+	kEoB2SmallItemsShapeData16,
+	kEoB2SmallItemsShapeData17,
+	kEoB2SmallItemsShapeData18,
+	kEoB2SmallItemsShapeData19,
+	kEoB2SmallItemsShapeData20,
+	kEoB2SmallItemsShapeData21,
+	kEoB2SmallItemsShapeData22,
+	kEoB2SmallItemsShapeData23,
+	kEoB2SmallItemsShapeData24,
+	kEoB2SmallItemsShapeData25,
+
+	kEoB2ThrownShapeData00,
+	kEoB2ThrownShapeData01,
+	kEoB2ThrownShapeData02,
+	kEoB2ThrownShapeData03,
+	kEoB2ThrownShapeData04,
+	kEoB2ThrownShapeData05,
+	kEoB2ThrownShapeData06,
+	kEoB2ThrownShapeData07,
+	kEoB2ThrownShapeData08,
+
+	kEoB2SpellShapeData00,
+	kEoB2SpellShapeData01,
+	kEoB2SpellShapeData02,
+	kEoB2SpellShapeData03,
+
+	kEoB2TeleporterShapeData00,
+	kEoB2TeleporterShapeData01,
+	kEoB2TeleporterShapeData02,
+	kEoB2TeleporterShapeData03,
+	kEoB2TeleporterShapeData04,
+	kEoB2TeleporterShapeData05,
+
+	kEoB2LightningColumnShapeData,
+	kEoB2DeadCharShapeData,
+	kEoB2DisabledCharGridShapeData,
+	kEoB2WeaponSlotGridShapeData,
+	kEoB2SmallGridShapeData,
+	kEoB2WideGridShapeData,
+	kEoB2RedSplatShapeData,
+	kEoB2GreenSplatShapeData,
+
+	kEoB2FirebeamShapeData00,
+	kEoB2FirebeamShapeData01,
+	kEoB2FirebeamShapeData02,
+
+	kEoB2SparkShapeData00,
+	kEoB2SparkShapeData01,
+	kEoB2SparkShapeData02,
+
+	kEoB2CompassShapeData00,
+	kEoB2CompassShapeData01,
+	kEoB2CompassShapeData02,
+	kEoB2CompassShapeData03,
+	kEoB2CompassShapeData04,
+	kEoB2CompassShapeData05,
+	kEoB2CompassShapeData06,
+	kEoB2CompassShapeData07,
+	kEoB2CompassShapeData08,
+	kEoB2CompassShapeData09,
+	kEoB2CompassShapeData10,
+	kEoB2CompassShapeData11,
+
+	kEoB2WallOfForceShapeData00,
+	kEoB2WallOfForceShapeData01,
+	kEoB2WallOfForceShapeData02,
+	kEoB2WallOfForceShapeData03,
+	kEoB2WallOfForceShapeData04,
+	kEoB2WallOfForceShapeData05,
+
+	kEoB2UtilMenuStrings,
+	kEoB2Config2431Strings,
+	kEoB2KatakanaLines,
+	kEoB2KanaSelectStrings,
+	kEoB2FontDmpSearchTbl,
+	kEoB2Ascii2SjisTables,
+	kEoB2Ascii2SjisTables2,
+	kEoB2SaveNamePatterns,
+	kEoB2PcmSoundEffectsIngame,
+	kEoB2PcmSoundEffectsIntro,
+	kEoB2PcmSoundEffectsFinale,
+
 	kLoLIngamePakFiles,
 	kLoLCharacterDefs,
 	kLoLIngameSfxFiles,
diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index 0c151ec..077b570 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -101,6 +101,8 @@ const Game eob1Games[] = {
 	{ kEoB1, kPlatformDOS, kNoSpecial, DE_DEU },
 	{ kEoB1, kPlatformDOS, kNoSpecial, IT_ITA },
 
+	//{ kEoB1, kPlatformPC98, kNoSpecial, JA_JPN },
+
 	GAME_DUMMY_ENTRY
 };
 
@@ -108,6 +110,10 @@ const Game eob2Games[] = {
 	{ kEoB2, kPlatformDOS, kNoSpecial, EN_ANY },
 	{ kEoB2, kPlatformDOS, kNoSpecial, DE_DEU },
 
+	//{ kEoB2, kPlatformPC98, kNoSpecial, JA_JPN },
+
+	{ kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN },
+
 	GAME_DUMMY_ENTRY
 };
 
@@ -822,7 +828,6 @@ const int lolFloppyNeed[] = {
 	kRpgCommonDscX,
 	kLoLBaseDscY,
 	kRpgCommonDscTileIndex,
-	kRpgCommonDscUnk2,
 	kRpgCommonDscDoorShapeIndex,
 	kRpgCommonDscDimData1,
 	kRpgCommonDscDimData2,
@@ -833,6 +838,7 @@ const int lolFloppyNeed[] = {
 	kRpgCommonDscDoorY2,
 	kRpgCommonDscDoorFrameY1,
 	kRpgCommonDscDoorFrameY2,
+	kRpgCommonDscDoorScaleOffs,
 	kLoLDscDoorScale,
 	kLoLDscDoor4,
 	kLoLDscDoorX,
@@ -905,7 +911,6 @@ const int lolPC98Need[] = {
 	kRpgCommonDscX,
 	kLoLBaseDscY,
 	kRpgCommonDscTileIndex,
-	kRpgCommonDscUnk2,
 	kRpgCommonDscDoorShapeIndex,
 	kRpgCommonDscDimData1,
 	kRpgCommonDscDimData2,
@@ -916,6 +921,7 @@ const int lolPC98Need[] = {
 	kRpgCommonDscDoorY2,
 	kRpgCommonDscDoorFrameY1,
 	kRpgCommonDscDoorFrameY2,
+	kRpgCommonDscDoorScaleOffs,
 	kLoLDscDoorScale,
 	kLoLDscDoor4,
 	kLoLDscDoorX,
@@ -989,7 +995,6 @@ const int lolFMTownsNeed[] = {
 	kRpgCommonDscX,
 	kLoLBaseDscY,
 	kRpgCommonDscTileIndex,
-	kRpgCommonDscUnk2,
 	kRpgCommonDscDoorShapeIndex,
 	kRpgCommonDscDimData1,
 	kRpgCommonDscDimData2,
@@ -1000,6 +1005,7 @@ const int lolFMTownsNeed[] = {
 	kRpgCommonDscDoorY2,
 	kRpgCommonDscDoorFrameY1,
 	kRpgCommonDscDoorFrameY2,
+	kRpgCommonDscDoorScaleOffs,
 	kLoLDscDoorScale,
 	kLoLDscDoor4,
 	kLoLDscDoorX,
@@ -1078,7 +1084,6 @@ const int lolCDNeed[] = {
 	kRpgCommonDscX,
 	kLoLBaseDscY,
 	kRpgCommonDscTileIndex,
-	kRpgCommonDscUnk2,
 	kRpgCommonDscDoorShapeIndex,
 	kRpgCommonDscDimData1,
 	kRpgCommonDscDimData2,
@@ -1089,6 +1094,7 @@ const int lolCDNeed[] = {
 	kRpgCommonDscDoorY2,
 	kRpgCommonDscDoorFrameY1,
 	kRpgCommonDscDoorFrameY2,
+	kRpgCommonDscDoorScaleOffs,
 	kLoLDscDoorScale,
 	kLoLDscDoor4,
 	kLoLDscDoorX,
@@ -1334,7 +1340,7 @@ const int eob1FloppyNeed[] = {
 	kRpgCommonDscDoorShapeIndex,
 	kEoBBaseWllFlagPreset,
 	kEoBBaseDscShapeCoords,
-	kEoBBaseDscDoorScaleOffs,
+	kRpgCommonDscDoorScaleOffs,
 	kEoBBaseDscDoorScaleMult1,
 	kEoBBaseDscDoorScaleMult2,
 	kEoBBaseDscDoorScaleMult3,
@@ -1384,7 +1390,6 @@ const int eob1FloppyNeed[] = {
 	kRpgCommonDscShapeIndex,
 	kRpgCommonDscX,
 	kRpgCommonDscTileIndex,
-	kRpgCommonDscUnk2,
 	kRpgCommonDscDimData1,
 	kRpgCommonDscDimData2,
 	kRpgCommonDscBlockMap,
@@ -1394,12 +1399,10 @@ const int eob1FloppyNeed[] = {
 	kEoBBaseClassModifierFlags,
 
 	kEoBBaseMonsterStepTable01,
-	//kEoBBaseMonsterStepTable1,
 	kEoBBaseMonsterStepTable2,
 	kEoBBaseMonsterStepTable3,
 	kEoBBaseMonsterCloseAttPosTable1,
 	kEoBBaseMonsterCloseAttPosTable21,
-	//kEoBBaseMonsterCloseAttUnkTable,
 	kEoBBaseMonsterCloseAttChkTable1,
 	kEoBBaseMonsterCloseAttChkTable2,
 	kEoBBaseMonsterCloseAttDstTable1,
@@ -1411,12 +1414,10 @@ const int eob1FloppyNeed[] = {
 	kEoBBaseMonsterDistAttStrings,
 	kEoBBaseEncodeMonsterDefs,
 	kEoBBaseNpcPresets,
-	//kEoB1Npc1Strings,
-	//kEoB1Npc2Strings,
 	-1
 };
 
-const int eob2FloppyNeed[] = {
+const int eob1PC98Need[] = {
 	kEoBBaseChargenStrings1,
 	kEoBBaseChargenStrings2,
 	kEoBBaseChargenStartLevels,
@@ -1437,6 +1438,71 @@ const int eob2FloppyNeed[] = {
 	kEoBBaseSaveThrwModDiv,
 	kEoBBaseSaveThrwModExt,
 
+	kEoB1MainMenuStrings,
+	kEoB1BonusStrings,
+
+	kEoB1IntroFilesOpening,
+	kEoB1IntroFilesTower,
+	kEoB1IntroFilesOrb,
+	kEoB1IntroFilesWdEntry,
+	kEoB1IntroFilesKing,
+	kEoB1IntroFilesHands,
+	kEoB1IntroFilesWdExit,
+	kEoB1IntroFilesTunnel,
+	kEoB1IntroOpeningFrmDelay,
+	kEoB1IntroWdEncodeX,
+	kEoB1IntroWdEncodeY,
+	kEoB1IntroWdEncodeWH,
+	kEoB1IntroWdDsX,
+	kEoB1IntroWdDsY,
+	kEoB1IntroTvlX1,
+	kEoB1IntroTvlY1,
+	kEoB1IntroTvlX2,
+	kEoB1IntroTvlY2,
+	kEoB1IntroTvlW,
+	kEoB1IntroTvlH,
+
+	kEoB1DoorShapeDefs,
+	kEoB1DoorSwitchShapeDefs,
+	kEoB1DoorSwitchCoords,
+	kEoB1MonsterProperties,
+	kEoB1EnemyMageSpellList,
+	kEoB1EnemyMageSfx,
+	kEoB1BeholderSpellList,
+	kEoB1BeholderSfx,
+	kEoB1TurnUndeadString,
+
+	kEoB1CgaMappingDefault,
+	kEoB1CgaMappingAlt,
+	kEoB1CgaMappingInv,
+	kEoB1CgaMappingItemsL,
+	kEoB1CgaMappingItemsS,
+	kEoB1CgaMappingThrown,
+	kEoB1CgaMappingIcons,
+	kEoB1CgaMappingDeco,
+	kEoB1CgaLevelMappingIndex,
+	kEoB1CgaMappingLevel0,
+	kEoB1CgaMappingLevel1,
+	kEoB1CgaMappingLevel2,
+	kEoB1CgaMappingLevel3,
+	kEoB1CgaMappingLevel4,
+
+	kEoB1NpcShpData,
+	kEoB1NpcSubShpIndex1,
+	kEoB1NpcSubShpIndex2,
+	kEoB1NpcSubShpY,
+	kEoB1Npc0Strings,
+	kEoB1Npc11Strings,
+	kEoB1Npc12Strings,
+	kEoB1Npc21Strings,
+	kEoB1Npc22Strings,
+	kEoB1Npc31Strings,
+	kEoB1Npc32Strings,
+	kEoB1Npc4Strings,
+	kEoB1Npc5Strings,
+	kEoB1Npc6Strings,
+	kEoB1Npc7Strings,
+
 	kEoBBasePryDoorStrings,
 	kEoBBaseWarningStrings,
 
@@ -1453,7 +1519,6 @@ const int eob2FloppyNeed[] = {
 	kEoBBasePatternGrFix1,
 	kEoBBasePatternGrFix2,
 	kEoBBaseValidateArmorString,
-	kEoBBaseValidateCursedString,
 	kEoBBaseValidateNoDropString,
 	kEoBBasePotionStrings,
 	kEoBBaseWandStrings,
@@ -1465,10 +1530,8 @@ const int eob2FloppyNeed[] = {
 	kEoBBaseYesNoStrings,
 	kRpgCommonMoreStrings,
 	kEoBBaseNpcMaxStrings,
-	kEoBBaseOkStrings,
 	kEoBBaseNpcJoinStrings,
 	kEoBBaseCancelStrings,
-	kEoBBaseAbortStrings,
 
 	kEoBBaseMenuStringsMain,
 	kEoBBaseMenuStringsSaveLoad,
@@ -1485,12 +1548,8 @@ const int eob2FloppyNeed[] = {
 	kEoBBaseMenuStringsMgc,
 	kEoBBaseMenuStringsPrefs,
 	kEoBBaseMenuStringsRest2,
-	kEoBBaseMenuStringsRest3,
 	kEoBBaseMenuStringsRest4,
 	kEoBBaseMenuStringsDefeat,
-	kEoBBaseMenuStringsTransfer,
-	kEoBBaseMenuStringsSpec,
-	kEoBBaseMenuStringsSpellNo,
 	kEoBBaseMenuYesNoStrings,
 
 	kEoBBaseSpellLevelsMage,
@@ -1501,16 +1560,15 @@ const int eob2FloppyNeed[] = {
 	kEoBBaseNumSpellsMage,
 
 	kEoBBaseCharGuiStringsHp,
-	kEoBBaseCharGuiStringsWp2,
+	kEoBBaseCharGuiStringsWp1,
 	kEoBBaseCharGuiStringsWr,
-	kEoBBaseCharGuiStringsSt2,
+	kEoBBaseCharGuiStringsSt1,
 	kEoBBaseCharGuiStringsIn,
 
 	kEoBBaseCharStatusStrings7,
-	kEoBBaseCharStatusStrings82,
+	kEoBBaseCharStatusStrings81,
 	kEoBBaseCharStatusStrings9,
-	kEoBBaseCharStatusStrings12,
-	kEoBBaseCharStatusStrings132,
+	kEoBBaseCharStatusStrings131,
 
 	kEoBBaseLevelGainStrings,
 	kEoBBaseExperienceTable0,
@@ -1531,7 +1589,6 @@ const int eob2FloppyNeed[] = {
 	kEoBBaseMagicStrings7,
 	kEoBBaseMagicStrings8,
 
-	kEoBBaseExpObjectTlMode,
 	kEoBBaseExpObjectTblIndex,
 	kEoBBaseExpObjectShpStart,
 	kEoBBaseExpObjectTbl1,
@@ -1564,16 +1621,25 @@ const int eob2FloppyNeed[] = {
 	kRpgCommonDscDoorShapeIndex,
 	kEoBBaseWllFlagPreset,
 	kEoBBaseDscShapeCoords,
-
-	kEoBBaseDscDoorScaleOffs,
+	kRpgCommonDscDoorScaleOffs,
 	kEoBBaseDscDoorScaleMult1,
 	kEoBBaseDscDoorScaleMult2,
 	kEoBBaseDscDoorScaleMult3,
-	kEoBBaseDscDoorType5Offs,
+	kEoBBaseDscDoorScaleMult4,
+	kEoBBaseDscDoorScaleMult5,
+	kEoBBaseDscDoorScaleMult6,
+	kEoBBaseDscDoorXE,
 	kEoBBaseDscDoorY1,
-	kRpgCommonDscDoorY2,
+	kEoBBaseDscDoorY3,
+	kEoBBaseDscDoorY4,
+	kEoBBaseDscDoorY5,
+	kEoBBaseDscDoorY6,
+	kEoBBaseDscDoorY7,
+	kEoBBaseDscDoorCoordsExt,
 	kRpgCommonDscDoorFrameY1,
 	kRpgCommonDscDoorFrameY2,
+	kRpgCommonDscDoorFrameIndex1,
+	kRpgCommonDscDoorFrameIndex2,
 
 	kEoBBaseDscItemPosIndex,
 	kEoBBaseDscItemShpX,
@@ -1602,108 +1668,22 @@ const int eob2FloppyNeed[] = {
 	kEoBBaseFlightObjShpMap,
 	kEoBBaseFlightObjSclIndex,
 
-	kEoB2MainMenuStrings,
-
-	kEoB2TransferPortraitFrames,
-	kEoB2TransferConvertTable,
-	kEoB2TransferItemTable,
-	kEoB2TransferExpTable,
-	kEoB2TransferStrings1,
-	kEoB2TransferStrings2,
-	kEoB2TransferLabels,
-
-	kEoB2IntroStrings,
-	kEoB2IntroCPSFiles,
-	kEoB2IntroAnimData00,
-	kEoB2IntroAnimData01,
-	kEoB2IntroAnimData02,
-	kEoB2IntroAnimData03,
-	kEoB2IntroAnimData04,
-	kEoB2IntroAnimData05,
-	kEoB2IntroAnimData06,
-	kEoB2IntroAnimData07,
-	kEoB2IntroAnimData08,
-	kEoB2IntroAnimData09,
-	kEoB2IntroAnimData10,
-	kEoB2IntroAnimData11,
-	kEoB2IntroAnimData12,
-	kEoB2IntroAnimData13,
-	kEoB2IntroAnimData14,
-	kEoB2IntroAnimData15,
-	kEoB2IntroAnimData16,
-	kEoB2IntroAnimData17,
-	kEoB2IntroAnimData18,
-	kEoB2IntroAnimData19,
-	kEoB2IntroAnimData20,
-	kEoB2IntroAnimData21,
-	kEoB2IntroAnimData22,
-	kEoB2IntroAnimData23,
-	kEoB2IntroAnimData24,
-	kEoB2IntroAnimData25,
-	kEoB2IntroAnimData26,
-	kEoB2IntroAnimData27,
-	kEoB2IntroAnimData28,
-	kEoB2IntroAnimData29,
-	kEoB2IntroAnimData30,
-	kEoB2IntroAnimData31,
-	kEoB2IntroAnimData32,
-	kEoB2IntroAnimData33,
-	kEoB2IntroAnimData34,
-	kEoB2IntroAnimData35,
-	kEoB2IntroAnimData36,
-	kEoB2IntroAnimData37,
-	kEoB2IntroAnimData38,
-	kEoB2IntroAnimData39,
-	kEoB2IntroAnimData40,
-	kEoB2IntroAnimData41,
-	kEoB2IntroAnimData42,
-	kEoB2IntroAnimData43,
-
-	kEoB2IntroShapes00,
-	kEoB2IntroShapes01,
-	kEoB2IntroShapes04,
-	kEoB2IntroShapes07,
-
-	kEoB2FinaleStrings,
-	kEoB2CreditsData,
-	kEoB2FinaleCPSFiles,
-	kEoB2FinaleAnimData00,
-	kEoB2FinaleAnimData01,
-	kEoB2FinaleAnimData02,
-	kEoB2FinaleAnimData03,
-	kEoB2FinaleAnimData04,
-	kEoB2FinaleAnimData05,
-	kEoB2FinaleAnimData06,
-	kEoB2FinaleAnimData07,
-	kEoB2FinaleAnimData08,
-	kEoB2FinaleAnimData09,
-	kEoB2FinaleAnimData10,
-	kEoB2FinaleAnimData11,
-	kEoB2FinaleAnimData12,
-	kEoB2FinaleAnimData13,
-	kEoB2FinaleAnimData14,
-	kEoB2FinaleAnimData15,
-	kEoB2FinaleAnimData16,
-	kEoB2FinaleAnimData17,
-	kEoB2FinaleAnimData18,
-	kEoB2FinaleAnimData19,
-	kEoB2FinaleAnimData20,
-	kEoB2FinaleShapes00,
-	kEoB2FinaleShapes03,
-	kEoB2FinaleShapes07,
-	kEoB2FinaleShapes09,
-	kEoB2FinaleShapes10,
+	kRpgCommonDscShapeIndex,
+	kRpgCommonDscX,
+	kRpgCommonDscTileIndex,
+	kRpgCommonDscDimData1,
+	kRpgCommonDscDimData2,
+	kRpgCommonDscBlockMap,
+	kRpgCommonDscDimMap,
+	kRpgCommonDscBlockIndex,
 
-	kEoB2NpcShapeData,
 	kEoBBaseClassModifierFlags,
 
-	kEoBBaseMonsterStepTable02,
-	kEoBBaseMonsterStepTable1,
+	kEoBBaseMonsterStepTable01,
 	kEoBBaseMonsterStepTable2,
 	kEoBBaseMonsterStepTable3,
 	kEoBBaseMonsterCloseAttPosTable1,
-	kEoBBaseMonsterCloseAttPosTable22,
-	kEoBBaseMonsterCloseAttUnkTable,
+	kEoBBaseMonsterCloseAttPosTable21,
 	kEoBBaseMonsterCloseAttChkTable1,
 	kEoBBaseMonsterCloseAttChkTable2,
 	kEoBBaseMonsterCloseAttDstTable1,
@@ -1715,43 +1695,1230 @@ const int eob2FloppyNeed[] = {
 	kEoBBaseMonsterDistAttStrings,
 	kEoBBaseEncodeMonsterDefs,
 	kEoBBaseNpcPresets,
-	kEoB2Npc1Strings,
-	kEoB2Npc2Strings,
-	kEoB2MonsterDustStrings,
-	kEoB2DreamSteps,
-	kEoB2KheldranStrings,
-	kEoB2HornStrings,
-	kEoB2HornSounds,
-	kEoB2WallOfForceDsX,
-	kEoB2WallOfForceDsY,
-	kEoB2WallOfForceNumW,
-	kEoB2WallOfForceNumH,
-	kEoB2WallOfForceShpId,
-
-	kRpgCommonDscShapeIndex,
-	kRpgCommonDscX,
-	kRpgCommonDscTileIndex,
-	kRpgCommonDscUnk2,
-	kRpgCommonDscDimData1,
-	kRpgCommonDscDimData2,
-	kRpgCommonDscBlockMap,
-	kRpgCommonDscDimMap,
-	kRpgCommonDscBlockIndex,
 
 	-1
 };
 
-struct GameNeed {
-	int game;
-	int platform;
-	int special;
+const int eob2FloppyNeed[] = {
+	kEoBBaseChargenStrings1,
+	kEoBBaseChargenStrings2,
+	kEoBBaseChargenStartLevels,
+	kEoBBaseChargenStatStrings,
+	kEoBBaseChargenRaceSexStrings,
+	kEoBBaseChargenClassStrings,
+	kEoBBaseChargenAlignmentStrings,
+	kEoBBaseChargenEnterGameStrings,
+	kEoBBaseChargenClassMinStats,
+	kEoBBaseChargenRaceMinStats,
+	kEoBBaseChargenRaceMaxStats,
 
-	const int *entries;
-};
+	kEoBBaseSaveThrowTable1,
+	kEoBBaseSaveThrowTable2,
+	kEoBBaseSaveThrowTable3,
+	kEoBBaseSaveThrowTable4,
+	kEoBBaseSaveThrwLvlIndex,
+	kEoBBaseSaveThrwModDiv,
+	kEoBBaseSaveThrwModExt,
 
-const GameNeed gameNeedTable[] = {
-	{ kKyra1, kPlatformDOS, kNoSpecial, kyra1FloppyNeed },
-	{ kKyra1, kPlatformDOS, kOldFloppy, kyra1FloppyOldNeed },
+	kEoBBasePryDoorStrings,
+	kEoBBaseWarningStrings,
+
+	kEoBBaseItemSuffixStringsRings,
+	kEoBBaseItemSuffixStringsPotions,
+	kEoBBaseItemSuffixStringsWands,
+
+	kEoBBaseRipItemStrings,
+	kEoBBaseCursedString,
+	kEoBBaseEnchantedString,
+	kEoBBaseMagicObjectStrings,
+	kEoBBaseMagicObjectString5,
+	kEoBBasePatternSuffix,
+	kEoBBasePatternGrFix1,
+	kEoBBasePatternGrFix2,
+	kEoBBaseValidateArmorString,
+	kEoBBaseValidateCursedString,
+	kEoBBaseValidateNoDropString,
+	kEoBBasePotionStrings,
+	kEoBBaseWandStrings,
+	kEoBBaseItemMisuseStrings,
+
+	kEoBBaseTakenStrings,
+	kEoBBasePotionEffectStrings,
+
+	kEoBBaseYesNoStrings,
+	kRpgCommonMoreStrings,
+	kEoBBaseNpcMaxStrings,
+	kEoBBaseOkStrings,
+	kEoBBaseNpcJoinStrings,
+	kEoBBaseCancelStrings,
+	kEoBBaseAbortStrings,
+
+	kEoBBaseMenuStringsMain,
+	kEoBBaseMenuStringsSaveLoad,
+	kEoBBaseMenuStringsOnOff,
+	kEoBBaseMenuStringsSpells,
+	kEoBBaseMenuStringsRest,
+	kEoBBaseMenuStringsDrop,
+	kEoBBaseMenuStringsExit,
+	kEoBBaseMenuStringsStarve,
+	kEoBBaseMenuStringsScribe,
+	kEoBBaseMenuStringsDrop2,
+	kEoBBaseMenuStringsHead,
+	kEoBBaseMenuStringsPoison,
+	kEoBBaseMenuStringsMgc,
+	kEoBBaseMenuStringsPrefs,
+	kEoBBaseMenuStringsRest2,
+	kEoBBaseMenuStringsRest3,
+	kEoBBaseMenuStringsRest4,
+	kEoBBaseMenuStringsDefeat,
+	kEoBBaseMenuStringsTransfer,
+	kEoBBaseMenuStringsSpec,
+	kEoBBaseMenuStringsSpellNo,
+	kEoBBaseMenuYesNoStrings,
+
+	kEoBBaseSpellLevelsMage,
+	kEoBBaseSpellLevelsCleric,
+	kEoBBaseNumSpellsCleric,
+	kEoBBaseNumSpellsWisAdj,
+	kEoBBaseNumSpellsPal,
+	kEoBBaseNumSpellsMage,
+
+	kEoBBaseCharGuiStringsHp,
+	kEoBBaseCharGuiStringsWp2,
+	kEoBBaseCharGuiStringsWr,
+	kEoBBaseCharGuiStringsSt2,
+	kEoBBaseCharGuiStringsIn,
+
+	kEoBBaseCharStatusStrings7,
+	kEoBBaseCharStatusStrings82,
+	kEoBBaseCharStatusStrings9,
+	kEoBBaseCharStatusStrings12,
+	kEoBBaseCharStatusStrings132,
+
+	kEoBBaseLevelGainStrings,
+	kEoBBaseExperienceTable0,
+	kEoBBaseExperienceTable1,
+	kEoBBaseExperienceTable2,
+	kEoBBaseExperienceTable3,
+	kEoBBaseExperienceTable4,
+
+	kEoBBaseBookNumbers,
+	kEoBBaseMageSpellsList,
+	kEoBBaseClericSpellsList,
+	kEoBBaseSpellNames,
+	kEoBBaseMagicStrings1,
+	kEoBBaseMagicStrings2,
+	kEoBBaseMagicStrings3,
+	kEoBBaseMagicStrings4,
+	kEoBBaseMagicStrings6,
+	kEoBBaseMagicStrings7,
+	kEoBBaseMagicStrings8,
+
+	kEoBBaseExpObjectTlMode,
+	kEoBBaseExpObjectTblIndex,
+	kEoBBaseExpObjectShpStart,
+	kEoBBaseExpObjectTbl1,
+	kEoBBaseExpObjectTbl2,
+	kEoBBaseExpObjectTbl3,
+	kEoBBaseExpObjectY,
+
+	kEoBBaseSparkDefSteps,
+	kEoBBaseSparkDefSubSteps,
+	kEoBBaseSparkDefShift,
+	kEoBBaseSparkDefAdd,
+	kEoBBaseSparkDefX,
+	kEoBBaseSparkDefY,
+	kEoBBaseSparkOfFlags1,
+	kEoBBaseSparkOfFlags2,
+	kEoBBaseSparkOfShift,
+	kEoBBaseSparkOfX,
+	kEoBBaseSparkOfY,
+
+	kEoBBaseSpellProperties,
+	kEoBBaseMagicFlightProps,
+	kEoBBaseTurnUndeadEffect,
+	kEoBBaseBurningHandsDest,
+	kEoBBaseConeOfColdDest1,
+	kEoBBaseConeOfColdDest2,
+	kEoBBaseConeOfColdDest3,
+	kEoBBaseConeOfColdDest4,
+	kEoBBaseConeOfColdGfxTbl,
+
+	kRpgCommonDscDoorShapeIndex,
+	kEoBBaseWllFlagPreset,
+	kEoBBaseDscShapeCoords,
+
+	kRpgCommonDscDoorScaleOffs,
+	kEoBBaseDscDoorScaleMult1,
+	kEoBBaseDscDoorScaleMult2,
+	kEoBBaseDscDoorScaleMult3,
+	kEoBBaseDscDoorType5Offs,
+	kEoBBaseDscDoorY1,
+	kRpgCommonDscDoorY2,
+	kRpgCommonDscDoorFrameY1,
+	kRpgCommonDscDoorFrameY2,
+
+	kEoBBaseDscItemPosIndex,
+	kEoBBaseDscItemShpX,
+	kEoBBaseDscItemScaleIndex,
+	kEoBBaseDscItemTileIndex,
+	kEoBBaseDscItemShapeMap,
+	kEoBBaseDscTelptrShpCoords,
+
+	kEoBBasePortalSeqData,
+	kEoBBaseManDef,
+	kEoBBaseManWord,
+	kEoBBaseManPrompt,
+
+	kEoBBaseDscMonsterFrmOffsTbl1,
+	kEoBBaseDscMonsterFrmOffsTbl2,
+
+	kEoBBaseInvSlotX,
+	kEoBBaseInvSlotY,
+	kEoBBaseSlotValidationFlags,
+
+	kEoBBaseProjectileWeaponTypes,
+	kEoBBaseWandTypes,
+
+	kEoBBaseDrawObjPosIndex,
+	kEoBBaseFlightObjFlipIndex,
+	kEoBBaseFlightObjShpMap,
+	kEoBBaseFlightObjSclIndex,
+
+	kEoB2MainMenuStrings,
+
+	kEoB2TransferPortraitFrames,
+	kEoB2TransferConvertTable,
+	kEoB2TransferItemTable,
+	kEoB2TransferExpTable,
+	kEoB2TransferStrings1,
+	kEoB2TransferStrings2,
+	kEoB2TransferLabels,
+
+	kEoB2IntroStrings,
+	kEoB2IntroCPSFiles,
+	kEoB2IntroAnimData00,
+	kEoB2IntroAnimData01,
+	kEoB2IntroAnimData02,
+	kEoB2IntroAnimData03,
+	kEoB2IntroAnimData04,
+	kEoB2IntroAnimData05,
+	kEoB2IntroAnimData06,
+	kEoB2IntroAnimData07,
+	kEoB2IntroAnimData08,
+	kEoB2IntroAnimData09,
+	kEoB2IntroAnimData10,
+	kEoB2IntroAnimData11,
+	kEoB2IntroAnimData12,
+	kEoB2IntroAnimData13,
+	kEoB2IntroAnimData14,
+	kEoB2IntroAnimData15,
+	kEoB2IntroAnimData16,
+	kEoB2IntroAnimData17,
+	kEoB2IntroAnimData18,
+	kEoB2IntroAnimData19,
+	kEoB2IntroAnimData20,
+	kEoB2IntroAnimData21,
+	kEoB2IntroAnimData22,
+	kEoB2IntroAnimData23,
+	kEoB2IntroAnimData24,
+	kEoB2IntroAnimData25,
+	kEoB2IntroAnimData26,
+	kEoB2IntroAnimData27,
+	kEoB2IntroAnimData28,
+	kEoB2IntroAnimData29,
+	kEoB2IntroAnimData30,
+	kEoB2IntroAnimData31,
+	kEoB2IntroAnimData32,
+	kEoB2IntroAnimData33,
+	kEoB2IntroAnimData34,
+	kEoB2IntroAnimData35,
+	kEoB2IntroAnimData36,
+	kEoB2IntroAnimData37,
+	kEoB2IntroAnimData38,
+	kEoB2IntroAnimData39,
+	kEoB2IntroAnimData40,
+	kEoB2IntroAnimData41,
+	kEoB2IntroAnimData42,
+	kEoB2IntroAnimData43,
+
+	kEoB2IntroShapes00,
+	kEoB2IntroShapes01,
+	kEoB2IntroShapes04,
+	kEoB2IntroShapes07,
+
+	kEoB2FinaleStrings,
+	kEoB2CreditsData,
+	kEoB2FinaleCPSFiles,
+	kEoB2FinaleAnimData00,
+	kEoB2FinaleAnimData01,
+	kEoB2FinaleAnimData02,
+	kEoB2FinaleAnimData03,
+	kEoB2FinaleAnimData04,
+	kEoB2FinaleAnimData05,
+	kEoB2FinaleAnimData06,
+	kEoB2FinaleAnimData07,
+	kEoB2FinaleAnimData08,
+	kEoB2FinaleAnimData09,
+	kEoB2FinaleAnimData10,
+	kEoB2FinaleAnimData11,
+	kEoB2FinaleAnimData12,
+	kEoB2FinaleAnimData13,
+	kEoB2FinaleAnimData14,
+	kEoB2FinaleAnimData15,
+	kEoB2FinaleAnimData16,
+	kEoB2FinaleAnimData17,
+	kEoB2FinaleAnimData18,
+	kEoB2FinaleAnimData19,
+	kEoB2FinaleAnimData20,
+	kEoB2FinaleShapes00,
+	kEoB2FinaleShapes03,
+	kEoB2FinaleShapes07,
+	kEoB2FinaleShapes09,
+	kEoB2FinaleShapes10,
+
+	kEoB2NpcShapeData,
+	kEoBBaseClassModifierFlags,
+
+	kEoBBaseMonsterStepTable02,
+	kEoBBaseMonsterStepTable1,
+	kEoBBaseMonsterStepTable2,
+	kEoBBaseMonsterStepTable3,
+	kEoBBaseMonsterCloseAttPosTable1,
+	kEoBBaseMonsterCloseAttPosTable22,
+	kEoBBaseMonsterCloseAttUnkTable,
+	kEoBBaseMonsterCloseAttChkTable1,
+	kEoBBaseMonsterCloseAttChkTable2,
+	kEoBBaseMonsterCloseAttDstTable1,
+	kEoBBaseMonsterCloseAttDstTable2,
+
+	kEoBBaseMonsterProximityTable,
+	kEoBBaseFindBlockMonstersTable,
+	kEoBBaseMonsterDirChangeTable,
+	kEoBBaseMonsterDistAttStrings,
+	kEoBBaseEncodeMonsterDefs,
+	kEoBBaseNpcPresets,
+	kEoB2Npc1Strings,
+	kEoB2Npc2Strings,
+	kEoB2MonsterDustStrings,
+	kEoB2DreamSteps,
+	kEoB2KheldranStrings,
+	kEoB2HornStrings,
+	kEoB2HornSounds,
+	kEoB2WallOfForceDsX,
+	kEoB2WallOfForceDsY,
+	kEoB2WallOfForceNumW,
+	kEoB2WallOfForceNumH,
+	kEoB2WallOfForceShpId,
+
+	kRpgCommonDscShapeIndex,
+	kRpgCommonDscX,
+	kRpgCommonDscTileIndex,
+	kRpgCommonDscDimData1,
+	kRpgCommonDscDimData2,
+	kRpgCommonDscBlockMap,
+	kRpgCommonDscDimMap,
+	kRpgCommonDscBlockIndex,
+
+	-1
+};
+
+const int eob2PC98Need[] = {
+	kEoBBaseChargenStrings1,
+	kEoBBaseChargenStrings2,
+	kEoBBaseChargenStartLevels,
+	kEoBBaseChargenStatStrings,
+	kEoBBaseChargenRaceSexStrings,
+	kEoBBaseChargenClassStrings,
+	kEoBBaseChargenAlignmentStrings,
+	kEoBBaseChargenEnterGameStrings,
+	kEoBBaseChargenClassMinStats,
+	kEoBBaseChargenRaceMinStats,
+	kEoBBaseChargenRaceMaxStats,
+
+	kEoBBaseSaveThrowTable1,
+	kEoBBaseSaveThrowTable2,
+	kEoBBaseSaveThrowTable3,
+	kEoBBaseSaveThrowTable4,
+	kEoBBaseSaveThrwLvlIndex,
+	kEoBBaseSaveThrwModDiv,
+	kEoBBaseSaveThrwModExt,
+
+	kEoBBasePryDoorStrings,
+	kEoBBaseWarningStrings,
+
+	kEoBBaseItemSuffixStringsRings,
+	kEoBBaseItemSuffixStringsPotions,
+	kEoBBaseItemSuffixStringsWands,
+
+	kEoBBaseRipItemStrings,
+	kEoBBaseCursedString,
+	kEoBBaseEnchantedString,
+	kEoBBaseMagicObjectStrings,
+	kEoBBaseMagicObjectString5,
+	kEoBBasePatternSuffix,
+	kEoBBasePatternGrFix1,
+	kEoBBasePatternGrFix2,
+	kEoBBaseValidateArmorString,
+	kEoBBaseValidateCursedString,
+	kEoBBaseValidateNoDropString,
+	kEoBBasePotionStrings,
+	kEoBBaseWandStrings,
+	kEoBBaseItemMisuseStrings,
+
+	kEoBBaseTakenStrings,
+	kEoBBasePotionEffectStrings,
+
+	kEoBBaseYesNoStrings,
+	kRpgCommonMoreStrings,
+	kEoBBaseNpcMaxStrings,
+	kEoBBaseOkStrings,
+	kEoBBaseNpcJoinStrings,
+	kEoBBaseCancelStrings,
+	kEoBBaseAbortStrings,
+
+	kEoBBaseMenuStringsMain,
+	kEoBBaseMenuStringsSaveLoad,
+	kEoBBaseMenuStringsOnOff,
+	kEoBBaseMenuStringsSpells,
+	kEoBBaseMenuStringsRest,
+	kEoBBaseMenuStringsDrop,
+	kEoBBaseMenuStringsExit,
+	kEoBBaseMenuStringsStarve,
+	kEoBBaseMenuStringsScribe,
+	kEoBBaseMenuStringsDrop2,
+	kEoBBaseMenuStringsHead,
+	kEoBBaseMenuStringsPoison,
+	kEoBBaseMenuStringsMgc,
+	kEoBBaseMenuStringsPrefs,
+	kEoBBaseMenuStringsRest2,
+	kEoBBaseMenuStringsRest3,
+	kEoBBaseMenuStringsRest4,
+	kEoBBaseMenuStringsDefeat,
+	kEoBBaseMenuStringsTransfer,
+	kEoBBaseMenuStringsSpec,
+	kEoBBaseMenuStringsSpellNo,
+	kEoBBaseMenuYesNoStrings,
+
+	kEoBBaseSpellLevelsMage,
+	kEoBBaseSpellLevelsCleric,
+	kEoBBaseNumSpellsCleric,
+	kEoBBaseNumSpellsWisAdj,
+	kEoBBaseNumSpellsPal,
+	kEoBBaseNumSpellsMage,
+
+	kEoBBaseCharGuiStringsHp,
+	kEoBBaseCharGuiStringsWp2,
+	kEoBBaseCharGuiStringsWr,
+	kEoBBaseCharGuiStringsSt2,
+	kEoBBaseCharGuiStringsIn,
+
+	kEoBBaseCharStatusStrings7,
+	kEoBBaseCharStatusStrings82,
+	kEoBBaseCharStatusStrings9,
+	kEoBBaseCharStatusStrings12,
+	kEoBBaseCharStatusStrings132,
+
+	kEoBBaseLevelGainStrings,
+	kEoBBaseExperienceTable0,
+	kEoBBaseExperienceTable1,
+	kEoBBaseExperienceTable2,
+	kEoBBaseExperienceTable3,
+	kEoBBaseExperienceTable4,
+
+	kEoBBaseBookNumbers,
+	kEoBBaseMageSpellsList,
+	kEoBBaseClericSpellsList,
+	kEoBBaseSpellNames,
+	kEoBBaseMagicStrings1,
+	kEoBBaseMagicStrings2,
+	kEoBBaseMagicStrings3,
+	kEoBBaseMagicStrings4,
+	kEoBBaseMagicStrings6,
+	kEoBBaseMagicStrings7,
+	kEoBBaseMagicStrings8,
+
+	kEoBBaseExpObjectTlMode,
+	kEoBBaseExpObjectTblIndex,
+	kEoBBaseExpObjectShpStart,
+	kEoBBaseExpObjectTbl1,
+	kEoBBaseExpObjectTbl2,
+	kEoBBaseExpObjectTbl3,
+	kEoBBaseExpObjectY,
+
+	kEoBBaseSparkDefSteps,
+	kEoBBaseSparkDefSubSteps,
+	kEoBBaseSparkDefShift,
+	kEoBBaseSparkDefAdd,
+	kEoBBaseSparkDefX,
+	kEoBBaseSparkDefY,
+	kEoBBaseSparkOfFlags1,
+	kEoBBaseSparkOfFlags2,
+	kEoBBaseSparkOfShift,
+	kEoBBaseSparkOfX,
+	kEoBBaseSparkOfY,
+
+	kEoBBaseSpellProperties,
+	kEoBBaseMagicFlightProps,
+	kEoBBaseTurnUndeadEffect,
+	kEoBBaseBurningHandsDest,
+	kEoBBaseConeOfColdDest1,
+	kEoBBaseConeOfColdDest2,
+	kEoBBaseConeOfColdDest3,
+	kEoBBaseConeOfColdDest4,
+	kEoBBaseConeOfColdGfxTbl,
+
+	kRpgCommonDscDoorShapeIndex,
+	kEoBBaseWllFlagPreset,
+	kEoBBaseDscShapeCoords,
+
+	kRpgCommonDscDoorScaleOffs,
+	kEoBBaseDscDoorScaleMult1,
+	kEoBBaseDscDoorScaleMult2,
+	kEoBBaseDscDoorScaleMult3,
+	kEoBBaseDscDoorType5Offs,
+	kEoBBaseDscDoorY1,
+	kRpgCommonDscDoorY2,
+	kRpgCommonDscDoorFrameY1,
+	kRpgCommonDscDoorFrameY2,
+
+	kEoBBaseDscItemPosIndex,
+	kEoBBaseDscItemShpX,
+	kEoBBaseDscItemScaleIndex,
+	kEoBBaseDscItemTileIndex,
+	kEoBBaseDscItemShapeMap,
+	kEoBBaseDscTelptrShpCoords,
+
+	kEoBBasePortalSeqData,
+	kEoBBaseManDef,
+	kEoBBaseManWord,
+	kEoBBaseManPrompt,
+
+	kEoBBaseDscMonsterFrmOffsTbl1,
+	kEoBBaseDscMonsterFrmOffsTbl2,
+
+	kEoBBaseInvSlotX,
+	kEoBBaseInvSlotY,
+	kEoBBaseSlotValidationFlags,
+
+	kEoBBaseProjectileWeaponTypes,
+	kEoBBaseWandTypes,
+
+	kEoBBaseDrawObjPosIndex,
+	kEoBBaseFlightObjFlipIndex,
+	kEoBBaseFlightObjShpMap,
+	kEoBBaseFlightObjSclIndex,
+
+	kEoB2MainMenuStrings,
+
+	kEoB2TransferPortraitFrames,
+	kEoB2TransferConvertTable,
+	kEoB2TransferItemTable,
+	kEoB2TransferExpTable,
+	kEoB2TransferStrings1,
+	kEoB2TransferStrings2,
+	kEoB2TransferLabels,
+
+	kEoB2IntroStrings,
+	kEoB2IntroCPSFiles,
+	kEoB2IntroAnimData00,
+	kEoB2IntroAnimData01,
+	kEoB2IntroAnimData02,
+	kEoB2IntroAnimData03,
+	kEoB2IntroAnimData04,
+	kEoB2IntroAnimData05,
+	kEoB2IntroAnimData06,
+	kEoB2IntroAnimData07,
+	kEoB2IntroAnimData08,
+	kEoB2IntroAnimData09,
+	kEoB2IntroAnimData10,
+	kEoB2IntroAnimData11,
+	kEoB2IntroAnimData12,
+	kEoB2IntroAnimData13,
+	kEoB2IntroAnimData14,
+	kEoB2IntroAnimData15,
+	kEoB2IntroAnimData16,
+	kEoB2IntroAnimData17,
+	kEoB2IntroAnimData18,
+	kEoB2IntroAnimData19,
+	kEoB2IntroAnimData20,
+	kEoB2IntroAnimData21,
+	kEoB2IntroAnimData22,
+	kEoB2IntroAnimData23,
+	kEoB2IntroAnimData24,
+	kEoB2IntroAnimData25,
+	kEoB2IntroAnimData26,
+	kEoB2IntroAnimData27,
+	kEoB2IntroAnimData28,
+	kEoB2IntroAnimData29,
+	kEoB2IntroAnimData30,
+	kEoB2IntroAnimData31,
+	kEoB2IntroAnimData32,
+	kEoB2IntroAnimData33,
+	kEoB2IntroAnimData34,
+	kEoB2IntroAnimData35,
+	kEoB2IntroAnimData36,
+	kEoB2IntroAnimData37,
+	kEoB2IntroAnimData38,
+	kEoB2IntroAnimData39,
+	kEoB2IntroAnimData40,
+	kEoB2IntroAnimData41,
+	kEoB2IntroAnimData42,
+	kEoB2IntroAnimData43,
+
+	kEoB2IntroShapes00,
+	kEoB2IntroShapes01,
+	kEoB2IntroShapes04,
+	kEoB2IntroShapes07,
+
+	kEoB2FinaleStrings,
+	kEoB2CreditsData,
+	kEoB2FinaleCPSFiles,
+	kEoB2FinaleAnimData00,
+	kEoB2FinaleAnimData01,
+	kEoB2FinaleAnimData02,
+	kEoB2FinaleAnimData03,
+	kEoB2FinaleAnimData04,
+	kEoB2FinaleAnimData05,
+	kEoB2FinaleAnimData06,
+	kEoB2FinaleAnimData07,
+	kEoB2FinaleAnimData08,
+	kEoB2FinaleAnimData09,
+	kEoB2FinaleAnimData10,
+	kEoB2FinaleAnimData11,
+	kEoB2FinaleAnimData12,
+	kEoB2FinaleAnimData13,
+	kEoB2FinaleAnimData14,
+	kEoB2FinaleAnimData15,
+	kEoB2FinaleAnimData16,
+	kEoB2FinaleAnimData17,
+	kEoB2FinaleAnimData18,
+	kEoB2FinaleAnimData19,
+	kEoB2FinaleAnimData20,
+	kEoB2FinaleShapes00,
+	kEoB2FinaleShapes03,
+	kEoB2FinaleShapes07,
+	kEoB2FinaleShapes09,
+	kEoB2FinaleShapes10,
+
+	kEoB2NpcShapeData,
+	kEoBBaseClassModifierFlags,
+
+	kEoBBaseMonsterStepTable02,
+	kEoBBaseMonsterStepTable1,
+	kEoBBaseMonsterStepTable2,
+	kEoBBaseMonsterStepTable3,
+	kEoBBaseMonsterCloseAttPosTable1,
+	kEoBBaseMonsterCloseAttPosTable22,
+	kEoBBaseMonsterCloseAttUnkTable,
+	kEoBBaseMonsterCloseAttChkTable1,
+	kEoBBaseMonsterCloseAttChkTable2,
+	kEoBBaseMonsterCloseAttDstTable1,
+	kEoBBaseMonsterCloseAttDstTable2,
+
+	kEoBBaseMonsterProximityTable,
+	kEoBBaseFindBlockMonstersTable,
+	kEoBBaseMonsterDirChangeTable,
+	kEoBBaseMonsterDistAttStrings,
+	kEoBBaseEncodeMonsterDefs,
+	kEoBBaseNpcPresets,
+	kEoB2Npc1Strings,
+	kEoB2Npc2Strings,
+	kEoB2MonsterDustStrings,
+	kEoB2DreamSteps,
+	kEoB2KheldranStrings,
+	kEoB2HornStrings,
+	kEoB2HornSounds,
+	kEoB2WallOfForceDsX,
+	kEoB2WallOfForceDsY,
+	kEoB2WallOfForceNumW,
+	kEoB2WallOfForceNumH,
+	kEoB2WallOfForceShpId,
+
+	kRpgCommonDscShapeIndex,
+	kRpgCommonDscX,
+	kRpgCommonDscTileIndex,
+	kRpgCommonDscDimData1,
+	kRpgCommonDscDimData2,
+	kRpgCommonDscBlockMap,
+	kRpgCommonDscDimMap,
+	kRpgCommonDscBlockIndex,
+
+	-1
+}; 
+
+const int eob2FMTownsNeed[] = {
+	kEoBBaseChargenStrings1,
+	kEoBBaseChargenStrings2,
+	kEoBBaseChargenStartLevels,
+	kEoBBaseChargenStatStrings,
+	kEoBBaseChargenRaceSexStrings,
+	kEoBBaseChargenClassStrings,
+	kEoBBaseChargenAlignmentStrings,
+	kEoBBaseChargenEnterGameStrings,
+	kEoBBaseChargenClassMinStats,
+	kEoBBaseChargenRaceMinStats,
+	kEoBBaseChargenRaceMaxStats,
+
+	kEoBBaseSaveThrowTable1,
+	kEoBBaseSaveThrowTable2,
+	kEoBBaseSaveThrowTable3,
+	kEoBBaseSaveThrowTable4,
+	kEoBBaseSaveThrwLvlIndex,
+	kEoBBaseSaveThrwModDiv,
+	kEoBBaseSaveThrwModExt,
+
+	kEoBBasePryDoorStrings,
+	kEoBBaseWarningStrings,
+
+	kEoBBaseItemSuffixStringsRings,
+	kEoBBaseItemSuffixStringsPotions,
+	kEoBBaseItemSuffixStringsWands,
+
+	kEoBBaseRipItemStrings,
+	kEoBBaseCursedString,
+	kEoBBaseEnchantedString,
+	kEoBBaseMagicObjectStrings,
+	kEoBBaseMagicObjectString5,
+	kEoBBasePatternSuffix,
+	kEoBBasePatternGrFix1,
+	kEoBBasePatternGrFix2,
+	kEoBBaseValidateArmorString,
+	kEoBBaseValidateCursedString,
+	kEoBBaseValidateNoDropString,
+	kEoBBasePotionStrings,
+	kEoBBaseWandStrings,
+	kEoBBaseItemMisuseStrings,
+
+	kEoBBaseTakenStrings,
+	kEoBBasePotionEffectStrings,
+
+	kEoBBaseYesNoStrings,
+	kRpgCommonMoreStrings,
+	kEoBBaseNpcMaxStrings,
+	kEoBBaseOkStrings,
+	kEoBBaseNpcJoinStrings,
+	kEoBBaseCancelStrings,
+	kEoBBaseAbortStrings,
+
+	kEoBBaseMenuStringsMain,
+	kEoBBaseMenuStringsSaveLoad,
+	kEoBBaseMenuStringsOnOff,
+	kEoBBaseMenuStringsSpells,
+	kEoBBaseMenuStringsRest,
+	kEoBBaseMenuStringsDrop,
+	kEoBBaseMenuStringsExit,
+	kEoBBaseMenuStringsStarve,
+	kEoBBaseMenuStringsScribe,
+	kEoBBaseMenuStringsDrop2,
+	kEoBBaseMenuStringsHead,
+	kEoBBaseMenuStringsPoison,
+	kEoBBaseMenuStringsMgc,
+	kEoBBaseMenuStringsPrefs,
+	kEoBBaseMenuStringsRest2,
+	kEoBBaseMenuStringsRest3,
+	kEoBBaseMenuStringsRest4,
+	kEoBBaseMenuStringsDefeat,
+	kEoBBaseMenuStringsSpec,
+	kEoBBaseMenuStringsSpellNo,
+	kEoBBaseMenuYesNoStrings,
+
+	kEoBBaseSpellLevelsMage,
+	kEoBBaseSpellLevelsCleric,
+	kEoBBaseNumSpellsCleric,
+	kEoBBaseNumSpellsWisAdj,
+	kEoBBaseNumSpellsPal,
+	kEoBBaseNumSpellsMage,
+
+	kEoBBaseCharGuiStringsHp,
+	kEoBBaseCharGuiStringsWp2,
+	kEoBBaseCharGuiStringsWr,
+	kEoBBaseCharGuiStringsSt2,
+	kEoBBaseCharGuiStringsIn,
+
+	kEoBBaseCharStatusStrings7,
+	kEoBBaseCharStatusStrings82,
+	kEoBBaseCharStatusStrings9,
+	kEoBBaseCharStatusStrings12,
+	kEoBBaseCharStatusStrings132,
+
+	kEoBBaseLevelGainStrings,
+	kEoBBaseExperienceTable0,
+	kEoBBaseExperienceTable1,
+	kEoBBaseExperienceTable2,
+	kEoBBaseExperienceTable3,
+	kEoBBaseExperienceTable4,
+
+	kEoBBaseBookNumbers,
+	kEoBBaseMageSpellsList,
+	kEoBBaseClericSpellsList,
+	kEoBBaseSpellNames,
+	kEoBBaseMagicStrings1,
+	kEoBBaseMagicStrings2,
+	kEoBBaseMagicStrings3,
+	kEoBBaseMagicStrings4,
+	kEoBBaseMagicStrings6,
+	kEoBBaseMagicStrings7,
+	kEoBBaseMagicStrings8,
+
+	kEoBBaseExpObjectTlMode,
+	kEoBBaseExpObjectTblIndex,
+	kEoBBaseExpObjectShpStart,
+	kEoBBaseExpObjectTbl1,
+	kEoBBaseExpObjectTbl2,
+	kEoBBaseExpObjectTbl3,
+	kEoBBaseExpObjectY,
+
+	kEoBBaseSparkDefSteps,
+	kEoBBaseSparkDefSubSteps,
+	kEoBBaseSparkDefShift,
+	kEoBBaseSparkDefAdd,
+	kEoBBaseSparkDefX,
+	kEoBBaseSparkDefY,
+	kEoBBaseSparkOfFlags1,
+	kEoBBaseSparkOfFlags2,
+	kEoBBaseSparkOfShift,
+	kEoBBaseSparkOfX,
+	kEoBBaseSparkOfY,
+
+	kEoBBaseSpellProperties,
+	kEoBBaseMagicFlightProps,
+	kEoBBaseTurnUndeadEffect,
+	kEoBBaseBurningHandsDest,
+	kEoBBaseConeOfColdDest1,
+	kEoBBaseConeOfColdDest2,
+	kEoBBaseConeOfColdDest3,
+	kEoBBaseConeOfColdDest4,
+	kEoBBaseConeOfColdGfxTbl,
+
+	kRpgCommonDscDoorShapeIndex,
+	kEoBBaseWllFlagPreset,
+	kEoBBaseDscShapeCoords,
+
+	kRpgCommonDscDoorScaleOffs,
+	kEoBBaseDscDoorScaleMult1,
+	kEoBBaseDscDoorScaleMult2,
+	kEoBBaseDscDoorScaleMult3,
+	kEoBBaseDscDoorType5Offs,
+	kEoBBaseDscDoorY1,
+	kRpgCommonDscDoorY2,
+	kRpgCommonDscDoorFrameY1,
+	kRpgCommonDscDoorFrameY2,
+
+	kEoBBaseDscItemPosIndex,
+	kEoBBaseDscItemShpX,
+	kEoBBaseDscItemScaleIndex,
+	kEoBBaseDscItemTileIndex,
+	kEoBBaseDscItemShapeMap,
+	kEoBBaseDscTelptrShpCoords,
+
+	kEoBBasePortalSeqData,
+
+	kEoBBaseDscMonsterFrmOffsTbl1,
+	kEoBBaseDscMonsterFrmOffsTbl2,
+
+	kEoBBaseInvSlotX,
+	kEoBBaseInvSlotY,
+	kEoBBaseSlotValidationFlags,
+
+	kEoBBaseProjectileWeaponTypes,
+	kEoBBaseWandTypes,
+
+	kEoBBaseDrawObjPosIndex,
+	kEoBBaseFlightObjFlipIndex,
+	kEoBBaseFlightObjShpMap,
+	kEoBBaseFlightObjSclIndex,
+
+	kEoB2MainMenuStrings,
+	kEoB2MainMenuUtilStrings,
+
+	kEoB2IntroStrings,
+	kEoB2IntroAnimData00,
+	kEoB2IntroAnimData01,
+	kEoB2IntroAnimData02,
+	kEoB2IntroAnimData03,
+	kEoB2IntroAnimData04,
+	kEoB2IntroAnimData05,
+	kEoB2IntroAnimData06,
+	kEoB2IntroAnimData07,
+	kEoB2IntroAnimData08,
+	kEoB2IntroAnimData09,
+	kEoB2IntroAnimData10,
+	kEoB2IntroAnimData11,
+	kEoB2IntroAnimData12,
+	kEoB2IntroAnimData13,
+	kEoB2IntroAnimData14,
+	kEoB2IntroAnimData15,
+	kEoB2IntroAnimData16,
+	kEoB2IntroAnimData17,
+	kEoB2IntroAnimData18,
+	kEoB2IntroAnimData19,
+	kEoB2IntroAnimData20,
+	kEoB2IntroAnimData21,
+	kEoB2IntroAnimData22,
+	kEoB2IntroAnimData23,
+	kEoB2IntroAnimData24,
+	kEoB2IntroAnimData25,
+	kEoB2IntroAnimData26,
+	kEoB2IntroAnimData27,
+	kEoB2IntroAnimData28,
+	kEoB2IntroAnimData29,
+	kEoB2IntroAnimData30,
+	kEoB2IntroAnimData31,
+	kEoB2IntroAnimData32,
+	kEoB2IntroAnimData33,
+	kEoB2IntroAnimData34,
+	kEoB2IntroAnimData35,
+	kEoB2IntroAnimData36,
+	kEoB2IntroAnimData37,
+	kEoB2IntroAnimData38,
+	kEoB2IntroAnimData39,
+	kEoB2IntroAnimData40,
+	kEoB2IntroAnimData41,
+	kEoB2IntroAnimData42,
+	kEoB2IntroAnimData43,
+
+	kEoB2IntroCpsDataStreet1,
+	kEoB2IntroCpsDataStreet2,
+	kEoB2IntroCpsDataDoorway1,
+	kEoB2IntroCpsDataDoorway2,
+	kEoB2IntroCpsDataWestwood,
+	kEoB2IntroCpsDataWinding,
+	kEoB2IntroCpsDataKhelban2,
+	kEoB2IntroCpsDataKhelban1,
+	kEoB2IntroCpsDataKhelban3,
+	kEoB2IntroCpsDataKhelban4,
+	kEoB2IntroCpsDataCoin,
+	kEoB2IntroCpsDataKhelban5,
+	kEoB2IntroCpsDataKhelban6,
+
+	kEoB2IntroShapes00,
+	kEoB2IntroShapes01,
+	kEoB2IntroShapes04,
+	kEoB2IntroShapes07,
+
+	kEoB2FinaleStrings,
+	kEoB2FinaleAnimData00,
+	kEoB2FinaleAnimData01,
+	kEoB2FinaleAnimData02,
+	kEoB2FinaleAnimData03,
+	kEoB2FinaleAnimData04,
+	kEoB2FinaleAnimData05,
+	kEoB2FinaleAnimData06,
+	kEoB2FinaleAnimData07,
+	kEoB2FinaleAnimData08,
+	kEoB2FinaleAnimData09,
+	kEoB2FinaleAnimData10,
+	kEoB2FinaleAnimData11,
+	kEoB2FinaleAnimData12,
+	kEoB2FinaleAnimData13,
+	kEoB2FinaleAnimData14,
+	kEoB2FinaleAnimData15,
+	kEoB2FinaleAnimData16,
+	kEoB2FinaleAnimData17,
+	kEoB2FinaleAnimData18,
+	kEoB2FinaleAnimData19,
+	kEoB2FinaleAnimData20,
+
+	kEoB2FinaleCpsDataDragon1,
+	kEoB2FinaleCpsDataDragon2,
+	kEoB2FinaleCpsDataHurry1,
+	kEoB2FinaleCpsDataHurry2,
+	kEoB2FinaleCpsDataDestroy0,
+	kEoB2FinaleCpsDataDestroy1,
+	kEoB2FinaleCpsDataDestroy2,
+	kEoB2FinaleCpsDataMagic,
+	kEoB2FinaleCpsDataDestroy3,
+	kEoB2FinaleCpsDataCredits2,
+	kEoB2FinaleCpsDataCredits3,
+	kEoB2FinaleCpsDataHeroes,
+	kEoB2FinaleCpsDataThanks,
+
+	kEoB2FinaleShapes00,
+	kEoB2FinaleShapes03,
+	kEoB2FinaleShapes07,
+	kEoB2FinaleShapes09,
+	kEoB2FinaleShapes10,
+
+	kEoB2NpcShapeData,
+	kEoBBaseClassModifierFlags,
+
+	kEoBBaseMonsterStepTable02,
+	kEoBBaseMonsterStepTable1,
+	kEoBBaseMonsterStepTable2,
+	kEoBBaseMonsterStepTable3,
+	kEoBBaseMonsterCloseAttPosTable1,
+	kEoBBaseMonsterCloseAttPosTable22,
+	kEoBBaseMonsterCloseAttUnkTable,
+	kEoBBaseMonsterCloseAttChkTable1,
+	kEoBBaseMonsterCloseAttChkTable2,
+	kEoBBaseMonsterCloseAttDstTable1,
+	kEoBBaseMonsterCloseAttDstTable2,
+
+	kEoBBaseMonsterProximityTable,
+	kEoBBaseFindBlockMonstersTable,
+	kEoBBaseMonsterDirChangeTable,
+	kEoBBaseMonsterDistAttStrings,
+	kEoBBaseNpcPresets,
+	kEoB2Npc1Strings,
+	kEoB2Npc2Strings,
+	kEoB2MonsterDustStrings,
+	kEoB2DreamSteps,
+	kEoB2KheldranStrings,
+	kEoB2HornStrings,
+	kEoB2HornSounds,
+	kEoB2WallOfForceDsX,
+	kEoB2WallOfForceDsY,
+	kEoB2WallOfForceNumW,
+	kEoB2WallOfForceNumH,
+	kEoB2WallOfForceShpId,
+
+	kRpgCommonDscShapeIndex,
+	kRpgCommonDscX,
+	kRpgCommonDscTileIndex,
+	kRpgCommonDscDimData1,
+	kRpgCommonDscDimData2,
+	kRpgCommonDscBlockMap,
+	kRpgCommonDscDimMap,
+	kRpgCommonDscBlockIndex,
+
+	kEoB2ItemIconShapeData00,
+	kEoB2ItemIconShapeData01,
+	kEoB2ItemIconShapeData02,
+	kEoB2ItemIconShapeData03,
+	kEoB2ItemIconShapeData04,
+	kEoB2ItemIconShapeData05,
+	kEoB2ItemIconShapeData06,
+	kEoB2ItemIconShapeData07,
+	kEoB2ItemIconShapeData08,
+	kEoB2ItemIconShapeData09,
+	kEoB2ItemIconShapeData10,
+	kEoB2ItemIconShapeData11,
+	kEoB2ItemIconShapeData12,
+	kEoB2ItemIconShapeData13,
+	kEoB2ItemIconShapeData14,
+	kEoB2ItemIconShapeData15,
+	kEoB2ItemIconShapeData16,
+	kEoB2ItemIconShapeData17,
+	kEoB2ItemIconShapeData18,
+	kEoB2ItemIconShapeData19,
+	kEoB2ItemIconShapeData20,
+	kEoB2ItemIconShapeData21,
+	kEoB2ItemIconShapeData22,
+	kEoB2ItemIconShapeData23,
+	kEoB2ItemIconShapeData24,
+	kEoB2ItemIconShapeData25,
+	kEoB2ItemIconShapeData26,
+	kEoB2ItemIconShapeData27,
+	kEoB2ItemIconShapeData28,
+	kEoB2ItemIconShapeData29,
+	kEoB2ItemIconShapeData30,
+	kEoB2ItemIconShapeData31,
+	kEoB2ItemIconShapeData32,
+	kEoB2ItemIconShapeData33,
+	kEoB2ItemIconShapeData34,
+	kEoB2ItemIconShapeData35,
+	kEoB2ItemIconShapeData36,
+	kEoB2ItemIconShapeData37,
+	kEoB2ItemIconShapeData38,
+	kEoB2ItemIconShapeData39,
+	kEoB2ItemIconShapeData40,
+	kEoB2ItemIconShapeData41,
+	kEoB2ItemIconShapeData42,
+	kEoB2ItemIconShapeData43,
+	kEoB2ItemIconShapeData44,
+	kEoB2ItemIconShapeData45,
+	kEoB2ItemIconShapeData46,
+	kEoB2ItemIconShapeData47,
+	kEoB2ItemIconShapeData48,
+	kEoB2ItemIconShapeData49,
+	kEoB2ItemIconShapeData50,
+	kEoB2ItemIconShapeData51,
+	kEoB2ItemIconShapeData52,
+	kEoB2ItemIconShapeData53,
+	kEoB2ItemIconShapeData54,
+	kEoB2ItemIconShapeData55,
+	kEoB2ItemIconShapeData56,
+	kEoB2ItemIconShapeData57,
+	kEoB2ItemIconShapeData58,
+	kEoB2ItemIconShapeData59,
+	kEoB2ItemIconShapeData60,
+	kEoB2ItemIconShapeData61,
+	kEoB2ItemIconShapeData62,
+	kEoB2ItemIconShapeData63,
+	kEoB2ItemIconShapeData64,
+	kEoB2ItemIconShapeData65,
+	kEoB2ItemIconShapeData66,
+	kEoB2ItemIconShapeData67,
+	kEoB2ItemIconShapeData68,
+	kEoB2ItemIconShapeData69,
+	kEoB2ItemIconShapeData70,
+	kEoB2ItemIconShapeData71,
+	kEoB2ItemIconShapeData72,
+	kEoB2ItemIconShapeData73,
+	kEoB2ItemIconShapeData74,
+	kEoB2ItemIconShapeData75,
+	kEoB2ItemIconShapeData76,
+	kEoB2ItemIconShapeData77,
+	kEoB2ItemIconShapeData78,
+	kEoB2ItemIconShapeData79,
+	kEoB2ItemIconShapeData80,
+	kEoB2ItemIconShapeData81,
+	kEoB2ItemIconShapeData82,
+	kEoB2ItemIconShapeData83,
+	kEoB2ItemIconShapeData84,
+	kEoB2ItemIconShapeData85,
+	kEoB2ItemIconShapeData86,
+	kEoB2ItemIconShapeData87,
+	kEoB2ItemIconShapeData88,
+	kEoB2ItemIconShapeData89,
+	kEoB2ItemIconShapeData90,
+	kEoB2ItemIconShapeData91,
+	kEoB2ItemIconShapeData92,
+	kEoB2ItemIconShapeData93,
+	kEoB2ItemIconShapeData94,
+	kEoB2ItemIconShapeData95,
+	kEoB2ItemIconShapeData96,
+	kEoB2ItemIconShapeData97,
+	kEoB2ItemIconShapeData98,
+	kEoB2ItemIconShapeData99,
+	kEoB2ItemIconShapeData100,
+	kEoB2ItemIconShapeData101,
+	kEoB2ItemIconShapeData102,
+	kEoB2ItemIconShapeData103,
+	kEoB2ItemIconShapeData104,
+	kEoB2ItemIconShapeData105,
+	kEoB2ItemIconShapeData106,
+	kEoB2ItemIconShapeData107,
+	kEoB2ItemIconShapeData108,
+	kEoB2ItemIconShapeData109,
+	kEoB2ItemIconShapeData110,
+	kEoB2ItemIconShapeData111,
+
+	kEoB2LargeItemsShapeData00,
+	kEoB2LargeItemsShapeData01,
+	kEoB2LargeItemsShapeData02,
+	kEoB2LargeItemsShapeData03,
+	kEoB2LargeItemsShapeData04,
+	kEoB2LargeItemsShapeData05,
+	kEoB2LargeItemsShapeData06,
+	kEoB2LargeItemsShapeData07,
+	kEoB2LargeItemsShapeData08,
+	kEoB2LargeItemsShapeData09,
+	kEoB2LargeItemsShapeData10,
+
+	kEoB2SmallItemsShapeData00,
+	kEoB2SmallItemsShapeData01,
+	kEoB2SmallItemsShapeData02,
+	kEoB2SmallItemsShapeData03,
+	kEoB2SmallItemsShapeData04,
+	kEoB2SmallItemsShapeData05,
+	kEoB2SmallItemsShapeData06,
+	kEoB2SmallItemsShapeData07,
+	kEoB2SmallItemsShapeData08,
+	kEoB2SmallItemsShapeData09,
+	kEoB2SmallItemsShapeData10,
+	kEoB2SmallItemsShapeData11,
+	kEoB2SmallItemsShapeData12,
+	kEoB2SmallItemsShapeData13,
+	kEoB2SmallItemsShapeData14,
+	kEoB2SmallItemsShapeData15,
+	kEoB2SmallItemsShapeData16,
+	kEoB2SmallItemsShapeData17,
+	kEoB2SmallItemsShapeData18,
+	kEoB2SmallItemsShapeData19,
+	kEoB2SmallItemsShapeData20,
+	kEoB2SmallItemsShapeData21,
+	kEoB2SmallItemsShapeData22,
+	kEoB2SmallItemsShapeData23,
+	kEoB2SmallItemsShapeData24,
+	kEoB2SmallItemsShapeData25,
+
+	kEoB2ThrownShapeData00,
+	kEoB2ThrownShapeData01,
+	kEoB2ThrownShapeData02,
+	kEoB2ThrownShapeData03,
+	kEoB2ThrownShapeData04,
+	kEoB2ThrownShapeData05,
+	kEoB2ThrownShapeData06,
+	kEoB2ThrownShapeData07,
+	kEoB2ThrownShapeData08,
+
+	kEoB2SpellShapeData00,
+	kEoB2SpellShapeData01,
+	kEoB2SpellShapeData02,
+	kEoB2SpellShapeData03,
+
+	kEoB2TeleporterShapeData00,
+	kEoB2TeleporterShapeData01,
+	kEoB2TeleporterShapeData02,
+	kEoB2TeleporterShapeData03,
+	kEoB2TeleporterShapeData04,
+	kEoB2TeleporterShapeData05,
+
+	kEoB2LightningColumnShapeData,
+	kEoB2DeadCharShapeData,
+	kEoB2DisabledCharGridShapeData,
+	kEoB2WeaponSlotGridShapeData,
+	kEoB2SmallGridShapeData,
+	kEoB2WideGridShapeData,
+	kEoB2RedSplatShapeData,
+	kEoB2GreenSplatShapeData,
+
+	kEoB2FirebeamShapeData00,
+	kEoB2FirebeamShapeData01,
+	kEoB2FirebeamShapeData02,
+
+	kEoB2SparkShapeData00,
+	kEoB2SparkShapeData01,
+	kEoB2SparkShapeData02,
+
+	kEoB2CompassShapeData00,
+	kEoB2CompassShapeData01,
+	kEoB2CompassShapeData02,
+	kEoB2CompassShapeData03,
+	kEoB2CompassShapeData04,
+	kEoB2CompassShapeData05,
+	kEoB2CompassShapeData06,
+	kEoB2CompassShapeData07,
+	kEoB2CompassShapeData08,
+	kEoB2CompassShapeData09,
+	kEoB2CompassShapeData10,
+	kEoB2CompassShapeData11,
+
+	kEoB2WallOfForceShapeData00,
+	kEoB2WallOfForceShapeData01,
+	kEoB2WallOfForceShapeData02,
+	kEoB2WallOfForceShapeData03,
+	kEoB2WallOfForceShapeData04,
+	kEoB2WallOfForceShapeData05,
+
+	kEoB2UtilMenuStrings,
+	kEoB2Config2431Strings,
+	kEoB2KatakanaLines,
+	kEoB2KanaSelectStrings,
+	kEoB2FontDmpSearchTbl,
+	kEoB2Ascii2SjisTables,
+	kEoB2Ascii2SjisTables2,
+	kEoB2SaveNamePatterns,
+	kEoB2PcmSoundEffectsIngame,
+	kEoB2PcmSoundEffectsIntro,
+	kEoB2PcmSoundEffectsFinale,
+
+	-1
+}; 
+
+struct GameNeed {
+	int game;
+	int platform;
+	int special;
+
+	const int *entries;
+};
+
+const GameNeed gameNeedTable[] = {
+	{ kKyra1, kPlatformDOS, kNoSpecial, kyra1FloppyNeed },
+	{ kKyra1, kPlatformDOS, kOldFloppy, kyra1FloppyOldNeed },
 	{ kKyra1, kPlatformAmiga, kNoSpecial, kyra1AmigaNeed },
 
 	{ kKyra1, kPlatformDOS, kTalkieVersion, kyra1CDNeed },
@@ -1788,8 +2955,14 @@ const GameNeed gameNeedTable[] = {
 
 	{ kEoB1, kPlatformDOS, kNoSpecial, eob1FloppyNeed },
 
+	//{ kEoB1, kPlatformPC98, kNoSpecial, eob1PC98Need },
+
 	{ kEoB2, kPlatformDOS, kNoSpecial, eob2FloppyNeed },
 
+	//{ kEoB2, kPlatformPC98, kNoSpecial, eob2PC98Need },
+
+	{ kEoB2, kPlatformFMTowns, kNoSpecial, eob2FMTownsNeed },
+
 	{ -1, -1, -1, 0 }
 };
 
diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp
index 8347279..9b225bf 100644
--- a/devtools/create_kyradat/resources.cpp
+++ b/devtools/create_kyradat/resources.cpp
@@ -95,11 +95,20 @@
 #include "resources/eob1_dos_german.h"
 #include "resources/eob1_dos_italian.h"
 
+//#include "resources/eob1_pc98.h"
+//#include "resources/eob1_pc98_japanese.h"
+
 // Eye of the Beholder: The Legend of Darkmoon
 #include "resources/eob2_dos.h"
 #include "resources/eob2_dos_english.h"
 #include "resources/eob2_dos_german.h"
 
+//#include "resources/eob2_pc98.h"
+//#include "resources/eob2_pc98_japanese.h"
+
+#include "resources/eob2_fmtowns.h"
+#include "resources/eob2_fmtowns_japanese.h"
+
 // Lands of Lore
 #include "resources/lol_dos_demo.h"
 #include "resources/lol_dos_demo_english.h"
@@ -1095,7 +1104,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscDoorShapeIndex, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorShapeIndexDOSProvider },
 	{ kEoBBaseWllFlagPreset, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1WllFlagPresetDOSProvider },
 	{ kEoBBaseDscShapeCoords, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscShapeCoordsDOSProvider },
-	{ kEoBBaseDscDoorScaleOffs, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleOffsDOSProvider },
+	{ kRpgCommonDscDoorScaleOffs, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleOffsDOSProvider },
 	{ kEoBBaseDscDoorScaleMult1, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult1DOSProvider },
 	{ kEoBBaseDscDoorScaleMult2, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult2DOSProvider },
 	{ kEoBBaseDscDoorScaleMult3, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult3DOSProvider },
@@ -1138,7 +1147,6 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscShapeIndex, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscShapeIndexDOSProvider },
 	{ kRpgCommonDscX, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscXDOSProvider },
 	{ kRpgCommonDscTileIndex, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscTileIndexDOSProvider },
-	{ kRpgCommonDscUnk2, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscUnk2DOSProvider },
 	{ kRpgCommonDscDimData1, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDimData1DOSProvider },
 	{ kRpgCommonDscDimData2, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDimData2DOSProvider },
 	{ kRpgCommonDscBlockMap, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscBlockMapDOSProvider },
@@ -1467,7 +1475,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscDoorShapeIndex, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorShapeIndexDOSProvider },
 	{ kEoBBaseWllFlagPreset, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2WllFlagPresetDOSProvider },
 	{ kEoBBaseDscShapeCoords, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscShapeCoordsDOSProvider },
-	{ kEoBBaseDscDoorScaleOffs, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleOffsDOSProvider },
+	{ kRpgCommonDscDoorScaleOffs, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleOffsDOSProvider },
 	{ kEoBBaseDscDoorScaleMult1, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult1DOSProvider },
 	{ kEoBBaseDscDoorScaleMult2, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult2DOSProvider },
 	{ kEoBBaseDscDoorScaleMult3, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult3DOSProvider },
@@ -1618,7 +1626,6 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscShapeIndex, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscShapeIndexDOSProvider },
 	{ kRpgCommonDscX, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscXDOSProvider },
 	{ kRpgCommonDscTileIndex, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscTileIndexDOSProvider },
-	{ kRpgCommonDscUnk2, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscUnk2DOSProvider },
 	{ kRpgCommonDscDimData1, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDimData1DOSProvider },
 	{ kRpgCommonDscDimData2, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDimData2DOSProvider },
 	{ kRpgCommonDscBlockMap, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscBlockMapDOSProvider },
@@ -1719,11 +1726,521 @@ static const ResourceProvider resourceProviders[] = {
 	{ kEoB2MonsterDustStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2MonsterDustStringsDOSGermanProvider },
 	{ kEoB2KheldranStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2KheldranStringsDOSGermanProvider },
 	{ kEoB2HornStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2HornStringsDOSGermanProvider },
+	{ kEoBBaseChargenStrings1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenStrings1FMTownsJapaneseProvider },
+	{ kEoBBaseChargenStrings2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenStrings2FMTownsJapaneseProvider },
+	{ kEoBBaseChargenStartLevels, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ChargenStartLevelsFMTownsProvider },
+	{ kEoBBaseChargenStatStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenStatStringsFMTownsJapaneseProvider },
+	{ kEoBBaseChargenRaceSexStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenRaceSexStringsFMTownsJapaneseProvider },
+	{ kEoBBaseChargenClassStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenClassStringsFMTownsJapaneseProvider },
+	{ kEoBBaseChargenAlignmentStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenAlignmentStringsFMTownsJapaneseProvider },
+	{ kEoBBaseChargenEnterGameStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenEnterGameStringsFMTownsJapaneseProvider },
+	{ kEoBBaseChargenClassMinStats, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ChargenClassMinStatsFMTownsProvider },
+	{ kEoBBaseChargenRaceMinStats, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ChargenRaceMinStatsFMTownsProvider },
+	{ kEoBBaseChargenRaceMaxStats, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ChargenRaceMaxStatsFMTownsProvider },
+	{ kEoBBaseSaveThrowTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable1FMTownsProvider },
+	{ kEoBBaseSaveThrowTable2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable2FMTownsProvider },
+	{ kEoBBaseSaveThrowTable3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable3FMTownsProvider },
+	{ kEoBBaseSaveThrowTable4, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable4FMTownsProvider },
+	{ kEoBBaseSaveThrwLvlIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrwLvlIndexFMTownsProvider },
+	{ kEoBBaseSaveThrwModDiv, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrwModDivFMTownsProvider },
+	{ kEoBBaseSaveThrwModExt, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrwModExtFMTownsProvider },
+	{ kEoBBasePryDoorStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PryDoorStringsFMTownsJapaneseProvider },
+	{ kEoBBaseWarningStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2WarningStringsFMTownsJapaneseProvider },
+	{ kEoBBaseItemSuffixStringsRings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ItemSuffixStringsRingsFMTownsJapaneseProvider },
+	{ kEoBBaseItemSuffixStringsPotions, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ItemSuffixStringsPotionsFMTownsJapaneseProvider },
+	{ kEoBBaseItemSuffixStringsWands, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ItemSuffixStringsWandsFMTownsJapaneseProvider },
+	{ kEoBBaseRipItemStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2RipItemStringsFMTownsJapaneseProvider },
+	{ kEoBBaseCursedString, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CursedStringFMTownsJapaneseProvider },
+	{ kEoBBaseEnchantedString, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2EnchantedStringFMTownsProvider },
+	{ kEoBBaseMagicObjectStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicObjectStringsFMTownsJapaneseProvider },
+	{ kEoBBaseMagicObjectString5, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicObjectString5FMTownsJapaneseProvider },
+	{ kEoBBasePatternSuffix, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PatternSuffixFMTownsJapaneseProvider },
+	{ kEoBBasePatternGrFix1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PatternGrFix1FMTownsJapaneseProvider },
+	{ kEoBBasePatternGrFix2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PatternGrFix2FMTownsJapaneseProvider },
+	{ kEoBBaseValidateArmorString, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ValidateArmorStringFMTownsJapaneseProvider },
+	{ kEoBBaseValidateCursedString, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ValidateCursedStringFMTownsJapaneseProvider },
+	{ kEoBBaseValidateNoDropString, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ValidateNoDropStringFMTownsJapaneseProvider },
+	{ kEoBBasePotionStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PotionStringsFMTownsJapaneseProvider },
+	{ kEoBBaseWandStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2WandStringsFMTownsJapaneseProvider },
+	{ kEoBBaseItemMisuseStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ItemMisuseStringsFMTownsJapaneseProvider },
+	{ kEoBBaseTakenStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2TakenStringsFMTownsJapaneseProvider },
+	{ kEoBBasePotionEffectStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PotionEffectStringsFMTownsJapaneseProvider },
+	{ kEoBBaseYesNoStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2YesNoStringsFMTownsJapaneseProvider },
+	{ kRpgCommonMoreStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MoreStringsFMTownsJapaneseProvider },
+	{ kEoBBaseNpcMaxStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2NpcMaxStringsFMTownsJapaneseProvider },
+	{ kEoBBaseOkStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2OkStringsFMTownsJapaneseProvider },
+	{ kEoBBaseNpcJoinStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2NpcJoinStringsFMTownsJapaneseProvider },
+	{ kEoBBaseCancelStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CancelStringsFMTownsJapaneseProvider },
+	{ kEoBBaseAbortStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2AbortStringsFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsMain, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsMainFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsSaveLoad, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsSaveLoadFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsOnOff, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsOnOffFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsSpells, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsSpellsFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsRest, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsRestFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsDrop, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsDropFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsExit, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsExitFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsStarve, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsStarveFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsScribe, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsScribeFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsDrop2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsDrop2FMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsHead, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsHeadFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsPoison, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsPoisonFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsMgc, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsMgcFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsPrefs, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsPrefsFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsRest2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsRest2FMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsRest3, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsRest3FMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsRest4, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsRest4FMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsDefeat, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsDefeatFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsSpec, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsSpecFMTownsJapaneseProvider },
+	{ kEoBBaseMenuStringsSpellNo, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MenuStringsSpellNoFMTownsProvider },
+	{ kEoBBaseMenuYesNoStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuYesNoStringsFMTownsJapaneseProvider },
+	{ kEoBBaseSpellLevelsMage, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellLevelsMageFMTownsProvider },
+	{ kEoBBaseSpellLevelsCleric, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellLevelsClericFMTownsProvider },
+	{ kEoBBaseNumSpellsCleric, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NumSpellsClericFMTownsProvider },
+	{ kEoBBaseNumSpellsWisAdj, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NumSpellsWisAdjFMTownsProvider },
+	{ kEoBBaseNumSpellsPal, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NumSpellsPalFMTownsProvider },
+	{ kEoBBaseNumSpellsMage, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NumSpellsMageFMTownsProvider },
+	{ kEoBBaseCharGuiStringsHp, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharGuiStringsHpFMTownsJapaneseProvider },
+	{ kEoBBaseCharGuiStringsWp2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharGuiStringsWp2FMTownsJapaneseProvider },
+	{ kEoBBaseCharGuiStringsWr, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharGuiStringsWrFMTownsJapaneseProvider },
+	{ kEoBBaseCharGuiStringsSt2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharGuiStringsSt2FMTownsJapaneseProvider },
+	{ kEoBBaseCharGuiStringsIn, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharGuiStringsInFMTownsJapaneseProvider },
+	{ kEoBBaseCharStatusStrings7, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharStatusStrings7FMTownsJapaneseProvider },
+	{ kEoBBaseCharStatusStrings82, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharStatusStrings82FMTownsJapaneseProvider },
+	{ kEoBBaseCharStatusStrings9, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharStatusStrings9FMTownsJapaneseProvider },
+	{ kEoBBaseCharStatusStrings12, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharStatusStrings12FMTownsJapaneseProvider },
+	{ kEoBBaseCharStatusStrings132, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharStatusStrings132FMTownsJapaneseProvider },
+	{ kEoBBaseLevelGainStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2LevelGainStringsFMTownsJapaneseProvider },
+	{ kEoBBaseExperienceTable0, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable0FMTownsProvider },
+	{ kEoBBaseExperienceTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable1FMTownsProvider },
+	{ kEoBBaseExperienceTable2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable2FMTownsProvider },
+	{ kEoBBaseExperienceTable3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable3FMTownsProvider },
+	{ kEoBBaseExperienceTable4, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable4FMTownsProvider },
+	{ kEoBBaseBookNumbers, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2BookNumbersFMTownsJapaneseProvider },
+	{ kEoBBaseMageSpellsList, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MageSpellsListFMTownsJapaneseProvider },
+	{ kEoBBaseClericSpellsList, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ClericSpellsListFMTownsJapaneseProvider },
+	{ kEoBBaseSpellNames, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2SpellNamesFMTownsJapaneseProvider },
+	{ kEoBBaseMagicStrings1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings1FMTownsJapaneseProvider },
+	{ kEoBBaseMagicStrings2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings2FMTownsJapaneseProvider },
+	{ kEoBBaseMagicStrings3, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings3FMTownsJapaneseProvider },
+	{ kEoBBaseMagicStrings4, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings4FMTownsJapaneseProvider },
+	{ kEoBBaseMagicStrings6, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings6FMTownsJapaneseProvider },
+	{ kEoBBaseMagicStrings7, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings7FMTownsJapaneseProvider },
+	{ kEoBBaseMagicStrings8, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings8FMTownsJapaneseProvider },
+	{ kEoBBaseExpObjectTlMode, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTlModeFMTownsProvider },
+	{ kEoBBaseExpObjectTblIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTblIndexFMTownsProvider },
+	{ kEoBBaseExpObjectShpStart, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectShpStartFMTownsProvider },
+	{ kEoBBaseExpObjectTbl1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl1FMTownsProvider },
+	{ kEoBBaseExpObjectTbl2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl2FMTownsProvider },
+	{ kEoBBaseExpObjectTbl3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl3FMTownsProvider },
+	{ kEoBBaseExpObjectY, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectYFMTownsProvider },
+	{ kEoBBaseSparkDefSteps, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefStepsFMTownsProvider },
+	{ kEoBBaseSparkDefSubSteps, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefSubStepsFMTownsProvider },
+	{ kEoBBaseSparkDefShift, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefShiftFMTownsProvider },
+	{ kEoBBaseSparkDefAdd, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefAddFMTownsProvider },
+	{ kEoBBaseSparkDefX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefXFMTownsProvider },
+	{ kEoBBaseSparkDefY, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefYFMTownsProvider },
+	{ kEoBBaseSparkOfFlags1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkOfFlags1FMTownsProvider },
+	{ kEoBBaseSparkOfFlags2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkOfFlags2FMTownsProvider },
+	{ kEoBBaseSparkOfShift, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkOfShiftFMTownsProvider },
+	{ kEoBBaseSparkOfX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkOfXFMTownsProvider },
+	{ kEoBBaseSparkOfY, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkOfYFMTownsProvider },
+	{ kEoBBaseSpellProperties, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellPropertiesFMTownsProvider },
+	{ kEoBBaseMagicFlightProps, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MagicFlightPropsFMTownsProvider },
+	{ kEoBBaseTurnUndeadEffect, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TurnUndeadEffectFMTownsProvider },
+	{ kEoBBaseBurningHandsDest, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2BurningHandsDestFMTownsProvider },
+	{ kEoBBaseConeOfColdDest1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest1FMTownsProvider },
+	{ kEoBBaseConeOfColdDest2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest2FMTownsProvider },
+	{ kEoBBaseConeOfColdDest3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest3FMTownsProvider },
+	{ kEoBBaseConeOfColdDest4, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest4FMTownsProvider },
+	{ kEoBBaseConeOfColdGfxTbl, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdGfxTblFMTownsProvider },
+	{ kRpgCommonDscDoorShapeIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorShapeIndexFMTownsProvider },
+	{ kEoBBaseWllFlagPreset, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WllFlagPresetFMTownsProvider },
+	{ kEoBBaseDscShapeCoords, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscShapeCoordsFMTownsProvider },
+	{ kRpgCommonDscDoorScaleOffs, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleOffsFMTownsProvider },
+	{ kEoBBaseDscDoorScaleMult1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult1FMTownsProvider },
+	{ kEoBBaseDscDoorScaleMult2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult2FMTownsProvider },
+	{ kEoBBaseDscDoorScaleMult3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult3FMTownsProvider },
+	{ kEoBBaseDscDoorType5Offs, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorType5OffsFMTownsProvider },
+	{ kEoBBaseDscDoorY1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorY1FMTownsProvider },
+	{ kRpgCommonDscDoorY2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorY2FMTownsProvider },
+	{ kRpgCommonDscDoorFrameY1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorFrameY1FMTownsProvider },
+	{ kRpgCommonDscDoorFrameY2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorFrameY2FMTownsProvider },
+	{ kEoBBaseDscItemPosIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscItemPosIndexFMTownsProvider },
+	{ kEoBBaseDscItemShpX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscItemShpXFMTownsProvider },
+	{ kEoBBaseDscItemScaleIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscItemScaleIndexFMTownsProvider },
+	{ kEoBBaseDscItemTileIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscItemTileIndexFMTownsProvider },
+	{ kEoBBaseDscItemShapeMap, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscItemShapeMapFMTownsProvider },
+	{ kEoBBaseDscTelptrShpCoords, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscTelptrShpCoordsFMTownsProvider },
+	{ kEoBBasePortalSeqData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2PortalSeqDataFMTownsProvider },
+	{ kEoBBaseDscMonsterFrmOffsTbl1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscMonsterFrmOffsTbl1FMTownsProvider },
+	{ kEoBBaseDscMonsterFrmOffsTbl2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscMonsterFrmOffsTbl2FMTownsProvider },
+	{ kEoBBaseInvSlotX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2InvSlotXFMTownsProvider },
+	{ kEoBBaseInvSlotY, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2InvSlotYFMTownsProvider },
+	{ kEoBBaseSlotValidationFlags, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SlotValidationFlagsFMTownsProvider },
+	{ kEoBBaseProjectileWeaponTypes, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ProjectileWeaponTypesFMTownsProvider },
+	{ kEoBBaseWandTypes, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WandTypesFMTownsProvider },
+	{ kEoBBaseDrawObjPosIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DrawObjPosIndexFMTownsProvider },
+	{ kEoBBaseFlightObjFlipIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FlightObjFlipIndexFMTownsProvider },
+	{ kEoBBaseFlightObjShpMap, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FlightObjShpMapFMTownsProvider },
+	{ kEoBBaseFlightObjSclIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FlightObjSclIndexFMTownsProvider },
+	{ kEoB2MainMenuStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MainMenuStringsFMTownsJapaneseProvider },
+	{ kEoB2MainMenuUtilStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MainMenuUtilStringsFMTownsJapaneseProvider },
+	{ kEoB2IntroStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroStringsFMTownsJapaneseProvider },
+	{ kEoB2IntroCpsDataStreet1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataStreet1FMTownsProvider },
+	{ kEoB2IntroCpsDataStreet2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataStreet2FMTownsProvider },
+	{ kEoB2IntroCpsDataDoorway1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataDoorway1FMTownsProvider },
+	{ kEoB2IntroCpsDataDoorway2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataDoorway2FMTownsProvider },
+	{ kEoB2IntroCpsDataWestwood, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataWestwoodFMTownsProvider },
+	{ kEoB2IntroCpsDataWinding, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataWindingFMTownsProvider },
+	{ kEoB2IntroCpsDataKhelban2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban2FMTownsProvider },
+	{ kEoB2IntroCpsDataKhelban1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban1FMTownsProvider },
+	{ kEoB2IntroCpsDataKhelban3, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban3FMTownsProvider },
+	{ kEoB2IntroCpsDataKhelban4, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban4FMTownsProvider },
+	{ kEoB2IntroCpsDataCoin, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataCoinFMTownsProvider },
+	{ kEoB2IntroCpsDataKhelban5, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban5FMTownsProvider },
+	{ kEoB2IntroCpsDataKhelban6, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban6FMTownsProvider },
+	{ kEoB2IntroAnimData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData00FMTownsProvider },
+	{ kEoB2IntroAnimData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData01FMTownsProvider },
+	{ kEoB2IntroAnimData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData02FMTownsProvider },
+	{ kEoB2IntroAnimData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData03FMTownsProvider },
+	{ kEoB2IntroAnimData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData04FMTownsProvider },
+	{ kEoB2IntroAnimData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData05FMTownsProvider },
+	{ kEoB2IntroAnimData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData06FMTownsProvider },
+	{ kEoB2IntroAnimData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData07FMTownsProvider },
+	{ kEoB2IntroAnimData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData08FMTownsProvider },
+	{ kEoB2IntroAnimData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData09FMTownsProvider },
+	{ kEoB2IntroAnimData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData10FMTownsProvider },
+	{ kEoB2IntroAnimData11, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData11FMTownsProvider },
+	{ kEoB2IntroAnimData12, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData12FMTownsProvider },
+	{ kEoB2IntroAnimData13, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData13FMTownsProvider },
+	{ kEoB2IntroAnimData14, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData14FMTownsProvider },
+	{ kEoB2IntroAnimData15, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData15FMTownsProvider },
+	{ kEoB2IntroAnimData16, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData16FMTownsProvider },
+	{ kEoB2IntroAnimData17, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData17FMTownsProvider },
+	{ kEoB2IntroAnimData18, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData18FMTownsProvider },
+	{ kEoB2IntroAnimData19, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData19FMTownsProvider },
+	{ kEoB2IntroAnimData20, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData20FMTownsProvider },
+	{ kEoB2IntroAnimData21, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData21FMTownsProvider },
+	{ kEoB2IntroAnimData22, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData22FMTownsProvider },
+	{ kEoB2IntroAnimData23, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData23FMTownsProvider },
+	{ kEoB2IntroAnimData24, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData24FMTownsProvider },
+	{ kEoB2IntroAnimData25, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData25FMTownsProvider },
+	{ kEoB2IntroAnimData26, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData26FMTownsProvider },
+	{ kEoB2IntroAnimData27, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData27FMTownsProvider },
+	{ kEoB2IntroAnimData28, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData28FMTownsProvider },
+	{ kEoB2IntroAnimData29, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData29FMTownsProvider },
+	{ kEoB2IntroAnimData30, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData30FMTownsProvider },
+	{ kEoB2IntroAnimData31, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData31FMTownsProvider },
+	{ kEoB2IntroAnimData32, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData32FMTownsProvider },
+	{ kEoB2IntroAnimData33, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData33FMTownsProvider },
+	{ kEoB2IntroAnimData34, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData34FMTownsProvider },
+	{ kEoB2IntroAnimData35, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData35FMTownsProvider },
+	{ kEoB2IntroAnimData36, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData36FMTownsProvider },
+	{ kEoB2IntroAnimData37, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData37FMTownsProvider },
+	{ kEoB2IntroAnimData38, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData38FMTownsProvider },
+	{ kEoB2IntroAnimData39, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData39FMTownsProvider },
+	{ kEoB2IntroAnimData40, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData40FMTownsProvider },
+	{ kEoB2IntroAnimData41, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData41FMTownsProvider },
+	{ kEoB2IntroAnimData42, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData42FMTownsProvider },
+	{ kEoB2IntroAnimData43, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData43FMTownsProvider },
+	{ kEoB2IntroShapes00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroShapes00FMTownsProvider },
+	{ kEoB2IntroShapes01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroShapes01FMTownsProvider },
+	{ kEoB2IntroShapes04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroShapes04FMTownsProvider },
+	{ kEoB2IntroShapes07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroShapes07FMTownsProvider },
+	{ kEoB2FinaleStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2FinaleStringsFMTownsJapaneseProvider },
+	{ kEoB2FinaleCpsDataDragon1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDragon1FMTownsProvider },
+	{ kEoB2FinaleCpsDataDragon2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDragon2FMTownsProvider },
+	{ kEoB2FinaleCpsDataHurry1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataHurry1FMTownsProvider },
+	{ kEoB2FinaleCpsDataHurry2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataHurry2FMTownsProvider },
+	{ kEoB2FinaleCpsDataDestroy0, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDestroy0FMTownsProvider },
+	{ kEoB2FinaleCpsDataDestroy1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDestroy1FMTownsProvider },
+	{ kEoB2FinaleCpsDataDestroy2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDestroy2FMTownsProvider },
+	{ kEoB2FinaleCpsDataMagic, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataMagicFMTownsProvider },
+	{ kEoB2FinaleCpsDataDestroy3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDestroy3FMTownsProvider },
+	{ kEoB2FinaleCpsDataCredits2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataCredits2FMTownsProvider },
+	{ kEoB2FinaleCpsDataCredits3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataCredits3FMTownsProvider },
+	{ kEoB2FinaleCpsDataHeroes, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataHeroesFMTownsProvider },
+	{ kEoB2FinaleCpsDataThanks, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataThanksFMTownsProvider },
+	{ kEoB2FinaleAnimData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData00FMTownsProvider },
+	{ kEoB2FinaleAnimData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData01FMTownsProvider },
+	{ kEoB2FinaleAnimData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData02FMTownsProvider },
+	{ kEoB2FinaleAnimData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData03FMTownsProvider },
+	{ kEoB2FinaleAnimData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData04FMTownsProvider },
+	{ kEoB2FinaleAnimData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData05FMTownsProvider },
+	{ kEoB2FinaleAnimData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData06FMTownsProvider },
+	{ kEoB2FinaleAnimData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData07FMTownsProvider },
+	{ kEoB2FinaleAnimData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData08FMTownsProvider },
+	{ kEoB2FinaleAnimData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData09FMTownsProvider },
+	{ kEoB2FinaleAnimData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData10FMTownsProvider },
+	{ kEoB2FinaleAnimData11, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData11FMTownsProvider },
+	{ kEoB2FinaleAnimData12, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData12FMTownsProvider },
+	{ kEoB2FinaleAnimData13, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData13FMTownsProvider },
+	{ kEoB2FinaleAnimData14, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData14FMTownsProvider },
+	{ kEoB2FinaleAnimData15, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData15FMTownsProvider },
+	{ kEoB2FinaleAnimData16, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData16FMTownsProvider },
+	{ kEoB2FinaleAnimData17, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData17FMTownsProvider },
+	{ kEoB2FinaleAnimData18, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData18FMTownsProvider },
+	{ kEoB2FinaleAnimData19, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData19FMTownsProvider },
+	{ kEoB2FinaleAnimData20, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData20FMTownsProvider },
+	{ kEoB2FinaleShapes00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes00FMTownsProvider },
+	{ kEoB2FinaleShapes03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes03FMTownsProvider },
+	{ kEoB2FinaleShapes07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes07FMTownsProvider },
+	{ kEoB2FinaleShapes09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes09FMTownsProvider },
+	{ kEoB2FinaleShapes10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes10FMTownsProvider },
+	{ kEoB2NpcShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NpcShapeDataFMTownsProvider },
+	{ kEoBBaseClassModifierFlags, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ClassModifierFlagsFMTownsProvider },
+	{ kEoBBaseMonsterStepTable02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable02FMTownsProvider },
+	{ kEoBBaseMonsterStepTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable1FMTownsProvider },
+	{ kEoBBaseMonsterStepTable2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable2FMTownsProvider },
+	{ kEoBBaseMonsterStepTable3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable3FMTownsProvider },
+	{ kEoBBaseMonsterCloseAttPosTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttPosTable1FMTownsProvider },
+	{ kEoBBaseMonsterCloseAttPosTable22, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttPosTable22FMTownsProvider },
+	{ kEoBBaseMonsterCloseAttUnkTable, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttUnkTableFMTownsProvider },
+	{ kEoBBaseMonsterCloseAttChkTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttChkTable1FMTownsProvider },
+	{ kEoBBaseMonsterCloseAttChkTable2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttChkTable2FMTownsProvider },
+	{ kEoBBaseMonsterCloseAttDstTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttDstTable1FMTownsProvider },
+	{ kEoBBaseMonsterCloseAttDstTable2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttDstTable2FMTownsProvider },
+	{ kEoBBaseMonsterProximityTable, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterProximityTableFMTownsProvider },
+	{ kEoBBaseFindBlockMonstersTable, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FindBlockMonstersTableFMTownsProvider },
+	{ kEoBBaseMonsterDirChangeTable, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterDirChangeTableFMTownsProvider },
+	{ kEoBBaseMonsterDistAttStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MonsterDistAttStringsFMTownsJapaneseProvider },
+	{ kEoBBaseNpcPresets, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NpcPresetsFMTownsProvider },
+	{ kEoB2Npc1Strings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2Npc1StringsFMTownsJapaneseProvider },
+	{ kEoB2Npc2Strings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2Npc2StringsFMTownsJapaneseProvider },
+	{ kEoB2MonsterDustStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MonsterDustStringsFMTownsJapaneseProvider },
+	{ kEoB2DreamSteps, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DreamStepsFMTownsProvider },
+	{ kEoB2KheldranStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2KheldranStringsFMTownsJapaneseProvider },
+	{ kEoB2HornStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2HornStringsFMTownsJapaneseProvider },
+	{ kEoB2HornSounds, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2HornSoundsFMTownsProvider },
+	{ kEoB2WallOfForceDsX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceDsXFMTownsProvider },
+	{ kEoB2WallOfForceDsY, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceDsYFMTownsProvider },
+	{ kEoB2WallOfForceNumW, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceNumWFMTownsProvider },
+	{ kEoB2WallOfForceNumH, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceNumHFMTownsProvider },
+	{ kEoB2WallOfForceShpId, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShpIdFMTownsProvider },
+	{ kRpgCommonDscShapeIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscShapeIndexFMTownsProvider },
+	{ kRpgCommonDscX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscXFMTownsProvider },
+	{ kRpgCommonDscTileIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscTileIndexFMTownsProvider },
+	{ kRpgCommonDscDimData1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDimData1FMTownsProvider },
+	{ kRpgCommonDscDimData2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDimData2FMTownsProvider },
+	{ kRpgCommonDscBlockMap, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscBlockMapFMTownsProvider },
+	{ kRpgCommonDscDimMap, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDimMapFMTownsProvider },
+	{ kRpgCommonDscBlockIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscBlockIndexFMTownsProvider },
 	{ k2SeqplayPakFiles, kLoL, kPlatformDOS, kDemoVersion, UNK_LANG, &kLoLSeqplayPakFilesDOSDemoProvider },
 	{ k2SeqplayStrings, kLoL, kPlatformDOS, kDemoVersion, EN_ANY, &kLoLSeqplayStringsDOSDemoEnglishProvider },
 	{ k2SeqplaySeqData, kLoL, kPlatformDOS, kDemoVersion, UNK_LANG, &kLoLSeqplaySeqDataDOSDemoProvider },
 	{ k2SeqplaySfxFiles, kLoL, kPlatformDOS, kDemoVersion, UNK_LANG, &kLoLSeqplaySfxFilesDOSDemoProvider },
 	{ k2SeqplayIntroTracks, kLoL, kPlatformDOS, kDemoVersion, UNK_LANG, &kLoLSeqplayIntroTracksDOSDemoProvider },
+	{ kEoB2ItemIconShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData00FMTownsProvider },
+	{ kEoB2ItemIconShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData01FMTownsProvider },
+	{ kEoB2ItemIconShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData02FMTownsProvider },
+	{ kEoB2ItemIconShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData03FMTownsProvider },
+	{ kEoB2ItemIconShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData04FMTownsProvider },
+	{ kEoB2ItemIconShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData05FMTownsProvider },
+	{ kEoB2ItemIconShapeData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData06FMTownsProvider },
+	{ kEoB2ItemIconShapeData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData07FMTownsProvider },
+	{ kEoB2ItemIconShapeData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData08FMTownsProvider },
+	{ kEoB2ItemIconShapeData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData09FMTownsProvider },
+	{ kEoB2ItemIconShapeData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData10FMTownsProvider },
+	{ kEoB2ItemIconShapeData11, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData11FMTownsProvider },
+	{ kEoB2ItemIconShapeData12, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData12FMTownsProvider },
+	{ kEoB2ItemIconShapeData13, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData13FMTownsProvider },
+	{ kEoB2ItemIconShapeData14, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData14FMTownsProvider },
+	{ kEoB2ItemIconShapeData15, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData15FMTownsProvider },
+	{ kEoB2ItemIconShapeData16, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData16FMTownsProvider },
+	{ kEoB2ItemIconShapeData17, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData17FMTownsProvider },
+	{ kEoB2ItemIconShapeData18, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData18FMTownsProvider },
+	{ kEoB2ItemIconShapeData19, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData19FMTownsProvider },
+	{ kEoB2ItemIconShapeData20, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData20FMTownsProvider },
+	{ kEoB2ItemIconShapeData21, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData21FMTownsProvider },
+	{ kEoB2ItemIconShapeData22, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData22FMTownsProvider },
+	{ kEoB2ItemIconShapeData23, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData23FMTownsProvider },
+	{ kEoB2ItemIconShapeData24, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData24FMTownsProvider },
+	{ kEoB2ItemIconShapeData25, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData25FMTownsProvider },
+	{ kEoB2ItemIconShapeData26, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData26FMTownsProvider },
+	{ kEoB2ItemIconShapeData27, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData27FMTownsProvider },
+	{ kEoB2ItemIconShapeData28, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData28FMTownsProvider },
+	{ kEoB2ItemIconShapeData29, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData29FMTownsProvider },
+	{ kEoB2ItemIconShapeData30, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData30FMTownsProvider },
+	{ kEoB2ItemIconShapeData31, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData31FMTownsProvider },
+	{ kEoB2ItemIconShapeData32, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData32FMTownsProvider },
+	{ kEoB2ItemIconShapeData33, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData33FMTownsProvider },
+	{ kEoB2ItemIconShapeData34, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData34FMTownsProvider },
+	{ kEoB2ItemIconShapeData35, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData35FMTownsProvider },
+	{ kEoB2ItemIconShapeData36, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData36FMTownsProvider },
+	{ kEoB2ItemIconShapeData37, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData37FMTownsProvider },
+	{ kEoB2ItemIconShapeData38, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData38FMTownsProvider },
+	{ kEoB2ItemIconShapeData39, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData39FMTownsProvider },
+	{ kEoB2ItemIconShapeData40, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData40FMTownsProvider },
+	{ kEoB2ItemIconShapeData41, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData41FMTownsProvider },
+	{ kEoB2ItemIconShapeData42, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData42FMTownsProvider },
+	{ kEoB2ItemIconShapeData43, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData43FMTownsProvider },
+	{ kEoB2ItemIconShapeData44, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData44FMTownsProvider },
+	{ kEoB2ItemIconShapeData45, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData45FMTownsProvider },
+	{ kEoB2ItemIconShapeData46, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData46FMTownsProvider },
+	{ kEoB2ItemIconShapeData47, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData47FMTownsProvider },
+	{ kEoB2ItemIconShapeData48, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData48FMTownsProvider },
+	{ kEoB2ItemIconShapeData49, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData49FMTownsProvider },
+	{ kEoB2ItemIconShapeData50, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData50FMTownsProvider },
+	{ kEoB2ItemIconShapeData51, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData51FMTownsProvider },
+	{ kEoB2ItemIconShapeData52, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData52FMTownsProvider },
+	{ kEoB2ItemIconShapeData53, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData53FMTownsProvider },
+	{ kEoB2ItemIconShapeData54, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData54FMTownsProvider },
+	{ kEoB2ItemIconShapeData55, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData55FMTownsProvider },
+	{ kEoB2ItemIconShapeData56, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData56FMTownsProvider },
+	{ kEoB2ItemIconShapeData57, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData57FMTownsProvider },
+	{ kEoB2ItemIconShapeData58, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData58FMTownsProvider },
+	{ kEoB2ItemIconShapeData59, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData59FMTownsProvider },
+	{ kEoB2ItemIconShapeData60, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData60FMTownsProvider },
+	{ kEoB2ItemIconShapeData61, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData61FMTownsProvider },
+	{ kEoB2ItemIconShapeData62, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData62FMTownsProvider },
+	{ kEoB2ItemIconShapeData63, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData63FMTownsProvider },
+	{ kEoB2ItemIconShapeData64, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData64FMTownsProvider },
+	{ kEoB2ItemIconShapeData65, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData65FMTownsProvider },
+	{ kEoB2ItemIconShapeData66, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData66FMTownsProvider },
+	{ kEoB2ItemIconShapeData67, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData67FMTownsProvider },
+	{ kEoB2ItemIconShapeData68, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData68FMTownsProvider },
+	{ kEoB2ItemIconShapeData69, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData69FMTownsProvider },
+	{ kEoB2ItemIconShapeData70, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData70FMTownsProvider },
+	{ kEoB2ItemIconShapeData71, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData71FMTownsProvider },
+	{ kEoB2ItemIconShapeData72, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData72FMTownsProvider },
+	{ kEoB2ItemIconShapeData73, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData73FMTownsProvider },
+	{ kEoB2ItemIconShapeData74, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData74FMTownsProvider },
+	{ kEoB2ItemIconShapeData75, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData75FMTownsProvider },
+	{ kEoB2ItemIconShapeData76, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData76FMTownsProvider },
+	{ kEoB2ItemIconShapeData77, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData77FMTownsProvider },
+	{ kEoB2ItemIconShapeData78, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData78FMTownsProvider },
+	{ kEoB2ItemIconShapeData79, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData79FMTownsProvider },
+	{ kEoB2ItemIconShapeData80, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData80FMTownsProvider },
+	{ kEoB2ItemIconShapeData81, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData81FMTownsProvider },
+	{ kEoB2ItemIconShapeData82, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData82FMTownsProvider },
+	{ kEoB2ItemIconShapeData83, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData83FMTownsProvider },
+	{ kEoB2ItemIconShapeData84, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData84FMTownsProvider },
+	{ kEoB2ItemIconShapeData85, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData85FMTownsProvider },
+	{ kEoB2ItemIconShapeData86, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData86FMTownsProvider },
+	{ kEoB2ItemIconShapeData87, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData87FMTownsProvider },
+	{ kEoB2ItemIconShapeData88, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData88FMTownsProvider },
+	{ kEoB2ItemIconShapeData89, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData89FMTownsProvider },
+	{ kEoB2ItemIconShapeData90, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData90FMTownsProvider },
+	{ kEoB2ItemIconShapeData91, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData91FMTownsProvider },
+	{ kEoB2ItemIconShapeData92, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData92FMTownsProvider },
+	{ kEoB2ItemIconShapeData93, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData93FMTownsProvider },
+	{ kEoB2ItemIconShapeData94, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData94FMTownsProvider },
+	{ kEoB2ItemIconShapeData95, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData95FMTownsProvider },
+	{ kEoB2ItemIconShapeData96, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData96FMTownsProvider },
+	{ kEoB2ItemIconShapeData97, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData97FMTownsProvider },
+	{ kEoB2ItemIconShapeData98, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData98FMTownsProvider },
+	{ kEoB2ItemIconShapeData99, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData99FMTownsProvider },
+	{ kEoB2ItemIconShapeData100, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData100FMTownsProvider },
+	{ kEoB2ItemIconShapeData101, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData101FMTownsProvider },
+	{ kEoB2ItemIconShapeData102, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData102FMTownsProvider },
+	{ kEoB2ItemIconShapeData103, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData103FMTownsProvider },
+	{ kEoB2ItemIconShapeData104, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData104FMTownsProvider },
+	{ kEoB2ItemIconShapeData105, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData105FMTownsProvider },
+	{ kEoB2ItemIconShapeData106, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData106FMTownsProvider },
+	{ kEoB2ItemIconShapeData107, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData107FMTownsProvider },
+	{ kEoB2ItemIconShapeData108, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData108FMTownsProvider },
+	{ kEoB2ItemIconShapeData109, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData109FMTownsProvider },
+	{ kEoB2ItemIconShapeData110, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData110FMTownsProvider },
+	{ kEoB2ItemIconShapeData111, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData111FMTownsProvider },
+	{ kEoB2LargeItemsShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData00FMTownsProvider },
+	{ kEoB2LargeItemsShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData01FMTownsProvider },
+	{ kEoB2LargeItemsShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData02FMTownsProvider },
+	{ kEoB2LargeItemsShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData03FMTownsProvider },
+	{ kEoB2LargeItemsShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData04FMTownsProvider },
+	{ kEoB2LargeItemsShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData05FMTownsProvider },
+	{ kEoB2LargeItemsShapeData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData06FMTownsProvider },
+	{ kEoB2LargeItemsShapeData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData07FMTownsProvider },
+	{ kEoB2LargeItemsShapeData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData08FMTownsProvider },
+	{ kEoB2LargeItemsShapeData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData09FMTownsProvider },
+	{ kEoB2LargeItemsShapeData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData10FMTownsProvider },
+	{ kEoB2SmallItemsShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData00FMTownsProvider },
+	{ kEoB2SmallItemsShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData01FMTownsProvider },
+	{ kEoB2SmallItemsShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData02FMTownsProvider },
+	{ kEoB2SmallItemsShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData03FMTownsProvider },
+	{ kEoB2SmallItemsShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData04FMTownsProvider },
+	{ kEoB2SmallItemsShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData05FMTownsProvider },
+	{ kEoB2SmallItemsShapeData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData06FMTownsProvider },
+	{ kEoB2SmallItemsShapeData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData07FMTownsProvider },
+	{ kEoB2SmallItemsShapeData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData08FMTownsProvider },
+	{ kEoB2SmallItemsShapeData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData09FMTownsProvider },
+	{ kEoB2SmallItemsShapeData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData10FMTownsProvider },
+	{ kEoB2SmallItemsShapeData11, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData11FMTownsProvider },
+	{ kEoB2SmallItemsShapeData12, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData12FMTownsProvider },
+	{ kEoB2SmallItemsShapeData13, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData13FMTownsProvider },
+	{ kEoB2SmallItemsShapeData14, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData14FMTownsProvider },
+	{ kEoB2SmallItemsShapeData15, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData15FMTownsProvider },
+	{ kEoB2SmallItemsShapeData16, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData16FMTownsProvider },
+	{ kEoB2SmallItemsShapeData17, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData17FMTownsProvider },
+	{ kEoB2SmallItemsShapeData18, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData18FMTownsProvider },
+	{ kEoB2SmallItemsShapeData19, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData19FMTownsProvider },
+	{ kEoB2SmallItemsShapeData20, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData20FMTownsProvider },
+	{ kEoB2SmallItemsShapeData21, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData21FMTownsProvider },
+	{ kEoB2SmallItemsShapeData22, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData22FMTownsProvider },
+	{ kEoB2SmallItemsShapeData23, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData23FMTownsProvider },
+	{ kEoB2SmallItemsShapeData24, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData24FMTownsProvider },
+	{ kEoB2SmallItemsShapeData25, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData25FMTownsProvider },
+	{ kEoB2ThrownShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData00FMTownsProvider },
+	{ kEoB2ThrownShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData01FMTownsProvider },
+	{ kEoB2ThrownShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData02FMTownsProvider },
+	{ kEoB2ThrownShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData03FMTownsProvider },
+	{ kEoB2ThrownShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData04FMTownsProvider },
+	{ kEoB2ThrownShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData05FMTownsProvider },
+	{ kEoB2ThrownShapeData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData06FMTownsProvider },
+	{ kEoB2ThrownShapeData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData07FMTownsProvider },
+	{ kEoB2ThrownShapeData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData08FMTownsProvider },
+	{ kEoB2SpellShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellShapeData00FMTownsProvider },
+	{ kEoB2SpellShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellShapeData01FMTownsProvider },
+	{ kEoB2SpellShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellShapeData02FMTownsProvider },
+	{ kEoB2SpellShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellShapeData03FMTownsProvider },
+	{ kEoB2TeleporterShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData00FMTownsProvider },
+	{ kEoB2TeleporterShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData01FMTownsProvider },
+	{ kEoB2TeleporterShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData02FMTownsProvider },
+	{ kEoB2TeleporterShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData03FMTownsProvider },
+	{ kEoB2TeleporterShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData04FMTownsProvider },
+	{ kEoB2TeleporterShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData05FMTownsProvider },
+	{ kEoB2LightningColumnShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LightningColumnShapeDataFMTownsProvider },
+	{ kEoB2DeadCharShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DeadCharShapeDataFMTownsProvider },
+	{ kEoB2DisabledCharGridShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DisabledCharGridShapeDataFMTownsProvider },
+	{ kEoB2WeaponSlotGridShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WeaponSlotGridShapeDataFMTownsProvider },
+	{ kEoB2SmallGridShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallGridShapeDataFMTownsProvider },
+	{ kEoB2WideGridShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WideGridShapeDataFMTownsProvider },
+	{ kEoB2RedSplatShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2RedSplatShapeDataFMTownsProvider },
+	{ kEoB2GreenSplatShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2GreenSplatShapeDataFMTownsProvider },
+	{ kEoB2FirebeamShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FirebeamShapeData00FMTownsProvider },
+	{ kEoB2FirebeamShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FirebeamShapeData01FMTownsProvider },
+	{ kEoB2FirebeamShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FirebeamShapeData02FMTownsProvider },
+	{ kEoB2SparkShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkShapeData00FMTownsProvider },
+	{ kEoB2SparkShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkShapeData01FMTownsProvider },
+	{ kEoB2SparkShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkShapeData02FMTownsProvider },
+	{ kEoB2CompassShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData00FMTownsProvider },
+	{ kEoB2CompassShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData01FMTownsProvider },
+	{ kEoB2CompassShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData02FMTownsProvider },
+	{ kEoB2CompassShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData03FMTownsProvider },
+	{ kEoB2CompassShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData04FMTownsProvider },
+	{ kEoB2CompassShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData05FMTownsProvider },
+	{ kEoB2CompassShapeData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData06FMTownsProvider },
+	{ kEoB2CompassShapeData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData07FMTownsProvider },
+	{ kEoB2CompassShapeData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData08FMTownsProvider },
+	{ kEoB2CompassShapeData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData09FMTownsProvider },
+	{ kEoB2CompassShapeData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData10FMTownsProvider },
+	{ kEoB2CompassShapeData11, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData11FMTownsProvider },
+	{ kEoB2WallOfForceShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData00FMTownsProvider },
+	{ kEoB2WallOfForceShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData01FMTownsProvider },
+	{ kEoB2WallOfForceShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData02FMTownsProvider },
+	{ kEoB2WallOfForceShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData03FMTownsProvider },
+	{ kEoB2WallOfForceShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData04FMTownsProvider },
+	{ kEoB2WallOfForceShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData05FMTownsProvider },
+	{ kEoB2UtilMenuStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2UtilMenuStringsFMTownsProvider },
+	{ kEoB2Config2431Strings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2Config2431StringsFMTownsProvider },
+	{ kEoB2KatakanaLines, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2KatakanaLinesFMTownsProvider },
+	{ kEoB2KanaSelectStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2KanaSelectStringsFMTownsProvider },
+	{ kEoB2FontDmpSearchTbl, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FontDmpSearchTblFMTownsProvider },
+	{ kEoB2Ascii2SjisTables, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2Ascii2SjisTablesFMTownsProvider },
+	{ kEoB2Ascii2SjisTables2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2Ascii2SjisTables2FMTownsProvider },
+	{ kEoB2SaveNamePatterns, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveNamePatternsFMTownsProvider },
+	{ kEoB2PcmSoundEffectsIngame, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2PcmSoundEffectsIngameFMTownsProvider },
+	{ kEoB2PcmSoundEffectsIntro, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2PcmSoundEffectsIntroFMTownsProvider },
+	{ kEoB2PcmSoundEffectsFinale, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2PcmSoundEffectsFinaleFMTownsProvider },
 	{ kLoLIngamePakFiles, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLIngamePakFilesDOSProvider },
 	{ kLoLCharacterDefs, kLoL, kPlatformDOS, kNoSpecial, EN_ANY, &kLoLCharacterDefsDOSEnglishProvider },
 	{ kLoLIngameSfxFiles, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLIngameSfxFilesDOSProvider },
@@ -1764,7 +2281,6 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscX, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscXDOSProvider },
 	{ kLoLBaseDscY, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLBaseDscYDOSProvider },
 	{ kRpgCommonDscTileIndex, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscTileIndexDOSProvider },
-	{ kRpgCommonDscUnk2, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscUnk2DOSProvider },
 	{ kRpgCommonDscDoorShapeIndex, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorShapeIndexDOSProvider },
 	{ kRpgCommonDscDimData1, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDimData1DOSProvider },
 	{ kRpgCommonDscDimData2, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDimData2DOSProvider },
@@ -1775,6 +2291,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscDoorY2, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorY2DOSProvider },
 	{ kRpgCommonDscDoorFrameY1, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY1DOSProvider },
 	{ kRpgCommonDscDoorFrameY2, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY2DOSProvider },
+	{ kRpgCommonDscDoorScaleOffs, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorScaleOffsDOSProvider },
 	{ kLoLDscDoorScale, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorScaleDOSProvider },
 	{ kLoLDscDoor4, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoor4DOSProvider },
 	{ kLoLDscDoorX, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorXDOSProvider },
@@ -1839,7 +2356,6 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscX, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscXPC98Provider },
 	{ kLoLBaseDscY, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLBaseDscYPC98Provider },
 	{ kRpgCommonDscTileIndex, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscTileIndexPC98Provider },
-	{ kRpgCommonDscUnk2, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscUnk2PC98Provider },
 	{ kRpgCommonDscDoorShapeIndex, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorShapeIndexPC98Provider },
 	{ kRpgCommonDscDimData1, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDimData1PC98Provider },
 	{ kRpgCommonDscDimData2, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDimData2PC98Provider },
@@ -1850,6 +2366,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscDoorY2, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorY2PC98Provider },
 	{ kRpgCommonDscDoorFrameY1, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY1PC98Provider },
 	{ kRpgCommonDscDoorFrameY2, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY2PC98Provider },
+	{ kRpgCommonDscDoorScaleOffs, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorScaleOffsPC98Provider },
 	{ kLoLDscDoorScale, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorScalePC98Provider },
 	{ kLoLDscDoor4, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoor4PC98Provider },
 	{ kLoLDscDoorX, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorXPC98Provider },
@@ -1911,7 +2428,6 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscX, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscXFMTownsProvider },
 	{ kLoLBaseDscY, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLBaseDscYFMTownsProvider },
 	{ kRpgCommonDscTileIndex, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscTileIndexFMTownsProvider },
-	{ kRpgCommonDscUnk2, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscUnk2FMTownsProvider },
 	{ kRpgCommonDscDoorShapeIndex, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorShapeIndexFMTownsProvider },
 	{ kRpgCommonDscDimData1, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDimData1FMTownsProvider },
 	{ kRpgCommonDscDimData2, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDimData2FMTownsProvider },
@@ -1922,6 +2438,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscDoorY2, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorY2FMTownsProvider },
 	{ kRpgCommonDscDoorFrameY1, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY1FMTownsProvider },
 	{ kRpgCommonDscDoorFrameY2, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY2FMTownsProvider },
+	{ kRpgCommonDscDoorScaleOffs, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorScaleOffsFMTownsProvider },
 	{ kLoLDscDoorScale, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorScaleFMTownsProvider },
 	{ kLoLDscDoor4, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoor4FMTownsProvider },
 	{ kLoLDscDoorX, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorXFMTownsProvider },
@@ -1989,7 +2506,6 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscX, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscXDOSCDProvider },
 	{ kLoLBaseDscY, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLBaseDscYDOSCDProvider },
 	{ kRpgCommonDscTileIndex, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscTileIndexDOSCDProvider },
-	{ kRpgCommonDscUnk2, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscUnk2DOSCDProvider },
 	{ kRpgCommonDscDoorShapeIndex, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorShapeIndexDOSCDProvider },
 	{ kRpgCommonDscDimData1, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDimData1DOSCDProvider },
 	{ kRpgCommonDscDimData2, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDimData2DOSCDProvider },
@@ -2000,6 +2516,7 @@ static const ResourceProvider resourceProviders[] = {
 	{ kRpgCommonDscDoorY2, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorY2DOSCDProvider },
 	{ kRpgCommonDscDoorFrameY1, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorFrameY1DOSCDProvider },
 	{ kRpgCommonDscDoorFrameY2, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorFrameY2DOSCDProvider },
+	{ kRpgCommonDscDoorScaleOffs, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorScaleOffsDOSCDProvider },
 	{ kLoLDscDoorScale, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorScaleDOSCDProvider },
 	{ kLoLDscDoor4, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoor4DOSCDProvider },
 	{ kLoLDscDoorX, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorXDOSCDProvider },
diff --git a/devtools/create_kyradat/resources/eob1_dos.h b/devtools/create_kyradat/resources/eob1_dos.h
index b2aa884..c278f50 100644
--- a/devtools/create_kyradat/resources/eob1_dos.h
+++ b/devtools/create_kyradat/resources/eob1_dos.h
@@ -1389,14 +1389,6 @@ static const byte kEoB1DscTileIndexDOS[18] = {
 
 static const ByteProvider kEoB1DscTileIndexDOSProvider = { ARRAYSIZE(kEoB1DscTileIndexDOS), kEoB1DscTileIndexDOS };
 
-static const byte kEoB1DscUnk2DOS[23] = {
-	0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0D, 0x0D,
-	0x0D, 0x0D, 0x12, 0x12, 0x12, 0x12, 0x12
-};
-
-static const ByteProvider kEoB1DscUnk2DOSProvider = { ARRAYSIZE(kEoB1DscUnk2DOS), kEoB1DscUnk2DOS };
-
 static const byte kEoB1DscDimData1DOS[324] = {
 	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
 	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
diff --git a/devtools/create_kyradat/resources/eob2_dos.h b/devtools/create_kyradat/resources/eob2_dos.h
index f260913..3a44d78 100644
--- a/devtools/create_kyradat/resources/eob2_dos.h
+++ b/devtools/create_kyradat/resources/eob2_dos.h
@@ -2330,14 +2330,6 @@ static const byte kEoB2DscTileIndexDOS[18] = {
 
 static const ByteProvider kEoB2DscTileIndexDOSProvider = { ARRAYSIZE(kEoB2DscTileIndexDOS), kEoB2DscTileIndexDOS };
 
-static const byte kEoB2DscUnk2DOS[23] = {
-	0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
-	0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0D, 0x0D,
-	0x0D, 0x0D, 0x12, 0x12, 0x12, 0x12, 0x12
-};
-
-static const ByteProvider kEoB2DscUnk2DOSProvider = { ARRAYSIZE(kEoB2DscUnk2DOS), kEoB2DscUnk2DOS };
-
 static const byte kEoB2DscDimData1DOS[324] = {
 	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
 	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
diff --git a/devtools/create_kyradat/resources/eob2_fmtowns.h b/devtools/create_kyradat/resources/eob2_fmtowns.h
new file mode 100644
index 0000000..74af7a3
--- /dev/null
+++ b/devtools/create_kyradat/resources/eob2_fmtowns.h
@@ -0,0 +1,73658 @@
+static const byte kEoB2ChargenStartLevelsFMTowns[60] = {
+	0x07, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01,
+	0x06, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01,
+	0x07, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01,
+	0x06, 0x06, 0x00, 0x02, 0x06, 0x06, 0x00, 0x02,
+	0x06, 0x05, 0x00, 0x02, 0x05, 0x05, 0x06, 0x03,
+	0x06, 0x05, 0x00, 0x02, 0x06, 0x06, 0x00, 0x02,
+	0x05, 0x05, 0x05, 0x03, 0x05, 0x06, 0x00, 0x02,
+	0x06, 0x05, 0x00, 0x02
+};
+
+static const ByteProvider kEoB2ChargenStartLevelsFMTownsProvider = { ARRAYSIZE(kEoB2ChargenStartLevelsFMTowns), kEoB2ChargenStartLevelsFMTowns };
+
+static const byte kEoB2ChargenClassMinStatsFMTowns[90] = {
+	0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00,
+	0x0E, 0x0D, 0x0E, 0x00, 0x0C, 0x00, 0x0D, 0x00,
+	0x09, 0x11, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x09, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00,
+	0x00, 0x00, 0x09, 0x00, 0x00, 0x09, 0x00, 0x00,
+	0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09,
+	0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09,
+	0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00,
+	0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x0D, 0x00,
+	0x0E, 0x0D, 0x0E, 0x00, 0x00, 0x09, 0x09, 0x00,
+	0x00, 0x00
+};
+
+static const ByteProvider kEoB2ChargenClassMinStatsFMTownsProvider = { ARRAYSIZE(kEoB2ChargenClassMinStatsFMTowns), kEoB2ChargenClassMinStatsFMTowns };
+
+static const byte kEoB2ChargenRaceMinStatsFMTowns[36] = {
+	0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x08,
+	0x03, 0x07, 0x06, 0x08, 0x03, 0x04, 0x03, 0x06,
+	0x06, 0x03, 0x08, 0x03, 0x03, 0x03, 0x0C, 0x02,
+	0x06, 0x07, 0x02, 0x03, 0x08, 0x03, 0x07, 0x06,
+	0x03, 0x08, 0x0A, 0x06
+};
+
+static const ByteProvider kEoB2ChargenRaceMinStatsFMTownsProvider = { ARRAYSIZE(kEoB2ChargenRaceMinStatsFMTowns), kEoB2ChargenRaceMinStatsFMTowns };
+
+static const uint16 kEoB2ChargenRaceMaxStatsFMTowns[36] = {
+	0x6412, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x6412, 0x0012,
+	0x0012, 0x0013, 0x0011, 0x0012, 0x6412, 0x0012, 0x0012, 0x0012,
+	0x0012, 0x0012, 0x6412, 0x0012, 0x0012, 0x0011, 0x0013, 0x0010,
+	0x6412, 0x0013, 0x0011, 0x0012, 0x0012, 0x0012, 0x0011, 0x0012,
+	0x0011, 0x0013, 0x0012, 0x0012
+};
+
+static const Uint16Provider kEoB2ChargenRaceMaxStatsFMTownsProvider = { ARRAYSIZE(kEoB2ChargenRaceMaxStatsFMTowns), kEoB2ChargenRaceMaxStatsFMTowns };
+
+static const byte kEoB2SaveThrowTable1FMTowns[50] = {
+	0x10, 0x0E, 0x0D, 0x0B, 0x0A, 0x08, 0x07, 0x05,
+	0x04, 0x03, 0x12, 0x10, 0x0F, 0x0D, 0x0C, 0x0A,
+	0x09, 0x07, 0x06, 0x05, 0x11, 0x0F, 0x0E, 0x0C,
+	0x0B, 0x09, 0x08, 0x06, 0x05, 0x04, 0x14, 0x11,
+	0x10, 0x0D, 0x0C, 0x09, 0x08, 0x05, 0x04, 0x04,
+	0x13, 0x11, 0x10, 0x0E, 0x0D, 0x0B, 0x0A, 0x08,
+	0x07, 0x06
+};
+
+static const ByteProvider kEoB2SaveThrowTable1FMTownsProvider = { ARRAYSIZE(kEoB2SaveThrowTable1FMTowns), kEoB2SaveThrowTable1FMTowns };
+
+static const byte kEoB2SaveThrowTable2FMTowns[25] = {
+	0x0E, 0x0D, 0x0B, 0x0A, 0x08, 0x0B, 0x09, 0x07,
+	0x05, 0x03, 0x0D, 0x0B, 0x09, 0x07, 0x05, 0x0F,
+	0x0D, 0x0B, 0x09, 0x07, 0x0C, 0x0A, 0x08, 0x06,
+	0x04
+};
+
+static const ByteProvider kEoB2SaveThrowTable2FMTownsProvider = { ARRAYSIZE(kEoB2SaveThrowTable2FMTowns), kEoB2SaveThrowTable2FMTowns };
+
+static const byte kEoB2SaveThrowTable3FMTowns[35] = {
+	0x0A, 0x09, 0x07, 0x06, 0x05, 0x04, 0x02, 0x0E,
+	0x0D, 0x0B, 0x0A, 0x09, 0x08, 0x06, 0x0D, 0x0C,
+	0x0A, 0x09, 0x08, 0x07, 0x05, 0x10, 0x0F, 0x0D,
+	0x0C, 0x0B, 0x0A, 0x08, 0x0F, 0x0E, 0x0C, 0x0B,
+	0x0A, 0x09, 0x07
+};
+
+static const ByteProvider kEoB2SaveThrowTable3FMTownsProvider = { ARRAYSIZE(kEoB2SaveThrowTable3FMTowns), kEoB2SaveThrowTable3FMTowns };
+
+static const byte kEoB2SaveThrowTable4FMTowns[30] = {
+	0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x0E, 0x0C,
+	0x0A, 0x08, 0x06, 0x07, 0x0C, 0x0B, 0x0A, 0x09,
+	0x08, 0x04, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B,
+	0x0F, 0x0D, 0x0B, 0x09, 0x07, 0x05
+};
+
+static const ByteProvider kEoB2SaveThrowTable4FMTownsProvider = { ARRAYSIZE(kEoB2SaveThrowTable4FMTowns), kEoB2SaveThrowTable4FMTowns };
+
+static const byte kEoB2SaveThrwLvlIndexFMTowns[6] = {
+	0x11, 0x15, 0x13, 0x15, 0x11, 0x11
+};
+
+static const ByteProvider kEoB2SaveThrwLvlIndexFMTownsProvider = { ARRAYSIZE(kEoB2SaveThrwLvlIndexFMTowns), kEoB2SaveThrwLvlIndexFMTowns };
+
+static const byte kEoB2SaveThrwModDivFMTowns[6] = {
+	0x02, 0x05, 0x03, 0x04, 0x02, 0x02
+};
+
+static const ByteProvider kEoB2SaveThrwModDivFMTownsProvider = { ARRAYSIZE(kEoB2SaveThrwModDivFMTowns), kEoB2SaveThrwModDivFMTowns };
+
+static const byte kEoB2SaveThrwModExtFMTowns[6] = {
+	0x0A, 0x05, 0x07, 0x06, 0x0A, 0x0A
+};
+
+static const ByteProvider kEoB2SaveThrwModExtFMTownsProvider = { ARRAYSIZE(kEoB2SaveThrwModExtFMTowns), kEoB2SaveThrwModExtFMTowns };
+
+static const byte kEoB2SpellLevelsMageFMTowns[32] = {
+	0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02,
+	0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03,
+	0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05,
+	0x05, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x08
+};
+
+static const ByteProvider kEoB2SpellLevelsMageFMTownsProvider = { ARRAYSIZE(kEoB2SpellLevelsMageFMTowns), kEoB2SpellLevelsMageFMTowns };
+
+static const byte kEoB2SpellLevelsClericFMTowns[28] = {
+	0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02,
+	0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04,
+	0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+	0x06, 0x06, 0x08, 0x08
+};
+
+static const ByteProvider kEoB2SpellLevelsClericFMTownsProvider = { ARRAYSIZE(kEoB2SpellLevelsClericFMTowns), kEoB2SpellLevelsClericFMTowns };
+
+static const byte kEoB2NumSpellsClericFMTowns[136] = {
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00,
+	0x04, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00,
+	0x04, 0x04, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00,
+	0x05, 0x04, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00,
+	0x06, 0x05, 0x05, 0x03, 0x02, 0x02, 0x00, 0x00,
+	0x06, 0x06, 0x06, 0x04, 0x02, 0x02, 0x00, 0x00,
+	0x06, 0x06, 0x06, 0x05, 0x03, 0x02, 0x01, 0x00,
+	0x06, 0x06, 0x06, 0x06, 0x04, 0x02, 0x01, 0x00,
+	0x07, 0x07, 0x07, 0x06, 0x04, 0x03, 0x01, 0x00,
+	0x07, 0x07, 0x07, 0x07, 0x05, 0x03, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2NumSpellsClericFMTownsProvider = { ARRAYSIZE(kEoB2NumSpellsClericFMTowns), kEoB2NumSpellsClericFMTowns };
+
+static const byte kEoB2NumSpellsWisAdjFMTowns[64] = {
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2NumSpellsWisAdjFMTownsProvider = { ARRAYSIZE(kEoB2NumSpellsWisAdjFMTowns), kEoB2NumSpellsWisAdjFMTowns };
+
+static const byte kEoB2NumSpellsPalFMTowns[136] = {
+	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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2NumSpellsPalFMTownsProvider = { ARRAYSIZE(kEoB2NumSpellsPalFMTowns), kEoB2NumSpellsPalFMTowns };
+
+static const byte kEoB2NumSpellsMageFMTowns[136] = {
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x04, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
+	0x04, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00,
+	0x04, 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00,
+	0x04, 0x04, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00,
+	0x04, 0x04, 0x04, 0x03, 0x03, 0x00, 0x00, 0x00,
+	0x04, 0x04, 0x04, 0x04, 0x04, 0x01, 0x00, 0x00,
+	0x05, 0x05, 0x05, 0x04, 0x04, 0x02, 0x00, 0x00,
+	0x05, 0x05, 0x05, 0x04, 0x04, 0x02, 0x01, 0x00,
+	0x05, 0x05, 0x05, 0x05, 0x05, 0x02, 0x01, 0x00,
+	0x05, 0x05, 0x05, 0x05, 0x05, 0x03, 0x02, 0x01,
+	0x05, 0x05, 0x05, 0x05, 0x05, 0x03, 0x03, 0x02
+};
+
+static const ByteProvider kEoB2NumSpellsMageFMTownsProvider = { ARRAYSIZE(kEoB2NumSpellsMageFMTowns), kEoB2NumSpellsMageFMTowns };
+
+static const uint32 kEoB2ExperienceTable0FMTowns[14] = {
+	0x00000000, 0x000007D0, 0x00000FA0, 0x00001F40, 0x00003E80, 0x00007D00, 0x0000FA00, 0x0001E848,
+	0x0003D090, 0x0007A120, 0x000B71B0, 0x000F4240, 0x001312D0, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable0FMTownsProvider = { ARRAYSIZE(kEoB2ExperienceTable0FMTowns), kEoB2ExperienceTable0FMTowns };
+
+static const uint32 kEoB2ExperienceTable1FMTowns[14] = {
+	0x00000000, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x0000EA60, 0x00015F90,
+	0x00020F58, 0x0003D090, 0x0005B8D8, 0x000B71B0, 0x00112A88, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable1FMTownsProvider = { ARRAYSIZE(kEoB2ExperienceTable1FMTowns), kEoB2ExperienceTable1FMTowns };
+
+static const uint32 kEoB2ExperienceTable2FMTowns[14] = {
+	0x00000000, 0x000005DC, 0x00000BB8, 0x00001770, 0x000032C8, 0x00006B6C, 0x0000D6D8, 0x0001ADB0,
+	0x00036EE8, 0x0006DDD0, 0x000A4CB8, 0x000DBBA0, 0x00112A88, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable2FMTownsProvider = { ARRAYSIZE(kEoB2ExperienceTable2FMTowns), kEoB2ExperienceTable2FMTowns };
+
+static const uint32 kEoB2ExperienceTable3FMTowns[14] = {
+	0x00000000, 0x000004E2, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x00011170,
+	0x0001ADB0, 0x00027100, 0x00035B60, 0x0006B6C0, 0x000A1220, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable3FMTownsProvider = { ARRAYSIZE(kEoB2ExperienceTable3FMTowns), kEoB2ExperienceTable3FMTowns };
+
+static const uint32 kEoB2ExperienceTable4FMTowns[14] = {
+	0x00000000, 0x000008CA, 0x00001194, 0x00002328, 0x00004650, 0x00008CA0, 0x000124F8, 0x000249F0,
+	0x000493E0, 0x000927C0, 0x000DBBA0, 0x00124F80, 0x0016E360, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable4FMTownsProvider = { ARRAYSIZE(kEoB2ExperienceTable4FMTowns), kEoB2ExperienceTable4FMTowns };
+
+static const byte kEoB2ExpObjectTlModeFMTowns[18] = {
+	0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00,
+	0x01, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00,
+	0x02, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTlModeFMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectTlModeFMTowns), kEoB2ExpObjectTlModeFMTowns };
+
+static const byte kEoB2ExpObjectTblIndexFMTowns[14] = {
+	0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTblIndexFMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectTblIndexFMTowns), kEoB2ExpObjectTblIndexFMTowns };
+
+static const byte kEoB2ExpObjectShpStartFMTowns[4] = {
+	0x07, 0x0C, 0x0F, 0x12
+};
+
+static const ByteProvider kEoB2ExpObjectShpStartFMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectShpStartFMTowns), kEoB2ExpObjectShpStartFMTowns };
+
+static const byte kEoB2ExpObjectTbl1FMTowns[13] = {
+	0x0F, 0x05, 0x0F, 0x05, 0x06, 0x05, 0x06, 0x08,
+	0x06, 0x08, 0x06, 0x08, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTbl1FMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectTbl1FMTowns), kEoB2ExpObjectTbl1FMTowns };
+
+static const byte kEoB2ExpObjectTbl2FMTowns[10] = {
+	0x0F, 0x09, 0x0F, 0x09, 0x02, 0x0A, 0x0B, 0x0A,
+	0x0B, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTbl2FMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectTbl2FMTowns), kEoB2ExpObjectTbl2FMTowns };
+
+static const byte kEoB2ExpObjectTbl3FMTowns[11] = {
+	0x05, 0x03, 0x05, 0x03, 0x03, 0x03, 0x03, 0x0B,
+	0x03, 0x0B, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTbl3FMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectTbl3FMTowns), kEoB2ExpObjectTbl3FMTowns };
+
+static const byte kEoB2ExpObjectYFMTowns[4] = {
+	0x77, 0x67, 0x4F, 0x3F
+};
+
+static const ByteProvider kEoB2ExpObjectYFMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectYFMTowns), kEoB2ExpObjectYFMTowns };
+
+static const byte kEoB2SparkDefStepsFMTowns[8] = {
+	0x40, 0x90, 0xE4, 0xB9, 0x6E, 0x1B, 0x06, 0x01
+};
+
+static const ByteProvider kEoB2SparkDefStepsFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefStepsFMTowns), kEoB2SparkDefStepsFMTowns };
+
+static const byte kEoB2SparkDefSubStepsFMTowns[4] = {
+	0xC0, 0x30, 0x0C, 0x03
+};
+
+static const ByteProvider kEoB2SparkDefSubStepsFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefSubStepsFMTowns), kEoB2SparkDefSubStepsFMTowns };
+
+static const byte kEoB2SparkDefShiftFMTowns[4] = {
+	0x06, 0x04, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2SparkDefShiftFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefShiftFMTowns), kEoB2SparkDefShiftFMTowns };
+
+static const byte kEoB2SparkDefAddFMTowns[8] = {
+	0x08, 0x06, 0x1C, 0x14, 0x0D, 0x18, 0x0D, 0x0F
+};
+
+static const ByteProvider kEoB2SparkDefAddFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefAddFMTowns), kEoB2SparkDefAddFMTowns };
+
+static const byte kEoB2SparkDefXFMTowns[6] = {
+	0x17, 0x20, 0x17, 0x20, 0x17, 0x20
+};
+
+static const ByteProvider kEoB2SparkDefXFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefXFMTowns), kEoB2SparkDefXFMTowns };
+
+static const byte kEoB2SparkDefYFMTowns[6] = {
+	0x02, 0x02, 0x34, 0x34, 0x66, 0x66
+};
+
+static const ByteProvider kEoB2SparkDefYFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefYFMTowns), kEoB2SparkDefYFMTowns };
+
+static const uint32 kEoB2SparkOfFlags1FMTowns[11] = {
+	0x40000000, 0x95000000, 0xEA550000, 0xBFAA5400, 0x6AFFA954, 0x15AAFEA9, 0x0055ABFE, 0x000056AB,
+	0x00000156, 0x00000001, 0x00000000
+};
+
+static const Uint32Provider kEoB2SparkOfFlags1FMTownsProvider = { ARRAYSIZE(kEoB2SparkOfFlags1FMTowns), kEoB2SparkOfFlags1FMTowns };
+
+static const uint32 kEoB2SparkOfFlags2FMTowns[16] = {
+	0xC0000000, 0x30000000, 0x0C000000, 0x03000000, 0x00C00000, 0x00300000, 0x000C0000, 0x00030000,
+	0x0000C000, 0x00003000, 0x00000C00, 0x00000300, 0x000000C0, 0x00000030, 0x0000000C, 0x00000003
+};
+
+static const Uint32Provider kEoB2SparkOfFlags2FMTownsProvider = { ARRAYSIZE(kEoB2SparkOfFlags2FMTowns), kEoB2SparkOfFlags2FMTowns };
+
+static const byte kEoB2SparkOfShiftFMTowns[16] = {
+	0x1E, 0x1C, 0x1A, 0x18, 0x16, 0x14, 0x12, 0x10,
+	0x0E, 0x0C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2SparkOfShiftFMTownsProvider = { ARRAYSIZE(kEoB2SparkOfShiftFMTowns), kEoB2SparkOfShiftFMTowns };
+
+static const byte kEoB2SparkOfXFMTowns[16] = {
+	0x50, 0x70, 0x30, 0x68, 0x20, 0x60, 0x38, 0x78,
+	0x80, 0x48, 0x58, 0x28, 0x60, 0x40, 0x70, 0x48
+};
+
+static const ByteProvider kEoB2SparkOfXFMTownsProvider = { ARRAYSIZE(kEoB2SparkOfXFMTowns), kEoB2SparkOfXFMTowns };
+
+static const byte kEoB2SparkOfYFMTowns[16] = {
+	0x31, 0x2B, 0x48, 0x17, 0x16, 0x48, 0x35, 0x1B,
+	0x43, 0x2E, 0x24, 0x28, 0x38, 0x1C, 0x16, 0x44
+};
+
+static const ByteProvider kEoB2SparkOfYFMTownsProvider = { ARRAYSIZE(kEoB2SparkOfYFMTowns), kEoB2SparkOfYFMTowns };
+
+static const byte kEoB2SpellPropertiesFMTowns[1750] = {
+	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, 0x6C, 0x6F, 0x0E, 0x00, 0x4C, 0x2C, 0x0D,
+	0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x5C, 0x01, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x78, 0x6F, 0x0E, 0x00, 0xB8, 0x2C,
+	0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00,
+	0x00, 0x21, 0x00, 0x94, 0x6F, 0x0E, 0x00, 0xB0,
+	0x2D, 0x0D, 0x00, 0x4C, 0x00, 0x3C, 0x3B, 0x0F,
+	0x00, 0xCC, 0x2D, 0x0D, 0x00, 0x5F, 0x02, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0xB0, 0x6F, 0x0E, 0x00,
+	0xE8, 0x2D, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00,
+	0x00, 0x00, 0x10, 0x2E, 0x0D, 0x00, 0x55, 0x00,
+	0x00, 0x00, 0x00, 0x01, 0x00, 0xCC, 0x6F, 0x0E,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x44,
+	0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C,
+	0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x6F,
+	0x0E, 0x00, 0x40, 0x2E, 0x0D, 0x00, 0x88, 0x04,
+	0x4C, 0x3B, 0x0F, 0x00, 0x00, 0x2F, 0x0D, 0x00,
+	0x58, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFC,
+	0x6F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89,
+	0x00, 0x54, 0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x4B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x08, 0x70, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x4C, 0x00, 0x64, 0x3B, 0x0F, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x5F, 0x20, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x30, 0x70, 0x0E, 0x00, 0x00, 0x2C, 0x0D,
+	0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x14, 0x40, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x54, 0x70, 0x0E, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x5E, 0x40, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x70, 0x70, 0x0E, 0x00, 0x5C,
+	0x2F, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+	0x00, 0x84, 0x2F, 0x0D, 0x00, 0x60, 0x00, 0x00,
+	0x00, 0x00, 0x11, 0x00, 0x94, 0x70, 0x0E, 0x00,
+	0xC8, 0x2B, 0x0D, 0x00, 0x00, 0x10, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x70, 0x0E,
+	0x00, 0xB4, 0x2F, 0x0D, 0x00, 0x00, 0x01, 0x00,
+	0x00, 0x00, 0x00, 0xDC, 0x2F, 0x0D, 0x00, 0x63,
+	0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0xC4, 0x70,
+	0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02,
+	0x5C, 0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x64, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD0,
+	0x70, 0x0E, 0x00, 0x04, 0x30, 0x0D, 0x00, 0x00,
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x30, 0x0D,
+	0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0xE8, 0x70, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x5E, 0x40, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x1C, 0x71, 0x0E, 0x00, 0x30, 0x31, 0x0D,
+	0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x58,
+	0x31, 0x0D, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00,
+	0x03, 0x00, 0x3C, 0x71, 0x0E, 0x00, 0x80, 0x31,
+	0x0D, 0x00, 0x88, 0x04, 0x6C, 0x3B, 0x0F, 0x00,
+	0x44, 0x32, 0x0D, 0x00, 0x66, 0x00, 0x00, 0x00,
+	0x00, 0x01, 0x00, 0x5C, 0x71, 0x0E, 0x00, 0x64,
+	0x32, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x68, 0x71, 0x0E, 0x00,
+	0xC8, 0x32, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00,
+	0x00, 0x00, 0xF0, 0x32, 0x0D, 0x00, 0x59, 0x00,
+	0x00, 0x00, 0x00, 0x41, 0x00, 0x7C, 0x71, 0x0E,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0x74,
+	0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x71,
+	0x0E, 0x00, 0x80, 0x33, 0x0D, 0x00, 0x20, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4,
+	0x71, 0x0E, 0x00, 0xF8, 0x33, 0x0D, 0x00, 0x00,
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00,
+	0xE0, 0x71, 0x0E, 0x00, 0xEC, 0x34, 0x0D, 0x00,
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x14, 0x35,
+	0x0D, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0xFC, 0x71, 0x0E, 0x00, 0x54, 0x36, 0x0D,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x18, 0x72, 0x0E, 0x00, 0xA0, 0x37,
+	0x0D, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+	0x00, 0x01, 0x00, 0x34, 0x72, 0x0E, 0x00, 0x04,
+	0x38, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00,
+	0x00, 0x00, 0x01, 0x00, 0x54, 0x72, 0x0E, 0x00,
+	0x74, 0x38, 0x0D, 0x00, 0x20, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x72, 0x0E,
+	0x00, 0x94, 0x38, 0x0D, 0x00, 0x4C, 0x00, 0x7C,
+	0x3B, 0x0F, 0x00, 0xA8, 0x38, 0x0D, 0x00, 0x49,
+	0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x72,
+	0x0E, 0x00, 0xBC, 0x38, 0x0D, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xAC,
+	0x72, 0x0E, 0x00, 0x20, 0x39, 0x0D, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0xCC, 0x72, 0x0E, 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,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0xF8, 0x72, 0x0E, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x5C, 0x00, 0x84, 0x3B, 0x0F, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x04, 0x00,
+	0x00, 0x00, 0x00, 0x04, 0x73, 0x0E, 0x00, 0x68,
+	0x39, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00,
+	0x00, 0x00, 0x01, 0x00, 0x2C, 0x73, 0x0E, 0x00,
+	0x78, 0x39, 0x0D, 0x00, 0x20, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x73, 0x0E,
+	0x00, 0xB0, 0x2D, 0x0D, 0x00, 0x4C, 0x00, 0x3C,
+	0x3B, 0x0F, 0x00, 0xCC, 0x2D, 0x0D, 0x00, 0x5F,
+	0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x73,
+	0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00,
+	0x8C, 0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x6E, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x98,
+	0x73, 0x0E, 0x00, 0x9C, 0x39, 0x0D, 0x00, 0x39,
+	0x00, 0x94, 0x3B, 0x0F, 0x00, 0x68, 0x3A, 0x0D,
+	0x00, 0x5B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0xA0, 0x73, 0x0E, 0x00, 0x8C, 0x3A, 0x0D, 0x00,
+	0x08, 0x24, 0x9C, 0x3B, 0x0F, 0x00, 0x00, 0x2F,
+	0x0D, 0x00, 0x63, 0x00, 0x00, 0x00, 0x00, 0x21,
+	0x00, 0xB8, 0x73, 0x0E, 0x00, 0x04, 0x30, 0x0D,
+	0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x2C,
+	0x30, 0x0D, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0xD0, 0x73, 0x0E, 0x00, 0x3C, 0x3B,
+	0x0D, 0x00, 0x28, 0x00, 0xA4, 0x3B, 0x0F, 0x00,
+	0xA0, 0x3B, 0x0D, 0x00, 0x6F, 0x00, 0x20, 0x00,
+	0x00, 0x00, 0x00, 0xE8, 0x73, 0x0E, 0x00, 0xB0,
+	0x3B, 0x0D, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x0E, 0x00,
+	0xC8, 0x2B, 0x0D, 0x00, 0x00, 0x10, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x74, 0x0E,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0xAC,
+	0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71,
+	0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x74,
+	0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x00,
+	0xB4, 0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x5B, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x50,
+	0x74, 0x0E, 0x00, 0xF4, 0x3B, 0x0D, 0x00, 0x40,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x74, 0x74, 0x0E, 0x00, 0x6C, 0x3C, 0x0D, 0x00,
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x01,
+	0x00, 0xA0, 0x74, 0x0E, 0x00, 0x48, 0x3C, 0x0D,
+	0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0xC8, 0x74, 0x0E, 0x00, 0x7C, 0x3C,
+	0x0D, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0xEC, 0x74, 0x0E, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x48, 0x02, 0x8C, 0x3B, 0x0F,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x08,
+	0x00, 0x00, 0x00, 0x00, 0x30, 0x75, 0x0E, 0x00,
+	0xA4, 0x3C, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x00,
+	0x00, 0x00, 0x00, 0x01, 0x00, 0x5C, 0x75, 0x0E,
+	0x00, 0xB4, 0x3C, 0x0D, 0x00, 0x20, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x75,
+	0x0E, 0x00, 0xD8, 0x3C, 0x0D, 0x00, 0x00, 0x01,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x0D, 0x00,
+	0x62, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0xA4,
+	0x75, 0x0E, 0x00, 0x18, 0x3D, 0x0D, 0x00, 0x20,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0xBC, 0x75, 0x0E, 0x00, 0xBC, 0x38, 0x0D, 0x00,
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x01,
+	0x00, 0xD4, 0x75, 0x0E, 0x00, 0x94, 0x38, 0x0D,
+	0x00, 0x4C, 0x00, 0x7C, 0x3B, 0x0F, 0x00, 0xA8,
+	0x38, 0x0D, 0x00, 0x49, 0x00, 0x02, 0x00, 0x00,
+	0x00, 0x00, 0xEC, 0x75, 0x0E, 0x00, 0x50, 0x3D,
+	0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00,
+	0x00, 0x01, 0x00, 0xF8, 0x75, 0x0E, 0x00, 0x60,
+	0x3D, 0x0D, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x04, 0x76, 0x0E, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x0E,
+	0x00, 0xD4, 0x40, 0x0D, 0x00, 0x20, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x76,
+	0x0E, 0x00, 0xB4, 0x3D, 0x0D, 0x00, 0x00, 0x10,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53,
+	0x76, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x41, 0x0D,
+	0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x54, 0x76, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x4C, 0x00, 0xBC, 0x3B, 0x0F, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x5B, 0x00, 0x00, 0x02, 0x00, 0x00,
+	0x00, 0x71, 0x76, 0x0E, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C,
+	0x41, 0x0D, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x72, 0x76, 0x0E, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x58, 0x3F, 0x0D, 0x00, 0x65, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x73, 0x76, 0x0E, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0xD0, 0x3E, 0x0D, 0x00, 0x65, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x74, 0x76, 0x0E, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0xF4, 0x3F, 0x0D, 0x00, 0x65, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x76, 0x0E,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x64, 0x40, 0x0D, 0x00, 0x65,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2SpellPropertiesFMTownsProvider = { ARRAYSIZE(kEoB2SpellPropertiesFMTowns), kEoB2SpellPropertiesFMTowns };
+
+static const byte kEoB2MagicFlightPropsFMTowns[56] = {
+	0x04, 0xFF, 0x41, 0x0C, 0x0B, 0xFF, 0x04, 0x06,
+	0x0D, 0xFF, 0x7A, 0x09, 0x0F, 0xFF, 0x4A, 0x08,
+	0x11, 0x06, 0x38, 0x0A, 0x14, 0x06, 0x7A, 0x0B,
+	0x18, 0xFF, 0x4A, 0x08, 0x36, 0xFF, 0x4B, 0x09,
+	0x3F, 0xFF, 0x4B, 0x09, 0x41, 0x06, 0x4B, 0x09,
+	0x42, 0x06, 0x4B, 0x08, 0x43, 0x06, 0x4B, 0x08,
+	0x44, 0x06, 0x4B, 0x08, 0x45, 0x06, 0x4B, 0x08
+};
+
+static const ByteProvider kEoB2MagicFlightPropsFMTownsProvider = { ARRAYSIZE(kEoB2MagicFlightPropsFMTowns), kEoB2MagicFlightPropsFMTowns };
+
+static const byte kEoB2TurnUndeadEffectFMTowns[140] = {
+	0x0A, 0x07, 0x04, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0D, 0x0A,
+	0x07, 0x04, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+	0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x0D, 0x0A, 0x07,
+	0x04, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+	0xFF, 0xFF, 0x13, 0x10, 0x0D, 0x0A, 0x07, 0x04,
+	0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+	0x14, 0x13, 0x10, 0x0D, 0x0A, 0x07, 0x04, 0x00,
+	0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x63, 0x14,
+	0x13, 0x10, 0x0D, 0x0A, 0x07, 0x04, 0x00, 0x00,
+	0x00, 0xFF, 0xFF, 0x00, 0x63, 0x63, 0x14, 0x13,
+	0x10, 0x0D, 0x0A, 0x07, 0x04, 0x00, 0x00, 0x00,
+	0x00, 0xFF, 0x63, 0x63, 0x63, 0x14, 0x13, 0x10,
+	0x0D, 0x0A, 0x07, 0x04, 0x04, 0x00, 0x00, 0x00,
+	0x63, 0x63, 0x63, 0x63, 0x14, 0x13, 0x10, 0x0D,
+	0x0A, 0x07, 0x07, 0x04, 0x04, 0x00, 0x63, 0x63,
+	0x63, 0x63, 0x63, 0x14, 0x13, 0x10, 0x0D, 0x0A,
+	0x0A, 0x07, 0x07, 0x04
+};
+
+static const ByteProvider kEoB2TurnUndeadEffectFMTownsProvider = { ARRAYSIZE(kEoB2TurnUndeadEffectFMTowns), kEoB2TurnUndeadEffectFMTowns };
+
+static const byte kEoB2BurningHandsDestFMTowns[32] = {
+	0x02, 0x03, 0x04, 0x01, 0x02, 0x05, 0x00, 0x00,
+	0x00, 0x02, 0x04, 0x01, 0x03, 0x05, 0x00, 0x00,
+	0x00, 0x01, 0x04, 0x02, 0x03, 0x05, 0x00, 0x00,
+	0x01, 0x03, 0x04, 0x00, 0x02, 0x05, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2BurningHandsDestFMTownsProvider = { ARRAYSIZE(kEoB2BurningHandsDestFMTowns), kEoB2BurningHandsDestFMTowns };
+
+static const byte kEoB2ConeOfColdDest1FMTowns[7] = {
+	0xE0, 0xC0, 0xC1, 0xBF, 0xA0, 0x9F, 0xA1
+};
+
+static const ByteProvider kEoB2ConeOfColdDest1FMTownsProvider = { ARRAYSIZE(kEoB2ConeOfColdDest1FMTowns), kEoB2ConeOfColdDest1FMTowns };
+
+static const byte kEoB2ConeOfColdDest2FMTowns[7] = {
+	0x01, 0x02, 0xE2, 0x22, 0x03, 0xE3, 0x23
+};
+
+static const ByteProvider kEoB2ConeOfColdDest2FMTownsProvider = { ARRAYSIZE(kEoB2ConeOfColdDest2FMTowns), kEoB2ConeOfColdDest2FMTowns };
+
+static const byte kEoB2ConeOfColdDest3FMTowns[7] = {
+	0x20, 0x40, 0x3F, 0x41, 0x60, 0x5F, 0x61
+};
+
+static const ByteProvider kEoB2ConeOfColdDest3FMTownsProvider = { ARRAYSIZE(kEoB2ConeOfColdDest3FMTowns), kEoB2ConeOfColdDest3FMTowns };
+
+static const byte kEoB2ConeOfColdDest4FMTowns[7] = {
+	0xFF, 0xFE, 0x1E, 0xDE, 0xFD, 0x1D, 0xDD
+};
+
+static const ByteProvider kEoB2ConeOfColdDest4FMTownsProvider = { ARRAYSIZE(kEoB2ConeOfColdDest4FMTowns), kEoB2ConeOfColdDest4FMTowns };
+
+static const byte kEoB2ConeOfColdGfxTblFMTowns[8] = {
+	0x0F, 0x09, 0x0F, 0x09, 0x02, 0x0A, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2ConeOfColdGfxTblFMTownsProvider = { ARRAYSIZE(kEoB2ConeOfColdGfxTblFMTowns), kEoB2ConeOfColdGfxTblFMTowns };
+
+static const byte kEoB2DscDoorShapeIndexFMTowns[53] = {
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
+	0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 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, 0x01
+};
+
+static const ByteProvider kEoB2DscDoorShapeIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscDoorShapeIndexFMTowns), kEoB2DscDoorShapeIndexFMTowns };
+
+static const byte kEoB2WllFlagPresetFMTowns[25] = {
+	0x07, 0x00, 0x40, 0xA8, 0x88, 0x88, 0x88, 0x9F,
+	0xA8, 0x88, 0x88, 0x88, 0x9F, 0xA8, 0x88, 0x88,
+	0x88, 0x9F, 0xA8, 0x88, 0x88, 0x88, 0x9F, 0x03,
+	0x03
+};
+
+static const ByteProvider kEoB2WllFlagPresetFMTownsProvider = { ARRAYSIZE(kEoB2WllFlagPresetFMTowns), kEoB2WllFlagPresetFMTowns };
+
+static const uint16 kEoB2DscShapeCoordsFMTowns[180] = {
+	0xFF91, 0xFFC1, 0xFFA1, 0xFFC1, 0xFF75, 0xFFC5, 0xFF8B, 0xFFC5,
+	0xFF88, 0xFFC3, 0xFFB4, 0xFFC1, 0xFFC4, 0xFFC1, 0xFFA1, 0xFFC5,
+	0xFFB6, 0xFFC5, 0xFFB0, 0xFFC3, 0xFFD5, 0xFFC1, 0xFFE5, 0xFFC1,
+	0xFFCB, 0xFFC5, 0xFFE1, 0xFFC5, 0xFFD8, 0xFFC3, 0xFFF8, 0xFFC1,
+	0x0008, 0xFFC1, 0xFFF6, 0xFFC5, 0x000A, 0xFFC5, 0x0000, 0xFFC3,
+	0x001B, 0xFFC1, 0x002B, 0xFFC1, 0x001F, 0xFFC5, 0x0035, 0xFFC5,
+	0x0028, 0xFFC3, 0x003C, 0xFFC1, 0x004C, 0xFFC1, 0x004A, 0xFFC5,
+	0x005F, 0xFFC5, 0x0050, 0xFFC3, 0x005F, 0xFFC1, 0x006F, 0xFFC1,
+	0x0075, 0xFFC5, 0x008B, 0xFFC5, 0x0078, 0xFFC3, 0xFF8A, 0xFFCB,
+	0xFFA4, 0xFFCB, 0xFF68, 0xFFD3, 0xFF88, 0xFFD3, 0xFF8A, 0xFFCE,
+	0xFFBE, 0xFFCB, 0xFFD8, 0xFFCB, 0xFFAC, 0xFFD3, 0xFFCD, 0xFFD3,
+	0xFFC5, 0xFFCE, 0xFFF3, 0xFFCB, 0x000D, 0xFFCB, 0xFFF0, 0xFFD3,
+	0x0010, 0xFFD3, 0x0000, 0xFFCE, 0x0028, 0xFFCB, 0x0042, 0xFFCB,
+	0x0033, 0xFFD3, 0x0054, 0xFFD3, 0x003B, 0xFFCE, 0x005C, 0xFFCB,
+	0x0076, 0xFFCB, 0x0078, 0xFFD3, 0x0098, 0xFFD3, 0x0076, 0xFFCE,
+	0xFF92, 0xFFDD, 0xFFBD, 0xFFDD, 0xFF74, 0xFFEA, 0xFFAD, 0xFFEA,
+	0xFF9E, 0xFFE2, 0xFFEA, 0xFFDD, 0x0016, 0xFFDD, 0xFFE5, 0xFFEA,
+	0x001B, 0xFFEA, 0x0000, 0xFFE2, 0x0043, 0xFFDD, 0x006E, 0xFFDD,
+	0x0053, 0xFFEA, 0x008C, 0xFFEA, 0x0062, 0xFFE2, 0xFF80, 0xFFFC,
+	0x0080, 0xFFFC, 0xFF80, 0xFFBE, 0x0080, 0xFFBE, 0x0080, 0x0000,
+	0xFFDA, 0xFFFC, 0x0026, 0xFFFC, 0xFFDA, 0xFFBE, 0x0026, 0xFFBE,
+	0x0000, 0x0000, 0xFF80, 0xFFFC, 0x0080, 0xFFFC, 0xFF80, 0xFFBE,
+	0x0080, 0xFFBE, 0x0080, 0x0000
+};
+
+static const Uint16Provider kEoB2DscShapeCoordsFMTownsProvider = { ARRAYSIZE(kEoB2DscShapeCoordsFMTowns), kEoB2DscShapeCoordsFMTowns };
+
+static const byte kEoB2DscDoorScaleOffsFMTowns[53] = {
+	0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
+	0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0D, 0x0D,
+	0x0D, 0x0D, 0x12, 0x12, 0x12, 0x12, 0x12, 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, 0x33, 0x34
+};
+
+static const ByteProvider kEoB2DscDoorScaleOffsFMTownsProvider = { ARRAYSIZE(kEoB2DscDoorScaleOffsFMTowns), kEoB2DscDoorScaleOffsFMTowns };
+
+static const byte kEoB2DscDoorScaleMult1FMTowns[4] = {
+	0x08, 0x0C, 0x12, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorScaleMult1FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult1FMTowns), kEoB2DscDoorScaleMult1FMTowns };
+
+static const byte kEoB2DscDoorScaleMult2FMTowns[4] = {
+	0x00, 0x02, 0x04, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorScaleMult2FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult2FMTowns), kEoB2DscDoorScaleMult2FMTowns };
+
+static const byte kEoB2DscDoorScaleMult3FMTowns[4] = {
+	0x05, 0x08, 0x0C, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorScaleMult3FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult3FMTowns), kEoB2DscDoorScaleMult3FMTowns };
+
+static const byte kEoB2DscDoorType5OffsFMTowns[6] = {
+	0x05, 0x03, 0x01, 0x05, 0x03, 0x01
+};
+
+static const ByteProvider kEoB2DscDoorType5OffsFMTownsProvider = { ARRAYSIZE(kEoB2DscDoorType5OffsFMTowns), kEoB2DscDoorType5OffsFMTowns };
+
+static const byte kEoB2DscDoorY1FMTowns[4] = {
+	0x3B, 0x47, 0x56, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorY1FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorY1FMTowns), kEoB2DscDoorY1FMTowns };
+
+static const byte kEoB2DscDoorY2FMTowns[4] = {
+	0x1F, 0x18, 0x0F, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorY2FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorY2FMTowns), kEoB2DscDoorY2FMTowns };
+
+static const byte kEoB2DscDoorFrameY1FMTowns[4] = {
+	0x1E, 0x18, 0x10, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorFrameY1FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorFrameY1FMTowns), kEoB2DscDoorFrameY1FMTowns };
+
+static const byte kEoB2DscDoorFrameY2FMTowns[4] = {
+	0x3B, 0x47, 0x56, 0x78
+};
+
+static const ByteProvider kEoB2DscDoorFrameY2FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorFrameY2FMTowns), kEoB2DscDoorFrameY2FMTowns };
+
+static const byte kEoB2DscItemPosIndexFMTowns[16] = {
+	0x00, 0x01, 0x02, 0x03, 0x02, 0x00, 0x03, 0x01,
+	0x03, 0x02, 0x01, 0x00, 0x01, 0x03, 0x00, 0x02
+};
+
+static const ByteProvider kEoB2DscItemPosIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscItemPosIndexFMTowns), kEoB2DscItemPosIndexFMTowns };
+
+static const uint16 kEoB2DscItemShpXFMTowns[18] = {
+	0xFFC8, 0xFFF8, 0x0028, 0x0058, 0x0088, 0x00B8, 0x00E8, 0xFFB8,
+	0x0008, 0x0058, 0x00A8, 0x00F8, 0xFFD8, 0x0058, 0x00D8, 0xFFA8,
+	0x0058, 0x0108
+};
+
+static const Uint16Provider kEoB2DscItemShpXFMTownsProvider = { ARRAYSIZE(kEoB2DscItemShpXFMTowns), kEoB2DscItemShpXFMTowns };
+
+static const byte kEoB2DscItemScaleIndexFMTowns[16] = {
+	0xFF, 0xFF, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02,
+	0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0xFF, 0xFF
+};
+
+static const ByteProvider kEoB2DscItemScaleIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscItemScaleIndexFMTowns), kEoB2DscItemScaleIndexFMTowns };
+
+static const byte kEoB2DscItemTileIndexFMTowns[18] = {
+	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+	0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x09, 0xFF, 0x0B,
+	0x0C, 0x0D
+};
+
+static const ByteProvider kEoB2DscItemTileIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscItemTileIndexFMTowns), kEoB2DscItemTileIndexFMTowns };
+
+static const byte kEoB2DscItemShapeMapFMTowns[113] = {
+	0x00, 0x00, 0x00, 0x05, 0x01, 0x02, 0x03, 0x04,
+	0x03, 0x05, 0x06, 0x06, 0x12, 0x05, 0x0F, 0x12,
+	0x14, 0x08, 0x13, 0x11, 0x15, 0x18, 0x07, 0x07,
+	0x07, 0x1F, 0x09, 0x23, 0x09, 0x09, 0x09, 0x09,
+	0x08, 0x1C, 0x1C, 0x1A, 0x1B, 0x21, 0x1D, 0x1D,
+	0x22, 0x22, 0x22, 0x00, 0x16, 0x00, 0x00, 0x17,
+	0x17, 0x17, 0x17, 0x17, 0x22, 0x21, 0x19, 0x23,
+	0x10, 0x1E, 0x17, 0x25, 0x17, 0x26, 0x12, 0x21,
+	0x17, 0x23, 0x1C, 0x00, 0x20, 0x25, 0x12, 0x18,
+	0x1F, 0x07, 0x07, 0x15, 0x15, 0x0F, 0x03, 0x09,
+	0x1E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B,
+	0x1B, 0x17, 0x17, 0x16, 0x16, 0x21, 0x08, 0x25,
+	0x25, 0x25, 0x25, 0x28, 0x03, 0x04, 0x21, 0x00,
+	0x17, 0x00, 0x20, 0x24, 0x27, 0x27, 0x1C, 0x27,
+	0x00
+};
+
+static const ByteProvider kEoB2DscItemShapeMapFMTownsProvider = { ARRAYSIZE(kEoB2DscItemShapeMapFMTowns), kEoB2DscItemShapeMapFMTowns };
+
+static const byte kEoB2DscTelptrShpCoordsFMTowns[156] = {
+	0x0C, 0x07, 0x1A, 0x01, 0x3E, 0x03, 0x0C, 0x1A,
+	0x2A, 0x13, 0x40, 0x18, 0x02, 0x2D, 0x16, 0x25,
+	0x28, 0x32, 0x36, 0x27, 0x0A, 0x3E, 0x16, 0x49,
+	0x3E, 0x44, 0x06, 0x06, 0x2A, 0x04, 0x37, 0x0A,
+	0x04, 0x1B, 0x1A, 0x16, 0x37, 0x1D, 0x0E, 0x2A,
+	0x1B, 0x35, 0x2E, 0x28, 0x42, 0x30, 0x06, 0x47,
+	0x06, 0x47, 0x2D, 0x4C, 0x0A, 0x04, 0x14, 0x00,
+	0x2E, 0x01, 0x0C, 0x10, 0x1F, 0x10, 0x2F, 0x10,
+	0x12, 0x18, 0x28, 0x1D, 0x01, 0x21, 0x08, 0x2A,
+	0x11, 0x32, 0x2F, 0x2E, 0x1F, 0x25, 0x02, 0x02,
+	0x01, 0x11, 0x01, 0x2F, 0x08, 0x1E, 0x11, 0x0E,
+	0x11, 0x26, 0x1C, 0x01, 0x1E, 0x19, 0x1F, 0x33,
+	0x24, 0x11, 0x26, 0x05, 0x28, 0x2B, 0x2F, 0x22,
+	0x00, 0x13, 0x05, 0x01, 0x06, 0x08, 0x09, 0x0C,
+	0x04, 0x1A, 0x08, 0x1F, 0x12, 0x05, 0x12, 0x15,
+	0x16, 0x10, 0x1A, 0x08, 0x1A, 0x1D, 0x0A, 0x00,
+	0x0A, 0x00, 0x00, 0x09, 0x00, 0x1E, 0x04, 0x11,
+	0x08, 0x16, 0x08, 0x06, 0x10, 0x00, 0x11, 0x0D,
+	0x12, 0x20, 0x15, 0x02, 0x14, 0x09, 0x16, 0x1B,
+	0x1A, 0x14, 0x1A, 0x14
+};
+
+static const ByteProvider kEoB2DscTelptrShpCoordsFMTownsProvider = { ARRAYSIZE(kEoB2DscTelptrShpCoordsFMTowns), kEoB2DscTelptrShpCoordsFMTowns };
+
+static const byte kEoB2PortalSeqDataFMTowns[126] = {
+	0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
+	0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00,
+	0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00,
+	0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+	0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00,
+	0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+	0x00, 0x01, 0x01, 0x00, 0x02, 0x01, 0x03, 0x02,
+	0x02, 0x03, 0x01, 0x04, 0x00, 0x02, 0x01, 0x03,
+	0x02, 0x04, 0x03, 0x02, 0x04, 0x03, 0x03, 0x04,
+	0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03,
+	0x04, 0x04, 0x04, 0x05, 0x04, 0x06, 0x03, 0x07,
+	0x02, 0x08, 0x02, 0x08, 0x01, 0x09, 0x01, 0x09,
+	0x01, 0x09, 0x00, 0x0A, 0xFF, 0xFF
+};
+
+static const ByteProvider kEoB2PortalSeqDataFMTownsProvider = { ARRAYSIZE(kEoB2PortalSeqDataFMTowns), kEoB2PortalSeqDataFMTowns };
+
+static const byte kEoB2DscMonsterFrmOffsTbl1FMTowns[32] = {
+	0x04, 0xFE, 0x01, 0x03, 0x03, 0x04, 0xFE, 0x01,
+	0x01, 0x03, 0x04, 0xFE, 0xFE, 0x01, 0x03, 0x04,
+	0xFC, 0xFD, 0xFF, 0x02, 0x02, 0xFC, 0xFD, 0xFF,
+	0xFF, 0x02, 0xFC, 0xFD, 0xFD, 0xFF, 0x02, 0xFC
+};
+
+static const ByteProvider kEoB2DscMonsterFrmOffsTbl1FMTownsProvider = { ARRAYSIZE(kEoB2DscMonsterFrmOffsTbl1FMTowns), kEoB2DscMonsterFrmOffsTbl1FMTowns };
+
+static const byte kEoB2DscMonsterFrmOffsTbl2FMTowns[32] = {
+	0x04, 0xFE, 0x01, 0x03, 0x03, 0x04, 0xFE, 0x01,
+	0x01, 0x03, 0x04, 0xFE, 0xFE, 0x01, 0x03, 0x04,
+	0x04, 0xFD, 0x01, 0x02, 0x02, 0x04, 0xFD, 0x01,
+	0x01, 0x02, 0x04, 0xFD, 0xFD, 0x01, 0x02, 0x04
+};
+
+static const ByteProvider kEoB2DscMonsterFrmOffsTbl2FMTownsProvider = { ARRAYSIZE(kEoB2DscMonsterFrmOffsTbl2FMTowns), kEoB2DscMonsterFrmOffsTbl2FMTowns };
+
+static const uint16 kEoB2InvSlotXFMTowns[27] = {
+	0x00E6, 0x0116, 0x00B5, 0x00C7, 0x00B5, 0x00C7, 0x00B5, 0x00C7,
+	0x00B5, 0x00C7, 0x00B5, 0x00C7, 0x00B5, 0x00C7, 0x00B5, 0x00C7,
+	0x00E1, 0x00E0, 0x00E1, 0x012A, 0x011F, 0x0115, 0x012C, 0x012C,
+	0x012C, 0x00E4, 0x00F0
+};
+
+static const Uint16Provider kEoB2InvSlotXFMTownsProvider = { ARRAYSIZE(kEoB2InvSlotXFMTowns), kEoB2InvSlotXFMTowns };
+
+static const byte kEoB2InvSlotYFMTowns[27] = {
+	0x74, 0x74, 0x28, 0x28, 0x3A, 0x3A, 0x4C, 0x4C,
+	0x5E, 0x5E, 0x70, 0x70, 0x82, 0x82, 0x94, 0x94,
+	0x38, 0x4C, 0x60, 0x37, 0x4B, 0x89, 0x5E, 0x70,
+	0x82, 0x88, 0x88
+};
+
+static const ByteProvider kEoB2InvSlotYFMTownsProvider = { ARRAYSIZE(kEoB2InvSlotYFMTowns), kEoB2InvSlotYFMTowns };
+
+static const uint16 kEoB2SlotValidationFlagsFMTowns[27] = {
+	0x0008, 0x0008, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
+	0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
+	0x0001, 0x0002, 0x0004, 0x0020, 0x0040, 0x0010, 0xFFFF, 0x0080,
+	0x0080, 0x0100, 0x0100
+};
+
+static const Uint16Provider kEoB2SlotValidationFlagsFMTownsProvider = { ARRAYSIZE(kEoB2SlotValidationFlagsFMTowns), kEoB2SlotValidationFlagsFMTowns };
+
+static const byte kEoB2ProjectileWeaponTypesFMTowns[15] = {
+	0xFF, 0x01, 0xFF, 0x02, 0x04, 0x03, 0x05, 0x10,
+	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x12
+};
+
+static const ByteProvider kEoB2ProjectileWeaponTypesFMTownsProvider = { ARRAYSIZE(kEoB2ProjectileWeaponTypesFMTowns), kEoB2ProjectileWeaponTypesFMTowns };
+
+static const byte kEoB2WandTypesFMTowns[8] = {
+	0x00, 0x11, 0x17, 0x31, 0x0D, 0xFF, 0x04, 0x0C
+};
+
+static const ByteProvider kEoB2WandTypesFMTownsProvider = { ARRAYSIZE(kEoB2WandTypesFMTowns), kEoB2WandTypesFMTowns };
+
+static const byte kEoB2DrawObjPosIndexFMTowns[20] = {
+	0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x00, 0x03,
+	0x01, 0x04, 0x02, 0x03, 0x00, 0x01, 0x04, 0x01,
+	0x03, 0x00, 0x02, 0x04
+};
+
+static const ByteProvider kEoB2DrawObjPosIndexFMTownsProvider = { ARRAYSIZE(kEoB2DrawObjPosIndexFMTowns), kEoB2DrawObjPosIndexFMTowns };
+
+static const byte kEoB2FlightObjFlipIndexFMTowns[16] = {
+	0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01,
+	0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2FlightObjFlipIndexFMTownsProvider = { ARRAYSIZE(kEoB2FlightObjFlipIndexFMTowns), kEoB2FlightObjFlipIndexFMTowns };
+
+static const byte kEoB2FlightObjShpMapFMTowns[45] = {
+	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02,
+	0xFF, 0xFF, 0x04, 0xFF, 0x06, 0xFF, 0xFF, 0xFF,
+	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+	0xFF, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2FlightObjShpMapFMTownsProvider = { ARRAYSIZE(kEoB2FlightObjShpMapFMTowns), kEoB2FlightObjShpMapFMTowns };
+
+static const byte kEoB2FlightObjSclIndexFMTowns[72] = {
+	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
+	0xFF, 0xFF, 0x03, 0x03, 0xFF, 0xFF, 0x03, 0x03,
+	0xFF, 0xFF, 0x03, 0x03, 0xFF, 0xFF, 0x03, 0xFF,
+	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+	0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+	0x02, 0x02, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xFF,
+	0xFF, 0x01, 0xFF, 0x01, 0x01, 0x01, 0x01, 0x01,
+	0x01, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+	0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+};
+
+static const ByteProvider kEoB2FlightObjSclIndexFMTownsProvider = { ARRAYSIZE(kEoB2FlightObjSclIndexFMTowns), kEoB2FlightObjSclIndexFMTowns };
+
+static const byte kEoB2NpcShapeDataFMTowns[24] = {
+	0x00, 0x00, 0x00, 0x05, 0x39, 0x00, 0x00, 0xFF,
+	0x00, 0x00, 0x64, 0x05, 0x4F, 0x00, 0x00, 0xFF,
+	0x00, 0x00, 0x39, 0x06, 0x2B, 0x00, 0x00, 0xFF
+};
+
+static const ByteProvider kEoB2NpcShapeDataFMTownsProvider = { ARRAYSIZE(kEoB2NpcShapeDataFMTowns), kEoB2NpcShapeDataFMTowns };
+
+static const byte kEoB2ClassModifierFlagsFMTowns[15] = {
+	0x01, 0x20, 0x10, 0x02, 0x04, 0x08, 0x05, 0x09,
+	0x03, 0x0B, 0x0A, 0x0C, 0x07, 0x05, 0x06
+};
+
+static const ByteProvider kEoB2ClassModifierFlagsFMTownsProvider = { ARRAYSIZE(kEoB2ClassModifierFlagsFMTowns), kEoB2ClassModifierFlagsFMTowns };
+
+static const byte kEoB2MonsterStepTable02FMTowns[8] = {
+	0xE0, 0xE1, 0x01, 0x21, 0x20, 0x1F, 0xFF, 0xDF
+};
+
+static const ByteProvider kEoB2MonsterStepTable02FMTownsProvider = { ARRAYSIZE(kEoB2MonsterStepTable02FMTowns), kEoB2MonsterStepTable02FMTowns };
+
+static const byte kEoB2MonsterStepTable1FMTowns[16] = {
+	0x01, 0xE0, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00,
+	0x00, 0x00, 0xFF, 0x20, 0xFF, 0x00, 0x00, 0xE0
+};
+
+static const ByteProvider kEoB2MonsterStepTable1FMTownsProvider = { ARRAYSIZE(kEoB2MonsterStepTable1FMTowns), kEoB2MonsterStepTable1FMTowns };
+
+static const byte kEoB2MonsterStepTable2FMTowns[8] = {
+	0x07, 0xFA, 0x05, 0xFC, 0x03, 0xFE, 0x01, 0x00
+};
+
+static const ByteProvider kEoB2MonsterStepTable2FMTownsProvider = { ARRAYSIZE(kEoB2MonsterStepTable2FMTowns), kEoB2MonsterStepTable2FMTowns };
+
+static const byte kEoB2MonsterStepTable3FMTowns[8] = {
+	0xF9, 0x06, 0xFB, 0x04, 0xFD, 0x02, 0xFF, 0x00
+};
+
+static const ByteProvider kEoB2MonsterStepTable3FMTownsProvider = { ARRAYSIZE(kEoB2MonsterStepTable3FMTowns), kEoB2MonsterStepTable3FMTowns };
+
+static const byte kEoB2MonsterCloseAttPosTable1FMTowns[4] = {
+	0x00, 0x01, 0x03, 0x02
+};
+
+static const ByteProvider kEoB2MonsterCloseAttPosTable1FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttPosTable1FMTowns), kEoB2MonsterCloseAttPosTable1FMTowns };
+
+static const byte kEoB2MonsterCloseAttPosTable22FMTowns[16] = {
+	0x00, 0x01, 0x02, 0x03, 0x00, 0x02, 0x01, 0x03,
+	0x00, 0x01, 0x02, 0x03, 0x03, 0x01, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2MonsterCloseAttPosTable22FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttPosTable22FMTowns), kEoB2MonsterCloseAttPosTable22FMTowns };
+
+static const byte kEoB2MonsterCloseAttUnkTableFMTowns[12] = {
+	0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+	0x00, 0x02, 0xFF, 0x01
+};
+
+static const ByteProvider kEoB2MonsterCloseAttUnkTableFMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttUnkTableFMTowns), kEoB2MonsterCloseAttUnkTableFMTowns };
+
+static const byte kEoB2MonsterCloseAttChkTable1FMTowns[16] = {
+	0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
+	0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00
+};
+
+static const ByteProvider kEoB2MonsterCloseAttChkTable1FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttChkTable1FMTowns), kEoB2MonsterCloseAttChkTable1FMTowns };
+
+static const byte kEoB2MonsterCloseAttChkTable2FMTowns[16] = {
+	0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01,
+	0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2MonsterCloseAttChkTable2FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttChkTable2FMTowns), kEoB2MonsterCloseAttChkTable2FMTowns };
+
+static const byte kEoB2MonsterCloseAttDstTable1FMTowns[16] = {
+	0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00,
+	0x00, 0x01, 0x02, 0x03, 0x03, 0x00, 0x01, 0x02
+};
+
+static const ByteProvider kEoB2MonsterCloseAttDstTable1FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttDstTable1FMTowns), kEoB2MonsterCloseAttDstTable1FMTowns };
+
+static const byte kEoB2MonsterCloseAttDstTable2FMTowns[48] = {
+	0x01, 0x00, 0x03, 0x02, 0x05, 0x04, 0x00, 0x01,
+	0x02, 0x03, 0x04, 0x05, 0x05, 0x03, 0x01, 0x04,
+	0x02, 0x00, 0x01, 0x03, 0x05, 0x00, 0x02, 0x04,
+	0x04, 0x05, 0x02, 0x03, 0x00, 0x01, 0x05, 0x04,
+	0x03, 0x02, 0x01, 0x00, 0x00, 0x02, 0x04, 0x01,
+	0x03, 0x05, 0x04, 0x02, 0x00, 0x05, 0x03, 0x01
+};
+
+static const ByteProvider kEoB2MonsterCloseAttDstTable2FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttDstTable2FMTowns), kEoB2MonsterCloseAttDstTable2FMTowns };
+
+static const byte kEoB2MonsterProximityTableFMTowns[32] = {
+	0x02, 0x03, 0x00, 0x01, 0x03, 0x02, 0x01, 0x00,
+	0x00, 0x02, 0x01, 0x03, 0x02, 0x00, 0x03, 0x01,
+	0x01, 0x00, 0x03, 0x02, 0x00, 0x01, 0x02, 0x03,
+	0x03, 0x01, 0x00, 0x02, 0x01, 0x03, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2MonsterProximityTableFMTownsProvider = { ARRAYSIZE(kEoB2MonsterProximityTableFMTowns), kEoB2MonsterProximityTableFMTowns };
+
+static const byte kEoB2FindBlockMonstersTableFMTowns[64] = {
+	0x04, 0x02, 0x01, 0x03, 0x04, 0x03, 0x00, 0x02,
+	0x04, 0x00, 0x03, 0x01, 0x04, 0x01, 0x02, 0x00,
+	0x04, 0x01, 0x02, 0x03, 0x04, 0x00, 0x03, 0x02,
+	0x04, 0x03, 0x00, 0x01, 0x04, 0x02, 0x01, 0x00,
+	0x04, 0x02, 0x01, 0x03, 0x04, 0x03, 0x00, 0x02,
+	0x04, 0x00, 0x03, 0x01, 0x04, 0x01, 0x02, 0x00,
+	0x04, 0x01, 0x02, 0x03, 0x04, 0x00, 0x03, 0x02,
+	0x04, 0x03, 0x00, 0x01, 0x04, 0x02, 0x01, 0x00
+};
+
+static const ByteProvider kEoB2FindBlockMonstersTableFMTownsProvider = { ARRAYSIZE(kEoB2FindBlockMonstersTableFMTowns), kEoB2FindBlockMonstersTableFMTowns };
+
+static const byte kEoB2MonsterDirChangeTableFMTowns[16] = {
+	0xFF, 0x06, 0x02, 0xFF, 0x04, 0x05, 0x03, 0xFF,
+	0x00, 0x07, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+};
+
+static const ByteProvider kEoB2MonsterDirChangeTableFMTownsProvider = { ARRAYSIZE(kEoB2MonsterDirChangeTableFMTowns), kEoB2MonsterDirChangeTableFMTowns };
+
+static const EoBCharacter kEoB2NpcPresetsFMTowns[6] = {
+	{ 0x00, 0x01, "\x83""C""\x83\x93\x83""T""\x83\x8B",
+	  15, 15, 0, 0, 13, 13, 11, 11, 17, 17, 16, 16, 9, 9, 
+	    3, 39, 10, 0, 10, 5, 5, -1, 8, { 6, 0, 0 },
+	  { 0x00006ADA, 0x00000000, 0x00000000 }, 0x00000000,
+	  { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000 } },
+	{ 0x00, 0x01, "\x83""J""\x83\x89\x83\x93\x83""h""\x83\x89",
+	  18, 18, 36, 36, 13, 13, 8, 8, 15, 15, 16, 16, 14, 14, 
+	    4, 76, 10, 0, 1, 0, 2, -2, 12, { 9, 0, 0 },
+	  { 0x0003DF35, 0x00000000, 0x00000000 }, 0x00000000,
+	  { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000 } },
+	{ 0x00, 0x01, "\x83""V""\x83\x87\x81""[""\x83\x93",
+	  15, 15, 0, 0, 14, 14, 13, 13, 14, 14, 13, 13, 16, 16, 
+	    40, 40, 10, 0, 6, 4, 3, -3, 100, { 8, 0, 0 },
+	  { 0x00021730, 0x00000000, 0x00000000 }, 0x00000000,
+	  { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000 } },
+	{ 0x00, 0x01, "\x83""T""\x83\x93\x83\x89\x81""[""\x83\x8B",
+	  11, 11, 0, 0, 18, 18, 13, 13, 14, 14, 16, 16, 9, 9, 
+	    28, 28, 10, 0, 2, 3, 5, -4, 100, { 8, 0, 0 },
+	  { 0x00017AF0, 0x00000000, 0x00000000 }, 0x096B4566,
+	  { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000 } },
+	{ 0x00, 0x01, "\x83""^""\x83\x93\x83""O""\x83\x8D\x81""[",
+	  16, 16, 0, 0, 13, 13, 16, 16, 15, 15, 11, 11, 12, 12, 
+	    53, 53, 9, 0, 4, 6, 1, -5, 100, { 7, 7, 0 },
+	  { 0x00010FC2, 0x00010FC2, 0x00000000 }, 0xFFFFFFFF,
+	  { 0x0004, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000 } },
+	{ 0x00, 0x01, "\x83""A""\x83\x93\x83""o""\x81""[",
+	  14, 14, 0, 0, 17, 17, 12, 12, 18, 18, 9, 9, 17, 17, 
+	    36, 36, 10, 0, 3, 10, 1, -6, 100, { 7, 7, 0 },
+	  { 0x0000FAE6, 0x0000FAE6, 0x00000000 }, 0x00294566,
+	  { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 
+	    0x0000, 0x0000, 0x0000 } }
+};
+
+static const EoBCharacterProvider kEoB2NpcPresetsFMTownsProvider = { ARRAYSIZE(kEoB2NpcPresetsFMTowns), kEoB2NpcPresetsFMTowns };
+
+static const byte kEoB2DreamStepsFMTowns[14] = {
+	0x01, 0x02, 0x03, 0x02, 0x01, 0x00, 0x01, 0x02,
+	0x03, 0x03, 0x02, 0x01, 0x00, 0xFF
+};
+
+static const ByteProvider kEoB2DreamStepsFMTownsProvider = { ARRAYSIZE(kEoB2DreamStepsFMTowns), kEoB2DreamStepsFMTowns };
+
+static const byte kEoB2HornSoundsFMTowns[4] = {
+	0x40, 0x41, 0x42, 0x43
+};
+
+static const ByteProvider kEoB2HornSoundsFMTownsProvider = { ARRAYSIZE(kEoB2HornSoundsFMTowns), kEoB2HornSoundsFMTowns };
+
+static const uint16 kEoB2WallOfForceDsXFMTowns[18] = {
+	0xFFCC, 0xFFF4, 0x001C, 0x0044, 0x006C, 0x0094, 0x00BC, 0xFFB8,
+	0xFFF8, 0x0038, 0x0078, 0x00B8, 0xFFC8, 0x0028, 0x0088, 0x0000,
+	0x0000, 0x0000
+};
+
+static const Uint16Provider kEoB2WallOfForceDsXFMTownsProvider = { ARRAYSIZE(kEoB2WallOfForceDsXFMTowns), kEoB2WallOfForceDsXFMTowns };
+
+static const byte kEoB2WallOfForceDsYFMTowns[3] = {
+	0x20, 0x18, 0x10
+};
+
+static const ByteProvider kEoB2WallOfForceDsYFMTownsProvider = { ARRAYSIZE(kEoB2WallOfForceDsYFMTowns), kEoB2WallOfForceDsYFMTowns };
+
+static const byte kEoB2WallOfForceNumWFMTowns[3] = {
+	0x01, 0x02, 0x03
+};
+
+static const ByteProvider kEoB2WallOfForceNumWFMTownsProvider = { ARRAYSIZE(kEoB2WallOfForceNumWFMTowns), kEoB2WallOfForceNumWFMTowns };
+
+static const byte kEoB2WallOfForceNumHFMTowns[3] = {
+	0x02, 0x06, 0x09
+};
+
+static const ByteProvider kEoB2WallOfForceNumHFMTownsProvider = { ARRAYSIZE(kEoB2WallOfForceNumHFMTowns), kEoB2WallOfForceNumHFMTowns };
+
+static const byte kEoB2WallOfForceShpIdFMTowns[3] = {
+	0x04, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2WallOfForceShpIdFMTownsProvider = { ARRAYSIZE(kEoB2WallOfForceShpIdFMTowns), kEoB2WallOfForceShpIdFMTowns };
+
+static const byte kEoB2DscShapeIndexFMTowns[36] = {
+	0x01, 0x01, 0x04, 0x0A, 0x04, 0x08, 0x04, 0x01,
+	0x04, 0xF8, 0x04, 0xF6, 0x00, 0x00, 0x03, 0x09,
+	0x03, 0x07, 0x03, 0x01, 0x03, 0xF9, 0x03, 0xF7,
+	0x02, 0x06, 0x02, 0x01, 0x02, 0xFA, 0x01, 0x05,
+	0x01, 0x01, 0x01, 0xFB
+};
+
+static const ByteProvider kEoB2DscShapeIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscShapeIndexFMTowns), kEoB2DscShapeIndexFMTowns };
+
+static const uint16 kEoB2DscXFMTowns[18] = {
+	0xFF70, 0xFFA0, 0xFFD0, 0x0000, 0x0030, 0x0060, 0x0090, 0xFF60,
+	0xFFB0, 0x0000, 0x0050, 0x00A0, 0xFF80, 0x0000, 0x0080, 0x0000,
+	0x0000, 0x0000
+};
+
+static const Uint16Provider kEoB2DscXFMTownsProvider = { ARRAYSIZE(kEoB2DscXFMTowns), kEoB2DscXFMTowns };
+
+static const byte kEoB2DscTileIndexFMTowns[18] = {
+	0x00, 0x06, 0x01, 0x05, 0x02, 0x04, 0x03, 0x07,
+	0x0B, 0x08, 0x0A, 0x09, 0x0C, 0x0E, 0x0D, 0x0F,
+	0x11, 0x10
+};
+
+static const ByteProvider kEoB2DscTileIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscTileIndexFMTowns), kEoB2DscTileIndexFMTowns };
+
+static const byte kEoB2DscDimData1FMTowns[324] = {
+	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
+	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
+	0xD8, 0xD7, 0xD8, 0xD8, 0x02, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xFE, 0xD7, 0xD8, 0xD8, 0xD8, 0xD7, 0x03,
+	0xD8, 0xFD, 0xD8, 0xD8, 0xD8, 0xFE, 0xD8, 0x08,
+	0xD8, 0xD8, 0xD8, 0xFE, 0xD7, 0x06, 0xD8, 0xD8,
+	0xFA, 0x03, 0xD8, 0xFD, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xFA, 0xD7,
+	0x10, 0xD8, 0xFD, 0xD7, 0x13, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xF2, 0xD8, 0x14, 0xD8, 0xD8,
+	0xD8, 0xF0, 0xD7, 0x14, 0xD8, 0xED, 0x10, 0xD8,
+	0xD8, 0x13, 0xD8, 0xD8, 0xD8, 0xD8, 0xEC, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD7, 0x14, 0xD8, 0xED,
+	0xD7, 0xD8, 0xD8, 0x13, 0xD7, 0xD7, 0xD7, 0xD7,
+	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
+	0xD7, 0xD7, 0xD7, 0xD7, 0xD8, 0xD7, 0xD7, 0xD7,
+	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
+	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD8, 0xD7,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0x06, 0xD8, 0xD8, 0xFA, 0x03, 0xD8, 0xFD,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xFA, 0xD8, 0x10, 0xD8, 0xFD, 0xD7,
+	0x13, 0xFD, 0xD8, 0x13, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xF0, 0xD8, 0xD8,
+	0xD8, 0xED, 0x10, 0xD8, 0xD8, 0x13, 0xD7, 0xD7,
+	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
+	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD8, 0xD7,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0x03, 0xD8, 0xFD,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xFD, 0xD8,
+	0x13, 0xFD, 0xD8, 0x13, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xED, 0xD8, 0xD8, 0xD8, 0x13, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+	0xD8, 0xD8, 0xD8, 0xD8
+};
+
+static const ByteProvider kEoB2DscDimData1FMTownsProvider = { ARRAYSIZE(kEoB2DscDimData1FMTowns), kEoB2DscDimData1FMTowns };
+
+static const byte kEoB2DscDimData2FMTowns[648] = {
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x00, 0x16, 0x16, 0x00, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x02, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x02, 0x16, 0x00, 0x04, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x16, 0x00, 0x00, 0x03,
+	0x00, 0x16, 0x03, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x02, 0x16, 0x00, 0x16, 0x00, 0x08,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x02,
+	0x16, 0x00, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16,
+	0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x00,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x08, 0x0E,
+	0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x06, 0x10,
+	0x00, 0x13, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x0E, 0x16,
+	0x00, 0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x10, 0x16, 0x16, 0x00, 0x00, 0x14,
+	0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x14, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x12, 0x16, 0x14, 0x16, 0x00, 0x16, 0x13, 0x16,
+	0x16, 0x00, 0x00, 0x16, 0x00, 0x16, 0x00, 0x13,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x00, 0x16, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16,
+	0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x00, 0x16,
+	0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x07, 0x0F,
+	0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x10, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x13, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+	0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x03, 0x16, 0x00, 0x16,
+	0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x13, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16
+};
+
+static const ByteProvider kEoB2DscDimData2FMTownsProvider = { ARRAYSIZE(kEoB2DscDimData2FMTowns), kEoB2DscDimData2FMTowns };
+
+static const byte kEoB2DscBlockMapFMTowns[12] = {
+	0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00,
+	0x03, 0x00, 0x01, 0x02
+};
+
+static const ByteProvider kEoB2DscBlockMapFMTownsProvider = { ARRAYSIZE(kEoB2DscBlockMapFMTowns), kEoB2DscBlockMapFMTowns };
+
+static const byte kEoB2DscDimMapFMTowns[18] = {
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+	0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03,
+	0x03, 0x03
+};
+
+static const ByteProvider kEoB2DscDimMapFMTownsProvider = { ARRAYSIZE(kEoB2DscDimMapFMTowns), kEoB2DscDimMapFMTowns };
+
+static const byte kEoB2DscBlockIndexFMTowns[72] = {
+	0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xBE,
+	0xBF, 0xC0, 0xC1, 0xC2, 0xDF, 0xE0, 0xE1, 0xFF,
+	0x00, 0x01, 0xA3, 0xC3, 0xE3, 0x03, 0x23, 0x43,
+	0x63, 0xC2, 0xE2, 0x02, 0x22, 0x42, 0xE1, 0x01,
+	0x21, 0xE0, 0x00, 0x20, 0x63, 0x62, 0x61, 0x60,
+	0x5F, 0x5E, 0x5D, 0x42, 0x41, 0x40, 0x3F, 0x3E,
+	0x21, 0x20, 0x1F, 0x01, 0x00, 0xFF, 0x5D, 0x3D,
+	0x1D, 0xFD, 0xDD, 0xBD, 0x9D, 0x3E, 0x1E, 0xFE,
+	0xDE, 0xBE, 0x1F, 0xFF, 0xDF, 0x20, 0x00, 0xE0
+};
+
+static const ByteProvider kEoB2DscBlockIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscBlockIndexFMTowns), kEoB2DscBlockIndexFMTowns };
+
+static const char *const kEoB2EnchantedStringFMTowns[1] = {
+	"+%d %s"
+};
+
+static const StringListProvider kEoB2EnchantedStringFMTownsProvider = { ARRAYSIZE(kEoB2EnchantedStringFMTowns), kEoB2EnchantedStringFMTowns };
+
+static const char *const kEoB2MenuStringsSpellNoFMTowns[3] = {
+	"6",
+	"7",
+	"8"
+};
+
+static const StringListProvider kEoB2MenuStringsSpellNoFMTownsProvider = { ARRAYSIZE(kEoB2MenuStringsSpellNoFMTowns), kEoB2MenuStringsSpellNoFMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData00FMTowns[5] = {
+	{ 0x01,   0, 208,  16,   1,   1,   0,   0,   0,   0 },
+	{ 0x01,   0, 208,  16,   1,   1,   0,   0,   0,   0 },
+	{ 0x00,   0, 216,  51,   8,   0,   0,   0,   0,   0 },
+	{ 0x06,   3,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData00FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData00FMTowns), kEoB2IntroAnimData00FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData01FMTowns[5] = {
+	{ 0x01,   1, 184,   8,   1,   1,   0,   0,   0,   0 },
+	{ 0x01,   1, 184,   8,   1,   1,   0,   0,   0,   0 },
+	{ 0x00,   0, 216,  51,   7,   0,   0,   0,   0,   0 },
+	{ 0x06,   4,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData01FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData01FMTowns), kEoB2IntroAnimData01FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData02FMTowns[5] = {
+	{ 0x01,   2, 216,  51,   1,   0,   0,   0,   0,   0 },
+	{ 0x01,   2, 216,  51,   1,   0,   0,   0,   0,   0 },
+	{ 0x00,   0, 216,  51,  18,   0,   0,   0,   0,   0 },
+	{ 0x06,   6,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData02FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData02FMTowns), kEoB2IntroAnimData02FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData03FMTowns[4] = {
+	{ 0x00,   0,   0,   0,   1,   2,   0,   0,   0,   0 },
+	{ 0x06,   3,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x00,   0,   0,   0,   1,   2,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData03FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData03FMTowns), kEoB2IntroAnimData03FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData04FMTowns[3] = {
+	{ 0x01,   0, 562,   8,   1,   0,   0,   0,   0,   0 },
+	{ 0x01,   0, 562,   8,   1,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData04FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData04FMTowns), kEoB2IntroAnimData04FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData05FMTowns[4] = {
+	{ 0x00,   0,   0,   0,   1,   1,   0,   0,   0,   0 },
+	{ 0x00,   0,   0,   0,   1,   1,   0,   0,   0,   0 },
+	{ 0x06,   5,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData05FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData05FMTowns), kEoB2IntroAnimData05FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData06FMTowns[16] = {
+	{ 0x01,  12, 170,  11,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,  12, 188,  38,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,  12, 203,  63,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,  12, 218,  85,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,  12, 232, 107,   2,   0,   0,   0,   0,   0 },
+	{ 0x06,   9,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x01,   3, 242, 125,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,   4, 240, 125,   3,   0,   0,   0,   0,   0 },
+	{ 0x01,   5, 238, 124,   3,   0,   0,   0,   0,   0 },
+	{ 0x01,   6, 236, 123,   3,   0,   0,   0,   0,   0 },
+	{ 0x01,   7, 232, 121,   3,   0,   0,   0,   0,   0 },
+	{ 0x01,   8, 226, 120,   4,   0,   0,   0,   0,   0 },
+	{ 0x01,   9, 220, 119,   4,   0,   0,   0,   0,   0 },
+	{ 0x01,  10, 241, 115,   4,   0,   0,   0,   0,   0 },
+	{ 0x01,  11, 241, 115,   4,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData06FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData06FMTowns), kEoB2IntroAnimData06FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData07FMTowns[5] = {
+	{ 0x01,  12,  54,  17,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,  12,  80,  53,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,  12, 104,  87,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,  12, 130, 124,   2,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData07FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData07FMTowns), kEoB2IntroAnimData07FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData08FMTowns[6] = {
+	{ 0x01,  12, 112,   8,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,  12, 126,  34,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,  12, 142,  60,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,  12, 170, 109,   2,   0,   0,   0,   0,   0 },
+	{ 0x06,   8,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData08FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData08FMTowns), kEoB2IntroAnimData08FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData09FMTowns[4] = {
+	{ 0x05,   0, 184,  64,   6,   0,  30,   8,   3,  16 },
+	{ 0x05,   0, 184,  64,   6,   0,  33,   8,   3,  16 },
+	{ 0x05,   0, 184,  64,   6,   0,  36,   8,   3,  16 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData09FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData09FMTowns), kEoB2IntroAnimData09FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData10FMTowns[10] = {
+	{ 0x05,   0, 184,  64,   0,   0,  30,   8,   3,  16 },
+	{ 0x05,   0, 128,  88,   3,   0,  30,  32,   4,  24 },
+	{ 0x05,   0, 128,  88,   3,   0,  34,  32,   4,  24 },
+	{ 0x05,   0, 184,  64,   0,   0,  33,   8,   3,  16 },
+	{ 0x05,   0, 128,  88,   3,   0,  30,  32,   4,  24 },
+	{ 0x05,   0, 128,  88,   3,   0,  34,  32,   4,  24 },
+	{ 0x05,   0, 184,  64,   0,   0,  36,   8,   3,  16 },
+	{ 0x05,   0, 128,  88,   3,   0,  30,  32,   4,  24 },
+	{ 0x05,   0, 128,  88,   3,   0,  34,  32,   4,  24 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData10FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData10FMTowns), kEoB2IntroAnimData10FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData11FMTowns[16] = {
+	{ 0x03,  15,  36,  48,   1,   1,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   2,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   3,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   4,   0,   0,   0,   0 },
+	{ 0x06,  11,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   5,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   6,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,  90,   7,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   6,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   5,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   4,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   3,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   2,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   1,   0,   0,   0,   0 },
+	{ 0x03,  15,  36,  48,   1,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData11FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData11FMTowns), kEoB2IntroAnimData11FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData12FMTowns[3] = {
+	{ 0x02,  15,  36,  48,  90,   0,   0,   0,   0,   0 },
+	{ 0x07,  15,  36,  48,   0,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData12FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData12FMTowns), kEoB2IntroAnimData12FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData13FMTowns[4] = {
+	{ 0x06,  10,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 104,  24,   5,   0,   0,   8,  15, 112 },
+	{ 0x05,   0, 104,  24,   5,   0,  15,   8,  15, 112 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData13FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData13FMTowns), kEoB2IntroAnimData13FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData14FMTowns[6] = {
+	{ 0x05,   0, 184,  64,   0,   0,  30,   8,   3,  16 },
+	{ 0x05,   0, 104,  72,   5,   0,  10, 120,  10,  64 },
+	{ 0x05,   0, 184,  64,   0,   0,  33,   8,   3,  16 },
+	{ 0x05,   0, 104,  72,   5,   0,  20, 120,  10,  64 },
+	{ 0x05,   0, 184,  64,   0,   0,  36,   8,   3,  16 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData14FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData14FMTowns), kEoB2IntroAnimData14FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData15FMTowns[4] = {
+	{ 0x05,   0, 104,   0,   8,   0,   0,   0,  13, 200 },
+	{ 0x05,   0, 104,   0,   8,   0,  13,   0,  13, 200 },
+	{ 0x05,   0, 104,   0,   8,   0,  26,   0,  13, 200 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData15FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData15FMTowns), kEoB2IntroAnimData15FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData16FMTowns[11] = {
+	{ 0x06, 255,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   9, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   3, 240,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   6, 112,  72,   6,   0,   0,   0,   0,   0 },
+	{ 0x02,   1, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   4, 240,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   7, 112,  72,   6,   0,   0,   0,   0,   0 },
+	{ 0x02,   2, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   5, 240,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   8, 112,  72,   6,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData16FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData16FMTowns), kEoB2IntroAnimData16FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData17FMTowns[12] = {
+	{ 0x06, 255,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   9, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   3, 240,  40,   6,   0,   0,   0,   0,   0 },
+	{ 0x06,   5,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x00,   0,   0,   0,   1,   3,   0,   0,   0,   0 },
+	{ 0x00,   0,   0,   0,   1,   3,   0,   0,   0,   0 },
+	{ 0x00,   0,   0,   0,   1,   3,   0,   0,   0,   0 },
+	{ 0x02,   1, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   4, 240,  40,   6,   0,   0,   0,   0,   0 },
+	{ 0x02,   2, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   5, 240,  40,   6,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData17FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData17FMTowns), kEoB2IntroAnimData17FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData18FMTowns[8] = {
+	{ 0x06, 255,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   9, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   3, 240,  40,   6,   0,   0,   0,   0,   0 },
+	{ 0x02,   1, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   4, 240,  40,   6,   0,   0,   0,   0,   0 },
+	{ 0x02,   2, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   5, 240,  40,   6,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData18FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData18FMTowns), kEoB2IntroAnimData18FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData19FMTowns[14] = {
+	{ 0x06, 255,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,  10, 136,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   9, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   3, 240,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  11, 136,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  12, 136,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   1, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   4, 240,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  13, 136,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  10, 136,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   2, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   5, 240,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  13, 136,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData19FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData19FMTowns), kEoB2IntroAnimData19FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData20FMTowns[14] = {
+	{ 0x06, 255,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,  11, 136,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   9, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   3, 240,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  10, 136,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  13, 136,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   1, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   4, 240,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  12, 136,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  11, 136,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   2, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   5, 240,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  13, 136,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData20FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData20FMTowns), kEoB2IntroAnimData20FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData21FMTowns[14] = {
+	{ 0x06, 255,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,  14, 136,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   9, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   3, 240,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  15, 136,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  16, 136,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   1, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   4, 240,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  17, 136,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  14, 136,  40,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   2, 224,  72,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   5, 240,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0x02,  17, 136,  40,   3,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData21FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData21FMTowns), kEoB2IntroAnimData21FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData22FMTowns[2] = {
+	{ 0x05,   0, 104,  32,   0,   0,  10,   0,  10,  96 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData22FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData22FMTowns), kEoB2IntroAnimData22FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData23FMTowns[2] = {
+	{ 0x05,   0, 104,  32,   3,   0,  20,   0,  10,  96 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData23FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData23FMTowns), kEoB2IntroAnimData23FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData24FMTowns[2] = {
+	{ 0x05,   0, 104,  32,   0,   0,  30,   0,  10,  96 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData24FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData24FMTowns), kEoB2IntroAnimData24FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData25FMTowns[2] = {
+	{ 0x05,   0, 104,  32,   0,   0,   0,  96,  10,  96 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData25FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData25FMTowns), kEoB2IntroAnimData25FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData26FMTowns[2] = {
+	{ 0x05,   0, 104,  32,   3,   0,  10,  96,  10,  96 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData26FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData26FMTowns), kEoB2IntroAnimData26FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData27FMTowns[2] = {
+	{ 0x05,   0, 104,  32,   0,   0,  20,  96,  10,  96 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData27FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData27FMTowns), kEoB2IntroAnimData27FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData28FMTowns[2] = {
+	{ 0x05,   0, 104,  32,   0,   0,   0,   0,  10,  96 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData28FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData28FMTowns), kEoB2IntroAnimData28FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData29FMTowns[2] = {
+	{ 0x05,   0, 104,  32,   3,   0,   0,   0,  10,  96 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData29FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData29FMTowns), kEoB2IntroAnimData29FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData30FMTowns[2] = {
+	{ 0x05,   0, 104,  32,   4,   0,  10,   0,  10,  96 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData30FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData30FMTowns), kEoB2IntroAnimData30FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData31FMTowns[2] = {
+	{ 0x05,   0, 104,  32,   8,   0,  20,   0,  10,  96 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData31FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData31FMTowns), kEoB2IntroAnimData31FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData32FMTowns[5] = {
+	{ 0x06, 255,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 176,  56,   3,   0,  19, 136,   2,   8 },
+	{ 0x05,   0, 176,  56,   3,   0,  21, 136,   2,   8 },
+	{ 0x05,   0, 176,  56,   3,   0,  23, 136,   2,   8 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData32FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData32FMTowns), kEoB2IntroAnimData32FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData33FMTowns[14] = {
+	{ 0x06, 255,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 176,  56,   0,   0,  19, 136,   2,   8 },
+	{ 0x05,   0, 144,  88,   5,   0,   1, 136,   6,  40 },
+	{ 0x05,   0, 176,  56,   0,   0,  21, 136,   2,   8 },
+	{ 0x05,   0, 144,  88,   3,   0,   7, 136,   6,  40 },
+	{ 0x05,   0, 176,  56,   2,   0,  23, 136,   2,   8 },
+	{ 0x05,   0, 144,  88,   3,   0,  13, 136,   6,  40 },
+	{ 0x05,   0, 176,  56,   0,   0,  19, 136,   2,   8 },
+	{ 0x05,   0, 144,  88,   6,   0,   1, 136,   6,  40 },
+	{ 0x05,   0, 176,  56,   0,   0,  21, 136,   2,   8 },
+	{ 0x05,   0, 144,  88,   3,   0,   7, 136,   6,  40 },
+	{ 0x05,   0, 176,  56,   0,   0,  23, 136,   2,   8 },
+	{ 0x05,   0, 144,  88,   3,   0,   1, 136,   6,  40 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData33FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData33FMTowns), kEoB2IntroAnimData33FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData34FMTowns[8] = {
+	{ 0x06, 255,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0,  80,  64,   0,   0,   1, 136,   2,  16 },
+	{ 0x05,   0, 248,  64,   3,   0,   7, 136,   2,  16 },
+	{ 0x05,   0,  80,  64,   0,   0,   3, 136,   2,  16 },
+	{ 0x05,   0, 248,  64,   3,   0,   9, 136,   2,  16 },
+	{ 0x05,   0,  80,  64,   0,   0,   5, 136,   2,  16 },
+	{ 0x05,   0, 248,  64,   3,   0,  11, 136,   2,  16 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData34FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData34FMTowns), kEoB2IntroAnimData34FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData35FMTowns[5] = {
+	{ 0x06, 255,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0,  16,  48,   0,   0,   0, 152,  14,  48 },
+	{ 0x05,   0, 192,  48,   4,   0,  14, 128,  13,  48 },
+	{ 0x05,   0,  16,  48,   0,   0,   1,  40,  35,  48 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData35FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData35FMTowns), kEoB2IntroAnimData35FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData36FMTowns[6] = {
+	{ 0x06,   1,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 168,  24,   3,   0,   0, 128,   2,  32 },
+	{ 0x05,   0, 152,  16,   3,   0,   0,  88,   5,  40 },
+	{ 0x05,   0, 128,   0,   3,   0,   0,   0,  10,  88 },
+	{ 0x05,   0, 104,   0,   3,   0,  13,   0,  14,  88 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData36FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData36FMTowns), kEoB2IntroAnimData36FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData37FMTowns[2] = {
+	{ 0x05,   0, 104,   0,   0,   0,  13,   0,  13, 200 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData37FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData37FMTowns), kEoB2IntroAnimData37FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData38FMTowns[43] = {
+	{ 0x03,  17,  36,  48,   0,   1,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   1,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   1,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   2,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   2,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   2,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   3,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   3,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   3,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   4,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   4,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   4,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   5,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   5,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   5,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   6,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   6,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   6,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   7,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   7,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,  54,   7,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   6,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   6,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   6,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   5,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   5,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   5,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   4,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   4,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   4,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   3,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   3,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   3,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   2,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   2,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   2,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   1,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   1,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   1,   0,   0,   0,   0 },
+	{ 0x03,  17,  36,  48,   0,   0,   0,   0,   0,   0 },
+	{ 0x03,  16, 142,  80,   0,   0,   0,   0,   0,   0 },
+	{ 0x03,  19, 151,  28,   1,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData38FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData38FMTowns), kEoB2IntroAnimData38FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData39FMTowns[7] = {
+	{ 0x02,  17,  36,  48,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,  16, 142,  80,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,  19, 151,  28,  54,   0,   0,   0,   0,   0 },
+	{ 0x07,  17,  36,  48,   0,   0,   0,   0,   0,   0 },
+	{ 0x07,  16, 142,  80,   0,   0,   0,   0,   0,   0 },
+	{ 0x07,  19, 151,  28,   0,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData39FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData39FMTowns), kEoB2IntroAnimData39FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData40FMTowns[32] = {
+	{ 0x03,  22,  21,  32,   0,   1,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   1,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   2,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   1,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   3,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   2,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   4,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   3,   0,   0,   0,   0 },
+	{ 0x06,  11,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   5,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   4,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   6,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   5,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   7,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,  18,   6,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   7,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,  90,   6,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   6,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   5,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   5,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   4,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   4,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   3,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   3,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   2,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   2,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   1,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   1,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   1,   0,   0,   0,   0 },
+	{ 0x03,  22,  21,  32,   0,   0,   0,   0,   0,   0 },
+	{ 0x03,  23,  67,  80,   1,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData40FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData40FMTowns), kEoB2IntroAnimData40FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData41FMTowns[5] = {
+	{ 0x02,  22,  21,  32,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,  23,  67,  80,  90,   0,   0,   0,   0,   0 },
+	{ 0x07,  22,  21,  32,   0,   0,   0,   0,   0,   0 },
+	{ 0x07,  23,  67,  80,   0,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData41FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData41FMTowns), kEoB2IntroAnimData41FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData42FMTowns[3] = {
+	{ 0x06,   3,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x00,   0,   0,   0,   1,   2,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData42FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData42FMTowns), kEoB2IntroAnimData42FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData43FMTowns[5] = {
+	{ 0x06,   5,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x00,   0,   0,   0,   1,   3,   0,   0,   0,   0 },
+	{ 0x00,   0,   0,   0,   1,   3,   0,   0,   0,   0 },
+	{ 0x00,   0,   0,   0,   1,   3,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData43FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData43FMTowns), kEoB2IntroAnimData43FMTowns };
+
+static const DarkMoonShapeDef kEoB2IntroShapes00FMTowns[15] = {
+	{   0,   1, 137,   4,  43 },
+	{   1,   5, 137,   4,  54 },
+	{   2,   9, 140,   4,   8 },
+	{   3,   1, 181,   1,   3 },
+	{   4,   9, 154,   1,   3 },
+	{   5,   9, 158,   2,   5 },
+	{   6,   9, 164,   3,   7 },
+	{   7,   9, 172,   3,  11 },
+	{   8,   9, 184,   5,  13 },
+	{   9,  15, 137,   6,  15 },
+	{  10,  15, 153,   2,  21 },
+	{  11,  17, 153,   2,  21 },
+	{  12,   1, 185,   1,   4 },
+	{  13,   1, 190,   1,   1 },
+	{   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes00FMTownsProvider = { ARRAYSIZE(kEoB2IntroShapes00FMTowns), kEoB2IntroShapes00FMTowns };
+
+static const DarkMoonShapeDef kEoB2IntroShapes01FMTowns[2] = {
+	{   0,   1, 137,   1,  16 },
+	{   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes01FMTownsProvider = { ARRAYSIZE(kEoB2IntroShapes01FMTowns), kEoB2IntroShapes01FMTowns };
+
+static const DarkMoonShapeDef kEoB2IntroShapes04FMTowns[10] = {
+	{  15,   2,   0,  32,  16 },
+	{  16,   5,  16,   5,   8 },
+	{  17,   2,  27,  32,  18 },
+	{  18,   0, 140,  35,  10 },
+	{  19,  21,  16,   3,   8 },
+	{  20,   0,  47,  22,  10 },
+	{  21,   0,  59,  31,  10 },
+	{  22,   0,  71,  35,  39 },
+	{  23,   0, 119,  24,  15 },
+	{   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes04FMTownsProvider = { ARRAYSIZE(kEoB2IntroShapes04FMTowns), kEoB2IntroShapes04FMTowns };
+
+static const DarkMoonShapeDef kEoB2IntroShapes07FMTowns[18] = {
+	{  -9,   1, 136,   6,  40 },
+	{  -1,   7, 136,   6,  40 },
+	{  -2,  13, 136,   6,  40 },
+	{   3,  19, 136,   2,  16 },
+	{   4,  21, 136,   2,  16 },
+	{   5,  23, 136,   2,  16 },
+	{   6,  19, 152,   1,   8 },
+	{   7,  20, 152,   1,   8 },
+	{   8,  21, 152,   1,   8 },
+	{ -10,  25, 136,   2,  16 },
+	{ -11,  27, 136,   2,  16 },
+	{ -12,  29, 136,   2,  16 },
+	{ -13,  31, 136,   2,  16 },
+	{ -14,  25, 152,   2,  16 },
+	{ -15,  27, 152,   2,  16 },
+	{ -16,  29, 152,   2,  16 },
+	{ -17,  31, 152,   2,  16 },
+	{   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes07FMTownsProvider = { ARRAYSIZE(kEoB2IntroShapes07FMTowns), kEoB2IntroShapes07FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData00FMTowns[11] = {
+	{ 0x06,   4,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 136,   8,   8,   0,   5, 136,  11,  48 },
+	{ 0x02,   1, 136,   8,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0,  80,   8,   0,   0,   0, 136,   5,  40 },
+	{ 0x06,   5,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 232,  88,   4,   0,   0,  88,   8,  48 },
+	{ 0x02,   3,  80,   8,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 232,  88,   4,   0,   8,  88,   8,  48 },
+	{ 0x05,   0, 232,  88,   4,   0,  16,  88,   8,  48 },
+	{ 0x02,   2, 232,  88,   4,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData00FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData00FMTowns), kEoB2FinaleAnimData00FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData01FMTowns[9] = {
+	{ 0x06,   4,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 136,   8,  12,   0,   5, 136,  11,  48 },
+	{ 0x02,   1, 136,   8,   0,   0,   0,   0,   0,   0 },
+	{ 0x06,   5,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 232,  88,   6,   0,   0,  88,   8,  48 },
+	{ 0x05,   0, 232,  88,   6,   0,   8,  88,   8,  48 },
+	{ 0x05,   0, 232,  88,   6,   0,  16,  88,   8,  48 },
+	{ 0x02,   2, 232,  88,   6,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData01FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData01FMTowns), kEoB2FinaleAnimData01FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData02FMTowns[4] = {
+	{ 0x05,   0, 232, 112,   6,   0,  24, 176,   3,  16 },
+	{ 0x05,   0, 232, 112,   6,   0,  27, 176,   3,  16 },
+	{ 0x05,   0, 232, 112,   6,   0,  30, 176,   3,  16 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData02FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData02FMTowns), kEoB2FinaleAnimData02FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData03FMTowns[6] = {
+	{ 0x05,   0,  80,   8,   0,   0,   0, 136,   5,  40 },
+	{ 0x05,   0, 232, 112,   3,   0,  24, 176,   3,  16 },
+	{ 0x02,   3,  80,   8,   3,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 232, 112,   3,   0,  27, 176,   3,  16 },
+	{ 0x05,   0, 232, 112,   3,   0,  30, 176,   3,  16 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData03FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData03FMTowns), kEoB2FinaleAnimData03FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData04FMTowns[8] = {
+	{ 0x06,   6,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 104,  40,   3,   0,  32,  88,   8,  88 },
+	{ 0x05,   0, 104,  40,   3,   0,  32,   0,   8,  88 },
+	{ 0x05,   0, 104,  40,   3,   0,  24,   0,   8,  88 },
+	{ 0x05,   0, 104,  40,   3,   0,  16,   0,   8,  88 },
+	{ 0x05,   0, 104,  40,   3,   0,   0,   0,   8,  88 },
+	{ 0x05,   0, 104,  40,   3,   0,  24,  88,   8,  88 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData04FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData04FMTowns), kEoB2FinaleAnimData04FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData05FMTowns[7] = {
+	{ 0x05,   0, 232, 112,   0,   0,  24, 176,   3,  16 },
+	{ 0x05,   0, 128,  40,   4,   0,  33, 176,   2,  16 },
+	{ 0x05,   0, 232, 112,   0,   0,  27, 176,   3,  16 },
+	{ 0x05,   0, 128,  40,   4,   0,  35, 176,   2,  16 },
+	{ 0x05,   0, 232, 112,   0,   0,  30, 176,   3,  16 },
+	{ 0x05,   0, 128,  40,   4,   0,  37, 176,   2,  16 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData05FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData05FMTowns), kEoB2FinaleAnimData05FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData06FMTowns[2] = {
+	{ 0x05,   0, 104,  40,   0,   0,  16, 136,   8,  48 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData06FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData06FMTowns), kEoB2FinaleAnimData06FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData07FMTowns[6] = {
+	{ 0x05,   0, 208,  80,   4,   0,   0, 128,   6,  56 },
+	{ 0x05,   0, 208,  80,   4,   0,   6, 128,   6,  56 },
+	{ 0x05,   0, 208,  80,   4,   0,  12, 128,   6,  56 },
+	{ 0x05,   0, 208,  80,   4,   0,  18, 128,   6,  56 },
+	{ 0x05,   0, 208,  80,   4,   0,  24, 128,   6,  56 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData07FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData07FMTowns), kEoB2FinaleAnimData07FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData08FMTowns[3] = {
+	{ 0x05,   0, 224,  56,   3,   0,   0, 184,   4,  16 },
+	{ 0x05,   0, 224,  56,   0,   0,   4, 184,   4,  16 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData08FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData08FMTowns), kEoB2FinaleAnimData08FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData09FMTowns[8] = {
+	{ 0x01,   1, -10,  40,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,   1,   0,  40,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,   1,  10,  40,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,   1,  20,  40,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,   1,  30,  40,   2,   0,   0,   0,   0,   0 },
+	{ 0x01,   1,  40,  40,   2,   0,   0,   0,   0,   0 },
+	{ 0x02,   2,  48,  40,   2,   0,   0,   0,   0,   0 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData09FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData09FMTowns), kEoB2FinaleAnimData09FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData10FMTowns[14] = {
+	{ 0x05,   1,   8,  40,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   1, 280,  96,   0,   0,  24, 160,   4,  40 },
+	{ 0x05,   1,  96,  96,   3,   0,  12,  80,   1,  16 },
+	{ 0x05,   1,   8,  40,   0,   0,  32,  80,   8,  80 },
+	{ 0x05,   1, 280,  96,   0,   0,  28, 160,   4,  40 },
+	{ 0x05,   1,  96,  96,   3,   0,  13,  80,   1,  16 },
+	{ 0x05,   1,   8,  40,   0,   0,  24,  80,   8,  80 },
+	{ 0x05,   1, 280,  96,   0,   0,  32, 160,   4,  40 },
+	{ 0x05,   1,  96,  96,   3,   0,  14,  80,   1,  16 },
+	{ 0x06,   8,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   1,  40,  32,   0,   0,   0,  40,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,  12, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   3,   0,   0, 128,  12,  24 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData10FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData10FMTowns), kEoB2FinaleAnimData10FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData11FMTowns[18] = {
+	{ 0x05,   1,  40,  32,   0,   0,  16,  40,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,  18, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   0,   0,   0, 152,  12,  24 },
+	{ 0x05,   1,   8,  40,   0,   0,  24,  80,   8,  80 },
+	{ 0x05,   1, 280,  96,   0,   0,  32, 160,   4,  40 },
+	{ 0x05,   1,  96,  96,   0,   0,  14,  80,   1,  16 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0x05,   1,   8,  40,   0,   0,  24,  80,   8,  80 },
+	{ 0x05,   1, 280,  96,   0,   0,  32, 160,   4,  40 },
+	{ 0x05,   1,  96,  96,   3,   0,  14,  80,   1,  16 },
+	{ 0x05,   1,   8,  40,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   1, 280,  96,   0,   0,  24, 160,   4,  40 },
+	{ 0x05,   1,  96,  96,   3,   0,  12,  80,   1,  16 },
+	{ 0x05,   1,   8,  40,   0,   0,  16,  80,   8,  80 },
+	{ 0x05,   1, 280,  96,   0,   0,  36, 160,   4,  40 },
+	{ 0x05,   1,  96,  96,   3,   0,  15,  80,   1,  16 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData11FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData11FMTowns), kEoB2FinaleAnimData11FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData12FMTowns[23] = {
+	{ 0x05,   1,  40,  32,   0,   0,  16,  40,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,  18, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   0,   0,   0, 152,  12,  24 },
+	{ 0x05,   1,   8,  40,   0,   0,  24,  80,   8,  80 },
+	{ 0x05,   1, 280,  96,   0,   0,  32, 160,   4,  40 },
+	{ 0x05,   1,  96,  96,   0,   0,  14,  80,   1,  16 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   2, 168,  16,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   1,   8,  40,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   1, 280,  96,   0,   0,  24, 160,   4,  40 },
+	{ 0x05,   1,  96,  96,   3,   0,  12,  80,   1,  16 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   3, 168,  16,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   1,   8,  40,   0,   0,  16,  80,   8,  80 },
+	{ 0x05,   1, 280,  96,   0,   0,  36, 160,   4,  40 },
+	{ 0x05,   1,  96,  96,   3,   0,  15,  80,   1,  16 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData12FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData12FMTowns), kEoB2FinaleAnimData12FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData13FMTowns[23] = {
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   1, 168,  16,   0,   0,   0,   0,   0,   0 },
+	{ 0x06,   9,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   1,  40,  32,   0,   0,   0,   0,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,   0, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   3,   0,   0,  80,  12,  24 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   3, 168,  16,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   1,  40,  32,   0,   0,  16,   0,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,   6, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   3,   0,   0, 104,  12,  24 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   2, 168,  16,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   1,  40,  32,   0,   0,   0,  40,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,  12, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   3,   0,   0, 128,  12,  24 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData13FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData13FMTowns), kEoB2FinaleAnimData13FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData14FMTowns[24] = {
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   1, 168,  16,   0,   0,   0,   0,   0,   0 },
+	{ 0x06,   9,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   1,  40,  32,   0,   0,   0,   0,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,   0, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   3,   0,   0,  80,  12,  24 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   3, 168,  16,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   1,  40,  32,   0,   0,  16,   0,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,   6, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   3,   0,   0, 104,  12,  24 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   2, 168,  16,   0,   0,   0,   0,   0,   0 },
+	{ 0x06,   9,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   1,  40,  32,   0,   0,   0,  40,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,  12, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   3,   0,   0, 128,  12,  24 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData14FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData14FMTowns), kEoB2FinaleAnimData14FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData15FMTowns[19] = {
+	{ 0x05,   1,  40,  32,   0,   0,   0,   0,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,   0, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   3,   0,   0,  80,  12,  24 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   3, 168,  16,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   1,  40,  32,   0,   0,  16,   0,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,   6, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   3,   0,   0, 104,  12,  24 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0x06,   9,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   1,  40,  32,   0,   0,   0,  40,  16,  40 },
+	{ 0x05,   1, 248,  88,   0,   0,  12, 176,   6,  24 },
+	{ 0x05,   1,  96,  80,   3,   0,   0, 128,  12,  24 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData15FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData15FMTowns), kEoB2FinaleAnimData15FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData16FMTowns[13] = {
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   1, 168,  16,   3,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   2, 168,  16,   3,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0x06,  15,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x02,   3, 168,  16,   3,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 168,  16,   0,   0,  32,   0,   8,  80 },
+	{ 0x05,   0, 232,  16,   0,   0,  32,  80,   8,  80 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData16FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData16FMTowns), kEoB2FinaleAnimData16FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData17FMTowns[20] = {
+	{ 0x05,   0, 168,  16,   1,   0,   0,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,   0,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,   0,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,   0,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,  16,   0,  16,  80 },
+	{ 0x06,  10,   0,   0,   0,   0,   0,   0,   0,   0 },
+	{ 0x05,   0, 168,  16,   3,   0,   0,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,  16,   0,  16,  80 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData17FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData17FMTowns), kEoB2FinaleAnimData17FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData18FMTowns[28] = {
+	{ 0x05,   0, 168,  16,   1,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,  16,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,  16,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,  16,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,   0,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,   0,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,  16,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,  16,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,  16,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   3,   0,  16,   0,  16,  80 },
+	{ 0x05,   0, 168,  16,   1,   0,   0,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   2,   0,  16,  80,  16,  80 },
+	{ 0x05,   0, 168,  16,   0,   0,  16,  80,  16,  80 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData18FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData18FMTowns), kEoB2FinaleAnimData18FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData19FMTowns[7] = {
+	{ 0x05,   0,  80,  80,   4,   0,   0, 128,   6,  56 },
+	{ 0x05,   0,  80,  80,   4,   0,   6, 128,   6,  56 },
+	{ 0x05,   0,  80,  80,   4,   0,  12, 128,   6,  56 },
+	{ 0x05,   0,  80,  80,   4,   0,  18, 128,   6,  56 },
+	{ 0x05,   0,  80,  80,   4,   0,  24, 128,   6,  56 },
+	{ 0x05,   0,  80,  80,   4,   0,  30, 128,   6,  56 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData19FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData19FMTowns), kEoB2FinaleAnimData19FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData20FMTowns[3] = {
+	{ 0x05,   0,  96,  56,   3,   0,   0, 184,   4,  16 },
+	{ 0x05,   0,  96,  56,   0,   0,   4, 184,   4,  16 },
+	{ 0xFF,   0,   0,   0,   0,   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData20FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData20FMTowns), kEoB2FinaleAnimData20FMTowns };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes00FMTowns[4] = {
+	{  -1,  16,   0,  11,  48 },
+	{  -2,  28,  80,   8,  48 },
+	{  -3,   9,   0,   5,  40 },
+	{   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes00FMTownsProvider = { ARRAYSIZE(kEoB2FinaleShapes00FMTowns), kEoB2FinaleShapes00FMTowns };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes03FMTowns[3] = {
+	{  -1,  30,   0,   8,  96 },
+	{  -2,  30, 104,  10,  96 },
+	{   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes03FMTownsProvider = { ARRAYSIZE(kEoB2FinaleShapes03FMTowns), kEoB2FinaleShapes03FMTowns };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes07FMTowns[4] = {
+	{   1,   0,   0,  16,  72 },
+	{   2,  16,   0,  16,  72 },
+	{   3,   0,  72,  16,  72 },
+	{   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes07FMTownsProvider = { ARRAYSIZE(kEoB2FinaleShapes07FMTowns), kEoB2FinaleShapes07FMTowns };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes09FMTowns[9] = {
+	{   0,   0,   0,  32,  16 },
+	{   2,   0,  36,  35,  41 },
+	{   3,   0,  77,  24,  17 },
+	{   4,   0,  94,  15,  33 },
+	{   5,  24,  77,  10,  17 },
+	{   6,  16,  99,  23,  69 },
+	{ -10,   0, 136,   8,  64 },
+	{ -11,   8, 136,   8,  64 },
+	{   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes09FMTownsProvider = { ARRAYSIZE(kEoB2FinaleShapes09FMTowns), kEoB2FinaleShapes09FMTowns };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes10FMTowns[5] = {
+	{   1,   0,   0,  40,  30 },
+	{  15,   9,  37,  21,  48 },
+	{  16,  16,  88,   6,  56 },
+	{  17,   0, 152,  40,  48 },
+	{   0,   0,   0,   0,   0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes10FMTownsProvider = { ARRAYSIZE(kEoB2FinaleShapes10FMTowns), kEoB2FinaleShapes10FMTowns };
+
+static const byte kEoB2IntroCpsDataStreet1FMTowns[15648] = {
+	0x13, 0x3D, 0x00, 0x00, 0x2C, 0x6D, 0x6E, 0x00,
+	0x01, 0x2E, 0x00, 0x52, 0x00, 0x72, 0x0C, 0x0C,
+	0x62, 0x0C, 0x01, 0x01, 0x00, 0x03, 0x2F, 0x2F,
+	0x2E, 0x00, 0xF0, 0x6D, 0x74, 0x2D, 0x00, 0x07,
+	0x01, 0xE0, 0x00, 0x27, 0x2F, 0x00, 0xD3, 0x2C,
+	0x2C, 0x41, 0x2B, 0x00, 0x06, 0x28, 0x28, 0x2B,
+	0x2B, 0x2A, 0x00, 0xE0, 0x01, 0x29, 0x29, 0x2B,
+	0x2C, 0x2B, 0x2A, 0x2A, 0x00, 0xA1, 0x84, 0x00,
+	0xC2, 0x2B, 0x2A, 0x28, 0x28, 0x00, 0x61, 0x2B,
+	0x2C, 0x3F, 0x29, 0x29, 0x01, 0x60, 0x00, 0x2F,
+	0x01, 0x4F, 0x02, 0x6F, 0x03, 0x8F, 0x04, 0xAF,
+	0x9A, 0x05, 0xC7, 0x0C, 0x2F, 0x00, 0x07, 0x0B,
+	0x80, 0x6F, 0x00, 0x00, 0x0C, 0xCE, 0x00, 0x52,
+	0x00, 0x36, 0x6D, 0x6C, 0x00, 0x63, 0x00, 0x05,
+	0x0C, 0x81, 0x2A, 0x10, 0x2A, 0x2D, 0x2D, 0x0C,
+	0x22, 0x2C, 0x2C, 0x6D, 0x6B, 0x00, 0x6A, 0x6B,
+	0x6C, 0x6C, 0x6C, 0x6B, 0x6B, 0x6A, 0x81, 0x0C,
+	0x62, 0x6B, 0x6B, 0x6C, 0x6D, 0x6B, 0x00, 0x00,
+	0x0C, 0xFD, 0x13, 0xFD, 0x11, 0xF2, 0x13, 0xF5,
+	0x08, 0x01, 0x13, 0xF1, 0x14, 0x00, 0x0C, 0x00,
+	0x10, 0xD7, 0x13, 0xEB, 0x09, 0xD2, 0x2E, 0x15,
+	0x02, 0x2C, 0x06, 0xC0, 0x07, 0xA1, 0x14, 0x04,
+	0x83, 0x13, 0x50, 0x2A, 0x2B, 0x29, 0x2B, 0x29,
+	0x14, 0x01, 0x08, 0x60, 0xC7, 0x15, 0x00, 0x14,
+	0xD0, 0x2A, 0x2B, 0x28, 0x01, 0x30, 0x14, 0xD3,
+	0x00, 0x1F, 0xFC, 0x01, 0x33, 0x15, 0x8F, 0x16,
+	0xAF, 0x17, 0xCF, 0x18, 0xEF, 0x13, 0xFF, 0x2D,
+	0x2D, 0x6A, 0x6D, 0x13, 0xFF, 0x13, 0xFE, 0x6C,
+	0x13, 0xFA, 0x2B, 0x13, 0xA1, 0x6B, 0x52, 0x6A,
+	0x14, 0x30, 0x6A, 0x21, 0x20, 0x2A, 0x2C, 0x00,
+	0xC0, 0x6B, 0xBF, 0x13, 0xFE, 0x2D, 0x13, 0xFF,
+	0x13, 0xF7, 0x27, 0xF0, 0x28, 0xD0, 0x13, 0x80,
+	0x29, 0x40, 0xBE, 0x13, 0xF2, 0x2C, 0x28, 0xE1,
+	0x13, 0xFA, 0x28, 0x05, 0x12, 0x63, 0x27, 0x60,
+	0x28, 0xFF, 0x14, 0x01, 0x06, 0xF1, 0x14, 0x01,
+	0x27, 0xF1, 0x15, 0x82, 0x28, 0x03, 0x14, 0x01,
+	0x29, 0x80, 0xFF, 0x02, 0x20, 0x28, 0xB0, 0x14,
+	0x6F, 0x15, 0x8F, 0x15, 0x3F, 0x2B, 0xBF, 0x2C,
+	0xDF, 0x27, 0xFF, 0xFE, 0x0B, 0x90, 0x13, 0xFF,
+	0x27, 0xFF, 0x1E, 0xB3, 0x36, 0xD0, 0x33, 0xB1,
+	0x13, 0xF0, 0x6B, 0xCB, 0x14, 0x01, 0x00, 0x40,
+	0x6A, 0x2C, 0x35, 0x20, 0x2A, 0x00, 0x91, 0x13,
+	0xFF, 0x79, 0x2E, 0x3B, 0xB1, 0x27, 0xFF, 0x28,
+	0x06, 0x29, 0x20, 0x6D, 0x6D, 0x3B, 0x52, 0xEF,
+	0x13, 0xF7, 0x31, 0x82, 0x28, 0x11, 0x0C, 0x27,
+	0xF3, 0x3C, 0x14, 0x27, 0x42, 0x14, 0x11, 0xDE,
+	0x27, 0xF0, 0x14, 0x01, 0x29, 0x3D, 0x80, 0x30,
+	0x82, 0x3D, 0x00, 0x28, 0x02, 0x28, 0xFF, 0x16,
+	0x12, 0x14, 0x03, 0x14, 0x1F, 0x29, 0x7F, 0x2A,
+	0x91, 0x2D, 0x90, 0x29, 0x9F, 0x40, 0x1F, 0xC7,
+	0x41, 0x3F, 0x13, 0xFA, 0x2C, 0x2C, 0x6B, 0x3B,
+	0xFF, 0x3B, 0xFF, 0x3B, 0xF1, 0x4D, 0x28, 0x13,
+	0xF4, 0x2B, 0x2C, 0x3B, 0xA0, 0x14, 0x02, 0x6D,
+	0x27, 0xF1, 0xFB, 0x3B, 0xF1, 0x27, 0xFF, 0x13,
+	0xF1, 0x4F, 0xC0, 0x3B, 0xFC, 0x6D, 0x13, 0xFE,
+	0x4F, 0x75, 0xBE, 0x50, 0xE1, 0x2F, 0x45, 0x82,
+	0x00, 0xF4, 0x51, 0x04, 0x13, 0xF3, 0x28, 0x01,
+	0x2A, 0x7E, 0x29, 0x4E, 0x91, 0x3C, 0x31, 0x0F,
+	0xC2, 0x28, 0x12, 0x1B, 0xE0, 0x01, 0x60, 0x2B,
+	0xC7, 0x29, 0xB0, 0x50, 0x11, 0x29, 0x29, 0x27,
+	0x00, 0x00, 0x14, 0x3F, 0x3C, 0xEF, 0x47, 0x2A,
+	0x47, 0xD0, 0x6C, 0x29, 0x0C, 0x3F, 0x0F, 0x3E,
+	0xC3, 0x3F, 0xBF, 0xD7, 0x4F, 0xEF, 0x13, 0xF5,
+	0x6C, 0x13, 0xF7, 0x6E, 0x00, 0x22, 0x00, 0x71,
+	0x3B, 0xFF, 0xF1, 0x27, 0xF3, 0x5F, 0xD4, 0x00,
+	0x69, 0x5B, 0x80, 0x6B, 0x6D, 0x6D, 0x3B, 0xFF,
+	0xFF, 0x02, 0xB2, 0x13, 0xFF, 0x27, 0xF7, 0x13,
+	0x30, 0x13, 0xF1, 0x63, 0x80, 0x1C, 0x40, 0x4F,
+	0x87, 0xFF, 0x59, 0xB4, 0x13, 0xF5, 0x14, 0x02,
+	0x62, 0xE0, 0x14, 0x06, 0x63, 0x91, 0x3C, 0xF0,
+	0x14, 0x02, 0xEF, 0x13, 0xF3, 0x51, 0x32, 0x14,
+	0x03, 0x2B, 0x14, 0x01, 0x00, 0x32, 0x28, 0x92,
+	0x3C, 0xD7, 0xDF, 0x13, 0x13, 0x00, 0x3A, 0x29,
+	0x13, 0xF7, 0x14, 0x8F, 0x54, 0xAF, 0x54, 0x97,
+	0x13, 0xFF, 0xCF, 0x63, 0xF7, 0x14, 0x22, 0x6E,
+	0x6E, 0x63, 0xF0, 0x14, 0x91, 0x63, 0xF5, 0x70,
+	0x82, 0xEC, 0x3B, 0xF1, 0x47, 0x70, 0x6E, 0x31,
+	0x6A, 0x00, 0x06, 0x3C, 0xD1, 0x2C, 0x6D, 0xFB,
+	0x63, 0xE0, 0x4F, 0xFF, 0x76, 0x93, 0x27, 0xFF,
+	0x3B, 0xF7, 0x6D, 0x63, 0xA2, 0x63, 0xE0, 0xBF,
+	0x13, 0xE0, 0x2E, 0x13, 0xDA, 0x13, 0xF8, 0x28,
+	0x11, 0x27, 0x31, 0x28, 0x02, 0x3A, 0x91, 0xFE,
+	0x3C, 0x12, 0x57, 0x50, 0x64, 0x22, 0x64, 0x32,
+	0x3C, 0x51, 0x28, 0x12, 0x52, 0x70, 0x26, 0xEF,
+	0x14, 0x15, 0x63, 0x53, 0x13, 0x58, 0x6D, 0x00,
+	0x31, 0x00, 0x46, 0x13, 0xD0, 0x81, 0x00, 0xFF,
+	0x13, 0xFF, 0x68, 0x3F, 0x69, 0x5E, 0x27, 0xFC,
+	0x12, 0xA2, 0x27, 0xF5, 0x28, 0x52, 0x13, 0xF2,
+	0xF0, 0x77, 0xF9, 0x13, 0xF3, 0x3B, 0xF0, 0x3B,
+	0xC1, 0x2B, 0x2C, 0x2A, 0x6C, 0x47, 0x6A, 0x77,
+	0x20, 0x6C, 0x6B, 0x6D, 0x63, 0xF1, 0x86, 0x20,
+	0x50, 0x40, 0x7B, 0x6C, 0x63, 0xFF, 0x8A, 0x94,
+	0x3B, 0xFF, 0x77, 0xF4, 0x2E, 0x8C, 0x14, 0x13,
+	0xFF, 0xFF, 0x13, 0xFB, 0x78, 0x40, 0x13, 0xF4,
+	0x3A, 0x71, 0x50, 0x32, 0x27, 0x42, 0x14, 0x10,
+	0x8D, 0x10, 0xFF, 0x50, 0x30, 0x13, 0xF2, 0x3E,
+	0x32, 0x78, 0xF0, 0x81, 0x71, 0x00, 0x2F, 0x13,
+	0x71, 0x00, 0x21, 0xBF, 0x13, 0xEC, 0x0C, 0x2A,
+	0x53, 0x14, 0x87, 0x7C, 0x1F, 0x7D, 0x3F, 0x13,
+	0xF9, 0x6F, 0x80, 0x7F, 0x6B, 0x13, 0xF8, 0x14,
+	0x03, 0x3B, 0xF4, 0x3C, 0xD0, 0x27, 0xF6, 0x3B,
+	0xF5, 0x98, 0xE4, 0x7F, 0x6A, 0x64, 0x01, 0x64,
+	0x40, 0x77, 0xF4, 0x29, 0x60, 0x77, 0xFF, 0x3E,
+	0xB6, 0x4F, 0xFF, 0xBF, 0x13, 0xF5, 0x6E, 0x91,
+	0xF0, 0x27, 0xF4, 0x77, 0xF0, 0x27, 0xFF, 0x13,
+	0xF8, 0x8B, 0x62, 0xFE, 0x26, 0x63, 0x64, 0x40,
+	0x00, 0xB1, 0x13, 0xF0, 0x4F, 0xD1, 0x1C, 0xD0,
+	0x14, 0x09, 0x29, 0x7F, 0x2B, 0x14, 0x04, 0x83,
+	0x63, 0x27, 0x18, 0x13, 0xE2, 0x32, 0x90, 0x84,
+	0xE2, 0x13, 0xE4, 0xFF, 0x13, 0xF7, 0x3E, 0xE4,
+	0x00, 0x6F, 0x01, 0x87, 0x27, 0xFF, 0x9F, 0xC0,
+	0x13, 0xF0, 0x63, 0xFE, 0xFF, 0x13, 0x81, 0x13,
+	0xFC, 0x77, 0xF5, 0x8A, 0xE2, 0x13, 0xF6, 0x8B,
+	0xF2, 0x51, 0x25, 0x77, 0xFF, 0xEF, 0x52, 0xC6,
+	0x63, 0xFF, 0x13, 0xF5, 0x2D, 0xA0, 0x01, 0xB2,
+	0x82, 0x4F, 0xDB, 0x27, 0xFA, 0xFF, 0x28, 0x03,
+	0xB3, 0x80, 0x8B, 0xB1, 0x14, 0x01, 0x9E, 0x81,
+	0x3C, 0x62, 0x8C, 0xF2, 0x28, 0x06, 0x8F, 0x8C,
+	0xB2, 0x29, 0x29, 0x69, 0x13, 0xDA, 0x13, 0x64,
+	0x3B, 0xE1, 0xAC, 0xD6, 0xFF, 0x63, 0x70, 0xBA,
+	0xD4, 0x27, 0xE5, 0x14, 0x0F, 0x15, 0x0F, 0x16,
+	0x26, 0x13, 0xFB, 0x63, 0xF0, 0xFF, 0x3B, 0xF5,
+	0x64, 0x17, 0x3B, 0xFF, 0x27, 0xF4, 0x26, 0xB0,
+	0xB3, 0x01, 0x28, 0x00, 0x77, 0xF5, 0xFF, 0xC4,
+	0x21, 0xA1, 0x31, 0xB3, 0xFE, 0x66, 0xB8, 0x3B,
+	0xFF, 0x27, 0xF3, 0x8B, 0xD4, 0x78, 0x03, 0xFF,
+	0x4F, 0xFF, 0x50, 0x16, 0x9E, 0x93, 0xC6, 0xC1,
+	0x78, 0x31, 0xB4, 0x81, 0xB3, 0x71, 0x50, 0xE3,
+	0xFF, 0xC8, 0xD1, 0x50, 0x12, 0x8D, 0x82, 0xB5,
+	0x11, 0x3A, 0xE4, 0xAB, 0xC7, 0x3B, 0x93, 0x29,
+	0x03, 0xAF, 0x5A, 0xB0, 0x2D, 0x13, 0xE6, 0x0C,
+	0xA3, 0x11, 0x14, 0xA9, 0x28, 0x6F, 0x29, 0x8F,
+	0xFE, 0x9F, 0xDA, 0x27, 0xF2, 0x13, 0xF7, 0x50,
+	0x44, 0x4F, 0xFF, 0x8B, 0xF4, 0xC0, 0xF2, 0x2C,
+	0x3B, 0x2C, 0x6A, 0x50, 0x00, 0xB3, 0xD1, 0x27,
+	0xF8, 0x2D, 0xC7, 0xFF, 0xDA, 0xB5, 0xF3, 0x64,
+	0x73, 0x4F, 0xFC, 0xDA, 0xE9, 0x94, 0x40, 0x2C,
+	0x2C, 0x13, 0xFC, 0xDC, 0xFA, 0xFF, 0xA0, 0x54,
+	0x62, 0x12, 0x9E, 0xD1, 0xA0, 0xD2, 0xC5, 0x61,
+	0xDD, 0x54, 0x79, 0x42, 0x29, 0xE2, 0xFF, 0xC9,
+	0x22, 0x4F, 0x15, 0x27, 0xE5, 0x27, 0xC5, 0x3D,
+	0x43, 0x76, 0xF1, 0xE2, 0xC6, 0x4F, 0xF4, 0xFF,
+	0x3B, 0xEF, 0x3D, 0x0F, 0x27, 0xEF, 0x3B, 0xF1,
+	0xD8, 0x40, 0xDB, 0xFB, 0x13, 0xF6, 0x50, 0xD0,
+	0xFF, 0x4F, 0xFB, 0xDB, 0xF0, 0xE8, 0xF3, 0xDB,
+	0xF0, 0x3C, 0x04, 0xB3, 0xF1, 0xB4, 0xF0, 0xEC,
+	0x61, 0xF9, 0xDB, 0xFF, 0x14, 0x0A, 0x9F, 0xF4,
+	0x29, 0x54, 0xDA, 0x12, 0x6E, 0x2E, 0xCF, 0xC0,
+	0xFF, 0xF0, 0x12, 0x13, 0xF2, 0xB3, 0x62, 0x00,
+	0x0F, 0xF0, 0x88, 0x3C, 0x01, 0xA0, 0x50, 0xC6,
+	0xF1, 0xDF, 0xA0, 0x41, 0x4F, 0x82, 0x2A, 0x8D,
+	0x10, 0xF0, 0x20, 0xC8, 0xC1, 0x3D, 0xF1, 0xCA,
+	0xB3, 0xFF, 0x63, 0x47, 0x77, 0x13, 0x3B, 0xA5,
+	0x77, 0xF0, 0x9F, 0x30, 0xF6, 0xA9, 0x13, 0xFF,
+	0x50, 0x9F, 0xCF, 0x3B, 0xEF, 0x4F, 0xE7, 0x2D,
+	0x6C, 0xB3, 0xF0, 0x77, 0xF4, 0x77, 0xE5, 0x13,
+	0xF5, 0xCF, 0x63, 0xFC, 0x07, 0x80, 0x2D, 0x2C,
+	0xC8, 0x01, 0xB7, 0x20, 0xF0, 0x00, 0x09, 0x72,
+	0xFD, 0x4F, 0xFF, 0xEF, 0xFB, 0xA2, 0xF7, 0xB1,
+	0x63, 0x13, 0xFD, 0x64, 0x01, 0x2C, 0xCD, 0x51,
+	0xFF, 0xDB, 0xF9, 0x14, 0x4F, 0xF0, 0x80, 0x36,
+	0xD2, 0xDA, 0xC1, 0x26, 0xC1, 0x3C, 0x13, 0xEF,
+	0xB0, 0xFF, 0xB0, 0xA0, 0xEF, 0xC0, 0x64, 0x11,
+	0xFA, 0x10, 0x8C, 0x71, 0x14, 0x07, 0x13, 0x84,
+	0x64, 0xB4, 0xFF, 0x78, 0x24, 0xB3, 0x11, 0x1E,
+	0xD0, 0xF6, 0xC7, 0x40, 0xE2, 0x63, 0xEF, 0x64,
+	0xEF, 0x66, 0x05, 0x23, 0x27, 0x27, 0x63, 0xEA,
+	0x6C, 0x6C, 0x2B, 0xC7, 0xF6, 0x77, 0xD4, 0xFE,
+	0xEF, 0x82, 0x63, 0xFF, 0xC0, 0x00, 0x22, 0x81,
+	0xFC, 0xA1, 0xEF, 0x00, 0xA0, 0x10, 0x6D, 0xCF,
+	0x14, 0x20, 0xDB, 0xF0, 0x2D, 0x2B, 0xB4, 0x42,
+	0x4F, 0xFF, 0xC7, 0x73, 0x3D, 0x90, 0xE7, 0x26,
+	0x22, 0xC5, 0x83, 0x27, 0xFA, 0x2E, 0x2E, 0x27,
+	0xD3, 0x13, 0xFF, 0x28, 0x6F, 0xFF, 0xF2, 0x61,
+	0x0E, 0xD0, 0xC6, 0x51, 0x14, 0x02, 0xC4, 0x30,
+	0x14, 0x02, 0x28, 0xE2, 0x50, 0xB1, 0xFB, 0xF2,
+	0x71, 0x01, 0x02, 0x28, 0x15, 0x9E, 0xE8, 0x50,
+	0xE6, 0x69, 0x67, 0xB0, 0xE0, 0xF0, 0xFD, 0x28,
+	0x0C, 0x77, 0xEF, 0x78, 0xDF, 0x79, 0xFF, 0x14,
+	0x90, 0x3B, 0xE1, 0x6D, 0x13, 0xF7, 0xFC, 0xB3,
+	0x70, 0xB3, 0xB1, 0x13, 0xF5, 0x9F, 0xFF, 0x8B,
+	0xF1, 0xFB, 0x70, 0x2D, 0x2B, 0x7B, 0x6D, 0x28,
+	0x00, 0xA8, 0xF2, 0x63, 0xF1, 0x4F, 0xE3, 0x2C,
+	0x13, 0xFF, 0xDB, 0xA1, 0xFF, 0x3A, 0x02, 0x9F,
+	0x15, 0xEE, 0xF0, 0x65, 0x53, 0xC6, 0x13, 0xDD,
+	0xE1, 0xCD, 0x07, 0x3B, 0xAB, 0x3F, 0x2F, 0x2E,
+	0xC9, 0x23, 0x52, 0x37, 0x7A, 0x83, 0xAF, 0x61,
+	0x9E, 0xC4, 0xED, 0x02, 0xFF, 0xF0, 0xC1, 0x50,
+	0xF2, 0x50, 0x74, 0xDD, 0xF2, 0xF0, 0xC0, 0x78,
+	0x41, 0x77, 0x06, 0x63, 0xA4, 0xE3, 0x13, 0xD0,
+	0x13, 0xE2, 0x13, 0xF7, 0x48, 0x48, 0x0C, 0xDE,
+	0xF0, 0x8B, 0xDF, 0xFF, 0x8C, 0xDF, 0x8D, 0xFF,
+	0xF6, 0xA0, 0x47, 0xE0, 0x13, 0xFA, 0x63, 0xE6,
+	0x77, 0xFE, 0x4F, 0xF5, 0xB0, 0x4F, 0xD2, 0x2D,
+	0x4F, 0xF3, 0xBD, 0x00, 0x6B, 0x6A, 0x2D, 0x2A,
+	0xF3, 0x27, 0xE1, 0xDC, 0x50, 0x13, 0xFF, 0xEF,
+	0x91, 0x6D, 0x2D, 0x00, 0x31, 0x13, 0x26, 0xFF,
+	0x3A, 0xF0, 0x13, 0xFA, 0x9F, 0xE1, 0xC4, 0x31,
+	0xC7, 0xF1, 0xC7, 0xEB, 0x13, 0xF0, 0x00, 0x03,
+	0xFF, 0x13, 0xEB, 0xC3, 0x10, 0xC3, 0x52, 0xF7,
+	0x61, 0x9F, 0x81, 0x14, 0x05, 0xF9, 0xC0, 0x50,
+	0x20, 0xDF, 0x8D, 0xD2, 0x50, 0x02, 0x2A, 0x8C,
+	0x51, 0x27, 0x88, 0xC7, 0xB1, 0x27, 0xC0, 0x2B,
+	0xE2, 0xC3, 0x27, 0xF0, 0xF7, 0x45, 0x48, 0x47,
+	0x0C, 0x2A, 0x39, 0x00, 0x14, 0x40, 0xF7, 0x00,
+	0x1F, 0xE0, 0x26, 0xA1, 0xAF, 0x13, 0xF9, 0x2D,
+	0x3B, 0xF5, 0xE1, 0xFC, 0xC7, 0xFF, 0xFF, 0x13,
+	0xF3, 0xFC, 0xF2, 0xEE, 0xE0, 0x28, 0x21, 0x9F,
+	0xF2, 0xF1, 0x34, 0x27, 0xFF, 0x3B, 0xF3, 0xE9,
+	0x50, 0x55, 0xBA, 0xE4, 0x27, 0xFB, 0x2C, 0xB3,
+	0xF0, 0x2B, 0x0C, 0x69, 0x11, 0xFA, 0x77, 0xED,
+	0x13, 0xF6, 0x14, 0x33, 0x13, 0xE6, 0xF4, 0x50,
+	0x47, 0x4B, 0x72, 0x2A, 0x7F, 0x0C, 0x8B, 0x81,
+	0x9F, 0x22, 0x28, 0xB2, 0x65, 0x41, 0xA1, 0xE3,
+	0xA2, 0x80, 0xF2, 0xB1, 0xC7, 0xB4, 0x76, 0x9F,
+	0xF4, 0x29, 0x28, 0x27, 0xF2, 0x21, 0x47, 0xF1,
+	0x50, 0x05, 0x7F, 0x48, 0x13, 0xF0, 0x28, 0x00,
+	0x13, 0xFF, 0x13, 0xEF, 0x4F, 0x92, 0x27, 0xFE,
+	0xE0, 0xE0, 0xFF, 0x78, 0x00, 0xB3, 0x97, 0x00,
+	0x9D, 0xB3, 0xFF, 0x0E, 0xA1, 0x9F, 0xF0, 0x27,
+	0xA0, 0xDC, 0x30, 0x27, 0x6C, 0x6D, 0x27, 0xF1,
+	0x2B, 0x2E, 0x50, 0x21, 0x9F, 0xFF, 0x13, 0xF7,
+	0xFF, 0xEF, 0x41, 0xBA, 0xF5, 0x3B, 0xE6, 0xC7,
+	0xF4, 0xF0, 0x30, 0xB3, 0xE1, 0x8B, 0xE5, 0xA0,
+	0x56, 0xF7, 0x8D, 0x32, 0x14, 0x36, 0x3B, 0xD2,
+	0x66, 0x25, 0x47, 0x00, 0x00, 0xA1, 0x65, 0x1D,
+	0x83, 0xBF, 0xA1, 0xC2, 0x28, 0xDC, 0xB0, 0xF1,
+	0x70, 0x50, 0xD2, 0x65, 0xA1, 0xDC, 0x93, 0xC8,
+	0x74, 0x3F, 0x29, 0x29, 0xF1, 0x10, 0x02, 0xA3,
+	0x27, 0xF8, 0xF6, 0x21, 0x27, 0xFF, 0x27, 0x8F,
+	0xC7, 0x64, 0x1B, 0x4F, 0xF7, 0x6D, 0x6D, 0x2C,
+	0xB3, 0xF1, 0x14, 0x0F, 0x13, 0xFF, 0xC7, 0x8B,
+	0xF3, 0x4F, 0xD2, 0x2C, 0x2B, 0x6A, 0xF1, 0x80,
+	0x14, 0x01, 0x3B, 0xF1, 0xFF, 0x79, 0x42, 0x51,
+	0x30, 0xB3, 0xFD, 0x4C, 0x74, 0x4C, 0xE4, 0xCE,
+	0xF6, 0x13, 0xF9, 0x8B, 0xF0, 0xFF, 0x64, 0x20,
+	0xAC, 0x50, 0xEE, 0x30, 0x3B, 0xFD, 0x13, 0xFA,
+	0x8E, 0x23, 0x52, 0x39, 0x14, 0x31, 0xFF, 0x14,
+	0x43, 0xA9, 0x10, 0xC9, 0xD3, 0xF1, 0x91, 0x65,
+	0xB4, 0xD6, 0xB3, 0xF0, 0xA1, 0xDC, 0x54, 0xFD,
+	0x13, 0xD1, 0xAB, 0x91, 0xE0, 0x80, 0x5C, 0x01,
+	0xBB, 0x24, 0x27, 0xF0, 0x46, 0x27, 0xFF, 0xE4,
+	0x3C, 0x3F, 0x77, 0x95, 0x3D, 0x6B, 0x27, 0x27,
+	0xED, 0xE0, 0x2C, 0x6C, 0xDF, 0x27, 0xFF, 0x27,
+	0xFF, 0x0C, 0xB2, 0x45, 0xEE, 0x90, 0xC6, 0xB1,
+	0x13, 0x90, 0x9F, 0xB0, 0xEF, 0xB4, 0x41, 0xD5,
+	0x92, 0xF1, 0x51, 0x6B, 0x13, 0xFF, 0x13, 0xF9,
+	0xF7, 0x33, 0x27, 0xFD, 0xFE, 0xEE, 0x34, 0xF3,
+	0xF0, 0xDB, 0xED, 0x27, 0xFA, 0xA2, 0x15, 0x7C,
+	0xC2, 0x78, 0xE8, 0x47, 0x2F, 0x47, 0x45, 0x00,
+	0x10, 0x47, 0xF0, 0x70, 0xF9, 0x90, 0x64, 0xE3,
+	0x28, 0x01, 0xD8, 0xDD, 0xF0, 0x79, 0xF2, 0x28,
+	0x5A, 0x31, 0xF0, 0x41, 0x0C, 0x29, 0x25, 0x47,
+	0x28, 0xBF, 0x70, 0x3B, 0x3B, 0x3F, 0x14, 0x22,
+	0x13, 0xF9, 0x8C, 0x10, 0xFF, 0x4F, 0xFF, 0x50,
+	0xEF, 0x52, 0x0F, 0x53, 0x21, 0x97, 0xC1, 0x4E,
+	0xA5, 0x3C, 0x4F, 0x63, 0xF9, 0xA3, 0xC7, 0x61,
+	0x2B, 0xEF, 0xF0, 0x2D, 0x2B, 0x2D, 0xE8, 0xA1,
+	0xB3, 0x91, 0xB7, 0xA0, 0x31, 0x6A, 0xB3, 0xF1,
+	0x00, 0xE2, 0x6B, 0x13, 0xFF, 0x13, 0xFB, 0xED,
+	0xF2, 0x9F, 0x13, 0xFE, 0x6E, 0x6C, 0xC7, 0xB0,
+	0x3B, 0xE1, 0xEF, 0xF6, 0xDC, 0x65, 0x3B, 0xF8,
+	0xF3, 0xB6, 0x04, 0x13, 0xF4, 0xB7, 0x02, 0x51,
+	0x09, 0x47, 0x45, 0xE0, 0x42, 0x4F, 0x61, 0xED,
+	0x79, 0x61, 0x3C, 0x12, 0x28, 0x12, 0x28, 0x14,
+	0x01, 0x27, 0xC2, 0x25, 0x27, 0xC2, 0x0F, 0x3B,
+	0x3B, 0x3B, 0x2C, 0x14, 0x21, 0xA0, 0x09, 0x28,
+	0x01, 0x63, 0xFF, 0xFF, 0x64, 0xFF, 0x66, 0x1F,
+	0x13, 0xF2, 0x13, 0xE1, 0x6F, 0x8C, 0xF1, 0xC6,
+	0xC2, 0xE2, 0x27, 0xFA, 0xFE, 0xEE, 0x82, 0xE7,
+	0x01, 0x63, 0x90, 0xF9, 0xF1, 0xC7, 0xF0, 0x58,
+	0xF2, 0xC8, 0xC1, 0x6D, 0xF7, 0x3B, 0xFF, 0x13,
+	0xFC, 0xF7, 0x60, 0x4F, 0xFE, 0x2E, 0xE8, 0xD0,
+	0x13, 0xF0, 0xF3, 0xF0, 0x7F, 0x2E, 0x13, 0xFE,
+	0xCE, 0x92, 0x13, 0xE8, 0x27, 0xF1, 0xA2, 0xF4,
+	0x14, 0x33, 0x65, 0x17, 0x1F, 0x45, 0x45, 0x45,
+	0x65, 0x50, 0xD1, 0xB2, 0xA2, 0x11, 0x00, 0x32,
+	0x8D, 0x60, 0xC2, 0x14, 0x02, 0x13, 0xD0, 0x28,
+	0x29, 0x2F, 0x2F, 0xE7, 0x72, 0x3F, 0xD2, 0x28,
+	0x30, 0x14, 0x20, 0x44, 0x54, 0x96, 0x48, 0x47,
+	0x3C, 0x10, 0x0C, 0x0F, 0x0C, 0x26, 0x26, 0x26,
+	0x78, 0x2F, 0x79, 0x4F, 0x27, 0xFF, 0xF5, 0xA0,
+	0xFF, 0xAD, 0x91, 0xAD, 0xC2, 0x13, 0xFF, 0x13,
+	0xF7, 0xFC, 0x20, 0xDB, 0xE1, 0x62, 0xD1, 0x3A,
+	0xC2, 0xFE, 0xFA, 0x11, 0x78, 0x30, 0xEF, 0xF1,
+	0xA0, 0xE0, 0x78, 0x80, 0x27, 0xFF, 0x13, 0xFF,
+	0x0C, 0xFF, 0x63, 0xFF, 0x13, 0xF3, 0x52, 0x28,
+	0x63, 0xF8, 0x86, 0xB3, 0x13, 0xE7, 0x3B, 0xF2,
+	0x64, 0xC4, 0xFC, 0x14, 0x3E, 0x65, 0x10, 0xF3,
+	0x12, 0x14, 0x06, 0x13, 0xE2, 0xA1, 0xB0, 0x25,
+	0x25, 0xBB, 0xFF, 0x60, 0x2B, 0x13, 0xF2, 0x3B,
+	0xE2, 0x00, 0x61, 0x3F, 0xA6, 0xD3, 0x9F, 0xD0,
+	0xFF, 0xF8, 0x53, 0x13, 0xE1, 0x14, 0x20, 0x00,
+	0x25, 0x8C, 0xD4, 0x00, 0xB9, 0x8E, 0x0D, 0x16,
+	0xF2, 0x7F, 0x0C, 0x9F, 0xE0, 0x27, 0xE8, 0x5E,
+	0x67, 0x27, 0xFF, 0x13, 0xF5, 0xF0, 0x11, 0x77,
+	0xF1, 0x7F, 0x6C, 0x8C, 0x10, 0x4F, 0xF0, 0x13,
+	0xF6, 0x3B, 0xFF, 0xC7, 0xF6, 0x8C, 0x64, 0xEF,
+	0xE3, 0xFF, 0xB4, 0xB8, 0xB3, 0xF1, 0xD4, 0x56,
+	0x7C, 0x40, 0xB5, 0x34, 0x77, 0xF7, 0xEE, 0x91,
+	0x5E, 0xC3, 0xF5, 0x28, 0x84, 0x13, 0xF5, 0x14,
+	0x09, 0x8D, 0x87, 0x2D, 0x24, 0xA0, 0x46, 0x79,
+	0x81, 0xF1, 0xDD, 0x60, 0x8C, 0x22, 0x13, 0xE1,
+	0x79, 0x61, 0x27, 0x28, 0x27, 0x13, 0xF4, 0xAF,
+	0x3B, 0xF1, 0x3B, 0xF6, 0xB0, 0x44, 0xBA, 0xD6,
+	0x8C, 0x10, 0x7C, 0xB0, 0x11, 0xBD, 0xFE, 0x14,
+	0x87, 0x15, 0x4D, 0x16, 0x2A, 0x13, 0xF2, 0x3B,
+	0x2D, 0x3B, 0xFF, 0x27, 0xF2, 0x0C, 0x3C, 0x2C,
+	0x2A, 0x84, 0x41, 0xC2, 0xF8, 0xED, 0xA5, 0xC9,
+	0x30, 0x6D, 0x6A, 0xFF, 0x14, 0xF0, 0xDB, 0xFF,
+	0x8B, 0xF7, 0x13, 0xF6, 0xB4, 0xB7, 0x00, 0xF4,
+	0x63, 0xB0, 0x3C, 0x00, 0xFF, 0x3B, 0xF1, 0x13,
+	0xFE, 0x74, 0x41, 0x7F, 0x32, 0x6A, 0x14, 0x27,
+	0xFA, 0x28, 0x69, 0xE2, 0x35, 0xFE, 0xA1, 0xD5,
+	0xCA, 0x21, 0x3C, 0x12, 0xE7, 0x31, 0x8B, 0x80,
+	0x13, 0xF1, 0x90, 0xE5, 0x3F, 0xE8, 0x50, 0x21,
+	0x27, 0xF0, 0xF6, 0xE4, 0x48, 0x00, 0x01, 0x0C,
+	0x27, 0x67, 0x0F, 0x6A, 0x67, 0x67, 0x67, 0xB4,
+	0x90, 0x14, 0x7F, 0x00, 0x4F, 0x2A, 0x87, 0xF9,
+	0x13, 0xFF, 0x28, 0x5A, 0x13, 0xFD, 0xEA, 0x82,
+	0x80, 0x01, 0x2A, 0x2A, 0xEF, 0xD0, 0xCB, 0x00,
+	0x24, 0xD2, 0xD0, 0x2C, 0x2D, 0x78, 0xD1, 0x6C,
+	0xEF, 0xFF, 0x13, 0xFF, 0xFF, 0x9E, 0xE1, 0xDB,
+	0xE7, 0xEF, 0xF0, 0x41, 0x91, 0x13, 0xF1, 0xB3,
+	0xF5, 0xC8, 0x57, 0x13, 0xF0, 0x7B, 0x27, 0xD9,
+	0xA0, 0xFA, 0x20, 0x28, 0x63, 0xF7, 0x60, 0x2E,
+	0x8C, 0x10, 0x13, 0xE7, 0xEF, 0xA1, 0x86, 0x13,
+	0xF5, 0xDF, 0x05, 0x47, 0xB6, 0x13, 0x14, 0x08,
+	0x13, 0xF4, 0x77, 0xF3, 0x30, 0x2C, 0x3F, 0x13,
+	0xF8, 0xF6, 0x53, 0x6A, 0x69, 0x6A, 0x6C, 0x6B,
+	0x6C, 0x0D, 0x93, 0x50, 0x90, 0x25, 0x00, 0x0A,
+	0x26, 0x00, 0x10, 0x00, 0x83, 0xE5, 0x28, 0xE2,
+	0x00, 0x93, 0x02, 0x42, 0x26, 0x26, 0xF5, 0xE0,
+	0x2C, 0x63, 0xDF, 0xFC, 0x3C, 0x85, 0x13, 0xFF,
+	0x77, 0xE1, 0xB4, 0x02, 0x8B, 0xD1, 0x77, 0xE0,
+	0x6B, 0x6D, 0xE7, 0x4F, 0xF2, 0xEE, 0x13, 0x9F,
+	0xFD, 0x6D, 0x6E, 0xF0, 0x11, 0x13, 0xFF, 0x13,
+	0xF9, 0xF2, 0x41, 0x02, 0x64, 0x01, 0x9D, 0xB0,
+	0x9F, 0xFE, 0x28, 0x26, 0xB1, 0x41, 0x2D, 0xFF,
+	0xB1, 0x70, 0x1B, 0x42, 0x13, 0xF1, 0xF8, 0x61,
+	0x13, 0xEA, 0x79, 0x74, 0x65, 0x4E, 0xCA, 0x32,
+	0x7F, 0x2D, 0xCD, 0x91, 0x28, 0x13, 0x13, 0xF4,
+	0x77, 0xF3, 0x3B, 0xF1, 0xF6, 0xF7, 0x28, 0x01,
+	0xFF, 0xF5, 0x51, 0xA1, 0xB1, 0x43, 0x11, 0x50,
+	0x82, 0x12, 0x53, 0x14, 0x25, 0x01, 0x06, 0x14,
+	0xC0, 0xFF, 0x16, 0x04, 0x52, 0xE2, 0xF5, 0x90,
+	0x77, 0xCF, 0x64, 0xD6, 0x27, 0xFF, 0x27, 0xF1,
+	0xDB, 0xE2, 0xFF, 0xB3, 0xD0, 0xF9, 0x43, 0xEF,
+	0xF2, 0x28, 0xE3, 0x13, 0xFF, 0x13, 0xFF, 0x27,
+	0xFD, 0xA5, 0x64, 0xE7, 0xA5, 0xE0, 0x27, 0x98,
+	0xEF, 0xF5, 0x28, 0x26, 0x14, 0x01, 0x74, 0x61,
+	0x3C, 0x82, 0x3F, 0x2A, 0x2A, 0x13, 0xF2, 0x8C,
+	0x01, 0xA7, 0x22, 0xC9, 0xCA, 0x3C, 0xF9, 0xF3,
+	0x17, 0xCD, 0xF3, 0x21, 0xB5, 0x11, 0x29, 0x28,
+	0xEF, 0x20, 0xF6, 0x70, 0x40, 0x4F, 0xF2, 0xFF,
+	0x3B, 0xF3, 0xB8, 0xB7, 0x3C, 0x30, 0x56, 0xA0,
+	0xD0, 0x40, 0x56, 0xF1, 0xF3, 0x90, 0x14, 0x13,
+	0xF7, 0x3B, 0xDF, 0x3C, 0xFF, 0x27, 0xEF, 0x8B,
+	0xFA, 0x6D, 0x3B, 0xFF, 0xFB, 0x70, 0x00, 0x10,
+	0xFD, 0xB7, 0x30, 0xF9, 0xC0, 0x77, 0x51, 0xEF,
+	0xF0, 0xFE, 0x70, 0xDC, 0xC0, 0x6C, 0x63, 0xFF,
+	0xF9, 0x27, 0xFF, 0x27, 0xFF, 0xFC, 0x74, 0x4D,
+	0xB1, 0x13, 0xFF, 0x26, 0x27, 0x9C, 0x53, 0xFF,
+	0x9C, 0xB2, 0xD9, 0xE0, 0xF1, 0x21, 0xA8, 0x31,
+	0x3C, 0xF5, 0x8E, 0x04, 0x3C, 0xF7, 0x8D, 0x78,
+	0xBB, 0x8E, 0x14, 0x2B, 0xB9, 0x80, 0xC9, 0xC1,
+	0xFF, 0x60, 0x2F, 0xF2, 0x10, 0xF5, 0x32, 0x7F,
+	0x42, 0x13, 0xF3, 0x3E, 0xE5, 0xF0, 0x71, 0x28,
+	0x02, 0x67, 0x80, 0xF4, 0xA0, 0x57, 0x31, 0xEF,
+	0x4F, 0x9C, 0x65, 0xBF, 0x13, 0xF5, 0x6D, 0x9F,
+	0xBF, 0x13, 0xF9, 0x00, 0x06, 0x73, 0x91, 0xDF,
+	0xEB, 0xC1, 0xEF, 0xF3, 0x2A, 0x4E, 0xE1, 0x9F,
+	0x32, 0x9F, 0xF2, 0x4F, 0xF0, 0xCC, 0x40, 0xCF,
+	0x77, 0xFF, 0x3B, 0xF1, 0x6D, 0x2D, 0xF0, 0x65,
+	0x4F, 0xFF, 0x5C, 0x42, 0xAC, 0xC0, 0xFF, 0x8B,
+	0xF1, 0x77, 0xF5, 0x27, 0xFA, 0xEB, 0x21, 0x9C,
+	0x52, 0xD9, 0x10, 0x50, 0xB0, 0x27, 0xF2, 0xFF,
+	0xC5, 0x81, 0x00, 0x07, 0xCF, 0xA1, 0x64, 0x12,
+	0xF2, 0x8B, 0x13, 0xE6, 0x13, 0xF0, 0x2B, 0xB4,
+	0xFF, 0x13, 0xF0, 0xDB, 0xE1, 0xFF, 0xE2, 0xE8,
+	0x80, 0x90, 0x92, 0xF0, 0x48, 0x28, 0x04, 0xCB,
+	0x51, 0x76, 0x29, 0x22, 0x20, 0xF5, 0x10, 0xC6,
+	0xCA, 0x28, 0x30, 0xB0, 0x79, 0xEF, 0x26, 0xFD,
+	0x11, 0x40, 0xB3, 0xCF, 0x13, 0xFF, 0x13, 0xF2,
+	0x8B, 0xE3, 0x4F, 0xF2, 0x2D, 0x12, 0xE1, 0xFD,
+	0x9F, 0xD0, 0xC7, 0xF1, 0x29, 0x02, 0x00, 0xB1,
+	0x8B, 0xFF, 0x13, 0xF2, 0x6D, 0x8C, 0x63, 0x66,
+	0x6E, 0x63, 0xF9, 0xEF, 0xE6, 0x0C, 0x0C, 0xB9,
+	0x21, 0xC7, 0xB1, 0x2A, 0xFF, 0x4F, 0xFA, 0xA9,
+	0x21, 0x27, 0xF3, 0xFA, 0xB4, 0x88, 0x41, 0x13,
+	0xF3, 0x65, 0x30, 0xED, 0xE4, 0xFC, 0x51, 0x54,
+	0x13, 0xD3, 0x28, 0xC6, 0xCC, 0x92, 0xB5, 0xE7,
+	0xEC, 0x28, 0x2F, 0x2C, 0x70, 0x28, 0x32, 0xB1,
+	0x14, 0x30, 0xFC, 0x80, 0x2B, 0x2E, 0x2E, 0x2B,
+	0xF7, 0x13, 0xF9, 0x28, 0x07, 0x14, 0x02, 0xCC,
+	0x81, 0x26, 0xEF, 0x06, 0x79, 0x7F, 0xA2, 0xC4,
+	0xDF, 0x2D, 0x40, 0xFD, 0x81, 0x2B, 0xA3, 0xB3,
+	0xA6, 0x40, 0x27, 0xFF, 0xF0, 0x05, 0x13, 0xF5,
+	0xEF, 0xC6, 0xF4, 0xC7, 0x00, 0xDB, 0x41, 0x6C,
+	0xDB, 0xF0, 0xB5, 0x30, 0xDB, 0xFF, 0x63, 0xF6,
+	0xFF, 0xA0, 0x41, 0x14, 0x32, 0x13, 0xFF, 0x4F,
+	0x71, 0xED, 0x93, 0x08, 0x20, 0x13, 0xFF, 0x3B,
+	0xF2, 0xFF, 0xFB, 0x50, 0x0A, 0x50, 0x14, 0x01,
+	0x23, 0x60, 0x13, 0xF4, 0xB1, 0x51, 0xD9, 0xD2,
+	0x65, 0x91, 0xFF, 0xBD, 0x31, 0xB5, 0x40, 0x3D,
+	0x05, 0xB5, 0xE6, 0xB1, 0x97, 0xC5, 0x91, 0x13,
+	0xF4, 0xFF, 0xA2, 0xDF, 0x47, 0x01, 0x0C, 0x72,
+	0x2C, 0xCC, 0x18, 0x28, 0x00, 0x64, 0x21, 0x56,
+	0x62, 0x2E, 0x14, 0xF7, 0x27, 0x95, 0x00, 0x1C,
+	0x29, 0x6B, 0x14, 0x13, 0x2B, 0x14, 0x1F, 0xC9,
+	0x50, 0x13, 0xFB, 0xEF, 0x3B, 0xF5, 0xAC, 0xC1,
+	0xB2, 0xF2, 0x6D, 0x14, 0x31, 0xDB, 0xF2, 0x8B,
+	0xF2, 0xDB, 0xFE, 0xF8, 0x13, 0xFF, 0x8B, 0xFD,
+	0xEB, 0x50, 0xEC, 0xF0, 0x9F, 0xF0, 0x2A, 0x2F,
+	0x2A, 0xFF, 0x9F, 0xF4, 0x4F, 0xFD, 0xC4, 0x20,
+	0x28, 0x22, 0xEC, 0xC1, 0x27, 0xF5, 0x28, 0x21,
+	0x15, 0x02, 0xFF, 0xEE, 0x40, 0x8D, 0xE2, 0xC9,
+	0x40, 0x29, 0xD0, 0x7A, 0x44, 0xDD, 0xBB, 0xC4,
+	0xF6, 0x27, 0xF2, 0xBF, 0x2C, 0xE5, 0x2F, 0xD4,
+	0x73, 0x13, 0xF9, 0x14, 0x03, 0xBB, 0x22, 0x50,
+	0x32, 0xA7, 0xA0, 0xFF, 0x14, 0x0F, 0x00, 0xBF,
+	0x14, 0x1C, 0x13, 0xFF, 0x13, 0xFE, 0xDB, 0xE2,
+	0x3B, 0xE2, 0x4F, 0x41, 0xFF, 0xEF, 0xF2, 0x50,
+	0xF0, 0x3B, 0xFF, 0x27, 0xF8, 0x28, 0x02, 0x9F,
+	0xFF, 0x13, 0xF1, 0xCD, 0x03, 0xEF, 0x94, 0x40,
+	0x13, 0xFE, 0xB3, 0xF1, 0x26, 0xC4, 0x31, 0x8C,
+	0x50, 0xFB, 0x60, 0x13, 0xF5, 0xFF, 0x50, 0xA1,
+	0x29, 0x40, 0x79, 0x74, 0x14, 0x21, 0x13, 0xF4,
+	0x29, 0x02, 0xD2, 0x34, 0xF1, 0x97, 0xCF, 0xC4,
+	0xD5, 0x4C, 0x20, 0x2F, 0x2C, 0x4C, 0x70, 0x40,
+	0xF3, 0x13, 0xF0, 0xFB, 0x61, 0xFF, 0x13, 0xFA,
+	0x50, 0x22, 0xCF, 0x33, 0x14, 0x03, 0xB4, 0xED,
+	0x28, 0xDF, 0xF6, 0x00, 0x3C, 0x58, 0xD9, 0x3C,
+	0x61, 0xAB, 0xD7, 0x2D, 0xFF, 0x80, 0x27, 0xFF,
+	0x2D, 0x6B, 0x28, 0x01, 0xF3, 0x4F, 0xB2, 0xEF,
+	0xD0, 0x8C, 0x40, 0x3B, 0xF1, 0x2B, 0x2D, 0x78,
+	0xA2, 0x9F, 0xFD, 0xFF, 0x25, 0xB0, 0xCA, 0x37,
+	0xDB, 0x32, 0x4F, 0xFD, 0xDB, 0xE6, 0xEF, 0xF8,
+	0x4F, 0xE5, 0x13, 0xF7, 0xFF, 0x3A, 0xF2, 0xC8,
+	0xB2, 0x63, 0xF3, 0x3C, 0xB2, 0x50, 0xF1, 0x13,
+	0xD3, 0x13, 0xF5, 0x25, 0xC3, 0xFF, 0x13, 0xDB,
+	0xF8, 0x11, 0x63, 0x31, 0xED, 0xC0, 0x3B, 0xF3,
+	0x27, 0xF7, 0x13, 0xF2, 0xF3, 0x14, 0x3D, 0x2B,
+	0x2B, 0x50, 0x23, 0x8C, 0x31, 0x8C, 0x01, 0x55,
+	0xD3, 0x29, 0x77, 0xCE, 0xFE, 0x3C, 0xEA, 0xCA,
+	0x0B, 0x4F, 0xB3, 0x50, 0x17, 0x13, 0xFF, 0x8C,
+	0xC3, 0x8B, 0x00, 0x2C, 0x1F, 0x2B, 0x6C, 0x2B,
+	0xB3, 0xB1, 0x50, 0x12, 0x8B, 0xF1, 0x3C, 0xF1,
+	0x8D, 0x00, 0xF7, 0x13, 0xFF, 0x13, 0xF9, 0xF6,
+	0x03, 0x13, 0xFC, 0x6E, 0x4F, 0xF2, 0x50, 0x12,
+	0x57, 0xC7, 0xFF, 0xA0, 0xB4, 0xDB, 0xF0, 0x12,
+	0xB4, 0xB4, 0x60, 0x13, 0xF9, 0x79, 0x23, 0x71,
+	0x31, 0xED, 0xE2, 0xFF, 0x8D, 0x73, 0x52, 0x01,
+	0x52, 0x32, 0xD2, 0x10, 0xF6, 0x92, 0x9E, 0x1A,
+	0x14, 0x42, 0x3B, 0xF1, 0xFF, 0x17, 0x82, 0x27,
+	0xF3, 0xF5, 0x92, 0xA5, 0xA3, 0xF2, 0x10, 0xF8,
+	0x20, 0x16, 0xD3, 0xF7, 0x52, 0xFE, 0x14, 0x0A,
+	0xDC, 0x68, 0x65, 0x0F, 0xF2, 0xC7, 0x63, 0xDA,
+	0xF9, 0x53, 0x8B, 0xFA, 0x6D, 0x4F, 0x2F, 0xF0,
+	0xC1, 0x6C, 0x6C, 0xFC, 0xC0, 0x13, 0xB2, 0xC7,
+	0xE1, 0xC7, 0xF0, 0xFF, 0xAC, 0xB2, 0x77, 0xE1,
+	0x13, 0xFF, 0x13, 0xFF, 0xDB, 0xF3, 0xB2, 0x05,
+	0xF1, 0xF0, 0x3B, 0xF5, 0x6F, 0x2B, 0x1B, 0xA8,
+	0xB3, 0xE5, 0x2B, 0x4E, 0x02, 0x14, 0x02, 0xB4,
+	0x24, 0x13, 0xF9, 0xFF, 0x79, 0x74, 0xA1, 0x75,
+	0x29, 0x63, 0x2A, 0x73, 0x13, 0xE5, 0x14, 0x2B,
+	0x28, 0xA3, 0x3F, 0xB1, 0xFF, 0xC8, 0xD1, 0xCD,
+	0x30, 0x13, 0xF2, 0xF2, 0x30, 0x18, 0xB2, 0x2A,
+	0xE7, 0xCE, 0xD2, 0xB4, 0x51, 0xFB, 0x13, 0xFF,
+	0xA1, 0x1F, 0xF2, 0x5A, 0x27, 0xD9, 0x13, 0xFC,
+	0x2F, 0x13, 0xC0, 0x13, 0xF2, 0xBE, 0xB2, 0x80,
+	0x2C, 0x63, 0xD2, 0x77, 0xA0, 0x8C, 0x40, 0xC7,
+	0xF2, 0x3D, 0x00, 0x6C, 0xFF, 0xC8, 0xC0, 0x3B,
+	0xFF, 0x27, 0xFE, 0xF4, 0xE1, 0xDA, 0x86, 0xC2,
+	0x55, 0x27, 0xF1, 0x78, 0x02, 0xDF, 0x15, 0x86,
+	0xF2, 0x12, 0x2D, 0x13, 0xF0, 0x6F, 0xCB, 0x27,
+	0xF6, 0xC9, 0x54, 0x4C, 0xE1, 0xFF, 0x65, 0x75,
+	0x13, 0xF5, 0xCB, 0x01, 0xC7, 0xB2, 0xCD, 0xD8,
+	0xC6, 0xCA, 0x14, 0x32, 0x13, 0xF0, 0x9F, 0x14,
+	0x01, 0x2C, 0x2D, 0xA5, 0x60, 0x3D, 0xE1, 0x13,
+	0xF8, 0xDC, 0x73, 0x78, 0x43, 0xFF, 0x28, 0x09,
+	0x8C, 0xBF, 0x8D, 0xDF, 0xF6, 0x60, 0x27, 0xD5,
+	0xEF, 0x22, 0x13, 0xFF, 0xDB, 0x60, 0x68, 0x6B,
+	0x8B, 0xD1, 0xB3, 0xB1, 0x6D, 0x13, 0xF2, 0x2B,
+	0x2A, 0x2E, 0xFF, 0x13, 0xF1, 0xB4, 0xA0, 0x4F,
+	0xFF, 0x4F, 0xF3, 0xFD, 0xE0, 0xFE, 0x20, 0x13,
+	0xF8, 0x9F, 0xF5, 0x7F, 0x6E, 0x00, 0x10, 0x84,
+	0x26, 0xCF, 0xCE, 0xEE, 0x32, 0xC0, 0xF1, 0x13,
+	0xFF, 0x8B, 0xB3, 0xFF, 0x51, 0xA5, 0x63, 0xF6,
+	0x64, 0xD2, 0xDE, 0xB0, 0xDB, 0xC4, 0xE2, 0x2B,
+	0x28, 0xE5, 0xEF, 0x61, 0x35, 0x2C, 0x0C, 0x13,
+	0xF7, 0x29, 0x02, 0x2A, 0x3F, 0x31, 0x2A, 0x28,
+	0x46, 0xFF, 0x07, 0x71, 0x3C, 0x63, 0xA0, 0x1F,
+	0xA1, 0x3F, 0xB6, 0x89, 0x27, 0xD6, 0x13, 0xFF,
+	0x27, 0xF5, 0xFF, 0xC7, 0x40, 0xDB, 0x93, 0xF0,
+	0x00, 0xDB, 0xF2, 0x36, 0x90, 0xB4, 0xC2, 0x63,
+	0xFF, 0x13, 0xF7, 0xFF, 0xEF, 0x23, 0x13, 0xFF,
+	0x4F, 0xF3, 0x94, 0x01, 0xD4, 0xD2, 0x27, 0x93,
+	0x77, 0xF5, 0x00, 0x0C, 0xFF, 0xEF, 0xF3, 0xA0,
+	0xB4, 0x65, 0x74, 0x77, 0x43, 0x13, 0xF5, 0xB5,
+	0xA4, 0xEF, 0xC4, 0xF6, 0x50, 0xE7, 0x6C, 0x18,
+	0x28, 0xAE, 0xDD, 0x40, 0x2A, 0x2B, 0xB9, 0xF2,
+	0xC5, 0xD0, 0x13, 0xFB, 0xFF, 0xFE, 0xD2, 0x14,
+	0x32, 0xB4, 0x1F, 0xB5, 0x3F, 0x3C, 0xB9, 0xDB,
+	0x53, 0x27, 0xE1, 0xEF, 0x20, 0xE7, 0x4F, 0x02,
+	0x27, 0xFF, 0xB3, 0xB2, 0x6D, 0x6D, 0x64, 0x00,
+	0xF0, 0x10, 0x4F, 0xF0, 0xFF, 0xC4, 0x20, 0x28,
+	0xC2, 0x77, 0xFD, 0x0B, 0xD5, 0x78, 0x53, 0x27,
+	0xFF, 0x27, 0xF2, 0xFF, 0xB0, 0xFF, 0x8B, 0xC1,
+	0x0A, 0xE0, 0x28, 0x3C, 0x27, 0xF3, 0x14, 0x3B,
+	0xDA, 0x56, 0xEA, 0x62, 0x79, 0x63, 0xEF, 0x13,
+	0xF7, 0xF2, 0xB6, 0x60, 0x73, 0x2C, 0xF5, 0xF2,
+	0x00, 0x05, 0x3C, 0xAD, 0x41, 0xCD, 0xFF, 0x27,
+	0xF7, 0xDD, 0x66, 0xB4, 0x48, 0xC8, 0x8F, 0xC9,
+	0xAF, 0xF1, 0xC2, 0xEF, 0x43, 0x13, 0xE1, 0x7E,
+	0x6D, 0x84, 0xF0, 0x4F, 0xFF, 0x8B, 0x20, 0x9F,
+	0x72, 0x50, 0x82, 0x64, 0x32, 0x2E, 0xEF, 0x0A,
+	0x72, 0xF8, 0xF1, 0x13, 0xFE, 0x2F, 0x13, 0xFF,
+	0x3B, 0xFE, 0x4E, 0xB2, 0xEB, 0xD2, 0xFF, 0x8E,
+	0x02, 0xF7, 0xB7, 0x60, 0x27, 0x13, 0xEF, 0x29,
+	0x49, 0x8B, 0xF5, 0xA0, 0xB3, 0xF2, 0xB2, 0xFF,
+	0x13, 0xF4, 0x43, 0x71, 0xF1, 0x25, 0x14, 0x68,
+	0xF1, 0xE1, 0xCD, 0x03, 0xF5, 0xC2, 0xCE, 0x22,
+	0x3F, 0x27, 0x27, 0x3B, 0xF7, 0xE1, 0xF1, 0xF4,
+	0x60, 0x14, 0x25, 0xDC, 0x3F, 0xDD, 0x5F, 0xDF,
+	0xF1, 0x77, 0xEF, 0x36, 0x6C, 0x63, 0x20, 0x27,
+	0xFF, 0x4B, 0xD2, 0x59, 0x9A, 0xF9, 0x20, 0x13,
+	0x2E, 0x2A, 0x2A, 0xF0, 0x70, 0x6A, 0x6A, 0x13,
+	0xFF, 0x47, 0xF3, 0xFF, 0x27, 0xFF, 0x8B, 0xF7,
+	0x04, 0xF2, 0x63, 0xB2, 0xA2, 0xA3, 0x4B, 0x28,
+	0x5C, 0x63, 0xFF, 0xA0, 0xBF, 0x60, 0x9A, 0x44,
+	0x29, 0x5F, 0x29, 0x78, 0x79, 0x93, 0x13, 0xF5,
+	0xE1, 0xB3, 0x40, 0x64, 0xF7, 0x14, 0x48, 0x13,
+	0xF1, 0xDF, 0xE3, 0xB9, 0x81, 0x28, 0x64, 0x02,
+	0x4F, 0xF4, 0xF8, 0x90, 0xBE, 0x9F, 0xC4, 0x29,
+	0xF2, 0xB0, 0x14, 0x0F, 0x77, 0x5F, 0x8E, 0x3B,
+	0xEF, 0x24, 0x6C, 0xFE, 0x74, 0xF0, 0x13, 0xF9,
+	0xFD, 0x00, 0x77, 0xF5, 0x12, 0xA2, 0x00, 0x48,
+	0x63, 0xF0, 0x2A, 0xF7, 0xDC, 0xF3, 0x27, 0xFF,
+	0x13, 0xFF, 0x13, 0xFD, 0x6E, 0xEA, 0xD0, 0xEF,
+	0xD1, 0xFF, 0xA0, 0xFC, 0x36, 0xC2, 0x73, 0x58,
+	0xAF, 0x60, 0xDB, 0x83, 0x14, 0x75, 0xEF, 0xE2,
+	0x3F, 0x44, 0x9F, 0x00, 0x05, 0x2C, 0x2E, 0x00,
+	0x41, 0x29, 0x8F, 0x37, 0xF3, 0x74, 0x40, 0xE1,
+	0x91, 0xFF, 0xEE, 0xB1, 0x54, 0x78, 0xF1, 0x95,
+	0x90, 0x15, 0xCD, 0x92, 0xF1, 0x32, 0x17, 0x86,
+	0x51, 0x71, 0xF9, 0xC7, 0xE3, 0xF1, 0x12, 0xB2,
+	0x26, 0x13, 0xDF, 0x14, 0x2F, 0x26, 0x26, 0x13,
+	0xE6, 0x7F, 0x6C, 0xFC, 0x21, 0x13, 0xFF, 0xC7,
+	0x61, 0xEF, 0x91, 0x50, 0x53, 0xF0, 0x60, 0x63,
+	0xF2, 0x7F, 0x2D, 0x50, 0xA2, 0x3B, 0xFF, 0x88,
+	0xA3, 0x4F, 0xFF, 0xB3, 0xF8, 0xF6, 0x20, 0x63,
+	0xF1, 0xF0, 0x4A, 0xEC, 0x13, 0xF2, 0xEF, 0x76,
+	0x8B, 0xE9, 0x3E, 0x3C, 0x3C, 0x3C, 0x04, 0x3B,
+	0x3B, 0x3B, 0x3E, 0x3E, 0x28, 0x80, 0x3F, 0x3F,
+	0xFF, 0x14, 0xD4, 0x3E, 0x9C, 0x4D, 0xF4, 0xF2,
+	0xD1, 0xF1, 0x42, 0x68, 0x8C, 0xC6, 0x91, 0xFF,
+	0xA1, 0xFF, 0xF8, 0x70, 0xB4, 0xF5, 0x14, 0x15,
+	0xB7, 0xA1, 0xEA, 0x13, 0x77, 0xF3, 0xED, 0x43,
+	0x26, 0xBF, 0xFF, 0x27, 0xDF, 0x13, 0xF9, 0x13,
+	0xE1, 0xE9, 0x10, 0x4F, 0xFF, 0x4F, 0xE3, 0xDB,
+	0xD4, 0xEF, 0xB0, 0xFF, 0x63, 0xF5, 0x9F, 0xF1,
+	0xEF, 0xFF, 0xEE, 0x43, 0x98, 0x95, 0x9F, 0xF5,
+	0x4F, 0x21, 0xDB, 0xF6, 0x1F, 0x2E, 0x2E, 0x6D,
+	0xC7, 0xE2, 0xCD, 0x30, 0x3C, 0x35, 0xE3, 0xA1,
+	0x8F, 0x02, 0x3E, 0x2C, 0x27, 0xB3, 0x71, 0xB2,
+	0xB4, 0xDA, 0x65, 0x79, 0x37, 0x3C, 0x80, 0x3B,
+	0x1F, 0x3B, 0x3C, 0x3C, 0x14, 0xF0, 0x14, 0xB2,
+	0xDC, 0x92, 0xB3, 0x38, 0x13, 0xF9, 0xEF, 0x00,
+	0x48, 0x29, 0xE4, 0xE0, 0x21, 0x2E, 0xF1, 0x20,
+	0x14, 0x02, 0xA6, 0x19, 0x4F, 0xF2, 0x7F, 0x28,
+	0xFE, 0x43, 0x28, 0x70, 0x13, 0xFF, 0x3B, 0x7F,
+	0x27, 0xFD, 0x27, 0xC1, 0x27, 0xE3, 0xFD, 0x77,
+	0xF8, 0xC7, 0xC1, 0x63, 0xF5, 0x28, 0x04, 0xC7,
+	0xD0, 0xA0, 0x40, 0x6A, 0x85, 0x51, 0x9E, 0xDC,
+	0xE0, 0x6D, 0x6C, 0x4F, 0xFF, 0xF4, 0x84, 0x13,
+	0xFF, 0xB2, 0x55, 0x6E, 0xFF, 0xDA, 0x72, 0x9E,
+	0x82, 0x8B, 0xF0, 0x72, 0xF3, 0xDB, 0xC0, 0xA2,
+	0xF2, 0x27, 0xF1, 0xF9, 0xA0, 0xE5, 0xC7, 0xA1,
+	0xEB, 0x60, 0x8A, 0x65, 0x2C, 0x3B, 0x28, 0x02,
+	0x3E, 0x27, 0xF2, 0xFF, 0x14, 0xB9, 0xF2, 0x13,
+	0xDD, 0x03, 0x27, 0xF8, 0x03, 0xD5, 0xA2, 0xD2,
+	0xEF, 0x20, 0xC5, 0xB1, 0xFF, 0x13, 0xF4, 0x14,
+	0x00, 0x13, 0xF0, 0xB8, 0xA4, 0x42, 0xC1, 0xF1,
+	0xC0, 0xCB, 0xA1, 0xE1, 0x01, 0xFB, 0xF0, 0x12,
+	0xF1, 0x71, 0x4E, 0x6F, 0x4F, 0x8F, 0xF2, 0x61,
+	0x6A, 0x3B, 0xF6, 0x13, 0xE5, 0xFC, 0x3B, 0xFA,
+	0xDB, 0xB2, 0x27, 0xF8, 0xC8, 0x03, 0xDC, 0xD1,
+	0xB3, 0xF1, 0x2B, 0x2C, 0xFF, 0xC8, 0xA0, 0xB3,
+	0xFF, 0xC4, 0xD8, 0x27, 0xFF, 0x13, 0xF3, 0xEF,
+	0xF1, 0xF7, 0x80, 0x27, 0xF1, 0xFF, 0xD7, 0x27,
+	0x4F, 0xF5, 0xFE, 0xB0, 0x13, 0xF3, 0x0D, 0x81,
+	0x50, 0x71, 0x27, 0xFD, 0x3C, 0xA0, 0x5F, 0x3C,
+	0x28, 0x20, 0x3B, 0x3C, 0xB1, 0xDE, 0x13, 0xF1,
+	0x23, 0xEC, 0x84, 0x65, 0x07, 0xEE, 0xDB, 0x41,
+	0xCB, 0x45, 0x8A, 0xA1, 0x29, 0x3B, 0x45, 0x27,
+	0xF3, 0xF4, 0x10, 0x2A, 0x71, 0x28, 0xF5, 0x90,
+	0x1A, 0x60, 0x29, 0xB2, 0x29, 0x28, 0x3F, 0x7D,
+	0x62, 0xE7, 0x3B, 0xFF, 0x63, 0x5F, 0x13, 0xE4,
+	0x6A, 0x2A, 0x4F, 0xF4, 0x27, 0xD3, 0x63, 0x01,
+	0xFE, 0x13, 0xFF, 0x4F, 0xF6, 0xDA, 0xE1, 0xC7,
+	0xF0, 0xC8, 0xD1, 0x9F, 0xF1, 0xB3, 0xF2, 0x6A,
+	0xF8, 0x9F, 0xFE, 0x2C, 0x22, 0xC0, 0x46, 0x27,
+	0xFF, 0x63, 0xE2, 0x2D, 0x6D, 0x2D, 0x6A, 0x0C,
+	0x42, 0xB1, 0x13, 0xEE, 0x2E, 0x74, 0xC0, 0x27,
+	0x27, 0xD2, 0x29, 0xCF, 0x21, 0x70, 0xEE, 0x65,
+	0x2C, 0x3D, 0x00, 0x00, 0x50, 0x11, 0x27, 0xFD,
+	0xC8, 0xB4, 0xFF, 0xC7, 0xF6, 0x13, 0xF4, 0xB7,
+	0xEA, 0xF4, 0xC1, 0xDD, 0x6B, 0xE0, 0xB5, 0x13,
+	0xE0, 0xF8, 0x70, 0xCB, 0xE0, 0xD0, 0x3D, 0xB3,
+	0x2A, 0x3F, 0xDB, 0xC0, 0x3F, 0x4F, 0xF1, 0xCC,
+	0x71, 0xFB, 0x76, 0xAF, 0x13, 0xEF, 0xF3, 0x30,
+	0xF0, 0x72, 0x3B, 0xC3, 0x6C, 0xFE, 0x14, 0x3B,
+	0xEF, 0xFA, 0x4F, 0xC3, 0xEE, 0xD0, 0xEF, 0xB1,
+	0xC8, 0x71, 0xDB, 0xF2, 0x2C, 0xA1, 0x30, 0x6B,
+	0xF7, 0x13, 0xFF, 0xEC, 0xF9, 0x4F, 0xF9, 0x77,
+	0xE8, 0x2D, 0xC7, 0x60, 0xC6, 0x72, 0xE0, 0x60,
+	0xEF, 0x3B, 0xE3, 0xAF, 0x61, 0xF0, 0x12, 0x2C,
+	0x71, 0xB4, 0xEA, 0x20, 0x23, 0xC2, 0xEF, 0xE3,
+	0xFF, 0x27, 0xFA, 0x4F, 0xF0, 0x50, 0x02, 0x13,
+	0xF2, 0xA0, 0x05, 0x13, 0xFF, 0xB8, 0x19, 0xA4,
+	0xE8, 0xFD, 0xCD, 0xF6, 0x13, 0xF2, 0xBC, 0x80,
+	0x13, 0xF5, 0x77, 0xD3, 0x13, 0xF0, 0x2A, 0x31,
+	0x50, 0x2E, 0x2D, 0x0C, 0x14, 0x0D, 0x66, 0x12,
+	0xC5, 0x13, 0xEA, 0x28, 0x03, 0x2C, 0xFC, 0x13,
+	0xE6, 0x3B, 0xFE, 0x4F, 0xE7, 0xDB, 0xE1, 0xC8,
+	0x20, 0x77, 0xF6, 0x2B, 0x2C, 0xFF, 0x79, 0x62,
+	0x13, 0xFF, 0x14, 0x09, 0x13, 0xFF, 0x8B, 0xE1,
+	0xF6, 0x51, 0xEE, 0x83, 0xB8, 0x63, 0xFC, 0xC2,
+	0xA8, 0x13, 0xF2, 0x4F, 0x80, 0xFA, 0x41, 0xC5,
+	0xA2, 0x4F, 0xF3, 0x3D, 0x3D, 0x9F, 0x13, 0x51,
+	0x3D, 0x3B, 0x27, 0xFD, 0xC8, 0xA3, 0xDB, 0xF6,
+	0x40, 0xDB, 0xE0, 0xB6, 0xFF, 0xBE, 0xD1, 0xB4,
+	0xF9, 0xA2, 0x32, 0x13, 0xF3, 0x3C, 0x01, 0x63,
+	0xF3, 0x8B, 0xD3, 0xC7, 0xE1, 0x7F, 0x2B, 0xCB,
+	0xF3, 0x26, 0xCF, 0xA9, 0xB5, 0x3B, 0xB2, 0x01,
+	0x04, 0xF0, 0xC0, 0x13, 0xE2, 0xFE, 0x77, 0xA2,
+	0x4F, 0xFF, 0x63, 0xE8, 0xC8, 0x20, 0xDB, 0xE0,
+	0xF0, 0xB1, 0xEF, 0xF2, 0x2A, 0x7C, 0x2D, 0x50,
+	0xE2, 0x27, 0xFF, 0x14, 0x09, 0x27, 0xFD, 0x63,
+	0xE2, 0x6D, 0x6C, 0xF7, 0xEF, 0x60, 0xEE, 0x81,
+	0xB2, 0x67, 0xD6, 0xB6, 0x2C, 0x97, 0x34, 0xAE,
+	0x32, 0xC2, 0xA1, 0xEF, 0x4F, 0xFF, 0x27, 0xF1,
+	0x78, 0x20, 0x3F, 0x4F, 0xF2, 0xF1, 0x51, 0x52,
+	0x83, 0x8B, 0xF5, 0xFE, 0x13, 0xD6, 0xF8, 0x90,
+	0xF0, 0x88, 0x7F, 0x01, 0xA1, 0x39, 0x27, 0xF2,
+	0x4F, 0xF6, 0x2D, 0xE9, 0x8B, 0xF5, 0x8C, 0x11,
+	0x13, 0xF4, 0x2D, 0xEE, 0x78, 0x6A, 0x6B, 0x68,
+	0x42, 0x8F, 0xBD, 0xC4, 0x27, 0x27, 0x2A, 0x14,
+	0xE8, 0x27, 0xD1, 0x4B, 0x54, 0xFD, 0x70, 0xED,
+	0xC2, 0xF4, 0x77, 0xEC, 0x3C, 0x15, 0x6A, 0x63,
+	0x30, 0x9F, 0xF5, 0x2B, 0xA1, 0x72, 0xE7, 0x3B,
+	0xFF, 0x14, 0x09, 0x13, 0xFF, 0x2E, 0x6E, 0xF4,
+	0x50, 0x6A, 0x80, 0x8B, 0xE1, 0xFF, 0xEA, 0xE4,
+	0x28, 0x19, 0x13, 0xF0, 0xAB, 0x40, 0xD6, 0x40,
+	0x13, 0xF3, 0x77, 0xF5, 0x50, 0x00, 0xBF, 0x8B,
+	0x71, 0x3C, 0x27, 0xFE, 0xD8, 0x80, 0xDB, 0xE3,
+	0x77, 0xF5, 0x88, 0x54, 0x9C, 0xF1, 0xC3, 0xFA,
+	0x20, 0xEE, 0xF2, 0x2B, 0x2E, 0x2B, 0x2B, 0x4E,
+	0xA0, 0x13, 0xFD, 0xFF, 0xC6, 0xF0, 0xA0, 0x93,
+	0x9F, 0xF0, 0x13, 0xF4, 0xA0, 0x54, 0xF3, 0xF5,
+	0xB3, 0xE7, 0x15, 0xC5, 0xAF, 0x14, 0x06, 0x27,
+	0x92, 0x37, 0x6A, 0x4F, 0x90, 0xFC, 0x50, 0x13,
+	0xB1, 0x13, 0xFF, 0xF7, 0x4F, 0xF8, 0x00, 0x23,
+	0xEF, 0xF0, 0xB3, 0xF4, 0x2C, 0xC7, 0xFF, 0x13,
+	0xF5, 0xDA, 0xB6, 0xFF, 0x9F, 0xF4, 0xB3, 0x20,
+	0xEF, 0xE6, 0x00, 0xB1, 0xF0, 0xC2, 0xE1, 0x4C,
+	0x3F, 0x82, 0x13, 0xF4, 0xF3, 0x27, 0xF4, 0xED,
+	0xD1, 0x77, 0xFF, 0x14, 0x82, 0x3C, 0x3C, 0x27,
+	0xF3, 0x13, 0xF2, 0xFF, 0x3E, 0x92, 0xB3, 0xF4,
+	0x8C, 0xF5, 0xE0, 0x21, 0x24, 0x20, 0x68, 0x60,
+	0xA6, 0x41, 0x13, 0xFF, 0xBC, 0x8F, 0xB2, 0x2A,
+	0x2B, 0xE2, 0x13, 0xF2, 0xDD, 0x91, 0x14, 0x0B,
+	0x2C, 0x0C, 0xFF, 0x28, 0x13, 0xC5, 0x71, 0x15,
+	0xA6, 0x14, 0x0F, 0xF4, 0x60, 0xDA, 0xC3, 0xF7,
+	0x02, 0xF0, 0x00, 0xEF, 0x27, 0xFF, 0x4F, 0xF3,
+	0x64, 0x63, 0x6C, 0xB3, 0xF2, 0xEF, 0xF1, 0x3B,
+	0xFF, 0x13, 0xF7, 0xE2, 0xEE, 0xC5, 0x13, 0xFF,
+	0xDB, 0xD0, 0x6E, 0x2C, 0x6C, 0xB3, 0x90, 0x2D,
+	0xB1, 0xDB, 0xF0, 0x2A, 0xB4, 0x17, 0xF0, 0x83,
+	0x2E, 0x2A, 0x26, 0xF9, 0x10, 0xAD, 0x13, 0xF7,
+	0x27, 0x27, 0xF6, 0x3E, 0x28, 0x02, 0xF0, 0x88,
+	0x44, 0xCB, 0xE0, 0xF9, 0x89, 0x22, 0xED, 0x32,
+	0x9C, 0x42, 0xC7, 0xF1, 0x39, 0xC3, 0x2D, 0x2D,
+	0x13, 0xF4, 0xFD, 0x29, 0x01, 0xFB, 0xD0, 0x27,
+	0xFF, 0xF3, 0x54, 0xC8, 0xA1, 0x3B, 0xF1, 0x2D,
+	0x8E, 0x97, 0xBA, 0xF0, 0x71, 0x2A, 0x31, 0xC0,
+	0x3C, 0x15, 0xAA, 0x82, 0x6B, 0x2A, 0x09, 0x2B,
+	0xBF, 0x28, 0x0B, 0x2A, 0xFE, 0x01, 0x13, 0xD3,
+	0xC7, 0x31, 0x3B, 0xFF, 0xC7, 0xF2, 0x4F, 0xB0,
+	0xFB, 0xDB, 0xE5, 0x3B, 0xFF, 0x13, 0xFF, 0x00,
+	0x07, 0x27, 0xF1, 0x0C, 0xB3, 0xD4, 0x27, 0xF1,
+	0x13, 0x2D, 0x6E, 0x6D, 0x5A, 0x10, 0x2C, 0x2E,
+	0xBA, 0xC2, 0xD6, 0x70, 0xFE, 0xB3, 0x83, 0xEF,
+	0xF5, 0x13, 0xF4, 0x63, 0xF2, 0x9C, 0x01, 0xC7,
+	0xFF, 0x4F, 0xE2, 0x3C, 0xFF, 0x64, 0xA2, 0x7A,
+	0x50, 0x9C, 0x92, 0x13, 0xFF, 0x55, 0xB2, 0x11,
+	0x50, 0xC5, 0x52, 0x4F, 0xFF, 0xD6, 0x3B, 0xF2,
+	0xA2, 0x64, 0x27, 0xF0, 0x11, 0x2D, 0xB8, 0x84,
+	0xEF, 0xF1, 0x2A, 0x7F, 0x2B, 0x4F, 0x94, 0xEF,
+	0xE2, 0xBE, 0x72, 0x13, 0xF6, 0x3C, 0x0C, 0xF4,
+	0x30, 0x13, 0xF5, 0xFC, 0xFE, 0x51, 0xD6, 0xA0,
+	0x4F, 0xFF, 0xF1, 0xA1, 0x9F, 0xF4, 0x14, 0x13,
+	0x6C, 0x6B, 0x3F, 0x6A, 0x2E, 0x3B, 0xFF, 0x27,
+	0xFB, 0x14, 0x08, 0x13, 0xF9, 0xEF, 0xD0, 0xFD,
+	0xF0, 0x7F, 0x6D, 0xDB, 0x90, 0xE0, 0x00, 0x27,
+	0xD0, 0x14, 0x03, 0xDB, 0xB2, 0x13, 0xFF, 0xA0,
+	0x30, 0x9F, 0x27, 0xF4, 0x3E, 0x3E, 0xA0, 0x11,
+	0xF0, 0x10, 0x27, 0xF9, 0xB2, 0x81, 0xF2, 0x70,
+	0xFF, 0xB2, 0x61, 0xC6, 0xB1, 0x27, 0xFB, 0x3B,
+	0xF4, 0xD9, 0x43, 0xEF, 0x31, 0x63, 0xFF, 0x67,
+	0xB4, 0xFE, 0xF7, 0x00, 0xF3, 0xA1, 0xE2, 0xC2,
+	0x77, 0x90, 0x64, 0x11, 0xF4, 0x60, 0xF1, 0x90,
+	0x2A, 0xFF, 0x76, 0x41, 0x00, 0x22, 0x27, 0xFC,
+	0x8E, 0x21, 0x50, 0xE5, 0xFA, 0x72, 0xDB, 0x16,
+	0x13, 0xFF, 0xF3, 0xDC, 0xD4, 0xB3, 0x71, 0x8B,
+	0xC0, 0xFB, 0x26, 0x2B, 0x2C, 0x59, 0x30, 0x9F,
+	0xFF, 0xCC, 0x13, 0xF8, 0x28, 0x17, 0x0C, 0x6E,
+	0x27, 0xF0, 0xDB, 0xC6, 0x6D, 0x6C, 0x5F, 0x2D,
+	0xF3, 0x60, 0x2D, 0x04, 0x00, 0xF0, 0x12, 0xF2,
+	0xE6, 0x77, 0xF5, 0xDB, 0xE0, 0xFF, 0x8C, 0x22,
+	0x8B, 0xF2, 0x27, 0xFF, 0xF0, 0x20, 0x00, 0x05,
+	0x13, 0xE1, 0x3B, 0xB4, 0xC6, 0x71, 0xBF, 0xEF,
+	0xF2, 0x29, 0x3B, 0xF3, 0xB1, 0x50, 0xB0, 0xB0,
+	0xF8, 0x50, 0x13, 0xE5, 0x63, 0xF1, 0xED, 0x8B,
+	0xFE, 0xDB, 0xD3, 0xB3, 0xF3, 0x0C, 0xF6, 0xD1,
+	0x8B, 0x81, 0x2C, 0xB4, 0x40, 0xDF, 0x50, 0xC1,
+	0xF1, 0x71, 0x27, 0x14, 0x04, 0x3B, 0xC0, 0x3B,
+	0xFB, 0x64, 0xEC, 0x27, 0x91, 0x2F, 0x0C, 0x0C,
+	0x71, 0x50, 0x2F, 0x4F, 0xFF, 0xF0, 0xD2, 0xD6,
+	0x45, 0x04, 0xF5, 0xFF, 0xC7, 0xF3, 0x9F, 0xFF,
+	0xDB, 0xF7, 0x3B, 0xF9, 0xC7, 0x10, 0x13, 0xF4,
+	0xB3, 0xB1, 0xE0, 0x00, 0xFF, 0xDB, 0x91, 0x71,
+	0xD0, 0xDE, 0xA4, 0xA0, 0x46, 0xC7, 0xF2, 0x4F,
+	0xE0, 0xD6, 0x81, 0x21, 0x72, 0xFF, 0xC8, 0x01,
+	0x27, 0xF4, 0x28, 0x02, 0x9F, 0xF2, 0x78, 0x70,
+	0x28, 0x80, 0x3B, 0xF2, 0xC7, 0xD2, 0xCC, 0x00,
+	0x32, 0x13, 0xFD, 0x2A, 0x28, 0x50, 0x00, 0x13,
+	0xF2, 0x3B, 0x3F, 0xFF, 0x63, 0xF4, 0xB3, 0xFF,
+	0x4F, 0xF5, 0x27, 0xF3, 0xF4, 0x90, 0xA2, 0x22,
+	0x3B, 0xF1, 0x13, 0xFC, 0x05, 0x6A, 0x2A, 0x2B,
+	0x6A, 0x67, 0x00, 0x07, 0x2B, 0x27, 0xE1, 0xFB,
+	0x78, 0xF9, 0x4F, 0xC0, 0xFE, 0x41, 0x13, 0xFF,
+	0x3B, 0xF6, 0x6D, 0x18, 0x95, 0xB4, 0x93, 0xFB,
+	0x63, 0xF1, 0xEE, 0x14, 0x13, 0xFF, 0x14, 0x1D,
+	0x13, 0xE1, 0x6E, 0x77, 0xC5, 0xB2, 0xB1, 0xFF,
+	0x27, 0xE0, 0xC7, 0xA0, 0xF0, 0xF0, 0xD5, 0xE0,
+	0x64, 0x31, 0x8C, 0x44, 0xB4, 0x32, 0x13, 0xF0,
+	0xFF, 0xEB, 0x71, 0xEB, 0xE3, 0xC7, 0xFF, 0x3B,
+	0xFB, 0x60, 0x24, 0x13, 0xFF, 0x4F, 0x70, 0x13,
+	0xF8, 0xFF, 0x63, 0xF2, 0x26, 0x22, 0x9E, 0x52,
+	0x8D, 0x54, 0xF6, 0x22, 0x06, 0x83, 0xF3, 0xA1,
+	0xF6, 0xB1, 0xEF, 0xBD, 0x30, 0x2B, 0x20, 0x13,
+	0xF6, 0x28, 0x63, 0xA2, 0xD2, 0x83, 0x13, 0xF9,
+	0x3B, 0xE2, 0xFF, 0xA3, 0x02, 0xF4, 0x21, 0x13,
+	0xF3, 0x63, 0xB1, 0x27, 0xFF, 0xDB, 0xF6, 0xB3,
+	0x71, 0x9F, 0xE1, 0xEF, 0xDC, 0x00, 0xA0, 0x30,
+	0xB3, 0xF3, 0x2A, 0x2D, 0xA2, 0x27, 0xFF, 0x13,
+	0xFF, 0x13, 0xF4, 0x4F, 0x2E, 0x14, 0x60, 0x0C,
+	0x6C, 0x35, 0xE2, 0xD5, 0x41, 0x73, 0xF0, 0xDC,
+	0x32, 0x37, 0x2C, 0x2C, 0xF2, 0xC4, 0x13, 0xF2,
+	0x28, 0x9F, 0xE1, 0x9D, 0x33, 0xC7, 0xF8, 0x83,
+	0x28, 0x00, 0x3E, 0x3E, 0x3B, 0x3B, 0x3D, 0x27,
+	0xF2, 0xA0, 0x92, 0xFA, 0x27, 0xF3, 0x00, 0x18,
+	0x77, 0xF9, 0xEF, 0x40, 0x27, 0xF5, 0x3F, 0x13,
+	0xF3, 0x27, 0xFF, 0x13, 0xFF, 0x4F, 0xC3, 0xE2,
+	0xD1, 0x13, 0xFB, 0x3B, 0xF1, 0x69, 0x63, 0x77,
+	0xA0, 0xB2, 0x02, 0xFF, 0x5A, 0xE0, 0xEE, 0xB1,
+	0xB4, 0x25, 0x27, 0xF2, 0xCA, 0x93, 0x14, 0x22,
+	0x13, 0xFF, 0xB3, 0xFE, 0xEF, 0x77, 0x72, 0xEF,
+	0xE1, 0xDB, 0xE2, 0x6D, 0xF3, 0x90, 0xB3, 0xF0,
+	0x00, 0xE2, 0x3B, 0xFF, 0xB1, 0x27, 0xFF, 0x6E,
+	0xA5, 0xE0, 0xEF, 0xA2, 0x0C, 0x2D, 0x6C, 0xFE,
+	0x60, 0xFF, 0x3E, 0x2E, 0xB4, 0x55, 0x4F, 0xF3,
+	0x63, 0x51, 0x9B, 0x60, 0x71, 0x05, 0xEF, 0xF1,
+	0x4F, 0x36, 0xBF, 0x4F, 0xFE, 0x29, 0xF1, 0xD6,
+	0x8B, 0xF9, 0xF3, 0x60, 0x13, 0xF8, 0x9F, 0xF2,
+	0x27, 0xFA, 0xFF, 0xF5, 0x70, 0xF6, 0x41, 0x50,
+	0x15, 0x27, 0xF3, 0x17, 0x30, 0x53, 0xA2, 0xC8,
+	0x11, 0x8C, 0xB3, 0x67, 0x26, 0xC6, 0x04, 0xFA,
+	0xB0, 0x6A, 0x2A, 0x32, 0xB0, 0x00, 0x30, 0x13,
+	0xF4, 0xFF, 0x33, 0x71, 0x00, 0x61, 0x27, 0xFF,
+	0xC7, 0xFF, 0xEF, 0xF6, 0x4F, 0x70, 0xDC, 0x94,
+	0xDB, 0xF5, 0xF8, 0xC9, 0x80, 0x4F, 0xFF, 0x3B,
+	0xFF, 0x13, 0xF4, 0x7C, 0x70, 0x0C, 0x0C, 0x2C,
+	0xC5, 0x00, 0x40, 0x3B, 0x91, 0x2B, 0x2A, 0x2F,
+	0xDB, 0xF0, 0x2C, 0xC8, 0x80, 0xFF, 0x83, 0x10,
+	0x14, 0x07, 0x13, 0xF1, 0xEC, 0xF3, 0xED, 0xB4,
+	0x63, 0xFB, 0x00, 0xBF, 0x13, 0xFB, 0xFF, 0x63,
+	0xF4, 0x27, 0xE0, 0x13, 0xFB, 0xA1, 0xE2, 0x13,
+	0xF8, 0x63, 0x82, 0x00, 0x16, 0x13, 0xFC, 0xBD,
+	0x39, 0xF6, 0x0C, 0xC6, 0x53, 0x13, 0xF2, 0xD2,
+	0xD0, 0x28, 0x91, 0x2B, 0xE7, 0x40, 0xFF, 0xA0,
+	0x02, 0x3C, 0x71, 0x13, 0xF7, 0xFF, 0x20, 0x4F,
+	0xFF, 0x8B, 0xF9, 0xA0, 0x33, 0xA0, 0x02, 0xDF,
+	0xDC, 0x30, 0x27, 0xF1, 0x2D, 0xC7, 0xF1, 0x27,
+	0xFF, 0xE7, 0x28, 0xF0, 0x84, 0x13, 0xF8, 0x4F,
+	0x2C, 0xF5, 0x40, 0x2C, 0x6C, 0x4F, 0x81, 0xB4,
+	0x00, 0xB3, 0xF0, 0x14, 0x41, 0xFF, 0xE7, 0x50,
+	0x26, 0x51, 0x27, 0xF6, 0xED, 0x33, 0xFC, 0xA1,
+	0x13, 0x8F, 0x14, 0xAF, 0xEE, 0x07, 0xFF, 0x77,
+	0xF8, 0x87, 0xB0, 0x13, 0xFD, 0x27, 0xFC, 0x77,
+	0xA4, 0x13, 0xFA, 0x63, 0xF1, 0xA9, 0x81, 0xDF,
+	0x78, 0x01, 0xF0, 0x83, 0x2A, 0xDA, 0x50, 0xF1,
+	0x30, 0x4F, 0xF2, 0xBE, 0xA0, 0xB5, 0x41, 0xFF,
+	0x28, 0x61, 0xB4, 0x03, 0x50, 0x71, 0x63, 0xF6,
+	0xFE, 0x62, 0x77, 0xFF, 0x9F, 0xFB, 0xA0, 0x11,
+	0xFF, 0xDB, 0xE2, 0xC7, 0xF2, 0xA5, 0x30, 0xF1,
+	0x41, 0x13, 0xFF, 0xD9, 0x0A, 0x3B, 0xF8, 0x8C,
+	0x60, 0x38, 0x6C, 0x6D, 0x5A, 0x21, 0xDA, 0x50,
+	0x70, 0x13, 0x2B, 0x29, 0x2B, 0xC7, 0xF0, 0x80,
+	0xA0, 0xC0, 0x29, 0x27, 0x2A, 0xF3, 0x25, 0x26,
+	0xDF, 0x13, 0x1F, 0xFB, 0x94, 0x44, 0xF3, 0xC1,
+	0x50, 0x37, 0xC7, 0xF8, 0x63, 0xD0, 0x2D, 0xB9,
+	0x90, 0x77, 0xF7, 0xFE, 0xF2, 0x30, 0x63, 0xF9,
+	0x2B, 0xAF, 0xF3, 0xA1, 0x13, 0xF4, 0xA3, 0xA1,
+	0x13, 0xF3, 0x29, 0xFF, 0x13, 0xF0, 0x50, 0xD1,
+	0xC7, 0xF1, 0xEF, 0xC8, 0x9F, 0xD1, 0x2A, 0x37,
+	0x52, 0xE1, 0x13, 0xFF, 0xFF, 0x3B, 0xFF, 0xB3,
+	0x40, 0xF0, 0x31, 0xC8, 0x40, 0xB4, 0x60, 0xEF,
+	0xF1, 0x13, 0xF1, 0xB4, 0x90, 0xF7, 0x27, 0xFF,
+	0x60, 0xA5, 0x13, 0xFC, 0x8C, 0x61, 0x2C, 0xCE,
+	0x60, 0x9F, 0x23, 0x8E, 0x6A, 0xBF, 0xE7, 0xC0,
+	0x29, 0xCA, 0xB4, 0xA1, 0x51, 0x26, 0x0C, 0x26,
+	0x58, 0x87, 0x72, 0xEE, 0x14, 0xFF, 0xF8, 0x00,
+	0x63, 0xFF, 0x9F, 0xF2, 0x63, 0xD1, 0x13, 0xF9,
+	0xE0, 0x71, 0x13, 0xFF, 0x13, 0xFE, 0xFD, 0x3F,
+	0x41, 0x13, 0xF8, 0x78, 0x70, 0x4E, 0x52, 0x3B,
+	0x20, 0x64, 0x62, 0x3B, 0xF8, 0x75, 0xFE, 0x64,
+	0x07, 0xF2, 0xF5, 0x27, 0xF5, 0xEF, 0xFF, 0xEF,
+	0xF5, 0x14, 0x13, 0x78, 0x60, 0x6C, 0xD7, 0xDC,
+	0x52, 0x77, 0xF1, 0x2C, 0x3B, 0xF1, 0x6A, 0x3B,
+	0xFF, 0x9C, 0xA2, 0xB0, 0xF0, 0xCF, 0x00, 0x41,
+	0x63, 0xF9, 0x6E, 0x6E, 0xF4, 0xA2, 0xDB, 0x80,
+	0xC8, 0x31, 0xE5, 0x20, 0x97, 0x3B, 0xA2, 0x2C,
+	0x2F, 0xFC, 0x80, 0x2F, 0x62, 0xF0, 0x27, 0xF5,
+	0x21, 0xC5, 0xDB, 0x1F, 0x51, 0xD6, 0x31, 0x2C,
+	0xEF, 0xF1, 0xD5, 0xB3, 0x2B, 0xDC, 0xA3, 0xD6,
+	0x94, 0xFF, 0x13, 0xF6, 0x9F, 0xFE, 0x27, 0xE2,
+	0x27, 0xF5, 0x86, 0x40, 0x76, 0x35, 0x8B, 0xF6,
+	0xEB, 0xA7, 0x9F, 0xCA, 0x61, 0x2B, 0x2A, 0x13,
+	0xFF, 0x67, 0xE0, 0xC6, 0x63, 0x13, 0xF7, 0x63,
+	0xC2, 0x3B, 0x3B, 0x3B, 0x8B, 0xC7, 0xF1, 0x17,
+	0xB3, 0xE1, 0x2F, 0xF0, 0x14, 0x27, 0xFF, 0xFB,
+	0x8C, 0x04, 0xDB, 0xE1, 0xEF, 0xD0, 0xA0, 0xB0,
+	0x3B, 0xF3, 0x2D, 0x3B, 0xF0, 0x14, 0xF0, 0xFE,
+	0x4F, 0xFF, 0xD8, 0xB4, 0x13, 0xF6, 0x49, 0xA2,
+	0x3B, 0xD1, 0xFA, 0x50, 0xC7, 0xD0, 0x2F, 0x6C,
+	0x2E, 0xB4, 0x10, 0x8C, 0x11, 0x2F, 0xDC, 0x51,
+	0x64, 0x51, 0x29, 0x2F, 0xFE, 0x3C, 0x90, 0x8C,
+	0xF0, 0x3B, 0xF6, 0x11, 0x76, 0xD4, 0x71, 0xEF,
+	0xF1, 0xFD, 0x62, 0x28, 0xF9, 0x3F, 0x65, 0x9F,
+	0x33, 0x27, 0xF1, 0xEB, 0x42, 0xB3, 0xFE, 0x28,
+	0x29, 0xCD, 0x61, 0xFF, 0xC7, 0xF5, 0xCC, 0xD1,
+	0x62, 0x33, 0x13, 0xF7, 0x57, 0x20, 0x13, 0xC4,
+	0xD8, 0x92, 0x27, 0xF5, 0x7F, 0x2B, 0x13, 0xFE,
+	0xB2, 0x92, 0xF0, 0x02, 0xEF, 0xB2, 0xBB, 0xC0,
+	0x8B, 0x64, 0xDC, 0xD8, 0xFD, 0x13, 0xF4, 0xCD,
+	0xE3, 0x13, 0xFF, 0x8B, 0xF4, 0x3B, 0xD4, 0x50,
+	0x10, 0x6D, 0xA0, 0x70, 0xBF, 0x9F, 0xF1, 0x2C,
+	0xB4, 0x81, 0x13, 0xFF, 0xC4, 0xA6, 0xED, 0x20,
+	0xEF, 0x44, 0xF0, 0x30, 0xA7, 0xB4, 0x51, 0x6D,
+	0xCD, 0xE0, 0x6D, 0x2C, 0xDC, 0xF0, 0xD6, 0x00,
+	0xDB, 0xC0, 0xFF, 0xB3, 0xF0, 0x6C, 0xD0, 0x50,
+	0x01, 0xF1, 0xB5, 0xC7, 0xF2, 0x8B, 0x95, 0x37,
+	0x52, 0x13, 0xF4, 0xFF, 0x8C, 0x97, 0xF0, 0xD1,
+	0xAF, 0x52, 0x13, 0xF4, 0xDB, 0xF1, 0xDC, 0x41,
+	0xDB, 0xF8, 0xEB, 0x90, 0xFF, 0x13, 0xF8, 0xB8,
+	0xC5, 0x27, 0xFF, 0x62, 0x01, 0x6B, 0xC3, 0xF3,
+	0xA1, 0xB4, 0x01, 0x13, 0xF4, 0xFF, 0xC8, 0x01,
+	0x27, 0xF1, 0x76, 0x50, 0x11, 0xF2, 0x4F, 0xF5,
+	0x27, 0x8F, 0x13, 0xF3, 0xDB, 0xF0, 0xFF, 0xFE,
+	0x80, 0x13, 0xFF, 0x9F, 0xF9, 0xC7, 0x90, 0xB3,
+	0xC0, 0x13, 0xA0, 0x3C, 0x02, 0xB3, 0xF1, 0x8F,
+	0x27, 0xF0, 0x6C, 0x6A, 0x6D, 0x27, 0xFF, 0x4F,
+	0xB5, 0x13, 0xF7, 0xC8, 0x44, 0x53, 0x2E, 0xE2,
+	0x00, 0x0C, 0x63, 0xD0, 0x6E, 0x2E, 0xFE, 0x01,
+	0x14, 0x01, 0xA3, 0x13, 0x83, 0x2F, 0x27, 0xE1,
+	0x2B, 0x2F, 0x29, 0x13, 0xF7, 0xC5, 0x35, 0xFF,
+	0xF0, 0x21, 0x13, 0xF3, 0xDC, 0xA1, 0x28, 0x82,
+	0x3C, 0x31, 0x01, 0x72, 0x13, 0xFB, 0xFF, 0xD0,
+	0xFE, 0xEF, 0xF3, 0xA0, 0xF0, 0xC7, 0xB0, 0x6A,
+	0x30, 0x63, 0xF4, 0xB8, 0xA4, 0x13, 0xFC, 0x29,
+	0xEF, 0xFF, 0xD0, 0xDA, 0x70, 0x28, 0x13, 0x2A,
+	0x13, 0xF4, 0xEF, 0xF1, 0x13, 0xF9, 0x8A, 0x51,
+	0xFF, 0xDA, 0x93, 0x27, 0xF4, 0x3B, 0x8F, 0xF0,
+	0x94, 0x42, 0xE1, 0x27, 0xFF, 0x4F, 0xFD, 0x63,
+	0xC1, 0xCB, 0x13, 0xC2, 0x63, 0xF3, 0x2A, 0x2C,
+	0x78, 0xC0, 0x6B, 0x8B, 0xFF, 0x3B, 0xD3, 0xD8,
+	0xED, 0x23, 0x13, 0xF6, 0x2E, 0x13, 0xD0, 0x13,
+	0xF0, 0x6D, 0x0C, 0x2F, 0xFC, 0xC6, 0xC0, 0xFE,
+	0x11, 0x14, 0x03, 0xA0, 0x20, 0xA0, 0x00, 0x8C,
+	0xC1, 0x29, 0x2F, 0x7F, 0x2A, 0x14, 0x02, 0x27,
+	0xF0, 0xEF, 0xA4, 0x9A, 0x31, 0x13, 0xF0, 0x4F,
+	0xF3, 0xB5, 0x20, 0xFF, 0x3C, 0x83, 0x3C, 0xE3,
+	0xB6, 0x00, 0x3B, 0xF3, 0xC2, 0x62, 0x13, 0xFB,
+	0xC7, 0xB1, 0x13, 0xF6, 0xEF, 0xDD, 0xD2, 0x18,
+	0x50, 0x13, 0xFE, 0x29, 0x89, 0xE1, 0xEE, 0x90,
+	0x3B, 0xF6, 0x13, 0xF9, 0xDF, 0x81, 0x80, 0x13,
+	0xF1, 0x2A, 0x81, 0x60, 0xEE, 0x82, 0xCD, 0x00,
+	0xC6, 0xE5, 0x3B, 0x14, 0xFD, 0x50, 0x3B, 0x13,
+	0xFF, 0xB3, 0xFF, 0xDB, 0xA0, 0x00, 0x13, 0xDC,
+	0xA0, 0x6D, 0xEF, 0xF1, 0x3D, 0x2A, 0x2B, 0xF1,
+	0x51, 0x9F, 0xFF, 0x63, 0xD2, 0x13, 0xFE, 0x2D,
+	0xEF, 0xB0, 0x3A, 0x6D, 0x2C, 0x55, 0xE1, 0x62,
+	0x22, 0xDC, 0x11, 0x2D, 0xEF, 0xF1, 0x29, 0xFF,
+	0x43, 0x70, 0x00, 0x61, 0x77, 0xF0, 0x28, 0x02,
+	0x4A, 0xD2, 0xF0, 0x11, 0xC8, 0x21, 0x13, 0xF6,
+	0xDF, 0x13, 0x00, 0x27, 0xE3, 0x29, 0x28, 0x03,
+	0x14, 0x01, 0xF1, 0x70, 0xEF, 0xD3, 0xF0, 0x34,
+	0xF7, 0xEF, 0xF5, 0xF0, 0x20, 0x27, 0xF7, 0x40,
+	0x63, 0x27, 0x13, 0xFD, 0x89, 0xC2, 0x00, 0x21,
+	0xDF, 0xA7, 0xA1, 0x13, 0xF7, 0x29, 0x13, 0xF7,
+	0x95, 0xA0, 0x53, 0xA1, 0xDA, 0xF3, 0x68, 0x62,
+	0xF7, 0xDB, 0x35, 0xDB, 0x63, 0x9D, 0x04, 0xC4,
+	0xC2, 0x6A, 0x27, 0xFF, 0xDB, 0xFE, 0x78, 0x22,
+	0xDF, 0x3A, 0xE0, 0xF0, 0x22, 0x6B, 0xDB, 0xF4,
+	0xF1, 0x71, 0xB3, 0xFF, 0xEC, 0xC7, 0x3B, 0xF7,
+	0xEC, 0xED, 0xB1, 0x77, 0xC1, 0x4F, 0x61, 0x2C,
+	0x14, 0x04, 0xB4, 0x62, 0x29, 0x2E, 0x3F, 0x2F,
+	0x2D, 0xEE, 0x10, 0x78, 0x71, 0xB4, 0x32, 0x5E,
+	0xD1, 0xE9, 0x63, 0x4F, 0xD2, 0xFF, 0x27, 0xF5,
+	0xDC, 0x73, 0xD7, 0x71, 0x64, 0xF4, 0x13, 0xF6,
+	0xFE, 0xA4, 0x8B, 0xF6, 0xEF, 0xA0, 0xFF, 0x13,
+	0xF9, 0xE0, 0x52, 0x13, 0xFE, 0xDA, 0x10, 0x9D,
+	0x19, 0x13, 0xF8, 0x6E, 0x30, 0x7E, 0x44, 0xF0,
+	0xE4, 0x04, 0xDC, 0x05, 0x36, 0xD0, 0xFE, 0xF1,
+	0x6A, 0x69, 0x69, 0x69, 0xFF, 0x00, 0x72, 0x00,
+	0x49, 0x3B, 0xFF, 0xDB, 0xFF, 0xB3, 0xF6, 0x8C,
+	0x72, 0x4F, 0xF2, 0xDD, 0x62, 0xFE, 0xC7, 0xFF,
+	0x64, 0x03, 0x64, 0x32, 0x4F, 0xF5, 0xC8, 0xA1,
+	0xC2, 0x01, 0x63, 0x62, 0x2E, 0xFF, 0x14, 0x01,
+	0xA0, 0x61, 0xAC, 0x72, 0x01, 0x80, 0xAC, 0xF2,
+	0x64, 0x24, 0x13, 0xF4, 0x0F, 0x20, 0xFF, 0x27,
+	0xF1, 0x4F, 0xE5, 0xF0, 0x64, 0x3D, 0x52, 0x28,
+	0x03, 0x13, 0xFD, 0xDA, 0x02, 0xDB, 0xF1, 0xFF,
+	0xF0, 0x11, 0x05, 0xE1, 0xEF, 0xF3, 0x2A, 0x91,
+	0x2B, 0xB0, 0x27, 0xFF, 0x14, 0x06, 0xF3, 0xA5,
+	0x7C, 0x0C, 0xCB, 0x83, 0xDD, 0x57, 0x9E, 0xB4,
+	0xB4, 0x82, 0xA7, 0x35, 0x42, 0x3E, 0x41, 0x42,
+	0x93, 0x34, 0x66, 0x68, 0x68, 0x69, 0x68, 0x00,
+	0x03, 0xFE, 0x27, 0xF1, 0xDC, 0x00, 0x77, 0xFF,
+	0x13, 0xFC, 0xDC, 0x51, 0x00, 0x84, 0xEF, 0xF2,
+	0x2A, 0xFF, 0xB4, 0x91, 0xDB, 0xFF, 0x13, 0xFF,
+	0x75, 0xB2, 0x5D, 0x31, 0xF0, 0x51, 0x78, 0xF3,
+	0x00, 0x1F, 0x7F, 0x2A, 0x28, 0xA0, 0xF0, 0x50,
+	0x4F, 0x41, 0x00, 0x23, 0x3B, 0xF1, 0x77, 0x44,
+	0xFD, 0xB0, 0xFF, 0x27, 0x55, 0x28, 0x04, 0xB3,
+	0xF3, 0x8C, 0x72, 0x61, 0xE3, 0x13, 0xF4, 0x8F,
+	0x01, 0x13, 0xF9, 0xFF, 0x77, 0xD2, 0xEC, 0xB3,
+	0x8B, 0xFB, 0xE1, 0xE5, 0x13, 0x19, 0x13, 0x89,
+	0xBA, 0x73, 0xF8, 0xB2, 0xCB, 0xA4, 0x11, 0xF8,
+	0xC2, 0x2A, 0x26, 0x00, 0x00, 0x2A, 0x00, 0x53,
+	0x00, 0x70, 0x2F, 0x2A, 0x2C, 0x14, 0x04, 0x68,
+	0x13, 0xFF, 0xEF, 0xFE, 0x63, 0xE3, 0x14, 0x31,
+	0xDE, 0x3F, 0x12, 0x3B, 0xF1, 0x2C, 0xDD, 0x52,
+	0xEF, 0xFF, 0xEF, 0xFD, 0x27, 0xF2, 0x2D, 0x13,
+	0x2D, 0x0C, 0x6C, 0xBA, 0x12, 0x0C, 0x6C, 0x8B,
+	0x91, 0xC8, 0x50, 0xE7, 0xB2, 0x32, 0xE5, 0x30,
+	0xD7, 0xD1, 0x2F, 0x2D, 0x5A, 0xC1, 0xEC, 0xC1,
+	0xFD, 0x81, 0xFF, 0x14, 0x25, 0x0B, 0x32, 0xB3,
+	0xE3, 0x3B, 0x56, 0xFE, 0x60, 0xB4, 0x62, 0x8B,
+	0xF3, 0xA2, 0x34, 0xFB, 0x27, 0xF7, 0x23, 0x73,
+	0x27, 0xF7, 0xAE, 0xB7, 0xEF, 0xF7, 0x2B, 0x26,
+	0xA2, 0x13, 0x9F, 0xBF, 0xF6, 0xF4, 0x0C, 0xD9,
+	0x83, 0x12, 0xB0, 0x14, 0x12, 0x07, 0x44, 0x13,
+	0x70, 0xB3, 0x79, 0x2F, 0x28, 0x2A, 0x2A, 0xA0,
+	0x2A, 0x6C, 0xE0, 0x2C, 0x33, 0xE2, 0xE0, 0x9F,
+	0xE3, 0xFF, 0xB3, 0xFF, 0xDB, 0xF3, 0x14, 0x05,
+	0xF0, 0x92, 0xDB, 0xF3, 0xFF, 0x14, 0x8B, 0xEC,
+	0xEF, 0xF8, 0xEF, 0x26, 0x75, 0x13, 0xF3, 0xC7,
+	0x50, 0x0C, 0x64, 0x01, 0x13, 0xF1, 0x3A, 0xD2,
+	0xA0, 0x31, 0xFF, 0x95, 0xE3, 0x87, 0x50, 0x00,
+	0xA1, 0xD9, 0x20, 0x13, 0xF8, 0x77, 0xD3, 0x9F,
+	0xE5, 0x4F, 0x44, 0xFF, 0xB5, 0x21, 0x3D, 0x25,
+	0xDB, 0xF5, 0x8A, 0x12, 0x8E, 0x80, 0xEF, 0xF4,
+	0xFE, 0xD1, 0x13, 0xFF, 0xFF, 0x27, 0xF4, 0xC2,
+	0x22, 0x0F, 0xA1, 0x13, 0x8F, 0xBA, 0x41, 0xDA,
+	0xB2, 0x01, 0xE7, 0xE2, 0x94, 0xCF, 0xBC, 0x30,
+	0x3C, 0x66, 0x42, 0x3F, 0x67, 0x71, 0x29, 0x80,
+	0xCB, 0xB2, 0x3E, 0xF5, 0xFE, 0xF5, 0x30, 0x13,
+	0xFF, 0x9F, 0xFC, 0xEF, 0xF0, 0xB4, 0x31, 0xB3,
+	0xD1, 0xF0, 0x50, 0x2E, 0xFB, 0xEF, 0xF2, 0xDC,
+	0xB1, 0x13, 0xFF, 0x13, 0xFF, 0x13, 0xF3, 0x2E,
+	0x8B, 0xC0, 0x8C, 0x10, 0x7B, 0x2D, 0x14, 0x01,
+	0xE3, 0x00, 0xA0, 0x42, 0x8C, 0x44, 0x29, 0x78,
+	0xA0, 0x6F, 0x00, 0xFF, 0x27, 0xFB, 0xC3, 0x82,
+	0x8B, 0x59, 0x8B, 0x62, 0xDC, 0x75, 0xDB, 0xF8,
+	0xED, 0xF2, 0xEF, 0xF3, 0xFF, 0xEA, 0xC2, 0xA5,
+	0xE0, 0x5F, 0x82, 0x27, 0xF7, 0xEE, 0x33, 0x38,
+	0x84, 0x66, 0x20, 0x27, 0x1A, 0xFF, 0x02, 0x15,
+	0x03, 0xB3, 0x4F, 0x56, 0xA1, 0xD6, 0x50, 0x14,
+	0x00, 0xB8, 0xA6, 0x60, 0x3C, 0x80, 0xFD, 0x6C,
+	0xB0, 0x80, 0x13, 0xE1, 0x62, 0x27, 0xFF, 0xDB,
+	0xF9, 0xF0, 0x13, 0x6D, 0xFC, 0x75, 0xFF, 0xF6,
+	0x00, 0xDB, 0xF2, 0xC8, 0xA0, 0x27, 0xFF, 0x27,
+	0xFD, 0xDC, 0x22, 0x64, 0xD5, 0x3B, 0x83, 0xDF,
+	0xAD, 0xF1, 0x50, 0x45, 0x2C, 0x28, 0x11, 0xEE,
+	0x41, 0xDE, 0xA2, 0x4F, 0xF7, 0x8C, 0x11, 0xFF,
+	0x13, 0xF5, 0xDC, 0x34, 0x9F, 0x60, 0xEF, 0xC1,
+	0xC9, 0x23, 0xEF, 0xF6, 0xC8, 0x33, 0x13, 0xF5,
+	0xFF, 0xF2, 0xA3, 0xEE, 0x12, 0x43, 0x41, 0x61,
+	0x82, 0x61, 0x61, 0xFE, 0xE0, 0x3A, 0xA8, 0x27,
+	0x25, 0xFE, 0x15, 0xD5, 0x90, 0xB4, 0x13, 0xD8,
+	0x4F, 0xB3, 0x4F, 0x02, 0x78, 0x42, 0x78, 0x93,
+	0x42, 0x7F, 0x3F, 0xF3, 0xB5, 0x3B, 0xA3, 0x94,
+	0x23, 0xF5, 0x64, 0xEF, 0xFF, 0xEF, 0xF5, 0xB1,
+	0x15, 0xA7, 0x63, 0x90, 0x6A, 0xF0, 0xB1, 0x6A,
+	0x2D, 0xC7, 0xF3, 0xF0, 0xA0, 0x3B, 0xFF, 0xF7,
+	0x13, 0xFF, 0xD9, 0xB2, 0x8B, 0x60, 0xE2, 0x30,
+	0x2F, 0x6A, 0x91, 0xEF, 0xB0, 0xCA, 0x60, 0xBF,
+	0xA0, 0x42, 0x2A, 0x9F, 0xD1, 0x14, 0x51, 0xF2,
+	0xA0, 0x27, 0xF1, 0x8B, 0xF2, 0x50, 0x24, 0xFF,
+	0xEF, 0xE6, 0x77, 0xC4, 0x01, 0x11, 0xF1, 0x72,
+	0x50, 0x12, 0x13, 0xF7, 0xDE, 0xB2, 0x27, 0xF5,
+	0xC0, 0xD9, 0xB3, 0x13, 0x82, 0x0C, 0x2E, 0x0C,
+	0x28, 0x44, 0x41, 0x6F, 0x41, 0x13, 0x25, 0x75,
+	0xC4, 0x2A, 0xF8, 0x60, 0x43, 0x92, 0xEC, 0x57,
+	0x27, 0x38, 0xFF, 0x4D, 0x70, 0x1A, 0x43, 0x27,
+	0x27, 0xF2, 0xA0, 0x2B, 0x32, 0x13, 0x52, 0x04,
+	0xC6, 0x50, 0x02, 0xFF, 0x3C, 0x14, 0xB4, 0x66,
+	0xFE, 0x00, 0x27, 0xFF, 0xF0, 0x02, 0x8F, 0x3C,
+	0xB3, 0xF0, 0xF9, 0xB1, 0xFF, 0xF5, 0x70, 0x4F,
+	0xFF, 0x27, 0xFF, 0x77, 0xF2, 0xDD, 0x80, 0xF6,
+	0x31, 0x14, 0x00, 0xDC, 0x30, 0xFB, 0xCF, 0x10,
+	0x79, 0x21, 0x8B, 0x84, 0x04, 0x81, 0xC2, 0x61,
+	0x2E, 0x41, 0x40, 0x77, 0xF6, 0xFE, 0xD7, 0x93,
+	0xEF, 0x46, 0xB0, 0x61, 0xA1, 0xB4, 0xF0, 0x93,
+	0xF1, 0x65, 0x13, 0xF9, 0x0C, 0x77, 0x2B, 0x13,
+	0x30, 0x88, 0xE1, 0x3A, 0x86, 0x44, 0x27, 0x27,
+	0xB0, 0x70, 0x6B, 0xF1, 0xFF, 0x61, 0xF4, 0x0F,
+	0x45, 0xC5, 0xF2, 0x10, 0xF4, 0x8B, 0x62, 0xA6,
+	0x20, 0xEE, 0xB1, 0x52, 0x53, 0xFB, 0x26, 0x71,
+	0x2B, 0x25, 0x13, 0x86, 0x27, 0xE3, 0x2D, 0x33,
+	0x2C, 0x7F, 0x21, 0xC8, 0x77, 0xFF, 0x13, 0xFF,
+	0x3B, 0xE4, 0x9F, 0xD2, 0x64, 0x72, 0x8C, 0x60,
+	0x05, 0xE1, 0x4F, 0xF0, 0xB9, 0x72, 0xFF, 0x63,
+	0xFF, 0x63, 0xFF, 0x27, 0xF2, 0x13, 0xF4, 0x4F,
+	0xB2, 0x6A, 0xC3, 0xA0, 0x42, 0xF0, 0x40, 0xE7,
+	0x97, 0x81, 0xEE, 0xD1, 0xB4, 0x00, 0x2A, 0x2B,
+	0x77, 0xD9, 0x5B, 0xA1, 0x12, 0xA4, 0xFF, 0xB0,
+	0x73, 0x79, 0x42, 0xDB, 0xC0, 0x78, 0x22, 0x27,
+	0xF8, 0xC2, 0xC1, 0xEC, 0x42, 0x13, 0x84, 0xEF,
+	0x27, 0x28, 0x27, 0xF4, 0x50, 0x22, 0x28, 0xC4,
+	0x11, 0xC4, 0x77, 0x9D, 0xD3, 0x4F, 0x47, 0xFF,
+	0xBC, 0x61, 0x4F, 0xC6, 0x54, 0x81, 0x79, 0x14,
+	0x3B, 0x26, 0x78, 0xC0, 0x8B, 0xE1, 0x28, 0xB4,
+	0xFF, 0x3C, 0x52, 0x53, 0x25, 0x54, 0x93, 0x27,
+	0xFF, 0xC7, 0xF7, 0xC8, 0x31, 0xF9, 0x00, 0x87,
+	0x40, 0xFF, 0x87, 0x50, 0x8B, 0xF2, 0xF5, 0xA2,
+	0x77, 0xFF, 0x77, 0xFF, 0x3B, 0xF2, 0xF0, 0xE1,
+	0x63, 0x04, 0xEF, 0x13, 0xA1, 0xDB, 0xC0, 0x64,
+	0x41, 0x2B, 0xF0, 0x10, 0xF0, 0x01, 0xFC, 0xF0,
+	0x4E, 0x60, 0xFF, 0x27, 0xF8, 0x6F, 0xF4, 0x13,
+	0xF7, 0xEC, 0x81, 0xC9, 0xC2, 0xC8, 0x45, 0x77,
+	0xF4, 0xFC, 0x23, 0xD8, 0x4E, 0x0C, 0x62, 0x74,
+	0x2A, 0x3B, 0xF0, 0xB0, 0x83, 0x44, 0x44, 0x44,
+	0xFB, 0xD7, 0xE0, 0x87, 0x70, 0xD8, 0x62, 0x50,
+	0x23, 0x4C, 0x86, 0x29, 0x92, 0x11, 0x14, 0xC7,
+	0xFF, 0x14, 0x92, 0xCA, 0x12, 0x14, 0x26, 0xB4,
+	0x92, 0x9F, 0xD2, 0xCB, 0x68, 0x54, 0x83, 0xA7,
+	0x30, 0x9B, 0xF0, 0xF8, 0x6D, 0x2D, 0x63, 0x15,
+	0xEF, 0xFC, 0x2B, 0x86, 0xD0, 0x43, 0x64, 0xFF,
+	0xF4, 0xE0, 0xEF, 0xF0, 0x14, 0x91, 0x27, 0xFF,
+	0x8B, 0xFF, 0xEF, 0xF4, 0xF1, 0x30, 0x92, 0x43,
+	0xFF, 0xDC, 0x00, 0x92, 0xB1, 0xF1, 0x20, 0xDC,
+	0x01, 0xFA, 0x51, 0x1B, 0xC4, 0x9F, 0xE1, 0x4F,
+	0xF4, 0xFF, 0x12, 0x73, 0x62, 0xB6, 0xC7, 0x94,
+	0x28, 0x05, 0xEF, 0x30, 0x28, 0x03, 0xE9, 0x28,
+	0xC2, 0x83, 0xFF, 0xB0, 0xCC, 0x71, 0x52, 0x76,
+	0x04, 0xFF, 0x38, 0x75, 0x48, 0xC4, 0xD4, 0x78,
+	0x68, 0x29, 0x29, 0xFF, 0x00, 0x7B, 0x3C, 0x07,
+	0xB4, 0x71, 0x14, 0xC4, 0xCE, 0xE0, 0x40, 0xA6,
+	0xF1, 0x31, 0x28, 0x21, 0xFF, 0xEF, 0xFF, 0x7E,
+	0x33, 0x44, 0x01, 0x3B, 0x43, 0x13, 0xF1, 0x2A,
+	0xD0, 0xF8, 0xB0, 0x27, 0xFF, 0xFF, 0xB3, 0xEE,
+	0xDB, 0xF1, 0xF0, 0x61, 0x63, 0x51, 0x50, 0x02,
+	0x8B, 0x92, 0xF1, 0x61, 0x83, 0xE3, 0xFF, 0x8B,
+	0xC1, 0xFF, 0x11, 0x51, 0x21, 0x63, 0xF4, 0x62,
+	0xA3, 0xEE, 0x51, 0x13, 0xF8, 0x79, 0x03, 0xFF,
+	0xE9, 0x53, 0x9A, 0x92, 0xEF, 0x93, 0x2A, 0xE6,
+	0x35, 0x47, 0xF0, 0xF2, 0x8C, 0x92, 0xFF, 0x85,
+	0x1E, 0x43, 0x43, 0x2A, 0x28, 0x10, 0x77, 0xB4,
+	0x14, 0xFD, 0x8F, 0x32, 0x26, 0x7C, 0x26, 0x3A,
+	0xE3, 0x4E, 0x5A, 0x12, 0x84, 0x3B, 0x11, 0xA1,
+	0x83, 0x42, 0x42, 0xBF, 0x64, 0x74, 0x26, 0x3C,
+	0xB1, 0x50, 0x13, 0xB5, 0x84, 0xEE, 0x35, 0x27,
+	0xE7, 0xEF, 0xF6, 0xFF, 0xBC, 0x62, 0xBC, 0xB0,
+	0x13, 0x22, 0x27, 0xE0, 0xC3, 0x50, 0x3B, 0xF5,
+	0x63, 0xFF, 0x13, 0xFF, 0xFF, 0xC7, 0xF2, 0x28,
+	0x62, 0xFD, 0x82, 0xBA, 0xD0, 0xBB, 0x02, 0x29,
+	0x41, 0xFA, 0xD2, 0x77, 0xC3, 0xFF, 0xF0, 0xA0,
+	0xC7, 0xF6, 0xEF, 0xC1, 0x75, 0x53, 0x62, 0xA3,
+	0xDA, 0x73, 0xDA, 0xB3, 0xBF, 0xF3, 0xF8, 0x39,
+	0xC2, 0x3A, 0xDC, 0x71, 0xC7, 0x9D, 0x52, 0xC7,
+	0xD1, 0x2A, 0x2A, 0x44, 0x5F, 0x41, 0xEF, 0x40,
+	0x43, 0x27, 0xA9, 0xF4, 0xC0, 0x60, 0x96, 0xAF,
+	0xC2, 0x4B, 0xD5, 0xFC, 0xA3, 0xB1, 0xC5, 0x83,
+	0x13, 0xFD, 0x14, 0x75, 0x2C, 0x19, 0x42, 0x36,
+	0x2C, 0x2B, 0x7B, 0x68, 0x13, 0xB5, 0x14, 0x1C,
+	0xEF, 0xF4, 0xD0, 0x63, 0x2A, 0x4F, 0xB0, 0x14,
+	0x32, 0xFD, 0xD7, 0x51, 0xF9, 0xC0, 0x29, 0x13,
+	0x77, 0xFF, 0x27, 0xFF, 0xDB, 0xF3, 0x2D, 0xEF,
+	0x64, 0xFF, 0x63, 0xB4, 0xF1, 0x32, 0xA0, 0x36,
+	0x50, 0x82, 0xC7, 0xF4, 0xB3, 0xA3, 0x77, 0xD2,
+	0x13, 0xF7, 0xFF, 0x3B, 0x53, 0x13, 0xA3, 0x84,
+	0x18, 0x62, 0xEB, 0xDC, 0xE0, 0xDB, 0xD1, 0xC6,
+	0x43, 0xD7, 0x01, 0xFE, 0x3C, 0xA8, 0xD7, 0xF4,
+	0x74, 0x17, 0xD8, 0x11, 0xB1, 0x52, 0xDB, 0x83,
+	0xF2, 0x61, 0x26, 0xFF, 0xB3, 0xB2, 0x54, 0xF4,
+	0xEE, 0x11, 0x13, 0xF8, 0x04, 0xD3, 0x05, 0x53,
+	0x92, 0x44, 0xF2, 0xA4, 0x7D, 0x6C, 0x14, 0x0F,
+	0x13, 0xFF, 0x76, 0xB2, 0xBC, 0xA2, 0xCE, 0x41,
+	0x2A, 0x9F, 0xF1, 0xFF, 0x27, 0xFF, 0xDB, 0xFF,
+	0x13, 0xF8, 0x26, 0xD2, 0x4F, 0xE1, 0x00, 0x08,
+	0x68, 0xE0, 0xA1, 0x80, 0x3F, 0x2C, 0x29, 0xF0,
+	0xD0, 0x63, 0xF1, 0x8C, 0x00, 0xDB, 0x62, 0xF0,
+	0x21, 0xE9, 0x45, 0xFE, 0xEF, 0x83, 0xE7, 0x54,
+	0x75, 0xBA, 0x13, 0xFE, 0x13, 0xA3, 0xB2, 0x81,
+	0x89, 0xA7, 0x44, 0x41, 0x41, 0xEA, 0x21, 0x44,
+	0x2A, 0x43, 0x28, 0x43, 0x66, 0x93, 0xFF, 0xF1,
+	0x12, 0x9D, 0xEA, 0xF8, 0x00, 0xC7, 0x25, 0x55,
+	0x24, 0xB6, 0xD3, 0x06, 0xFE, 0x4E, 0x43, 0xF1,
+	0xFF, 0xC0, 0xD7, 0x71, 0x9D, 0x00, 0xB3, 0xE5,
+	0x68, 0x68, 0x2C, 0x28, 0x1F, 0xFF, 0xEF, 0xF7,
+	0x86, 0x92, 0x8A, 0xB0, 0x27, 0xC3, 0x50, 0x94,
+	0xDB, 0xF1, 0xCF, 0x92, 0xEF, 0xFF, 0xFD, 0x4F,
+	0xFD, 0xC7, 0xF4, 0x14, 0x04, 0x63, 0xE2, 0x8B,
+	0x93, 0x13, 0xF1, 0x2B, 0x8B, 0xE0, 0xFF, 0xE5,
+	0xA0, 0x78, 0x80, 0xE5, 0xF0, 0x13, 0xF3, 0x13,
+	0xC7, 0xB3, 0xF5, 0x13, 0x9A, 0xFF, 0x61, 0xCF,
+	0x5B, 0xB5, 0xFF, 0xE6, 0x2C, 0x0C, 0xE0, 0xC1,
+	0x4D, 0x7F, 0xF5, 0x62, 0xB6, 0x66, 0xEE, 0x3C,
+	0x61, 0x51, 0x47, 0x65, 0x0D, 0x6A, 0xD5, 0x50,
+	0xD9, 0x02, 0x1A, 0x79, 0x68, 0x43, 0x68, 0x3E,
+	0x95, 0x2A, 0x6A, 0x6A, 0x68, 0x13, 0x31, 0x02,
+	0x70, 0xD7, 0x00, 0x24, 0x03, 0x42, 0x68, 0x14,
+	0x01, 0x28, 0xED, 0x30, 0x3C, 0x3F, 0x13, 0xFC,
+	0xFC, 0x63, 0xD1, 0x3C, 0x11, 0x9F, 0x60, 0x9F,
+	0xF4, 0x8C, 0xA1, 0xEF, 0xDB, 0x00, 0x00, 0xFF,
+	0x63, 0xFF, 0x00, 0x11, 0xEF, 0xF2, 0x77, 0x62,
+	0x4F, 0xF2, 0x4F, 0x53, 0x4F, 0x91, 0x13, 0xF1,
+	0xFF, 0xFB, 0x20, 0xB4, 0x20, 0xD7, 0xA0, 0x27,
+	0xF2, 0xB2, 0x00, 0xFD, 0x86, 0xFF, 0x60, 0xDB,
+	0xA4, 0xFF, 0x13, 0x53, 0x5B, 0x60, 0xD5, 0x10,
+	0xD8, 0xD4, 0xFE, 0x75, 0x3B, 0x13, 0x75, 0xDA,
+	0xFF, 0xC3, 0x8E, 0xDC, 0xD2, 0x41, 0x41, 0x44,
+	0xF0, 0x41, 0x64, 0x00, 0xEC, 0x62, 0x44, 0xF2,
+	0x9D, 0x81, 0xA7, 0xE3, 0xBB, 0xE3, 0xEF, 0xE0,
+	0x6B, 0x6C, 0x00, 0x00, 0x6A, 0xCB, 0xFC, 0xC0,
+	0xDB, 0xF2, 0x68, 0x68, 0x74, 0x94, 0x28, 0xAF,
+	0x41, 0x15, 0x50, 0x80, 0xC3, 0xA2, 0x68, 0x68,
+	0x68, 0x6B, 0x68, 0x6B, 0x2B, 0xFB, 0x27, 0x52,
+	0x15, 0x33, 0xE1, 0x10, 0x15, 0x12, 0xFC, 0xE1,
+	0x28, 0x28, 0x0D, 0x64, 0x73, 0xBF, 0x78, 0xA0,
+	0x2F, 0x27, 0xE1, 0x63, 0xF5, 0x8B, 0x90, 0xF9,
+	0x13, 0xB3, 0xF2, 0x8B, 0xFF, 0xFE, 0x13, 0xFF,
+	0x3B, 0xF9, 0x50, 0x42, 0xB3, 0xD4, 0xF0, 0x22,
+	0xEF, 0x32, 0xC8, 0xE0, 0x2A, 0x3F, 0x2C, 0x29,
+	0xC8, 0x20, 0xF9, 0x50, 0x13, 0xF7, 0x72, 0x33,
+	0x9A, 0x75, 0x13, 0x63, 0x82, 0x13, 0xD0, 0x43,
+	0x43, 0x43, 0x28, 0x27, 0x14, 0x11, 0x2A, 0xFE,
+	0x75, 0x11, 0x13, 0xBA, 0xFF, 0xB5, 0x9C, 0xE1,
+	0xF0, 0x37, 0x8D, 0xFB, 0xD8, 0xD3, 0x2B, 0x0F,
+	0x2A, 0x6A, 0x6C, 0x69, 0xFE, 0x23, 0x84, 0xF1,
+	0x13, 0xA0, 0x13, 0xE1, 0xBC, 0x39, 0x13, 0x2C,
+	0x14, 0x81, 0xD6, 0xB0, 0x12, 0x82, 0xD7, 0x31,
+	0x6B, 0x2B, 0xBB, 0x00, 0x11, 0x68, 0x3B, 0x30,
+	0x14, 0x71, 0xA6, 0x81, 0x68, 0x00, 0x20, 0x14,
+	0xD0, 0x77, 0x28, 0x3C, 0x02, 0x15, 0xD2, 0x28,
+	0x01, 0x0C, 0x18, 0x31, 0x28, 0x5B, 0x13, 0xF8,
+	0xFD, 0xE2, 0xE8, 0xE3, 0x92, 0x27, 0xF5, 0xC7,
+	0xFF, 0x27, 0xFF, 0x77, 0xF4, 0x2C, 0xA0, 0x01,
+	0xFF, 0x77, 0x93, 0xC7, 0xF3, 0x28, 0x02, 0xEF,
+	0xA2, 0xFC, 0xC0, 0xB4, 0x32, 0xF0, 0x31, 0x85,
+	0xE4, 0xFF, 0xFE, 0xB7, 0xFC, 0xD1, 0x13, 0x60,
+	0x13, 0x80, 0xFF, 0xE3, 0x00, 0xB7, 0x27, 0x75,
+	0x24, 0x83, 0xF3, 0xED, 0x40, 0xB7, 0x24, 0xFE,
+	0x82, 0x29, 0x83, 0x2C, 0x2A, 0xDB, 0xF3, 0x10,
+	0x81, 0xB2, 0x72, 0x38, 0x69, 0x26, 0xC1, 0xDA,
+	0x11, 0x68, 0x68, 0xF2, 0xE2, 0x68, 0x01, 0x6C,
+	0x6C, 0x68, 0x68, 0x66, 0x66, 0x66, 0x26, 0x40,
+	0xFE, 0xF0, 0x81, 0xEA, 0xB4, 0x13, 0xA0, 0x9D,
+	0x12, 0x9D, 0xB5, 0x9E, 0x01, 0x3C, 0x40, 0x2A,
+	0x00, 0x28, 0x6A, 0x28, 0x66, 0x26, 0x66, 0x66,
+	0x26, 0x7E, 0x68, 0x15, 0x50, 0x3D, 0x62, 0xF5,
+	0x80, 0x03, 0x70, 0xDA, 0x12, 0x00, 0x0A, 0x6B,
+	0xFF, 0x27, 0xF1, 0xD6, 0xA2, 0xE2, 0x96, 0xB3,
+	0x22, 0x3B, 0xF6, 0xB3, 0xFF, 0x3B, 0xFF, 0x9F,
+	0xF2, 0xFF, 0x8B, 0x92, 0xDB, 0xB2, 0x13, 0x73,
+	0x8C, 0x91, 0x13, 0xF3, 0x14, 0x00, 0xF0, 0x22,
+	0xB4, 0xA1, 0xFF, 0xF3, 0x00, 0xA5, 0x50, 0x75,
+	0x5E, 0xFF, 0x84, 0x14, 0x42, 0x00, 0x43, 0x62,
+	0xB2, 0x08, 0x92, 0xFA, 0x38, 0x95, 0xAF, 0xC4,
+	0x89, 0x92, 0xFE, 0x34, 0x35, 0x90, 0x69, 0x00,
+	0x00, 0x84, 0x81, 0x00, 0x41, 0x69, 0x69, 0x6B,
+	0x6B, 0x68, 0x68, 0x27, 0x13, 0xE7, 0xFC, 0x91,
+	0x12, 0x36, 0xFD, 0x63, 0x2A, 0x2A, 0x28, 0x13,
+	0xEA, 0x42, 0x9C, 0x73, 0xFE, 0xFD, 0xC0, 0x3B,
+	0x20, 0x28, 0x44, 0x3B, 0xD0, 0x16, 0x62, 0x7A,
+	0x21, 0x16, 0x60, 0x26, 0x3E, 0x26, 0x66, 0x63,
+	0xB0, 0x14, 0x20, 0x64, 0x31, 0x18, 0x32, 0x64,
+	0x20, 0x2F, 0xFF, 0x8C, 0x4A, 0xB4, 0xD4, 0x13,
+	0xFD, 0xEF, 0x10, 0x27, 0xF7, 0x9F, 0xFF, 0x4F,
+	0xFF, 0xB3, 0xF2, 0xFF, 0xF0, 0x73, 0x47, 0x36,
+	0xB3, 0x62, 0xF0, 0xA1, 0xB3, 0xF2, 0xDB, 0xE0,
+	0x28, 0x21, 0xF2, 0x82, 0xFF, 0xE4, 0x21, 0xD8,
+	0x3C, 0xEF, 0x72, 0x27, 0x85, 0xED, 0x75, 0x4B,
+	0xD5, 0xFB, 0x11, 0x3A, 0x57, 0xFC, 0xEB, 0xD0,
+	0x25, 0x80, 0x11, 0x86, 0xC0, 0xD2, 0x12, 0xC2,
+	0xAD, 0x94, 0x67, 0x67, 0x3F, 0x67, 0x6A, 0x00,
+	0x30, 0x25, 0xF3, 0xF0, 0x71, 0x39, 0xF2, 0x14,
+	0x03, 0x14, 0x97, 0xFA, 0x15, 0x85, 0x11, 0x64,
+	0x4F, 0x92, 0x63, 0x72, 0xF8, 0xB0, 0x6A, 0x2A,
+	0x30, 0x66, 0xFB, 0x76, 0xF0, 0x64, 0x90, 0x6C,
+	0x66, 0x51, 0x91, 0x51, 0x22, 0x2D, 0xA0, 0x51,
+	0xB9, 0xAE, 0xFF, 0x13, 0xFD, 0x4F, 0xF4, 0x8B,
+	0xF0, 0x3B, 0xFF, 0xB4, 0x62, 0xEF, 0x44, 0x8A,
+	0x57, 0x9F, 0xB2, 0xFF, 0xDC, 0x23, 0x13, 0xF8,
+	0x28, 0x52, 0x5C, 0x12, 0x27, 0xB2, 0xF2, 0xA1,
+	0xE4, 0x91, 0xD8, 0x1D, 0xFF, 0xF0, 0x43, 0x27,
+	0xA5, 0xBF, 0xC1, 0xB1, 0x95, 0xEC, 0x94, 0x0C,
+	0x02, 0x25, 0xB0, 0x00, 0x13, 0xE0, 0x70, 0xE0,
+	0x25, 0x03, 0x60, 0xB0, 0x28, 0x28, 0x6C, 0x2C,
+	0x6C, 0xC4, 0x00, 0xE2, 0xB6, 0xE1, 0x27, 0x27,
+	0x67, 0x02, 0x42, 0x28, 0x2A, 0xAF, 0x14, 0x60,
+	0x67, 0xD6, 0x91, 0x68, 0x02, 0x20, 0x62, 0x40,
+	0x76, 0x11, 0xC7, 0xB0, 0xDE, 0xC8, 0x11, 0xF0,
+	0x03, 0x2A, 0x3F, 0x72, 0xDC, 0x6A, 0x40, 0x34,
+	0x7A, 0x21, 0x28, 0x7B, 0x66, 0x77, 0x00, 0x27,
+	0x13, 0x04, 0xE3, 0xCE, 0xE3, 0x2A, 0x1D, 0x30,
+	0xF0, 0x69, 0xFF, 0x13, 0xFF, 0xC8, 0x15, 0xE4,
+	0x03, 0x4F, 0xF5, 0x77, 0xFF, 0xC6, 0x12, 0x3A,
+	0x33, 0xB1, 0xB4, 0xFE, 0x6E, 0xF5, 0x12, 0x42,
+	0xDC, 0x02, 0x8C, 0x02, 0xDC, 0xE2, 0x13, 0xF3,
+	0xB4, 0x22, 0x2B, 0xDB, 0x26, 0xA7, 0x27, 0xFD,
+	0x42, 0x00, 0x00, 0xD3, 0xB1, 0x42, 0xF2, 0xF2,
+	0xFD, 0x90, 0xFF, 0x98, 0x40, 0x10, 0x11, 0x86,
+	0x04, 0x98, 0x11, 0x36, 0xC1, 0x5F, 0xB4, 0x25,
+	0x45, 0x71, 0xA0, 0xAF, 0x86, 0xF2, 0x2A, 0x74,
+	0x80, 0x67, 0x5E, 0x51, 0xFE, 0x87, 0xA5, 0x0E,
+	0x74, 0x21, 0xFD, 0xDD, 0xC4, 0xD9, 0x11, 0x64,
+	0x71, 0x65, 0x32, 0xED, 0x44, 0x9E, 0xE2, 0x6A,
+	0x79, 0x81, 0xFF, 0xF4, 0x36, 0xCF, 0x26, 0x78,
+	0x81, 0x31, 0x13, 0x14, 0x0F, 0x27, 0x34, 0x95,
+	0x87, 0xF8, 0xB4, 0xFF, 0xDF, 0x41, 0xFB, 0x94,
+	0x13, 0xFF, 0xD9, 0xE2, 0xC6, 0x52, 0x77, 0x13,
+	0xF8, 0xD5, 0xFC, 0xA1, 0xFF, 0xC8, 0x34, 0x2A,
+	0x49, 0xEE, 0x03, 0xFF, 0xA2, 0x13, 0xFF, 0x01,
+	0x37, 0xAD, 0xB2, 0x84, 0xB1, 0xFF, 0xAB, 0xA1,
+	0x23, 0xE1, 0xAB, 0x50, 0x70, 0x82, 0x4C, 0x14,
+	0xFF, 0x61, 0x9E, 0xC6, 0xFD, 0x20, 0xFF, 0xC7,
+	0x21, 0xEE, 0x8C, 0x8C, 0x82, 0xB4, 0x26, 0xEC,
+	0x84, 0x0D, 0x7A, 0x99, 0x01, 0xE1, 0xB0, 0xFF,
+	0xEF, 0x11, 0x3A, 0xB1, 0x4E, 0x80, 0x4E, 0xC0,
+	0xCE, 0xF7, 0xDF, 0x38, 0xC8, 0x23, 0xF7, 0x24,
+	0xFC, 0x90, 0xF4, 0x19, 0xF7, 0x14, 0x1D, 0xC7,
+	0xD3, 0x80, 0xBE, 0x13, 0xFF, 0x00, 0x00, 0xFF,
+	0xE4, 0xD5, 0xF0, 0x21, 0x13, 0x64, 0x96, 0xC8,
+	0x00, 0x57, 0xE8, 0xC3, 0xD4, 0x01, 0xED, 0xA7,
+	0xF0, 0x27, 0xFF, 0xDC, 0x32, 0x62, 0xD3, 0xFF,
+	0x70, 0x43, 0x43, 0x2B, 0x83, 0x87, 0x60, 0x70,
+	0x81, 0x83, 0x68, 0x83, 0xEE, 0x32, 0x89, 0x7A,
+	0x13, 0x83, 0xEF, 0xDB, 0x37, 0x37, 0xF4, 0x13,
+	0xA8, 0x44, 0xDC, 0x45, 0xBA, 0xB1, 0x55, 0x63,
+	0xDD, 0x52, 0xFF, 0xA4, 0x32, 0xF4, 0xD0, 0xF5,
+	0x71, 0x28, 0x72, 0xE1, 0x97, 0xF0, 0x32, 0xF2,
+	0x83, 0x13, 0xF9, 0xFF, 0xF8, 0x40, 0xAB, 0x30,
+	0xF2, 0x06, 0x6C, 0x65, 0x3C, 0x1F, 0xBA, 0x0A,
+	0x13, 0xFF, 0x27, 0xFF, 0x3F, 0x00, 0x2B, 0xB1,
+	0xB1, 0x13, 0xB4, 0xAA, 0x58, 0x14, 0x09, 0xFC,
+	0xA6, 0xC1, 0xA5, 0xFF, 0x27, 0x85, 0x3B, 0xFF,
+	0x88, 0x53, 0x08, 0x5F, 0xC7, 0x21, 0xF0, 0x18,
+	0x66, 0x32, 0xFF, 0xD3, 0xFF, 0x9F, 0x23, 0x03,
+	0x36, 0xF3, 0x03, 0x28, 0x97, 0xA4, 0x10, 0xA0,
+	0xA7, 0xCA, 0x9B, 0x26, 0x1A, 0xFF, 0xF6, 0x54,
+	0xE2, 0xD9, 0x23, 0xEF, 0xF1, 0xE5, 0x13, 0xF6,
+	0x50, 0x2F, 0x13, 0xFF, 0x27, 0xFF, 0xFF, 0x27,
+	0xFD, 0x27, 0x84, 0x13, 0xF5, 0x27, 0xE9, 0x13,
+	0x9D, 0x13, 0xD3, 0x27, 0xE4, 0x50, 0x0F, 0xE3,
+	0x62, 0xE3, 0x32, 0xD9, 0x50, 0x60, 0x3F, 0x42,
+	0x42, 0xDB, 0xDC, 0xC6, 0xC0, 0xF9, 0x77, 0xF2,
+	0x39, 0x05, 0x2A, 0xE2, 0xD8, 0xC0, 0x27, 0xD6,
+	0x43, 0x43, 0xEE, 0x30, 0xFF, 0xB7, 0xC0, 0xDB,
+	0xC5, 0xE1, 0x28, 0xB6, 0x2E, 0x2D, 0x56, 0x40,
+	0x11, 0xF7, 0x0A, 0x29, 0x75, 0xFF, 0x13, 0x98,
+	0x27, 0xFB, 0x3C, 0x1F, 0x27, 0xFF, 0x3B, 0xFF,
+	0x3B, 0xFC, 0xE7, 0x61, 0xB2, 0x61, 0xFF, 0x3B,
+	0xC6, 0x27, 0x69, 0x36, 0xA8, 0x27, 0x85, 0x14,
+	0x46, 0x4F, 0xFE, 0x4D, 0x01, 0x5E, 0xD2, 0x1F,
+	0x2A, 0x41, 0x41, 0xB3, 0xA2, 0xE8, 0x40, 0x23,
+	0xD2, 0x29, 0x75, 0x49, 0x66, 0xFF, 0x3B, 0xB5,
+	0xAA, 0x77, 0xBE, 0xA3, 0xEF, 0xB7, 0x7B, 0x01,
+	0x3A, 0x31, 0xDA, 0x22, 0x30, 0x8B, 0xFF, 0xCB,
+	0xA5, 0xCC, 0x44, 0x4E, 0x56, 0xBC, 0x92, 0xF6,
+	0x77, 0x3C, 0xA2, 0xF8, 0x29, 0x13, 0xFF, 0xFD,
+	0x78, 0x3F, 0x3B, 0xFF, 0x4F, 0xFF, 0x4F, 0xFF,
+	0x63, 0x2A, 0x13, 0xCA, 0x29, 0xD5, 0xC2, 0xFE,
+	0x27, 0xEA, 0x9E, 0x03, 0x63, 0xFE, 0x83, 0xD2,
+	0x72, 0x24, 0xD8, 0x46, 0xC8, 0x82, 0x41, 0x3F,
+	0x3D, 0x41, 0xB4, 0xB3, 0xC6, 0x64, 0x38, 0x65,
+	0x55, 0x46, 0xF0, 0x55, 0x51, 0xF4, 0x7D, 0x44,
+	0x62, 0x42, 0x5E, 0xE4, 0x39, 0x65, 0xCF, 0xB1,
+	0x14, 0xB6, 0x2A, 0xEC, 0x00, 0xFF, 0x3F, 0xD4,
+	0x00, 0xA0, 0xF5, 0xD1, 0x39, 0x94, 0x3A, 0x9C,
+	0x64, 0x54, 0x14, 0x0E, 0x13, 0xF7, 0xFF, 0x8C,
+	0x4F, 0x4F, 0xFF, 0x63, 0xFF, 0x8B, 0xFA, 0x00,
+	0x0E, 0x4E, 0xEC, 0x13, 0xCE, 0x4F, 0xFF, 0xE7,
+	0x13, 0xC3, 0x36, 0x37, 0xF1, 0x00, 0x41, 0x41,
+	0xEC, 0xE4, 0xD9, 0xF8, 0xDE, 0x33, 0xFF, 0x74,
+	0xA1, 0x70, 0xC4, 0x00, 0xF4, 0xA1, 0xC1, 0xDC,
+	0x34, 0x13, 0xF3, 0xF0, 0x92, 0x4F, 0xE3, 0xFF,
+	0x97, 0xF4, 0x8C, 0xA3, 0x9F, 0x52, 0xF5, 0xC0,
+	0x56, 0x34, 0x4C, 0xE4, 0x53, 0x13, 0xE0, 0x21,
+	0xFF, 0x14, 0x17, 0x8F, 0xA9, 0x51, 0x66, 0x3B,
+	0xFF, 0x8C, 0x4F, 0x63, 0xFF, 0x42, 0x98, 0xFB,
+	0x31, 0xFF, 0x13, 0xFF, 0x31, 0xFE, 0xA9, 0x73,
+	0x13, 0x6F, 0x28, 0x2C, 0x8B, 0xE5, 0xAB, 0x75,
+	0xFF, 0xA5, 0x10, 0x41, 0x2A, 0x43, 0x3B, 0xE0,
+	0x29, 0x43, 0x41, 0x41, 0xCF, 0x60, 0xA2, 0x27,
+	0xE0, 0x41, 0x41, 0x4C, 0xE0, 0xAE, 0x43, 0x68,
+	0x75, 0x4B, 0xA8, 0xFF, 0x66, 0x77, 0x7A, 0x04,
+	0xFC, 0x10, 0x29, 0x52, 0x88, 0x46, 0x71, 0x77,
+	0x39, 0x04, 0x14, 0x10, 0xFF, 0xCC, 0x31, 0x8A,
+	0x78, 0xB1, 0x84, 0x8B, 0xC0, 0x8B, 0x96, 0xAF,
+	0x94, 0xBB, 0x52, 0xA4, 0xC3, 0xFC, 0x3B, 0xFF,
+	0xB4, 0x5F, 0x77, 0xFF, 0xB9, 0xA7, 0xED, 0xF1,
+	0xC7, 0xFD, 0x0C, 0x0C, 0x77, 0x0C, 0x8A, 0xAC,
+	0x01, 0x10, 0x01, 0x40, 0x29, 0x00, 0x63, 0x01,
+	0xE5, 0x3C, 0x1F, 0xE7, 0x9F, 0xF4, 0x5F, 0x73,
+	0x89, 0xAC, 0x43, 0x41, 0x9D, 0x21, 0x9D, 0xD1,
+	0x94, 0x56, 0xFE, 0x8F, 0x91, 0x82, 0x3C, 0x8D,
+	0x05, 0xA9, 0xA4, 0xDD, 0xA0, 0xDD, 0xE2, 0xFC,
+	0x11, 0x44, 0xF8, 0x14, 0x31, 0x98, 0x2D, 0x85,
+	0xC9, 0xAD, 0x00, 0xF7, 0x94, 0x27, 0x27, 0x27,
+	0xFF, 0x77, 0x0C, 0x8D, 0x04, 0x06, 0xFC, 0x13,
+	0xE7, 0x27, 0xFA, 0xC8, 0x6F, 0x24, 0x16, 0x4D,
+	0x89, 0xFF, 0xCD, 0xB6, 0xDB, 0xFD, 0x5A, 0x1B,
+	0x3C, 0xDF, 0x15, 0x6C, 0x00, 0x5D, 0xD3, 0x08,
+	0x39, 0xF6, 0xF7, 0xDA, 0x72, 0x63, 0xC0, 0x3C,
+	0x50, 0xF0, 0xD1, 0x41, 0xBC, 0xC7, 0xAD, 0x64,
+	0xF2, 0x32, 0xFF, 0xB0, 0x47, 0xBF, 0x11, 0xAC,
+	0xF3, 0xAF, 0xA8, 0xFC, 0x71, 0x9F, 0xE4, 0xA1,
+	0xF5, 0xB4, 0x13, 0xF7, 0xAD, 0x97, 0x3F, 0x63,
+	0xF5, 0xF0, 0x14, 0x20, 0x27, 0x9F, 0x15, 0xB3,
+	0xA6, 0x7A, 0xD4, 0xFF, 0x13, 0xEF, 0x13, 0xFD,
+	0xDC, 0x7A, 0xAF, 0xCC, 0x7A, 0x96, 0x36, 0x15,
+	0x13, 0xFF, 0x99, 0x80, 0xFE, 0x64, 0x3A, 0x51,
+	0x0F, 0x52, 0x2F, 0xB5, 0xCB, 0x1E, 0xBB, 0x0D,
+	0xB5, 0xDD, 0xD4, 0x43, 0xBF, 0xF1, 0x23, 0x41,
+	0x16, 0x67, 0xC6, 0x62, 0xC7, 0x53, 0x17, 0x38,
+	0x10, 0x31, 0xEC, 0x73, 0xFF, 0x52, 0x65, 0x75,
+	0x76, 0xDC, 0x35, 0xC4, 0xA5, 0x52, 0xF2, 0x8C,
+	0xAC, 0x28, 0x52, 0xC7, 0x85, 0xDF, 0xB5, 0x01,
+	0xD6, 0xE3, 0x2F, 0xF7, 0x33, 0x16, 0x01, 0x00,
+	0x33, 0x27, 0xFF, 0xF0, 0x77, 0xFF, 0x01, 0x6B,
+	0x7A, 0x47, 0x49, 0xD4, 0xA7, 0x63, 0x8B, 0xFF,
+	0xC8, 0x13, 0xBD, 0x75, 0x64, 0xFF, 0xFF, 0xF9,
+	0x66, 0x2D, 0x2B, 0x70, 0xC6, 0x21, 0x3A, 0xD3,
+	0x06, 0xA3, 0x3B, 0x9C, 0xE0, 0x27, 0x11, 0xFF,
+	0xD8, 0xB5, 0xB0, 0x92, 0x01, 0x41, 0xD6, 0x78,
+	0xC8, 0x01, 0x24, 0x90, 0x2B, 0x91, 0x7B, 0x82,
+	0xFF, 0xFD, 0xE0, 0x00, 0x42, 0xFE, 0x5D, 0x2E,
+	0xA9, 0xDA, 0xA7, 0x12, 0x12, 0xB3, 0xE7, 0x56,
+	0x15, 0xCF, 0x15, 0xC6, 0x3E, 0x50, 0x29, 0x29,
+	0x14, 0x35, 0x12, 0x8F, 0x13, 0xAF, 0xEC, 0x86,
+	0x9F, 0xBD, 0xEA, 0x2A, 0x2B, 0x9F, 0xFF, 0xF9,
+	0x64, 0x66, 0xBD, 0xCF, 0xB6, 0xFA, 0xB1, 0xF6,
+	0xF4, 0x70, 0xDC, 0x86, 0x49, 0x1E, 0xF0, 0x0A,
+	0x43, 0x77, 0xA0, 0x27, 0x30, 0x28, 0xDF, 0x8B,
+	0x50, 0xE8, 0x85, 0x29, 0x10, 0x66, 0x8A, 0xC7,
+	0xDA, 0xF4, 0xE6, 0x5F, 0x28, 0x08, 0x5F, 0x2B,
+	0x23, 0x73, 0x28, 0x29, 0xB2, 0x26, 0x03, 0x14,
+	0x3A, 0x3D, 0x96, 0xEF, 0x14, 0xFF, 0x50, 0x91,
+	0xAA, 0x34, 0x8C, 0x97, 0x27, 0xE6, 0xF6, 0xA2,
+	0x28, 0x83, 0x26, 0x8F, 0x27, 0x1F, 0xFF, 0x35,
+	0xB5, 0xBD, 0xE6, 0xE4, 0xC4, 0x4F, 0xFE, 0xDF,
+	0x25, 0xBB, 0xAA, 0xA8, 0x48, 0x7B, 0xB7, 0xFF,
+	0x14, 0x91, 0xF9, 0xA6, 0x6F, 0xB9, 0xFB, 0x17,
+	0xD7, 0x00, 0x24, 0x03, 0xEB, 0x16, 0x51, 0x46,
+	0xFE, 0xEF, 0xF8, 0xD8, 0x36, 0x8B, 0xF5, 0xC6,
+	0x46, 0xFE, 0x73, 0xDB, 0x41, 0x8B, 0x41, 0x2B,
+	0xFF, 0x23, 0x30, 0x3E, 0xB4, 0x0F, 0xB6, 0x7A,
+	0x03, 0xEA, 0x56, 0xDA, 0xCD, 0xF9, 0xA0, 0xA0,
+	0xB7, 0xFF, 0x3B, 0x67, 0x27, 0xE1, 0xF5, 0x92,
+	0x13, 0xFF, 0x3B, 0x5F, 0xD7, 0xDB, 0xBD, 0xE6,
+	0xC1, 0xA3, 0xFF, 0xC7, 0xFF, 0x0C, 0x4A, 0x7E,
+	0xC5, 0xE4, 0x39, 0x6C, 0x95, 0xE5, 0xF1, 0xE7,
+	0x2E, 0xE6, 0xD9, 0xFE, 0x28, 0xAB, 0xFF, 0xA1,
+	0x8C, 0x33, 0xA0, 0xD0, 0xFD, 0xA2, 0xFF, 0x91,
+	0xE0, 0x78, 0x2C, 0x8E, 0x0D, 0xFA, 0x27, 0x2C,
+	0x2B, 0x60, 0x40, 0xA0, 0xC6, 0x8E, 0x92, 0x2D,
+	0xFF, 0xEF, 0x35, 0xDF, 0xFC, 0xFF, 0xE0, 0xF2,
+	0xF8, 0xE1, 0xA9, 0xFA, 0x41, 0xDA, 0xC6, 0x05,
+	0xFB, 0xFF, 0x50, 0x47, 0x4E, 0x8F, 0x4F, 0x1F,
+	0xCD, 0x91, 0xBD, 0xEB, 0xFA, 0x93, 0x77, 0xFF,
+	0xBE, 0xD2, 0xFF, 0xE3, 0x27, 0x12, 0x1F, 0xF9,
+	0xA7, 0xAE, 0x33, 0xFA, 0x18, 0x5A, 0xF4, 0x5F,
+	0x16, 0xFB, 0xE8, 0xFD, 0xB4, 0x02, 0x3E, 0x27,
+	0xFF, 0x31, 0xE0, 0xD5, 0x5D, 0x19, 0x21, 0x56,
+	0x2B, 0x14, 0xE2, 0xBF, 0xAF, 0x73, 0x2A, 0x12,
+	0x11, 0x12, 0x43, 0xF2, 0x13, 0xF5, 0x15, 0x65,
+	0x61, 0x12, 0xF6, 0xFF, 0x05, 0x52, 0xDF, 0xD2,
+	0xF5, 0xEA, 0xEE, 0xC9, 0x14, 0x1F, 0x3B, 0xFF,
+	0x63, 0x6F, 0xFF, 0xD4, 0xFF, 0x81, 0x02, 0xBD,
+	0xE7, 0xAA, 0x93, 0x8B, 0xFF, 0x46, 0xC5, 0x13,
+	0x5F, 0x28, 0x6B, 0x4A, 0x3F, 0xFF, 0x3C, 0x2C,
+	0x60, 0xA9, 0xAB, 0x25, 0xA0, 0x60, 0xFF, 0x84,
+	0x3B, 0xE8, 0xEF, 0xC2, 0x13, 0x93, 0xFF, 0x15,
+	0x91, 0xC8, 0x34, 0xF3, 0xD4, 0x9C, 0xD0, 0x70,
+	0x97, 0xAF, 0xC3, 0xE3, 0xEB, 0xF5, 0x50, 0xFF,
+	0xCE, 0x83, 0xE2, 0xB1, 0x33, 0x8E, 0xF8, 0x41,
+	0x14, 0x08, 0x28, 0x9F, 0x4F, 0xFF, 0x77, 0x7F,
+	0xFF, 0xEC, 0xC5, 0xBD, 0xEA, 0x96, 0x83, 0xDB,
+	0xFD, 0x38, 0xEE, 0xAB, 0x5D, 0x5D, 0x59, 0xBF,
+	0x29, 0xF7, 0x3B, 0xEF, 0x4F, 0x66, 0xF2, 0xE3,
+	0x76, 0xD7, 0x29, 0xAC, 0x9D, 0x78, 0x58, 0xB5,
+	0x1A, 0xEF, 0x39, 0xE5, 0x38, 0x16, 0xF1, 0x94,
+	0x29, 0xB8, 0xA0, 0x13, 0x43, 0xE1, 0x12, 0x78,
+	0xBA, 0xFF, 0x6D, 0x97, 0xD0, 0x54, 0x13, 0xDF,
+	0x28, 0xFD, 0x8A, 0x8F, 0x8B, 0x1F, 0x13, 0xE1,
+	0xD1, 0xFB, 0xFF, 0xE7, 0xC3, 0xB3, 0xFF, 0x26,
+	0x6F, 0x3A, 0x19, 0x5A, 0x3F, 0x66, 0x3A, 0x50,
+	0x8A, 0xC8, 0xF2, 0xFF, 0xEC, 0x64, 0xA9, 0x6B,
+	0xE8, 0x74, 0xD8, 0xA6, 0xC9, 0x92, 0xB6, 0xF7,
+	0xF3, 0x82, 0xB8, 0x50, 0xFF, 0xF1, 0x16, 0x13,
+	0xC5, 0xEC, 0x57, 0x64, 0x55, 0x3A, 0xD3, 0xF2,
+	0x03, 0x2D, 0x73, 0xCC, 0x71, 0xFF, 0x27, 0x1F,
+	0x28, 0x3F, 0x3D, 0x67, 0x9E, 0x8F, 0x9F, 0x1F,
+	0xB3, 0xA1, 0xED, 0x14, 0xF2, 0xE4, 0xFF, 0xF5,
+	0xA3, 0xC7, 0xFE, 0x3A, 0x0F, 0x3B, 0x2F, 0x51,
+	0xE3, 0x3B, 0x1E, 0x64, 0x9E, 0xF1, 0xA6, 0xFE,
+	0xEB, 0x58, 0xC9, 0x46, 0xB6, 0xD5, 0xF5, 0x91,
+	0x13, 0x14, 0xF7, 0x21, 0x68, 0xAB, 0x28, 0x7E,
+	0x44, 0x14, 0x05, 0x4D, 0xC6, 0x62, 0x29, 0x3C,
+	0x36, 0xF3, 0x51, 0x2B, 0x24, 0x2A, 0x3F, 0x0C,
+	0x0C, 0x63, 0x1F, 0xB2, 0xB6, 0x3C, 0xBF, 0x13,
+	0xFF, 0xB3, 0x1F, 0xC7, 0xB5, 0xFF, 0xBD, 0xE9,
+	0x13, 0xFF, 0x3B, 0xF2, 0x76, 0x9C, 0x4E, 0x1D,
+	0x76, 0x7A, 0xBE, 0x2A, 0xB2, 0xA6, 0xFF, 0x39,
+	0xCF, 0xB2, 0x53, 0xB0, 0x01, 0x35, 0xDA, 0xBA,
+	0xA7, 0xDD, 0x05, 0x3D, 0x7F, 0xFF, 0x50, 0x5F,
+	0x44, 0xB2, 0xA6, 0x44, 0x78, 0x62, 0xF4, 0xA1,
+	0xCA, 0xB5, 0xDF, 0x81, 0x28, 0xB6, 0x8F, 0xF8,
+	0x72, 0x2A, 0x28, 0x0C, 0x8A, 0xAD, 0x14, 0x1F,
+	0x27, 0xFF, 0xC6, 0xCF, 0xFF, 0xB3, 0xAF, 0xDC,
+	0x91, 0xF5, 0x47, 0xFB, 0xD3, 0x27, 0xFF, 0xAB,
+	0xAF, 0x13, 0xAF, 0xE9, 0xA7, 0xF3, 0x37, 0x48,
+	0xDA, 0xFB, 0xAD, 0xD7, 0x4F, 0xF7, 0x29, 0x43,
+	0xCF, 0x82, 0xDE, 0xAA, 0xF7, 0xEC, 0x85, 0x19,
+	0x69, 0xA7, 0x08, 0xFF, 0x80, 0x44, 0xEB, 0x66,
+	0xB1, 0xC2, 0x58, 0xFB, 0xFF, 0x55, 0x83, 0xB2,
+	0x71, 0xF6, 0xA1, 0x3C, 0xF1, 0xE9, 0x61, 0x8A,
+	0x9F, 0x8B, 0xBF, 0xDC, 0x07, 0xFF, 0xDA, 0x8F,
+	0xDB, 0x1F, 0xD5, 0xFA, 0xCC, 0x58, 0xB3, 0xFE,
+	0x26, 0x7F, 0xBD, 0x97, 0x9C, 0xBA, 0xFF, 0xD4,
+	0x8F, 0x3A, 0x58, 0xA6, 0x33, 0xEF, 0x00, 0xB6,
+	0x84, 0x00, 0x1F, 0xEF, 0xE5, 0x68, 0x67, 0xF3,
+	0x3B, 0xF1, 0x91, 0xB9, 0x04, 0xE9, 0xF4, 0x70,
+	0x44, 0x44, 0xDC, 0x40, 0xC6, 0x43, 0xFF, 0x5B,
+	0xF8, 0x13, 0x33, 0xBF, 0x05, 0x7C, 0xA3, 0x27,
+	0xDF, 0x9F, 0x9F, 0xF0, 0x29, 0xEE, 0x8F, 0xFF,
+	0xEF, 0x1F, 0x33, 0x37, 0xE4, 0x19, 0x13, 0xFF,
+	0x9E, 0x5F, 0xFB, 0xB5, 0xDD, 0x27, 0xAA, 0xB9,
+	0xFF, 0xAD, 0x93, 0xCC, 0xD5, 0xEF, 0x66, 0xFD,
+	0x32, 0x72, 0x60, 0xF3, 0x4D, 0xE4, 0x67, 0xCD,
+	0x7C, 0xEF, 0x86, 0xA2, 0x15, 0x35, 0xE1, 0x1D,
+	0x2B, 0x13, 0xA0, 0xBD, 0x17, 0xB9, 0x4A, 0x64,
+	0x92, 0xFF, 0xBC, 0xA1, 0xD5, 0x04, 0xF6, 0x71,
+	0xB2, 0x7F, 0xB3, 0x9F, 0x51, 0x79, 0x76, 0xBA,
+	0x00, 0xCF, 0xFF, 0xDB, 0xF9, 0xCC, 0x28, 0xA6,
+	0xF3, 0x27, 0xFF, 0xF8, 0xC9, 0xC6, 0x85, 0xB2,
+	0x07, 0x5B, 0xF3, 0xFF, 0xA4, 0x16, 0x61, 0x1A,
+	0x02, 0x97, 0xA3, 0xD5, 0x92, 0x21, 0x6B, 0x92,
+	0xF8, 0x82, 0xC2, 0x71, 0x07, 0x2C, 0x28, 0x43,
+	0x43, 0x41, 0xD9, 0x00, 0xEE, 0xF2, 0xF6, 0x67,
+	0xE7, 0xFD, 0xE2, 0x31, 0xB7, 0xFE, 0xC7, 0x44,
+	0x43, 0x4F, 0xE0, 0xCC, 0xB3, 0x6F, 0xA7, 0xFF,
+	0xDA, 0xF1, 0xE0, 0xC0, 0xE1, 0x01, 0xCB, 0xC5,
+	0xF4, 0x97, 0xA4, 0xF0, 0xC6, 0x8F, 0xC7, 0xAF,
+	0xFF, 0xC7, 0xFF, 0x14, 0x6F, 0xEF, 0xFD, 0xBD,
+	0xE9, 0xFC, 0x24, 0x9F, 0xFF, 0xB5, 0xB7, 0xF2,
+	0x42, 0xFF, 0x00, 0x76, 0x4E, 0x0A, 0x62, 0x8F,
+	0x03, 0x07, 0x99, 0x65, 0x11, 0x32, 0xFF, 0xD3,
+	0x37, 0x91, 0x0F, 0x28, 0x2A, 0x43, 0x41, 0x00,
+	0x00, 0xF0, 0xD2, 0x3A, 0xB2, 0x28, 0x52, 0xFB,
+	0xF1, 0xA2, 0xD6, 0x62, 0xCE, 0xD7, 0xCB, 0x93,
+	0xE4, 0x37, 0x2D, 0xEF, 0x62, 0x83, 0x34, 0xFF,
+	0xD3, 0xD5, 0xA5, 0x14, 0xE2, 0x42, 0xB9, 0x50,
+	0xCF, 0xA1, 0xBF, 0x74, 0xF6, 0xA0, 0xDB, 0x1F,
+	0xFF, 0xDB, 0xBF, 0xCF, 0x27, 0x27, 0xFF, 0x27,
+	0xFF, 0xEF, 0xD4, 0xBD, 0xE7, 0x96, 0x84, 0xB3,
+	0xFD, 0xFF, 0x5A, 0x43, 0xF0, 0x52, 0x46, 0xA5,
+	0x4D, 0xF8, 0x96, 0xD6, 0xDF, 0xF4, 0xAB, 0x44,
+	0xEE, 0x74, 0xE7, 0xB9, 0xE7, 0xAE, 0x00, 0x79,
+	0xDA, 0x28, 0x29, 0x27, 0x50, 0x27, 0x61, 0x86,
+	0xF6, 0xFD, 0xDB, 0xC2, 0xE0, 0x14, 0xB6, 0x09,
+	0x64, 0xE3, 0x8A, 0x97, 0xD9, 0x50, 0x29, 0xDB,
+	0xD4, 0xFF, 0x84, 0x05, 0xE2, 0x76, 0xB9, 0x45,
+	0x17, 0x15, 0xCE, 0x34, 0x13, 0xF8, 0xC7, 0x5F,
+	0x8C, 0xBE, 0x1F, 0x2B, 0x2F, 0x2F, 0x3B, 0xFF,
+	0x3B, 0xEE, 0xBD, 0xEF, 0x96, 0x84, 0x63, 0xFF,
+	0xFF, 0xC1, 0xBF, 0xC1, 0x4A, 0x27, 0x4F, 0xCA,
+	0x0B, 0x48, 0x34, 0x72, 0x47, 0xC7, 0xC9, 0xE1,
+	0xD6, 0xFF, 0xF3, 0xB3, 0x8B, 0x09, 0x87, 0xB2,
+	0xCA, 0xF2, 0x3D, 0x91, 0xC4, 0x34, 0x60, 0xC1,
+	0x8A, 0x32, 0xFF, 0x97, 0xB1, 0xDB, 0x6B, 0x3B,
+	0x8A, 0x3B, 0xE4, 0xCE, 0x16, 0xC7, 0x4A, 0x8C,
+	0x6E, 0xA0, 0xA8, 0xFF, 0x13, 0xD0, 0x13, 0xFF,
+	0x3B, 0x9F, 0xBD, 0xEF, 0x8B, 0xFF, 0x27, 0xF5,
+	0xF8, 0x65, 0x89, 0x3B, 0xFF, 0x9D, 0x96, 0x71,
+	0x29, 0x13, 0xDB, 0x7A, 0x2F, 0x8D, 0x17, 0xAE,
+	0x43, 0xF2, 0xDB, 0xF0, 0x16, 0xFF, 0xCA, 0x92,
+	0x3F, 0x15, 0xF1, 0x83, 0x9C, 0x93, 0x8F, 0xD8,
+	0xB8, 0x62, 0xA8, 0x3F, 0xCE, 0x32, 0xFF, 0xDC,
+	0x61, 0xB7, 0x70, 0xF8, 0x87, 0xF5, 0x00, 0xB3,
+	0x9A, 0xFC, 0x57, 0xB4, 0x6B, 0x13, 0xD2, 0x7F,
+	0x2F, 0x3B, 0xFF, 0xEF, 0x78, 0xBD, 0xE8, 0x6B,
+	0xDD, 0xFD, 0x82, 0x8B, 0xFF, 0x8A, 0xD2, 0xFF,
+	0xE5, 0x2A, 0x61, 0xD9, 0x6F, 0xFD, 0x3B, 0xA9,
+	0x50, 0x46, 0xC6, 0x98, 0x0F, 0xDA, 0x13, 0xDB,
+	0xF8, 0xE9, 0xC1, 0xF6, 0x88, 0x8D, 0x0A, 0x6A,
+	0xB6, 0xF8, 0x96, 0x44, 0x29, 0x2A, 0x7E, 0x44,
+	0x1A, 0x2C, 0x96, 0x1B, 0xA3, 0x79, 0x14, 0x0B,
+	0xBF, 0xAE, 0xF4, 0xF1, 0x28, 0x5F, 0x28, 0x13,
+	0xC2, 0x2F, 0xE1, 0xB0, 0x77, 0xFF, 0xB3, 0x59,
+	0xFA, 0xBF, 0xA8, 0xC8, 0xFF, 0x3B, 0xFF, 0x13,
+	0x9F, 0xEB, 0x7E, 0x2C, 0x59, 0xC9, 0x6E, 0xF6,
+	0x03, 0xCA, 0xDF, 0xB7, 0x5A, 0xFB, 0x3A, 0x12,
+	0xE0, 0x47, 0xCD, 0xBF, 0xF8, 0x14, 0xF1, 0x33,
+	0x44, 0xDC, 0x41, 0xDC, 0x81, 0xEF, 0xB6, 0x7A,
+	0x07, 0x9F, 0xF8, 0xF8, 0x00, 0x2A, 0xFF, 0xD4,
+	0x0C, 0x27, 0x92, 0xF5, 0x83, 0xDF, 0x8B, 0xFF,
+	0xEF, 0x43, 0x2F, 0xBD, 0xEF, 0xBD, 0xED, 0xDB,
+	0xFE, 0x00, 0xFF, 0x02, 0x1F, 0xFF, 0x03, 0x3F,
+	0x04, 0x5F, 0x05, 0x7F, 0x06, 0x9F, 0x07, 0xBF,
+	0x08, 0xDF, 0x09, 0xFF, 0x0B, 0x1F, 0xFF, 0x0C,
+	0x3F, 0x0D, 0x5F, 0x0E, 0x7F, 0x0F, 0x9F, 0x10,
+	0xBF, 0x11, 0xDF, 0x12, 0xFF, 0x14, 0x1F, 0xFF,
+	0x15, 0x3F, 0x16, 0x5F, 0x17, 0x7F, 0x18, 0x9F,
+	0x19, 0xBF, 0x1A, 0xDF, 0x1B, 0xFF, 0x1D, 0x1F,
+	0xFF, 0x1E, 0x3F, 0x1F, 0x5F, 0x20, 0x7F, 0x21,
+	0x9F, 0x22, 0xBF, 0x23, 0xDF, 0x24, 0xFF, 0x26,
+	0x1F, 0xFF, 0x27, 0x3F, 0x28, 0x5F, 0x29, 0x7F,
+	0x2A, 0x9F, 0x2B, 0xBF, 0x2C, 0xDF, 0x2D, 0xFF,
+	0x2F, 0x1F, 0xFF, 0x30, 0x3F, 0x31, 0x5F, 0x32,
+	0x7F, 0x33, 0x9F, 0x34, 0xBF, 0x35, 0xDF, 0x36,
+	0xFF, 0x38, 0x1F, 0xFF, 0x39, 0x3F, 0x3A, 0x5F,
+	0x3B, 0x7F, 0x3C, 0x9F, 0x3D, 0xBF, 0x3E, 0xDF,
+	0x3F, 0xFF, 0x41, 0x1F, 0xFF, 0x42, 0x3F, 0x43,
+	0x5F, 0x44, 0x7F, 0x45, 0x9F, 0x46, 0xBF, 0x47,
+	0xDF, 0x48, 0xFF, 0x4A, 0x1F, 0xFF, 0x4B, 0x3F,
+	0x4C, 0x5F, 0x4D, 0x7F, 0x4E, 0x9F, 0x4F, 0xBF,
+	0x50, 0xDF, 0x51, 0xFF, 0x53, 0x1F, 0xFF, 0x54,
+	0x3F, 0x55, 0x5F, 0x56, 0x7F, 0x57, 0x9F, 0x58,
+	0xBF, 0x59, 0xDF, 0x5A, 0xFF, 0x5C, 0x1F, 0xFF,
+	0x5D, 0x3F, 0x5E, 0x5F, 0x5F, 0x7F, 0x60, 0x9F,
+	0x61, 0xBF, 0x62, 0xDF, 0x63, 0xFF, 0x65, 0x1F,
+	0xFF, 0x66, 0x3F, 0x67, 0x5F, 0x68, 0x7F, 0x69,
+	0x9F, 0x6A, 0xBF, 0x6B, 0xDF, 0x6C, 0xFF, 0x6E,
+	0x1F, 0xFF, 0x6F, 0x3F, 0x70, 0x5F, 0x71, 0x7F,
+	0x72, 0x9F, 0x73, 0xBF, 0x74, 0xDF, 0x75, 0xFF,
+	0x77, 0x1F, 0xFF, 0x78, 0x3F, 0x79, 0x5F, 0x7A,
+	0x7F, 0x7B, 0x9F, 0x7C, 0xBF, 0x7D, 0xDF, 0x7E,
+	0xFF, 0x80, 0x1F, 0xFF, 0x81, 0x3F, 0x82, 0x5F,
+	0x83, 0x7F, 0x84, 0x9F, 0x85, 0xBF, 0x86, 0xDF,
+	0x87, 0xFF, 0x89, 0x1F, 0xFF, 0x8A, 0x3F, 0x8B,
+	0x5F, 0x8C, 0x7F, 0x8D, 0x9F, 0x8E, 0xBF, 0x8F,
+	0xDF, 0x90, 0xFF, 0x92, 0x1F, 0xFF, 0x93, 0x3F,
+	0x94, 0x5F, 0x95, 0x7F, 0x96, 0x9F, 0x97, 0xBF,
+	0x98, 0xDF, 0x99, 0xFF, 0x9B, 0x1F, 0xFF, 0x9C,
+	0x3F, 0x9D, 0x5F, 0x9E, 0x7F, 0x9F, 0x9F, 0xA0,
+	0xBF, 0xA1, 0xDF, 0xA2, 0xFF, 0xA4, 0x1F, 0xFF,
+	0xA5, 0x3F, 0xA6, 0x5F, 0xA7, 0x7F, 0xA8, 0x9F,
+	0xA9, 0xBF, 0xAA, 0xDF, 0xAB, 0xFF, 0xAD, 0x1F,
+	0xFE, 0xAE, 0x3F, 0xAF, 0x5F, 0xB0, 0x7F, 0xB1,
+	0x9F, 0xB2, 0xBF, 0xB3, 0xDF, 0xF0, 0xE7, 0x25,
+	0x9C, 0x00, 0x20, 0x22, 0x22, 0x00, 0x50, 0xB6,
+	0x2F, 0xF3, 0x31, 0x17, 0x10, 0xFE, 0xB7, 0xAF,
+	0xB8, 0xCF, 0xB9, 0xEF, 0xBB, 0x0F, 0xF8, 0x13,
+	0xFE, 0xCF, 0xFF, 0x7A, 0x2B, 0xFF, 0xE9, 0x9A,
+	0xBF, 0x5F, 0xC0, 0x7F, 0xC1, 0x9F, 0xC2, 0xBF,
+	0xC3, 0xDF, 0xC4, 0xFF, 0xC6, 0x1F, 0xE4, 0xC7,
+	0x3F, 0xC8, 0x5F, 0xF1, 0x60, 0x24, 0x22, 0x00,
+	0x02, 0x1F, 0x22, 0x09, 0x1F, 0x1F, 0x1F, 0x23,
+	0xCA, 0x7F, 0x17, 0x17, 0xCB, 0xBF, 0xF3, 0xCC,
+	0xDF, 0xCD, 0xFF, 0xCF, 0x1F, 0x13, 0xF9, 0x26,
+	0x26, 0xFF, 0x91, 0xFE, 0x38, 0xBF, 0xFE, 0xE4,
+	0x2C, 0x13, 0xFF, 0xD3, 0xAF, 0xD4, 0xCF, 0xD5,
+	0xEF, 0xD7, 0x0F, 0xD8, 0x2F, 0xFD, 0xD9, 0x4F,
+	0xDA, 0x6F, 0xDB, 0x8F, 0x14, 0x0F, 0x00, 0x02,
+	0x14, 0x43, 0x1F, 0xDE, 0x8F, 0xFB, 0x28, 0x0F,
+	0xE0, 0xCF, 0xE1, 0xEF, 0xE3, 0x0F, 0x13, 0xFB,
+	0x25, 0x00, 0x01, 0x14, 0x75, 0xBF, 0x28, 0x66,
+	0x29, 0xFC, 0xD3, 0x27, 0xFF, 0xE7, 0xFF, 0xE9,
+	0x1F, 0xEA, 0x3F, 0xEB, 0x5F, 0xFA, 0xEC, 0x7F,
+	0xED, 0x9F, 0xEE, 0xBF, 0xEF, 0xDF, 0x3C, 0x4D,
+	0x25, 0x14, 0x24, 0x24, 0xB1, 0xF2, 0x8F, 0x10,
+	0x28, 0x0F, 0x17, 0xB9, 0x22, 0x22, 0x20, 0x00,
+	0x00, 0xE0, 0xF5, 0xF8, 0x00, 0xE1, 0x04, 0x91,
+	0x24, 0x24, 0x00, 0x23, 0x23, 0xF7, 0x2D, 0x0E,
+	0x13, 0xC5, 0x14, 0x7A, 0x14, 0xB7, 0x29, 0xFD,
+	0x34, 0x28, 0x73, 0xFB, 0x5F, 0xFF, 0xFC, 0x7F,
+	0xFD, 0x9F, 0xFE, 0xBF, 0xFF, 0xDF, 0x00, 0xFF,
+	0x02, 0x1F, 0x03, 0x3F, 0x04, 0x5F, 0xF9, 0x14,
+	0x08, 0x14, 0x21, 0x13, 0xFF, 0x50, 0x1F, 0x2B,
+	0xCE, 0x00, 0x00, 0x14, 0x33, 0x18, 0x20, 0x20,
+	0x1C, 0x00, 0x62, 0x13, 0xC3, 0x24, 0x22, 0x23,
+	0xF3, 0x01, 0xA1, 0x4F, 0xFF, 0x13, 0xCB, 0x3C,
+	0x2A, 0x25, 0x25, 0x3B, 0xF6, 0x28, 0x52, 0xFF,
+	0x0F, 0x5F, 0x10, 0x7F, 0x11, 0x9F, 0x12, 0xBF,
+	0x13, 0xDF, 0x14, 0xFF, 0x16, 0x1F, 0x17, 0x3F,
+	0xFE, 0x18, 0x5F, 0x28, 0x18, 0x35, 0x10, 0x10,
+	0xC2, 0x3C, 0x0F, 0x50, 0x1F, 0x68, 0x5C, 0x22,
+	0x9F, 0x14, 0x62, 0x22, 0x21, 0x13, 0xF0, 0x54,
+	0xC1, 0x04, 0x63, 0x04, 0xCF, 0x6B, 0xB1, 0x75,
+	0x27, 0x4F, 0x88, 0x13, 0xCB, 0x51, 0x92, 0x2D,
+	0x50, 0x08, 0x2C, 0x63, 0xFF, 0xFF, 0x24, 0x6F,
+	0x25, 0x8F, 0x26, 0xAF, 0x27, 0xCF, 0x28, 0xEF,
+	0x2A, 0x0F, 0x2B, 0x2F, 0x2C, 0x4F, 0xC3, 0x3C,
+	0x5F, 0x50, 0x83, 0x10, 0x23, 0x22, 0x22, 0x78,
+	0x28, 0x64, 0x2F, 0xDF, 0x30, 0xFF, 0x7D, 0x81,
+	0x1C, 0x29, 0x27, 0x33, 0x0F, 0x77, 0xF4, 0x77,
+	0x24, 0x13, 0xEF, 0xBF, 0x65, 0x91, 0x28, 0x13,
+	0x51, 0x14, 0x07, 0x37, 0x5F, 0x38, 0x7F, 0x39,
+	0x9F, 0x3A, 0xBF, 0xFF, 0x3B, 0xDF, 0x3C, 0xFF,
+	0x3E, 0x1F, 0x3F, 0x3F, 0x40, 0x5F, 0x28, 0x0A,
+	0x50, 0x64, 0x64, 0xF0, 0x4E, 0x10, 0x4B, 0x9A,
+	0x17, 0x10, 0x8C, 0x4F, 0x45, 0x0F, 0x91, 0x90,
+	0x1F, 0x7F, 0x21, 0x46, 0x7F, 0x13, 0xFF, 0x8B,
+	0x45, 0x63, 0xAB, 0x78, 0xD2, 0x4F, 0xE0, 0x13,
+	0xFF, 0xFF, 0x4B, 0xBF, 0x4C, 0xDF, 0x4D, 0xFF,
+	0x4F, 0x1F, 0x50, 0x3F, 0x51, 0x5F, 0x52, 0x7F,
+	0x53, 0x9F, 0xFF, 0x54, 0xBF, 0xA0, 0x73, 0x5C,
+	0xA6, 0x13, 0xF0, 0x3C, 0x9C, 0x28, 0x2F, 0x59,
+	0x0F, 0x28, 0x07, 0xFF, 0x5A, 0xCF, 0x27, 0xFF,
+	0x13, 0xFF, 0x8C, 0xF1, 0x13, 0xFF, 0x5F, 0x8F,
+	0x60, 0xAF, 0x61, 0xCF, 0xFF, 0x62, 0xEF, 0x64,
+	0x0F, 0x65, 0x2F, 0x66, 0x4F, 0x67, 0x6F, 0x68,
+	0x8F, 0xB5, 0x1F, 0x27, 0xF0, 0xFF, 0x28, 0xD1,
+	0xB4, 0x6B, 0xB4, 0x7F, 0x6D, 0x3F, 0x28, 0x0F,
+	0x4F, 0xFF, 0x28, 0x0F, 0xB4, 0x48, 0x7F, 0x28,
+	0x4F, 0xFF, 0x73, 0x9F, 0x74, 0xBF, 0x75, 0xDF,
+	0x76, 0xFF, 0x78, 0x1F, 0x79, 0x3F, 0xF9, 0x7A,
+	0x5F, 0x7B, 0x7F, 0x7C, 0x9F, 0x7D, 0xBF, 0x8B,
+	0x2F, 0x1C, 0x14, 0x3C, 0x3F, 0xFF, 0x81, 0x3F,
+	0x28, 0x0F, 0x63, 0xFF, 0xB3, 0x41, 0x3B, 0x18,
+	0x3C, 0x1C, 0x77, 0xFF, 0x87, 0x9F, 0xFF, 0x88,
+	0xBF, 0x89, 0xDF, 0x8A, 0xFF, 0x8C, 0x1F, 0x8D,
+	0x3F, 0x8E, 0x5F, 0x8F, 0x7F, 0x90, 0x9F, 0xEF,
+	0xA0, 0x49, 0xB3, 0x2F, 0xDF, 0x04, 0x14, 0x50,
+	0x51, 0xC8, 0xAF, 0x95, 0x7F, 0x96, 0x9F, 0xFF,
+	0x13, 0xFC, 0x13, 0x7B, 0xC8, 0x2A, 0xDB, 0xE5,
+	0x9F, 0xFF, 0x9B, 0xFF, 0x9D, 0x1F, 0x9E, 0x3F,
+	0xFF, 0x9F, 0x5F, 0xA0, 0x7F, 0xA1, 0x9F, 0xA2,
+	0xBF, 0xA3, 0xDF, 0x8B, 0xDF, 0x8C, 0x04, 0xAF,
+	0x20, 0x37, 0x23, 0x23, 0x3B, 0xE1, 0xF1, 0x1C,
+	0x14, 0x64, 0x73, 0xF0, 0xDF, 0xA9, 0x9F, 0xF0,
+	0xAA, 0xBF, 0xEF, 0xFF, 0xDB, 0xA3, 0x14, 0x1A,
+	0x28, 0x29, 0x2B, 0x2F, 0x7F, 0x2F, 0xC7, 0xFF,
+	0xAF, 0x9F, 0xB0, 0xBF, 0xB1, 0xDF, 0xB2, 0xFF,
+	0xB4, 0x1F, 0xB5, 0x3F, 0xFB, 0xB6, 0x5F, 0xB7,
+	0x7F, 0xB8, 0x9F, 0xC8, 0x8B, 0x13, 0xE1, 0x17,
+	0x78, 0xD2, 0xF0, 0x6B, 0x9F, 0x89, 0xB3, 0x17,
+	0x10, 0xBC, 0x9F, 0xBD, 0xBF, 0xBE, 0xDF, 0x27,
+	0xFB, 0x27, 0xC9, 0x9F, 0xC8, 0x06, 0x2A, 0x2E,
+	0x00, 0x00, 0xEF, 0xFF, 0xC3, 0x9F, 0xC4, 0xBF,
+	0xC5, 0xDF, 0xFF, 0xC6, 0xFF, 0xC8, 0x1F, 0xC9,
+	0x3F, 0xCA, 0x5F, 0xCB, 0x7F, 0xCC, 0x9F, 0xDB,
+	0x0F, 0x78, 0xC0, 0xFB, 0xF0, 0x6E, 0x14, 0x0F,
+	0xD1, 0x3F, 0xD2, 0x5F, 0xF4, 0xDE, 0x28, 0x00,
+	0x06, 0x3B, 0xCD, 0xFF, 0x27, 0xD0, 0x27, 0xF0,
+	0x13, 0xFF, 0xD7, 0xAF, 0xD8, 0xCF, 0xD9, 0xEF,
+	0xDB, 0x0F, 0xDC, 0x2F, 0xFF, 0xDD, 0x4F, 0xDE,
+	0x6F, 0xDF, 0x8F, 0xE0, 0xAF, 0xEF, 0x0D, 0xE2,
+	0xCF, 0x3C, 0x15, 0x01, 0xDF, 0xFF, 0xE5, 0x8F,
+	0xE6, 0xAF, 0xE7, 0xCF, 0xE8, 0xEF, 0xEA, 0x0F,
+	0xEB, 0x2F, 0xEC, 0x4F, 0xED, 0x6F, 0xFF, 0xEE,
+	0x8F, 0xEF, 0xAF, 0xF0, 0xCF, 0xF1, 0xEF, 0xF3,
+	0x0F, 0xF4, 0x2F, 0xF5, 0x4F, 0x27, 0xE4, 0xFF,
+	0xF6, 0xDF, 0xC8, 0x61, 0x15, 0xDF, 0xF9, 0x5F,
+	0xFA, 0x7F, 0x63, 0xEF, 0xDB, 0xE4, 0x39, 0xD2,
+	0xFF, 0x00, 0xFD, 0xFE, 0x7F, 0xFF, 0x9F, 0x00,
+	0xBF, 0x01, 0xDF, 0x02, 0xFF, 0x04, 0x1F, 0x05,
+	0x3F, 0xFE, 0x06, 0x5F, 0x07, 0x7F, 0x08, 0x9F,
+	0x13, 0xEF, 0x0A, 0xDF, 0x14, 0x07, 0x50, 0x1C,
+	0x24, 0x1C, 0x1D, 0x1D, 0x1F, 0xB6, 0xAA, 0x0E,
+	0x9F, 0xEF, 0xEA, 0x29, 0x29, 0xE7, 0xDC, 0x05,
+	0x13, 0xF3, 0x00, 0xF6, 0x27, 0x2B, 0x12, 0x3F,
+	0x13, 0x5F, 0x14, 0x7F, 0xFF, 0x15, 0x9F, 0x16,
+	0xBF, 0x17, 0xDF, 0x18, 0xFF, 0x1A, 0x1F, 0x1B,
+	0x3F, 0x1C, 0x5F, 0x3B, 0xCF, 0xE0, 0x27, 0xDF,
+	0xED, 0xD6, 0x14, 0x0F, 0x00, 0x00, 0x1D, 0x27,
+	0x00, 0x3B, 0x27, 0x1D, 0x21, 0xDF, 0x22, 0xFF,
+	0xF6, 0x43, 0x29, 0x00, 0x01, 0x12, 0xF8, 0xBF,
+	0x00, 0xF8, 0x2A, 0x26, 0x3F, 0x27, 0x5F, 0x28,
+	0x7F, 0x29, 0x9F, 0x2A, 0xBF, 0x2B, 0xDF, 0xFF,
+	0x2C, 0xFF, 0x2E, 0x1F, 0x2F, 0x3F, 0x30, 0x5F,
+	0x3B, 0xCF, 0x63, 0xAF, 0xA0, 0x37, 0x78, 0x3F,
+	0x07, 0x00, 0x24, 0x1F, 0x1D, 0x1D, 0x27, 0xFF,
+	0x36, 0xEF, 0x13, 0xF5, 0x6F, 0x2B, 0x00, 0x01,
+	0xF0, 0x32, 0x29, 0x00, 0xFC, 0x13, 0xFF, 0x3B,
+	0x4F, 0x3C, 0x6F, 0xFF, 0x3D, 0x8F, 0x3E, 0xAF,
+	0x3F, 0xCF, 0x40, 0xEF, 0x42, 0x0F, 0x43, 0x2F,
+	0x44, 0x4F, 0x63, 0xBF, 0xFF, 0x46, 0x8F, 0xB4,
+	0x38, 0x50, 0x2F, 0x49, 0x7F, 0x4A, 0x9F, 0x8B,
+	0xEF, 0x13, 0xF7, 0xDB, 0x97, 0x7F, 0x29, 0x8A,
+	0xDF, 0x4F, 0x4F, 0x50, 0x6F, 0x51, 0x8F, 0x52,
+	0xAF, 0x53, 0xCF, 0x54, 0xEF, 0xFE, 0x56, 0x0F,
+	0x57, 0x2F, 0x58, 0x4F, 0x77, 0xBF, 0x5A, 0x8F,
+	0x27, 0xFF, 0xA0, 0x39, 0x26, 0x00, 0x24, 0x22,
+	0x21, 0x21, 0x22, 0x22, 0x24, 0x26, 0xE7, 0x5E,
+	0x1F, 0x5F, 0x3F, 0x9F, 0xE8, 0x29, 0x2A, 0x63,
+	0xF8, 0xEF, 0xA3, 0x62, 0x3F, 0xFF, 0x63, 0x5F,
+	0x64, 0x7F, 0x65, 0x9F, 0x66, 0xBF, 0x67, 0xDF,
+	0x68, 0xFF, 0x6A, 0x1F, 0x6B, 0x3F, 0xF8, 0x6C,
+	0x5F, 0x8B, 0xBF, 0x6E, 0x9F, 0xF0, 0x37, 0x7A,
+	0x0F, 0x00, 0x24, 0x21, 0x5F, 0x25, 0xB0, 0x41,
+	0x21, 0x64, 0x3F, 0x73, 0x2F, 0xB3, 0xEA, 0x26,
+	0xF3, 0xEF, 0xE8, 0xFF, 0xB2, 0xDF, 0x77, 0x4F,
+	0x78, 0x6F, 0x79, 0x8F, 0x7A, 0xAF, 0x7B, 0xCF,
+	0x7C, 0xEF, 0x7E, 0x0F, 0xFA, 0x7F, 0x2F, 0x80,
+	0x4F, 0x8B, 0xBF, 0x82, 0x8F, 0xC8, 0x27, 0x1B,
+	0xA1, 0xFF, 0x00, 0x00, 0x22, 0x25, 0x27, 0x27,
+	0x23, 0x27, 0x27, 0x25, 0x7F, 0x22, 0x86, 0x1F,
+	0x87, 0x3F, 0xDB, 0xE4, 0x12, 0xF8, 0x00, 0xFD,
+	0x8A, 0x7F, 0x8B, 0x9F, 0xFF, 0x8C, 0xBF, 0x8D,
+	0xDF, 0x8E, 0xFF, 0x90, 0x1F, 0x91, 0x3F, 0x92,
+	0x5F, 0x93, 0x7F, 0x94, 0x9F, 0xF7, 0x9F, 0xAF,
+	0x96, 0xDF, 0xB4, 0x08, 0xB5, 0xFB, 0x25, 0x14,
+	0x01, 0x13, 0xE0, 0xCB, 0x1F, 0xFF, 0x9B, 0x2F,
+	0xEF, 0xE7, 0x9F, 0xF6, 0x00, 0xFD, 0x9E, 0x7F,
+	0x9F, 0x9F, 0xA0, 0xBF, 0xA1, 0xDF, 0xFF, 0xA2,
+	0xFF, 0xA4, 0x1F, 0xA5, 0x3F, 0xA6, 0x5F, 0xA7,
+	0x7F, 0xA8, 0x9F, 0xB3, 0x9F, 0xAA, 0xDF, 0xC9,
+	0x13, 0xFF, 0xEC, 0xF5, 0x25, 0x22, 0x00, 0x01,
+	0x25, 0x27, 0xAE, 0x1F, 0xFF, 0xAF, 0x3F, 0x13,
+	0xFA, 0x9E, 0xF2, 0xDC, 0x17, 0x4F, 0xFF, 0xB3,
+	0x3F, 0xB4, 0x5F, 0xB5, 0x7F, 0xFF, 0xB6, 0x9F,
+	0xB7, 0xBF, 0xB8, 0xDF, 0xB9, 0xFF, 0xBB, 0x1F,
+	0xBC, 0x3F, 0xDB, 0x8F, 0xBE, 0x7F, 0xFF, 0x27,
+	0xFF, 0x02, 0x6F, 0xC1, 0xDF, 0xC2, 0xFF, 0x27,
+	0xFE, 0x9E, 0xF2, 0xF0, 0x17, 0x77, 0xFF, 0xFF,
+	0xC7, 0x3F, 0xC8, 0x5F, 0xC9, 0x7F, 0xCA, 0x9F,
+	0xCB, 0xBF, 0xCC, 0xDF, 0xCD, 0xFF, 0xCF, 0x1F,
+	0xF8, 0xD0, 0x3F, 0xEF, 0x8F, 0xD2, 0x7F, 0x3B,
+	0xFF, 0xDE, 0x09, 0x26, 0x26, 0x24, 0x6F, 0x23,
+	0x00, 0x02, 0x28, 0x50, 0x24, 0xD8, 0x4F, 0x8B,
+	0xFF, 0xDC, 0x07, 0xB2, 0xF2, 0xFF, 0x00, 0xF7,
+	0x8B, 0xFF, 0xDB, 0x3F, 0xDC, 0x5F, 0xDD, 0x7F,
+	0xDE, 0x9F, 0xDF, 0xBF, 0xE0, 0xDF, 0xFF, 0xE1,
+	0xFF, 0xE3, 0x1F, 0xE4, 0x3F, 0xEE, 0x1D, 0x28,
+	0x0F, 0xF0, 0x0F, 0xDC, 0x11, 0xF2, 0x17, 0x7F,
+	0x24, 0x13, 0x63, 0xED, 0x01, 0x00, 0xA2, 0x24,
+	0x4F, 0x13, 0xFF, 0xF0, 0x24, 0x13, 0xF9, 0xFF,
+	0xF1, 0x20, 0x8B, 0xFF, 0xEF, 0x3F, 0xF0, 0x5F,
+	0xF1, 0x7F, 0xF2, 0x9F, 0xF3, 0xBF, 0xF4, 0xDF,
+	0xFF, 0xF5, 0xFF, 0xF7, 0x1F, 0xF8, 0x3F, 0xF9,
+	0x5D, 0x3C, 0x0F, 0x77, 0xFA, 0xCA, 0x46, 0xF0,
+	0x27, 0xEF, 0x13, 0xD3, 0x28, 0x20, 0x14, 0x13,
+	0x26, 0xA0, 0x6F, 0x27, 0xFF, 0xEF, 0xF4, 0xEE,
+	0xF2, 0xFF, 0x00, 0xF8, 0x3B, 0xFF, 0x01, 0x0F,
+	0x02, 0x2F, 0x03, 0x4F, 0x04, 0x6F, 0x05, 0x8F,
+	0x06, 0xAF, 0xFD, 0x07, 0xCF, 0x08, 0xEF, 0x0A,
+	0x0F, 0x28, 0x0F, 0x0C, 0x4F, 0x2A, 0x6F, 0x10,
+	0x8C, 0x27, 0x7F, 0x24, 0xFF, 0xD1, 0x00, 0x41,
+	0x00, 0x80, 0x14, 0x70, 0x13, 0xFF, 0x3B, 0xFF,
+	0x9E, 0xFA, 0xFF, 0x9F, 0xFF, 0x14, 0x5F, 0x15,
+	0x7F, 0x16, 0x9F, 0x17, 0xBF, 0x18, 0xDF, 0x19,
+	0xFF, 0x1B, 0x1F, 0xFE, 0x1C, 0x3F, 0x1D, 0x5F,
+	0x1E, 0x7F, 0x28, 0x0F, 0x20, 0xBF, 0x3E, 0x5B,
+	0xB4, 0x35, 0x24, 0x8B, 0x8B, 0xD1, 0x27, 0x24,
+	0x24, 0x14, 0x72, 0x25, 0x13, 0xFF, 0x4F, 0xFF,
+	0xBF, 0xDC, 0x15, 0x2B, 0xC7, 0xFC, 0x00, 0xF3,
+	0x28, 0x3F, 0x29, 0x5F, 0x2A, 0x7F, 0x2B, 0x9F,
+	0xFF, 0x2C, 0xBF, 0x2D, 0xDF, 0x2E, 0xFF, 0x30,
+	0x1F, 0x31, 0x3F, 0x32, 0x5F, 0x3C, 0x0F, 0x34,
+	0x9F, 0xC6, 0x3E, 0x4E, 0xDC, 0x34, 0x25, 0x23,
+	0x23, 0x14, 0x12, 0x13, 0xD2, 0x23, 0x73, 0x25,
+	0x38, 0x4F, 0xB3, 0xFF, 0x8B, 0xC3, 0x2F, 0x2F,
+	0x9F, 0xFA, 0x00, 0xF5, 0xFF, 0x3C, 0x3F, 0x3D,
+	0x5F, 0x3E, 0x7F, 0x3F, 0x9F, 0x40, 0xBF, 0x41,
+	0xDF, 0x42, 0xFF, 0x44, 0x1F, 0xFF, 0x45, 0x3F,
+	0x46, 0x5F, 0x50, 0x0F, 0x48, 0x9F, 0xC8, 0x58,
+	0xDB, 0xD3, 0xF0, 0x34, 0xC7, 0x90, 0xFA, 0x78,
+	0x02, 0x28, 0x10, 0x28, 0xA2, 0x88, 0x4F, 0xC7,
+	0xFF, 0x29, 0x13, 0xC0, 0x2F, 0x3F, 0x2D, 0x2D,
+	0xB3, 0xF8, 0x01, 0x01, 0x13, 0xFF, 0x50, 0xFF,
+	0x52, 0x1F, 0x53, 0x3F, 0xFF, 0x54, 0x5F, 0x55,
+	0x7F, 0x56, 0x9F, 0x57, 0xBF, 0x58, 0xDF, 0x59,
+	0xFF, 0x5B, 0x1F, 0xA0, 0x2F, 0xFC, 0x66, 0x3F,
+	0x66, 0xBF, 0x5F, 0x9F, 0x60, 0xBF, 0xDB, 0xF6,
+	0x13, 0xE2, 0x2F, 0x2F, 0xFF, 0x3B, 0xF3, 0x13,
+	0xD6, 0x15, 0x00, 0x63, 0xFF, 0x65, 0x1F, 0x66,
+	0x3F, 0x67, 0x5F, 0x68, 0x7F, 0xFD, 0x69, 0x9F,
+	0x6A, 0xBF, 0x6B, 0xDF, 0x6C, 0xFF, 0x6E, 0x1F,
+	0x78, 0x0D, 0x16, 0x70, 0x4F, 0xFE, 0x7A, 0x2C,
+	0x78, 0x57, 0xD8, 0xF7, 0x61, 0x58, 0x4D, 0x92,
+	0xB0, 0xAF, 0xEF, 0xF7, 0x28, 0x57, 0x28, 0x13,
+	0xE2, 0x2C, 0x4F, 0xF3, 0x28, 0x00, 0x00, 0x14,
+	0xE2, 0x14, 0xF4, 0xFF, 0x78, 0x3F, 0x79, 0x5F,
+	0x7A, 0x7F, 0x7B, 0x9F, 0x7C, 0xBF, 0x7D, 0xDF,
+	0x7E, 0xFF, 0x80, 0x1F, 0xFF, 0x81, 0x3F, 0x82,
+	0x5F, 0xA0, 0x0F, 0x84, 0x9F, 0x85, 0xBF, 0xF0,
+	0x73, 0xFF, 0xE1, 0x50, 0x30, 0xDD, 0x00, 0x14,
+	0x3C, 0x53, 0x28, 0x24, 0xAF, 0xF4, 0xB6, 0x27,
+	0x92, 0x2B, 0xEF, 0xF7, 0x2F, 0x28, 0x28, 0x28,
+	0xD4, 0x2B, 0x8B, 0xFF, 0x8C, 0xFF, 0x8E, 0x1F,
+	0x8F, 0x3F, 0xFE, 0x90, 0x5F, 0x91, 0x7F, 0x92,
+	0x9F, 0x93, 0xBF, 0x94, 0xDF, 0x95, 0xFF, 0xB4,
+	0x0F, 0x10, 0xF6, 0xC5, 0xC9, 0x99, 0x0F, 0xA2,
+	0xEE, 0x13, 0xC2, 0x25, 0xED, 0x58, 0x65, 0x00,
+	0x2A, 0xFF, 0x38, 0xAF, 0x9D, 0xAF, 0x9E, 0xCF,
+	0x9F, 0xEF, 0xA1, 0x0F, 0xA2, 0x2F, 0xA3, 0x4F,
+	0xA4, 0x6F, 0xFF, 0xA5, 0x8F, 0xA6, 0xAF, 0xA7,
+	0xCF, 0xA8, 0xEF, 0xAA, 0x0F, 0xAB, 0x2F, 0xB4,
+	0x3F, 0xAD, 0x6F, 0xAA, 0xB6, 0xE8, 0x25, 0x13,
+	0xC4, 0x25, 0x64, 0x01, 0x24, 0x14, 0x83, 0x2D,
+	0x7F, 0x2A, 0xEC, 0xAF, 0xB1, 0xBF, 0xB2, 0xDF,
+	0xB3, 0xFF, 0xB5, 0x1F, 0xB6, 0x3F, 0xB7, 0x5F,
+	0xFF, 0xB8, 0x7F, 0xB9, 0x9F, 0xBA, 0xBF, 0xBB,
+	0xDF, 0xBC, 0xFF, 0xBE, 0x1F, 0xBF, 0x3F, 0xC5,
+	0xB7, 0xF8, 0xC0, 0xFF, 0xCA, 0xEF, 0x13, 0xE6,
+	0xDC, 0x23, 0x28, 0x91, 0x29, 0x2D, 0x2D, 0xFF,
+	0xED, 0xA2, 0xC4, 0xEF, 0xC6, 0x0F, 0xC7, 0x2F,
+	0xC8, 0x4F, 0xC9, 0x6F, 0xCA, 0x8F, 0xCB, 0xAF,
+	0xFF, 0xCC, 0xCF, 0xCD, 0xEF, 0xCF, 0x0F, 0xD0,
+	0x2F, 0xD1, 0x4F, 0xD2, 0x6F, 0xDC, 0x3B, 0x14,
+	0x0F, 0xFB, 0xD5, 0x8F, 0x8C, 0x96, 0xC7, 0xF2,
+	0xB3, 0x90, 0x64, 0x23, 0x26, 0x3C, 0x91, 0x89,
+	0x90, 0xFF, 0x13, 0xFF, 0xD9, 0xBF, 0xDA, 0xDF,
+	0xDB, 0xFF, 0xDD, 0x1F, 0xDE, 0x3F, 0xDF, 0x5F,
+	0xE0, 0x7F, 0xFF, 0xE1, 0x9F, 0xE2, 0xBF, 0xE3,
+	0xDF, 0xE4, 0xFF, 0xE6, 0x1F, 0xE7, 0x3F, 0xF0,
+	0x4F, 0xE9, 0x7F, 0xBF, 0xF2, 0xD7, 0x24, 0x13,
+	0x85, 0x14, 0x66, 0x27, 0xFF, 0xED, 0x7F, 0xEE,
+	0x9F, 0xEF, 0xBF, 0xFF, 0xF0, 0xDF, 0xF1, 0xFF,
+	0xF3, 0x1F, 0xF4, 0x3F, 0xF5, 0x5F, 0xF6, 0x7F,
+	0xF7, 0x9F, 0xF8, 0xBF, 0xFF, 0xF9, 0xDF, 0xFA,
+	0xFF, 0xED, 0xF4, 0xFC, 0x8F, 0xFD, 0xAF, 0x77,
+	0xF5, 0x14, 0x06, 0x00, 0x01, 0xFF, 0x8C, 0x82,
+	0x4F, 0xFF, 0x00, 0xDF, 0x01, 0xFF, 0x03, 0x1F,
+	0x04, 0x3F, 0x05, 0x5F, 0x06, 0x7F, 0xFF, 0x07,
+	0x9F, 0x08, 0xBF, 0x09, 0xDF, 0x0A, 0xFF, 0x0C,
+	0x1F, 0x0D, 0x3F, 0x0E, 0x5F, 0x0F, 0x7F, 0xCF,
+	0x10, 0x9F, 0xDC, 0x8A, 0x27, 0x26, 0x63, 0x51,
+	0x9F, 0xF8, 0x50, 0x30, 0x77, 0xFF, 0xFF, 0x14,
+	0xEF, 0x16, 0x0F, 0x17, 0x2F, 0x18, 0x4F, 0x19,
+	0x6F, 0x1A, 0x8F, 0x1B, 0xAF, 0x1C, 0xCF, 0xF9,
+	0x1D, 0xEF, 0x1F, 0x0F, 0x20, 0x2F, 0x21, 0x4F,
+	0xE8, 0xF0, 0x22, 0x26, 0x22, 0xBF, 0xFF, 0x23,
+	0xDF, 0x24, 0xFF, 0x8E, 0xC1, 0xDB, 0xF2, 0x13,
+	0x21, 0x00, 0x05, 0x28, 0x41, 0xB3, 0xE1, 0xFF,
+	0x27, 0xFF, 0x29, 0x0F, 0x2A, 0x2F, 0x2B, 0x4F,
+	0x2C, 0x6F, 0x2D, 0x8F, 0x2E, 0xAF, 0x2F, 0xCF,
+	0xF8, 0x30, 0xEF, 0x32, 0x0F, 0x33, 0x2F, 0x34,
+	0x4F, 0x35, 0x6F, 0x22, 0x1A, 0x22, 0xFF, 0x36,
+	0xBF, 0x37, 0xDF, 0x38, 0xFF, 0x66, 0x84, 0x27,
+	0x55, 0xA0, 0x17, 0xED, 0xC0, 0xD8, 0xAF, 0xFF,
+	0x3C, 0xFF, 0x3E, 0x1F, 0x3F, 0x3F, 0x40, 0x5F,
+	0x41, 0x7F, 0x42, 0x9F, 0x43, 0xBF, 0x44, 0xDF,
+	0xF0, 0x45, 0xFF, 0x47, 0x1F, 0x48, 0x3F, 0x49,
+	0x5F, 0x00, 0x27, 0x22, 0x27, 0xFF, 0x4A, 0xBF,
+	0x4B, 0xDF, 0x4C, 0xFF, 0x27, 0xF4, 0x4E, 0x8F,
+	0x4F, 0xAF, 0x50, 0xCF, 0x51, 0xEF, 0xFF, 0x53,
+	0x0F, 0x54, 0x2F, 0x55, 0x4F, 0x56, 0x6F, 0x57,
+	0x8F, 0x58, 0xAF, 0x59, 0xCF, 0x5A, 0xEF, 0xFF,
+	0x5C, 0x0F, 0x5D, 0x2F, 0x5E, 0x4F, 0x5F, 0x6F,
+	0x60, 0x8F, 0xDB, 0xFF, 0xEF, 0xDB, 0xF0, 0xB5,
+	0xFF, 0xC8, 0x50, 0x00, 0x13, 0x64, 0xBF, 0x65,
+	0xDF, 0x66, 0xFF, 0x68, 0x1F, 0x69, 0x3F, 0x6A,
+	0x5F, 0xFE, 0x6B, 0x7F, 0x6C, 0x9F, 0x6D, 0xBF,
+	0x6E, 0xDF, 0x6F, 0xFF, 0x71, 0x1F, 0xFD, 0x92,
+	0x20, 0xFE, 0x72, 0x9F, 0x73, 0xBF, 0x74, 0xDF,
+	0xEF, 0xFA, 0xDB, 0x84, 0x4F, 0xD2, 0x00, 0x35,
+	0x26, 0x7F, 0x27, 0xB4, 0x60, 0x13, 0xFF, 0x79,
+	0x7F, 0x7A, 0x9F, 0x7B, 0xBF, 0x7C, 0xDF, 0x7D,
+	0xFF, 0xFF, 0x7F, 0x1F, 0x80, 0x3F, 0x81, 0x5F,
+	0x82, 0x7F, 0x83, 0x9F, 0x84, 0xBF, 0x14, 0x0F,
+	0x86, 0xFF, 0xFC, 0x88, 0x1F, 0x8B, 0xFF, 0x13,
+	0xF5, 0xDB, 0xC2, 0xF0, 0x37, 0x8C, 0xE3, 0x2B,
+	0x2B, 0xFF, 0x64, 0x81, 0x64, 0xBF, 0x8D, 0xAF,
+	0x8E, 0xCF, 0x8F, 0xEF, 0x91, 0x0F, 0x92, 0x2F,
+	0x93, 0x4F, 0xFD, 0x94, 0x6F, 0x95, 0x8F, 0x96,
+	0xAF, 0x97, 0xCF, 0x98, 0xEF, 0xEC, 0x86, 0x1E,
+	0x9A, 0xAF, 0xFF, 0x9B, 0xCF, 0x9C, 0xEF, 0x3B,
+	0xF7, 0xEF, 0x91, 0xF0, 0x33, 0xA0, 0x33, 0xA0,
+	0x72, 0xC8, 0x63, 0xFF, 0x14, 0x23, 0xA0, 0xBF,
+	0xA1, 0xDF, 0xA2, 0xFF, 0xA4, 0x1F, 0xA5, 0x3F,
+	0xA6, 0x5F, 0xA7, 0x7F, 0xFF, 0xA8, 0x9F, 0xA9,
+	0xBF, 0xAA, 0xDF, 0xAB, 0xFF, 0xAD, 0x1F, 0x14,
+	0x0F, 0xAF, 0x5F, 0xB0, 0x7F, 0xFF, 0x9F, 0xFD,
+	0x13, 0xC6, 0xB4, 0x10, 0x3C, 0xB7, 0xF1, 0x50,
+	0x4F, 0xF3, 0x28, 0x40, 0xB4, 0xBF, 0xFF, 0xB5,
+	0xDF, 0xB6, 0xFF, 0xB8, 0x1F, 0xB9, 0x3F, 0xBA,
+	0x5F, 0xBB, 0x7F, 0xBC, 0x9F, 0xBD, 0xBF, 0xFF,
+	0xBE, 0xDF, 0xBF, 0xFF, 0xC1, 0x1F, 0xC2, 0x3F,
+	0xC3, 0x5F, 0xC4, 0x7F, 0xDB, 0xFC, 0xDB, 0x70,
+	0xF7, 0x4F, 0xF5, 0x8C, 0x38, 0x00, 0xD1, 0x4F,
+	0xF5, 0x2B, 0xC8, 0xBF, 0xC9, 0xDF, 0xCA, 0xFF,
+	0xFF, 0xCC, 0x1F, 0xCD, 0x3F, 0xCE, 0x5F, 0xCF,
+	0x7F, 0xD0, 0x9F, 0xD1, 0xBF, 0xD2, 0xDF, 0xD3,
+	0xFF, 0xDF, 0xD5, 0x1F, 0xEC, 0xB2, 0x1A, 0xD6,
+	0x9F, 0xD7, 0xBF, 0xD8, 0xDF, 0x13, 0xF9, 0xC7,
+	0x85, 0xFF, 0xC8, 0x49, 0x13, 0xFF, 0xDD, 0x1F,
+	0xDE, 0x3F, 0xDF, 0x5F, 0xE0, 0x7F, 0xE1, 0x9F,
+	0xE2, 0xBF, 0xFF, 0xE3, 0xDF, 0xE4, 0xFF, 0xE6,
+	0x1F, 0xE7, 0x3F, 0xE8, 0x5F, 0xE9, 0x7F, 0xEA,
+	0x9F, 0xEB, 0xBF, 0xFF, 0xEC, 0xDF, 0xF3, 0x36,
+	0xDB, 0xB7, 0x8C, 0x6B, 0x27, 0xFF, 0xF1, 0x2F,
+	0xF2, 0x4F, 0xF3, 0x6F, 0xFF, 0xF4, 0x8F, 0xF5,
+	0xAF, 0xF6, 0xCF, 0xF7, 0xEF, 0xF9, 0x0F, 0xFA,
+	0x2F, 0xFB, 0x4F, 0xFC, 0x6F, 0xFF, 0xFD, 0x8F,
+	0xFE, 0xAF, 0xFF, 0xCF, 0x00, 0xEF, 0xDF, 0xF6,
+	0x8A, 0xA1, 0xC8, 0x35, 0x27, 0xF8, 0x7F, 0x27,
+	0x4F, 0xFF, 0x05, 0x3F, 0x06, 0x5F, 0x07, 0x7F,
+	0x08, 0x9F, 0x09, 0xBF, 0x0A, 0xDF, 0xFF, 0x0B,
+	0xFF, 0x0D, 0x1F, 0x0E, 0x3F, 0x0F, 0x5F, 0x10,
+	0x7F, 0x11, 0x9F, 0x12, 0xBF, 0x13, 0xDF, 0xFB,
+	0x14, 0xFF, 0xCB, 0xF5, 0x8A, 0xA1, 0x28, 0x45,
+	0x8C, 0x19, 0x27, 0x77, 0xFF, 0x19, 0x4F, 0xFF,
+	0x1A, 0x6F, 0x1B, 0x8F, 0x1C, 0xAF, 0x1D, 0xCF,
+	0x1E, 0xEF, 0x20, 0x0F, 0x21, 0x2F, 0x22, 0x4F,
+	0xFF, 0x23, 0x6F, 0x24, 0x8F, 0x25, 0xAF, 0x26,
+	0xCF, 0x27, 0xEF, 0x29, 0x0F, 0x13, 0xF5, 0x9E,
+	0xD3, 0xDF, 0x14, 0x47, 0x01, 0x14, 0x29, 0x9F,
+	0xFF, 0x2D, 0x4F, 0x2E, 0x6F, 0x2F, 0x8F, 0x30,
+	0xAF, 0xFF, 0x31, 0xCF, 0x32, 0xEF, 0x34, 0x0F,
+	0x35, 0x2F, 0x36, 0x4F, 0x37, 0x6F, 0x38, 0x8F,
+	0x39, 0xAF, 0xFB, 0x3A, 0xCF, 0x3B, 0xEF, 0x3D,
+	0x0F, 0x3B, 0xF4, 0x4F, 0xF7, 0x25, 0xB4, 0x62,
+	0x00, 0x33, 0x1F, 0x29, 0x2F, 0x2F, 0xDB, 0xE5,
+	0x3B, 0xFF, 0x41, 0xCF, 0x42, 0xEF, 0x44, 0x0F,
+	0xFF, 0x45, 0x2F, 0x46, 0x4F, 0x47, 0x6F, 0x48,
+	0x8F, 0x49, 0xAF, 0x4A, 0xCF, 0x4B, 0xEF, 0x4D,
+	0x0F, 0xFC, 0x4E, 0x2F, 0x4F, 0x4F, 0x50, 0x6F,
+	0x3B, 0xFF, 0x77, 0x59, 0xDC, 0xD6, 0x2B, 0x2F,
+	0xFF, 0x00, 0x00, 0xEF, 0xFF, 0x55, 0x6F, 0x56,
+	0x8F, 0x57, 0xAF, 0x58, 0xCF, 0x59, 0xEF, 0x5B,
+	0x0F, 0xFF, 0x5C, 0x2F, 0x5D, 0x4F, 0x5E, 0x6F,
+	0x5F, 0x8F, 0x60, 0xAF, 0x61, 0xCF, 0x62, 0xEF,
+	0x64, 0x0F, 0xFF, 0x65, 0x2F, 0x66, 0x4F, 0x67,
+	0x6F, 0x68, 0x8F, 0x69, 0xAF, 0x6A, 0xCF, 0x6B,
+	0xEF, 0x6D, 0x0F, 0xFF, 0x6E, 0x2F, 0x6F, 0x4F,
+	0x70, 0x6F, 0x71, 0x8F, 0x72, 0xAF, 0x73, 0xCF,
+	0x74, 0xEF, 0x76, 0x0F, 0xFF, 0x77, 0x2F, 0x78,
+	0x4F, 0x79, 0x6F, 0x7A, 0x8F, 0x7B, 0xAF, 0x7C,
+	0xCF, 0x7D, 0xEF, 0x7F, 0x0F, 0xFF, 0x80, 0x2F,
+	0x81, 0x4F, 0x82, 0x6F, 0x83, 0x8F, 0x84, 0xAF,
+	0x85, 0xCF, 0x86, 0xEF, 0x88, 0x0F, 0xFF, 0x89,
+	0x2F, 0x8A, 0x4F, 0x8B, 0x6F, 0x8C, 0x8F, 0x8D,
+	0xAF, 0x8E, 0xCF, 0x8F, 0xEF, 0x91, 0x0F, 0xFF,
+	0x92, 0x2F, 0x93, 0x4F, 0x94, 0x6F, 0x95, 0x8F,
+	0x96, 0xAF, 0x97, 0xCF, 0x98, 0xEF, 0x9A, 0x0F,
+	0xE0, 0x9B, 0x2F, 0x9C, 0x4F, 0xFF, 0xC7, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2IntroCpsDataStreet1FMTownsProvider = { ARRAYSIZE(kEoB2IntroCpsDataStreet1FMTowns), kEoB2IntroCpsDataStreet1FMTowns };
+
+static const byte kEoB2IntroCpsDataStreet2FMTowns[15712] = {
+	0x55, 0x3D, 0x00, 0x00, 0x07, 0x6B, 0x6B, 0x6D,
+	0x6D, 0x6B, 0x00, 0x06, 0x00, 0xA0, 0x00, 0xE1,
+	0x66, 0x6C, 0x01, 0x34, 0x00, 0xA2, 0x6C, 0x6B,
+	0x00, 0x20, 0x02, 0x50, 0x6D, 0x71, 0x6D, 0x01,
+	0x60, 0x00, 0x21, 0x02, 0x71, 0x6D, 0x6F, 0x6F,
+	0x02, 0x50, 0x1C, 0x6F, 0x6F, 0x6F, 0x01, 0xD0,
+	0x04, 0x14, 0x03, 0xB1, 0x6B, 0x0C, 0x00, 0x2C,
+	0x0C, 0x6B, 0x6D, 0x0C, 0x0C, 0x2C, 0x2D, 0xE7,
+	0x04, 0x41, 0x03, 0x82, 0x05, 0xC3, 0x6A, 0x0C,
+	0x05, 0x41, 0x04, 0xC3, 0x04, 0x71, 0x8F, 0x03,
+	0x41, 0x6D, 0x6A, 0x0C, 0x04, 0xB1, 0x02, 0x70,
+	0x04, 0x31, 0x08, 0x70, 0x93, 0x06, 0x64, 0x6D,
+	0x0C, 0x05, 0x20, 0x0C, 0x0C, 0x06, 0xF2, 0x04,
+	0x31, 0xDA, 0x01, 0x11, 0x00, 0xE1, 0x6B, 0x00,
+	0x51, 0x0A, 0xB3, 0x2D, 0x00, 0x01, 0x2B, 0x1B,
+	0x2B, 0x2B, 0x2C, 0x00, 0x40, 0x00, 0xB0, 0x2C,
+	0x00, 0xA0, 0x00, 0x82, 0x35, 0x2B, 0x2E, 0x00,
+	0x0A, 0x02, 0x31, 0x2D, 0x02, 0x30, 0x2C, 0x02,
+	0x21, 0xCB, 0x02, 0x63, 0x02, 0xA1, 0x2A, 0x28,
+	0x00, 0x06, 0x27, 0x00, 0x02, 0x04, 0x10, 0xDF,
+	0x05, 0x12, 0x00, 0x48, 0x00, 0x00, 0x0F, 0x01,
+	0x2F, 0x02, 0x40, 0x0F, 0x63, 0x14, 0x12, 0x7F,
+	0x6C, 0x13, 0x74, 0x11, 0x02, 0x0E, 0x12, 0x13,
+	0x70, 0x0D, 0xD2, 0x15, 0x63, 0x13, 0xA1, 0xDF,
+	0x0E, 0x83, 0x14, 0xD1, 0x6F, 0x15, 0x80, 0x13,
+	0xF0, 0x0F, 0x02, 0x11, 0x05, 0x13, 0xF1, 0x2F,
+	0x2C, 0x6C, 0x0E, 0x71, 0x2D, 0x03, 0x24, 0x17,
+	0x91, 0x1A, 0x11, 0x12, 0xA0, 0xF0, 0x12, 0x31,
+	0x1A, 0x43, 0x13, 0xE2, 0x1B, 0x70, 0x6A, 0x0C,
+	0x6D, 0x6C, 0xFF, 0x19, 0x31, 0x14, 0xF2, 0x08,
+	0x35, 0x1C, 0xF0, 0x13, 0xA0, 0x13, 0xF1, 0x1D,
+	0x16, 0x19, 0x11, 0xC3, 0x15, 0x33, 0x14, 0x51,
+	0x6B, 0x6E, 0x6E, 0x6E, 0x12, 0x6B, 0x13, 0x41,
+	0x48, 0x2C, 0x00, 0x01, 0x2B, 0x2A, 0x00, 0x0F,
+	0x2A, 0x2E, 0x2E, 0x98, 0x15, 0x50, 0x2D, 0x2B,
+	0x16, 0xE1, 0x17, 0x32, 0x2D, 0x2B, 0x2A, 0xFF,
+	0x13, 0x53, 0x00, 0x57, 0x13, 0xFF, 0x13, 0xFF,
+	0x15, 0x0F, 0x13, 0xF4, 0x0D, 0x73, 0x1F, 0xD5,
+	0xFF, 0x20, 0xB3, 0x29, 0x43, 0x1F, 0xC2, 0x01,
+	0x53, 0x15, 0x85, 0x29, 0xE5, 0x28, 0x00, 0x28,
+	0x42, 0x7F, 0x6F, 0x29, 0xF1, 0x2B, 0x96, 0x13,
+	0xF5, 0x0C, 0x90, 0x2C, 0xA3, 0x2B, 0xB0, 0x24,
+	0x33, 0xFF, 0x12, 0xA0, 0x2B, 0x62, 0x2D, 0xA5,
+	0x2C, 0xD1, 0x15, 0x43, 0x1A, 0x94, 0x06, 0x91,
+	0x14, 0xA1, 0xF4, 0x13, 0xF5, 0x12, 0x40, 0x31,
+	0x67, 0x12, 0xF0, 0x2B, 0x32, 0x40, 0x2E, 0x2E,
+	0xBD, 0x32, 0xA0, 0x6A, 0x00, 0x03, 0x12, 0x9F,
+	0x28, 0x32, 0x00, 0x4F, 0x2C, 0x13, 0xF3, 0xFF,
+	0x28, 0x92, 0x2A, 0xE1, 0x2A, 0xB0, 0x13, 0xFF,
+	0x27, 0xF3, 0x28, 0x49, 0x27, 0xFF, 0x29, 0x1F,
+	0xFF, 0x27, 0xF2, 0x22, 0x12, 0x3B, 0x01, 0x21,
+	0x63, 0x28, 0xE3, 0x13, 0x64, 0x21, 0xD1, 0x23,
+	0x13, 0xF7, 0x3D, 0xC3, 0x0E, 0x42, 0x02, 0xB3,
+	0x27, 0x90, 0x6B, 0x27, 0xF1, 0x0F, 0x11, 0x16,
+	0x63, 0xCF, 0x3E, 0xD2, 0x27, 0xF4, 0x2C, 0x2C,
+	0x18, 0x15, 0x41, 0x44, 0x3B, 0xF0, 0x13, 0x22,
+	0xDD, 0x04, 0xD5, 0x27, 0x80, 0x6C, 0x15, 0x40,
+	0x00, 0x51, 0x00, 0x35, 0x6E, 0x13, 0xC0, 0xBE,
+	0x13, 0x40, 0x6E, 0x13, 0xB2, 0x40, 0x30, 0x05,
+	0x61, 0x3B, 0x21, 0x3B, 0xB0, 0x2B, 0xF4, 0x41,
+	0x10, 0x46, 0x40, 0x3B, 0xE6, 0x47, 0x00, 0x2B,
+	0x27, 0x02, 0x2C, 0x2D, 0xDF, 0x28, 0x9F, 0x3B,
+	0x72, 0x2D, 0x01, 0x8C, 0x3B, 0xD1, 0x3A, 0x31,
+	0x2A, 0x41, 0x27, 0xFF, 0xBF, 0x3B, 0xF3, 0x2C,
+	0x3C, 0x51, 0x02, 0x52, 0x3B, 0xFF, 0x3C, 0xEF,
+	0x3B, 0xF5, 0x4B, 0xD5, 0xFF, 0x35, 0x43, 0x4E,
+	0xB2, 0x3C, 0x80, 0x3A, 0x87, 0x51, 0x57, 0x49,
+	0xB2, 0x37, 0xF4, 0x4F, 0xF1, 0x7F, 0x6B, 0x27,
+	0xF3, 0x01, 0x64, 0x3F, 0x53, 0x13, 0xF5, 0x4F,
+	0xF1, 0x4D, 0xC2, 0x11, 0x50, 0xFF, 0x36, 0xF0,
+	0x12, 0xA4, 0x00, 0xC1, 0x12, 0xE6, 0x12, 0x80,
+	0x4F, 0xF1, 0x03, 0xF4, 0x57, 0x22, 0xFB, 0x2B,
+	0x04, 0x13, 0xA1, 0x13, 0x83, 0x50, 0x41, 0x5A,
+	0x00, 0x2D, 0x19, 0x01, 0x13, 0xF1, 0xF6, 0x12,
+	0xEF, 0x50, 0x60, 0x00, 0x21, 0x39, 0xE0, 0x2C,
+	0x4D, 0xB0, 0x00, 0xA2, 0x2C, 0xFF, 0x50, 0x52,
+	0x51, 0x91, 0x51, 0xC2, 0x50, 0x60, 0x3C, 0x20,
+	0x02, 0x53, 0x2A, 0x34, 0x3B, 0xFE, 0xFF, 0x15,
+	0xB1, 0x50, 0x25, 0x14, 0x13, 0x4F, 0xFF, 0x51,
+	0x1F, 0x13, 0xF5, 0x35, 0x51, 0x62, 0x70, 0xFF,
+	0x5E, 0xC2, 0x31, 0xE4, 0x00, 0x6F, 0x01, 0x8A,
+	0x52, 0xC1, 0x38, 0xB0, 0x4F, 0xF1, 0x27, 0xD4,
+	0x97, 0x4E, 0x82, 0x6B, 0x6D, 0x48, 0x70, 0x6C,
+	0x49, 0xD2, 0x24, 0xE0, 0x12, 0xA1, 0x6F, 0x6E,
+	0x67, 0xA1, 0x4E, 0x40, 0x6C, 0x26, 0xA1, 0x2E,
+	0x81, 0x6A, 0x32, 0x11, 0xC4, 0xFF, 0x00, 0x6F,
+	0x13, 0x55, 0x68, 0x31, 0x08, 0xA8, 0x19, 0x61,
+	0x69, 0xC2, 0x38, 0x15, 0x60, 0xD0, 0xFD, 0x60,
+	0xF4, 0x28, 0x0F, 0x50, 0xC1, 0x65, 0x61, 0x29,
+	0x1E, 0x62, 0x27, 0x26, 0x00, 0x04, 0x9F, 0x63,
+	0xD3, 0x26, 0x26, 0x63, 0xFC, 0x2A, 0x91, 0x63,
+	0xFF, 0x65, 0x1F, 0x27, 0xF3, 0xFF, 0x00, 0x1F,
+	0x01, 0x39, 0x36, 0x71, 0x02, 0x3F, 0x49, 0x31,
+	0x78, 0xE0, 0x4A, 0x42, 0x7B, 0xF5, 0xF7, 0x67,
+	0xA2, 0x63, 0xF5, 0x12, 0x1F, 0x13, 0x39, 0x2A,
+	0x1A, 0x5D, 0x26, 0x10, 0x78, 0xE0, 0xFF, 0x12,
+	0xB3, 0x77, 0xF7, 0x41, 0x82, 0x52, 0x92, 0x69,
+	0x61, 0x18, 0x30, 0x27, 0xF4, 0x3B, 0x4A, 0xFF,
+	0x27, 0x82, 0x61, 0xE2, 0x15, 0x43, 0x78, 0xA1,
+	0x3B, 0x24, 0x4F, 0xE2, 0x79, 0x20, 0x50, 0x20,
+	0xF1, 0x7A, 0xC0, 0x52, 0x98, 0x13, 0xF5, 0x14,
+	0x72, 0x24, 0x24, 0x24, 0x3B, 0x56, 0x7F, 0x45,
+	0x77, 0xFF, 0x78, 0x8F, 0x13, 0xFF, 0x48, 0x63,
+	0x5B, 0x31, 0x00, 0x23, 0x44, 0xEF, 0xFC, 0x46,
+	0x7D, 0x71, 0x03, 0x8B, 0xF2, 0x37, 0xA5, 0x54,
+	0x72, 0x0E, 0x82, 0x0C, 0x2C, 0x43, 0x2A, 0x12,
+	0x16, 0x6D, 0x2C, 0x0C, 0x6C, 0x2B, 0xEF, 0x64,
+	0xB3, 0xFF, 0x64, 0xD4, 0x77, 0x33, 0x8C, 0x64,
+	0x8A, 0xD2, 0x8B, 0x12, 0x65, 0x52, 0x6D, 0x24,
+	0x3B, 0xF2, 0xFF, 0x41, 0xC1, 0x88, 0x61, 0x3A,
+	0xF4, 0x74, 0xD2, 0x8B, 0x1D, 0x78, 0xC5, 0x8D,
+	0x50, 0x4F, 0xFB, 0xE0, 0x63, 0xD1, 0x8E, 0xF0,
+	0x8E, 0x92, 0x2A, 0x26, 0x25, 0x26, 0x25, 0xF7,
+	0x00, 0x02, 0x28, 0x21, 0x27, 0xD0, 0x4F, 0x56,
+	0x3D, 0x00, 0x12, 0x52, 0xB1, 0x8B, 0xFF, 0xFF,
+	0x8D, 0x1F, 0x8E, 0x31, 0x57, 0x6C, 0x44, 0xC5,
+	0x44, 0xD8, 0x44, 0xE7, 0x96, 0x60, 0x02, 0x24,
+	0x7D, 0x2C, 0x99, 0x00, 0xA2, 0xC0, 0x3B, 0xF2,
+	0x53, 0x02, 0x63, 0xF4, 0x6A, 0x77, 0xF5, 0xFF,
+	0x63, 0xF1, 0xA4, 0x54, 0x62, 0x40, 0x67, 0xF6,
+	0x55, 0xB3, 0x7D, 0x13, 0x7C, 0x63, 0x2E, 0x22,
+	0xFF, 0x8D, 0xF3, 0x41, 0x22, 0xA4, 0xD1, 0x8B,
+	0xF5, 0x00, 0x13, 0xA4, 0x81, 0x3B, 0xF4, 0x4F,
+	0xFF, 0xFF, 0x4D, 0x94, 0x4E, 0xA2, 0x0A, 0x02,
+	0x8A, 0x32, 0x63, 0x23, 0x3E, 0x42, 0x77, 0xF7,
+	0xA0, 0x72, 0xFF, 0x0C, 0x21, 0x9F, 0xF3, 0x3C,
+	0x30, 0x14, 0x02, 0x13, 0xE1, 0x9F, 0xF6, 0x13,
+	0xF5, 0x9F, 0xFF, 0xFF, 0xA0, 0xFF, 0xA2, 0x13,
+	0x57, 0x44, 0x44, 0xBF, 0x44, 0xEF, 0x27, 0xFB,
+	0x63, 0xF5, 0x9B, 0x21, 0xE7, 0x7A, 0x25, 0xB1,
+	0x10, 0x27, 0xF3, 0x2C, 0x2D, 0x50, 0xF3, 0xA5,
+	0x30, 0x77, 0x91, 0xFF, 0x7E, 0x22, 0xA6, 0x94,
+	0xB9, 0xF3, 0x93, 0x34, 0xB6, 0x03, 0xA1, 0xF3,
+	0xB8, 0x84, 0x63, 0xF2, 0xFF, 0x9F, 0xF2, 0x81,
+	0x04, 0x69, 0x64, 0x77, 0xF2, 0xB1, 0x53, 0x62,
+	0x02, 0x12, 0x75, 0x50, 0x15, 0xFF, 0xB3, 0xA4,
+	0x3B, 0xC3, 0x9E, 0xE0, 0xA1, 0x53, 0xB5, 0x05,
+	0x3E, 0x03, 0xB6, 0x73, 0xB3, 0xF3, 0xFF, 0x13,
+	0xA1, 0x50, 0x75, 0xB3, 0xFF, 0xB3, 0xFF, 0xB5,
+	0x0F, 0x27, 0xFE, 0x43, 0x21, 0x44, 0xC4, 0xFA,
+	0x6C, 0xC2, 0x44, 0xD4, 0x44, 0xE9, 0xBB, 0xF1,
+	0xBC, 0xB1, 0x2E, 0x13, 0xF0, 0x6D, 0xF3, 0x63,
+	0xF1, 0x27, 0x94, 0x12, 0xE4, 0x27, 0xF5, 0x0C,
+	0x2D, 0xC5, 0x24, 0xB3, 0x91, 0xC7, 0xBA, 0x04,
+	0xB4, 0x02, 0x6D, 0x6A, 0x69, 0x00, 0x05, 0x39,
+	0xF4, 0xA2, 0x23, 0xFC, 0xB5, 0xF1, 0xCE, 0x22,
+	0xC6, 0xD2, 0x77, 0xF2, 0xCF, 0x07, 0xC9, 0x10,
+	0x2C, 0x2C, 0xFF, 0xC8, 0x52, 0x25, 0x84, 0x4F,
+	0x84, 0x00, 0x66, 0x8A, 0xD1, 0x13, 0xFA, 0x13,
+	0x85, 0xC9, 0x06, 0xFF, 0xCA, 0x63, 0x78, 0x02,
+	0x27, 0xF4, 0x3C, 0x03, 0x3C, 0x53, 0x27, 0xFF,
+	0xC7, 0xFF, 0xC9, 0x0F, 0xFF, 0x27, 0xF3, 0x7E,
+	0x75, 0x44, 0xBF, 0x44, 0xEF, 0x27, 0xFB, 0x3B,
+	0xF4, 0xB7, 0x04, 0x38, 0x51, 0xDF, 0x27, 0xF3,
+	0xC8, 0x41, 0x2D, 0x90, 0x21, 0xE1, 0x92, 0xB3,
+	0x91, 0xD9, 0xA3, 0xCD, 0x93, 0xFF, 0x75, 0x58,
+	0xE2, 0x46, 0xDD, 0xF0, 0x17, 0x00, 0xB6, 0xC3,
+	0x13, 0xF8, 0xDE, 0xB4, 0xE3, 0xD0, 0xEE, 0x3B,
+	0xF5, 0xC6, 0xB4, 0x26, 0x97, 0x2D, 0x28, 0xD0,
+	0x26, 0x50, 0xDB, 0x80, 0x2B, 0xFF, 0x9F, 0x53,
+	0x63, 0xC0, 0x01, 0x10, 0x28, 0x61, 0xA2, 0x10,
+	0x01, 0xC1, 0xDD, 0x20, 0xC7, 0xF5, 0xFF, 0xDC,
+	0xA1, 0xC8, 0x81, 0x13, 0xF7, 0x78, 0x34, 0x3B,
+	0xFF, 0xDB, 0xFF, 0xDD, 0x0F, 0x27, 0xFF, 0xFF,
+	0xCE, 0x24, 0x59, 0xB3, 0x44, 0xD6, 0x44, 0xE6,
+	0x96, 0x63, 0x94, 0x52, 0x3B, 0xF8, 0x89, 0x42,
+	0xBF, 0xC5, 0xC4, 0x6A, 0x4F, 0x91, 0xC7, 0xF2,
+	0x4B, 0xD3, 0xF3, 0x80, 0x27, 0xF2, 0xC5, 0x72,
+	0xFF, 0xCD, 0xF5, 0xDC, 0x66, 0x29, 0x75, 0xDD,
+	0xE1, 0x25, 0xF0, 0xE3, 0xA4, 0x63, 0xF8, 0xBB,
+	0x96, 0xFF, 0xE1, 0x61, 0xCD, 0x71, 0x12, 0xE0,
+	0x10, 0xF2, 0x76, 0x31, 0x11, 0xB1, 0x0A, 0x73,
+	0x11, 0x32, 0xFF, 0x9E, 0xE2, 0x78, 0x81, 0xEC,
+	0xC1, 0x4F, 0xC1, 0xEF, 0x74, 0x29, 0xA3, 0xDB,
+	0xA2, 0x3B, 0xFA, 0xC7, 0x8B, 0xE6, 0xEF, 0xFB,
+	0x46, 0x2D, 0x44, 0xEF, 0xFF, 0xF0, 0xCF, 0x27,
+	0xF8, 0xFF, 0x19, 0xA4, 0x61, 0x62, 0x45, 0x35,
+	0xF9, 0x70, 0x43, 0x55, 0x47, 0x03, 0x96, 0x73,
+	0xBB, 0xE1, 0xFD, 0xBC, 0xD3, 0x4F, 0xF0, 0xB4,
+	0x42, 0xC7, 0xF0, 0xC4, 0x36, 0x36, 0x30, 0x2A,
+	0x63, 0x92, 0xFE, 0xDB, 0xF2, 0x13, 0x15, 0x13,
+	0xF3, 0xF4, 0xA0, 0x50, 0x03, 0x77, 0xB2, 0xF6,
+	0xF1, 0x69, 0x03, 0x6D, 0x2A, 0x2A, 0x6C, 0x6B,
+	0x2B, 0x3B, 0xE5, 0x68, 0x34, 0xF9, 0x13, 0xF3,
+	0x3B, 0x11, 0x3F, 0x63, 0x7A, 0x54, 0xE1, 0x11,
+	0x2D, 0x2B, 0xB9, 0x60, 0xF8, 0x9D, 0x92, 0x6C,
+	0x52, 0x39, 0x02, 0x13, 0x11, 0x46, 0x44, 0x2D,
+	0x2D, 0x2A, 0xFF, 0x14, 0x02, 0x12, 0x83, 0x02,
+	0x13, 0xD9, 0x52, 0xB3, 0xF2, 0xB6, 0x54, 0x16,
+	0x12, 0x63, 0xF3, 0xFF, 0x00, 0x39, 0x9F, 0xFC,
+	0xDC, 0xA1, 0x76, 0x8E, 0x01, 0x0F, 0x63, 0xF3,
+	0xBC, 0x44, 0x57, 0x6A, 0xF3, 0x44, 0x55, 0x44,
+	0xD5, 0x01, 0x76, 0x58, 0xF5, 0x2D, 0x0C, 0xDB,
+	0xF0, 0x77, 0xF2, 0xDE, 0xFC, 0x6F, 0xC8, 0x42,
+	0x2D, 0xC9, 0x25, 0x13, 0xF2, 0xEF, 0x54, 0x4F,
+	0xA1, 0x6D, 0x53, 0x69, 0x13, 0xF6, 0x29, 0x50,
+	0xA2, 0x2B, 0x2D, 0xF4, 0xE0, 0x66, 0x42, 0xFF,
+	0x8A, 0xC5, 0x63, 0xF4, 0xB6, 0x4A, 0xD7, 0x61,
+	0xC8, 0x50, 0xC4, 0x16, 0xC2, 0xB3, 0x6F, 0xA3,
+	0xFF, 0x4D, 0x82, 0x5A, 0xA4, 0x14, 0xE4, 0xEC,
+	0xE0, 0xC6, 0xD2, 0x78, 0xC3, 0xC7, 0xF1, 0x16,
+	0x63, 0xCB, 0xDB, 0xF1, 0x77, 0xF4, 0x27, 0x27,
+	0x00, 0x31, 0x27, 0x78, 0x24, 0xEF, 0xA4, 0xFF,
+	0xDB, 0xD3, 0xE1, 0x71, 0x13, 0xFF, 0x15, 0x1F,
+	0x8B, 0xF7, 0x94, 0x65, 0x58, 0xC6, 0x5A, 0x23,
+	0xFD, 0x14, 0x76, 0x13, 0x76, 0x13, 0xF9, 0xDB,
+	0xF2, 0x5F, 0xB1, 0xCB, 0x37, 0x2C, 0x5E, 0x81,
+	0xF9, 0xF0, 0x41, 0x63, 0xF2, 0xDD, 0xB1, 0x63,
+	0xF2, 0xEF, 0x62, 0x6A, 0x69, 0xC4, 0xA2, 0x94,
+	0x9F, 0xF5, 0x6A, 0x2D, 0xCC, 0x60, 0x6A, 0x64,
+	0xE0, 0x29, 0x2B, 0x7F, 0x2B, 0x7A, 0x43, 0x9E,
+	0xE3, 0x13, 0xF2, 0xDB, 0xF1, 0xAF, 0x08, 0xDB,
+	0xF1, 0xFF, 0x70, 0x7F, 0x0C, 0x22, 0x4C, 0x00,
+	0xEF, 0x02, 0x0F, 0x51, 0x32, 0xDC, 0xD4, 0xA0,
+	0x05, 0x13, 0xF3, 0xFF, 0x77, 0xA5, 0x77, 0xFF,
+	0xF3, 0xE1, 0x27, 0xFF, 0x29, 0x1F, 0x9F, 0xF7,
+	0x58, 0xB4, 0x58, 0xC7, 0xFB, 0x57, 0xA0, 0x58,
+	0xD6, 0x58, 0xE6, 0x58, 0xF3, 0x95, 0xF1, 0x2B,
+	0x13, 0xF2, 0xDB, 0xF1, 0xFE, 0x88, 0x03, 0x76,
+	0x24, 0x9F, 0xF2, 0x4F, 0xF3, 0x01, 0x75, 0x13,
+	0xF4, 0x77, 0x61, 0x6A, 0x7C, 0x6A, 0xDC, 0x21,
+	0xDC, 0x31, 0xDE, 0xC2, 0x2A, 0x22, 0x65, 0x01,
+	0x2D, 0x29, 0x3F, 0x2B, 0x2A, 0x27, 0xF3, 0x78,
+	0xF2, 0xF1, 0x60, 0xFE, 0xD0, 0x13, 0xF0, 0x26,
+	0x64, 0xE7, 0xEC, 0x71, 0xF5, 0x11, 0x3B, 0xF1,
+	0x0C, 0x2D, 0xC4, 0x47, 0x3B, 0x00, 0x00, 0x0F,
+	0xFE, 0x01, 0xA5, 0xBC, 0x10, 0xC6, 0xC5, 0x4F,
+	0xF8, 0xC8, 0xF1, 0xDF, 0xD0, 0xC8, 0x94, 0x29,
+	0x3F, 0x29, 0x29, 0x13, 0xFD, 0xF0, 0x31, 0xEF,
+	0xFF, 0x3C, 0xBF, 0xB3, 0xF8, 0xCE, 0xF2, 0xFF,
+	0x58, 0xB4, 0xCF, 0x30, 0x58, 0xC5, 0x58, 0xD7,
+	0xD1, 0xD0, 0x58, 0xE4, 0x58, 0xF3, 0xAA, 0x32,
+	0xFF, 0x27, 0xF2, 0xC8, 0x01, 0x9F, 0xF3, 0xF3,
+	0xC1, 0xF0, 0x51, 0xB3, 0xF1, 0x86, 0xD2, 0x63,
+	0xF0, 0xFD, 0x89, 0xA2, 0xA1, 0x21, 0x8B, 0x31,
+	0xD9, 0xD2, 0x76, 0xD6, 0xF3, 0xE2, 0x2D, 0xB5,
+	0x44, 0x3B, 0x6B, 0x2D, 0x0C, 0x80, 0x8E, 0xF1,
+	0x90, 0x83, 0x6D, 0x13, 0xB0, 0xD9, 0x00, 0xFF,
+	0x13, 0xF2, 0x4D, 0xC2, 0xFD, 0xB1, 0x3C, 0x00,
+	0xEF, 0x60, 0x91, 0x70, 0x09, 0x83, 0xDA, 0xD1,
+	0x7F, 0x2A, 0x74, 0xD3, 0x9D, 0x13, 0xB1, 0x81,
+	0xF1, 0x12, 0xC9, 0x62, 0x15, 0xB0, 0xC9, 0xF3,
+	0xFF, 0xB5, 0x22, 0xB3, 0xF3, 0x6F, 0xD3, 0xA0,
+	0x44, 0x17, 0x88, 0x18, 0x52, 0x13, 0x84, 0x27,
+	0xFF, 0xFF, 0x50, 0x5F, 0xC8, 0x0D, 0x41, 0x74,
+	0x58, 0xB3, 0x42, 0x54, 0xC6, 0x62, 0x58, 0xD7,
+	0x58, 0xE4, 0xFF, 0xFF, 0xD0, 0xF6, 0x51, 0xE8,
+	0xD0, 0x00, 0x40, 0x9F, 0x93, 0x13, 0xF2, 0xD8,
+	0x03, 0x9F, 0xFB, 0xC8, 0x4F, 0xF0, 0xF5, 0x85,
+	0x6A, 0x0C, 0x27, 0xA1, 0x2A, 0x2D, 0x2A, 0xEF,
+	0xDA, 0x82, 0xA0, 0xB4, 0xDB, 0xC1, 0x2B, 0xA1,
+	0x44, 0x05, 0x20, 0xA0, 0xD2, 0xA2, 0x64, 0xFF,
+	0x27, 0xB1, 0x27, 0xF2, 0x11, 0x22, 0x61, 0x93,
+	0xCE, 0xE1, 0x50, 0x52, 0x3C, 0x10, 0x38, 0x84,
+	0xFD, 0x13, 0xF0, 0x50, 0xB5, 0x1E, 0xD1, 0x9D,
+	0x73, 0x4D, 0xC1, 0xDD, 0x70, 0x2A, 0x14, 0x63,
+	0xFF, 0x14, 0xC3, 0x63, 0xF4, 0x61, 0xFA, 0x27,
+	0xB0, 0x00, 0x10, 0x13, 0xFA, 0x28, 0x08, 0x3B,
+	0xFF, 0xFF, 0x64, 0xCF, 0xEF, 0xF8, 0xFA, 0x11,
+	0xF3, 0xD0, 0x21, 0x00, 0xD9, 0xE2, 0xFB, 0x20,
+	0xDA, 0x52, 0xFF, 0x0C, 0xA1, 0xF5, 0x51, 0x00,
+	0x72, 0x86, 0xB3, 0x37, 0xD2, 0xC3, 0x73, 0xB3,
+	0x91, 0x27, 0xF4, 0xFC, 0xB1, 0xA5, 0xC7, 0xF4,
+	0xFF, 0xC0, 0xB3, 0xF2, 0x15, 0x64, 0x3B, 0x83,
+	0x6A, 0x6A, 0xF8, 0x05, 0x13, 0x3E, 0x85, 0xDA,
+	0xB1, 0x7A, 0x30, 0xEF, 0x12, 0x2D, 0x6B, 0x6A,
+	0xBF, 0x14, 0x00, 0x6A, 0x8D, 0xE4, 0x07, 0xC1,
+	0x3A, 0xC1, 0x3B, 0xF2, 0xEE, 0x63, 0x3B, 0xF2,
+	0xFD, 0x3C, 0xF1, 0xCD, 0x71, 0x63, 0xB3, 0xD8,
+	0x41, 0x26, 0xF2, 0xD8, 0xD1, 0x29, 0x28, 0xA0,
+	0xFE, 0xE6, 0x81, 0x14, 0x72, 0x4D, 0xF2, 0x27,
+	0xD5, 0x79, 0xD2, 0x9F, 0xF4, 0x3E, 0xCD, 0x29,
+	0x3F, 0x2A, 0x28, 0x3C, 0x66, 0x8B, 0xF8, 0x28,
+	0x84, 0xEF, 0xFF, 0x79, 0x0F, 0xF0, 0xB2, 0x8F,
+	0xFA, 0x21, 0x6E, 0x6D, 0x6C, 0xF9, 0xE1, 0xAC,
+	0xC4, 0xFD, 0xD0, 0x22, 0x35, 0xFF, 0x4B, 0x00,
+	0xFD, 0x61, 0x9C, 0x03, 0x9E, 0x76, 0x13, 0x83,
+	0x4F, 0x91, 0xDC, 0x00, 0xFE, 0x42, 0xFD, 0xC5,
+	0xE2, 0x3C, 0x21, 0x3B, 0xF2, 0x63, 0xF1, 0x25,
+	0xC2, 0x4F, 0x77, 0x6B, 0x28, 0x00, 0xDE, 0x62,
+	0x60, 0xF1, 0x40, 0x2B, 0x3D, 0x92, 0x4F, 0xE1,
+	0xF5, 0x02, 0x3B, 0xD0, 0x2A, 0x9F, 0xB4, 0x92,
+	0x6A, 0x2A, 0xB4, 0xF0, 0xF2, 0x11, 0x91, 0xB1,
+	0x76, 0xB1, 0x50, 0x41, 0xFF, 0xE5, 0x95, 0x3B,
+	0xF2, 0x77, 0xF1, 0x3B, 0x24, 0xFA, 0x61, 0x8A,
+	0xD1, 0xB2, 0xF1, 0x9F, 0xD3, 0xFF, 0x4C, 0xB0,
+	0xA9, 0x94, 0xFB, 0xA0, 0x3B, 0xF1, 0xDA, 0xB5,
+	0xC9, 0xE2, 0xD3, 0xD5, 0xF2, 0x02, 0xFE, 0x3B,
+	0xEA, 0x28, 0x91, 0x3B, 0xF5, 0x8B, 0xD8, 0x63,
+	0xFF, 0x8C, 0xFF, 0x27, 0xF4, 0x6F, 0x9F, 0x00,
+	0x10, 0x6D, 0x6C, 0xD6, 0xF0, 0xE8, 0xC1, 0x4C,
+	0x21, 0x20, 0xA1, 0xFC, 0xA2, 0x7F, 0x6C, 0x9A,
+	0xB1, 0xD9, 0xA6, 0xEA, 0xA3, 0x12, 0x93, 0xFE,
+	0x30, 0x27, 0xF6, 0xDB, 0xF3, 0xF3, 0x4D, 0x54,
+	0x63, 0xF7, 0xC5, 0x64, 0xAF, 0xF4, 0x6B, 0x6B,
+	0x5D, 0x42, 0xFD, 0x93, 0xEF, 0xF2, 0xF2, 0x88,
+	0x13, 0x9B, 0x62, 0x6A, 0xF1, 0xD2, 0x13, 0xF0,
+	0xF2, 0xF2, 0x63, 0xA2, 0xFF, 0x4F, 0xF1, 0x4E,
+	0x74, 0xE3, 0x42, 0x9F, 0xF2, 0x78, 0x51, 0x8B,
+	0xF5, 0x26, 0xD0, 0xE6, 0x44, 0xFF, 0x9D, 0x42,
+	0x7C, 0x30, 0x28, 0xF1, 0x8D, 0xB4, 0x27, 0xF2,
+	0x8B, 0x16, 0x8B, 0xF3, 0x52, 0xA6, 0xEB, 0x13,
+	0xF3, 0x3B, 0xF1, 0x3C, 0x12, 0x29, 0x3C, 0x70,
+	0x29, 0x3B, 0xE6, 0x77, 0xFF, 0xE2, 0xA0, 0x7F,
+	0x3B, 0xFC, 0x27, 0xD0, 0x6D, 0x6F, 0x6B, 0x34,
+	0xC1, 0x6D, 0x3F, 0x6D, 0x6E, 0x84, 0x33, 0x85,
+	0x62, 0x9A, 0x70, 0x25, 0x94, 0x4E, 0x15, 0x28,
+	0xB3, 0xFF, 0xD8, 0xA3, 0x13, 0xF7, 0xD8, 0x23,
+	0xDC, 0x33, 0x63, 0xF3, 0x13, 0xF3, 0xC6, 0x72,
+	0x3B, 0x70, 0xED, 0x79, 0xB3, 0xB8, 0x04, 0xFE,
+	0xA2, 0x48, 0x6B, 0x23, 0x49, 0x34, 0x2C, 0x13,
+	0x82, 0x1F, 0x6D, 0x6B, 0x2A, 0x8C, 0xF1, 0xF4,
+	0xA0, 0x77, 0xA2, 0x77, 0xF5, 0xF8, 0x35, 0xF1,
+	0x13, 0x93, 0x13, 0xF9, 0x63, 0xF0, 0x62, 0x45,
+	0x2C, 0x2D, 0x29, 0xFA, 0xA1, 0x7F, 0x29, 0x64,
+	0xF6, 0x65, 0xA2, 0xB4, 0x41, 0xFA, 0xF2, 0xB3,
+	0xF5, 0xFB, 0xC3, 0x8B, 0xF2, 0xFF, 0x13, 0x51,
+	0x77, 0xD0, 0x78, 0x44, 0x3F, 0xF0, 0x8B, 0xFF,
+	0xB3, 0xFF, 0xB5, 0x1F, 0x27, 0xF3, 0xF9, 0x3C,
+	0x01, 0x34, 0xD0, 0xEA, 0x10, 0x72, 0xF2, 0x24,
+	0x62, 0x69, 0x6B, 0x45, 0x60, 0xF7, 0x11, 0x34,
+	0xD9, 0xB5, 0x4B, 0x10, 0x10, 0x37, 0x2D, 0x4F,
+	0xF1, 0xC8, 0x01, 0xEE, 0x31, 0xFF, 0x29, 0x95,
+	0x13, 0xF3, 0x27, 0xF4, 0xED, 0x52, 0xA1, 0x10,
+	0x76, 0x62, 0x13, 0xD8, 0x13, 0xF0, 0xFF, 0x04,
+	0x46, 0xB0, 0x54, 0xF0, 0x62, 0x88, 0xE1, 0x16,
+	0x92, 0x13, 0xF8, 0x6D, 0xB4, 0x77, 0x91, 0xFC,
+	0xAF, 0x71, 0xC8, 0x52, 0x6E, 0x72, 0xF9, 0x00,
+	0x4F, 0xF9, 0xC9, 0xD2, 0x2C, 0x2A, 0xFF, 0xA4,
+	0x90, 0x65, 0xA4, 0xA2, 0xE2, 0x02, 0xD4, 0xEF,
+	0xF4, 0xC9, 0x31, 0x01, 0x22, 0x77, 0xE8, 0xFF,
+	0x50, 0x11, 0x3B, 0xF2, 0x27, 0xFF, 0xC7, 0xFF,
+	0xC9, 0x1F, 0x13, 0xF4, 0xFA, 0x71, 0x63, 0xF1,
+	0xD0, 0xFE, 0x04, 0x1C, 0xE0, 0x2A, 0x3C, 0xE1,
+	0x2A, 0x29, 0x2C, 0x6D, 0x6F, 0x6E, 0xF1, 0xEA,
+	0x95, 0x50, 0x2E, 0xFF, 0xB5, 0x8B, 0xF5, 0x4B,
+	0x43, 0x13, 0xF8, 0xFF, 0xFF, 0xC0, 0x4F, 0xF3,
+	0x4F, 0x40, 0x61, 0x40, 0x63, 0x81, 0x13, 0xDA,
+	0x13, 0xF8, 0x14, 0x07, 0x8F, 0x78, 0x51, 0x6A,
+	0x6A, 0x2A, 0x52, 0x11, 0x4F, 0xF6, 0x9B, 0x02,
+	0xED, 0x33, 0xFE, 0x13, 0xF2, 0x28, 0x54, 0x8B,
+	0xE4, 0xDA, 0xD1, 0x83, 0x22, 0x13, 0xE1, 0x63,
+	0x75, 0x29, 0xFF, 0x8D, 0x03, 0x79, 0xA2, 0xEE,
+	0xB3, 0x8B, 0xF5, 0xAB, 0xD1, 0xF1, 0x01, 0xFC,
+	0x22, 0x8B, 0x40, 0xFF, 0xC6, 0x53, 0xA2, 0x51,
+	0x4F, 0xFF, 0xB3, 0xFF, 0xDC, 0xCF, 0x77, 0xF8,
+	0xFD, 0xD1, 0x13, 0xF0, 0x8F, 0xD8, 0x75, 0x2B,
+	0x2A, 0x69, 0x5E, 0xF0, 0xC2, 0xF1, 0x7E, 0x40,
+	0xC5, 0xA8, 0x9F, 0xC3, 0x61, 0x6A, 0x6A, 0x4B,
+	0xC0, 0xB3, 0x13, 0xB3, 0x91, 0xF0, 0x01, 0xEB,
+	0x65, 0xDF, 0x67, 0xB4, 0x13, 0xF1, 0x6C, 0x9A,
+	0xD1, 0xFE, 0xE0, 0xC6, 0x81, 0x14, 0x02, 0xDE,
+	0x2B, 0xFF, 0x13, 0xF8, 0x28, 0x16, 0xFF, 0x50,
+	0x64, 0x40, 0x3E, 0xD1, 0x13, 0xF2, 0xFC, 0xC0,
+	0x4F, 0xF3, 0xFF, 0x74, 0x64, 0xDB, 0x90, 0xA0,
+	0x01, 0xC8, 0x53, 0xA0, 0x04, 0x77, 0xF1, 0xF1,
+	0x41, 0x27, 0x41, 0xFF, 0xD2, 0xE1, 0xAB, 0x02,
+	0xCC, 0xB0, 0xA1, 0xA2, 0x78, 0x83, 0xDD, 0x93,
+	0xB3, 0xF2, 0xDB, 0x71, 0xFF, 0xFB, 0xD0, 0x8E,
+	0x74, 0xCC, 0x7E, 0x4F, 0xFF, 0xEF, 0xFF, 0xF1,
+	0x1F, 0xDB, 0xF6, 0xFF, 0x50, 0xFC, 0xD8, 0x47,
+	0x13, 0xE1, 0x63, 0xF4, 0xD5, 0xA0, 0x63, 0xF6,
+	0x51, 0x83, 0x2E, 0x6C, 0xFF, 0xB1, 0x53, 0x4F,
+	0xF9, 0x8D, 0x43, 0xC7, 0xF6, 0xDB, 0xF0, 0xA0,
+	0x51, 0x27, 0xE1, 0xEE, 0xA2, 0x4F, 0x2A, 0x13,
+	0xFE, 0x6E, 0x6E, 0x2D, 0x76, 0x99, 0x16, 0xDD,
+	0x33, 0xCA, 0x20, 0xFF, 0x77, 0xF6, 0x74, 0x06,
+	0xD7, 0x80, 0x13, 0xF2, 0x28, 0x53, 0xF0, 0x25,
+	0x9F, 0xF3, 0x25, 0x31, 0xBF, 0xB3, 0xC0, 0x48,
+	0x41, 0x30, 0xA1, 0x53, 0xA1, 0xA7, 0xF1, 0x13,
+	0x8B, 0xF4, 0xB3, 0xE2, 0xFF, 0x14, 0x22, 0xEF,
+	0xF1, 0x13, 0xFF, 0xDB, 0xFF, 0x00, 0x0F, 0x01,
+	0x2F, 0xF0, 0x70, 0x38, 0xD3, 0xFE, 0x0E, 0xA4,
+	0xEA, 0x53, 0xD9, 0x20, 0xF8, 0x80, 0xEB, 0x23,
+	0x86, 0xE2, 0x64, 0x46, 0x6D, 0xFE, 0x13, 0xF0,
+	0x8C, 0x06, 0x8B, 0xF4, 0x8E, 0x20, 0x00, 0x26,
+	0xDB, 0xF5, 0xB4, 0x52, 0x6D, 0x7F, 0x6A, 0xB3,
+	0x20, 0xB1, 0x01, 0x40, 0x3A, 0x13, 0xB0, 0x13,
+	0xF1, 0x00, 0x22, 0x50, 0x48, 0xFF, 0x8D, 0xB1,
+	0x2F, 0x32, 0xB3, 0xA3, 0x8C, 0x43, 0x3A, 0x83,
+	0xD0, 0x11, 0xF5, 0x11, 0x50, 0x52, 0xE8, 0xD8,
+	0x71, 0xD1, 0x52, 0xF0, 0xA5, 0x29, 0xF1, 0x81,
+	0x3D, 0x41, 0x48, 0xFF, 0x14, 0x10, 0xED, 0xF1,
+	0x78, 0x52, 0x8D, 0xA3, 0x9D, 0x05, 0x27, 0xF3,
+	0x27, 0xD3, 0x2B, 0x33, 0xFF, 0x27, 0xFF, 0xEF,
+	0xF4, 0x7D, 0xD6, 0xEF, 0xFF, 0x14, 0xFF, 0xF0,
+	0x43, 0xFE, 0x21, 0xEB, 0xD4, 0xFF, 0xD6, 0xE1,
+	0x63, 0x90, 0xB3, 0x71, 0xEF, 0x21, 0xB3, 0x12,
+	0x14, 0x00, 0x9F, 0x03, 0xED, 0xF4, 0xEF, 0x13,
+	0xF1, 0xEA, 0x62, 0xB3, 0xF1, 0x6C, 0x64, 0x50,
+	0x10, 0xB5, 0x11, 0x34, 0x13, 0xF6, 0x2F, 0x2C,
+	0x6A, 0xD8, 0x80, 0x2B, 0xDC, 0x20, 0x13, 0xEA,
+	0x13, 0x92, 0x13, 0xF6, 0xFF, 0x28, 0x72, 0xFE,
+	0xE4, 0x68, 0x14, 0xE3, 0x90, 0x9F, 0xF6, 0x25,
+	0xE3, 0xF0, 0x62, 0x28, 0xD3, 0xF0, 0xFE, 0x37,
+	0x14, 0x63, 0x3B, 0xD1, 0xDA, 0xB1, 0x2E, 0x3B,
+	0x3B, 0x41, 0x1F, 0x2E, 0x45, 0x47, 0x14, 0x10,
+	0xED, 0xB1, 0xB0, 0x85, 0xEE, 0x64, 0x9F, 0xF3,
+	0xFF, 0xE9, 0x61, 0xEF, 0xE5, 0x3B, 0xFF, 0xEF,
+	0xF4, 0x91, 0xB6, 0xF7, 0xA0, 0x27, 0xFF, 0x29,
+	0x1F, 0xEE, 0x4F, 0xF4, 0x76, 0x35, 0xD4, 0xD1,
+	0x69, 0xB0, 0x70, 0xF0, 0xC0, 0x30, 0xF1, 0x2E,
+	0x9B, 0xED, 0x92, 0x69, 0x2A, 0x28, 0x92, 0xB3,
+	0xB4, 0x69, 0x9B, 0xC0, 0xAF, 0xF3, 0xBD, 0xDB,
+	0xF1, 0x6D, 0x78, 0x50, 0xF8, 0xC2, 0xED, 0xB0,
+	0xFD, 0x72, 0x6A, 0xB3, 0xA1, 0x5F, 0x6B, 0xEF,
+	0xF1, 0x2C, 0x88, 0xD0, 0xC7, 0x30, 0xFF, 0xD0,
+	0x13, 0xDD, 0x13, 0xFB, 0xFD, 0x14, 0x06, 0xB9,
+	0xB4, 0xEC, 0x51, 0xB3, 0xF4, 0x00, 0x1B, 0xA0,
+	0x01, 0x0C, 0xC4, 0x3D, 0x93, 0x12, 0xD2, 0x2B,
+	0x41, 0x13, 0xF2, 0x41, 0x47, 0x28, 0x21, 0xDC,
+	0xD1, 0xFF, 0x61, 0x51, 0x13, 0x92, 0xF2, 0x93,
+	0x13, 0xF3, 0xF2, 0x21, 0xDD, 0xE3, 0x13, 0xFF,
+	0x50, 0x05, 0xFE, 0x13, 0xFF, 0x3C, 0x5F, 0xDB,
+	0xFF, 0xFD, 0x25, 0xFD, 0x91, 0x63, 0xA0, 0x23,
+	0x10, 0x3D, 0x77, 0x3B, 0x14, 0x00, 0x31, 0x01,
+	0xED, 0xC1, 0x6A, 0xFD, 0xA4, 0x89, 0xF3, 0x27,
+	0xF2, 0xBF, 0x13, 0xF5, 0x6B, 0x8C, 0x50, 0xDD,
+	0x34, 0x8E, 0x01, 0xED, 0x10, 0xB3, 0xF5, 0xFE,
+	0xE0, 0xFF, 0xDB, 0x41, 0xF4, 0x01, 0x13, 0xEE,
+	0x13, 0xFB, 0x14, 0x09, 0x2A, 0xC0, 0xFE, 0x31,
+	0x4F, 0xF5, 0xFF, 0xFE, 0x58, 0xCD, 0x11, 0x8C,
+	0x50, 0x51, 0x33, 0xC6, 0x75, 0xB4, 0x43, 0xB9,
+	0x33, 0xB9, 0x70, 0x7F, 0x47, 0x28, 0x00, 0x8B,
+	0x62, 0x38, 0x47, 0xF4, 0x02, 0x63, 0xC0, 0xB3,
+	0xF6, 0xF1, 0x72, 0xFF, 0x77, 0xF5, 0xEE, 0xD4,
+	0x00, 0x43, 0x8D, 0xD1, 0x27, 0xE8, 0x27, 0xFF,
+	0x51, 0x0F, 0x27, 0xF6, 0xD0, 0xE8, 0x73, 0xDA,
+	0xF1, 0x69, 0xDA, 0x70, 0x2D, 0x2E, 0x3B, 0x37,
+	0x97, 0x30, 0xE2, 0x48, 0x48, 0x15, 0x33, 0x2C,
+	0xF1, 0xB0, 0xDB, 0xF0, 0x3B, 0xF7, 0xBF, 0x63,
+	0xF5, 0x6C, 0xEF, 0xF2, 0xA3, 0x53, 0x01, 0xF4,
+	0x4F, 0x92, 0x72, 0xD1, 0xE0, 0x61, 0xFF, 0x4C,
+	0xE2, 0x13, 0xEE, 0x13, 0xFC, 0x3C, 0x25, 0x06,
+	0x11, 0xED, 0xA3, 0xDB, 0xF7, 0x34, 0xE6, 0xF9,
+	0xEF, 0x93, 0x28, 0x53, 0xB5, 0x55, 0xFF, 0x20,
+	0x26, 0xB0, 0x2B, 0x2B, 0x3B, 0xB0, 0x97, 0x3B,
+	0xF1, 0x3B, 0x46, 0x14, 0x00, 0x48, 0x8B, 0x54,
+	0x10, 0x66, 0xFD, 0x30, 0xFF, 0xB3, 0xF4, 0xCA,
+	0x92, 0xCA, 0x15, 0x13, 0x66, 0x77, 0xF8, 0xCD,
+	0xA7, 0x13, 0xFF, 0x64, 0xDF, 0xDE, 0x8B, 0xF8,
+	0xB3, 0x65, 0x6D, 0x27, 0xE0, 0xE8, 0xF0, 0x44,
+	0xE0, 0x13, 0xF0, 0x41, 0x67, 0x45, 0x1C, 0xF1,
+	0xC5, 0x32, 0x6A, 0x2C, 0x64, 0x45, 0x8B, 0xF0,
+	0xF0, 0x33, 0xF9, 0x13, 0x91, 0x13, 0xF5, 0xB6,
+	0x45, 0x5F, 0xF2, 0x13, 0xF4, 0x2C, 0x44, 0xC4,
+	0xC1, 0xBF, 0xC5, 0x40, 0x2A, 0xB3, 0x36, 0x52,
+	0x87, 0x13, 0xFC, 0x50, 0x34, 0xB4, 0xE2, 0x37,
+	0x41, 0xFE, 0x4F, 0xF9, 0xDC, 0x15, 0xC7, 0xF6,
+	0xED, 0x64, 0x38, 0x85, 0xCC, 0x81, 0x1E, 0xC0,
+	0x3B, 0x0B, 0x3B, 0x3E, 0x2E, 0x37, 0x0B, 0x00,
+	0x47, 0x50, 0x11, 0x4C, 0x24, 0xFF, 0xE1, 0xC2,
+	0xF2, 0xF1, 0xC7, 0xF3, 0x4F, 0x2F, 0xA0, 0x02,
+	0x8B, 0xF7, 0x13, 0xEB, 0x4F, 0xFF, 0xFD, 0x79,
+	0x0F, 0x63, 0xF3, 0xEB, 0xC6, 0xD6, 0xD1, 0xDB,
+	0xE0, 0x44, 0xE1, 0x39, 0x45, 0x20, 0xEF, 0x14,
+	0x00, 0x81, 0x50, 0xEC, 0x42, 0x2B, 0x3C, 0x82,
+	0x63, 0xF5, 0xEF, 0xE0, 0xF2, 0x80, 0xFF, 0xEF,
+	0xF5, 0xF1, 0xE5, 0xC8, 0x53, 0x77, 0xF6, 0x13,
+	0xF2, 0xDB, 0x61, 0x8B, 0x38, 0x3B, 0xFF, 0xFE,
+	0x78, 0x79, 0xA3, 0x03, 0x3C, 0x21, 0xA3, 0xE1,
+	0xDC, 0x42, 0xEB, 0x17, 0xDB, 0xF5, 0x0C, 0xE0,
+	0xB0, 0x32, 0xF1, 0x66, 0x27, 0xE2, 0x3B, 0x40,
+	0x2E, 0x3E, 0x3E, 0x7F, 0x42, 0x3C, 0x23, 0x64,
+	0x21, 0x26, 0x67, 0x60, 0xB3, 0xB3, 0xF3, 0xC7,
+	0x47, 0xC6, 0xF1, 0xFE, 0x3C, 0x06, 0x28, 0x05,
+	0x27, 0xD8, 0x13, 0xFF, 0x8C, 0xBF, 0xEF, 0xF9,
+	0x9B, 0xE6, 0x6C, 0xB9, 0xFC, 0x10, 0x6D, 0x44,
+	0xE6, 0x45, 0x03, 0xA0, 0xA1, 0x6B, 0x6C, 0x78,
+	0x40, 0xFF, 0xDC, 0x63, 0x27, 0xF5, 0x9F, 0xF7,
+	0xB3, 0x94, 0xF1, 0x53, 0x13, 0xF8, 0x3B, 0xF2,
+	0x8B, 0xB7, 0x7F, 0x88, 0x13, 0xFF, 0x78, 0x59,
+	0x3B, 0xF4, 0x44, 0x41, 0x77, 0xF7, 0xB2, 0xB5,
+	0xF0, 0xD2, 0xF0, 0x27, 0xF5, 0x38, 0x58, 0xF0,
+	0xB3, 0xF5, 0x65, 0x41, 0x3E, 0x2E, 0x45, 0x7F,
+	0x45, 0x50, 0x10, 0xC9, 0xE3, 0xDC, 0x01, 0xDE,
+	0xC3, 0x13, 0xF5, 0x28, 0xD3, 0x63, 0xFE, 0xFE,
+	0x3C, 0x14, 0x13, 0xED, 0x77, 0xFF, 0xA1, 0x0F,
+	0x27, 0xF4, 0xED, 0xD3, 0xB1, 0xE0, 0x6A, 0xA5,
+	0xF0, 0x00, 0x2C, 0x44, 0xE6, 0x3B, 0x41, 0x45,
+	0x01, 0x88, 0x4F, 0x82, 0xFB, 0x85, 0x50, 0xF1,
+	0x72, 0x77, 0xF0, 0xF2, 0x65, 0xDB, 0xF4, 0x87,
+	0xEF, 0xC2, 0xB4, 0x06, 0xE7, 0x3B, 0xF6, 0x78,
+	0x61, 0x9F, 0xB9, 0x6E, 0x6E, 0x14, 0x10, 0x14,
+	0x44, 0x13, 0xFF, 0xFF, 0xF0, 0x90, 0xA3, 0xD1,
+	0xA2, 0xE3, 0xDB, 0xF7, 0xDA, 0xA4, 0x3B, 0xF1,
+	0x13, 0xF6, 0xD8, 0x02, 0xE3, 0xC8, 0x25, 0xDA,
+	0xC1, 0x27, 0xF1, 0x3C, 0x3C, 0x3E, 0x5B, 0x40,
+	0x13, 0xF2, 0xFF, 0x3C, 0x15, 0xB4, 0x27, 0x27,
+	0xF4, 0xEF, 0xD3, 0x13, 0xFF, 0xC8, 0xBD, 0xB9,
+	0xE4, 0xB3, 0xFF, 0xF6, 0xB5, 0x1F, 0x77, 0xFC,
+	0xC2, 0xE1, 0x44, 0xE3, 0x37, 0x08, 0xE1, 0x50,
+	0x11, 0x47, 0x3E, 0x2E, 0x6E, 0xB0, 0x33, 0x28,
+	0x04, 0x13, 0xF2, 0xDB, 0xF4, 0xDC, 0x52, 0x87,
+	0xFF, 0xC7, 0xA5, 0xA1, 0xF4, 0x77, 0xF5, 0xFF,
+	0x51, 0xFC, 0x41, 0x3B, 0xEA, 0x13, 0xFF, 0xB4,
+	0x95, 0xE8, 0x63, 0xE1, 0x68, 0x34, 0xEF, 0xF5,
+	0x46, 0x4F, 0x72, 0x28, 0x25, 0x28, 0xF2, 0x14,
+	0x04, 0xC9, 0x33, 0xA0, 0x64, 0x3D, 0xB7, 0x3E,
+	0x35, 0x0A, 0xC0, 0x35, 0x57, 0x35, 0x4F, 0xF0,
+	0x35, 0x27, 0xF0, 0x47, 0x26, 0x92, 0x3E, 0x17,
+	0xF2, 0xB1, 0xFF, 0x9F, 0xF2, 0x9D, 0x86, 0xF3,
+	0xE1, 0xDB, 0xF7, 0xCB, 0xB1, 0xA0, 0xCF, 0xF9,
+	0x61, 0xC7, 0xFF, 0xF2, 0xC9, 0x1F, 0x9F, 0xF8,
+	0xEB, 0xB1, 0xFF, 0x20, 0x2C, 0x2C, 0x13, 0xB3,
+	0x3E, 0x3B, 0x2E, 0x3E, 0xA9, 0x20, 0x13, 0xF2,
+	0xDC, 0xC1, 0x6A, 0xC9, 0x00, 0x77, 0x82, 0xFF,
+	0xEF, 0xF1, 0x3B, 0xF5, 0x27, 0xF4, 0x50, 0xF1,
+	0x50, 0x16, 0x8B, 0xF6, 0x46, 0x55, 0x63, 0xC5,
+	0x7D, 0x88, 0x27, 0xE2, 0x3C, 0x53, 0x3B, 0xFF,
+	0x13, 0xF4, 0xE0, 0x62, 0x45, 0xDB, 0xF2, 0x0B,
+	0x0C, 0x0C, 0x46, 0x45, 0x63, 0x82, 0x29, 0x64,
+	0x73, 0xC8, 0xE2, 0xFB, 0xF5, 0x71, 0xED, 0x61,
+	0xEC, 0x62, 0x27, 0xC2, 0x13, 0xF0, 0x39, 0x1E,
+	0xC1, 0x63, 0xF0, 0xBF, 0x27, 0xF0, 0x41, 0x64,
+	0x00, 0xDC, 0x61, 0x52, 0x43, 0x4C, 0xA5, 0xDB,
+	0xF5, 0xE0, 0xB4, 0xFF, 0xB3, 0xFF, 0xB4, 0xDF,
+	0x13, 0xFF, 0xDC, 0xEF, 0x4F, 0xF7, 0x4F, 0xD5,
+	0x97, 0xF1, 0x58, 0xE3, 0x6D, 0x3D, 0x58, 0xE3,
+	0x59, 0x01, 0x6E, 0x28, 0x00, 0xEF, 0xE0, 0x2B,
+	0xC2, 0x03, 0x39, 0x6A, 0x2E, 0x76, 0xD4, 0xEF,
+	0x91, 0xCB, 0xA0, 0x6F, 0x86, 0xEF, 0xA2, 0xC7,
+	0x22, 0x61, 0x27, 0xFA, 0x2C, 0x2C, 0x82, 0xEF,
+	0xE0, 0x8B, 0xD7, 0x27, 0xE4, 0xFA, 0x13, 0xFF,
+	0x3D, 0x34, 0xB3, 0xF0, 0xF4, 0x55, 0x13, 0xF1,
+	0x45, 0x9E, 0xA0, 0x45, 0x2F, 0x43, 0x45, 0xEF,
+	0x21, 0x2D, 0x13, 0xFC, 0xF1, 0x36, 0xF0, 0x74,
+	0xF5, 0xB6, 0xBF, 0x4F, 0xF0, 0x3B, 0xC8, 0x31,
+	0xC8, 0x40, 0xCB, 0x51, 0xDC, 0x27, 0x63, 0xF3,
+	0x8F, 0x84, 0xFF, 0xCB, 0x62, 0x4F, 0xF9, 0xC8,
+	0xAF, 0x27, 0xFF, 0xF0, 0xBF, 0xC7, 0xFB, 0xEF,
+	0xC6, 0x08, 0xEA, 0xBF, 0x8C, 0x31, 0x45, 0xFE,
+	0xB0, 0xC7, 0x92, 0xEA, 0x00, 0xA0, 0x21, 0x13,
+	0xF2, 0x4F, 0xF4, 0x4E, 0x85, 0xDC, 0x51, 0x86,
+	0x85, 0x13, 0xF2, 0x22, 0x61, 0xF4, 0x11, 0x84,
+	0xBB, 0xB3, 0xF5, 0x81, 0xF3, 0x62, 0xD3, 0xC1,
+	0x63, 0xE7, 0x88, 0x28, 0x41, 0xDB, 0xFB, 0x9D,
+	0x65, 0x65, 0x2D, 0x2D, 0xE4, 0x70, 0xF6, 0x93,
+	0x27, 0xF1, 0x41, 0x13, 0xF1, 0x31, 0x42, 0x41,
+	0x14, 0x61, 0xC8, 0x71, 0x2B, 0x2B, 0x44, 0xF1,
+	0x31, 0x7A, 0x45, 0xDC, 0x52, 0xEC, 0x51, 0x73,
+	0x28, 0x82, 0xC2, 0x41, 0x63, 0xC0, 0x35, 0x7F,
+	0x38, 0x13, 0xF0, 0x50, 0x02, 0x9D, 0x56, 0x77,
+	0x42, 0x63, 0xF7, 0xF4, 0xF4, 0x3B, 0xFA, 0xFF,
+	0x50, 0x5F, 0x3B, 0xFF, 0x00, 0xAF, 0xEF, 0xF9,
+	0x86, 0x83, 0x63, 0xD1, 0x86, 0xE2, 0x58, 0xE2,
+	0xFC, 0x4F, 0xF3, 0x08, 0xF2, 0xFE, 0xF0, 0x50,
+	0x08, 0x27, 0xF2, 0xDC, 0x12, 0x6F, 0x87, 0x82,
+	0x13, 0x90, 0x6D, 0x6F, 0x85, 0x83, 0x85, 0xF1,
+	0x11, 0x0C, 0x2C, 0x6D, 0x0C, 0xF1, 0xF2, 0x82,
+	0xC7, 0xA0, 0xEF, 0xF1, 0x0C, 0x81, 0xFF, 0xF5,
+	0x22, 0x9F, 0xD5, 0x3B, 0xF0, 0x13, 0xFF, 0x3D,
+	0x07, 0x4F, 0xF0, 0x13, 0xE1, 0xF6, 0x33, 0x90,
+	0x13, 0x31, 0x41, 0x46, 0x28, 0x30, 0x40, 0x41,
+	0x41, 0x2C, 0x8B, 0xDC, 0x53, 0x2D, 0x42, 0x42,
+	0xF1, 0x31, 0x41, 0x86, 0xB8, 0xB3, 0xE0, 0x83,
+	0x29, 0xE0, 0x2D, 0x2B, 0x39, 0x2E, 0x39, 0x4F,
+	0xB0, 0x4F, 0xF1, 0x3F, 0x3B, 0x3B, 0x97, 0x31,
+	0x27, 0xF6, 0x8B, 0x03, 0xDB, 0xF3, 0x13, 0xF7,
+	0x77, 0xFF, 0xFF, 0x64, 0x6F, 0x4F, 0xFF, 0x14,
+	0xBF, 0xF0, 0x37, 0xFD, 0xD5, 0x3A, 0x53, 0x58,
+	0xA0, 0x58, 0xE1, 0x89, 0x63, 0xF0, 0x37, 0x35,
+	0x41, 0xA9, 0x20, 0x45, 0x47, 0x87, 0x80, 0xBC,
+	0xFD, 0xA1, 0x2C, 0x13, 0xF5, 0xDC, 0xA5, 0x27,
+	0x91, 0xC7, 0xF0, 0x85, 0x82, 0x3A, 0x81, 0x85,
+	0x12, 0xF1, 0xEA, 0xE1, 0x27, 0xE0, 0x82, 0xFF,
+	0xB0, 0x85, 0x7F, 0x86, 0x13, 0xF2, 0x27, 0xF2,
+	0x8B, 0xD6, 0x77, 0xD1, 0x00, 0x01, 0xEF, 0xFB,
+	0x51, 0x53, 0xE0, 0xF0, 0xE6, 0x37, 0x13, 0x13,
+	0xF4, 0x44, 0x40, 0x40, 0x3E, 0x45, 0x00, 0x3E,
+	0x45, 0x37, 0x34, 0x37, 0x3E, 0x45, 0x45, 0x4D,
+	0x40, 0xF1, 0x30, 0x46, 0x41, 0xA1, 0x82, 0xC2,
+	0x66, 0x44, 0xFE, 0x61, 0x90, 0x13, 0xF3, 0x39,
+	0x39, 0x5B, 0x00, 0x40, 0x2E, 0x42, 0x42, 0x7F,
+	0x46, 0x3B, 0xF5, 0x9E, 0x41, 0xC8, 0xA4, 0x8B,
+	0xF5, 0xDD, 0x76, 0x8B, 0xF6, 0xB4, 0x06, 0xFF,
+	0xB4, 0x87, 0x63, 0xFF, 0x28, 0x8F, 0xEF, 0xFA,
+	0xEA, 0x61, 0xEA, 0xA1, 0xAE, 0xD3, 0x08, 0xA0,
+	0xFF, 0x77, 0xB1, 0x08, 0xE0, 0x78, 0x32, 0x59,
+	0x00, 0x13, 0xF1, 0xFD, 0xB0, 0xDC, 0x30, 0xDB,
+	0xF4, 0xC8, 0xFE, 0x82, 0xDB, 0x90, 0x86, 0x81,
+	0x13, 0xF2, 0x80, 0x81, 0x81, 0x42, 0x6C, 0xFE,
+	0xB4, 0x2D, 0x82, 0x82, 0x80, 0xFF, 0xB0, 0x81,
+	0xFF, 0x13, 0xF2, 0x3B, 0xF3, 0xC7, 0xC4, 0x3B,
+	0x93, 0x63, 0xF0, 0x13, 0xFB, 0x01, 0x01, 0x3D,
+	0x33, 0xC5, 0x27, 0xE3, 0x30, 0xB0, 0x6A, 0x85,
+	0x43, 0x3B, 0x30, 0x40, 0x27, 0xF0, 0x10, 0x42,
+	0x3F, 0x3E, 0x13, 0xD0, 0x41, 0x32, 0x32, 0x34,
+	0x3B, 0x34, 0x3E, 0x13, 0xF6, 0xDC, 0x73, 0xEC,
+	0xB3, 0x41, 0xEE, 0xB1, 0xF5, 0xD7, 0x5F, 0x43,
+	0xDC, 0x60, 0x3E, 0x50, 0x01, 0xF2, 0x01, 0xF2,
+	0x15, 0x8B, 0xF8, 0x27, 0xFF, 0xFE, 0xC8, 0xCD,
+	0x00, 0xBA, 0x3B, 0xFF, 0x3D, 0x1F, 0x77, 0xF8,
+	0xD6, 0xD2, 0x13, 0xF1, 0x3E, 0xDD, 0x4F, 0x71,
+	0x4F, 0x80, 0x45, 0xF9, 0x44, 0xAF, 0x80, 0x71,
+	0x91, 0x2C, 0xFD, 0xF0, 0xD4, 0xB1, 0xF1, 0xEC,
+	0xD5, 0x2D, 0x13, 0xF0, 0x85, 0xEF, 0xF0, 0x84,
+	0x80, 0x2A, 0x80, 0x7E, 0x22, 0x50, 0x3E, 0x22,
+	0x63, 0x80, 0x27, 0xF0, 0x46, 0xA1, 0x13, 0xF2,
+	0x7E, 0x27, 0xF9, 0x48, 0x88, 0x87, 0x87, 0x63,
+	0xFE, 0xBE, 0xA0, 0xF2, 0x87, 0x79, 0x34, 0x3B,
+	0xE4, 0xF4, 0x81, 0x26, 0xA0, 0x3B, 0xF2, 0x40,
+	0xBB, 0x13, 0xE0, 0x3E, 0x13, 0xF1, 0x14, 0x01,
+	0x3B, 0xF1, 0x46, 0x28, 0x40, 0xB1, 0x52, 0xC1,
+	0xFE, 0x74, 0x13, 0xF1, 0x2D, 0x39, 0x2E, 0x3B,
+	0x38, 0x77, 0xF3, 0xFF, 0x00, 0x61, 0x13, 0xF2,
+	0xF1, 0x90, 0xEC, 0xB5, 0xDE, 0xE2, 0x77, 0xC0,
+	0xF6, 0x20, 0xB1, 0x75, 0xFE, 0x13, 0xFF, 0x14,
+	0xCF, 0x8B, 0xFF, 0x50, 0xDF, 0x8B, 0xF9, 0xD8,
+	0x15, 0xC7, 0xB7, 0x43, 0xCC, 0xBC, 0xE0, 0x81,
+	0x61, 0x45, 0x47, 0x0E, 0x10, 0xA0, 0x21, 0x2C,
+	0x2D, 0xB2, 0xD6, 0x63, 0x2B, 0x2A, 0xF4, 0x4F,
+	0x90, 0x81, 0x83, 0xF0, 0x50, 0x82, 0x15, 0x7F,
+	0x7E, 0x7E, 0x22, 0x50, 0x37, 0x22, 0x64, 0x7C,
+	0x13, 0xF1, 0x5F, 0x85, 0x5F, 0x50, 0x3E, 0xDB,
+	0xD9, 0x13, 0xF0, 0x8B, 0xB1, 0x00, 0x33, 0x13,
+	0xF8, 0xF5, 0x3C, 0x03, 0x13, 0xF8, 0xF6, 0x51,
+	0x13, 0xF1, 0x3E, 0x4F, 0xF0, 0x3E, 0x07, 0xD0,
+	0x23, 0x37, 0x34, 0x13, 0xF1, 0x32, 0x34, 0x37,
+	0x63, 0xA0, 0x3B, 0xF0, 0xF0, 0xDC, 0x01, 0xF1,
+	0x43, 0xF0, 0xD1, 0x27, 0xF1, 0x2B, 0x38, 0x2E,
+	0x38, 0xD7, 0x13, 0xF0, 0x3B, 0xF1, 0x39, 0x4F,
+	0xF1, 0x46, 0x27, 0xF5, 0xF2, 0x64, 0xF0, 0x21,
+	0xFF, 0xDB, 0xF2, 0x77, 0xC4, 0xC7, 0xFF, 0x28,
+	0xAF, 0x9F, 0xFF, 0x64, 0xBF, 0x13, 0xFC, 0xAB,
+	0xA5, 0xE9, 0x4F, 0xF0, 0x6C, 0xE2, 0xF8, 0xE0,
+	0x35, 0x1D, 0x62, 0x45, 0x45, 0x13, 0xF3, 0x0C,
+	0x6D, 0x6C, 0x45, 0x2A, 0x3E, 0x77, 0x4F, 0x90,
+	0x6F, 0x6F, 0x2D, 0x83, 0x80, 0x13, 0xF1, 0x80,
+	0x13, 0xE0, 0x22, 0x50, 0x34, 0x22, 0x64, 0x49,
+	0x3C, 0x9B, 0x70, 0x80, 0x83, 0x73, 0x50, 0x44,
+	0x42, 0xD5, 0xC8, 0x3B, 0x48, 0x87, 0x13, 0xFF,
+	0xA1, 0x11, 0xA1, 0x00, 0x87, 0x3B, 0xF9, 0x13,
+	0xFC, 0x0A, 0x38, 0x45, 0x45, 0x41, 0x00, 0x03,
+	0x45, 0x77, 0xA0, 0x0C, 0x34, 0x46, 0x3E, 0xF0,
+	0x63, 0x9C, 0xA5, 0x3F, 0x13, 0xF3, 0x3A, 0x3C,
+	0xFF, 0x77, 0xF1, 0xE7, 0x28, 0x63, 0xF4, 0xF3,
+	0xD1, 0x9F, 0xF7, 0x27, 0xF6, 0xE1, 0x04, 0x3C,
+	0x1F, 0xF9, 0xB3, 0xFF, 0x78, 0x2F, 0x79, 0x4F,
+	0x27, 0xF4, 0xD3, 0xD2, 0x6D, 0x2B, 0x1C, 0x61,
+	0xF9, 0x6C, 0xE1, 0x4F, 0xF1, 0xA9, 0x21, 0x6D,
+	0x00, 0x27, 0xF4, 0x6C, 0x43, 0xF0, 0x21, 0xE0,
+	0xEF, 0xC1, 0x8B, 0x00, 0xF1, 0x40, 0x6F, 0x6F,
+	0x81, 0x81, 0x83, 0x03, 0x85, 0x6D, 0x6F, 0x7E,
+	0x7B, 0x7B, 0x22, 0x55, 0x22, 0x61, 0x9F, 0x13,
+	0xF1, 0x81, 0x81, 0x73, 0x21, 0xF9, 0x33, 0x13,
+	0xF6, 0x12, 0x71, 0x50, 0x33, 0xFC, 0x9F, 0xF4,
+	0xB5, 0x02, 0x3D, 0x70, 0x2D, 0xF1, 0x27, 0xFF,
+	0x13, 0xF4, 0x34, 0x32, 0xF9, 0x27, 0xF7, 0x13,
+	0xF6, 0xFE, 0xA5, 0x13, 0xF2, 0x33, 0x07, 0x3F,
+	0x3D, 0x4F, 0xF8, 0xFF, 0xA0, 0x25, 0xF0, 0x81,
+	0xB3, 0xF5, 0xF3, 0x58, 0xE5, 0xF1, 0xC7, 0x7F,
+	0xC7, 0xFF, 0x8C, 0x4F, 0xFC, 0x27, 0xFF, 0xEB,
+	0xC3, 0xFB, 0xD2, 0x13, 0xF5, 0x6C, 0xE1, 0xBD,
+	0x21, 0x3F, 0x3B, 0x36, 0x3E, 0x46, 0x13, 0xFA,
+	0x4A, 0x11, 0x85, 0x14, 0x11, 0xEF, 0xE0, 0x81,
+	0x4E, 0x7E, 0x3B, 0xF1, 0x7E, 0x78, 0x13, 0xF0,
+	0x0E, 0x53, 0x36, 0x61, 0x3E, 0xA0, 0xC3, 0x70,
+	0x7E, 0x13, 0xF1, 0x44, 0x81, 0x81, 0x84, 0x6A,
+	0xFE, 0xFA, 0x70, 0x13, 0xFA, 0xF0, 0x24, 0xB3,
+	0xF4, 0xA0, 0xE0, 0x15, 0x70, 0x13, 0xFD, 0x2B,
+	0xBB, 0x3B, 0xF5, 0x3B, 0x3B, 0xF1, 0x4F, 0xF2,
+	0x13, 0xF6, 0x2D, 0xDB, 0xF3, 0xEF, 0xE4, 0xBF,
+	0x27, 0xF4, 0x38, 0x8B, 0xB2, 0x78, 0x31, 0x3B,
+	0xF8, 0x8E, 0x02, 0xF3, 0xB4, 0x3B, 0xF3, 0xFF,
+	0xEE, 0x2A, 0x15, 0x94, 0x00, 0x15, 0x64, 0xEF,
+	0xDB, 0xFF, 0xA0, 0xFF, 0xEF, 0xF6, 0x77, 0xD1,
+	0x61, 0x6D, 0x13, 0xF5, 0x77, 0xB1, 0x3E, 0x3E,
+	0x42, 0x2E, 0xC8, 0x14, 0xAB, 0x4F, 0xF0, 0x88,
+	0x27, 0xF2, 0x41, 0xC8, 0x00, 0x6D, 0xB2, 0xC2,
+	0xB2, 0x50, 0x8B, 0x13, 0xF3, 0x80, 0x6F, 0x6F,
+	0x27, 0xF0, 0x78, 0x36, 0x56, 0xB6, 0xE0, 0x4F,
+	0x3B, 0x13, 0xF5, 0x80, 0x84, 0xF0, 0xD1, 0x77,
+	0xF5, 0x12, 0x74, 0x13, 0xFA, 0xEA, 0x8C, 0xE1,
+	0x13, 0xFC, 0xF8, 0x81, 0x2B, 0x77, 0xF1, 0x3E,
+	0xB2, 0xA0, 0x3E, 0x03, 0x3E, 0x3B, 0x3E, 0x3E,
+	0x37, 0x3E, 0x4F, 0xE2, 0x63, 0xF1, 0xFF, 0x13,
+	0xF9, 0x27, 0xF7, 0x9F, 0x40, 0x63, 0xF0, 0x7A,
+	0x90, 0x3B, 0xFE, 0x64, 0x25, 0xB3, 0xF4, 0xFE,
+	0xE5, 0x01, 0x00, 0x36, 0xB7, 0xF8, 0x14, 0x9A,
+	0xEF, 0xFF, 0xB4, 0x6F, 0xC7, 0xFD, 0x6A, 0xED,
+	0x6F, 0x61, 0x13, 0xF3, 0x80, 0xD7, 0x43, 0xEF,
+	0xF0, 0xE5, 0x62, 0x45, 0x4B, 0xA1, 0xF0, 0x13,
+	0xF5, 0xEF, 0xB2, 0xC7, 0x02, 0xEF, 0xE0, 0x80,
+	0x7E, 0x83, 0x86, 0xF9, 0x13, 0xF3, 0x36, 0x54,
+	0x5E, 0x61, 0x13, 0xF2, 0x8C, 0x40, 0x0C, 0x7E,
+	0x13, 0xF2, 0xFF, 0x3B, 0xF8, 0x13, 0xF3, 0xC8,
+	0x12, 0x77, 0xF5, 0x28, 0x03, 0xF1, 0x33, 0xE0,
+	0xB0, 0xD5, 0xB0, 0xD3, 0xEF, 0xE2, 0xEF, 0xF0,
+	0x3F, 0x13, 0xF3, 0x3B, 0x43, 0x7D, 0x70, 0x00,
+	0x00, 0x17, 0x37, 0x45, 0x3A, 0xC8, 0x80, 0x45,
+	0x4F, 0xF2, 0xEF, 0xC0, 0x4C, 0x23, 0xBF, 0x3B,
+	0xFB, 0x44, 0xDB, 0xF2, 0x8B, 0xF7, 0xB2, 0x08,
+	0xC7, 0xF4, 0xF1, 0x34, 0x3B, 0xF6, 0xFE, 0xDC,
+	0x48, 0x28, 0xA6, 0x03, 0x48, 0xC7, 0xFF, 0xC9,
+	0x1F, 0xEF, 0xF8, 0x27, 0xF2, 0x2D, 0xFB, 0x9F,
+	0x71, 0x80, 0xE5, 0x81, 0x63, 0x13, 0xF2, 0xDB,
+	0x31, 0x41, 0xC8, 0x03, 0x3B, 0xE1, 0x97, 0xC7,
+	0xE2, 0x6F, 0x7F, 0x13, 0xF2, 0x7B, 0x4F, 0xF1,
+	0x36, 0x53, 0x72, 0x61, 0x8F, 0x0E, 0x70, 0x46,
+	0x3E, 0x7F, 0x13, 0xF3, 0xCD, 0x20, 0x27, 0xF8,
+	0xB2, 0xA3, 0xFC, 0xB3, 0xF9, 0x28, 0x04, 0xF0,
+	0xC8, 0x14, 0x20, 0xB3, 0xF3, 0x13, 0xF1, 0x3C,
+	0x3C, 0x04, 0x3C, 0x3A, 0x3C, 0x43, 0x37, 0x00,
+	0x00, 0x3E, 0x43, 0x47, 0x3E, 0x69, 0x70, 0x0C,
+	0x45, 0x3F, 0xF0, 0x02, 0x4D, 0x85, 0x27, 0xF5,
+	0xE1, 0xAB, 0x02, 0x5A, 0xC1, 0x8C, 0xA0, 0x3E,
+	0x45, 0x48, 0x48, 0x4E, 0xA0, 0xFC, 0xEF, 0xF1,
+	0x26, 0xB7, 0x13, 0xF5, 0x17, 0x95, 0xDB, 0xF4,
+	0xDD, 0xB0, 0x2B, 0x2E, 0xFF, 0xD2, 0x01, 0xF2,
+	0x22, 0xFE, 0xF4, 0x3D, 0x27, 0xDB, 0xFF, 0xDD,
+	0x1F, 0x8B, 0xF7, 0x3B, 0xF4, 0xF3, 0x94, 0xA0,
+	0x80, 0xE2, 0x44, 0xE1, 0x4F, 0xF2, 0x41, 0x46,
+	0x27, 0xF8, 0xEE, 0xA0, 0xE6, 0x4F, 0xC1, 0x50,
+	0x01, 0xEF, 0xE0, 0x7E, 0x7E, 0x63, 0xE0, 0x00,
+	0x50, 0x7B, 0x7F, 0x7E, 0x36, 0x50, 0x8B, 0xF0,
+	0x36, 0x62, 0x13, 0xF2, 0x50, 0x40, 0x27, 0xF4,
+	0xDB, 0xF5, 0xFD, 0x4F, 0xF7, 0x13, 0xF9, 0x63,
+	0xF8, 0xB4, 0x03, 0xB3, 0xE1, 0xEF, 0x32, 0x40,
+	0x13, 0xF1, 0x02, 0x3D, 0x3B, 0x3D, 0x3C, 0x40,
+	0x43, 0x00, 0x01, 0x3E, 0x5C, 0x3C, 0x7D, 0x70,
+	0x2C, 0x13, 0xF4, 0xB3, 0xE5, 0x77, 0xF1, 0x2D,
+	0x2D, 0x7F, 0x3B, 0xD2, 0x80, 0x5B, 0x05, 0x13,
+	0xF4, 0x4F, 0xF7, 0xB3, 0xFA, 0xF2, 0xF1, 0x4F,
+	0xA2, 0x7F, 0x2C, 0xEF, 0xF3, 0xA1, 0xB1, 0xC8,
+	0x34, 0xFF, 0x61, 0xE6, 0xA6, 0x14, 0x84, 0xEF,
+	0xFF, 0xFA, 0xF1, 0x1F, 0xEF, 0xF2, 0xEF, 0xD3,
+	0x13, 0xF6, 0x80, 0xE2, 0x43, 0xBD, 0x66, 0x47,
+	0xEF, 0x3B, 0xF2, 0x8D, 0xF0, 0x27, 0xF4, 0x85,
+	0x63, 0xE0, 0x4D, 0xA0, 0x13, 0xF3, 0x3B, 0xF1,
+	0xDB, 0x78, 0x00, 0x36, 0x50, 0x3E, 0x36, 0x64,
+	0x36, 0x70, 0x45, 0x13, 0xF2, 0x4F, 0xFE, 0x84,
+	0xEE, 0xC4, 0x6B, 0x81, 0x6B, 0x2E, 0xFE, 0x31,
+	0x41, 0x2B, 0xFD, 0xF1, 0x30, 0x77, 0xF0, 0xA1,
+	0x91, 0xC8, 0x06, 0xF6, 0x22, 0xC7, 0xF1, 0x43,
+	0xF0, 0x40, 0x00, 0x3C, 0x3D, 0x3C, 0x3C, 0x39,
+	0x3A, 0x38, 0x36, 0x02, 0x36, 0x38, 0x3A, 0x3C,
+	0x3A, 0x3D, 0x13, 0xF1, 0x40, 0xC4, 0xEA, 0x4B,
+	0xB3, 0xF2, 0x3B, 0x40, 0x3D, 0xFB, 0x00, 0x3D,
+	0x3D, 0x17, 0x43, 0x29, 0x29, 0xD8, 0xD1, 0x2E,
+	0x13, 0xF5, 0xDA, 0xC6, 0xEF, 0xF5, 0xE1, 0xDB,
+	0xD5, 0x13, 0xF2, 0x13, 0x43, 0x2D, 0x2D, 0x27,
+	0x29, 0xDC, 0x32, 0x1F, 0x29, 0x2B, 0x29, 0x14,
+	0x95, 0xCD, 0x06, 0xEE, 0x8E, 0x01, 0x0F, 0x27,
+	0xFF, 0x9C, 0x4F, 0xF8, 0x3F, 0x3D, 0x4F, 0xFC,
+	0x13, 0xF4, 0x4F, 0xF6, 0x7F, 0x7F, 0x80, 0x27,
+	0xF1, 0x7C, 0x7C, 0x7C, 0x7A, 0x7C, 0x43, 0x37,
+	0xE3, 0x72, 0x90, 0x36, 0x62, 0x77, 0xF0, 0x45,
+	0x3F, 0x3F, 0xC7, 0xF6, 0xD5, 0xE4, 0x61, 0x48,
+	0x12, 0x60, 0xEE, 0x74, 0x7C, 0x44, 0x2B, 0x2B,
+	0xD6, 0x21, 0xFA, 0xF6, 0x90, 0xDD, 0x51, 0x27,
+	0xFB, 0xDF, 0x32, 0xC7, 0xF1, 0x43, 0xB3, 0xF1,
+	0x3D, 0x00, 0x3E, 0x3B, 0x39, 0x38, 0x3A, 0x39,
+	0x36, 0x39, 0x12, 0x3B, 0x38, 0x3C, 0x69, 0x70,
+	0x2C, 0x2B, 0x15, 0x51, 0x2C, 0x97, 0x60, 0x76,
+	0x2B, 0x43, 0xC7, 0xF1, 0x29, 0x00, 0x07, 0x11,
+	0x52, 0x19, 0xC0, 0xFF, 0xDB, 0xF7, 0xB6, 0x62,
+	0xB3, 0xF3, 0x28, 0xD6, 0xEF, 0xF2, 0x13, 0x42,
+	0x17, 0x10, 0x8E, 0x35, 0x2B, 0x2B, 0x2C, 0x14,
+	0x95, 0x29, 0xCB, 0x30, 0x2D, 0x14, 0xD1, 0x13,
+	0xFF, 0xFF, 0x15, 0x1F, 0x27, 0xF6, 0x50, 0x40,
+	0x8B, 0xF2, 0xF8, 0xA0, 0x80, 0xE1, 0xBC, 0xE3,
+	0x3C, 0x72, 0xBA, 0x63, 0xF7, 0x2C, 0xED, 0x11,
+	0x3C, 0x22, 0x4F, 0xF3, 0x7E, 0x13, 0xF3, 0x7D,
+	0x0E, 0x7B, 0x7D, 0x7C, 0x80, 0x36, 0x52, 0x36,
+	0x61, 0xB3, 0xF0, 0x45, 0x7B, 0x3F, 0x27, 0xF6,
+	0x19, 0x05, 0x77, 0xF3, 0xDC, 0x21, 0x7E, 0xB5,
+	0x61, 0x13, 0xF2, 0x1B, 0x44, 0x41, 0x48, 0x79,
+	0x76, 0x27, 0xF9, 0x6D, 0xDB, 0xF1, 0x3C, 0x41,
+	0x00, 0x3C, 0x3E, 0x3C, 0x39, 0x3B, 0x39, 0x39,
+	0x39, 0x03, 0x38, 0x38, 0x3C, 0x38, 0x3D, 0x39,
+	0xEF, 0x91, 0x13, 0xF2, 0xDF, 0x9F, 0xF7, 0x13,
+	0xF1, 0x2B, 0x13, 0xB5, 0x75, 0xE0, 0x28, 0x12,
+	0xD2, 0x21, 0xC7, 0xF3, 0xFF, 0x14, 0x36, 0x63,
+	0xF4, 0xDD, 0x26, 0xEF, 0xF0, 0xDD, 0xB4, 0xDE,
+	0x66, 0xCC, 0xF1, 0x8D, 0x35, 0x5F, 0x2D, 0x79,
+	0xD1, 0x2C, 0x3B, 0xFF, 0x29, 0x0F, 0x13, 0xFF,
+	0x4F, 0xF1, 0x94, 0xE1, 0xD7, 0x59, 0x20, 0xD1,
+	0x21, 0x3D, 0x4F, 0xF8, 0x42, 0x27, 0xF5, 0x8C,
+	0x52, 0x4F, 0xF1, 0x41, 0x80, 0x13, 0xF3, 0x7C,
+	0x7C, 0x79, 0x7A, 0x78, 0x36, 0x65, 0xAE, 0x13,
+	0xF1, 0x40, 0x4F, 0xF1, 0x44, 0x8B, 0xF1, 0xB3,
+	0xF9, 0x3A, 0x92, 0x7A, 0x70, 0x2B, 0xFD, 0xD0,
+	0x3B, 0xF2, 0x00, 0x80, 0x3E, 0x2E, 0x46, 0x47,
+	0xFA, 0x41, 0xE2, 0x3B, 0xF7, 0xDC, 0x21, 0x8A,
+	0xA2, 0x62, 0x90, 0x3E, 0x4F, 0x50, 0x3B, 0x00,
+	0x3D, 0x39, 0x39, 0x3A, 0x3D, 0x3B, 0x3B, 0x3D,
+	0xBB, 0x3B, 0xF1, 0x2C, 0x51, 0xA0, 0xB3, 0xF5,
+	0xEE, 0x01, 0x44, 0x13, 0xF4, 0x13, 0xA2, 0xFF,
+	0x14, 0x32, 0x13, 0xF8, 0x75, 0x31, 0x77, 0x34,
+	0xFA, 0xC0, 0x3B, 0xF1, 0xF1, 0x34, 0xF3, 0xE1,
+	0xA3, 0x13, 0xF6, 0x29, 0x18, 0x03, 0x28, 0x2B,
+	0x28, 0xF3, 0x07, 0x14, 0xB2, 0xFE, 0x13, 0xFF,
+	0x3C, 0xFF, 0xEF, 0xF7, 0xC7, 0xB1, 0xB3, 0xF2,
+	0xC7, 0x31, 0x94, 0xE1, 0x40, 0xF4, 0x94, 0xE4,
+	0x4F, 0xF5, 0x13, 0xF9, 0x8B, 0xF5, 0x7E, 0xC7,
+	0xE1, 0x6F, 0x7E, 0x01, 0x7D, 0x7E, 0x7B, 0x79,
+	0x78, 0x7A, 0x76, 0x36, 0x64, 0xAF, 0x27, 0xF1,
+	0x43, 0x63, 0xF1, 0x2C, 0x3A, 0x70, 0x6D, 0x86,
+	0x9F, 0xF2, 0xDA, 0x90, 0x62, 0x77, 0xFF, 0x00,
+	0xF0, 0xE1, 0x2E, 0x2E, 0x6E, 0xE9, 0x01, 0x3A,
+	0x33, 0x48, 0x47, 0x14, 0x00, 0x4F, 0xFB, 0x6D,
+	0x6D, 0x9E, 0xA1, 0x64, 0x31, 0x08, 0x3E, 0x3D,
+	0x3D, 0x3D, 0x4D, 0xC0, 0x3A, 0x3B, 0x3E, 0x27,
+	0x40, 0x40, 0x9F, 0xF1, 0x2C, 0x2C, 0x15, 0x50,
+	0xB3, 0xF8, 0xF0, 0x42, 0xFF, 0x38, 0x50, 0x13,
+	0xC4, 0x3C, 0x82, 0x27, 0xF7, 0xDE, 0x23, 0xF2,
+	0x72, 0x4F, 0xF6, 0xA1, 0x66, 0x9B, 0x16, 0xF2,
+	0x28, 0x28, 0xA1, 0x25, 0x04, 0x20, 0x2A, 0x14,
+	0x91, 0xF5, 0xA2, 0xFF, 0x14, 0x92, 0xF2, 0xD0,
+	0x4F, 0xFF, 0x51, 0x1F, 0xEF, 0xF8, 0x4F, 0xFC,
+	0x94, 0xE1, 0x9F, 0xFB, 0xEC, 0x27, 0xF4, 0x28,
+	0x35, 0x9F, 0xF0, 0x83, 0xC8, 0x51, 0x3B, 0xF0,
+	0x7B, 0x79, 0x13, 0x76, 0x79, 0x78, 0x14, 0x00,
+	0x36, 0x38, 0x5F, 0x10, 0xFE, 0x70, 0x7B, 0x43,
+	0xEC, 0x11, 0xBE, 0x74, 0xDB, 0xF8, 0x8A, 0x90,
+	0x7C, 0xC8, 0xE0, 0xC9, 0x10, 0x3B, 0x48, 0x2E,
+	0xC7, 0x00, 0x9B, 0x31, 0x13, 0xF1, 0x48, 0x79,
+	0x44, 0xF1, 0x70, 0xB1, 0xC2, 0x43, 0x2B, 0x9F,
+	0xF0, 0x78, 0x31, 0x42, 0x42, 0x3E, 0x13, 0x90,
+	0x33, 0x40, 0x28, 0x00, 0x03, 0x8B, 0x90, 0x0C,
+	0x2B, 0x13, 0xF6, 0x4D, 0xD5, 0x7F, 0x2D, 0x4F,
+	0xF4, 0x28, 0x03, 0x14, 0xA1, 0xDA, 0xD1, 0xB3,
+	0xF8, 0x8C, 0xB0, 0xDB, 0xF4, 0xFF, 0xF3, 0x53,
+	0xDF, 0xE3, 0x2A, 0xF2, 0x2B, 0x65, 0x53, 0x91,
+	0x40, 0x76, 0xB4, 0x17, 0x63, 0xFF, 0xEB, 0x65,
+	0x1F, 0xEF, 0xF3, 0xFE, 0x42, 0x2D, 0x27, 0xF3,
+	0x40, 0x94, 0xE8, 0xB3, 0xF4, 0xE4, 0xFE, 0x70,
+	0xF1, 0xB0, 0x3B, 0xF2, 0x6D, 0x6B, 0x92, 0x95,
+	0x2D, 0x6F, 0x08, 0x6F, 0x83, 0x83, 0x86, 0x63,
+	0xF1, 0x7E, 0x7C, 0x79, 0x2D, 0x7B, 0x79, 0x00,
+	0x00, 0x78, 0x4A, 0x62, 0xDB, 0xF1, 0x43, 0xC4,
+	0x11, 0x38, 0x2A, 0x80, 0xCD, 0x50, 0x96, 0x00,
+	0xC7, 0xF8, 0x88, 0x88, 0x85, 0xD7, 0xDC, 0xE4,
+	0x13, 0xF0, 0x6E, 0xFF, 0x00, 0x45, 0x13, 0xF8,
+	0xDB, 0xF3, 0xD0, 0x90, 0xC9, 0xA0, 0x02, 0x8C,
+	0x31, 0x28, 0x42, 0x13, 0xA2, 0x3B, 0x38, 0x00,
+	0x01, 0x7F, 0x3D, 0xEF, 0x90, 0x13, 0xF9, 0xDC,
+	0x02, 0x4F, 0xF8, 0x28, 0x12, 0x3C, 0x61, 0xEE,
+	0xE0, 0xFF, 0xEF, 0xF2, 0x61, 0x74, 0xF0, 0x81,
+	0x13, 0xF5, 0xB2, 0x62, 0x8C, 0x72, 0x3E, 0xF2,
+	0xF4, 0x90, 0x73, 0x29, 0x9E, 0xF5, 0x54, 0x83,
+	0xF1, 0xF7, 0x29, 0x29, 0x63, 0xFF, 0x79, 0x0F,
+	0x92, 0xF0, 0x92, 0x2E, 0x2E, 0xDB, 0xE0, 0x6A,
+	0x6A, 0xDB, 0xF1, 0x6D, 0x7D, 0x2D, 0xA8, 0xA0,
+	0x94, 0xE2, 0xA9, 0x25, 0x13, 0xF4, 0x8B, 0xF1,
+	0x44, 0xFA, 0x92, 0x2A, 0x6E, 0x6E, 0x02, 0xD2,
+	0x6A, 0xEF, 0xF0, 0x83, 0xA0, 0x54, 0x7C, 0x13,
+	0x7C, 0x7B, 0x7D, 0x14, 0x00, 0x7A, 0x7D, 0x4A,
+	0x61, 0xEF, 0xF0, 0x3F, 0x2B, 0x45, 0xD8, 0x11,
+	0x63, 0xF3, 0xDB, 0xF5, 0xC6, 0x72, 0xE0, 0x81,
+	0x13, 0xF6, 0xFD, 0x5E, 0x71, 0xF1, 0x80, 0x3C,
+	0x10, 0x8B, 0xFA, 0xE4, 0xA0, 0xEE, 0xA1, 0x2D,
+	0xB2, 0x90, 0x80, 0x13, 0x83, 0x39, 0x3D, 0x3D,
+	0x3A, 0x3A, 0x3A, 0x3E, 0xF5, 0x13, 0xF8, 0xD9,
+	0xB6, 0x13, 0xF4, 0x3B, 0xF9, 0x2A, 0x13, 0xF2,
+	0x2D, 0x77, 0xF6, 0xFF, 0xDA, 0x32, 0x27, 0xF6,
+	0xB5, 0x80, 0x77, 0xF8, 0x9F, 0xF1, 0xB3, 0x14,
+	0x3C, 0x10, 0xB3, 0x94, 0x9F, 0xF2, 0x05, 0x29,
+	0x29, 0x8B, 0xFF, 0x8D, 0x1F, 0xF0, 0x91, 0xEF,
+	0xB0, 0xDB, 0xF6, 0x71, 0x2B, 0x63, 0x71, 0x00,
+	0x34, 0x95, 0x61, 0x3E, 0x3B, 0x41, 0xEF, 0xF4,
+	0x0D, 0x6D, 0x6C, 0x45, 0x2A, 0x13, 0x93, 0xC8,
+	0x12, 0x6C, 0xEF, 0xF0, 0x21, 0x86, 0x86, 0xB4,
+	0x52, 0x7D, 0x7D, 0x7D, 0x80, 0x3C, 0x30, 0x0C,
+	0x7A, 0x7B, 0x79, 0x3B, 0x87, 0x00, 0xEF, 0xF0,
+	0x2B, 0x46, 0x98, 0xFF, 0xC0, 0x0C, 0x7E, 0xCD,
+	0x52, 0x13, 0xFB, 0x6E, 0x88, 0x85, 0xEF, 0x14,
+	0x02, 0x9F, 0xF0, 0x72, 0x61, 0x45, 0x9A, 0xC0,
+	0x13, 0xFD, 0x8B, 0xF4, 0x3A, 0x90, 0x01, 0x0C,
+	0x3E, 0x3B, 0x3D, 0x3F, 0x3D, 0x3B, 0x13, 0xF0,
+	0x37, 0x40, 0x3F, 0x50, 0xA0, 0x3B, 0xE1, 0x2C,
+	0x63, 0xF3, 0x64, 0x36, 0x13, 0xF6, 0xFF, 0x27,
+	0xA2, 0x64, 0x54, 0x75, 0x51, 0xDE, 0x40, 0x43,
+	0xD2, 0x13, 0x02, 0x43, 0x33, 0xF3, 0x78, 0xFF,
+	0x8B, 0xF4, 0x7B, 0x23, 0x3B, 0x23, 0xEF, 0x83,
+	0x79, 0x33, 0xB5, 0xB4, 0x9F, 0xFF, 0xA1, 0x1F,
+	0xE7, 0x4F, 0xFD, 0xA8, 0xD0, 0x13, 0x72, 0x3D,
+	0x41, 0xA8, 0xE0, 0xA9, 0x04, 0x13, 0xF3, 0x1E,
+	0x6B, 0x6C, 0x45, 0xEF, 0xD9, 0xEF, 0xF1, 0x13,
+	0xF3, 0x8B, 0xE0, 0x7A, 0x13, 0x7B, 0x7A, 0x79,
+	0x50, 0x40, 0x7D, 0x7E, 0xFE, 0xF0, 0xC7, 0xA1,
+	0xF1, 0x0F, 0xC1, 0x9F, 0xF3, 0xEF, 0xF8, 0xC7,
+	0xE2, 0x88, 0x88, 0x6B, 0x28, 0x11, 0xF0, 0x13,
+	0xF2, 0xEB, 0xA1, 0x13, 0xFF, 0x13, 0xF8, 0x3F,
+	0x3F, 0x3D, 0x40, 0x03, 0x3B, 0x40, 0x3F, 0x40,
+	0x3D, 0x3A, 0x64, 0x81, 0x63, 0x93, 0xFF, 0xEF,
+	0xF1, 0xDB, 0xD4, 0x61, 0xC4, 0x63, 0xE2, 0x4C,
+	0x97, 0x64, 0x32, 0xEF, 0xFA, 0xC7, 0xF6, 0xF7,
+	0xDF, 0x62, 0xF1, 0x84, 0xA2, 0xE3, 0xDC, 0x00,
+	0x2C, 0xA0, 0x30, 0xB3, 0xF2, 0x90, 0xA1, 0xFC,
+	0xF1, 0xD8, 0x63, 0xFF, 0xB4, 0xFF, 0xDB, 0xFF,
+	0xA8, 0xD9, 0xA9, 0x03, 0x6C, 0x6C, 0xDB, 0xFF,
+	0x51, 0xDB, 0xF1, 0x2D, 0xF2, 0x71, 0xC2, 0x24,
+	0x6B, 0x27, 0xF1, 0xB4, 0x55, 0x20, 0x7D, 0x7B,
+	0x13, 0xD1, 0x7B, 0x7D, 0x80, 0x80, 0x80, 0xFF,
+	0x23, 0x10, 0x77, 0xA1, 0x13, 0xFF, 0x4F, 0xD2,
+	0xDC, 0x12, 0x14, 0x01, 0x27, 0xF1, 0x8C, 0x61,
+	0xFB, 0xA0, 0x00, 0xCD, 0xE1, 0xF2, 0x32, 0x8B,
+	0xF7, 0x27, 0xF2, 0x2C, 0xDC, 0x30, 0x13, 0xB0,
+	0x53, 0x40, 0x19, 0x21, 0x40, 0x28, 0x70, 0x40,
+	0x2C, 0xDB, 0x92, 0x63, 0xFB, 0xFF, 0x00, 0x9C,
+	0x3D, 0x88, 0xF4, 0x70, 0xB6, 0x77, 0xEF, 0xF2,
+	0xCB, 0x94, 0xB7, 0xB5, 0x4E, 0x64, 0xFF, 0x7A,
+	0x32, 0x27, 0xF2, 0xB5, 0x14, 0x50, 0x52, 0xB4,
+	0x40, 0x3B, 0xFF, 0xC8, 0xFF, 0xB3, 0xF9, 0xE7,
+	0xEF, 0xF4, 0x6C, 0x97, 0xA8, 0xF2, 0x69, 0x6C,
+	0x13, 0xF1, 0xD7, 0x40, 0xDB, 0xF0, 0x7C, 0x2D,
+	0x13, 0xA4, 0xB3, 0xD1, 0xEF, 0xF2, 0x3B, 0xE0,
+	0xF0, 0x50, 0x7B, 0x7F, 0x20, 0x7D, 0x7F, 0x64,
+	0x00, 0x7B, 0x7D, 0x7D, 0x7A, 0x7A, 0x3B, 0x7A,
+	0x7E, 0x13, 0xF1, 0xE5, 0x60, 0xFE, 0xC0, 0x82,
+	0xF5, 0x72, 0x13, 0xFC, 0xED, 0xDC, 0x21, 0x64,
+	0x30, 0xDB, 0xF0, 0x2D, 0x92, 0x00, 0x13, 0xF3,
+	0x47, 0x3C, 0xD3, 0xF8, 0xFD, 0x10, 0xDB, 0xF1,
+	0xFD, 0xF0, 0x9F, 0xF1, 0x4F, 0xF1, 0x41, 0x3F,
+	0x41, 0x2F, 0x41, 0x40, 0x8B, 0xB1, 0x3F, 0x00,
+	0x00, 0x13, 0xFC, 0x4A, 0x54, 0xB0, 0x07, 0xFF,
+	0x8D, 0x56, 0xFF, 0xD4, 0xB2, 0xF7, 0xEF, 0xF4,
+	0x13, 0x87, 0xB3, 0xF1, 0x29, 0xB6, 0x04, 0xB4,
+	0xFE, 0xDB, 0xF0, 0x9F, 0xE5, 0xC8, 0x21, 0xB9,
+	0x51, 0xDB, 0xFF, 0xDD, 0x1F, 0xDB, 0xFB, 0x6D,
+	0xFF, 0x13, 0xF3, 0x7D, 0x76, 0xFC, 0xD0, 0x13,
+	0xF0, 0x14, 0x01, 0x27, 0xF3, 0xA2, 0x83, 0xDE,
+	0xE4, 0xC5, 0x27, 0xF1, 0x50, 0x51, 0x7E, 0x7B,
+	0x7D, 0x28, 0x11, 0x80, 0x50, 0x50, 0x5F, 0x7F,
+	0x50, 0xB0, 0x3F, 0xF8, 0xE2, 0xB3, 0xF1, 0xC7,
+	0xE2, 0xC7, 0xF8, 0x3B, 0xF2, 0xBF, 0xF0, 0x00,
+	0x84, 0xB3, 0xF3, 0x68, 0xE0, 0x4F, 0xD0, 0x63,
+	0xF1, 0x13, 0xF6, 0xD7, 0x44, 0xD4, 0x63, 0xF1,
+	0x8C, 0x31, 0x41, 0x00, 0x02, 0x42, 0x14, 0x40,
+	0x40, 0x41, 0x3F, 0x40, 0x3F, 0x27, 0xF4, 0x0F,
+	0x87, 0xB1, 0x50, 0xAF, 0x37, 0x5F, 0x86, 0x3B,
+	0x57, 0xFD, 0x4F, 0xD4, 0x9F, 0xF6, 0xC7, 0xFA,
+	0xDA, 0x12, 0xEF, 0x10, 0xB3, 0xF1, 0x2D, 0xCB,
+	0xC0, 0xFF, 0x50, 0x03, 0x78, 0xC4, 0xF1, 0xC3,
+	0xEF, 0xFF, 0xF1, 0x1F, 0xEF, 0xFD, 0xA8, 0xD1,
+	0x94, 0xA6, 0x77, 0x69, 0x00, 0x01, 0x13, 0xF4,
+	0x27, 0xF5, 0x6C, 0x28, 0x46, 0x27, 0xF5, 0x3B,
+	0xF0, 0x00, 0x80, 0x7B, 0x80, 0x7F, 0x7B, 0x80,
+	0x7D, 0x7A, 0xB8, 0x64, 0x91, 0x84, 0x13, 0xF5,
+	0xFB, 0xC4, 0x13, 0xFC, 0x2E, 0x2E, 0x84, 0xFF,
+	0xF1, 0x30, 0x27, 0xF1, 0x14, 0x00, 0x13, 0xF3,
+	0xFF, 0x00, 0x13, 0xFF, 0x63, 0xF1, 0xE0, 0xF0,
+	0x43, 0x3D, 0xA0, 0x30, 0x42, 0x40, 0x42, 0x42,
+	0x00, 0x30, 0x3B, 0xF4, 0x7F, 0x0C, 0xEF, 0xE7,
+	0x13, 0x2B, 0xEF, 0xA1, 0xC3, 0xC2, 0x89, 0x04,
+	0x9E, 0xE4, 0xB6, 0x21, 0xE8, 0xEF, 0xF4, 0x8B,
+	0xA2, 0x62, 0x63, 0x2A, 0x9E, 0x67, 0x2B, 0x2B,
+	0x27, 0x82, 0x02, 0xE2, 0x2C, 0x2B, 0x27, 0x29,
+	0x2C, 0xC8, 0x53, 0x28, 0xFE, 0xB8, 0x82, 0x9E,
+	0x8E, 0x01, 0x0F, 0xC7, 0xF5, 0xBF, 0x72, 0x3B,
+	0xF7, 0x59, 0x12, 0x69, 0x1F, 0x69, 0x6A, 0x6A,
+	0x00, 0x31, 0x3C, 0x12, 0x4F, 0xF2, 0xB3, 0xE4,
+	0x28, 0x23, 0xC0, 0x4F, 0xF2, 0x3B, 0xF1, 0x84,
+	0x80, 0x7F, 0x80, 0x80, 0x7B, 0x40, 0x7E, 0x00,
+	0x00, 0x80, 0x7D, 0x7F, 0x83, 0x84, 0x46, 0xFB,
+	0xEA, 0x60, 0x4F, 0xF2, 0xA8, 0x74, 0x63, 0xF9,
+	0x76, 0xD0, 0x2E, 0x6A, 0x30, 0x77, 0xF3, 0xFC,
+	0xFE, 0x00, 0x27, 0xF2, 0x50, 0x51, 0x27, 0xFA,
+	0x17, 0xD3, 0x4F, 0xF0, 0x43, 0x44, 0x02, 0x44,
+	0x3E, 0x43, 0x42, 0x43, 0x40, 0x13, 0xF0, 0x40,
+	0x3F, 0x41, 0x42, 0x9A, 0x43, 0x05, 0xD1, 0xC5,
+	0x32, 0xF0, 0x68, 0xF0, 0xF5, 0xC9, 0x33, 0xFE,
+	0x62, 0x31, 0xB6, 0x27, 0xF2, 0x11, 0x9F, 0xF3,
+	0xA0, 0xC3, 0x8D, 0x34, 0x4F, 0xF6, 0x29, 0xFE,
+	0x52, 0x60, 0x8D, 0x07, 0x51, 0xB7, 0xBB, 0x40,
+	0x13, 0xFF, 0x15, 0x1F, 0x63, 0xFC, 0x6D, 0xFF,
+	0xBC, 0xD0, 0xB9, 0xA3, 0x27, 0xB2, 0x28, 0x00,
+	0x14, 0x20, 0x13, 0xF8, 0xCA, 0x51, 0x4F, 0xD2,
+	0xD1, 0x63, 0xF4, 0x4F, 0xF1, 0x85, 0x14, 0x01,
+	0x84, 0x83, 0x83, 0xEE, 0xC1, 0xCD, 0xF4, 0x11,
+	0xFE, 0x60, 0x6C, 0x6B, 0xD8, 0x11, 0xA5, 0x51,
+	0x2A, 0xDB, 0xF5, 0xFF, 0xC6, 0x60, 0x12, 0x91,
+	0x8B, 0x83, 0x8B, 0xF4, 0x50, 0x03, 0x13, 0xFE,
+	0xB3, 0xE1, 0x8B, 0xF2, 0x08, 0x44, 0x41, 0x44,
+	0x43, 0x13, 0xD0, 0x40, 0x42, 0x41, 0xDD, 0x14,
+	0x50, 0x13, 0xF3, 0x2D, 0x19, 0xD2, 0x13, 0x18,
+	0xFF, 0x31, 0x2A, 0xF0, 0xF3, 0xFF, 0x9B, 0xB2,
+	0xA1, 0xC5, 0xC9, 0x91, 0xB6, 0x15, 0x63, 0xF7,
+	0x67, 0x76, 0x4F, 0xF6, 0xF3, 0xC1, 0xB3, 0x62,
+	0xE1, 0x2C, 0xDC, 0xC2, 0xF1, 0x91, 0x2A, 0x2A,
+	0xCF, 0x04, 0x27, 0xFF, 0xF7, 0x29, 0x1F, 0x77,
+	0xFD, 0xA8, 0xD4, 0x13, 0xB4, 0x6A, 0x13, 0xE1,
+	0x14, 0x02, 0x27, 0xF3, 0xFB, 0xF2, 0x11, 0x9A,
+	0x23, 0x14, 0x60, 0x4F, 0xF5, 0xD4, 0xE5, 0x40,
+	0xB4, 0x70, 0x00, 0x10, 0x7F, 0x81, 0x13, 0xF5,
+	0x52, 0x92, 0x4F, 0xF6, 0x3A, 0x63, 0x13, 0xFB,
+	0x13, 0xC1, 0x50, 0x32, 0xF0, 0xE3, 0x46, 0x0E,
+	0x44, 0x13, 0xF5, 0x00, 0x01, 0x3E, 0x44, 0x40,
+	0x44, 0x5F, 0x3F, 0x14, 0x80, 0x46, 0xC3, 0xA2,
+	0x79, 0x50, 0x13, 0xFB, 0xD8, 0xC2, 0x27, 0x32,
+	0xBF, 0xF1, 0x72, 0x2A, 0xB5, 0xC4, 0x8E, 0x46,
+	0xB4, 0x32, 0xDB, 0xC0, 0x8B, 0xF2, 0x2A, 0x75,
+	0x5F, 0x2C, 0x27, 0xF0, 0x27, 0x77, 0x63, 0x8E,
+	0xB1, 0xF3, 0x40, 0x8C, 0xB1, 0xE2, 0x70, 0xFF,
+	0xF1, 0xB3, 0xF1, 0x51, 0x00, 0xB0, 0x3B, 0xFF,
+	0x3D, 0x1F, 0x77, 0xFF, 0x4F, 0x86, 0x13, 0xA2,
+	0xFF, 0x28, 0x01, 0x64, 0x30, 0xB3, 0xF2, 0x77,
+	0xF3, 0xFE, 0x22, 0x8B, 0xF3, 0xC9, 0x30, 0xF0,
+	0x50, 0x40, 0x81, 0x13, 0x62, 0x7C, 0x81, 0x81,
+	0x81, 0x80, 0x80, 0x1F, 0x81, 0x80, 0x7F, 0x13,
+	0xFB, 0x77, 0xF6, 0x3A, 0x63, 0x27, 0x76, 0x13,
+	0x17, 0xF1, 0x13, 0xF6, 0xF2, 0xF3, 0xFD, 0x12,
+	0xB3, 0xF4, 0x45, 0x45, 0x44, 0x00, 0x20, 0x1F,
+	0x42, 0x44, 0x46, 0x00, 0x02, 0x9F, 0x92, 0x3B,
+	0xF2, 0xC5, 0x96, 0xEC, 0xB1, 0xFF, 0x74, 0xC2,
+	0xB1, 0x77, 0xC7, 0x12, 0x00, 0x12, 0x3C, 0x48,
+	0x9F, 0xF4, 0xDD, 0x13, 0xC8, 0x62, 0xFF, 0x26,
+	0x94, 0xF3, 0x50, 0xF4, 0xD0, 0x4F, 0xF1, 0x8D,
+	0x03, 0x4F, 0x81, 0xE0, 0xF6, 0x4F, 0xFF, 0xFE,
+	0x51, 0x1F, 0xEF, 0xF2, 0x61, 0x33, 0x13, 0xF7,
+	0x3B, 0x52, 0x4F, 0xB2, 0x14, 0x34, 0x6C, 0x5C,
+	0x6C, 0xE9, 0x90, 0x6C, 0xF2, 0x01, 0x00, 0x81,
+	0x27, 0xFC, 0x83, 0x83, 0x00, 0x7E, 0x7D, 0x82,
+	0x82, 0x7E, 0x7E, 0x82, 0x80, 0x3F, 0x82, 0x82,
+	0x00, 0x30, 0x27, 0xF0, 0x27, 0xA0, 0xFF, 0xD0,
+	0xB6, 0xD3, 0x13, 0xF8, 0xFD, 0x13, 0x68, 0x27,
+	0xF7, 0x4F, 0xFF, 0x3A, 0x41, 0xC7, 0xF3, 0x13,
+	0x73, 0x45, 0xE9, 0x44, 0xFF, 0xA5, 0x61, 0x4F,
+	0xF4, 0x9F, 0xFA, 0x24, 0xC0, 0x87, 0xA4, 0x27,
+	0xF8, 0x50, 0x84, 0x8B, 0xF9, 0xC2, 0xF3, 0x72,
+	0x65, 0x44, 0x2B, 0x2A, 0x25, 0x27, 0x26, 0x72,
+	0x27, 0x2F, 0x27, 0x27, 0x00, 0x40, 0x26, 0x00,
+	0x00, 0x27, 0xD2, 0xCC, 0x10, 0xE0, 0xF1, 0xFF,
+	0x4F, 0xD1, 0x27, 0xFF, 0x64, 0xFF, 0xF0, 0xA3,
+	0x89, 0x22, 0xC7, 0xF2, 0x8B, 0xF1, 0x4F, 0x92,
+	0xDF, 0x13, 0x96, 0x50, 0x64, 0x6C, 0x13, 0xA1,
+	0x63, 0xF0, 0x14, 0x11, 0xCA, 0xD3, 0x13, 0xF8,
+	0x00, 0x84, 0x84, 0x7E, 0x83, 0x82, 0x83, 0x82,
+	0x80, 0x87, 0x13, 0xF0, 0x80, 0x81, 0x82, 0x82,
+	0x13, 0xF9, 0x91, 0x00, 0x26, 0x56, 0xFC, 0x3B,
+	0x05, 0x3B, 0xFA, 0x14, 0x03, 0x8B, 0xFC, 0x3B,
+	0xF5, 0xFC, 0xD4, 0x46, 0x45, 0x0F, 0x40, 0x43,
+	0x43, 0x43, 0xF1, 0x40, 0xC5, 0x71, 0x27, 0xF6,
+	0xB3, 0xF8, 0xFF, 0x27, 0xF7, 0x14, 0xB6, 0xB6,
+	0x0B, 0xDB, 0xF2, 0xC5, 0x73, 0xA2, 0x12, 0x63,
+	0xF0, 0x61, 0xF0, 0x9F, 0xAE, 0x54, 0x2B, 0x28,
+	0xDC, 0x82, 0x63, 0x44, 0x4F, 0xB3, 0xF5, 0x00,
+	0x63, 0xFF, 0xDF, 0x78, 0xFF, 0x77, 0xFF, 0x2B,
+	0x4F, 0xA4, 0x8B, 0xA2, 0x76, 0xD4, 0x79, 0xC4,
+	0x63, 0xF3, 0xF7, 0x9F, 0xE5, 0xEF, 0xF1, 0x01,
+	0x30, 0x77, 0xF1, 0x81, 0x63, 0xC0, 0xC7, 0xA0,
+	0x27, 0xA0, 0xDF, 0x14, 0x61, 0x13, 0xF2, 0x6D,
+	0xEC, 0x11, 0xEF, 0xF1, 0x9F, 0xF6, 0x3B, 0x29,
+	0x63, 0xF6, 0xFD, 0x50, 0x65, 0x13, 0xFF, 0x3B,
+	0xF3, 0x50, 0x02, 0x3B, 0xE0, 0xF5, 0x00, 0x2B,
+	0x7D, 0x71, 0xFF, 0xEF, 0x40, 0xF0, 0x51, 0xF0,
+	0x02, 0xB2, 0xA2, 0xB3, 0x63, 0x63, 0xF4, 0x14,
+	0xB7, 0xDE, 0x92, 0xFB, 0xEE, 0xF2, 0xA2, 0x95,
+	0xDC, 0x21, 0x79, 0xE3, 0x51, 0xC2, 0x2D, 0xF2,
+	0x91, 0x62, 0x62, 0xF7, 0xDC, 0x10, 0xF0, 0xB1,
+	0xC9, 0x01, 0x78, 0xB0, 0x2D, 0x63, 0xA4, 0x64,
+	0x50, 0x77, 0xFF, 0xFF, 0x8C, 0xFF, 0x27, 0xF5,
+	0xFB, 0x72, 0xC5, 0xD5, 0x62, 0x47, 0x12, 0xF9,
+	0x4F, 0xF6, 0xEB, 0xE1, 0xE0, 0xFF, 0xD2, 0x13,
+	0xF6, 0x00, 0x01, 0x7E, 0x84, 0x80, 0x80, 0x84,
+	0x5F, 0x7F, 0x14, 0x91, 0x83, 0x13, 0xF6, 0x9F,
+	0xFA, 0x13, 0xD9, 0x00, 0xEC, 0x77, 0xFF, 0xB3,
+	0x3B, 0xF8, 0x45, 0x4F, 0xC0, 0x13, 0xE0, 0x46,
+	0x44, 0x13, 0xF6, 0xDB, 0xF6, 0xFF, 0xFE, 0xD1,
+	0x3B, 0x43, 0x77, 0xF3, 0xF1, 0x52, 0x3C, 0x08,
+	0x2A, 0x97, 0xEF, 0xF6, 0xDF, 0x86, 0xEE, 0xF2,
+	0xE6, 0x76, 0xB2, 0x3C, 0x50, 0x27, 0x28, 0xF0,
+	0x16, 0xD4, 0x54, 0x94, 0x2A, 0xFF, 0x9F, 0xFF,
+	0xA1, 0x1F, 0xEF, 0xF4, 0x75, 0x83, 0x26, 0xA3,
+	0x9E, 0x38, 0xA1, 0x85, 0x00, 0x03, 0xD8, 0xB0,
+	0xA4, 0xF0, 0xB1, 0x6B, 0x51, 0x10, 0xC7, 0xF5,
+	0x85, 0x85, 0x84, 0x90, 0x00, 0x20, 0x82, 0x7F,
+	0x13, 0xE1, 0x84, 0x84, 0x83, 0x84, 0xFE, 0x4F,
+	0xF5, 0x9F, 0xFB, 0x27, 0xFF, 0x00, 0x2D, 0x3B,
+	0xFB, 0xF4, 0x21, 0x63, 0x73, 0x46, 0xFB, 0x3C,
+	0x10, 0x63, 0xF4, 0x77, 0xF3, 0xDA, 0xB4, 0xF0,
+	0x36, 0x2D, 0x27, 0xF5, 0x64, 0xB2, 0xFF, 0xF1,
+	0x42, 0x51, 0x07, 0xDD, 0x92, 0x13, 0xF6, 0xA3,
+	0x45, 0x13, 0xF7, 0x14, 0x47, 0xF1, 0x20, 0x3F,
+	0x28, 0x28, 0xDD, 0x24, 0x63, 0xFF, 0xB4, 0xCF,
+	0x63, 0xF8, 0x25, 0x32, 0xFB, 0x80, 0xE1, 0xF0,
+	0x94, 0x12, 0xE4, 0x00, 0x0E, 0x6B, 0x6B, 0x6A,
+	0x2E, 0xC7, 0xF5, 0x98, 0x13, 0xF8, 0x81, 0x85,
+	0x00, 0x01, 0x00, 0x52, 0x84, 0x84, 0x85, 0xBF,
+	0x13, 0xF0, 0x2C, 0x3B, 0xF3, 0x02, 0xE0, 0xAA,
+	0x70, 0x12, 0x9F, 0x28, 0xEF, 0x4F, 0xFF, 0xFF,
+	0x63, 0xF8, 0x3B, 0xD0, 0x50, 0x41, 0x13, 0xF3,
+	0x64, 0x54, 0x61, 0xD4, 0x4F, 0xFD, 0xC5, 0x81,
+	0xFF, 0xB3, 0xC9, 0xB3, 0xE4, 0xDB, 0xF9, 0x53,
+	0x25, 0x13, 0xFA, 0x28, 0x97, 0x4F, 0xF5, 0xEC,
+	0x71, 0xFF, 0xC7, 0xFF, 0xC9, 0x1F, 0xF0, 0x61,
+	0xFE, 0x11, 0xEC, 0xA1, 0xE4, 0x0C, 0xF8, 0x71,
+	0xD1, 0x01, 0xFC, 0x27, 0xD4, 0xF0, 0x80, 0x13,
+	0xF2, 0xDE, 0x84, 0x4F, 0xF7, 0x13, 0xD0, 0x86,
+	0x81, 0x03, 0x86, 0x86, 0x85, 0x86, 0x85, 0x80,
+	0x14, 0x82, 0xFE, 0x10, 0x3F, 0x6B, 0x6C, 0x9A,
+	0x60, 0xEF, 0xB0, 0x45, 0xC1, 0x26, 0x9F, 0x3C,
+	0xEF, 0x63, 0xFF, 0xFF, 0x63, 0xF3, 0x13, 0xF6,
+	0xFE, 0x71, 0x13, 0xF4, 0x50, 0x52, 0x27, 0x05,
+	0x8A, 0x63, 0x63, 0x39, 0xFF, 0x78, 0x06, 0x27,
+	0xC6, 0xEF, 0xF9, 0xB4, 0x16, 0xB2, 0x35, 0x8B,
+	0x08, 0x8C, 0xE2, 0x4F, 0xD3, 0xFF, 0xA0, 0x23,
+	0xDB, 0xFF, 0xDD, 0x1F, 0xF0, 0x21, 0xC2, 0x71,
+	0xC2, 0xB0, 0x3A, 0x60, 0xF4, 0x40, 0xFF, 0xE4,
+	0x21, 0xE4, 0x33, 0x42, 0x51, 0x57, 0x40, 0x77,
+	0x51, 0x29, 0xA3, 0xEF, 0xE0, 0x27, 0xFB, 0xD0,
+	0xF1, 0xA0, 0x3B, 0xF2, 0x86, 0x00, 0x00, 0x81,
+	0x86, 0x81, 0x80, 0xFF, 0x14, 0x40, 0x3C, 0xB0,
+	0x72, 0x63, 0xEF, 0xF5, 0x13, 0xFF, 0x50, 0xEF,
+	0x63, 0xFF, 0x13, 0xF5, 0xBF, 0xDA, 0x42, 0x46,
+	0xF1, 0x53, 0x4F, 0xF8, 0x9F, 0x74, 0xB3, 0x65,
+	0xC7, 0xF1, 0xD9, 0x97, 0xFF, 0xDB, 0xF8, 0xDE,
+	0x05, 0x4F, 0xF9, 0xDB, 0x94, 0x26, 0xD9, 0x64,
+	0x73, 0xF5, 0x76, 0x65, 0x83, 0x75, 0x2C, 0xEF,
+	0xFF, 0xF1, 0x0F, 0xEF, 0xF9, 0x6B, 0xA8, 0xF1,
+	0x2A, 0xFD, 0x70, 0x9F, 0xE4, 0xD6, 0x2C, 0x2A,
+	0x93, 0x41, 0x4E, 0xE3, 0xEF, 0x33, 0x27, 0xF2,
+	0x3B, 0xFD, 0x37, 0x86, 0x84, 0x14, 0x01, 0x14,
+	0x40, 0x6B, 0x00, 0x22, 0xEF, 0xF6, 0x13, 0xFF,
+	0xFF, 0x63, 0xFF, 0x50, 0x3D, 0xEC, 0xC3, 0x9F,
+	0xF5, 0x3B, 0x72, 0xEC, 0x85, 0xC7, 0x82, 0xDB,
+	0xF1, 0xDF, 0x4F, 0xFB, 0xFF, 0x80, 0x2A, 0xDA,
+	0x53, 0x8C, 0xCD, 0xB3, 0xFE, 0xC5, 0xD7, 0xDA,
+	0x36, 0xFF, 0x8B, 0x17, 0x14, 0x08, 0x28, 0x84,
+	0xC6, 0x8E, 0x01, 0x0F, 0xF0, 0x02, 0xF6, 0xB9,
+	0x13, 0x12, 0xFF, 0x13, 0xFA, 0xEF, 0x50, 0x51,
+	0x87, 0x13, 0xF3, 0xDC, 0x21, 0xDB, 0xF7, 0x27,
+	0xD1, 0x28, 0x22, 0xFF, 0x13, 0xE0, 0x14, 0xA0,
+	0xC2, 0x71, 0x13, 0xFF, 0x4F, 0xFF, 0x63, 0xFF,
+	0x66, 0xC2, 0xF0, 0x52, 0xFF, 0x13, 0xF8, 0x77,
+	0xB1, 0xB3, 0xF4, 0x3B, 0xF6, 0x60, 0x55, 0xEC,
+	0xC7, 0x3B, 0x28, 0xC8, 0xC3, 0xFF, 0xA0, 0x59,
+	0xB9, 0x44, 0x12, 0x0B, 0x13, 0xCB, 0x28, 0x0B,
+	0x28, 0xB4, 0x13, 0xFF, 0x15, 0x1F, 0xFE, 0x13,
+	0xF2, 0x43, 0xE9, 0xBA, 0x62, 0xF6, 0x85, 0x13,
+	0xF4, 0x8D, 0xD7, 0x27, 0xFF, 0x6F, 0x37, 0x6F,
+	0x87, 0x27, 0xD3, 0x72, 0x62, 0x47, 0x00, 0x20,
+	0x27, 0xF5, 0x6E, 0xB3, 0xFF, 0x4F, 0xFF, 0x8C,
+	0xEF, 0x9F, 0xF8, 0x34, 0x63, 0xEF, 0xF4, 0x9C,
+	0x13, 0x28, 0x14, 0x27, 0x92, 0xFF, 0x8B, 0xF3,
+	0x3C, 0x13, 0xEE, 0x37, 0xB3, 0x3C, 0x9E, 0x76,
+	0x11, 0x2F, 0x3A, 0x48, 0x62, 0xF6, 0xB8, 0xA0,
+	0x83, 0x29, 0xA1, 0x51, 0x83, 0x23, 0xB3, 0xC1,
+	0x26, 0x28, 0x2C, 0xFF, 0xC7, 0xFF, 0x29, 0x0F,
+	0xF0, 0xB2, 0xF8, 0xF8, 0x27, 0xF1, 0xE5, 0x60,
+	0x09, 0x86, 0x3B, 0xF3, 0xF8, 0xDB, 0x34, 0xEF,
+	0xA0, 0x77, 0xF2, 0xB5, 0x12, 0xDB, 0xF5, 0x0C,
+	0x0C, 0x87, 0x67, 0x47, 0x00, 0x02, 0x9E, 0x84,
+	0x2E, 0x2E, 0x13, 0xF8, 0xFE, 0x61, 0x8A, 0x9F,
+	0xFF, 0xA0, 0xEF, 0xC7, 0xFF, 0xEF, 0xF2, 0x40,
+	0x24, 0xDB, 0xF5, 0x3B, 0xF3, 0x15, 0x54, 0x4F,
+	0x05, 0xFF, 0x8B, 0x83, 0x9B, 0x47, 0x4C, 0x78,
+	0x01, 0x1F, 0x13, 0xFA, 0x63, 0x65, 0xA2, 0x71,
+	0xE1, 0x41, 0xC7, 0x1B, 0xC5, 0xF1, 0x62, 0x2A,
+	0x2A, 0x2C, 0x9F, 0xFF, 0x3D, 0x0F, 0x3B, 0xF4,
+	0xFF, 0xF7, 0xF8, 0x13, 0xF1, 0xE5, 0xA6, 0x4F,
+	0xF6, 0xC7, 0x75, 0x4F, 0xF5, 0xDB, 0xF1, 0xFE,
+	0x31, 0x62, 0x2C, 0xEA, 0xA0, 0xED, 0x35, 0x2B,
+	0x44, 0x42, 0x00, 0x00, 0x44, 0xFF, 0xFE, 0x13,
+	0x13, 0xF4, 0xFB, 0xB2, 0x9E, 0xBF, 0x9F, 0xFF,
+	0xDB, 0xFF, 0xDC, 0x43, 0xD8, 0xA8, 0xFB, 0xEF,
+	0xF5, 0xDD, 0x63, 0x13, 0x84, 0xD7, 0xA2, 0x5F,
+	0xB3, 0x44, 0x00, 0x11, 0xCB, 0x12, 0xFF, 0x14,
+	0x4E, 0x28, 0x9F, 0xB5, 0xD2, 0x00, 0x26, 0xDC,
+	0x93, 0xC8, 0xF5, 0xEF, 0xD1, 0x77, 0xFF, 0xFF,
+	0x50, 0xDF, 0x4F, 0xFE, 0x27, 0xF4, 0xA8, 0x60,
+	0xFA, 0x24, 0x63, 0xF3, 0x9F, 0x25, 0x13, 0xFA,
+	0xEF, 0x13, 0x91, 0x13, 0xF3, 0x13, 0x74, 0x46,
+	0x72, 0x64, 0xFE, 0x11, 0xD6, 0x60, 0xB3, 0xFC,
+	0xFF, 0x9F, 0xFF, 0xB3, 0xFF, 0x27, 0xFF, 0x25,
+	0xBA, 0xDB, 0x92, 0xF1, 0x70, 0x4A, 0x8F, 0x4B,
+	0xAF, 0xFB, 0x4C, 0xCF, 0xEE, 0x81, 0x3A, 0x16,
+	0x99, 0xD1, 0x64, 0xB6, 0x29, 0x8C, 0xB5, 0x65,
+	0x62, 0xEF, 0x3C, 0x70, 0x9B, 0x81, 0xDD, 0x70,
+	0x28, 0x63, 0xFF, 0x65, 0x1F, 0x63, 0xF5, 0xE4,
+	0x15, 0xDB, 0x63, 0xF5, 0x3B, 0xF6, 0x2D, 0x77,
+	0xF2, 0xEF, 0x45, 0x6A, 0x65, 0xE6, 0x8A, 0x14,
+	0xFF, 0xFE, 0x90, 0x72, 0x5A, 0xFC, 0x10, 0xC3,
+	0xB1, 0xD8, 0x13, 0x94, 0x52, 0xC6, 0x9F, 0xDC,
+	0xEF, 0xFF, 0x4F, 0xF7, 0x27, 0xFF, 0x4C, 0x7B,
+	0xFF, 0x31, 0x4D, 0x8F, 0x27, 0x71, 0x2F, 0xB1,
+	0x00, 0x53, 0x3F, 0x45, 0x45, 0x13, 0x3F, 0xAD,
+	0x5A, 0x99, 0xD2, 0xDC, 0x05, 0xB4, 0xE5, 0xF0,
+	0xD4, 0xFF, 0x78, 0x74, 0xF1, 0xB1, 0x77, 0xFF,
+	0x79, 0x1F, 0x77, 0xFF, 0xE5, 0xE5, 0x14, 0xD6,
+	0x13, 0xF8, 0xFF, 0xC7, 0xF0, 0xE7, 0xD6, 0x13,
+	0xFA, 0xFE, 0x02, 0x36, 0x77, 0x27, 0xF2, 0x9F,
+	0xFF, 0xEF, 0xFF, 0xCF, 0xDB, 0x41, 0xEA, 0x63,
+	0x2A, 0x2A, 0xDB, 0xF9, 0x70, 0xCF, 0x4B, 0xAE,
+	0x88, 0xC6, 0x28, 0x45, 0x45, 0x13, 0xC1, 0x41,
+	0x00, 0x03, 0x45, 0x45, 0x46, 0x79, 0x47, 0xD3,
+	0x8F, 0xC1, 0x28, 0x8C, 0x25, 0xEF, 0xF5, 0x27,
+	0x27, 0x52, 0x81, 0xBF, 0x53, 0x17, 0x2A, 0x50,
+	0xD3, 0x13, 0xFF, 0x8C, 0xDF, 0x8B, 0xFB, 0xBC,
+	0xB1, 0x9F, 0xF1, 0xE7, 0xF9, 0xE4, 0x4F, 0xF7,
+	0xDB, 0x12, 0x6D, 0x6D, 0x79, 0xE8, 0x13, 0xFB,
+	0x72, 0x55, 0xFF, 0x72, 0x64, 0x9A, 0x12, 0x37,
+	0xC5, 0xB3, 0xFF, 0x13, 0x14, 0xEA, 0x91, 0x83,
+	0x1F, 0x84, 0x3C, 0x5F, 0x45, 0x00, 0x00, 0x43,
+	0x00, 0x00, 0x4D, 0x53, 0x4D, 0x6A, 0x60, 0x03,
+	0xB0, 0xB3, 0xFC, 0x13, 0xF0, 0x13, 0x6F, 0x26,
+	0xCA, 0x27, 0x46, 0x79, 0x27, 0x3B, 0x50, 0x27,
+	0x27, 0xE6, 0xC7, 0x52, 0xB4, 0xA4, 0xF0, 0x74,
+	0x2B, 0x2C, 0xB3, 0x90, 0x48, 0x11, 0x2B, 0x7F,
+	0x2B, 0x9F, 0xFF, 0xA1, 0x1F, 0x9F, 0xF5, 0xD1,
+	0x52, 0x12, 0x09, 0x94, 0xB3, 0xB3, 0xF5, 0xFF,
+	0xF8, 0xC2, 0x88, 0xD2, 0x83, 0xB4, 0x27, 0xF8,
+	0xBE, 0x9A, 0xD6, 0x75, 0xB3, 0xF5, 0xE7, 0xB1,
+	0xF8, 0x13, 0x38, 0x85, 0x2F, 0x97, 0x6F, 0x61,
+	0x18, 0x13, 0xC1, 0x41, 0x41, 0x40, 0xFF, 0x00,
+	0x04, 0x4C, 0xFF, 0x39, 0x6F, 0x00, 0x7E, 0xB3,
+	0x36, 0x79, 0xEB, 0x26, 0x02, 0x14, 0x10, 0xFF,
+	0x27, 0xD1, 0xB4, 0xD1, 0x4F, 0x80, 0x14, 0x80,
+	0xB8, 0xE3, 0xF6, 0x02, 0xEB, 0xD0, 0xB3, 0xFF,
+	0xFF, 0xB5, 0x1F, 0x63, 0xFB, 0xCF, 0xD0, 0xC7,
+	0x11, 0x94, 0x07, 0x78, 0xD5, 0xA1, 0xE9, 0xE5,
+	0x84, 0xFF, 0xFE, 0x32, 0xAE, 0x93, 0xD4, 0xC2,
+	0xF9, 0xB6, 0x27, 0xF6, 0xBE, 0xF8, 0xF4, 0xB0,
+	0xA9, 0xFF, 0xEF, 0xAB, 0x1F, 0x14, 0x0F, 0x13,
+	0xB0, 0x3F, 0x00, 0x01, 0x28, 0x60, 0x60, 0x3F,
+	0x26, 0x3F, 0xF9, 0x9F, 0x26, 0x06, 0xFA, 0x27,
+	0x69, 0x00, 0x0A, 0xDB, 0x50, 0x26, 0x26, 0x3C,
+	0x31, 0x57, 0x27, 0xF2, 0xF0, 0x2A, 0x27, 0x82,
+	0x2C, 0x9F, 0x91, 0xF0, 0x03, 0xC7, 0xFF, 0xFF,
+	0xC9, 0x1F, 0x77, 0xFF, 0x3B, 0xFE, 0xBC, 0x99,
+	0x13, 0xF4, 0xFC, 0x82, 0x27, 0xF9, 0x8F, 0x38,
+	0xFE, 0x77, 0xF6, 0xD2, 0xC8, 0xF9, 0xD1, 0x96,
+	0x53, 0xBE, 0x5F, 0xBF, 0x7F, 0x61, 0x58, 0x45,
+	0x7F, 0x46, 0x4C, 0x3E, 0x87, 0xA4, 0x60, 0x94,
+	0x4A, 0xF1, 0x24, 0x22, 0x63, 0x30, 0x23, 0xC3,
+	0xEC, 0x27, 0x17, 0xC5, 0x1F, 0x15, 0xC6, 0x2C,
+	0x13, 0xA1, 0x27, 0xD0, 0x27, 0x27, 0xDF, 0x28,
+	0x41, 0xA0, 0x40, 0x27, 0x03, 0xD5, 0x91, 0x00,
+	0x91, 0x31, 0xA1, 0x31, 0xDB, 0xFF, 0xFF, 0xDD,
+	0x1F, 0xDB, 0xF2, 0xE3, 0xD9, 0x63, 0xFF, 0xA1,
+	0xEC, 0x63, 0xFE, 0xE6, 0xEB, 0xD0, 0x6F, 0xFF,
+	0xAA, 0xF9, 0x14, 0x5F, 0xD3, 0x6F, 0x86, 0xCB,
+	0x9A, 0x68, 0x5D, 0xA4, 0x2C, 0xB4, 0x3A, 0x0A,
+	0xBF, 0x64, 0x20, 0x44, 0x64, 0x80, 0x9E, 0x3D,
+	0xF2, 0x75, 0x76, 0x43, 0x00, 0xC5, 0xB3, 0xA1,
+	0x9E, 0xF4, 0x23, 0x26, 0x26, 0xC8, 0x70, 0x14,
+	0x61, 0x50, 0x61, 0xF3, 0xB1, 0x26, 0xFF, 0xDC,
+	0x65, 0x50, 0x51, 0xEF, 0xFF, 0xF1, 0x1F, 0xEF,
+	0xF4, 0xE5, 0x13, 0x4E, 0x03, 0xF8, 0xC1, 0xFF,
+	0xDB, 0xF7, 0xF8, 0xD6, 0xB5, 0x07, 0x3A, 0x64,
+	0x8B, 0xF5, 0xE3, 0x8F, 0xE4, 0xAF, 0x14, 0x5F,
+	0xF9, 0x3D, 0x1F, 0x86, 0xCE, 0x2A, 0xF8, 0x2B,
+	0xC5, 0xD9, 0x4E, 0x29, 0x29, 0xB2, 0xD1, 0x38,
+	0x45, 0x44, 0x8B, 0x20, 0x38, 0x41, 0x4C, 0x20,
+	0x28, 0x28, 0x44, 0x7F, 0x44, 0xEC, 0xD0, 0xDB,
+	0xE9, 0x13, 0xF1, 0x30, 0x98, 0xEA, 0x83, 0x13,
+	0xD1, 0x03, 0x11, 0xBF, 0xB3, 0xC1, 0x2B, 0x28,
+	0x21, 0xCA, 0xF3, 0xF0, 0x81, 0xF1, 0xB0, 0xE8,
+	0x31, 0xDA, 0x8E, 0xFF, 0x01, 0x0F, 0x13, 0xF8,
+	0x4F, 0xF7, 0xA0, 0x17, 0x3B, 0xFD, 0xF1, 0xE4,
+	0x72, 0x5F, 0x00, 0x38, 0xFF, 0xF8, 0x7F, 0xE7,
+	0xBF, 0xBE, 0xD1, 0x32, 0x33, 0x9A, 0x0F, 0x9A,
+	0x21, 0x13, 0xD6, 0x26, 0x94, 0x7C, 0x42, 0x02,
+	0xB3, 0xD8, 0x0F, 0xD6, 0x70, 0x9E, 0xC6, 0x13,
+	0x61, 0x2B, 0x44, 0xF8, 0x10, 0x22, 0x74, 0x60,
+	0xEE, 0xCB, 0xC8, 0x64, 0x8F, 0x47, 0x2A, 0x29,
+	0x27, 0x40, 0x26, 0xDA, 0x20, 0x2B, 0x2B, 0x27,
+	0x28, 0x26, 0x26, 0xFF, 0x27, 0x52, 0x15, 0x10,
+	0xA5, 0xC2, 0xF1, 0x63, 0xEF, 0xFF, 0x14, 0xDF,
+	0x8B, 0xFC, 0xEF, 0x16, 0xFD, 0xF7, 0xF6, 0x1A,
+	0x40, 0xD8, 0x44, 0x91, 0xB4, 0x00, 0x0F, 0x97,
+	0xE0, 0x43, 0x13, 0xFF, 0xF3, 0x02, 0x8F, 0xC0,
+	0x8F, 0x00, 0x2F, 0x74, 0x3F, 0x2C, 0x2C, 0x8B,
+	0xE0, 0x00, 0x63, 0xFF, 0x74, 0xA5, 0x9B, 0xD7,
+	0x3A, 0x5B, 0xEE, 0xE3, 0x27, 0xA0, 0xC4, 0x41,
+	0xF0, 0xAD, 0x02, 0xB5, 0xDF, 0xF1, 0x63, 0x1C,
+	0x04, 0x26, 0x6D, 0x31, 0xC7, 0xC1, 0x4F, 0xD0,
+	0x50, 0x81, 0xF7, 0xA3, 0xFF, 0xC8, 0xB6, 0xEF,
+	0xFF, 0x28, 0xFF, 0xDB, 0xF6, 0xFB, 0x85, 0xC7,
+	0xF4, 0x99, 0xDF, 0x92, 0x93, 0xFF, 0x33, 0xEE,
+	0xFA, 0xF0, 0x9A, 0x01, 0x00, 0x32, 0x9A, 0x5F,
+	0xD3, 0xCF, 0x13, 0x7F, 0x9A, 0x2D, 0xEF, 0x3A,
+	0xE8, 0x14, 0x03, 0xD6, 0x73, 0x43, 0xFF, 0x00,
+	0xED, 0x16, 0xC3, 0x44, 0x36, 0xF3, 0xDF, 0xB0,
+	0xA6, 0xC4, 0x52, 0x29, 0x14, 0x12, 0xD9, 0x91,
+	0xC5, 0x93, 0x2E, 0xD7, 0xF1, 0x3D, 0xBB, 0x18,
+	0x24, 0x29, 0x13, 0xE1, 0x21, 0xF4, 0x51, 0xB1,
+	0x2A, 0xEB, 0x94, 0xF5, 0x70, 0xFF, 0x3B, 0xFF,
+	0x3D, 0x1F, 0xF0, 0x31, 0x4E, 0xC5, 0x25, 0xEF,
+	0xAB, 0x0F, 0x14, 0x3F, 0x9A, 0x44, 0xFE, 0x9A,
+	0x56, 0x86, 0x73, 0xE7, 0x0F, 0xE7, 0xCA, 0x9A,
+	0xEF, 0xAE, 0x7E, 0xF9, 0x52, 0x43, 0x5F, 0x43,
+	0x8B, 0xE0, 0x3D, 0x8B, 0xE7, 0xB4, 0x0B, 0xAF,
+	0x62, 0xDB, 0xF3, 0xC3, 0xC2, 0x1D, 0x2C, 0x44,
+	0x41, 0xEC, 0x94, 0x10, 0x81, 0x64, 0x36, 0x29,
+	0x9F, 0xF3, 0xFF, 0x67, 0xD8, 0x65, 0x21, 0xB3,
+	0xD1, 0xB4, 0x10, 0x53, 0x41, 0x00, 0x42, 0x79,
+	0x30, 0xE1, 0xA2, 0xFF, 0xD0, 0x43, 0xEF, 0xFF,
+	0x50, 0xDF, 0xF0, 0x45, 0x39, 0x6F, 0x3A, 0x8F,
+	0xD3, 0xA9, 0xA8, 0xAC, 0x7F, 0x44, 0xAD, 0xF2,
+	0x9A, 0x56, 0x39, 0xAF, 0x13, 0xD7, 0x25, 0xCD,
+	0x27, 0xAF, 0x9B, 0x27, 0xFF, 0x9F, 0x11, 0x3B,
+	0xB1, 0x2E, 0x01, 0x24, 0x19, 0xFE, 0xC4, 0xFF,
+	0x05, 0xEF, 0xA0, 0xB0, 0xE1, 0xFF, 0xF0, 0x31,
+	0xF2, 0x74, 0x61, 0xE5, 0xAB, 0x36, 0x28, 0x1A,
+	0x61, 0xA0, 0xCB, 0x92, 0xEE, 0x70, 0xFF, 0x14,
+	0x12, 0x8B, 0x90, 0x4F, 0xC3, 0xF1, 0x85, 0x05,
+	0xF7, 0x63, 0xFF, 0x65, 0x1F, 0x13, 0xFF, 0xFF,
+	0xF9, 0x15, 0x00, 0x11, 0xD3, 0x8F, 0x3C, 0xB9,
+	0xFB, 0xA6, 0x9A, 0x5A, 0xD3, 0x37, 0xFA, 0xD6,
+	0xF9, 0xD4, 0xBB, 0x39, 0xF9, 0x55, 0x1F, 0xC2,
+	0x17, 0x4A, 0xC4, 0x43, 0x42, 0x42, 0x41, 0xCD,
+	0x88, 0xFB, 0x00, 0x9C, 0x42, 0x41, 0x02, 0xC5,
+	0xC5, 0xA2, 0x44, 0xBA, 0xDB, 0xFF, 0xFC, 0xF4,
+	0x90, 0x45, 0xDA, 0x90, 0x2B, 0x77, 0x63, 0xB0,
+	0xC8, 0xB1, 0xF5, 0x31, 0x15, 0xD9, 0xFF, 0x68,
+	0x33, 0x77, 0xFF, 0x79, 0x1F, 0x27, 0xFF, 0x62,
+	0x4F, 0x63, 0x6F, 0x86, 0xAD, 0xD3, 0xDF, 0xFF,
+	0xD4, 0xFF, 0x26, 0x9F, 0x05, 0x3E, 0x0E, 0x65,
+	0x13, 0xF6, 0xC7, 0x30, 0xFE, 0xC2, 0x64, 0x61,
+	0xFB, 0x4A, 0x42, 0x9D, 0x59, 0xC4, 0xA4, 0xB6,
+	0x72, 0xD3, 0xF5, 0x44, 0xF5, 0xD3, 0x9C, 0x66,
+	0xBD, 0xF2, 0xA7, 0x28, 0xED, 0x73, 0xE4, 0x32,
+	0xA0, 0x21, 0x77, 0x61, 0x26, 0xB3, 0xF1, 0xFB,
+	0xC7, 0xB0, 0xA0, 0x60, 0xEF, 0x70, 0x15, 0xD5,
+	0xF1, 0x21, 0x29, 0xEF, 0xFF, 0x8C, 0xDF, 0xEF,
+	0x3B, 0xFF, 0xFB, 0x53, 0xFA, 0xE0, 0x42, 0x00,
+	0x00, 0xFB, 0x51, 0x00, 0x62, 0xA9, 0x75, 0xFF,
+	0x13, 0x3C, 0xAC, 0x37, 0xBD, 0x78, 0xFA, 0x42,
+	0xE8, 0xCF, 0xE9, 0xEF, 0x3B, 0xDF, 0xB1, 0xF3,
+	0xF0, 0xFE, 0x01, 0x9C, 0x92, 0x4F, 0xF3, 0x6D,
+	0xA1, 0x2D, 0x2D, 0x43, 0x41, 0xFF, 0x64, 0x60,
+	0x11, 0x3B, 0x75, 0x6A, 0xB3, 0xD0, 0x87, 0x63,
+	0x88, 0xF0, 0x10, 0xE0, 0x3D, 0xA5, 0xFE, 0xDB,
+	0x84, 0xB3, 0x43, 0xF7, 0xF2, 0xDB, 0xA8, 0x13,
+	0xF1, 0x14, 0x13, 0x14, 0x91, 0x2B, 0x6E, 0x27,
+	0x15, 0xDA, 0x07, 0x51, 0x2B, 0x9F, 0xFF, 0xA1,
+	0x1F, 0x4F, 0xFC, 0x45, 0xF9, 0xBC, 0x80, 0x13,
+	0xB0, 0x60, 0xE0, 0x00, 0x22, 0x13, 0xA0, 0x46,
+	0x47, 0x26, 0x7F, 0xEF, 0x0F, 0x8E, 0x33, 0x64,
+	0xC2, 0x05, 0x2B, 0xBC, 0xE0, 0xBE, 0x53, 0x35,
+	0x79, 0x9F, 0x98, 0xFF, 0xC1, 0xE8, 0x3A, 0xDA,
+	0xD3, 0x84, 0xAC, 0x52, 0xFE, 0x01, 0x7D, 0xB1,
+	0x11, 0x31, 0xFF, 0xE3, 0xFF, 0x54, 0x27, 0xF5,
+	0x01, 0xEC, 0x95, 0xCA, 0x54, 0xEE, 0x37, 0x9C,
+	0xC2, 0x18, 0x23, 0xB4, 0xD1, 0xFF, 0xC7, 0x12,
+	0xC6, 0xB1, 0xED, 0x71, 0x9D, 0xE2, 0xA2, 0x13,
+	0x13, 0xF3, 0x28, 0x21, 0xEF, 0xE0, 0xFF, 0xF2,
+	0x20, 0x02, 0x92, 0xCD, 0x64, 0x3B, 0xFF, 0xB4,
+	0xBF, 0x63, 0xFF, 0x27, 0xC5, 0x13, 0x4B, 0xDF,
+	0x99, 0x2E, 0x4C, 0x5D, 0x44, 0x9A, 0x45, 0x9A,
+	0x53, 0x83, 0x93, 0x82, 0xFC, 0x6F, 0x23, 0xFF,
+	0xFB, 0xC5, 0xD6, 0x19, 0xFF, 0x0F, 0x0F, 0x22,
+	0x88, 0xB0, 0x49, 0x61, 0x92, 0x35, 0x8C, 0x71,
+	0xFF, 0xED, 0xF1, 0x0E, 0x90, 0x64, 0x55, 0xF5,
+	0x51, 0xEC, 0x82, 0x01, 0x61, 0x5F, 0x51, 0x9F,
+	0xE1, 0xFF, 0xFC, 0x22, 0x04, 0x03, 0x04, 0x63,
+	0xC9, 0x11, 0xF8, 0x51, 0x9D, 0x13, 0xDD, 0x43,
+	0xC7, 0x12, 0xFF, 0x64, 0x10, 0xDB, 0x92, 0x3D,
+	0xC3, 0x2B, 0xB3, 0xB7, 0xA2, 0xF5, 0xE1, 0xDC,
+	0x53, 0xC7, 0xFF, 0xFF, 0xC9, 0x1F, 0x77, 0xF5,
+	0xD3, 0xAB, 0x56, 0xE7, 0x13, 0xDF, 0x14, 0xFF,
+	0x9A, 0x44, 0x9A, 0x54, 0xFF, 0x6D, 0xD3, 0xE7,
+	0x41, 0x97, 0xA7, 0x28, 0x6B, 0x34, 0x47, 0xF3,
+	0xA7, 0x6F, 0x83, 0x16, 0xF7, 0x10, 0x29, 0x2B,
+	0x43, 0x4A, 0xA2, 0x2A, 0x43, 0x40, 0x3D, 0x2F,
+	0x3D, 0x40, 0x8B, 0xD1, 0x42, 0x64, 0x71, 0x77,
+	0xE6, 0x78, 0x97, 0xF6, 0x32, 0x8F, 0x24, 0x53,
+	0x27, 0x44, 0x44, 0xEC, 0xC0, 0x13, 0x44, 0xEF,
+	0x61, 0x7A, 0x24, 0xFF, 0x99, 0xE9, 0xD6, 0xC4,
+	0xB3, 0x71, 0x7C, 0x59, 0xF1, 0x10, 0x15, 0xD8,
+	0x1C, 0x33, 0xDB, 0xFF, 0xFF, 0xDD, 0x1F, 0x9F,
+	0xF2, 0xFA, 0x85, 0x4B, 0x8F, 0x85, 0x9A, 0x00,
+	0x77, 0xFC, 0x56, 0x9A, 0x44, 0x9F, 0xA0, 0x11,
+	0x3D, 0x41, 0xB4, 0x91, 0x34, 0x14, 0x1C, 0xF5,
+	0xD2, 0xE3, 0xEC, 0x65, 0xFF, 0x86, 0x0A, 0xC1,
+	0x65, 0x9F, 0x15, 0xC3, 0x37, 0x9A, 0xE4, 0x3B,
+	0xF1, 0x50, 0x01, 0xFD, 0x71, 0x7F, 0x43, 0x9D,
+	0xD1, 0x8C, 0x0F, 0xC8, 0x66, 0xC4, 0x01, 0xC7,
+	0xE2, 0x5A, 0xE1, 0xFB, 0xB4, 0xFF, 0x4E, 0x63,
+	0x02, 0x43, 0x64, 0x01, 0x8F, 0xA3, 0x3A, 0xC1,
+	0x2E, 0x21, 0x52, 0x40, 0xC7, 0x72, 0xFF, 0x63,
+	0x03, 0xB9, 0xD5, 0xEC, 0xA4, 0x03, 0x33, 0xEF,
+	0xFF, 0xF1, 0x1F, 0xF2, 0x31, 0x3A, 0x1F, 0xFF,
+	0xAC, 0x68, 0xBB, 0x5A, 0xE8, 0x3D, 0xC7, 0xC1,
+	0x9A, 0x43, 0x13, 0xC1, 0xBE, 0x7C, 0xD2, 0x73,
+	0xFF, 0x35, 0xF1, 0xF4, 0x46, 0xEE, 0x83, 0xFC,
+	0x12, 0xC3, 0x55, 0x19, 0x37, 0x63, 0x86, 0x34,
+	0x22, 0xC9, 0xD5, 0x30, 0xCD, 0x91, 0x40, 0x3F,
+	0x27, 0xD0, 0x40, 0x43, 0xFD, 0x03, 0xFF, 0xEB,
+	0xC6, 0x75, 0xE9, 0x27, 0x73, 0x13, 0x66, 0xD8,
+	0x14, 0xF6, 0xA6, 0xC5, 0x32, 0x9E, 0xB1, 0xC7,
+	0x17, 0x27, 0xD9, 0xD1, 0x2B, 0x26, 0x27, 0xA4,
+	0x93, 0x4F, 0xA2, 0x67, 0x50, 0xFF, 0x29, 0x03,
+	0x15, 0xD4, 0xCE, 0xC3, 0xC6, 0x8E, 0x01, 0x0F,
+	0x13, 0xFE, 0xCF, 0xB3, 0xF9, 0x31, 0xFF, 0x93,
+	0x25, 0xA8, 0x78, 0x4D, 0x0A, 0x61, 0x67, 0xC1,
+	0xC3, 0xE9, 0x03, 0xC2, 0x7A, 0xD2, 0x65, 0xDF,
+	0xE5, 0x45, 0x5C, 0xC2, 0x27, 0x6E, 0x93, 0xF5,
+	0x84, 0x51, 0x26, 0x2C, 0xE4, 0x5E, 0xF2, 0xFF,
+	0xF0, 0x51, 0x49, 0xC2, 0xC8, 0x12, 0x14, 0x81,
+	0xE9, 0x11, 0x23, 0xA1, 0x5E, 0x90, 0x11, 0xD8,
+	0xEF, 0xF9, 0x73, 0xEB, 0xC2, 0x2E, 0xF5, 0x28,
+	0xF0, 0x00, 0x4F, 0x11, 0xC4, 0xF1, 0x14, 0xA5,
+	0xFF, 0x75, 0x02, 0xED, 0x85, 0xFC, 0xA0, 0xED,
+	0xF3, 0x63, 0x82, 0x78, 0x42, 0x7F, 0x22, 0x15,
+	0xDB, 0xFD, 0x8E, 0x22, 0x13, 0xFF, 0x15, 0x1F,
+	0xEF, 0xF4, 0xA9, 0xAA, 0x8C, 0x01, 0x2C, 0x78,
+	0xA0, 0xE0, 0xAD, 0x1E, 0x94, 0x06, 0x4D, 0x8B,
+	0x40, 0x3F, 0x3E, 0x3E, 0x3C, 0x0F, 0x3C, 0x3D,
+	0x3E, 0x41, 0xDB, 0xA5, 0x83, 0x66, 0xEA, 0x83,
+	0x78, 0x81, 0xFF, 0x99, 0x09, 0xAD, 0xDF, 0xE8,
+	0xD2, 0xE9, 0x86, 0x77, 0xC2, 0xEE, 0x22, 0x89,
+	0x00, 0x71, 0x64, 0x1F, 0x28, 0x2B, 0x42, 0x4E,
+	0x43, 0x4E, 0xF5, 0x75, 0xE6, 0xFF, 0x72, 0xF7,
+	0x70, 0x27, 0x40, 0x40, 0x8C, 0x43, 0x44, 0x44,
+	0x7F, 0x93, 0xE0, 0xA6, 0xA1, 0xB5, 0xBF, 0x20,
+	0x8A, 0x28, 0x13, 0xF4, 0xC8, 0x40, 0x19, 0x81,
+	0xDC, 0xD0, 0x15, 0xD9, 0x67, 0xA3, 0xFB, 0x27,
+	0xFF, 0x29, 0x1F, 0xDB, 0xF3, 0x9B, 0x2C, 0xF7,
+	0x73, 0x44, 0x8B, 0xF0, 0x45, 0x21, 0xEF, 0x87,
+	0xF9, 0x71, 0xE6, 0x4D, 0x87, 0x44, 0xAE, 0x42,
+	0xCA, 0xA0, 0xAE, 0x54, 0x9A, 0x91, 0xFF, 0x83,
+	0x62, 0x6F, 0x88, 0x05, 0x25, 0xA2, 0x8B, 0xDB,
+	0xAC, 0x9B, 0xE2, 0xF6, 0x52, 0x22, 0x31, 0x13,
+	0x2A, 0x43, 0x45, 0xDA, 0x94, 0x3F, 0x3F, 0x9F,
+	0xD0, 0xC7, 0xFE, 0xDF, 0x75, 0xE6, 0xB3, 0xB1,
+	0x44, 0x32, 0x57, 0x88, 0x82, 0x58, 0x23, 0xC6,
+	0xD2, 0x55, 0xA3, 0xDD, 0x8E, 0x73, 0xB7, 0x58,
+	0x28, 0x3B, 0x00, 0x53, 0x42, 0x3B, 0x74, 0x2C,
+	0xDF, 0x06, 0xFF, 0xE0, 0x26, 0x4F, 0xFF, 0x3D,
+	0x0F, 0x27, 0xF4, 0xE7, 0xB5, 0xF8, 0x61, 0xB3,
+	0xE0, 0xB2, 0xF1, 0xCF, 0x94, 0x07, 0xA9, 0xC4,
+	0x26, 0x26, 0x27, 0xFB, 0x4D, 0x87, 0xAE, 0x44,
+	0xAE, 0x54, 0xFF, 0x83, 0x65, 0x46, 0x52, 0x75,
+	0xB8, 0x64, 0xF6, 0xF3, 0xA8, 0xEF, 0x36, 0xE7,
+	0x84, 0xD7, 0x29, 0xEF, 0xC2, 0xB2, 0xA0, 0x02,
+	0xEE, 0x80, 0x43, 0x9B, 0x73, 0x4E, 0x05, 0x2A,
+	0x87, 0xF1, 0x01, 0xFF, 0xD9, 0xF4, 0x63, 0x28,
+	0xDC, 0xA2, 0x90, 0x73, 0x8E, 0x21, 0x3B, 0xE8,
+	0x2D, 0x70, 0xFC, 0x01, 0xFF, 0x4F, 0x71, 0x5A,
+	0x4A, 0xE6, 0xD0, 0xCD, 0x38, 0x03, 0x33, 0x4F,
+	0xFF, 0x51, 0x1F, 0x3B, 0xF2, 0xFF, 0x59, 0x96,
+	0x3B, 0x28, 0xBD, 0x11, 0x6C, 0xF0, 0x58, 0xF5,
+	0xFB, 0x51, 0xF5, 0xB3, 0xE2, 0xA1, 0xBD, 0x4D,
+	0x88, 0x44, 0xAE, 0x45, 0xAE, 0x55, 0x0D, 0x77,
+	0xBE, 0xA6, 0x2C, 0x85, 0xE4, 0xFF, 0x86, 0x54,
+	0xE5, 0xF1, 0xCB, 0x9C, 0xC3, 0x01, 0x97, 0xB4,
+	0xC6, 0x84, 0x67, 0x47, 0x7E, 0x23, 0xFE, 0x61,
+	0x95, 0xA4, 0xA3, 0x12, 0xBB, 0xEA, 0xE2, 0xEF,
+	0x26, 0x91, 0x52, 0xF2, 0xC7, 0x2A, 0xFF, 0x5C,
+	0x17, 0x2A, 0x59, 0x96, 0x94, 0x65, 0xD2, 0x41,
+	0x83, 0x15, 0xD8, 0x80, 0xF3, 0x63, 0xFF, 0xF9,
+	0x65, 0x1F, 0xC7, 0xF2, 0xFA, 0xA4, 0x05, 0xC8,
+	0x1D, 0x43, 0x44, 0x41, 0x58, 0xD0, 0xFF, 0x1E,
+	0x1A, 0xC3, 0x03, 0x4D, 0x8F, 0xE8, 0x42, 0xAE,
+	0x53, 0x20, 0x37, 0x6F, 0x84, 0x99, 0xB4, 0xFC,
+	0xFF, 0xD2, 0x00, 0x97, 0x07, 0x2C, 0xAF, 0xF3,
+	0xFE, 0x34, 0x1A, 0xC2, 0x28, 0x43, 0xFF, 0xC7,
+	0xE1, 0xC4, 0xE3, 0xC8, 0x81, 0x60, 0x15, 0x6C,
+	0xBA, 0xA4, 0x19, 0x63, 0x28, 0x2C, 0x9A, 0xFF,
+	0xB6, 0xC3, 0x9E, 0xF9, 0xF1, 0xD1, 0xB3, 0x30,
+	0xEE, 0x92, 0x05, 0x06, 0xF5, 0x44, 0xF1, 0xF1,
+	0xFF, 0xF3, 0xE1, 0xE0, 0x20, 0x77, 0xFF, 0x79,
+	0x1F, 0xDB, 0xF3, 0xEC, 0x27, 0xE1, 0xE6, 0x94,
+	0x04, 0xFF, 0xE5, 0x81, 0x1E, 0x16, 0xFD, 0x82,
+	0x51, 0xE5, 0xBD, 0x12, 0xAE, 0x45, 0x9F, 0x82,
+	0x77, 0xB8, 0xFF, 0x20, 0x34, 0xB2, 0x22, 0xEC,
+	0xC4, 0x60, 0xB5, 0x0A, 0x33, 0x00, 0x2E, 0x71,
+	0x81, 0x4B, 0x55, 0xCF, 0xB5, 0x04, 0x3F, 0x52,
+	0x43, 0x2A, 0x8B, 0xD0, 0xCB, 0xF1, 0xF1, 0x47,
+	0xED, 0x82, 0xFF, 0x12, 0xB9, 0xE1, 0xF3, 0x63,
+	0x2A, 0x12, 0xA6, 0xE0, 0x81, 0xB7, 0x52, 0xDD,
+	0x80, 0x44, 0x84, 0xF7, 0xE1, 0xB2, 0xF6, 0x21,
+	0xBC, 0x03, 0xF0, 0x80, 0x29, 0xF7, 0x00, 0x3E,
+	0x84, 0xE5, 0x63, 0xFF, 0x30, 0xF2, 0x8B, 0xFF,
+	0x8D, 0x1F, 0xEF, 0xF4, 0xB7, 0xE2, 0xD5, 0xA9,
+	0x50, 0x91, 0x1E, 0x1E, 0xFF, 0x8E, 0x49, 0xC3,
+	0x47, 0xAE, 0x45, 0xAE, 0x51, 0x7B, 0x80, 0x20,
+	0x37, 0xC5, 0xD5, 0xC6, 0x79, 0xFF, 0xE9, 0x52,
+	0x88, 0x34, 0x0C, 0x94, 0xDA, 0x65, 0x10, 0x83,
+	0xD7, 0x65, 0xF4, 0xB1, 0xF0, 0x25, 0xFF, 0xB3,
+	0xD0, 0xF3, 0x96, 0xC7, 0xD3, 0x75, 0xED, 0x53,
+	0xF2, 0x63, 0x27, 0xB8, 0xF5, 0x41, 0x64, 0xFF,
+	0x14, 0x15, 0x13, 0xF5, 0x27, 0xF2, 0xA1, 0x53,
+	0xF0, 0x11, 0xF8, 0xC3, 0x9A, 0xA8, 0x77, 0xFF,
+	0xF3, 0xA0, 0xAF, 0xDB, 0xFC, 0x13, 0xBE, 0xE2,
+	0x60, 0x44, 0x41, 0x1E, 0x1C, 0xE9, 0xE4, 0xEF,
+	0xFB, 0xA6, 0x4D, 0x81, 0xAE, 0x44, 0x3F, 0xAE,
+	0x54, 0x13, 0xF0, 0xA3, 0x5A, 0x97, 0xA8, 0xFE,
+	0xAD, 0xC6, 0x91, 0x7D, 0xD9, 0x28, 0xDD, 0x04,
+	0xC1, 0x71, 0xF6, 0x11, 0xA4, 0xC5, 0x43, 0x7B,
+	0x42, 0xCD, 0xC0, 0xB1, 0x89, 0x12, 0xBA, 0xF8,
+	0xE2, 0x2C, 0x9D, 0x93, 0x2B, 0xA5, 0xE6, 0x48,
+	0xCA, 0xCE, 0xA6, 0xFE, 0x98, 0x29, 0x25, 0xF7,
+	0xC2, 0x9F, 0xF5, 0x2A, 0x7F, 0x29, 0x3B, 0x44,
+	0x94, 0x48, 0xB3, 0xFF, 0xB5, 0x1F, 0xF0, 0x81,
+	0xE5, 0x15, 0x3A, 0xD1, 0xDF, 0x8B, 0x71, 0xFC,
+	0x92, 0x44, 0xE3, 0x08, 0x27, 0xCB, 0xCF, 0x14,
+	0x4D, 0x89, 0xAE, 0x41, 0xFF, 0xAE, 0x51, 0xAB,
+	0xC1, 0x0D, 0x78, 0xAB, 0x76, 0xCC, 0xB3, 0x48,
+	0x08, 0x27, 0xF6, 0xD9, 0x2B, 0xFE, 0xF2, 0x08,
+	0xE0, 0x30, 0x72, 0x61, 0x2A, 0x24, 0xA0, 0x54,
+	0x94, 0x27, 0x12, 0xB9, 0x26, 0xEF, 0x81, 0xB0,
+	0x45, 0xC1, 0xBE, 0x97, 0x26, 0xC5, 0x11, 0x61,
+	0x55, 0x8F, 0x0D, 0xF4, 0x13, 0xFF, 0xF2, 0x71,
+	0xDC, 0x90, 0xB3, 0xD0, 0x3B, 0xE0, 0x64, 0x32,
+	0x2A, 0xD5, 0xDF, 0xA6, 0xC7, 0xFF, 0xE7, 0xC9,
+	0x1F, 0x9F, 0xF3, 0xFC, 0xB8, 0x42, 0x41, 0x13,
+	0xF3, 0xFE, 0xE2, 0x8C, 0xF1, 0x7D, 0x2C, 0x25,
+	0x34, 0x1E, 0x10, 0xB3, 0xF6, 0xD1, 0x30, 0xEB,
+	0x47, 0x44, 0x4D, 0x85, 0xFF, 0xAE, 0x51, 0x20,
+	0x39, 0x6F, 0x8F, 0xCC, 0x8E, 0xFC, 0x07, 0x12,
+	0x97, 0x89, 0xD2, 0xFD, 0x11, 0x80, 0x91, 0x92,
+	0x2B, 0x2A, 0x42, 0x40, 0x3E, 0x40, 0x42, 0xFF,
+	0x7C, 0xD1, 0xCF, 0xE9, 0x12, 0xB9, 0xF1, 0x02,
+	0x5F, 0x31, 0xF5, 0xE8, 0xEF, 0x44, 0x7F, 0x83,
+	0xEF, 0x81, 0x8D, 0x63, 0x04, 0x27, 0xD3, 0x26,
+	0x01, 0xF2, 0x02, 0xA1, 0xAD, 0xA2, 0xE1, 0xB8,
+	0xFC, 0xDB, 0xFF, 0xDD, 0x1F, 0x63, 0xF4, 0xFD,
+	0xE7, 0xB2, 0xF0, 0xEA, 0xD6, 0x44, 0x44, 0xF8,
+	0xEB, 0x00, 0x1E, 0x18, 0xFE, 0x52, 0x5A, 0x88,
+	0xFC, 0x91, 0x46, 0x46, 0x44, 0x83, 0xAE, 0x10,
+	0x3D, 0x3D, 0x3E, 0x3E, 0x3F, 0xB6, 0xE0, 0xAC,
+	0xC1, 0xFF, 0x20, 0x36, 0x6F, 0x8F, 0x12, 0xAC,
+	0x3C, 0x09, 0xC8, 0xC8, 0x50, 0x15, 0xE0, 0xC3,
+	0x4B, 0x17, 0xFF, 0xE0, 0x56, 0xA2, 0x8B, 0xF1,
+	0x46, 0x63, 0x27, 0x77, 0x74, 0x77, 0x37, 0x25,
+	0x47, 0x8F, 0x05, 0xFF, 0xF6, 0xA1, 0xA2, 0xA1,
+	0xDC, 0x12, 0x18, 0x31, 0x16, 0xD1, 0xE4, 0x92,
+	0xDF, 0xA2, 0x13, 0xFF, 0xEF, 0xF0, 0xDF, 0x13,
+	0xFF, 0xB4, 0x32, 0x42, 0xD0, 0x73, 0xEA, 0xD5,
+	0x1E, 0x18, 0x6D, 0x95, 0xFF, 0xCA, 0xE5, 0x86,
+	0x10, 0xC2, 0x45, 0xC2, 0x57, 0xD9, 0x57, 0x6F,
+	0x8F, 0x84, 0x4A, 0xFE, 0x76, 0xF0, 0x4D, 0x35,
+	0x36, 0xA7, 0xF1, 0x55, 0xF1, 0xB4, 0x28, 0x2A,
+	0x3F, 0x28, 0x0F, 0x42, 0x28, 0x29, 0x42, 0x6D,
+	0xD4, 0xF4, 0xE6, 0x89, 0x94, 0xF6, 0x72, 0xFF,
+	0x17, 0xC6, 0xA4, 0x95, 0x15, 0x67, 0x25, 0x49,
+	0x8F, 0x06, 0x4F, 0xA3, 0x2A, 0x04, 0xF3, 0xF0,
+	0xFF, 0xF6, 0xF2, 0xF1, 0xD1, 0xDF, 0xA3, 0xFB,
+	0x11, 0xEE, 0x8E, 0x01, 0x0F, 0x9F, 0xF4, 0x3B,
+	0x17, 0x87, 0xFF, 0xD0, 0x2D, 0x44, 0x2C, 0x28,
+	0x77, 0xE6, 0xEA, 0x05, 0xEE, 0xD7, 0xFF, 0xFD,
+	0xF1, 0x4D, 0x8B, 0x72, 0x22, 0xC2, 0x56, 0x20,
+	0x37, 0x6F, 0x8F, 0x3A, 0xA6, 0xC6, 0xB3, 0xF5,
+	0x7A, 0x6B, 0xA1, 0xF6, 0xC1, 0xA0, 0xC2, 0x54,
+	0x40, 0xFE, 0xF1, 0x40, 0x7B, 0xF4, 0xFE, 0x95,
+	0xD6, 0x2A, 0x16, 0x12, 0xB9, 0xC9, 0x34, 0xDD,
+	0xE6, 0x18, 0x2C, 0x8F, 0x0E, 0x29, 0xDF, 0x4F,
+	0x62, 0xF2, 0xA1, 0x25, 0x00, 0x01, 0xF5, 0xC0,
+	0xB4, 0xF3, 0xCA, 0x65, 0xFE, 0x10, 0xFB, 0x13,
+	0xFF, 0x15, 0x1F, 0xC7, 0xF8, 0xF6, 0x31, 0xD8,
+	0x71, 0x27, 0xF7, 0x41, 0x14, 0x07, 0xFF, 0x1E,
+	0x18, 0xFF, 0x05, 0xBD, 0x1F, 0xC2, 0x59, 0x27,
+	0x88, 0x6F, 0x8F, 0xEC, 0x7E, 0x86, 0x87, 0xFF,
+	0xF8, 0x60, 0xE9, 0xC4, 0xED, 0xE3, 0x00, 0xC5,
+	0xF7, 0xEB, 0x04, 0x2F, 0xB5, 0x86, 0x63, 0x29,
+	0xF3, 0x18, 0x26, 0xCB, 0x23, 0x25, 0x43, 0x8F,
+	0x07, 0x26, 0x26, 0xF4, 0x43, 0x13, 0xB2, 0x7F,
+	0x25, 0x64, 0xD1, 0x00, 0x40, 0x13, 0x86, 0xF2,
+	0x34, 0x27, 0xFF, 0x29, 0x1F, 0xF0, 0xA1, 0xFF,
+	0x17, 0x46, 0x3B, 0x13, 0x80, 0xA0, 0xEF, 0x40,
+	0xF9, 0x51, 0xF4, 0xF3, 0x1E, 0x17, 0xF6, 0xA3,
+	0xFF, 0x58, 0xF1, 0xBD, 0x16, 0xC2, 0x48, 0xC2,
+	0x54, 0x0D, 0x7E, 0x36, 0x77, 0xC7, 0x2C, 0x60,
+	0xA6, 0xE7, 0x2E, 0x46, 0xB9, 0x94, 0xA2, 0x23,
+	0x42, 0x42, 0x0C, 0xE8, 0xDD, 0x01, 0xC9, 0xA6,
+	0xFD, 0xF8, 0x40, 0x75, 0xEF, 0xE2, 0xE5, 0xCE,
+	0xD6, 0x18, 0x2A, 0x8F, 0x0E, 0x29, 0xBD, 0x71,
+	0x3F, 0x28, 0x27, 0x41, 0xC0, 0x55, 0x67, 0x43,
+	0x6B, 0x27, 0xFF, 0x3D, 0x0F, 0x13, 0xF3, 0xCE,
+	0xD8, 0x69, 0xD7, 0x28, 0x44, 0x44, 0xD7, 0x76,
+	0x06, 0x4B, 0xBD, 0x1E, 0x43, 0x7F, 0x2A, 0x9F,
+	0xD1, 0xC2, 0x53, 0x83, 0x6E, 0xB2, 0x07, 0xFF,
+	0x62, 0xD5, 0xB6, 0x84, 0xD7, 0xEE, 0xDC, 0x29,
+	0x4B, 0x5B, 0xFF, 0x51, 0x41, 0xA3, 0x07, 0x8E,
+	0x1A, 0x75, 0xE9, 0x2A, 0x7F, 0x2D, 0xFF, 0xE2,
+	0xDA, 0x67, 0xBA, 0x55, 0x25, 0x15, 0x8F, 0x0E,
+	0x8A, 0xE1, 0x20, 0xC2, 0xFF, 0x58, 0xB7, 0x13,
+	0xFF, 0x50, 0x1F, 0x51, 0x3F, 0x4F, 0xF2, 0xD9,
+	0x34, 0xF0, 0x73, 0xEA, 0xD5, 0x17, 0x44, 0x44,
+	0x42, 0x64, 0xB0, 0x45, 0x10, 0x99, 0xFC, 0x03,
+	0xBD, 0x1E, 0xFF, 0xEA, 0x70, 0xC2, 0x56, 0x0D,
+	0x7F, 0xE5, 0xC6, 0x72, 0x87, 0xDC, 0x1D, 0x89,
+	0x54, 0x63, 0x8F, 0x99, 0xB7, 0x03, 0x41, 0x41,
+	0xB7, 0x6C, 0x75, 0xED, 0x28, 0x28, 0x14, 0x03,
+	0xFF, 0x17, 0xCE, 0xA2, 0xA2, 0xFD, 0xDA, 0x8F,
+	0x05, 0xA0, 0x53, 0x34, 0xE1, 0x8E, 0x02, 0x27,
+	0xFF, 0xFC, 0x4F, 0xFF, 0x65, 0x0F, 0xF0, 0xA2,
+	0xFB, 0x14, 0x5C, 0x36, 0x9D, 0x42, 0x42, 0x40,
+	0xFF, 0x9D, 0x70, 0xFF, 0x25, 0x1E, 0x17, 0xBD,
+	0x1F, 0xC2, 0x46, 0xC2, 0x54, 0x0D, 0x7E, 0x21,
+	0x91, 0xFF, 0xF4, 0x42, 0xCC, 0x59, 0xFB, 0x04,
+	0xDE, 0x51, 0xC7, 0xD8, 0x4B, 0x5D, 0xF2, 0x94,
+	0x9F, 0x97, 0xFF, 0x53, 0xFA, 0x2A, 0x8D, 0x17,
+	0xCF, 0xBB, 0xB4, 0xFD, 0xE4, 0x3A, 0x6B, 0x14,
+	0x59, 0x14, 0x24, 0xED, 0x3B, 0xFF, 0x78, 0x2F,
+	0x79, 0x4F, 0x00, 0xD8, 0x61, 0x00, 0x17, 0x44,
+	0x00, 0x01, 0x7F, 0x45, 0x4C, 0x4F, 0x10, 0x94,
+	0xA9, 0x95, 0x22, 0x1C, 0xEF, 0x29, 0x20, 0x3E,
+	0xFF, 0x86, 0xF2, 0x27, 0x4F, 0xB4, 0xDA, 0x99,
+	0x82, 0x63, 0x89, 0x42, 0x42, 0xD6, 0xC4, 0x2A,
+	0x3F, 0x2A, 0x41, 0xD0, 0xC7, 0x0E, 0xAF, 0xCA,
+	0xB2, 0x17, 0xCF, 0xFA, 0x48, 0x4D, 0xEF, 0xFF,
+	0x2B, 0xC9, 0x5D, 0x65, 0x4F, 0xFF, 0x8C, 0x3F,
+	0x8D, 0x5F, 0xD8, 0x66, 0x83, 0xF3, 0x49, 0x38,
+	0xFF, 0x64, 0x70, 0xFE, 0xC1, 0x30, 0xD8, 0xDB,
+	0xC0, 0x22, 0x1D, 0xC2, 0x42, 0xB3, 0xA0, 0xF3,
+	0x61, 0xFD, 0x9B, 0x9F, 0xEF, 0xC9, 0x14, 0x09,
+	0xC4, 0x85, 0xF0, 0x3A, 0x4B, 0x5B, 0x42, 0x63,
+	0x84, 0xFF, 0xF4, 0x50, 0xEC, 0xBA, 0x9C, 0x84,
+	0x2A, 0x8F, 0x7B, 0x5E, 0x75, 0x3F, 0x13, 0xFF,
+	0x40, 0x49, 0xFE, 0xF2, 0x50, 0x77, 0xFF, 0xA0,
+	0x6F, 0xF0, 0x1C, 0xE1, 0xF6, 0xFE, 0x34, 0x28,
+	0x10, 0x40, 0x37, 0x40, 0x40, 0xB4, 0x51, 0x00,
+	0x21, 0x44, 0x10, 0x9D, 0x85, 0xAC, 0xC2, 0x43,
+	0xFF, 0xB7, 0x23, 0x2B, 0xB0, 0x38, 0x0F, 0xE7,
+	0x67, 0xF0, 0x38, 0x5E, 0x34, 0x3B, 0xA7, 0xED,
+	0xF7, 0xFF, 0xE2, 0xA1, 0xF6, 0x71, 0xE2, 0x62,
+	0xF6, 0xA1, 0xDB, 0x98, 0x2A, 0x8F, 0x8E, 0x17,
+	0x63, 0x28, 0xFF, 0x75, 0x0F, 0x14, 0x2F, 0x13,
+	0xFF, 0xFD, 0x80, 0xCE, 0x83, 0x8B, 0xFF, 0xB4,
+	0xAF, 0x77, 0xFA, 0xDF, 0xF7, 0x95, 0x8B, 0x52,
+	0x44, 0xEA, 0xDB, 0x10, 0x9D, 0x6D, 0x7B, 0x22,
+	0x14, 0xD6, 0x92, 0xFF, 0x38, 0x0F, 0x5B, 0xBC,
+	0xB2, 0xF8, 0x1F, 0xDF, 0xDD, 0x09, 0xE2, 0x36,
+	0x9F, 0x9C, 0x01, 0x06, 0xFF, 0x08, 0x6F, 0x8E,
+	0x1A, 0x27, 0x0F, 0x28, 0x2F, 0x27, 0xFF, 0x9F,
+	0xC5, 0xBA, 0x75, 0xC7, 0xFF, 0xFF, 0xC9, 0x1F,
+	0xCA, 0x3F, 0xCB, 0x5F, 0xCC, 0x7F, 0xCD, 0x9F,
+	0xCE, 0xBF, 0xCF, 0xDF, 0xD0, 0xFF, 0xFF, 0xD2,
+	0x1F, 0xD3, 0x3F, 0xD4, 0x5F, 0xD5, 0x7F, 0xD6,
+	0x9F, 0xD7, 0xBF, 0xD8, 0xDF, 0xD9, 0xFF, 0xFF,
+	0xDB, 0x1F, 0xDC, 0x3F, 0xDD, 0x5F, 0xDE, 0x7F,
+	0xDF, 0x9F, 0xE0, 0xBF, 0xE1, 0xDF, 0xE2, 0xFF,
+	0xFF, 0xE4, 0x1F, 0xE5, 0x3F, 0xE6, 0x5F, 0xE7,
+	0x7F, 0xE8, 0x9F, 0xE9, 0xBF, 0xEA, 0xDF, 0xEB,
+	0xFF, 0xFF, 0xED, 0x1F, 0xEE, 0x3F, 0xEF, 0x5F,
+	0xF0, 0x7F, 0xF1, 0x9F, 0xF2, 0xBF, 0xF3, 0xDF,
+	0xF4, 0xFF, 0xFF, 0xF6, 0x1F, 0xF7, 0x3F, 0xF8,
+	0x5F, 0xF9, 0x7F, 0xFA, 0x9F, 0xFB, 0xBF, 0xFC,
+	0xDF, 0xFD, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x3F,
+	0x01, 0x5F, 0x02, 0x7F, 0x03, 0x9F, 0x04, 0xBF,
+	0x05, 0xDF, 0x06, 0xFF, 0xFF, 0x08, 0x1F, 0x09,
+	0x3F, 0x0A, 0x5F, 0x0B, 0x7F, 0x0C, 0x9F, 0x0D,
+	0xBF, 0x0E, 0xDF, 0x0F, 0xFF, 0xFF, 0x11, 0x1F,
+	0x12, 0x3F, 0x13, 0x5F, 0x14, 0x7F, 0x15, 0x9F,
+	0x16, 0xBF, 0x17, 0xDF, 0x18, 0xFF, 0xFF, 0x1A,
+	0x1F, 0x1B, 0x3F, 0x1C, 0x5F, 0x1D, 0x7F, 0x1E,
+	0x9F, 0x1F, 0xBF, 0x20, 0xDF, 0x21, 0xFF, 0xFF,
+	0x23, 0x1F, 0x24, 0x3F, 0x25, 0x5F, 0x26, 0x7F,
+	0x27, 0x9F, 0x28, 0xBF, 0x29, 0xDF, 0x2A, 0xFF,
+	0xFF, 0x2C, 0x1F, 0x2D, 0x3F, 0x2E, 0x5F, 0x2F,
+	0x7F, 0x30, 0x9F, 0x31, 0xBF, 0x32, 0xDF, 0x33,
+	0xFF, 0xFF, 0x35, 0x1F, 0x36, 0x3F, 0x37, 0x5F,
+	0x38, 0x7F, 0x39, 0x9F, 0x3A, 0xBF, 0x3B, 0xDF,
+	0x3C, 0xFF, 0xFF, 0x3E, 0x1F, 0x3F, 0x3F, 0x40,
+	0x5F, 0x41, 0x7F, 0x42, 0x9F, 0x43, 0xBF, 0x44,
+	0xDF, 0x45, 0xFF, 0xFF, 0x47, 0x1F, 0x48, 0x3F,
+	0x49, 0x5F, 0x4A, 0x7F, 0x4B, 0x9F, 0x4C, 0xBF,
+	0x4D, 0xDF, 0x4E, 0xFF, 0xFF, 0x50, 0x1F, 0x51,
+	0x3F, 0x52, 0x5F, 0x53, 0x7F, 0x54, 0x9F, 0x55,
+	0xBF, 0x56, 0xDF, 0x57, 0xFF, 0xFF, 0x59, 0x1F,
+	0x5A, 0x3F, 0x5B, 0x5F, 0x5C, 0x7F, 0x5D, 0x9F,
+	0x5E, 0xBF, 0x5F, 0xDF, 0x60, 0xFF, 0xFF, 0x62,
+	0x1F, 0x63, 0x3F, 0x64, 0x5F, 0x65, 0x7F, 0x66,
+	0x9F, 0x67, 0xBF, 0x68, 0xDF, 0x69, 0xFF, 0xFF,
+	0x6B, 0x1F, 0x6C, 0x3F, 0x6D, 0x5F, 0x6E, 0x7F,
+	0x6F, 0x9F, 0x70, 0xBF, 0x71, 0xDF, 0x72, 0xFF,
+	0xFF, 0x74, 0x1F, 0x75, 0x3F, 0x76, 0x5F, 0x77,
+	0x7F, 0x78, 0x9F, 0x79, 0xBF, 0x7A, 0xDF, 0x7B,
+	0xFF, 0xDF, 0x7D, 0x1F, 0xF0, 0xCE, 0x10, 0x7F,
+	0x5F, 0x80, 0x7F, 0x81, 0x9F, 0x82, 0xBF, 0x83,
+	0xDF, 0xFF, 0x84, 0xFF, 0x86, 0x1F, 0x87, 0x3F,
+	0x88, 0x5F, 0x89, 0x7F, 0x8A, 0x9F, 0x8B, 0xBF,
+	0x8C, 0xDF, 0xFF, 0x8D, 0xFF, 0x8F, 0x1F, 0x90,
+	0x3F, 0x91, 0x5F, 0x13, 0xFF, 0x93, 0x9F, 0x94,
+	0xBF, 0x95, 0xDF, 0xFF, 0x96, 0xFF, 0x98, 0x1F,
+	0x99, 0x3F, 0x9A, 0x5F, 0x9B, 0x7F, 0x9C, 0x9F,
+	0x9D, 0xBF, 0x9E, 0xDF, 0xFF, 0x9F, 0xFF, 0xA1,
+	0x1F, 0xA2, 0x3F, 0xA3, 0x5F, 0xA4, 0x7F, 0xA5,
+	0x9F, 0x27, 0xFF, 0xA7, 0xDF, 0xFF, 0xA8, 0xFF,
+	0xAA, 0x1F, 0xAB, 0x3F, 0xAC, 0x5F, 0xAD, 0x7F,
+	0xAE, 0x9F, 0xAF, 0xBF, 0xB0, 0xDF, 0xFF, 0xB1,
+	0xFF, 0xB3, 0x1F, 0xB4, 0x3F, 0xB5, 0x5F, 0xB6,
+	0x7F, 0xB7, 0x9F, 0xB8, 0xBF, 0xB9, 0xDF, 0xFF,
+	0x3B, 0xFF, 0xBC, 0x1F, 0xBD, 0x3F, 0xBE, 0x5F,
+	0xBF, 0x7F, 0xC0, 0x9F, 0xC1, 0xBF, 0xC2, 0xDF,
+	0xFF, 0xC3, 0xFF, 0xC5, 0x1F, 0xC6, 0x3F, 0xC7,
+	0x5F, 0xC8, 0x7F, 0xC9, 0x9F, 0xCA, 0xBF, 0xCB,
+	0xDF, 0xDF, 0xCC, 0xFF, 0xCE, 0x1F, 0x14, 0x4F,
+	0xFF, 0xD0, 0x6F, 0xD1, 0x8F, 0xD2, 0xAF, 0xD3,
+	0xCF, 0xFF, 0xD4, 0xEF, 0xD6, 0x0F, 0xD7, 0x2F,
+	0xD8, 0x4F, 0xD9, 0x6F, 0xDA, 0x8F, 0xDB, 0xAF,
+	0xDC, 0xCF, 0xFF, 0xDD, 0xEF, 0xDF, 0x0F, 0xE0,
+	0x2F, 0xE1, 0x4F, 0x63, 0xEF, 0xE3, 0x8F, 0xE4,
+	0xAF, 0xE5, 0xCF, 0xFF, 0xE6, 0xEF, 0xE8, 0x0F,
+	0xE9, 0x2F, 0xEA, 0x4F, 0xEB, 0x6F, 0xEC, 0x8F,
+	0xED, 0xAF, 0xEE, 0xCF, 0xFE, 0xEF, 0xEF, 0xF1,
+	0x0F, 0xF2, 0x2F, 0xF3, 0x4F, 0xF4, 0x6F, 0xF5,
+	0x8F, 0x77, 0xD6, 0x14, 0xFF, 0xF7, 0x4F, 0xF8,
+	0x6F, 0xF9, 0x8F, 0xFA, 0xAF, 0xFB, 0xCF, 0xFC,
+	0xEF, 0xFE, 0x0F, 0xFF, 0x2F, 0xFF, 0x00, 0x4F,
+	0x01, 0x6F, 0x02, 0x8F, 0x03, 0xAF, 0x04, 0xCF,
+	0x05, 0xEF, 0x07, 0x0F, 0x08, 0x2F, 0xFF, 0x09,
+	0x4F, 0x13, 0xEF, 0x0B, 0x8F, 0x0C, 0xAF, 0x0D,
+	0xCF, 0x0E, 0xEF, 0x10, 0x0F, 0x11, 0x2F, 0xFF,
+	0x12, 0x4F, 0x13, 0x6F, 0x14, 0x8F, 0x15, 0xAF,
+	0x16, 0xCF, 0x17, 0xEF, 0x19, 0x0F, 0x1A, 0x2F,
+	0xFF, 0x1B, 0x4F, 0x1C, 0x6F, 0x1D, 0x8F, 0x9F,
+	0xBF, 0x1F, 0xCF, 0x20, 0xEF, 0x22, 0x0F, 0x23,
+	0x2F, 0xFF, 0x24, 0x4F, 0x25, 0x6F, 0x26, 0x8F,
+	0x27, 0xAF, 0x28, 0xCF, 0x29, 0xEF, 0x2B, 0x0F,
+	0x2C, 0x2F, 0xFF, 0x2D, 0x4F, 0x2E, 0x6F, 0x2F,
+	0x8F, 0x30, 0xAF, 0x31, 0xCF, 0xB3, 0xBF, 0x34,
+	0x0F, 0x35, 0x2F, 0xFF, 0x36, 0x4F, 0x37, 0x6F,
+	0x38, 0x8F, 0x39, 0xAF, 0x3A, 0xCF, 0x3B, 0xEF,
+	0x3D, 0x0F, 0x3E, 0x2F, 0xFF, 0x3F, 0x4F, 0x40,
+	0x6F, 0x41, 0x8F, 0x42, 0xAF, 0x43, 0xCF, 0x44,
+	0xEF, 0xC7, 0xBF, 0x47, 0x2F, 0xFF, 0x48, 0x4F,
+	0x49, 0x6F, 0x4A, 0x8F, 0x4B, 0xAF, 0x4C, 0xCF,
+	0x4D, 0xEF, 0x4F, 0x0F, 0x50, 0x2F, 0xFF, 0x51,
+	0x4F, 0x52, 0x6F, 0x53, 0x8F, 0x54, 0xAF, 0x55,
+	0xCF, 0x56, 0xEF, 0x58, 0x0F, 0x59, 0x2F, 0xFF,
+	0xDB, 0xBF, 0x5B, 0x6F, 0x5C, 0x8F, 0x5D, 0xAF,
+	0x5E, 0xCF, 0x5F, 0xEF, 0x61, 0x0F, 0x62, 0x2F,
+	0xFF, 0x63, 0x4F, 0x64, 0x6F, 0x65, 0x8F, 0x66,
+	0xAF, 0x67, 0xCF, 0x68, 0xEF, 0x6A, 0x0F, 0x6B,
+	0x2F, 0xFF, 0x6C, 0x4F, 0x6D, 0x6F, 0xEF, 0xBF,
+	0x6F, 0xAF, 0x70, 0xCF, 0x71, 0xEF, 0x73, 0x0F,
+	0x74, 0x2F, 0xFF, 0x75, 0x4F, 0x76, 0x6F, 0x77,
+	0x8F, 0x78, 0xAF, 0x79, 0xCF, 0x7A, 0xEF, 0x7C,
+	0x0F, 0x7D, 0x2F, 0xF9, 0x7E, 0x4F, 0x7F, 0x6F,
+	0x80, 0x8F, 0x81, 0xAF, 0xB4, 0x90, 0x15, 0x15,
+	0x83, 0x1F, 0xFF, 0x84, 0x3F, 0x85, 0x5F, 0x86,
+	0x7F, 0x87, 0x9F, 0x88, 0xBF, 0x89, 0xDF, 0x8A,
+	0xFF, 0x8C, 0x1F, 0xFF, 0x8D, 0x3F, 0x8E, 0x5F,
+	0x8F, 0x7F, 0x90, 0x9F, 0x91, 0xBF, 0x92, 0xDF,
+	0x93, 0xFF, 0x95, 0x1F, 0xFF, 0x9F, 0xCA, 0x97,
+	0x0F, 0x98, 0x2F, 0x99, 0x4F, 0x9A, 0x6F, 0x9B,
+	0x8F, 0x9C, 0xAF, 0x9D, 0xCF, 0xFF, 0x9E, 0xEF,
+	0xA0, 0x0F, 0xA1, 0x2F, 0xA2, 0x4F, 0xA3, 0x6F,
+	0xA4, 0x8F, 0xA5, 0xAF, 0xA6, 0xCF, 0xFF, 0xA7,
+	0xEF, 0xA9, 0x0F, 0x13, 0xFF, 0xAB, 0x4F, 0xAC,
+	0x6F, 0xAD, 0x8F, 0xAE, 0xAF, 0xAF, 0xCF, 0xFF,
+	0xB0, 0xEF, 0xB2, 0x0F, 0xB3, 0x2F, 0xB4, 0x4F,
+	0xB5, 0x6F, 0xB6, 0x8F, 0xB7, 0xAF, 0xB8, 0xCF,
+	0xFF, 0xB9, 0xEF, 0xBB, 0x0F, 0xBC, 0x2F, 0xBD,
+	0x4F, 0xBE, 0x6F, 0xBF, 0x8F, 0xC0, 0xAF, 0xC1,
+	0xCF, 0xFF, 0xC2, 0xEF, 0xC4, 0x0F, 0xC5, 0x2F,
+	0xC6, 0x4F, 0xC7, 0x6F, 0xC8, 0x8F, 0xC9, 0xAF,
+	0xCA, 0xCF, 0xFF, 0xCB, 0xEF, 0xCD, 0x0F, 0xCE,
+	0x2F, 0xCF, 0x4F, 0xD0, 0x6F, 0xD1, 0x8F, 0xD2,
+	0xAF, 0xD3, 0xCF, 0xFF, 0xD4, 0xEF, 0xD6, 0x0F,
+	0xD7, 0x2F, 0xD8, 0x4F, 0xD9, 0x6F, 0xDA, 0x8F,
+	0xDB, 0xAF, 0xDC, 0xCF, 0xFF, 0xDD, 0xEF, 0xDF,
+	0x0F, 0xE0, 0x2F, 0xE1, 0x4F, 0xE2, 0x6F, 0xE3,
+	0x8F, 0xE4, 0xAF, 0xE5, 0xCF, 0xFF, 0xE6, 0xEF,
+	0xE8, 0x0F, 0xE9, 0x2F, 0xEA, 0x4F, 0xEB, 0x6F,
+	0xEC, 0x8F, 0xED, 0xAF, 0xEE, 0xCF, 0xFF, 0xEF,
+	0xEF, 0xF1, 0x0F, 0xF2, 0x2F, 0xF3, 0x4F, 0xF4,
+	0x6F, 0xF5, 0x8F, 0xF6, 0xAF, 0xF7, 0xCF, 0xFF,
+	0xF8, 0xEF, 0xFA, 0x0F, 0xFB, 0x2F, 0xFC, 0x4F,
+	0xFD, 0x6F, 0xFE, 0x8F, 0xFF, 0xAF, 0x00, 0xCF,
+	0xFF, 0x01, 0xEF, 0x03, 0x0F, 0x04, 0x2F, 0x05,
+	0x4F, 0x06, 0x6F, 0x07, 0x8F, 0x08, 0xAF, 0x09,
+	0xCF, 0xFF, 0x0A, 0xEF, 0x0C, 0x0F, 0x0D, 0x2F,
+	0x0E, 0x4F, 0x0F, 0x6F, 0x10, 0x8F, 0x11, 0xAF,
+	0x12, 0xCF, 0xFF, 0x13, 0xEF, 0x15, 0x0F, 0x16,
+	0x2F, 0x17, 0x4F, 0x18, 0x6F, 0x19, 0x8F, 0x1A,
+	0xAF, 0x1B, 0xCF, 0xFF, 0x1C, 0xEF, 0x1E, 0x0F,
+	0x1F, 0x2F, 0x20, 0x4F, 0x21, 0x6F, 0x22, 0x8F,
+	0x23, 0xAF, 0x24, 0xCF, 0xFF, 0x25, 0xEF, 0x27,
+	0x0F, 0x28, 0x2F, 0x29, 0x4F, 0x2A, 0x6F, 0x2B,
+	0x8F, 0x2C, 0xAF, 0x2D, 0xCF, 0xFF, 0x2E, 0xEF,
+	0x30, 0x0F, 0x31, 0x2F, 0x32, 0x4F, 0x33, 0x6F,
+	0x34, 0x8F, 0x35, 0xAF, 0x36, 0xCF, 0xFF, 0x37,
+	0xEF, 0x39, 0x0F, 0x3A, 0x2F, 0x3B, 0x4F, 0x3C,
+	0x6F, 0x3D, 0x8F, 0x3E, 0xAF, 0x3F, 0xCF, 0xFF,
+	0x40, 0xEF, 0x42, 0x0F, 0x43, 0x2F, 0x44, 0x4F,
+	0x45, 0x6F, 0x46, 0x8F, 0x47, 0xAF, 0x48, 0xCF,
+	0xFF, 0x49, 0xEF, 0x4B, 0x0F, 0x4C, 0x2F, 0x4D,
+	0x4F, 0x4E, 0x6F, 0x4F, 0x8F, 0x50, 0xAF, 0x51,
+	0xCF, 0xFF, 0x52, 0xEF, 0x54, 0x0F, 0x55, 0x2F,
+	0x56, 0x4F, 0x57, 0x6F, 0x58, 0x8F, 0x59, 0xAF,
+	0x5A, 0xCF, 0xFF, 0x5B, 0xEF, 0x5D, 0x0F, 0x5E,
+	0x2F, 0x5F, 0x4F, 0x60, 0x6F, 0x61, 0x8F, 0x62,
+	0xAF, 0x63, 0xCF, 0xFF, 0x64, 0xEF, 0x66, 0x0F,
+	0x67, 0x2F, 0x68, 0x4F, 0x69, 0x6F, 0x6A, 0x8F,
+	0x6B, 0xAF, 0x6C, 0xCF, 0xFF, 0x6D, 0xEF, 0x6F,
+	0x0F, 0x70, 0x2F, 0x71, 0x4F, 0x72, 0x6F, 0x73,
+	0x8F, 0x74, 0xAF, 0x75, 0xCF, 0xFF, 0x76, 0xEF,
+	0x78, 0x0F, 0x79, 0x2F, 0x7A, 0x4F, 0x7B, 0x6F,
+	0x7C, 0x8F, 0x7D, 0xAF, 0x7E, 0xCF, 0xFF, 0x7F,
+	0xEF, 0x81, 0x0F, 0x82, 0x2F, 0x83, 0x4F, 0x84,
+	0x6F, 0x85, 0x8F, 0x86, 0xAF, 0x87, 0xCF, 0xFF,
+	0x88, 0xEF, 0x8A, 0x0F, 0x8B, 0x2F, 0x8C, 0x4F,
+	0x8D, 0x6F, 0x8E, 0x8F, 0x8F, 0xAF, 0x90, 0xCF,
+	0xFF, 0x91, 0xEF, 0x93, 0x0F, 0x94, 0x2F, 0x95,
+	0x4F, 0x96, 0x6F, 0x97, 0x8F, 0x98, 0xAF, 0x99,
+	0xCF, 0xFF, 0x9A, 0xEF, 0x9C, 0x0F, 0x9D, 0x2F,
+	0x9E, 0x4F, 0x9F, 0x6F, 0xA0, 0x8F, 0xA1, 0xAF,
+	0xA2, 0xCF, 0xFF, 0xA3, 0xEF, 0xA5, 0x0F, 0xA6,
+	0x2F, 0xA7, 0x4F, 0xA8, 0x6F, 0xA9, 0x8F, 0xAA,
+	0xAF, 0xAB, 0xCF, 0xFF, 0xAC, 0xEF, 0xAE, 0x0F,
+	0xAF, 0x2F, 0xB0, 0x4F, 0xB1, 0x6F, 0xB2, 0x8F,
+	0xB3, 0xAF, 0xB4, 0xCF, 0xFF, 0xB5, 0xEF, 0xB7,
+	0x0F, 0xB8, 0x2F, 0xB9, 0x4F, 0xBA, 0x6F, 0xBB,
+	0x8F, 0xBC, 0xAF, 0xBD, 0xCF, 0xFF, 0xBE, 0xEF,
+	0xC0, 0x0F, 0xC1, 0x2F, 0xC2, 0x4F, 0xC3, 0x6F,
+	0xC4, 0x8F, 0xC5, 0xAF, 0xC6, 0xCF, 0xFF, 0xC7,
+	0xEF, 0xC9, 0x0F, 0xCA, 0x2F, 0xCB, 0x4F, 0xCC,
+	0x6F, 0xCD, 0x8F, 0xCE, 0xAF, 0xCF, 0xCF, 0xFF,
+	0xD0, 0xEF, 0xD2, 0x0F, 0xD3, 0x2F, 0xD4, 0x4F,
+	0xD5, 0x6F, 0xD6, 0x8F, 0xD7, 0xAF, 0xD8, 0xCF,
+	0xFF, 0xD9, 0xEF, 0xDB, 0x0F, 0xDC, 0x2F, 0xDD,
+	0x4F, 0xDE, 0x6F, 0xDF, 0x8F, 0xE0, 0xAF, 0xE1,
+	0xCF, 0xFF, 0xE2, 0xEF, 0xE4, 0x0F, 0xE5, 0x2F,
+	0xE6, 0x4F, 0xE7, 0x6F, 0xE8, 0x8F, 0xE9, 0xAF,
+	0xEA, 0xCF, 0xFF, 0xEB, 0xEF, 0xED, 0x0F, 0xEE,
+	0x2F, 0xEF, 0x4F, 0xF0, 0x6F, 0xF1, 0x8F, 0xF2,
+	0xAF, 0xF3, 0xCF, 0xFF, 0xF4, 0xEF, 0xF6, 0x0F,
+	0xF7, 0x2F, 0xF8, 0x4F, 0xF9, 0x6F, 0xFA, 0x8F,
+	0xFB, 0xAF, 0xFC, 0xCF, 0xFF, 0xFD, 0xEF, 0xFF,
+	0x0F, 0x00, 0x2F, 0x01, 0x4F, 0x02, 0x6F, 0x03,
+	0x8F, 0x04, 0xAF, 0x05, 0xCF, 0xFF, 0x06, 0xEF,
+	0x08, 0x0F, 0x09, 0x2F, 0x0A, 0x4F, 0x0B, 0x6F,
+	0x0C, 0x8F, 0x0D, 0xAF, 0x0E, 0xCF, 0xFF, 0x0F,
+	0xEF, 0x11, 0x0F, 0x12, 0x2F, 0x13, 0x4F, 0x14,
+	0x6F, 0x15, 0x8F, 0x16, 0xAF, 0x17, 0xCF, 0xFF,
+	0x18, 0xEF, 0x1A, 0x0F, 0x1B, 0x2F, 0x1C, 0x4F,
+	0x1D, 0x6F, 0x1E, 0x8F, 0x1F, 0xAF, 0x20, 0xCF,
+	0xFF, 0x21, 0xEF, 0x23, 0x0F, 0x24, 0x2F, 0x25,
+	0x4F, 0x26, 0x6F, 0x27, 0x8F, 0x28, 0xAF, 0x29,
+	0xCF, 0xFF, 0x2A, 0xEF, 0x2C, 0x0F, 0x2D, 0x2F,
+	0x2E, 0x4F, 0x2F, 0x6F, 0x30, 0x8F, 0x31, 0xAF,
+	0x32, 0xCF, 0xFF, 0x33, 0xEF, 0x35, 0x0F, 0x36,
+	0x2F, 0x37, 0x4F, 0x38, 0x6F, 0x39, 0x8F, 0x3A,
+	0xAF, 0x3B, 0xCF, 0xFF, 0x3C, 0xEF, 0x3E, 0x0F,
+	0x3F, 0x2F, 0x40, 0x4F, 0x41, 0x6F, 0x42, 0x8F,
+	0x43, 0xAF, 0x44, 0xCF, 0xFF, 0x45, 0xEF, 0x47,
+	0x0F, 0x48, 0x2F, 0x49, 0x4F, 0x4A, 0x6F, 0x4B,
+	0x8F, 0x4C, 0xAF, 0x4D, 0xCF, 0xFF, 0x4E, 0xEF,
+	0x50, 0x0F, 0x51, 0x2F, 0x52, 0x4F, 0x53, 0x6F,
+	0x54, 0x8F, 0x55, 0xAF, 0x56, 0xCF, 0xFF, 0x57,
+	0xEF, 0x59, 0x0F, 0x5A, 0x2F, 0x5B, 0x4F, 0x5C,
+	0x6F, 0x5D, 0x8F, 0x5E, 0xAF, 0x5F, 0xCF, 0xFF,
+	0x60, 0xEF, 0x62, 0x0F, 0x63, 0x2F, 0x64, 0x4F,
+	0x65, 0x6F, 0x66, 0x8F, 0x67, 0xAF, 0x68, 0xCF,
+	0xFF, 0x69, 0xEF, 0x6B, 0x0F, 0x6C, 0x2F, 0x6D,
+	0x4F, 0x6E, 0x6F, 0x6F, 0x8F, 0x70, 0xAF, 0x71,
+	0xCF, 0xFF, 0x72, 0xEF, 0x74, 0x0F, 0x75, 0x2F,
+	0x76, 0x4F, 0x77, 0x6F, 0x78, 0x8F, 0x79, 0xAF,
+	0x7A, 0xCF, 0xFF, 0x7B, 0xEF, 0x7D, 0x0F, 0x7E,
+	0x2F, 0x7F, 0x4F, 0x80, 0x6F, 0x81, 0x8F, 0x82,
+	0xAF, 0x83, 0xCF, 0xFF, 0x84, 0xEF, 0x86, 0x0F,
+	0x87, 0x2F, 0x88, 0x4F, 0x89, 0x6F, 0x8A, 0x8F,
+	0x8B, 0xAF, 0x8C, 0xCF, 0xFF, 0x8D, 0xEF, 0x8F,
+	0x0F, 0x90, 0x2F, 0x91, 0x4F, 0x92, 0x6F, 0x93,
+	0x8F, 0x94, 0xAF, 0x95, 0xCF, 0xFF, 0x96, 0xEF,
+	0x98, 0x0F, 0x99, 0x2F, 0x9A, 0x4F, 0x9B, 0x6F,
+	0x9C, 0x8F, 0x9D, 0xAF, 0x9E, 0xCF, 0xFF, 0x9F,
+	0xEF, 0xA1, 0x0F, 0xA2, 0x2F, 0xA3, 0x4F, 0xA4,
+	0x6F, 0xA5, 0x8F, 0xA6, 0xAF, 0xA7, 0xCF, 0xFF,
+	0xA8, 0xEF, 0xAA, 0x0F, 0xAB, 0x2F, 0xAC, 0x4F,
+	0xAD, 0x6F, 0xAE, 0x8F, 0xAF, 0xAF, 0xB0, 0xCF,
+	0xFF, 0xB1, 0xEF, 0xB3, 0x0F, 0xB4, 0x2F, 0xB5,
+	0x4F, 0xB6, 0x6F, 0xB7, 0x8F, 0xB8, 0xAF, 0xB9,
+	0xCF, 0xFF, 0xBA, 0xEF, 0xBC, 0x0F, 0xBD, 0x2F,
+	0xBE, 0x4F, 0xBF, 0x6F, 0xC0, 0x8F, 0xC1, 0xAF,
+	0xC2, 0xCF, 0xFF, 0xC3, 0xEF, 0xC5, 0x0F, 0xC6,
+	0x2F, 0xC7, 0x4F, 0xC8, 0x6F, 0xC9, 0x8F, 0xCA,
+	0xAF, 0xCB, 0xCF, 0xFF, 0xCC, 0xEF, 0xCE, 0x0F,
+	0xCF, 0x2F, 0xD0, 0x4F, 0xD1, 0x6F, 0xD2, 0x8F,
+	0xD3, 0xAF, 0xD4, 0xCF, 0xFF, 0xD5, 0xEF, 0xD7,
+	0x0F, 0xD8, 0x2F, 0xD9, 0x4F, 0xDA, 0x6F, 0xDB,
+	0x8F, 0xDC, 0xAF, 0xDD, 0xCF, 0xFF, 0xDE, 0xEF,
+	0xE0, 0x0F, 0xE1, 0x2F, 0xE2, 0x4F, 0xE3, 0x6F,
+	0xE4, 0x8F, 0xE5, 0xAF, 0xE6, 0xCF, 0xFF, 0xE7,
+	0xEF, 0xE9, 0x0F, 0xEA, 0x2F, 0xEB, 0x4F, 0xEC,
+	0x6F, 0xED, 0x8F, 0xEE, 0xAF, 0xEF, 0xCF, 0xFF,
+	0xF0, 0xEF, 0xF2, 0x0F, 0xF3, 0x2F, 0xF4, 0x4F,
+	0xF5, 0x6F, 0xF6, 0x8F, 0xF7, 0xAF, 0xF8, 0xCF,
+	0xFF, 0xF9, 0xEF, 0xFB, 0x0F, 0xFC, 0x2F, 0xFD,
+	0x4F, 0xFE, 0x6F, 0xFF, 0x8F, 0x00, 0xAF, 0x01,
+	0xCF, 0xFF, 0x02, 0xEF, 0x04, 0x0F, 0x05, 0x2F,
+	0x06, 0x4F, 0x07, 0x6F, 0x08, 0x8F, 0x09, 0xAF,
+	0x0A, 0xCF, 0xFF, 0x0B, 0xEF, 0x0D, 0x0F, 0x0E,
+	0x2F, 0x0F, 0x4F, 0x10, 0x6F, 0x11, 0x8F, 0x12,
+	0xAF, 0x13, 0xCF, 0xFF, 0x14, 0xEF, 0x16, 0x0F,
+	0x17, 0x2F, 0x18, 0x4F, 0x19, 0x6F, 0x1A, 0x8F,
+	0x1B, 0xAF, 0x1C, 0xCF, 0xFF, 0x1D, 0xEF, 0x1F,
+	0x0F, 0x20, 0x2F, 0x21, 0x4F, 0x22, 0x6F, 0x23,
+	0x8F, 0x24, 0xAF, 0x25, 0xCF, 0xFF, 0x26, 0xEF,
+	0x28, 0x0F, 0x29, 0x2F, 0x2A, 0x4F, 0x2B, 0x6F,
+	0x2C, 0x8F, 0x2D, 0xAF, 0x2E, 0xCF, 0xFF, 0x2F,
+	0xEF, 0x31, 0x0F, 0x32, 0x2F, 0x33, 0x4F, 0x34,
+	0x6F, 0x35, 0x8F, 0x36, 0xAF, 0x37, 0xCF, 0xFF,
+	0x38, 0xEF, 0x3A, 0x0F, 0x3B, 0x2F, 0x3C, 0x4F,
+	0x3D, 0x6F, 0x3E, 0x8F, 0x3F, 0xAF, 0x40, 0xCF,
+	0xFF, 0x41, 0xEF, 0x43, 0x0F, 0x44, 0x2F, 0x45,
+	0x4F, 0x46, 0x6F, 0x47, 0x8F, 0x48, 0xAF, 0x49,
+	0xCF, 0xFF, 0x4A, 0xEF, 0x4C, 0x0F, 0x4D, 0x2F,
+	0x4E, 0x4F, 0x4F, 0x6F, 0x50, 0x8F, 0x51, 0xAF,
+	0x52, 0xCF, 0xFF, 0x53, 0xEF, 0x55, 0x0F, 0x56,
+	0x2F, 0x57, 0x4F, 0x58, 0x6F, 0x59, 0x8F, 0x5A,
+	0xAF, 0x5B, 0xCF, 0xFF, 0x5C, 0xEF, 0x5E, 0x0F,
+	0x5F, 0x2F, 0x60, 0x4F, 0x61, 0x6F, 0x62, 0x8F,
+	0x63, 0xAF, 0x64, 0xCF, 0xFF, 0x65, 0xEF, 0x67,
+	0x0F, 0x68, 0x2F, 0x69, 0x4F, 0x6A, 0x6F, 0x6B,
+	0x8F, 0x6C, 0xAF, 0x6D, 0xCF, 0xFF, 0x6E, 0xEF,
+	0x70, 0x0F, 0x71, 0x2F, 0x72, 0x4F, 0x73, 0x6F,
+	0x74, 0x8F, 0x75, 0xAF, 0x76, 0xCF, 0xFF, 0x77,
+	0xEF, 0x79, 0x0F, 0x7A, 0x2F, 0x7B, 0x4F, 0x7C,
+	0x6F, 0x7D, 0x8F, 0x7E, 0xAF, 0x7F, 0xCF, 0xFF,
+	0x80, 0xEF, 0x82, 0x0F, 0x83, 0x2F, 0x84, 0x4F,
+	0x85, 0x6F, 0x86, 0x8F, 0x87, 0xAF, 0x88, 0xCF,
+	0xFF, 0x89, 0xEF, 0x8B, 0x0F, 0x8C, 0x2F, 0x8D,
+	0x4F, 0x8E, 0x6F, 0x8F, 0x8F, 0x90, 0xAF, 0x91,
+	0xCF, 0xFF, 0x92, 0xEF, 0x94, 0x0F, 0x95, 0x2F,
+	0x96, 0x4F, 0x97, 0x6F, 0x98, 0x8F, 0x99, 0xAF,
+	0x9A, 0xCF, 0xFF, 0x9B, 0xEF, 0x9D, 0x0F, 0x9E,
+	0x2F, 0x9F, 0x4F, 0xA0, 0x6F, 0xA1, 0x8F, 0xA2,
+	0xAF, 0xA3, 0xCF, 0xFF, 0xA4, 0xEF, 0xA6, 0x0F,
+	0xA7, 0x2F, 0xA8, 0x4F, 0xA9, 0x6F, 0xAA, 0x8F,
+	0xAB, 0xAF, 0xAC, 0xCF, 0xFF, 0xAD, 0xEF, 0xAF,
+	0x0F, 0xB0, 0x2F, 0xB1, 0x4F, 0xB2, 0x6F, 0xB3,
+	0x8F, 0xB4, 0xAF, 0xB5, 0xCF, 0xFF, 0xB6, 0xEF,
+	0xB8, 0x0F, 0xB9, 0x2F, 0xBA, 0x4F, 0xBB, 0x6F,
+	0xBC, 0x8F, 0xBD, 0xAF, 0xBE, 0xCF, 0xFF, 0xBF,
+	0xEF, 0xC1, 0x0F, 0xC2, 0x2F, 0xC3, 0x4F, 0xC4,
+	0x6F, 0xC5, 0x8F, 0xC6, 0xAF, 0xC7, 0xCF, 0xFF,
+	0xC8, 0xEF, 0xCA, 0x0F, 0xCB, 0x2F, 0xCC, 0x4F,
+	0xCD, 0x6F, 0xCE, 0x8F, 0xCF, 0xAF, 0xD0, 0xCF,
+	0xFF, 0xD1, 0xEF, 0xD3, 0x0F, 0xD4, 0x2F, 0xD5,
+	0x4F, 0xD6, 0x6F, 0xD7, 0x8F, 0xD8, 0xAF, 0xD9,
+	0xCF, 0xFF, 0xDA, 0xEF, 0xDC, 0x0F, 0xDD, 0x2F,
+	0xDE, 0x4F, 0xDF, 0x6F, 0xE0, 0x8F, 0xE1, 0xAF,
+	0xE2, 0xCF, 0xFF, 0xE3, 0xEF, 0xE5, 0x0F, 0xE6,
+	0x2F, 0xE7, 0x4F, 0xE8, 0x6F, 0xE9, 0x8F, 0xEA,
+	0xAF, 0xEB, 0xCF, 0xFF, 0xEC, 0xEF, 0xEE, 0x0F,
+	0xEF, 0x2F, 0xF0, 0x4F, 0xF1, 0x6F, 0xF2, 0x8F,
+	0xF3, 0xAF, 0xF4, 0xCF, 0xFF, 0xF5, 0xEF, 0xF7,
+	0x0F, 0xF8, 0x2F, 0xF9, 0x4F, 0xFA, 0x6F, 0xFB,
+	0x8F, 0xFC, 0xAF, 0xFD, 0xCF, 0xFF, 0xFE, 0xEF,
+	0x00, 0x0F, 0x01, 0x2F, 0x02, 0x4F, 0x03, 0x6F,
+	0x04, 0x8F, 0x05, 0xAF, 0x06, 0xCF, 0xFF, 0x07,
+	0xEF, 0x09, 0x0F, 0x0A, 0x2F, 0x0B, 0x4F, 0x0C,
+	0x6F, 0x0D, 0x8F, 0x0E, 0xAF, 0x0F, 0xCF, 0xFF,
+	0x10, 0xEF, 0x12, 0x0F, 0x13, 0x2F, 0x14, 0x4F,
+	0x15, 0x6F, 0x16, 0x8F, 0x17, 0xAF, 0x18, 0xCF,
+	0xFF, 0x19, 0xEF, 0x1B, 0x0F, 0x1C, 0x2F, 0x1D,
+	0x4F, 0x1E, 0x6F, 0x1F, 0x8F, 0x20, 0xAF, 0x21,
+	0xCF, 0xFF, 0x22, 0xEF, 0x24, 0x0F, 0x25, 0x2F,
+	0x26, 0x4F, 0x27, 0x6F, 0x28, 0x8F, 0x29, 0xAF,
+	0x2A, 0xCF, 0xFF, 0x2B, 0xEF, 0x2D, 0x0F, 0x2E,
+	0x2F, 0x2F, 0x4F, 0x30, 0x6F, 0x31, 0x8F, 0x32,
+	0xAF, 0x33, 0xCF, 0xFF, 0x34, 0xEF, 0x36, 0x0F,
+	0x37, 0x2F, 0x38, 0x4F, 0x39, 0x6F, 0x3A, 0x8F,
+	0x3B, 0xAF, 0x3C, 0xCF, 0xFF, 0x3D, 0xEF, 0x3F,
+	0x0F, 0x40, 0x2F, 0x41, 0x4F, 0x42, 0x6F, 0x43,
+	0x8F, 0x44, 0xAF, 0x45, 0xCF, 0xFF, 0x46, 0xEF,
+	0x48, 0x0F, 0x49, 0x2F, 0x4A, 0x4F, 0x4B, 0x6F,
+	0x4C, 0x8F, 0x4D, 0xAF, 0x4E, 0xCF, 0xFF, 0x4F,
+	0xEF, 0x51, 0x0F, 0x52, 0x2F, 0x53, 0x4F, 0x54,
+	0x6F, 0x55, 0x8F, 0x56, 0xAF, 0x57, 0xCF, 0xFF,
+	0x58, 0xEF, 0x5A, 0x0F, 0x5B, 0x2F, 0x5C, 0x4F,
+	0x5D, 0x6F, 0x5E, 0x8F, 0x5F, 0xAF, 0x60, 0xCF,
+	0xFF, 0x61, 0xEF, 0x63, 0x0F, 0x64, 0x2F, 0x65,
+	0x4F, 0x66, 0x6F, 0x67, 0x8F, 0x68, 0xAF, 0x69,
+	0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2IntroCpsDataStreet2FMTownsProvider = { ARRAYSIZE(kEoB2IntroCpsDataStreet2FMTowns), kEoB2IntroCpsDataStreet2FMTowns };
+
+static const byte kEoB2IntroCpsDataDoorway1FMTowns[12976] = {
+	0xA3, 0x32, 0x00, 0x00, 0x50, 0x0C, 0x00, 0x00,
+	0x2B, 0x00, 0x00, 0x2C, 0x2C, 0x2D, 0x2D, 0x10,
+	0x2E, 0x2E, 0x2E, 0x00, 0xE1, 0x2D, 0x2C, 0x2B,
+	0x2D, 0xD3, 0x01, 0x21, 0x00, 0x54, 0x2A, 0x00,
+	0x10, 0x2B, 0x2C, 0x01, 0x02, 0x00, 0x48, 0x7C,
+	0x2A, 0x00, 0x00, 0x02, 0x42, 0x01, 0x95, 0x00,
+	0xE9, 0x02, 0xD6, 0x2D, 0x2A, 0x3F, 0x2A, 0x2E,
+	0x04, 0xB2, 0x05, 0x03, 0x00, 0x4F, 0x05, 0x80,
+	0x05, 0xF0, 0x00, 0x02, 0x1F, 0x2C, 0x2D, 0x2E,
+	0x02, 0xE0, 0x05, 0x41, 0x07, 0xD2, 0x07, 0x16,
+	0x01, 0xF5, 0xFE, 0x00, 0x56, 0x09, 0x81, 0x08,
+	0xF1, 0x0A, 0x65, 0x0A, 0xA3, 0x0A, 0x12, 0x0B,
+	0x71, 0x2A, 0xDF, 0x0B, 0xC0, 0x0B, 0xF0, 0x2C,
+	0x07, 0x26, 0x0D, 0xA8, 0x0D, 0xC0, 0x0E, 0xBC,
+	0x04, 0xC3, 0xDB, 0x0B, 0x5B, 0x0F, 0xE4, 0x2C,
+	0x10, 0x80, 0x0E, 0xBE, 0x00, 0x00, 0x0C, 0x13,
+	0xFF, 0xFF, 0x13, 0xF1, 0x0F, 0xB3, 0x0F, 0x3E,
+	0x01, 0x18, 0x13, 0xF4, 0x15, 0x77, 0x14, 0xE4,
+	0x17, 0x52, 0xFF, 0x10, 0x08, 0x13, 0xF0, 0x04,
+	0xE4, 0x13, 0x6C, 0x18, 0x55, 0x18, 0xE6, 0x13,
+	0xF1, 0x06, 0x78, 0xF7, 0x10, 0xA2, 0x1A, 0xE9,
+	0x14, 0x6A, 0x11, 0xD0, 0x2C, 0x1B, 0xF3, 0x12,
+	0xE1, 0x1C, 0x74, 0x9F, 0x17, 0xB3, 0x2A, 0x2D,
+	0x1F, 0xD0, 0x18, 0x62, 0x00, 0x91, 0x00, 0x10,
+	0x13, 0xFD, 0x7F, 0x2C, 0x13, 0xFF, 0x22, 0xE6,
+	0x22, 0x7B, 0x1A, 0x53, 0x0E, 0xBA, 0x13, 0xFF,
+	0x27, 0xFF, 0xFF, 0x0F, 0x94, 0x21, 0x92, 0x28,
+	0x66, 0x09, 0x80, 0x14, 0x79, 0x27, 0xF6, 0x22,
+	0x48, 0x20, 0xD7, 0xFD, 0x15, 0x68, 0x27, 0xF1,
+	0x18, 0x98, 0x2C, 0x82, 0x19, 0x9F, 0x1E, 0xE2,
+	0x2D, 0x1B, 0x20, 0xFF, 0x06, 0x66, 0x30, 0x40,
+	0x1C, 0x14, 0x0C, 0x1A, 0x28, 0x58, 0x32, 0x25,
+	0x26, 0xF1, 0x24, 0x22, 0xFF, 0x14, 0x22, 0x13,
+	0x50, 0x10, 0x5D, 0x27, 0xFF, 0x36, 0xB7, 0x04,
+	0x02, 0x31, 0xD8, 0x36, 0x80, 0xFD, 0x1B, 0x93,
+	0x19, 0xE1, 0x2C, 0x34, 0x0E, 0xB9, 0x27, 0xFF,
+	0x3B, 0xF2, 0x2A, 0x27, 0xFD, 0xFF, 0x3B, 0x04,
+	0x1D, 0x54, 0x32, 0x45, 0x1E, 0xC5, 0x13, 0xFA,
+	0x3B, 0x23, 0x35, 0x84, 0x3D, 0x13, 0xF7, 0x3E,
+	0xE1, 0x21, 0xE4, 0x3B, 0xF3, 0x3E, 0xB2, 0x2C,
+	0x40, 0x5E, 0x2D, 0x33, 0x2A, 0x94, 0xFF, 0x44,
+	0x00, 0x41, 0xC5, 0x42, 0xEC, 0x3D, 0x71, 0x15,
+	0xA0, 0x24, 0xD1, 0x14, 0x2A, 0x30, 0x12, 0xFF,
+	0x23, 0x64, 0x44, 0xD1, 0x0F, 0x50, 0x3B, 0xF5,
+	0x18, 0xC0, 0x3B, 0xFF, 0x3B, 0xFF, 0x3E, 0xB1,
+	0xFF, 0x28, 0x39, 0x14, 0x05, 0x0A, 0xA2, 0x07,
+	0x03, 0x46, 0x10, 0x0E, 0xB8, 0x3B, 0xFF, 0x4F,
+	0xF1, 0xFF, 0x16, 0xE0, 0x4F, 0xF9, 0x43, 0xE1,
+	0x1C, 0xA1, 0x44, 0x52, 0x26, 0xC2, 0x3C, 0x6C,
+	0x05, 0x3A, 0xFF, 0x38, 0xAA, 0x12, 0x38, 0x40,
+	0x02, 0x4F, 0xF3, 0x19, 0x16, 0x41, 0x3F, 0x3F,
+	0x58, 0x3C, 0x07, 0xFF, 0x2F, 0x05, 0x19, 0x24,
+	0x51, 0x73, 0x22, 0x59, 0x28, 0x4A, 0x2F, 0x12,
+	0x51, 0x30, 0x5A, 0xF4, 0xFF, 0x3B, 0x41, 0x00,
+	0x66, 0x30, 0xC1, 0x4F, 0xFF, 0x4A, 0xBC, 0x42,
+	0xB6, 0x0F, 0x82, 0x53, 0x66, 0xFF, 0x00, 0x65,
+	0x27, 0xFF, 0x4F, 0xFF, 0x4F, 0xFC, 0x5E, 0xFD,
+	0x4A, 0x65, 0x63, 0xFF, 0x65, 0x08, 0xFF, 0x12,
+	0x9A, 0x3B, 0xF7, 0x66, 0x16, 0x68, 0xE4, 0x24,
+	0x64, 0x65, 0x25, 0x0E, 0x74, 0x3A, 0xF1, 0xFF,
+	0x66, 0xB1, 0x55, 0x18, 0x2F, 0x78, 0x56, 0xCA,
+	0x6D, 0xF2, 0x50, 0x85, 0x2F, 0xB3, 0x6E, 0xF9,
+	0xFF, 0x5B, 0x84, 0x46, 0x41, 0x63, 0xFF, 0x51,
+	0xC1, 0x63, 0xFB, 0x5B, 0x04, 0x64, 0x44, 0x14,
+	0x23, 0xFF, 0x57, 0xC7, 0x6A, 0xA1, 0x3B, 0xFF,
+	0x63, 0xFF, 0x63, 0xFF, 0x33, 0x11, 0x08, 0x54,
+	0x76, 0xA1, 0xFF, 0x20, 0x0B, 0x4F, 0xF9, 0x6A,
+	0x63, 0x28, 0xFD, 0x63, 0xF7, 0x1C, 0xA7, 0x6D,
+	0xE9, 0x47, 0x44, 0xFF, 0x33, 0x7A, 0x5E, 0xA0,
+	0x7A, 0xC9, 0x78, 0x27, 0x79, 0x64, 0x62, 0xB4,
+	0x12, 0xD5, 0x50, 0x97, 0xFF, 0x63, 0x11, 0x83,
+	0x62, 0x63, 0x00, 0x27, 0xF3, 0x13, 0xD2, 0x3C,
+	0x43, 0x77, 0xFC, 0x39, 0x21, 0xFF, 0x4F, 0xFA,
+	0x68, 0x05, 0x87, 0x61, 0x07, 0xF8, 0x7D, 0x05,
+	0x06, 0x73, 0x85, 0x05, 0x77, 0xFF, 0xFF, 0x8B,
+	0xFF, 0x8A, 0x47, 0x59, 0xE4, 0x78, 0x9B, 0x4D,
+	0x03, 0x3A, 0xF5, 0x3B, 0xFC, 0x8C, 0xF7, 0xFF,
+	0x17, 0x23, 0x8B, 0xF4, 0x51, 0x75, 0x22, 0x89,
+	0x7D, 0x9E, 0x50, 0x01, 0x7F, 0x4F, 0x27, 0xE6,
+	0xFF, 0x51, 0x51, 0x18, 0x27, 0x66, 0xA0, 0x49,
+	0x93, 0x28, 0x32, 0x53, 0x10, 0x67, 0xD0, 0x5F,
+	0x32, 0xFF, 0x79, 0x02, 0x5B, 0x49, 0x8B, 0xFF,
+	0x27, 0xFB, 0x2E, 0x77, 0x8B, 0x02, 0x64, 0xD3,
+	0x4F, 0xF2, 0xFF, 0x9B, 0x82, 0x4F, 0xF7, 0x9C,
+	0x41, 0x8B, 0xFF, 0x9F, 0xFF, 0x5C, 0x60, 0x88,
+	0x44, 0x30, 0x34, 0xFE, 0x27, 0xF4, 0x97, 0x91,
+	0x24, 0x95, 0x77, 0xFB, 0x7E, 0x43, 0x49, 0xA4,
+	0x94, 0x49, 0x2C, 0xFF, 0x9F, 0xF1, 0x7B, 0xA9,
+	0x37, 0xF6, 0x90, 0xD3, 0x5A, 0x62, 0x88, 0xA3,
+	0x57, 0x60, 0x64, 0x00, 0xFD, 0x66, 0xD3, 0x93,
+	0xB6, 0x78, 0x33, 0x63, 0xD2, 0x0E, 0x24, 0x51,
+	0x32, 0x2D, 0x8B, 0xC3, 0xFF, 0x5D, 0xB4, 0x31,
+	0xE2, 0xA6, 0x14, 0xAA, 0xD0, 0x07, 0x07, 0x6B,
+	0x01, 0x13, 0xFF, 0xAE, 0xBC, 0xFF, 0x7E, 0x81,
+	0x6D, 0xA1, 0x6F, 0x32, 0xA5, 0x91, 0x9F, 0x63,
+	0xAF, 0x18, 0x77, 0xFF, 0x9F, 0xFF, 0xFF, 0x55,
+	0x3F, 0xAF, 0x47, 0x6E, 0x94, 0x89, 0xA6, 0xAA,
+	0x52, 0x9B, 0xA7, 0x72, 0x26, 0x83, 0x29, 0xFF,
+	0x8B, 0xFA, 0x86, 0xA7, 0x5D, 0x45, 0x78, 0xB5,
+	0xB5, 0x7B, 0x73, 0x42, 0x51, 0x77, 0x9D, 0xA3,
+	0xFF, 0x44, 0x13, 0x2C, 0x59, 0x56, 0x1C, 0xBC,
+	0xA1, 0x55, 0x18, 0xB3, 0xF1, 0x60, 0xC5, 0xBF,
+	0xA2, 0xFF, 0xB3, 0xFF, 0x4F, 0xFE, 0x90, 0x74,
+	0xB3, 0x10, 0xB7, 0x63, 0xC0, 0x07, 0x56, 0xA5,
+	0xBC, 0xB5, 0xFF, 0xB3, 0xFF, 0xC7, 0xF2, 0xA6,
+	0x49, 0x1D, 0xC0, 0xB9, 0x13, 0x3F, 0xC3, 0x98,
+	0xB4, 0x4D, 0x7D, 0xFF, 0xC7, 0xF1, 0x0C, 0x6C,
+	0xC6, 0x3F, 0xB3, 0xF3, 0xC2, 0xC2, 0x9A, 0x53,
+	0xB4, 0x3F, 0x65, 0x13, 0xFF, 0x33, 0xF4, 0xC8,
+	0x10, 0xCA, 0x8F, 0x63, 0xE1, 0x93, 0x77, 0x95,
+	0xA9, 0x92, 0x35, 0x63, 0x20, 0xFF, 0xA3, 0x91,
+	0xD4, 0x20, 0xC7, 0xF2, 0x0B, 0xF1, 0x74, 0x38,
+	0x4F, 0xFF, 0x4A, 0xBF, 0xD6, 0x1B, 0xFF, 0xD2,
+	0xDC, 0x0E, 0xB9, 0xC7, 0xFF, 0xDB, 0xFF, 0x31,
+	0xC4, 0xC5, 0x37, 0x24, 0x29, 0x9F, 0xFF, 0xFD,
+	0xC4, 0x17, 0xD5, 0x84, 0xDA, 0xC6, 0xC0, 0x81,
+	0xDB, 0xF0, 0xA4, 0xF5, 0x2E, 0xBE, 0x9A, 0xCF,
+	0xAE, 0x68, 0xC8, 0x45, 0x2D, 0x2E, 0xD7, 0x53,
+	0x3B, 0xFF, 0x40, 0x2D, 0xAF, 0x43, 0xFF, 0xD7,
+	0x80, 0xC8, 0x91, 0x77, 0x21, 0xA2, 0x02, 0xE0,
+	0xC1, 0x4F, 0xF0, 0xB0, 0xF4, 0x52, 0x32, 0xFF,
+	0x27, 0xFF, 0xDB, 0xFC, 0xE2, 0xC8, 0x87, 0x75,
+	0x1A, 0x08, 0xE0, 0x62, 0xB3, 0xFF, 0xDB, 0xFF,
+	0xFF, 0x13, 0xFC, 0x4B, 0x43, 0xE6, 0x18, 0x48,
+	0x04, 0xD2, 0xD5, 0xAD, 0x12, 0xEB, 0xB0, 0x7F,
+	0xF7, 0xFD, 0x84, 0xB3, 0xEC, 0xE1, 0xB0, 0x38,
+	0xED, 0xD0, 0xEF, 0xF3, 0x05, 0x21, 0x2A, 0x14,
+	0x01, 0xFF, 0x86, 0x97, 0x73, 0x01, 0x53, 0x06,
+	0xD5, 0x30, 0xD5, 0x63, 0x3B, 0xFF, 0xF1, 0xF1,
+	0x01, 0xE1, 0xFF, 0xEF, 0x53, 0x86, 0x65, 0xF9,
+	0x74, 0x3F, 0x33, 0x51, 0x51, 0xE0, 0xA7, 0x9C,
+	0x43, 0x01, 0xE5, 0xFF, 0xEF, 0xFE, 0xEE, 0xD0,
+	0xFE, 0xB8, 0xFC, 0x49, 0xF2, 0x80, 0xDC, 0xA8,
+	0xDC, 0xE4, 0xDB, 0xF6, 0xFF, 0x74, 0xC3, 0xEF,
+	0xFF, 0xF5, 0x3F, 0xD6, 0x3C, 0xBE, 0x73, 0x87,
+	0x43, 0xF1, 0x36, 0x97, 0xB4, 0xFD, 0x7A, 0xB8,
+	0x98, 0xB3, 0xA8, 0x35, 0xB7, 0xD3, 0xDB, 0xF4,
+	0x5D, 0xB6, 0x2E, 0xC8, 0x2A, 0xFF, 0x8A, 0x76,
+	0x00, 0x05, 0xB4, 0x12, 0xF6, 0x49, 0xFC, 0xA6,
+	0x15, 0xF3, 0xCC, 0x22, 0xFE, 0xD4, 0xFF, 0xF9,
+	0xD8, 0x8B, 0x92, 0x8C, 0x96, 0xA8, 0x63, 0xC8,
+	0x43, 0xED, 0x33, 0x13, 0xFF, 0xFE, 0xB9, 0xFF,
+	0xA8, 0x76, 0xB7, 0x72, 0x03, 0x24, 0x95, 0xC9,
+	0xCF, 0xD3, 0xFD, 0x54, 0x13, 0xCA, 0xDB, 0xF7,
+	0xFF, 0xB3, 0xFD, 0xFB, 0xB7, 0x19, 0x31, 0xA4,
+	0x42, 0xE5, 0x1A, 0x13, 0xF5, 0xE2, 0x35, 0xAE,
+	0x22, 0xFF, 0xB7, 0x75, 0x02, 0xE8, 0x77, 0xF1,
+	0xFE, 0xB1, 0xFD, 0xD3, 0x14, 0x01, 0xEE, 0xB4,
+	0x60, 0x97, 0xFF, 0xFD, 0xF0, 0x13, 0xFA, 0x48,
+	0xFF, 0x16, 0x18, 0xE1, 0x87, 0xCB, 0x78, 0xAE,
+	0x74, 0x64, 0x72, 0xFF, 0xF4, 0x30, 0xF7, 0x04,
+	0xC4, 0x88, 0xB3, 0xF9, 0x07, 0x02, 0x3B, 0xFD,
+	0x81, 0x36, 0x66, 0xE2, 0xFF, 0xBD, 0x55, 0xF5,
+	0x42, 0x63, 0xF9, 0xF0, 0xF0, 0x13, 0xFF, 0x13,
+	0xFF, 0xEA, 0x76, 0x69, 0xD5, 0xFF, 0x6D, 0x69,
+	0xF5, 0x27, 0xEA, 0x57, 0xEE, 0xE2, 0x36, 0x51,
+	0xA7, 0x79, 0xBD, 0x22, 0x9F, 0xF1, 0xCF, 0xEA,
+	0x03, 0xE9, 0x01, 0x2A, 0x2A, 0x50, 0x23, 0xF2,
+	0x95, 0xE1, 0xC2, 0x13, 0xE9, 0xFF, 0xDC, 0x10,
+	0x14, 0xD7, 0x00, 0x98, 0xEC, 0xD0, 0x2A, 0x46,
+	0xF8, 0x36, 0x1A, 0xE7, 0xF6, 0xD4, 0xFF, 0x8C,
+	0x95, 0xE7, 0xB1, 0x8E, 0x52, 0xF3, 0x00, 0xA7,
+	0x10, 0xB3, 0xFC, 0x4F, 0xFF, 0xFC, 0x45, 0xFF,
+	0xF4, 0xA0, 0xD7, 0x7C, 0x3B, 0xF9, 0xFF, 0x93,
+	0x27, 0xFF, 0x27, 0xFF, 0xAE, 0x54, 0x9D, 0xFC,
+	0xFF, 0x48, 0x61, 0xD6, 0xD6, 0x27, 0xF7, 0x12,
+	0x73, 0x13, 0xF4, 0x9B, 0x87, 0xF0, 0x95, 0x63,
+	0xF2, 0xFF, 0xC4, 0x88, 0x64, 0x32, 0x96, 0x52,
+	0xEB, 0x96, 0x13, 0xB5, 0x00, 0x23, 0x13, 0xFF,
+	0x01, 0xD7, 0xFF, 0x28, 0x57, 0x86, 0x09, 0xF6,
+	0x62, 0xE5, 0x46, 0xC7, 0xF1, 0xFF, 0xC2, 0xF7,
+	0x33, 0x2F, 0xC2, 0xFF, 0x13, 0xFF, 0xDB, 0xF8,
+	0x6E, 0xD9, 0xD2, 0x58, 0x05, 0x64, 0xF1, 0x11,
+	0x92, 0x03, 0x13, 0xFF, 0xFF, 0x3B, 0xFF, 0xF5,
+	0x37, 0x30, 0x1A, 0x74, 0xD7, 0xC7, 0xE9, 0x82,
+	0x55, 0xEF, 0x63, 0xE8, 0xB5, 0xFF, 0xB4, 0x18,
+	0x63, 0xF4, 0x31, 0x16, 0x14, 0x03, 0x50, 0x2A,
+	0x3B, 0xE3, 0x13, 0xC6, 0xDC, 0x10, 0xFF, 0x00,
+	0xB8, 0x01, 0x2F, 0x28, 0x67, 0xF9, 0x56, 0x9B,
+	0x51, 0xC2, 0xB2, 0xD1, 0x66, 0xD3, 0x05, 0xFF,
+	0xEC, 0x06, 0x63, 0xFF, 0x77, 0xFB, 0x32, 0xC6,
+	0x43, 0x5D, 0xCE, 0x32, 0xEA, 0xBB, 0x4F, 0xFF,
+	0xFF, 0x4F, 0xFF, 0xC0, 0x50, 0xB3, 0x11, 0xE8,
+	0x66, 0x63, 0xE5, 0xEE, 0x19, 0x71, 0x53, 0xDB,
+	0x25, 0xFF, 0x27, 0xF4, 0x60, 0xD5, 0xEA, 0x78,
+	0x12, 0xF1, 0xBD, 0x92, 0xFF, 0x42, 0xD7, 0x61,
+	0x64, 0x37, 0xFF, 0x1E, 0x14, 0x13, 0x1F, 0x14,
+	0x3F, 0x14, 0x2F, 0xDA, 0x70, 0x92, 0xB5, 0x90,
+	0x95, 0x44, 0x64, 0xFF, 0x7F, 0xF8, 0xE3, 0x43,
+	0x3B, 0xFC, 0x7C, 0xD0, 0xEF, 0xF8, 0x6F, 0x46,
+	0xF9, 0x13, 0x69, 0xF6, 0xFF, 0x7A, 0x61, 0xC1,
+	0xA7, 0xA5, 0x41, 0x3B, 0xFF, 0x63, 0xFF, 0x2D,
+	0x35, 0x6F, 0x92, 0xFA, 0x75, 0xFF, 0xF6, 0x34,
+	0x06, 0x97, 0x3B, 0xFB, 0x33, 0xB6, 0xD8, 0xC3,
+	0xF9, 0x13, 0x6C, 0x76, 0x22, 0xB5, 0xBF, 0x6C,
+	0xC6, 0x2C, 0x15, 0x14, 0xC7, 0x26, 0x3B, 0xA6,
+	0xFE, 0x11, 0x52, 0xE0, 0x28, 0x1F, 0xFF, 0x01,
+	0x91, 0x28, 0x4F, 0xD7, 0xA4, 0x36, 0x45, 0xF2,
+	0xBA, 0x51, 0xA8, 0x12, 0xE9, 0x13, 0x01, 0xFF,
+	0xFE, 0xBB, 0x66, 0x97, 0x7D, 0x92, 0xBE, 0xB3,
+	0xFC, 0x47, 0xFE, 0xBA, 0xFF, 0x61, 0x77, 0xFF,
+	0xFF, 0x77, 0xFF, 0x8B, 0xF3, 0xDC, 0x66, 0xDC,
+	0x24, 0xFB, 0xD8, 0x4F, 0xF9, 0xDC, 0x66, 0x64,
+	0xFC, 0xFF, 0xFC, 0x23, 0x73, 0x24, 0xDF, 0x43,
+	0xC8, 0x73, 0x78, 0x45, 0x5A, 0xD1, 0x13, 0xBB,
+	0x0E, 0x04, 0xFF, 0x3C, 0x1F, 0x01, 0xD5, 0x3C,
+	0x7F, 0xF5, 0xA2, 0xF1, 0x12, 0x7F, 0x17, 0xFE,
+	0xC1, 0xFB, 0xF1, 0xFF, 0x75, 0x07, 0x63, 0xFF,
+	0x4F, 0xFA, 0x09, 0x31, 0xFF, 0x26, 0x3C, 0x56,
+	0x73, 0xC7, 0xFE, 0xB6, 0xFF, 0xFF, 0x20, 0x8B,
+	0xFF, 0x8B, 0xFF, 0xD1, 0x95, 0x35, 0xB1, 0x6D,
+	0x94, 0x61, 0x78, 0xBF, 0xA3, 0xFF, 0x8B, 0xF5,
+	0xEE, 0x94, 0x4F, 0xF3, 0x7A, 0xF7, 0x61, 0xD8,
+	0x54, 0x6C, 0x86, 0x60, 0xF1, 0xE4, 0xFF, 0x13,
+	0xCF, 0x00, 0x7F, 0x01, 0x9E, 0x50, 0x9B, 0x55,
+	0xB5, 0xEF, 0x78, 0x94, 0x95, 0xF7, 0x57, 0xFF,
+	0xB3, 0xFC, 0xDB, 0xFF, 0xD0, 0x39, 0xEB, 0x96,
+	0xE2, 0x84, 0xC4, 0x82, 0xFE, 0xB4, 0xFD, 0x51,
+	0xFF, 0x9F, 0xFF, 0x9F, 0xFF, 0xC5, 0x71, 0xD3,
+	0x04, 0xF5, 0xF4, 0xBE, 0x94, 0xF0, 0xC5, 0xB3,
+	0xF5, 0xFF, 0xFD, 0xA1, 0xFA, 0x11, 0xED, 0x81,
+	0xDB, 0xF2, 0xA7, 0x05, 0x08, 0x76, 0xF3, 0x71,
+	0xEF, 0x61, 0xFB, 0x86, 0x37, 0xEC, 0xD1, 0xE9,
+	0x72, 0x27, 0xAF, 0x14, 0x6B, 0x48, 0x15, 0x5F,
+	0x2A, 0x0B, 0xFF, 0xFB, 0x10, 0xB5, 0x66, 0xCE,
+	0xE0, 0xDF, 0x36, 0xF9, 0xA9, 0xEF, 0xFF, 0x77,
+	0xFE, 0xBF, 0x36, 0xFC, 0x36, 0x2B, 0x8F, 0x81,
+	0x7E, 0x05, 0xFE, 0xB1, 0x0E, 0xB4, 0xB3, 0xFF,
+	0x0C, 0x0C, 0xFF, 0xD0, 0x91, 0xC7, 0xFE, 0x8B,
+	0xFB, 0xEA, 0x15, 0x63, 0xFC, 0xDD, 0xC7, 0xE8,
+	0x11, 0xB4, 0xA5, 0xFF, 0x71, 0xC4, 0x39, 0xF2,
+	0xFF, 0x34, 0x16, 0x62, 0x8C, 0x58, 0x8B, 0x06,
+	0x27, 0xAF, 0x13, 0xF7, 0xFF, 0x14, 0x1F, 0x28,
+	0x4F, 0xC9, 0x84, 0xAA, 0x56, 0xE5, 0xC5, 0xBE,
+	0xDA, 0xDB, 0xFA, 0x0E, 0xBB, 0xFF, 0x9E, 0x55,
+	0xF6, 0x04, 0xD1, 0xF2, 0xFB, 0x15, 0xA3, 0xE1,
+	0xEA, 0xB6, 0xFB, 0xA4, 0xC7, 0xFF, 0xFF, 0xC7,
+	0xF2, 0x69, 0x3A, 0xA4, 0xB4, 0x45, 0x59, 0xCD,
+	0x15, 0xD3, 0x06, 0xEF, 0xF3, 0xEE, 0xE3, 0xFF,
+	0x8D, 0x15, 0xD5, 0xF3, 0xED, 0x15, 0x61, 0xB3,
+	0x17, 0xC8, 0x71, 0x68, 0xDA, 0x70, 0x3B, 0x8F,
+	0xFF, 0x13, 0xFF, 0x3D, 0x7F, 0x52, 0x5D, 0xC9,
+	0x7D, 0x79, 0x44, 0x50, 0x35, 0xC7, 0xFF, 0xC5,
+	0x72, 0xFF, 0xC7, 0xF9, 0xB3, 0x4D, 0xF6, 0x93,
+	0xC1, 0xB6, 0x74, 0xC2, 0xF5, 0xB2, 0xFD, 0xA3,
+	0xDB, 0xFF, 0xFF, 0xDB, 0xFF, 0x8B, 0xF0, 0xB8,
+	0x4B, 0xEC, 0x24, 0xE4, 0xE3, 0xE5, 0x43, 0x2D,
+	0x11, 0x98, 0x46, 0xFF, 0xA6, 0x44, 0xFD, 0xE2,
+	0x81, 0x16, 0x13, 0xD4, 0x27, 0xF4, 0xC6, 0xD5,
+	0xC8, 0xA4, 0x14, 0x02, 0xFF, 0x4F, 0x6F, 0x27,
+	0xFF, 0x51, 0xAF, 0x66, 0x7B, 0xDD, 0x89, 0x6D,
+	0xDB, 0xE0, 0x16, 0x77, 0xFC, 0xFD, 0x13, 0xFC,
+	0x32, 0x24, 0x48, 0x33, 0x8B, 0xB6, 0xE3, 0xEA,
+	0xC7, 0xF7, 0x2A, 0xEF, 0xFF, 0xFF, 0xEF, 0xF1,
+	0xD4, 0x52, 0x3B, 0xFE, 0xFE, 0x56, 0xDB, 0x67,
+	0x39, 0x53, 0x60, 0x54, 0x62, 0xF0, 0xFF, 0x62,
+	0xC8, 0x5B, 0x5D, 0xDB, 0x02, 0x8B, 0xAA, 0xB6,
+	0x63, 0x8B, 0x25, 0xE8, 0xF4, 0x63, 0xAF, 0xFF,
+	0x3B, 0xFF, 0x65, 0xEF, 0x14, 0x1F, 0x92, 0x59,
+	0xAF, 0x38, 0x9F, 0xE2, 0xEF, 0xFA, 0x0E, 0xBC,
+	0xFF, 0xC2, 0x1D, 0xDF, 0x31, 0xCC, 0x02, 0x7B,
+	0xE6, 0xCD, 0x64, 0x7C, 0xE4, 0x4F, 0xCA, 0x3B,
+	0xF7, 0xFF, 0xC7, 0xFF, 0xD0, 0x52, 0x78, 0x13,
+	0xF4, 0xC2, 0xDB, 0x86, 0xEB, 0x85, 0x76, 0xF1,
+	0xAC, 0x15, 0xFF, 0x6F, 0x55, 0x92, 0x66, 0xF7,
+	0xF1, 0xE7, 0xE1, 0xD0, 0x74, 0x79, 0x2A, 0x77,
+	0x3F, 0x77, 0xFF, 0xFF, 0x4F, 0xFF, 0x7A, 0x3F,
+	0x28, 0x2B, 0xD2, 0xFC, 0xFF, 0x21, 0xAB, 0x44,
+	0x4F, 0xFF, 0x77, 0xFF, 0xFF, 0xE6, 0x37, 0xF0,
+	0x84, 0xC8, 0xC5, 0x0E, 0x93, 0x04, 0xC1, 0xBA,
+	0xD3, 0x13, 0xFF, 0x63, 0xF1, 0xFF, 0x13, 0xFE,
+	0xF2, 0xF4, 0xC4, 0x77, 0x6A, 0x86, 0xB3, 0xFF,
+	0x75, 0x55, 0x78, 0xF0, 0xE7, 0xA4, 0xFF, 0xF2,
+	0x62, 0x32, 0x81, 0xD4, 0x76, 0x51, 0xA5, 0xB3,
+	0x05, 0x8B, 0x1F, 0x77, 0xFF, 0x78, 0x1F, 0xFF,
+	0x8C, 0xDF, 0xB4, 0xEA, 0xFF, 0x8A, 0xF0, 0xA2,
+	0xF8, 0x84, 0xC7, 0xFB, 0xEF, 0xFC, 0x6D, 0x97,
+	0xFF, 0x9A, 0x3A, 0xBF, 0xC3, 0x3B, 0xFC, 0x27,
+	0xFF, 0x3B, 0xFF, 0x8B, 0xF2, 0x55, 0x3A, 0xE2,
+	0x42, 0xFF, 0xF0, 0xCC, 0xDB, 0xF2, 0xD9, 0x76,
+	0xC8, 0xF4, 0xB3, 0x75, 0xAB, 0xD2, 0xF8, 0xEB,
+	0x7A, 0x87, 0xFF, 0x9F, 0x0F, 0x9F, 0xEF, 0x77,
+	0xFF, 0xA2, 0x2F, 0x14, 0x0F, 0x78, 0x3A, 0xFA,
+	0x20, 0xB4, 0x06, 0xFF, 0x13, 0xFF, 0x77, 0xFB,
+	0x8B, 0xB4, 0x5B, 0xE3, 0x9F, 0x75, 0xEA, 0x21,
+	0x8B, 0xF8, 0xE8, 0x34, 0xFF, 0x3B, 0xFF, 0x3B,
+	0xFF, 0xAF, 0xF8, 0x28, 0x97, 0xB4, 0x09, 0xEC,
+	0xD0, 0xDB, 0xF2, 0x1E, 0x05, 0xFF, 0xC7, 0xF9,
+	0xC0, 0xF5, 0xB7, 0x17, 0xF9, 0xE4, 0xD5, 0x03,
+	0xB2, 0xEF, 0xB3, 0xCF, 0x8B, 0xFF, 0xFF, 0xB6,
+	0x0F, 0xCA, 0xFB, 0xDD, 0x05, 0xB0, 0x46, 0xEC,
+	0xE2, 0x6D, 0x14, 0x27, 0xFF, 0xB3, 0xFB, 0xFF,
+	0x8F, 0xD5, 0xAF, 0x03, 0x2C, 0x6C, 0xEA, 0xB5,
+	0xC4, 0x15, 0x4F, 0xFF, 0x4F, 0xFF, 0xDA, 0x94,
+	0xFF, 0xE1, 0xB3, 0x28, 0xC9, 0xCD, 0x24, 0x7D,
+	0x35, 0xEC, 0x57, 0xB3, 0xF5, 0xF3, 0x73, 0x4F,
+	0xC4, 0xFF, 0x45, 0xAE, 0x13, 0xEF, 0xC7, 0x8F,
+	0x9F, 0xFF, 0xC9, 0xCF, 0xC9, 0x1F, 0xB4, 0x88,
+	0xF5, 0x87, 0xFF, 0xDC, 0x85, 0x63, 0xFC, 0xAE,
+	0xBF, 0xE5, 0xE4, 0x73, 0x78, 0xD2, 0x04, 0xC8,
+	0x54, 0x3B, 0xFF, 0xFF, 0x63, 0xFF, 0xB3, 0xFD,
+	0xCD, 0x86, 0x77, 0xC8, 0x59, 0x13, 0xE1, 0x73,
+	0x4F, 0xFA, 0x1E, 0x91, 0xFF, 0xC8, 0xF2, 0xF8,
+	0xD3, 0xEE, 0x10, 0xFE, 0x31, 0xDD, 0x63, 0xEF,
+	0x73, 0x7C, 0x44, 0xDA, 0xCF, 0xFF, 0xDB, 0xAF,
+	0xB3, 0xFF, 0xDD, 0xEF, 0xDD, 0x2F, 0x8C, 0x47,
+	0xE1, 0xB5, 0xFF, 0x72, 0x3A, 0xEC, 0xFF, 0x4F,
+	0xFF, 0xE7, 0x81, 0x4E, 0xD4, 0x3B, 0x25, 0xEF,
+	0x86, 0xFE, 0x02, 0xEA, 0xB4, 0x4F, 0xFF, 0xFF,
+	0x77, 0xFF, 0x27, 0xFB, 0xCD, 0xA7, 0xF9, 0xA5,
+	0x41, 0x05, 0xC5, 0x35, 0xB5, 0x3A, 0xEF, 0xF3,
+	0xCF, 0xBC, 0xF3, 0xF9, 0xC0, 0x2E, 0x2E, 0xF1,
+	0xA1, 0xDA, 0xC2, 0xF8, 0x65, 0xC7, 0x23, 0xFF,
+	0xEE, 0xBF, 0xEF, 0xDF, 0xC7, 0xFF, 0xF2, 0x1F,
+	0x3C, 0x2F, 0xA0, 0x56, 0x95, 0x72, 0xFA, 0x44,
+	0xFF, 0x9F, 0xFE, 0x9A, 0xBC, 0xE0, 0x34, 0xE0,
+	0x94, 0xFA, 0xE0, 0xE1, 0x60, 0x00, 0x62, 0xB9,
+	0xA7, 0xFF, 0xDB, 0xF2, 0xAC, 0xB5, 0x8B, 0xFF,
+	0x8B, 0xFF, 0x13, 0xC6, 0x8F, 0x56, 0xBA, 0x27,
+	0xB1, 0x36, 0xFF, 0xFA, 0x5A, 0xFB, 0x5C, 0xFA,
+	0xD0, 0xDA, 0x30, 0x14, 0x12, 0xE0, 0x68, 0xFF,
+	0xA2, 0xEE, 0x6E, 0xFF, 0x01, 0x0F, 0xDB, 0xFF,
+	0x03, 0x4F, 0xF2, 0xDB, 0xDC, 0xA7, 0x46, 0x69,
+	0x28, 0x03, 0xF2, 0x31, 0xFF, 0xDB, 0xFA, 0xC7,
+	0xFA, 0xFF, 0x20, 0xFF, 0x72, 0x00, 0x71, 0x00,
+	0x63, 0x00, 0x5F, 0xE6, 0xC0, 0xFF, 0xB9, 0xE7,
+	0x9F, 0xFF, 0xDB, 0xF2, 0xA6, 0x49, 0xFE, 0xF0,
+	0x87, 0x86, 0xB2, 0x07, 0xB4, 0x08, 0xFF, 0xEF,
+	0xD3, 0x13, 0xFA, 0xDB, 0xF3, 0xF6, 0x51, 0xE6,
+	0x00, 0x07, 0x21, 0xEE, 0x52, 0x07, 0xA1, 0xFF,
+	0xA9, 0x98, 0x13, 0xEF, 0x14, 0xDF, 0xEF, 0xFF,
+	0x17, 0x1F, 0x18, 0x3F, 0xA0, 0x79, 0xAF, 0x88,
+	0xDF, 0xD1, 0x41, 0xEF, 0xFE, 0x2D, 0xEA, 0xBB,
+	0xDF, 0xA3, 0x00, 0x0F, 0x01, 0x2C, 0x8B, 0xFF,
+	0xFF, 0xB3, 0xFF, 0x2D, 0x36, 0xE4, 0xD4, 0xEF,
+	0x28, 0xA8, 0xA3, 0xED, 0x72, 0xE6, 0x63, 0xF5,
+	0x33, 0xFF, 0xF1, 0x56, 0xA6, 0x42, 0xC6, 0xD5,
+	0x3B, 0xC1, 0xBB, 0x73, 0x28, 0x90, 0xFD, 0xC5,
+	0x27, 0xDF, 0xDF, 0x28, 0xAF, 0x29, 0xCA, 0x48,
+	0x13, 0xFF, 0x2B, 0xCF, 0x78, 0x5F, 0xFB, 0xD3,
+	0xEE, 0x32, 0xFF, 0x3C, 0x04, 0x9F, 0xFF, 0xFE,
+	0xB9, 0xD4, 0x29, 0x37, 0x77, 0x8B, 0xD4, 0x13,
+	0xF8, 0x0E, 0xB4, 0xDF, 0xC7, 0xFF, 0xC7, 0xFF,
+	0x0C, 0xA0, 0x06, 0xF9, 0x22, 0x7C, 0xEB, 0xF0,
+	0xB3, 0x9E, 0xE5, 0xFF, 0x52, 0x74, 0xEE, 0x90,
+	0xEF, 0xF3, 0xD1, 0xE0, 0x27, 0xE1, 0xF3, 0x05,
+	0x14, 0x15, 0x8B, 0x8F, 0xFF, 0x3C, 0x7F, 0x27,
+	0xFF, 0x27, 0xFF, 0x3F, 0xDF, 0x8C, 0x6C, 0x6B,
+	0x74, 0xFB, 0xA6, 0x0F, 0x94, 0xFF, 0x3B, 0xFF,
+	0xEF, 0xF7, 0xAD, 0x6C, 0x97, 0x07, 0x73, 0x05,
+	0xC2, 0xB5, 0x7A, 0x52, 0xDB, 0xFF, 0xFF, 0xDB,
+	0xFF, 0x55, 0x3F, 0x55, 0x3F, 0x4F, 0xEB, 0xF0,
+	0xD1, 0xEF, 0xF6, 0x27, 0xE2, 0xA8, 0x24, 0xFF,
+	0x14, 0x15, 0x63, 0xB2, 0x4F, 0xBF, 0x50, 0xDF,
+	0x27, 0xFF, 0x53, 0x1F, 0x54, 0x3F, 0xC8, 0xA9,
+	0xFF, 0xBE, 0x6B, 0x8A, 0xE4, 0x9F, 0x0B, 0x63,
+	0xF9, 0xFE, 0x45, 0xF4, 0x01, 0xEA, 0xB3, 0xA3,
+	0x10, 0xFF, 0xD2, 0xC6, 0x86, 0xB6, 0xC7, 0xFF,
+	0xEF, 0xFF, 0xF6, 0x43, 0x54, 0xB2, 0x55, 0x3F,
+	0x55, 0x3F, 0xFF, 0x96, 0xEA, 0xB3, 0xF4, 0xE3,
+	0x90, 0x13, 0xE5, 0x8D, 0xB7, 0x65, 0x01, 0x63,
+	0xAF, 0x64, 0x9F, 0xFF, 0x3B, 0xFF, 0x66, 0xDF,
+	0x67, 0xFF, 0xB4, 0x8E, 0x47, 0x4A, 0xD1, 0x62,
+	0x13, 0xF9, 0xFB, 0xA0, 0xFF, 0x27, 0xFC, 0xAA,
+	0xA9, 0x4A, 0xA6, 0xFD, 0x65, 0xAE, 0xA4, 0xDE,
+	0x46, 0xEF, 0xA8, 0x63, 0xF9, 0xFF, 0xEF, 0xFB,
+	0x55, 0x3F, 0x56, 0x0F, 0xEF, 0xE6, 0xEE, 0x33,
+	0xF0, 0xF2, 0xE2, 0x62, 0x3B, 0xE3, 0xFF, 0xE5,
+	0x19, 0xFC, 0xA1, 0x6E, 0x70, 0x77, 0xAF, 0x78,
+	0xCF, 0x4F, 0xFF, 0x7B, 0x0F, 0x7C, 0x2F, 0xFF,
+	0x13, 0xFF, 0x3C, 0x66, 0x13, 0xFE, 0xE7, 0x21,
+	0xDB, 0xFB, 0xD3, 0x11, 0x73, 0x31, 0xD6, 0x75,
+	0xEF, 0xE9, 0x62, 0xEB, 0x19, 0xEF, 0xF7, 0x2A,
+	0x13, 0xFF, 0x13, 0xFF, 0x55, 0x3F, 0x55, 0x3F,
+	0xFF, 0x77, 0xEE, 0x3D, 0x06, 0xFA, 0xA1, 0x8F,
+	0x1A, 0x9F, 0xA5, 0x8B, 0x9F, 0x8C, 0xBF, 0x63,
+	0xFF, 0xFF, 0x8E, 0xFF, 0x90, 0x1F, 0xDC, 0x98,
+	0xF0, 0x79, 0x27, 0xFF, 0x3B, 0x04, 0xEF, 0xFD,
+	0x85, 0x99, 0xFF, 0x67, 0xD4, 0xFB, 0x97, 0xD5,
+	0xA3, 0xEB, 0xD6, 0x27, 0xFF, 0x27, 0xFF, 0x08,
+	0x08, 0xF5, 0x53, 0xFF, 0xF5, 0x40, 0xF4, 0xF2,
+	0xFA, 0x17, 0xDB, 0xE6, 0xCA, 0xB5, 0x51, 0x05,
+	0x13, 0xE5, 0xEF, 0xC8, 0xFF, 0xBD, 0xC3, 0x9F,
+	0x8F, 0xA0, 0xAF, 0x77, 0xFF, 0xA2, 0xEF, 0xA4,
+	0x0F, 0x14, 0x0E, 0x50, 0x1D, 0xFF, 0x3B, 0xFB,
+	0xF1, 0x0A, 0x3A, 0x56, 0xF3, 0xB2, 0x72, 0xE7,
+	0xEB, 0x38, 0x4F, 0xF7, 0xFE, 0x71, 0xFF, 0x3B,
+	0xFF, 0x3B, 0xFF, 0x9B, 0x37, 0x4E, 0x09, 0xF5,
+	0xB5, 0x40, 0xA3, 0x9E, 0xE3, 0xCE, 0x22, 0xFF,
+	0xF7, 0x73, 0xF0, 0xF4, 0x8B, 0xC2, 0x43, 0xB5,
+	0xB7, 0x58, 0xB3, 0x8F, 0xB4, 0x9F, 0x8B, 0xFF,
+	0xFF, 0xB6, 0xDF, 0xB7, 0xFF, 0x28, 0x0F, 0xF0,
+	0x7A, 0x13, 0xFD, 0xAE, 0xBC, 0xE6, 0x01, 0xFC,
+	0x83, 0xFF, 0x4E, 0x23, 0xD5, 0x39, 0xD3, 0xF1,
+	0xEF, 0xF5, 0x0E, 0xB5, 0x4F, 0xFF, 0x4F, 0xFF,
+	0x03, 0x73, 0xFF, 0x6B, 0xD4, 0x12, 0xF4, 0x9C,
+	0xD2, 0xDC, 0x84, 0xD9, 0x73, 0x7D, 0x23, 0xC5,
+	0xD6, 0x13, 0xF7, 0x7F, 0x44, 0x27, 0xAA, 0x2B,
+	0x72, 0xC7, 0x7F, 0xC8, 0x7F, 0xB3, 0xFF, 0xB3,
+	0xFF, 0xCB, 0xDF, 0xFF, 0x3C, 0x1F, 0xB1, 0x14,
+	0x78, 0x19, 0x77, 0xF9, 0xDB, 0xFC, 0xFB, 0x13,
+	0xFE, 0xA6, 0x0F, 0xB3, 0xFF, 0x37, 0x74, 0xAE,
+	0xF3, 0x4F, 0xF5, 0xAF, 0xE3, 0x63, 0xFF, 0x63,
+	0xFF, 0x24, 0x00, 0x9F, 0xF3, 0xFF, 0x9F, 0xE3,
+	0xD8, 0x4A, 0xCA, 0x91, 0x76, 0xE6, 0xB5, 0x53,
+	0x92, 0x37, 0x76, 0x92, 0x8B, 0xC1, 0xFF, 0x08,
+	0x05, 0x63, 0xD5, 0xDB, 0x7F, 0xDC, 0x7F, 0xC7,
+	0xFF, 0xC7, 0xFF, 0xDF, 0xDF, 0x50, 0x1F, 0xFF,
+	0xF0, 0x56, 0x94, 0x35, 0xEB, 0xC1, 0x13, 0xF8,
+	0xDD, 0x0A, 0x76, 0x54, 0xED, 0xD4, 0xE6, 0xE8,
+	0xFF, 0xAE, 0x63, 0xEF, 0x53, 0xB3, 0xF2, 0x0E,
+	0xB4, 0x77, 0xFF, 0x77, 0xFF, 0xE2, 0x10, 0x43,
+	0x30, 0xFE, 0x28, 0x56, 0x60, 0xDB, 0x08, 0x01,
+	0xDC, 0x13, 0xC7, 0xC2, 0x76, 0xA7, 0xF0, 0xF1,
+	0x2A, 0xFF, 0x27, 0xE6, 0x81, 0x65, 0xF1, 0x80,
+	0xFC, 0xB1, 0xEF, 0x6F, 0xF0, 0x8F, 0xC7, 0xFF,
+	0xF2, 0xCF, 0xFF, 0xF3, 0xEF, 0x64, 0x2F, 0xF7,
+	0x50, 0x38, 0x59, 0x13, 0xFC, 0xD6, 0xBC, 0xC1,
+	0x96, 0xC6, 0xD3, 0xFD, 0xEA, 0x78, 0x21, 0xD7,
+	0xFE, 0xB1, 0xF5, 0x35, 0x8B, 0xFF, 0x8B, 0xFF,
+	0x2E, 0xC5, 0xA2, 0xFF, 0x2D, 0x6C, 0xD1, 0x31,
+	0x1A, 0x58, 0xC6, 0xE4, 0x77, 0xFE, 0x77, 0xDF,
+	0x63, 0xDF, 0x00, 0xCF, 0xFF, 0x01, 0xEF, 0xDB,
+	0xFF, 0xDD, 0x99, 0x04, 0xEF, 0x13, 0xFB, 0x1F,
+	0x59, 0x13, 0xFD, 0xC9, 0x0A, 0xFF, 0x27, 0x74,
+	0xFE, 0x04, 0x8B, 0x45, 0x2C, 0x08, 0xF1, 0xD5,
+	0xEC, 0xD5, 0x9F, 0xFF, 0x9F, 0xFF, 0xFF, 0x94,
+	0x14, 0x4F, 0x34, 0x3C, 0xC3, 0xE0, 0x11, 0x41,
+	0x17, 0xED, 0xB2, 0x91, 0xF7, 0x6E, 0x76, 0xFF,
+	0xC7, 0xB1, 0x4F, 0xE5, 0x47, 0xE9, 0x13, 0xEF,
+	0x15, 0x0F, 0x16, 0x2D, 0xEF, 0xFF, 0x13, 0xFF,
+	0xFF, 0x14, 0x0F, 0xC8, 0x2D, 0xD1, 0x93, 0xC7,
+	0xFF, 0x64, 0xE8, 0xEA, 0x05, 0xFF, 0x13, 0xF0,
+	0xF5, 0xFF, 0xEB, 0x68, 0x8B, 0xFF, 0xB3, 0xFF,
+	0x91, 0x3F, 0xBC, 0x16, 0x8B, 0xB3, 0xE5, 0x38,
+	0x69, 0x81, 0xF7, 0x14, 0xF2, 0xF5, 0x51, 0xAA,
+	0x89, 0x9F, 0xC2, 0x44, 0x59, 0x32, 0xC0, 0x08,
+	0x3B, 0xEF, 0xFF, 0x24, 0x7F, 0x29, 0xFF, 0x13,
+	0xD0, 0x13, 0xFF, 0x27, 0xEF, 0x28, 0x0F, 0xF0,
+	0x17, 0xD9, 0xC1, 0xFF, 0xAB, 0x03, 0xDB, 0xFF,
+	0x27, 0xFB, 0xDA, 0xB7, 0x03, 0x64, 0x4B, 0xCA,
+	0xC7, 0xF2, 0x0E, 0xB4, 0xFF, 0xC7, 0xFF, 0xC7,
+	0xFF, 0xCC, 0xD9, 0xA4, 0xE7, 0x7D, 0xE3, 0xEF,
+	0x18, 0x3E, 0x39, 0x27, 0xF7, 0x3B, 0x44, 0x45,
+	0x59, 0x13, 0xC9, 0x74, 0xF7, 0xC0, 0x2C, 0x3B,
+	0xDF, 0x38, 0x7F, 0xFF, 0x3E, 0x0F, 0x27, 0xD0,
+	0x28, 0x0F, 0x40, 0x7F, 0x3C, 0x1F, 0x6E, 0x04,
+	0xFF, 0x81, 0x6E, 0xA6, 0xFF, 0xEF, 0xFF, 0x0E,
+	0xBF, 0x0E, 0xBF, 0xC7, 0xFB, 0xFE, 0xF2, 0xDB,
+	0xFF, 0xDB, 0xFF, 0x4E, 0x78, 0xFF, 0xD8, 0x8B,
+	0x2D, 0x57, 0xDB, 0xF3, 0x52, 0x5A, 0x13, 0xF9,
+	0xA7, 0xE7, 0xAB, 0xE2, 0x4F, 0xDF, 0xFF, 0x4C,
+	0x7F, 0x3B, 0xFF, 0x4E, 0x8F, 0x50, 0x28, 0x3D,
+	0xBF, 0x3C, 0x0F, 0xA9, 0xF5, 0x8C, 0x12, 0xFF,
+	0xDB, 0xF7, 0xF2, 0x40, 0x0E, 0xBF, 0x0E, 0xBF,
+	0x99, 0xAA, 0x22, 0xD6, 0xEF, 0xFF, 0xEF, 0xFF,
+	0xFF, 0xB1, 0x80, 0xB7, 0xD6, 0x77, 0x99, 0xD9,
+	0x36, 0xB3, 0xF4, 0xF7, 0x82, 0x13, 0xF9, 0xEE,
+	0x61, 0xFE, 0x27, 0xF2, 0x6F, 0xDC, 0x63, 0xDF,
+	0x60, 0x5F, 0x4F, 0xFF, 0x62, 0x8F, 0x63, 0xB8,
+	0x48, 0xFF, 0x14, 0x1F, 0x3C, 0x09, 0xB4, 0x23,
+	0x3B, 0xF6, 0x13, 0xFA, 0x0E, 0xBF, 0x0E, 0xBF,
+	0x0E, 0xBD, 0xFF, 0x90, 0x20, 0x13, 0xFF, 0x00,
+	0xB1, 0xF7, 0x91, 0xDB, 0xFF, 0xC7, 0xEB, 0x41,
+	0xE6, 0x50, 0x18, 0xFB, 0xEF, 0xFD, 0xB5, 0x03,
+	0x63, 0xE1, 0x3B, 0xF3, 0xF7, 0x97, 0x2A, 0x77,
+	0xCF, 0x74, 0x5F, 0xFE, 0x79, 0xFF, 0x3B, 0xFF,
+	0x13, 0xFC, 0x65, 0xEF, 0x3C, 0x0B, 0x3C, 0x46,
+	0xF9, 0xA1, 0x2E, 0xFD, 0x13, 0xFF, 0x0E, 0xBF,
+	0x0E, 0xBF, 0x65, 0xD3, 0xEF, 0xFF, 0x13, 0xFB,
+	0x46, 0xEF, 0xFC, 0x30, 0x46, 0x46, 0x01, 0x11,
+	0xFF, 0xE5, 0x0C, 0x2A, 0x28, 0x25, 0x36, 0x25,
+	0x25, 0x68, 0xE8, 0xF6, 0x90, 0x45, 0xC6, 0xE5,
+	0x13, 0xFF, 0x42, 0xFF, 0x27, 0xF9, 0x13, 0xFF,
+	0x88, 0x5F, 0x8D, 0xAF, 0x4F, 0xFF, 0x3B, 0x8F,
+	0x3C, 0x2F, 0x13, 0xFF, 0xFE, 0xF8, 0x05, 0x13,
+	0xFF, 0x0E, 0xBF, 0x0E, 0xBF, 0x0E, 0xBA, 0xD6,
+	0x66, 0x27, 0xFF, 0x0C, 0x3E, 0x0C, 0x47, 0x14,
+	0x00, 0x13, 0xFF, 0x13, 0xE5, 0x13, 0xF0, 0x14,
+	0x00, 0x28, 0xBF, 0xF9, 0x49, 0x45, 0x13, 0xFB,
+	0xD3, 0x03, 0x27, 0xF7, 0xCA, 0xC7, 0x27, 0xFF,
+	0x4C, 0x1F, 0xFE, 0xA1, 0xAF, 0x63, 0xFF, 0x4F,
+	0x8F, 0x3B, 0xF0, 0x8D, 0xEF, 0x8C, 0x1F, 0xBC,
+	0x02, 0x2A, 0x26, 0x45, 0x44, 0x27, 0xF6, 0x0C,
+	0x48, 0xF1, 0xD1, 0xF0, 0x07, 0x48, 0xF8, 0x0E,
+	0xBF, 0x0E, 0xBF, 0x13, 0xFF, 0x3B, 0xFA, 0x05,
+	0x2C, 0x2D, 0x48, 0x45, 0x94, 0x13, 0xFE, 0x28,
+	0x29, 0x13, 0xFA, 0x43, 0x27, 0xFB, 0x46, 0x2B,
+	0x3F, 0x45, 0x47, 0x27, 0xF8, 0xFC, 0x32, 0xFC,
+	0x72, 0x3B, 0xFF, 0x60, 0x07, 0x60, 0x2F, 0xFE,
+	0x77, 0xFF, 0xB7, 0x6F, 0x63, 0x83, 0x13, 0xD1,
+	0x8D, 0xFF, 0x8C, 0x1B, 0xBD, 0xE7, 0x2A, 0x27,
+	0x45, 0x42, 0x13, 0xF7, 0x2B, 0x48, 0x13, 0xFB,
+	0x0E, 0xBF, 0x0E, 0xBC, 0xD1, 0x27, 0xFF, 0x4F,
+	0xFE, 0x47, 0xF5, 0x3B, 0x47, 0x45, 0x46, 0x26,
+	0x10, 0xC6, 0x27, 0xE5, 0x28, 0x00, 0x29, 0x29,
+	0x2B, 0xF2, 0x42, 0x13, 0xD5, 0x44, 0x7F, 0x46,
+	0x3B, 0xFA, 0x3E, 0xE2, 0x4F, 0xF5, 0xFC, 0x31,
+	0x00, 0x35, 0xFC, 0xA3, 0xC7, 0xBF, 0xFF, 0x9D,
+	0xC2, 0x74, 0x2F, 0x8B, 0xFF, 0xB5, 0x4F, 0x8D,
+	0x73, 0x13, 0xD2, 0x78, 0x3F, 0x50, 0x0D, 0xF7,
+	0x1C, 0x83, 0xEF, 0xD2, 0x27, 0xF7, 0x21, 0xD0,
+	0x47, 0xF2, 0x80, 0xFA, 0xA0, 0x37, 0xB2, 0xFE,
+	0x0E, 0xBF, 0x0E, 0xBD, 0xD5, 0xA1, 0x3B, 0xFF,
+	0x27, 0xF9, 0x13, 0x00, 0x05, 0x28, 0x2D, 0x7F,
+	0x48, 0x13, 0xE0, 0x13, 0xF9, 0x14, 0x00, 0x66,
+	0x43, 0x27, 0xC5, 0x13, 0xF5, 0xDE, 0x14, 0x9F,
+	0x53, 0xF0, 0x44, 0x46, 0x4F, 0xF7, 0x63, 0x42,
+	0x63, 0x92, 0x0C, 0x23, 0xDB, 0xBF, 0xFF, 0x5F,
+	0xEA, 0xC6, 0x5F, 0x9F, 0xFF, 0x13, 0xFF, 0x18,
+	0x0F, 0xF0, 0x39, 0xF0, 0x41, 0x13, 0x94, 0x77,
+	0x2D, 0xE5, 0x90, 0x27, 0xF9, 0x13, 0xF0, 0x45,
+	0x13, 0xF8, 0x0E, 0xBF, 0x0E, 0xBE, 0xFC, 0x72,
+	0xB1, 0xD6, 0xD6, 0x77, 0xFF, 0x13, 0xF2, 0x05,
+	0x29, 0x27, 0xF0, 0x45, 0x45, 0x70, 0x43, 0xE4,
+	0x54, 0xF9, 0x64, 0x13, 0xF7, 0x45, 0x43, 0x43,
+	0x41, 0x33, 0x42, 0x44, 0x63, 0xF8, 0x66, 0xD0,
+	0x46, 0x46, 0x13, 0xF2, 0xC7, 0xE2, 0x3F, 0x41,
+	0x45, 0xD0, 0x57, 0x14, 0x93, 0xEF, 0xBF, 0xC5,
+	0xB2, 0x13, 0xFF, 0xB3, 0xFF, 0xFE, 0xDD, 0x4F,
+	0x2B, 0xA4, 0x9F, 0xF1, 0xA0, 0x3F, 0xDC, 0x26,
+	0x30, 0x44, 0xC3, 0xA5, 0x45, 0x5E, 0x41, 0x13,
+	0xFB, 0x45, 0x27, 0xF9, 0x0E, 0xBF, 0x0E, 0xBF,
+	0x63, 0xF5, 0x46, 0x79, 0x46, 0x8B, 0xFF, 0x13,
+	0xF3, 0x05, 0x28, 0x13, 0xF1, 0x43, 0x45, 0x13,
+	0xFF, 0xA5, 0x63, 0xB5, 0x41, 0x13, 0xFF, 0x44,
+	0x45, 0x13, 0xF6, 0x3F, 0x9F, 0xF8, 0xFF, 0x13,
+	0xFF, 0x13, 0xFF, 0xEE, 0x5F, 0xB2, 0x17, 0xF0,
+	0x0E, 0x4F, 0xC7, 0x00, 0x43, 0x05, 0xAF, 0xEC,
+	0xDC, 0x24, 0x93, 0xB5, 0x82, 0xE4, 0x3F, 0xFD,
+	0xA0, 0x63, 0xF5, 0x46, 0x47, 0xFE, 0x00, 0x00,
+	0xFE, 0x11, 0x13, 0xF5, 0x0E, 0xBF, 0x0E, 0xBF,
+	0x13, 0xFF, 0x63, 0xF9, 0x45, 0xCE, 0x05, 0x2A,
+	0x27, 0xF1, 0x42, 0x42, 0x50, 0x11, 0xFD, 0x3D,
+	0x77, 0x91, 0x45, 0x38, 0x44, 0x44, 0x27, 0xF0,
+	0xC7, 0xF3, 0x4F, 0xE5, 0x44, 0x44, 0x46, 0xFF,
+	0x13, 0xF8, 0xF3, 0xF7, 0x27, 0xFF, 0x27, 0xFA,
+	0xB0, 0xB3, 0x61, 0x03, 0xC6, 0x0F, 0xDB, 0xFF,
+	0xFE, 0xB3, 0xD5, 0x13, 0xC5, 0xA0, 0x3F, 0xDC,
+	0x16, 0xD7, 0x13, 0x63, 0xF6, 0x13, 0xF8, 0x47,
+	0xFE, 0x36, 0xD2, 0x13, 0xF9, 0x0E, 0xBF, 0x0E,
+	0xBB, 0x8B, 0xF9, 0x27, 0xFF, 0x8B, 0xF1, 0x47,
+	0xF7, 0x05, 0x2A, 0x13, 0xFF, 0x13, 0xF6, 0x8B,
+	0x80, 0x44, 0x00, 0x00, 0x3B, 0xFA, 0x3C, 0x02,
+	0x4F, 0x42, 0x3B, 0xF6, 0x3E, 0x44, 0x97, 0x8A,
+	0x3B, 0xFF, 0x13, 0xFC, 0x75, 0x05, 0xFE, 0x02,
+	0x1F, 0x29, 0xAF, 0x8B, 0xB8, 0x14, 0x16, 0x27,
+	0xFF, 0xA0, 0x0C, 0xFA, 0xB0, 0x44, 0x5F, 0x3E,
+	0x13, 0xF8, 0x46, 0x4A, 0xD1, 0x28, 0x01, 0x13,
+	0xFF, 0x0E, 0xBF, 0x0E, 0xB5, 0xD8, 0x13, 0xFF,
+	0x9F, 0xF9, 0x45, 0x05, 0x2A, 0x4F, 0xF1, 0x44,
+	0x40, 0x41, 0xD0, 0x3C, 0x10, 0x31, 0xAF, 0x42,
+	0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x41, 0x81, 0xB3,
+	0xF7, 0x46, 0x2B, 0x46, 0x45, 0x44, 0x45, 0x63,
+	0x52, 0xFF, 0x13, 0xFB, 0x4F, 0xFF, 0x38, 0x7B,
+	0xD8, 0x14, 0x64, 0x83, 0x13, 0xFF, 0x76, 0xA4,
+	0x3B, 0xEF, 0xEE, 0x3C, 0x07, 0xDC, 0x4F, 0xC8,
+	0x0A, 0x2D, 0xFC, 0x15, 0x13, 0xFA, 0x72, 0xC0,
+	0x47, 0xFF, 0xAF, 0x03, 0x4F, 0xF5, 0x0E, 0xBF,
+	0x0E, 0xBF, 0xFF, 0x73, 0x0E, 0xB0, 0xDB, 0xFF,
+	0x68, 0x32, 0xC3, 0x05, 0x29, 0x8B, 0xF0, 0x43,
+	0x44, 0x40, 0x3F, 0x12, 0xA0, 0x63, 0x71, 0x86,
+	0x13, 0xFE, 0x3F, 0x3F, 0x42, 0x40, 0x13, 0xF9,
+	0x8E, 0xB0, 0x44, 0x2F, 0x43, 0x44, 0x13, 0xF6,
+	0x3D, 0x13, 0xFF, 0x50, 0x0F, 0x13, 0xFF, 0x27,
+	0xFF, 0xFE, 0x13, 0xF8, 0xC7, 0x44, 0xEF, 0xB8,
+	0x9F, 0xF4, 0xF0, 0x5F, 0xDC, 0x0A, 0x9F, 0xF5,
+	0x44, 0x6F, 0x3D, 0x4F, 0xF7, 0x85, 0xA0, 0x45,
+	0x8C, 0x10, 0x13, 0xF7, 0x0E, 0xBF, 0x0E, 0xBF,
+	0x9A, 0x13, 0xF5, 0x46, 0x45, 0xEF, 0xFF, 0x05,
+	0x20, 0x44, 0x05, 0x2A, 0x2D, 0x04, 0x46, 0x44,
+	0x43, 0x43, 0x40, 0x00, 0x01, 0x45, 0x45, 0x04,
+	0x3E, 0x3E, 0x37, 0x37, 0x34, 0x00, 0x02, 0x37,
+	0x37, 0x0B, 0x3E, 0x3E, 0x45, 0x45, 0x01, 0x62,
+	0x40, 0x27, 0xFB, 0x7A, 0xD1, 0x9F, 0x27, 0xF7,
+	0x3D, 0x44, 0x8D, 0x76, 0x77, 0xFF, 0x27, 0xFF,
+	0x27, 0xF5, 0x50, 0x1F, 0xFF, 0x13, 0xFF, 0xC7,
+	0xA5, 0x50, 0x08, 0x13, 0xFF, 0xF0, 0x03, 0xFA,
+	0xD8, 0xFF, 0xE0, 0x13, 0xFB, 0x1F, 0x43, 0x43,
+	0x43, 0x64, 0x20, 0x27, 0xF4, 0x0E, 0xBF, 0x0E,
+	0xBF, 0x27, 0xF8, 0xF2, 0x13, 0xFF, 0x13, 0xF2,
+	0x05, 0x2A, 0x13, 0xF0, 0x42, 0x41, 0x14, 0x01,
+	0x43, 0xFB, 0x13, 0xF0, 0x13, 0xD4, 0x14, 0x12,
+	0x13, 0xF0, 0x15, 0x73, 0x3F, 0x8B, 0xF6, 0x8B,
+	0xC1, 0x77, 0x43, 0x16, 0xE0, 0x65, 0x12, 0x27,
+	0xF3, 0x43, 0x77, 0xEC, 0x8B, 0xFF, 0x60, 0x17,
+	0xFF, 0x13, 0xFF, 0x13, 0xFF, 0x15, 0xC7, 0x63,
+	0xD5, 0x50, 0x08, 0x67, 0x8F, 0xF0, 0x0B, 0xEE,
+	0xE1, 0x1D, 0x2A, 0x2A, 0x43, 0x27, 0xF2, 0xF4,
+	0x13, 0x13, 0xE1, 0x43, 0xD3, 0x10, 0xFE, 0x13,
+	0xF6, 0x0E, 0xBF, 0x0E, 0xBF, 0xEF, 0xF2, 0x0E,
+	0xB2, 0x13, 0xFF, 0x2D, 0x20, 0x42, 0xF8, 0x05,
+	0x2A, 0x27, 0xF0, 0x4F, 0xE0, 0x13, 0xEE, 0x14,
+	0x06, 0x3D, 0x3D, 0x3D, 0x77, 0x40, 0x13, 0xF9,
+	0x27, 0xE1, 0x13, 0xF7, 0x3C, 0x13, 0xFF, 0x77,
+	0xEF, 0x87, 0xF8, 0xFF, 0x27, 0xFF, 0x13, 0xFF,
+	0x8E, 0x49, 0x27, 0x75, 0x03, 0xE5, 0x8E, 0x3E,
+	0xDB, 0xF5, 0xFF, 0x24, 0x8E, 0xFF, 0x90, 0x2A,
+	0x43, 0x3C, 0x13, 0xE6, 0x3B, 0xF0, 0x5C, 0x30,
+	0x43, 0x77, 0x46, 0x27, 0xF7, 0x0E, 0xBF, 0x0E,
+	0xBB, 0x3F, 0x13, 0xF9, 0x3B, 0xFF, 0x3B, 0xF2,
+	0x9D, 0x05, 0x2A, 0x2D, 0x44, 0x4E, 0x00, 0x13,
+	0xF0, 0xC8, 0x40, 0x3E, 0x3B, 0xB2, 0x78, 0x32,
+	0x00, 0x00, 0x3C, 0x42, 0x3C, 0x00, 0x3C, 0x10,
+	0x3D, 0x40, 0x3C, 0x7D, 0x3E, 0xEF, 0xF2, 0xC5,
+	0xF0, 0x13, 0xF2, 0x13, 0xE0, 0x13, 0xF8, 0x42,
+	0xFB, 0x96, 0xFF, 0x27, 0xFF, 0x13, 0xFD, 0xB0,
+	0xE3, 0x3B, 0xFF, 0x3D, 0x23, 0x13, 0xF8, 0x8D,
+	0x8B, 0xA0, 0x13, 0x71, 0x47, 0x67, 0x8F, 0xDB,
+	0xF6, 0x78, 0x09, 0x2D, 0x2A, 0x42, 0x13, 0xFC,
+	0x7F, 0x41, 0xC8, 0x20, 0x63, 0xF4, 0x0E, 0xBF,
+	0x0E, 0xBF, 0xD4, 0xB4, 0x13, 0xFF, 0x13, 0xF8,
+	0x81, 0x05, 0x28, 0x2D, 0x41, 0x3E, 0x3E, 0x40,
+	0x3F, 0x3B, 0xD2, 0xFE, 0x4F, 0xA3, 0x13, 0xF6,
+	0x14, 0x01, 0x28, 0x02, 0x13, 0xF3, 0x63, 0xE4,
+	0x3B, 0xD0, 0x40, 0x3F, 0x40, 0x42, 0x13, 0xF8,
+	0xDD, 0x85, 0x3B, 0xFF, 0x13, 0xFE, 0xB2, 0x55,
+	0x13, 0xFF, 0xEF, 0x13, 0xFF, 0x8B, 0xC7, 0xC8,
+	0x13, 0x47, 0xB4, 0x4F, 0x3B, 0xFD, 0xB3, 0xF4,
+	0x13, 0xF9, 0x3B, 0x47, 0x47, 0x32, 0xD0, 0xFE,
+	0x00, 0x77, 0xF4, 0x40, 0x0E, 0xBF, 0x0E, 0xBF,
+	0xFB, 0xC7, 0xF4, 0x22, 0xA1, 0x4F, 0xFF, 0x91,
+	0x21, 0x05, 0x2A, 0x2D, 0x3B, 0xB0, 0x14, 0x10,
+	0xFE, 0xF0, 0x30, 0x63, 0xA1, 0x27, 0xC1, 0x00,
+	0x33, 0x64, 0x41, 0x28, 0x01, 0x2D, 0x35, 0x2C,
+	0xEF, 0x32, 0x21, 0x63, 0xE0, 0x13, 0xFC, 0x41,
+	0xFB, 0x81, 0x47, 0x84, 0xDB, 0xFF, 0x13, 0xFF,
+	0xFF, 0x62, 0x95, 0xC6, 0xC9, 0x27, 0xFF, 0xF3,
+	0x67, 0x13, 0xFE, 0xCA, 0x5C, 0x9F, 0xF7, 0x78,
+	0x55, 0x22, 0x2A, 0x41, 0x3B, 0xF8, 0x42, 0x43,
+	0x44, 0xC1, 0xB0, 0x46, 0xDB, 0xE9, 0xF0, 0xFE,
+	0xC2, 0x3F, 0x0E, 0xBF, 0x0E, 0xBC, 0x3E, 0x34,
+	0x72, 0x0E, 0xB5, 0xD3, 0x63, 0xFF, 0x05, 0x20,
+	0x42, 0x05, 0x2A, 0x2D, 0x41, 0x03, 0x51, 0xC8,
+	0x00, 0xE1, 0x3B, 0xD2, 0x13, 0xFA, 0x3C, 0x11,
+	0x42, 0x3D, 0x3D, 0x3C, 0x13, 0xF4, 0x9F, 0xDC,
+	0xF3, 0x43, 0x42, 0x7A, 0xD0, 0x13, 0xFB, 0x63,
+	0xFF, 0x63, 0xEF, 0x50, 0x2A, 0xFF, 0x88, 0xD2,
+	0x3B, 0xFF, 0xDE, 0x1C, 0x77, 0x36, 0x3B, 0xF3,
+	0x28, 0x02, 0x28, 0x50, 0xC7, 0xFF, 0xF1, 0x27,
+	0xF7, 0x64, 0x02, 0x13, 0xF2, 0x63, 0xF4, 0x42,
+	0x40, 0x44, 0xE8, 0x00, 0xFF, 0x50, 0x01, 0x13,
+	0xF3, 0x0E, 0xBF, 0x0E, 0xBC, 0x27, 0xF7, 0x0E,
+	0xB1, 0x77, 0xFF, 0x19, 0x20, 0x40, 0x3F, 0x05,
+	0x2A, 0x2D, 0x40, 0x39, 0x39, 0x3D, 0x3B, 0xFA,
+	0x27, 0xE3, 0x27, 0xD7, 0x50, 0x43, 0x28, 0x01,
+	0x13, 0xF8, 0x2D, 0x27, 0xE3, 0x42, 0x5F, 0x3F,
+	0x3B, 0xF8, 0x40, 0x33, 0x86, 0x77, 0xFF, 0x4F,
+	0xFE, 0x4C, 0x33, 0xED, 0x23, 0xF7, 0x4F, 0xFF,
+	0x4F, 0xFA, 0xB4, 0xF1, 0x8B, 0x33, 0x47, 0x13,
+	0xFF, 0xB3, 0xFF, 0xDB, 0xC5, 0xAF, 0xF0, 0x91,
+	0x40, 0x13, 0xFA, 0x3F, 0x13, 0xF9, 0x0E, 0xBF,
+	0x0E, 0xBD, 0x3B, 0xF5, 0xFD, 0x0E, 0xB3, 0x8B,
+	0xFF, 0x13, 0xF1, 0x05, 0x2A, 0x4F, 0xF0, 0x13,
+	0xF2, 0x3D, 0x13, 0xFF, 0x03, 0x34, 0x37, 0x3D,
+	0x45, 0x45, 0x39, 0x27, 0xF8, 0x63, 0xD2, 0x07,
+	0x43, 0x42, 0x3F, 0x3D, 0x41, 0x13, 0xFA, 0xF0,
+	0x23, 0x8B, 0xFF, 0xFF, 0xED, 0xC7, 0x4B, 0xC4,
+	0x13, 0xFF, 0x63, 0xFF, 0x13, 0xF9, 0xEF, 0xB2,
+	0x13, 0xFF, 0xC7, 0xFF, 0xD3, 0xE4, 0x45, 0xFA,
+	0x40, 0x2A, 0x13, 0xFA, 0x41, 0x44, 0xAD, 0xB0,
+	0xA0, 0x30, 0x7F, 0x46, 0x3B, 0xF4, 0x0E, 0xBF,
+	0x0E, 0xBC, 0x4F, 0xF6, 0x72, 0x92, 0x9F, 0xFF,
+	0x05, 0x20, 0xC0, 0xB2, 0xE1, 0x05, 0x27, 0x2D,
+	0x41, 0x3A, 0x39, 0x37, 0x38, 0xF7, 0x4F, 0xD0,
+	0x27, 0xFF, 0xB4, 0x50, 0x27, 0xF1, 0x3E, 0xDB,
+	0xF6, 0x8B, 0xC3, 0x3D, 0x20, 0xBF, 0x13, 0xF8,
+	0x2D, 0xFB, 0x64, 0x77, 0xFF, 0x5C, 0x26, 0x13,
+	0xFF, 0x27, 0xFF, 0x12, 0xF3, 0xE3, 0x27, 0xFA,
+	0xB3, 0xA4, 0x27, 0xF3, 0x47, 0x48, 0x46, 0x64,
+	0x11, 0x3B, 0xFF, 0xCF, 0xEF, 0xFF, 0x27, 0xF9,
+	0x46, 0x3F, 0x4F, 0x20, 0x9B, 0x00, 0x13, 0xF5,
+	0x0E, 0xBF, 0xFD, 0x0E, 0xBC, 0x9A, 0xB2, 0x9F,
+	0xF2, 0xC2, 0x71, 0xB3, 0xFF, 0xB8, 0x30, 0x3E,
+	0x05, 0x2A, 0x72, 0x2D, 0x89, 0xF0, 0x13, 0xFF,
+	0x13, 0xF7, 0x39, 0x36, 0x13, 0xF5, 0x2A, 0x62,
+	0x2D, 0xDB, 0xC0, 0x94, 0xF0, 0x3F, 0x3E, 0x3E,
+	0x27, 0xF6, 0x3B, 0x3F, 0x3F, 0x2B, 0x14, 0x05,
+	0xB3, 0xFF, 0x70, 0x35, 0x4B, 0xC5, 0x88, 0x33,
+	0x38, 0xF4, 0xFF, 0x4E, 0x89, 0xF1, 0x95, 0x63,
+	0xAA, 0xEF, 0xB6, 0x04, 0x01, 0x13, 0xF6, 0x8C,


Commit: 4cce54efee1779d4374a6e218649e186408f6816
    https://github.com/scummvm/scummvm/commit/4cce54efee1779d4374a6e218649e186408f6816
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:22+01:00

Commit Message:
KYRA: (EOB) - fix load menu graphics glitch

Cut off long save slot descriptions from the GMM save dialogue when they're displayed in the original load menu.

Changed paths:
    engines/kyra/gui_eob.cpp


diff --git a/engines/kyra/gui_eob.cpp b/engines/kyra/gui_eob.cpp
index 1e4fc43..4b10021 100644
--- a/engines/kyra/gui_eob.cpp
+++ b/engines/kyra/gui_eob.cpp
@@ -4102,8 +4102,9 @@ void GUI_EoB::drawSaveSlotButton(int slot, int redrawBox, int textCol) {
 	int x = _saveSlotX + 4;
 	int y = _saveSlotY + slot * 17 + 20;
 	int w = 167;
-	const char *s = (slot < 6) ? _saveSlotStringsTemp[slot] : _vm->_saveLoadStrings[0];
-
+	char slotString[26];
+	Common::strlcpy(slotString, slot < 6 ? _saveSlotStringsTemp[slot] : _vm->_saveLoadStrings[0], _vm->gameFlags().platform == Common::kPlatformFMTowns ? 25 : 20);
+	
 	if (slot >= 6) {
 		x = _saveSlotX + 118;
 		y = _saveSlotY + 126;
@@ -4119,7 +4120,7 @@ void GUI_EoB::drawSaveSlotButton(int slot, int redrawBox, int textCol) {
 		y++;
 	}
 
-	_screen->printShadedText(s, x + 4, y + 3, textCol, 0);
+	_screen->printShadedText(slotString, x + 4, y + 3, textCol, 0);
 	_vm->screen()->setFont(fnt);
 }
 


Commit: b81493718e4474b995a94f552b3a01d157462251
    https://github.com/scummvm/scummvm/commit/b81493718e4474b995a94f552b3a01d157462251
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:22+01:00

Commit Message:
KYRA: (EOB) - fix 16 bit mouse cursor color key

Changed paths:
    engines/kyra/screen_eob.cpp
    engines/kyra/screen_eob.h


diff --git a/engines/kyra/screen_eob.cpp b/engines/kyra/screen_eob.cpp
index e24f621..629d00c 100644
--- a/engines/kyra/screen_eob.cpp
+++ b/engines/kyra/screen_eob.cpp
@@ -38,7 +38,7 @@
 
 namespace Kyra {
 
-Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system, _screenDimTable, _screenDimTableCount) {
+Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system, _screenDimTable, _screenDimTableCount), _cursorColorKey16Bit(0x8000) {
 	_dsBackgroundFading = false;
 	_dsShapeFadingLevel = 0;
 	_dsBackgroundFadingXOffs = 0;
@@ -133,7 +133,7 @@ void Screen_EoB::setMouseCursor(int x, int y, const byte *shape, const uint8 *ov
 
 	int mouseW = (shape[2] << 3);
 	int mouseH = (shape[3]);
-	int colorKey = (_renderMode == Common::kRenderCGA) ? 0 : _cursorColorKey;
+	int colorKey = (_renderMode == Common::kRenderCGA) ? 0 : (_bytesPerPixel == 2 ? _cursorColorKey16Bit : _cursorColorKey);
 
 	int scaleFactor = _vm->gameFlags().useHiRes ? 2 : 1;
 	int bpp = _useHiColorScreen ? 2 : 1;
@@ -141,7 +141,6 @@ void Screen_EoB::setMouseCursor(int x, int y, const byte *shape, const uint8 *ov
 	uint8 *cursor = new uint8[mouseW * scaleFactor * bpp * mouseH * scaleFactor];
 	
 	if (_bytesPerPixel == 2) {
-		colorKey = _16bitPalette[colorKey];
 		for (int s = mouseW * scaleFactor * bpp * mouseH * scaleFactor; s; s -= 2)
 			*(uint16*)(cursor + s - 2) = colorKey;
 	} else {
diff --git a/engines/kyra/screen_eob.h b/engines/kyra/screen_eob.h
index f213fc9..f5bd987 100644
--- a/engines/kyra/screen_eob.h
+++ b/engines/kyra/screen_eob.h
@@ -125,6 +125,8 @@ private:
 	uint8 *_egaDitheringTable;
 	uint8 *_egaDitheringTempPage;
 
+	const uint16 _cursorColorKey16Bit;
+
 	static const uint8 _egaMatchTable[];
 	static const ScreenDim _screenDimTable[];
 	static const int _screenDimTableCount;


Commit: 09f513fb1134492ed69798897414611dd8a05e83
    https://github.com/scummvm/scummvm/commit/09f513fb1134492ed69798897414611dd8a05e83
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:23+01:00

Commit Message:
KYRA: (EOB) - fix minor graphics glitch in FM-TOWNS version

(wrong text box shading  in certain cut scenes)

Changed paths:
    engines/kyra/text_rpg.cpp


diff --git a/engines/kyra/text_rpg.cpp b/engines/kyra/text_rpg.cpp
index cc7ab06..3020a63 100644
--- a/engines/kyra/text_rpg.cpp
+++ b/engines/kyra/text_rpg.cpp
@@ -727,11 +727,11 @@ void TextDisplayer_rpg::displayWaitButton() {
 
 	_screen->set16bitShadingLevel(4);
 	_screen->fillRect(_vm->_dialogueButtonPosX[0], _vm->_dialogueButtonPosY[0], _vm->_dialogueButtonPosX[0] + _vm->_dialogueButtonWidth - 1, _vm->_dialogueButtonPosY[0] + _vm->guiSettings()->buttons.height - 1, _vm->guiSettings()->colors.fill);
+	clearCurDim();
 	_screen->set16bitShadingLevel(0);
 	_screen->updateScreen();
 	_vm->_dialogueButtonWidth = 95;
 	SWAP(_vm->_dialogueButtonLabelColor1, _vm->_dialogueButtonLabelColor2);
-	clearCurDim();
 }
 
 } // End of namespace Kyra


Commit: 91c463184d9a2ed429baae343039f28c9671d523
    https://github.com/scummvm/scummvm/commit/91c463184d9a2ed429baae343039f28c9671d523
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:23+01:00

Commit Message:
KYRA: (EOB II FM-TOWNS) - fix mouse cursor hot spot

Changed paths:
    engines/kyra/screen_eob.cpp


diff --git a/engines/kyra/screen_eob.cpp b/engines/kyra/screen_eob.cpp
index 629d00c..4eae318 100644
--- a/engines/kyra/screen_eob.cpp
+++ b/engines/kyra/screen_eob.cpp
@@ -187,7 +187,7 @@ void Screen_EoB::setMouseCursor(int x, int y, const byte *shape, const uint8 *ov
 	colorKey = _16bitConversionPalette ? _16bitConversionPalette[colorKey] : colorKey;
 	Graphics::PixelFormat pixelFormat = _system->getScreenFormat();
 
-	CursorMan.replaceCursor(cursor, mouseW * scaleFactor, mouseH * scaleFactor, x, y, colorKey, false, &pixelFormat);
+	CursorMan.replaceCursor(cursor, mouseW * scaleFactor, mouseH * scaleFactor, x * scaleFactor, y * scaleFactor, colorKey, false, &pixelFormat);
 	if (isMouseVisible())
 		CursorMan.showMouse(true);
 	delete[] cursor;





More information about the Scummvm-git-logs mailing list