From 1ab002143f9ed5210573073e635390bba2bc7465 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 16 Oct 2007 21:05:15 +0000 Subject: [PATCH 02/52] merged vector change to 1.4 branch --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40528 --- sourcehook/sh_vector.h | 61 +++++++++++++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/sourcehook/sh_vector.h b/sourcehook/sh_vector.h index 45f4ed6..26b16b9 100755 --- a/sourcehook/sh_vector.h +++ b/sourcehook/sh_vector.h @@ -19,39 +19,58 @@ namespace SourceHook // Vector template class CVector { - bool Grow() + bool Grow(size_t amount) { // automatic grow size_t newSize = m_Size * 2; + if (newSize == 0) - newSize = 8; // a good init value + { + newSize = 8; + } + + while (m_CurrentUsedSize + amount > newSize) + { + newSize *= 2; + } + T *newData = new T[newSize]; - if (!newData) - return false; + if (m_Data) { for (size_t i=0; i= m_Size) - return Grow(); + if (m_CurrentUsedSize + amount >= m_Size) + { + return Grow(amount); + } else + { return true; + } } bool ChangeSize(size_t size) { // change size if (size == m_Size) + { return true; + } if (!size) { @@ -65,19 +84,24 @@ template class CVector } T *newData = new T[size]; - if (!newData) - return false; + if (m_Data) { size_t end = (m_CurrentUsedSize < size) ? (m_CurrentUsedSize) : size; for (size_t i=0; i m_Size) + { m_CurrentUsedSize = m_Size; + } return true; } @@ -85,7 +109,9 @@ template class CVector void FreeMemIfPossible() { if (!m_Data) + { return; + } if (!m_CurrentUsedSize) { @@ -95,10 +121,14 @@ template class CVector size_t newSize = m_Size; while (m_CurrentUsedSize <= newSize / 2) + { newSize /= 2; + } if (newSize != m_Size) + { ChangeSize(newSize); + } } protected: T *m_Data; @@ -321,14 +351,13 @@ public: bool push_back(const T & elem) { - ++m_CurrentUsedSize; - if (!GrowIfNeeded()) + if (!GrowIfNeeded(1)) { - --m_CurrentUsedSize; return false; } - m_Data[m_CurrentUsedSize - 1] = elem; + m_Data[m_CurrentUsedSize++] = elem; + return true; } @@ -433,13 +462,13 @@ public: size_t ofs = where - begin(); - ++m_CurrentUsedSize; - if (!GrowIfNeeded()) + if (!GrowIfNeeded(1)) { - --m_CurrentUsedSize; return false; } + ++m_CurrentUsedSize; + where = begin() + ofs; // Move subsequent entries From cdd0629dd8dbaf63912ef4261f81859c7139b214 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Wed, 28 Nov 2007 04:32:28 +0000 Subject: [PATCH 03/52] added experimental vdf-style loading --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40583 --- sourcemm/concommands.cpp | 7 ++ sourcemm/concommands.h | 1 + sourcemm/msvc8/sourcemm.vcproj | 7 +- sourcemm/sourcemm.cpp | 158 ++++++++++++++++++++++++++++++++- sourcemm/svn_version.h | 6 +- 5 files changed, 172 insertions(+), 7 deletions(-) diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp index 4a3344f..b79f128 100644 --- a/sourcemm/concommands.cpp +++ b/sourcemm/concommands.cpp @@ -118,8 +118,10 @@ void SMConVarAccessor::UnregisterGameDLLCommands() ConVar metamod_version("metamod_version", SOURCEMM_VERSION, FCVAR_REPLICATED | FCVAR_SPONLY | FCVAR_NOTIFY, "Metamod:Source Version"); #if defined WIN32 || defined _WIN32 ConVar mm_pluginsfile("mm_pluginsfile", "addons\\metamod\\metaplugins.ini", FCVAR_SPONLY, "Metamod:Source Plugins File"); +ConVar mm_basedir("mm_basedir", "addons\\metamod", FCVAR_SPONLY, "Metamod:Source base folder"); #else ConVar mm_pluginsfile("mm_pluginsfile", "addons/metamod/metaplugins.ini", FCVAR_SPONLY, "Metamod:Source Plugins File"); +ConVar mm_basedir("mm_basedir", "addons/metamod", FCVAR_SPONLY, "Metamod:Source base folder"); #endif CON_COMMAND(meta, "Metamod:Source Menu") @@ -762,3 +764,8 @@ const char *GetPluginsFile() { return mm_pluginsfile.GetString(); } + +const char *GetMetamodBaseDir() +{ + return mm_basedir.GetString(); +} diff --git a/sourcemm/concommands.h b/sourcemm/concommands.h index 56ca953..99640f5 100644 --- a/sourcemm/concommands.h +++ b/sourcemm/concommands.h @@ -47,6 +47,7 @@ public: void ClientCommand_handler(edict_t *client); const char *GetPluginsFile(); +const char *GetMetamodBaseDir(); extern SMConVarAccessor g_SMConVarAccessor; diff --git a/sourcemm/msvc8/sourcemm.vcproj b/sourcemm/msvc8/sourcemm.vcproj index 615c8d1..aa5015f 100644 --- a/sourcemm/msvc8/sourcemm.vcproj +++ b/sourcemm/msvc8/sourcemm.vcproj @@ -41,6 +41,7 @@ + + diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index 664e527..61311af 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -19,6 +19,7 @@ #include "CPlugin.h" #include "util.h" #include "vsp_listener.h" +#include using namespace SourceMM; @@ -43,6 +44,7 @@ void DLLShutdown_handler(); void LevelShutdown_handler(); bool LevelInit_handler(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background); bool GameInit_handler(); +void LookForVDFs(const char *dir); GameDllInfo g_GameDll = {false, NULL, NULL, NULL, NULL}; EngineInfo g_Engine; @@ -61,6 +63,8 @@ int g_GameDllVersion = 0; const char VSPIFACE_001[] = "ISERVERPLUGINCALLBACKS001"; const char VSPIFACE_002[] = "ISERVERPLUGINCALLBACKS002"; const char GAMEINFO_PATH[] = "|gameinfo_path|"; +IBaseFileSystem *baseFs = NULL; + void ClearGamedllList(); @@ -172,16 +176,29 @@ bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, LogMessage("[META] Warning: The 'meta game' command will not display user messages."); } + baseFs = (IBaseFileSystem *)((filesystemFactory)(BASEFILESYSTEM_INTERFACE_VERSION, NULL)); + if (baseFs == NULL) + { + LogMessage("[META] Failed to find filesystem interface, .vdf files will not be parsed."); + } + const char *pluginFile = g_Engine.icvar->GetCommandLineValue("mm_pluginsfile"); + const char *mmBaseDir = g_Engine.icvar->GetCommandLineValue("mm_basedir"); if (!pluginFile) { pluginFile = GetPluginsFile(); } + if (!mmBaseDir) + { + mmBaseDir = GetMetamodBaseDir(); + } char full_path[260]; - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), pluginFile); + g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), pluginFile); LoadPluginsFromFile(full_path); + g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), mmBaseDir); + LookForVDFs(full_path); bInFirstLevel = true; @@ -496,6 +513,136 @@ void DLLShutdown_handler() RETURN_META(MRES_SUPERCEDE); } +void LoadFromVDF(const char *file) +{ + PluginId id; + bool already; + KeyValues *pValues; + const char *plugin_file, *alias; + char full_path[256], error[256]; + + pValues = new KeyValues("Metamod Plugin"); + + if (!pValues->LoadFromFile(baseFs, file)) + { + pValues->deleteThis(); + return; + } + + if ((plugin_file = pValues->GetString("file", NULL)) == NULL) + { + pValues->deleteThis(); + return; + } + + if ((alias = pValues->GetString("alias", NULL)) != NULL) + { + g_PluginMngr.SetAlias(alias, plugin_file); + } + + /* Attempt to find a file extension */ + if (UTIL_GetExtension(plugin_file) == NULL) + { + g_SmmAPI.PathFormat(full_path, + sizeof(full_path), + "%s/%s%s", + g_ModPath.c_str(), + plugin_file, +#if defined WIN32 || defined _WIN32 + ".dll" +#else + "_i486.so" +#endif + ); + } + else + { + g_SmmAPI.PathFormat(full_path, + sizeof(full_path), + "%s/%s", + g_ModPath.c_str(), + plugin_file); + } + + id = g_PluginMngr.Load(full_path, Pl_File, already, error, sizeof(error)); + if (id < Pl_MinId || g_PluginMngr.FindById(id)->m_Status < Pl_Paused) + { + LogMessage("[META] Failed to load plugin %s: %s", plugin_file, error); + } + + pValues->deleteThis(); +} + +void LookForVDFs(const char *dir) +{ + char path[MAX_PATH]; + +#if defined _MSC_VER + HANDLE hFind; + WIN32_FIND_DATA fd; + char error[255]; + + g_SmmAPI.PathFormat(path, sizeof(path), "%s\\*.*", dir); + if ((hFind = FindFirstFile(path, &fd)) == INVALID_HANDLE_VALUE) + { + DWORD dw = GetLastError(); + FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + dw, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + error, + sizeof(error), + NULL); + LogMessage("[META] Could not open folder \"%s\" (%s)", dir, error); + return; + } + + do + { + if (strcmp(fd.cFileName, ".") == 0 + || strcmp(fd.cFileName, "..") == 0) + { + continue; + } + if (strstr(fd.cFileName, ".vdf") == NULL) + { + continue; + } + g_SmmAPI.PathFormat(path, sizeof(path), "%s\\%s", dir, fd.cFileName); + LoadFromVDF(path); + } while (FindNextFile(hFind, &fd)); + + FindClose(hFind); +#else + DIR *pDir; + char error[255]; + struct dirent *pEnt; + + if ((pDir = opendir(dir)) == NULL) + { + LogMessage("[META] Could not open folder \"%s\" (%s)", dir, strerror(errno)); + return; + } + + while ((pEnt = readdir(pDir)) != NULL) + { + if (strcmp(pEnt->d_name, ".") == 0 + || strcmp(pEnt->d_name, "..") == 0) + { + continue; + } + if (strstr(pEnt->d_name, ".vdf") == NULL) + { + continue; + } + g_SmmAPI.PathFormat(path, sizeof(path), "%s/%s", dir, pEnt->d_name); + LoadFromVDF(path); + } + + closedir(pDir); +#endif +} + int LoadPluginsFromFile(const char *_file) { FILE *fp; @@ -671,10 +818,15 @@ void LevelShutdown_handler(void) if (!bInFirstLevel) { char full_path[255]; - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), GetPluginsFile()); + g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), GetPluginsFile()); LoadPluginsFromFile(full_path); - } else { + + g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), GetMetamodBaseDir()); + LookForVDFs(full_path); + } + else + { bInFirstLevel = false; } diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h index faeca49..562168c 100644 --- a/sourcemm/svn_version.h +++ b/sourcemm/svn_version.h @@ -3,11 +3,11 @@ #ifndef _INCLUDE_SVN_VERSION_H_ #define _INCLUDE_SVN_VERSION_H_ -#define SVN_PRODUCT_VERSION "1.4.2" +#define SVN_PRODUCT_VERSION "1.4.3" #define SVN_REVISION 414 #define SVN_REVISION_STRING "414" -#define SVN_FILE_VERSION 1,4,2,414 -#define SVN_FILE_VERSION_STRING "1.4.2.414" +#define SVN_FILE_VERSION 1,4,3,414 +#define SVN_FILE_VERSION_STRING "1.4.3.414" #endif //_INCLUDE_SVN_VERSION_H_ From 4b3af9477478ab1173789d1a7ad067ea1a417b6b Mon Sep 17 00:00:00 2001 From: David Anderson Date: Wed, 28 Nov 2007 04:33:59 +0000 Subject: [PATCH 04/52] added new environment variable usage to the msvc8 makefile --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40584 --- sourcemm/msvc8/sourcemm.vcproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sourcemm/msvc8/sourcemm.vcproj b/sourcemm/msvc8/sourcemm.vcproj index aa5015f..485dc1b 100644 --- a/sourcemm/msvc8/sourcemm.vcproj +++ b/sourcemm/msvc8/sourcemm.vcproj @@ -127,6 +127,7 @@ Optimization="3" FavorSizeOrSpeed="1" OmitFramePointers="true" + AdditionalIncludeDirectories="$(HL2SDK)\public;$(HL2SDK)\public\dlls;$(HL2SDK)\public\engine;$(HL2SDK)\public\tier0;$(HL2SDK)\public\tier1;$(HL2SDK)\public\vstdlib;$(HL2SDK)\tier1;..\..;..\..\sourcehook" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SOURCEMM_EXPORTS;_CRT_SECURE_NO_DEPRECATE" StringPooling="true" ExceptionHandling="1" @@ -149,7 +150,7 @@ /> Date: Wed, 28 Nov 2007 04:39:16 +0000 Subject: [PATCH 05/52] added linux support to new VDF code --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40585 --- sourcemm/sourcemm.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index 61311af..67afe74 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -615,7 +615,6 @@ void LookForVDFs(const char *dir) FindClose(hFind); #else DIR *pDir; - char error[255]; struct dirent *pEnt; if ((pDir = opendir(dir)) == NULL) From 41d6c2c37e16a9fc0b81f725e773bd8886615396 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 29 Nov 2007 00:13:08 +0000 Subject: [PATCH 06/52] experimental commit of a new feature --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40586 --- sourcemm/CSmmAPI.cpp | 2 +- sourcemm/sourcemm.cpp | 123 +++++++++++++++++++++++++++++++++----- sourcemm/sourcemm.h | 4 ++ sourcemm/vsp_listener.cpp | 33 +++++----- sourcemm/vsp_listener.h | 2 + 5 files changed, 133 insertions(+), 31 deletions(-) diff --git a/sourcemm/CSmmAPI.cpp b/sourcemm/CSmmAPI.cpp index 29963a9..317d31a 100644 --- a/sourcemm/CSmmAPI.cpp +++ b/sourcemm/CSmmAPI.cpp @@ -487,7 +487,7 @@ void CSmmAPI::LoadAsVSP() void CSmmAPI::EnableVSPListener() { /* If GameInit already passed and we're not already enabled or loaded, go ahead and LoadAsVSP load */ - if (bGameInit && !m_VSP && !g_VspListener.IsLoaded()) + if (bGameInit && !m_VSP && !g_VspListener.IsLoaded() && !g_VspListener.IsRootLoadMethod()) { LoadAsVSP(); } diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index 67afe74..4c1680c 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -19,6 +19,7 @@ #include "CPlugin.h" #include "util.h" #include "vsp_listener.h" +#include "iplayerinfo.h" #include using namespace SourceMM; @@ -63,7 +64,7 @@ int g_GameDllVersion = 0; const char VSPIFACE_001[] = "ISERVERPLUGINCALLBACKS001"; const char VSPIFACE_002[] = "ISERVERPLUGINCALLBACKS002"; const char GAMEINFO_PATH[] = "|gameinfo_path|"; -IBaseFileSystem *baseFs = NULL; +IFileSystem *baseFs = NULL; void ClearGamedllList(); @@ -125,14 +126,10 @@ void InitMainStates() SH_ADD_HOOK_STATICFUNC(IServerGameDLL, GameInit, g_GameDll.pGameDLL, GameInit_handler, false); } -bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, CreateInterfaceFn filesystemFactory, CGlobalVars *pGlobals) +bool StartupMetamod(CreateInterfaceFn engineFactory) { - g_Engine.engineFactory = engineFactory; - g_Engine.fileSystemFactory = filesystemFactory; - g_Engine.physicsFactory = physicsFactory; - g_Engine.pGlobals = pGlobals; - g_Engine.engine = (IVEngineServer *)((engineFactory)(INTERFACEVERSION_VENGINESERVER, NULL)); + if (!g_Engine.engine) { Error("Could not find IVEngineServer! Metamod cannot load."); @@ -147,7 +144,6 @@ bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, g_Engine.loaded = true; - /* Initialize our console hooks */ ConCommandBaseMgr::OneTimeInit(static_cast(&g_SMConVarAccessor)); g_GameDllPatch = SH_GET_CALLCLASS(g_GameDll.pGameDLL); @@ -155,7 +151,9 @@ bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, if (g_GameDll.pGameClients) { SH_ADD_HOOK_STATICFUNC(IServerGameClients, ClientCommand, g_GameDll.pGameClients, ClientCommand_handler, false); - } else { + } + else + { /* If IServerGameClients isn't found, this really isn't a fatal error so... */ LogMessage("[META] Warning: Could not find IServerGameClients!"); LogMessage("[META] Warning: The 'meta' command will not be available to clients."); @@ -170,13 +168,13 @@ bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, if (!g_SmmAPI.CacheUserMessages()) { /* Don't know of a mod that has stripped out user messages completely, - * but perhaps should do something different here? - */ + * but perhaps should do something different here? + */ LogMessage("[META] Warning: Failed to get list of user messages."); LogMessage("[META] Warning: The 'meta game' command will not display user messages."); } - baseFs = (IBaseFileSystem *)((filesystemFactory)(BASEFILESYSTEM_INTERFACE_VERSION, NULL)); + baseFs = (IFileSystem *)((engineFactory)(FILESYSTEM_INTERFACE_VERSION, NULL)); if (baseFs == NULL) { LogMessage("[META] Failed to find filesystem interface, .vdf files will not be parsed."); @@ -202,9 +200,90 @@ bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, bInFirstLevel = true; + return true; +} + +bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, CreateInterfaceFn filesystemFactory, CGlobalVars *pGlobals) +{ + g_Engine.engineFactory = engineFactory; + g_Engine.fileSystemFactory = filesystemFactory; + g_Engine.physicsFactory = physicsFactory; + g_Engine.pGlobals = pGlobals; + + StartupMetamod(engineFactory); + RETURN_META_VALUE(MRES_IGNORED, true); } +bool AlternatelyLoadMetamod(CreateInterfaceFn ifaceFactory, CreateInterfaceFn serverFactory) +{ + g_Engine.engineFactory = ifaceFactory; + g_Engine.fileSystemFactory = ifaceFactory; + g_Engine.physicsFactory = ifaceFactory; + + IPlayerInfoManager *playerInfoManager = (IPlayerInfoManager *)serverFactory("PlayerInfoManager002", NULL); + if (playerInfoManager == NULL) + { + Error("Metamod:Source requires gameinfo.txt modification to load on this game."); + return false; + } + + g_Engine.pGlobals = playerInfoManager->GetGlobalVars(); + + /* Now find the server */ + g_GameDll.factory = serverFactory; + g_GameDll.lib = NULL; + + char gamedll_iface[] = "ServerGameDLL000"; + for (unsigned int i = 3; i <= 50; i++) + { + gamedll_iface[15] = '0' + i; + g_GameDll.pGameDLL = (IServerGameDLL *)serverFactory(gamedll_iface, NULL); + if (g_GameDll.pGameDLL != NULL) + { + g_GameDllVersion = i; + break; + } + } + + if (g_GameDll.pGameDLL == NULL) + { + Error("Metamod:Source requires gameinfo.txt modification to load on this game."); + return false; + } + + char gameclients_iface[] = "ServerGameClients000"; + for (unsigned int i = 3; i <= 4; i++) + { + gameclients_iface[19] = '0' + i; + g_GameDll.pGameClients = (IServerGameClients *)serverFactory(gameclients_iface, NULL); + if (g_GameDll.pGameClients != NULL) + { + break; + } + } + + char smm_path[PATH_SIZE]; + const char *game_dir; + GetFileOfAddress((void *)AlternatelyLoadMetamod, smm_path, sizeof(smm_path)); + g_SmmPath.assign(smm_path); + + game_dir = CommandLine()->ParmValue("-game", "hl2"); + abspath(smm_path, game_dir); + g_ModPath.assign(smm_path); + + InitMainStates(); + + if (!StartupMetamod(ifaceFactory)) + { + return false; + } + + g_PluginMngr.SetAllLoaded(); + + return true; +} + bool GameInit_handler() { if (bGameInit) @@ -212,7 +291,7 @@ bool GameInit_handler() return true; } - if (g_SmmAPI.VSPEnabled()) + if (g_SmmAPI.VSPEnabled() && !g_VspListener.IsRootLoadMethod()) { g_SmmAPI.LoadAsVSP(); } @@ -234,7 +313,7 @@ SMM_API void *CreateInterface(const char *iface, int *ret) /* Prevent loading of self as a SourceMM plugin or Valve server plugin :x */ if (strcmp(iface, PLAPI_NAME) == 0) { - Warning("Do not try loading Metamod:Source as a SourceMM or Valve server plugin.\n"); + Warning("Do not try loading Metamod:Source as a Metamod:Source plugin"); if (ret) { @@ -257,6 +336,12 @@ SMM_API void *CreateInterface(const char *iface, int *ret) return &g_VspListener; } + /* If we're a VSP, bypass this by default */ + if (g_VspListener.IsRootLoadMethod()) + { + IFACE_MACRO(g_GameDll.factory, GameDLL); + } + if (!gParsedGameInfo) { gParsedGameInfo = true; @@ -490,7 +575,7 @@ void ClearGamedllList() gamedll_list.clear(); } -void DLLShutdown_handler() +void UnloadMetamod() { /* Unload plugins */ g_PluginMngr.UnloadAll(); @@ -507,9 +592,15 @@ void DLLShutdown_handler() g_SourceHook.CompleteShutdown(); if (g_GameDll.lib && g_GameDll.loaded) + { dlclose(g_GameDll.lib); + } memset(&g_GameDll, 0, sizeof(GameDllInfo)); +} +void DLLShutdown_handler() +{ + UnloadMetamod(); RETURN_META(MRES_SUPERCEDE); } @@ -586,7 +677,7 @@ void LookForVDFs(const char *dir) if ((hFind = FindFirstFile(path, &fd)) == INVALID_HANDLE_VALUE) { DWORD dw = GetLastError(); - FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, + FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), diff --git a/sourcemm/sourcemm.h b/sourcemm/sourcemm.h index b61f9eb..bfc7386 100644 --- a/sourcemm/sourcemm.h +++ b/sourcemm/sourcemm.h @@ -87,6 +87,8 @@ struct EngineInfo IVEngineServer *engine; }; +bool AlternatelyLoadMetamod(CreateInterfaceFn ifaceFactory, CreateInterfaceFn serverFactory); + /** @brief Global variable for GameDLL info */ extern GameDllInfo g_GameDll; @@ -116,6 +118,8 @@ extern int g_GameDllVersion; extern bool bGameInit; +void UnloadMetamod(); + /** @brief Global CallClass for IServerGameDLL */ extern SourceHook::CallClass *g_GameDllPatch; diff --git a/sourcemm/vsp_listener.cpp b/sourcemm/vsp_listener.cpp index c02a230..33e0b7e 100644 --- a/sourcemm/vsp_listener.cpp +++ b/sourcemm/vsp_listener.cpp @@ -19,6 +19,7 @@ VSPListener::VSPListener() { m_Loaded = false; m_Loadable = false; + m_bIsRootLoadMethod = false; } void VSPListener::ClientActive(edict_t *pEntity) @@ -92,6 +93,7 @@ void VSPListener::ServerActivate(edict_t *pEdictList, int edictCount, int client void VSPListener::Unload() { + UnloadMetamod(); } void VSPListener::SetLoadable(bool set) @@ -99,27 +101,30 @@ void VSPListener::SetLoadable(bool set) m_Loadable = set; } +bool VSPListener::IsRootLoadMethod() +{ + return m_bIsRootLoadMethod; +} + bool VSPListener::Load(CreateInterfaceFn interfaceFactory, CreateInterfaceFn gameServerFactory) { - if (!g_GameDll.loaded) - { - Error("Metamod:Source is not a Valve Server Plugin\n"); - - return false; - } - - if (!m_Loadable) - { - Warning("Do not manually load Metamod:Source as a Valve Server Plugin\n"); - - return false; - } - if (m_Loaded) { return false; } + if (!m_Loadable && !g_GameDll.loaded) + { + /* New loading mechanism, do a bunch o' stuff! */ + m_bIsRootLoadMethod = true; + m_Loaded = true; + SetLoadable(false); + if (!AlternatelyLoadMetamod(interfaceFactory, gameServerFactory)) + { + return false; + } + } + m_Loaded = true; SetLoadable(false); diff --git a/sourcemm/vsp_listener.h b/sourcemm/vsp_listener.h index 44b7b60..f907855 100644 --- a/sourcemm/vsp_listener.h +++ b/sourcemm/vsp_listener.h @@ -39,9 +39,11 @@ public: public: bool IsLoaded(); void SetLoadable(bool loadable); + bool IsRootLoadMethod(); private: bool m_Loaded; bool m_Loadable; + bool m_bIsRootLoadMethod; }; extern VSPListener g_VspListener; From b8a88dbdb285116c1fe8c328f5951093451461da Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 29 Nov 2007 00:35:24 +0000 Subject: [PATCH 07/52] fixed a few implementation details --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40587 --- sourcemm/sourcemm.cpp | 15 +++++++++------ sourcemm/sourcemm.h | 2 +- sourcemm/vsp_listener.cpp | 8 +++++++- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index 4c1680c..051b9e3 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -575,16 +575,19 @@ void ClearGamedllList() gamedll_list.clear(); } -void UnloadMetamod() +void UnloadMetamod(bool shutting_down) { /* Unload plugins */ g_PluginMngr.UnloadAll(); - /* Add the FCVAR_GAMEDLL flag to our cvars so the engine removes them properly */ - g_SMConVarAccessor.MarkCommandsAsGameDLL(); - g_SMConVarAccessor.UnregisterGameDLLCommands(); + if (shutting_down) + { + /* Add the FCVAR_GAMEDLL flag to our cvars so the engine removes them properly */ + g_SMConVarAccessor.MarkCommandsAsGameDLL(); + g_SMConVarAccessor.UnregisterGameDLLCommands(); - SH_CALL(g_GameDllPatch, &IServerGameDLL::DLLShutdown)(); + SH_CALL(g_GameDllPatch, &IServerGameDLL::DLLShutdown)(); + } SH_RELEASE_CALLCLASS(g_GameDllPatch); g_GameDllPatch = NULL; @@ -600,7 +603,7 @@ void UnloadMetamod() void DLLShutdown_handler() { - UnloadMetamod(); + UnloadMetamod(true); RETURN_META(MRES_SUPERCEDE); } diff --git a/sourcemm/sourcemm.h b/sourcemm/sourcemm.h index bfc7386..f7a6a02 100644 --- a/sourcemm/sourcemm.h +++ b/sourcemm/sourcemm.h @@ -118,7 +118,7 @@ extern int g_GameDllVersion; extern bool bGameInit; -void UnloadMetamod(); +void UnloadMetamod(bool shutting_down); /** @brief Global CallClass for IServerGameDLL */ extern SourceHook::CallClass *g_GameDllPatch; diff --git a/sourcemm/vsp_listener.cpp b/sourcemm/vsp_listener.cpp index 33e0b7e..56aee6e 100644 --- a/sourcemm/vsp_listener.cpp +++ b/sourcemm/vsp_listener.cpp @@ -93,7 +93,13 @@ void VSPListener::ServerActivate(edict_t *pEdictList, int edictCount, int client void VSPListener::Unload() { - UnloadMetamod(); + if (IsRootLoadMethod()) + { + UnloadMetamod(false); + } + m_Loadable = true; + m_Loaded = false; + m_bIsRootLoadMethod = false; } void VSPListener::SetLoadable(bool set) From 7f594b8fa05668449f78fd58c838958b25a1c788 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 29 Nov 2007 00:54:49 +0000 Subject: [PATCH 08/52] more fixes --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40588 --- sourcemm/concommands.cpp | 8 ++++++++ sourcemm/concommands.h | 1 + sourcemm/vsp_listener.cpp | 2 ++ 3 files changed, 11 insertions(+) diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp index b79f128..d67db68 100644 --- a/sourcemm/concommands.cpp +++ b/sourcemm/concommands.cpp @@ -760,6 +760,14 @@ void ClientCommand_handler(edict_t *client) RETURN_META(MRES_IGNORED); } +void SMConVarAccessor::UnloadMetamodCommands() +{ + Unregister(&metamod_version); + Unregister(&mm_pluginsfile); + Unregister(&mm_basedir); + Unregister(&meta_command); +} + const char *GetPluginsFile() { return mm_pluginsfile.GetString(); diff --git a/sourcemm/concommands.h b/sourcemm/concommands.h index 99640f5..6256186 100644 --- a/sourcemm/concommands.h +++ b/sourcemm/concommands.h @@ -31,6 +31,7 @@ public: void MarkCommandsAsGameDLL(); void Unregister(ConCommandBase *pCommand); void UnregisterGameDLLCommands(); + void UnloadMetamodCommands(); }; class CAlwaysRegisterableCommand : public ConCommandBase diff --git a/sourcemm/vsp_listener.cpp b/sourcemm/vsp_listener.cpp index 56aee6e..9f65997 100644 --- a/sourcemm/vsp_listener.cpp +++ b/sourcemm/vsp_listener.cpp @@ -10,6 +10,7 @@ #include "vsp_listener.h" #include "CPlugin.h" +#include "concommands.h" using namespace SourceMM; @@ -95,6 +96,7 @@ void VSPListener::Unload() { if (IsRootLoadMethod()) { + g_SMConVarAccessor.UnloadMetamodCommands(); UnloadMetamod(false); } m_Loadable = true; From 73255baa6c0edaf0033995ec0fc6c61cbc9c4758 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 13 Dec 2007 19:11:02 +0000 Subject: [PATCH 09/52] new loading mechanism now loads on gameinit because we can't detect late loads --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40590 --- sourcemm/concommands.cpp | 19 ++++++++++++-- sourcemm/sourcemm.cpp | 55 +++++++++++++++++++++++++--------------- sourcemm/svn_version.h | 8 +++--- 3 files changed, 55 insertions(+), 27 deletions(-) diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp index d67db68..5f487b0 100644 --- a/sourcemm/concommands.cpp +++ b/sourcemm/concommands.cpp @@ -14,6 +14,7 @@ #include "CPlugin.h" #include "sh_string.h" #include "sh_list.h" +#include "vsp_listener.h" /** * @brief Console Command Implementations @@ -130,6 +131,12 @@ CON_COMMAND(meta, "Metamod:Source Menu") int args = e->Cmd_Argc(); + if (g_VspListener.IsRootLoadMethod() && !bGameInit) + { + CONMSG("WARNING: You must change the map to activate Metamod:Source.\n"); + return; + } + if (args >= 2) { const char *command = e->Cmd_Argv(1); @@ -145,6 +152,14 @@ CON_COMMAND(meta, "Metamod:Source Menu") return; } else if (strcmp(command, "version") == 0) { CONMSG("Metamod:Source version %s\n", SOURCEMM_VERSION); + if (g_VspListener.IsRootLoadMethod()) + { + CONMSG("Load Method: Valve Server Plugin\n"); + } + else + { + CONMSG("Load Method: GameDLL (gameinfo.txt)\n"); + } CONMSG("Compiled on: %s\n", SOURCEMM_DATE); CONMSG("Plugin interface version: %d:%d\n", PLAPI_VERSION, PLAPI_MIN_VERSION); CONMSG("SourceHook version: %d:%d\n", g_SourceHook.GetIfaceVersion(), g_SourceHook.GetImplVersion()); @@ -690,8 +705,8 @@ void ClientCommand_handler(edict_t *client) { CLIENT_CONMSG(client, "Metamod:Source was developed by:\n"); CLIENT_CONMSG(client, " SourceHook: Pavol \"PM OnoTo\" Marko\n"); - CLIENT_CONMSG(client, " GameDLL/Plugins: David \"BAILOPAN\" Anderson\n"); - CLIENT_CONMSG(client, " GameDLL: Scott \"Damaged Soul\" Ehlert\n"); + CLIENT_CONMSG(client, " Core: David \"BAILOPAN\" Anderson\n"); + CLIENT_CONMSG(client, " Core: Scott \"Damaged Soul\" Ehlert\n"); CLIENT_CONMSG(client, "For more information, see the official website\n"); CLIENT_CONMSG(client, "http://www.sourcemm.net/\n"); diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index 051b9e3..ac850fa 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -126,7 +126,29 @@ void InitMainStates() SH_ADD_HOOK_STATICFUNC(IServerGameDLL, GameInit, g_GameDll.pGameDLL, GameInit_handler, false); } -bool StartupMetamod(CreateInterfaceFn engineFactory) +void DoInitialPluginLoads() +{ + const char *pluginFile = g_Engine.icvar->GetCommandLineValue("mm_pluginsfile"); + const char *mmBaseDir = g_Engine.icvar->GetCommandLineValue("mm_basedir"); + + if (!pluginFile) + { + pluginFile = GetPluginsFile(); + } + if (!mmBaseDir) + { + mmBaseDir = GetMetamodBaseDir(); + } + + char full_path[260]; + + g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), pluginFile); + LoadPluginsFromFile(full_path); + g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), mmBaseDir); + LookForVDFs(full_path); +} + +bool StartupMetamod(CreateInterfaceFn engineFactory, bool bWaitForGameInit) { g_Engine.engine = (IVEngineServer *)((engineFactory)(INTERFACEVERSION_VENGINESERVER, NULL)); @@ -180,25 +202,11 @@ bool StartupMetamod(CreateInterfaceFn engineFactory) LogMessage("[META] Failed to find filesystem interface, .vdf files will not be parsed."); } - const char *pluginFile = g_Engine.icvar->GetCommandLineValue("mm_pluginsfile"); - const char *mmBaseDir = g_Engine.icvar->GetCommandLineValue("mm_basedir"); - if (!pluginFile) + if (!bWaitForGameInit) { - pluginFile = GetPluginsFile(); + DoInitialPluginLoads(); + bInFirstLevel = true; } - if (!mmBaseDir) - { - mmBaseDir = GetMetamodBaseDir(); - } - - char full_path[260]; - - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), pluginFile); - LoadPluginsFromFile(full_path); - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), mmBaseDir); - LookForVDFs(full_path); - - bInFirstLevel = true; return true; } @@ -210,7 +218,7 @@ bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, g_Engine.physicsFactory = physicsFactory; g_Engine.pGlobals = pGlobals; - StartupMetamod(engineFactory); + StartupMetamod(engineFactory, false); RETURN_META_VALUE(MRES_IGNORED, true); } @@ -274,7 +282,7 @@ bool AlternatelyLoadMetamod(CreateInterfaceFn ifaceFactory, CreateInterfaceFn se InitMainStates(); - if (!StartupMetamod(ifaceFactory)) + if (!StartupMetamod(ifaceFactory, true)) { return false; } @@ -288,7 +296,7 @@ bool GameInit_handler() { if (bGameInit) { - return true; + RETURN_META_VALUE(MRES_IGNORED, true); } if (g_SmmAPI.VSPEnabled() && !g_VspListener.IsRootLoadMethod()) @@ -296,6 +304,11 @@ bool GameInit_handler() g_SmmAPI.LoadAsVSP(); } + if (g_VspListener.IsRootLoadMethod()) + { + DoInitialPluginLoads(); + } + bGameInit = true; RETURN_META_VALUE(MRES_IGNORED, true); diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h index 562168c..0523c0c 100644 --- a/sourcemm/svn_version.h +++ b/sourcemm/svn_version.h @@ -5,9 +5,9 @@ #define SVN_PRODUCT_VERSION "1.4.3" -#define SVN_REVISION 414 -#define SVN_REVISION_STRING "414" -#define SVN_FILE_VERSION 1,4,3,414 -#define SVN_FILE_VERSION_STRING "1.4.3.414" +#define SVN_REVISION 590 +#define SVN_REVISION_STRING "590" +#define SVN_FILE_VERSION 1,4,3,590 +#define SVN_FILE_VERSION_STRING "1.4.3.590" #endif //_INCLUDE_SVN_VERSION_H_ From 1a73ba9801fad76021bd6263f1b0c8922cc0f103 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 13 Dec 2007 19:52:03 +0000 Subject: [PATCH 10/52] fixed a bug where MM:S tried to manually declare errno - bad idea for platform compatibility --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40591 --- sourcemm/oslink.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sourcemm/oslink.h b/sourcemm/oslink.h index 77e4b75..7c317ed 100644 --- a/sourcemm/oslink.h +++ b/sourcemm/oslink.h @@ -56,7 +56,7 @@ #endif #if defined __linux__ - extern int errno; + #include int GetLastError(); #endif From b585c5806a2ca7b24d366a96600f94771ddc7e97 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 13 Dec 2007 21:09:52 +0000 Subject: [PATCH 11/52] prevented plugin_unload on MM:S --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40592 --- sourcemm/vsp_listener.cpp | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/sourcemm/vsp_listener.cpp b/sourcemm/vsp_listener.cpp index 9f65997..95f82a2 100644 --- a/sourcemm/vsp_listener.cpp +++ b/sourcemm/vsp_listener.cpp @@ -12,9 +12,23 @@ #include "CPlugin.h" #include "concommands.h" +SH_DECL_HOOK0_void(ConCommand, Dispatch, SH_NOATTRIB, false); + using namespace SourceMM; VSPListener g_VspListener; +ConCommand *g_plugin_unload = NULL; +bool g_bIsTryingToUnload; + +void InterceptPluginUnloads() +{ + g_bIsTryingToUnload = true; +} + +void InterceptPluginUnloads_Post() +{ + g_bIsTryingToUnload = false; +} VSPListener::VSPListener() { @@ -94,8 +108,19 @@ void VSPListener::ServerActivate(edict_t *pEdictList, int edictCount, int client void VSPListener::Unload() { + if (g_bIsTryingToUnload) + { + Error("Metamod:Source cannot be unloaded from VSP mode. Use \"meta unload\" to unload specific plugins."); + return; + } if (IsRootLoadMethod()) { + if (g_plugin_unload != NULL) + { + SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads, false); + SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads_Post, true); + g_plugin_unload = NULL; + } g_SMConVarAccessor.UnloadMetamodCommands(); UnloadMetamod(false); } @@ -131,6 +156,23 @@ bool VSPListener::Load(CreateInterfaceFn interfaceFactory, CreateInterfaceFn gam { return false; } + + ConCommandBase *pBase = g_Engine.icvar->GetCommands(); + while (pBase != NULL) + { + if (pBase->IsCommand() && strcmp(pBase->GetName(), "plugin_unload") == 0) + { + g_plugin_unload = (ConCommand *)pBase; + break; + } + pBase = const_cast(pBase->GetNext()); + } + + if (g_plugin_unload != NULL) + { + SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads, false); + SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads_Post, true); + } } m_Loaded = true; From 8e6f8ed29b7f6baf53d595cce39af90c2dd7e151 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Fri, 14 Dec 2007 00:12:31 +0000 Subject: [PATCH 12/52] added newline to error output, added -Wno-uninitialized to makefile --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40593 --- sourcemm/Makefile | 4 ++-- sourcemm/vsp_listener.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sourcemm/Makefile b/sourcemm/Makefile index 7cea117..ff2cd6b 100644 --- a/sourcemm/Makefile +++ b/sourcemm/Makefile @@ -1,7 +1,7 @@ #(C)2004-2007 SourceMM Development Team # Makefile written by David "BAILOPAN" Anderson -HL2SDK = ../../hl2sdk +HL2SDK = ../../../hl2sdk SMM_ROOT = .. SRCDS = ~/srcds @@ -34,7 +34,7 @@ endif GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) -CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse +CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse -Wno-uninitialized ifeq "$(GCC_VERSION)" "4" CFLAGS += $(GCC4_FLAGS) diff --git a/sourcemm/vsp_listener.cpp b/sourcemm/vsp_listener.cpp index 95f82a2..d3f13e6 100644 --- a/sourcemm/vsp_listener.cpp +++ b/sourcemm/vsp_listener.cpp @@ -110,7 +110,7 @@ void VSPListener::Unload() { if (g_bIsTryingToUnload) { - Error("Metamod:Source cannot be unloaded from VSP mode. Use \"meta unload\" to unload specific plugins."); + Error("Metamod:Source cannot be unloaded from VSP mode. Use \"meta unload\" to unload specific plugins.\n"); return; } if (IsRootLoadMethod()) From bcc08f184ba02d998a3c59ab8ee77e172f703650 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Fri, 14 Dec 2007 00:48:28 +0000 Subject: [PATCH 13/52] "meta" now only works after a mapchange if mm is late loaded --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40594 --- sourcemm/concommands.cpp | 2 +- sourcemm/sourcemm.cpp | 3 +++ sourcemm/sourcemm.h | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp index 5f487b0..f19597a 100644 --- a/sourcemm/concommands.cpp +++ b/sourcemm/concommands.cpp @@ -131,7 +131,7 @@ CON_COMMAND(meta, "Metamod:Source Menu") int args = e->Cmd_Argc(); - if (g_VspListener.IsRootLoadMethod() && !bGameInit) + if (g_VspListener.IsRootLoadMethod() && !g_bLevelChanged) { CONMSG("WARNING: You must change the map to activate Metamod:Source.\n"); return; diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index ac850fa..fd6ceb4 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -65,6 +65,7 @@ const char VSPIFACE_001[] = "ISERVERPLUGINCALLBACKS001"; const char VSPIFACE_002[] = "ISERVERPLUGINCALLBACKS002"; const char GAMEINFO_PATH[] = "|gameinfo_path|"; IFileSystem *baseFs = NULL; +bool g_bLevelChanged = false; void ClearGamedllList(); @@ -936,6 +937,8 @@ void LevelShutdown_handler(void) bInFirstLevel = false; } + g_bLevelChanged = true; + ITER_EVENT(OnLevelShutdown, ()); RETURN_META(MRES_IGNORED); diff --git a/sourcemm/sourcemm.h b/sourcemm/sourcemm.h index f7a6a02..05fd0b6 100644 --- a/sourcemm/sourcemm.h +++ b/sourcemm/sourcemm.h @@ -117,6 +117,7 @@ extern PluginId g_PLID; extern int g_GameDllVersion; extern bool bGameInit; +extern bool g_bLevelChanged; void UnloadMetamod(bool shutting_down); From 90fb451242f5fb736bb2f4ec9954d53950758041 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sun, 23 Dec 2007 09:07:48 +0000 Subject: [PATCH 14/52] fixed bugs related to vsplistener and vsp loading mechanism --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40599 --- sourcemm/CPlugin.cpp | 52 +++++++++++++++++++++++++++++++++++++-- sourcemm/CPlugin.h | 11 ++++++++- sourcemm/CSmmAPI.cpp | 10 +++++--- sourcemm/sourcemm.cpp | 9 ++++--- sourcemm/svn_version.h | 8 +++--- sourcemm/vsp_listener.cpp | 24 ++---------------- 6 files changed, 78 insertions(+), 36 deletions(-) diff --git a/sourcemm/CPlugin.cpp b/sourcemm/CPlugin.cpp index 218a1ad..239f277 100644 --- a/sourcemm/CPlugin.cpp +++ b/sourcemm/CPlugin.cpp @@ -12,6 +12,7 @@ #include "CSmmAPI.h" #include "sourcemm.h" #include "concommands.h" +#include "vsp_listener.h" /** * @brief Implements functions from CPlugin.h @@ -22,14 +23,14 @@ using namespace SourceMM; #define ITER_PLEVENT(evn, plid) \ CPluginManager::CPlugin *_Xpl; \ - SourceHook::List::iterator event; \ + SourceHook::List::iterator event; \ IMetamodListener *api; \ for (PluginIter iter = g_PluginMngr._begin(); iter != g_PluginMngr._end(); iter++) { \ _Xpl = (*iter); \ if (_Xpl->m_Id == plid) \ continue; \ for (event=_Xpl->m_Events.begin(); event!=_Xpl->m_Events.end(); event++) { \ - api = (*event); \ + api = (*event).event; \ api->evn(plid); \ } \ } @@ -182,6 +183,38 @@ void CPluginManager::SetAllLoaded() } } +void CPluginManager::SetVSPAsLoaded() +{ + PluginIter i; + CPlugin *pPlugin; + SourceHook::List::iterator event; + + for (i = m_Plugins.begin(); i != m_Plugins.end(); i++) + { + pPlugin = (*i); + if (pPlugin->m_Status < Pl_Paused) + { + continue; + } + /* Only valid for plugins >= 10 (v1:5, SourceMM 1.4) */ + if (pPlugin->m_API->GetApiVersion() < 10) + { + continue; + } + for (event = pPlugin->m_Events.begin(); + event != pPlugin->m_Events.end(); + event++) + { + if (!(*event).got_vsp) + { + continue; + } + (*event).got_vsp = true; + (*event).event->OnVSPListening(&g_VspListener); + } + } +} + bool CPluginManager::Pause(PluginId id, char *error, size_t maxlen) { CPlugin *pl = FindById(id); @@ -373,6 +406,21 @@ CPluginManager::CPlugin *CPluginManager::_Load(const char *file, PluginId source //if (pl->m_API->GetApiVersion() >= 4) pl->m_API->AllPluginsLoaded(); } + if (g_VspListener.IsRootLoadMethod()) + { + SourceHook::List::iterator event; + for (event = pl->m_Events.begin(); + event != pl->m_Events.end(); + event++) + { + if ((*event).got_vsp) + { + continue; + } + (*event).got_vsp = true; + (*event).event->OnVSPListening(&g_VspListener); + } + } } else { pl->m_Status = Pl_Refused; } diff --git a/sourcemm/CPlugin.h b/sourcemm/CPlugin.h index 005041f..86058be 100644 --- a/sourcemm/CPlugin.h +++ b/sourcemm/CPlugin.h @@ -50,6 +50,13 @@ namespace SourceMM SourceHook::String alias; SourceHook::String value; }; + + struct CPluginEventHandler + { + bool got_vsp; + IMetamodListener *event; + }; + /** * @brief Implements Plugin Manager API */ @@ -72,7 +79,7 @@ namespace SourceMM HINSTANCE m_Lib; SourceHook::List m_Cvars; SourceHook::List m_Cmds; - SourceHook::List m_Events; + SourceHook::List m_Events; }; public: CPluginManager(); @@ -123,6 +130,8 @@ namespace SourceMM //Internal iterators SourceHook::List::iterator _begin(); SourceHook::List::iterator _end(); + + void SetVSPAsLoaded(); private: //These are identical internal functions for the wrappers above. CPlugin *_Load(const char *file, PluginId source, char *error, size_t maxlen); diff --git a/sourcemm/CSmmAPI.cpp b/sourcemm/CSmmAPI.cpp index 317d31a..7538f15 100644 --- a/sourcemm/CSmmAPI.cpp +++ b/sourcemm/CSmmAPI.cpp @@ -141,8 +141,12 @@ void CSmmAPI::ConPrintf(const char *fmt, ...) void CSmmAPI::AddListener(ISmmPlugin *plugin, IMetamodListener *pListener) { CPluginManager::CPlugin *pl = g_PluginMngr.FindByAPI(plugin); + CPluginEventHandler cpeh; - pl->m_Events.push_back(pListener); + cpeh.event = pListener; + cpeh.got_vsp = false; + + pl->m_Events.push_back(cpeh); } void *CSmmAPI::MetaFactory(const char *iface, int *_ret, PluginId *id) @@ -174,7 +178,7 @@ void *CSmmAPI::MetaFactory(const char *iface, int *_ret, PluginId *id) } CPluginManager::CPlugin *pl; - SourceHook::List::iterator event; + SourceHook::List::iterator event; IMetamodListener *api; int ret = 0; void *val = NULL; @@ -184,7 +188,7 @@ void *CSmmAPI::MetaFactory(const char *iface, int *_ret, PluginId *id) pl = (*iter); for (event=pl->m_Events.begin(); event!=pl->m_Events.end(); event++) { - api = (*event); + api = (*event).event; ret = IFACE_FAILED; if ( (val=api->OnMetamodQuery(iface, &ret)) != NULL ) { diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index fd6ceb4..d1f3210 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -73,14 +73,14 @@ void ClearGamedllList(); /* Helper Macro */ #define IFACE_MACRO(orig,nam) \ CPluginManager::CPlugin *pl; \ - SourceHook::List::iterator event; \ + SourceHook::List::iterator event; \ IMetamodListener *api; \ int mret = 0; \ void *val = NULL; \ for (PluginIter iter = g_PluginMngr._begin(); iter != g_PluginMngr._end(); iter++) { \ pl = (*iter); \ for (event=pl->m_Events.begin(); event!=pl->m_Events.end(); event++) { \ - api = (*event); \ + api = (*event).event; \ mret = IFACE_FAILED; \ if ( (val=api->On##nam##Query(iface, &mret)) != NULL ) { \ if (ret) *ret = mret; \ @@ -92,12 +92,12 @@ void ClearGamedllList(); #define ITER_EVENT(evn, args) \ CPluginManager::CPlugin *pl; \ - SourceHook::List::iterator event; \ + SourceHook::List::iterator event; \ IMetamodListener *api; \ for (PluginIter iter = g_PluginMngr._begin(); iter != g_PluginMngr._end(); iter++) { \ pl = (*iter); \ for (event=pl->m_Events.begin(); event!=pl->m_Events.end(); event++) { \ - api = (*event); \ + api = (*event).event; \ api->evn args; \ } \ } @@ -308,6 +308,7 @@ bool GameInit_handler() if (g_VspListener.IsRootLoadMethod()) { DoInitialPluginLoads(); + //gaben } bGameInit = true; diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h index 0523c0c..15f8b97 100644 --- a/sourcemm/svn_version.h +++ b/sourcemm/svn_version.h @@ -5,9 +5,9 @@ #define SVN_PRODUCT_VERSION "1.4.3" -#define SVN_REVISION 590 -#define SVN_REVISION_STRING "590" -#define SVN_FILE_VERSION 1,4,3,590 -#define SVN_FILE_VERSION_STRING "1.4.3.590" +#define SVN_REVISION 599 +#define SVN_REVISION_STRING "599" +#define SVN_FILE_VERSION 1,4,3,599 +#define SVN_FILE_VERSION_STRING "1.4.3.599" #endif //_INCLUDE_SVN_VERSION_H_ diff --git a/sourcemm/vsp_listener.cpp b/sourcemm/vsp_listener.cpp index d3f13e6..0a4889c 100644 --- a/sourcemm/vsp_listener.cpp +++ b/sourcemm/vsp_listener.cpp @@ -178,29 +178,9 @@ bool VSPListener::Load(CreateInterfaceFn interfaceFactory, CreateInterfaceFn gam m_Loaded = true; SetLoadable(false); - PluginIter iter; - CPluginManager::CPlugin *pPlugin; - SourceHook::List::iterator event; - IMetamodListener *pML; - for (iter=g_PluginMngr._begin(); iter!=g_PluginMngr._end(); iter++) + if (!m_bIsRootLoadMethod) { - pPlugin = (*iter); - if (pPlugin->m_Status < Pl_Paused) - { - continue; - } - /* Only valid for plugins >= 10 (v1:5, SourceMM 1.4) */ - if (pPlugin->m_API->GetApiVersion() < 10) - { - continue; - } - for (event=pPlugin->m_Events.begin(); - event!=pPlugin->m_Events.end(); - event++) - { - pML = (*event); - pML->OnVSPListening(this); - } + g_PluginMngr.SetVSPAsLoaded(); } return true; From 8c15b8d5da519d1b4e76b6dab336fa0d694b57dc Mon Sep 17 00:00:00 2001 From: David Anderson Date: Sun, 23 Dec 2007 09:25:39 +0000 Subject: [PATCH 15/52] fixed more VSPlistening bugs --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40600 --- sourcemm/CPlugin.cpp | 5 +++-- sourcemm/svn_version.h | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/sourcemm/CPlugin.cpp b/sourcemm/CPlugin.cpp index 239f277..aecd031 100644 --- a/sourcemm/CPlugin.cpp +++ b/sourcemm/CPlugin.cpp @@ -205,7 +205,7 @@ void CPluginManager::SetVSPAsLoaded() event != pPlugin->m_Events.end(); event++) { - if (!(*event).got_vsp) + if ((*event).got_vsp) { continue; } @@ -406,7 +406,8 @@ CPluginManager::CPlugin *CPluginManager::_Load(const char *file, PluginId source //if (pl->m_API->GetApiVersion() >= 4) pl->m_API->AllPluginsLoaded(); } - if (g_VspListener.IsRootLoadMethod()) + if (g_VspListener.IsRootLoadMethod() + || (g_VspListener.IsLoaded() && g_SmmAPI.VSPEnabled())) { SourceHook::List::iterator event; for (event = pl->m_Events.begin(); diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h index 15f8b97..59689e1 100644 --- a/sourcemm/svn_version.h +++ b/sourcemm/svn_version.h @@ -5,9 +5,9 @@ #define SVN_PRODUCT_VERSION "1.4.3" -#define SVN_REVISION 599 -#define SVN_REVISION_STRING "599" -#define SVN_FILE_VERSION 1,4,3,599 -#define SVN_FILE_VERSION_STRING "1.4.3.599" +#define SVN_REVISION 600 +#define SVN_REVISION_STRING "600" +#define SVN_FILE_VERSION 1,4,3,600 +#define SVN_FILE_VERSION_STRING "1.4.3.600" #endif //_INCLUDE_SVN_VERSION_H_ From cf6b8f8378d4e9503bb8c57f899f55f673f6a5b7 Mon Sep 17 00:00:00 2001 From: Christian Hammacher Date: Mon, 24 Dec 2007 01:29:25 +0000 Subject: [PATCH 16/52] now creates VDF plugin, removed most of the gameinfo.txt stuff, removed hl2launch as it's no longer needed --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40601 --- installer/Attach.cfg | 4 +- installer/Attach.dpr | 33 +++--- installer/Attach.exe | Bin 281600 -> 360448 bytes installer/HL2Launch.cfg | 38 ------- installer/HL2Launch.dpr | 189 -------------------------------- installer/HL2Launch.exe | Bin 43008 -> 0 bytes installer/MMS_Installer.cfg | 4 +- installer/MMS_Installer.exe | Bin 637952 -> 637440 bytes installer/UnitFunctions.pas | 16 +++ installer/UnitInstall.pas | 202 ++++++++++++++++------------------- installer/UnitPackSystem.pas | 50 +++++---- installer/UnitfrmMain.pas | 134 +++++++++++++++++------ installer/files/Readme.txt | 13 +-- 13 files changed, 275 insertions(+), 408 deletions(-) delete mode 100644 installer/HL2Launch.cfg delete mode 100644 installer/HL2Launch.dpr delete mode 100644 installer/HL2Launch.exe diff --git a/installer/Attach.cfg b/installer/Attach.cfg index 662b86f..6c57635 100644 --- a/installer/Attach.cfg +++ b/installer/Attach.cfg @@ -31,8 +31,8 @@ -M -$M16384,1048576 -K$00400000 --LE"c:\programme\borland\delphi7\Projects\Bpl" --LN"c:\programme\borland\delphi7\Projects\Bpl" +-LE"c:\program files\borland\delphi7\Projects\Bpl" +-LN"c:\program files\borland\delphi7\Projects\Bpl" -w-UNSAFE_TYPE -w-UNSAFE_CODE -w-UNSAFE_CAST diff --git a/installer/Attach.dpr b/installer/Attach.dpr index 1056bb3..214317d 100644 --- a/installer/Attach.dpr +++ b/installer/Attach.dpr @@ -14,24 +14,31 @@ begin WriteLn(''); WriteLn('// Looking up files...'); { Check files } - if FileExists(ExtractFilePath(ParamStr(0)) + 'files\hl2launch.exe') then - WriteLn('// Found files\hl2launch.exe') + if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server.dll.source') then + WriteLn('// Found files\server.dll.source') else begin - WriteLn('// Error: Couldn''t find files\hl2launch.exe!'); + WriteLn('// Error: Couldn''t find files\server.dll.source!'); ReadLn; exit; end; - if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server.dll') then - WriteLn('// Found files\server.dll') + if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.source') then + WriteLn('// Found files\server_i486.so.source') else begin - WriteLn('// Error: Couldn''t find files\server.dll!'); + WriteLn('// Error: Couldn''t find files\server_i486.so.source!'); ReadLn; exit; end; - if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so') then - WriteLn('// Found files\server_i486.so') + if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server.dll.orangebox') then + WriteLn('// Found files\server.dll.orangebox') else begin - WriteLn('// Error: Couldn''t find files\server_i486.so!'); + WriteLn('// Error: Couldn''t find files\server.dll.orangebox!'); + ReadLn; + exit; + end; + if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.orangebox') then + WriteLn('// Found files\server_i486.so.orangebox') + else begin + WriteLn('// Error: Couldn''t find files\server_i486.so.orangebox!'); ReadLn; exit; end; @@ -53,9 +60,10 @@ begin { Compress files } WriteLn('// Compressing files...'); eFiles := TStringList.Create; - eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\hl2launch.exe'); - eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server.dll'); - eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so'); + eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server.dll.source'); + eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.source'); + eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server.dll.orangebox'); + eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.orangebox'); eStream := TMemoryStream.Create; CompressFiles(eFiles, ExtractFilePath(ParamStr(0)) + 'temp.zip'); eStream.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'temp.zip'); @@ -63,6 +71,7 @@ begin AttachToFile(ExtractFilePath(ParamStr(0)) + 'MMS_Installer.exe', eStream, Version); DeleteFile(ExtractFilePath(ParamStr(0)) + 'temp.zip'); eStream.Free; + eFiles.Free; WriteLn('// Done.'); ReadLn; end. diff --git a/installer/Attach.exe b/installer/Attach.exe index d46d25b1eb68420be438b22a716efff34509cfab..d83a203980b4a1778b9549c8a8bcb6af0b491d31 100644 GIT binary patch literal 360448 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%0A-+Kg##_gtoMUkhAj!pCyJYoKAX|Guy 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 k6reX;W=A*NsNR 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

&$-OG&nD? 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 T%UP5xmgl8GFaE#$X9oTUHt(6} literal 281600 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%0D@v_Cl9GFUg# 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

55V$X_SxwbIGd;j5TO>d^rSiV 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 diff --git a/installer/MMS_Installer.cfg b/installer/MMS_Installer.cfg index e9c1cc1..6c57635 100644 --- a/installer/MMS_Installer.cfg +++ b/installer/MMS_Installer.cfg @@ -31,8 +31,8 @@ -M -$M16384,1048576 -K$00400000 --LE"c:\program files (x86)\borland\delphi7\Projects\Bpl" --LN"c:\program files (x86)\borland\delphi7\Projects\Bpl" +-LE"c:\program files\borland\delphi7\Projects\Bpl" +-LN"c:\program files\borland\delphi7\Projects\Bpl" -w-UNSAFE_TYPE -w-UNSAFE_CODE -w-UNSAFE_CAST diff --git a/installer/MMS_Installer.exe b/installer/MMS_Installer.exe index 35e42b1599d1299d2b7866328c0b2650fc6c96d5..78b594890826ac3e6b01f609a8a4b3e600c8809a 100644 GIT binary patch delta 462889 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

*l&bREZEk6+Iz4TB(>Zi{ka{ylIvuN~h89mp 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%0D;OtCILASc04`QAy6gvCb0rMrP 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 W4c%0MOn~vvf(0NG+}J1 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 Wc${})c-)2nkvK6N^y2@f@_zsi(xgoQ diff --git a/installer/HL2Launch.cfg b/installer/HL2Launch.cfg deleted file mode 100644 index 662b86f..0000000 --- a/installer/HL2Launch.cfg +++ /dev/null @@ -1,38 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"c:\programme\borland\delphi7\Projects\Bpl" --LN"c:\programme\borland\delphi7\Projects\Bpl" --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/installer/HL2Launch.dpr b/installer/HL2Launch.dpr deleted file mode 100644 index 7eacc19..0000000 --- a/installer/HL2Launch.dpr +++ /dev/null @@ -1,189 +0,0 @@ -program HL2Launch; - -{$APPTYPE CONSOLE} - -uses - SysUtils, - ShellApi, - Windows, - Classes; - -procedure LaunchFile(eFile, eStartDir, eParams: String); -var eStartInfo: TStartupInfo; - eProcInfo: TProcessInformation; -begin - FillChar(eStartInfo, SizeOf(TStartupInfo), 0); - with eStartInfo do begin - cb := SizeOf(eStartInfo); - dwFlags := STARTF_USESHOWWINDOW; - end; - - if (CreateProcess(nil, PChar(eFile + #32 + eParams), nil, nil, False, NORMAL_PRIORITY_CLASS, nil, PChar(eStartDir), eStartInfo, eProcInfo)) then begin - try - WaitForSingleObject(eProcInfo.hProcess, INFINITE); - finally - CloseHandle(eProcInfo.hProcess); - CloseHandle(eProcInfo.hThread); - end; - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2); - Write(' Done.' + #13#10); - end - else begin - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); - Write(' Couldn''t start hl2.exe!' + #13#10); - end; -end; - -function GetFileSize(eFile: String): Int64; -var eFindHandle: THandle; - eFindData: TWIN32FINDDATA; -begin - Result := 0; - if not FileExists(eFile) then exit; - eFindHandle := FindFirstFile(PChar(eFile), eFindData); - if eFindHandle = INVALID_HANDLE_VALUE then exit; - Result := (eFindData.nFileSizeHigh * (Int64(MAXDWORD) + 1)) + eFindData.nFileSizeLow; - FindClose(eFindHandle); -end; - -var eStream: TFileStream; - ePath, eParams: String; - eModDir: String; - eSearchRec: TSearchRec; - eStr: TStringList; - i: integer; - CheckSuccessful: Boolean; - StartTime: Cardinal; -begin - ePath := ExtractFilePath(ParamStr(0)); - for i := 1 to ParamCount do - eParams := eParams + #32 + ParamStr(i); - Delete(eParams, 1, 1); - if Pos('console', LowerCase(eParams)) = 0 then - eParams := eParams + ' -console'; - eStream := nil; - eModDir := ''; - - SetConsoleTitle('HL2 Launcher'); - Sleep(200); // wait a few ms until the launch program is closed - - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2); - WriteLn(' _ _ _ ____ _ _ '); - WriteLn('| | | | | |___ \ | | __ _ _ _ _ __ ___| |__ ___ _ __ '); - WriteLn('| |_| | | __) | | | / _` | | | | ''_ \ / __| ''_ \ / _ \ ''__|'); - WriteLn('| _ | |___ / __/ | |__| (_| | |_| | | | | (__| | | | __/ | '); - WriteLn('|_| |_|_____|_____| |_____\__,_|\__,_|_| |_|\___|_| |_|\___|_| '); - WriteLn(' for listen servers using Metamod:Source'); - WriteLn(''); - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); - { Check files } - WriteLn('Checking files...'); - if not FileExists(ePath + 'hl2.exe') then begin - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); - WriteLn('Error: hl2.exe is missing! Maybe wrong directory? If not, start your HL2 Mod again via Steam and try again.'); - ReadLn; - exit; - end; - if not FileExists(Copy(ePath, 1, Pos('\steamapps\', LowerCase(ePath))) + 'steam.exe') then begin - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); - WriteLn('Error: Cannot find steam.exe! Make sure this application is located in your listen server''s directory.'); - ReadLn; - exit; - end; - { Verify GameInfo.txt ... } - Write('Verifying GameInfo.txt...'); - if (FindFirst(ePath + '*.*', faDirectory, eSearchRec) = 0) then begin - repeat - if (FileExists(ePath + eSearchRec.Name + '\GameInfo.txt')) then begin - eModDir := eSearchRec.Name; - break; - end; - until (FindNext(eSearchRec) <> 0); - end; - FindClose(eSearchRec.FindHandle); - if eModDir = '' then begin - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); - WriteLn(''); - WriteLn('Error: Couldn''t find GameInfo.txt!'); - ReadLn; - exit; - end - else begin - if Pos('game', LowerCase(eParams)) = 0 then // a small test which isn't worth a notice - eParams := '-game ' + eSearchRec.Name + #32 + eParams; - - eStr := TStringList.Create; - eStr.LoadFromFile(ePath + eModDir + '\GameInfo.txt'); - if Pos('|gameinfo_path|addons/metamod/bin', LowerCase(eStr.Text)) = 0 then begin - CheckSuccessful := False; - for i := 0 to eStr.Count -1 do begin - if Pos('searchpaths', LowerCase(Trim(eStr[i]))) = 1 then begin - if i+3 >= eStr.Count then - break; - eStr.Insert(i+2, ' GameBin |gameinfo_path|addons/metamod/bin'); - CheckSuccessful := True; - break; - end; - end; - - if CheckSuccessful then begin - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2); - SetFileAttributes(PChar(ePath + eModDir + '\GameInfo.txt'), 0); - eStr.SaveToFile(ePath + eModDir + '\GameInfo.txt'); - SetFileAttributes(PChar(ePath + eModDir + '\GameInfo.txt'), faReadOnly); - Write(' Registered MM:S sucessfully' + #13#10); - end - else begin - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4); - Write(' Unexpected EOF, your GameInfo.txt seems to be corrupt' + #13#10); - end; - end - else begin - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2); - Write(' Done' + #13#10); - end; - eStr.Free; - end; - { ... and set it to write-protected } - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); - Write('Setting GameInfo.txt to write-protected...'); - try - eStream := TFileStream.Create(ePath + eModDir + '\GameInfo.txt', fmShareDenyWrite); - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2); - Write(' Done.' + #13#10); - except - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14); - WriteLn(''); - WriteLn('Warning: Couldn''t set GameInfo.txt to write-protected!'); - eStream := nil; - end; - { Launch Steam if not opened } - ShellExecute(0, 'open', PChar(Copy(ePath, 1, Pos('\steamapps\', LowerCase(ePath))) + 'steam.exe'), nil, PChar(Copy(ePath, 1, Pos('\steamapps\', LowerCase(ePath)))), SW_SHOW); - { Launch game } - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); - Write('Starting HL2...'); - StartTime := GetTickCount; - LaunchFile(ePath + 'hl2.exe', Copy(ePath, 1, Pos('Steam', ePath)+5), eParams); - if (GetTickCount - StartTime < 10000) then begin - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14); - WriteLn('Important: If you experience any problems starting HL2 using this program, please start it once via Steam and try again.'); - ReadLn; - end; - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); - { Free GameInfo.txt } - Write('Removing read-only again from GameInfo.txt...'); - if Assigned(eStream) then begin - eStream.Free; - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2); - Write(' Done' + #13#10); - end - else begin - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4); - Write(' Skipped' + #13#10); - end; - { End message } - SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); - WriteLn(''); - WriteLn('Thanks for using Metamod:Source! Visit http://www.sourcemm.net/'); - Sleep(2500); -end. diff --git a/installer/HL2Launch.exe b/installer/HL2Launch.exe deleted file mode 100644 index 4a85d2d04505ca2d88c227910a38a2f1ea200285..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43008 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

}0RE7&l4&zOR@k!o~g>vF{<*FK;N%%{gv+ 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�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 z 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¨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 axBih|{v*HnM?UgL{!IMry>mEi`2Pc4ONi$H delta 463068 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%0DOG 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¬IQ*4nyhMnmoIt3t_?dG*!WWIm$}nd;O)0V` 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

UFA*$cA=oy4djG$a+J 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/Ci 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 -1) and (SteamInstall) then begin + {if (GetProcessID('Steam.exe') <> -1) and (SteamInstall) then begin if MessageBox(frmMain.Handle, 'Steam is still running. It is necersarry to shut it down before you install Metamod:Source. Shut it down now?', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNO) = mrYes then begin AddStatus('Shutting down Steam...', clBlack, False); if GetProcessID('Steam.exe') = -1 then @@ -247,13 +245,13 @@ begin Application.Terminate; exit; end; - end; + end;} frmMain.ggeAll.Progress := 1; frmMain.ggeItem.Progress := 1; { Unpack } frmMain.ggeItem.Progress := 0; AddStatus('Unpacking files...', clBlack); - if not Unpack() then begin + if not Unpack(Source) then begin AddStatus('No files attached!', clRed); Screen.Cursor := crDefault; exit; @@ -282,7 +280,7 @@ begin frmMain.ggeItem.Progress := 1; frmMain.ggeAll.Progress := 3; - { gameinfo.txt } + { gameinfo.txt for check / create VDF file } if not FileExists(ePath + 'gameinfo.txt') then begin if MessageBox(frmMain.Handle, 'The file "gameinfo.txt" couldn''t be found. Continue installation?', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNO) = mrNo then begin AddStatus('Installation canceled by user!', clRed, False); @@ -304,33 +302,32 @@ begin AddSkipped; frmMain.ggeItem.Progress := 1; frmMain.ggeAll.Progress := 4; - { Gameinfo.txt } + { CDF Plugin } frmMain.ggeItem.Progress := 0; - eFound := False; - AddStatus('Editing gameinfo.txt...', clBlack); - eStr.LoadFromFile(ePath + 'gameinfo.txt'); - for i := 0 to eStr.Count -1 do begin - if Trim(LowerCase(eStr[i])) = 'gamebin |gameinfo_path|addons/metamod/bin' then begin - eFound := True; - break; + AddStatus('Creating VDF Plugin...', clBlack); + if (FileExists(ePath + 'addons\metamod.vdf')) then begin + eStr.LoadFromFile(ePath + 'addons\metamod.vdf'); + if (Pos('server.dll', eStr.Text) <> 0) then + AddSkipped + else begin + eStr.Add(''); + eStr.Add('"Plugin"'); + eStr.Add('{'); + eStr.Add(' "file" "..\' + GetModName(ePath) + '\addons\metamod\bin\server.dll"'); + eStr.Add('}'); + eStr.SaveToFile(ePath + 'addons\metamod.vdf'); + AddDone; end; - end; - - if not eFound then begin - for i := 0 to eStr.Count -1 do begin - if Trim(eStr[i]) = 'SearchPaths' then begin - eStr.Insert(i +2, ' GameBin |gameinfo_path|addons/metamod/bin'); - AddDone; - break; - end; - end; - SetFileAttributes(PChar(ePath + 'gameinfo.txt'), 0); - eStr.SaveToFile(ePath + 'gameinfo.txt'); - SetFileAttributes(PChar(ePath + 'gameinfo.txt'), faReadOnly); // important for listen servers - AddDone; end - else - AddSkipped; + else begin + eStr.Add(''); + eStr.Add('"Plugin"'); + eStr.Add('{'); + eStr.Add(' "file" "..\' + GetModName(ePath) + '\addons\metamod\bin\server.dll"'); + eStr.Add('}'); + eStr.SaveToFile(ePath + 'addons\metamod.vdf'); + AddDone; + end; eStr.Free; frmMain.ggeItem.Progress := 1; frmMain.ggeAll.Progress := 5; @@ -342,16 +339,9 @@ begin AddDone; frmMain.ggeItem.Progress := 1; frmMain.ggeAll.Progress := 6; - if ListenInstall then begin - ePath := ExtractFilePath(Copy(ePath, 1, Length(ePath)-1)); - AddStatus('Copying hl2launch.exe...', clBlack); - CopyFile(PChar(ExtractFilePath(ParamStr(0)) + 'hl2launch.exe'), PChar(ePath + 'hl2launch.exe'), False); - AddDone; - end; { Remove files } frmMain.ggeItem.Progress := 0; AddStatus('Removing temporary files...', clBlack); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'hl2launch.exe')); DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll')); DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server_i486.so')); AddDone; @@ -363,44 +353,41 @@ begin frmMain.cmdNext.Enabled := True; frmMain.cmdCancel.Hide; Screen.Cursor := crDefault; - - if ListenInstall then - MessageBox(frmMain.Handle, PChar('hl2launch.exe has been copied to ' + ePath + '. You can use it if you want to start your Source game with Metamod:Source enabled.'), PChar(Application.Title), MB_ICONINFORMATION); end; { Dedicated Server } -procedure InstallDedicated(eModPath: String; UseSteam: Boolean); +procedure InstallDedicated(eModPath: String; const UseSteam, Source: Boolean); begin StartTime := Now; Screen.Cursor := crHourGlass; AddStatus('Starting Metamod:Source installation on dedicated server...', clBlack, False); - BasicInstallation(eModPath, UseSteam, False, osWindows); + BasicInstallation(eModPath, UseSteam, False, osWindows, Source); end; { Listen Server } -procedure InstallListen(ePath: String); +procedure InstallListen(ePath: String; const Source: Boolean); begin StartTime := Now; Screen.Cursor := crHourGlass; AddStatus('Starting Metamod:Source installation on the listen server...', clBlack); - BasicInstallation(ePath, True, True, osWindows); + BasicInstallation(ePath, True, True, osWindows, Source); end; { Custom mod } -procedure InstallCustom(ePath: String; eOS: TOS); +procedure InstallCustom(ePath: String; eOS: TOS; const Source: Boolean); begin StartTime := Now; Screen.Cursor := crHourGlass; AddStatus('Starting Metamod:Source installation...', clBlack); - BasicInstallation(ePath, False, False, eOS); + BasicInstallation(ePath, False, False, eOS, Source); end; { FTP } -procedure InstallFTP(OS: TOS); +procedure InstallFTP(OS: TOS; const Source: Boolean; const ModDir: String); function DoReconnect: Boolean; begin Result := False; @@ -414,8 +401,10 @@ begin end; end; + label CreateAgain; label UploadAgain; + var eStr: TStringList; i: integer; CopyConfig, eFound: Boolean; @@ -426,70 +415,24 @@ begin frmMain.ggeAll.MaxValue := 6; frmMain.ggeAll.Progress := 0; - frmMain.ggeItem.MaxValue := 1; + frmMain.ggeItem.MaxValue := 3; frmMain.ggeItem.Progress := 0; { Unpack } - frmMain.ggeItem.Progress := 0; AddStatus('Unpacking files...', clBlack); - if not Unpack() then begin + if not Unpack(Source) then begin AddStatus('No files attached!', clRed); Screen.Cursor := crDefault; exit; end; AddDone; - frmMain.ggeAll.Progress := 2; + frmMain.ggeAll.Progress := 1; frmMain.ggeItem.Progress := 1; - { Check for installation } - AddStatus('Editing gameinfo.txt...', clBlack); - eStr := TStringList.Create; - DownloadFile('gameinfo.txt', ExtractFilePath(ParamStr(0)) + 'gameinfo.txt'); - eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'gameinfo.txt'); - - CopyConfig := True; - eFound := False; - for i := 0 to eStr.Count -1 do begin - if Trim(LowerCase(eStr[i])) = 'gamebin |gameinfo_path|addons/metamod/bin' then begin - eFound := True; - case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to continue, No to Upgrade, or Cancel to abort the install.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrNo: CopyConfig := False; - mrCancel: begin - Application.Terminate; - eStr.Free; - exit; - end; - end; - break; - end; - end; - - if not eFound then begin - for i := 0 to eStr.Count -1 do begin - if Trim(eStr[i]) = 'SearchPaths' then begin - eStr.Insert(i +2, ' GameBin |gameinfo_path|addons/metamod/bin'); - AddDone; - break; - end; - end; - eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'gameinfo.txt'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'gameinfo.txt', 'gameinfo.txt'); - try - AddStatus('Trying to set gameinfo.txt to read-only...', clBlack); - frmMain.IdFTP.Site('CHMOD 744 gameinfo.txt'); - AddDone; - except - AddStatus('Warning: CHMOD not supported.', clMaroon); - end; - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'gameinfo.txt')); - end - else - AddSkipped; - frmMain.ggeAll.Progress := 3; - frmMain.ggeItem.Progress := 1; - + Sleep(250); { Create directories } + frmMain.ggeAll.Progress := 2; frmMain.ggeItem.Progress := 0; - frmMain.ggeItem.MaxValue := 3; + AddStatus('Creating directories...', clBlack); if not eFound then begin FTPMakeDir('addons'); @@ -504,8 +447,50 @@ begin end else AddSkipped; - frmMain.ggeAll.Progress := 4; - frmMain.ggeItem.Progress := 3; + { Create/Edit VDF Plugin } + CopyConfig := True; + eFound := False; + + frmMain.ggeAll.Progress := 3; + frmMain.ggeItem.Progress := 0; + + AddStatus('Creating VDF Plugin...', clBlack); + eStr := TStringList.Create; + try + frmMain.IdFTP.ChangeDir('addons'); + frmMain.ggeItem.Progress := 1; + DownloadFile('metamod.vdf', ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); + eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); + frmMain.ggeItem.Progress := 2; + if (((Pos('server.dll', eStr.Text) <> 0) and (OS = osWindows)) or ((Pos('server_i486.so', eStr.Text) <> 0) and (OS = osLinux))) then begin + AddSkipped; + + eFound := True; + case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to continue, No to Upgrade, or Cancel to abort the install.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of + mrNo: CopyConfig := False; + mrCancel: begin + Application.Terminate; + eStr.Free; + exit; + end; + end; + end + else + raise Exception.Create('Create config now!'); + except + frmMain.ggeItem.Progress := 2; + eStr.Add('"Plugin"'); + eStr.Add('{'); + if (OS = osWindows) then + eStr.Add(' "file" "..\' + ModDir + '\addons\metamod\bin\server.dll"') + else + eStr.Add(' "file" "../' + ModDir + '/addons/metamod/bin/server_i486.so"'); + eStr.Add('}'); + eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); + UploadFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf', 'metamod.vdf'); + frmMain.ggeItem.Progress := 3; + AddDone; + end; { Upload metaplugins.ini } frmMain.ggeAll.Progress := 4; frmMain.ggeItem.MaxValue := 1; @@ -537,7 +522,6 @@ begin end; { Remove created files } AddStatus('Removing temporary files...', clBlack); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'hl2launch.exe')); DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll')); DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server_i486.so')); AddDone; diff --git a/installer/UnitPackSystem.pas b/installer/UnitPackSystem.pas index 077808a..21e0b2c 100644 --- a/installer/UnitPackSystem.pas +++ b/installer/UnitPackSystem.pas @@ -4,11 +4,11 @@ interface uses SysUtils, Classes, Zlib; -procedure CompressFiles(Files : TStrings; const Filename : String); -function DecompressStream(Stream : TMemoryStream; DestDirectory : String): Boolean; +procedure CompressFiles(Files: TStrings; const Filename: String); +function DecompressStream(Stream: TMemoryStream; DestDirectory: String; const Source: Boolean): Boolean; function AttachToFile(const AFileName: string; MemoryStream: TMemoryStream; Version: String): Boolean; function LoadFromFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean; -function Unpack: Boolean; +function Unpack(const Source: Boolean): Boolean; function GetVersion: String; implementation @@ -54,6 +54,8 @@ begin { append the compressed file to the destination file } tmpFile := TFileStream.Create('tmp',fmOpenRead); try + l := tmpFile.Size; + outfile.WriteBuffer(l, SizeOf(l)); outfile.CopyFrom(tmpFile,0); finally tmpFile.Free; @@ -68,12 +70,13 @@ begin DeleteFile('tmp'); end; end; -function DecompressStream(Stream : TMemoryStream; DestDirectory : String): Boolean; + +function DecompressStream(Stream : TMemoryStream; DestDirectory : String; const Source: Boolean): Boolean; var dest,s : String; decompr : TDecompressionStream; outfile : TFilestream; - i,l,c : Integer; + i,l,lr,c : Integer; begin // IncludeTrailingPathDelimiter (D6/D7 only) dest := IncludeTrailingPathDelimiter(DestDirectory); @@ -82,24 +85,30 @@ begin try { number of files } Stream.Read(c,SizeOf(c)); - for i := 1 to c do - begin + for i := 1 to c do begin { read filename } Stream.Read(l,SizeOf(l)); SetLength(s,l); Stream.Read(s[1],l); - { read filesize } Stream.Read(l,SizeOf(l)); - { decompress the files and store it } - s := dest+s; //include the path - outfile := TFileStream.Create(s,fmCreate); - decompr := TDecompressionStream.Create(Stream); - try - outfile.CopyFrom(decompr,l); - finally - outfile.Free; - decompr.Free; - end; + Stream.Read(lr,SizeOf(lr)); + { check if this is the right file } + if ((Pos('.source', s) <> 0) and (Source)) or ((Pos('.orangebox', s) <> 0) and (not Source)) then begin + { remove extension and read filesize } + s := ChangeFileExt(s, ''); + { decompress the files and store it } + s := dest+s; //include the path + outfile := TFileStream.Create(s,fmCreate); + decompr := TDecompressionStream.Create(Stream); + try + outfile.CopyFrom(decompr,l); + finally + outfile.Free; + decompr.Free; + end; + end + else + Stream.Position := Stream.Position + lr; end; finally Result := True; @@ -114,6 +123,7 @@ begin Result := False; if not FileExists(AFileName) then Exit; + try aStream := TFileStream.Create(AFileName, fmOpenWrite or fmShareDenyWrite); MemoryStream.Seek(0, soFromBeginning); @@ -177,14 +187,14 @@ end; { Unpack function } -function Unpack: Boolean; +function Unpack(const Source: Boolean): Boolean; var eStream: TMemoryStream; begin eStream := TMemoryStream.Create; try // Get ZIP LoadFromFile(ParamStr(0), eStream); - DecompressStream(eStream, ExtractFilePath(ParamStr(0))); // Unpack files + DecompressStream(eStream, ExtractFilePath(ParamStr(0)), Source); // Unpack files Result := True; except diff --git a/installer/UnitfrmMain.pas b/installer/UnitfrmMain.pas index aee1c93..62bd95f 100644 --- a/installer/UnitfrmMain.pas +++ b/installer/UnitfrmMain.pas @@ -159,6 +159,7 @@ var ePath: String; CurNode: TTreeNode; eOS: TOS; i: integer; + Source: Boolean; begin { FTP } if jplWizard.ActivePage = jspFTP then begin @@ -175,14 +176,27 @@ begin end; IdFTP.ChangeDir(ePath); IdFTP.List(eStr, '', False); - if eStr.IndexOf('gameinfo.txt') = -1 then begin + eStr.CaseSensitive := False; + // check if gameinfo.txt is in the directory -> valid installation + if (eStr.IndexOf('gameinfo.txt') = -1) then begin MessageBox(Handle, 'Invalid directory. Please select your mod directory and try again.', PChar(Application.Title), MB_ICONWARNING); eStr.Free; exit; end else eStr.Free; - + // check for orangebox directory + Source := True; + if (AnsiSameText(trvDirectories.Selected.Text, 'tf')) then begin + case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of + mrYes: Source := False; + mrNo: Source := True; + mrCancel: begin + eStr.Free; + exit; + end; + end; + end; // design stuff trvDirectories.Enabled := False; cmdConnect.Enabled := False; @@ -198,54 +212,97 @@ begin jspInstallProgress.Show; // installation Screen.Cursor := crAppStart; - InstallFTP(eOS); + InstallFTP(eOS, Source, trvDirectories.Selected.Text); end else if jplWizard.ActivePage = jspInstallProgress then Close else if jplWizard.ActivePage = jspSelectMod then begin { Dedicated Server } - if (frbDedicatedServer.Checked) or (frbStandaloneServer.Checked) then begin + if frbDedicatedServer.Checked then begin + Source := True; + ePath := trvMods.Selected.Text; + if ePath = 'Counter-Strike:Source' then + ePath := trvMods.Selected.Parent.Text + '\source dedicated server\cstrike' + else if ePath = 'Day of Defeat:Source' then + ePath := trvMods.Selected.Parent.Text + '\source dedicated server\dod' + else if ePath = 'Half-Life 2 Deathmatch' then + ePath := trvMods.Selected.Parent.Text + '\source dedicated server\hl2mp' + else begin + { get games } + if ePath = 'Team Fortress 2' then + ePath := trvMods.Selected.Parent.Text + '\source 2007 dedicated server\tf'; + { ask user, just in case } + case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of + mrYes: Source := False; + mrNo: Source := True; + mrCancel: exit; + end; + end; + SteamPath := IncludeTrailingPathDelimiter(SteamPath) + 'steamapps\'; + // install it + if DirectoryExists(SteamPath + ePath) then begin + jspInstallProgress.Show; + InstallDedicated(IncludeTrailingPathDelimiter(SteamPath + ePath), True, Source); + end + else begin + MessageBox(Handle, 'Error: The directory of the mod you selected doesn''t exist any more. Run Dedicated Server with the chosen mod and try again.', PChar(Application.Title), MB_ICONERROR); + jspSelectMod.Show; + exit; + end; + end; + { Standalone Server } + if frbStandaloneServer.Checked then begin + Source := True; ePath := trvMods.Selected.Text; if ePath = 'Counter-Strike:Source' then ePath := 'cstrike' else if ePath = 'Day of Defeat:Source' then ePath := 'dod' - else - ePath := 'hl2mp'; - ePath := 'SteamApps\' + trvMods.Selected.Parent.Text + '\source dedicated server\' + ePath; - // install it - if frbDedicatedServer.Checked then begin - if DirectoryExists(SteamPath + ePath) then begin - jspInstallProgress.Show; - InstallDedicated(IncludeTrailingPathDelimiter(SteamPath + ePath), True); - end - else begin - MessageBox(Handle, 'Error: The directory of the mod you selected doesn''t exist any more. Run Dedicated Server with the chosen mod and try again.', PChar(Application.Title), MB_ICONERROR); - jspSelectMod.Show; - exit; + else if ePath = 'Half-Life 2 Deathmatch' then + ePath := 'hl2mp' + else begin + { get games } + if ePath = 'Team Fortress 2' then + ePath := 'orangebox\tf'; + { ask user, just in case } + case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of + mrYes: Source := False; + mrNo: Source := True; + mrCancel: exit; end; + end; + // install it + if DirectoryExists(StandaloneServer + ePath) then begin + jspInstallProgress.Show; + InstallDedicated(IncludeTrailingPathDelimiter(StandaloneServer + ePath), False, Source) end else begin - if DirectoryExists(StandaloneServer + ePath) then begin - jspInstallProgress.Show; - InstallDedicated(IncludeTrailingPathDelimiter(StandaloneServer + ePath), False) - end - else begin - MessageBox(Handle, 'Error: The directory of the mod you selected doesn''t exist (any more). Run Half-Life Dedicated Server with the chosen mod again and restart.', PChar(Application.Title), MB_ICONERROR); - jspSelectMod.Show; - exit; - end; + MessageBox(Handle, 'Error: The directory of the mod you selected doesn''t exist (any more). Run Half-Life Dedicated Server with the chosen mod again and restart.', PChar(Application.Title), MB_ICONERROR); + jspSelectMod.Show; + exit; end; end; { Listen Server } if frbListenServer.Checked then begin + Source := True; ePath := trvMods.Selected.Text; if ePath = 'Counter-Strike:Source' then ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\counter-strike source\cstrike' else if ePath = 'Half-Life 2 Deathmatch' then ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\half-life 2 deathmatch\hl2mp' - else - ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\day of defeat source\dod'; + else if ePath = 'Day of Defeat:Source' then + ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\day of defeat source\dod' + else begin + { get games } + if ePath = 'Team Fortress 2' then + ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\team fortress 2\tf'; + { ask user, just in case } + case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of + mrYes: Source := False; + mrNo: Source := True; + mrCancel: exit; + end; + end; if Pos(SteamPath, ePath) = 0 then MessageBox(Handle, 'An error occured. Please report this bug to the Metamod:Source team and post a new thread on the forums of www.amxmodx.org.', PChar(Application.Title), MB_ICONSTOP) @@ -256,7 +313,7 @@ begin end; jspInstallProgress.Show; - InstallListen(IncludeTrailingPathDelimiter(ePath)); + InstallListen(IncludeTrailingPathDelimiter(ePath), Source); end; end; { Custom mod below } @@ -287,6 +344,8 @@ begin trvMods.Items.AddChild(CurNode, 'Day of Defeat:Source'); if DirectoryExists(ePath + eStr[i] + '\source dedicated server\hl2mp') then trvMods.Items.AddChild(CurNode, 'Half-Life 2 Deatmatch'); + if DirectoryExists(ePath + eStr[i] + '\source 2007 dedicated server\tf') then + trvMods.Items.AddChild(CurNode, 'Team Fortress 2'); if CurNode.Count = 0 then CurNode.Free @@ -330,6 +389,8 @@ begin trvMods.Items.AddChild(CurNode, 'Day of Defeat:Source'); if DirectoryExists(ePath + eStr[i] + '\half-life 2 deathmatch') then trvMods.Items.AddChild(CurNode, 'Half-Life 2 Deatmatch'); + if DirectoryExists(ePath + eStr[i] + '\team fortress 2') then + trvMods.Items.AddChild(CurNode, 'Team Fortress 2'); if CurNode.Count = 0 then CurNode.Free @@ -362,6 +423,8 @@ begin trvMods.Items.Add(nil, 'Day of Defeat:Source'); if DirectoryExists(StandaloneServer + 'hl2mp') then trvMods.Items.Add(nil, 'Half-Life 2 Deatmatch'); + if DirectoryExists(StandaloneServer + 'orangebox\tf') then + trvMods.Items.Add(nil, 'Team Fortress 2'); jspSelectMod.Show; cmdNext.Enabled := False; end @@ -374,8 +437,19 @@ begin else if frbSelectMod.Checked then begin { Custom mod } if frmSelectModPath.ShowModal = mrOk then begin + ePath := frmSelectModPath.trvDirectory.SelectedFolder.PathName; + { check if this is an orangebox game } + Source := True; + if (AnsiSameText(ExtractFileName(ePath), 'tf')) then begin + case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of + mrYes: Source := False; + mrNo: Source := True; + mrCancel: exit; + end; + end; + { install now } jspInstallProgress.Show; - InstallCustom(IncludeTrailingPathDelimiter(frmSelectModPath.trvDirectory.SelectedFolder.PathName), osWindows); + InstallCustom(IncludeTrailingPathDelimiter(ePath), osWindows, Source); end; end else if frbFTP.Checked then // FTP diff --git a/installer/files/Readme.txt b/installer/files/Readme.txt index 9c39d58..4f858b5 100644 --- a/installer/files/Readme.txt +++ b/installer/files/Readme.txt @@ -1,7 +1,8 @@ -In this folder should be server.dll and server_i486.so. +Every MM:S library should be located in this directory. -How you prepare a release: -1) Copy the latest MM:S dlls and hl2launch.exe into this folder -2) Run Attach.exe -3) Test MMS_Installer.exe once (should work but nobody wants bug releases, especially not in the installer) -4) If everything worked fine, release it, otherwise pm me (Basic-Master) \ No newline at end of file +How to prepare a release: +1) Copy the latest MM:S dlls into this folder +2) Append .source to the Source binaries and .orangebox to the OrangeBox binaries +3) Run Attach.exe +4) Test MMS_Installer.exe once (recommended) +5) Release it or e-Mail me if you find a bug \ No newline at end of file From 7cc4820b04e8c6c87bd1b5b1ab252a8069027137 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 24 Dec 2007 03:50:50 +0000 Subject: [PATCH 17/52] updated changelog, added new formatting for meta list --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40602 --- sourcemm/CPlugin.cpp | 31 +++++++++++++++ sourcemm/CPlugin.h | 2 + sourcemm/changelog.txt | 7 ++++ sourcemm/concommands.cpp | 82 +++++++++++++++++++++------------------ sourcemm/svn_version.h | 8 ++-- sourcemm/vsp_listener.cpp | 7 ++++ 6 files changed, 95 insertions(+), 42 deletions(-) diff --git a/sourcemm/CPlugin.cpp b/sourcemm/CPlugin.cpp index aecd031..2996f2b 100644 --- a/sourcemm/CPlugin.cpp +++ b/sourcemm/CPlugin.cpp @@ -665,3 +665,34 @@ void CPluginManager::UnregAllConCmds(CPlugin *pl) pl->m_Cmds.clear(); } + +const char *CPluginManager::GetStatusText(CPlugin *pl) +{ + switch (pl->m_Status) + { + case Pl_NotFound: + return "NOFILE"; + case Pl_Error: + return "ERROR"; + case Pl_Refused: + return "FAILED"; + case Pl_Paused: + return "PAUSED"; + case Pl_Running: + { + if (pl->m_API && pl->m_API->QueryRunning(NULL, 0)) + { + return "STOPPED"; + } else { + return "RUNNING"; + } + } + default: + return "-"; + } +} + +unsigned int CPluginManager::GetPluginCount() +{ + return (unsigned int)m_Plugins.size(); +} diff --git a/sourcemm/CPlugin.h b/sourcemm/CPlugin.h index 86058be..2f9e3c2 100644 --- a/sourcemm/CPlugin.h +++ b/sourcemm/CPlugin.h @@ -132,6 +132,8 @@ namespace SourceMM SourceHook::List::iterator _end(); void SetVSPAsLoaded(); + unsigned int GetPluginCount(); + const char *CPluginManager::GetStatusText(CPlugin *pl); private: //These are identical internal functions for the wrappers above. CPlugin *_Load(const char *file, PluginId source, char *error, size_t maxlen); diff --git a/sourcemm/changelog.txt b/sourcemm/changelog.txt index 40867d6..812fbef 100644 --- a/sourcemm/changelog.txt +++ b/sourcemm/changelog.txt @@ -1,3 +1,10 @@ +2007/12/24 1.4.3: + - Metamod:Source can now be loaded via a .vdf instead of gameinfo.txt. + - Added new plugin loading mechanism via .vdf files in the metamod folder. + - Changed "meta list" output to look similar to Metamod:Source 1.6. + - Plugins which need a VSP pointer can now receive it on late load. + - Fixed a rare memory corruption bug in the CVector class. + 2007/06/26 1.4.2: - Fixed a bug where unloading all plugins could crash if one plugin had child plugins. diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp index f19597a..21590be 100644 --- a/sourcemm/concommands.cpp +++ b/sourcemm/concommands.cpp @@ -154,11 +154,11 @@ CON_COMMAND(meta, "Metamod:Source Menu") CONMSG("Metamod:Source version %s\n", SOURCEMM_VERSION); if (g_VspListener.IsRootLoadMethod()) { - CONMSG("Load Method: Valve Server Plugin\n"); + CONMSG("Loaded As: Valve Server Plugin\n"); } else { - CONMSG("Load Method: GameDLL (gameinfo.txt)\n"); + CONMSG("Loaded As: GameDLL (gameinfo.txt)\n"); } CONMSG("Compiled on: %s\n", SOURCEMM_DATE); CONMSG("Plugin interface version: %d:%d\n", PLAPI_VERSION, PLAPI_MIN_VERSION); @@ -208,58 +208,64 @@ CON_COMMAND(meta, "Metamod:Source Menu") return; } else if (strcmp(command, "list") == 0) { - SourceMM::CPluginManager::CPlugin *pl; + size_t len; PluginIter i; - const char *status=""; - const char *version=NULL; - const char *name=NULL; - const char *author=NULL; + char buffer[255]; + ISmmPlugin *plapi; + const char *plname; + SourceMM::CPluginManager::CPlugin *pl; + unsigned int plnum = g_PluginMngr.GetPluginCount(); + +#define IS_STR_FILLED(var) (var != NULL && var[0] != '\0') + + if (!plnum) + { + CONMSG("No plugins loaded.\n"); + return; + } + else + { + CONMSG("Listing %d plugin%s:\n", plnum, (plnum > 1) ? "s" : ""); + } - CONMSG("-Id- %-20.19s %-10.9s %-20.19s %-8.7s\n", "Name", "Version", "Author", "Status"); for (i=g_PluginMngr._begin(); i!=g_PluginMngr._end(); i++) { pl = (*i); if (!pl) + { break; - if (pl->m_Status == Pl_Paused) - { - status = "PAUSE"; - } else if (pl->m_Status == Pl_Running) { - if (pl->m_API && pl->m_API->QueryRunning(NULL, 0)) - status = "RUN"; - else - status = "STOPPED"; - } else if (pl->m_Status == Pl_Refused) { - status = "FAIL"; - } else if (pl->m_Status == Pl_Error) { - status = "ERROR"; - } else if (pl->m_Status == Pl_NotFound) { - status = "NOFILE"; } - if (pl->m_API) + len = 0; + + if (pl->m_Status != Pl_Running) { - version = pl->m_API->GetVersion(); - author = pl->m_API->GetAuthor(); - name = pl->m_API->GetName(); - } else { - version = "-"; - author = "-"; - name = "-"; + len += UTIL_Format(buffer, sizeof(buffer), " [%02d] <%s>", pl->m_Id, g_PluginMngr.GetStatusText(pl)); + } + else + { + len += UTIL_Format(buffer, sizeof(buffer), " [%02d]", pl->m_Id); } - if (!version) - version = "-"; - if (!author) - author = "-"; - if (!name) - name = pl->m_File.c_str(); + if ((plapi = pl->m_API)) + { + plname = IS_STR_FILLED(plapi->GetName()) ? plapi->GetName() : pl->m_File.c_str(); + len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " %s", plname); + if (IS_STR_FILLED(plapi->GetVersion())) + { + len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " (%s)", plapi->GetVersion()); + } + if (IS_STR_FILLED(plapi->GetAuthor())) + { + UTIL_Format(&buffer[len], sizeof(buffer)-len, " by %s", plapi->GetAuthor()); + } + } - CONMSG("[%02d] %-20.19s %-10.9s %-20.19s %-8.7s\n", pl->m_Id, name, version, author, status); + CONMSG("%s\n", buffer); } - //CONMSG("\n"); +#undef IS_STR_FILLED return; } else if (strcmp(command, "cmds") == 0) { diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h index 59689e1..6dfe460 100644 --- a/sourcemm/svn_version.h +++ b/sourcemm/svn_version.h @@ -5,9 +5,9 @@ #define SVN_PRODUCT_VERSION "1.4.3" -#define SVN_REVISION 600 -#define SVN_REVISION_STRING "600" -#define SVN_FILE_VERSION 1,4,3,600 -#define SVN_FILE_VERSION_STRING "1.4.3.600" +#define SVN_REVISION 602 +#define SVN_REVISION_STRING "602" +#define SVN_FILE_VERSION 1,4,3,602 +#define SVN_FILE_VERSION_STRING "1.4.3.602" #endif //_INCLUDE_SVN_VERSION_H_ diff --git a/sourcemm/vsp_listener.cpp b/sourcemm/vsp_listener.cpp index 0a4889c..87cbc91 100644 --- a/sourcemm/vsp_listener.cpp +++ b/sourcemm/vsp_listener.cpp @@ -173,6 +173,13 @@ bool VSPListener::Load(CreateInterfaceFn interfaceFactory, CreateInterfaceFn gam SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads, false); SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads_Post, true); } + + /* Ho ho ho... if we get here, set a new cvar version. */ + extern ConVar metamod_version; + char buffer[255]; + + UTIL_Format(buffer, sizeof(buffer), "%sV", metamod_version.GetString()); + metamod_version.SetValue(buffer); } m_Loaded = true; From db8501c0bf7e3a7f4e053449fff3f408a8808dd3 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 24 Dec 2007 04:55:16 +0000 Subject: [PATCH 18/52] mimiced new meta list fprmatting to client console --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40603 --- sourcemm/concommands.cpp | 60 +++++++++++++++++++++------------------- sourcemm/svn_version.h | 8 +++--- 2 files changed, 35 insertions(+), 33 deletions(-) diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp index 21590be..cf42a82 100644 --- a/sourcemm/concommands.cpp +++ b/sourcemm/concommands.cpp @@ -265,8 +265,6 @@ CON_COMMAND(meta, "Metamod:Source Menu") CONMSG("%s\n", buffer); } -#undef IS_STR_FILLED - return; } else if (strcmp(command, "cmds") == 0) { if (args >= 3) @@ -727,44 +725,48 @@ void ClientCommand_handler(edict_t *client) RETURN_META(MRES_SUPERCEDE); } else if(strcmp(subcmd, "list") == 0) { SourceMM::CPluginManager::CPlugin *pl; - Pl_Status st; + ISmmPlugin *plapi; + const char *plname; PluginIter i; - const char *version = NULL; - const char *name = NULL; - const char *author = NULL; - const char *status = NULL; + char buffer[256]; + int len = 0; + int plnum = 0; - CLIENT_CONMSG(client, "-Id- %-20.19s %-10.9s %-20.19s %6s\n", "Name", "Version", "Author", "Status"); - - for (i=g_PluginMngr._begin(); i!=g_PluginMngr._end(); i++) + for (i = g_PluginMngr._begin(); i != g_PluginMngr._end(); i++, len=0) { pl = (*i); - if (!pl) - break; - - st = pl->m_Status; - - /* Only show plugins that are running or paused */ - if (pl->m_API && (st == Pl_Running || st == Pl_Paused)) + if (pl && pl->m_Status == Pl_Running) { - version = pl->m_API->GetVersion(); - author = pl->m_API->GetAuthor(); - name = pl->m_API->GetName(); - - if (st == Pl_Running && pl->m_API->QueryRunning(NULL, 0)) + plapi = pl->m_API; + if (!plapi || !plapi->QueryRunning(NULL, 0)) { - status = "RUN"; - } else { - status = "PAUSE"; + continue; + } + plnum++; + + len += UTIL_Format(buffer, sizeof(buffer), " [%02d]", plnum); + + plname = IS_STR_FILLED(plapi->GetName()) ? plapi->GetName() : pl->m_File.c_str(); + len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " %s", plname); + + if (IS_STR_FILLED(plapi->GetVersion())) + { + len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " (%s)", plapi->GetVersion()); + } + if (IS_STR_FILLED(plapi->GetAuthor())) + { + UTIL_Format(&buffer[len], sizeof(buffer)-len, " by %s", plapi->GetAuthor()); } - if (!version || !author || !name) - break; - - CLIENT_CONMSG(client, "[%02d] %-20.19s %-10.9s %-20.19s %6s\n", pl->m_Id, name, version, author, status); + CLIENT_CONMSG(client, "%s\n", buffer); } } + if (!plnum) + { + CLIENT_CONMSG(client, "No active plugins loaded.\n"); + } + RETURN_META(MRES_SUPERCEDE); } } diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h index 6dfe460..acc1e01 100644 --- a/sourcemm/svn_version.h +++ b/sourcemm/svn_version.h @@ -5,9 +5,9 @@ #define SVN_PRODUCT_VERSION "1.4.3" -#define SVN_REVISION 602 -#define SVN_REVISION_STRING "602" -#define SVN_FILE_VERSION 1,4,3,602 -#define SVN_FILE_VERSION_STRING "1.4.3.602" +#define SVN_REVISION 603 +#define SVN_REVISION_STRING "603" +#define SVN_FILE_VERSION 1,4,3,603 +#define SVN_FILE_VERSION_STRING "1.4.3.603" #endif //_INCLUDE_SVN_VERSION_H_ From 2023db4a44bfa4c1665c7345031f1368cc7ccb57 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 24 Dec 2007 05:37:00 +0000 Subject: [PATCH 19/52] fixed linux compiling bug --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40604 --- sourcemm/CPlugin.h | 2 +- sourcemm/svn_version.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sourcemm/CPlugin.h b/sourcemm/CPlugin.h index 2f9e3c2..9b8335b 100644 --- a/sourcemm/CPlugin.h +++ b/sourcemm/CPlugin.h @@ -133,7 +133,7 @@ namespace SourceMM void SetVSPAsLoaded(); unsigned int GetPluginCount(); - const char *CPluginManager::GetStatusText(CPlugin *pl); + const char *GetStatusText(CPlugin *pl); private: //These are identical internal functions for the wrappers above. CPlugin *_Load(const char *file, PluginId source, char *error, size_t maxlen); diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h index acc1e01..3bedfe8 100644 --- a/sourcemm/svn_version.h +++ b/sourcemm/svn_version.h @@ -5,9 +5,9 @@ #define SVN_PRODUCT_VERSION "1.4.3" -#define SVN_REVISION 603 -#define SVN_REVISION_STRING "603" -#define SVN_FILE_VERSION 1,4,3,603 -#define SVN_FILE_VERSION_STRING "1.4.3.603" +#define SVN_REVISION 604 +#define SVN_REVISION_STRING "604" +#define SVN_FILE_VERSION 1,4,3,604 +#define SVN_FILE_VERSION_STRING "1.4.3.604" #endif //_INCLUDE_SVN_VERSION_H_ From 0918d18d09ea3ba84dd34e12849886adb2d2073f Mon Sep 17 00:00:00 2001 From: Christian Hammacher Date: Mon, 24 Dec 2007 22:14:50 +0000 Subject: [PATCH 20/52] fixed new install method for FTP --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40607 --- installer/MMS_Installer.exe | Bin 637440 -> 637952 bytes installer/UnitInstall.pas | 19 +++++----- installer/UnitfrmMain.pas | 72 ++++++++++++++++-------------------- 3 files changed, 41 insertions(+), 50 deletions(-) diff --git a/installer/MMS_Installer.exe b/installer/MMS_Installer.exe index 78b594890826ac3e6b01f609a8a4b3e600c8809a..e0d218555b56e63dda61d3ca839227be56ce4235 100644 GIT binary patch delta 182947 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 z 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

UBC!Gf$9%BWtk-r${0 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 z c1ca=LQNpzE&#KRDO3?QVAG%l=7P>E2B&C1#^qPncz2@D^v?ZoK#tgG)EqgVA9 z*L7stG>}FIWnf8Tt39P1pA-s`MSjL{5E{vEdl(1m9N_u;5Nfcr*5T;$!}yYRu(Re| z2bXi&Z~}#m7xDW2PakxoX5Z+^DF|D<77Mk6pGgAxdR9O#*D3r@`3DUI~llN2e+=DF~FuZ71z)B(%f9_nQ zERE=8K&T6@e}L>zYWADgkdSN7D$R+6?A8f6xnndM{dn@H5UBX)&^XSqb6d;YFm`OG zlf|5*>^|qzXPZ+ z0ev_Pulgq7L~TcJou8A-k`Uq~u#G>6hX}s0@FeWAJ(P*^=JWZ8<*WZkUxU|3FCiZKR|7(4h(*v0BjBG zzthPuG&at{RtAKTXl0LE&K0k{P&^3l<95Oy404#%Gv!y|CdJ=H6|}4W%)=+nBt-w{ z;knSU1J*Hxq^N)Mlef})BTEs~Hw*AjWb8?VTY2>~H1{2Gsd_#WjW3-bwmJqBCoY`q zU33h)`wsueyNgu_v7UScpUsVBH-EwPns>kNechSxgyltTlqhtr7BN#rnXa$N0a2H( zXb)BOB@T}l@YML}iQ5t!v`Bs|fBuv44ioY|e8+{W?IWNnMYSIB=sAWSzZzWqF;DR< zjcgo43K;H?t7IHDu7alP-@`vwxo?=a=U6wqM-eO? zimIoj6Z#}IdnU8Pa2i#O^JM4bt~zKQ701mZI_}lq`;i)Vq>XTv7fZ{nZNUl(%Nv6A zb4jUr-4p&!H+^cmo|Hqji}uzeQbS!Eo@E(nYT@=L+nc__Yj&J6b||YWE+Y#REgY3(mmYa>P+YXI7dfLA-8$>18A~J+mTz&284(^3g1Xu~EE@KOd>N;v-j1%1np?)q& zst9`>x|<#tC6atx?tJ-SoKaMBt9v9Z1Iei%*8jM`yCRj=XBU?`Zj22Mp#8xIQKC$? zaM3w!Z5kD?9-$9OygT|OH}O}s%F)FI|8xjJx%3KYW=NM(i$(akN&a4pFL93yh8Mc8St&$mQJkIv&a=(Nkso{=**-MA%R+4qI?;GLKQ1yBIyc8a z3aT35@}_H@jm>bvybpor+t4lT&)Rp|Sb!VRwr*1Ha|FtOy&h`K-D{OJ3Kk5NbmFiq zXOA3XioNfSHzr7(KAHcHktC}%8UGs< z=!}|OW8&e2s1~*I94L77@B8}e^#>G5Ma<)?+%0A4G~7nz;8(x!TvV~&P78CVWQBLy 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 delta 182932 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%0A6?%KIzjjXH#4_hf^;EAN0AQq>Ex|QfWo@6Vp&Ht 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 0) and (OS = osWindows)) or ((Pos('server_i486.so', eStr.Text) <> 0) and (OS = osLinux))) then begin AddSkipped; - eFound := True; case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to continue, No to Upgrade, or Cancel to abort the install.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of mrNo: CopyConfig := False; mrCancel: begin @@ -489,7 +487,6 @@ begin eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); UploadFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf', 'metamod.vdf'); frmMain.ggeItem.Progress := 3; - AddDone; end; { Upload metaplugins.ini } frmMain.ggeAll.Progress := 4; @@ -500,7 +497,6 @@ begin eStr.Clear; eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); UploadFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini', 'metaplugins.ini'); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini')); end else AddSkipped; @@ -509,6 +505,7 @@ begin { Upload server.dll / server_i486.so } frmMain.tmrSpeed.Enabled := True; frmMain.ggeItem.Progress := 0; + frmMain.IdFTP.ChangeDir('metamod'); frmMain.IdFTP.ChangeDir('bin'); if OS = osWindows then begin AddStatus('Uploading server.dll...', clBlack); @@ -524,6 +521,8 @@ begin AddStatus('Removing temporary files...', clBlack); DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll')); DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server_i486.so')); + DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metamod.vdf')); + DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini')); AddDone; { End } frmMain.IdFTP.Disconnect; diff --git a/installer/UnitfrmMain.pas b/installer/UnitfrmMain.pas index 62bd95f..0982d5e 100644 --- a/installer/UnitfrmMain.pas +++ b/installer/UnitfrmMain.pas @@ -473,9 +473,9 @@ begin end; procedure TfrmMain.cmdConnectClick(Sender: TObject); -var i: integer; +var i, k: integer; eStr: TStringList; - CurNode: TTreeNode; + CurNode, CurNode2: TTreeNode; Path: String; begin if (Trim(txtHost.Text) = '') or (Trim(txtUsername.Text) = '') then @@ -506,7 +506,7 @@ begin eStr := TStringList.Create; eStr.Text := StringReplace(Path, '/', #13, [rfReplaceAll]); for i := eStr.Count -1 downto 0 do begin - if eStr[i] = '' then + if (eStr[i] = '') then eStr.Delete(i); end; if (Copy(Path, Length(Path) -1, 1) <> '/') then @@ -515,47 +515,39 @@ begin trvDirectories.Enabled := True; cmdConnect.Enabled := True; cmdConnect.Caption := 'Disconnect'; - // ... change to / and create all the directories ... - CurNode := nil; - if (Path <> '/') then begin - try - IdFTP.ChangeDir('/'); - with GetAllDirs do begin - for i := 0 to Count -1 do begin - if (Assigned(CurNode)) then - trvDirectories.Items.AddChild(trvDirectories.Items.Add(nil, Strings[i]), 'Scanning...') - else begin - CurNode := trvDirectories.Items.Add(nil, Strings[i]); - trvDirectories.Items.AddChild(CurNode, 'Scanning...'); - if (Pos('/' + CurNode.Text + '/', Path) = 0) then - CurNode := nil; - end - end; - Free; - end; - IdFTP.ChangeDir(Path); - except - if (IdFTP.Connected) then - IdFTP.ChangeDir(Path) - else - IdFTP.Connect; - end; - end; // ... find directories in start path ... - if eStr.Count <> 0 then begin - for i := 0 to eStr.Count -1 do begin - if (not ((i = 0) and (Assigned(CurNode)))) then - CurNode := trvDirectories.Items.AddChild(CurNode, eStr[i]); + CurNode := nil; + CurNode2 := nil; + if (eStr.Count <> 0) then begin + IdFTP.ChangeDir('/'); + for i := 0 to eStr.Count do begin + try + with GetAllDirs do begin + for k := 0 to Count -1 do begin + if (i = eStr.Count) or (Strings[k] <> eStr[i]) then + trvDirectories.Items.AddChild(trvDirectories.Items.AddChild(CurNode, Strings[k]), 'Scanning...') + else + CurNode2 := trvDirectories.Items.AddChild(CurNode, Strings[k]); + end; + Free; + + CurNode := CurNode2; + trvDirectories.Selected := CurNode; + Repaint; + Application.ProcessMessages; + end; + + if (i <> eStr.Count) then + IdFTP.ChangeDir(eStr[i]); + except + IdFTP.CheckForDisconnect(False); + if (not IdFTP.Connected) then + IdFTP.Disconnect; + CurNode := trvDirectories.Items.AddChild(CurNode, eStr.Strings[i]) + end; end; end; - trvDirectories.Selected := CurNode; eStr.Free; - // ... scan for directories ... - with GetAllDirs do begin - for i := 0 to Count -1 do - trvDirectories.Items.AddChild(trvDirectories.Items.AddChild(CurNode, Strings[i]), 'Scanning...'); - Free; - end; if Assigned(CurNode) then CurNode.Expand(False); From 4941565f1875cfd58146cd17029114b7d57c1062 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 7 Jan 2008 07:30:48 +0000 Subject: [PATCH 21/52] narrowed down valgrind complaints by adding SH_REMOVE to all the test cases --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40609 --- sourcehook/test/testbail.cpp | 4 ++++ sourcehook/test/testbail.h | 1 + sourcehook/test/testbail2.cpp | 13 +++++++++++++ sourcehook/test/testmulti.cpp | 5 +++-- sourcehook/test/testrecall.cpp | 6 ++++++ sourcehook/test/testref.cpp | 2 ++ sourcehook/test/testrefret.cpp | 8 ++++++++ 7 files changed, 37 insertions(+), 2 deletions(-) diff --git a/sourcehook/test/testbail.cpp b/sourcehook/test/testbail.cpp index d86f0c3..ebb6d92 100644 --- a/sourcehook/test/testbail.cpp +++ b/sourcehook/test/testbail.cpp @@ -109,6 +109,10 @@ bool TestBail(std::string &error) new State_EatYams_Return(6), NULL), "Part 6"); + SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler1, false); + + UntestBail2(); + delete g_Gabgab; return true; diff --git a/sourcehook/test/testbail.h b/sourcehook/test/testbail.h index 258a49c..f0eed7c 100644 --- a/sourcehook/test/testbail.h +++ b/sourcehook/test/testbail.h @@ -28,6 +28,7 @@ namespace N_TestBail extern IGaben *g_Gabgab; bool TestBail2(std::string &error); + void UntestBail2(); } using namespace N_TestBail; diff --git a/sourcehook/test/testbail2.cpp b/sourcehook/test/testbail2.cpp index 3c5db52..d1d6d3c 100644 --- a/sourcehook/test/testbail2.cpp +++ b/sourcehook/test/testbail2.cpp @@ -5,6 +5,7 @@ #include "sourcehook_test.h" #include "testbail.h" +static unsigned int n_calls = 0; int EatYams_Handler2(int a) { @@ -31,6 +32,18 @@ namespace N_TestBail CHECK_COND(ret == 6, "Part 2.1"); + n_calls++; + return true; } + + void UntestBail2() + { + while (n_calls) + { + SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler3, false); + SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler2, false); + n_calls--; + } + } } diff --git a/sourcehook/test/testmulti.cpp b/sourcehook/test/testmulti.cpp index 2e4ca9a..95e7490 100644 --- a/sourcehook/test/testmulti.cpp +++ b/sourcehook/test/testmulti.cpp @@ -94,9 +94,9 @@ bool TestMulti(std::string &error) } } - for (unsigned int i=1; i<10; i++) + for (unsigned int i=0; i<10; i++) { - SH_REMOVE_HOOK_STATICFUNC(VMultiTest, HookTarget, pv[1], HookFunction, false); + SH_REMOVE_HOOK_STATICFUNC(VMultiTest, HookTarget, pv[i], HookFunction, false); delete pv[i]; } @@ -104,3 +104,4 @@ bool TestMulti(std::string &error) return true; } + diff --git a/sourcehook/test/testrecall.cpp b/sourcehook/test/testrecall.cpp index a80ad1b..25eede5 100644 --- a/sourcehook/test/testrecall.cpp +++ b/sourcehook/test/testrecall.cpp @@ -222,5 +222,11 @@ bool TestRecall(std::string &error) CHECK_COND(a == 0xDEADFC, "Part 5.1"); + SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost_Func2, true); + SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, Handler2_Func2, false); + SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, Handler1_Func22, false); + SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost1_Func22, true); + SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost2_Func22, true); + return true; } diff --git a/sourcehook/test/testref.cpp b/sourcehook/test/testref.cpp index db5062a..1727bf5 100644 --- a/sourcehook/test/testref.cpp +++ b/sourcehook/test/testref.cpp @@ -159,5 +159,7 @@ bool TestRef(std::string &error) new State_Result(12), NULL), "Part 4"); + SH_REMOVE_HOOK_MEMFUNC(CHello, Func, &hello, &hook, &CHook::Func, false); + return true; } diff --git a/sourcehook/test/testrefret.cpp b/sourcehook/test/testrefret.cpp index 6853cf8..b2f9291 100644 --- a/sourcehook/test/testrefret.cpp +++ b/sourcehook/test/testrefret.cpp @@ -195,6 +195,14 @@ bool TestRefRet(std::string &error) &hook.m_Var), // override ret was hook.m_Var new State_Func2_Ret(&hook.m_Var), // really returned hook.m_Var NULL), "Part 7"); + + SH_REMOVE_HOOK_MEMFUNC(Test, Func2, &test, &hook, &CHook::Func2_Post1, true); + SH_REMOVE_HOOK_MEMFUNC(Test, Func2, &test, &hook, &CHook::Func2_Pre1, false); + SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Pre1, false); + SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Post1, true); + SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Pre2, false); + SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Post2, true); return true; } + From 9daa32243d52afe53a67f449cd40904b7899680a Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 10 Jan 2008 16:54:04 +0000 Subject: [PATCH 22/52] fixed FormatMessage() being used totally wrong on win32 --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40610 --- sourcemm/CPlugin.cpp | 2 +- sourcemm/oslink.cpp | 22 +++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/sourcemm/CPlugin.cpp b/sourcemm/CPlugin.cpp index 2996f2b..ee4077d 100644 --- a/sourcemm/CPlugin.cpp +++ b/sourcemm/CPlugin.cpp @@ -368,7 +368,7 @@ CPluginManager::CPlugin *CPluginManager::_Load(const char *file, PluginId source if (!pl->m_Lib) { if (error) - UTIL_Format(error, maxlen, "%s", dlerror()); + UTIL_Format(error, maxlen, "[%d]", GetLastError()); pl->m_Status = Pl_Error; } else { CreateInterfaceFn pfn = (CreateInterfaceFn)(dlsym(pl->m_Lib, PL_EXPOSURE_C)); diff --git a/sourcemm/oslink.cpp b/sourcemm/oslink.cpp index cee64a3..9c8ec16 100644 --- a/sourcemm/oslink.cpp +++ b/sourcemm/oslink.cpp @@ -16,17 +16,29 @@ #include "oslink.h" #ifdef __linux #include -#include #endif +#include #if defined __WIN32__ || defined _WIN32 || defined WIN32 const char *dlerror() { static char buf[1024]; - FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, GetLastError(), - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &buf, 0, NULL); + DWORD num; + + num = GetLastError(); + + if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + num, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + buf, + sizeof(buf), + NULL) + == 0) + { + _snprintf(buf, sizeof(buf), "unknown error %x", num); + } + return buf; } #endif From 5c280894bf126155eca6ff73f8126a8ebb906cb9 Mon Sep 17 00:00:00 2001 From: Christian Hammacher Date: Sun, 13 Jan 2008 22:00:45 +0000 Subject: [PATCH 23/52] fixed ftp paths, fixed VDF file and now inserts comment in metaplugins.ini --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40614 --- installer/MMS_Installer.exe | Bin 637952 -> 638464 bytes installer/UnitInstall.pas | 58 +++++++++++++++++++++++++++++++----- 2 files changed, 50 insertions(+), 8 deletions(-) diff --git a/installer/MMS_Installer.exe b/installer/MMS_Installer.exe index e0d218555b56e63dda61d3ca839227be56ce4235..4084791230fd5fbf92c7a713aa209650c5bb1d5e 100644 GIT binary patch delta 461828 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%0Ak@OLY38xx=9gVV}E;cT}p{(}GCqLC)sVsf7vZ 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

J$&kNY=h0OFvU1p)r1l9mD* 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

=G{U+Ety_8qYFr?U~c2 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%0D94z6+Yv=f;+_?4fWk!)xz1g}Gh%E8W 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 Z9TzSThM9C^pAn8m!c03}bqM2;{|A*yWdZ;I delta 461316 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

N%#CL{2Wd2%C( zXW_l()B9;Kdix~sF+>@UQA+i*r@?a`D?WO2sulF5b)xxOEJZK-cD7frFOYF%4jQNO zOqBB!xMY46I!b$LTH8cw4x$S(?5BF;F6D5t^toN%&%#LA$Il!|KHGB}VbdtUu&}A% z0F4lczQM`1p0G=#qN>`OSI({|_~)^u)<{L62QWjMs?!Z0@}o_lL2T>ySqckY-n{C|Tocncz$1SNcvC%elBy zC=k&~%GKC{xehVR;HCO9WbH7>=+hcSo%jtJvci|9)zfe z-cuVF!4)U*5VXA~a(BGOHc~b-ZZos@PV9{Y0mBSLgHj{FkUq!&gYBmW338O-)B{+j zA??tz{!}X_o_p6}yg=rgWkb*F-y=w7xAiMuPAuRx}SWKDCWFir1y30J6ge@&F zaoWs{gHsIgJy8F8|G>UCAGnpFo4BsywP3a(iYp_ zO|O3Nk-53F3Kd zg6LNa=%%-ij3ThU&o8e{)m2}<+8O5PH@DGhXVx^Thg6YP8#+^1W_^V%NlEixFt6CD zZ<**|h(lY{{TyRh*Mpy9@EI^(-Tq?~%Wk{IJFv*H&fgubK=d>Zx~L{lHpiuP>asGtr!2;5e{YU>kC+sKKm3lGFab@Fk3ir|k zi_iVAQD`BdN$fb=v-<9+1M&q3o&GfJ=aA{dFX+^kUrT1IwVP1!{(?N=w%F6p+=olS zD_3qDCdzpy2@j_ak%@IsExAgbalxUSA;-Ba4BRH#g-`Y(iWlVV^JV;jL~KDrRb)Iv z6cpfpGBz=6sZxAeNT~HSDcs>6QlZ5EsRxtk_3)@`k-|OM#EaDa6KCc9P&5ls&%Yf| z{s!+_EhT9eg+3R*&BS6u1D-3kfWe}v`B-U~ogYkmMJ86Mf4b;-0aQEj=j1&_S2N7D zWf3WuzDaiC>C#n$r(&0XKxhi*u5=R^u33^vQvCM|qmIL3XKasfVsSLVLT(TElGip0ZmMgKg@Hn&2tIdDs?1w87Bnu0*Agt_v2Q%%<&_L1L9 zZ6L`oFt7Lkd#NSCe>Ji$?0h<;EY~4mUcUlQPn@vMn!udG6`d!4n8$# z*oYeBk3pfLB9`1mJR@5K3=oPsm*zNQ7#$%>8k6??BkayxWp~=HH4Lwzj5=es!NE=O`ih!hm+Cr10Ws81v3la z2MN*RIU0=#wnL+r-{=o%ujI8!wHRKb6R(uk3uT-xp<}z*SFs+&U4rk}j)NY@?r~1j zqOH~&aH$B`0_&40ynvFYb-4n_5=SNjpWAN=pEBYzw{e38Dd0h1Q{A2f}$*HFWV;c2BGpzzo9c!`F z$xZivnd4T}VeRq&F4^*LVUCTWM9yaAftS!Opc!tR{cnrI2 zp8S>XRzajI+3K04;^e3Z7kw6$Hj%D#%frzTk&f@w>{hH($UaxqEQ82W==?mXGg0*H z>|(EKNFM_qEuxeYCA_{161$!eDy$WRvdCt~sBhP`TVBeL0q2eV(qC8kXw6VKu{H2( z;87MN^`r`)yqw~eUYfBz(jlF^@Y3zi*e}*6$*ad|>}d=ow~E={Ow;_ERORRYBBGAJ z)Z==%G5e%^*n#DH%A2c-Jd{Xbexpr=dwaM5<(JIGa~8_N`+4bz7aye@hFm3bW2h5= zH^LceA?3;UDtZ6dVnAl<;LL}=U&Cx-9vAe!eC42WD;W6ELTJEzg1^p|`X=W@o?kCw zN%|Z^#>53CsyfRRO3dN$0}&Pw1?0W4`K{*khYkmZO}-A6lE!=Qjg^!P4EDCRSd+#= z<$4-=$?f+_4cK!zZuztBddZ7Cf?jQFrzDQ-aZvpaI6$V1=XQ*?%Rs1^Bkr0tW@mq4 zFH@YeX*f}&#LAo_+|%{gkt0p)#MuCvgwge<{gP(Y4>qh_$Lr&vLiDHU0#Qng{PX9J zGw=Uvr?Z1RC-W*B(f)0AEu3e>8vrXbzLZ`y@hsg3EiG(CJ1Bc{XjSbL=kQ`HFJ-1$ zz@s?Isu+`FkE>j&M+hMy6-U^c0+&-9ZaLTX&$iDH{BKzlac~vw*LV==!>$fb`kSuJ zGaWYttuS38Llc1KT^*C^AJ-VfijIQ8phoo=VF^35)}}^>UvW9|CoK_zT3_}tzb1b{ zH7h{9z%ie!&X=*0xNYN9-1?B8)0lH2=6A(mS?&JfyDSrdAWiL*iJj(RYS1$Y;frXg zwxzefw_qbtK&5#+Zbx3arANsN8KeiXA?Tp74liP>nNppaLr z)-5^rU}Q!Nd>E$J9Q!K2-*E)l<*w;O)zdP4s`&2A93FVc_x6cgC_-{TSSk5pQ?y?Y zf=bZuH2SPTfWmAZPYOU@0j9JzQJUDfce9MuZjiyq7Cq@t!^KUHmF85_{yud-SOdXn-i0$R3l3QtG z=>}7nZR1ilHqh)>_ds@L#lu3TmERp`n}$$MQxXy{{G2(gwTrr9xq6OxX{bIRsze>| zcfJWYAPghx(spC>VNWlsn2NNvYm;8A-%HHbRSXr#{lI$6fSG5%;tCsYf-rC1G67J9 zb5gPzh=wB|uT-fz1@?nUNmMIG$wfsCp_6zdg0RtZ@u-23=9%I9X|0LUQ;G79XGVa@ zlR9SS*9t8JewOC_BJ1>p!i?m2el@F*;*$a!L{1P0f_$7iy>i~+g$Q_um@hXRGrgi$ z024HP^p8I<222ur9}OBE9Rqh)Q84hWrP{@E2_Q!;RBbA&9JlOZ!;#T$)!K83f*k0KQ~@6BYqg>L&E`{`Y=*Wvmwh3w&pc6C zVi7LF+;v>7hB^LFOTRT_NA3m6W(c7ecL0va6R3=m@t>Y6ovl@W__X~j%YC}udGkEY z#V5FBCpkn1$&L;l&?Lw%^Jx9V;30`~-p&~sLENJ+Uv&zT;gf(UuB1Wp2>+O1s^*R0 zr$XKp;U|z*w;c~H(Wq*IgGg->pgw4Fr`A2@e+|4c)jRHZUHo}bgY1E!7Pc1y%DntR z;2vru0`#BgX>@i^ENF|x1Jyqcvd9A3y#5dBj{hM!Z&DQpu}Tx*QP>Qr#x=N18-l!n zANjl763cOTNf$=1ZJa5*g{Svx^s%(zbK{KfsABpAjck!fSK6jpn&%8&Vny9?TRE2~ z(`(tQhql+@;Z5=Gr$iqhY#2jyzw_&PMIR)#_FL|^kE>~B3kJ$pICxVqN1sayc`bd& zr#lSMPf@dE!ND2NCw}NXJY8iMBAUxSYYC851W9T1wc946`Kv@_+b2?negKqa>&#Ba zZyu*i%O$*s+-CCXeD!z{DP}S+Hu}ZriXL98-n3J(#_lb7%RGh`)yk;rqG+P3-Q(3> zpCb3GO6Y@4WWCNfG%dtqQeiBgFO3>^Y|gn0h6X);nv+u%GyX>OyH=bX%PwnYFU+{#hKwNVTxzSE>Pc8Ae@m6;z_`{L$0*CC)bo4^02{6s9 z6Z)GWz1Y_Wj`7t}`@kSlk+(eb_T&dyad8~*Q#BRc=!0N@tXhoiJH`8EL10yOZB;?2 zhVP#*IKWec1;Wy87Ua2eiHgz)9z1&;VA(4WVx60~JTe&f43O_(?A~b=)PKYp@5o?F?<7Si@ zAwR^gk@zB8z_{_!liVy(GlL-w0XG5@(=hxW5|w*X)l~A->U5I?^GTZ^{sV9(I2%mp zXr(hjL(T}Gb8A;r#3yT*ZOkHo0j;PPd!EX+Ao!qo1*W7&FB_bT)Zm_x?n5V1MIAea zeh{DfDSlvFmm-T`R>*ePL7At`A0cS`FE|MTz0S@;AP_^ddg`6#$t6KfOsr>w_X9GXu18S>|c>|!sk3nf}q@&)M;|R^EVGb7}aiHIw zX~ovOKF@)FIQ7iD9a*~q#f8_8Tuhf+gMPWyc^_iM;&%Z1hj!`{2H-aA_w9cHmJ^72 z?*-ex5V6s=<5a^E!v|3II8AXRQjQudBCq@1Rc=`_Pu&Z)Dp(|I!#=`8mu8?<(#sF+ zO}zEJHI4FY{Qkggg)QZZY)2i+P8S~}a=dsex5*FkX^C3G|BM<| zCj1~+Zu>?RF(-?li|ctYz;N20yqI`7)F(hw)BAE$*)&-m(B#dl-dNjGvvkOFkdDz0 zh@)eE6hgls%HK{2&G0SYgwtVayIYcBqB$v%c2qLIO}D@F_(agXuzR|rtvQ7ys!6e1 zcyS#nl?zuSWMnmpL_nSeH)M?MyNAy@V>N=I=kvPp&DKhLqG}@#?s4^<$M1Hr&XF_d-*SLD{U^Ng?Ifpk zuBWNdpM;Htc5|FHYP51^Oq{?4b zRk~<9&|h7~SX5_!DqO+ET_%SLmrF#pHDr`P5-Bxx7Vf#;xC9RF@*>3X5z@nwt7tm8 z7#}Io)h8;^QAkeD`MDFUQqNkn-p>|(2FYB_WTUnm6&O9;YN_)E?8msJW6z8yWcD!5 z1+KGMeU+AS^F8a4a4Np7AMLQnarwx>Cupbq&=xp}(jM z6SaKfY}Z-k+WG#7*gy?SE+fSwWRS3q;W+uG zknbpb)fR@V`%SwSXwsMSS{Ir{`{)giMII#zvfg{agW-TpzOX@;~D&l_E zGCw?~T1z1mK!DQ}Rkq`bL(~1z0lBHSyXpQ#!r84Er517kqTf6@_g&6NxOk*v(L+Z% z<5j2tR&3`vIfUopX2vzSCWT9VdXbNApP;LF=#^8~_O0!5W|N5*HROQj-5zRliSB5P ze2nnU?-Seo0c3xF3;*IZ%AT=pu=a_FapUA^unk&oN6XMQm@0Z{(hLq}LAW}N+xMyd z0BJ-hGed-O*fKc6s|0w9QI}sAjVNK%fhN-XIR?qSGv3FiaBmeAeHOhUl<~k99P??< zTlo9YYz;k{@bTblCYTHBVEXZ=#9abaWHYD*cOjZrf`=2OuuL73z@<$Kkpa5bxQ323 zv6xoCw?(7*&V=&@kp3pKu#e}*&8J~{FJC6ZLwPt6h&4-*vHwPQJ&R`(6d5b@n$XQN zcdh|q!QG?}+#kOt9~rmS>3B!C2fvO;tgE8fK6HQxX7glN z2cn6HzB~z<;ybAZrWm-)-V!a~2he$XF;TEB^cf~VDlhu#zXO047_pl4JWMTu(P%1K zdx|e(%+k5v2GX=@z2kL?A(30U586s3-A9OyH2|89GsXY2NQUtq9O3^B_dQ5^A{(ar zqxU?p@9E*8TezkQXdq9KV-ERYp5iUpC;fEJTtn!TdGO5DXxM4%tY{6%c|a9M)B2{g zL&K^XvLPE04Aj`e2OVJGhx5&t0%Vdcn*Yh&n5U-hM z{dd`&{fPm-9=07GCxHo)6?uK(PuWZH99vQ`7EX85A$6wh6Zt%gKHSJgw%g2f(Ygq@Q#C(3&s|ilF5rNcIRWqa{j< zBGo~R1>>uyMiEimKk>c(7;!p1rZDNV>lbP7 zQa<}JB4Dk;^y0qJ7m~zsMew?D_cBL<c*Q&g4<7!JS(sugd`Ep35DF&1z<(GQCxxU6mK6?qVZ#Gk>0D(m!CRYrFQ!#! zTw#F9PS!^zhdt!Sb5a=`v17T}ksXthqp1n-IH$TzExdql^uBLRE3kk6cWqi)Bs3Y6 zBY{S7EK2vmIX)0I90E4`;Q4QJoC`1BUJ4mEG2+1E9f@U;!6jE`_(2q7_~Z| z`O@yP4y0eCLezG1bX%4Yk72rQhs@q}^LCmqPPix$mS|;nCLcD%9uNvqLf`LVeV};A zEw?`53Z1uhG=c7z_#6!yYe%dic6hH9ocMNPPmyY2Ney>6uw(h$>dWkDotZ^XKaNU15A{IU3uH>b|?mr^%e$TPQ3nYL>=9O+e17$uwQt+>f4Hw4?s zn4?ef+6WK@J{)Lt-;+agpXI7lA|W?yIbH!f|VQTiW@8z(+5mPUjQy<`bL0G;ZVr5oz$fy{jF2R|CAaiTPIoac$i71J?R)>Uj`TM#<_}1*;sv!K7t{>1kY@s5u3ueq+evmGjV&=i z^LMURAg{9NH+PEn>RmTQ$*h`)V?|qn+O`zzKOizg8nGzWXq+BVE6x1v8xntwHY2?>HsAudOiP?|!WLF>u#W?YOEn9i^Gks7=)OVXY2 z%@A|N*-XNT-1s*X&7fJ1))6Tb1?TM*D*x5t$nzo1s;eOHuj-PYilj0{eHlLy@UDJ9 zCWF6az*Ph)d~wRL|C;YouHvvLK!5=ii^(rX-vrU1>gm5zZBtq$U^V;V6uN`%wr=_mbi8h?^$C-siJAp{<~TiPF9YEJK@|Lb01oTMSi@r^HU{x3Wv&9Mr-+}%e@`>#`)TiHzUFLPq%V`TfbSO9u zqmqR2r2f(!&rN*z8~3!v*|{2?SV|hdM?#58nEdQ7_B%5}hV;bpPTR-@?t!=2ns zmy?IQfJ6rY#^&K+Cw8^AO}=Yp`j?;l8<509MoRG%dI>T20N-Z~_vO*|95{Bz zBDZd+26V@8RU8)WPyB_PfmmigSs4b!d=S#fwx%`@rsO_yRtMRBdOjW>95(-8^@n=X z#BbLhsWiX+%+F%1R|1~3AaBTY`0AK{aT22P_=gOI*Og+qLKhM#cRy|&ipq1%TR8&GA22c{VIM-|kK!+` z(rFUc_IrYNavNRF)Y!v5)ZXpE{THpd+}hTAM@+rKlsVAOgMQUmU{nzJJL{kwTu^(t z+Op={>84>^{ma`UBAJt@%*lAtMQ};Hb9{Xq`Y!*iWNr6An;-zTbDDH6#8guIJB8pL%-#Qk{eDdl}3xF z7{=KiU%23!zTZ=ACELzAFwk3{V*a9>~XPgD9VOWEv5BmQLHjtdP?T^ zsGH{?DHwQ-O<{C+CLE@tZ71!;g+Fsx!aR$uz?kjZVj71njj8Ku z?SpNP6uI$I$Bs!@7XEpO*02qM9MfS+js5xar@R^`{D(Z5ZEV#fKNFXv7L+tQbM8~R~m*`b>-!S>08fB>R!@HW~e!42pUFQ z{*ha!1yj38v3iv7%3yIsPMKsm3#4S49Nvf3>HYr5P#!A0qaP@e2NUHxya3>nZL6|f z_8b9Vq#*C-brpiJ_&~*%8XpnrAE{j!WsQ|oY0XV@O&53X+v*$U=NZzS8Wk24v;{G` zk4M|oKh`nINgw-~h-Qb) z+i9j-xeK~*%%BofA_+Pw8Ft>gh}!WzLm_VtC??+Rr|9#Pnq9b?o>`6Jd!Z2$dr^Gl zDGIKWo0kpX zl$RvxqjVDJf%RgXd~*WEQOME!2V!1-NJbI1kSKHxg+&hy+PU$x?MP-6LyUdrbqiU~4Ttcy)KSeObbG_?LVv@B6I8rw6lv;jC&h(3**I?!d!P#3*Jr%KG4H7xESm^%xN7Qu ziMW+iu0Zn_^)C}4rG1~lRXbUsCr|my>zx}{Vx%O*VsZaOza-TbkrF!Q{ zwDnKmlV?Wf?vb4xC3=Lve^3g7_?y6m?a=*#N4#0%MDi)ihVYz9VN@c2yRQn^2(QRM z<5=cxdvTDGXl*mDuzZ^iaU0_t%{&;>{F{y(rl2Hdy1gPK`JV>Wo{Pq5aM9&w*M$Y2 zXf8w^hwdC&*a|APz9`iOC-cy~x`BqL!2z`_xHu>X zO46#xo<@W`==z`C59UQ{o>=rKREH}UVFpIj0<+jXQHyK;d%h19#jA0R8T?nE7%wd< z81eABqLde!7t@nLRu8Jxv&*uK`xH$rKbD*~B>v`<8j;Lr>MPV27~p)$R_+C%RZHTW zaI@eoh}n4QR=(9E)7OiHv z#KZ(&O6lDjWMC#d=8Sk1^jXgZMd?A;E4$b#j|}GRnic2N%iXW8h{SV*h(2*|^Pv4? z=FNM+{=}uB4j+=@?1`{)v&Jjf0^$poyIFn(d?(C;l$v)}C9`V?20H*)8SEp8^;Octkvcj0n^$<%2Mq#4VtWZ$Jm2{k7uMhzg}QTht)f74a}_cAedZF` zZ@IoIWBqK*vr0@3$nJJj@7A<{dDMgA^nDI9c${2Xxn0!QnImWM-@9g*0=`ZV0UWW6 zkVjt$jyxXPV*yG*`xeRYrOLZo@V$u^khpf{G46EPwk`Ex&Abp-1!_-nz4RK)=19R_ zg)YF2QD#!K_-DVg;!Pr>!>X2lTM?4WF{Zz0gG}c-yOs&m4?BY9t|z`~)x%TA9pl#( zSbr5GTy#bq)o!ix_hq77z3j20b(ccCFEdtG0@KivUdcU8n=5${AVF}NdX1sgGOwOS zkPu(Zj~s=2%X*tw_fi+ywx6XB&vi(Rv2S_WpuqSTjsJMiY8>`*;C(jDV1p=k_ajM- zC%%JpUPbz_YExSDwb0&{N7Dt&;0Zwig=m$nP)9{mJw*8 z*RV;b7fE`T-acyQtXJj=2pGUT)L=Pvi(J5Ld3o;1|A>aE^~*b*bC)oNbUdjeST;^l z8e>^|1>xRw0rB`|Y|4vy3Sw1P%-%onmF|T3umuUAs3VSL3n?`I4~88JfXRX_&=&r{&N<7_Ai6rqc{F3>kKvP3Tb0oq$T1t zcK;@J!O_gl$f7G-m{kR1QA&nK$7gW-2$v)7r8skLGb0iv88Axc$V zV1LGcR{-y4W~OjsMp&RG!9I<0=5mNppk2(oWW>u=ZJP@umXZa9Rzs^4>Or?#6dRzg zG54++OPv69ov~s@Cc=JRBU%4ko2e@2&e#%W20h946b4X{A(@A6FJehk_eqY#-9PNg`l#9ae8QLm5L3u4dqpdbFqu-=2BW;6>Fo(f*g>f zejBmY(E-;gS1g5X-KTF7^d!h`VZ{>h z;D;m9r@|PLkw)0a7v#+qWUOUM3Oy+1!(w$Z@CM2iz!zbtYh`-s)nQQpVhttYRGn?( z)Z~VrrjfK#EX8u(lEkbKa*+Dn+dqlEO%A_B5)g}-iy#eNryNW{U;MPue}$JT>cqTO zq+7y$ii;lu<$!{y;sR~8>c!RCy0aqUyF>b?tsb^zcVCc)zdnR)+kGxP&9~LV*&)#3f^j&U z7ti{r;P7HDBb*)Wum#J zax~+x#%yOed0yjLBj}1UY@GBlow!MA11O-Gyk=2MuJAvtMG9^i`;ono_@UHFy&TtNqOg?7$h@@ znbn7~1l**+tpMTg5R9?;Qy9ouH!%;E}O zx?66|>Uqn@kQQS^i;jaAPO6_pK-050N_{#u?z}m!q^|pmG2)A)qo7Z^1jd=8x;WJl zX@>N-L@&(H{s&348Bfv$jb~)#=nSmEZDG>rI}PDu?B$!xstoef5;+d&N<~vs5IrvxxX)HZ1d4p zeo_uOjx`t1BFY3sj66p~aC{gCBLJZc0!QeUIJVoB=!K8_+}STO&=!b~xaE^$hqFK_ zfCvE;vaZFo+lnF0vU_D;XU%m0yB3>r-T%_XSG2_!U8-wXsBR9!8~vC;FvJT%%)FW| zkLtr?9%Qbh^@X*nw`?)NgY!$?oGnoW!U1r!RZn|B*gfcttgGR2@#{0aC_+whZcpEPZ>Y6xN|Ftw7xJU= zQRD>Ww@#F_Jd44T^UdrUWHjxb6H)(U6mRO`G+z-9pLo3IAMEp4ShrrMgzAbzaFQJ? zcLkZIy=OjgdQBfTkz}M{pN!tt@e6O#ICu9%T zTKY)mx_HU>Xpb<5F^HEX}?2q6Sj8Vd_4g3gg5{$)=9J zD9JmO@g(SxeuSkNYZRCqSvmh!u3UTx6W-IcU94!1GZi_Wh+gQtO|vX^La79!DJC?N z=<-vRQ(Y=}x+Rq2V%Kxbc)gS&8(F^#->+pT|KTD_aIwk%li86FslXuQ#w5$^sbl?t ze(4X#GW;RO3|0Q!`&4o0E?*D_2`UE(tMdTG6d%nafU83G6UI4GBcj2!(la4Sb|+o;TKs$GXdQUPddsoG6w1^`>?jNgHgVH zebCL~r7X@K(2Rp3q)5Ud#(9+LGN-UwVv}x}Z=P*SFZmV*X&Dnpd-apZA=t_ZdVKH? zD&HDTSurL_YvWIFHMSrf5~qXeI3sWS$q2za7A1N2JZru9uUyWaO;-Zw3&b_qR2n0} z%>Rl&bnTj0p8U@$cf>P%63jOk%-*NMQJEeyi`sc%*Peg~Os1^$65u)}STJqE6edE+ zwq47*7&juQ#X9iN%=;()ss!vykQ=YRT{HOC+}jI+XmXmgKzh^|kL!@2kC7nAT>2Ho z5uR!nU%X3#MB=eo{=b~)UmhqjkM&fpsigGrlwwi=LG~ANJ<}_sGo9fhZU~Dsv{-Hk z4k1TBeH`lR+n1YAYVsltcckG(-fLV>0kcPKs_#<;va4@Qvwmb-$P;Xfb4l|`!j@%k z&$OgCeX0bEg1qJ+^Y1v<#TEt61O*Ou4JO9 z_TgpQdvC3yhVr^YqKu}Rz0|3oSh&AQ1vxttEEey3$b9sJv#G)H|E3_NrKv*R;*&5y znFW5lZP{DvkwM80M(o(YTrtkeRX3-`*^MQ(<2! z=DV~A-Hc*gp(G4kZ6v7#*~*HEtE z=-;`WQ1g?kbxLmNJK*?8FLlXE8YtptBOZWAB*gOQU-5~6cm;FFJ8tb@zOZw}{AvNFOz_n+SKRqS^;Ah9aD zeHP#eg4uK$X!Z&f6ZiR8KQ7!g1dGfWPH=T<(3M|as1BJ7Sn+MtwHGHvvsSpY>C5ZrIE_-%r9TXD$0O2_#8v2 z9+12&mg*CrdRZe8KfawuaDMz1AeBi{3*-cpI#sJXZ5#nw^GqCNMyH*v=m|d%k!XGZ z4G>sSXx4+pn)PBaFx?eh0Y^O~Dc$-TIpev;YM{v=fdaY^^kc`^c8!oN<(SHly+rLd z?>ORRO_dBw&NZe4es`IVC*I<_rQ4RzVC6`2Or2cL$a{u_A%2Lw5bSmU=N-T!Wl;ks zg4%*@mPV?M;SM9MLWQOSFsVxt$Eom}J(A|dBUDUezU8Y+ks>g10_{-1oFFznfwEwS zna|lz@XSz-8Y4;U3E$=HNXCX`)H0|Wm+!8czU#_EHT#%zPsP6yIrKn{D_k>>9eX)Y zLRROb2rk%=Dg-PN`m>J9;Mxp+=U{d{&5VT2w=$8L{=$mqFL$@h6JbEU`)>9FGu15z z7N7oy75Yd%XG?Qn^Bqr52nXsw#mJ{@>43QRkZ}2{-I-c8|DAg=)s(W zEk7D!p=Ib}ydcN;2f7Qv*1$tnRh>1y`w!&qaV5Fxei27s%*w@v_e!^x7!vQw7l$Z` zyTf@`%#sVlZbb4KY&85zn5JC+NV&yz#S)iQfvcBwUgDhHz-M;<6x;jQA^I+=>IVID zn~I7u_HLRrc-RPBG3F_+1UCGp&`HM90v;2}-r=Q?>x+zBMb-<&)A4dK1FG46r~N^9 zhURX>Do9A0U2)BVnV|X%F74lPM=E%**n}A!f!i)-=P#Ody%(D^di163Qzz2={}i2f zRFdr<#@V1EqN3sk#k~L#XNns)Zc{S{?rpBh!o5u#xhpMK<<3=ExpK5LGq7--9f+Q$a4Q6(z+gHbCm4?PMLi-Wh=trh=9`4?XU6q01d;vd^t3H8J(|>f| z>3Vs`5ihTn1NE42DD!1LIz^I|Yv%UI%8#aG(iOxB2AwQU1b{T52>M;_|p6`Z`)@`feJhADTa7*;ynD&E!~ zmD4%0|I7y%nueOx~mfQe~wH~cl*X_%bCcTZ^;JD&D&_>3m{t`tr)7J zH*j1|F2(7hPd?b#X$8G2uyOKLYJjeTf)oFxi#7u;^f~q(M52qprw$#hH{!1(y-@cH zxnrs_jZ8TEQ0leeR$Tc1rVT%-y>UdP4NIoIU0=oQRc675{s(S8OuhW)g4%_hyaS~- zcaM;-SfPr{ZT3quv8rK90(fQ-T?rMYG2X84xD*&CR{prazpjAxOoRS>Xf`tkD^hem zC{$O8y>0r%Z;7USGGS9V84$K`YHhfg3AkavXH4=`{PUpWG3p?L8YgjPAyzTc6Om>v zjHAc+*q|e#iX%7|&!_4*0IBW{k781$_?xDoGJt5H0$s0n27r`L~fK1DO>$&2<0OjvFG(`?y_^HZG zhxw>jF70@(Ih@a8;tW2c_GF8%&S&=N!-iA1TnBK9&g@WV96`^IN0!Nlb zLao#A3lKB-t?b`SV3REB6-tS|CsNKzYQtLI=aMTeFxJ ze>XYsMDoNkUi78P4z-y#;~YOnn8LPP+LaRoe2l@inuv3Khia7fYQw0=%m1FX9}9%LrP&OHVORH7E@z?wt(k^hjxsuJ6ZZ-xtH3|Hpzm}t zGr|1&V+ChuMf;Tv8SVbq%Xb(|U`*I1Z&HxWU=1aHA}nhAix2`9Iu_)^y0DX3%kG&I zDgeg<45q(r!(}1-;IeH6&<<-s?V9tfsHic;882H2E>gHcf9X*0svU%Uoz|c`s1>pP-AJf={zU*3F^6w#4x5~7!rb@qnD0C zE;~j>nCSi&E0FO;Q(%~P^RZ|s_o;4)IAvqe1@uGz837+Z@9p0_msk*&^jn!DAK=|> zldsu-0G51Z%EQ|1;M)dvPo4qxz`_$j3y$W%WO2_6n-b<9i{mdWSU8>mWK_)h$Gi&T z0&hV#M4vE+i5`d^HYm8VS}@<@%<#e6F(U}7z)$pnlSW8)| zwZrJ(Od7^`1iohpPD%-^fTw$W`eK|m=(SI><#0H>WV&!K#`*Sar&Vu2 zFt%y8QAOS1obyqf7`IH&c_>!=20oE~$v%7{*IA@5rMqfN>=A&|mJ?RCW&oJ7!Epxs zCy=AH)hVA;SL^4`iDGzvs!v}o>1}hW|G6Z-4Aoa*Srf#>js+~~e5QxJ;T(tzO`T-S zt7|A#DU3Hi5%7eJ7%()nI8`Q z+^4Z5#E-jwTVzuN={d%~;?u3pwcoQ)qxnyq@nG9MU4TWKoGdt>6gInZVR{w&RG{hl zoq_KA&h9Gr_okO09Ic@Qw$#^G;ucm#JxC&?2Q4SdFzb5@X?lEcJF}}1a$EFOu)p;( z4(=zw!{AbdI*Gjl$j`yCkT8k4jDSN_Ny|2+%n71;F$ivSo)#sQa zc68L)P#O~vjsbrFz^TM6k3fX z(V9rKFs>jyM6AswCV4l(XA&7(26?lZE(ya%_;VG7xX~kREa53cJLd^?#>cH4K>~bY zXXi5^eX#mXJ28b;?qgwL>fpk9suLn%VRcrz03O@Hoba0-dW)UC&ahS9zK@eIRqCy$ zV6sQJW-y+|)wBZ;VBbxfzZcY6e=D>U>m!qOvlFKlyX|!<*ayy$E5<6vd%McDP~?^_ za0N(fAL1!;+QLR|Lx)@3=ng1e)S>}!Q=qGjyZjDC7rAz??r~A-jLOZHG<)T3)Rc!V zpd|FfZ=U;X*^Y_%Jt2E*|2NjWzGP>##t($|XDNG1&~+8xlcCb;VmcN6DhJ5kZvN6> zQ00T~-l1;KMv&<+Q5F(3!nT~0Zr|`)b^!Q_J2WE-q}v+~l2UaSeXx))S=`jdDr8`w z+rlYLiL+cMeeYtN*xs~8TD4o{-2a%^=r_}9P9ne?0#p-@dA^Rb9isPaZb^X^I5I3C zp9IXzRt5$;=E4I(w>mbj4NhM$px@+AS8`AS4;w?cKBis3vSvF>?S5mod6fgNWbR$S zxtnhzvj-tu5BNlkLNqqqZ4?M~wu2m|pj-mZYw!W>3f&_JHx0N6=<#VmH#%6j7(ZBD z1D%^%cqe~HeewXaklbo1nrljEBn@VKkyhM5H%yst8oeAry&ZRfWUSCyefMS0uHj6# z)&-3hxYaFKr}nbeXOCOT%5ef>NAg_dh!lPyJ9M0y<=m#>3hcWzh_LV<|LEd$UH)__ z?&&Xfuh=%P%+9PIkB=H&tl8N9L5Toip%Yh$yQU3+R}WnCm9bN~kK90-U9Y`5|O>|+Xw*zd~-U)L4oGlCe|VoapP z-%*Z?5g2uG(yR{(`L#v9aL9I~3t8BDl+@ z5R-herdPd~#hP!2N7_k#JKd@TxR#&Z{qNrKcvavmQ_@rLmN3r!A&eq~^Yu8yhM6B3 zQI&ooL(Sop6~MRny=ZfxvEAf+?|3^j3xI6#e_MPkQsyDY34_T;c_%&7i|+T8e>v=w&%vh2 zyPW?HS22q2HdJS;1Zp_LaTn5!r2x{ZoQ^z@1oOLGM%8X|kL}>_7Ccf&96ZO$2)h&& z&JC9j$``8M{tV@o%inM@t+MPA$E7mEe3@x-Se_Jvg3QyjHERNFaqjVleGIva!zRg0 z-Y3ro47$QAYMxx5JP>Q5Jkb`EbiFLCgv)eYnE&N=O*QW!th4?W zrD|{j-qq58XG4YS#h%J$)?=9>W;bkF&Wr=K0l}hTeL~tG_fr{_k}IlOT3nkaRnHQv8DMY6 zVZKM+H20GSJ5o_mEadJ`GK`Pwk7SQxqBD&yI;f~c8RC*emDf9dFcS!b%C49BnoH;X zkH3F2?L>1eK$BR+npU5TzMg3i_4;?Lp2 zW<#Uyoy_G@_Lh=_jiss665NsE`cc{MFd12M%;(gC`hP;shVZJV`=6{zpamj%Ir$u2 zG$@H=Ug?`dk4WRFAFBBDfXyTBD7X|v=^f|!M;ufXk1B}egU7dz-=*DE`P|Gxw`A@$ zAnYY_F6}E%{R$G~A)w@8_BI@8hpeH<;MD5a$=tl_%8BYJT*gtVc1W|eyC&@+KutaZ zbMusu2$f&iczskxq}KpGFaduW%gv{deTkQc4=UNU4?D~0S)*B#P=bJqW~*o4XG|fT zGEUk$aI#p!dB#8vSDkCkG&fVA?i&6)tn(@(TOmQE3@9X=czVu0Z-kdXP)u9HV&5{& zi6-rEzPU_MX;PEGO6k|}Jhr=TIp-O|OYgVvQ>lafR=!ZufXe?6K4+?aN(odWM2&d) zBstnM1OzyJu`26^CgVkj1UX5^B7q+m0i-^dWh5dNFA!XwsliinDP_9`hmXAKy`k+{X^ftI!LpTj!n_^R+G0&)-V+drewmDDQs{Kn?Py}K zkf&TP4R>y2Xsv1iIkXt-3*!Tk8E#4@qw-dfo-_+-`%{`3e5iPtZe;-?rt-vCrohcH zH!;k?+7Wp!oG((z?WV`PtPTENrggBPdKK=7a*>alCCV$Ld)^vibv2cBRXomB86hvN zG6n)GM{Z15pZG5D!rr;1t$>}Ntw{+PEtw(0WmOgo`i zfqFLfbYb7C*@WSZuLm!!#UfGXs8O$SiX4MR4HEm}Un$X>jNcX|>)7O@13&&5gF#L?>Pvh_F^RDCj5UR@@`?*~8_(e_wTNZvxGk|{4c7oI0RXfI>C z3&2<&z_~foByX>ekAs!Qz${^BMlFc})T}rzSKA6Jpf$Di&D05njuxnW{G%rvVX#Yp z5eI*znV=OnWQwrbBm<~y4c_-t%Lh<^>oLhUuhw;D2oxR%3%I*g4`8a zrHw*E4k)h322#O-)@W3CHiqCx{(3&m_rpO#NY~012VKCpYs(APaSzEPsrpQFTYW2^ z;dOL<^6E>5)vt4X1Z%OT0;X>I@mQPd!ww@vZ+vVJnu zJYCj16`nr8^m|2_Zib}Mr$GyA;fcO^FD0l$AK(f^NauxZV!kmHMZ(=tO+UJSsR9=a zXDMkWM*;33}u(|&reHv4d~_N->Vjm=xVBISadrOdLsoUK8c z4f{o<^!mdjmdtufo`u~a+YC_oy3ZSTg&llk2FlsM45b}%@MI~2-~ZBghB> z9%&7TEPQ$-RNns+t$r^>roMhL;yQ>oyJu+RT6!hUt*1d?PN~dIYU2*5-djc^X6nV@J*7LKjG--c3MlGP(%}agYDT5A!kqK63bSDkC>`Z6zh^!H~Ye$SdnZV7gSoxox*cxFx*il`oev}qeTWNFm8p@ zoNAz4;p3eG%1`qbBVv&)_dn*%BpXVg3c zd0dN#I|hesjwYsWYf}3v=q(xKb_>yM21#Z0(y}z+F-G>Dfab?+R=v8S&B}rXk2de{ z^pY`{5LTSdb;e5MvKq`_ll!vt>s`U@#URcw+{M>y*yG9zLJd&^@X-A25Z5B}olPmA zz5zH_3@;}EQ})hOAh|a>-MZ7!Pd`or@+%Np^!ih*b(mi^mNp6u-o}PJg}0lBz>7-~ z0jUT%tHyx2csVBPD;=DsTT4X^`n^=a^vC@f>J5SxzAxlLcZP_|sgs^v@358@(Qxxc z|I(a@eQWqAC2b1R7f45Cr(r5oQD~>yQ)mvdN-_tM_h4>#@jBTmFG+SaHxSi$O+MYD z%-2sJsE-yKB8(%&CyZLXd(->$@e(wIU3P}CuYXWSA4>yY+-g-4XN#Voc?b^R$M=l( zd*3H!cEE^P^E~Y4%FNTV*OOs#pmU5|HFE^V+hZ*ifAc(+S03`Qos_Ced+J+&(Ud;?q&W0!>-rNXA zu1~R!aL%Qt_Pk5FpQoCsj%6lf$H|FyOV-rEyLM=Cx^jFS*Dp?N%Nv(quD)a7w8~_) zT*@}e$~ygRuNu`61|8mXrnq&HaNqd6W~s;v448I>!?krg1QrQYvNa3zwHA2x00G-p zl?Ph2H9^QY>xW-E*3pQKN9C^89RQ)QC02T+4fA=WSn#RWf$GXFfBrk_8|_Ki%Lz1;GW zdDMu%9x6(x7#(Hn&T6RJ~@mT9`;3|M|3+Xd}jzK$6z-=`f^^5SB9f3(? z9m0JCbp^x+=I%?y-L7MJ=Srq5KGG#!96T$Ze4;}}Xt;o!A)+GISjmD#hzSWg7$b-q z*TmV0dE;enkQXiCiA1q~`5%$q#a@QofqXb}eInvTCpbG;>)?W7W24R}_-`NSsHuhc zg{hv2k5DaHG5`(+MCPeR_{XZr#?&5UvhV7vf%cBzu4mLNjjdHksw5&w#i+S&=hOgM zldPc~t>*VQ>PLFM6-!zsMY#8mYLw3z9Dzr2g*{DhxTC{CqG}$_eCr}i8;I;^9R zNi0=`sG*`x#PRD8$vXdq2mPXG;FO4pIC(o&WgK?w`Bfrsu$@9Omk=iXi0;V`$b3r3 zik!~F#tG;Mb3Oa#9Hf7Mt8^H@NTV6fd-YG<>wkld;JL?Qij9bJ#H5Bb1@zjFT#mm< zQ}fMiik6br?DE;(O>+rVKdlaBIG8e^HY1X^ohAb6&-{13iVj8a6>(9zI}namL>559z>qwwZCQI{4< z^;Tlbc8-&~^U{2d@(q1=l}WY@`%VD1@oSq$Peld zo=0Y6O>wf;ck(km({_q@VTgYmal$?~_fkXwD-*FvM1~z~?rszcO-SD*KVYCw7#D{{VPCeV)Lj zA-8wF9FOF$yVJ+x#LJmiv&R$e_1ygNn6|LE^p{y)S^dkby&3$=9NWK)jQ)ilkB$F@ zCMKW!g`Pfp{ug>N)$teV?7Gwam+9&4`^)s-z4w>7Kk(o$^YBsaU#9N*jrzY#Lu1ol zrupWrzs&8H*1t?!JNqwFR9sT}m$_V4o-DvyCs|O8VeLu87v0@7buRq3RGE;)mZtnJ zjk9cvh`mI?U51DitMYIQPJgBxfF_XFTe*xdrDZ_RTMT$gzypV2-1Qa&Qn*uBMa z%ekdjkMojMq{C&-%5tuW1}k;TX?}1u@hD^l2Sz&4EkorHTH!KxuM{P4uw$)cgzW5E z3FC8YmK{ta&53->f5}pf`qi zoK#u`=wj-T--M`AjXWRm=kbN9;c8?Jhsb=Eh8PUSa&kQOA#U*2Rz-RaEsg#_s~G}1 zlVgeFjK^`M2lnmOKJmp%?$5h_SbL-yHN`ZxI_+L`o|$9z=~yj^$hs(+Ey06BooD2p zclU^>v5KpE`GlOUJpx^2?*}VMIz8+5H<R z<<0NzuPB2HVqVYm*JWQ(T7y*~-7JY`&4BJXWse#Z`VD(!Ej^+lxXS-kV$xceo_Ez; zRpY1=?knBaQ?D`D{gtXWF+!fu{VMELH&&I1OkAB)b!+UI3p=>crn-g7_F6$DFIELq zPakZINi_GPuuISTdIDO~|J0(U-zAjZcw_U*T^(iJmZU!rwfCHA6Z(*;&tkeoy)|2N za=+iGL3>D~{ArWFT6({+CsgdB7y4o?(Vjg5ueh&bW9SZfAovQ8m$u zAS#D0L6=qaao3M97qb!i3#@LgUe(`q*Y;2gn{_;E+-i0Ub!yL0Z`udz7TSX4x>Yxu zZB=XP{vP}_w(3MWik;XPymUS4kHjLvUYD0wuGc15*I}r|=791WwFfIjEJq>Xe)<*Wz3+0|ta~ATY*a<1Fq7@W zQ&nBVJZ|#3a`oEZRwvmY#7uvNN-?bB-s&+`Rn1Ou?nXzf4qg%wOhAY}{Wa zJ|Xe!U*_ETq`%CCi>$wlw~y~%#*gX$mk9_A3jWK4gogcPSm69nbsB#vS(vsKnf$umxv&Euac_!D)N1+P8(wI;wg5?oNYNo{Q~<12 z`iSNoUqC3{`EQ$)V1CCYi+cVEd?lr(f#IPkTwG7_6-ds!ITg~k4;i`lyq!cPvD^Sp z1+>*$eQX9fPM$U=CH1xwJELOT>x?dK7B^^hpY1OaYi@{b>&CKu6sErDsr95d&L5QP z0iAN$c_R{G-Y~&p>3$&-xSS|pUi&k|mO!RTXfSh(Nb@i`B0`XCIL{|cgF1LnW!7Cc z>1}UMG-=YFJucYf3NmSmrSh{N)|1a5|Ix@Vamq*0GY}($-+lB*|NW0(s(2575)=A@njvNvHx+}_C+~X)G~I7DSr?44AZ*3A@@uNB4mWR} zs_3^f(PTCgc(~4X+}rvZs=)ahU>zA4?02n9L287gojy*|m=SxAj%1BfNFo+A4`N7l zjA`N9UEy1Obb=b&9MFinb!)I7BDUA}8m(KA8D8FuFY+Y!YL_>sj}-OFkvg*lOv+V3 z1{@{_|J-LBrKH3KKLKqFpX08NbTuhWVHv&30sn!ejero`;K%Vxl7Vi^PC`le(?sTB zsQU6lMy(-G*9r8Ml`Td%Tj$Xtv~D6zhKwh-{iJ`YKFC!-RxG<~;@2TdKIB)qPN{;3 z!via!?6QgM%!DjR9o5+P#u#(~`LMSO_+#li#FQE40{~b@$W6Yh5CaCacqW2~`G zEeRc;>DF=q$_R28W0iR?UhYku1NjS>0ki=$HG_3S-m&ypi;+$^#~9qY(>_i0EN`nD zwiO(MGk3G_lsaBzc-qi0a)o^+SZGKv*#^5+NbIA2jXh>*rmI zjciu-JD9EBdNRAdF}Q3aQ7nqtdz^kb=0)&U^>#zmtkr4VJjqyhO<>=MnWVORH>u&S zNsC)Io;dy)qc5UgQeK`Yj$4OGtJQoD!{W8?#i>qFTqm+>KWY)RG)d!UMzg7ps1z6~ zNo-f00@a3x#YKE~#Jwt@lv6Lm=kI2Aus$*i2Ud>Do0^VTBNQ9;eIO#3TlBUxZE%`- z?o1zB`tIgGok6n_5rnM6&e+~r3?t4`tgDO@-hs1Cdzp)mPIJKMlD=Y`cF&&qoh45B zWTL5IPQ4D+6Z!Y12K52Cy})-yg=CHo*0dgvo(S=qi9hIGmO<{6p$}F#R&9$}(eVp{ z^jM@^{Uz(X!XNcZAYM5Kdf5c+`z~h;l7kVWer)}f!?6NdL-tgjOo3$%@Q7g<|LpAe zgDmaL=MYs!*Tg7jap%)0q^>{K40_KLgSyT=1yRE8Z)N5;5oUk*j{;x`TLy3pR z%b^;}9~BdG|2&Kvj^KDyQpYmA`!IoX`(l*x_M(TU% zE3NMVk+KcrnHuE4YJL8QNXI7H`V7h|_?AY$Ak1FKW%PQ~p{(ymSK+b9L`=p+mmJ)G zgt!^o*PVbBtWXiNFuf{n|G%9Z)3>c_W_ea_EL_a*_J36h1vCND*ZIqn`|gr&G~`UR ztEzf{96(P@WU*ILSfj+J-8Wzz{)%ZcyyP45mwq!~L^Mwp>~wEcW6$?$uj|dIZrI?n zg~sEH*v3ElKr9Sj)fil*sIF&f>so<*?Rt@Ede3X{0ZKLqZZZGCQFDfYX zxKhzmWkt!`wqOokc-#qd2dE-^_4-?+#G)8W z-u-{9^@+i~!Sh;P5rm4jjjGe`q0hU1H`i~W$bHzI55?jL)LsxS&~Q-1%-?J4OfBTAFME>_k| zytr%bu3Xqh>Q9oYM1MtJV?)Qi)R2bbhMAr@!eyx=l+!0u4JwPQrNM8|^M_Z5j3E_b zjUblhKcYT+#^~NpI?5OrCYE!lgH3=feGGN*AP`xkg<)T-Z&C8WM%a~$X@DOdzp|_W zP6i#%o?74o7^|4)_UAWO|J^{l6>hcwT8|R?*`6D*SN$%hf&lFSp~X$Is(q6hdd(-^ z6?RB#r;A}t-o5Sq8WnrVSCVVpec1)UE5xutfbHDgV%^fM})aVD`z#wbT#XT$*iMg zWTVzZS!%=&<6xVHE}83A;r#^9XrQ#R3EX4OdgBb!Zyc?>3#t_POi{_4C;y?DLupXB0-bKMSSH%CL=-mEAZ_)Pv=?oTOjC*ExmK@aWPZ9kf0% zDpIA?q=n6ve1HTl21Qo_IGomOv56ZU6&EBo@~_MC7#W)xc^J2=EZ<|^MtM5~A)tW# zkR%-MS)~aykPB^-sRfMVHEFmPE8h5RvJ z6#DEapaBJvMwR_Jyi;OhnTNxMq!wV4q19N23zupYClJ(B55HKk%}Dp9=(m<{v*`2oBCzQS=V8UD}3B z`t8GMxCR~K`|ovc5lUTr?pC<8`8;jILC>hMtOLqv~Zr`&f(g0{aU&wUGUr z-5rjl1Lu6oxGx{I^s~H`OSSR4`@9r;&gBL!{11WTWdFU8-(W#A1(6YiH&LMaoXz!U zut43x-Bewx*G+G7lV4nV<(4-1dBC3YM#}Wge{Bz1rLMd?jcMm)r#4waLLeoSsHwgb z2ModIRQkcfhQRDC!mh4mRxUl1O+#}0uwBk8<}>l-aJRadM`y{pH2zaRGMxMD=EWNf zcQ;)=6*D9Fnd$}m>qtS0EdC?ImyW&Cb(38uH9tS~O4jYRrfxR!igkiA71bL1Ji(D~=s(uBs!p0TJ1hC)om6A15 zf6eQ?!Nhpb(&F?=@x%E=ve{sTibrbR^>9msl5Z3shJ}!$>MNJ6N|WzR>~%IRJ-Vk1 z6zU(#)UoZ@^M%&G8OpVHAthUe64T2WA`To3nl>UlJni&ho9u&+0LL^@+l}24PU^C|Q zzN8}_vjj|Fcjz_pEO_>4`sy40*Xgi9pflBhV62uMJt*=7(t8oD!yh+omN`}2h*<;E(qS*Na1p50L~{y!OMY#buTO+ zRN7TL??|=!=dw3r#S7eY-Dkc^ddnCgnqV0$j8+J6%ZT?gJC=!c*3i_d$2 zLT8S6P1wW3X>oB>SDN2&RYt3I$7>`IeUnR+*f!3C9~=)aU~~fc1!%1eKPu@qX(V6u zqvs!onx(o^+adGoVIoTQQP4^ON-2b_?wcI3ae{O1q*ZWT+z{ zeiR`eIC3kwb3u2(an)cT&PDgC39149eMS5eZOI2&apetCA(c1jeZ!^b0@9AysZ2VZ zo9p!}ER|vY>B}iW{zBQb|BO`zLr>p${dk+#=pvHRYnr`1vaKZJ zbE@fl1X8IB@B8L%k{?5v?L`NEQy^;8OCSUl!{iYOy4Mm(j*Y>x*~Y%2#?D29fXhQm z;R<56xyH*r$p0?6`52Xloe{f}VSHzIObViazV}PA*0&bR`Ohbj`|j5p`OmVbo<`$$ zKI^yz_8F6!bhqQAM_ptsFLQlc5A&dB3*=}=edglpuxmc-3XD{q=+eC%E0n`CGnXwK z$rZXMWjmBECd~DvE@{w#Ds-Fu00ELtRGtjQnTQ0I=TSNuQ|{A2a^e?PbQ(8`O^pnO z^|DbQx#K`KZYs@J*37l+vIi@sqt{!w)3V(Tr+ckN7+*ut5hG77Vez{sq=6Ym zd~aTE2@L$tF*eDar&h?pvgd*bC|f0^N4*DO8c=yi$UJ_k&2OwL@lxm98~*3pa2BT_ z+GIh=OtABT%gcBs0swe}=Q%sBTM*ahPBN)29Z$%wro8m>Mjdcjvzj!;5(R@&fVAOT z$!a0SX->Pnr%qzSAJ~|8e!;y(q%kCZyUVI7e9;ky^IP_NKW92$Jghxw@)U65sP{PM zG;3)0vj}k^Vp`a$;G;aQJ4Ez82(7v(Vr>i`?B>5(H~L96P)v%r>HRMX3d-S2kkh9< z{PCX=C*7Z6Im#7rz&a2WQ7nEi-z7m2RBHwqU72~3NgT9PWlkIh6J$B39L;ovhKwO? zTfrtDHx|ayvC@V#Ht0Qyo=pS7{Zdl6=D&`#OIQ*ohrXfb<0{e^AcNWGWP-7&WH-^o zbOAaWB)KCoIoVC5ak&B=LgyuFkdnyb+B?>G%oSSB=4a89*h%QqgLt|VA6>90DFtCj zy5%j;F5fB>5Xg}<*+zC?{c=ZhM^TY6>c;wsM8YhdBIQD;y33H3;G%ZqIT2K3;rJ!! zjBgMtiVWaU3VxeAdQQ%;L(zL_-Mb@r7>2@gxwu_Dju20cPC_D6amph|Q;wyS03%BC zEX=6s${d(cw19Aq%5hWVD+$X^CjcfE+7$V6=r$?hPDMG^=CBxn9FQ@uDj#^?k^v5d zVP<~v0Z>E;c)!e-;RMkoP|;NWE01X`uUqtW1w9#hP7in!qv*I)DkiWYpkzb4lsmd1 zXzFVrD!(7w70e&AE~IDexgrZyjEyr&W|E{n)4F zf_JDl9$HnyUwadn4_z6}P` z4u#7wQOO538K)DB$oPa19|BmaFa^&BN)!03+HP&gjIz0mQe@f8>>@6?25$Pd>>wN@ zTV4;0LRh}*N5y}~w-StC&lTL@!N{K@rASh-t75hYHb#lVLheQ#4VCdv z>SoS88B?Xo@~M{t-|?n&hUpEC*Glc1_zL|?=ZoAod2h|n=uMtgBuPr8*JXK7+#P4m zeL8(N@VtDL@^f`=1x`h|%r@Q+^_4$6Bc4uI!@tA@a!}{)hxTttBPe1mmb63K!@;+pVy$c7Y64Rz>R> zx`snQBF`*#+@beW`LeUMwi_1dLxP@TKz@Jw?_>D4I#o(7?gw(KOnVuukX=l1- zU}d2~m+eO}i#WCQ)PwY+n7z6QOu#1&_$1#(`V7nCiKp#a{8bfZ41WuNnc7-l1@qO1 zT?0l{2I0dcGQ`8qgPMv}Qyq1iUcT^hh|<_T6Pjr@F&LrYc2`t+L0~_PB={+Wj;n$V`-}9Nvtu<-M7LX$jsglGzNy^IK`9@|DbYTM{o1N z|6^fNize!yGn6|_L8+bSX2idyQ36sFO&cJ29XI-TFjp$ctnI{t)kH=#vBO#=K7GX{ z1oR?-U(E8-Y2fy01BNKoO(s21X$V=bgqHNdi**h)|8r2Kh$H1X$PjPt=ZeQsuSD;o z@SymY`zUd%hw(Gy9eBltzg!{Zcd$trJ$0Ngp*)uGW)S`KtvxMFJ>F5()Aq&Q zJ>o)eb5(EiBJI=+w=IX2-EXbVo06Ri;_4>S^90#;(@XBS%r_%ycpsuS#k`cIA*^FC z;Uz6Wx_Hm*l}^x5SB8{e5E`L1-F2K)fvn(t2eP4ew;Z$z4oQt2)QM`~3pnRLzFVE$ zOy=xtmb9l2ld_&d>jc=-@S?YdQ1GpUyzF35+?hFhWJ#!#QCBq~)g|YvgtJ41@v2fs?E9(|x zOH7PMsBN2S$mEt(neB;_)e(Y0_j`PH`0#s+OJ5d56yU78V9gxHc5MzfT2!_dR#73E7^6Rf@O(Rj{2 z)bHk{uxNUWUrdZO1DV=si0wBT%x{M7d~Ea=uk$G}lA&=<;>wJksNs1boO|&Typf3V64_Wt zzr=+z^j$o>!Nj8Ny~$1D{mIUD6O_tGkgU(0w`|Y%GSATea<55>dB{dJE^DpgI?K<~ zh;$^VMD9k1e9?`Jgr^?KKXk4#`|W|e909wV0G71DHd9z8Cf^bma0;$uAAdt&nV0t? z-JR~HLNgyA_A&cZ`Pb2Tu~E^Jw&z~Lsx=Nv34c-bZ*D+r~M86cWE0}E(} z`a!a$tZI^5e}U z8+C8J-aU=(#S3!!v;>~Yw8h?TkHQA4TWdqxgoTmD)!XU?(5gpkBycT7nYKbP+r4~3U|KYY6FO{Nw+e0cM<%9r7) zwl;a-UI<3?c}d4?^#*FEMN$~obsce-Cmst zO?z)VpW9u6ET#r+t{{sLNfgQwN8yyRuEg3O>H$ae4UK>-;ebpY<7+-e z$7mt9stbm*aE>(zOl#Vqc~YhHw{>&2cx_Qr96WNT4D`ubq}-~bIC)s_l4 z?=gWw8^Y7eI(n!pa;)FB0M!-LtN{>@i%H2=+NBT%wX>C~>AdBVPEcZ#QOXHruIncseAaLAx zyv|rg^$1K*7alv|0{|jWn}=_lu*I>iaDU}I;sW5O`2k#IeUd6@X|Dou>o>v_ra0qs z3X_GN5&9lFiDm%T4U3Q`%YGaoRJC$p+2#hhW{%$N(V zw}peSvc~PS8~}6jk072iK28)9Nge@r(tGhPUq8%e2^f1UmF} z(rLD@D#AAy&oIH$tS{zhSLV4VyEvtZl%K4F;<~P-s{GallPj99ysy_d%Z3@M3}@ww ze6l>D{K+or!q34hw!j$Sf~ZNb`b)InHs6o9#f2%|Wn&0*<2LjiV(sVX&;s`+5i#Mk zmLrM2%+s}uyr`SQ@#6G<4}$4we3?A_DsZ;DV+Hnp=6%%CkWVp3?Qp)Vp}kZw)wN_+h$E zA{KRb+TotQ>LPBSk5p0ni#$HnV3#^}pcWQaQBrk^T_ImS=pYObgo^sTDd9t47>J=S z7Wv^V77*cG3Cf@**B$T9t$%Z^SjIU*z8vb;cc}FTxQZFclBVf12;hmbkj+IOTo^$g z$SEWf;74DK6FCtJ5LVrf2*6%3GLVU1Uf}+eq)m3TT6>|24*V3xUF<(<%l0$Jf9bG8 z)1n%7x+mW`f0<}Wo7QMCvB#wGLgEQ%9t8_PUhCmc-eP#aGXl3+PkP3Z5lke#wN8+} z6@FSw-NEknmaFGxXr+7HO~w%aPtl#nGyVSo0N-VXv0)g7xv#nJM$J9})HjtvDPlwJN|KbLkxEUDQl!Jr@AJ>+@Av2N_`E)^_v`a|KVKx5 z7KUu)MVOLkNSX0B;U+_~8u??UVJ?;;bBE9IRa>&8v*@GMK4o?IDU6A#|8O^~%rZEl zV9kc^WXXI?aM@Mh4X`KT`5(rIRZ;N{KbI+36Hvmigw&$(P}g@WV9PZ)AEb2A+a2Vr z79v8SU6KyZVTNZjt#Z#{5$|tx@LZ9;ta4o@>Whf<)Jdd20sB{nvw53EZ{)GBh5uacwgA)hl`SLx>Nho?-umcx+*Ik&1ofJhLGOM>K=}t1ni}wuTza-_jL%a*=n4&lOzignw9d$_5fb z`=Q9jQW%OKqbJ{W;78i{UjKk`WtzU`O4612z_N#@lr90NJL?;#R&sxN6TRa3UBR($ zl6GK2kM6~1gw(EWwP6K=N&|OF=1bfY-1NGYYv;ab$pIjcBFWX`ZX59Pc zlJj9RBK!RA-9p4~C6j#7IXhm{_3f#TmZBse(J(R@j)+ zHs`r;q8*^7^<)t8BB{^%=)Ed5&smINR`avR6g@tQVhF_S6tAGW4&mOd)GFKbo2Uoh z^hTHm*hi!}m$!a%5n~9G0xK{NWY9`PNGas;SD00vk=LqikVWDr|DPm8urw^GMk$Lf z$Q;$O(Q_BJP8~S1n!g31jL6Ou1JH8KAS4Qi!jpG3@aV%H~(dK zd8*u)%pgRr-zjf%^&$ut{c^#;`cSLeWU#mp(-6}oWJPB&d7}981bwyO=CW?@kN&4) z_#2h`?pdQWUiUitl}cH)kH;70es6ba6;^4%`N37e;b-Oz(x+8@U)f1|q#k7Twa>C1 z1I`c=B=NO;={=|=S5O8nE`9k6vE)Z%x20aH6@5K5@tly_%ZY6@@}bj?2$s{tcM`Qd zx0S`Bkf9#ip35E_cT+hBY6J<})OIa}As?E3N3xPC%uzA4(dq}+d=Svw&`kKbJy^yU zT=w7Q1zd!zFXXBb1@xF?CplE5DJKi;WIx#MXoWf(GWrg#L+}SIg09CKX3VAv&{*au z<(>PAHl&0I)yAWBRtit>3SgdOwuYG#7fXkjHztlnIf~IPEK8cTRK9ht+=QW<#SF(i z-4<%V(n`6QiI9KdxSxDy?2@w{WBo*ia?{Zo*iI_QG;7EnYsEIwN)W}dfxCtN-`!q0 zuYJ0jkWCTMZxfymA-uphQj;xigi)t#uv>UvRNJ(_U%k#C<4i+P*bT zv4k$aGN;v_^^FdG%YsHgY~u*pj(y(cxL{jLXmRG{m|U_Kh>u+SGd|bGUTy$}F&_#O zS@$Y6PKuh1tC&Rkaepi#xPg1YxvQhYz)H&w3ps!iFb-z5|Uif6f#}dlI?8PKFEgX*D!yXkI z4S&NFxN`51W~G&-kDJx3)vOmH)JClPscEsLWwKIMC%xy zKVz*s~xlEBX;bz4(@JzUNkfdbQ8D2P1Pyc}Emp&m+P9JUS=w&xh<0TEht0 z90BZV^uKV@H-e?L?^{EuN5|}CKKbf_XHL7C-NvUYx)GC1<$_Q05{y0yV3F1#cBMXF zYNU8qRErt*LsQ@0cLZA$$6oJ zVSl&d41iA;=qs9Pf&`^+^e(Kw69E918bj3$*UFElE4da`P^2d>PP`W4V(lQokysqu zvfn25l?(cOXhgr_Dv!12Td&f7&i-j_l@X0JWqx+yb&UQ}xBx3bbXwAgdsX7l! z9nWN#!gG5o4fSL;I`bWU5WA);;X3w6BU&-Km1+ArlyI8n9}BB+bW8gR2L=VWBAzfC z6Eu(ZgQuQ63>V&*ff(MvFd&3=Le(_n8?~44Soi+RDF3_VsZOT))&}0y+o+90_9Pp) zMNNITkMlm1Z!~54kQhjrsu2`kSIiD`h{)_t~hs;JcgdS&Rf8F;^+m`ssy1 zsw^sMd-P8*Chpx`GtAWjIDA}{CJ++;g)0a1Ed84Kc*qK4a4M)aMC@Kb(bVf~3=eCs z57}tJpOjvdwP8aJwY*g^^&1JRIrmdG3>+M6E8_uoRIjt4MWPU8TX2ZQZBMc~3gI5~ zmXvqY;1d<~_6_~X5B+5G(E}Pi3Z^qK2SqpT5SglvzU*gB{tkqyr}J7&W-@s6S2Hg& zEHS4~j54pf=%b%Li+`qf_4yIJA-z9AyCd&}?7{snWZYeWe(Sq5%C|D%raoh{`|y8U z8(JFX`HrH#9p5tTRJ?iu8qJcDynxMH?|LswPxXsm>c<`y@V`2*IV-eX zi7oNn+XZW1jRQ8{Y>k{FR)M^w@7q^O6I(wgBJUhEF5`v13w7e~&L;AGF+a5*#3!KN z$mwu?Ncv-5KA|;?t5AmP(CY%jh42DdgRjD6f;S{46YnM>UdEyy3Aujfz0iM8u2CZQ z>w*)38VCA`tKtMfVaPN0VdA+fouE;z3JUh9K5-@y0xWANHQnbxUusyjmf`*6c~*I< z3qRy-^8fp-A20s$R^E@*^Yd8Sq^s8Wcyr_+Iazn38B1mAB9Ia6eK z##%)5TvHRovlnUxroxW)aUoH6nZODvf6-PpgpuJ1bqcLAeA` zVkI^J=s&1on42^78J&$Rbc=8SEdm7ZeDgxl!nl99!Vbh@O(4@6c_avc9HGO;r zHHCMq=&g{l&y^A8yVi|WG;PHWC-OKY`v7vRI;lxwM9yiO%V%D{*h({y#f|Z zA4B~LleZsc@p`s221zQXb)K6Mqser$^+6WW;J0m!yHnit@ zVPQpNa(8Px=yqE)?3JyP(^7$r%;m*u*#nYlkK3i=y^t0(*WRr+P?urorlQ;TqWg#d z!tSgeSyPVKe;V(}UgBMe47F~Q1|(kXh@bI&Me^&NwqAgpt3LCq!HVdx+fn@bLtZqy zZu{Ru4(%xg;Av4m={&!=8r)++E{a2v1jT14HIaFJ0(cisHhj z+jHechMqP{1gM*VY5W4qwAOR)I}M|8TW~4vGtSWozaEC@s5-NB>>MQvz$q?$R(4TR zH6x$38Ya_vJ@TNpHyLmF5nmt0qIoN^&G(|WfO5ek%|W6yCi5L1_aAY_2rWZ;_X4Lm zN@S;V1yi0Y3HM3Eg!}$eGDBRqNuNNU7kMMWNm~?V`8D?-@A+aSvx`Gc{$6|h^9NGg z!vLz;YO19RKHg1(|3(7PILs70`;ld%Bie5|=md!+Ru;Z*fRt?wL!sh_{_GIbU`hN} zkV!lrH+hg}apDi=bT#h5lWstE5`$zOfk5q||M*+aeB}?ab<;C~TPFX)oEKfVwe!)u z>}f_nw&RufMi$YFGi0X!av#*^!?qedd21V#IvBSQCu{kZ1p`B3%ElA)E%E8q50kz& zF64fDHC-~c+oohXL&9*&x!OG0U)~fNpS5kTH9_x3{uvt_R+R6)_Cd4%-28cd($MwO z)rLZZW&XMZ!_M=v&Bt{%x{ja2YmS1a() zHID-bOl#9Tgkkyv$3jFRne2w=__nR1>~_xu*?5unJ?^7z0za}~A3d{L4)>$Fuj9pu za?@;Om#iw)LOo}2p1P$lrS}<&U+z}$+};ltu;ecsI#XPAz*aU(U7?QNW%9c^YbpzC zfjTEafjz2Fc)84$Ydy4Uapyp(2^W z6#%mQJ`%tSlyC$|ms@l%1fJ@QEmGFN!Y!pYigPO)yrmiBDL!Oin( zw}5R)b1bkWQQEYfVB!%#l@F&om#j5xd*Utydf*EyD3m(O#M7UatC?%DJ8zT*_O zGrq;phxX{evYmN>wDLHyjZBCH(GicbID#y1`<)bK1+Tf|VEVzxdzMosSM~ILZj%1W zIi{oNd$0_CdiU`RaGf;WP~c(CEcMX-VGY=xkAU--xS%l)>rGCiyHCmT8Rx5)D4aUH z7|F$>n8=r|4y@9Qqn-=dbPKLyqO$S{-6AbJ?_*RMLfs;;LdXVAyWjT*h~RgLzg^I$ zbgeBbY3%r7CT4WV9z>bEF>$7|a)Pk*7m`%Z+*q41%dgqavWuvJdEqG+cS0&_ZzY+W$}=>_sd^2nXs{v$ zSOAWwklZ754oN*W7(5vK=0aAuWx#`YKPKxC#S;Ft zGu|#W=8a5<5N#h9c`xJ|?3lH`N0Lz<`(twR@=*=@X)$O#l$`L)^ZX>y&CBX2c>Bz# zEE$ph_ySf;ByYLt-gef{(9Pn#bgnFCyf0oy!_v`oNN$L~ZYDsW{=#G3k)~pIz=9j$ z$xp}LGSl?G=*ek_N2Jl-Sa-I0W`r`Hz0!pr9rhc>mx6X+1XrKf2N4}&Ad|)KRQb90 zvJ2x*HrDDplt<4%Jdd89E$nLGB;b=6zjBNj-vYwzVILSjoFooO=PK%@?ebFCJiMl) z4sm<`zOoN2Co<>A&e>~Fzpt%;aE?2x{n}d@es|6+{V4hf8?hhE;$)TVmE4}~9yx!W zN}h+I?z9nqP>OWfiKrVA!LN(fcg!^lJdjto2(TDrI?D^y%pY%ayZQO?g#pc6X7RMj zrhoD42One4jruO4_6hqy(+7PgvPgO_r5rH7FO^xApe81qSs%f%6##%_ACZXtK~KT( zO?kB-DTw0IoP8<;9p9C#7IJuj@k>AnNkHDesr4*58ERs(5Wr{mpP;6aKw#ZY8U7^w zQS0IA59`;&)R7PXMd52t?>{hef>B;DdGxQB@|y%fqGNJ`OVRkJEk`ee%%@ba4qy}H zq|07}8YbxwC4@}jz^7hos$7{U9f^;Z`(}`4@Wiz^4nlYY!(#E)Fny&5U*nxmK}SwP zAXiIhU@3903q>(M3!SK@+B#&$F4(F;l?#Eg>@)O>^ZjeJ=Ao0rX-zBeRK^QHQV(gm z$*XUgIaFw;w7A)zce?GCX~^~&rR|fr6#2n|#WVxtpb8Ksi8m!M|B7tMJ$52E#0xq+ zj@{otuqP0VkC8*B&H7k06cr~r3G0U+kdSDL%i{BPfVw5~*RFtg(x1D8u_$4GuQKrpNM2O)c=q3b^dQq#90vgjo^4?1SXDM2%6z&*Xy_dj1TyV*UFwkzpDRkQk9kzV82bnaNhx70l!@^KT@gcQ*(kdCh!mk=S4pFN=cb@3 za|1R8)*+qGdAxX)PXCSHOURcI$PHH15~}x&S}@F-KWFv!HY#FISO(V`M<6XZ#D?1bR;Umro9@d?})rb}c59D7;&$*Cgr3NOC@A;bd%{k|W1 zDOTm^qW!b>{gJ2y>`e&R%Jfn_Sctc@KZ?buy>6C2F2BlB-LpnY6q`~3f7Mla>`NQb zE1FDY`Or_7ytG{#7`IYVrEemo0!OvMA|@(FRV7Rgz9VZjIUhqSS@Olf8bj}qNo6`i z2zNtFV)l{Um-Y&O9SXpVo829@eMI$~16{<*q*}-19<5g@7P5)G5%a`~aK2pF)&wh)adV#$iW$!znHh${(|BI?M+9`2pU$gL^5GyTBNl`^Dp!6ouEeWT zA2B}0plUBkiZWq6jg;02o3pua=7E@qq#T)ylw{m&zoIjh0ni=b$}nOiTJ4lYX7}E8 zUF^e2P>NoK=K=HE?ti*2_YKSB%6SlBYA49$E^$ZN&|#6{IvXc>SMv1MicaN?Fm1U` zpf*kSPiSVB2k&9|y^_+6|^cmBpgWxWF>o?}pv2L!E4!7VP<*vGpM4^wl^#ms; z>pyTXx|xaxlKF;?r(fuljU^Ad#Mak2|ApJTU|!VwizX|pz1#K|NXE5gU#gho<7@U( zpIlLo#um5f`ilJLNq7E&y8 zJ2+)=Ja?;~QB_ZW{KfuKLh>4tCq+#uP8oCY$+~YLaOq%WD&nw@k;kq@<3R4~h*L_2 zLb7%NQK?F=s>!iz^ugSFXFHRT{8aRI2*fnqmc(2%@r1e37-LuQb&eA!DY#C- zZ*?awD8vMP1d}p2ZN84MoGQFKW{V!tpzlyl(8a80=otw2iAkxwMrfweILAA4Jzf*q zb)5mXjqAO{+lV_q0ojQ)M)+KL1y{N?-bLM#q} zSCKY(+=J7p3j4N&D!sPhu9tlDmR(`1TJ|xuT9pbzX(88A)mW1d)7#7xOpa|4<|MJL z2h{LUjd#E~NXP0pmUo={>WO0W_9+!wo;Ljm<032m&E_cVjkAaBQm4TND|JTm<_2pB z_!+Qh)*=8D^{TtxwZx31^MVrj_LSx}4b$95yO(t>*YN@m%o5)dA|jB;9>dn~Bk=Lo&2_l7@h$3nX@*+8K*K8^-FGcD z2nZh`XPeFGD~g-_LK**M;DCPi#Pqs*xnNMq`Qr%2_~`CSO>4)cz3ri=i{@yr#{^h7 zpPB980pdybRG5DHO|37ijliRS^|Id`_71K8po8>~5$ps>IV*iL>C~(LFSTG-FuUHs zk|RV{R_0Y1W4*6235gVXcmQMc$R^n>FcuQRb0W@5O$dH4!zTBi&Im9(VrWW5x)bYV z;aAj9|0Bt%8x5d=P-f_(dHBkVx%r* zrfI4&?QKL5F}h|RPI|0dQ~Y@FcZ=&QBfk@0=kX^r9-l@yTK?!Z&pLGzAI>U1T|0Pb zm$AIMffPnTZqj#>6>4Vg9{8qpZDeZ^P{<* z^uMSqwvWt*r_$JvD8J_W3?f(2=js&=|JVs|%b;R{uIAbb_*6n;@K(hu=Nut9=uDr&my1dRIXy>0rZ{3RLfeHI#6=zNxFp_Arvwre)=%FMj6p zC(TBah~nFa6QmzWMnBa#H2alL7+(p$UxW$g2gt*z+2dJ@O-z~lf7Lcx6A(2RK9S7S zt6hv#Y*Y*0w=7Rh(*p6kFPZ7w^UH(rT(1AP=Y7M<0v3NrS_=XJGm+kbTQGpT26kj- zP-4ioF4z6Rnq%eXu`KPie=pK|)Cx`KgoBfjb09;V<&fhm>mdb_N?=sOXBtTM64(pi zu4lZ@xR=c1PGIq{Usos@_K5JpfF{V*W}&>5giDpTU({AO`#x3-$&@}iy!$Ca7#Y%+ z`_moapC0*7RYhEU(JNbjl!`scrd=7@Vg2d~Fy-dlZQpp5b8o=$r#6IkS6m5_z{TCW zO_Y9EW*QOdu9^6m4`SU%edA^YTHpnWisdW(oe_OZ|HbNJl_{t|jRT=j$mxka$(u{t zP0tiW(6YqP57r;}DsJTnjz=Ks6nAcRr7=mWX|xX`31983^%G88JVs}ltgcC~{zc{R zxPq=Z`YfY*I%In~r296cRqdG8%*v|uLRp;WY@rnBvb7&V{Eyuq;%59h19%1|_5-4u z3IZ1q($HBud{(yu-!ob8jb~}^xY^qwjm}&ShiM7^SwXhBvZh%)%O^JBd5>S{+uDDR zz{)KzNGo~A{*0+XvmhP)~g4k_)u-S04 zE%1=7Y1mUF+@Kr9@dgV6suP7w{$v^(ZDluF=rR{7^j`Lmq}lWX>7VmH_PL`k^%=sZ zo&93Tg+WszCT*3Qyo+`%`Qw=)g}Tn^dj@t>4n@)hQdYLW8VoD-?9}<{iF$x_08(6( zzmic8=fQT{$#Lom!tV1;;}0&_RR%lBVR?)>+RGWb+EP)LID3GygUS>@Dk?nvHF)WK zvO#Td`oz1ei1xA#cctP64JjX&4f?~zqu$|J7Uw%9QOrfZyhVeL33B(~NT^*YIy!te zb^b4?P!gWK+u9`d^7y^nEu|Q& zLVLC2yU18r-(sOttLUTmq}Z+yF9NlC;0aw6ZUA81pOIL0R*sLRinU{cvW(KwnU%L34Td7 z{L`}IC$M4f4x8R?%mj$~z{54IJ#^a^J!CxXFfvn^ri;}>XXqWw&Y|pPJ3pfH5O6n= zrH!nXO7&-L5W?rn&eEl7Fv6kU8i$xBk;PJGOo`T7Jt@4~tz~(XnbL_rr-qdc-dCC4 zGB@xACWZ;RuJ`3j`G=FM$w=Xarti$6vt5#Y+mD_(+LPz;D;GYbOeOZ>kxENyB!1(Z zFB&cfLWCQ}3@+jguY|ofyrEQq95Ee2m(|7Sq21bVXdN}Ue*$gTe|=*pgZgWN{J}%s z*FGb{Tar7LrDQK#_N;??yQ3Ay${+nE>ds0840Ggcz|i7uYvGFeHFjteAq{k zqm^uhYhD6ndP8Q*>aH?sLn4}i`Yd&8!zW{fNAv;>t*QN`n(ue$A5orR(3LM&?b&{? zTgE48hrIK?85vq~k$03l+_Y}dpP=ZXLK_XF`F9MZE6Z7Vp*}dPYhh(L9FBh(zl;Yo z9ogA_>PrcNvvr5v9HoZTszwP_>2H5mIVGKYeeRD#YSzi(AB0;ZhnaAmurl4`CBYB7 z7huMFWToEWT+($fzZKB;UxD2PG1O#>yLuuahC>@QB(_#j)v5zuRvk4cDTvL0N`zX!frTWS;uvC#RE# zl`+~5x^Y;<*PrzgADeOZR!XEnmb=%JJA>JcvQ#Bw$@rk*Ak$0z_Ny+k1+x*xjM^h# z)UvbeAxhS2&>a$LkS`iK$`n>$JFNWcd#+#hw2bT8<0{4SZXmR2FRYX9fdI{6;S*Mq!eM2Ru?mNm^efcj>yyA{8-Rs{j>+u;MM%kl2T;GgUe^9! z_x#}D_@9<5Jsj{*%`~3XxtV%<@%;0FrFbV}uA^e_cGFrmK7S zJ@OCuHs{+AbUdR^j&fu0G!=Enw@*ajS(;`*nETT($aNUURQRb5F)c zs-*zdbwMJtTv40aOw$SE^)QkAL3P$?c~Ks#cdv(ImHlE7NOTqs?}tGQD~swQ(U|24 z74e?&16!BMiWy|;KtW;_tL}{zB1Pa@-Nj0DAtpUWgz{rOzS)@cI63qsR0rKwK#>dM z*{v1cG;H0|{_o|YMjxH8ZeKD|ehKz^3orx^AC!F(N4+vN@qQ%6=-znmGShJVXv(#4 zS;ZO43^k*cilUMR+lyP@A8Z3 zgqe}&{FSzanBK$)tuW8f>lY0cz{NMBFN%SnM8Io(Z>S(qun1cq3y@^~ zY$ko*gTGtw+;)K-Pk(CptwlLt_Djm$_Y2l^-a<&X*K!BRA|&U9g=+xF6^-CU{ozWV znQ7JP!xfZRGQL-FmOzl0n?Y>i!1@9rDYV|2B+^{k5k_q=Fk~(7kb>G zZ#BPn={?ssz)Sp|nmM$PUabDl7BmONv~^9N-PkeIe2e1K+UzO2Fi<3df||f8O6?H? zTEj9*ah-E;#H)xEWT3RV3$|@jg?WxA_%>Avn)oLlmqf2B&@n)` zG|T0O&X65UH#aw29Bv^k!2^(y*YU~*KQ$*vsEJ^-PhotyF0pRec=0gR2x+IbX{{cBJF?n^!Nx63;$WVnn2E{`(P`P=Zb>ZxrS68hnncR+=HJhB@xNz-PbL>SrK5dUE-EfMFx-PN|1$Q>j8zui;+S$8T{8aGX$PkilqPKI5|8gF9Fh!3~_&<4h2_{Wz*I&Yy<20 zr0|%a#XW&}A_jj=omAFz0qGaqqYLIN=XGT$ipy?YQP6pA;hu$(a1YgfP1&dwclm)__jI_Vn-JSI`%7 zzIUL7d>_?kkCuG6K}*y8(Hpt>^FtJH;&jt8>|y5_a`RGXaE?O90R32V{CZ){SpWQs9A%a~YCMTnc@mVjgg>v@5K^q##J;5Xi+o^&2B0*b$c8&c&QiNHT?re|T`S zfo5>91W$aMDNH;9^1*P(E`YA?PENNxu+FO(Mk#)Ac|scDKK$y}U;$#q?bMOv^xk~t zjzc%2);s`v&wl_r!=#=fCFd`pv#5_ump%Iih`v=J>R{;2sy5!Cn|zdsCy7SV69~ff zdurk{|KNe%rbUw1tx)%Ia?tM@>0fFGLIZvlK)P#81Kvg^jiEU(fOlEiKAILp{6@tj8~p^bplxM0dMiup|NYPOh(8iyq1ZKWC%t{b1Wj+%{NS{h1B*o{Wl#$Owq zGDDu6ndg&T&4`f02w$>*Q@y77py4E^Zi>v!+MgcPDkYm6?Dz2Z{hgVO5kj9iO6d6_ zDOcv-9Tf8J@vUG6j=so2%}^Nv{U8gvZqgi0ZWG%MOu!~r(`(VxVDr+LMO2~SVeLFm zK-Xz`e8jx&+T3!3e*V?G1XT&xdB%fC4#QwH;AGR1sAj;Cjj2x6Gs^$4rLO3I8R& z(~REVw5V#SJ(pT;Uw1aoN86;;R%zN9|96hy>!#04yTzn5ng}nw-(?C zopcI^&L9dUD@7~=5Yf9qtQo5Kb-fnF^LafV13gD)k}4=Avgd}t45xN$)|1cj-=)`$ z!4>7G_7B72JMlamg&W?dnj)+JzwE-mL7PFfqy`UHyeGNlE3;2^@l}<<-Ws(@OsLW3 zM!&^h{!sqoFpsq4^bcM9j(C|Npe+MZIdZ@b9ojGo8Hdk0`O`m>`cynURUA?T?{2#1 z==3?Zmzbp z8ei_~>+Lon{;$l2PGFp*g4pFh)}ddYJoyh1YpzA_fAx|%9fsIiwGV^4gKY=MOkb@!66*-61|z8!L5YCW2J(?F17Fg}v*_ z{s>>(KG7Qloz{@}2L+%%#lrU>+n_2^Y9v%_E_@%{x|BY$SCzmyC4c5h`fdC8eAR-~ zu1^(PSA?A^s5s(+Xs*m8JGn43alsNAARmr;Y@|&R8Bq^yzQX|eSp2ZDhuKV#78c_bA{Lqm*o7|9N4=)}rhtlG?IARf<*bSWtR_;B92+|>S6kZJ84 zGLH{Bb}6SHy9%A<*Xh{Qy?C~S;YF}<%nzO`za(>D-rUyw z8TO%-6#o#Ox8lzXhAZ>&k@=DQ7xQG+d_fE5hpxARX1mEH+CQ188PuH__7X(1xns|x z!2vo_#pv7q!gvAIe_?$GD*gxhHbV=iC{e!j%f|O_(-J}7<~LxhMiPt2RuqYZWs=NA zPXTBodd>R8sLd*Uyad1MmXpMEHZvPU{L?Fd66tTfSWC_Aq7 zu8StQMAJb;azXmE1lnE@89w#trcX*B;H9`8Ckfe#9P5n$ejFykZ{0BTJE1&2% zW}^r^4pTskqJa~puOwtuciNxt#vRK}wfL59J+`a_I_a)jD*De`AFS}1{Q=6n)h(1D znvKhb$Uug+DGhkW7ow6?ZpLG6*Nw?L&^k+sSV@B7lmv3C>BTPw8+!M|l7Ni=xig|4 z)K%JeFTnK8@Nc89R?yUyoPbGn;STj2r-!e_e0P!=Z(oe*9K=dyG2ZYT+-vKh`ia1a zZgP%AyRz~U(-O!-Pg1NGi_j597$-SCgt-^v>D3#Ry!}d`|9V}zON+$v#%}OvLOm`2 z&f68WTB`%x!aG-{GQ>b=N@E1p!L;=34mzk|;J2RL1H|`m(;#!m07!$m9HPp7TO{e z=Kypx8Nm<~a*&_n5(m*lm#K{BeEV!ok}6#ecAmXyRstL-Zs`7bh?$!@?@BpJ^+7y- zrMP*N3iwU|yhVzZ+j6(gc4lK{jMD|#XR~}Dhg8eU8gvH!8qEQDcYH+FTW1o=WLku$POcK(eL4EWC6Ar)2g2*ai-0J( zk`edB)~T%CPwY=T?2kMtX##^#u~;l@xxXz~;r$CwmCWK|sq(OTi=G}&ccV+w?pGsG zfOTj|^zqxrkB798PPq`9EejFt^Z7@255ThRUY?l#ckF{ZqE<#s&n~=BcOYufpblcS zyKenMh;AR9K01Pw=|vZjG}@AwP-5<_`LH;s-7t6gL*QpP6$2Nh6tbEa0a)BasgKYF zy=g(ouZf4BVWlqcb!E`?yHRH2(Izf%uLxd~y47GdDJYcGoc=zS69l__Vm0YwP1*7^Mb|R#QUZL* zg|d?$_EQkIvDiwqsk?YQtVQj5k<8idnr^UklO;^1@rMxX?pe3`xK3~pyrmpCSBBII zUB1MrwC@bBV7o>ili~L^cUIpODkxb>(K{sHN-n;5Fhh|97H@UP9q!ltZgILru=}qX zb?fdh2!<;`hSw}Q7WdlC{-Vc=C- z@#f(#2s|clv%PRk|9TDN&;#HXDzD&|QMcgl(}^@oBo?|W;cW?#{1(6YTP7DF3xmFu zxz64L_kUsL3P;9B{6pLxOA{9OZT?WI@3HrxHw@glxy~2bvZ+66Qi>dhrdu+;KEo{P zp@_kp!5XsV}h8v zC*#=-$WYMFnTN+n%MZZhNUcESEKt)e|E$@J^NpIjERlN6Z{1+cAuKlol~Fq%POIDD zHJ|6{35UK$9Tv8H*||*>aURsFCB9vq7bhjudd@&M9Hza63OzJIYn7GKV!r(z=3{pv zc7oiepffLL>K1RajRB6d*dOO_La3;T2C$+4Yh`IE%OYX&??kxL#?r%faa8_jYS(7hgT&80=*$9Coa5s#3r4_ zj$Gc{L%nxWlNM!cY%ef&x8D_--@RkZlYRw8vO4#fiKE>=`4z}S>1HUK87`QL8rxh4 z=S;nAbziK>K26^vr_cH)0#T0g9oV4emAn?VTU5u9X5Js>r%MxF@tX&YL{9W zJ#Rho{h_zI;J}rO;mdzb!Gn9hHO9na;lu~c!I!rpGpYUNfLuqRAo!Jt>2q2oJY3!S zG+*+UOnhs^_pte(L5oT+B?qO8$KB;m!&=VoZ9M&Ac2 z?XVh}cn(AZeL)-c$ll+HZ%u#crtszR!XFmAX%uxtM!Bgg=Hyw#UTG9`x|E2GMEugs z#4sLIl7jQ+ET*Htyu%8NEa5-onttd=0Q{ITM^y~jA7X>`?F|0hAEmZ;hkiYg^v*j+n< zH!)5ry&{*TCUqzT9Zr##taWI1Iji4%#~KT;jheH)S{+2VVOCoTb;}X^R5v9jiMKw7 z*qRs<3O|+)&j}})5^@_^Nm805^VDZi5|2!;DW_Nc`<8x5K1`xNUC#4s@GyS)6Nz!C zFasolCy{HykWVmchqfTh6tP|6Q2Jz=1AlN@(5@p|{ugu=y83(ZG05y+(19^R42AE$6A-Jl*yCsC7WQM^3GTQ)~odPno&tuAGYk^bc# zehA|<$dS7ImaK^BA$@>Z_6Gp>K+W4b{KLaGSc4JitRejGywKt+0sh+f5#Zfa{;kGZ zo5PF#m_8XdYLVYBuJLV!Ty4Vk_Z4s!ZSLvVl}G}pl6J8!XWeqo`XA{9nUwj3JuK~H z+J`H{hiv4WcPLU#F6CvKOKY?r`gaFrlTBIA{iq80j8=8qDP*x3wE#8N?;zK9$GD8` zGahu&npez5u2@5hPZU_WJm(#?W}usistkUPhkqnSjrix;_19o*vAX_FrIdWkzd3^@OwV zeM8%p#{Nuxu_oz&M?m!Y^$qF4skfVMXX&Pp0;^-cr1_p97E1Mc$H+PEpdRPdp@ zokRrT9|eDXh?jNq_jUK&4$>poXKr{2o3}Ydo8CiLexSLLVXt#WI@N2tW|dKGUS9FO zo%4-9?c$fqfX^_<^`h>M1+`87e-xejKhy6U$L(liV`F9*HfPOYPC1Nhj&nYr$s7_z zEoX%}+njPrbfhSqLo{kY!O{d_%N~B#UIi8){z%QL(xgK$fgGY;4Yda(IQ2elp zFWN*}S<8cm(Wz!dVVB}fQ;t-htFmPxIJ95vdC_C9Bxv*iggIWzGb?`RQrDIbW{|iL|dw?@um^K@LZkJ7n@%>Y}Xy-kcTe6^Qf7sml(s; zrpCc!YzJZGSOcQ?5|}%OiA07Ex+bM`rfhX3+HX}UB`GP~c=0q_<=Rr`T93rOlr5`B zVr*a05Ol7Q2mDda!ai{lqw?(oKrj%X*c=R^L;l>f(Mv2oqRJMxD$*ObBm+{lF19L-4 zvRFq5C!jJoz^LBz{d6W3}yMyGQQo9MJrnFqkIo)20gLdLqi&xA{b4$;(w$xjL z>Lm-7Y3CcyN98HIqfH~h;`|Hb_^g|_X%$+43yDA0gL_Ep&v{!yb|B^+8xgTb91ffp6)h*Jv);F+0LUU7#8KX7sTjZRFu?gTt zc6s7E#TZQY%|T+RYiykqyfAfI)17|$j8@0piU>Js6TvXR-lS(X1Hp`XKzPr}iHD1l z&}X^PurES}t}ons22Bk{LME*XqTnGvR>aCOsv0&HLsf5NG_qJHW#*S5`O*9-&hIh{ zOI8c*@{Tx<-2&D=X)mUO@==tsB)5nw;HMq>nH=}Ugy|LOjaPt_JF9QS_vN@JY_ zreQFAB&@TzKI(^x0RnwV3SXNmu@$$%s%UCbADM1=>k;@#s*;3(yZ`Nm=58iA ziU|>&lhkm6F};YkV1T-$`h}36GZ;sz>@_6b=CQU7N`xRF#2Z?qssny5z)dj-4e<%p zNyFsn9R&>Ao70-N-A!`!I0hMS$-i#F{&FR%vXxjFzahzsd|7WNe_76yU$a`Y_tZHV z2Crx^@n2)Z^;JHQWOqk;%IQr(F4Qc`qVlX5{nKLb*s&nR`l$~LaZa9`K}9K=u^VyY zF-U_l8fO$ncze&NPNy$Xc*Rs{8m_n;n_+s`yMRw)T4}CQc{lMvJ$1T)+x+-0w4YQj z(9Qb08YQU*dG#ulIV}Myv0X8Gc|>Pd--Lj)mf1jUD~;L99OsXGmtt3Hzt=c$A~r@J zI^)rQ(ya@4H&z^A`@~7b$4IsO6MfI!%D7#pf!oUFE&RF_-QCzy6PzUTzIc~gYDixp zrIZk^U4@>|4o2n>oKaizXRvhYrkTrA7)$#+ll(OH96!j<@u4lo)x`DP;ghF7gnAZY ztbs3lP1@hzW?;Vto73vU8^~cYD3@87--%wgwGMO_xhK;eICb8BQmTJ;E2H z)xD5H5;7i0-j5^*>OjOxm17xQjxs7E*=U4|+5ykWmpA@o;Be%MfR*(hYqITq8y30f zdsaQ(xyP0*8u!9^fHr$!oX7PpS+Mg-e0!JQ7&Mw$D?e~E<*6T^2Q4xAhvM+1HeN#{ zd;JsWyuOy9@EvN3j+X-z^X+QN*&7j3QeL$OEynJ@x)=23)btR_QCfmI3)5+<)zJ7t zNx@6nCN|_BvZ)#T!H)7b@*PYw-?K~yZ4V?=ZE}}r%=|s}p;x3l<{{6_cgYtG5zjN9 zCu%tvJE-K$y+g^{66L75wYf#ph!Xqf+WiKS`OmBJsDzh309Wa z^PEtd%^yw5P)IA#D%lQyHE0z~D}#jv2U-2FjYQWXDkjseAewSa5K>> zrvo>bQy3B+9`ssH6z$N2x-$R#IpJ>z;VU&<#>vYIKUA)*K>|tlcWtid_UAGlWnuleXPi3nBV7 zi(tJGy}ArLaIWkxK#-$o-ln|q^B;Gf;ix#l^Xk8+gVM_|<88{ut0@wkC*U7Y1rH0$cK zYTs+t=?&t6Kke;N7IsP0%z(?i#no}iPMcnA)iQiKyGra+6 zj4LYA&TlnO%(Aqv@lyYEAR=Mb(Y}xa|L@^#LWZ1kI`_EtdKj+mOq1i|jVi-_FJ_A= z_DIXVJ09ben+3dmuoGsj*z}mq(MKp?%kVLUg2WY73gMy8&5AB{7!HD|1lD5WJgn36 zor41TLVU<|Jh942m~NZqt`A+O)@($qBQdH7r+g9C!F8&JhWXX^=0qvCpEuv^L1@?X za)G>6)p-<^fWn$_@tRFk-?Or8iNWdkc?CP-nVbqLNo6gyt@6YRXgXMeO6N zOA0GK!Qw)zPMNEHb2B1jyI-w+)Y2=#mlA)Wh*wA!9K=2Oq)i=OlrA9%k(MlLks}=X zp|g5Fe`MvXz4r9o;u73{@7*6CmNT1Vc=YSKe~gwY9OpX`eCXpE?-ROJGz5ZKkuzZV zjx13uMvTp5aKk}O4?Y7m_sM!nS+Ox8l8ykOOTI8M-nqQ`@X+$7=pV@(}FQ;0~gW(q>and`Xu1_d%{}PaepTIt$$! z6RO*qSV>GRoFY~frwZ{@oI z-llsN#1+d?ce%u_iSdf>l`HHZYhOYa!QmETNy{X)34Pj;KI%&7$Z}5%mMj=>rSd8< zf|t5210Z`IEBd)3ZzTw<#h!}s9!)c>m|*oe8pMxI#?GA#^TzWX3<&bPODQj=1uj*> zHC(awrk%Jqz>Mw(JfRZbz7*7+1Nen8?4m%J?(y#H{%B=4*mi8r?o*oGyFrkgzwz9+ ze)Oty{^a0lHDRtV1>+%ig%J6adn_5a&}BPIuHoD-fcb4D&d?5Y?I^ zK>)b8EwzD_(+CuWY^1VE1~%CfuyBnzP!JVo5OJOHc*?cBo zG2N7r$mlCAEza+gii#6hgRRYAo<=9ZXV)A^weO$tbHS+%mz+*iBY@#HAC2_fJDCxY zQ%E=^?r>J)`V5+u4;K3nGI)r0VpIIg^FiKG8jI<;xh@Dk{Wf&-Z9eSnChImWD8@Uk z3$8r5|Izm&(h$}a|3(BSq#G}vgB|)wdRDnx;wJ?f`}&z!V_Yx8Jgbzx27LJN{q+wA zT&$Br&e4C)plQ>^$C$};mSTalV|`2QM`zwuev93IY&V;R%>7Q&={y%uOaA&)arG#0n7maZF3#|W?S{* zv_G?Ok!3rf1=LwD_}$6!jN!d$^?YqAdcE+nN&PoER@KlsLfYhSzs`+L%Mn=B1vcPY zENI}IMot?|g7@`h6D7%ZAa`tee|tZc#)5_%ugcFTVMkt+lFIlS2l87zn`8|BAfgeH z-$hHj)sNjiAJ^I6x%k0-dXT-inItI4lPoQm$5%Ig$L=?ot&;le&ij8UI{X0tL)BiM zx0)-DW&ZdlahgK{KnH;MJ~|o!No~z`(-zWw_eO(%JH1uq=s7X2(TUQM2si~uV$EIV zvN(XsZUsTc-xWBH*?Q!S_lD{P=>oAc!FjFwluXePs)OA2m+P{yiP_v`B0^&DpO3I7 zAK3fsysgYSh9hukuywr?d|zn5Vuadn1^p}30juqyoQuJ^&qXjpDB4&`?pyL3H8~Ae z6O#PSDN@5e4%3{Lz2kqztMAT{L zUfVafl0#Rls{RU@%%$0=e+{_B;0ut`bkx5r(#R*k1{%$t`6T)q{w!e#E$&=kd9 zCbj&s(;}1i*+_l0XHQY>SGWuCJ#KekSv4Q&eL?s$-1OB3K9rj0dyQ4!87d0<5TurW zRiRdzOQ{;^%5`?U5~FSN_{muWA&MMMJs9jCA9Fm)@W8;&9~2pX%$k%oy$lGS@;m;7 z!~b2ZA_-r*EuhfZFL>tms3j!nw$thXutOF)ktTc1SQ+USh5j=gv^K7;xrlh{6W+-7pT z19fb?8MR1w@uTb$dX>!hu@ zq_#WqJl3!XhQs$^-*3GO*!Vn zpmStv1kRlfhf|JTFn_>FjsCKqKwCflRmI0x0~7=MIh%gkS1brsYYHRb&?9BKIrBld zpGg?R>4cX*(X6(hL0K>!-HW&)v$g{yoY4 z-ME?y7C*sHjgO|U8ZYJ;#~2wPv?dg}+1$4leDgY`tcvUnB4#o=m+lCFcG$1wXC55@ zErpbYgjud0LlBOVJ;DyoR7XcEh5^7Y#N-iWukl}ZxyDDqhx|()hVI=ZK&T83`wf3( zUA0p%_dA{Iz8%rY?oNt1Ww$PRkNy)nC?+AXN>zAilOj!AW+;iPe<^*@a@)a*?>cCd zWXuY^GG;Kg)F#<(V=QYX8n$)fzke{$p8p5Ieu;bQBtL$ge7r#Ghih+0uQaMq9|;m6 zomwyF$O**GNJpiql35#Wj;!~uo~E|0>+zX08l>xUf*V0|AXd^GDQV_M=ScqCUi7vh zKWRu%u{G@Z7HIZf!v0s@Aice=MKI|j9LV~2@lC6&Ff1Lt2O1~U)&&}2(qDnz!gZ4`gO|CpLLfKTJYP2}^@wYo zeG=g*@#c3E>Oq*FA7h9+Y$l2?D@k|+Nu9qlv}gHHBZ!~P$F@FjJ%XZ#9;tvKP~P96 z3e48^-qZdsro1*fNXxV61DNC@Cz6R%!n(*6O|lX&D=?&k+0@*3)-fU-45H&fo`@KT zo+qYHSXh40`!k~oXEeIVqR0)o9Trz1dGq>}E(E?_omB-KzvT&ywHs8Gf}T>6>FdL0 zssgW8lJS!XJ_xbWD?>Kv-GeQk)%n2{M1mq|MyFfJ&+A!l%dob^#jokSYD?Yvp8KDs z&fRaApX)VooU$}T%wK(IKEs)*(eYQ8tpa$SGe!_D)p%XfBWpOa4l%$s7rkVy@xlgK zDJ9qP(ejOwLo5IOf32|nA-V(JACUWoqSCLab!YGT%JL}{d|KW5uOfM)Yu*_SToA}d zV2Wq=zd}H-zW>{v&DVa`^`Fsp)i3$KexPluSBp{9-WAfQI{or?TIrk%6VyQrv#`Ik z=~%f=PAU0M(uu*6SVa+@RgVF_Z)&)7QB2k_qmZJ$dtqV%&+O-7)G9%k)r1yGX~@zX znzjsr`ZGI)4HTj_wx61{D6Mxwiv)k=jN4O(&3=4N45CEXhwx*rE{qnVBP3Bxtm{rI|QL zp6#!0P5)2k#Fwp6KVo@5DeqL;A@VHw`g2REDCkqKH+n`z2Af z=q88-{l1a*Ttsw=80Od1((NpY6&=FvQ6YR-Ar+XC|G2m4voSTvsm@0>b^XS7gr&$f z_bghi=XBleK{j=#8f^XMZ1nSSeO&h|&ySD-tW-d$=@lfzs1gt+MeaSNp-p=t0asUIN5~TKfGDhG`d)J7=my&EA8omZ;!-mYSnO zOYxgX$?rqJ?^4tH1bn!;><^TTv(Tg`^V^>gC4?BmxBt|6hjFqKt2>HhdS4+DEi17e z3pn&AIdi{c#$=p$%cW!v2|lGY8hxZ^-@S9cF~#83g?pzR1RK@5KBbXUKENyzycmSW zG(2e8i}NfcpXMIWTt64q?$BzHTWCrEOiR)v0dDQ-g`|V5Q=?ixH~kxt1}Y?9_pK@uJTSs$&lc)wdz|@lbb`P`GCA1mV85 zX3Y@_DrC0a0rB|W{Wc98H4=-rlD-$%=?qTO;`3B^E@_7;GxU^v@ zLx1f^ABzipRGEhSt}OS6eE;v9Nbub~{@q@BKmcFoo_%>Y#!oQ+n{!GR5cs8lP6Nhf zS^AYUICa0tJ)b9Zq)HGQEloY#2hQd}uRVuc6lo>m>D%>~5_zDEqrIG7nTdtm*T+4v zSF+C+7TRMherz-;7G{JJ0|3ayHW{)s37IX-I)}Q}o#}^HfpcfUXYg1;c4^!C;SY=V z!k;IUgKz3&>%(#sO;bSAc7?gY*{jSZs1w4<0;qqW=Ujg>Z-z`S{I;(T6CW#*3C$!a z18=|1-O)XgX_jFb_etEcH0{aA?110hqoeySzuxlxrr!jaeo?gdGT1r|1eEUt#O4LD zggOCkrs*nnhA0aBx=}&Y#1yo;LOF)laX>Ra#il7zj=o)%L8#=;K=g(l@Z~XU@-0-K?HR~naXq4h-h(_9Em=H5(o)3B zVpd8PBaN%hgBS4PIqnlePK(43T`VF#a*!Y+D;GIP%$8SB6lG@Ml~NUAokpOCS#af3 zRVytwM0Ib#gx9kexNpI7w%m1D4Oo)F8T;r-e;6i5n2jy(jOfr82> zA6`fgN94jjfz}Y=u({N}UTxx&oOC?*9Zw?mwK5VBEaikwc5-v%d-8=f(uL`eTR(x$ z@3!M{QnDg|C0WT-{s8jI8rqrsPQPE{)A{^0(53W-@ohocWwxQT=b{)h_=O$%eNbWH ze*&ME&10Nx%2A&2eS!FRa=^qb4<3q&{*~q|)ATM@R()Ivl`_kC)+Iwh!kL0&+5wTY8K#7a%^ z7$HA_#R2!P0x_`vz`f(Y{Omyb8E^+VN~U3kP)(Y9T9TOThe?YSQZszsq{ZSeipfCy ziRa**dczeo6xN4DfeRO#V$ENM0uv*MNih?SkEWC)1)mA$u&#ae5rx|Tg^(^N*qYez z8*wNi?J%DN#zh!LE)W;kmADm_mFxGnuj|k&?1@d-E|!aq-q zX(%dN51E-^D0)dFzR!hz^L0d+_u1TT=|BPnwJ_Cpda_spf(>^HvvNwS)TaxB-N5#U zu$6C3LJG~Sa>CP~$0O!c3*QknfSzfyGoWJx-rUE@WJ`163a$D1C*rdG^W@Ga{Q)K2 zSsv6*<`)o5!%-v?I#1s5N1X#$2)hBTjuwS1DcXQ&V}G@bH-&X|2C{l{Od;&7f7=iN zlU)}myG#=ECdY=CT_DB7H+$|m4WVr5#0W&^LNcFp#|G*1`A}GI$k}b zRv+huf=A-o%FcyRnTN(DatfNh*`}U%?EeWhZ#o~5x<&i1>=oiw(Wh_CKOAKweq=`N zo;=Yc?XEX!DdY2afqpF?i^F7P&i0cy&(VrbUn^?M8ui;8>3AT0g6*Bev#dcN&<=q}eKeHd5D9;@F z>3jNUwB5y&qWI%yna!1K=?^A;#Ink#b`jE*eD~UBfWrcbd30V zK{(7xWy5nce=@_-I`5Eg6nWFFUPe@ionV?f{mLNOyx6}uas;B?9r6Hit4+nX=1uC? zInSL_3Ph^-3faOb|6&S-4?AA(gqz-*yt1N;aa4bgN-NP*43;|udGghahjYubkmt^O z-I|gnpF*&TzT}`t{9j$d5@gu~{D5Vkk!(_N$3C^%O(s$`Km?VJmLl(}G1U|ogC1yJ zY}X8)haJ2O`D*g3Q<$T3M;wlN@(3?1jo7?*K6Wj{<%~@%6lH-zRib!MKB7(a4|cYU z{=p`!6K!g%7-{Laj5OhDO}RQOk%4>~P7&m^Aj3=eX06k^FwlFD`?{G6EZd!bN&zv)q?I7Zs{xF6|+o%2P7@Wm-nKMP9|m^DRebA?LY8o-=6_g){FZU-jwZrjJ|9 zf_U)a2u_-oqaFUamD3gqgm|3tMPygpG=_WPh^@qkXUC9MakP*Rs^fv@%~27 zf(`bWIuXkmU@d{AfHH8GjGWJ%(mLB2mpdE^=Ol*zia1Q*e!sqV_UoHagcE3fL-6d~ zj(?3LQ~T7v``7f&@0;Mx$%D4|PR9(|*`Cw`L{C|Z_NBiXF>eG83~plqYV<{w1zppz zhAe#arV}&bB}?cCBorTZb^S#I0i(vLwMS$P#nqF};|lvP``Kt6emAIgN2)K9gn$i> zibq=*xp=~G%P%a_P2%NHH^7r&UGmN)KXigj^7<6Im;;oq3xu$IV=d0*jC++;mXjs` zgkq+OuJ~af)@635BQJvwEb>-rZYkopK^UaOX7^xwFs7wb`i z-pDgqEFy1`hs}%dNBv6Vvg?J06BrXtnIa&KMocQ*OX~>H1k(TMTuZcdQ(W=I8hSDnF6LN4v)U_6raF;aXZwf0(kb5@5C-{6NQIx9{NM&0s()NE<0CyCV?)}< zVk3$F6dVJ<&6y;J-y0O^<&bB6a^(wiJRLmjwLrfZWZw${zjZxFuuq%|TJH}qgT+1#?B%%Jgrdk+Jm>Lu`f&wJ^hx&rha4PeF^jfgZ6&(g_<(Q zOI@UHCPAd>`uZpja*<*C!)IdxAN+$Xu8vrUqie43>_;#I5oMh_c z+dejn3W72$YPuIYo@)nBOY=!I|B$B-dA{Iov;c(qS4pOy&nuk5i^J$G%kGO zyWXF#E5AcrtUG^G6I%vM&Z^9SAFX?W2~Pf54YmjVYF8HV>yFf;2CxJ!Tz>pVhlu^z zU(}l5WZ__k&?IfmsV25?>fj3hrFSFCpyy3O^T9o#x_|>Fh`o~fk+1MHrv9i88J4M_ zxV08}kT={JIf2%|vc(B@%1&@Rusp!>wF%}Z-}T?1sWZtxi4a}^5!jy7WI*6sarB7D zCzlYxCRW31JG5iT9h;mESdB$-#J^DF6JdfR;^UXcN0)vdp}Cr`l0z*O4nGOj4_?wg zB<8uxgAQK$5}KhWwb&^oA(woGmN!cWbyevgX{MjG)7}pcvjuHxFh~*p^O;S#rqP*? z*+Bs(YX8Vo*;GH5Jx^Ua)~8nQeQx?3JH9p97|Q}Uj3{zWHytTyyUW#mT>t!ma<68| z!RvbZ;H{AmZ8!Gh02#J$@;%P) zLhm`&W2M$S{YV51aTT3}o)%=or?iKWGI2jv(5Bt6nnO1WD^-TKj|;A*jLQQ;W}Ti6 zzi(r`)a?aW@hnO0^WL}Mk=D(SnB0fZ*NqzLQad-QCmLR)4yXX zG@6&9CPCqWB6Ukq&h$A)OkrED7Po`w+G|~WSXrD7jagY5V(lm>2-Cvs1=obaB&u7#t+n^rkR+<-A#OS$}B^ zqp@V!8MfC zj_h2r!iVuS0q`j}1cJ_9&*Tr)o=gc|ToLJ@o_0!4exIyIk>2i3OEbKlm2f{{y7l|*K0 z_iRIQ@h*_o<3n}cLg4S5YbJ?%W^W3O^P+RF@qIn^?(wQo?Y?^T7_L-y@Usxp+X7le zw?pf8-~RDNSe_vn47_qH;hrMN&={c4Fel(O09Tb0l+Qzf?u9H^6{(BAqH%i59zgo2 z0WfEJ!yd21HIKV9!%4wzBwAN!x~qrVeQ4DahixM0rocW_IGY>ov)y*?%vN!c8R_?q zjDWHNjy_WZ6UjmqH=QhJ(?iHfZMON=w`F>*7GzhB-FLx>cA_aLbLs@^um*LK0$XhsdE!7)A>lDo@L zD6;lCrKr>tas2UeLDzpEL(5({e^+oR5>XsWfQl=hzZh&?5F8yHonK}4;IM$U5U3<; zqgObqgjRXxMCC;n*Ttv3CyMH&T!!eX4g_Rs|6G+Es}w5Kax>fg+?&~&UpKUlKsjY8 zn4Sy2>(6BPtZ13%zWZ<2)>^9svxXAGIBWc{{`DnBW9#C#Rw!%2AN2B-BK=mK>Kr2bD${##7L>TqDZQH_;$ffnj~-Z=1zB~qK^^8J+nWlxGQjy%LQ7GAX@FX7R}p7rT- zSB=Vw16Fv^_DVmbVBH%3SjfI7zu$q0i-Qs)^uU8}>A1hSHPRyW6xTTAy7L5%&ErQ0 zbKdrfM65p)8(FGd!y&Rkw{=_g*LJIG(Vg}0(T2tfUAr)#%@85UMlvn+9_sd{3M=*A zuS=)Gv&>EwnlRMjw4YWB@wCN0;c5GL_;adWW^B7R(N5GOD1a5_>GtSgKabN&29(-3mr zG`$n`h|}9$_2#11x7NRJOb^yxwCA9&ynplEg!5j8g9m1XtDS_?7*@;4OgEEBb*)|S zDZPws&8IYUHTF#hqDPbtqjw=^RajpJva#i@^pa?~PTYrarFT*@+E{1_t5@vfnd2FL zK29uQxa>IvZJ2RO5#q01#N+i6$K$G}Q8GiA{PFdU%!oc2=#cE_xBOP0F3VDeU9PSfw$;)N zDdC8Vk<}tzjYb=GKeJ}38XXkaFDPKX!>Gl))mbq;IU_aZ4No_dVkr0e6Yud&s5Paw zi5V8(DWO~bcQ}-^wq6Xlqc(?Xu|8ffmsy2FbMxJSWBjWoWm+tCK{?HmOOIRJy~=RX`Q3P} z;pWp&d|}+bMCr+Wa$KhMEpm-@yqV|(x@M11a0Wj*aPRBuxte;O4+LCPJX)xzpdNl(ugiowq98 zQaKq0^X0#^(2 z6=TN!>x&|K02~OOgP*;A5>QqQBuo#D*ts~o{SyTi!psSp;c!s?P(LbOF@R^mml}aD zFafBtY9h7>utQ>2e-Ag%EyhpE2{5z?w=L{kzZQQM)Ye1G2f_RX?px%5UnsT>i9JiR zA*Qtk&!`bG#Ai1B2afHMTSSb;2Q@JwCStL8<9+#u2u?B>IrFvnOf2$J|AVGrzHh(Z)e9fS8Al%;$ok5>{Y&(&uN+-VguMRZ?EC=eYY%v;3EL0^+W(v( z)h0o)AT6xqmdycyqApJPLVY8g`}{4oO|}7Yj4)^W)$cy)3l5=h-ZhKUhs1=+lXzJO zaJ^F^C?C45?Rg1y|M%@-tL}S{n0PQw=|=rWLup)^kJ%RGXwRI@P?_Oz;fQX8#B(rl zi{k%>W$H4Z;h~#ZdtVo04ipky{7jV3>^t#rlwJg%dpTz;H@}@Wo~VwXCMh*OdD0`D zC`G`C%3ka@b`nni%f}K($Ke`_`B@fY{^&Bu<>Kxb>0>&UNaEJ~iX;ONo#|q^PGkt- z9}6Ph48O}ibRKUoGFW$bmkyfzNJIy+WGOsJS5H2P?o7tygIhgVuFl3%GD3^{0qkM|1wH7F3o3l%M?J)ZblB`D%S z{^QMfIw6><49?CtF6?oim5W|XFV-X5kAL{AFL%F_buK@#od??W83^j;mE4&>GT8MH zm^g1RLN1~AJK#*L7R1wHhvH@NUA}V~v;5GNQ$}D9RoRr&HUN+KbMm>L^Gk|_BK%Bw z0SVM!-O6rMn+p`v-}8J-<>N~h=?hH~iv-v8%vlylob=J-79fUoJU1Ob(v(~44u(~6 zZHP!J6;Yv7>4m@_X&`99`M%|z>O#Uoz0|${@*&Q}UUhs3sGc7z{W(P23sDZ%o<*bo zoAbC@d-G;6RecNRU>Cj6bA)ngR{7C<6q@7}DvHxQ5rhdARnAz#1^QN9hdaqf=)Nmh z+Rj}3=-G6Z<9_p$nA*O@hd|RixN`zs4vNmyoJ`hM{>iaB{J+5>un7(MS1Ij8@^AY> z{{9KPl@-pisyPOAJqRHb#O*kQ&{LP_nS46nrqEUHSr4(zzUC0{<5qURM(6|cq(Jy_ zajR&8x?Wdiu4z|#M=No^-YBijR2lzR^%^oJWxU$}f;%3c$)ldTo8K(=Pd*S8_1^#p zC&97`=y<8^_ymuD&1~fS0z3B)Kdx2NOK$a-0vE2Bt(m6!Fb1^mYVe`>E->Z42}FXS zJj(DDfdiK%%pY>U{m2$c>vV++&IOrUa7x8w>lVm>j59HzZ<^v?_id-g546UpKK6pa zSjP9SAy7d+Ujb2XX<(`p)ctml3c*%?W3{_zWO!0=^^ z0nS6W+IgzSe$r#COq@XwCT$<%%@Fe}ySoo#Hi^QFS7a4LZpDznxM38J?)&)a{jV@e znT0qq(J)U^h1Qhg(US$Oi$4+%wxUjV>6R6;xIEW_ob?VJcR0jv2eQBkudsBOfwtnm z8-vxwUYpBPa%ISmfU%BLF)`1m*4brg|Mo?XpPq&zlyo=Oh1&X&iB}N%zD+Y67Df+N>2PNFT=EfTE^a7$&!Bj zM;ndo;W_}%knFYLo?g&+mLhE-LYod*u@y71KKRwN>UBsaIpy2Wri2L9JGir(uJ)7# zRx*A8fKI3Q9?}6E-!z0Z4%0El>f87b}J687y{qo^$*JB)y1tl9fmRPx+#*Vx-dtEjowrC;O%He!D6st`?VaDUjCf`9K#cK%gs;g@E<$elC}-# zkXrT^lBe5y*TUGIZtCY*8Cz)P5mb5h8@**Fp-#tpL9BbswYVw}z4^4sz|34kf)4SL zfr(0s<5-pd;KF0id=M%(9ymLRoSC?@ijmpAyVS3A4pDh|DppyEZE-bO^LWrkpLx%i zqx+@Hq4U~k3YYSaqRa*ZBEW3j9R{If-awZR?EzOit8b4N1IoETY zg&lpRt?taHG4~nwQ150T=SXCt9FNfWik;Mm*^{r;0B@MaQ#+~QdaA)a6%!s)w8$f7 z0W@j=0+zR*4ZhxF)BoHRqro->%!`a$QLJI*uUx5mDdiaPQ5jKGIYtdd%#bMZAcnHO zc<1O{x-Wp~J|A&n?UO?^&0#7lXGhrk{<=6U&nY`z9`J_Bc=nGPB1QbhRy0sW98zZ- zLgoz&ABIi@gX*AIbATDFyMG9E4qzx z1yJjLS1Nc!1Z7W7Cg+MB%ZthT3}Ly=%MRXsXGXQyK1n?x=nW9w0A(qyG`$Z&;^VQ~ z+b92v%z^#I^%7=n=t=Q##&!FkEF3|_Njy^?anv$s$~Ma zVre8i-kFB5-n@ASc_qNc5RxXK27;)F_DHRMITeKr<3NeUMW!HQC8gpFK1XY6hH1ZF zl=*Ua_A(uhyZZs$uyA&6`{#7Bi8N0pRC7I(o$hla*Q`rAlQj@IXsAaZ)QrXoJGsj6 zaqLSP(jHuSck<4e;cEqLcw19gjRN_G%J6@Sc!!3trl@x^iOGi4Cl|yA*3s4}k$~kL zY_b5Gx-sWV+aa-jd?CQDC{?2!tGewt!jCggc_BX+Rt|!HV!)X3vzmVmYcdB^giOs2 zaxR|jDr8$UODZ)UCh%P{_sk!LaE4=m==-_oW9}3;V>8NRcBDvKNC4JyGFwl_0Q?lR zZZXb;Nf8Ns31;AEJ>u|&qf+l#l&3c;`OVPa8^ca2UP%uxYE*XCeDQNQQap`$F%z~} z=tR_?d+qw54>FH3evNt+M&;|F!@@H0zR#%vOZ=?v!NEr;p5`ju=Mp!*07Nq`_DQ8Z z2dW(akW3!|Md89Na*!9R9ajW^<&=Fe_&%L4k7t5+})fD-p`nq6^Tf$?+SZi ztL;BP!@&eC%GixXy{`jB)g^g)WX9aF*I+OAum~4DiO*X1Fh9b!ja~{m?Xz6;Fr%f0 z`Qe9g`75H$N5wCju~TIi80hFE6*2U>Q>ijk%MxU(oE+6<3+MdT9;5habDbq zH1rBc+7p_vT}a(@-V;+$!kBc(T%HS760@F}j11633*4S*9<&X-S>|bT*ot0tg;IeWDN8oa)x~xpleNSC@lLF{rswI!b-h8k zYk@n+%@w=T)?%0Zy8I}uNng}-I6B4;x`IK+J$beJ0%Ukj@BOyKws&2&S=)^K{^d_% zSmF@YjBpl+_^(d-Grg{O8{w-^cyno-Yz2pV0xPI+RdI<6-HE^bX1DosvgGp5Y3%Q4 z@|FO`F1-_2$FdZoq4yA41f-T(lUz~xdvCsOc}MnEZ32$IRz2E{fz!|V##e_e zcDYA~Lb11`){MJ* zk_1gaU%+W@4U^p1J!8QngkU2X^osgFiq1N$sV|J<>teuw0iy?u?vO?{a-&N?q`NyM zHo61`sFVRn7@(+>3Nk{%0s&!!l&B~usHpf8)EA+&3E zqBKcmH8VecZnprLot^*gztf3MqUsJ8qdB0^-Sb5@2PcV{)fp-y<8&0Bo0XlM2zh(2 z(A>{Qex0ye0jn(DwxLHV8sJ&wzfi|H*pyd&qU$#2bqPthG;rQeQL=8;uF%2#SfL+D z+>53}{6B>I%1Z55;Hy74KBl#ZR?J(N*Q!j<`tHy^_2DzXz!U1G)b1`SOOUX+Z6aSV zP)X#-2BtjVk^}K)_HZwe9iU1O7U3VUDkesJI?B7h(hz5XELnph%UM6cROz!^O&dAZr*iZ^}2u0x=Y(@LEwyoy-*IXP7O<5o<7>EPwDF_^8 zefH4#^xqkjhDq5cu6MP+PsVnd zct;9Zeic&xRw&H}03zRQiu$07xt8wn`O%rrCuMI)%_Cn<-c(X=yQ1!Q=RgZvCHci= zJ+OeM5J;L(c>9w28)~r)p04ea1&K|HsA(vJzelSc2=}lQEy!6Oa_{K(b_0sg?&3r3 z&}pt`kl*`YHQ|@EjN6}P8P(NqWULaLUXOJR_HedOXLdSw@9Wgc>~-BtyxAgmz(~Qw z$G-~x6}}A25RhYee(LHVq09#*2NWtCJ{49g@rDsW%95h)FbP~{IqH?X^%)mFRC=jL z(eT|Av!GSQ$|TOpo;?bL4rq!M(?C`$Ez5IN_^u|8>c+>TZJDLLGAX^>qi}WYzOK)| zN^S3TxS?1ty-t>pA}D4OH=nHeWR6c~<5HO}_Wnr9j1HpI&Y3 zp!TWnmJTHj0S&zL#3da%a8kyA-;3k=38z1wq^X*-2A^us4L=`V>a=us=8BxbtX%5X zVeh`TOACFyat%Vw0H!}2_`|X(4l&L8M`SA}EvLR2Wa9C_90AL2EBO)8|BueW!_T=dt!lGFESN2_YLDCY6$$Fq~z|;qvoRr2Ku*~zB zQu#HE#OjE{tcDZrqP>di_;s8}!_ief?nz2jOTE({M06&?8!E$<3$SE!Ch`6-+^GCb z^W*6+<|yX(H>NWvGv=p4yn#-aH-YeRvK9+WZ-W;rc$;t`_1YNF9&CdCPxQ!TlX8Mq zAmhXk^x!3`FSEaI0--93bG8rn*ceodt;J_-0t3t0Jr=3yUamfzaOI?45Av+ZCN@pr zm)Ynmg>(Is6x~16({%fsV7DPXy4O`Ug)MHCzyV+oAlmw^L^eDCB$>92Bd4yb+^Ru~ z1#y05{kJFLSAJt{tVIwH+@Q-CZ6evOpc{)iI~E5#zM~iC`DF+St3;*M66(eVd1;Ax z6s?&vGe@yxa`HLy@sl@bMY3Yfm{rCd?y|AK8%mor9-g48geS7FmdN7E&r>Y;wKVE( z?|v+0O?6=N*k(dEh;}2B3^*Q5u-8jw@Xg9|=SUKVu$xnSxG{R4=ujQors>p_Gt1og z$mxPBe%X7jUxdMydeq#TgNwA>u+yJ`SLdQ3C$%hXM1)-iS*xxZ2sT>Vse2f&Hd2hx z7o*Eda50#2o-eguCPrKa@pmW3A#aN&Q{+_<3o@MjT5=)-qaqgX{^HW$js;5d2Hlpdzkl{<9*A#balu+a1&|dR*DG&DPqP;*G>Yx zk34K0-e^$^9Q2sY0gd{&UB&Va*~(!KV^Q*|Vo=%dJbdP|8$B)(gTve`8{Ud8I@*@* zp{$`PL*)1M&>iGlXwx@OX_iU2Y2e!k>A(FgDd3$4=f!vBUQEAdiN)Otv@qaGrIP9i!EJ~ zOP#9Ro^t^;$pz@koLPN&Gqc@fry*O*eq`(nQkU;;a$+H*VW5#X^G3EtHVpt#ewg{=$$DsR~BOeOWEOSqCHx} zOWk_?+@%@f2WctM-`zCLRj=*T%E%O_cymt)XoZ8+#Ra%O>v2R|Jf)phr#@3vO))a^ zwTQ-$@&ps_CsyWLm~C#t zh6w)>?@3*_awlje+Ho}N#$EnNF-oA$Iu22z*@nUOMu9&*xl6y7+ABx1ki?reSwK`+ z%*J|nebce_qv*CPj_2?>byT0XJpYQfXn&J5smUi&8__lq48^MgQfZK1ZZD^C64`N( zVHD|p4z{xFVV~jMzdLs?r}wOf62YN*YKPyAxNdE-G$Hb$DtC)5&*LKz@OiOo$}^rG zOHuOwNqko_L+eBugt(SA*zI8W1=G5KuQsQ%4zHrlRINtOrH{F%Yf-QK3uU9N1M?kE z0D#W(8Dk}z6Y->4uiy;(mYRU9Z1RP@!?de3Qx;=wXy@04?_ub9UBpW3tJ7>4`4@u? zMGuWd-UDOxKHJ?(RWCl&y8%w%Fn{Y?iRWIZ^3Bt%HT8mE;v*b%kh5{R?VsQ2O*DMx z1kPpTp13O=J!kRwvN1Ii+nm3y>GM4M?&sUHT6(B+UfXligJkiCk4-zjX1W+Dx!^|s z@kM8U)%*=BPQBu|1*td%d4uxHG8h|K)_=x*A|tj`f`83FYVKc8dD-IuKoQ5I|PG4-Jf0$9NxPCfWLkL`_jEd2hSC| zT?W81-~3!2_yt}Z_#^eF$p80~Qm73}?j+i~)I+c1ai-ULB}(pT)x)e`rN7Wzx)U08 z*p8n`f+3`)#;D{`QTbfao)cVwT9>?ZPPpKsu8O)QRmX$r!!@LYPUa9)tW=CcAfgk1ck_gNgr3Gu;6A+X`e6VsdsAFLD_!-)nee$n%R z>oWH}w5Z?Iv3NiEdA^RavRQcq55Z4b5#JmhFd@ay<>!i#mR?*=_)nh6%CPgdRG#NI zW^+Yw^8~+8^TT0gv22yIuwVub$0Io4{-Wz@uXN=waUMFx$+Y}R>`bg^5>tQvNlY(< zAl??-{6|Yri^te6;A*fqS&>Y2#d06z30tL5(Xz&R+z>xsoEgI(Po48p=7C@OoEgz0 zz(fAtfc=fk?1u+^UTQQxbb}C_TN7AQE=~j#4iIW= zWyVhlHrHq=c|FjwjKSAzo`4{IpYIii>06FkR34grIAOrOGjwvM2-RXBe%ZkMVv z@>_2P^W$=_tE2npsj_f3VK0}c(|qHViqb_`T*;8_YO;|GAntP2NLn-EW=hUsJ*h@+ z=Ma_@84+~zGvWlofX7#$k-%XVC-ZUYk)_6nil*Y59!+k|vjEO}slgR)e8vke99Qof zYep`OW?Kbix$SHz6km`L;4r$77L29VTu*5a8Uab#BA$@-9&f4{U1Ln1s$$WB^jvH#axJD4QC?n#XZ(~sWW0U`pqzyHBk;Zo&A@y}HFqnIOCpbW+ssNQL zh)_bm=Z(7s&{uyZQP}i&R53(2Y3Vqs!hZ@c{Rc$*)v1X2~nc z*kREK=?58SA>zRP_<%dOFX;A`Y4Q2X&_3KzZHa-Z5yL&RaMyIxYBNreBmi5RHPzhy z+$l*P`8i7K9mqHGUyE-rdq}gT@(Gxe1MsOi{o=X9F1vM@k@>Z(KkVs> z0(bV`CBM$!g?ue%P+gfP7v9xpZDCxgQx~jda4C81hscf90kfj`KRKwZ&_*`@n9;#% z#8}2r@zvE#^s;mh%C<~eHMjE<= z=XBwTM;m!40QyY0hQJIjS#P10oWdCv&QsD)vHGM-erB5#@2CqpTfUw1#ko%l$v?sm zjK1jLEfm&^^Ta$>V1vAX@MRh4 z=ccyBWIgkvUYkv0VTne-2(VyJ-^T-pA4R$KZWShkOkoju_dI`TxaN&nb%=_5>2fa0 z$V?P+pHJa*?m!`LE6gY~=~31Q@0f+jY~ir`i^3REJw7H~0m6?nXG#7hc+>7Wud`6v z(fcBu0~mC}8fyOi+PY&$zolx*{x9p*&D86U(@V<$^;NB-+4sup+l zy&I=cD=f3zc!lmu@%OGvJW-~s7QuI}h?Ln%vef!M0rs3OZk45Wf^T(ofR%C`#8Z`i ziKu>+-kf<8B5I2jQyfOTDkx5B91(1ldXp_GGc?uq>0H(|lMy4HKS1Iam$Iq*bEBDv z*JFqMN8489-kd;jo!m3D*ZrLeu^Rfd)Toor3e+y5}d^ zbhFPJci%k6NVj;I#s4^)d~=X~2K~NQX3I2rKBHWuE8kp%P6Skho-Fok)E(fM2Ta z7PPh?)3mhtI3H#|zKE%^>lA1x5k34c*`L01Zd}J$S(o1`A7*Cy-cDenYD%1DWK_JM;C(Ey~;gJx0B39#e}|B3NxISV3O4)O@uJP6U1l;!|~i zKkJnhf3$w@q;x^gk}twK~k*+g%rA6GvJ+D3*;iMhr}-@=PObK9Ndq zvuosYB!onv%zk{QPkhPM^2|~I#@dk9+BnT!>gl%g-V~^8BgHKhKib@vMA_ee=mxCK z%!V7tLrl*@ObV=uIi)CGKgI3?M8HSBf4~LZu%XSWSG?!FG^b$dGdEqE&FFfLlb-US zl#JAjRQVtZ^1@{V;*$vqz?Q^Hg^L1EMyK&L9X%0}9$F3p_?S1&pa>3ZY#oN zEE~tGY7B_w5*35)M+7to?8 zG1YvN`!Y%s^r%N@9r~`_)2R#4rTl!(LtZ6A2Rk^jBD=I_pny)CFmi)5micGry+E3O zKTqX1V-O4cHvaO(o!;EyGZM!L4Dp;h@;t1JJnact$l7{uElgOmh~v!2&nJlaTj$$y zpqCrxwCa;{GiJ|7;ZKtI3H73$p^tC`QGYT0pjA^UVy5_L|G=e!l+` zj1_%K`vk8}h3jW|0ReVxm(9~bP|0fc5b6it9uZ8Ua*H~y>x@m3{@;hvqV+8w;~fWP z3LLXwj>;J}jpBs*yGyksK<)kh3NAs(A-L<3LUzdMeu{VMMSPCiZ1WX-mCU6;NMpXg ze?8*aHHG$h*~&R&il#aZ7~{vs|E8t##zx3ru#z&@prO%(X!)S96C|>djU$V(M0HB( z3y-uzWzCsRn&4eTR$aciRfjAs`MPKBIrf){2ZNX8<#(+!waN+Gy3GNGS{Fhk_U_X0 z12f5AeH>}8BDt}wDnPwAU%jfx-XGfO7#4V!BE~dlKW^C2BUcS?rMnF?3}D~#=$GG> z$tJwgmGmR46(59uvWN6Vh+39V-7oBMY^UCBJ%O-6Mo>;`;PZwt%2g(kK0CvTK-%nW zeO#o-z6MM`1ukp!B*G# z2slLmu*ukLj*v3_0U^P3+NI~k2|xf#5KFs8kgfc}U7>N}B0AW-otl6|R`*!3X6P{} zc{?9hiR|QoC|P2F$0^jd5B<4!n1#lE_UN~O>Qe|q0Xz4xW-mSAxJ&UI_X;wMF9r~6 zei<7l&G?ZP2(_HvNvV@)kdr9zPw+z2{24$YE&JT_Bp@5sAU8kUFkzHi<_6KCzA<}T zS_{C}kb>j$1AtJ}H~g3kNcIPssKdB`;1SOa6k_lL_=H6ifVa%=U{nl;6E$JA{A1#Q zm{&7$56iAzhNfDOkp5M>)vDHycqd87fVUksD|*tj2l5YrYI+YWx5Bs@sQlKs{Kj4$ zRL0X93gD12L$^vAZ1szOHN%nFN5jOFo&DGFD4sItMzt}Oysp^Xs&;>vS3~Wnt~8!= zmJiVN(gdFic3=tJezc!sCT6{7CO5Ls`-n$o5qc&`F01uTUENdBw7U9EA+6C+i;><-!vLD^AG^91AIUMcA=JDdF(}KucJN}+qdwAl-t;>6e4UpDx3EpC*VQYi!d4tlMBcY zTxjM5dh-^!X9t_YCC(8!Z?#jeU+dsdN(VYg>Bx8_fRs5#?kfMw=s|j^vJ~TJ7P;su z`3(@*c8nJgNwS?ch$3Hlgv8?uB)mRz@nI=MqK9m~TOE&70@qbdoE1^!c5@Yt&Rbq^ z2V>hb@UwsyhBD-}1I7e{?6HkYwDmd~=`#a@=Hue#HX9_9VTg9>NfkUIj1>#b<_t`_ zrW4Ibn><+EZIE^W%+qipDwKS$qn)V=0dl)~jm5XhU+`^ALBc{^(6)ml7Yj*#fC{Ih znS~*b<(P1M6zwGvhhx~~BaXgh{(gPq^c#M7(XrAzyT{LO{hN$00(sB~4(7R4G^hk% zL%Ld03J?J2P?;ExE#eVAIapamNzdczonoE*pTH@ zQZDz>@>A*2@D>0sK~+_Ui%l$EspXeJV3oA*W{lXr-ueUTI;y>nhf%;$enZah^(^|9 ze4uCUb(WK$w%XBxi%vm;Qq8R#SNn5&+^oax-{!VcAF?h7BV=OBLgcHu8KA)8w@UDK$hcdEt~xL?BZ|6eC_$(e;|RJ0`(=dgE-$3GpR6FG@o~4z8p^EL(rCgkF)z7*7o8KEbgPGmUdnI*FVgcCY-y-Rcc2Z zyUD2oS}SG|6e z(M`b|${SXX+?j8Mwf8w%?Nuc>sKgqx#$SQi`{+yO?(o49qvRy}+*nv$m_Qzg)TZ!$_n;V3gw z;W}L47D|A_6~O)aHC1Je}mWaQf;)Yi$yvMjE0F2Qm^B z#%x`Y&>Wi^x%Iz-v68va(8ZKr@A%6#a2}QSa=LF#zjsdy)1d(BL%Z*(+YY`v$%Zzs zh5xWr=Jp#JS4PQreei`5V#ojT`3t3Te#&CV4c?YiEI?>5z%qKdx;GUh@M3}9_M`T{ zv#J!)` zGK^K_Sd_(pj9X5s&^qxd^ry}tDGT&mLh%^^hUcXSP|@pRGsxp%DB+5|bV6XW_R-$Z z$~p*TT)=Q>jk=(gChUu@KfD#u1KW1AxQ~IOXp_m>dljA#Hd&FdP>h; zBXCs(nZ?xAcNiAiczbS`GurkJhT}tq1^UD}*_ige4Qd9VHI9>mLvoh$6GM|&koX{V zUuW!P=8tO-_8IR$>xb{nQa19%dB%_>gdKo2r+($#;=rS&>v>P{^UkBC3sYiSx}SotvQq97xSPVu@>X-u#)8$OIGA2b47q8#=)kHb^zDflW2$9eT<&9Jem>UJii zrt{|lH9($lzOVtlSK}fa7Y(RwhS66oYYp_nXgT#?;4UDZA_?_v0Oz9+c>ssfNl`%0 zS_dS2v+vz?Yx^x+zbt zamVFO7wxEu(Vm4tLG4&dt`eX-^g1od8uj~5UUaQ~vX7CImPkI(%T zdYnZ*J5yO2%{z5YS_VzE=1ZZwjY-T54H0tg=P26S%GZrvgp#hCkCF!@8VIBBA3T<& zc#jrTQ_7Ki<_5|}wNK+{kK|e-DuAhjc?=b7d2R(3sKp$6WVC^gmp;uS5=uc)U|5Q` zGQ*Q@1|5>t^5h?ct`j`nR>{%jo~!M|OO2lHhB_2)&)uGQYPrlpbIzH|jZzw!teXU> z2zzpTxfE8i+IrN1d~0gB;vNnApzsmG=JDqdYkao?_pFs$@68IVh+h{6NRcL6jA_5D z$o60UIVDqsGG0ficx8)WQ6S{#5Of_Ks`pOOc5(E$X`)E0Qg_lD7Ud4YD7=Ojxu4V|;E)haTO`I|OEax>>Cmp5z&$TygXVINi(zO(MjV(r*RW zYsxpCVUwSYC`H7P7;|(Mkg(cZKr2}8zj!WjItp|$TG~?{3S6YI{{`R_NbH*0_=;Yt zfnCF-O9Sjhx~Lv-s9o{MR8fB5Mk z7etf?Ds8ie+&Ibb0CiKQMpXb-tNfVY>q|SHIye_Hne1qdbFNClK*!`AZ#i8gYHXAe-(sFu^~w ze5G;q1wCp4r;1UH!dke9+R7L~jR=)9l{0Vw7~%A_SOI@zY1EAt=z#4Ly&H!&Dkb!U zVt7e%K}MguR3pagM(cv8c(5o(?$P=405=Vsd!A5eW?M*frvNP4IcOrtIv1TSWP4p> z2(%s>%QVbgz_iTF&5W)a!bGjr=EZRP+2X!I*lnJ1?-k=)1}h<+W87lo$k??EdVK=D zW2FNv&`u|$T^uDemP`l8wn#&tD3rGvP}~3J`8hgTnj}R9Q)A|j#Isk<&z*mL@h+Xe zjbQXSxAb7*U>P#yO!D)?PWZKDvUHOTM7Yi5t1&?u!ze|;kp8hYUT7^xBL22>!UHNs zEcculvMRG&b5s_ARLW*4CbpLr69J`RM9KMt;@dOlmFWeiLBD3us@ogJChVqWs$=*p zGR6ETQqdNcR`@Kms$D$)Y z*<%p`i8>aspjj)9hS}J6|H6*4=)QjYzISvW{rLIoD8lxC|92Gm{v7;0ihlnNS1XPN z*Vf-g>d`IOp4??VzuUGoR>maU>({LD&El0hiJKEYavT(yTdBwLJ3FX4#Krr39x1dE zKZJNFk0Gh?2mn5}RcH5JBMW#~H6#`^e_f1+b)ZsIpK)?av*F5bz`2%Nr!Y`Z|Ad`$ z5aE8>VJv2v&U4c$TK5-ciL%$rVTfTgpTenynGE^FRmfmwT~L&^(>d|J6P8TQRHLT! z&L4NPhkEX|Padv1jnmQLJwOo<7=6?_veBiZspE7w;;1u@M6n!0G%MRtht7^UW=9|5 zF~f5695Y_rG2`PGIA(%E!pBSmf6R_1l{;qg3W~=}N%@!^P3|#M zKcR8VG_{V})NySc-D9YyfASa_5RZi+AbM;zR5tgp*8T*xo!FrGI6pIkzNvvscg3K7pJcD__O3&b5Rryx@us{i z&8YCjnVXs-&QWGl%FtB&nKhmi2Qw)$%AI4lD>e2`bQ0M^*o+cuIG%O?Tw{gjsR*!- z?`LLYs1%t8P%6_ThGa_q)w~~cPJ!%9g0z$(C1h7IP0(9O zE#xkABG6+rleHVDM4E7JhY~O9QalB_j8q)1dU}eP8cRis@^dXrNbod-LmNMcNPITI zEb<0u*DQ!V7B-H*=AQ&(THYZ^Ih#BN=rx@k^$q1#{yCPsp`_2E%3zB<8VEwUsAN+6 zk$P65P->K#U+zGM<~Jp~6bGhD)v_>Ifp;e=n)#8^%WEFlW~sr`oY)q?W39mJ8PA`f zW3R_(1m&A)q&b>h zTWQF@l#T!41*OZU7VTSkq}aJ7YM{(^O_G$2CH0TFm*{@6nxTIn$z>e+=#-K(9jVdt zDk)XTxw%LHW@1Lsjq73a1A5C0lZ2L)hn1Y?!Xx2mjgl+{09;1&Cl4B?M9=g!(eyZD z`$3C;*C=priRP}N={#Xs9g>jpwbSpcnX^I%1?E5!nFwFKdG|A0KyYA`o-4~Od^o;` z>imY~Pf3PJ5|90=ilnkoItqqf!k3ci<&$1{XZ=6X-_#`zK;C|+NV<^|_a%xH6pllY zbgoH+ajK)LYR5RExFHDYRYFJO0jz{6nLYmOE(O_OIcUkDX;JmyH9ZTTpiA=O(@5X{ z?R^QWJktN8E=|sk_8`i%N2h2q9j{2e$j@286-tT!s?b=2fse@n1QV2!2lb{W@l`>& z4pH#gbBfrR>#s}&K^f$rr_+;5V*~S*wmo%zx0ozPc`E}hi$Sf9Z%$iNM6NNwRzCi3 zUqTfQxdm}5y;?1_L2%`)H>tm3N*2fPe5;^unDP@Pm2M4;A)#M>9~c2Z?@(pNO~dy` zjM#yJ>F6O-1sCOBy?E%QYlLF|j~Dg0hOS7gB}yk|DYyY+6^zUOUTsC*>nM)j?Y~42 ztIX6Jk{WI$jAsBDo;w*sD`bxtaQ@Kj&?;9?R)8XK*Pw!*B=aEwkQcJU>S%Mj&oy_& za(Hf%OLlseS8AQ>4UFl>?ypx z2&<nE`p?YVm z&hTrXrOh8-*}q04OR|lFo|KBJrlKQ#iVig^0NZ$;=-gwSFxUIDDBIT$;PIF-U*nWkv9qK8c%Cc>CCZO3w9EIRtKYH=NOo!K` zri0|rQbMDd-7Wz%qPj}Re;(KJ zB3Kd=u>R>7VW3rSP7{YnYL=Im+L1SZK@d#v;sASv8*;Mb`8G$j46^$?Axcj8b~P3K zwYf23G3o~P$TA*S1IoO!OM`NQie#WXv`V^89UJ{aprZ_OR&R3yb9$LvvAQd|Heoyh#d2}sqZ9a#1Z=8RKmZ9euk18Z8I}7eTaowUyl(05K$B~4#MxbYqhlzvbeNbY zzp9p3yCP4EVUs7u+=q)CV&w5Lobs3$ZCt_@PakGeP~969!XkC67`TO^LSz4E*q7=B zE$tWn%Et(t(|b0C!!2X6($B{3zrkRZ@-T&8GT8SHCF{(wPj3u|XCEbhbpNzBTx2LAr% zQwEcZ@T8?@-AG09ytQ!SG+ceAuEu{_z4hSwYnSV7!7mm~+ZWiW^bO%lJ?X>WYa&CB z@)gjtiTQI(cyGj%vapQq_F9`$5kbAP|4uaTdO zK;OP>Ue5)7Z+lL??0BIoBP;f^OwMo~;5$VB0I4Z%hs-o0Zv{j2NH$A+5vHv3on*HHm z18S+oCT`woer6xHSDb^hTK{TauYGF7f^kY^<6g7tdSep!i07+K{BV=f_@n>F_H%9Wx-*s&m+k$ra zq8lX39{!gDDq%vw69|@}M{GUn7NSv6kzkD^Dvw=wzWVP1`IQI+iKR1Kp8UqpBPwie zqH@;vMF;mY;28J4_j)U63{7t1$}Hx2S9Esi;Zk-jlaR*6F+YjEC!!XAnlr{-npq=j z$dK*+s%Sr0^;0wRIiN9dZcrrmDF5O&F^q7Q^QH+J8PVc4 z-xRWG{&RZ>_)z87R+yJgM&{ft+Ul!J&T>*0%{23A#-o5CotX#jh{eR{TCF_@$MI)Apy>B~oRM|2$cY?g(!7qU^;vdm~W_$8EKn}YVXfT{_tv2Kj$fKUV?k{EMlXDzJ zMzCFwqBde`G%eEf?RXA>mm8R8g;Ru{D=7V4(ko}EuL&qr6qs+UA6*e^-1-r%d5{h02nn+ zjN1@VyH$|`9Z>WxzFbb;C+*D!Yp|iBG%o=P5-&TXl94yGLY5}7xoHpJ##gYSZkboV zHr|u4RPv6_y+eF0SZu|GZEqifh@DAQt#iq6)Lk}J&Z0mb`H&t&Q$OLc(mW3;Owhy5 zh}DNG=Nki78aZ41_RQay+z4Xa)V>ETZn?F>wS~TY|cgT zeW1(Ahd4H=`@m#0)oEKjNySwY?X6%4N`^eLd!wWfVAygA@8W%C;%YvqY~zP3IOs|% z90X47oP<$WCO3f8>3X=zZ~P+J3onHmX*aAf6FqpdOM*!DpLAUC)H*WiY)4%oAOg#m z4|2ImSw@}W7bl|%9JE5~dEq_nK)N{VF6x2b=9i}Bc7}NkdGmb?D%sfJLxdb!w_dpPYNgx+ z_e}v}FsZs~UHBhIC5x`Dyb9>nPd7SZ>n*DyN_0bewK+2pFck&y9@jm|@Ur4-vuhtX zQNZIk>Vd7FJk{*D+C{RChj4CzobsYMuYxW~aj%^oQTQ#Jrw4$^vbVCTpQyJ~t?y~U z14=^srl?ndnO35L@AHfh*rq)9wO;ZI!X)R9IHU??%{BG{?}6yK4ZpP#v3dwea|SlW z-O+7zzk8a{S3jIN3OK(Mw&FEILqC{N5}33IXLRcU&twj&+;KR;tM}PL*ecR7-e1Yt z->)UDyfP@>G$t5O>K!-tc!OZ>ZR+pS?;Q&MM(v1EB1Od{CoY7BLq&MPJmUlB#w#!V z^pD!H@wJXjV2I1;8T_B7z`B{ulnV-_V8g9w58{Uvm!4 z!XkaV!}iu+YJ+{R+5I4y-|Y_h_tq4wsH{S%mx{1805DQVxfHzLs}6c5u+|l__nV)H zqUITGtT^FhARNX#w`{!2PB}VOyBh%Sm1{33BB#~Iy@+z!S2h&ZZV$|P?!oS{)Q;m# z-ibEWcChj%=u)0%2rxP1$}*(DXPDikb)7$lwou}(sRE>@+0v~)Ru>?o8@3-o=&Vwx z@fOqqsd2%Tlx4XW)~Mx$yoIeFW`9ki`q>PLzCShkP!C7*ZnWwQQ?@NIB{K*o!SZi= z)dORnx1)Q7tOfR5bCpe#je0E%K}(DFk(Il!HR7Jm;+6`|kEIm!k|M{r7sX?QbLa)G zHEYi5%0@TjDqNF(?*e9(4L6A(Guku({k{ql9m3DhiSP6+B{R1>M+(rgw!zc^T+YQD zIX-PaOQQ)by3s}1k-4qcGqMbz@~oFyz0keaj-H18fE%6@SviMFSCimH>NOTl$-j$c zPH;kpEI3Hpmo}cfJ*{sWQTQQ#Pw#ma`Kpo}Bs@?0a|qXBUY}IsR{<{Jc!>iG_IQ*T z&s^5Tp~>1y`>l(ElO^^(I$lC6D4 zMxVy%#8cM1mew)l(^pTKnb;aRW@wF5Y@AGtk`T7C?sL*;(=wZjoNaYVp(h${*j4U= zbr_IBepuCMhFWdpNFlB+Fa-5oy~)abL5r5~cNB*dC;zod*VPdgJ6jjs@kHD7Zg3)B z$(JoDMR7h;W5iD^4^{8s{F&=A4qFJjH{HuQ@#S|keLuko7bvR|`6g>(r@>pdGVetx z_sV!I(R;Dd@XY|1o~576`Uy@o?Ay;!5p9NW%(Yy%X=cd0vbTqmG4f*&QeP(AyT z97yX#@HJtf6o3!Z2$%Eh`TYwziaBw8wt)*?l%=0`OXI#H^z4tOTMVG9OEE4@614&) zS?cdFfc8rErvw3avoh~7@7ZjNl##q+5y}8+HZ13qLC`?{sYaZHL{)&)2)^^f>_51Q zxmOU^xF)+A72xBR;dQv3h#m)4Z>Mf=2Y$BQoteXb77=g)RwFFW{gM3rb7U0p?# zXDRWGY7V*DHijK5-y~B94D#|d^8U}rA?bnp-!Ls|DP4WXCO)oJOKWAxhc^fP&pF7z zb%uxo*mUa@0YMT0UFso3lkc2_qu*z*-m#+#7#Y(`ehmzLAY$=^6ZtG?pcSrS1w0Mj+L6F>!9w89|<(kh8Jz2qE>I0+?K=obc8ELq| z3~Dz_j~goUEmuyN8>MXO#n+#^(kStJK@>R;Igj9W;kUiTt4EhR>%B9#8?+<1Iaaot zw3CMfRpW0I4}L~Syogg|35w-{BuvYPB?J@|JKW|qz$phU**Vm+^9FR!POWLMiReY# z_v@t$hOq?1MLoS8{I>26f(M3X1|X7ARE*wr!S1Qk`5&;m!DlGKnh3UG3Uc%YDQCf% zJ`ci^ia{)-t#(ua!vQ~eGN|<|J*o@rSbhQF46oPi5eid;C5EfQSwEB78+hdC*CP<- zF8pQe@|}0ZecDK!uqG~O(_i3Aeg~LE=j&ruBzn69oqQlURHf(SiFix3lFJFf5 z!C{m8|EK8Q3S+c zZ(@?n?szRHNao-%(lny0^2bodblFTsc+0 z?gLR07!M6F{2k>ls{C*~h#EB33J z(hCI?hj}l=XdC>1_qr>of&(55-3)_>SIOoc+O`dTUalCt?NA%Y%Yg?dm$=swSN3a^ zl%&=&!x(PIB<=4F;@;w3B^d`FYzrLXzf>_(1iH5cSwgfDv>xFj#7zR5pcOfCr!zF} zJiaHXaUh>ZTFP=~HRAqZY`gFBf@pX%FY`z78b+hUL5ZBq)LVN^IUYNv&YSqwMd4u3 zqv+ZMMu$dL_vA;f;%}RvtlSm=Wv(fe`@t%n9 zpP_TtWsPMbRREsKx;Ib|5Zv#-oDh70%R%8EmorzEE3v;(TfLs>pD$uT*IdlR31Dw6 zghV!v?&@oFUn7qrWOcyx*dW;-tkE+-9yiLVuU6WB)eN#@kjBH z1o?P;!xQ|2uUfwj+e;qPBkCpsPzFhpCf^U8t#@vMi^K)*d9B5WE!qV&DpneFU$4B6v^N#~(B-}pa1_i$ z4Q($)G7$JE_lNJyusqiL=Il8Lurwf&0MQL||LE*U#Q)GTe?&|p4<@Z;H&O;h%AFPA zUigeK)#i*RY^*2>N2-3$7QbvDJAp8bb(1@M62s!2NR@8G{2KT??2NsLzzhL7ZVQmT zK_Buj>V)kcNry;f?rRh*lMxhQHiK8|q$s7R5NNRQmJ7eE>b3icFRI!wm==olq5wjc zkyOxE;zdW*j;l(f<60z^VuvIY6-JmB%fs$2+X`Va&TrkN-jo>7X((P}y<`NQ=1w5b z3HzW$^4*E4LFrBeBAVc?!B!caR7M472e!BbC0ynzTV^LSRYswF`NVy4rBBNDU{9HS?aH znb}Sw>-^xzdX^md@_36rh7dx$oYFqsm~mxrPU>y{KV|ycc)Nkrb?~=?K0@|B5o*TF zO#Wo*?pporkc!JazGp zreV@>l^j;u>J>UCr^zInpJNVktpi@)oqBri^ko>oHd7-Iwt!e;756J^3Y_2;r^GS# z=f+{=yuv0O2!K{d(|04zf1y=4VX&o;AK)jKy`!A+IQ(knu8(LJCS(i^PP%rW)G5%; zfOh>u;2Y@29zc_^I@v?K#dSu{?y}k^>YTj+dEY_mws8jyCs)taU>*Jf>5f@8-=2vT zQ?(!W$rO7heROitZ`^T#h}@$|d`M1k4+;sSMQ7{RSnu}{?lRv-S>+nPjAZ(LFqUN- zgG@^~kQBt(9B>lNxbmV$k*0$)M1C5HH)qf`vR&Pq=%yuTSeU)`|J~Qf#OF8!M8=!DGLas_O8Mh z4Pt$yRv$PU%KF?Rv!ntTS0>!by>V1U5#|*Qb+v1(cmgj*xT<^tXe~^e!p)IAVPZ@l zCpvbT)n=yo9j;As{J`JTMSKm7r|7a6#Q#lvLcy?}Y_X&JDV>t3aJeGwcaiU$_ zao0LtGb4dxAvOiQ3OWz0^LG&e{g?UD?l^lD15CxQbKlzhv=qQ`hn=lE>T#0;<<0{* zs`f!dsa-2cg5+zCwBw0a38{C2_h(b3N^G34+92(cwtt-Q`r|amCx;sm<=>UM1WCJK zf2-df7A^?jtETvv6H#t&Ok86*aVLDaCbVEup6joOcy#sUGiz=Z2@`+PFVWGTbg8Bf zrxg;K!Fp*Jem!6M;sFHX-+R+rf$gH@#(mMgkD=`>Zdf#3-jx~!r|U4Z>Ma$J-uBUq z-Kwo-j0)A3C1TH$DCyr<7jAFuH>=BEUPAEHBN~=zr#EM3B@*A#UaoQocGJ_H#q!DQ z^mzIv2z%JmR-)kW7)+f2`_#Lm^nQ#-@R+VVgO~FF!h_NbTZF}#fj6O$Tyuu zho0^JFh)(tw(p&I9cSX=uf&(>*Q%RIL0Y=E7k~0qeWU)u5;XB^|_KN`$fi6`XGe;tlVyYEKxo9?z z_-qu-)lU)>=W%D#Prx?+X~;1(Q}CHXrrfYXNG;!tI4EI^l(bVffdgMH68GMiK8N?i zSR3f?%TB(d@utppq7|1C*3z1A)0Vs^Ma)13g!}JWn<+;+@E99a(JHg7;_nf?3oxn7 z=RlG3}T^ma+J*;e$_66aJ> z!#l^C%*?$xIm^No+?V?~?4t9?H~e9z0=UtLQ!30yk&;2p-QV zeEDdX-)i=em0sqnQJvR?$~xq?ku7WZ@J%7~|XtE#@XVE2G>1JB5F%&01 zH+XiwqK#ktqNvdA+!}k$toZ$M0vSf%sG@J2v`m9oZ>MQq#4mc|$TextBg6VZmu_P8 zM>pa!`|sX!O&B@XroN;s%anW>=B8|JvTg-lFK3IMKl0?;I4Kvg2VVd<7Hmpk1JME_ zHF^FxmPG$r*N7E~E=aRIxpyBO$A~Hwxr=@+vd4%SC!rin*zuTC|2`0pXj*CBOuVN~ z3@5xGJ|ji+pck!(m!gPkP%OpKaeWW>mZBQ{VuTEaQ1dQhVoI{w-GMF(Whg688;tH> z3QEhTKkxoOvAC!H+^lb_kkilx~IGc#Mz`>IO?lVo}lY7BcYHI z?id@t5A-CI`?xFl@hY5(gA!%{Y~p*D!8~=9&)?n<<*Hg5Iyz>IZ_wVR<2xh<_7_9_ zj|S$raaTd9bTPskz;C(klO$X8-`e1vmA~jlKOQ@ZCys^DMzFKme_#+@Lv@hmI^{&0iYd*`&H>J~>N%~Vo9hIb`xl5-rvOr{EI2@Xe@v0vUi|} zh-TlSiF+?MU5WFhz{Q*ZECtxA)5h)Jh>u(L?JJnob6 z`XTaZ9<4KG`SQm8%4;Ze{83sC<8dQrMrM!7k>}8%Kl|6!GgDW^88hA0lt}#}n>4gM zww{zz=QHeY$cmo02lFv1*%|d*X?`R`bOkl7JtOoSdYmdo&OC63{auXW{K;6h%Dszy zNh)pr;5F6O1Xv;NSK`Rq^B$so%}07zKCM@#lvm9l_w5v!sU;%8fJ59t3mSoQw)Lzw zSsfpeZha4vtBMrg(<7WM;li%lk|{R9@?VllhcAq(v&yhcwsZcrNGuVw~1mUz_areQd`hI+Tgg+}+I{WhDZxP__ zj%LYeaJ_uZQe}IKb{lc3aU0YCb8F&Xva@-+2j)OH+HKv3{f_vU|4*jcT?3}uU*SgF z^0`Se+y38jInzW*q=HY$bhqS3sgl|UgVgjU1?NmSg7GXu@*foa635K?gKn(75#TlS z2c&PTzu!rMeY)VPgQVQ-`Qz1Wc}q>&_+|&Om|^nR$T37W{6`gW!gS-Ky-Hc%s7%?A zXoVM_JJ}IUQ60&I4w))A)j&hn;~mVIgAM~RTArLU@MJ~Q zRoaz-{W4@8N>UTKD| ztA!2Xyl#-^6WuMrtT@eAp3_}@W)J(0dc-*iVJrb1aOL>ZB z>_=xlA$Ef8Ca=Q{3ez#dpXm}{BQyj|HT_g{f_uMAi|*oboJMKo`|27X^Fdv8;x{b~ zw8J>Z-{%Zb=`&7kP_bwbj9AtHG(Y-)R)(=`w8Pvc@Eg^#0O$Fbs(dr^>~nR8>#ou4 z+Ckr7kSZIIW%2_uGWa ziSg3tmi^2-H%Je;1xbEerxNCb7_cU~O}A;+8`oMNXjmxp$Np?qVH&;JvUJ=YB^ju8 zNNhRRSE9G}`QM?H3DifbIX+tUR@t@H@;%c(Zxxh6w;8+2Dw}P;JT?z^B%s4D>YjDW zLVmMZfG9qXClzw{Y~a6H`73LqD8&Ls@H?XGBCh$1O_r^H^n#VEf1}RkrBs_@Z6?y1 zcH|lX1#BAJK)4Swiu))lgXE|2rP-;F)T$u$oDug21Lpl^AzI!XeZo$sQfv7m9Ip+M zAbs6uXyEpL@h4RH?1`=xzcOsmM%&^ouy@^4ZZ7-4qeFLgI=79iLwrR@!&?=ns#s5} zZ@RtoEg*eBX;&*u=3%MroTxzDxgq&!$5!?p*_%oS5PMI*4I5c5S6Ed{2MsC;!hCz8 zr^H2{{qNn8p|tBK4G6#w77(zbR+bI#hQ-&P=La*=sIb$H|9lTqLFIh&}v3 zHD6vR(7ESr?0IsVXS|=BTA0{i3WlFLETz4?iBGt7H1-R}MS}n41CouKN&b?P+3InZ zNhzLtPhLvk#q+Xr$b4T?4=>uKLgAyJzkPS0C2+)1Gv~K?%|Ag0wJutd;9p~c9A22S z10R6)T`ed)aFV|k^Qo|d>S>x*?uw%5)6yMfa0MI0l_c(+Wxny9ypVV1rc~buh3x>Q zZuE^)THPGu(PMi}Dg8=0Jbb}ss+M@~jk``-?9$`-Kh*wo)t?3<>w2*XM$M__YCExK z%a^$~3RD=+_f{N51G&G?r*|AsDYpjhEta6UroF(n0!XLAC)jAF=uY+s64}NJfKX$W zuZ_xjFc^lDJ~wYso1vn-J}hOC)>w2{6ZvA*n$u){!9G*^eu3(M<|PsBn8NaMBVYvo zN9+2bdf3^;|I7&?p#5*3N6mZM?~v?7`~~BqIN3aaDR9VPQAW=K^|B#gbEQo#PVXkV zO9tzG7zg+Wk?`z0PD}9CkrS-_ZfP%(-W93}#G*!;WQF$rpuc)kq%Dy68>iUq zMtCn?A3WF(tXXHzDL1o?B^ltD1(L0RleU#J1r5RK76XtfX1jgU72V;+1{`k;xh7GL z*)GK>K>hc@GRif`Y9y5y|NWD~td`Q{#!Hi6TV{+@TwIf}ji3m&PB5@Q-qmku$Jy(E zR4%5W6pXJsMpa+Rt$o&@NS)s$gHooQl73(i$aPIhr(sJDJV?<~*a5gD6x7xnq|v83 zzaUE5FR$Wyc~S_ZRy}z-2k7e(f8Q6wdK#hlW^`PY>UBI!*A;%3g7xyCHXN5(zrs6q z8@1+ed-bMcWL=ae&de`eC7waM1w!q~lYwy&sB*zUT^~+mj!_X|gg*ECd@HHgj^&c2 zGddD?COh06dFXq7RYZpqQtH~(7M-WGe<0E7iRFHp4a?H5brx1QxA`-cRgz;v7MCy4w5c1%rKzcYj{`pF{iGSFJ zG?KD>pv-aYbVXFdkmt^=3Ev|ilZD_;p< zojT;bqAj?e*-k-;iGG+wAgHG~bq;TfO+XL5AY}j>7-n+K}!!O{lqUVsTL&MuxqGJ5@ASFEtad*Bp0*I zv>I*gRr9lc6UT}_7G$g`e5^=SyUsyG@&4OR6DO82W50Y^Vu`ORMEz9vXS=@`w++h%qDc$28TC6S*nvEsb zPz~R3zm%;q_hxj}SaK1URL!6KI$sVkV=dmPX-LwFkV_2=l3#^h!jdFbp%|@EaSTkX^5U6PoN$0%Gf=!TX+D2!FB94!E zJzPn`o=F|M56Kxk{Uc0h<;wUf-u!6GyoRuM_KAt=X%_OsA0__hKr>{xxrfWE;k}6X zWLo2Mwo_UcIOf6>;r49n7w`h`%2h~?`l&ToUbQYH7SnA2knZ5DUK}VNh(>;AjAbdh zj-9n?8L_HoBILjvV3L^7)5+CA<04!ya`~ow8HHS%tU3RySgo*NcxA-t_-UL+zW=lN zW<2)pgmt^cP-;-t%G)Q_E$62ZlMt{*>0zSFzz(NVQANWSoRNYhKjWl}^{0U*h2)U{FgEwwz@?7%GY2J(WO7&yr}Fedn!d2Z(T#44Za3ukzkZLz<-jgMp*7mKlLEaQlJtB?6*; z78k0&`-MIEteG1Y;CY7bBk{4A*r9qry|>BshV|1~ zyu6u{ACr}E3gh_{U}faa;RyVW-R^3;wA)B8hGn1B1Z%d2N5x06mH-J%aR<1f!suUR zrA$TtuuQZStnvlW5oKoDN&Lk`;(5s1I?edXzm7L(*?FD1GG!`&bY;d*)z~TtfwOCa z@ZuO;==8yGwCy-TQG!VR|70IUmpV6%HZ-P*+oiWHR@o-P^*A0l0>5jIs}AGTySX0g z4rseSLLQcKKxJ0mRB!P!G_0L|$Bug*P|TjAIsN~v+nFs>s{+VZHdZYLh~1aIQuZC- zb~(t5sF!~-%Eg@UnN^_-*Na}$v5$$B6TCW7>;il|?BoC(eRye0R<}2^wNj3Jm0Y7} ze3@VaxVG;rhuX`h$bC6$#*+kK@PXz~>qf3@))Y~K<_MB`baVTpM^uI_P!<97Gtycn zcz&IHm~CO_pWS-2nC?K*)zu#Tswzz;3th(@QcHcIWLD5y}8ya z%~_^;djZ^X#}2rtn}4H;X-tRpU!k(CJHBT{jY9Nq{@JY+D?Oe{d zpO>GV`wyz(QRtn2T~EliN>Gm?^-^W7Z7vfAz#rgNx)7;_I#}Gx%!5F2pXkKhSjZwO zzT-?psf33S2(OE`{9;uVaq@B!xXkDYM}JBYGOqynZV7Y$Iz)jrqqjr##OmEO z9Q<2}ZEj{O7Co$2l`_xudg56+f-QV5<8WVzxS}%0#M#t3=c^?^Set4A=FC7Ls>85; zq3C0(+@|oBY<^*VJwLM6`b*T0JI5{4W6Dx%7;n!VNuW3VychhJa-V1VPi42H1n(Co@(2{<_133>e^LwB z795gpg5Rx*9rACMUa|>+|AOWd7;jcJv@V=j!fE0r`yENNlcm1ZolKM#atNqmNe=aT z-S>Q&3aNbP3J*j@7vd?Gvc8ywAq3`;_!qTjrz-|e^Z&QGU#VR1K7k5m_MU!H> zFm(unXf4#msaSjQmK*T(v$*^m0u%J%$hEElfRVgS7ro8rX?4%Kt25hjV0)gU%IjPU zWV<0>=pPWTd98d+ZC}!Fv|&4)+?BHQ+xQac)QRT~ zhsYE2qc-uTFpE*<7jBq+XiSx85wNE!95D&!`%tAG@OUp%KF?|eFg;}LE>d@3E$6yB z(b1eSH{YUm;rv;k1*2By@G}1w+HEi$h!n$A6E7Ke+0tF$DSy^0*R>%1c?eL5ox@tPPo{MMl zAD6HDrRdfUw22s*4<@j*L2duHTV<{XR(;O2e08wrKS*$s1lHyOuF7E_%^+S5KdKB@cY>Gvy|Z-oOxn*h?S;UD9H zz@er;6JKR=`-iKpY%{Q8)bza?yq|#c#OXVh*@}KKH69A{uxH#ocYns8es^oZUm;*$ z4?K``=6y44>v!f}Rzg)lXTlrl^juDdd68qA-URlv-D2BRaJ=gA1v@Zkl(>tivko;U z^4wPtZ9pX+p4^~C{?A5K#iO*g_VN$x2c5A$;s9@h6cERsggpl5I-ZI*KCWRi9-zYr zOR+oF%me~^q9>)#?$zYds`aN<#VF=W0>uYyAdk;gapsK~jmufdV|IpMPJO+YSXIc< z9n)ene}{BS*Td7VWLYrCPq7p&ZtiC_#C4lx_uDDUVBF~U0rr+tH}ANYWZqU!{a!cq zWU8pDuI_Mc`j~n^b@l9qdeSI8e|C>RysB_aU<@t8mXhWp$_k%*?E3VfnPNHK1}j+K z8Imt9mgrXPmJ~PLip?M8w85X-U6yxjP1DVvWRt^ali9=DYHD8cVnYMM58yWBDyt1) z8^(UR8d5b8WfkyY+hY5NeH%_>1J}~6A)Ilt`Uts{VHT5OQui5_*sRLJOBqEVwLS61lQbQM`yEfbHCZLEh4HeK3ymP24pIH8Ly4$wa@P!J|@*5mC3|{nh(qnVE$a@BttsPJKGcHTaApyc~q=~h+RNlib2Z;a&b&>lBeh@D-&=D|qvLk>7kJF7;JCnCME2PHvK`9RW(V})FibP$!``bNL@e$6c2f1N|TzWN=) zJNlu5Jj{FCK*fb%+}fp=_n=fB?N@ohP#&et?zfhtUr|aD=_7s%si277Lm=YX#qoJBbM*w znO6@dB6iCUrLsqz4+PtbLphKS{#{}_Q0j+;La+qrzJq&zW|rK2jk5oq&kjVfBf#8; zb{K3=P!tuRp(DwV!ud_w%uMeA@}c}XQzwEmW^ zjgdzX+2IwoRUxA@f0vgPYE4)cfR7BB1gd6SZP6RqT!Nla;A0`vF#_^iXq){LSuYn)c7T`1R}cH)8m%)@97cxMM&6sQQ_myi?`NJ4g|Ph zz5#3l4ePNNskV04Tr{Vga%X4l-NXnYm*#q3io)TTJL+=?MVpuhxx7G^64!WvhlA+* z(oa^jx*?TNi~9SVEw<||9r8`z7;12wb8RjEgdOC^&|XUg5)B`93#h6ob8zbO>3vdh z2gge`Gmtm)&G)Q(tJ{HoTv~dvrs5D1)4IIMdhLPv+RTl=^4TB))_KMyVN_zhec!K? z;#d%0^a%BSeq|GwUHke3uUDXYF*V9Y6V_+gl36aGB8z~+hKYx(8etcWnS#dG9L&!8 z^a7k|7QZ$V_$P>Xxx`^YZ}y(5q5Q7OgdjOdp_sJfaQf0Ky>gn}%HE-F{!6<_Fg^AtFG?4oGglrixvE$j zXi80gATt)J6me$(GS5~~oPM3isoILV{W=WA_2@5aa@~E5sil9z*6#07uA9q<-(IF8 zaZEk1#fuN9Ydo>9X8hhq#BN;nYlKDuomAaZFp_6EAm`>j&8K=yInP#I z2wgo;u660V^XfvXTCA!Sc-N)iJ(7N_7Wp$R+Nf4XnKiENOLWw#%%g&9F5;c?g?h z0n5kmI@zgHy$*>@R8^3fQhR!t%Y`TRR<(8v;eY+s{MOdxa3O}A^>WU6f!+RMjD{ zW@u^QsSon3xY%HFfvR0=4ZHaHf1t{Xi^~$CTQG99Nc|w#!R8v<`hwRGb zqgEAO2MrMeb53pKPt4i6M6A10Cx@X8f(F+38ppuC?3-o`qs9hJ=FtWG z@`%s_xYWCpe5AH5XJ9F1Hgq;-(fEv?S&r$%5wc%S7l4DBteHNIo@i}mhOrKQGB1Pc zqoGWr z!v{IR3sN^d?;K|0t;QgYdaC|CPZSXz1dGT~^u*(b#Y-)YgFG~~Z##nZc4&w(nx{KD z>NJRzxXVeceypH?0txB=veB>@zt@8SgM|-XU5Z#0dF98@QJ^wm1LH-Fz3wUD*|d#k z`h*#5$7=wp>rKy3Zr{>xT<;ZN-vF@VHl*NJO-rSXnYLs%z}(^|@xDR~yX{uV-nQF7 zn*M)8Y-A zqMP!9T57a8p`M0#{at7{dfOe>8<-lRI_Zq0YpfWif;C7oL}G4u=<<+EyOn) z&brkWsK1Px1!rKyX?CfolZZRN`w{IC1)6JXqkB}7F%g(=K73VufeCeRnb6Jb>;^){ zp#}l^_-KQHq(0HkHo7Z9Grwei%y z6O+@U$>c{V3(psZ_OPJfAxU4onZ~Tx%%R5v5O_k|!m?OXuxzOSSFHNwIyChtO1A#M z-kNPxDZ{+P)!f>eRx!X>%&Y5TKWX$+)V(5G7UJH3;=ndZ(@ zpckm~YLS7f_BAf5#cmw^7)J4y68U!H*$L~~O}!A5-Zv|P!2aA}Feg3qc&@LX*B;_7 zJErXtK^)`k{esuPJseB>@%xkMX@{!KjpmJaHL!t>c}R!P*I!w|&@zn(xUIIaK<(>Qyv3B3%QVKHr9;1WJgR@UrBU>BwedRfAAa{z z=bSZZ4>QcA#jR&Bt8|fAp13xYA*t3v>0j=tIvLc-5Q%(51yxr2SK3<$JXN`JpG0bS zJvs&ueyE4TwBtx7?;8@nqBLpETo{1rt9aOjI&gGzG*2A9DWc`v0Rk7>-qed5+@r6_B#O`khJ=nB?{{0P zRr{4|PS`KAsvA>qWUih1!*{o0V7x$%4OcbqtJDJ1v@QR5GD*UD5!mY2mr$!$yX zOL7bEdqjIjLl!8u(12vgKmZyqJ!jy=xIgn3L)$G-#-tKw|K`ydpdo zCL*ZHlo$JuU1uy^UvwNY1~_rFB-su&S~n~0N+^iV3z!qF@1cZXVt~boz@n#znIqdo z)t4om_<~d3`JTf3*ZjWeSi`;ikO|mL`S>qI!>xpgSf*pWyy5HCSqP@grttPb87;(@ zMJF5ePd9;NN_W){1*USbJvCyJ%&@uvIyYe~C;-0VqLx3^63vSp&T|xo=ofez1^SSz z4m}9f&81i2`t76f7D%N)1AD3|BI%Qu?%$NG6WHBbgR+5PT6+UE44iq)$br%5fDgJn z-CfcM1RCuie*EZ->Tqwsw*a`|*v-EM4h7n;cae8QP3yuD;>5HDUxl5ZEhwKXUTf{b zD4?CNXLtRz3u{||bF>_fQv*{Td`9n31?DB0B5tO^YqMDz#BH??)ILm;d`ytGU!GmEKgdOBH*m-hLg?-()U1QkYG*u+ULed z7SSpBz@Eqp9hV-YBp6AyDZs(SuJ#T@@}uzZKkdNRf|qn3cPBw9y$E7ET1H1NKdkV4phT+eBVL zUH-{xPD!z}E@RB$#eFsT|kG^HPZF9lNY32v;Fb;yAIh`7+&CpysXOyE`_aog|`Ka;fm@Rt$J9o>2N!q z+i7fd@8^N|I={Bx>)Ba5Ol8E1sDb)M)XTcfv8Y0>EH5<-p-%~RE%nAP2SuA5pua?; z%ua;i0$olVqr570Un&6FlRm$U15lsaO`H#wJtn4tG1K)O%|mg1mVJegGzE}{Wiq2` zB1Ad9+A@v=S%T<>|lV5Xb$a8Kwczekg{vJK!F4rdMkYW9F1d z(}{|6=CYXT+nUKlP0Xo=fw=CL6Z`0#f)niq4-l&p|tKxs*3>;W&&Mq3x;CQyY3FdXn zXQ%kRPwItHF%rOlO5cGN7jH=!|GX*;vSC2_WTcJolz?Zn(_bFgc+li_d{t3Qn_W)N z{M}pDH-Pi(s?Q9-khrB%{2-0bZ%jCglK-bs>Fu4+*=$WvLQ;CFU>D3^j5=W z1SJtmC5`lDY$J#R+Ui?lh;IctA4eg8JudsXH22K?UdcOhY3|)B=1`SHyfvMfm`#kl zQ4h?EF>V2*Tmu}Dw+iSSe`fl> zAoJeR@;;#UID?V|v85l=P=8^K>prjf9Ss7=HsDy^pEl{bt+_T>*eYIU1uI1LW6RE& zfQ9TsGN|Vn-JRRg;9uZpNBu$Q=h~iNWgRtf3z1-l`h@S?=sUvc&Q*LzIDMNdZXqtg z8|Gj!x0UN0URaigTid>jL;1MNI6E0IKHlEwj%eF4HJ-?gJZyui&CeC#!_9%K;2N>P zeH966vTfkk&jHM(A?7Fur;VAAxp`!)_rk2zwAruJ)r0;QsIU-m#P)M+V66G=zCL$h zfj=(){?&qq4zRtpZ_?UZ9jqzOP#?dW{^A^PO_kM9EFX1FyZB7PPeIyGa(Spk#!PxJ z8Rg{6nyBXooC_9eyYu^Wru#odtbbM7iNK5V2E<%sf`u7H60wLlJiD#2k616W&h0<% zi2iG&u6F_ju!LIQb)OkP)tD}jwgRu&{G?hJb%l*uNf{{oRfkwdZff*ln(k*iafp7$ zIap7M8rfO?{Vh0|l^jk%ps?@BY*qQ^7w;|o{d48VzLX<)U=9_9>37pDssNQWic%6}vJ@SKM0%ox3%-f); z(zL9M;|FI+RE6(E^PC;_$H5xj-Vf^!!>jXn)j`~wryxz!jwFy-%{%SB2;KtU7ySk& zW-d+Cy(VJ~BSyq&@c*9fXlNB&WN=5*hv^91OV3BEw7kckkOK*vbGQd}rKPGT-Cvj$ zx*E^y1cYe?o96b(U<|N&`h>#UR?LbXxblregShgKWZ<^Pf9MD*c{L@B}4t zyuaWS_&@k>i`^U-I#~~*ytd z{J1N7r&%uQtea4;(H{@3lXkK2QT$i;*BfMlO{YN1_bW;Odkl3JO zr%-J3OoH{qiCX4H9Ph_5N{u_T9{2F!mY7 zI`&=2jD0t%f6saDx#vF5 z{oHfj@7L>6W3GOXN_#m_>-+3lXhyegsQmjA%uvk+hw#mchd0y5vLo${M7#@}PTboc zj{4Nba8-h+S4w_I4!EoOkyqixOiIR_OG=TN|F!R;H^i2m~KgWFCPd~qJ(pNCeVA<{o#(^~-Yh~}(<48oD)QHzT0rMLu;L!6;krIhi}*D9E9 zIB#+SSm!Qm~>%%wr_4f2}UjO2K+gWX)Oz^659$M8vAqU>8D4O;1kpaY@` z+8<8bO(v<5(Hg3-vpS>yjViMiZb=tES&c>^tj3X~@1WF2DfPA%fX)AOA2Ndj5&5am z&zac?f}-*HX{dA{pc6gtd0SA_3d|bx=en&?OS{e`Y<_FO_>v0|f(1%Q`Ey_H9N2z# zf3l!FP&!weyNp**7XG9rp79AH>&Q66{vAwERpBWn>9s%8y0P03r11GaEh&?=6rwf; zfmPfLPxsB75%;jnm6T*-m=I~CpN9{&?nEYCbWbQDSM23ju6C}K?NHi1;>wn~s(u7i z3Dyouo)Q}xD7!=VSFNd>QYe@5Z z@36CD2bPPSo^Ybhgcx0(mms70p0J$it=1%`2h4c$j~4*J`RAA_X&xgwn8kjtCnYx* zu6=g1Xq`=7V#oB#?EGWzsK$vPqvP-yJNP(rA)TqW7EM@o49#ZcLaEAWIa4F8K$8%8 zLGRc3lKb*YMI`?98WG^c6ZM$_*N8nM0+*f0(94MCv%d}dZe!%hXQZx?vXjMjf_;AN z#eu>j!+pA!y#6pZ+1pPa)E&NS!QkF|w|T;!EHY|z0xHr<1|gm|K<{=7)}bc=i#DKg zS1q?!4+Hbf|51&M>~wWVR;H$QWj6&diU@?%+)3v|HL5oPY+Cd>yGiYi@90wTADYm@ zQW4uEEKjUs>~5Z4`rSmzAUHMOT68sG`Cy$fd`r@Wbs0|%&6l9LtNQ+%a>+W-Pu?-?_jbO&$S1*HK7di6O2{gEr2JBER%{0K$Q#N|IV>rUX$H|TvQ@tub1WF`GvN#6H&H5!CZgJ%3^8PRwkk z=Dqcfh|%F^F;}hvA0qp{9m?g>?`(e8nq>=orT2q3E^b$4^#A2n^Mvit2Z1ed#i9_g z)Kh)p9p`VOhJI6jKkcIqtE@PXPNqJSK@=m7hPgP#g6qPh)qVzY&*C6ncKn6pYNxqP zJ!*0UG=xuVS?}tC$kBflK9`HG-Z{(!y6zn*JxDM#Br(d%{U`j^8}wK3y94WcPy_EZi2Mt}V5sr4C@CyhIrtF(*3oQ7!RQVaPAb zbH~V9J^)9u5uFo1P=UM8-_vr_|Gr+(m9g7pVT={s^Xa@i0?usYC}T^%Ao5LG7IGj* z=zH2VN0Y77vFP{_rrHP}<901gOkxXOkQX^xlZjYeT3&g{jHnIZygMxP*3LA?tJ)-(- zh@fmhu$Ius2y4X7ge8;7Qjm@yYK^KY%6GFDK!nWs^naW#<#T7}79dudHvG%B+14n| z8ZauF^a(u{CLM70W>M)0{29*@C+AC1u`%SJ@w!M?Xd)#M7)RJ2FLM40S57-@Hvt|H z_9uJ$a}<-cmE<*0gwa}45OlU-2A1J1>$Pg_?5~@sHE!K%B(AkiR zI_oF55-qO9e(_CnfZwg&kdKWGJ7Wine!>1$Yem=CiHg6k`-U8J1FLJLGhLIY6byEV zILXQbj%hYrY_Kh`Lhb%@QbeMzE@3<}>5mRGCM1}Y-`jt`^9T|0Vdf{|yohp?%p=$2 zQq(hdI@1`PGX~mw4@|lG_-y;Xi;<_0#tj znX3`F&m<^8Vn`Vj{t-M=`+)#EU%(7(ctQbpzhdjf^YkGfZdb^|O$7@%wK;kP#|9uJ z3su0BL;Iqr2(PM11UNO~`W*W^6&^H{W-YLZW34UYqoy^4HZDpfh?gFc%7|1+l3(rz z3emfN1?|68^_Svsf)=LRCap)DGo<|69X07oh^F>gSh^IT^3V$jvu*#znACB8P%$aN z+zRYW`q15x(Ma;JxoBc_;Plju$%p&$CE4-axWhm^+2pyp{Y<|6uF_{6-s4rYC0f-g z@e4}A{66uH1qF!9`EOK1DzU(#0A!ZOJWLjgX{=Q%hW2?n#VZ8v3)7tTs z=L6|#H@^kt<2tA_M-!9Nr~}9I9UyOA-cWm>U2P|rTYNN?(!wOj+gLoPXE4HN=q!*F zZ*nVE@0HcU5otkuGmI15Mfa(ol_1srcG&euo)K3}Jv;p*i>p;E*##5Tg4h}G)?oN2 zb>c!=MVZPJwY3WdPsBo?c2;}>`8>qXePg^UdvF1`4|=Na`US0D_rfSUk{y`=;7I>3 zmJ1SFfQQLnn3f|=2K=YDB=4t?-uI?kBv`wik%Y~PARetNaVHR)fq%iy>mosaxxXRw zn>vVdWA8Q_rnLb>LN`mlg$ zztsR%z{x<;F6zAK@W6A1O`@B2)MW_R$G%vY*sB)D++#tA)`+Rih~dP-Ar+Wv~bjxR9z zk+KOh%ZU^BbTvR1iSXC}Yk~nTQEKvFe*M|w z0F6uhuN?uM_%1_E_{F1Wu86Ekx|mcC1L4ar^n$j7@?&MUQkV5cg3z!6MF>|6ImQE8 z+=>WFc5^k2nX~7SqZn!LxyycX8sVVsW32$gM3D<|arJ=iXJG9b?FfJgo2U<^F}wWO z&gyJ>^pJll3d~=2o8zj5OdM)*kxIC5(`1~BFe9AS`o)dfe{xO`Bn=F?^r>WDK6d1* z?$n8=dmxH7QWct%WiXj;h>*s(7~`9W$VA2aQfD*fM4h=jwV=Nnb41Zod&uHZh3Vl? z%-0f{)))WTplAV058Y2C-4CElWz7D5ZtEIPI7~I*G~{w|waoD(cw?DX3y|JZdu!iU zdbTJucM8?|S8}eWN8v_KF#IWePh^d5&Z15@+k6J2Z-!sJk9y;Yuf$~QRe?{YOt}g{ zMpGQw2A{z7+tNzsrJ!WKW}VAsyLT5~N$7gIG>V9`E~Q?D#kJ%nb+j#y3e zkqJ!{36M!B31}bHTQ+6}=_1gXW8dt+cM&SUO)F_o=#ov)E>tLbB#mlqcRAD&4qI=@ z{pk|6EM9hG7w790Wa8x!)4&&TBQWC#_xjC+f`nuKD@tNYPG{xZEAk2ngjn_4I1MPD z*)=^-~e*yzRzPLi#DDh#j+8|a7B9?qV0Qa-o23NXg@BW3TJu**Pw!RUO%>e2^4 ztES96(jdzf_}t_}tknBXI6O>D%5{Rz4Sg@yDh$I*TyGiL6HeI-;A3l&OK`R5HoqV7SB8C_-RNe2hLU6 zzU%PiHpBMkxL4>NEkMff^!)wie*nSwlZjIRpV1%a-5_((O}{@z;+G-}^ovn^Vyj=$;`(6)twcU$2nb8CMvURmBx{ zrd+6=Tb6Br&&eRYnrF4c>CY8!1lD@8c3~ig%-)!jezjl)Jw^zpmo(W8D3{^NULw1#Ey1u@ywak30Ze%I5UvI1fJ%oFn(Fk`T#mRwbN^_(* z>Dc>oAT8B}CVWy(vK9+dWZ0rjUKV||cmwVWf7c^*Ry zlgJ#;GkG2hu6>*>;UoCLGmrqoX#?56rFZIn&)V)2iO zq?K^qJ1?n+V}e=!`!$al#fljn#7NcEhEIHgr;z25N=&Eh__^f}58WpY|6a)#Xd&`Y zG~%v7{HoPssI>S8t)KxekR6L+rVa~aAN$f>Fq4M}FXHAL#W))l2_jF5oQN+VTG+&5 zRA8X34}r&lR}IL>2#gDHTYCRt1ot(9s_I;1A{X66(keVFb)@Cr@**+gllIpFw=W9+ zx@q4{J)YzR6Tw_hqnojB%O-nr7bhJM7b+A4r}eQ>>wy+BLPsvgsl^eP_+0bTEY9_41(2Jb<)k(0`*aqV2MgH*<&uLZ}-8#dQ zcGQ7(!Hc5V#&h_M;`X5ouA^OS2to$W61R;bdMG+{s|qCC2RQXJJcmx`AFv?q|LZ5! z%v6VREc;TBV8bop(Eb6Dvu}tWTT|C@32S57+{j%kR7tELt{I_W5xQ%YVS}G?zD$Z) zO9%P*RSEH0zYzlPSq6Qg9qs35oL4e-R)Dcz14=o2{3yBC1fhM3=KJn#UUD0u!ABe4 zM3qZkUzG%CHNLv3m5&m~JnwD@m$mF=iae=?`6r!D9VqrUnxS#$H0kFvhOCgz*WNfiiuytA4)RWn zw7}VBryaj{U79EsB8?1f3*07TkE4anK-Y;~21XAg8e%?YVr9N=Q$I+sv`BmMT9zU7Qm28yH$){`ql|i?=YBfUT$cI!yfK`e zt_gm|$pMYwsExmpy`lrXU19bj2L>+cd#LRz7XZs)!F}|^tn41S<-Es2Frf_Ro%Gkj zv`^L(iBQU4x3SN9&OCc+(I2LE&D#;-j8q;aM!Z)L@UJy8$s#=qi7oJ4SG~u|-1eN$ z^Bk3biM%p;>RQ+n2psYF5kMmezO9Xqd=bA z*b()7EC1eoLQJ9}3SacH+-Hxv^g^K@vBGOewpJFu9Mt&P-N~6c+95!LYn!e%r-KLX zuEZ=_13h_753{oUSC}$k)z5f6Ium)20#t#|xIh&+py2CE>I-*8v-BVFkxm!)y9{y1 zn)!_dBC2`Zbsku<9(^b(PM!l}+g^wh|D0K~u7{06XUM#CaX20_^1fC+$20R92*c@| z(0Y>HjqLmpw1!lu4&)W$L1%yIH8Bcf*w!=BKh2``cwLETQw4T=Urd zEFx({FB0G(A$3rmqBmx$^o`vpt7WI>5*83Day|X3`xo_3>>k;BpuTkOjJ$AVb5Y(K z?-ZAKBF$puPwDj04>KuiT3gzzlnqrL6)cIN3QMLJ0wI?%API~4?<<^|0ra)JTYzX% zVa`q_?@0+W8d8|&;bie^*JeLVj{^QxRES^@lxjr8E}0bgv~{kIKau;an(8Xu;1j}z zZp+TJH^kUWT?{pmYK<|_OzYH~kC!dDOl;YA*$9&ewCR43`pWc>cp{zIDkGIpbc`PW zl{}On$1z*6+qKMZuN0UEJq!vlJhtAI>aYvRFXS*y?@l0`#1bdcEg%4YC5FdwaOF_Y z4JX`)Lz1C@1Rne}$FRn8e+E|%{R;G$my?W3+vtiZbt2p;FF7qYcW>B5tz^?N^pk~L zHNi~Pdl(xks&n5HS9GI5-0{pW`(sx@h)9dCM*)%c`xoH$Sy%LxCpObdZbztm_Wn!! zOad`KqI0s~K5{}7lCqI`idBRkrfaiUUnA80YG`^062`kANB2?l$*KQi18n`F6ng|E zFVjA;W@Zp^%)B|kuYRloSmuBU;@EQAZ2YS$Jqb~D^0_$wa>vk(XG zotj^&zTcY#?9~aZEH?wtAN=dtIyDPc1d|Oq$9!ti@eVXXKFiQs!2G;+oATeGMSZM< ztlCsjmObcdiFA<(Obf!1Oorj0RaqZfigo{#b=V>Y1hdx!O^fHGFxdRH?Xh|vH1bM< zw#9RY!S3f9hLoM_|0$CVvf?98TaiT$3K%wZK!I{E_ieAM{@n=$@6f@!`6jF$rUiR5 zZ6S!`nQ_34kNZB+Wsk(wxI2z+ zt}iFsHL`>HJozx>6hrg_?XV5=bwtW5A(+M+zI!<+6}1u!%I0H@=54ZYb>%|ezI!OtkvwnHeM0C;q77H3DI2AGhXCFkf`EHV3wea z&CFdtg`$jGWxsZy%JR57%S8idq@(Ld);oe12$r*@3NL zb57Fab=q12PkQ%5T&hW5n!x)|U?azhZ@M==Q*;#L(Cp1N_rRmz z6cb~Z(LzEQx6e4DoKj-6FnozuKx$=;3=EYWg|Z28bu4E33EadeZfdG|;LNB~asi+uC$Y+ATcl! zX;37lyd93Ue&iJQlP_7!p%qm81W)Zr%1{65-01vX>Zs94nf{$A`T;5Y82o6X0?Hxek)~V{t9eclDr$%@p*-akf?d+0opr~8@b`C{kwV=7wWov(}Pmg~B z%VIE_9xARAEzp!Pn*Y}K5%yz~_o*>q{_^42pJ9(uQtj~UjniKqOJC2Xb`qvz=eiEr z{lmH)EMR}bzSMY#)ppZ9xKeU-{sER5&Hhu?wlHG3yvdghou`-ho;D2qI`_#LXonVt zIG>zHp&m>-SZ={MDo=MIkx(3~Zpm`@uWh+g3>5K~mn5218^FK_og-n3dRIhvughMW zoJ=+K@46_MSOB9HN0txE3{i z9#?lxF3O+>?3<6~lbg6b?{&x7?QMXC{e12u(At8QQb_OpYoEI8UU@{68@6pvDRwY9 zNIs(`FJkX)`rJE8w(aK-n-lmVHT<7@$ke?HXc*RoTa{C{YK)LN6M4r()s!W{ZYw_ zJ`*82I|Jia5{k(_iSAI}0;MAf&kt+~Drh@?GVLi3hx?%rrSu-7!A#^+{Tr~m9DB9? zM3@H}T_N<@nbN24!Tz1*UT_3`9QzY)-AB3B5VXS-~|jS-3y@>)tRbVm=_$&ajiPN9vu3YTX_Urdw;H_L3$)lAgoNdbk zAdrvf>J~eDS`h0-oNr!PBi&+vVR(S$Nn+jTHtD-)%uK(H91qIEhEDZ2AZLy}6Ro^_ zj}R;Tv*~55MS25UO2!?Lv?M4UkGfHv2-u9{o6ui6;GX1X(<|9m@_M#gi2Gs@myqFb z!s!Y&x%^GRD2Kx!Du{D9k`OQ8Sv_Lcl}oG^S|j*ys>R`(f>;6Q1nRkxl;~W|U1ASA3d4R!~r)OoWE#bj=LgfpL^gKEA zC&R|KzkPshm@AM$HH@IW&|{5)o3e$bSM-LNk0!~{_``3NMZP1nms^wqzkkbF75#2d z@7BB<6)cAO+cKy>dOpBu0p8-0u@iU>QHZ&U&ev;vJ-QTpL8RKYYcW#{egUK?`p9!q zZ!mpdZHwatS^ndgEGLygZfA#w6*R}tL3r0rY{NDmU_V(Q#qL_TvbIB(_)xofI z$<$EE2oOL$MpEv&==53LKt%}`o&g><&?f@I!EyjiE4@;|^hsOXSvf$szn-p2{YPZi zhh`lem1FmNYwl}?YJXAI%A5f{Wnxc-*jjK7SHcZ$E7<6 z0c(bfZNKxVXf9-??qPFF0QZ!6GxF3i@#A7|G=1uQ?0Ur!f(mO57OuxSTRvg-5YE^S zxLo?o0ZR^HrI|yWP&aSJS>%+;+S^$jh>9wIqyZDFaQ^YjGI;sVQ{XhEl zmcuusQXZBmhsP9qd=-kGzTRohY#Os(?z|A&(ER_qX&{EanXp$7v3|spu?&kR=MdLm zG0-;iVNnSAHuOlS&f7k@o&FR9kPe=Ja)P)3EQ*;t-M!WNdAK<>VfOIV7Hfa!eWvTp z=4u7^NKAUHolaaS!^-g5B@glA{WXo>%+l*i!xy0$$oW4sDvvx9dA*(ZuXhag|0+gqLj* zFs6^&h>ciW=x>A4n_E_5v;!&EkSAuHtZ{`|6({dc1~Vh*6$b-g*YxT(P@*DR&{!)bN9z0d#=Pg${t(FcU$`;?=W}AJUDOIWiyBYn zuo2j%yz$H5>&*otW+}SxYgu~r$LP*<4jGqQ`UCMJmq__o25!(HXpd8LHUcQS3?~n3 zPSB4y;7OCyPz=rp%fpU`<&>Jo9dL2yyyP(`BJf2+66qj$_4-V9FURO7bKGgaR4EP~ zHeLwMg+S5;B2LHIJJ*c2tgX&7BHoM_!Wytz2RurxWZ)(D{vgoSK5>0&zeGuzNwi-$ zpPvyx7t352)Nx7%8h-kW2S>C)@aQDHp%ySR8#;=3D7YnYQKDhZi*+lQx~by(xh4>j zo<9lGf>~zME6&%6^dgu8xI$;hyV1b*qT8fT)WF7rRo&^B6_p9Gx6|#14*S0wiht=v znV*nGKl&lNE*$KCTjA3W=kGZ|7$fmT*>&=(7`wOgE7LwC*zNbRp#_;}tIaG(`hNqx z`lPjnwx^g3{}BJJB54{g3?X6|K}Hlgo+}cC0dyN9Dn6{eF<)Ws?*rr|8j=L>2~>%H z6@^qm!*T#$Z8K>Gh*K+n_F;pTmWy93J{S#C-twLpv~Z@owq(r)W@mo+23*4D z;Jwju?*SacJTUK@{UpCHNKLayK13_IFutlnGmpwE7 zZ67oQv6LQ-V;(-6Zl+kx!PMBRfinbdD$CLK{Zj<&U_^C?GUlEYz31`~S)i^_`FIP} zQ+ZuNcFjDSipKU@mC*~zl`eU-fenTvqHdYe&B zVUz{2-X1JtM!g7fApfDBzop8NE~zXlYVcB!rn-6;2iYenW)`&HkoeI4%B`%gAvYlT z)lsUXw)5AZyWSL|gbD14H6kuPPEVKh#({PLzy46f&^xXbqSgJt_rw>?)yGq#$~)B| z8y}aMQq?2EgJhg>`j1=RO<{JI3cye_!>i5`Eq!+QFro~U zx%#4k^YIwpGmL(Q;Og|s?Tfztn=FYW-{Uep-Losu%*Y`8~ zS*c^sb|UtGe?8^W!~ND{QeCI5d1-IhH)=qgxXE6_;Bg=fAvPUWj%LH!;PygnrRSp1 zGp?)RDq>(!3ui_+gh)A&t=~+8@yKM{ln1agLKM3kTFm1+Gq< z9FKQOI@BcKG+YhOJ;2?cZ~tt_JfYPV3)zLfsE9K{mY_YVT z2cV*(U*V=y9q2K(ay> zV{HDN6*o=xyY)7)V9npVu1#$wi>bREl8OyQggb0kw9{<}^|?k@7GUKWuo)1JXAhcjZAEU1+w zRMVJkh0|QpA{myb@M33t_E{Gxc}nP<4{rM4F45bgdHJV<1BZ0T_hiQT!zvt+n97MP zZLDM`?_!sh+yRC4JCM6CU=jj^^!|%uYj4F7gaurVb(Uiwlqq_VCmrK?sJD`=yt}Rl zBJ$yiNfq<+_jRfN{vPn#;sg;%zIO7z6^;_q!-7p*K8mS8s8MwlMYi}(A7bFQOc|nz}3Pd*G*j_9IHtz>@7l4WQh zKr~3^N>LV5a+Bf57pgiyg{iGD4a3UwMGh`y34(Mv?;lBn@G{gYfqZ?!#ZQ+0FTVK?T0KU4YP6?ah)uo#5ctGiJM6^BWjlaC&P!=pFT znFnOG>zga4sIH|=T@Um2E~=nc&>=*q`0UXNI!t16tVqSzgS;EUeOPHYKszf{XVQP!(?(irjSmahBa4SaPD*ydRKZpvXEMjt8C6I zb6ujq02cj8T^TkntS%}eSR_4rvr75d(Moe-tDIo><2(K{KBDv4Q)- z5KN}^-Nv49y$%ys34PCqpgQ^wk$MD6{HA^&-28srft{!L^;*vb7e~lVVDN;p0nABC@bPg?9|?q9BI2cs-k@Un91<{y-hMNI(#; zW?IU*qPDh>##adMzLf)W8r6;#YlL_H&6vk~_{t%^qByyZ25TN}wh%(*Bds zzU{17$igZ?!@;NWyc3EwkkJl#X5zsRXipko6eZqBwzhWL(*5VQu0>QH!@v0@h@pmw1o#fzR}@BO$>(QHF_+&dv9%+ucC5 zIE$5(A^h;7KbrXnHh$EgMxh{te{VY@zD~NB?9&y^1>KWUz_*pVr*S zAw~`k37r%n`w%idGH0+y1BDVXVsfGhath}i(`J8E=lwu@9kiYO$B$0$IOy*gw_d$6 zRVh25v;NYiASXy?Fw%Qn(G+-SrMhc+WoZgFueByBR8SF;#}P5chA8)G26hQ_YuyR` zh9qkTH5a5igK+@|&RB1WOtbKNenWOFq~|)w&*m}m@Q*NgW)I95mtUSYb-d}Fcr1&> zdaJ9FE|q6;=E#`j(SEGDx`TM)6%Mq-X4CFc`-rr&GDM})kIb-4=nD=NFa2UIO=b{{ zJs|uL$3w^ReXtf22PCZOZQ>gl&z{2ey*bd!g4qT_F2VuVP;bw?$<%J~hvB37sd_v6 z%=vPC!V)c<8^chb9LSv(#&|G*i@-OP!Trm)<$wIgsy zys<1hoe{KuHLgcIq63y+`M{KuweOHT49AfeD`9GuiFo+@^&w6GdIFybLLm&H(159% z*X=Ru7KB0{;j%kWh)g$@L|*d>mFu%BzbBuri0%ckY1a~wO7~fZMI_EVhN%U~nY~h$ zVc3WiWN)We_Z(WuJ21HVsmM!Y7vu_ad6_Y-ZYoCe zVorRaiSq+yf>)>U`f&tcAYl|Cxjf}J-ty+NbrBee@V1_UPN4RoMm`seEk3QkCzz=; zPqH|N>5qlG z7B77-aaPS(+eWzxi>Jfz$1@aAhYOtx;RiBIKFYwl=8Z51vR0UYofSX`pSdRYyF2bA zF>aNNk}%b%oKxuYWTBNf`GlyPb} z5n4%q??PW>*%i1@LtDh_3G4)3C}LZUvhD5{l%j1N9?)SeOL2sED%ml@&UnwJYP$G) zVJtz)tDpiX8khkdN@9Y~y%Dl0tcbJ`KEpYK_9}HY!c@K#+8?!qd}N(-1P!|8k=X}% zHkTCiL>qPim%TA3b899o8E>*ERKzH@Q=Pp{qRn%{!0jO1JrxOt5Nl(X(ya-+p~4#4 zt+?pktJ)-sF+Ny8;5z=jueI`=z&igx)_ReGPvHZ^WLp<2nX9&HC6e>i6kb1sE~7I~ zS;5{G2_Jfuug%p1JwEl5;e${VdK!}Le~L0pHG}G_LFnrymLFnoTstZ!RRr2r4#KLq z8%f1CqkODlgk_(OnCT^Cs{B*^jk3%u72(z6tq(68gI za?v4$bvK!WXL)1)aK<6VdL&*RU%-d5M94TRW)+C1)|?J-8`}#L`^Xn!H2X8U$^nNw zcke;J=cgy_o@)>j)xJrxowTGGF`#X|v;U2#fPtP^#hc-j#xPNcm2&t%_Q}#z%9iwzMNDOAT%7wT!?S--pKd@ zf2*|933Fk+-m;;-e)HKAu_AV}FIg5$C|aD`XGn5V0jF|QG>itk{cwd*4u*}&LH$f7 zAXrQLhp>^+WI5&gsg`ahLDzuyf>Optj~))F{7C=&NzOOv_C zbBH>ufRF%egZ0jJb%S6shaBW!wvU_OAlmxea#VQjA@~4STy#MI$B7^GcyzrdeN=Au zpg_UVppv<6wkdj4{PjL87={3;K(d)VB-yo}6OQ2Tz~UtM>}Ta=jhyuJ%24ae2h$}z zy3Wk={R0tTA%w`7dDR0DJ1@{Rdum}~M?H4kFd3zvu99RtkFOhnOVe*iNL*FsZ zz1ywVM!Q39J{D>|pPvyhnw#gNLOrHe<^`%==6uWYPz{5vVJ%u9QzDxhAA!-EVpoW8 zsJJlkX>iVr*hkssGViU7UuuXrB#iJA2~_Hz@4_bCUjHl|CQP`tLfAYKWB8=)*F#)- zF!5J*3^CO2yVuLiV%Xga%3_iX9`1PgZ+chDaEFjp*I@?c z+I_926GFDS^4jTUUJ_%VB~C`ObJ2ZcMz<`}y95>TepST1Ju<`kd|ThrDR%0u!?kTE0WGDF zCxhrIXV7Etpo<9hHcm0}kK;P1$PPFK*@flJ?|Sld^E6<<@;?9wA+eM!PW!YrqO!et zf(SfPSQ@ouDV4%3-l5)7Q@Jj10ygm?tFG`!E?obL4UgixFc-OJg3dKye>gW`B6w7s zzPGWeGE2M&5|Slgb-5493m>xQpPn~@v|g$i^TEOfJ|^@vVW1^mvNNW+_?D+6Y60l< z+ODDU0Cx$LK8K^MqXzPDwhCmzw{7Rm^wwB@Ez1>b&Oqu=R0gF#98y z|4|E-92B+LlLw?{lgR+GUKI3X+FM!oEyyO)Ck<`w3$ly<3CDy^Y1(>sDdUs0HrTUT zs0Se2>{_WFrd3Er3?s920slr)5y2w01~s(k461v6?01Fn@jER2EFpQbWD<1;ml?_= zI4DX?*!EFOS2sKj98Wv334$dcf|diPLqSbT2HCP|HklZyo1;N@NK|EXFv1*JNr+F( z;Ut~uH%~;Y%j}r>KA(_0^WMRv>%-xe7&U=6g4c5JqW7AxjuZ_d zBr|)Q{23bj$t|&9R*EpEZ0SRhrg)&c%M0r8qP6+Cs=)){!?om(SRh_SF`a{W2k3=6 zBkk0cwzeg*N+!$1e5Clvq&;sntH{08;_S~SQA#v=1AyNp48pq%Hb^qFN6*Aa(!{Q= zU)8c&vXG^%_u1YD$m9aKUcs#bLIbK*yrYc@_3w=_<$OYG#^!M^x6ARN5;6D5|pE1PdSEaY7i~7 z_`C%|Pft{^49{+fxRq{1+f|MrHLm^8trG<*G06mm< z&!R6iD_Mqxo;!D^{1!(|jE(oHl~Hb&u8$DLML`g?7i+4mB=nuFcJc z!LvN9&N1=R*LkXa8}$zT{|VNY+ZIS}fCmU_nJ%&)eS>@s1I+c*`CSJ#r~lP$-?6%Q zY?xjkgP04sWo0oOC^r90nsw)yuAs$Uf9+0~0<-IU#YDQEFlFXRL$95W?|Xt)x@=4? zzw>?j5#D3PXeIdhVKG|;tmFwyCHEfj)>C*GCTT_PdHu_8%HK|5m^>V^uUE~q=7NDlvm(Yvv3?Nga8i$= z#w=fN5;_%NBgNp|e_8t#B>Edi$Z~wNUr2^=jR!OB`G7GNh6p;OxRc_7%6*bAvXs?> zS9&V&Ho-UBYRwMVgN^p=mXb!wfZR!-ou{f$>Pev1hZKdgWPm0p=qz}+_r(F>{CbVe zo2{+>GYttcKX$z&)hg6sDqR*D2;2=M6P+$lrH{YrV6C9w;tWu;_asEqw2<$At;6!W zwXtlyq7WZUmwFGOiI|zy^CP0=>3tB{)8|9R=g!(Hz$Hi4(3T}MaDCspBw&KGHxV9Z z8;YL>Ok=k9r>`#eQ@=T<7BMmHCT>uKqs(Zmbc+ZvQWrdweSB`NQ=6>yeuIf$6OdEU zYpMa?&mD(Y#g`panr``N*VU}rEK0JrHT!-_pupJqgGp0Y7zkTEewh_3a127GVTx(% z6SA%+UpW!jnMXtQ|9^b;88d?!27|#J27|%avQ}dsYu3n8V<$w` z_8I%GAw*P&s3_SQQjH}>scez?;H_x(Qi^?E)Y66_>l z-)DD+TIV=%Q@@F%=sG3KB^}xw1olNhf0?F})RICc4HCs)ivKBxYUJjWR+5M`D!I|l z&Tcm1h@>4Ys)!#Xymgpn6z57;EBi@0X&fxOy?@LrzUlayjVVLjNOlq|Dm|m_CF7z2 zxQ2FqkgaFMq_G+YP?nFaQ^le=*ZV{UD@6i;dg> z%Rv9$83EscG4xT#-<1XA|5ZVciw?zH1b+ZXB85;WnB_#xPn*Drve#r3LaTt+rg>)o zPRnug$T&S4$}#OAde+2*gqc&#ZdZ-$h1IRJnDf5?qB>+hEgL4&7=Rf!WbXZ?rMpHh zkoIt*s!Q29A3Q++_|lzqwK(9t164uflM71N89mNoLxPMtL_eEA?BTU2 z^9KJ54M2&2yag1tWtWFspwr!x)*6}>BM^~=;4m+=xX6?!bHw>(v&D-rQA84E$Go=mB?_7dPliVskri`T5l`&T3M#U#_nw97WU~Pc z+J1t)Y2O(=&w-lI_J3Q415C2V#B4498|X{=#kE#r?sEB!u6D~hIzZ;$fezOYx^TMJ zfv0^ADE1|H@5^9Sr5Ejz^U0I!}EpJD9iU=VJsEFbxMce zT&6+^Ufj~ceoL`;z_zaFMIWP1Ki4ZwR8o(eUPdcfYy75Ulr!+!$rtC|Dp&mPJw%sm zSz@*iv|{`gqqLxnQReDcTxI>PEJ=|t7&;6KQ6i6Ow{ygB_6g$sQ_Lp1aZWuB!Je&1 z^G+}hky;;j@rj<1+-=CV? zraw&&Pk&+R6-mCkTw);$xS+;2PS)+`YP?v3#d_2EUHrrz+^xLS(vw(A#lQZb*~KY? zQw9!ql$UV7auVMtOg)j+=FDoQv(fOW-CPtXAkv{6J*809cSOG_+e(32kFHO8gi_Q?o1AC$C=sAD8QH#Oj@g9E&cT^%*SrBET43ZjT>QSYFv^ z5!veSU(}5bG*cshUD&ez&OJijQa%TQq*cjLNR67#w99Y5Zxv@W8U7O>42?oneZPrr ztjME`6c8_2Wg8?84;KYIGwmdVh=TpA7;`h8{Vum}?+bTw#q8Ejm5e(HZ>UsY2 zoAw9>g+P*skHkJh6C{i|9v+!#zrKk3n!B?1i9(_ru;P|w?5G?oO1%Yh5Pgl<5Z**D zQPW&8mx)6grS?Zpds1?K+PqOv<=sm8??^mmh{KZLoz3dc;S%24q*@+asxxlW6sOC8 zdzf#c$#ALm4U%DS&22UQ&LkV~1|6=8*f8q%8CEO*H5+lmxQwpu`t11mW$zaW1kABv z!f>X1<0zh8rFbrpkzAmZ)8}erSr6?mrfpuy@BE|qq(qsuIdz3gy`PPW+J&7fxOZw; z(ZV}GLh0k+E_}uxRpwW7ONyL?cZPVCm||T|SPS3*`6CW*N~x7n$ove0BL13H@@VLb zQBL-m%W{6h2?ROGD~bIgq`zJG|fb%|h?~F9c7-2+6RgG)b2#tCfB` z8SlW%+E8+gh@$onkc)|k`@$M@8!>*-^(B6=@o{k}m~hkBp6T8R=nc)(Q1Hil(4Gm> zB)f>3-=1*jVapc-o;^RWWuV@Cp@5Kdb-=(ui&;{q7a9asx{>B6tJoP9@xbSoBoh)O zTr+jzWnQt6x2$iJMFe<4g!K*_h6=$Qjdc?9{e-$+ew5uC!xK_-8)Vu*u$R^& zXfG(L2>jI+;y>dVHw*?#`39rA0+7=FDrFWSFav?GT}=J@cUdFXE02O?mdIbj9oS&P zz_r^Nj`yY<&Ih^Ken2OytE>VFxD2No$gFtC&mDiVq|ec#85yZRKoctz$yFWpQzi-b z4dPfiMtJ~n72Tg;@e@U&zZSOneJ3lL;JKXZ2a(A2q%PDPt3Jq?SC){h<>gLjOsE|- z$J?u*c2gxaTaHFL5N^IOIFJG+;f}fOC*ONREGO@3`|_}M>#1prX3gJW(BYZAt{=d07-X~ z^PR!Rr_pd-=N2i|kP(#S&Mavkbo@+@gw-d7{Eyc>i}iEC5v^fOj&5K7J>IZ)nbP>{ zxe<@bwAm%uWw;(|f1~)~&z5%QY?A#UJ6f0H?}eJlH(wU8tDSdUV;S%@S4BghRz`8K z(kD^IP}O=(+lY_&Mb}`@b@QzZ=8HqnXQpb1OV6enoXph53Qt&xdbN6fO{* zH#r3B@tZHCuN0GUHW8mlI@L}cz_+Y~DW;M_<|#oD-)NKHy`fSjqVI}52?YlfSR`w9 zIezV_X?)dFvaTRJpAg+rdbg+BCL*1SxpiZl*Nz80YZv<(v^R+9<|Lz5_r>neT4rk1 zJ#*_i(88Q|K@ofR6=QFRG1I!CbO0@lt|CVRg(BbZ0xzEOTq2(R*A0O{9jRIDY`%3xePiP1mZ6)90Sm{k9X0gpDqT%}DGC39^dB zLxsnMi8GXoEC!tiM{DZxn*?*1N`rEi*aJ0*QX{1^4Vk(lLLUm_ zg*zOsvJv9C`4;HJ$v&<6^8Pky`x>j^9=3l z2rsY+G-iVMQPyd;R+p>-B@#PMkPO*AG%Jvgujw*Yk6_WJt&DA)t<$! z$6%&Jtp2Wq{vi$mzB#HXlOK*0C#IoW72Bj^vm>{5Yl_SY*3fb^nqB_gT-;JPKBG$F z1YS6B*3~+__xe>6XP)_ynFB3-d4X{PWaX|Ww3FGkE}9G2Z4843vvEpn^=Y@$P*J@b zO3v8eJMaFo1a_LkIput*1$yj;dF%(=F9+W`;;7j>u@xNMPD?Ivo+a7zkzFFd-4mKt z&MI{S5ZC`g{nVQu?ag;+z>H^hG$95=+vOWYAi4D~+k%V;qlgPB5D{zu0P`z>Nn98Y zkiLbfD7^-cLSlv`_6NI%xyzooKvcAUl3ktv{KB`OA9YH8n#!F9-SM8HPGCE*;_dG?J}a+}tQRj241asY z%5{WLCEt3yld(${WLiPlR0M%zkRo=VPs*VM*Z4tF^E+c~UBMNob zU0*LK624H4ur}NXBwLc#D>K>yljWMg^FKE>07!vUr+ZV`$s{%kG9*De?u}e4nzSv+ z?sJ3o)oot1Ysf{RT)=3CNTzU?SH<}aBm3yFvwoM5WEW|;EQt;`Me zM+#YL~SoYA??n(bE)}x}u z=9$xJX_B4*yQSCUe(?8}c)xyU&$P*_X^(faG`~o$Qn{3p?eGU)yLqcBs(VXT#mM4o zeAun5rr|gaX=Eg|>=ehZsVUx?`He-C%P~PiJxsLow+|#p{83cm; z3&eQXWa~_idAs_MQSxOvDhk0m86GOXGSt3K+z$n@p}5ar(L318bo=56soA$04)uq= zb8WHN>3Nzg^qP)wMe#YCFVy>p>Tl+Gs` zZ{kOG@S5!t+J3bBaANamcY$Zwe%nGPcL#2)O}wA_DUMeJTKapM)2mkJACd2pQWGSs~{47ouZ=O|secY-^ZdC0Sa!Tc}h` zp}L-%mH~fZkpFCBUhZFq3??_6aesIA!-Yr692s_kk}tUWqC)%ris-?7tLh{}xEDQL znB-3!rB`-IuCdheWWAkbURwO|r70Kjyzy_&Y_R}4eJVp^e%EJ~7M-2J5w{%63$ipF zsDD<>wU_QFoT$ltkf$lg5-Vv@+4}GLbD~L+{z2iN-eJBo{uCvd1eBT)3n4j6nJ~Oo zV*t`zfZA8q9Gx($uC5g@TNDhaLsc%2qKs~d_BuX;4V(C}@a>7W`_Oc3Iw8m1fhzU{ zp|5t@&owW~%x_)$EZgggi(;XnpuimrPES+0Z8^+u+x0SV=0sjIQV8Fb3E47`+U{QV zhEo;3;=k_O+Unj&l=5QQy$Z4u*g5P_0?%8#^+emNp&F#@zoKF5(g!GKAqo#c=Ya#$ z#UL%S7%fxu>ojnbuR@g1Kha5~ew%_l#gJIF4@VcMVn8131$>II#TMjXQ1rcaW7gSi z5;!U_stZH|g5Pyu@LNjAgk#$<8R(~q}0NdVvo zq@62>ggqP}NFm1fi6xY$O`6urC{w9@`jB*7iu!_oitGCjxWCY7r%J$`&4`}~&0^go zGYx&(YNA7ig9LYLq<2zv`Sg8n{{98aDSolR{<|wc zeP)+my!;~)%(!~CKB0+tEZ9B)cF@5uQceBAE-J!hUp}B>)j$kXv3ds95dyKb{=)@0 zoa^6_F!)481isI<+@_>7RH5FVB?Z21czN( zA$6aMQXuMRIJ<0OJdG@58Ovc{L%No}WcDrlY0~BlNFP(>SzE|24c0-t%UTl1%@b=8E#8g0X&?^$IlCn=Z zyDNlEUud!3<;~V8IpuD(3ekB5IdUYzZuc8Q0JVC`5D{C6yL1Q~dlKPmVn;)#JE7QP zAxlsV)EV&KjDN=wu-mx4l%bK{e?NTeO7G*vZ>yd1XnngcaoxZ7b)o3u9?o%;UCJ;> z(cHS&0+waEDs{TKm$GsC(4Zn-HSyNX;z7>Uw+Aj5^#knir9!6!B0(P|W8HH!;y3X# ze-zk5C$%GMJ{2ebk}F9TMk{R!NND8jk$wh2GCU!&jLUr~MqB=>vO+jPsm;$&d+@eB z!}O{|wY4EA;N2BMRi+BWd)E9cjzLxTVobsHNMkp@I|130$4=W)jVZVt*U99)SRIo; zzqBDTY%_ypg}*1i`o4L7LXBwYzg_$a$4&a=4wz)T3fwMh>10G<%?T1~pMQGwoyKkY zZ>bI`<*ECis zAU?pevXuvZhzC6DNUYgL%h`koMamBOD=QP(MtOOz=quFojhEbfZn|PTh%;obD6g=M zeKEw|Q2aAdli`OFFD_*!`ZNw*`b|7LDh^-D0~>vBm8;4P=njeaint!yw&R#&h84{y zg`aBOF;6y_MPxjcIvo9${-mPX^-e}qth*3vqIcoXmmthPJNthO)I0QKbQS3InbG?k zw&Fq69GBd*|4<23WgR_-NJA!U3-&pqncZpw{g$et6$SmW8nm;W{!RV#|S&ZOgSvQ>V-Oq#Wh?5qPUt|jlG z#uT_$lqj7kmve8#&@mk|-OY@}PQxOf?764NIhON6Cqk8|L+5dDDuon@aXgVb^W;;x z^h#$V@lJ5SKJvl$1_c=`-Xi9_e*5Smx-HY#$#>KTC*cIXt3pJB3FZN*Qjq$fEy|Xr zISCK`m(DJLVET!U=TM+ca9Sy8*HMw~YKb%))ORfNDh~ZBaJS?aP`7n?Fl{p9Z2=;U zUf4LU^8W&ll2np3Gm9yP9V)o!^@#_a5h(5e_LR-DYJW z5SC$4q@xWkr}BDMiJ!-C;EqBwebv7G;QF37c?W0i>Hvq_7xwKyKF-cc$;rCpHu*_r|BFT7x(DoTM8$q017HyvQOvTN!P~bAop(0keN-H0~wTN*Nn#G z5%+dhiFNkCQmm&EM&wmmOZeHFjg5ad1W3cCY)W8yLv<B?`D}J~p?uK*>m9us z)=@W~@hE(9N=IWNyXE}bEA8!*NpLppV6Iol)ArNtI_6XN+i_8OkN7qk8)Es-6kjLV z00g1NGPMg+E&_mK)X=wdx%Pff_1X4#l~rjS$`?6Dlfz*>rWQvP5P4j%nsT@$oq8## zJ#Ov~Z1H0O%0k=X02Ta7#$oM&_6P&_G22SMPK2_*DlAy-Mo33?%xX@n!3g_uPKdZF zXe6i)k(~G!cVr~shhod3%cWDPdo(_xbAc0ZRaol4dh_6o39+wo+a_2TT}A#^p*oJa}CvvGV{IC9s&^A8_cF_8>7jZyfXoB z2l%TVZqdH`_3Rx*TEeP9d@rX?b7B}g|u`E+Nb1= z$D%_QlvFE!kW4>o=v+&wbgEvR%6MaW{lvCa9)HdH5YOoVxmu|mcb3IA8%lg-V!6>Q znt^K;X^7i!xA(;fKx>6=lv=xlPosu1VZ! zP!;;M+6b8Q! zKNa2fXE#lY|HmbdFUAX5%07T1DwhH34yhZg5tfdCKfFwF0V@a}K<5?ETqZgkWUDHALOAEIA-m z+J9My8yY^l4Ab#nAQr#phAbc#hyby!Vh)&-o?B3gnezjN;8^KDT(eW368DA^DB)TK z1@f+SJYz|AvuAhI>C9cXCALeSWJ<&!FN%_Sr(l`#+Hzs9PJO(KqiNhFWcNPZZmghe_zhY;0wtUIy?LmVanjK!2G7`^oGwP$`;g2eRjBI zPFq0YGaN64)ci_n1Z36CjFZ4wR$15yYBnu$Z{ zh&c_S_vr8@{S!frASo)mRujBmYu2kJK<~}qH=L@u8aR&Q2!WCSq+mw}BG|b@qBtZr zfD}USY|wE#PLQ2H8-R#t?}i^T?UYbd&pF=hmZ8rC4-XbS_IYFVL&{*7S>n=*R9eSw zeTEk{ZbYAq!}Vv;JF45{YiY55#57VZ(TZN-{V<;*(ppb5`kUlqv=BzWb?dG;qDZH^JZ3>3ve0Grn)aevFPu6W zyIYpXnfR#eVa3mq?0G<$uf=|r&nK9!o5`FQtp5+qgw8Oj^D9xeeTHT1*-z~l^Qa$b zy+#cr36t3R^}6F)32r|C;(sub1>k5_Wl1_gzjzvRTUN%@l@>3&m!?tP`}wY-{VLkZ zl}cotLt(&D*>hR*c&qb|Lw+AQ;Q%T_fKDf#8RS%_#dY~<-N>rUd6b)x7v{TnHZaMLK&NqenL>$K=QQvDiJZebx-%PfMJpP!@#Ua5SLRd| zmGCe7X6yYTVlGZ=VnHZe>sT6Xf`C#@b;+#IUD;|0Z`XULdS?+_{UtQFXzb&)V3776 zi3A(_KNixJ5m@QL!=7nB*FHx@70!gEC7ha|D^z_77#=;ao1>_1NH5|7q?SNDQjxM4&Ny^mA$1U=Y z)JNB2b*_?k;>PifK#VldxF4k&iW;h6HJfv%Hs8LmzmL@hLt%TCG9@zyy{x9Hxv5Ih zr~Y7Zf}wGM4fus!?iA#wbiQJHnIH1}2Ewx|!;{$KEKd?O0lS)FI+}1;MC2bz!q4dIby$2=3V1*W zg}_Kb4{-{%UcSddn}o8O2`OqY2SDp!w>G-?i)^}xLzaS(Woo@)mgH$0R$DGDl_~O}T0cXXrUL2iNfto4M#Y# z(niTveO9>ms=Ub@4e)J?gNTO-8dg`;0>x~1J=JY%M<$ibgt4+#M6R2;m^ROtuoCn< z7_1~|l|D|eY(7C}5w^;HqqPVhJb5`6a=5zp!k399A&--Se%P*~L1uX&fy;{psh|AK zPM7vf?4gS@tjzS)7%BVdbHNE_W$4%uC^qI2yrrhV?9(YW^hns2>1dqDMB*u|894qy zDu`lR4nN08U&1wDZM`{@DIv~QEgGF3k2Plh5yYR8k6dCTzJ1O%`w+W_?)@tCqtR4q zz$a2jok6$CtT}`K26B@*L?*noZyiPW^O@g895cTZWbD4ngkBi9XzV&ZHStsSxwo4- z%k{fUaivgz17qgW+=>Mph~EvmX?L2}5!j=JjWRr;vGnNT=`IhG$8lIGZx0t)IBnl+ z?~}XJK9ARXNLdisyY;O}=w_^J_LYhuR~OimjRfHwMt>pJDGmiAynh>heGhOo2&ENv{p<3>ax@A(;fBcmfw$}gl(cP1U>^$naO9822ON3T zkNG$8g;aXlfZzSw`)~97`+L%rhnn>$yCO3vu53^1CPk?j_=%#M*(f%}JhClGL*ef<{=5dCcD~%bqCGF!!Y`eM5Ka9fOF>Jx zL}*of4I_?f+ymFUstWiJA=cccVt{({cfmA!l#I-pwjVo0-O{%QnduKox^inB#^VC! zY<^4voHo3KotQcata#&HzMmXc2EdB6R~ETnAm8b*Cqx6+K*~{~CsW0ky-cD2 zn<(R8fSP-_N?m6XTmU;dXo^}Q-X)=W1JfV3J;`*`DQl4teoh?pw&|PmK$a1S#gP<2 zS+|+A3t#OjG1dz@82U!eBkNA_oD$6YlsreT zLWtl~L|(5QkRY0fyo^dY63Tw4z~G9qhKcR3i96-|uNp%C|El?7lFiNiiozBU;?V{f zpDJWT>I*k=h@TNk^b%gK1s zS)T_)mMt{a?~(MG)mQaCwqtE&mYfA?y`!FI(~KvXk{h2b*a;lREHI#iAjs~KvuTjQ zE{G~wW-Mmn_QHI#tIGYY8mu-62L z_&lP9E2T1Xs$f7a*12yVz_ebFKL#J;A6-UyyT;KiGJnX@6fJ-XD!fFd=!(c zKN_bj8RWR?m;BXA31O{L9}t5hcA{8SO*G-Yt^f;wLe&LqTd7p4C6AKFI*if*xXYfh zRcR7e{@J;xKJ5(*vtxo-sS-?zU7|fZo1pXQGTI6g6!{ZRygfkmtzsAIC=Nv4Le&^x zEtJ%oIIN1c%VIee;7Y1Res-9lqXCsr8NnPTKvGr}TSkk(=fhoUENo-*d-Lc)HYE_>YMi|y$O%|L=bUW;t0u93~6^e+&-FSL_LErS0=)>Kxm%%cL z)aq1lYt1{^&t1K4%-(DE*Opl|0;~V7Icnh%b((wB%E1K-)(^f?Qu$cUHUByo^H(7U-mfg71GI(X^Out4lSjO_aE{4#j4m(XHVU0c$ zHbt8~r|egS_B@jEnkPQ1tHa8tG4s#SUKu|d*!SqgGU2?Fy}tM0^1sQ2hbqo>I%Su0 z^u_}j=RH?wy;7q}o_HwK)1saZ&u(dVtS-GDrY?6bIvr}v#GO@Rr}1Ej9g%~9<>0H#}?r7mPmv?z@pUIz}toPME++ZIrxJl6nQ zyOcndsAw*0STKTv3!#W#e}gh41H9Mbm6V{gO7Ef54_Z_fV*S&8mP{U7Y zWOzVsZpRG7>98fnHRdj;1WU;zah}9Vy9$(7?M~-CTsUtqpwXMZ)S(%!#rW$dU?owq zkQqg<`Cq{sl2L^*?6t&IcgkWEpSxsgh{|%lDuT%?!B2d{74A)2dE|UJuniFl{_0)O zXN@SqCex&c?6dhQj5Mf*oDdox3)r)Dxf-U3fO3pdL-qq5 zG-HGJ!eYses~dyn?$5k8J%gb?u0FMpztZY@qH;rre`dU~^{*5G>zBa>iq@Nn3N$Oyn+qoC z7x|m6=Ppv-MAOSln2xz zEIvPtB5Q<#Oc>SsoPtLbe?$BO78ULOylJjzSU8H@IlxkYzHin+I&nc#?MvV5w#fQ2xZ|QVRB6mPN41S$HJ0+4 zae)d;g!g#fXu@i>h}PDDg;>Cf8<;iM_ER)e&8Hs+VcQY9H!x3+ZWM%G*D>pj@7eQ%^)$T)Xw}{z8`ETqCf5Z zcY1A|wG?t$S@g5SRgyI6ss%V^$KZPh>M|jcdE9*)z*eu#DFZe_`=<~8G~`t=bZbkx z;NUbcNQs_eX0cds74)lNO7RwxY2xH$;{GBPG8v=3s$4qwU!DQhw%7p-Y82(2GucMu zl`lg_hQHU@C|9gEv;D$9Mc(N0=8zB&#p}zmCw0j;H?%WKPO|_v{qUwof6Kn-aT2xk zR>FC*M8*?^wXn4qZOG;!ST%oDH+;ZG-k59ts*Do0u)M6Rj1)?lo9kb@?Y=4&(LGul zKZSDBRi0W*vd`Ae!oZ)L0QPTc_EiCtk< zScrIA=5k=&gJIv)6T-Da{y?O%w%#UG80~vgoMidP;Q6%*7hMC`-mOQmyBgnF_g!7& zOc7Ssn!axL-5*j9-sZ~-H5H#n3LbVi-bZqH5k$cUsuJLF z?JTdhsJa8rRf;xVdDHp$TPVGwO|Fwy29WjHO?GG4BDO1T{rgW{IER@P75iD`R?Xez z(^Vzb-B>F&8Hy^p{ykJbMXF+>t#%CahWjG{b&i~J);zzvz3H5wA1$vp+lwwI?!xv9 z8%_udMetBr5mlct<)c!?P;=g~+b`GBHGE3j41<id*XS)+J0FeW6cj*32dw= zT3CS{-h6tO676L5F+y9qm=)T3x|@qqEjAPxD+o7C5t20Ty&DNb&5NbIwzf+n{^+d* z@tX~v1?yH@AyHry_|-|L=W51vxSPfWB^IEcX5D*Fg;-FZAU-#Oo{AinkP0mi_kmiE zy?$>Gvw4QV@I-2rLw36xdAWbz-yVS6(c!YCB|UPRl#(+u9=f+Ow3Zo{7QhQrdGm)I zLKH&)Z((;LFBUPD3A)fyrzuiWoUK8)O3`be<=?~c@{Ro`-0F_R&SqO&%?Pg(KDrJG z6s)xuJ#SP=lkXhu5)kc4n;Dq!)iYeD!%CI>?$Q5{t8LUCNcx-)^3APGu;X?coSk@Z z$goBt0Dp_luUYUAGJd(LwTQk%KEA%O;a7^n?1-|uT#;XAWir;f>N?i!MC8>CeGgL- zSA=ZixGU`)Td|O)eG+!H=Pxl{JqC3S!dZ!>ET9*BIdV{hDt4Bd1MEH4dR)n2xy!MW zg@UWcC#0lev!1WQE#Ex2omL2AM(VaRunMk|S z&m~a|Ms|p2g)Ga{e+G68@7w`_;0~8u!RN~kGafRS)^HsL7in}ysDr)2IAhn-<$b5e zaNS71#9F9bnwRlt(h|iZwMMk|cmOKBxdXLEZ;Qy^(bZeLQJQBMKgdV)xMyUfEI>&q}se7#k1SBMU z4ko`IF6%Osf<*;KL`!ip;yy+kPrpOXPsVq_PNhQqq8~1aZOr=xda9ZOZ^ER3#fVw1 z*Ild5H6S@))Zp5_2b-5$8iN44P~i9h;CD<+{1@T7$pO#UfO#a19tR}%CJDLXa}FhA zR-QV(i2?%8G-R_vZ&_yp2Xr~CWbrE3*u=5>@}99_PGS~)9l@lSiuw(L{)T#h3_kpc z2hq(=n-G?X!yvLyp)u}U_8Wkrp5pkz^hxsO5!HggJyJ(p{9vX*)^ka_@KJLffqL~SBaeau?P+A{_zhv z{Ig9gTaPQ%V2MxVF zVjx*~Kfj`7i5A6+rv+v`JlKGC6;H|%_FAM{6CK6F^WswcS_m-&$eqj*N6LFfm1?v7 z9h9iUC^M+%Kj^X|{qQEV6JbcEzx&y0pVwPY6uoaDNCp3l)&~t{rv!Bj%d&6x-)Ud# zb{Tlpo0GCYjGFUb;F_1&?QEymWSr6RYWRQT1T4;fHV- zl`0_DKBf%{I&Uf$hW9E#GU5X~25-R)%N%)+g*)$d9FU%syGdb7^{S|4zHx&KgOyj+5i6~){0wN|A^SFh$2Xm2|cl-HCU4ia!RaJHMPh1kR zdQnd1^q&JNUBUS!CFLp0#mMsRW90(iaeMyBd@eV5SDhSp``E7*^D;GF`pNWcG|7aU zogH*HNFyyNB!f--5Qx+ja5$XE+&8L1L>|Ajy;g^DP zp+{Y$D}cWj5k*!74Ae3PiuU_jYnwjE3CCJaUWp-NnF%^ENCP!Z*M4_7xnbArED85C=fawGPup-lw$yFM6#FdX0T3 z@lI(`+e=#_!qwxxw!(Y+`V?J~e!&GqF*(;D_RqL=Jo4a#pVcUesAA01F`(c=(`2P_NtMiK#E0)&Don3gv)3UvflRq z@(j~acWVz$VBdYsCJTGBKYS+x83xjeW^1+#-;q+4p~4tG#7=MW907kv_@h>a46^8w zka;Z5qs4QiCGdcT!XA)hJ%OVFdB3o_2nH=eRXBOn?2 z4;3f}%4O5-5@;?wogwK(tpojRC$(IRjE~S`-H`iEcydQ|?1y&ciF4U7r?*L7gp!;$ ze`!ttJcG6sD2;>d!*qq?V?w9Gh9r3uC`S2+CoZ7G%I_}0INi)%MhgCT^ppdt0p}ia zb{>>b_t=XDMkYLSzc`cX!0u+>1>E7TKefU~Mr~QgB&?>xr{ryer@#8egFF<%w~wp* z@{1yj#L~jFb~-~=$KJOXflz0&4}x;U?;i=`iZ6kHPD`s^mJltXp4t9d%mhY46VdV1*K^e;(*RzykJ~t1MxU{Nuc|m26*ralXY`Q=j`Qs7ig& za5cz0>+I-p?FhOY+f_M=Yb48W3Pg#E6gw4L)F=Zb`yE-mZ>)s^q=m~i`j0*sW*#~- z1mzc`KU@Ycp2xw`qE~Q1$mqb+hnLtJTtW1WAPT2d=02qeok*k(DHm-Gs^AzX?C6@AY}He3cjzP1jX1q7hoi?My+a? z9oZKd=)3If2{MIDIfD+=f8~_V&m14I{tug|cs$f9X_i7ulzcWSe6t8qIeS<5u@-#u z4k%TktSBc|%up{rV~;wqJdmYTzU)1}%)CU_TUc1|1>upa2YM9*v-yK~s)#ELkNPcg zHDkpM%TBX9cB(Pm>fQH{Pf6wgSrUFq0*z#gGGW@3(~${r8sm3(T^{1E-eG6sbW$m#Yi=n!dryKi}Q*nA^(rSMOu`jh^;H%w8q| z4#(#Q+JuF+#ZU}0Ki5~i>EV?t)n%{aW5e*DJ}!$n9AGX;2H_QseT_E;Wji+~%ZR7moQ*S(3y{kE^`V&V87!h%aM!>IR@OQu|gFq_A+5lK28!JXYZ)g+1$*9L$b3kF-m?-&((McG5WGrX^#0{D$8=+jTv2 zo0<4a?d`84^Mc0J>jr*J)=N53p6%C^q*dVCETMoUbe2& z!vqGlK{#uNs77;Vvns`&BSmhj-0^SSq2t^W?YDWkW9%9w&dA41Gp@4qAIzgYUq|iR zE423CDB>9aUH#sY)?%ufiBeU~nR=m&_qN+R0$O=uU}=H9pm3b5$8mhNo0$y7*@)oe zls_+KpBlQm!-e%8xcFv|wq*@)b1&dr-2Deq>*!WP`9FrvJQ@nN4db($F{_!u*k>5~ zHW*7GV;_ut-)hEAM0Rh>48|5Rw(KEmr6LNY8cUW^sZ@$WdD~DbMPGV-{(H`O{(a7Q zu5;hl^}7~67~#5(N&JG^RA$t{0K(VeHm9#4zU6~Pm+5Jzjmw9a_ORz>uH#S_t-xjm zyV*wc((&cITQz6?Xw8c)Ed3`jpvp6^eb;9;z)rj|0x-#G z!)svru~W=tZUN{~Y=ZB?L>hS@Xj%uP)0$h;dSCM9=qN(sLraK6K*e=cTT+;O?6fE} zXYyB}ksw_HjD!|=(QUWGR(;wMll2ja5iH#8x;rR>bH?$#RV%So3kZwt71!!MMB7-- z2sMvBvN!v;w~D*!7Xu$45i*YH{c_>hxM$$>IBQ%5$Q&mwNsQt{c2Y8N!75=LZ>Xju zVC4JOFSA6q@p9*tDMPYIJ5DM?F}coMPedXhNfhfK=W?sO1$eWR<*#!%*)W-hmhqD>&f>h3 zxMG%!h(F8bxjwDkV`hkFNhnTMF*Zj*s&t9BB|)GcWr}nrnoKB>@G;ji6OW zW`GulGW7`iQMRSAY%E`8u7BZCA9@H3d#S1=VL232wF2mN#Hsz~WKX|T-VVWGW{BbU zm7hjgjb??^j9*2))MN|%jtNK)MU=VvnUri!vpe;=s#UIy4;YPu`N%AeuSY+gu3KOj z;f_QIa3MhKzqRk)J7X#N3StX(mhK8lsQV9Co#|3&Uy7qq>OR9-_PIH$N0j&(k{14| z1Pl`mfAz{x%Z2``ks+yScwZRd5d?UoEJ$Z2vGU1Fzs|H`cF-&Zzi!ST*A0Kvf)NlQ zHUD2SPu3#XYY;US+aJWuG8RUiarF|{h)BHf6fGLK8*6kHvV)x>zNYb701sgX5jNF z(JVNWFk&D5;!5X&lf%VakN^B-E@yC+hW44irJ zW?FfGP9Z}l0sJ1=b?J_T7p#5qji~d@(~GX3<#EZQ7YCq=IOT%;{H6^SnPr^01N!|D z%R&))E(l5(2bEZ@Vk{d-j_I0$vE}kBVAFWF$c3-&V#c$Q_HgA1K)lF4un8Dz2EN*= zbW=A9!+msh^pW5;^8M~b?Mu5wF3vxU;s_W6279~6>f zTib<{eAWUs?p)j*3$je=SyJdu*H6wCam2en60aFc@S=GA&f_hN3fe`~zG#NH^{K(^ zlxkiHwdHWmyRgDm6;Vr^lF{gyfDMX5mIq(lc%p1c_+Mot@dZ3 znGGujKCnC{cBF6$S4p{ux6}@lButG4L+1U)i7FK0qb4=d0bXw+vk9lDXaN^30B~zY z7@++>sA4T33eT)ucvC7)tr8^-7gZWa8nMbXX^|_VV6uYcdn{SG3hSa-BVy#}6~GFB zqL@7I2FP>65$%*9Ih8175wav|UPU#rlBKMsPJ)Z7R61f9xf+@+F@e=u%6#>rGHsi1 z=J{*B^CO~E6c6QoQBS`~F`vux#Q|-o4Y5eyDY~I7PgYoGWSn14KBL#K4GA-;+lxWq z_U(t{P{5{;9H8ua4%OP`ggM!I7WCr)P{fk+6(?rNDbRK!O)@xZl(FJr(SN6iV9QJ^ z9MqD71zK`?hwNo0#U_b1w$=(fuweT9%Lna*yn#cX<5%tf>%wuhpUR`Q$>+{~)K}Zu zFkl&<{>Grv8#N?zlvapjRRul+Lf`$)VD;TuP-i{H!$fEn#a}J;?#$@ivC(KKP#HA_ z*eddhf_+tjsEnCx22F5%UQ>R8IsQO)g zWi468AYYcc#0}1Wav<*WNmwC4_7&YfbhWp(tXVEbN7$iCg)MJpE()0n{QV;7Ct9n@j}Jir+)v<3yF;y^*(XZOPqz~f{9=xX z#qi&qmes|tofO&kWT#S3Ac>CD9q;aoJ>KxX4aJB;M+dGQC1{pgzY#f zA;0O&3b_QJWd6mesHIYwUuY;sY3&+0bj=(b!m69=d&7vW9#Gu;ffa+W?Q~aR)>bk% z4;yZB^K_3$&BsSb&x&l%}1k$0TPo&huJJBAe<1lg` z2s!ibFz7bRbn#pP{eBuzKOcR`-xD+~f?T8(c+(~N7qhI#^o{E_KAfF_mEK4G9th#_ zol<^}IEZ|=c}we0O%)GxKi3&~2A*IoeCPP}(qwiP>;`=hj=yL z9C0#c+stUn&-+oGbCz0r71a0W7)8jh$t^o7rlZTkW>2jRaJp+Sk`ZteUx z6?PaXCdSm0t0m-qE3F`l#lCm<%9v-Ch@XpGDWHL|8FmkpS6LUnj@%Q3gje3yrVr2j z9J&2A+R_ispL(9UUtGNtT_?gZqCX8daNRBe_}Fu^Y=q|Cznp<_PaKz5A%Czsiv&R+IxB+$5FCg5&RR=( z=1OJ&_Ms&i^PArX)F~5f3N)cD?OU-fbXX_j7j}~@LFv*L?-;2^eSOSLzyf^05(C=s zy~XZuAQiYvg%o8D+5V-1GDzJ9*Y8jmVT=fbGLFn}fvtcTKtFOv6i-27Ggtj|v@O8+ zq{ULgRH;UoChjR-{+I36ue%pw(37`jwgYeO=&JFWS!Ntz7-- zqv#-fkP-i&&Tk-Onfo!S*h+&!5k`%tFhltKFP^p8_N&ts#?EV-sQN*>4H*<-;Bfch zimIphM9PDYrh`#xB!h{nj|mB4@nVlQuj&-@8;R26mrjjuW84R=zL}^mvHg2*{FLuxga>Wn{F18<|dGGmeZSB)KvW3^A zh(?(*qMm-sc;4@?M&BUgY0Q)RRWfhZHCdz>ptqSu-#)O_nx=JR&yg|9y6Wo3B)D^A z^;}W6fl4*!VV^e35wkdwdJ>t|frd3#jO#Wr!L0R{IOLO!f-T9=hiipVl+hcl`n#)c z)~6kbSompf=os{{Z@gBu(32{92l=m%+ASAwNSOVV$axJyn^hv;la)Kb1i=>LLUC`y zS8GTj@3qR~u|_AdIr&I*Y&@Y??biNdCBo@*n|)*)h;ic60KQl@z;%nWP}WUMSc0Nv z`|{^3{uh;7tf#s5l4+&!s(=5ijm}}u<{(nQGa$DEIwAQ*pb0)l-kL`P3>I=orfP5D zmZsStyn$Rl&WaT_tDUAJ0(M(x!xwL1^sP0Qp z<=$#m)pBosQNZsu2+92Z$eIj_)W*YwRSXx*;JYsd{-gZp#qRIfjUeOy zN$?LJy%9DaXIn4>I_wO$b<}?*Z_{0qMXQo{P$(&c%J_EgZBYe8Z!R(}5 zhofgRWGB8z8qxNtel2S~Q%c*^-`9M+uRB%EMC_N7)XaM&`ZbvZE5w9Sbp5?sLC`x1W(kK!<{MZ|m0Dh|&q-GX>&n zCn!%!#ya5@c-Z|Cb>3;BcW60tBnPRNBiUXM(zSmqIWTabdAHnHQyte)=c1y_VF5N5^Aty;b#+X6g|jwUi0i=J_rY{ zr=#mOQ8*F3YvR!iT4;bpJHI&qyLJ>rVk72`!n)NiO z{r!r>E_b&o2f)7{|EhhD5Rp2s(keqF7G=+n^hu5(Gb8iL#}XlV9BIsbaeYuuq5Z+9 zMzio$>+YhmOT-}aaITUxpf&EVD?;xbJsQxo@prgW{rd32f8q&{-XIX%^Iw$17)H7w zsqlG-NaVkQ!+UiZcUs_};O@#7rN^fvUcf!I&NK(t6nux2r^!$tE|PHfSbx8cvm~lw z2?oS!&d$ewD$cQFSFMU;c;8}NoTz8v2uzNfVvu$1NSAmk_dk=pYIl&gj{o*rCrm8N zf17ByUi0L*v^kEF%$ys~Vp$@-LM_#!_Eko82$J8?*>^mD}hgpw#;Na0>2C>$G^JAEX zN|$W;9mc)!`n;jcwFja3s^r%4|24B(ju&rDP}o5Q|V`UrWSC%-Q>>K zK$^fg>lS`+X6#tATh^}}67Hl@dHQbm>ed{1bSyw6nF2I95{Iz^4$u9KD|>nD7Io{Y z;7TXZ4inbdX>eLu0f$l^k_j45`lvg;P(STR8&2kIm|T>asXwb~c=aoks2x1%C3PaMMHu9|8T z^YdwKNxz$!oaD9Uu6H?gR+zOfPwnA@xtui?*%l8^LZoAo|M9I`MfyOVKwIyMph?4@ zxMA>Ycd4k)O`l7JmzVj-;JCvc`aKkvKw-x~C2G3;cfS4%O z^k0qkxm)2E_3zw$mMCRKPV_MA%<~VfXmrNit`kZ~NQGw4CLn<$xhFr&*o|IyM>>Y9QA(rEWC+C1%_@mxEj%254tCYa{ z=;oUfSQATj@t-ISxOY2QAmU-U#Fl!ui+o`6uF+h6jDc(qJv~+dN^p{%Hj}st=yI=% zdewa7FRC6cOO^Eo*^9|b92a98St>BQvH|i`nhq2FWl4)XBg`rn2W8luEd{~h5Qx^_ zQ7N1g{+AVv%;ADW2`6a#PY86ABe;I|$Zv!%7es|6su(b3Yx5ol)w7wGBnMf4tdd?>rV&xbp1gs1d_Xf(MH=-URoVE->$!;Pxy_maqvl?ysy}KwKnV?aOFnJ(K1AE(x*Y#EM zO5skKkL))z`ZAe!%xhNFEuIr~!I$;N#<#*N&T0qdN@a8?tfs@-tVI-tBpOQUePclR z{6lkNFS0-Ohpb4iQl{lGUv`sN(A7~Z8kgO$bY1RO&?+MK?~hf9g@Rw-k}136*0v(O zac{r-qqF=~uef;niM_&>qH}=-QDgVh;Xi4;=J^M`4#d%h$aa2-(eJ$XB)rFjx9=|0 z06KiyiM&s-OTON#vFRwdSCOIklY$(j+`fpD$)*Nh$hHBupbMVFtT=;R5toa?1@axII0~)97sG`uN zO|jx^lZU1Y1p`M&cUgx!v$`#TK1}3;+mJNHuoixyL~Rs8bL&$d-(9v!OvY;7G06Mq z{@8{vQ_A`DbD6GaUF<58>(u9?y^J5PPDf5E&p`>EXO}po>~o&!S+2&GFRlv; zvtJpJo50z5lzWPk$O?6}rg$r)VL%wTkI`qMVE7l$ zD)&RHUeZ?%Y98;A5iGrzJ9~pjIQDK~z-umsy??RJgyTE#mcWz=E&Qm8oQmuV$5Gfnh@{^-xwR7IYc7DOqjaXue!nZj6 z;zLAuJ8c{Wbd~%g$xVT1-Z*|JwQZ|xL&ZD_?bG)Ma=qSAd#8|c%6Tp!TN!NNaD}ws z%hJyIm|BA>>WCwj49|4m%AOH#43f2h!~Kg>)ZK)S6PB(d)|RsU(o3EPZ!pTFY+wKV zGZxJB`eltez9Z4?KZoGnIcPYpNC2-86@f#H5!9_lbm``WC%5f2&Yx15}NV)w}EUUKBpQss-KLYuT_H|CR@NU=wCi~e>4 z&UwVTgWQ1<>5`k&6LU7xfO=+@&E!#4z1iA|4~ZLG3wC-7#-sl-2J*2)eh>Yce3yHJ zzatddm?emV+dH4)%JRA;4ZM#qta3k#mz3!)pMDUYv2k-bzvqqsivk8@zZ3>6vdM>l zH$O|UCVfvcDA(wLr0WoIOmRNw#&WmK4>2BN^b0vi)QTX@XIYaXvz3xH+P|~sXNu&j!em$wFA`sw zH-gZ&?s0EhK{a0-`cQH`3cuV%{b0gr8L|?EY8(~$PzfxEAnq9of4-v2K4Apj;e{-n855r zx1Su9yP9J3^!395-Gk>|Fvn83DOd?0K_U$NzEoD{1Dp1&8|v150>dkcy;63NPKJ9q z_Ntrc3T{?6-9?}^uWLuoE+0 zAbTa1-yR|IUGGTXh`}$1Zub!M_WeLjau1T?DC^AceKWiH`oJD*tZCWZy`cEPxMYg8 z%xHUXRP>=y^61Cm*(S@6agXwb>YecNId}&DXPT;PBi5p(w&~+Co+p=edo6|b>>TR zFz>COJbDe)&zwb7d&UW!+YQYwjmJ+8_vH4X@=~IE9J+5cUHo!-V7Tq~bQ$JaGFpVc zqHg=-dN;x>Ibv(CqPqKmt9uZMfmtJt3W1aiHF9Dg;2!1y_veVT5&3D(*Y9Jc352W~ zTbYgs2j(I0;}@)}d|BVyW+x6o^69zwRov(6L5rrS&d{0@UJ=8gV(s3PIUgOj`OxIz8CE4H{&%CGNJ4!xW#?WNuU zP!01kSvuy!rQDJtk>dohd14v%Mt3U&toGt1?_a8Ub(M$^8A;Bl8eN&SHQ|ku7-SZjql_qZk-+XhC@(R7=c53L9jO3@$jPTLz)Mc8pYQ~<& zglX=fR2lI7#+#VM%NsQ1Ho%fv%3NE5G~R`7_p*(9pGw;p)C;+c>vfuo=PbesLT1fk zin`~$t!isR3bN1PX&FeNUs2d~uCCilA*IBRtEIFO^G`Cb*I%jTRH@YjbURHFs6_p) zt$euc*m!YvMY)=hv?d7uz}s)G;OSwN*E(+2H#NWy78G{km+5oQUyM9kJZ2cjlg|A7 znTh90A(Fp=4Xe5 z%JESDdg?dIT8}pkcB@#=NZOd5${Eab*Vq_SiJnS#^33U zTg!b(QN>}=QvKbtXmiWlfCj>o6dcIpfzE&2-oI#5M)lBA_6TspXSvu*E55q-U_WB< z&SadGF^gSQ1Zikmah}*dCG4FzelMK^P%l!XY_C7jsTIcf$_xE9VITiD``T|7Ma3}o zt0tx%UqUvTb%=}0jM;aE#}=GjKX^q+h5?0{h*Ms&_GPxHxc^Fal`(1yru1!xUD^)!0xK{%cEWyW*D2 zlU%=JS7o}RC42<9?9199m2&Duusy|F4eU{v)J?kgvR-w(ljY+N5I&|Z;u|k@)^<2T@(m8rG`RQHCmJ<2VuAh~k zfPEV{w_SEIdP#eB{WXYp7Y7`;W8P=N_7d1flWtb&oi=+)u%JD)o4lcJ`yzw^C{25p zY!WsReH@vfDHMLM=Hk+Mb9`>msq#8L+gP6ZA1@7X${*Y0b^iZw^v5$b&!mPyl! z`~^3ua3h@vx*cd#>RXS!-VJ$W{`7g@8wyYJ6A=TRcPOSZ%%nuAjC_yndp{a-ot1oK zJx^}%-N3e7=r~v8rL|UZwmIN?Fi~h|eWqC=)I9*NbG0!#Sc|;Av?T4K#~IdX*aZ9a zVJLd<06w|obOaz+2KR*AGSixKxxb>Yy?zpuU9sg=pkBo8N(1;H#e`+$AQ<`pPU z&gVFj4TDp|MeC`u<#EpSLwYl6wgdx!ut?2GgAyhecE1@7sWwMxvR*SKXKb=b32SUI zj<>*4*C)^ba3>TrX;P}TX=JsHvih1ME{hQX&9~^Rd?yPpsK0m&nq|zc76l#x*Q$|oPTc%zlL}z+Z{a1XGu4XPfHm}h?OO1NaX1%6lr+y4=p82{E2yL zB@Z1hPfOL!XEKQ&bhENW-As2P@5WgTwm71{J*aeGQN2~lO;wz{xf;vIhYm? zYPEB}665NZiNW}~m5U~WjES;@fYdBvV2wU6NMJEKk z79}eQ<53`D`V4LHv{{G*`Ncs!%`pagis4(fKxftM6p*#nfpr~dgj7mh)?NDZo7&;y zJYpWTB!XSs*RTB1T?{L3koIu*5@+&a(hvO%_LPjuolVA!E6JEO!Q2FJJ^CC9l4jnU zJe|>8f_eVR3>17tDgLsK+$84r5AjYWh;GHv&EOXf#9k@J2^?M>1oo}1dFBAwCblo$LOj~^y*B@+&sLE)j>^ zN6gWMR?j3b+HZs%yH<8w)Qa^kZ?;A3qV?_%8PBD8-pxBI**C@HZuQ^`?4vy*pR`54 z>ROhVNF_qUEb=*LPC$b2Qw(~6p1a$}pt1k<_e~(|GVLMZ4YY{R{Og8Cv&t(}Z%hyK zJojVA?+3gfXF^Jv#_Yp0A%oK|3natX*jIvTi6`QR1};1DCXOHG`ly~6`j77LeCZ#+ zv_|GL>7XkHVhbt3IXG1psG&n4Kk4l<3OY*Czt+GqW|771hNXJp)DR&HkQDB^X zk*eR+B)16g?|wei(IFD8zNWzQUNXh3sg1>h7BX}O@{dWpmbwB?Oy7U1TK_dKGS^9G zx|5(KNv3!T%ZH;sJ5n?a&xFLRm2m!a`DFv6AO8rV_F*i7(u}X=+%D+3$F21|j?I7Zz`<*^L~?O%mc4MhYrFGcEUF>8ntx0Q zc2oaT7s;m+G>1wAXm)+hygBb??jG@={eEs-;$LH=5)~zanso*H&!y5!3qyP5MreqFmZVrFX;meM;EF6)-ab@2g*b;rt-ZKJNmEl&Tbpl3Oeh$Z`nc2=D zS`MT@3eU_SCjGwLv-hvA6Ie6OTti$TctSpK6eZ-T5B$FRAVVjeQ#>Di&(BGV`DF6+ z!U0ZnfxFA366CqPb+(1Ufjrrq+~gxS)x+SKrd`w(N&RNtayZ-ru9BqTrR_`0$ue7m5EHOQpy*nN%$iZ+# z(Dn=_MKVwl&Y&E<5={01*$mDR%GYcxEdLwIVJX+^LFMj+EgkLJS1!A5fKa*@S<<5? z(nCLtI``{^NrmX!WbqI6H?*l#?kF9UEC-N6){%rGch@_u{~Vrd1{*8BG}#PP3aBDm zvkpUEP+;^9lLcLh`z_rm*7<} zj(na1Fg=8p7Z|Ds=PHs)o4qeaaW(r_Bt6inqSmxq7o5ercI?q&*6w(Z=+$Bjt`OUg zkePHjS!xaWg(6D4*4{Q$4lnB)^<-Bw(K7R*52FLBdV%N*TBL~T$S1=T=+=`blm?RK zt+j8^vMxTR(MB%7;Xv!#&68t$1eP;GEd!!IVQ#D&$yecqZy(tYM>OOQQepHWr_Yf2>E@l*5|ersF+P3s11nW7nefYhV;FoaCn z?<2Vhd;asPlN4HvyDp)5?EGdyPGZL3Fp56le^t+jdf#cz!S&|wTc_^`UT+Lya4c&^)s_be>?l)HBNzxfePv-2Uhvde{jYs+lZ%-c zKK2rx5k|GuO6BcTwE*Yh*Z0y5<~NP4$F2P&xGZh$M3tzV1u5J$_TFU5!DNmkTL#ip zukc`-P-NWwtd^ozU9|`&LoLS{<4V~}xKwu;n5mQ|RAIIn>uo&m4OF|e-a&8jx07n| z6{G>}$`917ChTq$m^W9XXs_Z=jN_xdAKK-_J7%8bCpo1;-ak{;(dpoGCL+C-02RL(<~Q5&#KEApZ?;aA_$Q#dD&!fzPnYkKWCmnu1tZL3CWLR`egw7)TxaMHHV6uG%P3 zN#0}cG0EZ;(XY2WT#Nc_PWe;2ajBJ#s_-XD24WOo^XMi$WGL*r1C+;Ysn6fwdp!E> zpmh%RWRrJNH|-pZ+QKybCV+UpIw_;NA=^imdntLH&(fzi9*`O*#f_^3%WF;6o>$&% zFVK@OZM|!sR$Mq@G_F@)elG=XHCLhHe=DrgNA;e+6K??Yol`%UY_iarSm&~IuBFqE zl`p#{vd5S;ix=x&1*o7bJX$(U_bSKzLfKALqcErjH-rx~m=rm(1R6<|5Ctv|H1}DI z-2(SMdgL`~!kPniIxA@PG)KG=QQ)GulN;hdD4^5|*6A9{MI;=F#kp8V7Vdz)HRjrN zf9^!(jsusI6H~qa%*~7yK$l&e;F5H4xB=p)*awLvx}uVEy!8J>;1~#CN7=g2)tZ|g zw8(W52wa}dgj^Hxtj7zgYx2a51z(#sFseWomW-UpN&?)4YxeK=x7)x`wu>v%*UJ?m zcr|bAt-I>80eK`R=?U?R^KtF8F54fI@bjO$i{B)oT}5M(5_~<6PE;$eV^6yR3!>Q~KK9SU#RgC^NnFI+wqV>p(CE0xQJc2l93mNpxkFM-&5xkK z_4H)r^vPeu%qRv_uqiA0W-mv5yCq!Bl%ll^FNyeNdh>`Ljf?QwlA-k~{LrH-pimV? zo_)$Dd=XzZ-yE6q9u9^b_;ZpHVi~C(&X7YzB!{qQNiWBgZO}M^17CRYk`ou;L1RiG z_lecN)@MoSyG>8ZOzC?m`{Bl>C&zk&aN0NH9aBIxPY434`@A@>>Z4EP55PJh@Mm7YoodPOZm zbwX)7(h_$ zdMDj&;bcN+(C;f3<<+oVh6gw(liHEc$RY5-R0bPeTqi6Eosw0hkNM)8IVRAW$+quS zE|Z4S^cllhneAFn!#SjSWaOyN3?+79est+UE<3_p#A@X#pPOy_=y61h-vynxkK&Xy z8Wda8i_qU7qpTx*r8%4Cq8uh>JyCC)qQ7GhCV#d%i(&|YNTceFay_AN$Q5N2q=$H% zMli%depvr96ucxV;~1nxnY*EpC~aBD6hogc{(y|W5Oo+KPuyG4Ljn!dqzVT5>Y%Qk zT0Zdj1g?{TOvEsa0%xTR&EQ_8(`7M7O(319;o||gwxe?lQ!_2BC4M%>h*3a*`xZL{ zxy0Tyx5;yvjM2x*C;D50*Hb*}WW}Jm&=((A0(??b!iA*6zosYLAe$o6UgvS>p#fC1 z9>HXrAa8zLTPh|sZ74|+cAcnh$`{v_fxhAb_y;hD)Z>bvUy= zteS0Y}vLd=S!n>>m;qrk?gaUb^Q zK77%aEwbhG)M{HEK;pkREQu0G+9?3c_LE+U0VJ%9kv@HS?m=cK*G3jVGo!HyOnaMO z2hWQA6HM600{`S}5no7FXVyMMHinvXeWVgW8#vm^S;FhI}& ztmG40L@4&5T-49mus6Zl<{#ak_9okGi(PkV>&xQ#&GXW$eNvy$hP}Mxq{e*j)rk5Y zzhnt4yd|o?8PL*6)o} zw*tgs+;$Zh&4Ay?Pxvk$<8Z<&Mrn9~G)0zNC;|{@+4)9mt}$-Vy|UWAmm!PN>%vv^ z)*?8AAl(=y)z=sH3Q*6LqB%XXGr)TC2IN4;Mu9y)UO+^vWo1P2#~wtkOAAGFA06L- z9tV0q`=N=vfaAaf#imD3TFAoh=cy7kd!a#}`6hz5S&Q-D*aWwX$@6aT?b>Kk$qjhS zDPeB)ma@Zo#{B$C&p|b7df1#3DZN|gow>QN z{rB>;U!kF*)1qRL5c%mhSWXq~c%dBhu-fZ2a-q06{_nYUBZEF=@%K^P7^ln7Qzn-@ zC;Jd^F?#QR7kz2F&Z}O?j+s@n7@X{i)mh82G5TR#Tw&>}30JH35kBf&;wkbS7+z!O z@Q|l|;3Vrd*K)f4E#(mvJGUCHlRH#+6utkWqj0id#Y#v=DXZ#AAZA|;DNjgD4te&y z56RB|1|L95srjTJy4x>?3A(q#)@6Ok*nf~lcNMKl|L)SF1hL)78b574y*+h^APj9_?t&&};AP7oD=y z>C}olTH+8^w>#LakL-G<@}f1*QYS3Bn%2}r!6^%b1mOfpow8QnDn8e9@ndK8iM=0j z7zpuke^N1c3xfJJDmD3hLZx<3u9?eS4WN0kMniyQvq5EHcg(FnL62)4$x5Mg zAh;C=`q!R{GB4ZcTFf=Mk=T*~l`OZxApBUh^N^jlhTbBOX@uDxA zpx$X3R(c`~ynIfsAE)A4@6K1G_~ff{NBB`izw-x2hEK0bMUsjK@p>|`)II-Id9nT< zOvL|cu92gX8+n2tvIx(MG9t4Ve2CgPbLkS^woTz;Y0xAx`ADn|Rq0XePJ%q%NeAw` zqCxPT-A+JM(Mm%;t^VOef0p^*%BB7`xaf#dmDAIFf>UHRJbJYq>C-_!(HOyvsyO1S zR~DMLDrLA(yz)+P>unSZJe6tY5N3wIBv2AW2xVw;WqhJiUjV-?~Y?ZQuS zYNsM|Wa;6`aRYI*niA8XBnnl5(w?GLp~eWmOpb>*;-Ev!67pmYFjcjBXlLzKv;o4F{)+7-jL??y~) zj%KI>T$X3oIwK$v?7osK&z#h$B=0r`VKiP>NrRm#W!q$=nT9!vs7^gMtoJSZvMRg7 zUrBBv3Nb-B(&6WWRwZujrS$Wa)ndBOgfJK17e`U}vVd@d^U~vX;>Ji|3;|mL7`Hm6 zoT0;dYdJ=CJ3>z79wF?z$%%`%{`#c{M!rT)#?(~m6hsnY`-3CShQ^Nl`a?}iLPj4B z&%muV`0vFbR8!tN*8Nk*h&;AsZS{v7j#Up|?QeKB=DWd8dYm8;BKG4DCqb0CmP<~I z)(N@gT>Vpzqh=wcY1DHe*`l#V@iv^OomHvg(c!cuQC%U$B~v04Dpg#ALX$!P2hty? zEZT7H#7B@}Ld&LRV1i)!d1aMs*k5+?nzyS2DLX=&6|E%;|5ZrVuf7=fA9-+JVu^fI ztbSYqFC|maLI@;R#E2z(oL}-vuIlLVdw{?dD8_ZK8huU9FG~vIee)ZW#Ox=Vz!G1NuW;bnjtV#6yH6_NZjUt}J3ARRi4h()!s?~P&JV7_0YWFLNHJw0>A&nF zwV^`N6ZI=UK_>ip$>V;Hb8(T-G|McpC$?Aep!PI(wF31*xTWBfb0eUcNjrT}wtUaP z++D@MLruAhTGsKQq2Y%eq3_yWOC}r>`gvV)2}yB`&p(>2Mf|tri+=<%^(UU3l*T%6 zOyth7<|FKdl(-~%8c-+Dgm8R5{hxFl^++9E^!@}C6yg7TJ$31-cIzj$gI8}Lg4y{o zM3nSSdPPBuLy~RHv++aCmmM8`L~Knr&bRZ)c^bsE)!|IKMweNhX_;>3x9wq38 z-|iM2KU=7kglrYG%yJG&pk*j&yW(6)hDv}~i7_r+*FfU#t!L_IX3x(KlV^?f z^QW)Plq06QGTOsd8q^A-86A^-LF{|Cxsx|$e14$7ApoR72~aly7%p!zIG2@jxLBdn zTBeLr-_%GZWb0Dj+*qP%QL&0B|1k;~;Y2xZ3aUX(ZzIU5%w`EF& z|Jx08Y5IAca*$boNIwL_&-HdG1AWyR9bqX|@MhyTCchwByXcQ{blaXRotmNlQh7x@Yt3l&w(K-Zu?P{5uY5y6X6@}v^9ESmtf@C2VgNGG9aI24^c)XXrWubJ# z0f)%gN9w^Q^bn>}e26ba4x{9Er{Xj`mMnc~0pdl@bnCJ zlAMj2om)Uj!3{sEUY^u`cVs@|)&9-*ra4lfQQ@&+6jkNk*H+dFXlYgbuCqX&%;G`| zw8+I=L=LPb^kxYm-ZPY=R7eBlh+!wsH|z-o|3uLtRVyoWKDoPQFsJ;Df$lEfv03Vv z?>7L~nyC_(jE>T3%6y(ybj@}W8D(_o5=eULE=b?{)GY;q{>!oKcZq>cZ9Vf7*OkET zeK~li;h8~e(JwkDb*%jJz8-TezHJ^Y7wegpSQ1(EtSPiK`sIjc)04C}m!RJ&d$eu@ z)#2lOIls1^NFgQu=)EHyUNyZD>st`fRTJdfU?(ZDE=Hk1wf=}Q%v@>fwmszvCZXFOcSkXfd3sLv*U4lN&T`^d)k}*n{ z=Q{eekoEJy2lM2$-fn8gicJAZ2cnAJuYYP;Kj(WOayA~#iC)*zk*1_kTq~cr#!MOp z5r{&)cSc+SEFS9Uu8rqqBkd0Csi6-c;FHm{?HMBCs{5RR@gBJL_#`}4fQyzd%e$Vq z8lwbT^#iZktxz(UpjA3_Rk4XwmdAyx;()h9;w~Ib2JG(GDnB~*Za)Ozyp77p4w~GC zZ`R80Ju{t6)JAV9So_{axo=rOdcgi~afCeL&*f^{9F05+oiN5(Wge^3j5U4kp_zt7 z=Sy*YK_|0bJfPOrV(_Nb5ebVd90pUj>Ffa zg6i1_f*|X{gYMWnihhM2*wDu~*a~iyTvCg7lsT4tfG2s-CO!rkn^%mKWO0%sx{u}+ z>qgP7M>>zDNjQJnFUo&5S#Cl_*kcfWdllwiNjDE=Wz!23IqDU=>G}sxiCT=l?7j@r9&i(9x=Y14ie;Nh`b>1b*s7#FyDlL~J6{TisCmq7Cf|g1 z6g*XsFNX2Az3F+TC$>+@KLvQbvVU7WbQ z&(&EuEFjd!w0!PDEnATnstJ2=H3OL^LhcLWhuym#eTJJvua8aA3AG#yGMa}?r>eka zSG?Xa*8eqq9)V+fR(Xi9ysH+q>ST99y5NRZ06+S|{reFwwYusb#x{LnKe*~|6!pgB z(}%p%QKhsVkyULMmHPh)`6D5JGXwEurOuZr$cPbANyT9{xDTc|Om}>%7nFea`E3 z-rldb8zk$EQbHhM{#Bu>n`#8J5fM{z5u`N$+&9pHax`8#u! z+y2+<**RE!BT9GO3@H8IZPAr-F&3f=PQL>Jm=_KXpQ%vHU(Is_{dF!JyiHlOX&Lpq z*uKAgl22j*wg_Uf1Zn^MC#@3ZM1VroT~RV?-#sG0Amk>@a2UDf`%iA2HwRX%JEwz` zuLkk)7ov^>%ljFvfLYk9vYcC(q02fz_i4`fe0X798Y3B4?M}#f!rQ?Gh;hQ0_^v0* zvD%KQKuaJw0R$9DPj20dU)4g*o!VCltQJ>$@kJx7LpNRt9=KZeYV@yJK)pdYea*KK z_;&BFTW#T2x9x`k$NHawr0?vJi``t?F8sz_v))+2cfTI?&7qc?Er8{XHo^X{0fro-=ST+v${WC~pjRWgrv!m5-2KD+4eFt;8TPI^ouuvPQ=`$2`fOv?chH#SH70dV?^Jwo zU*5GyM=v2eGGX{-X)q=clW{~}G9>0C@iVBiGKY&SaG$1~Z5`|4QkKt}p%NDtS;i@} zXMdcIJUut}KmKwV58>W8U7Jb$qBxy-3im~4z4VsfB5z_0zT*z3w|I4|uV!!6*aVhM z)6IFCs8g7vfgu>>zFBoX|9S!v=Na->VH4VA#P|5RhX?ZG~&Z8dKaS`5D5 z8DgdWKfQTN$@k~_WvozVX$L|3Rd+Q@K}f3h#pBQF>>>_F@z9zQ57g~DpU?{J6>^{H z*gN~;Rf0!Nl;S7oD*C$5ukGdTEtTiXPy=9w+JD9-`5Kr;`_t+*g0HmrJ^$M6j=rv> z>lxY1g2~499^Yg_H0}_X@~HRi@}6Km8Vr$B%yITxSHWkS9{Z3QaxFDq0o8}CQXxh? z7(i*|hPW_)oR+#;W&^_wqWD2j1KCrk^jOa&R29mNqQVdgpZs-IRg*q4I{awr+3=I6 zv(q!L9?!j=4|eYRwXpbR39|fGU~?WR;CjdYc>9q22M13;e&|6nE${No^9#Ttcdhcc zA4jw)pA4#$J5bcvUOHP=N%v((ceZDB)|N}5FKXIUR|Ze$HOeA54Spm>PWuPuChsl; z1aE?GL3JgYEw+smCNoER=|~Nx7LRwBCA#nMK=QHN!f{cx^kQ9OD@Ro89vGdNTP_n- zSHJy4q+mp@LKIOERM%mNELdP>>*5t4YN_P$#XZT{H+co+xW^P;2?EJGad8fL<6v~6 zD9bD^cdjJe$`zNmVtK4WX?gjP%kPK`9tC8EqV6bnCxH0TFUyatl8+Q*nq|Rr4`uXG z_tV-}{yghN1)vLfw!6$c6=se^_pQBFd5>Z$NPtkLYm^c1ds%yObeyC#L`F6)?#WZd z7h3UXXwk9w(O;(k6k37@m4j;`;Opsk{zbqLLuVQ8pJ z`jhxr37CY0mL&8vi=%Ckk9M*GG|gPZ7b1Y4SyC;&5Um3f%ij>9v6eX#)IpZ5@2ypr z;1(DXC5I~w$1enU3xH#Xey?~?5UXeV<8{uF{eR!U5%`w%JAd|V@C~i|u^dmDXRuVk zxvry8;UR*1Hu@bpocK(f+1gB7I)O{Y1ygAWR9L|H(-8~hQe0gxG$s{d8iC^un-iv~ z5u-D0xD_hxr-ktS47>tNHOJFh^;|RNj;ts6TjB(dH|m)`@O(jAN@sO-T|Q1Sv;+qe zPs~+JFLW9&+PI=NhzK`=;uF!BWb`C#AvD2(@zwyULV{v5PFl=t#SY`< zs}^C?q}`gzyYx6oX8VXn0zh5IC0(BUPIf==EvoX}X)6?grf2CFQz>u>NMMDV0k)!Q zluLlf(AyQWK^Es&t`~{il^Z~UX-Q}1Vq+s!GW9d@pJrl>%W@#nLX}o*4OXcCEMx9^ zYiQnDuPr#AjQ;I~AeI6`Et6g^&5Rv_?VtFXM$(9L zzq58J)}Jqlhn*Ad;Dw#SLf7-}2{^IRS1dFDMjE*!o6gr{+rxBO2TJi!kW7N*V)?;A z1P63EM;oG%(kSx4D#Kr~HV_2_O=Iz7y7=a{8MP2vk1V^-)u56=EP;_h^8hcs3 z&++ntw@`b64K3n#cSQxXAvCD8!?x=o(|rNQiLUfOBWLwyg>OUS8#mRwT`aTEVa^Fn zji5U#n`9D)!vU|RXggUJ}hrT%H^;*`X8t8Riw7O zRKHiUa%Gw&RGdEsA(iJBzh>)gp}7c3zz<5mz?Ow-$p~t%u|1(?W@$7dKfJO;wj>#g zK-nkLQ5-PyjNa$ALqNqZO4l9CtcwGB+ZgbRCm&Z9J)S3guYvNy5<(x}E?OX1YIO zjYXuyjyE&9foa7e-BFU9;7+FTBvATtwpE*k&jqR%OLU)f!2;*bJ}X5=7O0q6U%GG@_?--+38gwa$aJGDt+!;h3W^d+xvY#ezuLew zl3K+jd6+UMEdOQi+OvVfLvwYq7x zdLx_4s{s0nOYC?nJY*pgxVZS8ovsH>tIq=nSB2i?;P z%qd=Xm}RBw33*LSVB5I)*>J41j2s>&UcEp#0;!@nF$%=}c480$H#0NR@y;xL1vmCxuyW(ka9s9Q+6;<6%bXp zda$s}H_;5sdaG$Go4#NRYc%7CD4B^3%oedI;@Y9@v)`ZTh+tSc&@4hM<8=3mHbAaH zOITLsL6Ni7n-)$&>fgPU|3>{z$1#c2mr}fptjTY3O zjKxK`G9qbR1zx)of-zIzA-c^A%w9qwEzMW|Ci3Q`BR%x?(6>QHdl>27$)VakjAIB! z%ZcEJzxOPFsm)3X(=bN%5X~)Tp#21gkvqib)3gd4> z8LgR7T4m)M7M{jqai8f>%UcW_e`X&rLAkArzI!}s2KFAfI0vq`N1P3^?tvkhz z@9HHP-$Qwo-qWR|#g3QVF98}i?&}8kith5K&wy{neY)Kw*p1kEy$2|lk_WoO{k6TU z_51-;Ky~?r@K>Xa4*}lL#0G1aKRz0>z#9|wcn&JO(ZCrey(?G<0$M+vi6<^v_%2S6 z9N#p*;Us`(V#?pBzkLd{G##H}Z@ksj+fPn&z(g6F)kexV zS)Nxkd68>5Y+fMCIA_1h>0HwLfveb7D+l4f;*A3M{`pN`mS}OShyMDxz0u$oRk_%k zDYVGU0(8IR_;sz5QPCgczI zrr19ZNIo|C2N+~;N<8}QJM!V~|DANYdo<6!Jw?npvG>lA<92O_wLZwt(BF|JcmBQO zmBwFkFB_sO{RH72wf}A@WQZam)4Q7eL{KXJ^=mNI(+Ho< zFj82=GERwp|M#^gUZF>(NW!N6RJ_pW&1<}o!h*(z#d?V2O|Jf?@Fpk}T0D;D{L%dW zn?-{(e?4^Ui-m=0PknEc`ro!{BCv}#lz!Cxjm3fMiSyo9pF{I^-nGX{xJkB4YZO!J zC_C^nqKThD0vK6&6-}`b=+G$_(aiGcmY_t!reS7Xm4>74n8i6qMn6j0%O4hr+p;FgOY`Ek?T7 z)ZfhQjPtPlG-;I5jeXNCR+4#K86%A#>c@%kQZxb@H@Ln8Y!cqZw1J@hloCrEnF80i3VAJ z)S%U@Z}!P~Jl{|^3{A{FL?Tmm$ZOCUngzWR4|ZxjH<4E*XhcT{!Q8xkVNns0QPD}s zhf`A1jvN)6PfqUfy!?U_C(oQMJy*WC3rQ4Bl~CAu=kA04fro=b!;c=n7@v4KIW_%i z=FQus<-gv&U-|pPXJg46;g_%9{JM zvZ`pJb=1$kFZeJCHA9aLx#uD3tT!5;$pm#ubW}ukNj3r*6=5xh^f+iyBl=<)DGu5W zb~_B(-d=!m@OQmP;<;Po@|Jy*#Z$KuoV&^wPhIIoa@{vEmf5;pIPmkUXtFCNzLM+2 zal$g9@f*6eQm~(mXvOpr3F3~U>colv;!nz)t>Ut{qZe(Jr@k!?UXnE-UAa19FA!a- zN2ud~qAE+V)mU>t)WkB=o3OMLgUhzuZ;qm1juU`rbKw)kGPuXoy-HYO`M%Y*0WD(1 zyn=gqJTW$w9J!Lq*SR2w`dOMl?5-1wNY-ghvlXj2a4cXVGfgahIk)6nL6j({xr%5n z?ETN4!IClc(nYZhR>i9A#h+pwy{ggoc>l?uBwy9Z70YO`EN%6z6U*r2xAta=Xs+$tf1 z*n0<@Un3F4&Bp@NGx^4qDI8Y88p*cN?IK$-){E4w%nQWSU~No)krXX*Nt%)UV|k2H z5({5PvYa8bs%*8AxI+V^;8;W~x_pAf2T5r-4?RT0H`iRmU6I(Y5QsvF;S1S~xj4;o0$ zEUc)j+*c`R=^kERS`wTWL@g~X1BwH*@JdY;eVA)5tJ_23V5viFeh>guo=1y-sBtk!cX9 z3=A6OG#k|+%2q-Uz8K|ukMi4N zqMqK2I(?<)P^x(^e&>#aA0dgf(3yKPCqJ5o#gAy8h>r|F`OE6^Nh@r^W20bWG`9`3 z>jk9IU=laEix?^SWQuj0M(aL0+B_T3cd@X zGSZC4L`kouBgF=!*@7-`+z>Y-yoeAv^pduSUzyAr#!`9ehMe@ttGK}24BM3|!Jf#O z0IFg|KFX6SvJA;ev*{}GFTM`gDZc8MLYHm0*a|#kYSj`&4IG03sZiDb3?7zky^IoL ze)6R@M=J%pIVKab8PQs;;+c^=>GTcx6;UtnAx)JE4aGfE*rWJxx>#x>kY~Rt?kN#S zy%<(G$>L;~&nZyjn3tpcV!ClSYLV+tuqIM6Pw4(jI!71DpzVK8#Ehm-V#c4Z@7WlXV*c%~6%&@uir5C@x4()I?#Oj9 z;p2r_8&TQyV@OP>e=jDKPj!@tByBwt6K|A*vzZ`g+(HzDpUV@7?LsL$4d-Ztt_qn$jZ8 zX_ng@$Qb1CNpvt>mi8z5X66PhR{pD}CwCHDrFRQOOMhsbOIMQb_X70e1UL z%rkAew)EB0pE0$rF8lvv>mWil&YwJ~!cs%2O2`-5pFAlgiMKyx@qFc5+SwtgVw<#! zpnYw}NW}Qy_(#@PSw_qf#-Nq{6heSY%NU5Bn9CC7VpvstkMTjZp`{RI5;m^>WBgGw zYOQSfY|zk3lc{qSGRw5*Xd$&0p6|cVGPI(vR`2}mM^rqYzcl`U1S1PXRw;526ckVE z^D31r?`c3(z0`gQB$v}@Ry_W;4G85q0?Pmlew^o+hd@TpMqh_^l;?|rxK#ipIwTbx zLeV6pFjhp99IQgRns3W~qfN{g(Vgd42)K;uH1b9AqgE9!2K=`vm~|if`QN!>w)F$m z%b{ZIt;`vZ7h)|8ZY6$^6g5?$Lh$F_>pRNEd{Q!FQxG zpGh&sZco|7iLoNrr_AO!F}6mn3Y-^X=JzvxLB&{>Ri8>th!}e#{fGN=F{Xd>&}RuT zc4F_No!6qo*xx(O?|&u6e!FwzJ5r2+$L$_!TsbHP|B^fB{Zb6>Zae%xtQb7ad9tf1 zR*Zd8`t!i+bE4Xwd%ypCoyGB=mq0eMM` zXE8Q1qOE;hj9rh3`S?*mj452W;O{TSW@k-7(=IXCm7f0N2TBa0^79=W#Nf~ngHbQW z>LViFzbA_^a(Vf_ePV2C%E(BxN3l2^si|9Acrk`AE_QPhW6z%H>fR7zH{#>h*OkSX z@})~bL1JuS!NQ_Pd~n?ZiX1;t!+lWF5}*YWxMEZ<0qv+M?ioq(HBLi_d)lh=h+do+ zQ7svsodekP?-aR5YPDe>mZB;*u?LGg~`zpw=eBoct2(4s}jKtfWAYfuVeFj(#* z?jzAj;jWOpoibr1m@hIAGDWoTJrdnEB801`Bw?D%J>mDjB=W|N#OV7(&PPt&pe;KYf&%6SCUMWa5Q zI20ORr5hc_fUOIC58r$VmO+K(Bt2g(2DDD;rOUf~O@J4CQl4DC^F-kcUgK}9q`c(9 z!*s+YzqhgjUiC1L{-s&cklxOz2SX)nvVLt$-|*ZVdItM)abG9+DpDiPx|dE z0X`=bwtGZsmmwX>q3oHr#i#cis8=Ki38^kxf>0E|l+-5<*#=>Puvh4IHmNu^R2Jl% zmM6Y}#Pn&|XAOy)S)dSk6X~=dW2MM1Fuz;0Iy@v{l3(6)wIZNC9uJh(p zZ*o3=2M4vJ^1sc}pt>`R@8D(gt6r$&o}>d4ZVBlfh*u-vY_Tv(j(#_}5$R-ws*|}!f ze$~b%=2JO>`jgECsTU`|4a&7n`bCnG?<-P?>_y;Mb#-+Oj%Ge^-x#Q{^o?m+({wHU z)#$@}=Vcc&m2r#&>%#BKsRNCsLu6$!g9}{NhU58RO?LQS_~7 zqtvwx%$}^YZ*|q7Z<9plS~OyAt?RdxIMoM!*Ndv@ydsRfeba7Y>%~9{fMG`#^#X-H zV}3D%del1h@E|5`F0WzdS3v*SoX_xXk;(cH<`BNF=;G`=K@nkv+PcrXp#@FD7=v9MSAEn!;@- znzQ_J8+WlM5u#UCaTBObS4{0#En_}xM*!}5OxY-;IQGd19qYB6j_iFL; zB(PoU03A7^G@WT57u-&ays^2LocxqR_pz0q32S`{ybGN6nZ8QIpk1#nw}E*L?NoYl z-b9L5(W+nHwT3_fK+Kz5reAIHzcm?nEUyl3;l9Xg0TYz;oXd?z&_I9vYomprOdu->c6UV&&z_zfAzgqS5 z4Ha8PpXbff|1xcBp$3C3mk{2mgbIw;c;&I~r|RF#3uIa+ak-mmu8?M>rs|q^7+}DB z0!XORYn1abwdb!BiQQV^6d&s1yVd5c31UW_=C7{QtL<=NYxd}-PR1f`lr3qW>Z|Mf z6ll%Nrav~%GkdDjLap4aH~vL&aZR4tIrdJOg*&#k>C>`P6MQ~t-!gCZPgR-kq@QU< zQK3BoH`eZEqmbMli8GJ%;oofRzY`tTeB)bl_DR7B^LCx#r^I=-u=sQ< zxm92urw2fMS}z+lojzHaF#2wFEwI-WU1MpAWDZwhG8%_(`QU7Eip?1bdA!}edY8Sd zVw(EGeHv4iK^&U7>N@ZGz)zj&73jKA?$*kRZ2B_;=xkOuFP*HuRvm^*DIp=4+rL?N z395LFaaE(ri073$`Bm*0c4v&LF_#qZ6bH1h4fnqfS*=F73=YcrS=pGywHDFnWiU|)7^gXaH|7)@)sn-C8xipmr1Q)n%je8@|95P{Z7DmFc(rRz%tvD)h9na z_v;(P)d^a0SAn9jTYfRvl-88$xI%&1!|GjY^_E4hmSxRWSqECp6$j5Y(;cZJeleWf zG}mKvFVTJJA!uXT`-XSM5&fJRynR@%-Eo4NorDx>9g*Ft82KbCxrjbsKM_Z7+$E0# zyYq0os=fQQHJO?Bf7)Ngr9f(43J_In?`HM>))-PihI#J}ORMAIne>v(Ny*AzxRv>D zRjq(1u_f!tyNm$Ei@3VKEM-H&=^3kKZSP_~z4NI^$vs<7Apmvifvr1Jil+iVvYnrtKQDru)0etUA> zPu0cGQx#BlG~ymyAMFp?3vsB_MyN&UuD+I+8FbD!@p`-e-^MmJ&h9d@-B!zu1Ht&E z3!0wM?Gf0z@z&lZT2Ri(%CVRY+uKEXL~Alv#ITq>)v+`IIFz98Im_c zo`oxWI@#OSqO}dp_-t>S8`Ilj{}}Fe1pTe6!oG&Lpd=vM7wqxk83s_i*fuHSQ)%bp zV36SkzqxZKMFxfjel#^@v!x_mmzcIVhsHlAf%cPJlGRb$nH1w=I!=L7m8vG$5BttL zG?=5Qu$_V@l^iQ=2{rCi`l;4zUsq{H)dw3@hkOH2u6O{lD?$sLSU-&B>gjGi%xp@3G_*cyJxABm5)O$)xRN2VPh0WQu znfIm}XF8^8d!eXB_y(#=W8v$LZDrIi3o28^-@nT|C?9%^m7f`*yrHKr3;;^jQK*0S z0I#3tZN9NU-UGV%#~_oHoN+T$cuEG?o5^`d3Rkv;qzMv&6}MK5pY@`EA~4l4a}Kp( zammm$CJm*BApjL9JpOD1z-KW)5BOfbpW$Pnndr#=fb!B zDRL6EEIT0mP%c&{cLlUQol<_l0;kM0kFe2dxD7Rm_)R9AfcgoTLC-}e0&`3wsS+E1 z)CROd#`|1?5mTiIdFYwLoq+qw$1uhy3dR`FfmM$Dm1qwKZJ<_JmVF^x%ZcCj1?$t~ z^>8>!%D~M`iFk{JnqIZ!hy8u1oQ-1^>|I%#gzeXqV<<(lg})N-P!*Li_}t=Nqx?l& zg(aly_o^!r<$2-iG6>nkM-oesP(o%`%GneICKE>Jh2mawX7;EG5f~v%{kJ+!ljt8B zAoK!@+3#RC<2UIX-HL**jP&!bJ1DxwUyC)E43$5avwoX~bojPm@gvZOwcWp~i|fK2%wgzrZg-8WaXlE1)wzV!*bbdohW8NV64oGQ){)_ogW%Yv zrr+*jP`n=IAd6FFedg}zq|>+EhraDdsUjRbOn z^@jIatLL;ZeBxrZS*ofw{tRpP`FlDKuP``TT&hKm;_^C|ZlHSka?V$i`PcoowYX`< z{uXH|&Z_MZsl)DmT>8Vy?%Qjxlt#I96%#dXv2p$pi#oMmmun5(odOa5M~uCGnYfE` z-@S^RcAw%tu4l~Ry2xBL0=L6`mVFY79dc*Hv?~#ZE;G0c-Wi8O?nB#OYYVPMvwR`~ zYcBVqqJ+G}raze5n%naUA$dl-E|n7GePvZg=f+oMk|l7!boxAw!hgUm21O z)$U%ePqV+eU1V55Lmt?LXLWclwlARBwqg1V^Hi$yRJhG^H^X=I8R+bpZD=XuX4{bO zrQe1w4J))3|Mqogoi~e{hPj(C+^NGj-+4w)-0cf#Elk0syEo0 zuUKr;r%8nerW>^ChR7RQ4Y5NB0j3s0RSs*K+Q%icoH%Ee&xCoRE;Di(+;8q_Hk3)d zg!p@g^mo2;|G`%=4>SlZT_c0WIJ=z^YCEHn=TBr9OYb^SR8sa%!a z8pvs+|DMHoI@;M+yh8UnCiQx%`MkQzwiKP>a`q3#!Px8EX^&!tiy`9yzpF`9xQKpI z!=_hV7~3v~2VL$dw8p$Jc6ppba(Pj#)0chRW!+*2198KCs5pB2QbATn6xC%!n6m+# zKc9d)LJ{sOIDZ~gH;K@H5%r!OeB!Fb7NcOtUffrs#8KnID@L`Uj6B8Sky+WOUbo^T zcVZYEGgqvH943av+fWj9THF~XOv4w8A9Rhl`hZJTzDZ9s*~j~m+)UQfb7Y}`O^B+d zF>n-rap);sJ*4Y8D$C?XPEj#kS0MO`+&xMxo|X*Q2rOkouQ1F6i?5 z_g5gmol6^$M!~5#MbQRnXE(zJFIfnwqOWBCEIkNG7{yDacXbvU;_q}o+#u9DuU{>u zV;q!Q@G8)ad;UCf5LB01)LT&Gew<<k27Y2&@Nn*)aui38L(#H&*_Gj}Guh(}dhMoR@LTY!m5?vm+v zq1EdCDLj6coATjGv(2BQ&x%nP&0Y?1y2}CyJl86@Zb5v!xR#(bjao+$OS0~H#%)ew zwo1Z|q-4GxyM}%J`t_`b$`8dOdjHb7if-C9y>>rz;M4Ur_*VOJ~Zx~UEcB&^b3 z%Wy1YY${&k`=9Kol;26er%t&)qFlI74!lSoq#X!Km60BPgi=mJCn$%Vc2o}D7?s+? z7*xaHTR^Fe7X7uj=eyioTwQG81#e8KFM@cIEea8g%mZ3-v>1pJI4tPJKGVY=>B8n- zj84nf$Ds<|Z_J+G)9as~iC=8qD`s^cYq4qs%Vo_%w~bX>X=94~<{#1WBUVJJ7<;1*h}P}$h48gVK}xA^Kg z73(7W4k-F&F?iD2@=#E*bzLUp`*BPIOyv4PM6RzUM5}}g^`h1M|9s;b5y4tS$Q2PJ zM9#B}$az*5InRz4(UP`^KUEK%fvANVBR-lz`_Yd5=8>T^fD{$b=947jbYkY$U=$?W zDyi(juY2GqBqj(U6lN=Xjn6!|?RqerliU^oqKD!kJY@z%ql{78w%I6?YJGtxlVTE! zvue5r-)lk&!9}@7Im%ClFCG3BA-_L;Qr;k1HO9n0&Lr$sT+@?zl6CUFB-~Hn=ox*8 z&*V%>aA=5yN1|l7=h#ea>_Pg`{=9~R@^MxQ7|;&SdhsD4BD-dhM&0#3&f=LOU&U}T z4afhJGZsf>Ls*icH1t|$oDZLvh*Mg>ZA6*&dN(NfHfH8QpGxEF!yjZqO&)lM&xbrqT5x^wldPHR896J9u0AoZGDAsOVy2`I;1B&CAFr6&nJb` zhD6Vwp3u{#&(5T*M?L-_MZ%1R1u`!6Rw~@$>0U?-C!MjEpT8d-(lcusK)3J+Wgm3N zw(^hh3%@{$if%Y%rCDNZ|8%W4?pDZyusGF>5G|Ep-{)`h9Zp5ch2VYSMta_)6+gUn z^a1^dnqr(ux=#dC@&}Lpf>ptC4KWZzB$L6tVMYl>f<3bq%myaY>xi=^yYTq+p{Xgr zs4KiUHk8UvHgTUh5Oa&k^klnE>2eP}4>_~%upe*9yxnVLpG;y#?Vo{{L4_kQQY^b} z>B?4fvQb1A8@W!G4I8)l5?_{gs_u_$Hp{cp17GOm<`xNWOzwT*=#S-}lrooxcqjcd*V;H})LHCV=GuPU?Rv`zuXw@1Gj|~k z`}w+ve>{)cv*kbEVbUCT?yT*&Hu< z@6^MR4#A(4Rv)Q?1n0^8!5Vkuc=< z=k7Uw1$iFq=!g886#bdI2jgk%tiy%CQ`Ma5H&s4Tf&AtM!9bP*$`%^Q@G?c1@HU^+0xCYBK_RnT2u9+(<2ggUtBYO z_tD>^es}DEN>RFOW0806`*KBlg{-c)iR?BeSjf8PP+8x6Bca}-?@(ru^^MHG+X}XP z;2QQ%~|Cdp&z z(r#|>;KzSVJlw|u&vwBbT7p?5!;g%ml8O)mZB-0Gg~eb~eQLaw!naP{4I3n@(u6vq zyx#p-sYs*2-B^7%*a$NOhSE;f{Y@V*fJZbJDf_7BjR)Sy8M3VX`|{SiDf{D!kv%+~ ztV_<17{gTM%)UjKVe$u)t2Zf=9SU8?5RzAx<`ZJ_5r@KjMx^^r%Kg~7VO?OGWm@jO zaatq#?!o?3)>$rLEErlw9k_jgGo6Oj(XQoN_S|*DG9)5?Y2b~4c`<6m` zo3+C`4kjZl!{c`^XaqMN@+{6cx29s_Ir1SzGJmlf`G*5Q4dTnLS(y^7qq!?cFIK4JfSq)Z}W zJ(PYK;`#Cc9h3N>TvRiK3n+%JU`DC?EnVD+kFReHv8Mc)a zqu*(YzU**P-azZLn)~>v47O&Yw3DjqtWd4rzaL%&^6MRS3w_d`Hk=OsJ$K2Pxb^aJ zjl%s0vksnoPJO$wgDekXjbOwakb~^o;*rU@lBaP&BjfJ=as9QE_y+%anT~(lY(kCH z6+(LOt1C{A2pwb_NFl|VTsGb4e?3pOGRIl3(aE8~XPT2NXQZ+a{;nAodqDf7_E|@! z4;BDXYCCpQhDgs0O&aE*+SgAq4}&XBz3%b};}24tU&`ewEGU{@ugms66cr!l|2#TX zfs#}lcE$Q3g1L}UfSk-+x~s9%cjHS+P*Jk1ebe=+Fwe4t8l1CQJgn=8-Z^`@b$^|? zk9zV#`}^h{%v`fAIhpra74~S?BpeQ!t!f1Rddjbb_?G8{$HFhh_2HDA!X?9%jKXK_ zx8i=dDYo}9Z<9{_GY0W;!-R#%V=IC$NiU=*4H{=h+|S;+25pfne_R)L&#J$YeCp)$ zGtRG3b}K@YmDau1}|4n8h>>-UKIH62Mf*{pmjs9;9Y2M_F$)w3?zJ*CtJ z`eZ)rxTH`Qn(jEuF)fSeMxazIxDf_n-XGUk*?d)VHPW@Hg2$eIOwK3Gsf6PA;)b>} z9pmJY&fOH8e3Fsl&Xa1YL)q7YPddb1r|#=>5J1D#{yCE5tNMVe=ayQ11)BBohpZmN z8x8@dWV!z{gSb?ggC66pu}9e{C&`}RGx8z*xA($Hs9E_>4JPtG?6tT-R*pkNg$V6a z)`*G@(ru8RR}N%I0pL3oKyrvSUNY7)~5AEJ4Q?MnR@YoR%N2aPDO6A+3=KSy?F@;LZ|ze#|O zUsI2WyBu+Htt|AU3@#`P-&=6)5ACRh-9?fCivHYF`CSHz9^=@M}(Gq0|jv4s~7)0je zx1_kk$MKh@ZOMjiY9oY&{zXJ?GjkGoSIge&8QGa#NRqdHpp1aqlhsB}W3>lu{2g#v zMozl_Ts{IfZMQMD4BZ-^@yRKoEx5_ai}Db_WM{7$*{7WSa2)~k9^U+lB^d#*ju&y* z1osXa6$QvKdl^SZz;5aJhD)h3FW!1O9&pf%vAf-d3wgL?n4npybwmGFT;2=W0R0{> zc|)to>8H)J_8)GI|H|!O1U`nJat`uk1oCZ~1?qSQ>=vQ$z==2PAWtj(zkT5+)vqfe zNoq!^iSn6RB@up7lc(!LZ|xd-|5BC$2@St)qUjxvcfMf|bsQ{eeGzxW;&t9BFWtc? zHG$;}a=G$%z5`Y}eqz_4LAw!>*E=~6;Gq%Wp;_xtRAFWZ>iGcgjzbeOM=0g{Fa zJ6NWPOH7%aSNLepnu6|U5EIb zcXpxL#L`DMOv1!NeWYHh$g)MRCrCyyC%B*dcJMoJLBFF$VJCNeqyd&A?>}3E_AyZ7 zLT_8XpG6I;`l{{C%(lfkFnmLa!|U$*ppkBPubaV#3#F3a{&sbL$Qa$$vmLf#8$wDQ zy&_J5I|+`@^^bDw56E-F`uAop7xd6r-qle2e(4n`c3(4I(#n1R4M-m%cWGb5HPsiY zOZD&)X+)47qS^`7BZ(NcVj=69p*IZct4$W=$=oS42~!!>V*?4Wyya^|QhL1gRhD2o zpq6-dX%N$x^ObGOYjpak+jPRYZRoCt@orGnx0#%OoC}dM->3aD(<`0_fe|i!l(Mv! zBg?60!t%+-A#;8UQZz?z1<}h)?vD&0PB@ZXJ&pxj3#}{0BWQP=jD2h%PX5ZIzDCAB z?@RyqfKZ9G+rjze94ITl$?kK}l2!AR<>u0d?2X)PSOi>WIKImq<2ww6^P+cy+Ll-L zP338whIzzWLK2~E3mogB=mQ2*CN>?ewFdpaS?x@sYXdZh{dIkurbpk$AvactoeI7f zGf@C>(Ip%M9xsdokxKEc;#Eu}D zEdyXCBtnAfVTL@H?Q-c|#$m#A{g`zqPVMn_ueVUz#E#ig7(Wu^@5%Mp{S2n;>EWSN zcC+G_L%DuSN-Wjek1FHf64P|AHv6m#iG#CY?+skN(zM4^(m6>Al+)g^{{oiFu+R2L zwTk(~yUVl{eVAO9%x)>PTuW(Vx8&_D!@Ai@y5>U^hjNWXY12)v6yx{#%dgR%l6oX= zgw=3{jHLW^kB{Y@RNP8+-t_=;{^>}#+8>V1NyN9)MG6J=q#*yy{VghT%|^_n$bbiT zXO(7>TTq@B7BZ{ZVB|-fXHLkHys33M=2MDqSr1k>sh~4B>g14A(=`39Ol(Z~?mGD* zU8>Y9$ENEH;d*2c8mH|-b~Se+(E8enwLi1XVW+&R>`=D(mGKz|&AF@qva=yt`^cVx zcFjZ$w#S!-_>f)Z?U*0!A=&Lt`{DdlLy=&OGY4mN_3FT8wou||l&`{^jkSynI{b8b z_@j3{&YnC)rMwQADkZYU7Ww@H(q&Vw^<8Jq-2 z6}(U>1nSvD(czNpyCDWvJDQ2Hc{0dbamg3XWOo&C@{edm%=+w&MSqA{xDo;ORBO-^%p1J3#1=#Tkm`ZGDLZa`q3q}tJI<&Y-Slp3)*d=es-r3dEjTgj zA!YaG;6iWJq+dj~dh24_q!znf)=Bg)D~9=lyP8hS!cRo?GvneGG|zexIW1V~d;40D z+{qZVX$EfCDa;4czQ}C)bBFIIsQ$x|Jc`VTcoN9WmUT&#no{|borv?5*md>Z0*${U`5&fT8Fm^Uf5VJ6So*2ubIm`h)n^l5w&$j-w$W{X9B{YUKAdC< z)G`g?dTmGe3P96J@VD%DKFHc$OBP5JMvS{sy8FJlcAVlKZH~G-4kF-)4g#i^MOKIl z(;FD~F$w%T8>uxP@yyXPxP`7p%_oL>RYb>oZ8Bd4mG0G9h#R5gljK%&*sI6^&Y%3GRUT1C8s}BN zRb}{nO&d4kb${)Bqy(G2=`%y6yb@-o^20nwm@?sU_;PPLh1+NnDrOo2=|=2wMUVIh zO?8Bqphdx>By!MO-Q;&_x@Ix29wfMtG55B`d>rGu&ZmqB+otukv|!l5R3^U+Bp-pztcZ_@r3s>--8fYW4EgkiyOb1mxg&e=fd!+=!`FKf zdXFlf3pmny#1FsQifvUpk#q~d_-g^mix=_NDoN@^Iv6wg&k?(-8^9)VI;GM^+=hJR zQ${Qnr);Sd5}q-lA%?@(8N0n~Rvi2f>9QVnF$$aa!StP`rXZvw8hv^f&r)1eAe38Q z5%$(D2BZtkIUFydx5OZ1c%vfr7yI`*i_OIqx!@g@??1g1ngpCH1F!g(A7BGtF)byoWnk*RDJ*5lrLGOZ$&Jsle29ChwCcnAC**tb&u#wKHAt9 z4SSO0PFjmTGL16^bUGdr7K4Q!Jj*5*J5}j~B0|rEL$rBgyd52mp;VFb+~$*yOW>ap zrxHU;h!}&EP&x4g;&D3DTe@hPM|8M;YD0p=9d{TP^fwj07Ny&%6s#$>s4^fYH!lf) zNq&&#CCK8cAFtpq8w_=+*nOgJbTx&gEv3qZSF0RKN7u;pDdHioD;jg$oHMUbsaFDrDBrk)n${;njR&{85GZ&LE$+IYY~c$JrR|F6WS5(8A;H zG8N8a8eAv>jw7Afg2?Wxb+Tk(%JmQCdbgk-!~2BZ^jNnz&DmgeC$D6#Y+74%V3qJw zO8vXXHZ`pfHzWDBeG+lTw!VU?3tA~f>r?Sq3CR=|-W{(caT__^Gy%A`(jP@Ary|ic z2M&}UsZ;Yu-lH{7KbKjhBz9aoxl$Sjk`J3Id>AbM!P%`C&KJ$@oAObu@|4bzqe7Pi z4*KOfM6VfLp7NS9&i5xxxaeZsy;Y|8gH#uSz!_j^m4&k*74#yNxa$1a&>5}iv`o}x z9u01EB*Eia95>7<+5WRt&m!J5^|e*|Tv|E)%qxYQB8S298sHp_o(($|riFzwE(U6eta-f4A4`jcX!b$|7*@E+ z@_aBlzNT0%03Y83$I}E8kNU(gdPfu&Rh?0$3!3OB`eH6+$@mvV5-;8c*^!>MD?DdJ z;s&-A_*%y1H?P2Bram|?s_;pN2+X`RaBd_u#cwm;Xzu)K+BWhliuv60Se;{gu+ zJRfZ}LIdAK9$2k8}f>AtYR5c0#sqUGtpd-JY~bUEHc z5{(!XQ6}JXgcR;0wK3lm$a_ti7h%*S85Er(U@S5&NpYG;lqbQi6xrvG9WL%LO|G8mKAT;o@0-uc8H&RWx=5(JSkV7{4x^zU$|b^EkLhcFz$&U zakeDcv(@05#6!_H-ink0b;zZ@6lSt*f8>*8?#C{N9Rs{1aJqH$fl zWJ#M)>1%mfF4tXzz9R0;6TA+c85|M9Ee0qXIU3u##PMs)62^9iGZb2Vu7?L&x6QCp zF#X~Yz1ZRvkxT7c_>f?FfDJKxJlk!i7c zM0WP{XJ;0EFJJeUgf%$Ws^BisYvndT<`@Syd8rH9B=r6lsbr|5`_qP}d9{YhP5=j{ z%%Uzyghu$uvAA`?mo#9<;{?aJ#LJk%VV+*OiBjuG#ktn-7)d`oF(Mw+yZ!3onhhCp zG>i{)k>u|=DLz8v@?lUT+Zd{Y!1BlO$m{ZAVa;FOsteTM4NLWeG7Pd!ctVeM&{N4J z$|@C3tYqnb+LWt~PQS%0G@<#3LZlONf~xx9&65lP=6B$jOm-1O&Asly2!JixP3P zQgbn9l6O^?qsA-FRZ|WS%Hu8MR+YxV4Bl46O$0s-c@=NDJ11&d)!;+A6~j}6lT%Z+g48cjb1Kif zqCc4znef(SqCM~%d?&_u^U|3_ZtwUW-QH3xh8SY^UdiVP8w!mZafO_&%Lcj4g_U_e%E@7}?7i575U1 z=sxw0T*kB*Uy>>pO4_}DO$ZWgdLlbbRgjW>dzsvdAOxKx)*SE3NsQxZ!FM#TPY!Y_iGed$QrLt-IL)W>-^RM*3GPSmSS~eMF?wxOZ zP1ZQnp1?bfY*u@bFP{?eg-3NR+rcSR75O<1HN_v8iM5vz66t#jEyR20m9cCXG>J2n zFV+{zp7IqSJ9)9!?ih>k3W;v>4qunj;d0!^&`0zn8Wh)9u0|z8KOrNTX~FQf3z|x4 z)^yHvm_l7jv_xL+i^5yUayBViCHj@gENSUM-d1d%iv6U9P+3W$r`ppG^~Q;Yr#y5< z3!?fs$LY3y>WJ%*9CY6xO!6qrUDGCJmxHL2Px$!{GQFM5KG*cZP$Ok_bii8HXJ=d^ z{%MovbvU|gDDFxGbB@QORooVO-5;kqltNqx9C{_?<5D3<^0)4qW1e*t@5>`ai=Av$ z@z zmQ+YW}ALL&(Bht2kB74xXECuAM| z7>j8=boPPZQ*{BI+~Oh=-GI_>y81hCyM>NRg!`ns4^w3nkfoF)^$U#NNWTM@2C9gU#e|{-73Od9Gu;(ruj25 zheVq4u_}@pp?t*=CQ(OUfo6E^C*5Lvv(tK|IgqMF)w|Qy58Thj@Ltji`XtUXV6#Kk zTy7gw*5}iTdDIgbzTNq$Ma)Es9UE9Up}#GQ-$c4R z$EJ*7ajQrp&WP2xhF=cpXGr+|hBUDd`yJ7O zL+UEtzOM0Clv*MU8nkU=>-n9Hr1n~)IvP68dYx;_tsPGxrrrmZ0wg1O8%64G>_IR! z<*YrOG@Put`VIuE3=-c5@g#v+(J73L$KjG!BJA`f6TrwVp>tPhw>(&=cJ>j}(LwP^ z#GF^joel3x<#W)pB!{W`kNsy*B-NcxzI+(f!Ny|_T-)Mi4m#Dh5b8<)() z>|aRBPin*?B1;R3CeAcXs{EU74oRMg?p&^rly|Z_8l7$+B{}{~rCI%{_;v5YnR;Me zwC5MgFNfQVPYWb){G$2W>mSLzM&rC=ql}}N#^)0L5&mf*ocmjECNUO2_^hMJU`1?d zx-d^7$)r%IbMLD3n>Wv~HUYO7lUg_ITTT`UNphu>F52e@C|lX6H*1H>WIuu&eOzxI zDfljdCn&edq&Eh1i5QWa?S^wlT8A~X*wXpMB|nj8408?aN<{N=d?fsDeQC4iidC14 z=z8sui@qm!x~IOc zB3(ks%~;-#^7TCcc!X6<=zOuym>3UN@;ze(HidCP6xSNCSt0ca31CDg?uWpH} z;e&R(k1t#UL?IYe1Bg)17^i~+4YX+dPi;!d9Xv;Sv zK(J*dI?&Ukv?5UKs@h zXpf2~2vr*vv`|%x!)2$CP_fw72ucGr`Du*@b>ZEI{lZ@(&Rmq+af(cew`w`7Jl%&X zN^G}9_2kGa+aTRTO5Frfj-*JGsy%#eo$~k5K3fTj8skI1P@az5!n+lxpqR&J5{1+K zB&Q1QqU8Ima;iSn@dG`%*(AHAl5f~q@$<1}F+4_6%$~wytmALOC83++<+gm&Gl1W) z=MVOIGZa5?HBgoZcW1*PEg?cdzn~t)*J~sn&NH!iMs6t>xDwORODF>dnU%QST-v38`4nhjq^z1s=TJOkbcghWUa zAOCNjmJ*-4cu>F*;-t#&7k+A{%k!jHISfSWFY2mI3YtX=U(9us`Yxoe0z|U!^ZXK! z6BsU|-9aLK!(tAHC1rjN4GkEd*Y&UtV9x6xF9Zt%dM&Q!#`Q!|K$mFpRpD(LB^)XN zEhEDid60PriN%PC;bQog6t@-AbaQgrQ9=%Tao^%X-i1P;&^c{MM@QVBqO5NvzS)zK zR#sFSxKWyCQ*E(6M0JP4qbRl$fAQwsES_wEopPS+7zfvYdOilvueO6V6JLo4f5h83 zF#(p5kuk`g{L9#H0hl4s7H9=y0Y&oLyZ;?<1vJf+&7?oVtt{)u+AjfuD;2Qt4hEE6 z(YM<-pg7aOH-Ux0mIctiCjjG+JzC)qU~jwP;J{BE1KDIJG}+PF4RC(siUU4!ot*(U z1mNi&>)~0xlYI>IwDmd&_#l7)e}5fH0x$3%)-PZZc_=7|`*)a&4xSA`hEmxFsiCYe z8j-aGFGWNWV%KaV(*UOKqL7)F1;2o&uU=pSe{^~wh>RX0OW)`z$O_gB_1o}W`Qu^ zMK1&VvrZGT(Ggj=*eufD>0)-$2~aX;gqnAWkv9nJKb48jhOrjaHvwwFNPJ!~HTNVr zhr)h8$<4?s;FgqooT@Lcqn~M9na&4s)y#!c0~M!xxBhN#Se|P2sOXrj=muOW2|;H% z%x{dIpq^t@^-#;9i{n+?tgS&L<0`v$Y_9eiwPwij+s5`--9kw1nolG9V8bXmJAw-@ zk29!==evL-7jVgqSAevR8$fn9^{r~;Uy0&rK(;LF)V&j1_c^R`P^5bCJR6Xzp2t={ z9f!8EvFD$Yc1<io#Mu*%KEjd2>5u`TO! zE$^vq-`3he&fg`jLKlbFxxwxNRa)LLI!MZJ7W;AM7glF9zS~l(7u4@q0Svpd*xOk| zXn!wg(DxZV0FnkP4qVJ6vbo^iUYgbbsLwJO`cAkETAbKewyC4IHqyPBv*>GY7;GYr zKKN<)D_}iLB9H#K_H&h+g{IyFgT`>-W8*;+|CXW0IJim1@d^0&JzVsyU!=&ut+5#} zb(WGbd+5#hLcu2bJ}xge7brqtq2la68Pv|Q(o!sgTv1lDYyY48qOs_Ubt|}3o^quS%1xv8(0^w0F(Te1`qp$OX>&1Pj~QmT0Lvv@)gA8 zi>xzRG8jobyM`GWETeV3uIDP^%GGNly)UDYVKrX+rj-tzt?S$58ebYgjE-F8y(%=q zs`Cjw`ju5=X`p$%xpx>5&kxe_*HFWCHAGbzxo_K$jD7-C*4pK)t)o*B($$6X+*>*c zD|-a>4fnNHXkxCo(b&^$zf(<}ttEWh8u6W7A)U=QT>dRSSP7@>dAhYVT7@b{8{dXi z&Nj7mwseX~%E<(F0$3NE93Ugn)yCPqNG`@t+9*&xXk3D7KA+?UH{Ktwo^;^LChX0F$aDmwymf{)BdkXpR!3kwFuO} zmTHV~mnFpS^5%;aVhVjWYew?(ss0KrVQze6!@>BMA!QgL)l#L5k<6#ckFgP_5CT-p zYQv^^bc=H^pBuFjH;%vg{xa*JOhOSg00D`L2p{-n{_PV=gIS@HB}0{zNsDE-Fj_?V z4i*SVim6H_zj(^5{;W?W$rPmXZjT`#MMrbKT&nu`Wb2PtHDmNbYKz!6H~u)RmmpqI zDg~~vPJG73j?`iCcmiIjXf2|`y^LCP1}De-tq^Z1<6m49#JGxZCFpbBx~Hl@gN@-K z`IykBKeoR{P&I3r!K2r%O(L#nk;v(rZ@fi#uMJZReS=RznUiua6;>vv5y!18NjImA zCgVhJ@prw^9M67{t{E0m7CJhM2!H&TGSjlC@LGCW{-`z8fO-9WeEp4($$t=I&$7h; z(R_g28GO?0Rrtxji|^~L!u(IpLUX{%;>(vWUd-Q3dp`CC1BArMC}cr^KhcUlx9Nk+ zEMiWs1FK7mQUGdWynHT0(_?Hs=fnv!%p0>zc$NJZpHbAh{uA+z`tc`1YpV=BRa9dJ z$>`pL@NYk4Zpf<<_7z^MiC{pQw#rW(JXahc%tD7ncUgWdYKgP?h=bnwSE zLT{P$=l4Hl6=p^HloKCAIC9+kuOWw(EaEN}S0Uk8hmjLsch`f|Cj8I0ADf#$?@gRKnc}A&gu@zbKMzrYq4#?MLtdlEjH;8xWyQtyDe;@jD-#D4 zvJ`&33I6YuJaj#mH+PvE4$0$95BU3==0OH8HF2`3<8OD~eA%&97}4>+Qhlyps_doZ z(O@iY@zaMe`Ctd+3%5lngbZHL-x|B89skb1?YHQe=!&X|Km6zofVb(Wx>Y{<6|g3D zOVm(w7pt<%|N4X80uiyuwhi9p@<^*X!~_5py#o&BSmKOtMY+%*G#cc{o;~~u&AYL+ zC-Q{?`44&rUR-%2@<_CaSC{$GUt|&9nPb_MNy+lhctHOVD)}tT%>g|d*DH2zfH^$< zAMD@)XgUP~CN6$}wpXFgQQ*MA7?p;9xqw+vyk$ftVAHG^;wbrvY;R9+RCV#FaKxR# zxw^O#+}tP9AvWIHD~RkDLcsWXlmFwOlzm71eSHDHgO))o$8R@-v4=>3m|%xPI4T#m zcoGug;29K3qJ{wh)NtTX7@7lb?*xWM0^VUUgy?wO;aGqYO9O&p;;=`?xPS8#=3=q{ z_anzFW0I(G;Gy_4U*V90G&(Lm1Mo`92EwzU#vFX`-kP{0N6Hga%w?E2kEVI0(|3Q- z>bvRL2ml-YcN#7$c^`cmP)IlrU=ka_gp+_qI&KWyLhsLFK2B{VWb{}b?>uV0wE-Aq zwUD7^c3N>hILt-so~R?0Mlx+TYeo_aA6Y2M}v81=5Ern8SJHEb|5mkgaO2yw922e&u?0_ z+)|t?2Hi?_;ic_>T}c;v+mVYt)yM7hEbk_q?X;>=|6;av6-ck`U^R~@p4q6sSYCKm zgt54>ybVR4e+lfVdj-hWLvM(UOVF7+2PX0%LhT%&Tl)~lm^^d-_DJmv2a=WoLkK&#<7uCZ9HnN4Y7iqx%s%KG>Ntbf<= z0sgd5C;y4f<;6A-q?kCF#uY#mja%j}UYBYniD4w#IDm9JS{`cq%zp34!F8bb5ab9Q zRE^fG`w&s9ZFRP54N&d+(o4}D*xenupg~8ce%GvFFY!R12Wfz0_GI$@K9&*d8=2)X zi2h;zgkye*q0+PAPUr(Q`x*D?|LP2UA0GsbhDmd9Z0^6D%& z65IcXJop0QT(fwRxy5oDe9IUbx2HQ@{kgrfU0!@GI$#`qaQt5&WD<;@nmarH<$cz@ z)O)`U!;nhavj>#If&!qpss<=KcMd42;m(v{qid?+^Ni>UW*3qA2mhw`8i8EfcNu78 z5$XqT{Jy{K=-+Ya8hAP9(gWbk)gR_tiEZQT{`(Mm=pXRvTy_?`ocj-0`gjvyJmWB5 zX0|@ahHv6X&GX;Emuvk?T%hR{;mYdoMG8MSW2uM%RP4q$SUx{R2?-1@1}!3?vc1E8 zZf0tP^G_R}oE%Fuagwk*_9}DRM=|kC|IlUNVt>K@GE?)x?VC8mlFp&)zzyD^_M}~% z5|?QWnPPOxyJoLny?T9Qs4XlXdIXwZEqB$&gV!<1=b5#9 z7?<6n0cW$-OHod7ACzq#gECF(LY}Hvs-n>10_b<&5=TI6wWSk; zE6bS6{?04|RTK{~Ezbp`5te9LhK8kb>nO$4T;su2ius4jaVC_~86fBT5R=51VCxWX&D4^#|PhgLm&JPX5br7y~e`*Ivs>Sogd< zcK-$X06NILcNYwt10z%|Uu|8}M)ShGh`Ap(Y$cXKXu>jQ-yJAN8;1rT#952-PDCM) z8(V{Bmv*&Wy0aedLoP~%yUXZV@fh}vTUpxz`)wweIpe<^y#VbX(xG&~@Vm022ibvz zv3GKXajPh_J819X3AlOr0M_1zgoC&c*`Eq{91I4$5R#sv-&K8(e(u*Z*@wLY4hEuw zLP&v>UK=N5JZ=%*tOhDNaGY_-EZ z!ehN+lBtQ=8`sSc6(nXA-{+`td;yXY8?Tyy$`wAEzS{a$@dB5PX zzyITHH4~m1t#J))oN@7P;YVSaTmmhx{9rWw18%Iq)7=XTowGpt#RtIgp*zHZx64^< zI_nbXf2BBRlxsgiaTs4<;7M-bQ~v@AAoOsvZ$n`M$XzQvc`|)voQ-&R{z47IgNG#L6NY?t^e6d{(FPDSxshNLI$2}60!EpCpa z0H!GO6f=~YM4}Z@I3{67dwZKlBvgP`BETx>yl z@)*2x(|X&m+&&@Ycr_x3H#ar)_SV*(i%@s1IHbBEumxqe3Lng8^|ZBh-R#dCXOI827A;r%X)NqtIWPp& z#t~If>K$(uVU7gqf}XFi`oU9YtIn3W?9n#TYcUG(hDtdAWX!{fQ+F2j*NoT4_B1g1iWagK>VZz=4h3xh~k) zsz&WJYe`IrSg>m(VZNa6i~kcLI72-K*xHlRoyMznY@OW!XD25*+RMWu+k1OE!Oe$4 z2nYdOkzO=!AK!7Zi8zfC0I87=6*~up!)8+`G$9o05*h~t#L%`lKe8B6bb3@$bSfbx z9k7YYfOQJMg`?TyY{&R4AT|blBSKs!k(|W&HDfuUAG@FzR|=S&m_2Z!4!2Cc>~|R; zo|x0h>V(+btct`!Fu7zdtqi1>uVtMA6#sJJzr{BIozhVdI&~cg$~gzbovf)St^$tN zbuHyyiMvcanNR8#gk6OPFIRK&OE3Thp%<6xnxq&9k6`5X|$lUmWHoxLtKgsTS z0*@{y?0)}iibc6OIq>)>&HprlR$dJh*0uqR?jfLqcH-adJ{HhD01jNa5^?bw;3x8j zlS!Og$iL4x{pbf!`HVXew@jNuZUMbZBkZlbS1n3I3hykH2mt{Bf^xdLSkysCc>|{` zZ{zCa2nwN;Gg&R3YumNly?7N$T_}kAvQN5hNy2ksZ@~|c9si5w?T_I+vooB5*Vjs$D zTLt5V0OR}~m+(H8MIFA*zsGp57G4Ateent)Z4L<5iX9fkOCGV0b^Rl@P=$nJRwT(LHC-!9h3 zkYr|IZTqA~_=&v(K_iH>{{OcdugIQFZq*m_;A^QIKpOMz!qPq0B$woLJ49wYDdxqF zNSDf8qL{mvx3AysiuU*u9FR&1#IGTqP&rx6=4qG#8bVABWt^!2afRa80^6%W>qd41)n!r{(=h)`WW7spv8$lk(MQ&et1$wVKd@?Ja?c7AspONrRE z`Y6?L-S5L1yeCN*Yq)RUgba2;$!!6frAG0!Q*?c-%k%7TDbGHb!6hxBj?d&)ciBij?=8!{ZS90ay-vn!Y9N6Vf_9If) z;KoDCq6-RE0tgCGSND=_gp?Gg^VV?XB^Y#aBEl*7Wh&Cn#%4`fNlE+ukCW#tDc(+| zcB=O;s$&IrL$1OFKS=J4^j($*$*OzzGUnjFGb$afE-tVK0`~Ipf&CbNVVHr41u+na z$#iPC5~6m<*kKO#j_NAkG*5R$z%DgTq*dTQ2l}EiJ>Srt?&1EyMo-i(SWiTepGdnc zCc?wTdRT~;cg18NqTOGz-M)v1sr!!<2L-`g*rPK#F%eG8%!KL1#cz{a?22@G%fG92b`Fhbc} zURMn#reXb9k)Ybdz_dK?|Y+*UO#~W=nta^*z+#aHoOo*b7 zpC29iJ{}&klwME(LyS5&wV4^*d;=!`AA85V4U-xk!0NS+8NBhkK^W(LjYeXWYv)M{ zHBYe&ica0!EDrt!AGmM_Y#4*18Z9%uCYqo#?0~cp!*wf1k-to9{5u80%auUvN zY=;lG&6Jhx_Q$Q5_gLp4MaJyr?&8!gynwZv7Gd3%H?Uso60G0GhWE8E!v-BI;L^+C z$lakw3wJ&4>?}Jf)iHM5Qt|o@lIt@VGTfohu> z(Q`-(6Za6>TS7K>_N}5?qhg0#^)obfr<}#Gbi<_8w!$g7x#fp4!g55Z6b0sg*2a*b z;WQM2^xV6f4Q+H}1iJH8q`1aN&pm0yISFi{#h=vM)X2z%oE%P52ewyt1E#c1cPJZc zGS_qh%X)iT#`Us0qu-ZdE!nVfFN4%KvVY){5_1zC_zat|zQ6~DzQX3IfUG_#8p2RPX48A}`B zeHL?#i)#;c*7drv($cJjeZ9zj3~S9K>fjh-aQ_eo zytr}6w7esu)a(QDzyN5TzITtKg~tKK8uN6pqht8N#ncnC-$cI-80x>}B{I5n+BKV( zh%Z-~Vdx{eisIF96HY%>k*&6OSr)>oMIRjdE+r{>g6L(VB~?~pOX7O{a5DfgL@iCt zbJV}=wgDesUpOiu0nV$t0JqB4BRdm zlT48Cp*ufrdt5G>Y|{wIqn=YM~D9l2;WAdm)XAZ1yU( z&eK2P*fBV_z2D*N%4b%?nqu~xh#MBiXj$R5k9CjrtxOktu=V@d1}u)@AZIlM+J=pW zHjv+`7m;KV^3q+gWMz~6T-09h@)#16c0duizC#i<8i+v%iW2u(5RJ9l`ObHIp=e-K zWN+v{L65`9Ik{2fJshVrP#6&dCe^%$+|5+x&_)ts3wUX%6|tUYQioZJV^fx^x@ojy zJy&7XIi*W`V(ycg(@3-cQnGCCz=Ja)Xa z6prhe{PVBVcUYnN$!0X3Nmpxqr)Y7*dvi^zhpFAm($yG<)!ZZ!^^lvDwngud`um2G z$*8LawC@9FEBLc78UvurL^g)7QA0&nk{pP=SglTV+zt8D#f-*1)z8uA@4$TW_~nc< z)fPxGam&wZrqKTVk818*)W&kiL=3WR;45@u;9>L1LB|_&%_x#tyox(Y|7+r zI2bB`JpMEtq$VNpH(*O|l&x8)xsNFJK`&I*MM2;}3q2EE?Vo6G>rti3!vry2&%$vT zhN>Qs*uu^q*is9kQsEPu;XSt#)EW1+xOI!nm9`IQTmKGhs&{_@dl?#ijLeK;@#qTV zz_=E8S9MNIo24UQs#Zm}&GD6oEQvW~brl1ku6B_|*T=huf7>>KDve7F^=h*m-T_ev zD~GtKO`R&DyYI&-qxkL!VyD!9m!dZ1WcTce^7Hv4^6=QnlW=tJEw0?U;(<5Xj7H_w zy{cVbqkDLMhlFqmz3P1%VE=dL#@t8^&4D}OId8R!Y53`))nX#3yK%z|sqT-|?)%2+ zF-2nKnd$?3Ti(qg_lPD=q={m{?E=V)K&bd3h^RUIdmW9@&P;^TF1dOeEf~)1q?|Poz$F-<*;P-Z`A~y#QfE#^GHIN|vRovMF z1QayN=@4y3eL@@D(dtKXW-oq06{(A=b>NX6Csq#Q8n89D?ja^u>_V=m(*+`w+WA9eKx z7uT-bsiM+@FQ{}`>e&E$_s%{(d%|M_RHIww;H4nT{B~I9@vl|0ifgRyPh6~aeZ}Gi z*axZ;y7t=A{;-vs-$Jm$g*UMDx#zm4On;p1GSFg?1T(fn>Bk()A$Ms!QD2rYR8`a!#aD-At+~MNo4-w)uYTe*o<+inM zPQ}JT(<)~XmN@%_abdJ6DDjJf`+_9yxYfv4LeOZ}yLVVyG-CDqsNlFV_n*i1C|~x& ze8zcp*fIV8TK|EiIB?zT#-D$;nvpG7`S#CX=Qprxy`0B_!oljA*}zQxb8*Xb*r&X{ zTVxJ|{LC`WhxD1Ay|DrI&!<`W{&3?4yRyz>>Sao29u7uM>LE*Xe00(#=?wU$9b>s~gYx zufEVKBrPuwKH7f^=mZIDX~r6+fnj-r0@>2xw$ES(L9TQCYvgh$(vk^oZSnl4LT`a- zu&oW+19+Gd_>h_1`K*x*MuU4Vyu2fxasxtwxaUbqyh=TgxkX@-N`hNpF~!dhSur+| z2Nruorx1$z=;F)HoE5MKdCI}DfHOXK8?jrjtjk_l!e}z?f1Hra2#H4jf^-b@)kslV zpQk23QM5IpyhMRt-8b?cFdq}trYhT&5cM_zkqkuC-3XoOfI$++$D;?2$;aq zkR&O(j1V1%+{xU)TB>PSbM~8lmL48=V^Ebbcw<+cgtojVS4wOo`9o*a|zc%(pxqpgf2r zK9kRr%ZN%ypNs1qFY5B2SGlWFf7`Sf>w+HeJFv&$){#3P~_3_sTvMArw9sL|Tw~u^L~~j`gKZ$Dodb4kT;N6D#p0a~p{=bi7xEG@m?cmnJ^O_1 zp(C{RZ(y-W(b+w+bfx;s3xXicowyDrA~qe3LEVy#t)<-5yE&?`rRbXo>xo)e4DY&IJzW)W@D8BX zRCqr~;zb&RU$!hv>5xq8XO>sMLd08CFw6xlWsb^wfX3EVRG zhKlPGIjdu^gCaaoXlR_fDSGZDSj#oUmU7SyyDosAcer9=rUmj3K=D0c7jmEzIBhM^%+wUd-Qe};>_p3LFyZG{i{RcA^D5H&RwXo2204K_A#;p`d1%5dc zZtgIVa9|~9r}gVX^Cx38d1UNlhiC|i1*H(}n!a?aff3>jqnsmXWld?{b*Zrx_V#z& z4ka)U&aJ8f+aAKgXP$#KZ@{2)w8{Em=0~vkD-23yw!LfRU_i_>>O_Mj(HJIq44Nr4 zcFco@QP8sEBgG<+az3t_0RcPS zn3Y|_A>auG{tOPR6Q!;u8(pq=p;Co_^=SU`_}@3a7NWbtxtiAr&vZslciw(@Fj?gh zRdlzrRG^DKfD@?HT4@m+KSPn_EeLUs?Vp{Oa0iPkA&TEYPiOu4Nq`m*`S@s_hF zNKuwyBxEZZSrIlrZYf#AqGpunS+wDl>O)bom2*#kM!Dy#n&mIz#bPcdlNFsUnc4

e9K7_F8RSOl>58;ec<-i3! zARDa``5SuVfYlP85bqh>6kU6mSS{AV9WJb`OSyXD7u?JhK0D7?y72za3=hvR7hYdR zm-|vBjt|0Wfwifo3+s*Z1K+Tx$S@unpe%*av7xj1ezB{_jas~MPfeqpnq&kN#Z zcVTJoWTKKPnj9t_R0^P}a7Bh^hoz+mMMMZPUA3kP(?1s3RW5ztycf!lu|cmA+_$uB zYDjXtq9P*7TlIP>XtjtVN8r<}%g+yL>aA^_tKGzQYr21iYvi>1;yzpXzzZ;Cg|QqU z3aVMT`Q{Qn?(1M11}DesCOsOr?%Wp)P4EY#&aIz6yc0E?D)JWr-J!kL zkWUss9_)rTC!3IC(nKKAbC1Y}@r?v>a$A^fw6)~HTj@{E0HvN>ZebAl#E#g>*?C=2 zDThP7?%+zd`a>ctRr8`te>HG;WUcNfHB6HwUjA@g>ZIx_I~taG$J=26ikvMh{x`^j z@nF;95x-12!Nk~jwm{3q-2lWwVRnh^a?m}iynN!SEDqhpVc>-EOqN~B>5;fNOV8YA`dtiKHO+Mi6lp-Cf$+PkJIFmbLK!%M zWz03DNEHFyYf!t5FZV-Pa|^6<;n8!M(+=rHH5_RPt6VNq{TB`<&0T#*+PzDe0}TChkDAtD#;B03HM|afd@al?nvh)--FUGz;jXGNmtS{T zZh=LJ85I=83O!uiA@cfiUBY8y;R@CzSn7=UbCcMYYaD|4v(p}!ko+a_uAGCz)LmN9 zALBiz?^5K8ZZ<;I85-q`hbHUV{?R zBe;w`JExmdX1a$y=VQX7hs{7()x0O!s)<+`UBm1QM|0a9wti(-RG_=(qB;Dk^QcYk zaidJxa7JMV1h10n$8Q7?Dc%5o>=^wDM?iJ>^ zhgH~oZPPGJGB(z+nQXp=-I4clB&;#~uUPyIB^3ORqbm<&`v3o%v1DwE3id}O*_@87<^f8Xyv z-pA{HJRe74A+x4mYJpotnwRKgZm*-V6X>&(sA=naj%1j!Z8p z!JNun^lhzVlAaC64pX($9w|FdE{1KxlVmf{V36xet2C{g^UT zXps9fH)>h^+?p)`5@AAZ^Ws9?GeWFD_e}nW2wp?*e-+v#0z|q|#Yu&M0TVCHWZCZE zU@W_`a{WeqUQ=nGe493~5zh0W(%g?*%{c9jkQEG04XNI8#9Hl~NU61zj$g1_AzDqJ z$dbfZPj`T9^i`U&XJPts{8P800<-H-__)@b6o_J0ZY^yA(s^@kIql>ZyVMrD?w!_| zy2c$fokr+}18wOqlbjxHY?b=e+H6t52A z)Gy$?hO}~eF=*?kWhCz=wjoTOqDv6E*M3CYu%zo<6wfsD>Q&6S3L8+#_XeMAai>SA z`Ufx8Dh0?}R$ z(k0>TZKn`{6nv`MuINd%x=AvoE!JD6HRP~MVJAjV&tqEw%`;_uY){R_tPRLdXI~|+ z7On|!N4wIWkND+n5^Bx+Ul*6aqaKNfJ~z}=v!ve7Chv{!;z-hlYl(Vf&XeZ*$8v3) zeJYiNGhv%I&#xX@bWFtru860uF4MWt7guZGYKhTLPU7370wn5&)?*!PvlHf`jB!&^ zutPVW%2kU7F`8GgzJx^2R{fgU(&z6`W3DaAV*heG@HYV(+~w~NlMh=cmy!N-5DR?2*Q z&fV$UtJkw^ygrXqC738Pzd>!x^0__>Tjh86G_UC)hxG=kzS`PBqrXFDG1x{aI+;aoW+QE` zv}HGxx=pEfyH8D8eTD}!%F5s))rsx0J$pQ!`0?p*;+l2(>!L5j+}6(M3~u4VUul1P zd-!>C90g+|maA_l<#_At9M6@_E$MQbhfh`r7waq5%b0E_Csmja5XJXSiQVVnvkodg zzq7KieK()M@rzy18k<#(*#WgW9LB@NG?gY#mejdXX;!`QU|1N&g_m8&si*Gq0Lojf zVmuC=m3UY+c=gfeWm~(IS{7dv3$8fS_rsk3HZ=UVjI6PvK)5#=YD2H$|}G=24xmM?!TVM7>=qX=Bh?A;n4|CCKM;H0Io4G<8cUfhJm!u$8x78kYl7YDdBGe0Y6=MF$m;6;?BQU?I2<@Cmc5$5Is$Qb)^D+-e2@*EB+D-9k*mT~b#i__@ed8Ym93%e?s)IRwBeKM?=l|{@?znb= z=pLB7oj`2eRC~RPgE8-%QG3<=AH4PI!)~*#jtck$i{3XtX2B;==iD9NGWP=Cq*5uI zrIxIS$WjBXOr)bzsUA=h{BMPm1G2;jHOe5TYdv-sr@PQA3#E8PHKPT;#HLQTWI*L3 zEFmi`hwVo&xWFpM$M+U7dY)U6fm=&I1&7DsNFq8A`_#Qkpz5^AXrs$Fxyb0H|5Qb8 zI@m%a$8XicsLxGYj;A53@=OS^@OpT&uA1Q34I%O7HQP+NW9Q%h!J$(#=#IT5_j%;i z&Tj%(@YyqGXkluv{6X-^1evcX?xi73Hnlu?r&Myd=3aZPnmu2(RI6My{Fc$S1#uL| z)$B*x(vKQA_`^b{yNb`b^XIXHw+yfCc~5wO+*j~ChQ#={%)!hqme%o%OBl+G$7@`D z6Bh@^*|0Y&oz27oi|=CS#+3Sm4JctmA>g=)OfxF~Rs2MkU{-Ny9(|>q-Mtj+r%nD| zcKXpD0@MWAM4q34O3cN^5yJvGF-({63VGPlw$)u4*fs~_76jYb%}w$0{JSI}w_*t~ z88&x3<>;|APkMxN4Ey_=zTCZul`5_A%g~cfoNRy9_M$7dzXIJVK#)(0B2`s zqgSD^8eZ87XKf*wqiCbmsF#2_>u<@@=BBVFI&NVGkzy8_AMW z$yu1%weckWzDIL1rLhe;(oc&E#BEc!s6jRyB0>%b0TqtkYg{cuXckW_Ki>QuyYi7tqice?c^s&eD@Tn%wxxYU0LTG5*oqjl_ z{sC5S@uE}L2i1%D`E>sjCDk_+I=AKl7VcLwhmU&veaOJV;?nTQ^TVnpe@pr8!y~&N z257_)i*h>fU1G9=nyxLpN09B5;Ge@CUlYAwBt{HM+El86GFhMy6c9ord(z%(l1?`M zLtaaw#?TPB6LKVha5w-R(qpBU2#PKbUV*>o9ZLvqQu;>whnPw{_2@I!IgU#VKLKO` zt891Ai%pVwZer`=XIT6QlAx9qDUI=EX*vH6J&c825#?4l)9y>xUy6n6{yrtR$1V#$ ztZFIj=5Wf0;r~`FM~)&cJCS%b%mXMX=Py_6e*3j!WSLD~En0_p@cR%ovyTK~8Hk(R z@%7xZdH8&Jz4Y>Bti<~vFvChqO5k9f+y1SQ7xMD3(mL7JQBxImME7^8mJlEKO4e^> zmXtaiDTbZOwR&S1Q6JpDru{>Y@0YD5EoUvPk8`|t9mCTht(!8*G6^(8< zM5;2fA{lkeYi`Ai&cojaTFo7=sW=T%py@=hY3KF^8Ju4&lytd&RT9AE^HTyQ`)ct> z{)G$J-50WGCD%lDP@u8zI#?#1$T9g{DBDrpHL>#}Tgie2c5+j&6VEn|{%e)^_-ul% zTc#XO`s?Y>ylG@lT9xUJ3JkXBQ+0Ss+tX}_9w$4WX@2@fySafufeqJ}KZK%L>D};$ z?d!A)Ya681RaIE4(pPz<)~~Xn!mmLZ7=H0GoZcthr;?zqgwE?LUMaXqk}ZG(W*I1=m?$tE5Dwk`-cpZ0DdP$)*8L)1{L=d<_SS?v4^ z8GQA+srK2-JCa&~0Im)dO+%%4>{h!Z_yMHNWO7K=%d>APwM4tE|2#&G-H+DXQI9HVmP8#;N7Q6IN#V#?$kx zU+pSN!j|9*HQ_TaKDUX9$xp-63JM$D(o82>MqtgQ)wUEjr)naS82)(yS4uDM>(hch zR3tq#?j62J{rGu-YF7qbc*|`1uH^YkDhI!1&_emm=ElTJ91M@~;ozHkU+b$t+4aA~ ztTx!&BP~gceqZL+nJ$)%*eRvNcTF@~SG%92i=O2zQY`FcGnSl+uVKga5i{D~VX^B! zcBykCS=|Hak!(@7`>j|vHgoyW(F5zkqN6=H`pXC4mJ9UDIi+0|SJ?2U+Xw?c&*}P) z{#yPL3ujVF-c()VRlmEdyh92F-&KfVgYri&g)sWMeqm~5(ICrS_*LfFyvfCUZ*2$U zYp69XL+$J?qd7rg2eAWp-x(|3)ZBt zlP8O`l6(=^C&t(a5njC41|xAxqY#QAEmb_H+Y>=!zFmOd{ou!nLS;7^FaaK}trMWH zzo&&Le}(-k-gMsWK&akL(?b)ogk*8gdqQ33bnXtl`e1+Pc}lBSVepC5*wN0f$ama~ z9hy`3m!Cnu@;VmhUz4$?tkj`3lM7mp4a@ucRSL!Tq197xKt92~?8T2Rbu#UB@S^#D zKai{8^Zj-27vLZJQdRa3zxSN$O!Pr(-coklljac=wjal0r$UA3}x3Z<)wbe=B#2 zO*5zDvRlz^G1to~&P7dCbqg^4D6-6!;Z_G648Qx)SH;mertOB0hoKLJvSOW4A>R=z z9C*BJ%da`C`NIPAb+c`pe7UO2BR;#LLwru^Z!iB=te(_q?PaC(znIU9az+vGhwVldI%D3WO6S%hynZV zItZb%ruVvp!_E;k#s(j0CKk4?l%C}X8j zMfFsuj#5}F)U9fs!NNEk#HB?emJuN!%SoUKP_D8QuF1!5b+V{GIG4d~`iC25aI7ou zMO-04zwFoOL-v-&FW8kqNxNj|k>n@rW`fF(kR!M> zspLmulsh+6v-y zyvx`AX3=EN=b!K|=b)1-a_zLB*w>~OsoWXXbsM*U9Z5E zF-J5P+o|Lxi`eaW$K+d*zs4YP4E;7-(fp8~z}0F(_3>VlD%$iS=xnrtZ)U5{UZt8y zH1)eKS3M`Msm0l_z^2IO6{QOeqqYTM+9V791mEeqe7^tK7kvoAkk(Xhhf zU(6>{-M2;^XVho~FXn`6h3m=JDx7%}^Tx3aI?(VmohMexFxKcD^xf`z7~?l7X4FF6 z&C8-fC-6Ct(o(%Vq}O@j5qJOblUVJ0Y4fLFuxMaKGL^tNi(sQm(1%C4O8Dh#6grRc zppfiDUph^6^^^{SA93;||7ZKtW?^{4vlizI0V@V)%@Ggh(OmXVvR1Bn4Rx*Pa|_~+ z2JgB5jov0W@(7OX*t5_Yc&L4E%QUw0?pMtH)+$IZuC;#BJT=y^03495{Lu@>|AzMC#rKlUgpeJ#YI= zZ^s^Rp{CLQxHy}qQE749XxHXG>=iGMpM!&3Ac@jy$h4Q(;&3koU&gI z32*o6s$Ej*Et_U1Xm9mz+!vdM30KX0efe%iF#0cisa7;ms!)_b_v54!gL<=u+NIFn zw9%BTF)S74RK+XlVMR4AK?5bsj6`CGx8a$3qsT{n#(MhFiFL+yA%zozd2y#))AEIs z^rlB>)-vJ3yt4 zJfOy4txT1Mu11!XL&M=FuAC#2ObCxl#aha`rhbpLZxzEg9zF@{I;R&IGR-8FK7O6B zafg7_I*zIRaBP9SD5~X)`n6%Dw<-y-6f~_ck*WYma7?M#lgtQeF4er>v6QDCMz?s3Q zB-X>ppRD_@K4E9Z6x3@mS%3S6fupTSRaHutY)j&bYKjbVNMSa4-b>S=!5p`c6`Nxs zZ7dp-2UDFrG8IluB}%i!Dq4zK!C`?qs#=jT(@IJm3aL43R8^@Hk!7wap(nd~36hHm zs$K%GKQElyid&k*-+sf*{pdR^^-|$EisuR9A@o#MF7=J%t?gI_v+jO-aI?K_d~VaO zc$bsgc+Io8mT;wTXCuXCPda7H;n+5K^Qr4b=D{|OE64UKggKMp@%@F?q{f&|i!JYZ z{bVEQk5#r7oqW@J<{&p#`e_aukp6~yr_fOB5B2ZYAK`bCSl_o_bhLAL3PaP|YCV(E zdxD)2`C&C-M7mY>+kQ&{Pp z2Uy40H1>K%^8R1+4?H;i1B!dTbK)~r#o#6;RV-DVfyyZOPC@)He-Bxf!5R;u^?~fE z_(s~+ezj&Q)ub!b$Xh~4G_X=}o}OMgdUF(tN!^evFdHgU)^Ncwf7w}Bko^N>mAcRR zhCwPPPhGQdZTT%gOUc@?GU2 zuDPP_FAiG_6aRx=RPArrdSS=30X{QPZI_|G>%cSDLvB7=Gw?#*r;rVcDDn8fUpRe; zL7CA-la|fHL3{7tS*wYl_i>ND#@yT!o6ttVm#RhDdE-jU4Ry}GeN*uOM|`lNVc&~~ zqZGyWWA|_0S@C{s$><;dn=t`OfA9-;Ki&pJSDK_Rvx;*__%a+0p&OOLZDe10YHxn0(&rpc$LS=8g2OeK4ECW0%cLY z$?D$#TfJM!bnl0@deTOV4I3&VY8T@l;Z4m+^}!z%$KXAI8=jL#7ZfXWh7@(&<3A{% z5p5j_Xs0eA=Gw-;A5qS!D0%ySd0r8%Vi8j7pqiG&iZ9^#Hf-I9H`8m}%)`U(Ok=B| zp&vTRM)>85zHRoN>V*5Zmo0w*lWmMY`99YiQZr6Bd9R?HruoP&dj!ta`(OAxWN2cs z!oJSHrFa$H!Nyiue#v?n#lUCNeG`-?U7V_@pdcYWy%p#wTVzICeKhZuwTp)@wC$C8 zkMVZ$R))NFL$}y$a$nDPEzYzek#&`5IUySLt@yFy+R0Xe#=QoW2z%woCdci>%ntf@ z{4s8p*^KKbwNCJG)0pAUrUB7dl&Zlq01wCDf->1da7Qrm()s!gNnYGZRF01%NVvntKFAFQb$?R$mYoy4j zuOM3lJLC0&T;=XZf}`1&{1cLu0{!$oK-{6(^3BdN@&{;h zhJZn^Z2RR&dqKc+$Sjwht9)nFjIh|$G;Mp|mJ|5!B?`i04=6=zOz?R_q5(+7l+x#h zdpQkSj-|@Q5!=zr0&H8!-(YR&6KuuRe$29D5LlMJc9^4WaJDXg2i9t?x)x^x5rB_X z*`F1o*c;5E^cAqU`Vw1?tu5|WLut;G%ZLiW_7UshftWaJlUEkaVodbQR$FfMe*$n4Fp&b%jqWeFSVv z`hoe?At6#NS5j3~02Xkl{Qw;6K7wCICSMl;0ay(e+_}F;p1SKZ&hF$k#537E)U22@ z^Wue!b_IPVx_qxFH|^l@Bgrw0} zUHe?$DZDS|xrC_7^_<3&U4DKMooE94d8kuaFV%4lnE=)m?=f1nY*l?~SE`0^`dLFo z_XJos{0+=MYg~rVzcO!r@!O!TSUqJ<@%^g;-O%`<5VWe~_qWWiF75%L1=KqWxZK01 z&k}NKaY=lH{M%u&9hx`8bwP7@u>9zw!P8@l`8 z@~RU0vXSK#d*rV9O( zR=#ciV)w%m<3r6VDhM=h*l}`i6-)4b1U;yEjFr|3xJ5i*9=$N;QudetEXpaR2mhRG zW!Fi7VE3XmM&WWU>rMG>RMap+5#J%o(*A2p=339`JE?Lh12X;nFa#TbsrBad1VbK~E zpwGfKnyDJoO~@hp{W8KDh$N$%e2YZZLZr2`gj4pn4+hT^w$Pi#Z`TqW#0X(|HTDk# zq-LdW;G#YdQc#QS4_8^bF&=rEViPSHWglW~Go20O+1=g9>au}@J-3CzUI)$h2YY(wt@$4nh`*PU0l8=Z z+g#Lalf9$CX9&6f@VPE~h{=GoIvu@?S*X#MMMv=J94n1xf~Bl+gfVO4I1hrFPG7p3 z`xLMlEr3$|3Ye9TO87FXdSu1?-i?#jzX1_Zt`In@yZgA^O$lsrH&1tEgM-@DqXu=@Wbw@`D;q_=wpz2QaZLLn8 z`1*DxMP<&lqR~i_Bcfa|P@ZlDr>;J@+E-QGeN{{XODo3LsV-3oLpC(4uE(wukr;3N z3OZr~H#A-;qR?Pua+_wTUpPV<+O|c4*r&cszV(d&BLYj+qgio`MwN9B?dNmBNO!8$ zggKpj<#k$7x4ZJC?SVpc+wAa^QPC5}-?6?&xXU|HJnl*BoP zWL`5(pdseX8$FuzcB2@VkIUwLx)Z(3xzn)9otMc(2rO0&DrO=g?WXsy2^9IGL-h*H z*`)B*7Ni6;m}?Vl*=Twb;h3LTbjDmbLlSo@fqmB!=8Cc@>`r$!DZ6B*a1)9PnNy;d=tS>HtS5^SPUq3}}=OaP_U&FAx+oL?=OzM<=5Qx3F}!3qdYpVJg@BodGxN zJhq|y$)8i-XE3Db6;>u#QYA7LJXBE)>NY_}RDx>Ci$LblH}^1P8SGbR;}(HnNNB^J z1~vidm_(bn1bE}=OJH609Wi>_A;@loJ1a$SC$#RdrFGckr+*RC8Vb*#a7cXlJ{ETD zc)WHb-kD~kHq=IIUcKq;&YoMA>T23}!{oL;&(xmwi&<;{b|r(&lS3qmLCFYc-qg2* zyrkxfGoaLNTo-tBKC4x7oI)=v{X-+JMJup%XeEFMh*j~6uc2sAGL5yA7#Wz{h|nm3 zxGNT@Dao#Ee_$kSC_uI_VheT$?85xml$i6tF~8l#$ME-``L^XGz5; zu&6kfTp$J!SxR_9TLCB{{_GHBqyD`_pRElE1FY`;xLQk8Ws!lwu8AM^EjMe$ey7!3 zll%p?CH~WT1Dccir5^}j@qS~oR76yMRY#2qg(iY>7@rnH7#Ui2a6|&O`Vv>9$8Z|T zo4Dad1Z3syh}0!Z2nczFA>O2$q^I@Mgoye02eyDK9U(=4_yM=B8O`wtjie+By8jf1 z9$^ZmXSxod&7wA|GQXBWv|fDjThs*U4?! z=u)>8=BxINVMSn1^+Qbi;vly29rj(KUoIt8eFdbNX(E7Tb2s<`xMUPqJFZRi`fU$5#Y|N>Dy` z<_VP(UAkNqUd}@o4SgO>OCT}yibT|hs#Io{>$*fhF~O7!H7t`A0LgVi;R@Z;*&yn3a|y; z)+*C)O6qg0`F2!%Nrkvy9_}<*kW(Vks!{KApaKTI30y-EZY{QAg-xU4apOr61*|Mj zS>Jgi!!K9YFD#MdeIXZFvrg_+h&YC!T^9G&nh7QdDA@;;cG>p}*^DOcRlH;xthX@@ zJpE>=A}KC>5a{7n4L4z#3f7{5D!-&jo)e8M%D5@AhU*diL$&}a#A-Dbz@$PyctuyB#nZY^QU zF`XH$Ei@S;0q`H?`d^>Dv4>Y@j^5<-@MC@|B-)lXy8^ zLgkhVILlt?+U`4t`fF<}%z))9XuP6#bb>+2U1(a^sG#PvR5JY9Zd3vI>_2)GWhSdE z>>ixc3_n1Zo6+wbLLkoyMdg_LLvBuc?hVKB_+kBrZ?1`?`!glURhG&$;?744$|I(> zbl|*kaG^u)P3-Ek6TtJU%!`Y3nXcZx+)L|M*6>A?EeF`wbqw9bz5zSCbN1Ig0(xlBMRggF>C(FHLNO*Q z*8zsG{v|b4v}tHj&YeAGcb;&e)jRfuzc2MQ9iA{>?asW7*9>6N#n`#N1gMm$ad}kk zZUpvSs!dNir8C{_pviOR<>ag(N#n!X7zTKU3j+rFtw4WQj=a7$ zX{yf0F|~}P+1e?lEJ=HSSslsseeJ1?i9_%j7`lRH3$(MIU>aC=w|E##GcW&*vE|%1 z#ZiTAj>rz%EsstVuF@tJlh1GEhKO3MRqW=6Kxk5-16>-mqJHswQ_&mCA%;%;U0`9g zoC9I+@5QZOw^OWDT7+omZu^C;W9?#1gsb6GeW}*&=}aXyTi6+BV);7>kPg3^TxYDpNgW#zR@ABL24ydoHzvV)Ed4G-t}x-Lx9uXLF+t=h`D;9qoK zMjm|&L?c*IsY)r31~%;yxqznl18Q+URx-ELt-?I}AB?J2;`>>(EUrldRVa3q>0Wt{ zDb}r?S$;UnkC|xj?p~^;t%EssFlx~$hs)i;*fJxRB1l}RW%uMb(|Iwn*yF`sIphF( zp2wcECwG5ZvqHvlyJo z$N)~|{ooDCdoEH)@F#_4U<1Y-FT!)Mc!P!b7H<|Znxe8TlDpo^H6g?|7@MgX3oR-J z7hQ|nF#{K4xf-(ocX%pQ40-Y9_{MzkV!Ws2!|HzC1i7s)E*vmx#6*qaY46A#Nf>0? zh6T(6y{luua=j;%Oh0euA$k|&R~!lC{vVJ{Vf*1_adgta(!AFBMG*yKYfToQ$zd=A zwiMrY^L6!_5L)W9hH@vIv3G0f&WvkOz8DYiOc|7FD5Rl!@g+?iglZ=g<(q55pDqD@oTG#@*c>j(T zITP=e_KtinGVK@~om_O6N5<9EtU53P8ED23aoF(D58XOkaOC=uVg=_Ym0xh}!w1s-|Nnv?T z%NJvDkPl->yeBVelRWHlkm-iN;x$h6UPgZn%^CNS+&*J;zSb&bRq zAYfzpRhb0t4jbPbOI}*bJuLY zrE1g5RJf)RMWz?EQ39cfk;3-?xd>;wFRMGB&*y4=P%%Kt5!4~xAd`eNq}$qiNR9c? zFe$mb3Ucjv3}f%6`kgFNy3E}S&v)^=DP@jv4ji|GXB!`M^2xp7=3!wFU^E|0CJqA3 z+kdldQEgDF$Wh~Fz#+k~c!$MHRXPW;pRAL}CdN5l)TY+Rb0~DoTVbB2J<`66CShz* zRZCdsk6MO?>aAy`V&siI`ru4f7I3NTg)|?=7*R!yF=B21R13tfpK(^{PzCOg-Xgy;ul=ElD5Z*-Iz{r(4 z%pcC!x_Jl9fcadJ)=S^CQmB=PC?f)OwJq(RG3&Yfj_^T)0-}mvts)GFXwk~2TGfN3 z+{E**=I{Q8!3h0;M)blK(b$lr&*@oaV~iY64P(UV44dyd5l?TPjp=@r7*WOWAR7v> zcdPnbzqQETrq3;MC1L5Ag#Al(956rYp@AA|B+)@@YL`kpqnSqu(I>*$=Yi|RS9Y~Z zevZVN>_>`hFrO9`za6~|?-szP517p(va_d8!>(r))(uhpF5hiZdY5QP$oV%TKSU}8 zL%4rd2tLqO>Mk82BNBMWLF`*Teq{M2(s7B4iOkE+wvk9S|QKd`i4(il=FG{q7;mfTznO? zDd{ITsy&PM@<8zTw2g&39-w!&uH>*FfUughyBHx4zG89dxs4zd7H#b+#Yhup@R*h7 z!>{PUoQmLXIN!kGl=r=VeIyLBM~GzY)o%D~tl42-Pd|CgVzE;kbG=@bLkx?9P}(XW zE*>fUtX<`cV2AF{j_wm26?Xbx7(fnO$6cHt;(Z3<7~nw192|MO8%G}k8R;1yD+A6< zO-Zra`s)#lfrB?+wz8vw!rTbc(r>8w!)#??znnFsXL4yqe87KT+373=t`%<|w7z!)jg3aOenP?;KLcN~mdW z2(ULA0aWickUVrIJx`Rg@`-689MNUtc~eU2hJs39_r}lc!YKB!3_@* z<^uyCWM@=pbg)ktJH@)&07+b}d9t9C^7ElgthQCS z&o?i=8zwZQqqdGClFxU}OE>7{_cJe7a$fK@$qh$Y*zSWzrEeb4rcTFoCqjULT^mISISDSx7qF|vI^UG4ieRO$S(ryrVIc~#bK!H3CR#V+lM-R$AmYKMFzF3@ zf>UnUbVXb1R&Rx2CbV@=Fxh7r2Ey)t0BGNQ>fhA;))v_b4ASKDflkH(<1odmm=9JG z@%Zfl0Xs4~&o>|2NB<#yjWXHwCk@x&ep0F=QGqN$)?*%rp z?R(hR!N138gbNuUJn<cd^0Hp`FUMIt#;cOm zz=?LDba@-Bco{i0e3fv%<&|h;cEKtD4r=?)&&1rlCp=YnlQeBSef)A&Z|h%fc4Aq0 zP8End1!u>isomm?((-;O1~boL`;KxzXv9$r+8c3%?o@th77g8pvAKfp%QU*b(G-nY z9lQOPU-SEGZf<-WA6%3nL4Yp91H@1d-slEIw*IPxYMZMc`Fx=F>qG9q&;>c=^J4E; zP{n_LBcvpa2jkn`xL3kb>S5VhVl^?p|KBqB{EM!|={57_K81G%av3pN7oLY#{MCCs z$q%7}G#px`UU;CsX9&)?XRs!|O$^o^deG4CHwgP}s-{M4q_PTs$t7eIC%qdVKdKg* zDU`Sm%0`ubFNulG$;I~6Kk;b`P*Z1z-QhOxARN6i^lv#DP_SlL+_-ChX2<&9;aEiT8w|w5 zT5g-h{qK2zOV_pEF(Zw9E%0=1xmAmn_?oNmKjOv!3(Q=YaEZUF;b#%>75pP$5)H5w zQy=^?`o4n-&;Q~~nNa!L1?25p&AqX9{mdG^03@C36aH@~RXm?UIYl)gh(CbPglBUA z%QJq2RLWTM0TnG6=eC>0RO~sxRs5}0i}nUa$Fdg26_Yvvy!^5iXGq^nHFL<{AzrP#k zylA-g?f3pqeIKt~er@Fw2BXc+NA^iTcE4;{$Hy;!c@?IcSxTJ!GRuC13^2L8N zyF!Ku!6^mcOz(H40hj@Sl*irYGS8FNA5s#qC`AmdFyMP_M(F5K;PqB~j(6}<%iw%$MAJ6KW8-n2OiCZ8A59=^k(#dh%l z%{ypJ>)bv&NhjBypp-yNu6*%Ady`%H8d)zLI`F4P-8qICEqoYpV@t^h$^Yq$ZpM3? zh(|M^Lxvt1ha0gwFlh7(es!@MrhGuYY$#Oeme#*_a7&nD?rnuWIPPgJR13Cb9p~M^ zTxwFIoJCE{c(8BSKbVc3U|k3y2Dc1}a|bUpKkkl>7A$w&xU7u!qthaljzNZ}>rAXV zaOK0|fCbHgLdT@K2H;-3d(xqeLq>cWh^^=g=j^`!!2ORS4?e+-E{`AooJjM;r@au| z{XoswNc_VAHnlVfM+-gYv8nPgr|>Fh%C0R~l-e}ay4zsTk$ofzTzWPE>Tu~Pt#P%( zGEi{sw$Cgs+e$*6(0boz!dT7K8%tPNeD=B}^I* z^v?CiAD$kNNsd+Dj`CCtl@{e_98~fM=lx>1xHH1fCIbGuIqc>b=ujMBzHf?`ju~dm z(^`pR8_Pp$fgJ~0VsMjBc!#!9vs|rH!Wxq*m)9Nn!^c9d^#G6V5#{GD!(HTx58=0` z-gbCLGyMFA{hUi^J)e0`reM;qxk&t>U$kx(RvoOlZzyaY#6DIE&Oal&MJ*feDzdV5 z>>?CVH?IGwhVHFtmE>K->qXtL8D^v`R!rpxBezC0-4N0I&ExvEp~U#AhOj#tveBfE zv@*G$U09e8)^jRv8~nnh*6lNMDOXE5-UN9aB_~FI~O>qoh@e<9AH~}o_eU9 ziY>LlU2HL*(8d^T3~X8TC*Uk(2Hg7!BHE?kbk7XHY(_E@9aEpd2~SUTQw}|x20Lk= z+kW2t0@mCRSE2q(490zUar|LIP4MraUfYsBa8S@fE4)%@HuppO(AyR7E?E#qb5%TU~Jt}0p+-+ zNqka0E~+;1Ny)fOp0j`K^?MA#6O3eiN5{G7IcP-Tb_HEEKUvJ{8zEtF5CYTidX=4F zU2&qPOp2Y}2(4tuzoxS~Dk^>9CU!PEyNi{%$#+Uh;DrC)YK!g+WMh@A-D9I)?vH=( z?u8?`V4F$-)HHGP^_RI9%I1;ac0YC`I@;@=mMNR$GT@maOMrN!@b;9*K|!d4z8 zvNWb+b>b1w^W``8C~r0`;{)v?dI?}u9G#5MIhK@xJ)DqXB(M<0!2Wucc96pvbupM^ z|4X5aD!PX-(r?~!^lgZT!=FfZuWwKH_b8m(JKi~QATm;pK4L$=c*jUCbCP&flFB-O zCdvNDs&9ZesOmb1uMp5n%c%vJUpv)M0**4ysEU+Djvja|MH6%={LcovcwX*}yP)^m zuR}ARKfzxcdtZsu(!v}6>{h42;MVgII%IL%VV2j>1iBH`z3%6^+dC{H)R7w{N{hj# zPYN+PIma6(iUMllarFK*wW&73!XqjTi7j!#i7IWH&P2cLs3#`FlAP{Pg(|mP9%a-m zzKDJBFrc)1qT_$Rn_>=qo^L&Sj6E_;q5J^mQ0vfmsCxwqIdet;3GuPgcTG$9OL0pm zz(^PWUqTLT2HUvNSP5~n)mFi>wcaZ=VUKoKgwsx8H=n-5h?~~^e*Q%UUeAuaVZWZ4 zStvq~=ToBW!WEwSt%6$~JWPZbz*(s1D2tHv%Z3IM# zvBe8*DR3s5T2KUH5=Zl=(vuy-2u{@m73?>>uhz585X-%;ua^y}+Z=!%kV1SlAgtDM zz#T(e%?)gQ8Uu_%;^%!3o9t>24P@9&1yN#bKBl6Rj5EJo+_+(ep*_f-8QocULt#8&WPS7&NF#$B`F5sg7B#NeRC}V<^Jh> z%N3hJ9h~>}=r_gl|IHw{CUk}8TJ(YGgEsEl8!>+)uXJC1J>K@_Ff#L7{wu8Eo(0^@ zW@BA@bd>QHzciVFEK@YzPK5WXT**_!Cur=);f@<`=s_8yc^i6^ zycK@qsy`^K#seJP{>~+%(RgH3!QNONMl;@!(>D8fn{jbW0{#_>jOwoOQQSYX*~G>n zsQ(LNr6;r%H(t%kHw{1JnHRF7KGf0*|H9$uYC0ZLP=Z3Wk~T=dT2Qtmb2?B z@XG4C@<5zoLsLr|Tf4i}@vbzHwc6!^1LkB)jdZnKb@im?MoR&E+x9}b+qT^OWi=@& zS|aR3TT|T&2#qF2IA|gYMBm8G9>+B_pRYBhYnMB%D9E*F*2zQgEfB6ab&O?B`ag=! zG%Tt7Z{vW%S6k>DHE3xmlQ1nOB1ycmr`p=tjvQerY2?vW-9Jzi)d5g zw5X{`%ZykVG%YS|wu;S^_-~qX9-cS60$y-^xz6u*fA9Nq{}Qo{Uvl4fuDRWw$H2;c zv#%kLZi@eaA<0C^Pp==0c`$hPf$AY!O2Ffb9=ZFNv)F9fOh}4QuuNq5#4eGfrXW|= z28j}@Dj5u2rkS5zF{Rll3nce3Q0wpM%Sg+k5sQ5zCKla{5|K6~=k6K4)>?m&^&u?O zRE2tey{1Iqpb6+bNSej+HGhq}A}sX;bR#2v)Rfv}8?RE_5nmEyG31(Ppl!{yUWme3 zSj-bVt%eS!U~=48%@&~sg7}qPH*O%&cqeR2SE6pj#{toDjvv_N6s_vBi{5&bJ~~6k zt=G~l^_?oy5du*pIKV!MGs_?6!40Frcd0o?;gq5ZXio+FpEl5Vx($l2>4M|WbYZL7 z;KZ`J+K2rbD7mnL#-&##Z|(655e#mm8xSI$6o*;NnmA$bYHalN3+;a+^v1}x*~tNf z7VJj?)&g`wx}`y|&ZTmC?Nyl8a1W+5Ov09e;@&T++Q{!li z?FZuq(n4lpW`_21Zrb6}d-sdQHp9-cpqQ=%Wx^k6zSAoU04aD6F z;&rzzj@;+y*r>Y#}Xd9ny`sGTLGqH-}~sA3W4>YtgwS2!Ra8 z&k>vYlxB1$>Ds=g0oeJ{b(85V8^1cT^!gAD(Uo~O9r17ZcGfftshdO4NC7o3v!M9tx9?a+gB-T2f6i*dbbWN4 z)zN|6yVZzv;lwyB8$WP61qRj!YO6Nr1H-9-fnG|_cOIA2yNze_32=so=;)g{$JTXRmqZ|QMDVK@gpxh0I zO1e{t{{?kZ_T|HyvJ_yz;YvWFJ2JcRgc!_bok8HkfTv5`CbpAAwte>=c;|aDM1Zf?{Y=Q*};kTYRJmLeQ? zaAwuYNOE45uw`=E48jVZK=^t}>jwy7Yt|@U?5Ul!%mAI^xZO}x&e0E5Ds0s1%G)-F zvO;Jpu+L2%#Sw`lG=6Pq?C+67S7AAfo&EayA(O>VJt{5fR{5ABeOUGyh}7|O7Hhz2 zdIJ%JVC<=8=tt+oemUo>LA1P~Tt>np`6!*GV>);ZgR-fuySMMa^!oEzs|>(7v)Y&H zwlCo4ss*zWHbO&2hC`z9%}IwSU$5(t zXxo_Q5P3hPeyJe;6Ca>=8 zusvvMF8D$YXE^{k5drDJOu1=-^pFH0mvn}*_^azCW-|0wHrkrDd>I0RD|NZ^Bp&-N z0e12B&#lT@nTc+UVwv&ukW)iCHqI1FVEut|yTmMg^$nXdyT~0KP8h@V=Gen_dCXD_1cgWG&Kyh~L`UG3Ian!^ z`_lVY_<7OLPLccMHi$}NU+L#Cs?Jb{GOGIWLdvORmEzAGCOS%AU-Yt;@JJHHaPd*) zBrS`OoS6mtHs04}cM`6|t6@Wu0tZ861Hwb*%8kKLD0tmHK!(wuHGjksKTKSvRBEtt z?6AGd7suSLOvOuh$voL+Uj;qp7_@x#y20RK$tZG>c;bp#Fzytwu|z4TJ~x1I68RGyKZeVh@?@sfx?vSYbl5#~p^?#S?~ z0z;6qJ~0QxB8UDvp!j8HD%02aM5M%xx{32DmzGh^!I&RxQE2@;jdQz@>0bcG#GUGM zXnb->)oZiXopQ-l=KzBaJXQ86A!kCdXS#>^sCY4@@e1><{%o@smy57EVndHjjs?lK zTXsc!RyEWshOrX-0dHZ0TReX_V{CVFnVdjf(i$wW;dQ69{ar+Obq_vt zn_bqNQpW?uon8)b+~cfskVr<23h}}?$t$Ae&cTVbD;E3akTWX4v}Bm=MybE*yFt8> zmCRmS^_1?KUcox^<6HZ?m+Se(gGTz>vw#-g)q(6#w{^nN4u6tGtQH*IvH;H2(%oHr zp5T0S2KPF+YxnJ25*&HHjb#Sj8H*awMC9-7Pqc~J4*|hnj#$VYv|Yb_*}=a4VVX6z zhB|{<+?*Q%9cIZ9Thx?9NHFP#KR)Sz_Z>P+cP=VfjeX^{B?!p+Xsn>6UM{$hg9PGV zkk|K%!v}0dkCgOpGy1nd4G~w>Rj6ziQ#3vYeO?7b>=3*n6Z5Y+@nSa$=<%DEclZui zrJn`C1K~X2{96c~<2ae?;DoD&)F>6i+Josew^j(p=DoJ*bRv z^b1< z!6AEt68s{^-|nCfgC5HDUx#>sCqAOO6si z*G(uZPTp1}a$h|}#@0rk`ron~F=c{P{0E~4hySi02$ido- z;9$dd$7&k~TQ?vQUWpMth#8BVi^*@~fz(Xjm}F@fqw?Yb$0?h{V(#724+Sj)Z`?cG zza^cj$L_@!IrNp>+oD&=1!zE!g94jdeHOBqr5&t5cgP%r`?qhajHM22i;7}i&)Nmf zVVvY_=Taq|tAlGMB+!EDuVBqTbP3)ScR^k31_=?=m_57-4H z&JSYmS=y%9j;Va21^58&X{tT}W#tvqK8hOhTb(DlXt3N;g5?UWa5`WIAKL{iodUd@ zpUSrF=n>`fr+k5v*NVONOfd$NN!O477}T5*ja1?WA2BTIn&+l`YKJ=?S8vBq4T)Pu zGmMWW#;ja*PKlN#r@8xR;-t{_H6}B^HuosSO=W>)!89-BWOc4S=PUNp!yy?V_(W~q z{#_#xNE&niyVqD3eCC8ddK$bs6Zr{)2N_Dka#|lNrovk|S#xPBGe1+;o~XFI(lpo? zyPp0D`9GySSCex}aNs0<2CM}#+`Wx!DP9>ySF_#a=zp+;v5tY9;NHR1tRo#fE#w3^ zq}XHDwTR3NZBYnxRlAI+c#UqYLqmyfejApUQBpqG0wQw~GNH)gk}3vZjY>uR)?F-l zNGnmk)b)yJz3Zm`GNyjaSMiM7W8)TaL&E?d2G(z;VGSYjclNJY*=xVaj?vJVo*T#4 zq7z+cRKesy9C`peix}>Z^%40yF`w%0<@thfo9&RQs-WnYEgTgBjodJv3v3Qu=@xXf z=>mvlRCH{P3CeJJ8igAK4kYaTn0R>-n!G)9c^VzGQSZh>OhWB7{*HmUqUhjHRucY} zS10qwDOOt&(pUn|!?|Iimzx89Es8S}isUOR7IY3N{+D^|IP5FPkDEcr8FR|;(Bh1~ zBp~a|F;aHpRo3&5TNAi~u|3xvEzEl71WK@f+eJLAo+|qGF_io#$UTZ#Q}Ifg`QNUP zgsr~aLmr<~R7eCU-Tk3?7|w2yik_77w#M{<*a%dpSwu%3_FAHLi4N}{WtW{j-}T3s zu68ep@x;nbinUNP77!HTInKPb8KtyqH|O;^c1}3>y2O0NLjTj``J< zluJi^H)0RxqNoU(Z^^$|1YW)}wDtbMKoT;eZ~9BNEFU`ZU=g^FRgw+jN~EWCZ5Qhp z)ncHr4Q|kVR5A@fr^ufHgyiVeM}lj1t_fJRu@%3I?KQa*5Dct6N9T~s3;EV_+xH#d zo+8rF+izt356JXT94|011~F0ct_p^}kiq7dxP&fK`}P~+^7Y|L-Nr35xuSabQN3|} z#nkxx2-;@rJUA`}pghD(3buN%v7rIF_Qkm69h!jcIZVzEsuZ0^?l(*B5MZAUJs8?b z01)SU)B_M+WoWhM(|*A@G~@Fm%63;p^PIM<+&^D#UT}Fx3G%1VwneHg^{QO`RKvq% zW$RQ1OQtfk@?g6RV-~SmGCoCb8MW`|JL%C$e)>oQ)OGcEQLYm5lL0qzw0$;+gsXZ- zvH`PLUQC2-8SqrAar>#15JvJm|>JZwlhx%o+B_oQHKWtF=`F$h*WCcvQXF}Me zrpwQEZ%N=NU^HO}`mq}Wz|GC-nm;~p{7+13$AWwR8@=15{~hCX{cSUQ6Ev1Rz@wTL zYM{hZVrYq%)gE8)$GqtD?U=vJ+#=BZ{#IZlM^%oy;$uc9>uwXd3rz^m2t0leH|s>6 z@1EJ)MU_EBMVDmp&Z$SVhQF48)=Rw&i~dMWOHY4>#$%zO01zqJt{2CDd@JPHZmb)V z9y|W0)xj8XNpcix>2d3=M!0D76*1Syz0jU4ecJXxsu=S^R$oVvYn0bFz2m&h0hf@C zhYO1!`n^Ty4#k|I^k6qURkxp3zwLO@@p1|K@_(J^jsNOUI>(;;|5CRvJ5_;|Je*@; z2-pGiwaa}_i+sz~FNmMSliUoS^K$3_n6G1XFmQ?s+bFANX0+sv zry0n*vposjYs_ALR|VGmjpl4f>i{*`{T|cRuLNtc+|d>gr!e ztuWL`4?}_XEJ2IkmzI#;F{#ySK6qNwmBj>u7x9PM`^Gw={Q?$+U}i2m{|Ehw?DyCI z1K#||ha=ARy%L?c{}r}xefwjhgt6?bDyiW&cxu1ND_!!lZ6m~~f>Ut)xcKxT+>)AK z*PL-k-#B`(e9)}*Jq>{=y@U4Nncj?zFW@0{EK}L_S(cgdQU;Kjotq!af86AX%@CQo0WcVAX)Edmn%YAE(N@zu?E52H%c7 zm*w7Lg;BfYDA{r`vq*e0@VQ%j`uU5dlP%+U%IRvJA-^PVQ?3t=9L9&*5 zclOd%6<|OykifyC2awa3l3G7h>YSjt*=LdCm18-L5*A*!1EM|hj^H4t7SRSbf9kO6 zrXl+l@U`SE^us1--Mm+(d*@q(t&5MS^|fNgifrh`WcHC>BUsM&jaZBOtH(@wQZv4Wb$&Lpc-5a!GS= z-tu30I6Wk6ZkjT+yKEr4vA3R;Ue zl=ho<#`yV%99^}gYW^=v{t^B8&^9hPIibjz*FE^w%>5~60F!3#t~(!b^z$hvaD1+h zd$t}%FGCwFVXH+QeQjCxc|o?x(E<4eFncv}ke-k(mVa21J$XOP5Vie2s46anE1HOs z?`L@z6$(jtZN2aM!%6Y9{|Jec^pzX9$co-x??z>&NQ3hZ7Sf50Q>-sn5t5FB(nfDXNc*r8|wpIk<~= zY>w{ya)DE)VY=XbFFWwHmrd6` z+q5MhP)dW97;Q6JxQEZ?kgegKCWW36VYYNXv{U$FFK260mr{SZX`#h(jqW>~cY;Z0 zGSi%FQ8-QsG+XF0+XML8*ahZRBJ>PNNuA*}32T$W(GU!{m zD&3f5_Oj%D{Sa& zHi}cD{LOuxsI((|TSXIf8xCB(Mcw#$>x=C)OrBe-`zm+A6xzDcK+`+5EAsER$mvbX zS5hdO?>t#SR*%~_MK$FM{V+0M+LD=_mREo+KR;J9t=Y8H4Tqn*p=ubWHQr$~j1bP< z^wWVstyT{2ENg_5^NQhw&aT8L>iDOrg1-BQ9B9E#GbM#7nUpyaxCY>@7G!$?p3Ie$ zfpi|EV~`mw`VHPB9=GnlI@uwg8nSCjXRa4{p)!lGVO6zon4s6-A4h}sl zgOds?_wCuNhdmT>WHk`6fR2fll4MJzi5DCd7=C2<_sh?jCTm4wH0D zXttFmdeHIp?)!OWvc9pSPT{Le)C1W!fzIHH+IXKKe`$JNKC6D{$iV{!8T>Z!S_tv2 zJ=3fEQ~ZW2>Ns6@Cv5Vmwl7y;w69<4vd>;ugS?cxQ^4O-Gn^b7pF1IzW{I`pJs@Ax z=j*4#QR-daU+W}w#e)lLQ;d*o5PZ4;UpJ2@R&D1RG-ocRR5!;dTLaaP!RBe0{AuqA z&z^ZFYS1A+9r@Sz(o(dB@O49byZgHiu9M%p2Xkx3kObYI=aukwLD%%e8h;-8T~w)2 zfGrtxG(i;lAEso@p%+qK>e|Mi|Bd)`{t9NTaDZ}oev8r{t%Q}GHTeqVgU~oh_k(B5 zIEinMdI@{^hUBe65ODSeoRFI4bKc5?MjstA{)r~rkXNk|d^4V*6Np5;!9avDY8_KE z9A)0BsVH=E@+H%q_9dCi#=1*6jz9!@+0%VQf$vX1;Cw+IcCZ-U zRDK03dFQ?>{idp^;A`JL7ZGyC%uLSEFn8?&oYzI<$fqdr4y0(2sHn&G;nZsN z-{Ox50ye8mFjuQ0^Z}nZAls(xqi_Y-Q2RqSJumyh;rdLyyxIya&+#@ZPh$6 zWYN6sq48;i<4$7d3|^jE+Xa6LMiJ0vjcb#%Dj>BzP>~nnYhR#VLX0*LxziT4FA9@_|D#v`R>^wnzbX*T zaOy!>>|*oJj;08@*Ve1HpaNfG&rQ4C(8GN4m7(#c?$dp1x6Z6xM-1B%eDt4qs_tk*MyqKdM1?~-GEUw$9sypQRnp6 zQwE9`to^3C^<$!Tr!zx!V*_5VFOD2yf-9K6*69vy^`%s7xD<<~?mf;ud!*1n85FUN z?BZBqlaaCI)TMP;+mTtr&=R!Wp5kP2fHfnX&J1{OXpQ-=5+XL+6?B$%p z<{seFUj*naV)@B{)U#Ly%7z+c>*~IaaAs(`DS1WN@J_7jdKusVcK^Jc={}uD4&Eit z62sOTUjG}vfheOpI1;NLrMUK-o)+g98}xTn*6O<1yCtTk=KsxW#`a^^kt#?vWWQ4T z)5=9q)#>Q*_1D7UJjE`v*DI|Oik*zf@4-UBCgz@qOdYck`Y*fovxTz{A7>Gcw6jc4 zj;T1+r_XgZ^XFOh>(ks{B^FhYv(bhqk6C0C0YU|QYB9|IU7*~vY)@rS{kxe0U0uE{ z*>mFzRo_pIaX4`?ye6qYgYTfB)H>-IZtH)cHdLiN@nhf-^97qL7ei0?A{ScqLAHav zeFGJ#t9ySnpm(yM0Mf(1qf9<}slycC8W^WrOTL?0X4DIMu6CSLM-N;cU5J8LAE;s& zICpOJwcVLBcxTLhnYd$JdbIzLXpCI24Aqn|=S23r&}gBs&>)XE;xL+N`ph0@Q`*Xn z^z061l}OgjxD$M<$ZzX*s--R{xWwTP!!C&S>wIcNGihgI5mR&c>Bm0HR z&K|ZrE5-pj77hz3ImfW$M@-*Zi#LdDKaW_c{ka*(ToZJc#Ex|uaPRA`eg$#MPRUH+ zOtO64-V=i!Nx$hjR34{!%|tF|E}Luql6lRcy0c)#0(4yp)PL8>iHvY4!*{t80;%3mzg*6ko;=| zKf{1~YoUOJEuC+`Lu1RgWh{&~+Y14o7)}CU_OG<~Iyv4hQrEz03mL}WMTR67ny*51 zp}QG`nyQva$S)l^bB*eJ9#TY>Iq?~*UvJKTLRs5K-4<)#Z*-EJY;oc@*lvM$DV0|Y zG%je}V|9d8=xw-Q$kkJC!lV{~Pxfvp-P)0{xZt9@>9(u-$ zgcwcv>UM>eBN!H0kzCYkI{<{QI6^~v9j;*pA>!;KyRma6K}MZYU#n*o001WeZw$gp zLGlTLJtA#;K4w!hkPOB*-*l_DI4i_>ntlfIW5|lF}=?uWEPeMTU#ujhxHv8xNO2NK-znMjSM(a=f6HeqP_0& z-EiSFqThEU+e$B=gQ-G|jRS%(( z`LHv;X9hP++OvpF7cUiSm}$ioMt(Zpbb`CV`J!I2C@ap;isr$|dYzFn0B&!+13cN= z-T_pG&mf;V$|8X6y|eoLQc}mUoE-EuL3{dGGM^#)3@*FyH5j8YnXp{=FvB|cfXpes zjQm5bUa4Ew7EWd50|4*2=v?#U!KG^K6D8mua=B}c60&<6F-?44A zO69p?Opunw`(ltHnS&eRJjU#dm~Z~sek|kecOYwo?$8L1Lx*p@f{zTm2DsP3)7@=- z3_U+bKjE;)x%*y%_{VqhmIUqa@f+maTYmvJ=}TA5{>~A$s_#}@WiC_6{&t=L zSi5&y5&x#UwgIIl$83X7AoS4YSYGO@uK&oz6B?l6#^bGst`o}EmKNY89UVC?Qk2~P zl5y3&rT|bZ@IAN9f51!APgbKBOfLn&33b1H21_z+$MXCCgpUs7Tp9+<(JL1YmY-$e zkGA=`sNx07n(zM5FE2klol`N%z*q|>`SC-OjV(Q7InWZXyCA%+Lca_yUbF@BYP)}L zdhGHv8OZ&Eal*Fi8ioBjQB-;|EdisB9$fjoS$t^l6`NJqe97(Q3Y{ADi&MUCgf;$wm%R?wnxthXia~* zT|n{pZu3{C&yAMR2*BGPmQR>=8P{c_Wj{U@{V8>7do%BFYhf1!-p|!thjdkg#fTS2 zwtJl#Qlby&*r}?O(?IYFvtW?g8}h5Z9|O(5Y2jyu*`L-K9(EZa8r_dLRv^a<~S4ezQCu$Xqk50zIv z%a&snXwNHC8hYSFv5YSssG000vN8L>jN10Bp;#IS2+k-ag{GD$s?wbH>_>iW6a1(A z+MlYwXehU2VmjRY$6w^t37)g3TO%8(j5xg)D!^ z2Y-W7Lc?<^~=&9>L*=5{<36gc0xWF=&77cHT|L76Mx_9&fgOjO498 zz}27zvi4_Tubz6;a3vSB4x5zOd!xPy+dG7E^+Vg_prYi7! zh}1FJu%H+~{lAA)-_+X9!O@l1k-Bn)h1e0{)Wy~JyM?4nP(n(gjm9IaIBa%^kqJ~- zbE><^4Zdi*EaTmowX#C8@$EZfd--02#!W%#c5G_o0{NIRQ)WaX?4%=luBrc8$wbJ1_JV1#)g>mV6`W zvfdyFp&Q6&sg7Ir>eHq26(S*;Y!I|QGB_>NcOH?6OqVDBiCbV`cJE7ureYIvr{Uv# zC>A^g?K)9LIFd(B+ka=ne&Yx^#pu=PVA+%=p})wJXI>_ZF+pW&XCDLh% z36AKdNX+^b$~DG;6gaT{jyB9rX?62k;X;?Lt1^pdQspfCClipHo=p5p@S#3Mw*auhN96F)<2qQ#6j=G!wME0Z1iDf zP19d&2}lAB+HhiFQT}0Wr5cSFendC54S21d(fJTCw}H&K ze_DZX6zga2Lss10XUiJFqP}KA0PNbR5;^=_Skv)FarqPEwi1bScIu9aDb!=T_m}%{ z{>HnB9cGXBP`_|4zP}Sdx~@&06IWC=^I!;+xZ-_Q@gI}~>tp{dEJH{bX=yqb-f zN1<4Bd`c>;KU(ZZg~Rp)dIQ~o3`6@dFeoI(oj<+4`1Ts~AO%yn(MtW94`Wfb(+GH{ zBw!cv6R`Nu@iKFK17T1=d3DB0>L9bQ^=+9^vD4D|b%B6zN)3=78MInQLtlW9zE>bv|a_SZD2-*chhkK2pnFfpw zQEWmY6mV{saJ6j#THZL@Hzmw))Dxf`iybZB!I?3kA&Km!=z?fTa^=lv;U9Sf%BrvI zZA+KtB($T3YZ#icX3lFE zq3_02DtwLgU{>lez_sSSsi9*#tZgF+mBARgIPX+7Uy)J3-MP!kXXzWX^#I7OkPS-S zLpIGpflO#|m2k)!@!tbz=bn8KU~sIdFn%4wC&a3B8X%8=>%NT`fcto*u(gyLK%Br6 z2r?TFxA#xZOi+Ajl%4`1O1c=X-`pbaX(@Wbn5x4~T@inD#(4f@>D? zxg%N&om38E(BOeULnU@D`y5==hYpnxPT=+R8adE1r|z}|X7l@aDE1&~w(shcBr9RB zh0s|=hAjhiP=ngwWf_D!%Nv#zJsrR~*hQCc+6MaZrR&Km=)c#v$Arz>C>G+kkpAvE zM>cwGK0}SBv~Yr=PWK|NMnueeAo;rB0NMLzYqQ7~URHibf%^I^%PR<1NAoZS#t35~ z&}hN^dB5O2e{1dUT6%Rm9;oWUm(q+z^?RJuI-!0sG&s^fC?o<< zp*%K_*sv5XI^>5Ngn7n$>}f%HO$+_BIRQ0pU-Ixh+#{)GWli+M0$TuVJGcV&o`Wo# zB?zjUUeOuk6rCijV$Mgl$n#~DET^K8`<|u9?VUOSUe75f(yz5PdNI&b&X4n6h?*mIFSE9QiPa{j z7Y?cuE9xVD__rAjs-67hnLYfukm98BDb=)v6j?N8w=^IRhPp zY-KTM_dGNOe{gQ|inc{6>r zW91}K(*BgX@o9T7kW--#P;bvXNn>Ti9Zv=)I4%f@aH7egID|-@sCT@boT=SUCT<2n z)ed1Vvi;zIrk4B2c$2qj1#8`U+UG4eTKi6zLo|r^N>O7wrY+)j1kxd*c@j=;kfN@+$P#6Px zIK1if6dJ}<#+Vf`8F<&SIAJ_oqT6gXmM2sts>cUs#w$hfIcB2<9QNZ! zrP~$dh5`9bB^HXxQd7@$3L-!tmZqt|Qa&*Z#gUX_x4x_&EQx^AR7&D_0Sai%X+}lX2*r8T~?$Tu*NB zsx%Iir5m8Z3QftlxeRSUhI=@%Inx3NSm(dol?cD98~*40`99+P?@} z<0nEUEWs~cO+zJj7w3a*6a7j-Au$;lbUKpbWj@;JLipp;vSU=Kil}Qm;muz(?x-yt z2L@&Me5ya6WbBYNuFSeKbzVar;Dk9a!-GMg2sNea;Uo)s(itgWUQZFaiWLsXbpfuc zM!9`HqrR@-H~nFcmuW=l za4$dgd@p=NaueuCIle{JSzItZ)qoyuCWhF=?c3)K63})e{4}IDdqAJ^Y^48K@)j-E zNrZ-8hvNe0Zc&@;^B_=*3^Lo_GmWu5)2?oH{yW;t3xTRdzqc%EDava*-yA`G zYjcwcL9L_svSdg>Sa|=Kj*S-GenNfpuF5+OoeXL*`<3jknZ#rK+KRIL5X@IXQYwzP zFY6F2l?s&UPNpL9#kW)^Ut23`nS$InRE-+IN}exf_td$E_2C)UiaS995YnZ1vuvf7$X%oGHjzCGo#`U!QrV?E?H7`K>n-zHpOM zP&9%=r?H{HCd}+$Y9LdGxiw}v+V?KTqihQkBy>Ku-%ReC^2smpC(O^NNeKSd*onrf zf?Lz3=#AOoj~g{?d^QMT2z7Q(5iD*nD$4&pn(SUMV`gBS6nQ6Vm{h6HfUHLK%csHT z+4;s%(^ws>zi!(ypZ?-f zOKQw^s4sS!@&`rg;)TI+i5N6M#-JRD#=Py$YDcq$HG>v;XuFfW42{3eWiQ$ymbWdR zhGvfi&9c)n*jVdrNl9}P!!Ym0$OsZ=YPu$B%4JqCs)m{VKO@j$dG$3o)@rnv1G542 z!4@9ztp86upIq7w%O4Eu7tyC3jEgYwl2t3VAZ8K^tE868+d$4Iq!<5n1p44Q6Jcp9 zZ1G1y&|vbpd!uC$vIX>Yi#q)LmK=&>i#;-KDd^Z+NG-cTYqkL|UYzzU{Rgsj za&q+3ygEn;_R*dsRI5AHD=mW1askfW(46JaoUn(D86erBFzVHkiu0on2%_htJOl8$ zfw3_eNdtMXi<_H1i(Y8u9|4}3G&m+|P#GlHeW$rxq6V(#J<+h-l7iRpx&gkWfw74w zTWJXJ*10*8SDSbD zMNkmFTbGN}uZs*V#>brS7;7_Gw~PJ5)k;tw8RA83O`i##Hj=z)G;?#ArJuU2cxPih zTHTi^)qeU_P*{n3U9hW$+g2p<95~UE`~G1nJ9-Bt>y44r#D=QM(|oC}z?bNG=HUwvkqX=tML= z;~fd(pvw@Vm>(7HN0>tNosi0_okGJccWDUq^nu+cprHnZ@q9Plp+ z%xT1qdTaG;z|P0phR97SbwAxH=@We^dYyB|3Esg@!k${_KrJUy#YmKXezbdI<$=rJ zJvABb8K0swITsk~NRLJVB>R$@}}X zuyQ+og%u)t@i{lNU#1;-0UFm!1vJMb!T_`>U!6D<*P_J$&m6#ElnVZ+pCde`vRr{m zPk~8%t2$uwi!!ar(UgHJoKj||eL|91QTy1ky+>EVjT_?ETU4I>sR&hVeI(mPkYVW~ zw@mD195`X!CT8OlR6E&jR|;SwgY?%UJfL@INfuA+1iwOga0Pi=XeSDJFwBP8&u*jBVe{JKS z7f|SK?#j^Mi3K@iSR6|)6~QY5c+XQ#0x?8MTl6pa@q}ULmwF1eTlN|&u!5w4^K$>( zT%`X<%#Ake)MHa$qU_NWmfJ_9X&1ms&@;u(3k(BGy}j6m_Go&h$o3ZLm6m6%h~3>O zoJBB(%?M#1?!r|v88Tu2{@>Fwgz}OXk2XrGJpW-`}dZC;oDyVoV1PpqlFy` zRn?+nF{|(O|Ij}Ux*sNAdqthDvi0UQhVzR`x4Z|tb+AqDSkd*uO-b%pRXp5(=^cQ! zwR_Pat;IB8_BjtpL1p@rMKip|gzq#w%R!Ii3eU+VH-7G;+FL7JJc z6h%GoLQT561mN6@j}jAClV17!RHI2rmN>QXq4Umj2msL8n0DxI9ukA*weRnQgn6W- zqJnax{T0qIduA2fa~9EfS|QAE4ih$n_gF9fUb>$e7+{73A0&QZf&D75kEs=pdkF@N9NU zV(etAFIw7>`K?L*gb0a6ALgVb{CJ>eLEoMNt%(oa3GzLqY6u2?F;zwTskC>$uShLj z_ym3dH;%o!8bL1_LrR3$j{Wx}=7=ZT3C(WEHO5ax;av zDaL=4%9WqJ?>}laMpoz^uFVnj{ewsx!eA+bJNdYSa32jaHQK&X5&ufx)GY`|)HBU2 zk>d_>GAaSfb}ISc+7d=~5M#U6tTv4wtlY0>swU5aHwz;xtCW;nr0Gr4@Mc?qX;PAN zH_ThPxxY`ny0qT|t7exFHt(en37g}za}4MBkJ?coy1c^-r{YGDSk4o12@!8(Ru+{h zBtFgc0dbeX^QEdBz?GV)HO*T6gXc73MtaeLQ0hNsGkbl zGaIy=&YD^)lxO314krwHO`c$sW^%(KGl{lsQ?x-iILfaL6Dg=#VfTtPJ(!ACPAc!^ znG7-^B{Mj6Y#JCFGPCCnFh|Yp=>x)NX7(U`(8kKt0w#Fk-l(>Sd?$nNVtsuouQn!D zC3-g62H+ZT>Kdf=>#H7eQ2PR4Gyw6e~qQu2=#h@hU}7??o(tA2#&r$N%{;Yt1@y_Iu8L_f!1G!Gjwmed_2d^aGE#6nP$vEP)8 zvQ(>{QuEaBwBHvWDnD@bb}DQo)^os7l)woQxnpZ{62N7VvKky)tXw5gh7Lh5{U>k6da>?s#qPCE3914 zhvp40O$d=yWZ*2U5Y zv?l!IkEPYP$~rpbUsepZGEL&2t@wQB(4&3AtJT}bPM*Ym<@jB!G#P1}KWe0NoM((m z_o0H}>v~9Hpmy!Ce)UYs8JkZI1|L0$Acyj*A6n?L9RJKnEZ(~IM{2{aT zEALx8<_POYAJYpTg*z0V3KTgd-1JY-pDcmb*fc0!wtTX5T;;tK&AV{CxJXU*s8G@6 zLtFW23*nH`T7xvYT=;#YHowg5;_&cpO0lZM-qcAWIikT4z$B z{OnVI$VcxOs7np4*kl>XPbD}pgXYXKtpDvY^oC1{sbfY?eN#F!Z?oV~ES&o1Pr;Iy zvU9>8`C{oaqU%)rFbW?Ahb|Ov{nb&6N^0n{!46G&0b^YnSoMq4{x|Sem`io4SoPEJcLp=z zSc0Z?NRh%9xl?KzH~kR*_A1r0uS-&$aIm6B757iJo=pnnj2Nguw=56;07XA$j6&HL4hGb$MOJFPOeBHShQ-~WC73D zNChH94H38T#$l zt4$0|#1VxenY-Z7WO&TKlc!1%fho~QOaR{wxmq!rcUa6Am1KuOJKoT`_LdgG9tP3; ztl6Ii@u^D@k$8d~-gQQNp|O9B*G1Xs`B-{(Wb)ckNPuLDCnW`6|Jz897%hmWX<19iFJ4%5_U-#f*J5}KV2+NnAH)7O3PYk@ zw#-Hiqdm4zwm0nywO)LE_EzRN0=1h52jB|@M=sp?2rR7Ae1Bq1+1&)i%cHJ#Hw~LIza5=1DQtvuxjotLnV{_Lyvx~s>E@~UD7Bz1 z^H&v)wzN`n2nUjx%hwZqkun~jUvSr}u3O=uSGBSL3?a@&=;Mo)Fh&-Wh&7$okoF*` z?uN9WvhOsE54hjt0r@#&2Q@Z#v)fZP{6)O|JPJ3jEJoRZsK~*-YXPI{QN$e-rqSlG zA|Gz-ubM0N{&+3&+fbu-KlHqXwnZ<{6ZI8$bJ-9;iyBz@r%@+F_+5U9H$F|(Iw8A2-or1>*GijSiXVZ|#>4uM5 z#_q#);5t`RH@nQ+KgG5_0R%E*2w0D$XVXIUq4s{RD8QELc^B`c7y^Nq*Z>US1}dTb zo5faMx+W|$Tq^4IOkaH&L(Y#ZW{<&|P}4v5YRr0?U5Q^xKaET~bp`>XWj4id0ka?0 zt{acq-Q2SC1n>@cycvD6=vNC330OGd1(xFb8!z$nRz9u08tZIvB#6@S%jDmg9Yn`^ zk`M#uhQU|~MUFyak_c4buP8M^At}9tm&unEqVhtxDYKw=JJM13QQmo^&ZcNu_)>uv z=*jq>pG9CZ%6`n>7VjfSco*<1nu*#5;2DSq5SZJKD_CmEDxNtf#L@0u$b2AuE2Ljm z+g2jf5el?&_Z!PR=7Gb!Zg9PE=!@5~omtRA6izVkC3L>==^>o+rK^BHa?)dF66G}M zMOH8|>Qj68fF>C|ok+{sON8T{%0f7@rOHGIxe?i>Une!?8&+^e zRdfP@9zf~w8c>#)T-veFOWzjmNHCeS$07cu&1xG>T4BcO3!mjQ3wqLUVIgXxDGLW@ zJZVU%Iqm_%gOkbYVCKLlXM!ga3{LG-Wq^p>aNuk8swd7h-2Tj8aGdr?LVMurOECh1 zzOWtvLd5Yb`ZdNx39wpt7JGRcEPy9i9+&%-u{pGsRK*74+9TTnfrREfdxEzWRfmLk zNHh2P2ZOdTCj3qn5Ptb#qc{8-mXKzQgt|ep>~{{;dEC~@sIvFos8|>LfRDR~yp&!Q zcx*P~CIQqV;P_UAIJpMY(Yrh60+GqGhTN<>hjRsNKKLt2;G>q#5DAj=ZnJtTtQ)(& z-G5A4Y>cAAy57F08TXMbLP;JqEj(tnW^j&2*Pe0vs4l z3if?oI{e7OF!3uA)Cbz(5F_;+N=QC8^gft9+V}u_c;jAkY_SZ^F#{Rvy^HkQ_jpmH zoUD(7n_>oU8@F3ir*8W@c=Rka6IBtsM%#HkOL#feE;lK~_a2280^@lLLn*;N%l;RSf-GO}l7UxQv5ZMu zXC!v%@}&Z?@=2cW3W;=PB&atf<$9zb0;leqpuw-N3HKl1K2C!@yJdr{Bc)w?6=#-)T(sSmvncD_iP zb>!MiEu!^mWD*KYJ$L8f`0&mLT%PQs6q|0)9%uD_Y#OmhZl53_;nWq*Yp$MC%yBX3 z)?J%cM1e$b#qrJWoU4(VL6jFSd|C>+GIRDdSTvpv)BJ*~YEwDAW|3xm%&OPwpl{!2 zIACpBX!`xLd>`JF2nUSzZo6g%Wu)k59EvdqX!vE53$2W`P)hU$0^CGS4X1%}WoaOg zQP~`v12n|vsTAGX4b;7np9|oeP|z{Iqwg+YHJ4eShm>}c+oZdg&7Kcl6Pqa4HNXRH zGZ3v>#xg?Cnfxi}Uv4g#M}M?} zj(3m6;haH>i;=go8*30`Bzgd6qj5kp5Vcq(+ekHP=9x(y7SkP+g{+S7D5fLqUc;>{auEx-&UO2P??HgVC^F$`N3)CWeL7Q z99(*4vQ8{#HYdIpDtolcM-lwXG0r?>|M5)~!L}@rX&VB@$#Fs5r5zbavt^nJxzlhXG0WY`gHR4`xlKD4Jh`M-vLn7z1qB=vPVUceVe zAlFtByd}+&6O60otldH{B#_p)Wg%6huvaII*LXOdJ+2qn(}eCQ;aq#P7!H4U^M93+ zi>HqS8DdOgoJd2m+SI3B?pMn0(QUyeDYHY7qvWsWV9K{tM6FPA;lS09#>1 zy%NUI+N`Gr&Q`hg)BROsBAu2F27<`=^u87#5zNSzl5suXe-miV=u^giSuTEEd^SI` z|L~{R*q70CcoymUiw;*$nm$fIdZy%{cDUr3tnh+LW(X@TTxFkNV}B~&N)Z*g)p*#M z;qVJw$aw!a42=(kqK!-WfN&NFVX)x}kQ%~RKwy_c27*y%@<18*08zYl>h#AWcdI%? z6r{t66KGkFn;x^DAp7oFx4mV`l8uGn8Y(U!2 zVThH;)cDpI21#+G@5NGL(O9?K2W_9(cdXQ%FQT`^9zQE$0;tu_UN$!&4Qk*9d#{d% z0ke&i65EQDO$1PI7Q*{|%czU&V#T?H=u@2!>5afWF?d=4R)E6zL4-Yv{3}+KeP;kq zVW@7Xc#;tbz3{n^;*vgEzhTmB{qAj&;KEUU!s1EHG^YijCp_Fl;-*^r;Rzkl#oUK) z|LrxYlX+|2Pt2H5axKS#u{9C;+>Ze;Y-~Waeq@wEz545ZT`S6Az2KI4? znNQKmko<$>{{i9bkz+tyRgvr9`>##f^YU5d}oK*OG246ZXJ0N_Lu(EhiQ1#oC~3~Zd2oMWpx=cl#GOz4q>j~LLO z9{z-D3^y`y+#Qd-gkH6v7;WnR%lS{I8s>H*7=*>7a2hLpdc{F|EF^jPzSa_9JI#aW zzXlEkK9ko==6wc<#)reP;6Dmw<$D---}jt7{h6*LUPGtrF+ET7L0!3>d*m z;Z%(Y{d3s?=zfprZ4F`#^9ArXzj#0Qm`(0q88Y0Y#N_D7C`L(M;5%EAyal3`8R176 zO~cVqIW&WJV&+wsqR}^s`#+hq9JZTzs^(!lVrn#o)*r15w0E}qeqDZ)@%s@Q4L}j6 zbjj%zsW!(kp!cc$%mU3QfU7?t5@;zatRK~($G%ke?t`;uoztR@p)mpX>;YDnw2~2s zWa;YcONPn)ZWy2z6nxj19TqLrA%Vv~9o;ED_U0?rI}JY0P$~JH;vdKw4KNEh3 zt=jE;%S1F|3CWxa)uhQXZhymqT#_1PWfTI>k?aCJyCW%lgM;IzKQ>Y^c$WN5l? zsQI)-J~DsU?p<=1fyz~(Tc?KnefNAE$KgJm(otyo7 zU5sPIvmA#dAg`*oJrBQhm>*Llg}=bnT>kspw17g;a4!?Ih}`{xby~_!K+?mifPGK`7Wp1Lyd~^*&p4OL4o0NfgW|O>4vgT;N9w6ee=08|7jbsmW5WuJoXS{`{X!RHR9oHV z8jRe520%Y8Li`ALE9vrD=}hJXsM`4xWs~siD2VXleGl@(yl_KT;jiDlwzt%p;#r6l zz?tR7;IQLXbg;Eo?p2ur#7#2u2+%wU_p|0posGv}4~5J}UCgFWCXYwSrDV{E)9r;kRe=YWK666wJ&Va4uc?I<=fj* z>W9^M+|PiW)z%^O!a@oEV_HGzAfF}Ti$S`%JPU3v!cWs)n!EOL_202 zi!JO}{0OXUT0^^2gvKi07|8F#7VA(Z^Jmf~a@#HXh?h9-U>DAX#)#HC#suunY4moK z0sLSd89m!>2^`&o_Ef>Z2A)aU088as7ynaE zZDmv+x7MllOD4IFQE5pKoLwUb-p;naSF&$o%p|15pa>}m#)sXm2hzKJlC5u!dq*Le z51gLtYahJ?+OMPH1ooHlUarxfR_qNlwE-I!3hCN$Y21<#O+N-W4A0-R*hwX;+JQYt zhf!QadFfntNsGxq)LUA1jh3r`Z2FM4s&dHgMJ<%)bF>*>4H73@(_@h{#n0^wn%xzR zp9AxI*lHpbftO7EBeyY&d{^<(f{+1T!6RRAD9Mj zl}8LN2wtrs=iD{#k;YTDyIMvxV-QB(Yw5jW?fx-6ASwMkP8~+N@oG zd4tTb&AUd&^mCAZOSu~ZK=georv-P=KsP{{WB`*4RdVgZUUJ!=UHlTG^-cXe&qE|V z$Qds`-qCIl*99(jLI|dPxAG=kmvF)4jr9J8riUKiSU)+Pv2But=Y{ z;0v=k4R5E2Dpj|-tWwus;Kwa~ANH~Z@fY+{{^fRzF?2NeTXM=0+>tCDvqD!f6@*BD z^*)1VQ$eAk@H6=dX-cvNN*~Pun<+8q`zPGt>_Fk(ErU;J3{}^GiB#B$?t;aP9awwi z&;s-UmEhfKrr)EIc($rEwp1Z=>%eoPU&jD@cr*%MY{G7`0MNALe7)vZP0ptCMw}Sn za+Ql#oBM4;`S>2Rr2!zgkdTf2)f*Q|uy<0Cbi-@x1fwo_`uv=X9<+ulLY)i63?+yB zJkh`d=gEmUS|mfwAp5hxhX8ogU7~qJUjZCbArT}|on_@jz-Q&LBUG5W2183Xm9tFJ zgVqX}tnaOE<4n;Qb{CC$ZNho5O2IBHcHBgLk(EtkBdna=qws`<$PSZ)v?C#05yj_M zX;S@2;!nOt4D3ce$_yHyS4}Ck#ear}r(tv|zo2;zc6|RWOr2XYpkM?FJTBgF{=_q- zU-`pvdHu{zy4@*$&J_323KLHdz*);KmEZTj349cqkGccVZ8cwSLd8$i^5W%{qg^?9`@LdVAyzpAX|2@;)7J{ zNeI<)TWS`}9bw{>+|>QhyTj4_zzSLcHN=WPHI5BgVc^g>JAvA5eL+#(P+{#)3Qk&| z+@EjCdO&Em#Un*B+}gW;>4&O}b)KZ)XigBNd~iH=C#6Lk8%T~O2>bZ)T2e#IlY&>IS%MZm7F<7;kNw?nI5`I~}M3Id$2{g^Ru5Ym8 zh{d>Dtn14*lrGt=P-@hBrq3*W!d&kU<`N^JJHmXTenCX~v7jc6jZ0D* zBSU=(Si&VT*RI!A?){RCN1oLjsl%h(x72Xf&Fl!zY8W0H`AawY-H3d?Z|mRxOTa>F ziQQ)fQwTx^98W#%t$bbrH{x$QQ|Z?Xpaaoq11}nr9cpJKS^6yD7isE)#23`hwup zUYC4o9>V@`i=O~WIU7~Q$fdEzP=JCd)SH+qAGYgF7q8{D!8sSqEt^*ZG4+9h6k9WH zOeP~16|Ivji~rwS5F3+@A+TpRUMOjcMtoWC(hxkv&oQT7*Du1`H5`HL95h9}*)Nqu zrzc1Fs5|3EhWES!Y+qR65AOLLJb)#KG6_j3w+9_|X@7qZQ6>h$9iHtMKKJ9kUKCgp zUwlB18Pg#rf#kW*zkZGXb3PV@PDY`Ev(>V=n^qimVo6>JyrO`8BSH3>uB2(keq?Gu zVgf%v$oG}*Ymc)+t`rDys-M29svukHICu5I!y*(Ht17(L6xCu4Y!^~xNcZ+JYb{F! zj~z^E`r`f;8LV+<9-CeZV6p_=$=?!C8TcQW{RL|T?Jt-3h`i>}vqdw~vS-!PLAz$X zin>m~^mV`hdAl2Jjw+1L;rFAKr}A&#uOX|;wjB4IP%iN*fnFU}nv+Z3=_e)_$Ii)o z-5fx@JJek|kKBIE>!{lYFGIq#1osr@1B9l0{r8J;=w~UFyUSM0Si`JRky3wj`E_cvd&#N;gRKZ zx8C%9C^|v^Lpq=%p}}8`DuyR^+Q9lnPrpV$=ANeNp05gj+UVw32lhMdqwmGD;5qp2 z+0(k_ZVy?bY}RpS+fiSR{zwq*>6*;5DWEKk2Pt1?bmm9b^KkPLNpt}Ubi2twpWK#r zKzB=n@AchUH#|SiVPSp0nS{1D#)YSlGvu~cWmoAXxXd*WH1x;74fMzIEp1$w0~w93 z8F2PdAT7#d0de^u4#>sOV1$c6uS(-)R)rC}1aX(Fe<;>N`+K2j3<{GBi{Nubq2cJM zqe!rBd*HyrD6QJiHnO#>%Gd&@a_J`BlJdVubUGGJQrA06tYly;9m%v9u^Mf zD%6~BiUH6Pf=zJzX;}6qQ~A1KoP5RMI;%}PF+_yGw*<(uXkbFt&w9{ufK}qR`=84@ zt^23n|GIDb^#v}~64E91=tfIJEo0@lW&0zB8A=7hH)ji$Hu^VSan4&7h)j&WP`-#4 z$|=`!<6j-D7Og|5@6*l^jSaOHyrH$7E3oB>$NQtuzn5qRQ|=A?u$XhaU_>yJt7Cmg zYtk%{U`e;qa3bm1|D|FmvSOrbp~hCavqsx>`cyAzR!|f^@veV3CWQ}GFmZap72oCx ztEK(vIa&+jA26K1<1Phfxz3p+uC{z)8TGufGyQ$&G10|Kr&?DixkYN!4)1c8ez-$j z2W>*suRNmvK6INzf6yE*IH}l^Y?+_ZIn2EZNPdh}%|%pby?V-YXwFk)8F1#2meu;d zG9AUMgdEr#{Nq)-h(hRw`y1OGO>^uAi*=InMt`a0yvRH0l==KeG5*+_gxNbXNUuGQG)2^^jR;(>&{@W|rzT4i=4;e}nGzr-F{Zr*XrkH~wn5vk97LQqc}4#yJTGgaH+S^^PDJnga0MWzl7drPq0d| zE_LiPx3nSDisNKQh(`t_jVmHCT~%O>o=q&Hx^Z)(8zX3POfwbag=m(He!eP#Z>0^H zv>U1?VWI0OKN*Ty!%qJLeR>h+a}*6|s^8v)-)`c`MkQ5C{`svloSY~`wUqiL@77CC z^~4HnM4$!AAB_rMtV3d`*M(l)e+&aNT_;D~&V#vpM#t$K8Kf^_#Rixemsp-MO9`Tq zrR8_u==(Axye7$SIQ)rSSUoj%qn3W52DdT_SqJqRix|ymELi|1OFaE6r8e%S)OUk2 z?|0Hn$s<%sI2s>hEW4Qdw+1sl1svBh(=2-X$Whk$N6PEOfa%uDk#=6GW^k%eGXBbf zHR2%^N0?KvLJKam3CRD7R1QRH z+7aH_1=A#q=cW;-flbkv7W-`wR}#Ww{mYW>mHyG-g#hde$%hNQ!Q%S@e?GIY8k;9}fi!J)reyhcqU) z7O6Zsb4&s}A8cB#p3Jxvt?w0_0PR7rizO=Ql!Jh!82;H0e*i$umCsK%`rm=SIl`5Y z+t?(X-QgXf-K;Wskq9bKx3%}kQT;HfC<*Z+?B~vKsUwL-JIE9yhKs~{pO(DU3jKJX z>>=`;!H0wV0BU3O(0k``FTWljP0hdKK$aDdf)GqG+N&Sw(N(o`3DB0sU-a@J3FohG z#>J56>u;G>_Z=^0K56?PqrPlpv16-oQ9YU>6LF3(Au0_q&k21CS^w3fH8idK=BX*FC3+^4BOI@bZRJhjSA5f!zl zT5Kz~m;XR#^4nZhA$cPkvvHSIoh3lGIypsF3VzlWvR9O8{gu+3!V`V7C`l+1c@_^Be@^G-!)2Q)A`hsLrL3KWOr9W=+2bcrQf`$_l!K%`jd-OTtXu!=Uw z85a?ZB9p{%g5FUMp#y`{DdF!iVpa}oi6+ufakAaChxe$fCxGbjh4=_fQKaGO8X6mx zTiV|mb`Brhw3Fh$-{dNx$DylVKv>{|LUu6eHsfgUo+IE+9HGftV+MPaGxTV5{SB({ zcF%Mjy)(zVTSW`CZ)l7cN@l@se}{bWg5++3aq@nrad8z#OWk>ah1MXd-ji+N`TD!R zlyUuHh7*`WUfvqm#ChfdHFOv*<}6i&WAVC5Pq~IVFtqt9R!Tb5xWI!oDZ=jXu?#vt zqc1I5KA+-U^wXAwMKIJFCBtfajZzNVL{RZ~qvdCS?E+ENZ6&_`)L;*!y8QF{PCrs5 zB~{meYiJPoJxCC5F#}&=?xLdp;Dm^h_qIkkP8qobA=9;{rN9(n!S3UC(smC{PCbuI zs3anfwPZ9Du;jj=uy!Tt=3BQyE@e4P{5Wx8p8EKRsAMN+0x{VQES!khg9CV~mGdkn z&Uy5exG2wB4B&u*_AQ7mP@PlPzzL>6iN!vr8dPvXDPnnQvnI-B9TlDB;89t5hgWZE zecw&{lGTqn@0_@2D*Sn$(@Eulm5Dx*yQ-+00_1~{9L=MMzYKcFA2Sv4^|^Z?t#Pbh zcmmW-5+v;B=e6iQ+$8rS66C49|sZ^iG-424~l`&&rg1y zVs$LlXmBnJn(fEW@bGMp+UhYjXCxtaeq8bVj~a)rL0)6F14q~xnZ~mAV|UwG!eF~| z+;xb0f(m!PI@nY0sXTUCIy7EW;OV@*@+4~Zo`yZZQZOhfRr8CPF>^f(+brVXck~;& zPh_^afun8Eb=V2tOOjrPErHUDv<%m1Ifpfsd4hFgpQRafh>~C0uPC`T0^6FmYy)A+3wa;a94X4(uDmp>r@w9Q5846DSSFDNU&l!Qb-#gl}sCeL`rzwe}U(T;6oO2;I_N(|@I z=g42|H9@mJ6RRr)EI#!ki3$7zd6)WMvc%LH ziMtrPIvKy4`C?Itu(DU}u3HOGSnqgtasWP+o-jDd)O1x0bKt$Ah0W|?qHjg+mLbDR zXUc)<{iCZ^<8X-_A*j}W2>KOLQ&%c-ok=ao;ius~6^ME99bAC*Envtn6tozCJ)RSK zc5wN07nP^sB4c~$a-QO#_!eutCjpNKoyi4Hn;T4a4TF%cqgwYazW)B}^lCMRzTdt1 zr2fK`)z5KOiIT)Z;V&Uymd3dkwe~ReHJ?JWow_~jW}?$ykdjEw$zwSTZ^b)x+Xaad z4~`$-%-lue!WRenpX&n{p0cZ%LmM5iouFQgh(S~tz>G%Blfq=}Zc}y5{GO}%oBl_F zpBf!DwESvwYQFPWx+|RNcVQ;(cIS8TMmM}rmQW&7B%KUjx;Jqm3T?L=;o3y^{j2Nw zP;pHFzj~|^nvVirS+J1xexewGgDI$PK=0acC<0}-!r53YRN@oNuq463tXrkbR?bT0U8Zv1n&&qNgD?C(SJ75RM?Y2i%qgl zbJt*Tw!xPh)6D)67d`vnDL)mljW{{DHmqzkPL3S%#fPc)o~kQZ!mf5wCt*!NWM-D+ zrFma+Q332AOo{)HQQj~3t(2c5a;Vmc6+y1y10*Q~{G|t&c@u6eMl!@bKSmJIcEdrD zjUh2|`2s>zgwUb=2J!U74%4&$5;JR4vF*GmIBld>9=#XO8*v3=`dX1u`f4w8uc5p8gXY2$zW|d4V}1oWPjL@vU+Du|)Zc(dxQX zh^Z;gxtikgecxzR23CNUXrAM;E+Fdm+fKV-lnGnMqFs%2;D;Y$RCgem42zS(iipmgz#&!BhS}~1dlrcFniQldiQ;)1 z(yr63u(27zF&0rrg8|1igazil5=kvsKPDaB>iCmMetaho@$hElc%D2nOkg-CxO|!z z?&;Aw@haX~ZL*^bs>yNOp$vaLp<8d0yc;_r?D>6l`4K)*7}Uv^Se^&6nfJt%^XmX} z@l2Tb8L)l$)R)19@O^fgC!g+9ER$}X4k^PbBE`9U1os}M|4R3Zz+`<^l)NRw7fYb7 z;=bp5kxm?fW$Y77bZ@dEsU%J~-Y9hsaocBi%~4WN-_rqFe`2HBN6Z07x$VFJH=!hX z9UZ?-5_MUFU$RB)onndg)O79@uY<7GtKiM|_AzQnvEV}n3OMqQaME^=Wnbdt1a61K zY!8oERMHE4v?@py{8VmT~&q2m15x*1MI z;-CVw)JLjcB+}^}SV7{US3*w5(SoW2*3sB-id{3XB>uLC^f4hkK0`F*+Ra&K8btl#q7WW@2Ze<4(n~dvkfY{5+GCzeXlCdVL@lwWn9gS1qR`|EZOf6*}We7KW&u0frDjDqNtauOME^gVJNZf zMn-%K&0NXC3Re{%2w8Xo?sS3wOm+~*?&ESLSa%hu=>qG0G|r_OJ9=p^le0h%8VMQw79#b!x6n)U;rNFjrhT`f$fXU+Ke2nb%;)ujaokw;& znKvpz7Q@Mfi}`Yr#5a`Zy0Pd|8vLpYI;=Wm=e86}Hk1|82RUjlC)t!O<(^#M*2z2X zbw2w@o0wO+c1(Zs-*+nIszID2cb1i0pH}7%y3p+Nqrt<}y0EP#=H)gL|9&f38Wz8v z<;m)pGtW)oXg}`imC1|>DOd2x z`;azy^2I?Z5INySBIDsTgNk+`;v|qjAL2N&*T+>Om2Iq4&3AYf^5!oLh>;fMi2pVz zZNts9*>YVPrq2w~D)$?UUXZ5HK5<0Ur_VfWe**2yi9C6fy#6QOMV1SPZWo(Kl27Yw z8OiT+Ewacmr=CIqyIz)x{`Q8|j9TZ-`+4l)xUXgUh>ENtxBP0Nc?lv|=cK_}(w9%G z)%ZU^(X+x4d{KX0|7+YRe70hOyW3!z{?HIh)!00H z|Cb53uCIStkR5_wX`3~0SDUIP{@g@$_Sk_5o99R)tw#OImRs}U8I4+G0zr45qUm{Q1yUm?!qq3O~Zd&=H^2iRbwnZIUz(V zWZ=c(e`eg1XNWtARf1k8jzW9!#fS7yJiFx(Gmg=&EJh7;{^P+LZ)2Ls;aH@SO7gz^ zhCttD9Oq{o+~24A@AdE{U(8j!k?De%+%!4-Q>5?1UgEXBvXU&G$g8^Xe{AxAGKK(j z{sG#)^;WrNUO+%dNsCyoH{KV**9g4l@^})-1I`W)!?UOD8x%nwkx0V^)J=a$_>OP7a zd;=_16zK<%5#wsmR=@j$U>hL6j`LOYa_!CBb|B(>aKB>}?$C2!fyzN9pEMOcFzS*< z?ma@*lv&2TIswWm``02$RdsB)6PF8mijN-Wr`Kb+0zX^;N9%y@Kt;hKK!!ds9LLsh3w;oO4CAB~CZZlvd6r6_09M?638ob~mHO01Q=Ll*Xpt9_n$=!Rd? z_=7WfUh}2UWWQn$av>+~Evq!*_T>5KnZQZ7^wE=yOrD)|MQ5v`wD3Rgf15oqCQ)*@ zHYPHcVm$nTcX0lLRJVgW$MF5`qh(iuVd}6VLs>nt00C27rv?{{*uDDuu91QB^MuGM zcgHNBGJzogL^?l^+sUqLd$UGbC|uMZ?b-4P%2I)_<#ioF*UpPOlm^myyNL^~D)HtQ z3M0`hVUaztjBNRSMLK;+HJ|SAJM!6pKEma~q1R{+-&<@ZQrexwX9$BG#;?sU*14Uj zNcC~aFv42;Fjc1GdN*|7Z#l0!UR11oe4d^T9OsMo z+-}>gs0OQqOJ>m+`;dO!;+R(mWN0ZTZ3JNee!^Jyp#~CagI!zQ& zzzw|mu2^~0+$!a_7mb6Yn8$3$yUG|*u@wW|Y4Fyj8^~q6#*R?L|mNanrZt-z` zLB98Z=dFw z6de#>Pz`xXt9RNtvfRo4 z_$6%#3=lz5o3du(E_GMaj#>pJO&oRhGY_sX1N_ScucIqspw>@RoRfx`vBKETWHe?6T&5;W4E}Kw z2=|Tqkx>&}y;fcQob!AZqru3fYs8)H{DO8!{KzBwH|}=mv^07yxZZV{oFrM_3!bRr zbgBHyZW>b_N`axx{@XaJVxNLVN4Uk{P)bkO_s%3!a~75E|8_M0+d8T9x&k9&XQ5{X z`eWItWhm=GtpbyaLFX;^)X6QBu5}h)pMafXS)Hs^S<{Ej;c?NCmix_Q|MtqQoCR)F zd+VM1@fI$F8F_RE$jU^J`&!`MsOU2_hd<*f4LaFT!t$!vu^z*y6IF6vF4X36SEkB+ z*$#Wm996YCpv@<-SAtLS(a=cyhwHre|DBG-rB7+7_q~4x#}tZDh0(tCrcwq^R@~sG zURLpUw{V>LiH9u(R&tLDJIhTieGrwI9hCVdw#{Mo&2OU9E4Bk$6z+z zT<*N}U)jl1?;I1(I z@t*CYPvmP2pVJB;v>jqY1u^u~>B-s7vg*2Rt&3CC4P*S44$c^?*1i?6KB=LVnNQk^ zS$8Xzb3KIIM$B1aCbTc#G7Xv`MTtevyfa6QNERPf8?61``3&s8B{F-EK!!tCdg0k*ox^~UX^c?882tM;Bsk>jdu*X6Y zA%61m)h9?EyWam9ei)p+I>c<5odNOO7r@15 zmbhNozlzH<>69+viOtBmM+$nVE??D(%xHw77xLG8zaH}al|tK83>@Jj`3%K((@&!_ z;D_V4iSEPDr?>YfsLXD*VKpTLZyPq6V8mU%6^?YZ-4wX7?H=FJY5(epx2-Jmld&oI zB;|5p4rkn#n%LvKmDRwH&dM(A-Y$$G=)yOvgx9za+*TSg&XRAp#Iq0VQjK$;< zXxM*FBmF(+pFa8k$U!pTQ<_y)XY~OajDBdh>pas8rkimP$Cs^IMN94IhOfP`88lfk zl0#{0R^LtjYrp6lrF+-J8O-TN@G4VVvxf3ZE)m1}hAw!FmGTTd*azVJIKxr6ey~=J6k#2j8F|0;cyc?m`F(`9geo!Ub3bkoS6}Trih@xr#b$mjDY^G6k)op*&^+)ab%6HY&vziTRw~Q zQd}-p94(T$&Wv2J(9-Z#n+ANHeFRvm$&jEsNxG8yxFJS@ktO`nu2LF;G0L``ZF=^j=-pUpQqz}ujQJmw&zUM z6An4JESx(O`tWPDTgrR~*ON~z(y53Tv_@p>o4dhhXxxX3TFH?jmPUKJ^>u(ySbOM% z^g_t7))-L48y^i@i`DMdGd&M?bUg2t@CKM~qo+)*;%_c-LrvvCA#4OWfq|05Q27pfm}f z0GlT~fYe~Mz!9k^)ajV=WK=nbi^NG?=qhQgu4LL(SsA8D_HR4wlKEk+F3&)(v*|5G z!G|WFH+JqBAwdAD05ve>L?dIDq>Y3|cq3JKHMiF4EBV$)p3`{rUtyvDcfwRTiMFs7 zn8l%0)y`}^atH8lAlQXpUM=0QL*pj zbzBf0okx-WCik)^`;=ZeRxD4DZr>5h@%XBb325R}6`EfpksX198gE8LT^1T26AY|h z79L4P8GMRYQRQ;JBMaa|Bf{m>(a~w9??q;nzX)B~RtIuJR9gFBryX;>QdXrKnNCsm z;3xUlh93ZG0;?OTrt$`smouPU=8=3vTBz4MPxjghEajCSfUkdu;H5XNf&PKi8U1r2 zbIMy-k;iZ=xSy+<=B6U;dcEWXVb~iNOsK&O6#WXvqP=V-Ra)24%g5eH9*s^yfd9)| zsS_kZoX_|%Aa>^cnTP!LM`#vZl{#*Ib7AB^GQ<*BK&TAApND` zS%^C`D|$3NDl!J{OMsOaG6jsJQt4F8`yG;b=Z2O)qiV5cBe=wV(7!-x>*I=21y3d+ zvVEi|rO9e$i<}>3=6j*9iG$t|;P*)svXmj8a4=sW9MzVSa)~M-e;7XZ^@j|5O*$yO zr02@g?&WKJXm>>7qaW7|8DuS&IWg~oe+BI7Hhsc&ug3fRQ*L{s27w|(MtAB?@*isz zoR`*FQxNwwebE$ZLwj>bY@Im~ulww9<)Zwyjd#x7tE`Tg>WkDAZSE5*v44KMJHnth z&iljOMbH_iFNRsCoyn?_EV+V)fO!u_pCKR|#*fYBFWpF`<|1C6iuKAcqaCHTSM4|F zV6{h-eeHa_)~Y2A>U`F7Jad)TPu2@&UU6{8XNA$ey!%3L$ybXw$}EIxd_RWkH7 zRa~6`_G`&rrCY^LxZSdV zn?M>YJo*mtz^3@vDKtg_Wim+SCvSj%`7(@#w}pJ!*ZCS75tqAN3OlTzs{U6wv#~j& z$l`!`Ue3>Z6MSE>?FohIvm)%edTrvTh}&>%dzY8JC(wNacFO?XHR+8Vu;lT1Vudmi zeL1dBuPc(Q1oVI9L4F5t}d^ydge%6d^(hluRquuRoFt?qlVa*9BeVM>~ouN zaIpQ5#M!q~J?$4rVOY|11L52z{pR@=)8&#)#RGWc=3BKa!~G=pP0Nx|4TYOGBP7Y* zZ+Lz;yuv-0r9&5bF04*UxglcxiQ)sxu-C;L3-+;Ng^0JLKXa^Y_6S2oPfpO0>ggy< z4dgbcmOU_Mc!hUD`-2Q~R@s43?bq{~*bf%ngS|imrJ@r+ z$%@s10puw8omtYu+YG@zk?`SDixvqCiq}jW;&xy_boT`VS4-2BL=N89JZ?*Oa6iRo zu$yOvd+6{45CM9T#-8~(Vm`THN}6hriumuCt_5-0Q zA)6Y~57q_ywA~J_Ml!&NbB-f?1#SAXHtSEd#*b+wz!^WEOM|?S0hUE2t=Y0Y2KLU)Br{5JED`%;<6U z0-(-u7!(m>lBN68i{i=;GF7$vE^Y@PbIf-SqXs9<2u~?NF{M52wgDc6;#b61s;8t? z_IHS&aYiLwl8!%8T5w|Jt-^Ipr2q+)vLh{cp7XLYjG>!$e#k*@bLYL76)`!F^#h3U z)NQ0bx*F>V|5RjUlXo%@!u~P#de#Qz@_|Unc=yt&MZ6MGrodh}2U{9)Ms<+{tu09n zh>devx}v}RR%$|R<}iy=gEW=?fYqalE~iN0huWA_wcnA^q|d5p|J$*QMrU9_gR(upJ0tB>?qJ@w2?Y-yO+Dge(p z7Uywi+a7g<1Ei~W$|55BO)a8zlswXAxUTY=RUiGO_j8qV?k#V(1SxHvo(P}5A6IAv zz_({HXv+#n<>9j+@C2ycTPBS1)g+`U2A$jFiIv2<|EBYGuqHQUK!wO zmC#<9RM=#a*jX{6@YG?UhVIsX-LboVNRl^6v!FUQ?7^eD7sc)YSC3C<_XfJv_U)gD z*mGf`I@}LM87XS<#Q4aH^Hj}?Xv8Y4=u*z=S7_;(nb~FL^T*1nn0l8y&}eG(nJ_y+ z7LytS2Ht+AT@yxJ6Y*Z?e-v1c3Zs?|R8>$D!>DhC4`C{p_EtafHfmHl&=x<+BBU_@ zV&QANu8z^qN6tE?Ys$ zIF1*dOXIJTt)_j?g>A-8sNGKNO2=o3YG#LxdVOA@lgif%3h?F>4ZTU1Bh2?d(Np&Vy_^%VDWCVQ6m5g`1Ukrgl+P3Fx zMXdF)2dXe}$NROGR@jJ+v=_xiN8tFI!ZNW4tm^G}&}TkMXHDxT(1}Os@)M3wXfO2{ z6*^Pvl9lTMVa8x*=S4h7gH6RvgqJ=jqU!7f;*FifPC1heYM?%3_S59FO{W-EW z|AU&`melm5r?j_}MBW9730U1S7?wc@e!|Tv24G!-*JVW6>b<;`*OEnmD6yl^+vcvt z&}G8=X!!6BcQ!Q9MfaJyvZ{J@F2(4cS)T8Jg}}6s{I8Kd90viyobKWEO5ZX-Sk_zi zBIqV4#9e74dkc|xJSXa{Y>Z|g*?qBZ+e)(NI~}-q?F1}Q%zrR+l7fXvUg598}GQCMRcQr#I?<|*giibMDKLII)rlE=A*Ndp8-ti z!Dw^mGBobuV^+{mClziEl<(?!67ZS0Lz?pDC3AKN zufa(P{%lj*DQ*iNA=~BF+o5sKI)vO&9eKqW+)@*dS$p=60BG)>oP0I}ml> zXj5w(CFOg2mR8ES9;X^KNfIWOxgbl-0B=Rc`xbGN1#!Z{SlVBFIGS~1XV>fh(pd2r zkpH_fCY`DdQo-I;FRZnj!Bv8sI;8?j>fLQ{czD>=@!=D5%- z&VzXWs;Box=RK2U5$%g!6EX0#2i>T_kWkpzLAO>F?gJIVSogSta%)}M#BvTw19`>N z4L|q8la;)g4L*d7;Ix{5ww}qJF@*h}{DgeXBWwS`Q%nwO6C@^yi(=3A(`h80tj z)tDS>q)lQ%QbD$v(UPocPo-81(x} zsTh29A)Zn++h`xoIN>>UbO-|R$u5W#uSeE(Hr>kgRQ`XSO&A-86kZTk4i)`VLOiQ$ zRY?rOx2P8uO3tYd<@fj63;d)|D04T^RkbGb@-gddupML6AEU z&+qc)dXBIWW094qm2ijAoPUCh{UcY#d!)gxF!Jvckt*2pfy3NXAHSMvO(;del@)OQ zeFbmQqOba~0QHaex>sq+8^&!`ZO;4X=l?;koLT8o=|CSLv{OfPyGiBKD&?venoQMQ zH&N?UI79aRzkgHj)$4alU3(qv4ann0?uNup06IH_30^4j-~m%vv#+`{9fCP3g(~NS z{WrAr72XvAsC*R3;9dlutWHYO3oN<3PSfi76pjwFWW&iS0=CX6p4fu#V>=5kLBO@h zT(N(0#ipIQtre!hj2&ggc zxZ``yM$M9ee?X0nh>Jd}f3+TjIK^zC93n`coN9)|Ib4(&DIK%_WB8n$|EOF!`~v(9 z*~-m^g#MUxR1q(Mr4|nH5hu`gxA^)Ldu&^9L@!?|L|pBO87<$2dD`q0}4{I07oy-3elCm339^Iz{XV;f_ix2%4p>%$B!JTZuw$O*DQuD7C^r_9tnnC4t zKj7{T(e=>hThTms+oumR_S5?fJREv^@TzS-)lQ?U;tf#P<>)igJQ2l;4ZLgq;Rmt( z&MkY*=8+$J-?eC5iDfy!`&&Vd!!;-B)E^VpIOO!NWl<(@zTf<9h6$^mF(M|M(ujbXDyp$&&4iCY}A3?1mXpPv!+tc4|aZG zz#WXnqFo^}BH`)GS8#}?+>XM>9HBz3vuT#8S@U1`xIV$Gm%lnE%-I$=E+K=< zDFe5U5k!DIO{p^C7c5}W7)W0_I_JD)6P^{Su2^>Ixt$v7mV?(R+K_g=0kqP=5B(h2 zpF#*Vee6rqJNS0JBvqJ`KieMwpNm7eMVX153;AsSN$U2(9ivX2?J0rY3)g&cct!8+NSg0QQCx=;R$JXnyg}8$A)Te0AZ%)# z=or5@O{Ti5r@(&eU;g3nI{|94dm0D1sp6SG%Ip;%*sgZVI5B3J*XL|kKv z8=M{2>CJo*n(PtK8S3!I$A9_lB3zl=cUYD5<68=@7?>g6+!RbSf{K(VBFm#SVwSa? z^n%Q4ai8W_)oG>2D6R*a%*%UJbXRCrXZOiiN=Wi-B$k*bN2%%BK@Z7RzlCFyicUF5 zFg?dZ`_Sozwe)G7Ia%Do8)31LN;PD^%PTNR_GgT|lPhC}! z-{t)jDu9q<2$Us6KTJM59OvamFe|DH4#Rsm#mog@%3coA;wx@--l)Gpk$A*CD+b^Z zc6aW5h;WF~qMxxbFsdf@zLPPx5(6wSm!Irp*iwod51_pP`%^KPm==*}eJnEL1t>Ez;K!du66SY<}H~j#|3cnFyH{eA{ zXd2r0`~x!EENBBdV1FDhx@U;Vuxp+4(?K?nqg6ki7cu_{+!#zlbsPqJhynA)NK`aP z_s@sGqujCUlau!{+ReQ6v^t$;V?UU+rCarTz}ivOBO8P_IK~n`qoOC}J}%rnu95$b z(hVDb>Ko7bZ)sxjlO!kVx8GED8RfkUkKzp3rxmbBvn&rddPmI=9&u14k5*nRvbf_v zkLSUsa}g;OE;z+*_H*TH4i4|Y6P>l0P-%N`TF|I^6XubFnzG#g#M2HWGD8;tYn+8- zhJikAw@}%`$?2VY=_AaA`~qos=JgaqoST@Xz%q^#ut;}l6HXdw@1gdhj%7V~wW*Zr zFzD7=)SN~AGv+$3`W<}{fb%Na#2SakE8qmy)21%j3CA=vZX8uRxwkp?HI#rJ@RJ?j z3qyt<@dn4-7XfYQT6JN*p^53j;mcq|vJNcC)(an?x^)N!_;{2nwTmp-gVY-3LH4BM z@3&FRl|2bv{yx5!cjlrnH-J10Oyz-&ZlVa@8L|y&=%IND(@qp+iZLJt$M;r6Yfov{U=y5iM4T^FQ!sX?^FDVtbx1s$;+~J`m%v33wB$WhD;`Li8GvE$j|2f`;N!~x%&A1<@!Sn(BR2dekTVihKR(3#-vuSdCnSu!kOJY zeL0)}!xLlwcAvPTOkaNdI-&E%HUDBXCb7X##9ZmW&6d%+W~A`=0z+K%3r2L$I|z=G z&_>Um+KQqSs86XFq%UAg6BTkZD#MARwmUCb*AEW#ngk|G~W(5jSqk`GiCiDAu=ajH7`k*^9le9 za^yMe!1kxyn#zD7nJJpj zIHo{Ke3%r9+e?td9lBiszj@G9oIX?Ubz9je9XSz+<%f#i+yEs=-Au)phe~RWv`MGm zWVddUK06c%GO4w^e3pkE0NKv6N=}GaQzD0X|7Z{fv-T5qHBjys9?)#LM>kUS%SIiZ z2nA2d9Bb{HxROY^n-HLi75@W#t2el_2IR7?}SMRzaZFg{9q!B|$$i^Y+>wQ|VZWt>!J;W$)K?d&y9_B-lcZ)%!E;MCdvgkxVU zrP1M%@e%tfa$vb4awp?*UeVmuF8+-_?4*K`zl#4beAaXpzpU|r*q3Zon2lea{|J_< z_R-*u{QFbdQs+BCP4K%!spn(THOruWus;abpb>1zu@fT@-p!C|}O32Ktl>U|=2 zpfV>(PyJM3i3W%pZ|RU01Z}bFx9UYW~L` zlR3I?9w+4`!*?y|=7=ra!6MqyoGt!abIm^HnOpytKRB3c{0=UDc$vC!;~XxO)@n(6 z89PPSGY?gseU7oH6yVFpEh*tHqFU#n#w7C8qC+JgyVBb<4Ysl9gr;-{p**K%&%6wkSt$NI_t&~ac` zXy_Y4#LZ|z$T=%qY%JN=GU4Enh720nWA>}dZKAG_3V6gvgiZsu@MQoOiqU?Mty3>f zdSG!TG4`zq5{W!0J^!(+6DmA5$1*GA?eogK<-iq+0fm1(le%<_lS>E%Dtk^lOTqI%M4cEnD8{qrw>+-3(y}~Y`QJWif z{3Ejub|Oy|S0mDb8obW4a_@hF=TEE z3Wp;ea^_z2!@m`V0>B_fp;3lO85k0tku1NzFv=D@Zm`}T1B(!YEeJY?(~zf;YdYLm zZDFxIGVf|MqrnI4GP-)o&+H)3aFZ41C1lPC*==rDVB>8@2-7cIRZ>?Ke8si|7GWf6 zY2eWWk*4)=XS7j9Z>YEv9`|qMSM___DBWL04 zj+0dCI{SyK2hw;yW5LqUxR@jXhnE^$;66~}ALyaz_Qi)Dx{a1h0kaiS0U+5(QXd-- z*^$>V1pE|$2)hu~U?DvXQ2=8Ga5d~9C$@B8)VQP;&(}wwLM?;0&_%iB#Uy=!nTeT( z)gnxs!qyMa`S|t_I5fkrs4!12OyA*lQNaGk=_Y%yw|zDweVDipE}acg3HB+cxKZ`r?9fv4(rfDa`!Ih8}t27t^Zb z5uA*CgxHbj)slVUj!A1S?~bbRIQS;s0y$sI7kZp;hcldw^9DTD%FfIqQ7iU8j9Rtv zlDN>yUFB$d3=b)ZCSgkqcBwe<4^FKh!>7(wWY39aCOW{LUWWNtxv^!hTW8N5A_YuO zvkU*6keIak(~Oz|y8=~LJ*YiMa5c2I{?7iGemCjzra2EeU2R&^3*MF-s6=@K3P;o< z_r(xcD^dEh-~|aE>mji)8m*z9!(O?n3a>XD>7D4l5>2kQ__S; zzKcisJiSq9c$R?1IqiZwA$%I)iwNFWh8S48i5*rfvN=tLQgGBO$(k)&J;tvr&)I*R z?$n5sU9nmvk%BvH_cHB@I~}Dpc3+HJRHSy4 z^6(cBIXe&#gz@weWg>P1bY1LTOCiL`%1_GGZ2B9I8`2?P~+CsQKy)I!h z+4clWhv!rdczP-RNc%2{@ctZ*#wwSZCRY_e?U)H>=8V(i9j=a(W7FLrwU>U{`VLM; zVC#IPuYvtB!@B;L7VFv~l_o=>5`Cxals0EX|Bryh8-}|_vo^Qvn_kUezCLh_&HAt4c|xx(TARy>6CV8XaCcF0u|(U>@v0va#;7LK!`y zO*Uz@fvga63vQ3T!_RdqehNWvGoIrIa(WT<<->8>&%sLG4DcFr<@Ugsz6jfl=?37btHOjfvAxTsLf#mTcOU*B_L zaG&*E0>1gx&a7Tzd2P9baK)zmlJ_dr9eh))lMO&+iTV+X9sRW~nM1g4_PQ=J8xts$ z>~`xJ_k6>Y`}4HExDO3dJWbg$3`dSSUiEDjfnRtSh60R|1pBN`$1!1uJFV93KF6ew z5Bpu>cWJ7nAQwnZg;uG)jiU{fL-=@zgnzGng#O?NfSR0{45{t!zF}O)^SFjS`&N1` zNq@3*&LqAs1eg@t<7wO~V9V(TQs78zj9>_;jx0opQ{XsPi2ESB{iX^&diW+=W)bHS zhy*IJ-2q!it8to-y@iZ;ry6MAIW{TsgzWcMkYz9ZRn$9#>%_@? zM3&ch(tEEg`ZVf=&jrJqbvF zDH3=k8mEwQ)0+CJ_U|#LeH{$lI!K}^26V)u*3~Gr=X-f;rpH|hwwqHdf@J7zM!hPn zCXv0XODyUpC!6KvwvRkqX2+t?u|$OEeLc@+i0@RbGLMj{$rm8T=bi`{<)gRCvE{tm zk@@U=$?Q)U)#Luzc!!I+GHu3SdPE{dRB${u9&=k-!YB94gxK!y!wRuhOxC)s-v<^L zb7}!GlZDSBvWHum1Gha;4%^ZhC{rzpVe$BN(m_|dM)HAP;-6dQ=}DXA3shYO`#h9` z`k9rX7TF-1&{V?0O=6+gn)FH=!K8aTLt z$sA=-Q~n-fDKDFY!O!x*&0){0&|gmC+8X1*B&(QHTVC)H4T_J(0XCYqB+y*jH|hH` z?ox||;5Ir!W2i)(&B{uJA0HRl ztyvyARuw1*(_KH~)@{kNmzJoY{0^ItBki~RBseV)IlX!Wr;jaw-3~s!-s5|rZlG)P z56X+h{xA)@o^eOFe`4^Fr%P9B1{b4m~1#2jgiJhDuI}JezO( zFdEvKtYE2D2o#D~h0{X8S#0aN${jZhRt!S@|Es9rdP<%&XK2G*noyF0FiY{$4rzoZ zs%}+MTc9mm3P|9q8j7!4`U0Zsk9MY}@c#VFRbHgBP&# z()BU;_PMeBrR3??|`XHxnvUU&f627)aX;TN}AvK*#d_vM&B<@OEfZR^P*X} zBM23Y{%bi$S4l|dG-|eepbyIz9>o!l!Q@HJdhjeYp7!Oy3Z;EckaX>g!$T=;<&yTM zr+Ql+qXX6xuGUAGYSMx4@TUeooE1DyxA_$1!p8hJP>3eDU6GWx?+*yZwCP(twHjc) zA+VOZ`5A$s{;xCBqZ+c^EuHRnNB`1n@;1uA5~5l(`k?%A$7q=yI9%%I;&yuv^fy2q`h28v;wf~sG+vKSC|<}4|wtUX31p}&n2Xu zNTNiE(?6zdE(o%bXmQ%`&`%O$D-T;3AU1zzp~Kht=D5~P3>Mbhk+aWiah&os zi4c!G3FUgy6#_7qP~T^xbeR|XM7ocxmr@Sg-0~i0*uD*(c;}q zY;Zcg#iJ*D44a7>DRr)ea&2zo6j)=ZA9=gp&zbu|8#&}kWz7eVpMtBmYpMv1wV9H~ z{Pt)-D(JY=_a~Ce#z~Aq-C!M+!k@zaoJ3cMpGA6Yb;^s!HNeYdpX#LT$?_}Fx|d-? z8csE7Pu-wEOKIgXAx_Ym88&IN$if!Kgkyg|sD}vc6Ps|YfHr*t@7Sw<3~ zt~NPo3#(3mN%>?)M))tVg_dJ?%3ac^BzrZ30zU@g_jnuS*upaKW*N6^!5LcgfYx1< zbyohx$8{{Sxk0HgR3tvyHbm;KwUP}xp=Mhle3g(lAa-T_GIZ%mcfE~%{+b_*N|nSy zvL2DW!jlM%yXxUz&>^m(CESXFQ?jq9P>&u=QQ*bWiL*rROx}h#cYy;(Q9EonB&_S%N_7X6y9#3K@?cV6kL`l ziLF6IhUMN1F+u6v=h!oEu>DNQfalHWfCDau*FTA5ILUzxUK)VjKq&> zenN4-HTp2(CAQ6Pf{Glvn$0f%f!E&WD?BZNk$RNG23w&*`7gD0%2H}i{l*V%>hLeW3ec$wDib>#4M%A^rOSSV}E~r`|ypG831JZA4i$Cjd9T)nkvTnxF z?Y@WKGgP~U1<`)+DR#0jyp6#*@d%d)l!6O1qib1UGweycv&y+lq4&5@C62<(_zWOwJyGiJn>gpny!&~|qv;luxy#=T z>Lu5I+z9BeM3t`(mgy!aos^LWC3~I~wbyCVYMJUhf7z(6<+1KpCx`d@#PgCVs}Jeg zK6mgj9vjuBFb@VnT5iz}fHs%?B)(q_rP#lJ43qv%1-+7cQNMQ_WhC_p=0Vw6`BF0Q zaX{!jkx++HL~+foVeSdkK0EvFhs^E#(8#36Wqw8>4}_x>5c5hZzI>f61RvqcM|vV> z&lCt!9wv)9?x)gqcV(69zQ*j?4EE!6+#ORsX`L`20hc3=5iTMi20g~bu>chG!oji+VOSRy8 zMeLOV1pPH?5FU)DgH@w1;U8?m$PN;(EMd7v4}MbFtNx}Yriq~5J7a!Z%>Vu8^(@M> zut3$aHsWtd021a@bn^U6MMTZ?wQL^E#@mB{WII)89QePp3L~EvJcLK z144LSF)8Ur0vG|8IFhg3=yD$mz(nZ?hj6TunWMfQU(>?HPa>xkK-x!F&%u7}ozUO+ zp3=xpFJxsLd8;eiEY%L&o+3r9Nu^@A&HQNlW)% z&N4eXfJ_DspL$uUgc67xNb~#qa=$FGKLCeH=p4}u5=uz9CP!bZ5IS8ODSI@LA)P1z z$&?)OcvkAXGNkBfaQ{Gy1;--cr*j;-^I{bc^yI1eKov;U_73^&;3DS?Q72t+_>@@- ze#VZ#6JUNlevDFY+8vdIbkiLUeIBBQ)8-wBGU%ams(&M8A4)xgU~|Ui*Gdq<*F|{E zj1MZ?`u7mtZxOo6X?RtoN+&OQ^IpjGO%rN5Qr;2JRB><%htf`?Xo9cYA(ezp(}s?s zwg7@(lJtPkU#rtvOBH#bM0@*=mq7}igDf7DJy3&h>o_W=oi&?}Wl$2Fs~!&WEo)x? zxHLh7JZ@;t2FRFP~+?wYy;suk-vbP^J{MxdH%<~tAE)Sa1{9q;P z8WQm*h0@Yi!N2Oayxm+C5lGAQ$_9p$l#rl}Emz$f)pD#5ql4C=Se*ZlKC-gB-}%Ts zf}C*-rTwL>K7GH(Eku(>21WJ8h3kjQmqUCZHx)$U_*%ng7*77RnP&KAQuDZ%hB~UB zn~*xLCS8u0Iz5D0sDZxJ?QNbK79&Wmxi=59{XAX0*2q{lKyq4Xu_|Fy3^q6O-lPAB zhv=Bkc93M_uy+_VEyHg5ji*U!8+!Cwh%|xpd-B zOaH{)8-WRU|MsS<)A7)6qnBe&QBQ}Xne#s5ld~U+zJ@v-49E`2O;NyMLC>+4dndu19bB;2tV-g4lb>#x?MW=L1_Fz0d0fc7=&U6U1CB33IEVPRkl z!X2daHy8AsWIMUs#ZO|c9%-mqrB`-mXgR}uiJ?uk2T5l zr(w}4wFuC2{G0@V!&_6uPat{0S?6Z-)+{4mOau%YZ%E*?pN~Bfwcq(VsKA9;MQJF6 z^jqPOu!BbU5{W{KT%u^|59JHj%P?@r5iFJiDi4JJTyt5Oguc_+Z_yprxvU z$N&t2?yjro`X$k}m_47kJS;tV<`K?0zN%Kb+E`KKu3Lc&Z;r?mVI-veW$&qr&4a3g zLJ7FW%p)hq`;ZslYZfU*sQF9Y;kFNvJprN+vS|4EwCPDf7g6Jj{_hn(!FjR&d<%R= z@@&?2qZ$&3>>OhBUI<9kujy(K_?s@i)G^MCFl@eh`Kc~Up6v>&VvoTUXzT>1+6-}n zaYI%w)yZMlN?@pGn9ewo|1QXBy zt2279l-!mMZybl~GyTrUJQn!DB#K-^VnQ3L&RND(b8;n!aN_-v@8|aTE1G8k29H}W zZdV9LMHlvP3JWuRH9;=&)Z;5mxepSF7U{Gpcc$s`he>}CfBf^9mhvv?zPs zpWk0_9*@s@ocH_ndOu&+bi{o?z#1PctSJ*IebhUwlv{b!*;E6(`iZd|DwWu7XBo+=aY}{$`KkpzbAH_%Al72ysCS5T@oM^sK|kE+d33qY z7t@JMXP4ch&HSrHZI(og zRh41i{b%L8PWKMjH9IZuYWgQ5Xp62YGz*dQ4I;%Ptwm$P;~bAUr^r|;&3*vPb_Nq2 za!KaqPYKgB<{5jJ#(PdPkq6hlbuIuFC>Z!sQN57Iy;1L!Y>DQ%NILi!ZRef^<**Wa zl?iA)`RE)wNiQy_VzBRNl^b9}1t$mWAdKoJ*F46DFvox$WB;jkrORRv zD+Z!e6;`A+naW- zd%)pApv|*^*5t*uU0ABUH8`Xy9>AjvSJk3fM-rP~Bd98Qhb4nCKNr7@<0LT>-~F~k z12r#L!=O)Y{B0s$k^S5TrWD(tHMz}nXHt(+%dq{9uV&Pcpz(^Q=#{Ok zvD1kKEOAIns}u9lp6ghcrq#}B-)7aWjZt;kl-VxCt<~3JVwn ztHSu4O5!}WUz-U^9W=E|QU;tn8!uF3>i*h-DL@%;>2av7^xz$Wbzxb5F)>Omw7N5) zCs(d+=&<4C7v7+S{^cs3U?N-<`!-j)q2N^V$C5$UOQ929N#(P&QTrSVk#5R;dx^#a zh9Yn85JmHqHV4C$zP}&nj(y{^*TF-X4!I(!`Ocx6zmEsbCY&(Xf0R$L6+3@w3m^vcyo#CLbx>>0!1+`T*H6h@Nj4-3?f5dHt^ok zB10uVA|j4d7JfxKN{@j&wL>yiEQ4p5k`rn5TPU!UOh!0z-n+@z2v!sTVy{K?`J<^Xe87j_y|hEe7VX$?+2*yLu3qxV8P;chgV=D=LP# zJ4h`IcN^7kxD+IS73xk`dR5U9 z=ADx_+= zGeV%#ukU{7KHIrfwJMA>#M%tI!|`EIe+03>Qwvb5JgQ*qaFw*a7R?bT`#<32G+2ow@BoHh!8eM6Xr;Y`eHoKw?dMJEy+8%g=%VZ?6#fI z0*)Hz7E@7#Dp!+^9%F%?+TR+|q{dpy+Z8{n(dyiS;sV{%WuQYqu679TBh^al1_BB_ zGH_EyCq#T0R8j9@`l&p~wYz83O4ukERx0odaCnQf#C8|CJRP*K4eDsxG42or`RJhY zjXD;3N>9?=)lT4!m}$_9fp53hIe)Iq=7hxt?-5~o)ngAc_n9B<0}w`D z%@{da!Qs)tlGZf$=!1}=;lHO2uh-Vq7PMRy&o-%3*qudzEhT%LBqY)d`4d zkj2ZhC|4B>Okbu<;dErHU&0i0sjyf?@1%G2O=pq6Q!b+#g<|OKFqJwAh9YZ3C@W~V z34>nK0VyTzGyzD@)Kry}C;@79v>W4mB2vMUBw}cNYDkIjjF z!eU3=Gk8XHg?mfmzh6a~ql|jumI-kN z1=^R1D&{*v&6v6$qigf|@GS5l(rMgbkM*c;!@;X(#(&&0%`uh!XZqy2F@>kFFSBHv zNgDEMWMGoc`@IQr-p@tC+`tBPH5hMBR;OS~-k!VaIm!+{La*X9-M_VK?#q>;4i? zsW^!|aa0Zl)oK|tycA&=xNb`%=uKJ>@jE!9khTG<=ZEccb>!MS7}ulo7pq1~gO9Bm0iak4sfZF~Pd!=Bnv%UJSj@<7O8G$=Cyx!K)P?TzlaSIM_GY(^(*of8CRf|9LL-*Hw+| zR96R?6VYZj;v|tsCuGYo5t`%z!`c(vN1Hvh*AHPa!Qf4Ix4vo|iuF2kj)Tm8!KW<0 z%W8hKwKgDcgsDtcNjJQ@=j_+89|JupS=t`3A5QNUU~{}TV&|)1Ch5qaebxm(AV}4S zr>@6;Oce8RFOR?z-nl}|q$eni`rNi?~$-4L4sJ@WC(A3$( zAEqNdfIt<9lO4JcLdbfY3q$aODA!s+J=hq;T%tZ>+C2Nnx5649pi?&06Xt%9%1DwV z(3ptgxKc?yi=G7NHcd#qyOq7OjN|B@=Pfx09OsZ3$P_v_7@OZ@c-Y*hS%Y)-D-CgZ zEJ>*rKDr%&FpL{7o>&n(uj)j22zlz{#sO^`(9R5JOYG?v3y6|p7HC)j6ZwvW#EMyG z`g&VfU#DW+zd?4^wi1fD#XB?mt&fhNif@ZG`iKiA1@;F!Fh!HZB!?FV*^&LPSZEsa zb?_|8CB{yRiphwSJilyjgTfh;f9p(>IY#FQwZ#Sm)C{Fe#pfQYp!Qtc$~(XCdp6^<_5Lxg3?< zf8lYd!6yd)%9lIi{458hnL5hmLc=a>-zo|@*r4=9?$!ZZ)yU3J#Zw(HQ@qI=Ks?*L zz)?TeBuS9vk+ z+V0G$NAGgA4BxrWAF3CARvvFTde(8LOV8LS%grw~QbaOO(@a^3d?FjHrxt5YEtjH( z0D<|gW|QLn^d~r5eODIqOA-Q?S2JPVG6&~d`D|+)tj($#MJH6Xf>yK+)_(#g9kUtN zc}x6`G$`!8?+%DL9x&*xdkT5Jr{P_N_v3{HgzQ59iC12!h`MQ5OqC%fM}ilbFr>^# z$0huvF649fqG4vw&^z!ob_++jg1yoY)UKTTyzqKZ>W*3jf)5FAU-duXC(>7CI-QHG zaSWL1tVn8zl|l!DcU#2&$U~*Dg!3g{+DaBMEP+uz#3ShOC!Yi^{^udeNcAAK>GzQJ$-ZwkzO3f;T*llc=lYWf__2mk|u{ zG7Lms&rt>eE1GJEz;Our7WZ1PFUcwwDP4}+X=g19?}@JNAX;Lo2~x$iK92>Nsce`$ z`Srnv{Pf{!HIszZKeU%7<&kPfNS^op@%o?HE>T?CH3z8nj6MZFq%rDvqC| z__0qKpLwfJ`FdxrNiYJ?3`A`m5%Wq<-P1Hsuy4rWQo4FgjM1~hj}XREi>Qp~n_aJl zk%?J*UcwP?U!m`jn%qm1Cn5t~!=TMhfeYR-AERk$k4+VC7%BEfss503v~WbvVc$gf zLyxw(j-Kv6DVeWRKU`n0(vfZtHT}xtSSYc*I)<5nAn|vucBlR^E{l2Q0mL-ik@+4> zgfOE;Qyp~*3{9Nh-hvdcpoyme(g;(WeRvu_Gn@~M*iT*QjTp`Bf%F~ARE3<7xJZM@uALTF2`Qfs5z6^N%S3+HdP1<@TeiVMDM z|INE_Y+@`Djp?T`1C2Ar_Vj#o5@%^j2@!ndsu-SEbFtW!1F~mY7E%TI)4m#o`+E-> zBx6_CQ<-GI1UT|4ms9ZM-XbAr53~AYt5QMknFH648Y*8g??&t*!ka5WH9NeYO;wme zOTp`*yitcEzI80VJnmNoGP7&?YBZ8HR`aG$F_`D6Z&xdn)O^=anI2bozYlquoW1uj zfJj$KpK!}>Khrt>jNx22ht1?fnN551v_=O|w5*`FG8rqN4a zYz4g<&=;o7HUz!}TQS|(7sqDDWBu9|C)V02dXWvxbABb0HF2ZSfmjQ zCZ!Rsd*VLJMkmr3{APg~jxIc4G1{c@^Vl&YI`&gmyTUdEsA;XtvVL5_+OKF1>=D0m zxoa$fqEQ%ATCRx_9tedVTvN)OhdUgck8nc4m=I(K1adv@s8Q)^64FWc|KvKL!L$tXA0>A~CeofJ zGbJ%v(qMpg^xjG*U7lvCH`M+k2Y|docSn5%q*Fp|UnPAiTC9_^!OHFH}RXr7TM0uBSjn2-U zU#OJStA22LP!RN41R}hh*zdIaPuDd5TIrn}5J2D|v94{G2p6mOBOLY8>$;fy+;4CI zkwgaHqw#I(@(V(sQ9@4f$gAKon z*{~eAf@wji4eK`-#_V9#K_MiF{~-hmiPbBs7i|yJF%AnVhY6c)E$=|(5!KK>55Km@ z0kuQLem*9HW_BJ*=b_7JKU%e;u&xFw0y7agbc{$``kik}Js$!8L=Xw_Kzzu&PF#Si zyEE2;;ffA47`!AaG$_I802qlpTK{^IcEphB=1?#dI|2H@n^5JFN&FImvVLIjY`X(>^A# z{M(`M(ft&Qbc*mx{P?p&pYjT*;=*5Fg&T}hQ^Ez|`jT*MS@`1{Fh8rZjHC}$zcM=sAxEdCXKOZqO{_##|c5&oo1e&G-$@)5+W9on*;D5D@g z!l#Kq2RJnre&9}_q?=g;LoiSOG4|3w+I_CVNO88iB0thl*(#uLpilgR8F~w{A(%}b`lN19VNu`FJ%iC ze%oGMOkCXfQ+scXx`J36TE=}{nE5AM{o8wZ_j@F64U}0$uI^e}y%F>9ugdC*(b_-T ze^FgsiB$K6K%DKh(34Trb=>CW`o^MMA`-ubG+$m>SX%if(KOTFZ@*@`uri(~X^Bi3 zf|knQj5x@mBA~{?q3*3Ps-@v{I@fTxLO$5lkX>8vH9{a<)Lvmm=ma8}XEJYN_M0P; zHb(*`m?c4{<(VKK>you#MIaSzy;IwQyX5mWFMuAXwWSZSwZzNU|FE( z9ohgWJm_Y$1@JS7M2M?mP5Y&54ym4bQ?AXM35I=giw**CdO;M+nBcRaV}9LwZ1Kjx z1g4@_ja11^8cGZOSwJ4)HxHJ;G&3iYr%C9$uIS@LvdQt;#nt(0&7Xe+>x8+vCGao# z_rHIy4$k=)AyuT16{U2k^$o_Y?LjKG8^2$>y)h5M{rffZkbJ*gL%E zRqp-Ny>$fQVc&Zl4OxiXwqOKdT&Sz+-5-Q`@5b;pD&v)R4>s9`9mj<)OS-7eulFOcQAR67P~J_t8!Keqr$OeWrdvnNIFm7whD zN)69P|3uZ39O2vl=I!;+a z9@%o?I9V}L78!LX>JccTVrbi~ax3HIA*31(g;d!w&A$8yFRr>uBEkrP8*3|$FqFI2 z9*3D+9NDLAN8R2a4QiJa2513!&#ag#fM8CCrr+YF6kcv||F+ppvu)=fR7nCn4AO;+ zUz!LQWQs;4oQ(HvHm>9jYbvw8-!zW!rw?WDFIV@?9*oTaFL6Zu;h48;;M|n7-X=^Q zN0fyk87RVI*e)ztcWuob#OWdd`Il5_Wq~Fdry%h};p9IZfM_NqC$E9PXk!VCJ3;|j zB~Twr)P$k+@nlnA@4Y|2|I-%{*TR#4zzi6Jp(>@T`8z}BMv6h88pi$n`M1`95t?95 zkuU%eXE)xv)T0b{YSa6lDpG zztMN5jS{St6-;-Cs^CD=w7HEu$L%6y8WNTP$bQ!VP*PvtLj;)v8TalcN zRX-<={vhBfi(O~A>O`oi<}lmDy3+5~;Bg_fgwS+EJk`{n|EyzzC zhPx}Zg7OF~^zqTzL!gQl1t*;$Hz_3|QNeYk(*%nvVM#t8un1317S*S0*z|VR)_$Gf zWtZ|@&EEzC3NsFv({Ut{APE5aWt^p+q+H4Lly?DK(Xw`G8_E z*+xPJ^@!ZM0s$`xhpFLkI)U0;p9i7ppeUJ$m!qH|X=|H*B}q8!l?!K|J?sx%n+G1> zzuVo~2-_#TvcYR_RUlzCrbH4`;{W`jMj--Ss>%!T|K`5$zc(PpxADo(NKrU`HM(-c zT0Bu61E=8yO2Bq$srdT7U7gAw+Hjvoj>cZr(gLX5wYPedOCbns{HmqwTc1(z5O^>` zx4&H)4b~Qu4SBO+-=#IYJ_jv}P8kv-?&0vqiK0n-+hhCL;*seJpZnmp!#P6}RuNCby*_ zIq`T>d|cA;SlQR3PxHa4G|+o4RTPCtCnIjl5b**0=TCZW#R!LlH?p(RGdb*~<@s!M zCOdWTUQcL$=k>aqdlv>uOH9&azIS9Fd4(`nfy+sB#~i%{D8t|qKC8&SK7?mLy&Od3 z)%3-aKKkkd7FOvyF;$&d1zr%x)o!PB)CGw8&ErtbDb$l>6pm>Kwn464d1y*%k4yE5 zg^ONe-FpCQWa8eK@vok4wTKy+IbfzJdI&C9zZ9D+blzN3CE(-_4%5PsQ_{Ph08}qK#L9|X3zFbf$)vX+5N&>Jx5z6O3mc{Dp2i5f#=MKo_fbz9 zLEhil;qEVK>$BtiQH3KOHF{H@I$HNO-#oVHA7keSS^|p}R#2a5U0qDR3N)3LLZhm{ zPmBtJO8m`E!A28tEvA_-@%JY0Zs*+2>Kz(8f=u3XA95WU3QtOsy3O5KTV0esD03-x z+Y?j+4T1Ox6S{9;g}>%5WaX74r|p$OphaFc#@4=~^xiu2T$J*)WXy>Dkna{KvBs&!1fk7okSLUscR=XD;)IO~dnicCuUPEQ7A&5B`wP_d9 zO#|P)K)PCxV}I(aiEC`8J7|w41Z`OQAkp564!V%7X<3g1NxvS8=)h#dTb)46Qi`je z7#yso-S#FJR4~L9_L_Xb@K^t>%m-y_7>Y+5-U4h>hNmV3LxZK94BVIeTon)Xf$OiOoixeh3mgt*Zj9IK^~*M8@A2@+#M12C*qqB7CvvC2-c7{ZUtn(fLrFU8 z1z{L1uFxza@mo?<5s3lW!kPmI&!mENr;FW&xE;mG^+T_xQ)uLO0=W8(@yMZr{qll- z#kk5O-f`oUol5muhY}M6P<>aeaDQkZHO}3&jmH|zY~L{UAOwGo0)Z@sKLC1$+{^QGs-Q-QeRX1URaB2ap+S%; zfpag^))b3={~`fI{J@QliNKE43;B7D3pPwrik-d9HKN^ zIQ0-@-S6e8DJZ6=q`rLm?8H(R;}k=GZjQ2ve7p$G13aNl+D2`5N)rAALgsNRR0IN% zLB$XG-@*VolG3avw{CwM?drCgYfifY)1!#B8HrGZ3(JD#jO~K$BvyLBb@zx&n;)sk#b~Rt=ng*&{N9FR(KzCIO=6`b=>`!iB#LWu<@;&u3mU0f~f#pE^}Pzp=dXC*Eb??=PiIgpS0| z3yoRQZ+@_u5s7td4V%bz&?FVHLu&wvBTiaXQZB5}&NTk85bAOKEQAhE<>I zVM6c+5e7=+tQJ`<8?O$e0HKHxW=lX!BR?VDBX}Y3k&THgnOJr9?4NwU{Qa;P=%1m=5A8yOwVce1 zcY=wLp1FPMAN4oxI8WUMQj3JGtyw84l0+h$8!s!onb}_nn943PN5!_Q%VE%^&6|^Rqv7}DOKC-?-7e$R zc8%J--qjr;VQc}aCC3#K^VxD#?VE{-BC3hIh{m-m6$61M0TJO#?&;k46N)(CHA2AS zZHfDF`z1Ri0icdy%882N`W&En4oL`f%Q+c$h12!R?QKio!h#fHNoDTezv>I;r<=Jm zU}{Py#bXN(`DAF|T%GF-e_3oaa@kVov9vJz2TV*X$<5siEi z+i}cmvku?{MUUnkC~#_4uJ+kI_jsHr^$6pcndc%1!mmqCtSg|g5g!6~9muAY33nBr zN>;_=f81ht@4L+q7pDpr7pERPxYnIM4abaTh)h=JHNV`;$(6vaH-z^I)!uImIY9_S zJS#1Ab#Vbb&YLhV5+eXIBBX8S3i5>iX1n|Hz&l-==SS9-ZmqU0|CHiyAU9KDW8dW^ zo%~VOs3lO~$;jihZ(qKZO}v=lrppJ%hj*S+9vqbfu~-<-+H^0hPN;xQj_*=nL9Mh6PHi(cSRc22jL z*3FLVvaB6Ht_#^{WfByoL?R~amIBs`;6Y^4+Y&G_{>0Gz0r9COPXQP4Z=Rp4E_Hk5 zc)Y%pj5-=vPb|pRM=bu#{2d;7!;UV?Os;&JfIA%NB56-^mvA)Svo(IrlQwbe*=5A@ z{G&;$K114D1j%zN851;p2XTn(jn&0;`4qOr&I&;0b@ue|@NT3HKB6o$CR%v}u}&YW z%Hmus$cIeVaf@A!oXg9(_Aaoc`+6ZKD~7&SzQv(9GkXr=5$QOkOC%|-tWA|zp5ygi zzb+*%hL9rySkOEGdTRFPkE87i3k_8_Vq&*n++rk`1!@z>ZMFx%ADB-g%PP~2U!{pi zq)|O7p7uS~7fU!;AZ2||@BVIObvX$koM&S%YQGI_-4Z+A8}RiV@dsN1;fXPlITDD? zRkfbh@EgCU?`L386ICAiy80ke#_&vNf^lFp6K=Y*mV5Wc<(*i1O&WjNW?_P z;$2}&|4CT`b`*sHj;|L=w_y*>>CPP zloAs~R&9GaG>a$~TWON5x=G=wej<1as`-Ej1K&enW6fkL7Ar+GCdutAKVLgjD3C zJNHk9ySV%G`N+2xs9sgwW@&CVR%gvKMka7`gQ6 z^0JCTQS!-u|9y-2^mgBswS`4Wd{op8=VOGqqhY^vBm^9J*zHdy%1`==&`pCE#4x7= zKelCjj0VBu$FC`n$n$kqWGkNBfKmHk=Z4}de5(4;AD1VMS{yJTka37E2N(@$aNV`% zgX=rTZm6l2qbUsOum?Mxv}KqzwRG;?HfJW&*Gcg9=PR|$al`&*WV#~_0~ymg@}CTLk0JJ#gQ-L*shnP)Db6pI~JvH_KJ^17{kls8?KV8a#o>`p|tG z#I%slZczY@p}H!$wqhMn8*?B12nr7wWQpM!bv=fi*0W?ciy37RA0uic#U}-lc2xGl zfwK3K&qb*`*{ez@`Qub53nBz;zlbWI&CD3@<6RrTY>)e6t1V#^ZQDs@O3a7m#>J7E zZZUMv{P%BR0jNA%0aJUR9u!9fQou9-SKXKfbJVz8bn;ZsN9b~;p-xIx+;LkGpMwjB zjTNvsHG5c%MTcFbfVEXk?>dt+o_vhyIktC!rejuYmWsyKZ-W>;*>kI5=-M9WcXJ;- zx;Rf1Ze^$Uj9N9}XX&b4PUiD()%P~oDPD=1DhPK6cv|Zr<*i6{I6CkGI4}(yksBHy zkDgi1BaIp=$csZ!@18yuXM6-Z1P_O^<4;_D#ouvj^?9G1oSZ5G*-%_ujfQR>8eLo~ zNBo@scl3BHax!Z`r0Ln=OFu9MJw!FUIs>2il65H6_vO^K=+kco27gc&w5gJ!jo8g& z`jUZ446-NXJM~#TSuA&##ywqTuFgq<%bh zdUD&2EpsdMVa?8m=DVTFe}P-|8gl$_hMQFUKc#`CQBZ14k(+XZhZXCo?ZC+ zJ5Uq-O-ZZ0$0tlh6o2l-I7Hk=F1KiZQ2hCvxj#UE2jcYV$ zAKWL%Bk>PL-2_V>9t>-*FBK{c7PdXumf|A)kZ zn4A`AF~?t^SnxrO23=ULCa2_Zmx&(5!Os4ZceC=JF8)crtF0n3dV`jdtD%A;Xz8Kx z#AUlAe{Dhqi721ee~ND;uI#PA5GheOFZW&!CwdAYD}&P9A*1zVRareXDjGAmu{KA- zpE4&?l24t)p;7EBQPp>L?d~li-jQ5U$Kq?@+KsBm!R?wqi(0O8G7p6=f!- zS<)D}Dh?73K1ckpjpDnDd+a=u^7MR5uy$<%7JC%iT?{VE4|{3HeKomGH+uXMT`Trp zv7bQ$Z8x%Cz>&S#BxFG?XtUo@?W!!n1HK_C(f!$7jD~x7Ukxh8GEJ{GA-K|G70)k zjXbK#$tCXW@@Y-CnU%|Cz?^%Ki-^Yg1@OSe(7%PRS?O#ds!imi90pj9SjVYpfB-=; zPX)$HDzztm7xDNsF@C>2efrDIPH|ZRj(@G}za}138^E<`;|XdkmzJP!N5o9CGTXCK zHuH}Li3ci#Lm6Z}iyMvm|4a&N&nhV~F!moD@?BF!$j@x9v9B3&)CH-^npAq}$9cgb z#jAm9L?Th$z!hwV1{(8vXb{XwNIYPN%P{`%Zr8u)n<4nxNmar5gA>$91!vfLG zr|p{>0_C}s!yhbLL>xP2Py?T;9Jzas8BzYJa%KKBQ#j!4tO1#<^`?TVr^JSl5J&Vf z&yYw;uA()&!2RsAN`VecjEB(8*4gr9pJQjrP1xzZB8}OqUhr^HkgM(Vou(DFkq7sl zCX1BtUk%0+B~8)jT}xl!DM-;Vw;(|vr! znB~P4&+LNvxgfw9YS;;LI&zz8;QnsA@a%U`{rFHL@*%xb|FM*1C$jDd;$fajZ3<2= zAwFC-SBKZfG5!9VNS4du5A>IcMl`+5A~Rm62_K6a1L`a)#!HBOnf|+ zOFS&PYzaTcm6GY!5ErYS*E{`Z;I?>x*Wq>U@={=Y#8$a6H>Yo}<-Aj5`+h&}thIq2 zFm|aayr5ozH;Biw1Kq7GeFlPP4KGjiJn0&T$PciVN*f|2&Tv<0s$zNoaJaezkkB%@ z6Qa64(tRuY)G5*0W$5n+#m5W6`3<0JVEVa5Pgkctoz4#c6dEteNO6zDr}68jUS31d z2?Pl+GQRd&)*wlRLguOOs`a|i%q6~xJMGEsL!wMjd=ZIrbCzZUP7vy|$?fNp$9mk& zpGk>`7z%avvg#O)xk~t2;{f>0B2rO-$M_K<E?^3v0vo5B=t z-S{V)BzpVm9V!2lEZI>We|=SfOccQl%Teeq%j$s@_L`q@0fVN{?gnFet?por%uMD8 z;*;DrRSy3bV(Tp(Lx76D%FchjT~<||D1{MSP3sOl^@T)T4Zv=%!oa~0lwl#b1f`cz zy_&ha8hbQdy;mMFkaDGtF8Q^~$Uh$J;vpGIFzJJnjr~0< z+I%c7PaZoOROoM|1KI0wJ6Qd)gLT9bmnz9AV67@xiiSw7KI-Y_oIELxmaA{`*a}8g zfHgmv`QHC}V|i(rD~YikC1B9GnHlR#i{OJM&p3svr=p^ZS?u-?pb)!!@e(KYnCR&f zC(4tPE7&Z@Gcy{&=W}y432w?JQ4EF*D9vceR~0S({{SYnhbuGuGlrFjgM^FzU$sOR<-lk^8 zLA03Vf8bw>rRDt#n>!sBmll5g{<*xeM4EpJ$dB5C^FM#SdGb`EyvR?!SCg-+K{l6@ zFd{cqoM_W;O}9rM;~H%68YXZ!t&1pZkSm<$*6ir`i@DQ6!lLiVCD_?cO%$5~cRX~UYQJmDY@duBhK2N5FI(l^4R@q(vy?C2 zehZ5=fOtNF95Cz@L$uGR+u!Lw3%$UWV?>B~HE|K%as%i2T3oV_sb^Cy^Ya& z;t0KeDNq5{_t1%X6q$5VU5E0b3<1)?93AWPeMZA|An(5vip|}O1k52ACidXFDF1!y z2V|j$RRd@+AFdc9r9i7?Z)lo4>AAhpaBMa!=_IxUdj&k1JdH5BAHSJBr%CatAAEke z^Pr<&0sO~zlGdw5kA6fVuydOvMpFj*d&|Ttxu_S^MK+fouT_gA$tq!S>Goh^>m-jJ z+|kM;jiQ2kg3Y)}H?IOD3uL41E)3N9y`Lo3y5J%CYil41x2zEj52Hf$pFEkf{95w> zf$;^Qy4f_9Om&%Sp;{3qJAs67Ewxt=MjjdZ33m|dYK80WGnjsWapY}Yr8>B1Xru#j zykUl(E8CPnrpq9(S|~7ZPN4?i4z#qrdicmOBQ2G8M_Q(%uV+nqO}a6|TYYumPt!Wk zvmH&t{h77N6Mpg7+*r*^OVN~(BG*!r#NNk9Nbl7Uhx4{6!J1^#PjnBs1*a-1z1ksi zk*AU-4e3p@fqmiAA&ZT%&3v^{bRTc3_5H$>0XNj=usTaJGP?1V;H|WZNnz zra{vt?YQc$HTlaC^X=8d9ot%{}%Sj*K3zQa$<=R zkJ%?rx+l$LUx*}dk|Yq`-;JG_e;D4I=GHGm=7pCxe&YJ>beCZ&=knNTgup~PvG0@0 z)o2ERcsqGqZ_Qy!Fi^b=#NJxk$)zQ|9w zVHS!ZoObyxoL!|W?Q14+SDofEU#?Zei#ri74u~56rc&Sj`?4&Nr!v%X{`bn_zs$87;2qWy)J;qL*h?5}VKq3t;4L^MFR8wO0pd3R*AkVD{a%b^|nR_g! z%o>p`{^ONU83Fd z?#n6M<2WAEfAqW}nVl^{-hi-Wd}QRw;9%d)o4Jqg^*-t4joi7N9vd^L`>9UaClrlpNtV7zsLH?M zU2mzmGmwjIxpOaB1v-7>yCcU! z_!L_CIK(BgoFx-FiQy*&se<7s^S`B*^)DIkdu7$zaZjIl7WoW}=oc+({dn3upc$w` z-bIyE5obWY!1cB*xRXrgtZ7=s_Mt4QDcttOtXNv`Q#uAOle~fYy-iLTFlts)lU;bF z>hvPGJ~`Iru^JL=6cy{l!kZkA)o_)AnPhNE9%HHb3<0fcufCoQj24UbwTe2Ucz%bTM?G!DMRB7}9)L!Yc%%F@qMg%Zsp}k`v+-&!uZP4u1wz-C5+<$0Aq8v1d zVsR7O{XF@@S#^l%o8Mu#tcGw16-Q)#qhA*u%s04k7{nDwJ@98D_S(M`nQ2p?g}67E z0$g5>lqG~`1m$$Lker-?WpDzs{k!a28Fk}~pO!vB_uP==stcG&oOu9(@w8q37T~2U zQZhr~lXMm7T(rTruKxM8Xs(vjg+7TjeQ~jI0)xLaV+FecXvXOy)3yO5^`+HF$R8L3 z4Z<0aUe0p{$_Oh5KQnF0|0J(aO(xM`^H~!exf$^lg|14ym;@Yx03%ftQvQ7SJ>MT-Od6!d$}+I0OI5ik12- z!juo`?mwE`CJL1o+}5?*-r=Cq!|-hMyD*&a-bEf3^{C84o+=f2r2S1PAm_r6wM`Xl zQ$wMjqOu0>zf#dD$BQ9^$nW3vh{U`%O~g;^{UoBfS3#ZLa|;ziR!q5bpADE=@uQe6 z&Q%Z_7m=Feb*UDMlKNmrJF_aDF&07)^mkVVrNoENMh3Jwi-F`-47OXXs$j!c?#MOxg4Lg&h;rOfN=VtpR!RwSN%RzSX{qSf zucfIeUdEdwgw(>qA~Aao8B8I&!_95nCB2@!uU9Y5b22Y)v&~}=;5I+wRLxWw ziYlrt@BL>*H+3$$;YkLVU;ljymLgO()XB#OeR%wSS!<>9(Q zu^N4g-bP)Lb(dWP7XgW-w>Nh_V5|ZX0V~S@funOrnISO&AGrCCJU5GUFUF*aAP#ky z6Uh}s6>-FI^K%g6rlOrpO=TzZNjR>hXU9(PVGwsHh)ZO!s>O;w9)X*S5M3ygtq~A$ z6Nv4)&nkae#lbBeH@ucI<_SLo6dc~DeEp{1lCh4w3ObhL6-qEhBDH$!b78ourG=G0 zenP0a%f%l}Y} zzh~*-EW&7W83=HU=epCh{{02~fNcf_ql}Hs&3Kc>9-w&B21wz=G2hn)*h@+`&*=4f zh>Dt-`wrOwm%_#A_fV|6cEnhYRQyjlVzOY-=L!o01 z9Sl=y)x_z$xSnCb)RnT~^5UZui?cdi;MDnLG4pK~Y#C_c$-qi1%%EAFp{qQ-E8JIG zx?tgiZ1MxF8BCpioy*+AdOM8#HhhO!cWw0Z7>CK01U zAxpW|Q&`zjZ*h!pr#X`~iU>S=4x2#S{l4LTtZ0zAg_1VDXivD8!LBep?LqJlP=v;5 zh0B=&Jxfqg_%>TZi+Bv#!+wXDu@WX5z3n6BZI>k&2>oAU=Kt7ix>RzVvK$}k`M)$m)`T=!=o#)7BMGn|+ zei^_kinTtqt$q+mUEJnKQpqm_@Q#F6SRGm`M_DO7qfnSg4t-^i3J>9!h}N697rp}T zKUD@e;3;fjIy999kqRy{DdS*7UCF0-Q&d|DUy(52owXQVr0*s1Mn`8U4(9S@WFbYc zQ{)vjO&G~>6jPO;*#D;GKrOf}8I?*?qQFj{C<=-ZbVVx}C&F@a#75(jl#%NzF2bXwk5i{9Zca8gd6uDOAz0iD`=Mz)+E{wsf7j)-#H5 z{Cq5uWyX8p3D4bOGmYKPCY-RPHd@x=4yMqvG%j*FKe&aqvKH7hoMbQG1DA6evWg46 z;|`owLPnI(c=B5KeJ6yY`DeO_Iw$LMPekg(2sLIq-`+>jie`G3#(t@|pZV2S#8inG zs1~F~^kCGR^T-7)hMmm_x)-Z&k4p?WcT;m*dLcHLC)}&;N=Npsn{fT2H?4W0UU0JF zeHZNy6g2O9ZLSW$CI+Vd5gPs;C1x&DW>esx)tMd)yKmc8xRprbuL^N2r8Hg(8It3h z0_p@9p{y-|P^MSD|}Tr4zYXpzJc*Kd_CrhIyJ1% zo%>`H-nk3e#49V#qh<_H10u0R@(0$bVBYAF!0kxp3&f&I_Wq>VJFYzJyPR(vj>uN# zqg!7*`n5K#ycShwq;2hC^Fa&>pMt7VQcD_`>6dg36AT}QGasVWf-Ae+H^~lm-V?@HVEw7H~&c;>Y%di8lTP8FZ{}S z4|_;Pwu{`Q=y(p7)Q<6%KvFVa%6;CBSyz>LlRdwm|JYuqs5Uhy>$uew zdhR8dvCOiYm#9fl&;4F-AUK~#NjW55vNfOy(csfhdAi`i%9b?8nN_4BH%go3)KB zgu5#TOvIvm$>f@)1`RyQ5SfZQ0dZ%SRh)G6G5^)Wu}om=7Y^s@6|c?b>FisxL8wg}&ZRBetdvb;V!F>3*9ZgZ3(`k2b;*-V-ir&R2B79ay$=1&4OD6- z`c&l3Z2PBQR-fak)|Ch@(;eVhPUZ3gFoIn-T4mbuKb76nU2h|td-FDT&zOebtdB2_ z52yKDci^Gsz~zFKCtt!IpmN`?GyG7=2P4L72Lv?KJlE*9n$69yEuNTTW+;hk^{1nS z=a)E~!kdaa+CF#Az1W|3``O#UyU-p> zXlpV1iCGt#!wDfYSZnnaU2En>H(ujCA-1lsiU17d*kw1oeN&tMOEI)R+EA2wNlagR za`=hH=FJP+*BLLb?It@CPmJ=3KDZ<$^nPrDP%)A;{;pc7QmfP3-!5gHsa$#p`g`%$ zH3cZC;5t{fI%p6z`)-W_^~;Gb1;02Z^~Lb)Jybf@If2AxJzDSa=&IZ2&xg-Dlce>; zD^wJB=k;7|dg(orC*e=VweO#8U-#%u$JJoRJ(N6+C*~3@`4$=4D7c`E-KIfx`gyEx zqZvp*{E468L_SuC)A(zQP0kh8RG`5OWx-!o_8Vt{Gbv*NDKxq0py2#Uqvpnld0s`2 zyqu@4dO6s0o9&Lf)~)B}(!HI0!ZgIkGy{gz?Qdo+2)FMI08eu&*^fYv-Z?HxOSEOD zA6e!sayWGpPomyFEf+8}REum>O+BZs0y$qBW#zx?T={(WdZ#XN(FC*Zckk)~wpc#r z%xDsB3Is{t5i~OpGs#ni_GvP~L7q=~F^5J9CgivhGjkzf#Na!%Fun#h@PYfvCVX;R(>nQUHnDmuXn2dJoIo|;8{=GNRt_KH> z$a`ws;#~T~F?C?Pgsus=sl7Ygxr{BFG-AH?8w~w)O&gS)cIIP|2`Si?o?nNV9BhtV zz@~=0qfdX@p=G#kdgZ`lxM=YGjEB3E(t1-C`PbXn*Dhoj(E1(UG@N|-g|BRH*FW4o5Bkh}jk{mk*-)^!Wue~qq`UKz4otRp_RyCgQSZy&IJY@tRWQQq*a^W+ z-$I^Ig?60u%w3>vlB}$G&lyiSa`bKD!|jmi@Ym~_7jN7gVFv98HAvVJ;muM=FhQmH zeP!iFNrZNg4G<+cv#ljRpo_ndNJXSA%nFf2wqPQvwvvaM*S3A) zXoRFGBnC2G%>=AnjP8zq=+9n7%V*Y^O1r0^!2@CsqR%O#v%<(6&R5RBcB83R&lSTWBK92k7SFlr zqpJGkvfnR5$%izxX4X4tjb?Z6*)J?#NW9t@r|H?W_g;zDF9qYIk9)8_ySa?()|n%9 zJ*Iq_u;AKD?^U*b+tTDic&YtzW_zqeWodaJ=YlSCjl-R|;RgHx2mZ zASTE9PRS3{GS@|T7gj*HJU@3k3&1p-99Ey6`^7EvLgIvr+geKWrDo&tH=j7~cb$o_ zg3N`Z^K2?dVycYuc;j%(b|{dcFQ-6w{JyHAg7`^I6$c)sF# z*<#Jvlrl#))vjnv)`Ms$`YPCgYZIsP=rb^cEi0s%727^w@0m;n{-g;bl`yDyS(Yak zi;ED8FIG!48_7=-RNoKf-xv3Ch-4az#&!~m_TgokBdTOeAPm_z@QC_g4{dmkFn@-= z8ZKWwPxOPP%gTsE6$Ikao&tzQgPWar?R(AI5x}V>x5nPdgSxE!47;FXhSm#;QumM#GF9eHWI`o4KWPw>npxUFxzYMe;u{+K1A zl&z>BZYT_TbM@uqhsFTkds_?Uem0+pLVt^;Ft~2VZ_yMs#dbxr)grtk#U&bzb_D@z zkva3IxcX(mpArfAZ$eh0;$xyT&&(IaH-7dHj}KT)iXo1(ysCT|wrKQxxC+y+GrUMd z&Zd7iMFgsFb&JX2m^Y(8t%(`-=ZhkAE8FnDjIWI}c zz;=!p5pTzEx4N6KK<+9=Z~7ECWwf@f*(xus&{yhpB0FJFGRyL-S8s=NMUG}`#wPAo zUsJd*R3GC}#{UcVUdfVd|NG(0#h@v%g!dN4Ev9|?0pr{zxYsW<4pBS!T~ligUSePF zP_VF|%SXqDsN6!K64bbSwWtnF&PH8Mv4H|;?g)15`GZkscV7T^fqW(<(i2txdpAd$0eEF6;d9J;&`M9Fdz6NCy+_O&a}S%)%mHu{t1F zDD-%HScm;s`V8tOuy1rA{tENcCf&qCfzTRkk9!n`OfEec~9x*7ugZc;!wq_Cdj{ z!+b`Vnn_cNBp*n-W0_g9()`!Ux9~u;J`>xC?tWtaQHklPqKdk96YpUmjE!{`6B3Aa$_H7wh3WIioP-hAl7zl(Nm1K-)k%4j zUopRydDK%C1tae`B{M~>x6SG0ofz9ghRPzQr9}pvEuTHW-IBxsZSN64OADb_X`wAz zUXFAUhUI|wW4krI)lw;TFJOK6x%PIU*xmyGuWt#dfzS7FYY&y1*$8hk-FJ8HLTz;FpLk8mBUTFFZvDz-uiaxxNAnHH!wHrVJ-9NYv1hrSy5K(XCXLsS}*qP#67{B zJGbjbhzP={Av3;)*y$te3o8oCd2xd)O|_P0#lCSepvZ>I<$P2y2Z(_Uv!P|&eF~^B zH?1&iq-kev7frE7y4_uRx%9GyFE2vu!N~B?=G+(#fJ$>ew!?X`C)UthsDbDd&12^| zL<;p9a`!$yTQ7dcMN!L;ZdNbsBWf+9wUfXrIsrahE*nU*q!)bp5X|FHt#+*2%+Kc7 z7sfagPHk0EC}Qd6m^WxVcEm}D%Ih}=q`WZWeY?5gV4Q91uryX7AjPVIdB(;8kU44I zDHx&!eMeIReeg++6u!i(KScGki3+@E!Kn){idj#Dkv z#JN=ra0RDw1NI4PstG4Pk)bWV`goZurVFUi;wk}Ty+^p?-)NZ_*@Uq~=-g)Y>9M~i z*mw%xzGFCNx<+Z%QGo2BRPp~BI)m1Eyt(K&b4e{i`%Bagl)xf@QqwkFS#qNKg!uBa zGZXQVk-JQfmOyxYA=xX7O@=AvSEh+NiE2{P=j13(18eP6-eiFcls9O zEUBhzW~2kvzzla0&iyBILB+0Pcs(77p9sRNJ#ii>Xrb4XXX)*cS(vjb6D!g=Z0LoK zSY-ZZ?`sU)2mq~wk}Qh~nLlZGFjIoy5G4)qDbjKTWw>+l^`f$20j8D!9a-V~ zfq5_}$v3#tS2$OuhLo1yFSP@rv|V5q-PMMOo2CM8tW8wTPN2ZOo935+PqkEI)pFH=xe6_#qlL|6+6W(uVL2J8 z-TGG;yn+PHI|%6!k@RiXxCBiaXmu?PPZ@z`M@jli1CQ$gR^%B^(~<2^UoV&p&(UuF z%1*y0_7M&Wf?19^%t$h|J+D9Po^%ePT$lT#WBVCAyi7VLHrj#Gv4R-Nc9dC^fh&y` zAgYm$xk2WFcLQD{PRptqWL4>TF0l(Wfj)D=<9L5d>?UD8en^3cvkJc~%-U~WI_GN! zu09RRm1xYoqMB}t@Y!iWDM6l6uAZ*3ZU=5Vd40Ha8VzpMtF5K#7ZRrkEdg%=*WbkI zFBtWO=;_qe@|(L@sT|Beu80hTN-x)NyYrfKCYmvtf%nC8awUt0ktuTcT<5!Aao~nj zbS|s3Fz4&K)qcEVz#EaAbDfo~$k&k_G~ESa%md0)$2JGl>TTUB=Xt}GR_Ess z=Cioy&8ul6!ls^_8ty^db;%pbF2QS=51}uq0_;##TKw%+ok1DFCSmF6I=*&SXN_~C zx3Fo}d_LU_QGN$8^chVXY03+{66GYa+IuWlH)#t|ZVSF1=ZBd`w$_`#ylIwO;j(zDM$qceM>4tp9D~J7Rqv}U9srmL&vXa07Fi60}Ru6C(zG{o^PG+l(U~rK9 z3y2(Qgb0&LWE4GqCqKJ2#{cH~ruQ6C#OC&o%;(P+fOfkbOj6TL!1LxSApJ2Ec@e;r zUFDo-2b>9;Iw^+mpG!0UcHz}dCUX!N=Fl%Z1~l8JfU;NJOcfw=_Hy3rk zI_E-ui=lhhE5!Z_oI4Uyrs|$oU%{EKKq=!JLeBt)+<)@Glp5kN@+GtG!oq?bC;zdz z5tryIv;qy$+5nj&Ms3&>~G=8+f;U}keVW1MBXn#W77{IA{8`*2~6ax1_}ns zJc2@+bTlD26ilk*5%ArNFVh)OSP?qy3PCV|B@<~Og_fE)ae`d-<{f_tbIb6c-Tmsfa(_sjZoUpic8X=G(z=a;66Pcn*c zStQ8YG;#BlR`HIwAZU8yv^4P^P0gbSoD6}*l`%$~!9iX4OA69%z~s40P+ro-{`gS@J*A`wy6c1O_O$g==GGY61U!`18#L}J@Z zL!z+u*PyB;I8F0nX(%OoW>jGhQT_;U2N2e@<*&n)3pYiW*7+TDF~6FrxpTW4YQD^y z$b`F>C`$WB-BB~hk4q9UObdn-2uq)ZgQ?qFt zKJ3~pQN8FAQuGr^NKXzcn;F4}jga=iJ2u|d(}X{~f4|nYln2kn9Z`(bIm?Rf{dH8% zsn=Ww+`D`b8MbR+=zgN)t?|Pa5rB>*qil-k2FW&D6I+J;eC+}d&j*{Ft1^oh>E*x(m><&1ekM$?oz8$3uV4kX8g5`IG6DrRqr=f}$uO*3ZE4c1k;(F&qD|{A$~EwubCRe!)6Oa#=ZMwWh5o^_^58d zjOnhzknkY_jKMe9S1Ae83)f60*f?5S(v7}}L8!h3Jm6zvJ3EuL3z(UnrT8URY{56t zi^`-Z$CcUg~vzIC5@?`)&`CUp(mbJY;50Qu`l4Z*gT6JF?12L@35$fCEE$(^O5i&qty9T=Zkd6z?xIMoV3CgQeCPiNMbs=JZ{ z?xP*<`jQ!NSL8mX-t3@h2J*%I3UZXGK$Ot=#aI6}enRg6|0-`g(VnRKk8de{PreZNhQif@&0# z=ECFJrRV(Xt$W@?8|^N4=kQo9BU9)_JG^D6XFQGns5K>bX^vHdMK!>NJBZe%iHs{O zDqnk;$US2XmtM#0U|my}yDYPGZc`23EhZt@(gHaZh2uL1fYt%wJZE}JG4T!+v()+I zh#TvMaBWR%h_kAvYW1=>!-g!Am%)s{M&P#*h?XL*Up0ca!K|BLqiPBD79Yl);vhyl z8rvC;bn1kJEN`GD)qv!fc}hR%6(QdTxW|yrv<}=Oi5O8UFt23bh%j;PWTE8Yl@`2Jet?(EEnE%H?OVT+{5olLASNhuS}88 zQ|${~7B9tnhAZlN9!e%Y8`m%rhetUDIZeIj*e!9{%v6AUNRyYTz*Max21Y2~$@B^g z7iq<M^c4yM9K`lqvQ!l9)hb7fIrAt2X^~YeCkIePvX^BK$2w@T zkz4VW`YN(q!j->O)dS;vMTV@D) z*iYlK<{IoaTUn>wXC4@Mpf*>hGaZ^{WaXiVQ&ql8fZ)T~l9G|pZ73`4L}}CXC_fZ= zuuIZk*mOuX0NrAegPGYJ+q+DmjIAVl40soBh1Kqx?8^+}#7*>Cvpu?96~nRALBAQwG&xaGHjsRS{pzPN+D+LGr`nJ9123Ya zmH6~rp}xIyarkIeR_vT(-azg&_Lxy}UO@mU*^e1rDUq}=5Y3Ofb|X7L1hsja`Pl5~ zXpu>$_v6Y$TID^f{mNa33!+`30_gN{o>Y-lKc2BUh=mfCTRrO?ssA}mnDM@WKX5P ziz=NQA*M?=tz_nO7d$36MLtzkLmi8O@hLo}=2ALt%qu&J9-_EoHtY6Qur)?l0^_2M zbQeecQPNMCN#{sesc_P84j}~Z<$FeysVneBWbU$N#Ilp^u?d9X*h;eeU%poTKf#yQ5Dh9T~%5!nv$VFV3>%$_I^#Cl9;__ogDRZbzTA%qDLfkZ(?cjAqq|`GeIv zN=x$khYc06CBr)u4cjfLBz&ED&YfL70)F(N>rC5^txvo?rJ_DRFBUDalv>5{ks=^l znS^3$7(Y2OqJeEe-Ydy?mKn%YCnN66&f(+zTqZ1C#I#73mh3o1cP-0E;ii?V7Cy11_pw*XdVrwAg6hW!3=g5>LbVSGfl45p6ch$aJ-tY~Qw zf#$b(nMW5JbdFFpw6Kpx+?xfz4c>D8>TG=keqMIY^)RvVw2vksH^Lm3LCWDvv(lI9 zI3{c)p>|%w9(S28mRH6g2t_W^`Ov=PoAxq11FJCsq2c4_ECfc-A!Q>K(Bl0nxdyJxGiO(jJlIwD-2k;I2ktOYXV)!j_J*tQUFTsWpDka8+7W{lWN?+9;t%g}zqXvXd z6b#iV@(XWfF=Fluipx~>b)aP|LJC-J9obywKxrGq;lv51&{x_M=y>c`xv6u(?RJ`m zcY}HIk3MdD!!L33u9Xwj(VgEbgAf}WH*#9f`lyM!LCT<2$>=1k&!K;@YTL-K_#Gxn zOF$uuudWGE2U*FD(0U%O!7ES66%8ojPe9P;#KrCb0y!C7y*tJ59!2GG=P}*_7_&}^ zEmg!~I|U3AeQ(X@aP3^wwxtR4d65h(W1E06MX1o!-pu?YY=3NL8gUACo(Nk+AbF^w z)7#&FteMtxMyK=JQ^W>Lwr^KWI3~GI(ReM`UIQn178pMw2%sH0F6{a|8D49<=L)knUWJ>p;=XjmCF&DAI!VmAqkjj>^Lx4MhUPut5Zzq*om zYgIulbc+~3k+mw}0F@0e#Cyo0${KEj7KB)NlN(_nprG`Yqrq?kDB$Z*kxehl7_kh2 zo#?C5uS6mdHow>0kq9&9dK>Utf&6yt0FNo)qi%J6|MB-z;PFRp8f@zd+L!}CIjh0{ z$T2}NziUze-y}l+5&V;L06B-SjkzR{OAp_O+XMi$Ab2+7e}lbec@X@NzXfR;3INY{ zqk%E7>-XiyAOTze&>w{c9&ErVfLv|NKg#hJQ_<)rJ z=6`{|8TliZ0&)ZY53U8|QnLP+fy}?Ah;<9cK#-A*27dZY-Cu|A6|Zw2K<*yMefSIc zn}O>b5e@*8IsYP$`JX9*27(T`Xu#}W1g@Wo0=cpcxOK%j5vOX|Af%3%RS`0q=I0R{p7)A@QE1;J>nFb} z>s+t9AVTHuvw9UDI9r2V;x?GA2S83k4GRc^qy2sP(S%iyGt&PyIbBl0eQm91Cm#r>1|M)oVepC>jgsY~b-Q$PL9}0mcU08pz2cV1fR>a_fK3 z>NxPjwv-4C$zR}aF8$~+1>|J*V8Mro|GUTFr58Ziiv{@qHYDH8>gyuFPdi|<4+~&6 z@Z>DWc{8y9_)Wxrl^+dUS~rk|1)Tqh`(su|3IIS-Di&B@r@k*g3e*6(4_RQ&d=G*3 zA31lBJDUv--9IV*&uYR<0m0`vV76`mwt!r19u`>Iz`!w(ODV^kpF!Ws)MHfs2GC<7shrhQ1m_cAFfgXkI?zsrFazB1Ly?P z_It1U1~bV3$Yq1K3t@x)JLvzh)D{%|dz4o}@Q{=kAi2RRfB`py?3Wb- zeE&y`Diy$6gZ}1H3fP0FBnAj?;8F|7>HI&qF_5GEGq;`xzq|AS1ik+m{F5UJfur>Q z;AkM1z9FXv3IoBae*xFc3l{}as)T?Pu=-ot^wts(%TP#hZ|WvQD;jdNS4|bsiiEWE z&gvpY;gD0k&07#*+>ov;K@&u;pb1hL3F+@OrXyR+AdbCH7m#_*kmlY5Z60M4$ZBtW oJWs1E1l4O-!_$g^Z0h~g%9F Date: Sun, 13 Jan 2008 22:47:11 +0000 Subject: [PATCH 24/52] fixed FTP issue --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40615 --- installer/MMS_Installer.exe | Bin 638464 -> 638464 bytes installer/UnitInstall.pas | 1 - installer/UnitfrmMain.dfm | 2 +- 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/installer/MMS_Installer.exe b/installer/MMS_Installer.exe index 4084791230fd5fbf92c7a713aa209650c5bb1d5e..7e6b4e7d3f42350708255c16f5a5999e9e5566a0 100644 GIT binary patch delta 145187 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 R86o!*kj`_TFYs6L{U5Yo46y(J delta 145189 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
TRgyPRdm3 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�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 Vf6-S?(=l$RAx&3SuVIAY{|Ct+R388U diff --git a/installer/UnitInstall.pas b/installer/UnitInstall.pas index 8eb0685..daededa 100644 --- a/installer/UnitInstall.pas +++ b/installer/UnitInstall.pas @@ -458,7 +458,6 @@ begin eStr := TStringList.Create; try frmMain.IdFTP.ChangeDirUp; - frmMain.IdFTP.ChangeDirUp; frmMain.ggeItem.Progress := 1; DownloadFile('metamod.vdf', ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); diff --git a/installer/UnitfrmMain.dfm b/installer/UnitfrmMain.dfm index 14b183c..2c554a7 100644 --- a/installer/UnitfrmMain.dfm +++ b/installer/UnitfrmMain.dfm @@ -10407,7 +10407,7 @@ object frmMain: TfrmMain Lines.Strings = ( 'The zlib/libpng License' '' - 'Copyright (c) 2006, AlliedModders' + 'Copyright (c) 2006-2008, AlliedModders' '' 'This software is provided '#39'as-is'#39', without any express or implie' + From f09aaee393a77fd621fc051529e46d4996c2187e Mon Sep 17 00:00:00 2001 From: Christian Hammacher Date: Sun, 13 Jan 2008 23:19:44 +0000 Subject: [PATCH 25/52] now overwrites VDF plugin even if it already exists --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40616 --- installer/MMS_Installer.exe | Bin 638464 -> 637952 bytes installer/UnitInstall.pas | 35 +++++++++++++++++++---------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/installer/MMS_Installer.exe b/installer/MMS_Installer.exe index 7e6b4e7d3f42350708255c16f5a5999e9e5566a0..6bcae5ce0b1d0bdfa4869ebc76a30f57bd8fc98f 100644 GIT binary patch delta 255364 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ðuEX6ql{4slVFweu<9%UV1+X@ABJ4hj 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 e9sjS`$z&kAM&tjAeXyQ}ULPS@a2rvC-_v_(Du delta 255426 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 {hdcJvRC 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

$~pa^V3BT`?U?!yTXpXKDkJeLd>On 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 diff --git a/installer/UnitInstall.pas b/installer/UnitInstall.pas index daededa..ee19437 100644 --- a/installer/UnitInstall.pas +++ b/installer/UnitInstall.pas @@ -448,12 +448,12 @@ begin except AddSkipped; end; - { Create/Edit VDF Plugin } + { Check VDF Plugin } CopyConfig := True; frmMain.ggeAll.Progress := 3; frmMain.ggeItem.Progress := 0; - + AddStatus('Creating VDF Plugin...', clBlack); eStr := TStringList.Create; try @@ -464,10 +464,11 @@ begin eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); frmMain.ggeItem.Progress := 2; if (((Pos('server.dll', eStr.Text) <> 0) and (OS = osWindows)) or ((Pos('server_i486.so', eStr.Text) <> 0) and (OS = osLinux))) then begin - AddSkipped; - case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to continue, No to Upgrade, or Cancel to abort the install.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrNo: CopyConfig := False; + mrNo: begin + AddSkipped; + CopyConfig := False; + end; mrCancel: begin Application.Terminate; eStr.Free; @@ -476,18 +477,20 @@ begin end; end; except - frmMain.ggeItem.Progress := 2; - eStr.Add('"Plugin"'); - eStr.Add('{'); - if (OS = osWindows) then - eStr.Add(' "file" "..\' + ModDir + '\addons\metamod\bin\server.dll"') - else - eStr.Add(' "file" "../' + ModDir + '/addons/metamod/bin/server_i486.so"'); - eStr.Add('}'); - eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf', 'metamod.vdf'); - frmMain.ggeItem.Progress := 3; + // bacon end; + { Create and Upload plugin here } + frmMain.ggeItem.Progress := 2; + eStr.Add('"Plugin"'); + eStr.Add('{'); + if (OS = osWindows) then + eStr.Add(' "file" "..\' + ModDir + '\addons\metamod\bin\server.dll"') + else + eStr.Add(' "file" "../' + ModDir + '/addons/metamod/bin/server_i486.so"'); + eStr.Add('}'); + eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); + UploadFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf', 'metamod.vdf'); + frmMain.ggeItem.Progress := 3; { Upload metaplugins.ini } frmMain.ggeAll.Progress := 4; frmMain.ggeItem.MaxValue := 1; From 846ac214eb6a51c5f69ad045a6e1f0f1eb734466 Mon Sep 17 00:00:00 2001 From: Christian Hammacher Date: Sun, 13 Jan 2008 23:45:05 +0000 Subject: [PATCH 26/52] fixed FTP (again?!) --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40617 --- installer/MMS_Installer.exe | Bin 637952 -> 638464 bytes installer/UnitInstall.pas | 11 ++++------- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/installer/MMS_Installer.exe b/installer/MMS_Installer.exe index 6bcae5ce0b1d0bdfa4869ebc76a30f57bd8fc98f..1ac99b891ab972d9fe04ec3166c8744c626f4904 100644 GIT binary patch delta 451077 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 z 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ÙS_-K}qS&W-~XVhi)d1tciY`L)K{)c?>%3IAztmn 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

A%x!1U$Pyw+@xW`!F6A5%vKgbRh4_dxaLj*6~g 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�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 Y1xea1{#Ure9XNz$(jV!-A+t~a7t81?7ytkO delta 450861 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

afJ5+DXQHrqmIHwT?G@a6& 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֙^gdD@u^ahmP>V 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 z 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

~j4X+N);_!7!-b`)ly34{p#6 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

En|t* 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

p#~4rX4<3?xKMqc=3Y+g$2ef^h!KZyqq#_9 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 Yp*UZ3=S3RE?gF$$r}O(w3>W 0) and (OS = osWindows)) or ((Pos('server_i486.so', eStr.Text) <> 0) and (OS = osLinux))) then begin - case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to continue, No to Upgrade, or Cancel to abort the install.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrNo: CopyConfig := False; + case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to upgrade, No to reinstall, or Cancel to abort the installation.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of + mrYes: CopyConfig := False; mrCancel: begin Application.Terminate; eStr.Free; @@ -526,6 +526,11 @@ begin if (CommentFound) then AddSkipped else begin + // delete empty lines first + for i := eStr.Count -1 downto 0 do begin + if (Trim(eStr[i]) = '') then + eStr.Delete(i); + end; // see http://svn.alliedmods.net/viewvc.cgi/metamodsource/orangebox/addons/metamod/metaplugins.ini?revision=1099&root=Packages eStr.Insert(0, ';List one plugin per line. Each line should contain the path to the plugin''s binary.'); eStr.Insert(1, ';Any line starting with a '';'' character is a comment line, and is ignored.'); diff --git a/installer/UnitSelectModPath.dfm b/installer/UnitSelectModPath.dfm index 436262ce6c27b2c60427026c017b384104e95075..ef9ae6a00bf1378e8d66494971a9f5e7022a05f6 100644 GIT binary patch delta 188 zcmeyvF^_A4I1@ALMoDcZM*hjJOwIM|{&~(hnaSDgf+a;|E}2EC$tC$km0%$T2Hp_2 zoWv66jMU_8r~C?m4Mx`R%#@N0=Iab> z9;un>86`~o?9Pb=C7JnoY#JdMnZ*j}iMgo?K)SRzGcR4CBqLS9zepKm6wqvi)V%b} fyi^5_ki;baqLkDkCPsE3Gq@zbfOGQ+rY(#B*cv=f delta 24 gcmbQo^@n4EI8!3aMoDcZM%l@(OwF6Kn71$j09qvn0ssI2 diff --git a/installer/UnitSelectModPath.pas b/installer/UnitSelectModPath.pas index 368d478..99251cd 100644 --- a/installer/UnitSelectModPath.pas +++ b/installer/UnitSelectModPath.pas @@ -5,7 +5,7 @@ interface uses SysUtils, Windows, Messages, Classes, Graphics, Controls, StdCtrls, ExtCtrls, Forms, FileCtrl, ComCtrls, ShellCtrls, - TFlatComboBoxUnit, TFlatButtonUnit; + TFlatComboBoxUnit, TFlatButtonUnit, TFlatCheckBoxUnit; type TfrmSelectModPath = class(TForm) @@ -14,6 +14,8 @@ type trvDirectory: TShellTreeView; cmdOK: TFlatButton; cmdCancel: TFlatButton; + chkUsesOrangebox: TFlatCheckBox; + procedure trvDirectoryClick(Sender: TObject); end; var @@ -23,4 +25,11 @@ implementation {$R *.DFM} +procedure TfrmSelectModPath.trvDirectoryClick(Sender: TObject); +begin + // !! OrangeBox Check !! + if (trvDirectory.Selected <> nil) then + chkUsesOrangebox.Checked := (chkUsesOrangebox.Checked) or (trvDirectory.Selected.Text = 'tf'); +end; + end. diff --git a/installer/UnitfrmMain.pas b/installer/UnitfrmMain.pas index 0982d5e..dfe3d98 100644 --- a/installer/UnitfrmMain.pas +++ b/installer/UnitfrmMain.pas @@ -185,9 +185,9 @@ begin end else eStr.Free; - // check for orangebox directory + // check for orangebox directory (!! OrangeBox Check !!) Source := True; - if (AnsiSameText(trvDirectories.Selected.Text, 'tf')) then begin + if (AnsiSameText(trvDirectories.Selected.Text, 'tf')) or (Pos('orangebox', LowerCase(ePath)) <> 0) then begin case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of mrYes: Source := False; mrNo: Source := True; @@ -221,11 +221,11 @@ begin if frbDedicatedServer.Checked then begin Source := True; ePath := trvMods.Selected.Text; - if ePath = 'Counter-Strike:Source' then + if (ePath = 'Counter-Strike:Source') then ePath := trvMods.Selected.Parent.Text + '\source dedicated server\cstrike' - else if ePath = 'Day of Defeat:Source' then + else if (ePath = 'Day of Defeat:Source') then ePath := trvMods.Selected.Parent.Text + '\source dedicated server\dod' - else if ePath = 'Half-Life 2 Deathmatch' then + else if (ePath = 'Half-Life 2 Deathmatch') then ePath := trvMods.Selected.Parent.Text + '\source dedicated server\hl2mp' else begin { get games } @@ -318,9 +318,7 @@ begin end; { Custom mod below } end - else if jplWizard.ActivePage <> jspInstallMethod then - jplWizard.NextPage - else begin + else if (jplWizard.ActivePage = jspInstallMethod) then begin if frbDedicatedServer.Checked then begin // Dedicated Server eRegistry := TRegistry.Create(KEY_READ); try @@ -438,23 +436,16 @@ begin { Custom mod } if frmSelectModPath.ShowModal = mrOk then begin ePath := frmSelectModPath.trvDirectory.SelectedFolder.PathName; - { check if this is an orangebox game } - Source := True; - if (AnsiSameText(ExtractFileName(ePath), 'tf')) then begin - case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: Source := False; - mrNo: Source := True; - mrCancel: exit; - end; - end; { install now } jspInstallProgress.Show; - InstallCustom(IncludeTrailingPathDelimiter(ePath), osWindows, Source); + InstallCustom(IncludeTrailingPathDelimiter(ePath), osWindows, not frmSelectModPath.chkUsesOrangebox.Checked); end; end else if frbFTP.Checked then // FTP jspFTP.Show; - end; + end + else + jplWizard.NextPage end; procedure TfrmMain.CheckNext(Sender: TObject); From 9f306996d67d35f6974b0ff07f81578180bc649c Mon Sep 17 00:00:00 2001 From: Christian Hammacher Date: Mon, 21 Jan 2008 19:22:29 +0000 Subject: [PATCH 30/52] added optional auto-check for Source+OrangeBox binaries to FTP installer --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40624 --- installer/MMS_Installer.exe | Bin 638464 -> 638464 bytes installer/UnitfrmMain.dfm | 71 ++++++++++++++++++------ installer/UnitfrmMain.pas | 104 +++++++++++++++++++++--------------- 3 files changed, 116 insertions(+), 59 deletions(-) diff --git a/installer/MMS_Installer.exe b/installer/MMS_Installer.exe index 0fb7c9ba80a96333c413b76f31ec64d9d9443541..0b64b156f923f6a5872018398567d8ae0c65c532 100644 GIT binary patch delta 132315 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 OtW2Uu4f%{J>XIos--w(hLtaN_S4$bbmtvwwZ^> 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ⅇHTrNNW!Tdp;s* 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 delta 132090 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
-a`V-NTGdz40tD31llw8!bzT?`-Y;sC!vSo4HduRd|Zp#Z(0O;L?lIc6W~#gU1f; z4OYoK?7zt69!WoRC_UlOiNxfh*aMqKTz3*mZE!t;z;@%OG0AbcwUPNjt)N=HmeWz3EuU~45 zD)$WmAL4dNxP@#R*a+bTT!#%u8srn}vN|4i8a`s0!lq4T=K}PEs|n>7bG=(Vur=@+ zTt$Y}Gl4RWxZ^X99FCybQxvSV0m*wJuk20a3+Zn^kdmdFYPT)C|4OC?8}pI_8${k=k~ z0uuH7UN4v)e?TWnMh!RpYWvTd&$C#SlM;xfmF4s`W&AuREs-}_bt}ET&PR%4ekKXq zC}=a&dx?T7v*D->jG6qD<51?C&4f3;f7c)qRbG@pJv&oj{IKROq8mT|_EbaLL@*rg zpYEdqk+I=An(Lum`E0HpX-DfZEbEWwyWlH?Ku)VxO_fUcq6)$NEm5#we4@7}4@|V& zQo%pJzQ`NNx`gYbiEaE|5`Fn~cTVDs$i-E(M4`XM*laFumU^>rUO@xRK$@edQo5{l z*Ju!f&ODT`iWh2#xcf|vA})tQH8ao+Qk9n+7@TlUZsnDxZH$MxF90`=h`=}|*q#X1 zc@^(Bs1bgY?-TY$w(|HZ$oRI7!omW}QpHZ6V=)~T@?CVGQ*r40r3WV+;Rs!XyY;TX1*2^kU5NXWNxiUH(=Sd2Pxe??404(6 zs*pk(db)b5&Td?eybICpd{Mo&+@9V2E_zBxi%?ia4}aN-K?hlzyHd-V8$zRlckkpT zC2@ZL`pLz^uUxGwRFf9@Ru2RJ%&b9dR~CPDqYtd-98X8_K~Y)B$xmldiLb8wlz40V zuIv`s`ydcw$Q@r>ktPxZv6KTQ)%MGDA5VIHK6ZESENuFMj#4F~HzlG@=mBg-@@qwr zuqRAFNybzNObN`?oBvdpS(xDfB^Z9rFMI3(gqIzXpDsi3fm!51EpQ2o%r&)krn!Z1_dEK=}@Ai1Jd=V3cae98Kd4=i2 zdD50bSV`B`P*pWo~@CqQuwO%hgkoVb23IR+VRUA^e6D-Yyw$cUtdqN8QmS3wtp5boXDl#bW*t+x?M?eToIM1j>ZmWwN^Hx zzbRp!cUJgz^du7d+!(Vx(D=#(Qwj7NnYk!Q!{A6nOmROyTh=5mUlX;7Zei*|) zAL9P$lUSxp; zBbR@IKiEsl;bW`wHoun^zkZur{oMk6f}z6t+}w*tkHw1fLJuxq8fPdF4J5_J z4C_4iH?x{JD7s|7#(GDE6H`^?96~;kjqmts-lV}Y)PDr?hC$9l{f94+kR3q{PM0~d zEuo3z0#QlM&NY=rN#^pepJz%>J;1^dt+OiNTH4WL!}kZm-@TqX_!3>`-lX$e9k#r> z5q&!GkFgApc;qln#A(;$bp(QzEppGPoP^=iJr>GjDjfD2-$@J3KyS~9%nSl} z9kTpMrRZ^YulcWI_lmA(Y{)+Q`u*GbMfV+uAD_N{Sy{}?%4rB=$BT&w+xz3{KK!{n z#$IE8l_T;C_6c3V^*c2yDa$I0!HR6wI@k?wEm0p{8Parfjp=$psZ1~a(_43l$-k3T zInUCB<9wu{d^BB17(C(N>8mC-MKG`yq_zu}gV1NBqK*$oOi2rbc+?&!Dk?AfTHMaH zT@n!33Lo_WEY%~D3|6Ef)|GW1-Mo>WuvGP+>ma%ST?HOI6qhaZ9k+3OLHVhf?@7VE zSNZZ-A*?T-owqgmzU+b>!02m|sC8kmZ`){BRGf*}i8>c)Kw<{H+8>JiTD_O^mC{xJ9O3!J>gh(-Q>$5JnHBA}lC5hzWHyCrjqf{B+ zj}{3Xv|~~jqK&7qPH;!JgNvuM(f7**SqtZJfH|zuCT%zU`}dtkK=X&M;q}LZY4J#G z_!0h-!tW8-xIhc?^Wmz-=-wzVKhw|ou{n!Om-83gwjaKk%H3!#jo251;t#-jVg$Iq zm)RrAGaTVRf8u2!%4b|3N{d}UK#vIO9{0t(Rs1+SiuA5@|2lZ@567$3e|q`%pVkMz zHsohRc70l3&iqj#m#}Vpdj?dlPJabI8lQ4cq0N1m4{&#!kGX)u` z{wskD^l4vf>_ukyhdeKHqX-6?-=jVpBj{Eux0AD$+-%wksu$15;v^J4?|?j4oRoA4 zGPomrK(BVde%)6$SD*3CBOaMRBL2kK7V6vNu4CyR_7`1`?ZX9mh4S^n}2bKFSS zEG^KE`Qq`mKotIj{b%m?m5Zsnn)o>@t6KMj+)Cm^YzYY%`-yL&qA!2Gf9s=o;$CC< zw?DssZmcf2CbUhKuKdti`#%4LTO+ezKXiD1v={*k5)}D^ac2S!OJ16a7G%<%NpX^r zEg>CbJ^@}(Xe9BK;)jPSBam!9C9L zW;Wb{7scXh*q~&2(X&izcaA`=ot&GV6?hSwZ}N5TbTyptp6{vW*h9TEB4^Yvp%U>; zNK}lgsccpmk4?=qFZ!L-1fbep;xd#aQ1_{jt3?fz(1 z-m;1^N0)=~Q6p{_CDHhH-Uf=*H5W}Sw!i9CRLQq2fOvl5Gau=6UQT~0oBoo9Wb1@1UILK2sK{a zqlGm*8EuF8AmL=;{~Rj2hY{ZT`Gycg>e&qjP4-Q%@=a!+Q%z`G{FJ>E_Nu(Svy>>g zu%W3d6eDTRjFnjQ)|5veA0ueIj|>57#c&M=;@aoW>I6d8i@L2jNH2bZfg7u^`zbtk z5Qucx3ZZ~UOB#(4ZX9U`3+uqij`2c6JN`~o%aC}<6Xsa9K=rGtUb0BDc)+EDc7j68 zdA0KW3p>rezJG5dOOt&75f$biR`@hRBa|Z%xfDcOpMu|AtSDX8`U;C8%a9O}B6&ns zHj(`>W7#26M=(XZldS@cx@<)rA+o=DiDHh(cAj9r(~00rKMFZ-RhipI9oF4sa&kx#QP*P^7Y-_-D zxGANC=M!(eU$9M%nV6H`GUeTEzkKbSBaUAK_4UKd@gS{Tb=40KjV2{cEvx()q0jV$ zF0K9f!}9?1G6ExpVXlbYnykIPB;h3S8~lwCTVh7M{3fx25!?M|8KW!QJ}1i*8ztgU zFP|)Yhdbp{mo15VS`7%qlC3!|#8`tM=tNzfKD0hV%U}|(+A_OEAM8)QBbve?Fo75+ z!#9oiH4B2hfB<{9x63QQe9e7jd^tzabPU_KdSu8E@1mTucfEAaJ|vd82CoIhG)$Fs zm=8i5mrLkSY}wM{pZWPoid6^vB@6f_(CK$O)6YOyqyjLAvDTA4dQYtQLwcUx)OPc; zC%0{V^g^*Dj=^LeUF3~KpLG%xn8h5qA?t#~@^RnJIIfG3944D#%~K0}>Rlm)COi8c zxDTQEenr_V9>FXw|3ol<_|<})LfRY4nBAIVcdQgue*VCCVwg|*`wiDOHpV8aXEFI3 zW|*lTB7Km`-IgTr#!EfR&O$=l3<5=HO6MzFtJUu~+n}*D&@i32#jgW;I$Vj1WdhL@ zBgf@!-~y|%VZ`FMIs$q3bnZ!+CS@!Ox{d7$rOO=WOK>qXXP;7Q1CK?%bvDpEYtBTX zx4b**4b^C%Ga0g(OBF$?3e!?2kSbTnk@$G6AI~KqNbyGy|l_FBepAS7__53JBsP`V`^`JEkfKJ+{6Eu(THS zJfTY0f$j4ryIMdZCQm}Ou|jgI(x)k;5TB;G7JF32(8h9$uud9PLQ3-uC=>P!;{(A4 z`dh0R8Zfm_cwg{vFV=deiRC#^9-CvHVCwmNIx+2b!hXxQ0ws47YmPw{fd+eRVDh&h zXrM{>yxAbNiQ8016wPx?%&D7ygA%Xi8o6g+{PN~O-Y$T9i70B8Cx}5IAkr0Vj3aNS zdoCwW1!%9BPc!5VrDZEpQ#+)C^UWN&hA1p853uZYn}^|@s9Y28t5Jsb|CF*NnO@Vu zM#$6y0{xea&J0+(02*2E0v-EB3@JvO;{=uT(9ftsU3!!eCsP}Z z0c&vwJi0JYz2Od`Lp{kp~4GkZK@Y=eqQ;Rte~qC z*RxK-sF7MRLS?c}@S`HebTFRs$B6Fq%1^{NwLQaUjj@+OEjWzV#nRLEzKYegCus-1 zojVY6^9kB8yFa4*bQIr!=gwaZ9`tWv*`Z#pffZC%&yuG3_hf#)7T^ywYzeRYuvbp( zz2sgGlkaN*LglJLlYI1~gzX{3(>TGU)VNW(5TJ|NYFUZy3>q^+&Zw zY6p<$UX1uW+$Pu&|25T$Dg^~-A~PBmr{|5+ecye6pcbiq{(>3QuX|b}DCr3^_*7@& z&*oxZ#X)20!w%RC!Xft1p6n@*BX@If5XRi# zav?QYqi(ZC)$}Y23z=|ZxRq-GJj253Fk_m_-Qb=jQC=o=AzlXLeQjMJz06ewH-=X` zx(uoLS3?^XxZL|YKEI#3{r=VAr`wk_8g?3-;C>hkZ3`|BLUW@NAHH`2<>-&JxEto& z8=P3fl9Ng)ds|iYrv{@SJrEx(clEn6P9?YAtgpFvP4NV)G^$(PSZM($j@a%EZPNiPN;pAui0*wr2#n1{++3AH|6V-=-2%q;)D9Z+q|`JvzCto(#cD zbzFj!p5tx%&fD{I-!u-&W;}hd7cXV0Vk8&ScAfj3%PlAu2AET_=hC%lqafz)RFR%e zi|&>xHaq=qZUj!GPlo;M+NU`(+qx9VXS^GS$Ghohd+&Pq?xPs-pAxk{)YW||C4WFr z{%KnhYfihfbo)Qa87|kBRa*-y_4|Mj(cvPOxyQ1HzAR>BXL}jwj%;ws;QC@aWyKll zFZ#IL74?>O5np$qgXYkNg09adR|&idfK{c9|H&D8J9?{V=^!r&^7e3-21h6*0|~>w zPb-&dwC)P9OQg#h-?3q_FP>z*8}jq{tBFI@CWxBqDBS(|T@fmi`+zTlo$;((k-c_l zE%%3G!VNArn;U~Zbf##qbp$1F{KJR7ovW*7Z@I|G>WG)9{>?!tBD=k>=G(64*%ARX zQq!>)O}|?DN<%*)u)L8~T&`J~CLSRuXD8Lew7MnWS8WnNT}4o_zj&5OAx^^!#LRn1 z<3W1Q4W|O+kwv;if}@55&5cvdb27!*q}G+hzaN!0*0A+w3j<^ASNo@sdl)H<_xX z5}y#{f4bp0i}HlObjPQ^r#RPV9Tn8PZO-6+lZ1n4@9gZQxZRwk280vq587k>ND6M|b==Q#yW^{2)TzTcqV`FApYpKaw%b2)DWibwUq1^=GV zmHV1k{^T3U1lwButxrxRakQs4c1j>QaEG=I; z&--ZBp>^QBGh`xc;q~Ju1K{4>p?dM#b|oqPt!=y!KE=OemUlRRFX{s1#{|;tqM7eM zB%JmfT=?DBpdON%wY;{t_W@nLEx&m)WB=O2%WMQ#1LdXm{y}pe z<;oA~y%OIB21-H2Dd!%2>k;EA+RZtg%-~3=l+*j)L$kJZO1*l%$;4bK% zQ<-BGFIc&PGK?*9xUIMBcqT?;%~iCn!%zn^f1|hKjdQnk_dY$*d7@B!g?H5lrY_A4 zJIIOeayzA`X61C;4?iQovoRjH?-F!IOEA&poqR%_q4#k$*@_JOiT#gyc*no-rYy<| z#tZlpdiLo@{iMS=WMK4Ol*=hQQ!kz=_pS9@EX1Z%{LAKTLO0InvUuqZUK0Gfy8@Te zmG9_s^^?}#9ILYPd%CZf+C9pYsL|M$*f=yfaqO>#uQPXEw^cE&Q|w*zO%=lNeY8$z z{qgxZrG4Sy2TyFo@gyL(&s$CHbGQGG-os~D8qYNzX0#nVCajQ0?W^9;`kRSo&7oI? zUO#e&W&Ru#@Q&cyQCT|i1wr`dn%P$4P5D+j&#M#fnvq@u{4iK8 z_2;*5%mywErvT%QfD<99gp z*t3ZV_mTeow#x%Cp7VU)>a4j^i7#nf-d)33v!wd44n$qaPtne@(B!?4OV>2GDt=(y z8c-tf{)cHZAYuAExo$@0`HbxipsZyoC%W0lH`xp_7$uJulP&Ov#r0ZO3;sC<#q|?s zDvs{wO~cC6j}~a90;Isw@$ggfhMt*$zu+nCau3Zk1j|I$C*emfHd}OA;uIv`)MgCg zTFq9O{=;O;Jt5IEsPv3Dkl$YB655|p!@2}m>=bJhm!-YO9P6jjcC7L}1@J+V4{Q4w z`>G>ZX)H09=aQpYN(d$*3d9K*q~{5SA?P9GL*i|U0ZNVY{?-L3J=Hg1K0$$>=*!g& zfv-IL>IOrPw8WyzqI^DuJpXi3!7ny?aQcp#v_kj+j{%c2j?{Z#P(qN>uk;l~Y=O3J z#TjZ8oSWB9DHYcH@8dEtD?#N-#jBL`-p;$os` zL2oVeRTYfK3nD&&$uUV5$cPJmzB~2x_Fqx;Zw)IGkp?st7^nBet`LN;f%K9q2Y1HC zRjIxui0`Ig_sk0#>H#NweM8qZnd}d)3z_E;cgJU{8x1F)C)1INwRy{@$gWYYT@J{}ToOgBdOfzT;KIVaH{@PIFI7P50; zulKt9OiViLs58Ey8)zkl3R(Ty9fjx;bxSTUTSH)b6wS=66r$roTDIwG#WVQ)G}y)` zoxWamij5@4>I+|m-ztl`9&tx{+6>mnxZ#FVIp@0?tZ6KcIKFC!kWgC-=1=~)tCinQ z)B1C+_DIR_L9pIF+)O56LZ&R<-YEZsz_xrpu{1=5ZD{?q<|G|$v=6dIr00U)DTsx$ z058apCh!?ugN%FJQi*MVHIoy6#h^XVGsF?CDg?|W#Be1|LkD=i&qXk^D_?gy=@y?L zr0OG(p|c}UK*f?8BtRBqdk-Z!Hb%S&vN?4<`6#pulo9N4MIIH*1lW@K*}mRg^0FnF zJAa@d8kWPDWO%No3dxS|B-&K{5m3QrjP`d?X7BW)8daM7lvCH>`Wu2G|(pFr+bpx6Rt$D*d#g|D)xq63B+u!~QIHB3z}8o6jjTDcEs z+!_IU>z%bljM14wNX%+yJ#PT;_LDfOu?8|kE1*l~z>N~U zi;wvx2-zknU2|55EjBbhmjV>^*?E|RYNw6C4aJst`ILPEkqs8vqsB_*!x&XTN|FYAu4X$FuoT9?N$4@NtjW?Xca>#M#nsl}+BV1uC|V|3R$*^kLCZA<+L(rDARLVUsMWy)4Ty3A^db2~%arml z!H`tnh8vVyhDqj`O~wdv-ufOeY1o&}w0qD?7jvzGCNDyTK0fGGPQ`W@wwy4VLGwMU z7Ebeq*ibX07d;ByMZ|p&+3r;N4hw&iO1v3ETz3Yps+Y^jVh0`-W-&hNSdgTm`C_gf znEwNmYw+zFfOi)HalbV5ZT870NuM;iV3Zo0X5%SrH8l3!ur_|{OD*2}e%#McpTSW4ppeB8B>sh z(Uhxw2jC$pcq;*tS7ksFTh_x60af0oslNL$>CRULlgJ}x!J03lVt03I$B?eHP!UPH zMEEr;Tnpti`$f7tqd^PE4S_6|7{f_wYN6aU=a`D2XQkrsLKE@*ZesDFFss$qSAn$K zD&#h-|eh z>^)sb7-64Ob<76LObh*ViR#n|z$$A;NbH!r@IIxtLD@2a!2__${e^PSv6P(Ke$u-k z%FcTP24w_6c?4>ZANJ(U(#K0w<7*NlbyQ<%SVc)n{hrTGIxt3Aqzb-DAf?!fKsFbaYwU#bWu_&Y6twAL1Szn4tg!)+R9~dQeLf?W zrR+XMopm2C07;Ra#sf0WPzgHviXZsAwAJ6M?X$h2;Bj2IBaPkUP?Rl9 z&y2i{dwyXc1P*y=R%AjxODAU)@J5KQlY9j{6Y=|89*kQW5C?&j)4y)EmikLK zpcW!65Q&){OG4sxEiX~VJ;Vls+5!~V^zI$8+K7R|8Rz&Y93^#!6ncQ_s=$`0kXB27 z;f0nc66=&)2Up*KGXlo5%Zib+sd(x%Orh zvdN~sjC@D6P&Eq;AZ}<-POz&%cA`@FHMYq`{ig84rzzH0H}5u4oP&TE;fjr{q3>72 zX4Ez3)4Q^?6O^}6>D$O8&|h%yBgzQ2>q3LYmPA+23w~4kyGSw}Wilp^@tvfSMGRfQ z-@*uqw5j6`J^SVn zK#}hl2yP(tNGP{s%_qiD-zs$&$U9S0c3gcv(X%-p=LsU9VN{;!4s-5MYL{s-??r32 zl=ZRVi;3d-b$K+4E-Uu2Ge~t|iby1gG9*G3=RuTFOVzm=B$t>hiRTfU?qbMAhEBMd zb}4vfZ(7hZE}b7f3+j(uK^W_qu#i?o{Lc z7CwFm@Ot}%^736kl<;-i^bl- z#vv1nf{;23aRtEZfezvpj%-QLSFhwNiTeczmMeMq;Ck!AyS(Tu%099t(mEn@WIk!U z=cb9cV9P zqi7x($*%Y!?-tMnRgXPOE^5boJrf0tL)BBx${O}fm#)IjeA1~j)J_3RY&!?jL<5w> zt<>RLTA?$B=b?}<-s27@TX)o>8y}Fac;@zA{{yCU0pH)nf-ma;^5UJdf%yec;in?- zXwPc5vo`{|(?j)9)5M{hzJ@o>z7>bR!jp1gfeN1^w+UIepx-|U!@-BIYIg~})Vhmx z4$i}lnjx-{pBxDgA~z|Kt(1UZ{gJ@?z@2gnAzbuzfSfdNrD#S1KD_CqG%{Lowx<()8_k@nlK-jIAWEzC_bw$#itK> z2=tdXKJ2PM^o~JnE23pkm5eeaRkN49`ZRZ0stqXpG`diRBpUshACi+asB;e+E_)V; z7EfeV)+63twyoa&h3{neTl8nt^`vNW+XCI`nwGI}H*11|5)vWOpI9~CU9py-mFVpP_<*b;atmud=0R%c~gY?e1Ixv>}+Z{Dfb#NKI46nS$| z9)vx*e+RfBCec03N4FJ$3ZpYo@8^|C0ybv%TX%IO(-8V+An8zD|L%CrLw5yj&8vFK$9;VnhZnXcZyejsGO&&kx za9c)*a!X-rkQ}Xn4cFP)4hDL+N)ENNPKmjA-^YrSQpAI(L61eNZ7a@22ULgQBPHh; z@JOM%S7ZavQY3GYx1QUxV#}5fC|1h{Xwq{f#_5ZD*)$`yPSi7z3AG6YnQzj{n8Er~ z@hv2_$2IZ9kSZ^V|KXBtWUos&OKJ8DCd|0e_-h&rQeCO*X&r(EtvOEn8-kcpOjt_S zRETAu!h`N~-K=q?BxQ%ZmJ_$i*<$=Jz7`GV!KZ?Q0wHob{zEF;1@%M5?kXuju|qYk zXCg`A6aHw!p*3rN%HdPbB<-L%Z8%*?uVCMMkK=TMQnp7RkM5M7aQ18P(8ruS1eE4( z5yl}Y)|Gl!Bv~e)a7B2uBcSG&E`cvJmfcodM(9y7#jMwd%S>4AB%6oV>j9W0%E|bE zSddLQM((VzcsN9<=QZVX3)f;_(|s;KpLRZmcWYjCcL|G?yP_#~*Mw}|RO@;icitLW zjk=qZFN3eLHc7-`jSt}6BuLmDBRAc;)LpL`6Vo!>T)}6;7AEe-A<(K$nn2O3;O^vl zA7Lo21(WSErjI6}w}`_aQs;IGPT-*BSIf-C9Mn#WHbeSoa@l0p3DF?~$~q9^;-?;L zVBg|m^^h^_6r>QEx*x*YZTKQf)QY|JvEzjx7F$nJFlbqK?>xn~YXaUWd(1lMproT@ z(koRdFg(l*<`uP66&oCue!70B@L;bU(?+SQm=WSeedg3zcT&xqAs6qiB}1ZnxCBQA z_>SUrn2M(y6iIk5Is{#UF?t`_<{G-wF{I z6@2^vNE_)A9k}pC<$;!9zcVI9Qs@2!wXa5?=!?Boc^+sEvc2v=aW zNx$8ZT}YQnr|+kjbe3&cr{mW%TI0osB%SOXG@gp476^n1+4@B#k2aIMf**#pk<7uM zn(XYJ7cYwaKmPCGvDW zRQ*(){50kj&@F#97AGQ)D<&E6LzJs5qHCr1GqVFQ46Y zT=Ki<{TG&+2V{+nPzvL;9=n&Ub}tnnF{8+u=>yb9}2NX=zNWk_6jNcoUPX~cb-AbMa{}et6j8i^fqa&-M`8{n6lg)uco3tbq0)ZO;jivq@0E_Y8r@ZJ@Rbv@nXF2r zCf=}l2HPjUK@J;q6vGWu7&JpygxXbw7U%vb{Qw!cI%|va{nm=Zl;YZxyaa-@>{ z<$@2s^G60Po(Q^!4E~vp*DEkr#_FgfwRpYU&vWb7c_Z90yEAz%W901N?A$<^?XB0X zB@(7O5jis-qB8>J@mma%gTpl8|@kuD6jZAHCbeTD?Iom zgmw}IV;)^4?vA$*#{3A200~uXTDi1!o2{`u)qqOCKFA2ZC=Sioq32gX@l2$V|_NjjBelQ>S3R-1n<{LQI$ zkvC4Z7q5ooHjOY<_P_G?(P%BpY7N@>>W~pJQ4tDW-|rY_+?KLWjN0W8w~s=S=;8G2 ziCwUd1+J^f)gEPlwy}G4d0+HH4&JbPKBt^T&a4wy@SA|>Uw1KYu;78kVBY3)P4Rgttqk}Yu~mzlJb(68a-IDglX zOW4!-=H}*IH-%MCn@0){M+eZn5BFy}Jrfv~?lfmf7Eg51OeF0Z%z$dzzJ+j;=a3x= z#yw^1?BKoNIW<78q+LEdB%#r0rd$o(YmHc~!DJOpay@x)yOSn}3Wm-N*O>=c4;(`pIGS1(Ovj_gb{P#i@Lnm8Va zGRUL$r|=uwo0v8mrX~`1&5gs_sLJ8S-;bi%q7%+bE`%)HR6$3ky`fmAk+btrrC@bD z^x8eUDSM!k5n}ZMZanu<-A);w;{N&^WB-qxz6WCDkDo{3V@P(tURaeyLC-nZ2UUmY zqPCVM+Kpox+$Z>AV{Akf=I{BoP1_%M`bm!wYFQ}v#zqVP07Kr>`hP8@yAa54kk(Rb zB=R7-SZ$FD1ndNerH_$F-BLp%T3&!Ld?zwF!Ow@r$o|NVW( zCiiUe#J{}Ojz$t7{}^Ka6@J^KD0b6ulY2IKVw3HgoZ2J;_phF@Nw-ZN+hpw~pKS8? zCZ+KI+L>)KVv{ACyt~N{n_a@Uf*}Tc|O>S(G&i}8S-6rEVd2W+^{K$yE z?Vv;aSGRkU>6>ic@G4zD<7PQM~Dlw%*@vhVa&RB0!=d21xvy z=9SA3{3oAlZh}b0KOK@T^l!$^n;hTd#wO{)n+0z&ev{`m*|*7Wo8-kC`R5GTvB^D~ zJh934O-^kRA^NYLu}Qa09@}K?CZBBb_a>#p{ 0) then begin - case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: Source := False; - mrNo: Source := True; - mrCancel: begin - eStr.Free; - exit; - end; - end; - end; + if (optAutoDetect.Checked) then + Source := not ((AnsiSameText(trvDirectories.Selected.Text, 'tf')) or (Pos('orangebox', LowerCase(ePath)) <> 0)) + else if (optSource.Checked) then + Source := True + else + Source := False; // design stuff trvDirectories.Enabled := False; cmdConnect.Enabled := False; @@ -204,19 +207,28 @@ begin optLinux.Enabled := False; Screen.Cursor := crHourGlass; - if optWindows.Checked then - eOS := osWindows - else + if (optWindows.Checked) then begin + eOS := osWindows; + if (Source) then + rtfDetails.Lines.Text := '* Installing Source binaries for Windows' + #13#10 + #13#10 + else + rtfDetails.Lines.Text := '* Installing OrangeBox binaries for Windows' + #13#10 + #13#10 + end + else begin eOS := osLinux; - + if (Source) then + rtfDetails.Lines.Text := '* Installing Source binaries for Linux' + #13#10 + #13#10 + else + rtfDetails.Lines.Text := '* Installing OrangeBox binaries for Linux' + #13#10 + #13#10 + end; jspInstallProgress.Show; // installation Screen.Cursor := crAppStart; InstallFTP(eOS, Source, trvDirectories.Selected.Text); end - else if jplWizard.ActivePage = jspInstallProgress then + else if (jplWizard.ActivePage = jspInstallProgress) then Close - else if jplWizard.ActivePage = jspSelectMod then begin + else if (jplWizard.ActivePage = jspSelectMod) then begin { Dedicated Server } if frbDedicatedServer.Checked then begin Source := True; @@ -229,7 +241,7 @@ begin ePath := trvMods.Selected.Parent.Text + '\source dedicated server\hl2mp' else begin { get games } - if ePath = 'Team Fortress 2' then + if (ePath = 'Team Fortress 2') then ePath := trvMods.Selected.Parent.Text + '\source 2007 dedicated server\tf'; { ask user, just in case } case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of @@ -240,7 +252,7 @@ begin end; SteamPath := IncludeTrailingPathDelimiter(SteamPath) + 'steamapps\'; // install it - if DirectoryExists(SteamPath + ePath) then begin + if (DirectoryExists(SteamPath + ePath)) then begin jspInstallProgress.Show; InstallDedicated(IncludeTrailingPathDelimiter(SteamPath + ePath), True, Source); end @@ -251,7 +263,7 @@ begin end; end; { Standalone Server } - if frbStandaloneServer.Checked then begin + if (frbStandaloneServer.Checked) then begin Source := True; ePath := trvMods.Selected.Text; if ePath = 'Counter-Strike:Source' then @@ -262,7 +274,7 @@ begin ePath := 'hl2mp' else begin { get games } - if ePath = 'Team Fortress 2' then + if (ePath = 'Team Fortress 2') then ePath := 'orangebox\tf'; { ask user, just in case } case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of @@ -272,7 +284,7 @@ begin end; end; // install it - if DirectoryExists(StandaloneServer + ePath) then begin + if (DirectoryExists(StandaloneServer + ePath)) then begin jspInstallProgress.Show; InstallDedicated(IncludeTrailingPathDelimiter(StandaloneServer + ePath), False, Source) end @@ -283,18 +295,18 @@ begin end; end; { Listen Server } - if frbListenServer.Checked then begin + if (frbListenServer.Checked) then begin Source := True; ePath := trvMods.Selected.Text; - if ePath = 'Counter-Strike:Source' then + if (ePath = 'Counter-Strike:Source') then ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\counter-strike source\cstrike' - else if ePath = 'Half-Life 2 Deathmatch' then + else if (ePath = 'Half-Life 2 Deathmatch') then ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\half-life 2 deathmatch\hl2mp' else if ePath = 'Day of Defeat:Source' then ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\day of defeat source\dod' else begin { get games } - if ePath = 'Team Fortress 2' then + if (ePath = 'Team Fortress 2') then ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\team fortress 2\tf'; { ask user, just in case } case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of @@ -304,10 +316,10 @@ begin end; end; - if Pos(SteamPath, ePath) = 0 then + if (Pos(SteamPath, ePath) = 0) then MessageBox(Handle, 'An error occured. Please report this bug to the Metamod:Source team and post a new thread on the forums of www.amxmodx.org.', PChar(Application.Title), MB_ICONSTOP) else begin - if not FileExists(ePath + '\gameinfo.txt') then begin + if (not FileExists(ePath + '\gameinfo.txt')) then begin MessageBox(Handle, 'You have to play this game once before installing Metamod:Source. Do that and try again.', PChar(Application.Title), MB_ICONWARNING); exit; end; @@ -319,7 +331,7 @@ begin { Custom mod below } end else if (jplWizard.ActivePage = jspInstallMethod) then begin - if frbDedicatedServer.Checked then begin // Dedicated Server + if (frbDedicatedServer.Checked) then begin // Dedicated Server eRegistry := TRegistry.Create(KEY_READ); try eRegistry.RootKey := HKEY_CURRENT_USER; @@ -329,20 +341,20 @@ begin SteamPath := ePath; ePath := ePath + 'SteamApps\'; - if DirectoryExists(ePath) then begin + if (DirectoryExists(ePath)) then begin trvMods.Items.Clear; // Check Mods eStr := GetAllFiles(ePath + '*.*', faDirectory, False, True, False); for i := 0 to eStr.Count -1 do begin CurNode := trvMods.Items.Add(nil, eStr[i]); - if DirectoryExists(ePath + eStr[i] + '\source dedicated server\cstrike') then + if (DirectoryExists(ePath + eStr[i] + '\source dedicated server\cstrike')) then trvMods.Items.AddChild(CurNode, 'Counter-Strike:Source'); - if DirectoryExists(ePath + eStr[i] + '\source dedicated server\dod') then + if (DirectoryExists(ePath + eStr[i] + '\source dedicated server\dod')) then trvMods.Items.AddChild(CurNode, 'Day of Defeat:Source'); - if DirectoryExists(ePath + eStr[i] + '\source dedicated server\hl2mp') then + if (DirectoryExists(ePath + eStr[i] + '\source dedicated server\hl2mp')) then trvMods.Items.AddChild(CurNode, 'Half-Life 2 Deatmatch'); - if DirectoryExists(ePath + eStr[i] + '\source 2007 dedicated server\tf') then + if (DirectoryExists(ePath + eStr[i] + '\source 2007 dedicated server\tf')) then trvMods.Items.AddChild(CurNode, 'Team Fortress 2'); if CurNode.Count = 0 then @@ -364,11 +376,11 @@ begin eRegistry.Free; end; end - else if frbListenServer.Checked then begin // Listen Server + else if (frbListenServer.Checked) then begin // Listen Server eRegistry := TRegistry.Create(KEY_READ); try eRegistry.RootKey := HKEY_CURRENT_USER; - if eRegistry.OpenKey('Software\Valve\Steam', False) then begin + if (eRegistry.OpenKey('Software\Valve\Steam', False)) then begin ePath := eRegistry.ReadString('SteamPath'); ePath := IncludeTrailingPathDelimiter(StringReplace(ePath, '/', '\', [rfReplaceAll])); SteamPath := ePath; @@ -409,7 +421,7 @@ begin eRegistry.Free; end; end - else if frbStandaloneServer.Checked then begin // Standalone Server + else if (frbStandaloneServer.Checked) then begin // Standalone Server eRegistry := TRegistry.Create; try eRegistry.RootKey := HKEY_CURRENT_USER; @@ -432,7 +444,7 @@ begin eRegistry.Free; end; end - else if frbSelectMod.Checked then begin + else if (frbSelectMod.Checked) then begin { Custom mod } if frmSelectModPath.ShowModal = mrOk then begin ePath := frmSelectModPath.trvDirectory.SelectedFolder.PathName; @@ -441,8 +453,10 @@ begin InstallCustom(IncludeTrailingPathDelimiter(ePath), osWindows, not frmSelectModPath.chkUsesOrangebox.Checked); end; end - else if frbFTP.Checked then // FTP + else if (frbFTP.Checked) then begin // FTP + Height := FTPHeight; jspFTP.Show; + end; end else jplWizard.NextPage @@ -455,8 +469,10 @@ end; procedure TfrmMain.cmdBackClick(Sender: TObject); begin - if jplWizard.ActivePage = jspFTP then - jspInstallMethod.Show + if jplWizard.ActivePage = jspFTP then begin + Height := NormalHeight; + jspInstallMethod.Show; + end else begin jplWizard.PrevPage; cmdBack.Visible := jplWizard.ActivePageIndex <> 0; From a362ff3f17cf2e84c08926e48bcb20f02829b388 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Wed, 23 Jan 2008 20:50:05 +0000 Subject: [PATCH 31/52] updated changelog --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40625 --- sourcemm/changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/sourcemm/changelog.txt b/sourcemm/changelog.txt index 812fbef..0d0a4fc 100644 --- a/sourcemm/changelog.txt +++ b/sourcemm/changelog.txt @@ -3,6 +3,7 @@ - Added new plugin loading mechanism via .vdf files in the metamod folder. - Changed "meta list" output to look similar to Metamod:Source 1.6. - Plugins which need a VSP pointer can now receive it on late load. + - Fixed a small memory leak when using recalls (RETURN_META_NEWPARAMS). - Fixed a rare memory corruption bug in the CVector class. 2007/06/26 1.4.2: From 23b5c544b152338fe6d1c6914c129e8f9a9abc1a Mon Sep 17 00:00:00 2001 From: David Anderson Date: Wed, 23 Jan 2008 20:50:50 +0000 Subject: [PATCH 32/52] fixed build number --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40626 --- sourcemm/svn_version.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h index 3bedfe8..358893a 100644 --- a/sourcemm/svn_version.h +++ b/sourcemm/svn_version.h @@ -5,9 +5,9 @@ #define SVN_PRODUCT_VERSION "1.4.3" -#define SVN_REVISION 604 -#define SVN_REVISION_STRING "604" -#define SVN_FILE_VERSION 1,4,3,604 -#define SVN_FILE_VERSION_STRING "1.4.3.604" +#define SVN_REVISION 626 +#define SVN_REVISION_STRING "626" +#define SVN_FILE_VERSION 1,4,3,626 +#define SVN_FILE_VERSION_STRING "1.4.3.626" #endif //_INCLUDE_SVN_VERSION_H_ From 6bf49580c57bb2a80bf878a9fc8784cd7687b626 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Wed, 23 Jan 2008 20:53:18 +0000 Subject: [PATCH 33/52] updated changelog + modules.versions --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40629 --- modules.versions | 2 +- sourcemm/changelog.txt | 2 +- sourcemm/svn_version.h | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules.versions b/modules.versions index 912978c..eff06f3 100644 --- a/modules.versions +++ b/modules.versions @@ -1,7 +1,7 @@ [PRODUCT] major = 1 minor = 4 -revision = 2 +revision = 3 [sourcemm] folder = sourcemm diff --git a/sourcemm/changelog.txt b/sourcemm/changelog.txt index 0d0a4fc..6f80841 100644 --- a/sourcemm/changelog.txt +++ b/sourcemm/changelog.txt @@ -1,4 +1,4 @@ -2007/12/24 1.4.3: +2008/01/23 1.4.3: - Metamod:Source can now be loaded via a .vdf instead of gameinfo.txt. - Added new plugin loading mechanism via .vdf files in the metamod folder. - Changed "meta list" output to look similar to Metamod:Source 1.6. diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h index 358893a..ba29834 100644 --- a/sourcemm/svn_version.h +++ b/sourcemm/svn_version.h @@ -5,9 +5,9 @@ #define SVN_PRODUCT_VERSION "1.4.3" -#define SVN_REVISION 626 -#define SVN_REVISION_STRING "626" -#define SVN_FILE_VERSION 1,4,3,626 -#define SVN_FILE_VERSION_STRING "1.4.3.626" +#define SVN_REVISION 629 +#define SVN_REVISION_STRING "629" +#define SVN_FILE_VERSION 1,4,3,629 +#define SVN_FILE_VERSION_STRING "1.4.3.629" #endif //_INCLUDE_SVN_VERSION_H_ From d71e02c31c0ed603800cb07a7cf77cbb6837a151 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Mon, 18 Feb 2008 04:18:53 +0000 Subject: [PATCH 34/52] Added quotes to include directory and link library paths that contain env variables. (In case the paths contain spaces like for me :o) Updated sample_mm and stub_mm projects to use new env variables. Updated sourcemm.net to metamodsource.net Updated version number for the new upcoming tag --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40656 --- sourcemm/concommands.cpp | 8 ++++---- sourcemm/msvc8/sourcemm.vcproj | 4 ++-- sourcemm/sample_mm/msvc8/sample_mm.vcproj | 6 ++++-- sourcemm/stub_mm/msvc8/stub_mm.vcproj | 6 ++++-- sourcemm/svn_version.h | 8 ++++---- 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp index cf42a82..6ef18a1 100644 --- a/sourcemm/concommands.cpp +++ b/sourcemm/concommands.cpp @@ -147,7 +147,7 @@ CON_COMMAND(meta, "Metamod:Source Menu") CONMSG(" GameDLL/Plugins: David \"BAILOPAN\" Anderson\n"); CONMSG(" GameDLL: Scott \"Damaged Soul\" Ehlert\n"); CONMSG("For more information, see the official website\n"); - CONMSG("http://www.sourcemm.net/\n"); + CONMSG("http://www.metamodsource.net/\n"); return; } else if (strcmp(command, "version") == 0) { @@ -163,7 +163,7 @@ CON_COMMAND(meta, "Metamod:Source Menu") CONMSG("Compiled on: %s\n", SOURCEMM_DATE); CONMSG("Plugin interface version: %d:%d\n", PLAPI_VERSION, PLAPI_MIN_VERSION); CONMSG("SourceHook version: %d:%d\n", g_SourceHook.GetIfaceVersion(), g_SourceHook.GetImplVersion()); - CONMSG("http://www.sourcemm.net/\n"); + CONMSG("http://www.metamodsource.net/\n"); return; } else if (strcmp(command, "game") == 0) { @@ -712,7 +712,7 @@ void ClientCommand_handler(edict_t *client) CLIENT_CONMSG(client, " Core: David \"BAILOPAN\" Anderson\n"); CLIENT_CONMSG(client, " Core: Scott \"Damaged Soul\" Ehlert\n"); CLIENT_CONMSG(client, "For more information, see the official website\n"); - CLIENT_CONMSG(client, "http://www.sourcemm.net/\n"); + CLIENT_CONMSG(client, "http://www.metamodsource.net/\n"); RETURN_META(MRES_SUPERCEDE); } else if(strcmp(subcmd, "version") == 0) { @@ -720,7 +720,7 @@ void ClientCommand_handler(edict_t *client) CLIENT_CONMSG(client, "Compiled on: %s\n", SOURCEMM_DATE); CLIENT_CONMSG(client, "Plugin interface version: %d:%d\n", PLAPI_VERSION, PLAPI_MIN_VERSION); CLIENT_CONMSG(client, "SourceHook version: %d:%d\n", g_SourceHook.GetIfaceVersion(), g_SourceHook.GetImplVersion()); - CLIENT_CONMSG(client, "http://www.sourcemm.net/\n"); + CLIENT_CONMSG(client, "http://www.metamodsource.net/\n"); RETURN_META(MRES_SUPERCEDE); } else if(strcmp(subcmd, "list") == 0) { diff --git a/sourcemm/msvc8/sourcemm.vcproj b/sourcemm/msvc8/sourcemm.vcproj index 485dc1b..6430d55 100644 --- a/sourcemm/msvc8/sourcemm.vcproj +++ b/sourcemm/msvc8/sourcemm.vcproj @@ -41,7 +41,7 @@ Date: Fri, 22 Feb 2008 14:40:42 +0000 Subject: [PATCH 36/52] removed 1.4.3 branch since it's now tagged --HG-- branch : sourcemm-1.4.3 --- installer/Attach.cfg | 38 - installer/Attach.dpr | 77 - installer/Attach.exe | Bin 360448 -> 0 bytes installer/MMS_Installer.cfg | 38 - installer/MMS_Installer.dpr | 72 - installer/MMS_Installer.exe | Bin 638464 -> 0 bytes installer/MMS_Installer.res | Bin 171456 -> 0 bytes installer/UnitFunctions.pas | 142 - installer/UnitInstall.pas | 590 - installer/UnitPackSystem.pas | 221 - installer/UnitSelectModPath.dfm | Bin 1310 -> 0 bytes installer/UnitSelectModPath.pas | 35 - installer/UnitfrmMain.dfm | 11618 ---------------- installer/UnitfrmMain.pas | 803 -- installer/UnitfrmProxy.dfm | Bin 1584 -> 0 bytes installer/UnitfrmProxy.pas | 72 - installer/del.bat | 15 - installer/files/Readme.txt | 8 - installer/install.bmp | Bin 154542 -> 0 bytes installer/upx.exe | Bin 126464 -> 0 bytes modules.versions | 9 - sourcehook/FastDelegate.h | 3811 ----- sourcehook/generate/FastDelegate.h | 3811 ----- sourcehook/generate/FastDelegate.hxx | 1054 -- sourcehook/generate/generate | 7 - sourcehook/generate/generate.bat | 10 - sourcehook/generate/sh_memfuncinfo.h | 912 -- sourcehook/generate/sh_memfuncinfo.hxx | 332 - sourcehook/generate/shworker.bin | Bin 54998 -> 0 bytes sourcehook/generate/shworker.exe | Bin 352256 -> 0 bytes sourcehook/generate/shworker/Makefile | 13 - sourcehook/generate/shworker/fd_hopter.cpp | 370 - .../generate/shworker/msvc7/shworker.vcproj | 137 - .../generate/shworker/msvc8/shworker.vcproj | 208 - sourcehook/generate/shworker/shworker.cpp | 767 - sourcehook/generate/sourcehook.h | 6104 -------- sourcehook/generate/sourcehook.hxx | 1370 -- sourcehook/sh_list.h | 291 - sourcehook/sh_memfuncinfo.h | 912 -- sourcehook/sh_memory.h | 186 - sourcehook/sh_stack.h | 237 - sourcehook/sh_string.h | 401 - sourcehook/sh_tinyhash.h | 534 - sourcehook/sh_vector.h | 519 - sourcehook/sourcehook.cpp | 1231 -- sourcehook/sourcehook.h | 6104 -------- sourcehook/sourcehook_impl.h | 659 - sourcehook/test/Makefile | 63 - sourcehook/test/main.cpp | 131 - sourcehook/test/msvc7/test.vcproj | 362 - sourcehook/test/msvc8/test.vcproj | 513 - sourcehook/test/sourcehook_test.h | 27 - sourcehook/test/test1.cpp | 700 - sourcehook/test/test2.cpp | 171 - sourcehook/test/test3.cpp | 238 - sourcehook/test/test4.cpp | 420 - sourcehook/test/testbail.cpp | 119 - sourcehook/test/testbail.h | 40 - sourcehook/test/testbail2.cpp | 49 - sourcehook/test/testevents.h | 153 - sourcehook/test/testlist.cpp | 282 - sourcehook/test/testmanual.cpp | 355 - sourcehook/test/testmulti.cpp | 107 - sourcehook/test/testrecall.cpp | 232 - sourcehook/test/testreentr.cpp | 599 - sourcehook/test/testref.cpp | 165 - sourcehook/test/testrefret.cpp | 208 - sourcemm/CPlugin.cpp | 698 - sourcemm/CPlugin.h | 157 - sourcemm/CSmmAPI.cpp | 672 - sourcemm/CSmmAPI.h | 98 - sourcemm/IPluginManager.h | 137 - sourcemm/ISmmAPI.h | 320 - sourcemm/ISmmPlugin.h | 409 - sourcemm/LICENSE.txt | 29 - sourcemm/Makefile | 69 - sourcemm/SourceMM.Doxyfile | 257 - sourcemm/changelog.txt | 133 - sourcemm/concommands.cpp | 802 -- sourcemm/concommands.h | 55 - sourcemm/convar_smm.h | 523 - sourcemm/msvc7/sourcemm.sln | 21 - sourcemm/msvc7/sourcemm.vcproj | 258 - sourcemm/msvc8/sourcemm.sln | 20 - sourcemm/msvc8/sourcemm.vcproj | 366 - sourcemm/oslink.cpp | 81 - sourcemm/oslink.h | 91 - sourcemm/sample_mm/LICENSE.txt | 29 - sourcemm/sample_mm/Makefile | 67 - sourcemm/sample_mm/SamplePlugin.cpp | 237 - sourcemm/sample_mm/SamplePlugin.h | 132 - sourcemm/sample_mm/cvars.cpp | 27 - sourcemm/sample_mm/cvars.h | 24 - sourcemm/sample_mm/msvc7/sample_mm.sln | 21 - sourcemm/sample_mm/msvc7/sample_mm.vcproj | 149 - sourcemm/sample_mm/msvc8/sample_mm.sln | 20 - sourcemm/sample_mm/msvc8/sample_mm.vcproj | 224 - sourcemm/sourcemm.cpp | 979 -- sourcemm/sourcemm.h | 127 - sourcemm/stub_mm/LICENSE.txt | 29 - sourcemm/stub_mm/Makefile | 66 - sourcemm/stub_mm/msvc7/stub_mm.sln | 21 - sourcemm/stub_mm/msvc7/stub_mm.vcproj | 142 - sourcemm/stub_mm/msvc8/stub_mm.sln | 20 - sourcemm/stub_mm/msvc8/stub_mm.vcproj | 216 - sourcemm/stub_mm/stub_mm.cpp | 105 - sourcemm/stub_mm/stub_mm.h | 45 - sourcemm/svn_version.h | 13 - sourcemm/svn_version.tpl | 13 - sourcemm/util.cpp | 408 - sourcemm/util.h | 76 - sourcemm/version.rc | 101 - sourcemm/vsp_listener.cpp | 194 - sourcemm/vsp_listener.h | 51 - update_tool/Makefile | 68 - update_tool/README.txt | 90 - update_tool/api_link.asm | 138 - update_tool/msvc8/update_tool.sln | 20 - update_tool/msvc8/update_tool.vcproj | 203 - update_tool/sourcemm_update_tool.vdf | 6 - update_tool/sourcemm_updater.conf | 9 - update_tool/update_tool.cpp | 366 - 122 files changed, 58284 deletions(-) delete mode 100644 installer/Attach.cfg delete mode 100644 installer/Attach.dpr delete mode 100644 installer/Attach.exe delete mode 100644 installer/MMS_Installer.cfg delete mode 100644 installer/MMS_Installer.dpr delete mode 100644 installer/MMS_Installer.exe delete mode 100644 installer/MMS_Installer.res delete mode 100644 installer/UnitFunctions.pas delete mode 100644 installer/UnitInstall.pas delete mode 100644 installer/UnitPackSystem.pas delete mode 100644 installer/UnitSelectModPath.dfm delete mode 100644 installer/UnitSelectModPath.pas delete mode 100644 installer/UnitfrmMain.dfm delete mode 100644 installer/UnitfrmMain.pas delete mode 100644 installer/UnitfrmProxy.dfm delete mode 100644 installer/UnitfrmProxy.pas delete mode 100644 installer/del.bat delete mode 100644 installer/files/Readme.txt delete mode 100644 installer/install.bmp delete mode 100644 installer/upx.exe delete mode 100644 modules.versions delete mode 100644 sourcehook/FastDelegate.h delete mode 100644 sourcehook/generate/FastDelegate.h delete mode 100644 sourcehook/generate/FastDelegate.hxx delete mode 100755 sourcehook/generate/generate delete mode 100644 sourcehook/generate/generate.bat delete mode 100644 sourcehook/generate/sh_memfuncinfo.h delete mode 100644 sourcehook/generate/sh_memfuncinfo.hxx delete mode 100755 sourcehook/generate/shworker.bin delete mode 100644 sourcehook/generate/shworker.exe delete mode 100644 sourcehook/generate/shworker/Makefile delete mode 100644 sourcehook/generate/shworker/fd_hopter.cpp delete mode 100644 sourcehook/generate/shworker/msvc7/shworker.vcproj delete mode 100644 sourcehook/generate/shworker/msvc8/shworker.vcproj delete mode 100644 sourcehook/generate/shworker/shworker.cpp delete mode 100644 sourcehook/generate/sourcehook.h delete mode 100755 sourcehook/generate/sourcehook.hxx delete mode 100644 sourcehook/sh_list.h delete mode 100644 sourcehook/sh_memfuncinfo.h delete mode 100644 sourcehook/sh_memory.h delete mode 100644 sourcehook/sh_stack.h delete mode 100755 sourcehook/sh_string.h delete mode 100644 sourcehook/sh_tinyhash.h delete mode 100755 sourcehook/sh_vector.h delete mode 100644 sourcehook/sourcehook.cpp delete mode 100644 sourcehook/sourcehook.h delete mode 100644 sourcehook/sourcehook_impl.h delete mode 100644 sourcehook/test/Makefile delete mode 100644 sourcehook/test/main.cpp delete mode 100644 sourcehook/test/msvc7/test.vcproj delete mode 100644 sourcehook/test/msvc8/test.vcproj delete mode 100644 sourcehook/test/sourcehook_test.h delete mode 100644 sourcehook/test/test1.cpp delete mode 100644 sourcehook/test/test2.cpp delete mode 100644 sourcehook/test/test3.cpp delete mode 100644 sourcehook/test/test4.cpp delete mode 100644 sourcehook/test/testbail.cpp delete mode 100644 sourcehook/test/testbail.h delete mode 100644 sourcehook/test/testbail2.cpp delete mode 100644 sourcehook/test/testevents.h delete mode 100644 sourcehook/test/testlist.cpp delete mode 100644 sourcehook/test/testmanual.cpp delete mode 100644 sourcehook/test/testmulti.cpp delete mode 100644 sourcehook/test/testrecall.cpp delete mode 100644 sourcehook/test/testreentr.cpp delete mode 100644 sourcehook/test/testref.cpp delete mode 100644 sourcehook/test/testrefret.cpp delete mode 100644 sourcemm/CPlugin.cpp delete mode 100644 sourcemm/CPlugin.h delete mode 100644 sourcemm/CSmmAPI.cpp delete mode 100644 sourcemm/CSmmAPI.h delete mode 100644 sourcemm/IPluginManager.h delete mode 100644 sourcemm/ISmmAPI.h delete mode 100644 sourcemm/ISmmPlugin.h delete mode 100644 sourcemm/LICENSE.txt delete mode 100644 sourcemm/Makefile delete mode 100644 sourcemm/SourceMM.Doxyfile delete mode 100644 sourcemm/changelog.txt delete mode 100644 sourcemm/concommands.cpp delete mode 100644 sourcemm/concommands.h delete mode 100644 sourcemm/convar_smm.h delete mode 100644 sourcemm/msvc7/sourcemm.sln delete mode 100644 sourcemm/msvc7/sourcemm.vcproj delete mode 100644 sourcemm/msvc8/sourcemm.sln delete mode 100644 sourcemm/msvc8/sourcemm.vcproj delete mode 100644 sourcemm/oslink.cpp delete mode 100644 sourcemm/oslink.h delete mode 100644 sourcemm/sample_mm/LICENSE.txt delete mode 100644 sourcemm/sample_mm/Makefile delete mode 100644 sourcemm/sample_mm/SamplePlugin.cpp delete mode 100644 sourcemm/sample_mm/SamplePlugin.h delete mode 100644 sourcemm/sample_mm/cvars.cpp delete mode 100644 sourcemm/sample_mm/cvars.h delete mode 100644 sourcemm/sample_mm/msvc7/sample_mm.sln delete mode 100644 sourcemm/sample_mm/msvc7/sample_mm.vcproj delete mode 100644 sourcemm/sample_mm/msvc8/sample_mm.sln delete mode 100644 sourcemm/sample_mm/msvc8/sample_mm.vcproj delete mode 100644 sourcemm/sourcemm.cpp delete mode 100644 sourcemm/sourcemm.h delete mode 100644 sourcemm/stub_mm/LICENSE.txt delete mode 100644 sourcemm/stub_mm/Makefile delete mode 100644 sourcemm/stub_mm/msvc7/stub_mm.sln delete mode 100644 sourcemm/stub_mm/msvc7/stub_mm.vcproj delete mode 100644 sourcemm/stub_mm/msvc8/stub_mm.sln delete mode 100644 sourcemm/stub_mm/msvc8/stub_mm.vcproj delete mode 100644 sourcemm/stub_mm/stub_mm.cpp delete mode 100644 sourcemm/stub_mm/stub_mm.h delete mode 100644 sourcemm/svn_version.h delete mode 100644 sourcemm/svn_version.tpl delete mode 100644 sourcemm/util.cpp delete mode 100644 sourcemm/util.h delete mode 100755 sourcemm/version.rc delete mode 100644 sourcemm/vsp_listener.cpp delete mode 100644 sourcemm/vsp_listener.h delete mode 100644 update_tool/Makefile delete mode 100644 update_tool/README.txt delete mode 100644 update_tool/api_link.asm delete mode 100644 update_tool/msvc8/update_tool.sln delete mode 100644 update_tool/msvc8/update_tool.vcproj delete mode 100644 update_tool/sourcemm_update_tool.vdf delete mode 100644 update_tool/sourcemm_updater.conf delete mode 100644 update_tool/update_tool.cpp diff --git a/installer/Attach.cfg b/installer/Attach.cfg deleted file mode 100644 index 6c57635..0000000 --- a/installer/Attach.cfg +++ /dev/null @@ -1,38 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"c:\program files\borland\delphi7\Projects\Bpl" --LN"c:\program files\borland\delphi7\Projects\Bpl" --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/installer/Attach.dpr b/installer/Attach.dpr deleted file mode 100644 index 214317d..0000000 --- a/installer/Attach.dpr +++ /dev/null @@ -1,77 +0,0 @@ -program Attach; - -{$APPTYPE CONSOLE} - -uses - SysUtils, Classes, UnitPackSystem; - -var eStream: TMemoryStream; - eFiles: TStringList; - Version: String; -begin - WriteLn('// File attacher for the MM:S installer'); - WriteLn('// by Basic-Master'); - WriteLn(''); - WriteLn('// Looking up files...'); - { Check files } - if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server.dll.source') then - WriteLn('// Found files\server.dll.source') - else begin - WriteLn('// Error: Couldn''t find files\server.dll.source!'); - ReadLn; - exit; - end; - if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.source') then - WriteLn('// Found files\server_i486.so.source') - else begin - WriteLn('// Error: Couldn''t find files\server_i486.so.source!'); - ReadLn; - exit; - end; - if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server.dll.orangebox') then - WriteLn('// Found files\server.dll.orangebox') - else begin - WriteLn('// Error: Couldn''t find files\server.dll.orangebox!'); - ReadLn; - exit; - end; - if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.orangebox') then - WriteLn('// Found files\server_i486.so.orangebox') - else begin - WriteLn('// Error: Couldn''t find files\server_i486.so.orangebox!'); - ReadLn; - exit; - end; - if FileExists(ExtractFilePath(ParamStr(0)) + 'MMS_Installer.exe') then - WriteLn('// Found MMS_Installer.exe') - else begin - WriteLn('// Error: Couldn''t find MMS_Installer.exe!'); - ReadLn; - exit; - end; - { Get version number } - WriteLn('// Please enter the version number:'); - ReadLn(Version); - if (Trim(Version) = '') then begin - WriteLn('// Error: Invalid version number!'); - ReadLn; - exit; - end; - { Compress files } - WriteLn('// Compressing files...'); - eFiles := TStringList.Create; - eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server.dll.source'); - eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.source'); - eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server.dll.orangebox'); - eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.orangebox'); - eStream := TMemoryStream.Create; - CompressFiles(eFiles, ExtractFilePath(ParamStr(0)) + 'temp.zip'); - eStream.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'temp.zip'); - WriteLn('// Attaching output to MMS_Installer.exe...'); - AttachToFile(ExtractFilePath(ParamStr(0)) + 'MMS_Installer.exe', eStream, Version); - DeleteFile(ExtractFilePath(ParamStr(0)) + 'temp.zip'); - eStream.Free; - eFiles.Free; - WriteLn('// Done.'); - ReadLn; -end. diff --git a/installer/Attach.exe b/installer/Attach.exe deleted file mode 100644 index d83a203980b4a1778b9549c8a8bcb6af0b491d31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360448 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%0A-+Kg##_gtoMUkhAj!pCyJYoKAX|Guy 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 k6reX;W=A*NsNR z09Olw;w`|CIDNT|=a?oTK00SBV;V-m!NcOIrQdZ_LFHH#zX&>F1YZ-jt8pGjDG;f3 z$)^GZW*?+U$RfgQZo#MX(2WV1{NN?YTFx?Cshia|$fD9W!-|R1DpfgXH#A;{Y9_Cx^UDVew{8{is#- zxsH^tM2BW=Uh*Oh&}QOPlSIe%gLS#QSBBXD&SN4O2y9$$^+1WEddd*jGx;mlK`Yth zq5nnO3{EnU4%{en^hEdy=d4}w;eD4Uv+7+IU-(F4oFKhE$Nd1YAlJyIZ%1=ayE9Rq z?GhkLr{wS-2xB70=U#oYyvLY$rGH%GbW`xKWTnAU^Qz>@>#I$QZD8CmqZ9C5sf||F zgBZY`4E9vMk=v#AO1QBLGWI7AlSwM2C*w5DWPX$?`N3t$WvMf`>^oJGCbJw%D~q75 zmJ`?1<80%(zLGa{hSlSSYj<{|Pn@iP1pYCPob^bKHHh0yOqOyw z8v($?;7!BAu7kv`x)VYl>I-mCG07O)Fzn*(c_XEmu%L_1aYNoQaT~|iB7)4LV>PVe zVxryg2EuMg-Z%*z3!aoHc)$3SWaHnxf<%U~Sv-4oKGjjQAsEjZC`mL}X5l9gpSf zs)C+IA?1-lu&5WcZ-l!50m-s_`1c8U^yr|!V%3aRu zmD@REZWHp<5SP^!X>LQSr*T-*o@r5c7y*SX4q=hTcWyUNaswk2`BVtP12CC6hBn!J=GsG(>ueZFKB~${i;# zxNIkv)zhG5)PIe+_SW_^_NwQ_z1K5-eX)WcdWIgdO&4`t8CfzYsiNkO+G=i!V8qwoomol+QW|bJ^xOm51`y? zPjh0$7)qLdP`H4A!p83wmnw@O$={(D~5XvLMl%`cs0Ge?i#=UYb3JS|
g{EF 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

YgUyu-)ZdB^F+R$C}v&C+AZDR#Wix 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

&$-OG&nD? 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 T%UP5xmgl8GFaE#$X9oTUHt(6} diff --git a/installer/MMS_Installer.cfg b/installer/MMS_Installer.cfg deleted file mode 100644 index 6c57635..0000000 --- a/installer/MMS_Installer.cfg +++ /dev/null @@ -1,38 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"c:\program files\borland\delphi7\Projects\Bpl" --LN"c:\program files\borland\delphi7\Projects\Bpl" --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/installer/MMS_Installer.dpr b/installer/MMS_Installer.dpr deleted file mode 100644 index 09273ac..0000000 --- a/installer/MMS_Installer.dpr +++ /dev/null @@ -1,72 +0,0 @@ -program MMS_Installer; - -{ - - Metamod:Source installer is published under the zlib/libpng license, as well - as Metamod:Source itself. You can find a copy of it below. - - --------- - - zLib/libpng License - - Copyright (c) 2007, Metamod:Source Development Team - - This software is provided 'as-is', without any express or implied warranty. - In no event will the authors be held liable for any damages arising from the - use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it freely, - subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software in a - product, an acknowledgment in the product documentation would be appreciated - but is not required. - - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - - 3. This notice may not be removed or altered from any source distribution. - - --------- - - Used components: - - - Indy 9 (www.indyproject.org) - - FlatStyle Components (www.torry.net) - - FlatPack Component Pack (www.torry.net) - - JVCL Lib Pack 3.0 (jvcl.sourceforge.net) - - Half-Life 2 Icons by Vasili "vaksa" Vorotnikov, Thanks! - Visit www.vaksa.net for further information - -} - -uses - Forms, - UnitfrmMain in 'UnitfrmMain.pas' {frmMain}, - UnitFunctions in 'UnitFunctions.pas', - UnitfrmProxy in 'UnitfrmProxy.pas' {frmProxy}, - UnitInstall in 'UnitInstall.pas', - UnitSelectModPath in 'UnitSelectModPath.pas' {frmSelectModPath}, - UnitPackSystem in 'UnitPackSystem.pas'; - -{$R *.res} - -begin - Application.Initialize; - Application.Title := 'Metamod:Source Installer'; - Application.CreateForm(TfrmMain, frmMain); - UnitfrmMain.VERSION := GetVersion; - frmMain.lblWelcome.Caption := 'Welcome to the Metamod:Source ' + VERSION + ' Setup Wizard'; - frmMain.lblInfo1.Caption := 'This wizard will guide you through the installation of Metamod:Source ' + VERSION + '.'; - frmMain.lblSubTitle1.Caption := 'Please review the following license terms before installing Metamod:Source ' + VERSION + '.'; - frmMain.lblSelectModInfo.Caption := 'Please select the mod Metamod:Source ' + VERSION + ' shall be installed to.'; - frmMain.lblTitle3.Caption := 'Installing Metamod:Source ' + VERSION + ' via FTP'; - frmMain.lblTitle5.Caption := 'Installing Metamod:Source ' + VERSION; - frmMain.lblSubTitle5.Caption := 'Please wait while Metamod:Source ' + VERSION + ' is being installed.'; - Application.CreateForm(TfrmProxy, frmProxy); - Application.CreateForm(TfrmSelectModPath, frmSelectModPath); - Application.Run; -end. diff --git a/installer/MMS_Installer.exe b/installer/MMS_Installer.exe deleted file mode 100644 index 0b64b156f923f6a5872018398567d8ae0c65c532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638464 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%0AS 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

o8H74xj5 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

c)2ArhCxmiGTKLq@2u(+U0m*{4;nO@lCV9S-ik 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%0AYVnWllio`9SVC^;GWEPAuY(kR_l|a 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 z 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

UH{$A0WpyO}BlFGU4y3GCl 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�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 diff --git a/installer/MMS_Installer.res b/installer/MMS_Installer.res deleted file mode 100644 index ace3317386baf91cfcde64e0f3db13dbbe283fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171456 zcmeEP1$b0P*B+{r0)Y@hummRr*ARjPm*Vd3?k>TCJ0V6~u>>tr1L~y|XekcG9TKYa zYyUm}``+CfHp^}VY5VodeV%u(?v*)bj?K&&rIacHh!}y*6iZxA{rs!ACX041SFSf- z(=T$xMkSyxkVR$1FP68AEA5wmG5$?euU!2R>8MJ#?4#-Yo=PZXrWrQYNgt?Zmrt1X{*|_ZL1o#>!vz%=%BiG?yNd?>83h$ z?W(!~J$v*}-Fo#>y@9@c`lxPw`l`nL#;BeH2CCk}MyQ4ZC#mMcXQ*x?#;YC^W~c!J z2B?8R-$8@a;DG~Gzab;kfDt3r$Ppvd*wLd^-;rb0fU)D%(20{(|B2JouxT^ZxUpl^ z#0eABf(eqS;@k>?rX$w`mDa%ynSu0eJ*~`>`Sqs&$S@YDmne$X0 z@4c$%yj{v|-gf1&e6OnO`+@4SV4WH@Z;={2cZnM3y--b^w?NHYyiyHV9;Ak@3{=C` zgs5r0p{n8Xc-3sh7S(Zir0TjVMzveDNxic=UiDZLqdKimP~FyTR$eQ2s+Q{jzx}F7 zz=x_;zyZ~9!w%IcaIfkeuw8Ws`9O6G-lqoQ{{#FstFiuZYWT)oYJA8ZH7VwOHG9(m zWxwcSRbbhtD);iQl+((uR1V+sDu@3M%E9-P%J2J~a`yjT<@P+RW$aVa*e&Mif?+L%5Hg}D#u(=)i&Kw9$Rjxs$1_WkNCUFefvXId*?${ zVoQ=L8=s^qCnTw=J07XpyC10rfgh`uA%|7_(9hM_0~eLo_B*QOyZ2T7cOR*y`+ig{ z5B#J$eDIU%@!=!Y|HB8W$HAY~&_fT^^n=&c^sf@tkWYS5!#@2*P5k^vHTCl(HRZ^! zYU+_+)V#TKm5+~)TD)kHTDEkl^6?8+t5>g4enFusz~5i_21lq>VKHi5)K=xa)XGmgE#+UCJ_EDnx4yx44UX^`4q>hVe^7q^P-I(DpBwwM$D>|*;5E_e$Uk74g^ z+_*g%qis16Kfm`=#%RVf7 z_wU`mf8XA{34tB(2g`3j$+*22zU5tg(f*c@fYrN!8!9?EI$6AtlY`6XWsz|$%9Ss_ zivNj=!%y3yZF+2dcWdM-H%Et*p8zs-S{@b~x%f3FmokxYv2nOQHr&Ofh)dD7D!|+OVkDh}c|t3OaR<K~8$)V5E(5Q&mh-I%h zIc1NEz!DpgJ-_3tS@OKLAT}y&Y|00?IJk`W;YASEi@9Gpg*UI!O+ z&EnvgGa@3pgG1KjgQ2U6IX-!zdU>2CC7+6j$N{$Qwjhr~o?QCvBSL*y>vS%1cS>>n zf-HHQoSQi~yf)YDdRIr(B-0n;{!^a3e?&yCJWei71)Z`bUmk(?VbwEn-AVKBjg8wI zn6G&8(#4Ckem744htC=pUSH7k00*bei;N!-yLTVhzh&vll`9w94t_TM!)J&S-p9e= zJL4Z5oZJGm@{iqj;J~3nhxU|pcXw}p2$k}{yV@fbcGND{naIVVu(5y+eQaE&d)0IQ z0GpqD{4t*p>g&e4V=>+z1na#FFSPG-)6)OMi7uZSw?D@9J|i{Jg6pfAUdW-?`?&tl z*T&_;lP6EkHf?_$8{xCW6VeVPmdr$6;GiWw5uYE!a^?KlvuDnn`jXpRaQz6U!n5XJ z>Fns_WqbhY;|!nBLl3cBy~O1_H@O^(@LBEV==9-3@0l|_9d&W{Lmr3XQ+*;I{`AvN z*R|_!V@q2O`)u&cLnkN52d7>S z2N&cYOkb>A9G%>zE#3a(ALh&NUoTtbX%yK`vmW$KA%9T<#Rdf}`|Nkomp|`sUo@_| zsVJRXZv9MYuk(abU=b&e89__8fBoRcUw{4StAopzOz5QX4TZc*zUqH`kL!yV3y8nf z98kd32TonLWYMxki-IPMs$JOlE)EWbf4S)7_MdauHCG^)@lFm-g^Jgz-MMouHy7-o z>S&A8HN(YwhWh5Oqdf~S*dA*&D^_#}$D}DW{@%@z9 zn(s~jkl(>Izl&?p*WRZ6gIME#qJ1FNyb#Z2X=>$@#ySqJX%YNIgnsNR*iy>Uk1c{@ zUO=)Ro9yLk2etRYma1E)j;hq4rK;Abm8#R^9p%=%yQ=w4CsnT9AXTEnNL9PrQ03WU zl&UshhHBvDrTME(8#gxktj(IM#_zOA_E%fJ(=yp-ZPnW7v(|6dLpAQyTeXG%+Od6m z)uCf2)wyFw)u|i&*B-r8=bpV)cWn2f58Jbs>eIWo=EJt_(N}fu(@%Bn(_i)M*H3lt zJ5aUnH&k^VGD`IvG)#3FHb(UrIzsgvK3aJVouyh2pQhRm9jCgE7^ixU8mGFAnWEZ{ znyT83o2~le|MYk1>y8*cT=R2Bj~b;$PMWHQO@89rPMSDT^KEC(o~`orU#wh)tWbqV z`zyz>A~5>;k$i1L^fs+=Z9D#xjtRf*}bs`{)5ReMgjYBgz*YCdVP>M_GdwVkn2 zHJ9sv3b`D)*qTRjt4;R0;o+s`$p!s?^3) zszUI$s%-H0s(8pnRVw@kRW;(A$`N=KzUg(9Blsr#(>uyO@UqGmd{sGw-c(K@S5!{; zsV?wS9m4OZT-dgcN>q8HAF4u8cUAtFhbljO)`IX^OUK+)Wg@SrvQbx6*|=M(WZXSf zYD=Q35TB^3##~mF1&_c9PrntkAV z)oS}S)qKZI)fm2Q^Zh@mHU}Q5t{?rRx_$Js>V4>EHR|vKHS4Q~YT{SFs5xIHshLNO zzU;yU3)G@@8`QG(>($~7A!>uKuk!cvQ>#Mb)S@j1)MEIs0b6&gkc4+t(DwH=Up8jf z0Tr|Rfb!mTRIS;6R7HLCwc2*%jN0+_8MXh|88!FoAJx(mzbe0zKdaEQk5%N+D=Pfd zBNcx37q#uuZz}BEW3}h%@2tlE@TH!!BbH)~tiPtSy}hHoqobX@y?wE#uc&43=+b%8 zM~4o5IJTyvqrK%lob8>*uGzL@HZ zT8`yc#u>R^ZZR(Q6=sG8hc>r!oED0ufMXWBH$p@E**ls}H?kYME;u;Y z_Z7QrSoN^CYtghtsP7C{yKjvbI6E%z#fjiH+3orU2fuCiDtCg{b+mIf-QIZ_4+I9k zZkOM8T`s$3+zVdU%O1*vi=Ep{oDB>N?w-Z2Wn23!)3v?8-gc&P*3R>Sz^rz;-?Dqt zc-ptOouly$?Obqw{y%h?qf0U8o}t>c>wDSR*=e7syr!?dGtKb>sOAjAD+%1>!3tbkkJ8|dEr5}Fy;o2Q8U#uONtK2tJ zy1E$o;Cs8uD|bIkx_;%#l?O>!?)Z<(YnN;AC(gO;ja00V%WXmY!$+p&_Nvi&@$z<4 z&*2@k2dD~;g@>;E^!UTX#Jfkg3~+a}$G7DzeBaCTf2B^^*}HU_IAHOD$%EV-`DeTO zH(hRYOD3{XwQvmVPyWV-Vf(_Z3k6NLH$LP{J!cdNPVzLbaI9lI@lt;^GeiG5SP!O$ zo%{(4>oKeSS3KWW4vDBRi*{D6;5bN-TDocM}uanX0vvxTo1(7drnr> z5MyuBsF7x?G;ZE9*-mMVxO(Gv+NxIVI;i^Xd#Wa#`=~bEdZ~8p+Nq9+uhT~91RI5M z_V!(2r*!MC+V|+KI(F}=+V||EdUWq@jJfyjlN@tz*rmT}+_k@I(`Tsa(4((v-^*yb zwCXopwe2@Vbp*Qg9iY1PhaJ;@m}bYc8#-RK89N(s_#ueF4_Cv74O6sB#*P`IhK--B z22Px%#*Z7P#oY^!2~ zv2u^9vvRkpynMeJ?Y%^^Gg>T)P)(P_sRqlosfH`JtH!JMsEz^etMQ>b)uhPxR34v0 zs_@c7ntkE8{(I%@dqU+4I1l~*gDM<&R=I@!pvoiOU1h^(s$$qVwFRJi7+;e$8EvRJ}bvss>?S ztLB?dtKqSqtI0c$s_8qvP)*{msgAp@sm^tq|MpfB0uL_>-U2 zoNsmvqgK-xOzxWUtVD)ZF=VM|8@cRga+H0+;NaX3bl?1k1dU4YF6!|Kgs#{ep#P z-th66H^*mYqpU%u6WQOH*gu!owCM|{wJzCo$l%i1jmN9zA2fOL>)G2(o;XN7iE5YxD5fx>>c>P3=CDedZJ|;xcT(Wc;&!wyf1~efGwq zCrtPC_3h!_a=q`8$rHwv%$k)?aL+$@!UjJ-zg|Hr@Vj_I+w57hYu}c&`Dnj@P2pi- zTebuQtRLXoa#hcgEWgO?-R383j*5yycz)ZA2HA72EM%CWKbMR>WkM2Bg14}ZeK zqV=QcUqdC)_f~?S!((WwBm@mEt9t67a?#)o=lluY#5VD&30ZKB5ts4EBy9f)2+r&G z9s0UbMR3mOufK+^r}Z4onIeF$=dkf);kIeN4%(6{cO0TB^qHm_Hg2lvwuUWQs}{|h z!}o5j+O=t;wH3GO&_%WA+FP{*+QIK`-=U*XuXX9F>8z$bho~0a`$JDbXZ0PT-sw9+ zbsaiJH5@!ewHiE5wHPu{y)$&OYA|@JYBF**+K;EHW}{}QVMB+ifn%qranMVZhxw>V zBbF-9nL(=d%s}NdXSb?2Gg6hE6{{MKU8ow4U#yx=TBe##S*d!@TCSWIy|2nI-KWYg ze^2%BUav+h*`UTPTBoK5#;K`M)F+2kq2-^c+#Aj*Pd~Jc`hKCR2OU#I1HM-!LN2HZ zp=Xp^*m>n1b`m-S`UC!Eo*?RtyPA*b5P1)NWuhv*`M#>X?WU@ca9`06)b#*;z*@VK zRGmGKRO_Has_W)&)wq3V)5Jd8DCc^6Yi*G$R;*CoD}B|%fGFj+X@`p0nxHntC#d*6 zdsO7k0}8H&@;i1<%|DW)RviCPtv>l1+7XGzYRe_G9sU5TCv(Xxfxn~#&;jJh(luMb z3KjBY?PfYsv`~YV?b@~UG_|92bE#LmMXT0z8rC=J3%k0_vXp7oJYUu_RkUs{&P|%Q zzR}p@wVJgW@q+%Pnlx?tO34zhHfh?VFvPjG?~(28N=>m3nWkKtG;iO&YO&63n>Kkn zYf+_g*KOaWQ&0CUUD{O1>jWRPugg0_`}H0$bZGtT6|3>3su%1yX!!7f9kRckwT4}B z+@X(M!3t#^vcCR$k6yV=?`(U;*yx|YWhk|SxV<-lcq{>NtHB#`QUi7m0++GR{}HZP zv#26CW|YJHfT!iKHxJ@J#w)Rn|70$iC6HMHnI(`}0+}U{Spu0QkXZtmC6HMHnI(`} z0+}W7ZzutDRLqhV{te&xKmH92WU%#=0cZw47&T#VJsZGqPYx3>N=oU_kMTUO z|Idhvd21|oGnao*36S2T5oyKn9%;yC26k~}vw9%_ku=3PTuGob;A#at&hzY>!|VCK zd_W$69ZlW_$P?tNOnyKi{EdrFbJBzKW+NPFO}deWlI$qEJ)c`mep)61WC=9U65BZC7;thbjm%02kCBU-QY0i3C5FouP0HhVW6Oo3^ zfOmk_Ks%s4&=KflhR)d5p&#cp1g~!k@c+C|Q=kDro~Qg!cLe~_yb{1Zj-*R-fV67=>Z`AIK_9fqF3!$tN)#`?san;lAJ(Z| z`#8ofpTQX9ySBjdwQJQnTBUO3_lg%Q7VBKN@Nx`*7>|2)0mvuh3-VG+fc)SEP`*&s z6agH8oB;VVQzoDgo@X(mJL?wfI%PZS9m||Dx&_eot*lvlgVw9dmn*lYftS~1j4}VS zdDEuyqJS{~ztyW#=le3Qu3HNfC@}B!*I)02=aL^f0OUFH0`)~zpcFvE@(k=nk7uFklpa?*^Q>QmWz3ap>|2t@Ii#Ny%)v8oE z=#($tEWBeEfI5OQp%G9MC<9O)P%pe;;%#hZF6Jd*Di_*M^t0%9QKz!LH+%c-xBFEn zUw$Xb`e$2o_$M5%U$5TfVnvJkz52>4-SOV$d{6`X)C;r^-UeRHJ`#R?U6y=b~4*N|vv-dxa!^a)JI(@Wp+r4qDC(iL2f0e!~d7ixgx~V*{`9HDH7AEhr4$w}nn>%;zAttt3yh|CCymC51TWPHR985^<7 zi13{z_=FWA${L}W2``@J?-D>dF<_n!9Kc^p7P=~EMv-G>gusG zXNq^gMi~)(Kx&12Ek*pklj4D=rL0bG(wg**y(-l=T^IMwH^hC*O{ux{rg&_3zg_A%l|y-^-*0onxR0k&b$7y38xfI01JAco`3xJi0w&-%_f)@R^Anc(d$-eED) zCF)~MrWZxsbPGK%7dJmT+2t@yj*nQ%{P@3=2@lJP+5 z?lc3A*VWH$zc017-xE*#uNMAa6ZawSRExW=@f3Lhc`BuN&>6`Oxll9k3mF-_O(rc| zB>jdC)$~zDOw0lgVNWXy;ifK~XlWPusTBAB7P|Y4xP@Ji@{y>UG1sI@9O^4*USlih1-f~Vex&1$2U2I} zLqV<-skz8In~|Dl<`YXd9eP_4;wmeoXqtPl-@CiHN8%{mjT_&MO~JPpnK&_sFz#rNDa`Y zX2N~Y{ejfl@lZT>CQ5D4vCgg}K@J??k<{Ij67{f;G4g=E*0;G2;D2=q?LN34c)=6A z-~n0UzU?mf?Y2~btf?4tRmw&DAf>i`yfWH+}<~{gjjr zIWKM~=klO?rA@b_$`;UI8)%X6Kx%G(C>}c!#balZc!1^@_bQ&CIZ+!lwnQBqvxT}i zXM~Yo$U7QvPx2Ibs}|&n2l&k$d{+&8P#N;4eDqau3%>-ta8{hwosf3HAIRk8t2F(in=<18IIc9g-RN6Wmx zjnXOlGjV}GR$}8hDIIo6+@h{Y`M8@>Y4aVa0=id=e;_qLcX!aeCg@Ih?0f|J6F-W_ z?v$v7eRFtX-xg})oF&g7KeUObjQr&RKJb97q1+)KR@r=8D#l)yvd~Gcp%Ts)r5yqZF{0r-;o47668DqeiU~C zv^Pgh>|2AzBjginu;85(yrl6Ld5ru9z61Xur?^y)zb{qreib2`%0*w3GLQwuAPWjW z79hX6jQ5_a`K+3ckVgE7Jdizm_Ms?0`i5)+D+bVSrY-ePUvyi)cwPsGL21QxSRVA{ zC&6x-wt2slg#TV7@QjoQy(pz4uS%KNn^JD`T|wR(skH5(R8B~gDhWwaW&0zkN`U@E zH4Q&vZA5jflL5Y{4v+#yiQ!z<2K80eA3W4e%pn5@l0G$SCBa2k%~% z62TY55q3e7jfZ8*(iMXIj#}&}tvb=b%j*Vw!(JdZV?;Fo+ECg4$+m!*&M$OpGXN!y6_{q&_vWyIz~QrP!f(Eh9x54|L%BCmt?x25dnds1%81E~PoR|M@Vg7%dN z(4MGl0rG_g@Iw_d=zLpadYp=al z8Gh}zseK!1&$=*c#Y*WH_o?PXIR~DTVqvH=Q8%P?>>Vis+Pi`FWw#|tx%fmWAD<-U z6COzg8>oom6+wSX=)7XNw&WdsKchU9%u^cgC22CM(zXXu9z5U%9w-glh4QSxhSO4J z!x5RZE>MdZrH2P9lq(mHGNn(z_G8)tY&-rZ>H)qJ+pWo@7wj+X=db&yZ2 zA)~xQUb5sHeP8F76l;@wstA6q03Ij@9xfAi8}jU$6brc|1^iBntFMs<*!D;sNUf}R z4igRdpj>GScmRx}Wcw%e9WcEMgB&Ezy8r!MC7Oz-4o+|HTkbgAZF_%H0e_6;Z>MrUqSIB`mY;&R%-<%}HL4O^XuSu*y z;}H{|kXOuM&Ntjnjc@dG*7(HySiSkt;<@U8l-&gT#D@H#>@l88(sUPfm@9aoblg2D z0UjtCeoYE*yeN6sf3Nuk^bOfZC9N0{`naz^IkPWWb%1RIjIsRP3+ui^zI^#QrWV&{ zEPv3*k+Lv)vy=%uE{?E;oPwYa!>&u=s5{~ub5C629!L?;zsROUDGK`A0`i_qG0@x+ zIh*(s^=4|EuHS*cAA zqy%`NXw)rn3A-uT~BEJ>~@V#T;1#t>N8ARNYLeY1naO?vq9QP1N)MP;g&jy0| z8U%9#N(Yn+=23VG$XhI)Q~kj&Nm2wnp~Dv6@VLf1&&WTu=0*$hBn##tOh$KXckDMz z8q5xsiW^T_l|LF^QAR

    iSEi@7TPRPDST6;k%@geks-j4Ea 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 0) then begin - eOld := eNew - eOld; - //eOld := eOld *2; // this is only used for faster updates... - Result := 'Metamod:Source - Uploading with ' + FloatToStr(RoundTo(eOld / 1024, -2)) + ' kb/s'; - end; -end; - -function GetAllFiles(Mask: String; Attr: Integer; Recursive: Boolean; ShowDirs: Boolean; ShowPath: Boolean = True): TStringList; -var eSearch: TSearchRec; -begin - Result := TStringList.Create; - - // Find all files - if FindFirst(Mask, Attr, eSearch) = 0 then - begin - repeat - if eSearch.Name[1] <> '.' then begin - if ShowPath then begin - if ((eSearch.Attr and Attr) = eSearch.Attr) and ((eSearch.Attr and faDirectory) <> eSearch.Attr) then - Result.Add(ExtractFilePath(Mask) + eSearch.Name) - else if (ShowDirs) and ((eSearch.Attr and faDirectory) = eSearch.Attr) then - Result.Add(ExtractFilePath(Mask) + eSearch.Name); - end - else begin - if ((eSearch.Attr and Attr) = eSearch.Attr) and ((eSearch.Attr and faDirectory) <> eSearch.Attr) then - Result.Add(eSearch.Name) - else if (ShowDirs) and ((eSearch.Attr and faDirectory) = eSearch.Attr) then - Result.Add(eSearch.Name); - end; - - if ((eSearch.Attr and faDirectory) = eSearch.Attr) and (Recursive) then begin - with GetAllFiles(ExtractFilePath(Mask) + eSearch.Name + '\' + ExtractFileName(Mask), Attr, True, ShowDirs, ShowPath) do begin - Result.Text := Result.Text + Text; - Free; - end; - end; - end; - until FindNext(eSearch) <> 0; - end; -end; - -function GetAllDirs: TStringList; -var eList: TStringList; - i: integer; -begin - eList := TStringList.Create; - frmMain.IdFTP.List(eList); - frmMain.IdFTP.DirectoryListing.LoadList(eList); - eList.Clear; - for i := 0 to frmMain.IdFTP.DirectoryListing.Count -1 do begin - if frmMain.IdFTP.DirectoryListing.Items[i].ItemType = ditDirectory then - eList.Add(frmMain.IdFTP.DirectoryListing.Items[i].FileName); - end; - Result := eList; -end; - -{ This is another possibility I coded because I couldn't find another bug... - -function GetAllDirs: TStringList; -var eList: TStringList; - i, eStart: integer; -begin - eList := TStringList.Create; - frmMain.IdFTP.List(eList, '', True); - eStart := 0; - - - // +----------------------------------------------------------------+ - // | drwxr-xr-x 5 web3 ftponly 2048 Jun 25 19:43 files | - // | drwxr-xr-x 2 web3 ftponly 2048 Jun 25 19:57 html | - // | drwxr-xr-x 3 root root 2048 Jun 20 05:03 log | - // | drwxrwxrwx 2 web3 ftponly 2048 Jun 19 2004 phptmp | - // +----------------------------------------------------------------+ - - - // at first remove all non-directories from the list - for i := eList.Count -1 downto 0 do begin - if Pos('d', eList[i]) <> 1 then - eList.Delete(i); - end; - // then we have to find the position where ALL filenames start... - for i := 0 to eList.Count -1 do begin - if (eStart = 0) and (Pos(':', eList[i]) <> 0) then - eStart := Pos(':', eList[i]); - end; - - if eStart = 0 then - eList.Clear - else begin - // find the position - for i := 0 to eList.Count -1 do begin - if Pos(':', eList[i]) <> 0 then begin - while (eStart <> Length(eList[i])) and (eList[i][eStart] <> #32) do - Inc(eStart, 1); - end; - end; - // remove the detail stuff... - for i := 0 to eList.Count -1 do - eList[i] := Copy(eList[i], eStart +1, Length(eList[i])); - end; - - Result := eList; -end; } - -function GetModName(const Path: String): String; -var i: integer; -begin - Result := ''; - for i := Length(Path) -1 downto 1 do begin - if (Path[i] = '\') or (Path[i] = '/') then begin - Result := Copy(Path, i +1, Length(Path) -i); - break; - end; - end; - if (Copy(Result, Length(Result), 1) = '\') or (Copy(Result, Length(Result), 1) = '/') then - Result := Copy(Result, 1, Length(Result) -1); -end; - -end. - - diff --git a/installer/UnitInstall.pas b/installer/UnitInstall.pas deleted file mode 100644 index c43835a..0000000 --- a/installer/UnitInstall.pas +++ /dev/null @@ -1,590 +0,0 @@ -unit UnitInstall; - -interface - -uses SysUtils, Classes, Windows, Graphics, Forms, ShellAPI, Controls, Messages, - TlHelp32, IdFTPCommon, ComCtrls; - -type TOS = (osWindows, osLinux); - -procedure AddStatus(Text: String; Color: TColor; ShowTime: Boolean = True); -procedure AddDone(Additional: String = ''); -procedure AddSkipped; -procedure AddNotFound; -procedure DownloadFile(eFile: String; eDestination: String); - -procedure BasicInstallation(ePath: String; SteamInstall, ListenInstall: Boolean; OS: TOS; const Source: Boolean); -procedure InstallDedicated(eModPath: String; const UseSteam, Source: Boolean); -procedure InstallListen(ePath: String; const Source: Boolean); -procedure InstallCustom(ePath: String; eOS: TOS; const Source: Boolean); -procedure InstallFTP(OS: TOS; const Source: Boolean; const ModDir: String); - -var StartTime: TDateTime; - SteamPath: String; - StandaloneServer: String; - Cancel: Boolean = False; - -implementation - -uses UnitfrmMain, UnitfrmProxy, UnitFunctions, UnitPackSystem; - -// useful stuff - -function InstallTime: String; -begin - Result := Copy(FormatDateTime('HH:MM:SS', Now - StartTime), 4, 5); -end; - -procedure AddStatus(Text: String; Color: TColor; ShowTime: Boolean = True); -begin - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - if ShowTime then begin - frmMain.rtfDetails.SelAttributes.Color := clBlack; - if frmMain.rtfDetails.Text = '' then - frmMain.rtfDetails.SelText := '[' + InstallTime + '] ' - else - frmMain.rtfDetails.SelText := #13#10 + '[' + InstallTime + '] '; - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - end - else - frmMain.rtfDetails.SelText := #13#10; - - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - frmMain.rtfDetails.SelAttributes.Color := Color; - frmMain.rtfDetails.SelText := Text; - frmMain.rtfDetails.Perform(WM_VSCROLL, SB_BOTTOM, 0); - - frmMain.Repaint; - Application.ProcessMessages; -end; - -procedure AddDone(Additional: String = ''); -begin - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - frmMain.rtfDetails.SelAttributes.Color := clGreen; - if Additional = '' then - frmMain.rtfDetails.SelText := ' Done.' - else - frmMain.rtfDetails.SelText := ' Done, ' + Additional + '.'; - frmMain.rtfDetails.Perform(WM_VSCROLL, SB_BOTTOM, 0); - - frmMain.Repaint; - Application.ProcessMessages; -end; - -procedure AddSkipped; -begin - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - frmMain.rtfDetails.SelAttributes.Color := $004080FF; // orange - frmMain.rtfDetails.SelText := ' Skipped.'; - frmMain.rtfDetails.Perform(WM_VSCROLL, SB_BOTTOM, 0); - - frmMain.Repaint; - Application.ProcessMessages; -end; - -procedure AddNotFound; -begin - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - frmMain.rtfDetails.SelAttributes.Color := clRed; - frmMain.rtfDetails.SelText := ' Not found.'; - frmMain.rtfDetails.Perform(WM_VSCROLL, SB_BOTTOM, 0); - - frmMain.Repaint; - Application.ProcessMessages; -end; - -procedure FileCopy(Source, Destination: String; CopyConfig: Boolean; AddStatus: Boolean = True); -begin - if (not CopyConfig) and (Pos('config', Source) <> 0) then begin - if AddStatus then - AddSkipped; - exit; - end; - - if not FileExists(Source) then begin - if AddStatus then - AddNotFound; - exit; - end; - - try - if FileExists(Destination) then - DeleteFile(PChar(Destination)); - CopyFile(PChar(Source), PChar(Destination), False); - except - Application.ProcessMessages; - end; - - if AddStatus then - AddDone; -end; - -procedure DownloadFile(eFile: String; eDestination: String); -var TransferType: TIdFTPTransferType; -begin - // There's only one file to download and it's ASCII :] - TransferType := ftASCII; - if frmMain.IdFTP.TransferType <> TransferType then - frmMain.IdFTP.TransferType := TransferType; - // download the file - frmMain.IdFTP.Get(eFile, eDestination, True); -end; - -procedure UploadFile(eFile: String; eDestination: String; CopyConfig: Boolean = True); -var TransferType: TIdFTPTransferType; -begin - if (Pos('config', eFile) > 0) and (not CopyConfig) then begin - AddSkipped; - exit; - end; - - eDestination := StringReplace(eDestination, '\', '/', [rfReplaceAll]); - - // the same as in DownloadFile() - TransferType := ftBinary; - if ExtractFileExt(LowerCase(eFile)) = '.txt' then TransferType := ftASCII; - if frmMain.IdFTP.TransferType <> TransferType then - frmMain.IdFTP.TransferType := TransferType; - // upload the file - frmMain.IdFTP.Put(eFile, eDestination); - AddDone; -end; - -procedure FTPMakeDir(eDir: String); -begin - eDir := StringReplace(eDir, '\', '/', [rfReplaceAll]); - try - frmMain.IdFTP.MakeDir(eDir); - except - Application.ProcessMessages; - end; -end; - -function FSize(eFile: String): Cardinal; -var eRec: TSearchRec; -begin - if FindFirst(eFile, faAnyFile, eRec) = 0 then - Result := eRec.Size - else - Result := 0; -end; - -// stuff for killing processes - -function GetProcessID(sProcName: String): Integer; -var - hProcSnap: THandle; - pe32: TProcessEntry32; -begin - result := -1; - hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); - if hProcSnap = INVALID_HANDLE_VALUE then - exit; - - pe32.dwSize := SizeOf(ProcessEntry32); - if Process32First(hProcSnap, pe32) = true then begin - while Process32Next(hProcSnap, pe32) = true do begin - if pos(sProcName, pe32.szExeFile) <> 0then - result := pe32.th32ProcessID; - end; - end; - CloseHandle(hProcSnap); -end; - -procedure KillProcess(dwProcID: DWORD); -var - hProcess : Cardinal; - dw : DWORD; -begin - hProcess := OpenProcess(SYNCHRONIZE or PROCESS_TERMINATE, False, dwProcID); - TerminateProcess(hProcess, 0); - dw := WaitForSingleObject(hProcess, 5000); - case dw of - WAIT_TIMEOUT: begin - CloseHandle(hProcess); - exit; - end; - WAIT_FAILED: begin - RaiseLastOSError; - CloseHandle(hProcess); - exit; - end; - end; - CloseHandle(hProcess); -end; - -// Installation here - -{ Basic Installation } - -procedure BasicInstallation(ePath: String; SteamInstall, ListenInstall: Boolean; OS: TOS; const Source: Boolean); -var eStr: TStringList; - CopyConfig: Boolean; -begin - frmMain.ggeAll.MaxValue := 8; - frmMain.ggeAll.Progress := 0; - frmMain.ggeItem.MaxValue := 1; - frmMain.ggeItem.Progress := 0; - - {if (GetProcessID('Steam.exe') <> -1) and (SteamInstall) then begin - if MessageBox(frmMain.Handle, 'Steam is still running. It is necersarry to shut it down before you install Metamod:Source. Shut it down now?', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNO) = mrYes then begin - AddStatus('Shutting down Steam...', clBlack, False); - if GetProcessID('Steam.exe') = -1 then - AddDone - else - KillProcess(GetProcessID('Steam.exe')); - - while GetProcessID('Steam.exe') <> -1 do begin // sure is sure... - Sleep(50); - Application.ProcessMessages; - end; - AddDone; - end - else begin - Application.Terminate; - exit; - end; - end;} - frmMain.ggeAll.Progress := 1; - frmMain.ggeItem.Progress := 1; - { Unpack } - frmMain.ggeItem.Progress := 0; - AddStatus('Unpacking files...', clBlack); - if not Unpack(Source) then begin - AddStatus('No files attached!', clRed); - Screen.Cursor := crDefault; - exit; - end; - AddDone; - frmMain.ggeAll.Progress := 2; - frmMain.ggeItem.Progress := 1; - { Check for installation / Create directories } - CopyConfig := True; - AddStatus('Creating directories...', clBlack); - if DirectoryExists(ePath + 'addons\metamod\bin') then begin - case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to upgrade, No to reinstall, or Cancel to abort the installation.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: CopyConfig := False; - mrCancel: begin - Application.Terminate; - exit; - end; - end; - AddSkipped; - end - else begin - frmMain.ggeItem.Progress := 0; - ForceDirectories(ePath + 'addons\metamod\bin'); - AddDone; - end; - frmMain.ggeItem.Progress := 1; - frmMain.ggeAll.Progress := 3; - - { gameinfo.txt for check / create VDF file } - if not FileExists(ePath + 'gameinfo.txt') then begin - if MessageBox(frmMain.Handle, 'The file "gameinfo.txt" couldn''t be found. Continue installation?', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNO) = mrNo then begin - AddStatus('Installation canceled by user!', clRed, False); - Screen.Cursor := crDefault; - Cancel := True; - exit; - end; - end - else begin - eStr := TStringList.Create; - { Metaplugins.ini } - frmMain.ggeItem.Progress := 0; - AddStatus('Creating metaplugins.ini...', clBlack); - if CopyConfig then begin - eStr.SaveToFile(ePath + 'addons\metamod\metaplugins.ini'); - AddDone; - end - else - AddSkipped; - frmMain.ggeItem.Progress := 1; - frmMain.ggeAll.Progress := 4; - { CDF Plugin } - frmMain.ggeItem.Progress := 0; - AddStatus('Creating VDF Plugin...', clBlack); - if (FileExists(ePath + 'addons\metamod.vdf')) then begin - eStr.LoadFromFile(ePath + 'addons\metamod.vdf'); - if (Pos('server.dll', eStr.Text) <> 0) then - AddSkipped - else begin - eStr.Add(''); - eStr.Add('"Plugin"'); - eStr.Add('{'); - eStr.Add(' "file" "..\' + GetModName(ePath) + '\addons\metamod\bin\server.dll"'); - eStr.Add('}'); - eStr.SaveToFile(ePath + 'addons\metamod.vdf'); - AddDone; - end; - end - else begin - eStr.Add(''); - eStr.Add('"Plugin"'); - eStr.Add('{'); - eStr.Add(' "file" "..\' + GetModName(ePath) + '\addons\metamod\bin\server.dll"'); - eStr.Add('}'); - eStr.SaveToFile(ePath + 'addons\metamod.vdf'); - AddDone; - end; - eStr.Free; - frmMain.ggeItem.Progress := 1; - frmMain.ggeAll.Progress := 5; - end; - { Copy files } - frmMain.ggeItem.Progress := 0; - AddStatus('Copying server.dll...', clBlack); - CopyFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll'), PChar(ePath + 'addons\metamod\bin\server.dll'), False); - AddDone; - frmMain.ggeItem.Progress := 1; - frmMain.ggeAll.Progress := 6; - { Remove files } - frmMain.ggeItem.Progress := 0; - AddStatus('Removing temporary files...', clBlack); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll')); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server_i486.so')); - AddDone; - frmMain.ggeItem.Progress := 1; - frmMain.ggeAll.Progress := 8; - { Finish } - AddStatus('', clBlack, False); - AddStatus('Finished installation!', clBlack, False); - frmMain.cmdNext.Enabled := True; - frmMain.cmdCancel.Hide; - Screen.Cursor := crDefault; -end; - -{ Dedicated Server } - -procedure InstallDedicated(eModPath: String; const UseSteam, Source: Boolean); -begin - StartTime := Now; - Screen.Cursor := crHourGlass; - AddStatus('Starting Metamod:Source installation on dedicated server...', clBlack, False); - BasicInstallation(eModPath, UseSteam, False, osWindows, Source); -end; - -{ Listen Server } - -procedure InstallListen(ePath: String; const Source: Boolean); -begin - StartTime := Now; - Screen.Cursor := crHourGlass; - AddStatus('Starting Metamod:Source installation on the listen server...', clBlack); - BasicInstallation(ePath, True, True, osWindows, Source); -end; - -{ Custom mod } - -procedure InstallCustom(ePath: String; eOS: TOS; const Source: Boolean); -begin - StartTime := Now; - Screen.Cursor := crHourGlass; - AddStatus('Starting Metamod:Source installation...', clBlack); - BasicInstallation(ePath, False, False, eOS, Source); -end; - -{ FTP } - -procedure InstallFTP(OS: TOS; const Source: Boolean; const ModDir: String); -function DoReconnect: Boolean; -begin - Result := False; - if MessageBox(frmMain.Handle, 'You have been disconnected due to an error. Try to reconnect?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNO) = mrYes then begin - try - frmMain.IdFTP.Connect; - Result := True; - except - MessageBox(frmMain.Handle, 'Failed to reconnect. Installation aborted.', PChar(Application.Title), MB_ICONSTOP); - end; - end; -end; - - -label CreateAgain; -label UploadAgain; - -var eStr: TStringList; - CopyConfig, CommentFound: Boolean; - i: Integer; -begin - frmMain.cmdCancel.Show; - frmMain.cmdNext.Hide; - Screen.Cursor := crHourGlass; - - frmMain.ggeAll.MaxValue := 6; - frmMain.ggeAll.Progress := 0; - frmMain.ggeItem.MaxValue := 3; - frmMain.ggeItem.Progress := 0; - - StartTime := Now; - { Unpack } - AddStatus('Unpacking files...', clBlack); - if not Unpack(Source) then begin - AddStatus('No files attached!', clRed); - Screen.Cursor := crDefault; - exit; - end; - AddDone; - frmMain.ggeAll.Progress := 1; - frmMain.ggeItem.Progress := 1; - Sleep(250); - { Create directories } - frmMain.ggeAll.Progress := 2; - frmMain.ggeItem.Progress := 0; - - AddStatus('Creating directories...', clBlack); - try - FTPMakeDir('addons'); - frmMain.IdFTP.ChangeDir('addons'); - frmMain.ggeItem.Progress := 1; - FTPMakeDir('metamod'); - frmMain.IdFTP.ChangeDir('metamod'); - frmMain.ggeItem.Progress := 2; - FTPMakeDir('bin'); - frmMain.ggeItem.Progress := 3; - AddDone; - except - AddSkipped; - end; - { Check VDF Plugin } - CopyConfig := True; - - frmMain.ggeAll.Progress := 3; - frmMain.ggeItem.Progress := 0; - - AddStatus('Creating VDF Plugin...', clBlack); - eStr := TStringList.Create; - try - frmMain.IdFTP.ChangeDirUp; - - frmMain.ggeItem.Progress := 1; - DownloadFile('metamod.vdf', ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); - eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); - frmMain.ggeItem.Progress := 2; - if (((Pos('server.dll', eStr.Text) <> 0) and (OS = osWindows)) or ((Pos('server_i486.so', eStr.Text) <> 0) and (OS = osLinux))) then begin - case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to upgrade, No to reinstall, or Cancel to abort the installation.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: CopyConfig := False; - mrCancel: begin - Application.Terminate; - eStr.Free; - exit; - end; - end; - end; - except - // bacon - end; - { Create and Upload plugin here } - frmMain.ggeItem.Progress := 2; - eStr.Clear; - eStr.Add('"Plugin"'); - eStr.Add('{'); - if (OS = osWindows) then - eStr.Add(' "file" "..\' + ModDir + '\addons\metamod\bin\server.dll"') - else - eStr.Add(' "file" "../' + ModDir + '/addons/metamod/bin/server_i486.so"'); - eStr.Add('}'); - eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf', 'metamod.vdf'); - frmMain.ggeItem.Progress := 3; - { Upload metaplugins.ini } - frmMain.ggeAll.Progress := 4; - frmMain.ggeItem.MaxValue := 1; - frmMain.ggeItem.Progress := 0; - AddStatus('Uploading metaplugins.ini...', clBlack); - frmMain.IdFTP.ChangeDir('metamod'); - if (CopyConfig) then begin - eStr.Clear; - // see http://svn.alliedmods.net/viewvc.cgi/metamodsource/orangebox/addons/metamod/metaplugins.ini?revision=1099&root=Packages - eStr.Add(';List one plugin per line. Each line should contain the path to the plugin''s binary.'); - eStr.Add(';Any line starting with a '';'' character is a comment line, and is ignored.'); - eStr.Add(';'); - eStr.Add(';You do not need to include the _i486.so or .dll part of the file name. Example:'); - eStr.Add('; addons/sourcemod/bin/sourcemod_mm'); - eStr.Add(';You may also put an alias in front of the file, for example:'); - eStr.Add('; sm addons/sourcemod/bin/sourcemod_mm'); - eStr.Add(';Will allow you to use "meta load sm" from the console.'); - eStr.Add(';'); - eStr.Add(';********* LIST PLUGINS BELOW ***********'); - // end - eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini', 'metaplugins.ini'); - end - else if (frmMain.IdFTP.Size('metaplugins.ini') <> -1) then begin - DownloadFile('metaplugins.ini', ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); - eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); - CommentFound := False; - for i := 0 to eStr.Count -1 do begin - if (Pos(';', eStr[i]) = 1) then begin - CommentFound := True; - break; - end; - end; - - if (CommentFound) then - AddSkipped - else begin - // delete empty lines first - for i := eStr.Count -1 downto 0 do begin - if (Trim(eStr[i]) = '') then - eStr.Delete(i); - end; - // see http://svn.alliedmods.net/viewvc.cgi/metamodsource/orangebox/addons/metamod/metaplugins.ini?revision=1099&root=Packages - eStr.Insert(0, ';List one plugin per line. Each line should contain the path to the plugin''s binary.'); - eStr.Insert(1, ';Any line starting with a '';'' character is a comment line, and is ignored.'); - eStr.Insert(2, ';'); - eStr.Insert(3, ';You do not need to include the _i486.so or .dll part of the file name. Example:'); - eStr.Insert(4, '; addons/sourcemod/bin/sourcemod_mm'); - eStr.Insert(5, ';You may also put an alias in front of the file, for example:'); - eStr.Insert(6, '; sm addons/sourcemod/bin/sourcemod_mm'); - eStr.Insert(7, ';Will allow you to use "meta load sm" from the console.'); - eStr.Insert(8, ';'); - eStr.Insert(9, ';********* LIST PLUGINS BELOW ***********'); - // end - eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini', 'metaplugins.ini'); - end; - end; - frmMain.ggeAll.Progress := 5; - frmMain.ggeItem.Progress := 1; - { Upload server.dll / server_i486.so } - frmMain.tmrSpeed.Enabled := True; - frmMain.ggeItem.Progress := 0; - frmMain.IdFTP.ChangeDir('bin'); - if OS = osWindows then begin - AddStatus('Uploading server.dll...', clBlack); - frmMain.ggeItem.MaxValue := FSize(ExtractFilePath(ParamStr(0)) + 'server.dll'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'server.dll', 'server.dll'); - end - else begin - AddStatus('Uploading server_i486.so...', clBlack); - frmMain.ggeItem.MaxValue := FSize(ExtractFilePath(ParamStr(0)) + 'server_i486.so'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'server_i486.so', 'server_i486.so'); - end; - { Remove created files } - AddStatus('Removing temporary files...', clBlack); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll')); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server_i486.so')); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metamod.vdf')); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini')); - AddDone; - { End } - frmMain.IdFTP.Disconnect; - frmMain.ggeAll.Progress := frmMain.ggeAll.MaxValue; - frmMain.ggeItem.Progress := frmMain.ggeItem.MaxValue; - AddStatus('', clBlack, False); - AddStatus('Finished installation!', clBlack, False); - frmMain.tmrSpeed.Enabled := False; - eStr.Free; - - Screen.Cursor := crDefault; - frmMain.cmdNext.Enabled := True; - frmMain.cmdCancel.Hide; - frmMain.cmdNext.Show; - frmMain.tmrSpeed.Enabled := False; - frmMain.Caption := Application.Title; -end; - -end. diff --git a/installer/UnitPackSystem.pas b/installer/UnitPackSystem.pas deleted file mode 100644 index 21e0b2c..0000000 --- a/installer/UnitPackSystem.pas +++ /dev/null @@ -1,221 +0,0 @@ -unit UnitPackSystem; - -interface - -uses SysUtils, Classes, Zlib; - -procedure CompressFiles(Files: TStrings; const Filename: String); -function DecompressStream(Stream: TMemoryStream; DestDirectory: String; const Source: Boolean): Boolean; -function AttachToFile(const AFileName: string; MemoryStream: TMemoryStream; Version: String): Boolean; -function LoadFromFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean; -function Unpack(const Source: Boolean): Boolean; -function GetVersion: String; - -implementation - -uses UnitfrmMain; - -procedure CompressFiles(Files : TStrings; const Filename : String); -var - infile, outfile, tmpFile : TFileStream; - compr : TCompressionStream; - i,l : Integer; - s : String; - -begin - if Files.Count > 0 then - begin - outFile := TFileStream.Create(Filename,fmCreate); - try - { the number of files } - l := Files.Count; - outfile.Write(l,SizeOf(l)); - for i := 0 to Files.Count-1 do - begin - infile := TFileStream.Create(Files[i],fmOpenRead); - try - { the original filename } - s := ExtractFilename(Files[i]); - l := Length(s); - outfile.Write(l,SizeOf(l)); - outfile.Write(s[1],l); - { the original filesize } - l := infile.Size; - outfile.Write(l,SizeOf(l)); - { compress and store the file temporary} - tmpFile := TFileStream.Create('tmp',fmCreate); - compr := TCompressionStream.Create(clMax,tmpfile); - try - compr.CopyFrom(infile,l); - finally - compr.Free; - tmpFile.Free; - end; - { append the compressed file to the destination file } - tmpFile := TFileStream.Create('tmp',fmOpenRead); - try - l := tmpFile.Size; - outfile.WriteBuffer(l, SizeOf(l)); - outfile.CopyFrom(tmpFile,0); - finally - tmpFile.Free; - end; - finally - infile.Free; - end; - end; - finally - outfile.Free; - end; - DeleteFile('tmp'); - end; -end; - -function DecompressStream(Stream : TMemoryStream; DestDirectory : String; const Source: Boolean): Boolean; -var - dest,s : String; - decompr : TDecompressionStream; - outfile : TFilestream; - i,l,lr,c : Integer; -begin - // IncludeTrailingPathDelimiter (D6/D7 only) - dest := IncludeTrailingPathDelimiter(DestDirectory); - - Result := False; - try - { number of files } - Stream.Read(c,SizeOf(c)); - for i := 1 to c do begin - { read filename } - Stream.Read(l,SizeOf(l)); - SetLength(s,l); - Stream.Read(s[1],l); - Stream.Read(l,SizeOf(l)); - Stream.Read(lr,SizeOf(lr)); - { check if this is the right file } - if ((Pos('.source', s) <> 0) and (Source)) or ((Pos('.orangebox', s) <> 0) and (not Source)) then begin - { remove extension and read filesize } - s := ChangeFileExt(s, ''); - { decompress the files and store it } - s := dest+s; //include the path - outfile := TFileStream.Create(s,fmCreate); - decompr := TDecompressionStream.Create(Stream); - try - outfile.CopyFrom(decompr,l); - finally - outfile.Free; - decompr.Free; - end; - end - else - Stream.Position := Stream.Position + lr; - end; - finally - Result := True; - end; -end; - -function AttachToFile(const AFileName: string; MemoryStream: TMemoryStream; Version: String): Boolean; -var - aStream: TFileStream; - iSize: Integer; -begin - Result := False; - if not FileExists(AFileName) then - Exit; - - try - aStream := TFileStream.Create(AFileName, fmOpenWrite or fmShareDenyWrite); - MemoryStream.Seek(0, soFromBeginning); - // seek to end of File - // ans Ende der Datei Seeken - aStream.Seek(0, soFromEnd); - // copy data from MemoryStream - // Daten vom MemoryStream kopieren - aStream.CopyFrom(MemoryStream, 0); - // save Stream-Size - // die Streamgröße speichern - iSize := MemoryStream.Size + SizeOf(Integer); - aStream.Write(iSize, SizeOf(iSize)); - // save version number+length - iSize := aStream.Position; - aStream.Write(Version[1], Length(Version)); - aStream.Write(iSize, SizeOf(iSize)); - finally - aStream.Free; - end; - Result := True; -end; - -function LoadFromFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean; -var - aStream: TMemoryStream; - iSize: Integer; - EndPos: Integer; -begin - Result := False; - if not FileExists(AFileName) then - Exit; - - try - aStream := TMemoryStream.Create; - aStream.LoadFromFile(AFileName); - // drop version part - aStream.Seek(-SizeOf(Integer), soFromEnd); - aStream.Read(EndPos, SizeOf(Integer)); - aStream.SetSize(EndPos); - // seek to position where Stream-Size is saved - // zur Position seeken wo Streamgröße gespeichert - aStream.Seek(-SizeOf(Integer), soFromEnd); - aStream.Read(iSize, SizeOf(iSize)); - if iSize > aStream.Size then - begin - aStream.Free; - Exit; - end; - // seek to position where data is saved - // zur Position seeken an der die Daten abgelegt sind - aStream.Seek(-iSize, soFromEnd); - MemoryStream.SetSize(iSize - SizeOf(Integer)); - MemoryStream.CopyFrom(aStream, iSize - SizeOf(iSize)); - MemoryStream.Seek(0, soFromBeginning); - finally - aStream.Free; - end; - Result := True; -end; - -{ Unpack function } - -function Unpack(const Source: Boolean): Boolean; -var eStream: TMemoryStream; -begin - eStream := TMemoryStream.Create; - try - // Get ZIP - LoadFromFile(ParamStr(0), eStream); - DecompressStream(eStream, ExtractFilePath(ParamStr(0)), Source); // Unpack files - - Result := True; - except - Result := False; - end; - eStream.Free; -end; - -function GetVersion: String; -var FileStream: TFileStream; - EndPos, Size: Integer; - Version: String; -begin - FileStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyWrite); - FileStream.Seek(-SizeOf(Integer), soFromEnd); - FileStream.Read(EndPos, SizeOf(EndPos)); - FileStream.Position := EndPos; - Size := FileStream.Size - EndPos - SizeOf(Integer); - SetString(Result, nil, Size); - FileStream.Read(Pointer(Result)^, Size); // YAMS - FileStream.Free; -end; - -end. diff --git a/installer/UnitSelectModPath.dfm b/installer/UnitSelectModPath.dfm deleted file mode 100644 index ef9ae6a00bf1378e8d66494971a9f5e7022a05f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1310 zcmc&!J#*7Q5IsqbWJQkS3^No|qG3`op@k}zBkYNTG}eWbaF*7V$obB5caD>PlRrYo z3=Km|P00_)&;jR@^I>MFsieKty?yWPu6}PL9FI=2qv276Pm*4Gi2LZE<7^>>)A(Qy zPsA((3b{JrMM_lJ`TL+Tgo$!KSq|oN=YWYHb9LrusD4%)}nX8I3w-c3| zO9+cfXiP4yS`n>)sXkQGQaKYVsN=J$P^I$=ZAF}N;rTi3Di)I*S}|wpc~lZ1L3z8q zqxkT2h~Gv1!%=pGx9hCA)5_^t#R|T}aH#^5sH@mFzKPzD8MrPcC7+S{qG27Nc0!9t z08x;vv^1M3m(_~C*Pin%7XU2MoI&iQ)g@4wf*7#8wBK*9O0A3RAQz{E0rlsM_CQus zW~{OsE2r$nRxR-cxohpOtnDsb08JJe+4IL2L%sw7MH7>;;b9{UIV5AC9v#yGoA4UY z-2lA41+;hWTz{HUAlh|lIvHN^g$QT7xbMPCgxWYOfl{p1y{%x`QsSa_+oXqe9{BhyOn3}-r2a1%Swh*JvO0!E@Z`~p(-J)ku-D& zY+5l0?}=HS?p~&)`v{@H@aQg-;%qCQ70IzF?OY?XJg?Wa?X&er*iY*5Z+!Xu5w(mT zG0ztgipJOPKap=vdVI-D7?`kLKQAx~la)lzf7>Mb+Q;F_%Z*%pss3&waVOe&mK<+% t}XuLVYg nil) then - chkUsesOrangebox.Checked := (chkUsesOrangebox.Checked) or (trvDirectory.Selected.Text = 'tf'); -end; - -end. diff --git a/installer/UnitfrmMain.dfm b/installer/UnitfrmMain.dfm deleted file mode 100644 index 4e2a9f9..0000000 --- a/installer/UnitfrmMain.dfm +++ /dev/null @@ -1,11618 +0,0 @@ -object frmMain: TfrmMain - Left = 333 - Top = 271 - BorderIcons = [biSystemMenu, biMinimize] - BorderStyle = bsSingle - Caption = 'Metamod:Source Installer' - ClientHeight = 355 - ClientWidth = 527 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - Icon.Data = { - 000001000C003030000001000800A80E0000C60000002020000001000800A808 - 00006E0F00001818000001000800C80600001618000010100000010008006805 - 0000DE1E0000808000000100200028080100462400006060000001002000A894 - 00006E2C010048480000010020008854000016C1010040400000010020002842 - 00009E1502003030000001002000A8250000C65702002020000001002000A810 - 00006E7D0200181800000100200088090000168E020010100000010020006804 - 00009E9702002800000030000000600000000100080000000000000900000000 - 0000000000000001000000010000000000003535360031393E003B3B3B00403E - 3E001D3642001E3C4C002A3B4400323B4100264150002C465400274C5F003E52 - 5D00214C62003A5A6B00205A7700205D7C00365E73002B627F00454343004846 - 46004647490048474800464A4D004A4848004C4A4A004D4D4D00504E4E004F4F - 50004F5050004351590053535300585656005457590055585800595858005C5B - 5B00595D5D005E5D5D00605F5F00595F600045616F005C6364005E696B004364 - 7500496A7B00596B72005B737B00636363006463630060656500666464006167 - 6B00636B6C006C6B6B00706E6E00606C70006370720068747600627479006979 - 7C007170700074737300767575007877770070777900797979007C7B7B007D7C - 7C0019668E0015699300336680002D6F91002C72970029729800337699003D7D - 9D001674A400327CA200476E820042728A005A79850051778B00567D8D005B7E - 8B00637D8500697D8200717C82001380B7002182B3002A82B000398CB7003E95 - BD005F8493006D8287006681890071808500788284007C888E00638C9B00688E - 9A0069919E0079959F00438CAE00488DAB00548CA300588FA600518FA9004B90 - AE005B91A6005594AF005993AA00408EB2004C93B2004C97B9004699BE004D99 - BA005496B100559AB7005E99B000539EBD00599DB800648FA6006397AA007098 - A8006A9CB300729EB50075A6BC007EA9BA001287C3001A8BC500118CCA00188E - CA000D95DB000D98DF001495D6001995D3001E98D5001195D800159ADD001C9B - DB00298EC2002596CD002A95CA003395C3003895C0003D9AC500329ACB00399B - CB002196D000239AD6002B9BD200239BD900319DD00024A0DF002CA1DC0032A0 - D70030A2DD000D9BE3000D9EE800119CE2001A9DE0000DA2EE001EA2E50013A4 - ED0019A5ED001DA8EF001AA7F0001CA8F00022A2E4002BA6E50021A7EB0028A7 - E80023A9ED002BABED0031A6E10034A9E50039ABE50033ACEA0039AEEA0037B0 - EE003CB2EE0024ABF0002BAEF00031AFF00033B1F1003CB4F100429AC3004C9E - C200529FC70070BADD0040B0E9004CB6EC0041B6F10047B8F2004CBAF30053BD - F3005BBEF10062BEED005BC0F40068C1EE007AC0E4007ACAEF0067C4F50069C5 - F50074C7F20078C7F00077CBF60078CBF5008281810086868600888787008B8A - 8A0086979D0090909100979B9F0099989800959DA2008FA0A60093A4AC0080AB - BE009AAEB500A5A4A400A3ADAD00AEBABA0084AFC60093B5C7009EB7C2009DBB - CA00A7BBC500AABCC30093C1D50099C2D700B1C3CA00A6C9DA00B1CAD40084CD - F1008ACFF20087D1F7008AD0F30094D5F6009ED7F5009ED8F60095D6F800A7D2 - E600B4DBED00A3DAF600ABDDF700A4DCF800AFE0F800BFE5F600B2E1F900BBE4 - F900CBE6F300CCE8F500C0E6FA00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - D13F3F3F42D10000000000000000000000000000000000000000000000000000 - 00000000000000000000000042231814141413141418181B3100000000000000 - 0000000000000000000000000000000000000000000000000000311814141414 - 141414141414141414141F420000000000000000000000000000000000000000 - 00000000000000003F14141414181F2A2F5154542F2B2218181414141F000000 - 00000000000000000000000000000000000000000000001F1314141F3969BB9C - 9CB0AFAFAF9D9471511F181414143F0000000000000000000000000000000000 - 000000000000181814183B729DAFB2B5B5B5B5C1B5B5B3B09D94531F18141331 - 000000000000000000000000000000000000000000181814236F9BAFAEB4B5B5 - B5B5B5B5B5B5B5B5B4B2AF912B18161323000000000000000000000000000000 - 000000001818182BBB9AAAAEB4B9B9B9B9B9B9B9B5B9BAB9B5B9B2AF96511818 - 183100000000000000000000000000000000002018182B929AACB7B7B7B7B7B7 - B8B8B8B8B7B9B7B9B9B8B7B7AF9A531818183F00000000000000000000000000 - 00003F14142ABBA1ABB6B6B6B6B6B6B6B6B6B7B7B7B7B7AFAFB7B7B7B69A962F - 18161800000000000000000000000000000018141F6E8BA3A84A2C2D2D8FB6B6 - B6B6A8A8B6B6B650214F5BACB6ACA38F2A161423000000000000000000000000 - 00311814558CA0A7A38804181F29A3A8A7A8A8A8B6A7A11F1F201F21508DA3A3 - 671818180000000000000000000000000014142292A0A4A7A2A710131B185AA7 - A7A7A7A7A2A74B1F1B1B1B1B1812A8A4872F1814230000000000000000000000 - 4218145F8A9FA4A2A7A28B0218180CA4A2A2A2A2A7A20C19160301130484A7A4 - A07018181800000000000000000000001F141F7286A2A2A2A2A2A24504181449 - A2A4A2A2A25916191410460506A4A2A486882A18183F00000000000000000000 - 14142A9B86A2A2A2A2A2A286071314178AA2A2A2A21116140383A2A285A2A2A2 - A28553181418000000000000000000001414568A9FA2A2A2A2A2A2A24D041314 - 47A2A2A28B1616140BA2A2A2A2A2A2A2A28670181818D10000000000000000D1 - 18186385A2A2A2A2A2A2A2A2A20913141684A7A24A1614044DA2A2A2A2A2A2A2 - A286901F14182300000000000000003F14186E86A2A2A2A2A2A2A2A2A2580114 - 160EA2A20C14140886A2A2A2A2A2A2A2A29F8F2216141800000000000000003F - 13187586A2A2A2A2A2A2A2A2A2A20D131414598413141310A2A2A2A2A2A2A2A2 - A29F952318141431000000000000003718187586A2A2A2A2A2A2A2A2A2A28401 - 13181E4814140481A2A2A2A2A2A2A2A2A29F952816141418000000000000003F - 13187785A2A2A2A2A2A2A2A2A2A2A21013181F181B180AA2A2A2A2A2A2A2A2A2 - A29F8F22141414143F000000000000D418186385A2A2A2A2A2A2A2A2A7A8B79A - 1723232723204EB6A8A2A2A2A2A2A2A2A286911F141414141B00000000000000 - 1418568786A2A2A2A2A2A7B7B8B9B9B94C2731313122B0B9B9B8A8A2A2A2A2A2 - A28667181614141414D300000000000014182A999FA2A2A2A2A7B8BABAC1C1C1 - B52B37373752C1B5C1B5BAB6A2A2A2A2A2855416141414141423000000000000 - 1F141D7586A2A2A2A2C1C3C3C3C3C3C3C37A403F37BDC3C3C3C4C3C3A8A2A2A2 - 9F952A14141414141414000000000000D118185E8B86A2A2B8C7C7C7C7C7C7C7 - C762D1D157C5C7C7C7C7C7C7C3A2A2A2866C1818141414141414330000000000 - 00141422BC86A2A2C1CCCCCCCCCCCCCCBED4D4D47ECCCCCCCCCCCCCCCCA7A286 - 893B141818181B18181418000000000000401414568986A2C7CFCFCFCFE1DBD9 - D9D8D8D6C9CFCFCFCFCFCFCFCFA7A2866B181D7D7F7F7F7F5616184000000000 - 000018141F7B869FC1EEEEEEEEE2DEDEDEDEDEDBEEEEEEEEEEEEEEEECFA28690 - 2A1618BEEE807C7C3B16141F000000000000DF1314237886A3EEF3F3F3E4DEDE - DEDEDEE8F3F3F3F3F3F3F3F3C286963B1318182ECA7F23141414141400000000 - 00000037131832BC86B4F8F8F8EAE6E6E6E6E5F6F8F8F8F8F8F8F8CDA0965518 - 181618185DEE661B1414141433000000000000001F16182A798AB0F2FBFBFBFB - FBFBFBFBFBFBFBFBFBF9CC8B8F3B181414141414187DED60181414141F000000 - 000000000018181822659B8BC6F9FFFFFFFFFFFFFFFFFFFCECB0877135181814 - 14141414181FE7F4311814141B0000000000000000001F141418397B9B8AB0CC - EDF2F6F6F3CAC08C8973551F141414141414181F1F1735FBD518141420000000 - 0000000000000034141814183564789389878B87879B736D3C1D181414141414 - 14141DF5DD182AFADA181414420000000000000000000000E018181814181C23 - 3A3C56563A2A1F181818131414141414141418E3FEDDEBFE4114141B00000000 - 00000000000000000000D1181814181818181414141414181418181414141414 - 1416181FDBE9E661181814000000000000000000000000000000000000371814 - 1414141414141414141414141414141414141418181818181823000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF - FFFFFFFF0000FFFFFFFFFFFF0000FFFFC0FFFFFF0000FFFC001FFFFF0000FFF0 - 0003FFFF0000FFC00001FFFF0000FF8000007FFF0000FF0000003FFF0000FE00 - 00001FFF0000FC0000000FFF0000F800000007FF0000F000000007FF0000F000 - 000003FF0000E000000003FF0000E000000001FF0000C000000001FF0000C000 - 000000FF0000C000000000FF0000C0000000007F000080000000007F00008000 - 0000007F000080000000003F000080000000003F000080000000001F00008000 - 0000001F0000C0000000000F0000C0000000000F0000C0000000000F0000C000 - 000000070000E000000000070000E000000000030000F000000000030000F000 - 000000030000F800000000010000FC00000000010000FE00000000010000FF00 - 000000010000FF80000000010000FFC0000000030000FFF0000000070000FFFE - 0000000F0000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF - FFFFFFFF0000FFFFFFFFFFFF0000280000002000000040000000010008000000 - 00000004000000000000000000000001000000010000000000003E3D3D003042 - 4C0034444D003D464B002A495A00384B55002C51650024536C003C5968003B5B - 6D0034637B004240400045434300474545004846460046484900454B4F004A48 - 48004C4A4A004C4B4C004D4D4D00504E4E004D4E50004F50500041515B004555 - 5E005050500054525200535455005654540055595900555B5D00565C5E005A59 - 59005D5B5B00595C5D005F5E5E00605F5F00505B6000565F6100585F62005C61 - 61005A6064005261680056676D005C65690057696F005B686B005C6A6E004068 - 7D004E6A790052687100586B71005C6D7100596F7700526D780051717E006261 - 610064636300666464006B6A6A006C6B6B006E6D6D006C75780069767C007170 - 70007473730075747400787777007E7E7E00176288001F678D001D6E98001670 - 9E003B6E890029769E00397D9F001874A3001678AA00247AA700357DA2003C7F - A1004D758700497588005B7B8600507B8E00457A9500647E8900757F82001385 - BF001F88BE002981AE003E82A2003989AF003D88AE002183B500358CB6003C8D - B3003A95BF004D839A004D849C005F82910056879B0051879E005A879E006788 - 9700688997004083A1004583A0004C87A0004D88A3004888A5004488A800468C - AC00498DAB00508EA9004892B5004093B9007699A60071A1B6001E91CB001192 - D4001297DB001698D900199ADA001A9BDD001E9EDE002491C8002999CF002E99 - CE003D97C1003798C6003A98C4003399C900369AC900379BCC003A9AC8002498 - D400239CD700269CD6002E9DD2002B9DD500239EDD0026A1DF0033A2DA000D9A - E2000D9BE4000D9DE6000D9EE900129AE000179DE200149FE600189EE1000EA2 - EE001FA2E50014A1E90010A2EE0012A4EF0015A5EE001CA4EA0019A6EE0019A7 - F0001BA8F00027A6E60029A3E1002BA4E2002BA8E70025A8EB0026ABEF002EAE - EF0033A6E00031A8E40034ABE7003CACE60037AEEB0032AFEF0035AFED003AAF - EA0039B0ED003DB3EE0022AAF00024ABF00027ACF0002AADF0002DAEF10030B0 - F10035B1F10038B2F1003DB4F000439AC300429FCB0040A2D10040A3D40069AD - D00062B0D8007EBAD5004DB0E30049B1E60045B8F20049B9F3004FBAF10058BF - F30059BFF4005EC1F4006DC2ED007DCAEE0074CAF5007FCAF0007CCDF5008281 - 810085848400879396008B94940088969E0096959500989797008F9FA80087AB - BA0088ABBE0099ACB4009EAFB6009BB0BC00A5A4A400A6B3BA00A6B4BA0080B3 - CD0091B9CD00A4BFCC00ADCBD800B1CCD800B9CFD80081CCF2008AD1F60097D4 - F4009FD9F800A3CDE100A1D6F100A1D9F500ADDEF700A0DAF800B5E2F9000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 3F1E161616162244000000000000000000000000000000000000000000001E12 - 12161216160F121212220000000000000000000000000000000000003A12161F - 5675BFC1C1BE7038161612440000000000000000000000000000001E121E7091 - ADB1B4B4B4B4B2AD8439160F3A000000000000000000000000001E123488A7B1 - BBBBBBBBBBBCBBBCB1A57116163A00000000000000000000003A162D8EA8B7B7 - B7B7B7B7BBB9B9BBB7B1A461160F4600000000000000000000121F82A0804D52 - A5B6B6B6B6B6A5395FA5A89B6D16120000000000000000001E1672989F990416 - 4BA2A2A2A2A3511E1B1E327F7E34123F0000000000000000122E7C9F9D9F490F - 16799F9F9F9F1A16010F069F9F61121600000000000000440F70939D9D9D9502 - 0F0A9D9D9D5B120F4A474A9F957B280FD20000000000001E1684959D9D9D9D4F - 0C0F609D9D0B0F039D9D9D9D9D93540F1E000000000000121E8B9D9D9D9D9A9D - 050F199593100F489D9D9D9D9D935D120F0000000000000F2A7C9D9D9A9A9A9D - 5A010F4C5012017A9D9D9A9A9A9A5E0F122200000000000F2A7C9D9D9D9A9A9A - 9A080F11090F079D9D9A9A9A9A955E0F161600000000000F1F8B9D9D9A9A9A9D - 9F8B161F221E5C9F9D9A9A9A9A945D0F0F0F3F000000001E1684959D9A9AA3BB - BBBB573A3D29B1BBB99D9A9A9A94540F0F0F1600000000441268939D9AA3C8C8 - C8C8C5444469C8C8C8C89D9D9A7A28100F0F12D200000000122A7E9A9DCACCCC - CCCCC2D2D2C3CCCCCCCCBD9A9561160F12120F1E00000000221674939FCFCFCF - E2DBD9D7D6CFCFCFCFCFCA9D7B2D276A6A6A2A1000000000000F1F8893D1E9E9 - DEDFDFDFE3E9E9E9E9E9C89264102CCE77581F0F3A00000000D50F318EB4EEF0 - E4E1E1E1EDF0F0F0F0E99871150F1066C41E11121200000000002E102A84AEEE - F1F1F1F1F1F1F1F1E88F6E150F0F0F0F78DA160F120000000000002E161D688E - C5D0EEEFEFEACDAB633716120F0F16151DEC40121200000000000000D40F121F - 5574638884766537160F0F0F0F0F41E61FE55912160000000000000000003A0F - 0F0F1616160F12121212120F0F0F16DCE7DC1B12000000000000000000000000 - D83F1E0F0F1212120F120F0F0F0F0F0F16163D00000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF - FFFFFFC03FFFFF000FFFFC0003FFF80001FFF00000FFE000007FE000007FC000 - 003FC000003F8000001F8000001F8000001F8000000F8000000F800000078000 - 000780000003C0000003C0000003E0000001E0000001F0000001F8000001FC00 - 0001FF000003FFC00007FFFFFFFFFFFFFFFFFFFFFFFF28000000180000003000 - 0000010008000000000040020000000000000000000000010000000100000000 - 00003E41430039424800384851002C5B73002B5C7600345E7300464444004846 - 460045494C004A4848004C4A4A004E4D4D00454B50004D51530041525C004656 - 5F004F595D005151510054535300535455005554540058565600525859005559 - 5A00525B5E00545A5C00525C5F005B5A5A005C5B5B00595E5F005E5D5D00605F - 5F0043576200455862004F5F6800535B6000525D6100585F62004D616A005061 - 67005461670059606300596264005262690056676D00516872004F707E006065 - 670061676A006A6969006E6D6D00706F6F006972760064747D00727171007473 - 73001D6F9A002164860033658000226A900029779F003E7894001478AC00436B - 8100466F82004A7183004C74850048758A004D7A8E005D7C8B0042779300497A - 90004F7F9400467F9900497F9800607C8B001682B9003882A8002686B800348B - B500398EB5003D8EB400318CB9006E8089004583A0004A87A2004789A800428B - AD00438EB0004590B5005499BC00729FB20075A3BB001386C1001D8AC1001192 - D4001694D5001E95D1001799DB00129ADF001D9AD9001F9FDF002D95CA003296 - C6002FA0DA0037A1D6003CA1D30031A2DB0039A6DC000F9AE0000D9CE6000D9E - E900109AE0000DA0EB000DA2EE0018A1E70010A0E90011A3EE0011A4EF0014A4 - EE001CA8EF001EA9F00022A1E10027A5E5002DA7E50023A7EA002EABEB002EAC - EC0036AAE50035AFEE0039ADE80022AAF00026ACF00029ADF0002CAEF00036B2 - F10038B3F1003FB5F20042A0CC0049A9D7006AA7C70076B2CD007AB1C80046AE - E30054B3E30056B5E5005BB8E70045B7F10046B8F2004DBAF30062C2F40066C4 - F4007FCEF60081818100868686008A8989009897970099989800989C9E009E9D - 9E009CA0A3008BA5B000A2AEAE00A7B1B600B2B1B1008DB9CC00A9BDC500A2BF - CD0085C0DE009FCDE50080CBF20086CEF20091D4F6009CD7F6009CD8F800B8E3 - F900B9E4FA000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000331F1F1F370000000000 - 00000000000000000000009C0C08122528190C08120000000000000000000000 - 0000200C2E5A6D8183816B55190833000000000000000000001F0C557D828889 - 898989826C420C320000000000000000370C5284858686868686827F867C4408 - 9B000000000000000C4B74621040797A85794E25476766270C00000000000033 - 19657676050C4F767676220A080676500A9B00000000000C4470737360011070 - 765F08053F5E7671190C00000000000851737373733A083D733B084D73737370 - 400C00000000000C68737373736E020D60090373737373733E081F0000000008 - 6873737373733908220C3C73737373703E080800000000085173737376867F23 - 201F69847673736E410A08340000000C456E737A9595955B374C949589767371 - 2508080C00000037196673969797975D9B8D9797978873500C080C089B000000 - 08496E9799A9A1A0A0ABAB99999463284C8F5C2512000000A30C5983AFAAA4A4 - A8AFAFAFAD7B420C0E8E26080800000000360C5690AEB1B1B1B1B1996B2F0808 - 0828A612089C00000000540C28598C9293928B4B190808083530A23508000000 - 0000000016080C262B190C080808080831A7A71220000000000000000000A5A0 - 9D9D9D9D9D9D9D9D9DA0A0A50000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000FFFF - FF00FFFFFF00FF07FF00F801FF00F0007F00E0003F00C0001F00C0001F008000 - 0F0080000F0080000F008000070080000700800003008000030080000100C000 - 0100C0000100E0000000F0000100FC000100FF000300FFFFFF00FFFFFF002800 - 0000100000002000000001000800000000000001000000000000000000000001 - 000000010000000000003D525D00315467002E5F79004345470048464600434A - 4E004A4949004D4D4E00514F4F004F5050004D5357004A585E004C585E005152 - 52005253540053545500555758005E5D5D00475C67004A5A6200525D62004F60 - 67004B606B0058686F00436677004D6671004A6774004B68760042667800466C - 7E00496A7900486D7D0069686800647077007171710031698600306B8A003B7C - 9B003C7C9A00187FB4002F7CA3002B7DA700437085004372880047758B004777 - 8E005E7D8C001E87BC002D8AB8002D8CBB005B8094006B899600718793007A9A - A80078A4BB001386C2001C8CC6001196DA003B97C5003295C800359BCF002199 - D500249EDC002E9FD8002AA0DB0037A0D40031A2DC000F9DE600139BE0000DA0 - EA000EA2EE0014A3EB0015A5EF0027AAEC003CADE60036AFEC0027ACF00029AD - F0002CAEF00035B1F1003AB3F0003DB5F1004E9BC10058AAD20071B8DD0040B5 - F10069C5F500818080008B8A8A008D8D8D00808E95008599A40097A9B100A6AC - AF00A9AEAF00AEB5B500A3B2BA00B4B4B40097CFEB0083CBF0008DD0F20090D4 - F70095D6F70095D6F800ABDEF800AFDFF8000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000058580000 - 000000000000000000580A1B2E2E17085900000000000000211C424C51514C3B - 14230000000000591F3F3C4A4D4E3D43410C00000000000F3E48012948491708 - 293209000000001E46462806453904383A440C00000062264647470225240346 - 47461D1200006226464747390A0B304747461D050000001F4649525233225650 - 47460B08210000113E5257555C3757574F3215180F0000601F4B68615E636868 - 410C2F3408590000351B54656A6A64530C0508360F230000005F0F1B2E2B1408 - 05055B5D11000000000000000000000000000000000000000000000000000000 - 000000000000FFFF0000FCFF0000E01F0000C00F0000800F0000800700008007 - 00000003000000030000800100008001000080000000C0000000E0010000FFFF - 0000FFFF00002800000080000000000100000100200000000000000801000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000007F7F - 7F017F7F7F017F7F7F017F7F7F017F7F7F017F7F7F017F7F7F017F7F7F017F7F - 7F01000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000100000002000000040000000500000007000000080000000A0000 - 000C0000000D0000000D0000000E0000000E0000000E0000000D0000000D0000 - 000C0000000A0000000800000007000000050000000300000002000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000100000003000000050000 - 00090000000C0000001000000014000000180000001C0000001F000000230000 - 0025000000270000002800000028000000280000002800000028000000270000 - 0025000000220000001F0000001C00000017000000130000000F0000000B0000 - 0007000000040000000200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000100000003000000070000000C00000012000000180000 - 001F000000250000002C00000032000000370000003B0000003E000000410000 - 0043000000450000004500000046000000460000004600000045000000450000 - 0043000000410000003E0000003B00000036000000310000002B000000240000 - 001D00000016000000100000000A000000060000000300000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0003000000070000000C000000130000001B000000250000002E000000360000 - 003D00000043000000480000004B0000004E0000005100000052000000540000 - 0055000000550000005500000056000000560000005600000055000000550000 - 00540000005400000052000000500000004E0000004B00000047000000420000 - 003B000000340000002B0000002200000019000000110000000A000000050000 - 0001000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001211110100000004000000090000 - 00100000001A00000025000000300000003A00000042000000490000004E0000 - 005203030357161616761F1E1E91242323A9343333BE3D3C3CD0403E3ED84543 - 43EA454343EA454343EA454343EA454343EA454343EA454343EA403E3ED83C3A - 3ACD323131BB232222A71E1D1D8C141414720000005700000056000000540000 - 00510000004C0000004700000040000000370000002C00000020000000160000 - 000E000000070000000300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000012111101000000040000000A000000130000001F0000 - 002B00000037000000410000004A000000500908085E1F1E1E902D2C2CB54240 - 40E0484646FC494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF474545F73F3D3DD5292828AC1A1A - 1A820505055D00000056000000530000004E000000470000003E000000330000 - 00260000001A0000001000000008000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000012111101000000040000000A00000014000000210000002F0000003B0000 - 00460000004E0F0F0F69262525A5403E3ED7494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF474545F7393737C8201F1F940707076000000055000000510000004B0000 - 0043000000370000002A0000001B000000100000000700000002000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00030000000800000012000000200000002F0000003D0000004805050555201F - 1F94403E3ED7494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF474545F7343232C01817177D000000570000 - 00540000004E0000004400000038000000290000001A0000000E000000061211 - 1101000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000012111101000000050000 - 000F0000001C0000002C0000003B000000480B0B0B612E2D2DB2474545F44947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF413F3FE02221 - 21970302025A000000540000004E000000440000003600000026000000160000 - 000B000000031211110100000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000300000009000000160000 - 002600000037000000460D0D0D65353333BF484646FA494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF454444EF262525A10505055C000000540000004C00000041000000310000 - 001F000000100000000712111101000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000002F3F3F01000000050000000E0000001D0000002F0000 - 0040090909572F2E2EB3484646FA494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4A4848FF4A48 - 48FF4A4949FF4A4949FF4A4949FF4A4949FF4A4848FF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF444242E7212020940000005700000052000000490000 - 003A00000028000000170000000A000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000002F3F3F0100000007000000130000002400000037000000472524 - 2497474545F4494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4A4949FF4C4B4BFF4F4F4FFF515353FF555757FF585C5CFF5B6060FF5D63 - 63FF5F6565FF606767FF606767FF5F6565FF5E6363FF5C6060FF585C5CFF5558 - 58FF525353FF4F4F4FFF4C4C4CFF4B4949FF494848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF3F3D3DDB12121277000000550000 - 004E00000042000000300000001D0000000E000000052F3F3F01000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000020000000A000000170000002A0000003E111111673F3D3DD94947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4A4949FF4D4C4CFF515252FF585B - 5BFF5F6565FF677070FF707B7BFF778787FF7D9293FF7D999EFF7B9EA7FF76A1 - ADFF72A2B1FF70A2B3FF70A2B3FF70A1B2FF73A0AEFF779EA9FF7B9AA0FF7B92 - 95FF78898AFF717E7EFF697272FF616767FF595C5CFF525353FF4D4D4DFF4B49 - 49FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF484646FC2F2E2EB30505 - 055C0000005200000048000000370000002300000011000000062F3F3F010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00030000000C0000001B0000002F000000422928289B484646F9494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4848FF4D4D4DFF535555FF5C6060FF687070FF768484FF7F97 - 9AFF74A1AEFF5DA1BCFF479FC6FF379DCDFF2899D1FF1F97D2FF1E96D4FF2098 - D5FF229AD6FF249BD7FF259BD7FF229AD6FF2199D6FF1E96D4FF1D96D3FF2197 - D1FF2D9ACFFF3C9CC8FF4F9DBEFF669EB2FF78989FFF778788FF6A7474FF5D63 - 63FF545656FF4E4E4EFF4A4949FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4341 - 41E512121277000000550000004B0000003C0000002800000014000000073F3F - 3F01000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000030000 - 000D0000001E000000330B0A0A543B3939CD494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4B4A - 4AFF505151FF595D5DFF677070FF798889FF7E9EA5FF65A4BCFF409FCAFF2498 - D1FF1E97D5FF269CD8FF2CA0DBFF2EA2DDFF30A3DEFF31A4DFFF32A5E0FF33A6 - E1FF33A6E1FF34A6E1FF34A6E1FF34A6E1FF33A6E1FF33A5E0FF32A5E0FF31A4 - DFFF30A2DDFF2DA1DCFF279DD9FF1F98D6FF1B94D2FF2C99CDFF4E9DBFFF709D - ABFF798C8EFF6A7474FF5C6060FF515252FF4C4B4BFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF484646FC2726269F000000560000004E000000400000002B000000170000 - 0008000000020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000030000000D0000 - 001F0000003513121269444242E9494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4B4BFF525353FF5E63 - 63FF707C7CFF80999CFF6BA5BAFF3A9ECCFF2097D3FF239AD7FF2BA0DBFF2EA2 - DDFF30A4DFFF32A6E1FF34A7E2FF35A9E4FF37AAE5FF37ABE6FF38ACE6FF39AC - E7FF39ADE8FF3AADE8FF3AADE8FF3AADE8FF3AACE7FF39ACE7FF38ACE6FF38AB - E6FF37AAE5FF35A9E3FF33A7E2FF32A5E0FF30A4DFFF2DA1DCFF269CD8FF1B95 - D4FF2697CFFF4D9DBFFF7599A3FF738181FF606767FF535555FF4C4C4CFF4948 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF363434C30707075E00000050000000420000002D0000 - 0018000000090000000200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000030000000D0000001F0000 - 0036201F1F80474545F7494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4B4A4AFF515252FF5F6464FF738080FF80A0 - A6FF57A4C3FF2899D1FF2198D6FF2A9FDBFF2DA2DEFF30A5E0FF32A7E3FF34A9 - E5FF36ABE7FF37ACE8FF39AEE9FF3AAEEAFF3BAFEBFF3CB1ECFF3DB1ECFF3DB1 - ECFF3DB1EDFF3EB2EDFF3EB2EDFF3EB2EDFF3EB1ECFF3EB1ECFF3DB1ECFF3DB0 - ECFF3CB0EBFF3BAEEAFF3AAEE9FF38ACE8FF37ABE6FF34A8E4FF32A6E1FF30A4 - DFFF2CA1DCFF239BD8FF1994D2FF389AC8FF6C9DADFF758587FF616868FF5355 - 55FF4C4B4BFF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF3F3D3DDD0B0B0B6700000051000000440000 - 002F000000190000000903223202000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000030000000C0000001F000000362928 - 2894484646FC494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4848FF4F4F4FFF5B6060FF717C7CFF82A0A5FF51A3C5FF2398 - D2FF249BD8FF2AA0DCFF2DA3E0FF30A6E3FF32A8E5FF35ABE7FF36ACE9FF38AE - EAFF39B0EBFF3BB0ECFF3CB1EDFF3DB2EEFF3DB3EEFF3EB3EFFF3EB3EFFF3FB4 - F0FF3FB4F0FF3FB4F0FF40B4F0FF40B4F0FF40B4F0FF40B4EFFF3FB4EFFF3FB3 - EFFF3EB2EEFF3EB2EEFF3DB2EDFF3CB1ECFF3BB0EBFF39AEEAFF37ADE9FF35AA - E6FF33A8E4FF30A5E1FF2DA2DEFF279DDAFF1A95D3FF3099CAFF6A9CAEFF7483 - 83FF5E6464FF505151FF4A4949FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF444242EA0F0E0E71000000520000 - 00440000002F00000018000000082F3F3F010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000020000000B0000001D000000352A2929974947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4C4B4BFF555858FF687171FF81989AFF5EA6C2FF2498D1FF249BD8FF29A0 - DCFF2CA4E0FF2FA6E3FF31A9E6FF34ABE9FF36AEEAFF38AFECFF39B0EDFF3AB1 - EEFF3BB2EFFF3CB3EFFF3DB3F0FF3DB4F0FF3DB4F1FF3EB5F1FF3EB5F1FF3EB5 - F1FF3EB5F1FF3FB5F1FF3FB5F2FF3FB5F1FF3FB5F2FF3FB5F2FF3FB5F1FF3FB5 - F1FF3FB5F1FF3FB4F0FF3EB4F0FF3EB3EFFF3DB3EFFF3CB2EDFF3BB1ECFF39AF - EBFF37ADEAFF35ABE8FF32A9E5FF2FA6E2FF2CA2DFFF269DDAFF1894D3FF3699 - C7FF7399A4FF6C7777FF585B5BFF4D4C4CFF494848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF454444EF121111740000 - 0052000000430000002D00000017000000072F3F3F0100000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000002F3F3F01000000090000001A000000322B292996494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4A4848FF4F4F - 4FFF5D6262FF778686FF79A8B5FF319CCEFF2098D6FF279EDBFF2AA2DFFF2DA6 - E3FF30A9E7FF32ABEAFF35ADEBFF37AFEDFF38B0EEFF39B1EFFF39B2F0FF39B3 - F0FF3AB3F0FF3BB4F1FF3BB4F1FF3CB5F2FF3CB5F2FF3CB5F2FF3CB5F2FF3CB5 - F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3EB5 - F2FF3EB5F2FF3EB5F1FF3EB5F1FF3DB4F1FF3DB4F1FF3DB3F0FF3CB3EFFF3BB2 - EFFF3AB1EDFF39AFECFF37AEEAFF34ABE8FF31A8E5FF2DA5E2FF2AA1DEFF239B - D9FF1893D1FF519DBDFF768C8FFF616767FF515252FF4A4949FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF474545F71413 - 137C00000051000000420000002B00000014000000062F3F3F01000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00002F3F3F0100000007000000160000002F2B2A2A94494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4B4949FF535454FF666E - 6EFF829A9CFF55A5C6FF1F96D3FF249CDAFF27A0DEFF2AA4E3FF2DA8E6FF30AA - E9FF32ADEBFF34AEEDFF36B0EEFF37B1EFFF38B2F0FF38B2F0FF39B2F1FF39B3 - F1FF39B3F2FF39B4F2FF39B4F2FF39B4F2FF39B4F2FF3AB4F2FF3AB4F2FF3AB4 - F2FF3AB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4 - F2FF3CB4F2FF3CB5F2FF3CB5F2FF3CB5F2FF3CB5F2FF3CB4F1FF3BB4F1FF3BB4 - F0FF3AB3F0FF39B2EFFF39B1EEFF38AFECFF35ADEBFF32AAE8FF2FA7E4FF2BA3 - E0FF289FDCFF1C97D6FF2B98CBFF6F99A7FF6A7575FF555757FF4C4B4BFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4544 - 44EF0F0E0E71000000500000003F000000270000001100000004000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000500000012000000292322227E494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4C4B4BFF565858FF6E7979FF81A5 - ADFF369DCEFF1E97D6FF249EDCFF28A2E1FF2AA5E5FF2DA9E8FF2FACEAFF31AD - ECFF33AFEEFF34B0EFFF35B1F0FF35B1F1FF36B2F1FF36B2F2FF37B2F2FF37B3 - F2FF37B3F2FF37B3F2FF37B3F2FF38B3F2FF38B3F2FF38B3F2FF38B3F2FF38B3 - F2FF38B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3 - F2FF39B4F2FF39B4F2FF39B4F2FF39B4F2FF39B4F2FF39B4F2FF39B4F2FF39B3 - F1FF39B3F1FF39B3F0FF39B2F0FF38B1EFFF37B0EEFF35AEECFF32ACEAFF2FA9 - E7FF2CA5E3FF29A1DEFF229BD9FF1A93D1FF599DB8FF728081FF595D5DFF4C4C - 4CFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF454444EF0C0C0C680000004E0000003B000000220000000D000000030000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00030000000D0000002315141465484646F9494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4C4C4CFF595D5DFF758383FF79AAB9FF2598 - D1FF209AD8FF249FDDFF27A3E2FF29A7E6FF2CAAEAFF2EACECFF30ADEEFF31AF - EFFF32AFF0FF32B0F1FF33B0F1FF33B1F1FF33B1F1FF34B1F1FF34B1F2FF34B1 - F2FF34B1F2FF35B1F2FF35B1F2FF35B1F2FF35B2F2FF35B2F2FF36B2F2FF36B2 - F2FF36B2F2FF36B2F2FF36B2F2FF36B2F2FF37B2F2FF37B2F2FF37B3F2FF37B3 - F2FF37B3F2FF37B3F2FF37B3F2FF38B3F2FF38B3F2FF38B3F2FF38B3F2FF38B3 - F2FF38B3F2FF38B3F2FF38B2F1FF37B2F0FF37B1F0FF36B0EFFF34AEEDFF32AD - EBFF2FAAE9FF2BA6E5FF28A2E0FF249DDCFF1694D3FF469CC2FF778A8DFF5C61 - 61FF4E4E4EFF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF424040E50707075D0000004B000000360000001D0000000A2F3F - 3F01000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000002F3F3F010000 - 00090000001C0D0D0D4B464444ED494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4D4C4CFF5B6060FF7A8A8AFF6BAAC1FF1D95D2FF209A - D9FF239FDEFF26A3E4FF29A7E8FF2BAAEBFF2CABEDFF2EADEEFF2FAFEFFF2FAF - F0FF30AFF0FF30B0F1FF30B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0F1FF32B0 - F1FF32B0F1FF32B1F1FF32B1F1FF32B1F1FF32B1F1FF33B1F1FF33B1F1FF33B1 - F1FF33B1F1FF33B1F1FF33B1F1FF34B1F1FF34B1F1FF34B1F2FF34B1F2FF35B1 - F2FF35B1F2FF35B1F2FF35B1F2FF35B2F2FF35B2F2FF35B2F2FF36B2F2FF36B2 - F2FF36B2F2FF36B2F2FF36B2F2FF36B2F2FF36B1F1FF35B1F0FF34B0F0FF33AF - EEFF31ADECFF2FABEAFF2BA7E7FF28A3E2FF249EDDFF1995D5FF3298C8FF7891 - 95FF5F6565FF4E4E4EFF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF3A3939D003030357000000470000002F000000160000 - 0006000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000050000 - 0015040404313F3D3DD2494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4D4C4CFF5C6161FF7D8D8EFF61A8C5FF1A95D3FF1E9ADAFF22A0 - E0FF24A4E5FF27A7E9FF29AAEBFF2AABEDFF2BADEFFF2CAEEFFF2DAEF0FF2DAF - F1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2FAFF1FF2FB0 - F1FF2FB0F1FF2FB0F1FF2FB0F1FF2FB0F1FF30B0F1FF30B0F1FF30B0F1FF30B0 - F1FF30B0F1FF30B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0 - F1FF32B0F1FF32B0F1FF32B1F1FF32B1F1FF32B1F1FF32B1F1FF33B1F1FF33B1 - F1FF33B1F1FF33B1F1FF33B1F1FF33B1F1FF33B1F1FF33B1F1FF33B0F1FF32B0 - F0FF31AFEFFF30ADEDFF2DABEAFF2AA7E7FF27A4E3FF249FDDFF1A96D7FF2996 - CBFF75939AFF606767FF4E4E4EFF4A4848FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF2E2C2CAE0000005200000041000000270000 - 0010000000030000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000030000000E0000 - 0025302F2FA2494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4C4B4BFF5B5F5FFF7C8D8EFF62AAC6FF1894D3FF1D9ADBFF209FE1FF23A4 - E6FF26A7E9FF28A9EBFF28ABEEFF29ACEFFF29ADF0FF2AADF0FF2AAEF1FF2BAE - F1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2CAEF1FF2CAFF1FF2CAF - F1FF2CAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2EAF - F1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2FAFF1FF2FB0F1FF2FB0 - F1FF2FB0F1FF2FB0F1FF2FB0F1FF2FB0F1FF30B0F1FF30B0F1FF30B0F1FF30B0 - F1FF30B0F1FF30B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0F1FF31AF - F0FF30AFF0FF2FAEEFFF2EADEDFF2CAAEBFF29A8E8FF26A3E3FF229EDEFF1A97 - D7FF2895CBFF75939AFF5F6565FF4E4E4EFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF1B1B1B860000004E000000390000 - 001F0000000A1211110100000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000012111101000000080000001B1A19 - 1966494747FF494747FF494747FF494747FF494747FF494747FF494747FF4C4B - 4BFF585C5CFF798989FF67ABC4FF1894D3FF1B9ADAFF1E9EE0FF21A3E5FF24A7 - E9FF25A8ECFF27AAEEFF27ABEFFF28ACF0FF28ADF1FF28ADF1FF28ADF1FF28AD - F1FF28ADF1FF28ADF1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29AD - F1FF29ADF1FF2AADF1FF2AAEF1FF2AAEF1FF2AAEF1FF2AAEF1FF2AAEF1FF2BAE - F1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2CAEF1FF2CAF - F1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAF - F1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2FAFF1FF2FAFF1FF2EAF - F1FF2EAFF0FF2EAEF0FF2DAEEFFF2CACEDFF2AAAECFF28A7E9FF24A2E4FF219E - DEFF1997D7FF2896CBFF789195FF5C6161FF4C4C4CFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF464444F20A0A0A62000000480000 - 0030000000150000000500000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000400000012090909344543 - 43E6494747FF494747FF494747FF494747FF494747FF494747FF4B4949FF5558 - 58FF748181FF73ADC0FF1793D2FF1A99DAFF1C9EE0FF1FA2E5FF22A6E9FF23A8 - ECFF24A9EEFF25ABEFFF25ABF0FF25ACF1FF26ACF1FF26ACF1FF26ACF1FF27AC - F1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF28AD - F1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28AD - F1FF28ADF1FF28ADF1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29AD - F1FF2AADF1FF2AADF1FF2AAEF1FF2AAEF1FF2AAEF1FF2AAEF1FF2AAEF1FF2BAE - F1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2CAEF1FF2CAEF1FF2CAF - F1FF2CAFF1FF2CAEF0FF2BADF0FF2BADEFFF2AABEDFF28AAEBFF26A6E8FF23A2 - E4FF1F9DDEFF1796D6FF3298C8FF768A8DFF595D5DFF4C4B4BFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF373535C8000000510000 - 0040000000240000000D00000002000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000121111010000000A0000001F313030A64947 - 47FF494747FF494747FF494747FF494747FF494747FF4A4848FF525353FF6D78 - 78FF80ACB7FF1F96D1FF1897D9FF1A9DDFFF1CA1E5FF1FA5E9FF21A7ECFF22A9 - EEFF22AAEFFF23AAF0FF23ABF0FF23ABF0FF23ABF0FF24ABF0FF24ABF0FF24AB - F0FF24ABF0FF24ABF0FF24ABF0FF25ABF0FF25ABF0FF25ACF1FF25ACF1FF25AC - F1FF25ACF1FF25ACF1FF26ACF1FF26ACF1FF26ACF1FF26ACF1FF27ACF1FF27AC - F1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF28AD - F1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF3F83 - A5FF3B8FBAFF2BA9E9FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29AD - F1FF2AADF1FF29ADF1FF29ADF0FF29ADF0FF29ACEFFF28ABEDFF27A8EBFF24A6 - E8FF21A1E3FF1D9CDDFF1594D5FF469CC2FF728081FF555757FF4A4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF1F1E1E8D0000 - 004C000000350000001900000007000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000040000001417171754484646FC4947 - 47FF494747FF494747FF494747FF494747FF494747FF4F4F4FFF656C6CFF85A5 - AAFF299AD0FF1696D7FF189BDEFF1AA0E4FF1DA4E9FF1EA6EBFF1FA8EDFF20A9 - EEFF20A9EFFF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AA - F0FF22AAF0FF22ABF0FF22ABF0FF22ABF0FF22ABF0FF22ABF0FF23ABF0FF23AB - F0FF23ABF0FF23ABF0FF23ABF0FF23ABF0FF23ABF0FF24ABF0FF24ABF0FF24AB - F0FF24ABF0FF24ABF0FF24ABF0FF24ABF0FF25ABF0FF25ACF1FF25ACF1FF25AC - F1FF25ACF1FF25ACF1FF26ACF1FF26ACF1FF26ACF1FF26ACF1FF2AA3E1FF5658 - 5AFF5B5959FF595D60FF497790FF3596C8FF28ABEEFF27ACF1FF27ACF1FF28AD - F1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ACF0FF27ABEFFF26A9EDFF24A8 - EBFF21A4E7FF1FA0E2FF1B9ADBFF1292D2FF599CB8FF6A7575FF515252FF4948 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF454343EC0707 - 075B00000043000000270000000F000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000010000000B00000021413F3FCC494747FF4947 - 47FF494747FF494747FF494747FF494747FF4C4B4BFF5C6161FF839798FF46A3 - CCFF1494D5FF169ADCFF189EE2FF1BA2E7FF1CA5EAFF1DA7EDFF1DA8EEFF1DA8 - EFFF1FA5E9FF2E3B42FF3E3D3DFF4C4A4AFF535252FF565454FF565454FF5654 - 54FF565454FF565454FF555454FF3B7898FF20A9F0FF20AAF0FF20AAF0FF20AA - F0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF22AA - F0FF22AAF0FF22ABF0FF22ABF0FF22ABF0FF22ABF0FF22ABF0FF23ABF0FF23AB - F0FF23ABF0FF23ABF0FF23ABF0FF23ABF0FF23ABF0FF24ABF0FF3A81A5FF5856 - 56FF595858FF595858FF595858FF5A5858FF546169FF427E9DFF2F9CD4FF25AC - F1FF25ACF1FF25ACF1FF26ACF1FF26ACF1FF25ACF1FF25ABF0FF25AAEFFF24A9 - EDFF22A6EAFF1FA3E6FF1C9EE0FF1999DAFF1892D0FF6F99A7FF616767FF4D4C - 4CFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF2E2D - 2DB00000004D000000360000001A000000070000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000004000000141F1E1E6D494747FF494747FF4947 - 47FF494747FF494747FF494747FF4A4848FF545656FF758282FF6CADC4FF1292 - D2FF1597DAFF169DE1FF18A1E7FF1AA4EAFF1AA6EDFF1BA7EEFF1BA7EFFF1CA8 - F0FF1CA8F0FF2277A2FF343333FF434242FF4F4D4DFF535151FF545353FF5453 - 53FF545353FF545353FF545353FF515253FF249CD9FF1EA9F0FF1EA9F0FF1EA9 - F0FF1EA9F0FF1EA9F0FF1EA9F0FF1EA9F0FF1FA9F0FF1FA9F0FF1FA9F0FF1FA9 - F0FF1FA9F0FF20A9F0FF20A9F0FF20A9F0FF20AAF0FF20AAF0FF20AAF0FF20AA - F0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF22A9EDFF4D5A61FF5755 - 55FF585656FF585656FF585656FF585656FF585656FF585656FF585757FF4F67 - 73FF3B86ACFF28A3E1FF23ABF0FF23ABF0FF23ABF0FF23AAF0FF23AAEFFF22A9 - EEFF22A7ECFF1FA5E9FF1CA1E5FF1A9CDEFF1696D7FF2A97CBFF768C8FFF585B - 5BFF4A4949FF494747FF494747FF494747FF494747FF494747FF494747FF4846 - 46FA0C0C0C6600000043000000270000000E0000000200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000A05050523454343DF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4E4E4EFF666E6EFF87ABB1FF2097D1FF1395 - D8FF159BDFFF169FE5FF17A3E9FF18A4ECFF19A6EEFF19A6EFFF19A7F0FF1AA7 - F0FF1AA8F0FF1AA6EDFF29414DFF393838FF474646FF504E4EFF525050FF5351 - 51FF535151FF535151FF535151FF535151FF3E6B82FF1BA8F0FF1CA8F0FF1CA8 - F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1DA8F0FF1DA9 - F0FF1DA9F0FF1DA9F0FF1DA9F0FF1DA9F0FF1DA9F0FF1EA9F0FF1EA9F0FF1EA9 - F0FF1EA9F0FF1EA9F0FF1EA9F0FF1EA9F0FF1EA9F0FF2D8DBFFF535151FF5654 - 54FF565454FF565454FF565454FF565454FF575555FF575555FF575555FF5755 - 55FF575555FF565657FF486D81FF358CB8FF23A7EBFF21AAF0FF21AAEFFF21A9 - EFFF20A8EDFF1FA6EBFF1DA3E9FF1A9FE3FF189ADCFF1292D4FF519DBDFF6C77 - 77FF505151FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF353333BF0000004C00000034000000170000000500000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000030000001127252578494747FF494747FF494747FF4947 - 47FF494747FF494747FF4B4949FF595D5DFF819494FF48A4CDFF1192D5FF1398 - DCFF149DE3FF16A1E8FF17A3EBFF17A5EEFF17A6EFFF17A7F0FF17A7F0FF17A7 - F0FF18A7F0FF18A7F0FF1C82B7FF2F2E2EFF3F3D3DFF4B4949FF504E4EFF514F - 4FFF525050FF525050FF525050FF525050FF504E4EFF2690C6FF19A7F0FF19A7 - F0FF1AA8F0FF1AA8F0FF1AA8F0FF1AA8F0FF1AA8F0FF1AA8F0FF1AA8F0FF1BA8 - F0FF1BA8F0FF1BA8F0FF1BA8F0FF1BA8F0FF1BA8F0FF1BA8F0FF1BA8F0FF1CA8 - F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF40667AFF535151FF5452 - 52FF545353FF545353FF545353FF545353FF545353FF555353FF555353FF5553 - 53FF555353FF555353FF555353FF555353FF53575AFF3F728CFF2A8FC2FF1EA9 - EFFF1EA8EEFF1EA7EDFF1DA5EAFF1AA2E6FF189DE1FF1597D9FF1391D0FF7399 - A4FF5E6464FF4C4B4BFF494747FF494747FF494747FF494747FF494747FF4947 - 47FF484646FC0E0E0E6500000040000000230000000B12111101000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000070000001B444242D8494747FF494747FF494747FF4947 - 47FF494747FF494747FF505151FF6D7878FF7CAFBEFF1090D1FF1196DAFF129B - E1FF149FE7FF15A2EAFF15A4EDFF16A5EFFF16A5EFFF16A6F0FF16A6F0FF17A6 - F0FF17A6F0FF17A6F0FF17A6F0FF23495CFF343333FF434141FF4C4A4AFF4F4D - 4DFF504E4EFF504E4EFF504E4EFF504E4EFF504E4EFF435C6AFF18A5EDFF18A7 - F0FF18A7F0FF18A7F0FF18A7F0FF18A7F0FF18A7F0FF18A7F0FF19A7F0FF19A7 - F0FF19A7F0FF19A7F0FF19A7F0FF19A7F0FF19A7F0FF19A7F0FF1AA7F0FF1AA8 - F0FF1AA8F0FF1AA8F0FF1AA8F0FF1AA8F0FF209BDAFF4E4C4CFF535151FF5351 - 51FF535151FF535151FF535151FF535151FF535151FF535151FF535252FF5452 - 52FF545252FF545252FF545252FF545252FF535252FF4F4D4DFF434141FF2E4E - 5EFF1CA7EFFF1CA7EEFF1BA6ECFF1AA3E9FF179FE4FF169ADDFF1294D6FF3699 - C8FF748383FF535555FF494848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF2F2E2EB5000000490000002F0000001300000003000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000010000000D1F1E1E64494747FF494747FF494747FF494747FF4947 - 47FF494747FF4B4A4AFF5C6161FF879D9EFF359ECFFF0F92D6FF1098DDFF119D - E4FF13A0E9FF13A2EBFF14A4EDFF14A5EEFF14A5EFFF14A5EFFF15A6EFFF15A6 - EFFF15A6EFFF15A6EFFF15A6EFFF188DC9FF2A2B2CFF3A3838FF474545FF4D4B - 4BFF4F4D4DFF4F4D4DFF4F4D4DFF4F4D4DFF4F4D4DFF4E4C4CFF2A81AEFF16A6 - F0FF17A6F0FF17A6F0FF17A6F0FF17A6F0FF17A6F0FF17A6F0FF17A6F0FF17A6 - F0FF17A6F0FF17A6F0FF17A7F0FF17A7F0FF17A7F0FF17A7F0FF17A7F0FF18A7 - F0FF18A7F0FF18A7F0FF18A7F0FF18A7F0FF337496FF504E4EFF514F4FFF5250 - 50FF525050FF525050FF525050FF525050FF525050FF525050FF525050FF5250 - 50FF525050FF525050FF525050FF525050FF504E4EFF494747FF3A3939FF246C - 91FF1AA8F0FF1AA7EFFF1AA6EEFF19A4EBFF17A1E7FF159DE1FF1397DAFF0E90 - D2FF699CAEFF616868FF4C4C4CFF494747FF494747FF494747FF494747FF4947 - 47FF494747FF474545F4070707580000003A0000001D00000008000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000400000015413F3FC3494747FF494747FF494747FF494747FF4947 - 47FF494747FF505151FF6F7A7AFF76AFC2FF0E8FD1FF0F95DAFF0F9AE1FF119E - E7FF12A1EAFF12A3EDFF13A4EEFF13A5EFFF13A5EFFF13A5EFFF13A5EFFF13A5 - EFFF13A5EFFF13A5EFFF13A5EFFF14A5EFFF1E5470FF302E2EFF3F3E3EFF4947 - 47FF4D4B4BFF4D4B4BFF4D4B4BFF4D4B4BFF4D4B4BFF4D4B4BFF465258FF189F - E4FF15A6EFFF15A6EFFF15A6EFFF15A6EFFF15A6EFFF15A6EFFF16A6F0FF16A6 - F0FF16A6F0FF16A6F0FF16A6F0FF16A6F0FF16A6F0FF16A6F0FF16A6F0FF17A6 - F0FF17A6F0FF17A6F0FF17A6F0FF18A3EAFF465158FF4F4D4DFF4F4D4DFF4F4D - 4DFF504E4EFF504E4EFF504E4EFF4F4D4DFF4E4C4CFF4E4C4CFF4E4C4CFF504E - 4EFF514F4FFF514F4FFF514F4FFF514F4FFF4D4B4BFF414040FF323334FF1A9B - DDFF19A7F0FF18A6EFFF18A6EEFF17A5EDFF17A2E9FF159EE5FF1399DFFF1093 - D6FF2F98CAFF758587FF535555FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF2423239900000044000000280000000E000000020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000815141439494747FF494747FF494747FF494747FF494747FF4947 - 47FF4B4949FF5B5F5FFF869D9DFF389FCFFF0D92D6FF0E98DEFF0F9CE4FF10A0 - E8FF10A2ECFF11A3EDFF11A3EEFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF12A4 - EFFF12A4EFFF12A4EFFF12A4EFFF12A4EFFF1398DBFF26292BFF353434FF4342 - 42FF4B4949FF4D4B4BFF4D4B4BFF4D4B4BFF4D4B4BFF4D4B4BFF4C4A4AFF3073 - 95FF13A5EFFF13A5EFFF13A5EFFF13A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5 - EFFF14A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5EFFF15A6EFFF15A6 - EFFF15A6EFFF15A6EFFF15A6EFFF2684B4FF4B4A4AFF4E4C4CFF4E4C4CFF4F4D - 4DFF4F4D4DFF4F4D4DFF4E4C4CFF4B4A4AFF474545FF444242FF454343FF4948 - 48FF4D4B4BFF4E4C4CFF4F4D4DFF4E4C4CFF484646FF393838FF25536BFF17A6 - F0FF17A6F0FF17A6F0FF17A5EFFF16A4EEFF16A3EBFF14A0E8FF129BE2FF1096 - DAFF0E90D1FF6C9DADFF606767FF4C4B4BFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF413F3FDD0000004C0000003400000017000000050000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00010000000D2F2E2E93494747FF494747FF494747FF494747FF494747FF4947 - 47FF4F4F4FFF6B7676FF7FB1BFFF0D8FD1FF0E94D9FF0E99E1FF0F9DE7FF0FA0 - EAFF10A2EDFF10A3EEFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF11A4 - EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF196187FF2C2B2BFF3B3A - 3AFF464444FF4B4949FF4B4949FF4B4949FF4B4949FF4B4949FF4B4949FF474A - 4CFF1998D9FF12A4EFFF12A4EFFF12A4EFFF12A4EFFF12A4EFFF12A4EFFF13A5 - EFFF13A5EFFF13A5EFFF13A5EFFF13A5EFFF13A5EFFF13A5EFFF13A5EFFF13A5 - EFFF13A5EFFF13A5EFFF13A5EFFF3A5D6FFF4C4A4AFF4D4B4BFF4D4B4BFF4D4B - 4BFF4D4B4BFF4D4B4BFF4C4A4AFF454343FF3B3939FF343232FF353434FF3B3A - 3AFF413F3FFF464444FF4A4848FF494747FF403F3FFF313030FF1A81B6FF15A6 - EFFF15A6EFFF15A6EFFF15A6EFFF15A5EEFF14A3ECFF13A1E9FF119DE4FF0F98 - DDFF0E92D6FF379AC8FF738081FF515252FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF1211116A00000040000000230000000B1211 - 1101000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000300000014464444E1494747FF494747FF494747FF494747FF494747FF4A48 - 48FF575A5AFF819393FF46A4CEFF0C91D5FF0D96DDFF0D9BE4FF0F9FE8FF0FA1 - ECFF0FA2EDFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF10A4EFFF10A4 - EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF109DE5FF222F36FF3231 - 31FF403F3FFF484646FF4A4848FF4A4848FF4A4848FF4A4848FF4A4848FF4A48 - 48FF34667FFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4 - EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF12A4 - EFFF12A4EFFF12A4EFFF1A94D3FF484646FF4C4A4AFF4C4A4AFF4C4A4AFF4C4A - 4AFF4C4A4AFF4C4A4AFF484747FF3E3D3DFF2F2E2EFF252424FF242323FF2928 - 28FF302E2EFF363535FF3D3B3BFF3E3C3CFF363535FF273841FF14A5EFFF14A5 - EFFF14A5EFFF14A5EFFF13A5EFFF13A4EEFF12A3EDFF12A1EAFF109EE6FF0F9A - E0FF0E94D9FF0E8FD0FF7499A3FF5C6161FF4A4949FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF2E2D2DB20000004900000030000000140000 - 0004000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00061C1B1B44494747FF494747FF494747FF494747FF494747FF494747FF4C4B - 4BFF636B6BFF8AADB4FF1692D0FF0D93D8FF0D98E0FF0D9DE6FF0E9FEAFF0EA1 - EDFF0FA2EEFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF156D99FF2827 - 27FF393737FF444242FF494747FF4A4848FF4A4848FF4A4848FF4A4848FF4A48 - 48FF484646FF1C8DC6FF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4 - EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4 - EFFF10A4EFFF11A4EFFF2C6E90FF494747FF4B4949FF4B4949FF4B4949FF4B49 - 49FF4B4949FF4A4848FF444242FF363434FF224558FF185A7BFF1A252AFF1D1D - 1DFF212020FF252525FF2B2A2AFF2D2B2BFF282828FF1A678EFF12A4EFFF12A4 - EFFF12A4EFFF12A4EFFF12A4EFFF12A4EFFF11A3EDFF10A1EBFF109FE8FF0E9B - E3FF0E96DCFF0C91D4FF4D9DBFFF6A7474FF4E4E4EFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF474545F4050505550000003C0000001F0000 - 0009000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000A302F2F91494747FF494747FF494747FF494747FF494747FF494747FF5152 - 52FF738080FF69ADC7FF0C90D3FF0D95DBFF0D9AE3FF0E9EE8FF0EA0EBFF0EA2 - EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0FA3EFFF0FA3EFFF0FA0EBFF1E35 - 40FF2F2E2EFF3F3D3DFF474545FF4A4848FF4A4848FF4A4848FF4A4848FF4A48 - 48FF494747FF3B5767FF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF10A4EFFF11A0E9FF404A50FF494747FF4A4848FF4A4848FF4A4848FF4A48 - 48FF4A4848FF474646FF3F3D3DFF2F2E2EFF167BAFFF10A4EFFF109FE8FF1374 - A4FF17394AFF1B1A1AFF1D1D1DFF1F1E1EFF1E2123FF1299DEFF11A4EFFF11A4 - EFFF11A4EFFF11A4EFFF10A4EFFF10A4EFFF10A3EEFF0FA2EDFF0F9FE9FF0E9C - E6FF0D98DFFF0C93D7FF2195CEFF788C8EFF545656FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF24232399000000460000002B0000 - 0011000000030000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000010000 - 000E454343CE494747FF494747FF494747FF494747FF494747FF4A4848FF585C - 5CFF85999AFF3BA1D0FF0C92D6FF0D97DEFF0D9CE5FF0E9FE9FF0EA1ECFF0EA2 - EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF127A - B0FF262424FF363434FF434141FF484646FF494747FF494747FF494747FF4947 - 47FF494747FF484646FF237FAEFF0EA3EFFF0EA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF2080B2FF474545FF4A4848FF4A4848FF4A4848FF4A4848FF4A48 - 48FF494747FF454343FF393737FF26333AFF0FA1EBFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF118BC9FF155272FF182025FF154761FF10A4EFFF10A4EFFF10A4 - EFFF10A4EFFF10A4EFFF10A4EFFF0FA3EFFF0FA3EEFF0FA2EDFF0EA0EBFF0E9E - E7FF0D99E1FF0D95DAFF0C8FD1FF709DABFF5E6363FF4B4949FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF424141E20000004E000000370000 - 001B000000070000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000030E0D - 0D21494747FF494747FF494747FF494747FF494747FF494747FF4C4A4AFF636A - 6AFF8DAFB4FF1592D0FF0D94D8FF0D99E0FF0D9DE6FF0EA0EAFF0EA2EDFF0EA2 - EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF1B4053FF2D2C2CFF3C3A3AFF454343FF484646FF494747FF494747FF4947 - 47FF494747FF484646FF404D54FF109EE6FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0FA3EFFF345D72FF494747FF4A4848FF4A4848FF4A4848FF4A4848FF4A48 - 48FF484646FF413F3FFF323030FF1A5D7FFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0FA3EFFF0F9EE8FF0F96DAFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0EA2EEFF0EA1ECFF0E9F - E8FF0D9BE4FF0D96DCFF0C91D4FF4E9DBFFF6A7474FF4D4D4DFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF1A19197E000000430000 - 00270000000E1211110200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000042120 - 205A494747FF494747FF494747FF494747FF494747FF494747FF4F4F4FFF6F7B - 7BFF72B0C4FF0C8FD2FF0D95DBFF0D9AE3FF0E9EE8FF0EA0EBFF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF1089C7FF242323FF343333FF413F3FFF474545FF494747FF494747FF4947 - 47FF494747FF494747FF484646FF297298FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF1496D8FF444242FF484646FF494747FF494747FF494747FF494747FF4947 - 47FF454343FF3B3939FF2A2828FF118ECEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1EDFF0E9F - E9FF0D9CE6FF0D98DFFF0C92D7FF2897CDFF778788FF525353FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF383636C70000004C0000 - 0033000000170000000500000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000072F2E - 2E8E494747FF494747FF494747FF494747FF494747FF494747FF545656FF7D8E - 8EFF4FA8CEFF0C91D5FF0D97DDFF0D9BE4FF0E9FE9FF0EA1ECFF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF19506CFF2B2A2AFF3B3939FF454343FF484646FF494747FF4947 - 47FF494747FF494747FF494747FF444749FF1398DCFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF286F94FF474545FF494747FF494747FF494747FF494747FF494747FF4846 - 46FF424040FF343333FF1F3F50FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EDFF0EA0 - EBFF0D9DE7FF0D99E1FF0D94D9FF0F8FD0FF78989FFF595C5CFF494848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF484646FC0E0E0E650000 - 003F000000220000000B12111101000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000094442 - 42BA494747FF494747FF494747FF494747FF494747FF4A4848FF5B5F5FFF8BA1 - A2FF2D9CD0FF0C92D7FF0D98DFFF0D9CE6FF0E9FEAFF0EA1EDFF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0F94D7FF222628FF323131FF403E3EFF474545FF494747FF4947 - 47FF494747FF494747FF494747FF484646FF316580FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - ECFF3D4C54FF484646FF494747FF494747FF494747FF494747FF494747FF4644 - 44FF3D3C3CFF2E2D2DFF16709EFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA0 - EBFF0E9EE8FF0D9AE3FF0D95DBFF0C90D3FF679EB2FF616767FF4B4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF2D2B2BAF0000 - 00490000002F0000001300000004000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000000000B4745 - 45E2494747FF494747FF494747FF494747FF494747FF4B4A4AFF626969FF8FAF - B3FF1491D0FF0D94D9FF0D99E0FF0D9DE7FF0EA0EBFF0EA2EDFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF165E83FF292828FF393838FF444242FF484646FF4947 - 47FF494747FF494747FF494747FF494747FF474545FF198DC9FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1C86 - BDFF454343FF494747FF494747FF494747FF494747FF494747FF484646FF4442 - 42FF383737FF262C30FF0E9CE5FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1 - ECFF0E9FE9FF0D9BE4FF0D96DCFF0C91D5FF4E9DBFFF697272FF4C4C4CFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF464444F20505 - 05550000003B0000001E00000009000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F010E0D0D184947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4C4CFF697272FF85B3 - BEFF0C8ED1FF0D95DAFF0D9AE2FF0E9EE7FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0E9AE1FF202B31FF302F2FFF3F3D3DFF474545FF4947 - 47FF494747FF494747FF494747FF494747FF484646FF395869FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF3160 - 79FF474545FF494747FF494747FF494747FF494747FF494747FF474545FF403F - 3FFF323131FF1B536FFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1 - EDFF0E9FE9FF0D9CE5FF0D97DEFF0C92D6FF3B9BC8FF717E7EFF4F4F4FFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF2322 - 2297000000460000002A00000010000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F011F1E1E374947 - 47FF494747FF494747FF494747FF494747FF494747FF4F4F4FFF707D7DFF71B0 - C6FF0C90D3FF0D95DBFF0D9AE3FF0E9EE8FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF146A96FF282626FF383636FF434242FF4846 - 46FF494747FF494747FF494747FF494747FF494747FF474545FF2180B0FF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF119AE1FF4245 - 47FF484646FF494747FF494747FF494747FF494747FF494747FF464444FF3C3A - 3AFF2B2A2AFF1284BEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EDFF0E9FEAFF0D9DE6FF0D98DFFF0D93D7FF2898CEFF78898AFF525353FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF413F - 3FDD0000004E000000370000001A000000070000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01222121514947 - 47FF494747FF494747FF494747FF494747FF494747FF515252FF788686FF5FAD - CCFF0C90D4FF0D97DDFF0D9BE4FF0E9FE9FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA0EBFF1E323DFF2F2E2EFF3E3C3CFF4644 - 44FF494747FF494747FF494747FF494747FF494747FF484646FF404E56FF0F9F - E9FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF2378A4FF4644 - 44FF494747FF494747FF494747FF494747FF494747FF484646FF434141FF3634 - 34FF223844FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EDFF0EA0EBFF0D9DE7FF0D99E0FF0D94D9FF1792CFFF7B9295FF555858FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1817177800000043000000260000000D1211110100000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01232222674947 - 47FF494747FF494747FF494747FF494747FF494747FF545656FF7E8F8FFF4FA9 - CFFF0C91D6FF0D97DEFF0D9CE4FF0E9FE9FF0EA1EDFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1278ADFF262525FF363434FF4240 - 40FF484646FF494747FF494747FF494747FF494747FF494747FF484646FF2874 - 9BFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF375463FF4846 - 46FF494747FF494747FF494747FF494747FF494747FF474545FF3E3D3DFF2F2E - 2EFF17668EFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA0EBFF0D9EE7FF0D9AE1FF0D94DAFF0E8FD0FF7A99A0FF585C5CFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF373636C40000004C00000033000000170000000500000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F012423237E4947 - 47FF494747FF494747FF494747FF494747FF494747FF565959FF849696FF43A5 - D1FF0C92D6FF0D97DEFF0D9CE5FF0E9FEAFF0EA1EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1B4053FF2D2C2CFF3C3B - 3BFF464444FF484646FF494747FF494747FF494747FF494747FF494747FF4349 - 4CFF1399DEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1592D2FF444242FF4846 - 46FF494747FF494747FF494747FF494747FF484646FF444343FF393838FF2829 - 2AFF0F96DBFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA0EBFF0E9EE8FF0D9AE2FF0D95DAFF0C8ED1FF769DA8FF5C6060FF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF484646FC0B0B0B620000003F000000220000000B12111101000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323854947 - 47FF494747FF494747FF494747FF494747FF494747FF585B5BFF889C9CFF38A0 - D0FF0C92D7FF0D98DFFF0D9CE6FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1187C3FF242323FF3433 - 33FF413F3FFF484646FF494747FF494747FF494747FF494747FF494747FF4846 - 46FF306783FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF276E93FF464444FF4947 - 47FF494747FF494747FF494747FF494747FF484646FF413F3FFF333232FF1E49 - 5FFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE2FF0D95DBFF0C8FD2FF6F9EADFF5E6363FF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF2C2B2BAC000000480000002E0000001300000003000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323854947 - 47FF494747FF494747FF494747FF494747FF494747FF5A5D5DFF8BA0A0FF329E - D1FF0C92D7FF0D98DFFF0D9DE6FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF194E69FF2B2A - 2AFF3B3939FF454343FF484646FF494747FF494747FF494747FF494747FF4947 - 47FF474545FF188FCBFF0EA3EFFF0EA3EFFF0EA3EFFF3A4D58FF484646FF4947 - 47FF494747FF494747FF494747FF494747FF464444FF3D3B3BFF2D2B2BFF137A - AEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE3FF0D95DBFF0C8FD2FF6B9FB1FF5F6565FF4A49 - 49FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF464444EF050505550000003A0000001D00000008000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323844947 - 47FF494747FF494747FF494747FF494747FF4A4848FF5A5E5EFF8CA2A2FF309D - D0FF0C92D7FF0D98DFFF0D9DE6FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0F92D4FF2226 - 28FF323131FF403F3FFF474545FF494747FF494747FF494747FF494747FF4947 - 47FF484646FF385A6BFF0EA3EFFF0EA3EFFF1594D6FF444242FF484646FF4947 - 47FF494747FF494747FF494747FF484646FF444242FF373535FF243138FF0EA1 - EBFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE3FF0D95DBFF0C8FD2FF6B9FB2FF606767FF4A49 - 49FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF1F1E1E91000000450000002A00000010000000020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323844947 - 47FF494747FF494747FF494747FF494747FF4A4848FF5A5E5EFF8CA1A1FF319D - D0FF0C92D7FF0D98DFFF0D9DE6FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF165C - 7FFF2A2828FF393838FF444242FF484646FF494747FF494747FF494747FF4947 - 47FF494747FF474545FF2182B3FF0EA3EFFF2677A0FF464444FF494747FF4947 - 47FF494747FF494747FF494747FF474545FF403E3EFF312F2FFF195C7EFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE3FF0D95DBFF0C8FD2FF6B9FB2FF606767FF4A49 - 49FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF403E3EDA0000004E000000360000001A000000070000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323844947 - 47FF494747FF494747FF494747FF494747FF494747FF5A5D5DFF8B9F9FFF349F - D1FF0C92D7FF0D98DFFF0D9DE6FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0E9A - E1FF20292DFF312F2FFF3F3D3DFF474545FF494747FF494747FF494747FF4947 - 47FF494747FF484646FF40535DFF0FA0E9FF395D6FFF484646FF494747FF4947 - 47FF494747FF494747FF494747FF454343FF3B3939FF2A2828FF108ECEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE3FF0D95DBFF0C8FD2FF6E9FB0FF5F6565FF4A49 - 49FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF1616167600000042000000260000000D1211 - 1101000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323834947 - 47FF494747FF494747FF494747FF494747FF494747FF585B5BFF879B9BFF3EA3 - D1FF0C92D6FF0D98DFFF0D9CE5FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF156893FF282626FF383636FF434242FF484646FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF2C7398FF484849FF494747FF494747FF4947 - 47FF494747FF494747FF484646FF424040FF343333FF1F3F50FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE2FF0D95DBFF0C8ED1FF739FACFF5D6363FF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF353333C20000004B00000032000000160000 - 0005000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000002423237B4947 - 47FF494747FF494747FF494747FF494747FF494747FF565858FF839595FF49A7 - D0FF0C92D6FF0D97DEFF0D9CE5FF0E9FE9FF0EA1EDFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA0EBFF1E323DFF2F2E2EFF3E3C3CFF464444FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF464444FF3D3C3CFF2E2D2DFF16709EFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA0EBFF0E9EE7FF0D9AE1FF0D95DAFF0D8ED1FF7A9EA6FF5B6060FF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF484646FA0B0B0B620000003E000000210000 - 000A121111010000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000242323644947 - 47FF494747FF494747FF494747FF494747FF494747FF535555FF7D8E8EFF57AC - CFFF0C91D5FF0D97DDFF0D9CE4FF0E9FE9FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF1577AAFF2B2A2AFF3D3C3CFF4C4A4AFF525050FF545252FF5553 - 53FF565454FF565454FF575555FF565454FF555454FF555353FF545252FF5250 - 50FF514F4FFF4D4C4CFF474545FF393737FF262C30FF0E9CE5FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EDFF0EA0EBFF0D9EE7FF0D99E1FF0D94D9FF1291D0FF7D999EFF585C5CFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF2A2929A7000000480000002E0000 - 0012000000030000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000002322224C4947 - 47FF494747FF494747FF494747FF494747FF494747FF515252FF778585FF69B0 - CBFF0C90D4FF0D96DCFF0D9BE3FF0E9EE8FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0FA3EFFF15A5EFFF1CA8 - F0FF20AAF0FF23ABF0FF304F5FFF403F3FFF4E4C4CFF575555FF595757FF5957 - 57FF595757FF595757FF595757FF595757FF595757FF595757FF595757FF5957 - 57FF595757FF585656FF525050FF434242FF2B5E79FF18A6EFFF12A4EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EDFF0EA0EAFF0D9DE6FF0D98E0FF0D93D8FF1F95CFFF7D9293FF555757FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF464444EF030303520000003A0000 - 001D000000080000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000222121334947 - 47FF494747FF494747FF494747FF494747FF494747FF4F4E4EFF6F7B7BFF7DB5 - C5FF0C8FD2FF0D95DBFF0D9AE2FF0E9EE8FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF15A5EFFF1FA9F0FF26ACF0FF28ACF1FF28AC - F1FF28ACF1FF28ACF1FF2A92C7FF3C3B3BFF4A4949FF565454FF5C5A5AFF5D5B - 5BFF5D5B5BFF5D5B5BFF5D5B5BFF5D5B5BFF5D5B5BFF5D5B5BFF5D5B5BFF5D5B - 5BFF5D5B5BFF5A5858FF514F4FFF424141FF2B91C5FF28ACF1FF28ACF1FF23AB - F0FF1AA7EFFF11A4EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - EDFF0E9FEAFF0D9CE6FF0D98DFFF0C92D7FF339BCDFF778787FF515353FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF1E1D1D8C000000450000 - 00290000000F0000000200000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000001010100F4947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4B4BFF677171FF8EB6 - BEFF0E8FD1FF0D94DAFF0D99E1FF0D9EE7FF0EA0EBFF0EA2EDFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0FA3EFFF1AA7EFFF27ACF0FF2CAEF1FF2CAEF1FF2CAEF1FF2CAEF1FF2CAE - F1FF2CAEF1FF2CAEF1FF2CAEF1FF366279FF464545FF545252FF5C5B5BFF5F5D - 5DFF605E5EFF605E5EFF605E5EFF605E5EFF605E5EFF605E5EFF605E5EFF605E - 5EFF5F5D5DFF5A5959FF4F4E4EFF3E515BFF2CAEF1FF2CAEF1FF2CAEF1FF2CAE - F1FF2CAEF1FF2AAEF1FF21AAF0FF14A5EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1 - ECFF0E9FE9FF0D9CE5FF0D97DDFF0C91D6FF459FC6FF707C7CFF4F4F4FFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF3F3D3DD70000004D0000 - 0036000000190000000600000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000014846 - 46E8494747FF494747FF494747FF494747FF494747FF4B4949FF606767FF93AF - B1FF1F95D0FF0D93D8FF0D98E0FF0D9DE6FF0EA0EAFF0EA2EDFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF19A7 - EFFF2AADF0FF30B0F1FF30B0F1FF30B0F1FF30B0F1FF30B0F1FF30B0F1FF30B0 - F1FF30B0F1FF30B0F1FF30B0F1FF319FD7FF414547FF4F4E4EFF5B5A5AFF615F - 5FFF626161FF626161FF626161FF626161FF626161FF626161FF626161FF6261 - 61FF615F5FFF5A5858FF4D4B4BFF387B9EFF30B0F1FF30B0F1FF30B0F1FF30B0 - F1FF30B0F1FF30B0F1FF30B0F1FF2EAFF1FF23AAF0FF12A4EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1 - ECFF0E9EE8FF0D9BE3FF0D96DCFF0C90D4FF5DA1BCFF677070FF4C4B4BFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF141414720000 - 0041000000250000000D12111101000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000004745 - 45B9494747FF494747FF494747FF494747FF494747FF494848FF595D5DFF899E - 9EFF3EA3D0FF0C92D6FF0D97DEFF0D9CE5FF0E9FE9FF0EA1ECFF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF13A5EFFF29ADF1FF35B1 - F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF35B1 - F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF3C7491FF4C4B4BFF595858FF6261 - 61FF666464FF666464FF666464FF666464FF666464FF666464FF666464FF6664 - 64FF626161FF595858FF4B4C4CFF36A7E1FF35B1F2FF35B1F2FF35B1F2FF35B1 - F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF31B0F1FF1DA9F0FF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EDFF0EA0 - EBFF0D9EE7FF0D9AE2FF0D95DAFF0C8FD1FF75A1AEFF5F6565FF4A4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF343232BD0000 - 004B000000320000001600000005000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000003534 - 348D494747FF494747FF494747FF494747FF494747FF494747FF535555FF7B8B - 8BFF63B0CDFF0C90D4FF0D96DCFF0D9BE3FF0E9EE8FF0EA1ECFF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1BA8F0FF35B2F1FF39B3F2FF39B3 - F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3 - F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39ACE7FF484F53FF565555FF6261 - 61FF686666FF696868FF696868FF696868FF696868FF696868FF696868FF6967 - 67FF636161FF585656FF46697BFF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3 - F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF29AD - F1FF11A4EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA2EDFF0EA0 - EAFF0D9DE6FF0D98E0FF0D93D8FF1A93CFFF7F9799FF585B5BFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF484646FA0A0A - 0A5F0000003D000000210000000A000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000002322 - 2252494747FF494747FF494747FF494747FF494747FF494747FF4E4E4EFF6D78 - 78FF88B8C3FF0C8FD1FF0D95DAFF0D99E1FF0D9EE7FF0EA0EBFF0EA2EDFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF22ABF0FF3CB4F2FF3DB5F2FF3DB5F2FF3DB5 - F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5 - F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF4485A6FF565555FF6462 - 62FF6B6969FF6D6B6BFF6D6B6BFF6D6B6BFF6D6B6BFF6D6B6BFF6D6B6BFF6B69 - 69FF636262FF565555FF4294BEFF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5 - F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5 - F2FF33B1F1FF13A5EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1ECFF0E9F - E9FF0D9CE5FF0D97DEFF0C92D6FF3D9ECAFF768484FF515252FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF2827 - 27A4000000470000002D00000012000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001111 - 1111494747FF494747FF494747FF494747FF494747FF494747FF4B4A4AFF6167 - 67FF92AEB0FF2799D0FF0C93D7FF0D98DFFF0D9CE6FF0E9FEAFF0EA1EDFF0EA2 - EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF25ACF0FF41B6F2FF42B7F2FF42B7F2FF42B7F2FF42B7 - F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7 - F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF43B3EDFF58676FFF6866 - 66FF6E6D6DFF716F6FFF716F6FFF716F6FFF716F6FFF716F6FFF706E6EFF6C6B - 6BFF636161FF545E64FF42B5F0FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7 - F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7 - F2FF42B7F2FF39B3F2FF13A5EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EDFF0EA0EBFF0E9E - E8FF0D9AE3FF0D95DBFF0C90D3FF65A4BCFF687070FF4D4C4CFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4543 - 43EC03030352000000390000001C000000080000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000484646D0494747FF494747FF494747FF494747FF494747FF494848FF575A - 5AFF829595FF54ABD0FF0C91D4FF0D96DCFF0D9BE4FF0E9FE8FF0EA1ECFF0EA2 - EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF22AAF0FF45B8F2FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8 - F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8 - F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF519BC1FF6D6C - 6CFF737272FF747373FF747373FF747373FF747373FF747373FF737171FF6D6C - 6CFF616161FF50839DFF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8 - F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8 - F3FF47B8F3FF47B8F3FF39B3F1FF11A4EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA2EDFF0EA0EAFF0D9D - E6FF0D99E0FF0D94D9FF1291D0FF7E9EA5FF5C6161FF4A4949FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1D1C1C8900000044000000290000000F0000000200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000036343488494747FF494747FF494747FF494747FF494747FF494747FF5050 - 50FF707C7CFF82B7C5FF0C8FD1FF0D95DAFF0D99E1FF0D9DE7FF0EA0EAFF0EA2 - EDFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF17A6EFFF47B8F2FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBA - F3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBA - F3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF50B2E4FF7472 - 72FF777676FF787676FF787676FF787676FF787676FF787676FF757474FF6E6C - 6CFF616060FF4EA9D8FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBA - F3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBA - F3FF4CBAF3FF4CBAF3FF4CBAF3FF31B0F1FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1ECFF0E9FE9FF0D9C - E5FF0D97DEFF0C92D6FF379DCCFF798889FF535555FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF3D3C3CD20000004D00000035000000190000000600000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00002322223D494747FF494747FF494747FF494747FF494747FF494747FF4C4A - 4AFF616767FF92ADAEFF2D9CD0FF0C92D7FF0D97DEFF0D9CE5FF0E9FE9FF0EA1 - ECFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF3DB5F2FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BC - F3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BC - F3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF619CBBFF7978 - 78FF7C7B7BFF7C7B7BFF7C7B7BFF7C7B7BFF7C7B7BFF7B7A7AFF777676FF6D6C - 6CFF5E7581FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BC - F3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BC - F3FF51BCF3FF51BCF3FF51BCF3FF50BCF3FF1DA9F0FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA2EDFF0EA0EBFF0D9EE7FF0D9A - E2FF0D95DBFF0C8FD2FF6AA5BAFF677171FF4D4D4DFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF1413137000000041000000240000000C00000001000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000484646E3494747FF494747FF494747FF494747FF494747FF4948 - 48FF555858FF7D8D8DFF68B2CDFF0C90D3FF0D95DBFF0D9AE2FF0E9EE8FF0EA0 - EBFF0EA2EDFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF20AA - F0FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BE - F4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BE - F4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF728995FF7F7D - 7DFF807E7EFF807E7EFF807E7EFF807E7EFF807E7EFF7E7D7DFF787777FF6D6C - 6CFF5C9AB9FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BE - F4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BE - F4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF45B7F2FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1ECFF0E9FE9FF0D9CE6FF0D98 - DFFF0C93D7FF1F95CFFF80999CFF595D5DFF4A4848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF333131BA0000004A000000310000001500000004000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000003635358C494747FF494747FF494747FF494747FF494747FF4947 - 47FF4E4E4EFF687171FF93B6BBFF1B94D0FF0C93D8FF0D98DFFF0D9CE6FF0E9F - E9FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF44B8 - F2FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0 - F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0 - F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5FB8E7FF807F7FFF8382 - 82FF848282FF848282FF848282FF848282FF838282FF807F7FFF787878FF6C6F - 71FF5CBCEDFF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0 - F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0 - F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5BC0F4FF1EA9F0FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA2EDFF0EA0EBFF0E9EE8FF0D9AE3FF0D96 - DCFF0C90D3FF57A4C3FF707C7CFF505151FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF484646FA0909095C0000003D000000200000000A000000000000 - 0000000000000000000000000001000000000000000000000000000000000000 - 00000000000023222228494747FF494747FF494747FF494747FF494747FF4947 - 47FF4A4848FF595C5CFF839696FF5BAECFFF0C90D4FF0D96DCFF0D9AE3FF0E9E - E8FF0EA0EBFF0EA2EDFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF14A5EFFF5DC1 - F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2 - F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2 - F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF6FA8C5FF868484FF8887 - 87FF888787FF888787FF888787FF888787FF878686FF828181FF797878FF6A8E - A1FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2 - F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2 - F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF3AB3F2FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1ECFF0E9FE9FF0D9CE6FF0D98DFFF0C93 - D8FF1893D0FF809FA6FF5E6363FF4B4A4AFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF272626A1000000470000002C00000012000000030000 - 0000000000000000000000000002000000000000000000000000000000000000 - 00000000000000000000484646C0494747FF494747FF494747FF494747FF4947 - 47FF494747FF4F4F4FFF6B7676FF90B8BEFF1692D0FF0C93D8FF0D98DFFF0D9C - E5FF0E9FE9FF0EA1ECFF0EA2EEFF0EA2EEFF0EA3EFFF0EA3EFFF25ACF0FF66C4 - F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4 - F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4 - F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF7F98A5FF8B8A8AFF8C8A - 8AFF8C8A8AFF8C8A8AFF8C8A8AFF8C8A8AFF8A8888FF838282FF797878FF69AF - D3FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4 - F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4 - F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF52BCF3FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA2EEFF0EA2EDFF0EA0EBFF0D9EE7FF0D9AE2FF0D96DBFF0C90 - D3FF50A2C5FF738080FF525353FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF444242E70000004F000000390000001C000000070000 - 0000000000000000000000000003000000000000000000000000000000000000 - 0000000000000000000024232350494747FF494747FF494747FF494747FF4947 - 47FF494747FF4B4949FF595D5DFF849797FF60B0CFFF0C90D3FF0D95DBFF0D9A - E2FF0D9DE7FF0EA0EAFF0EA1EDFF0EA2EEFF0EA3EFFF0EA3EFFF34B1F1FF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6EC2EDFF8E8F8FFF8F8E8EFF908F - 8FFF908F8FFF908F8FFF908F8FFF8F8E8EFF8C8B8BFF848383FF78848BFF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF63C3F4FF0EA3EFFF0EA3 - EFFF0EA2EEFF0EA2EDFF0EA1ECFF0E9FE9FF0D9CE5FF0D98DFFF0C93D7FF1A94 - CFFF82A0A5FF5F6464FF4C4B4BFF494747FF494747FF494747FF4A4848FF4B49 - 49FF4B4A4AFF4B4A4AFF4B4A4AFF4B4A4AFF4B4A4AFF4B4A4AFF4B4A4AFF4B4A - 4AFF4B4A4AFF4B4A4AFF4B4A4AFF4A4949FF4A4848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF1C1B1B8600000044000000280000000E0000 - 0002000000000000000000000002000000000000000000000000000000000000 - 0000000000000000000011101004484646DB494747FF494747FF494747FF4947 - 47FF494747FF494747FF4F4F4FFF697272FF92B5B9FF2297D0FF0C92D6FF0D97 - DEFF0D9BE4FF0E9FE8FF0EA0EBFF0EA2EDFF0EA2EEFF0EA3EFFF3EB5F2FF71C9 - F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9 - F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF78B7D7FF7DB3CFFF7EB5D1FF7EB5 - D1FF7EB5D1FF7EB5D1FF7EB5D1FF7EB5D1FF85AABDFF949393FF949393FF9493 - 93FF949393FF949393FF949393FF939292FF8E8D8DFF858484FF77A5BDFF71C9 - F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9 - F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9 - F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF70C9F5FF0EA3EFFF0EA3 - EFFF0EA2EEFF0EA1EDFF0E9FEAFF0D9DE7FF0D99E1FF0D95DAFF0C8FD2FF5FA6 - C2FF717C7CFF515252FF494747FF494747FF4A4848FF4E4D4DFF545656FF5A5D - 5DFF5C6161FF5C6161FF5C6161FF5C6161FF5C6161FF5C6161FF5C6161FF5C61 - 61FF5C6161FF5C6161FF5B6060FF585C5CFF525353FF4C4B4BFF494747FF4947 - 47FF494747FF494747FF494747FF3D3B3BCF0000004D00000035000000180000 - 0005000000000000000000000002000000000000000000000000000000000000 - 000000000000000000000000000047454560494747FF494747FF494747FF4947 - 47FF494747FF494747FF4A4848FF575A5AFF7D8D8DFF75B6CCFF0C8FD1FF0D94 - D9FF0D99E0FF0D9CE6FF0E9FE9FF0EA1ECFF0EA2EDFF0EA2EEFF3EB5F2FF77CB - F6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CB - F6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF889CA7FF949393FF989797FF9997 - 97FF999797FF999797FF999797FF999797FF999797FF999797FF999797FF9997 - 97FF999797FF999797FF989797FF969595FF908F8FFF868787FF78C3E9FF77CB - F6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CB - F6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CB - F6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF73C9F5FF0EA3EFFF0EA2 - EEFF0EA1EDFF0EA0EBFF0E9EE8FF0D9BE3FF0D96DDFF0C91D6FF2C9ACDFF8098 - 9AFF5B6060FF4B4A4AFF494747FF494747FF4C4B4BFF50626AFF6699AFFF75A4 - B8FF79A8BBFF79A9BCFF79A9BCFF79A9BCFF79A9BCFF79A9BCFF79A9BCFF79A9 - BCFF79A9BCFF79A9BCFF78A7BAFF759EAFFF6A6F6FFF515252FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF1312126D00000040000000240000 - 000C000000010000000000000002000000000000000000000000000000000000 - 000000000000000000000000000048464604494747DB494747FF494747FF4947 - 47FF494747FF494747FF494747FF4D4C4CFF626969FF90A8A9FF46A6D0FF0C90 - D4FF0D96DBFF0D9AE2FF0D9EE7FF0EA0EAFF0EA1EDFF0EA2EEFF34B1F1FF7DCD - F6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCD - F6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF8DA0AAFF999898FF9C9B9BFF9D9C - 9CFF9D9C9CFF9D9C9CFF9D9C9CFF9D9C9CFF9D9C9CFF9D9C9CFF9D9C9CFF9D9C - 9CFF9D9C9CFF9D9C9CFF9C9B9BFF999898FF919090FF859DA9FF7DCDF6FF7DCD - F6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCD - F6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCD - F6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF6BC7F5FF0EA2EEFF0EA2 - EDFF0EA1ECFF0E9FE9FF0D9CE5FF0D98DFFF0C93D8FF1391D1FF79A8B5FF6871 - 71FF4F4F4FFF494747FF494747FF494747FF4D4D4DFF537684FF70CCF6FF80D1 - F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1 - F7FF80D1F7FF80D1F7FF80D1F7FF83CAEBFF7D8383FF565858FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF302E2EB70000004A000000300000 - 0014000000040000000000000002000000000000000000000000000000000000 - 00000000000000000000000000000000000048464660494747FF494747FF4947 - 47FF494747FF494747FF494747FF4A4848FF525353FF6F7B7BFF90B8BFFF1C94 - CFFF0C92D7FF0D97DDFF0D9BE3FF0E9EE8FF0EA0EBFF0EA1EDFF22AAEFFF82CF - F7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CF - F7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF92A4AEFF9D9C9CFFA1A0A0FFA1A0 - A0FFA1A0A0FFA1A0A0FFA1A0A0FFA1A0A0FFA1A0A0FFA1A0A0FFA1A0A0FFA1A0 - A0FFA1A0A0FFA1A0A0FFA09F9FFF9B9A9AFF929191FF86B9D3FF82CFF7FF82CF - F7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CF - F7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CF - F7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF5DC0F4FF0EA2EDFF0EA1 - ECFF0E9FE9FF0D9DE6FF0D99E1FF0D95DAFF0C8FD3FF54A4C6FF778686FF5558 - 58FF4A4848FF494747FF494747FF494747FF4D4D4DFF557785FF73CDF6FF80D1 - F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1 - F7FF80D1F7FF80D1F7FF80D1F7FF82C9EBFF7B8181FF555757FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF474545F70909095B0000003C0000 - 001F000000090000000000000001000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000484646CB494747FF4947 - 47FF494747FF494747FF494747FF494747FF4B4A4AFF595C5CFF7E8F8FFF7AB8 - CBFF0E8FD1FF0D94D8FF0D98DFFF0D9CE5FF0E9FE8FF0EA0EBFF0FA2EDFF74C9 - F5FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1 - F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF96A8B1FFA1A0A0FFA4A3A3FFA5A4 - A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4 - A4FFA5A4A4FFA4A3A3FFA2A1A1FF9C9B9BFF93989BFF88D0F5FF88D1F7FF88D1 - F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1 - F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1 - F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF38B2F0FF0EA1ECFF0E9F - EAFF0D9DE7FF0D9AE2FF0D96DBFF0C91D5FF339BCDFF829A9CFF5D6262FF4C4B - 4BFF494747FF494747FF494747FF494747FF4C4B4BFF566469FF65BEE6FF80D1 - F7FF80D1F7FF80D1F7FF8EB8CAFF8AA7ACFF7C969CFF738B91FF71888EFF7188 - 8EFF71888EFF71888EFF70878DFF6B7E84FF5F6363FF4F5050FF494848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF2423239C000000460000 - 002B000000100000000300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000083A2A238494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4D4D4DFF606767FF8BA1 - A1FF5CAECFFF0C8FD2FF0D94D9FF0D99E0FF0D9CE5FF0E9FE9FF0EA0EBFF4BB9 - F1FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3 - F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF9BACB5FFA5A4A4FFA8A7A7FFA8A7 - A7FFA8A7A7FFA8A7A7FFA8A7A7FFA8A7A7FFA8A7A7FFA8A7A7FFA8A7A7FFA8A7 - A7FFA8A7A7FFA8A7A7FFA4A3A3FF9D9D9DFF92B2C2FF8DD3F7FF8DD3F7FF8DD3 - F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3 - F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3 - F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF82CFF6FF16A4EDFF0EA0EAFF0D9E - E7FF0D9BE3FF0D97DDFF0C92D6FF1E95CFFF81A6ADFF666E6EFF4F4F4FFF4947 - 47FF494747FF494747FF494747FF494747FF4A4848FF525353FF5D7B86FF71CB - F4FF80D1F7FF80D1F7FF81CEF2FF91A7AEFF717E7EFF5E6464FF565959FF5557 - 57FF555757FF555757FF545757FF525454FF4E4F4FFF4B4949FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF434141E50000004E0000 - 0036000000190000000600000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000004947479B4947 - 47FF494747FF494747FF494747FF494747FF494747FF4A4848FF505151FF6770 - 70FF92ADAFFF44A5D0FF0C90D4FF0D95DAFF0D99E1FF0D9CE6FF0E9FE9FF19A5 - ECFF86D0F6FF92D5F7FF92D5F7FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5 - F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF9FAEB7FFA7A6A6FFA9A8A8FFA9A8 - A8FFA9A8A8FFA9A8A8FFA9A8A8FFA9A8A8FFA9A8A8FFA9A8A8FFA9A8A8FFA9A8 - A8FFA9A8A8FFA8A7A7FFA4A4A4FF9F9E9EFF94CBE7FF92D5F8FF92D5F8FF92D5 - F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5 - F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5 - F8FF92D5F8FF92D5F8FF92D5F7FF92D5F7FF50BBF1FF0EA0EAFF0D9EE7FF0D9B - E3FF0D97DEFF0C92D7FF1391D0FF79AAB9FF6E7979FF535454FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4A4AFF565959FF5E91 - A5FF79CFF6FF80D1F7FF80D1F7FF84CBEBFF879496FF616767FF505151FF4A49 - 49FF4A4848FF4A4848FF4A4848FF494848FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF1C1B1B820000 - 003F000000220000000A00000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000A0D0D0104947 - 47E3494747FF494747FF494747FF494747FF494747FF494747FF4A4848FF5354 - 54FF6E7979FF93B5B9FF319ED0FF0C91D4FF0D95DBFF0D99E1FF0D9CE6FF0E9F - E9FF47B7EFFF98D7F7FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7 - F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FFA0B0B8FFA5A5A5FFA6A6A6FFA6A6 - A6FFA6A6A6FFA6A6A6FFA6A6A6FFA6A6A6FFA6A6A6FFA6A6A6FFA6A6A6FFA6A6 - A6FFA6A6A6FFA6A5A5FFA3A3A3FF9EACB3FF98D7F8FF98D7F8FF98D7F8FF98D7 - F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7 - F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7 - F8FF98D7F8FF98D7F8FF98D7F7FF83CFF5FF17A3EAFF0D9EE7FF0D9BE3FF0D97 - DEFF0C93D8FF0E90D1FF6BAAC1FF758383FF565858FF4B4949FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4D4C4CFF5A5E - 5EFF5FA5C2FF7ED0F7FF80D1F7FF80D1F7FF89C2DCFF7C8686FF5B6060FF4E4D - 4DFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF383737C70000 - 00470000002B0000001000000002000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000006674 - 744C494747FF494747FF494747FF494747FF494747FF494747FF494747FF4B49 - 49FF555858FF738080FF91B8BEFF2899CFFF0C91D5FF0D95DBFF0D99E1FF0D9C - E5FF11A0E9FF6FC6F3FF9ED9F7FF9ED9F8FF9ED9F8FF9EDAF8FF9EDAF8FF9EDA - F8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FFA3ABAFFFA4A4A4FFA5A4A4FFA5A4 - A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4 - A4FFA5A4A4FFA4A4A4FFA3A3A3FFA0C3D5FF9EDAF8FF9EDAF8FF9EDAF8FF9EDA - F8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDA - F8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9ED9 - F8FF9ED9F8FF9ED9F8FF97D6F6FF32AEECFF0D9EE7FF0D9BE3FF0D97DEFF0C93 - D8FF0D8FD1FF61A8C4FF7A8A8AFF595D5DFF4C4B4BFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4A4848FF4F4E - 4EFF5D6668FF65B9DCFF80D1F7FF80D1F7FF80D1F7FF8DB7C9FF737D7DFF575B - 5BFF4C4B4BFF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF484646F90707 - 0755000000330000001600000004000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000066757597494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4C4B4BFF575B5BFF768484FF93BAC0FF2899CFFF0C91D4FF0D95DAFF0D99 - E0FF0D9CE5FF1BA3E9FF86CFF4FFA3DBF8FFA3DBF8FFA3DBF8FFA3DCF9FFA3DC - F9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA6ADB1FFA7A7A7FFA7A7A7FFA7A7 - A7FFA7A7A7FFA7A7A7FFA7A7A7FFA7A7A7FFA7A7A7FFA7A7A7FFA7A7A7FFA7A7 - A7FFA7A7A7FFA7A7A7FFA7A8A9FFA3D9F5FFA3DCF9FFA3DCF9FFA3DCF9FFA3DC - F9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DC - F9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DB - F8FFA3DBF8FFA1DAF7FF4BB7EEFF0D9DE6FF0D9AE2FF0D97DDFF0C93D8FF0E8F - D1FF61A9C5FF7D8D8EFF5B6060FF4C4B4BFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4A48 - 48FF515252FF5E7379FF6DC5ECFF80D1F7FF80D1F7FF81D0F5FF8EA9B3FF6A74 - 74FF545656FF4B4A4AFF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF1E1D - 1D860000003A0000001B00000006000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000A0D1D108484646CF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4C4B4BFF585B5BFF768484FF92B8BEFF329ED0FF0C90D4FF0D94 - D9FF0D98DFFF0D9BE3FF1EA4E9FF8DD1F4FFA9DDF8FFA9DDF8FFA9DDF9FFA9DE - F9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DE - F9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DE - F9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DE - F9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DE - F9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DDF9FFA9DDF9FFA9DD - F8FFA5DBF7FF54BAEFFF0D9CE6FF0D99E1FF0D96DCFF0C92D7FF0F8FD0FF67AB - C4FF7C8D8EFF5C6161FF4D4C4CFF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4B4A4AFF545656FF5E8492FF75CDF5FF81D1F7FF81D1F7FF83CDF0FF8B9C - A0FF646B6BFF515252FF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF3635 - 35BD0000003E0000001F00000008000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000A0D1D124494747EF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4C4B4BFF575B5BFF738080FF93B5B9FF44A5D0FF0C8F - D2FF0D94D8FF0D97DDFF0D9AE2FF1CA2E7FF81CCF3FFAEDFF8FFAEDFF8FFAEDF - F9FFAEDFF9FFAEE0F9FFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0 - FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0 - FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0 - FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0 - FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0F9FFAEDFF9FFAEDFF9FFAEDFF8FFA4DB - F7FF4AB6EDFF0D9BE4FF0D99E0FF0D95DBFF0C91D5FF1993D0FF73ADC0FF7989 - 89FF5B5F5FFF4D4C4CFF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4C4B4BFF575B5BFF5F99AFFF7CD0F6FF81D1F7FF81D1F7FF87C8 - E6FF838F91FF5F6565FF4F4F4FFF4A4848FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4543 - 43E900000041000000220000000A000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000066757544494747FB494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4C4B4BFF555858FF6E7979FF92ADAFFF5CAE - CFFF0E8FD1FF0C92D7FF0D96DBFF0D99E0FF159EE5FF65C1F0FFAEDFF7FFB3E1 - F9FFB3E1F9FFB3E2F9FFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2 - FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2 - FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2 - FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2 - FAFFB3E2FAFFB3E2FAFFB3E2F9FFB3E1F9FFB3E1F9FFB3E1F8FF97D5F5FF30AB - E9FF0D9AE2FF0D97DEFF0D94D9FF0C90D4FF2598CFFF80ACB7FF748181FF585C - 5CFF4C4B4BFF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4E4D4DFF5B6060FF61ACCBFF80D0F7FF81D1F7FF81D1 - F7FF8BBFD6FF7A8484FF5A5F5FFF4D4D4DFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF0A09094D000000230000000A000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000039586867494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4B4949FF535454FF677070FF8BA1 - A1FF7AB8CBFF1B94CFFF0C90D4FF0D94D9FF0D97DEFF0D9AE2FF36ADE9FF96D4 - F4FFB8E3F8FFB8E3F9FFB8E3FAFFB8E3FAFFB8E3FAFFB8E4FAFFB8E4FAFFB8E4 - FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4 - FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4 - FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E3 - FAFFB8E3FAFFB8E3FAFFB8E3F9FFB8E3F9FFAFDFF7FF68C1EFFF18A0E5FF0D99 - E0FF0D96DBFF0C92D7FF0D8FD1FF45A3CCFF85A5AAFF6D7777FF555858FF4C4B - 4BFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4A4848FF504F4FFF606B6EFF8DCCE8FFA4DEF9FFA2DD - F9FF9DDBF9FF9AB8C4FF707A7AFF565959FF4B4A4AFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1616165D000000210000000A000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000003958687F494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4A4848FF505151FF6067 - 67FF7E8F8FFF90B8BFFF46A6D0FF0C8FD1FF0C92D6FF0D95DBFF0D98DFFF149D - E3FF52B8ECFFA3DAF6FFBEE5F9FFBEE5F9FFBEE5FAFFBEE5FAFFBEE6FAFFBEE6 - FAFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6 - FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6 - FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FAFFBEE6FAFFBEE5 - FAFFBEE5F9FFBEE5F9FFB8E3F8FF80CBF2FF2AA7E7FF0D99E1FF0D96DDFF0D94 - D9FF0C90D4FF1D95D0FF6DADC4FF839798FF656C6CFF525353FF4B4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4A4949FF525353FF677C82FF9CD9F5FFAAE0 - FAFFAAE0FAFFA9DFF9FF96A8AEFF666F6FFF515252FF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1D1C1C6B0000001E00000008000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000003958688F494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4A4848FF4D4D - 4DFF595C5CFF6F7B7BFF8FA8A9FF77B7CCFF2297D0FF0C90D3FF0C93D8FF0D96 - DCFF0D98DFFF159EE3FF4DB6EBFF99D6F5FFC2E7F9FFC3E7FAFFC3E7FAFFC3E7 - FAFFC3E7FAFFC3E7FBFFC3E7FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8 - FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8 - FBFFC3E8FBFFC3E7FBFFC3E7FBFFC3E7FAFFC3E7FAFFC3E7FAFFC3E7FAFFC3E7 - F9FFB4E1F7FF76C7F0FF2CA8E7FF0D99E1FF0D97DEFF0D94DAFF0C91D5FF0E8F - D1FF48A4CDFF88ABB1FF748282FF5C6161FF4F4F4FFF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4B4A4AFF555757FF71939FFFA9E0 - FAFFAFE1FAFFAFE1FAFFACD9EFFF848F8FFF5C6060FF4C4C4CFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1B1A1A620000001900000005000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000003958688F4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4B4A4AFF525353FF626868FF7C8D8DFF93B5B9FF60B0CFFF1792D0FF0C90 - D4FF0C93D8FF0D95DBFF0D97DEFF0D99E1FF30A9E7FF6DC3EFFFA4DAF6FFC6E8 - F9FFC8E9FAFFC8E9FAFFC8E9FAFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9 - FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9 - FBFFC8E9FBFFC8E9FBFFC8E9FAFFC8E9FAFFC8E9FAFFBAE3F8FF8ED1F3FF4AB4 - EBFF189FE4FF0D98E0FF0D96DDFF0D94D9FF0C91D6FF0C8FD1FF349ECFFF7CAF - BEFF819393FF666E6EFF545656FF4C4B4BFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4C4CFF5A5D5DFF84B2 - C4FFB3E3FAFFB4E3FAFFB4E3FAFFA1B8C1FF687171FF515252FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1515154A0000001400000004000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000003958 - 687B494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4848FF4D4C4CFF575959FF697272FF849797FF90B7BEFF5CAE - CFFF1B94D0FF0C90D3FF0C92D7FF0D95DAFF0D96DCFF0D98DFFF0D99E1FF28A6 - E6FF4EB6EBFF82CCF2FFA3DAF5FFC0E6F8FFCDEBFAFFCDEBFAFFCDEBFAFFCDEB - FBFFCDEBFBFFCDEBFBFFCDEBFBFFCDEBFBFFCDEBFBFFCDEBFBFFCDEBFAFFCDEB - FAFFCAEAF9FFB2E0F7FF94D3F4FF68C1EFFF3BAEE9FF159EE4FF0D99E0FF0D97 - DEFF0D95DBFF0D93D8FF0C91D5FF0C8FD1FF379FCFFF76AFC2FF879D9EFF6D78 - 78FF595D5DFF4E4E4EFF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4B4949FF4D4D4DFF4F50 - 50FF4F5050FF4D4D4DFF4B4949FF494747FF494747FF4A4848FF4F4F4FFF6472 - 75FFA8DDF5FFB8E5FBFFB8E5FBFFAFD4E4FF7B8484FF565858FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4846 - 46FC0404042B0000000E00000002000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000039586860494747FB494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4A4848FF4F4F4FFF595D5DFF6B7575FF8396 - 96FF93B6BBFF67B1CDFF2D9CD0FF0C8FD1FF0C91D4FF0C93D7FF0D95DAFF0D96 - DCFF0D97DEFF0D98E0FF0D99E1FF109BE3FF26A5E6FF3BAFE9FF4DB6EBFF5BBB - EDFF66C0EFFF6CC3EFFF6EC4EFFF69C2EFFF61BEEEFF55B9ECFF44B2EAFF31AA - E8FF1AA0E4FF0D9AE2FF0D99E0FF0D98DFFF0D97DDFF0D95DBFF0D94D8FF0C92 - D6FF0C90D3FF1692D0FF47A4CEFF7FB1BFFF869C9DFF6F7A7AFF5C6161FF5051 - 51FF4B4949FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4B4949FF515252FF5D6161FF656D - 6DFF656D6DFF5D6262FF525252FF4B4949FF494747FF494747FF4A4949FF585C - 5CFF93C0D2FFBDE7FBFFBDE7FBFFB7E0F3FF848D8DFF595D5DFF4A4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4543 - 43D80000001D0000000800000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000039586840494747E7494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4B4949FF4F4F4FFF595C - 5CFF687171FF7D8D8DFF91ADAEFF83B7C5FF54ABCFFF2799D0FF0C8FD1FF0C90 - D4FF0C92D6FF0D93D8FF0D94DAFF0D95DBFF0D96DCFF0D97DDFF0D97DEFF0D98 - DFFF0D98DFFF0D98DFFF0D98DFFF0D98DFFF0D98DFFF0D97DEFF0D97DEFF0D97 - DDFF0D95DBFF0D95DAFF0D94D9FF0C92D7FF0C91D5FF0C8FD2FF1592D0FF3BA2 - D0FF69ADC7FF8BAEB4FF819393FF6B7676FF5B5F5FFF505151FF4B4A4AFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4C4C4CFF637C87FFAEDCF0FFB8E0 - F2FFB8E0F2FF95A8AFFF5E6464FF4E4E4EFF494747FF494747FF4A4848FF5658 - 58FF8BACB7FFC2E8FBFFC2E8FBFFBCE1F3FF868F8FFF5A5E5EFF4A4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF302F - 2F9C000000120000000300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000001B7AAA1C494747C3494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4A48 - 48FF4E4E4EFF555858FF616767FF707C7CFF829595FF92AEAFFF88B7C3FF63B0 - CDFF3EA2D0FF1F96D0FF0E8FD1FF0C8FD2FF0C90D4FF0C91D5FF0C92D6FF0C92 - D6FF0C92D7FF0C92D7FF0C92D7FF0C92D7FF0C92D7FF0C92D6FF0C91D6FF0C90 - D4FF0C90D3FF0C8ED1FF1491D0FF2C9CD0FF4FA8CEFF72B0C4FF8EAFB4FF8599 - 9AFF738080FF636B6BFF575A5AFF4F4F4FFF4B4949FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4D4C4CFF677E86FFBEE8FBFFC6EA - FCFFC6EAFCFFADC1CAFF6E7979FF545656FF4A4848FF494747FF4C4A4AFF5B5F - 5FFF9DC9D9FFC6EAFCFFC6EAFCFFBFE2F3FF848D8DFF595D5DFF4A4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF1C1B - 1B4A000000090000000100000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000001B7AAA0439586887494747FB494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494848FF4C4A4AFF505050FF575A5AFF616767FF6D7878FF7B8B - 8BFF899E9EFF93AFB1FF8EB6BEFF7DB5C5FF69B1CBFF57ACCFFF49A7D0FF3DA2 - D1FF369FD1FF319DD0FF309DD0FF329ED1FF38A0D0FF43A5D1FF4FA9CFFF5FAD - CCFF71B0C6FF85B3BEFF8FAFB3FF8BA1A2FF7D8E8EFF6F7B7BFF626A6AFF585C - 5CFF515252FF4C4B4BFF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4C4A4AFF5D6465FFBAE5F8FFCBEC - FCFFCBECFCFFC2E1F0FF899697FF646B6BFF545555FF505151FF565959FF7083 - 87FFC1E8FAFFCBECFCFFCBECFCFFBBD8E5FF7A8484FF565858FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF454343D10000 - 0010000000030000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000083A3A338494747D74947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494848FF4B4A4AFF4E4E4EFF5355 - 55FF595D5DFF606767FF677171FF6F7B7BFF778585FF7D8E8EFF839595FF879B - 9BFF8A9F9FFF8CA1A1FF8CA2A2FF8BA0A0FF889C9CFF849696FF7E8F8FFF7886 - 86FF707D7DFF697272FF626969FF5B5F5FFF545656FF4F4F4FFF4C4A4AFF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4A4848FF555858FF9ABECDFFCFED - FCFFCFEDFCFFCFEDFCFFB8D1DCFF869596FF6E7979FF697373FF788B8FFFB8DA - E7FFCFEDFCFFCFEDFCFFCFEDFCFFA9BBC2FF687171FF505151FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF212020590000 - 0007000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000A0D1D1046675 - 757B494747F7494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494848FF4B4949FF4C4B4BFF4F4E4EFF515252FF535555FF565858FF575B - 5BFF595D5DFF5A5E5EFF5A5E5EFF5A5D5DFF585B5BFF565959FF545656FF5152 - 52FF4F4F4FFF4C4C4CFF4B4A4AFF4A4848FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4F4F4FFF68777CFFC2E5 - F4FFD4EFFCFFD4EFFCFFD4EFFCFFCEEAF8FFBCD9E4FFBCDCE8FFD0EDFBFFD4EF - FCFFD4EFFCFFD4EFFCFFC5DEEAFF7F8888FF5A5E5EFF4C4B4BFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF424040B9000000090000 - 0001000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00006675751C4947479F494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4848FF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4B4949FF535555FF7688 - 8EFFC6E5F3FFD8F1FDFFD8F1FDFFD8F1FDFFD8F1FDFFD8F1FDFFD8F1FDFFD8F1 - FDFFD8F1FDFFC8DFEBFF869394FF606767FF505050FF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF484646EC10101025000000020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000049474730494747AF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4C4A4AFF5456 - 56FF687578FF9DB5BDFFC4E1EEFFD9F0FBFFDDF2FDFFDDF2FDFFD6EEF9FFC5DE - E9FFA3B6BBFF778283FF5F6565FF515252FF4B4949FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FB2C2B2B4600000002000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000004947472C4947479B494747F74947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4B4A - 4AFF505050FF585C5CFF626969FF697373FF6D7878FF6E7979FF6C7777FF6770 - 70FF606565FF565959FF4E4E4EFF4A4949FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FB323131580000000200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000494747144947 - 4773494747D7494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4B4A4AFF4E4D4DFF505050FF525353FF525353FF525252FF4F50 - 50FF4D4C4CFF4A4949FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF484646E732303042000000010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000004947473049474787494747DB494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF464444A82322221500000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000004947472449474768494747A74947 - 47DF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FB484646B04846 - 4634000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000049474714494747444947476C4947478F494747AF494747C7494747DF4947 - 47EB494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747F3494747D3494747A34947476448464618000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFF007FFFFFFFFFFFFFFFFFFFFFFFFFFF800001FFFFFFFFFFFFFFFFFFF - FFFFFF80000001FFFFFFFFFFFFFFFFFFFFFFFC000000003FFFFFFFFFFFFFFFFF - FFFFF00000000007FFFFFFFFFFFFFFFFFFFF800000000001FFFFFFFFFFFFFFFF - FFFE0000000000007FFFFFFFFFFFFFFFFFF80000000000001FFFFFFFFFFFFFFF - FFF000000000000007FFFFFFFFFFFFFFFFC000000000000001FFFFFFFFFFFFFF - FF8000000000000000FFFFFFFFFFFFFFFE00000000000000007FFFFFFFFFFFFF - FC00000000000000001FFFFFFFFFFFFFF800000000000000000FFFFFFFFFFFFF - F0000000000000000007FFFFFFFFFFFFE0000000000000000003FFFFFFFFFFFF - C0000000000000000001FFFFFFFFFFFF80000000000000000000FFFFFFFFFFFF - 000000000000000000007FFFFFFFFFFE000000000000000000003FFFFFFFFFFC - 000000000000000000001FFFFFFFFFF8000000000000000000001FFFFFFFFFF8 - 000000000000000000000FFFFFFFFFF00000000000000000000007FFFFFFFFE0 - 0000000000000000000007FFFFFFFFE00000000000000000000003FFFFFFFFC0 - 0000000000000000000001FFFFFFFF800000000000000000000001FFFFFFFF80 - 0000000000000000000000FFFFFFFF000000000000000000000000FFFFFFFF00 - 00000000000000000000007FFFFFFE0000000000000000000000007FFFFFFE00 - 00000000000000000000003FFFFFFE0000000000000000000000003FFFFFFC00 - 00000000000000000000001FFFFFFC0000000000000000000000001FFFFFF800 - 00000000000000000000001FFFFFF80000000000000000000000000FFFFFF800 - 00000000000000000000000FFFFFF000000000000000000000000007FFFFF000 - 000000000000000000000007FFFFF000000000000000000000000007FFFFF000 - 000000000000000000000003FFFFE000000000000000000000000003FFFFE000 - 000000000000000000000001FFFFE000000000000000000000000001FFFFE000 - 000000000000000000000000FFFFE000000000000000000000000000FFFFE000 - 000000000000000000000000FFFFC0000000000000000000000000007FFFC000 - 0000000000000000000000007FFFC0000000000000000000000000003FFFC000 - 0000000000000000000000003FFFC0000000000000000000000000001FFFC000 - 0000000000000000000000001FFFC0000000000000000000000000001FFFC000 - 0000000000000000000000000FFFC0000000000000000000000000000FFFC000 - 00000000000000000000000007FFC00000000000000000000000000007FFE000 - 00000000000000000000000003FFE00000000000000000000000000003FFE000 - 00000000000000000000000003FFE00000000000000000000000000001FFE000 - 00000000000000000000000001FFE00000000000000000000000000000FFF000 - 00000000000000000000000000FFF00000000000000000000000000000FFF000 - 000000000000000000000000007FF000000000000000000000000000007FF800 - 000000000000000000000000003FF800000000000000000000000000003FF800 - 000000000000000000000000001FFC00000000000000000000000000001FFC00 - 000000000000000000000000001EFC00000000000000000000000000000EFE00 - 000000000000000000000000000EFE000000000000000000000000000006FE00 - 0000000000000000000000000006FF000000000000000000000000000002FF00 - 0000000000000000000000000002FF800000000000000000000000000002FFC0 - 0000000000000000000000000001FFC00000000000000000000000000001FFE0 - 0000000000000000000000000001FFE00000000000000000000000000000FFF0 - 0000000000000000000000000000FFF80000000000000000000000000000FFF8 - 0000000000000000000000000000FFFC0000000000000000000000000000FFFE - 0000000000000000000000000000FFFF0000000000000000000000000000FFFF - 8000000000000000000000000000FFFFC000000000000000000000000000FFFF - E000000000000000000000000000FFFFF000000000000000000000000000FFFF - F800000000000000000000000001FFFFFC00000000000000000000000001FFFF - FE00000000000000000000000001FFFFFF00000000000000000000000003FFFF - FFC0000000000000000000000007FFFFFFE0000000000000000000000007FFFF - FFF800000000000000000000000FFFFFFFFE00000000000000000000001FFFFF - FFFF80000000000000000000003FFFFFFFFFE0000000000000000000007FFFFF - FFFFFC00000000000000000001FFFFFFFFFFFF80000000000000000007FFFFFF - FFFFFFF800000000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFF2800000060000000C0000000010020000000 - 0000809400000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000009F9F9F019F9F - 9F019F9F9F010000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000010000 - 000300000006000000080000000B0000000E0000001000000011000000120000 - 00120000001200000011000000100000000D0000000A00000007000000050000 - 0002000000010000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000100000003000000070000000D000000140000 - 001B00000021000000280000002D000000320000003500000037000000370000 - 0037000000370000003700000034000000300000002C000000250000001F0000 - 0018000000100000000A00000005000000020000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000002000000070000000F00000019000000240000002F000000390000 - 0040000000460000004B0000004E000000500000005200000052000000530000 - 0053000000530000005200000051000000500000004D00000049000000440000 - 003D000000340000002A0000001E000000130000000A00000004000000010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000025242401030303040000 - 000B0000001700000025000000330000004000000049030303530F0F0F711B1A - 1A8B292828A9302E2EC13D3B3BD4424040E1464444EF464444EF464444EF4644 - 44EF464444EF434141E53E3C3CD7323030C4292828AD1D1C1C900F0F0F750404 - 045B000000520000004C00000045000000390000002C0000001D000000100000 - 0007141313020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000050505040000000D0000001A0000 - 002B0000003B01010149090909621F1E1E92343333C4413F3FE9474545F84947 - 47FE494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE474545F94140 - 40EA353434C5201F1F960B0A0A6A010101540000004C00000041000000320000 - 0022000000130202020716161602000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000D0D0D020000000A000000190000002C0000003E0302 - 024E1D1C1C8C363535CB474545F6494747FF494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF474545F6363535CB1B1B1B8C030303590000004F0000 - 0045000000350000002100000011000000062322220100000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00001B1A1A010000000700000015000000290000003D0A0A0A5F282626A64543 - 43EE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE444242ED262525A60A0A - 0A680000005100000045000000330000001E0000000C03030303000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000606 - 06030000000D0000001F0000003608080857292828A6454343F1484646FE4846 - 46FE494747FF494747FF484646FE494747FF494747FF494747FF484646FE4947 - 47FF494747FF494747FE494747FF494747FF494747FE494747FF494747FF4947 - 47FE494747FF494747FF494747FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4442 - 42EF2A2929AB070707620000004E000000400000002A00000014030303062C31 - 3101000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000B0F0F050000 - 0013000000290000004022212192424040E9484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE494747FE494747FE4A49 - 49FE4D4C4CFE505050FE535555FE565959FE595D5DFE5B5F5FFE5B5F5FFE5A5E - 5EFE585B5BFE555757FE515353FE4E4F4FFE4C4B4BFE4A4848FE494747FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE414040E91F1E1E940101015500000048000000340000001D0000 - 0009324343020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000596B6B0100000008000000190000 - 0033101010663B3939D1494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF494747FE4A4949FF4E4E4EFF565858FF616767FE6C78 - 78FF728689FF6F909AFE6796A6FF619AB0FF5D9DB7FE5B9EBAFF5A9FBBFF5A9D - B9FE5D9BB5FF6098ADFF6692A2FE6D8C95FF6F8184FF687171FE5C6161FF5354 - 54FF4C4C4CFE4A4848FF494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE494747FF484646FE3A3838D30E0E0E6F0000004F0000003E0000 - 00240000000E1A23230300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000073737301000000090000001D0201013A2121 - 2190454343F1484646FE494747FF494747FF484646FE494747FF494747FF4947 - 47FE4A4848FF4E4D4DFF575A5AFE666F6FFF71868AFF6B98A7FF529CBCFE3B9D - CAFF2D9BD1FF299CD6FE299DD9FF2A9FDBFF2CA0DCFE2DA1DCFF2EA1DCFF2DA1 - DCFE2BA0DBFF2A9EDAFF289DD8FE289BD5FF2B99CFFF3B9AC7FE5198B6FF6890 - 9EFF6B7D80FE606666FF535555FF4C4A4AFE494747FF494747FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE444242F0201F1F95010101540000 - 00430000002A000000112B2B2B03000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000073737301000000090000001F04040442302F2FB44846 - 46FE484646FE484646FE484646FE484646FE484646FE494747FE4A4848FE4F4E - 4EFE5C6161FE717F80FE7099A6FE499DC3FE309CD1FE269BD7FE2BA0DBFE30A4 - DFFE32A6E1FE34A8E3FE36A9E4FE37AAE5FE38ABE6FE39ABE6FE39ABE6FE39AB - E6FE38ABE6FE37AAE5FE36A9E4FE34A8E2FE32A6E1FE30A3DEFE299FDBFE249A - D6FE2F99CDFE4998BAFE6C8F9AFE687272FE565959FE4C4B4BFE494747FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FC2F2D2DB80404 - 0458000000460000002D00000012070707040000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000006B6B6B010000000A000000200B0B0B503B3A3AD2484646FE4947 - 47FF494747FF484646FE494747FF494747FF494848FE4F4F4FFF5E6363FF7386 - 89FE649FB5FF389ECEFF239AD7FE2CA1DDFF2FA4E0FF32A7E3FF35AAE6FE37AC - E8FF39AEEAFF3BAFEBFE3CB1ECFF3DB1EDFF3DB1EDFE3EB2EDFF3EB2EDFF3EB2 - EDFE3EB2EDFF3EB1ECFF3DB1ECFE3CB0EBFF3BAFEAFF39ADE8FE36AAE6FF33A8 - E3FF30A5E0FE2AA0DCFF1F98D6FF399AC8FE6294A6FF6A797BFE565959FF4C4B - 4BFF494747FE494747FF494747FF484646FE494747FF494747FF484646FE3A38 - 38D209090965000000490000002F0000001301131C0400000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000090000001F0C0C0C51403F3FE0494747FE484646FE4947 - 47FF494747FF484646FE494747FF4C4B4BFF575B5BFE708081FF679DB1FF359C - CDFE259CD9FF2BA1DEFF2FA6E2FE32A9E6FF35ACE9FF38AEEBFF39B0ECFE3BB1 - EEFF3CB2EFFF3DB3EFFE3DB4F0FF3EB4F0FF3EB4F0FE3FB4F0FF3FB5F1FF3FB4 - F1FE3FB5F1FF3FB4F0FF3FB4F0FE3EB3EFFF3EB3EFFF3DB2EDFE3BB1ECFF39AF - EBFF37ACE8FE34A9E6FF30A6E2FF2AA1DDFE239AD7FF3398C8FE6591A1FF6570 - 71FF525353FE4A4848FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF3D3C3CDD0B0B0B6A000000480000002E00000012202B2B03000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000060000001B0C0C0C4F3F3E3EDD484646FE484646FE484646FE4846 - 46FE484646FE494747FE4F5050FE646B6BFE77979FFE409EC9FE239AD7FE28A0 - DDFE2CA5E3FE30A9E7FE33ACEAFE36AEECFE38B0EEFE39B1EFFE39B2F0FE3BB3 - F0FE3BB3F1FE3CB4F1FE3CB4F1FE3CB4F1FE3DB4F1FE3DB5F1FE3DB5F1FE3DB5 - F1FE3DB5F1FE3DB5F1FE3EB5F1FE3EB5F1FE3EB4F1FE3DB4F0FE3DB3F0FE3CB2 - EFFE3AB1EEFE38AFECFE36ADEAFE32A9E6FE2EA5E2FE29A0DDFE2098D4FE4297 - BEFE6E878CFE595D5DFE4C4B4BFE494747FE484646FE484646FE484646FE4846 - 46FE484646FE413F3FE60B0A0A6A000000470000002B0000000F202B2B020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000080B - 0B04000000160C0C0C4B413F3FE0484646FE494747FF494747FF484646FE4947 - 47FF4A4949FF545757FE718182FF61A1BAFF2699D3FE259EDCFF29A3E1FF2DA8 - E6FE31ABEAFF33AEECFF35AFEEFE37B1EFFF37B2F0FF38B2F1FF38B3F1FE38B3 - F2FF39B3F2FF39B3F1FE39B3F2FF3AB3F2FF3AB3F1FE3AB4F2FF3AB4F2FF3AB4 - F1FE3AB4F2FF3BB4F2FF3BB4F1FE3BB4F2FF3BB4F2FF3BB4F1FE3BB4F1FF3BB4 - F1FF3AB3F0FE39B2F0FF39B1EEFF37AFECFE34ACEAFF30A9E6FE2BA4E1FF249D - DAFF2497D0FE6094A8FF646E6EFF4F4F4FFE494747FF494747FF484646FE4947 - 47FF494747FF484646FE3F3D3DE00A0A0A6900000045000000260000000C506B - 6B01000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000002C3B3B020000 - 0011050505373D3B3BD4494747FF484646FE494747FF494747FF494747FE4B4A - 4AFF5A5E5EFF778C8FFE49A0C6FF219AD7FF259FDEFE29A5E4FF2CA9E9FF2FAC - ECFE31AEEEFF33AFEFFF33B0F0FE34B1F1FF35B1F1FF35B2F2FF35B2F1FE36B2 - F2FF36B2F2FF36B2F1FE37B2F2FF37B2F2FF37B2F1FE37B3F2FF37B3F2FF37B2 - F1FE38B3F2FF38B3F2FF38B3F1FE38B3F2FF38B3F2FF38B3F1FE38B3F2FF39B3 - F2FF38B3F1FE38B3F1FF38B2F0FF38B1EFFE36B0EEFF34AEECFE30AAE9FF2CA6 - E4FF27A0DEFE1E97D4FF4C97B8FF6A797BFE515252FF4A4848FF494747FE4947 - 47FF494747FF484646FE494747FF3C3A3AD7070707600000003F000000200000 - 0008000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000000000B0202 - 022A333131B6484646FE484646FE484646FE484646FE494747FE4B4A4AFE5D61 - 61FE79959BFE3B9DCBFE1F9AD8FE24A0E0FE28A6E6FE2AAAEAFE2DACEDFE2FAE - EFFE30AFF0FE30AFF0FE31B0F0FE31B0F0FE31B0F0FE32B0F1FE32B0F1FE32B0 - F1FE32B0F1FE33B1F1FE33B1F1FE33B1F1FE33B1F1FE34B1F1FE34B1F1FE34B1 - F1FE34B1F1FE35B1F1FE35B1F1FE35B1F1FE35B1F1FE35B2F1FE36B2F1FE36B2 - F1FE36B2F1FE36B2F1FE36B2F1FE36B2F1FE35B1F0FE34B0EFFE32AEEDFE2FAB - EAFE2BA7E6FE27A1E0FE1E98D7FE3B97C2FE6E7F81FE535555FE4A4848FE4846 - 46FE484646FE484646FE484646FE484646FE353434C801010152000000380000 - 0018040404040000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000050000001C2726 - 268E494747FF484646FE494747FF484646FE494747FF4B4A4AFF5D6363FE789B - A4FF2F9BCFFF1E9ADAFE22A1E2FF26A6E8FF28A9EBFE2AACEDFF2BADEFFF2CAE - F0FE2DAFF1FF2DAFF1FF2DAFF0FE2DAFF1FF2EAFF1FF2EAFF1FF2EAFF0FE2FAF - F1FF2FAFF1FF2FAFF0FE2FAFF1FF2FAFF1FF30AFF0FE30B0F1FF30B0F1FF30B0 - F0FE31B0F1FF31B0F1FF31B0F0FE31B0F1FF31B0F1FF32B0F0FE32B0F1FF32B0 - F1FF32B0F1FE32B0F1FF33B1F1FF33B0F1FE33B1F1FF32B0F0FE32AFF0FF30AE - EEFF2EABEBFE2AA7E7FF26A2E1FF1E99D9FE3197C7FF6C8489FF545656FE4A48 - 48FF494747FF484646FE494747FF494747FF484646FE292828A90000004D0000 - 00300000000F1312120200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000002B373702000000111616165E4644 - 44F4494747FF484646FE494747FF494747FE4B4A4AFF5C6161FF78989FFE2D9B - CFFF1C9ADAFF20A0E2FE24A6E8FF26A9EBFF27ABEEFE28ACEFFF29ADF0FF29AD - F0FE29ADF1FF2AADF1FF2AADF0FE2AAEF1FF2AAEF1FF2BAEF1FF2AAEF0FE2BAE - F1FF2BAEF1FF2BAEF0FE2CAEF1FF2CAEF1FF2CAEF0FE2CAFF1FF2DAFF1FF2DAE - F0FE2DAFF1FF2DAFF1FF2EAFF0FE2EAFF1FF2EAFF1FF2EAFF0FE2EAFF1FF2FAF - F1FF2FAFF0FE2FAFF1FF2FB0F1FF2FAFF0FE30B0F1FF30AFF0FE2FAFF0FF2FAE - F0FF2EADEEFE2BABECFF28A7E8FF24A1E2FE1C99D9FF3296C6FF6B8287FE5253 - 53FF494747FF484646FE494747FF494747FF484646FE474545F8181717830000 - 0044000000220101010800000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000008050505283F3E3EDB4846 - 46FE484646FE484646FE484646FE4A4848FE575A5AFE799397FE359CCDFE1A99 - D9FE1D9FE1FE21A4E8FE23A8ECFE25AAEEFE25ABEFFE26ACF0FE26ACF0FE26AC - F0FE27ACF0FE27ACF0FE27ACF0FE27ACF0FE27ACF0FE28ACF0FE28ACF0FE28AC - F0FE28ADF0FE28ADF0FE28ADF0FE28ADF0FE28ADF0FE29ADF0FE29ADF0FE29AD - F0FE29ADF0FE29ADF0FE2AADF0FE2AADF0FE2AAEF0FE2AAEF0FE2BAEF0FE2BAE - F0FE2BAEF0FE2BAEF0FE2CAEF0FE2CAEF0FE2CAEF0FE2CAEF0FE2CAEF0FE2CAE - F0FE2CADEFFE2BACEEFE29AAECFE26A6E8FE22A0E1FE1B98D9FE3897C4FE6C79 - 7BFE505050FE494747FE484646FE484646FE484646FE484646FE403E3EE30706 - 065D000000370000001606060603000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000A090903000000172B2A2A98494747FF4947 - 47FF494747FF484646FE494747FF525454FE778B8DFF43A0CAFF1797D8FE1A9E - E1FF1DA3E8FF20A7EBFE21A9EEFF22AAEFFF23AAEFFE23ABF0FF23ABF0FF23AB - F0FE24ABF0FF24ABF0FF24ABF0FE24ABF0FF24ABF0FF25ABF0FF25ABF0FE25AB - F0FF25ABF0FF25ABF0FE26ACF1FF26ACF1FF26ACF0FE26ACF1FF26ACF1FF27AC - F0FE27ACF1FF27ACF1FF27ACF0FE27ACF1FF27ACF1FF28ACF0FE28ACF1FF28AC - F1FF457995FE3C8CB5FF2EA4E1FF28ADF0FE29ADF1FF29ADF0FE29ADF1FF29AD - F1FF29ADF0FE29ACF0FF28ABEEFF27A9EBFE23A5E7FF1F9FE1FF1896D7FE4798 - BBFF667172FF4D4D4DFE494747FF494747FF484646FE494747FF494747FF302E - 2EB800000049000000290000000B000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000A11111148464444F2494747FF4947 - 47FF494747FF494747FE4E4E4EFF6D7878FE59A4C3FF1696D6FF189CDFFE1BA2 - E7FF1DA5EBFF1EA7EDFE1FA8EFFF238BBFFF2F7295FE377B9EFF3B7FA1FF3C7F - A2FE3C7FA2FF3C7FA2FF3C7FA2FE2A9AD3FF21AAF0FF21AAF0FF22AAEFFE22AA - F0FF22AAF0FF22AAEFFE22ABF0FF22ABF0FF23AAF0FE23ABF0FF23ABF0FF23AB - F0FE23ABF0FF24ABF0FF24ABF0FE24ABF0FF24ABF0FF24ABF0FE25ABF0FF2F98 - CEFF585757FE5A5859FF565F63FF48768DFE3692C2FF29A6E7FE26ACF1FF26AC - F1FF27ACF0FE27ACF1FF26ABF0FF25AAEEFE24A8EBFF20A3E6FF1C9DDEFE1795 - D4FF5A94ACFF5D6363FE4A4949FF494747FF484646FE494747FF494747FF4846 - 46FB121212740000003C00000019090808030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000200000016353434B6484646FE484646FE4846 - 46FE484646FE4B4949FE5F6565FE75A2AFFE1794D3FE1599DCFE179FE4FE1AA4 - EAFE1BA6EDFE1CA7EEFE1CA8EFFE1F92CDFE33393DFE474646FE525050FE5453 - 53FE545353FE545353FE545353FE44677AFE1FA6EBFE1EA9EFFE1EA9EFFE1EA9 - EFFE1FA9EFFE1FA9EFFE1FA9EFFE1FA9EFFE1FA9EFFE20A9EFFE20A9EFFE20A9 - EFFE20AAEFFE20AAEFFE21AAEFFE21AAEFFE21AAEFFE21AAEFFE22AAEFFE3F73 - 8EFE575656FE585656FE585656FE585656FE585757FE52616AFE417C9BFE2E9A - D1FE23ABF0FE23ABF0FE23ABF0FE23AAEFFE22A9EDFE21A6EAFE1DA1E5FE199A - DCFE1E94CFFE6B8B94FE535454FE494747FE484646FE484646FE484646FE4846 - 46FE383636CE0202024E0000002A0000000A0000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000819181859484646F9484646FE494747FF4947 - 47FF494747FF545656FE799295FF309CCFFE1397DAFF159DE3FF17A2E9FE18A5 - EDFF19A6EFFF19A7EFFE19A7F0FF1AA7EFFF236282FE3A3939FF4B4949FF514F - 4FFE535151FF535151FF535151FE515051FF2D88B7FF1BA8F0FF1CA8EFFE1CA8 - F0FF1CA8F0FF1CA8EFFE1CA8F0FF1CA8F0FF1DA8EFFE1DA8F0FF1DA8F0FF1DA8 - EFFE1DA8F0FF1DA8F0FF1EA8EFFE1EA9F0FF1EA9F0FF1EA8EFFE239EDDFF4E57 - 5CFF565454FE565454FF565454FF565454FE565454FF565454FE565454FF5755 - 55FF4E626EFE3A82A7FF299CD7FF21A9EFFE20A9EEFF1FA7ECFF1DA4E9FE1A9F - E2FF1697D9FF3698C6FE697576FF4D4D4DFF494747FE494747FF494747FF4846 - 46FE484646FE1A1919840000003B000000151312120200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000002000000123B3939BE494747FF484646FE494747FF4947 - 47FF4C4B4BFF6B7575FE5BA4C1FF1193D6FE139AE0FF15A0E7FF16A3ECFE16A5 - EEFF16A6EFFF16A6EFFE17A6F0FF17A6F0FF189CE0FE2C363BFF413F3FFF4D4B - 4BFE504E4EFF514F4FFF514F4FFE514F4FFF465B67FF1CA1E5FF19A7EFFE19A7 - F0FF19A7F0FF19A7EFFE19A7F0FF19A7F0FF1AA7EFFE1AA7F0FF1AA7F0FF1AA7 - EFFE1AA7F0FF1AA8F0FF1BA8EFFE1BA8F0FF1BA8F0FF1BA8EFFE317FA7FF5250 - 50FF535252FE545252FF545252FF535252FE545252FF545252FE545353FF5453 - 53FF545252FE545353FF505559FF3D5F71FE2488BBFF1DA7EEFF1CA6EBFE1AA1 - E7FF169BDFFF1293D4FE5D94AAFF5A5E5EFF4A4848FE494747FF494747FF4846 - 46FE494747FF393737D00101014A000000240101010800000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000611111142484646FC494747FF484646FE494747FF4947 - 47FF565959FF7C9CA3FE1F96D1FF1096DBFE129DE4FF13A1EAFF14A4EDFE14A5 - EEFF14A5EFFF15A5EFFE15A6EFFF15A6EFFF15A5EFFE1D6B92FF343333FF4644 - 44FE4E4C4CFF4F4D4DFF4F4D4DFE4F4D4DFF4E4D4DFF2F7BA2FF16A6EFFE17A6 - F0FF17A6F0FF17A6EFFE17A6F0FF17A6F0FF17A6EFFE17A6F0FF17A7F0FF17A6 - EFFE17A7F0FF18A7F0FF18A7EFFE18A7F0FF18A7F0FF19A4EBFE435C69FF514F - 4FFF525050FE525050FF525050FF525050FE525050FF525050FE525050FF5250 - 50FF525050FE525050FF4E4C4CFF3E3D3DFE23749DFF1AA7EFFF1AA6EDFE19A3 - EAFF169FE4FF1497DBFE2795CBFF6B7E82FF4E4E4EFE494747FF494747FF4846 - 46FE494747FF474545F914131375000000320000001022212101000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000D343232A5484646FE484646FE484646FE494747FE4D4C - 4CFE6C7777FE53A5C7FE0E93D6FE0F9AE0FE119FE7FE12A2ECFE12A3EEFE12A4 - EEFE13A4EEFE13A4EEFE13A4EEFE13A4EEFE13A4EEFE149DE4FE253C49FE3B39 - 39FE494747FE4D4B4BFE4D4B4BFE4D4B4BFE4D4B4BFE494E52FE1A9BDDFE15A5 - EFFE15A5EFFE15A5EFFE15A5EFFE15A5EFFE15A5EFFE16A5EFFE16A5EFFE16A5 - EFFE16A5EFFE16A5EFFE16A5EFFE16A6EFFE16A6EFFE248BC0FE4C4D4EFE4F4D - 4DFE4F4D4DFE4F4D4DFE4F4D4DFE4E4C4CFE4C4A4AFE4D4B4BFE4F4D4DFE504E - 4EFE514F4FFE504E4EFE464545FE32383CFE19A0E5FE18A6EFFE18A6EEFE17A4 - ECFE16A0E8FE139AE0FE0F92D5FE5696B1FE5C6161FE494747FE484646FE4846 - 46FE484646FE484646FE313030BB000000410000001C00000005000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000209090928464444EA494747FF494747FF484646FE494747FF5658 - 58FF809CA1FF1A94D1FE0E96DBFF0E9CE4FE10A0EAFF10A2EDFF10A3EEFE11A4 - EFFF11A4EFFF11A4EEFE11A4EFFF11A4EFFF11A4EEFE11A4EFFF1777A8FF2D2D - 2EFE413F3FFF4B4949FF4C4A4AFE4C4A4AFF4C4A4AFF4C4A4AFF336C89FE13A4 - EDFF13A4EFFF13A4EEFE13A5EFFF13A5EFFF13A5EEFE13A5EFFF13A5EFFF13A5 - EEFE14A5EFFF14A5EFFF14A5EFFE14A5EFFF14A5EFFF36667FFE4D4B4BFF4E4C - 4CFF4E4C4CFE4E4C4CFF4D4B4BFF474545FE3E3C3CFF3D3B3BFE434242FF4947 - 47FF4C4A4AFE4B4949FF3D3C3CFF235C79FE16A6EFFF16A6EFFF16A5EFFE15A4 - EDFF14A1EAFF129DE4FE0F96DAFF2695CBFF6C7E81FE4D4C4CFF494747FF4846 - 46FE494747FF494747FF474545F5050505520000002B0000000C000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000005201F1F68484646FE494747FF494747FF484646FE4B4A4AFF676F - 6FFF60A6C1FF0C91D6FE0D98E0FF0E9EE7FE0FA1ECFF0FA2EEFF0FA3EEFE0FA3 - EFFF0FA3EFFF0FA3EEFE10A4EFFF10A4EFFF10A3EEFE10A4EFFF109FE8FF1F42 - 54FE373535FF454343FF4A4848FE4A4848FF4A4848FF4A4848FF474A4DFE1C90 - CCFF11A4EFFF11A3EEFE11A4EFFF11A4EFFF11A4EEFE11A4EFFF11A4EFFF11A4 - EEFE11A4EFFF12A4EFFF12A4EEFE12A4EFFF169BDFFF474A4CFE4C4A4AFF4C4A - 4AFF4C4A4AFE4C4A4AFF4A4848FF3D3B3BFE2C2A2AFF272626FE2D2C2CFF3635 - 35FF3E3C3CFE3F3D3DFF313335FF1887BFFE14A5EFFF14A5EFFF14A5EEFE13A4 - EEFF12A2EBFF109EE7FE0E98DEFF0F91D4FF6094A9FE565959FF494747FF4846 - 46FE494747FF494747FF484646FE1E1D1D8E0000003B00000017121111020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000A3B3939B8484646FE484646FE484646FE494747FE515151FE7A8F - 91FE2D9BCFFE0C95DAFE0D9BE3FE0D9FE9FE0EA1EDFE0EA2EEFE0EA2EEFE0EA2 - EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE1283 - BDFE2A292AFE3D3C3CFE484646FE494747FE494747FE494747FE494747FE385E - 72FE10A1EBFE0FA3EEFE0FA3EEFE0FA3EEFE0FA3EEFE0FA3EEFE0FA3EEFE10A3 - EEFE10A3EEFE10A3EEFE10A3EEFE10A3EEFE28769EFE494747FE4A4848FE4A48 - 48FE4A4848FE4A4848FE444242FE313132FE186A93FE174A64FE1C2428FE2120 - 20FE272626FE292828FE203F50FE12A2ECFE12A4EEFE12A4EEFE12A4EEFE11A3 - EEFE10A2EDFE0F9FE9FE0E9AE2FE0D94D9FE3698C6FE666F6FFE4B4A4AFE4846 - 46FE484646FE484646FE484646FE3B3939D70202024C00000026000000080000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000C0C0C22464444EA484646FE494747FF494747FF494747FE5B5F5FFF77A4 - B1FF1092D3FF0C97DEFE0D9DE6FF0DA0EBFE0EA2EEFF0EA3EFFF0EA2EEFE0EA3 - EFFF0EA3EFFF0EA2EEFE0EA3EFFF0EA3EFFF0EA2EEFE0EA3EFFF0EA3EFFF0EA2 - EEFE1B4A62FF323131FF434141FE494747FF494747FF494747FF494747FE4748 - 49FF2183B5FF0EA2EEFE0FA3EFFF0FA3EFFF0FA3EEFE0FA3EFFF0FA3EFFF0FA3 - EEFE0FA3EFFF0FA3EFFF0FA3EEFE119FE7FF3B5461FF494747FE4A4848FF4A48 - 48FF4A4848FE484646FF3E3C3CFF254150FE109FE7FF10A3EDFE1192D4FF1461 - 88FF192F3BFE1B1C1DFF146E9CFF10A3EEFE10A4EFFF10A4EFFF10A3EEFE10A3 - EFFF0FA2EEFF0FA0EBFE0D9CE5FF0D96DCFF1291D1FE70898FFF505050FF4947 - 47FE494747FF494747FF484646FE484646FC1514147700000036000000121616 - 1602000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000219191951484646FC484646FE494747FF494747FF4A4949FE6A7373FF5AA6 - C5FF0C92D6FF0C99E1FE0D9EE8FF0DA1ECFE0EA2EEFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE108AC8FF262C30FF3A3939FE464444FF484646FF494747FF484646FE4846 - 46FF3E525DFF0FA0EAFE0EA3EFFF0EA3EFFF0EA2EEFE0EA3EFFF0EA3EFFF0EA2 - EEFE0EA3EFFF0EA3EFFF0EA2EEFE1B8AC4FF474647FF494747FE4A4848FF4A48 - 48FF494747FE454343FF363434FF196891FE0FA3EFFF0EA2EEFE0FA3EFFF0FA3 - EFFF0F9EE7FE117BB2FF0F9AE1FF0FA3EEFE0FA3EFFF0FA3EFFF0FA3EEFE0FA3 - EFFF0EA2EEFF0EA1ECFE0D9EE7FF0D98E0FF0C91D5FE5C96ACFF585C5CFF4947 - 47FE494747FF494747FF484646FE494747FF323131BF000000440000001F0505 - 0506000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00032B2A2A8B484646FE484646FE484646FE494747FE4E4E4EFE7B8D8EFE309B - CEFE0C94DAFE0D9BE4FE0D9FEAFE0DA1EDFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE18597BFE2F2E2EFE424040FE484646FE484646FE484646FE4846 - 46FE484646FE2777A0FE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE30637DFE484646FE484646FE484646FE4846 - 46FE484646FE3F3E3EFE2B2D2FFE0F97DCFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2 - EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2 - EEFE0DA2EEFE0DA1EDFE0D9FE9FE0D9AE3FE0C94D9FE3B97C2FE646D6DFE4A48 - 48FE484646FE484646FE484646FE484646FE454343F40D0C0C65000000300000 - 000F252424010000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00063F3E3EBB494747FF484646FE494747FF494747FF545656FE7E9FA6FF1994 - D2FF0D96DDFF0D9CE5FE0EA0EBFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0F93D7FF233037FE393737FF454444FF484646FF484646FE4947 - 47FF494747FF414E55FE1497DBFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF1397DBFE414B50FF484646FF484646FE494747FF4947 - 47FF464444FE393737FF1F4D65FF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA0EAFF0D9CE4FF0C95DBFE2295CDFF6C7E82FF4C4C - 4CFE494747FF494747FF484646FE494747FF494747FE282727A60000003F0000 - 001B030303040000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0008474545E4494747FF484646FE494747FF494747FF5B6060FE74A7B7FF0F92 - D4FF0D98DFFF0D9EE7FE0EA1ECFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF16658DFE2E2D2DFF403E3EFF484646FF484646FE4947 - 47FF494747FF484646FE2E6B8BFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF237AA7FE474545FF494747FF484646FE494747FF4846 - 46FF434141FE313131FF147AAEFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA1EBFF0D9DE6FF0C97DDFE1292D2FF6C8C96FF5051 - 51FE494747FF494747FF484646FE494747FF494747FF444242EB0302024E0000 - 002A0000000B0000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000D0D - 0D16484646FE484646FE484646FE484646FE4A4848FE646B6BFE64A9C3FE0C92 - D6FE0C99E1FE0D9EE8FE0DA1EDFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0E9EE7FE21333CFE363535FE454343FE484646FE4846 - 46FE484646FE484646FE45494CFE198ECAFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0EA2EEFE395463FE484646FE484646FE484646FE484646FE4745 - 45FE3D3B3BFE263944FE0E9CE5FE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA1ECFE0D9DE7FE0C98E0FE0C91D4FE6395A8FE5557 - 57FE484646FE484646FE484646FE484646FE484646FE484646FE1F1E1E8E0000 - 003A000000160D0D0D0200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001818 - 1834494747FF494747FF484646FE494747FF4B4A4AFF6C7777FE51A7CBFF0C93 - D8FF0D9AE2FF0D9FE9FE0EA1EDFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE1472A2FF2B2B2CFF3E3D3DFF474545FE4947 - 47FF494747FF484646FE484646FF365E73FF0EA2EDFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF1790CEFF454445FE484646FF494747FF484646FE484646FF4543 - 43FF363434FE1A5F83FF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA1EDFF0D9EE8FF0C99E1FE0C92D6FF5497B4FF5A5F - 5FFE494747FF494747FF484646FE494747FF494747FF484646FE3A3838D20202 - 024B000000250000000800000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001A19 - 194B494747FF494747FF484646FE494747FF4D4C4CFF748181FE40A3CFFF0C94 - D9FF0D9BE3FF0D9FE9FE0EA2EDFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE0E9EE8FF1E3D4EFF343333FF444242FE4846 - 46FF494747FF484646FE494747FF474546FF1D87BDFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF2A6C8FFF484646FE494747FF494747FF484646FE484646FF413F - 3FFF2D2F30FE118BCAFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA1EDFF0D9FE9FF0D9AE2FE0C93D8FF4798BCFF5F66 - 66FE494747FF494747FF484646FE494747FF494747FF484646FE484646FB1312 - 127300000035000000111A191901000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A60484646FE484646FE484646FE484646FE4E4E4EFE7A8A8AFE349FD1FE0C95 - DAFE0D9BE4FE0D9FEAFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE1280B9FE282A2BFE3D3B3BFE4745 - 45FE484646FE484646FE484646FE484646FE3C5563FE109DE5FE0DA2EEFE0DA2 - EEFE109DE4FE3C4F59FE484646FE484646FE484646FE484646FE464444FE3A39 - 39FE21465AFE0EA0EBFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0D9FE9FE0D9AE3FE0C94D9FE3E99C3FE646C - 6CFE494747FE484646FE484646FE484646FE484646FE484646FE484646FE312F - 2FBD000000440000001F03030306000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A64494747FF494747FF484646FE494747FF4F4F4FFF7F9090FE2A9BD2FF0C95 - DBFF0D9BE5FF0DA0EAFE0EA2EEFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA0EBFF1B4B63FF323131FE4341 - 41FF484646FF484646FE494747FF494747FF484646FE2679A4FF0EA3EFFF0DA2 - EEFE1B87BFFF454444FF484646FE494747FF494747FF484646FE434242FF3331 - 31FF1672A1FE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA2EEFF0E9FEAFF0D9BE4FE0C94D9FF3799C6FF6771 - 71FE4A4848FF494747FF484646FE494747FF494747FF484646FE494747FF4543 - 43F20C0C0C630000002F0000000E292727010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A64494747FF494747FF484646FE494747FF505050FF819393FE279AD1FF0C95 - DBFF0D9CE5FF0DA0EAFE0EA2EEFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF108CCCFF27282AFE3B39 - 39FF464444FF484646FE494747FF494747FF484646FE414E56FF1399DDFF0DA2 - EEFE2B6A8BFF474545FF484646FE494747FF494747FF484646FE3E3D3DFF2930 - 34FF0E9CE4FE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA2EEFF0E9FEAFF0D9BE4FE0C94D9FF3498C7FF6973 - 73FE4A4848FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF262525A20000003E0000001A060606040000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A64484646FE484646FE484646FE484646FE505050FE819393FE289AD1FE0C95 - DBFE0D9BE5FE0DA0EAFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE185878FE302E - 2EFE414040FE484646FE484646FE484646FE484646FE484646FE2F6B8BFE0FA0 - E9FE3E515CFE484646FE484646FE484646FE484646FE454343FE373636FE1C56 - 74FE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0D9FEAFE0D9BE4FE0C94D9FE3599C7FE6973 - 73FE4A4848FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE444242EA0202024E0000002A0000000B0000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A63494747FF494747FF484646FE494747FF4F4F4FFF7F9090FE2D9DD2FF0C95 - DBFF0D9BE4FF0DA0EAFE0EA2EEFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0EA3EFFF0F92D4FE242F - 36FF393737FF464444FE484646FF494747FF484646FE494747FF46494CFF2381 - B1FE46494BFF494747FF484646FE494747FF484646FF424040FE2F3032FF1382 - BCFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA2EEFF0E9FEAFF0D9BE3FE0C94D9FF3999C6FF6770 - 70FE4A4848FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE1B1B1B880000003A000000161312120200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A5E494747FF494747FF484646FE494747FF4E4E4EFF7A8989FE38A0D1FF0C95 - DAFF0D9BE4FF0D9FEAFE0EA2EEFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0EA3EFFF0DA2EEFE1662 - 89FF2E2C2CFF413F3FFE484646FF494747FF484646FE494747FF494747FF454B - 4FFE494747FF494747FF484646FE494747FF474545FF3B3A3AFE243D4AFF0E9F - EAFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA2EDFF0E9FE9FF0D9AE3FE0C93D9FF419AC2FF646C - 6CFE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE393737CF0202024A000000240000000700000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001A1A - 1A48484646FE484646FE484646FE484646FE4C4C4CFE738080FE47A5CFFE0C94 - D9FE0C9AE3FE0D9FE9FE0DA1EDFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0FA3EFFE149B - E1FE293D48FE414040FE504E4EFE555353FE565454FE575555FE575555FE5654 - 54FE565454FE555353FE535151FE514F4FFE4B4949FE373636FE196B94FE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA1EDFE0D9FE8FE0C9AE2FE0C93D7FE4D9ABBFE5F65 - 65FE494747FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FB1212127200000035000000111D1C1C01000000000000 - 0000000000000000000000000000000000000000000000000000000000001A19 - 1931494747FF494747FF484646FE494747FF4B4A4AFF6B7575FE59A9CAFF0C93 - D7FF0D99E2FF0D9EE9FE0EA1EDFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0EA3EEFE10A4EFFF17A6EFFF1FA9F0FF24ABF0FE25AB - F0FF2B7FAAFF413F3FFE515050FF595858FF5B5959FE5B5959FF5B5959FF5B59 - 59FE5B5959FF5B5959FF5B5959FE5A5858FF535151FF3F4549FE269BD8FF1EA9 - F0FF16A6EFFE10A3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA1ECFF0D9EE8FF0C99E1FE0C92D6FF5C9AB2FF5A5E - 5EFE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF302E2EB9000000430000001E04040405000000000000 - 0000000000000000000000000000000000000000000000000000000000000F0F - 0F0F494747FF494747FF484646FE494747FF4A4848FF626A6AFE6CACC3FF0C92 - D6FF0D98E0FF0D9EE8FE0EA1ECFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF12A4EFFF1FA9F0FE28ADF0FF2BAEF1FF2BAEF1FF2BAEF0FE2BAE - F1FF2BACEEFF3A525FFE4E4C4CFF5B5959FF5F5D5DFE5F5D5DFF5F5D5DFF5F5D - 5DFE5F5D5DFF5F5D5DFF5F5D5DFE5D5B5BFF525050FF3A6378FE2BADEFFF2BAE - F1FF2BAEF0FE27ACF0FF1EA9F0FF11A4EFFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA1ECFF0D9DE7FF0C98DFFE0D91D4FF6A96A5FF5456 - 56FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF444242F00A09095F0000002E0000000D222121010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0001484646E6484646FE484646FE484646FE494747FE5A5E5EFE7CA9B6FE1292 - D3FE0C97DEFE0D9DE7FE0DA0EBFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE11A4 - EFFE22AAF0FE2FAFF1FE30B0F1FE30B0F1FE30B0F1FE30B0F1FE30B0F1FE30B0 - F1FE30B0F1FE3490BFFE484A4CFE585757FE626060FE636161FE636161FE6361 - 61FE636161FE636161FE636161FE5E5C5CFE4F4E4EFE368EBCFE30B0F1FE30B0 - F1FE30B0F1FE30B0F1FE30B0F1FE2EAFF1FE20A9F0FE10A3EFFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA0EBFE0D9CE6FE0C96DDFE1793D1FE708C92FE4F50 - 50FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE252424A00000003E0000001A0A0909040000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000444242BA494747FF484646FE494747FF494747FF535454FE84A0A3FF2097 - D1FF0D96DCFF0D9CE5FE0EA0EAFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF1AA7EFFF30B0 - F1FE37B2F2FF37B2F2FF36B2F1FE37B2F2FF37B2F2FF37B2F2FF36B2F1FE37B2 - F2FF37B2F2FF37B1EFFE42687BFF555454FF636161FE676565FF676666FF6766 - 66FE676666FF676666FF666464FE5E5C5CFF4B575DFF37B0EEFE37B2F2FF37B2 - F2FF36B2F1FE37B2F2FF37B2F2FF36B2F1FE36B2F2FF2FAFF1FE17A6EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EDFE0E9FEAFF0D9BE4FF0C95DAFE2B97CBFF6E7D7FFF4C4B - 4BFE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF424040E70101014D000000290000000A0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00002D2B2B86484646FE484646FE484646FE494747FE4D4D4DFE7A8B8BFE40A2 - CEFE0C94D9FE0D9AE3FE0D9FE9FE0DA1EDFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE22AAF0FE3AB4F1FE3CB5 - F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5 - F1FE3CB5F1FE3CB5F1FE3F9FCFFE535759FE656363FE6B6A6AFE6C6A6AFE6C6A - 6AFE6C6A6AFE6C6A6AFE696868FE5D5C5CFE477E9AFE3CB5F1FE3CB5F1FE3CB5 - F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE39B3F1FE1EA9 - EFFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA1EDFE0D9EE8FE0D9AE2FE0C93D7FE4A9BBFFE636B6BFE4A48 - 48FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE1A19198300000038000000150000 - 0002000000000000000000000000000000000000000000000000000000000000 - 00001C1B1B46494747FD484646FE494747FF494747FF4A4949FE677070FF6BAC - C3FF0C91D5FF0C98E0FE0D9EE7FF0DA1ECFE0EA2EEFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF26ACF0FE42B7F2FF43B7F2FF43B7 - F2FE43B7F2FF43B7F2FF43B7F2FE43B7F2FF43B7F2FF43B7F2FF43B7F2FE43B7 - F2FF43B7F2FF43B7F2FE43B6F1FF528099FF6A6868FE706F6FFF716F6FFF716F - 6FFE716F6FFF716F6FFF6B6969FE5B5F61FF46A5D5FF43B7F2FE43B7F2FF43B7 - F2FF43B7F2FE43B7F2FF43B7F2FF43B7F2FE43B7F2FF43B7F2FE43B7F2FF41B6 - F2FF21AAF0FE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA2EEFF0DA0EBFE0D9DE7FF0D97DEFF0C90D4FE6C99A9FF575959FF4947 - 47FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE383737CE02010149000000240000 - 0007000000000000000000000000000000000000000000000000000000000000 - 00000F0F0F17474545E9484646FE494747FF494747FF494747FE595D5DFF81A6 - ADFF1894D2FF0C96DCFE0D9CE5FF0DA0EAFE0EA2EEFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF21AAF0FF47B8F2FE49B9F3FF49B9F3FF49B9 - F2FE49B9F3FF49B9F3FF49B9F2FE49B9F3FF49B9F3FF49B9F3FF49B9F2FE49B9 - F3FF49B9F3FF49B9F2FE49B9F3FF4DAFE1FF717070FE757474FF767474FF7574 - 74FE767474FF747373FF6B6A6AFE597380FF4AB8F1FF49B9F2FE49B9F3FF49B9 - F3FF49B9F2FE49B9F3FF49B9F3FF49B9F2FE49B9F3FF49B9F2FE49B9F3FF49B9 - F3FF46B8F2FE1BA7EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA2EDFF0D9FEAFE0D9BE4FF0C95DBFF1D95D0FE75888AFF4F4F4FFF4947 - 47FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE474545F91010106E000000340000 - 0010000000010000000000000000000000000000000000000000000000000000 - 0000000000003F3D3DB8484646FE484646FE484646FE484646FE505050FE7A8C - 8DFE41A2CEFE0C93D8FE0D9AE2FE0D9EE8FE0DA1EDFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE13A5EFFE47B8F2FE50BCF3FE50BCF3FE50BCF3FE50BC - F3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BC - F3FE50BCF3FE50BCF3FE50BCF3FE5AA7CFFE797777FE7B7979FE7B7979FE7B79 - 79FE7B7979FE777676FE6B6A6AFE5698B9FE50BCF3FE50BCF3FE50BCF3FE50BC - F3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BC - F3FE50BCF3FE41B6F2FE11A4EFFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA1ECFE0D9EE8FE0C99E1FE0C92D7FE4B9EC2FE646C6CFE4A4949FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE2E2D2DB4000000430000 - 001D000000050000000000000000000000000000000000000000000000000000 - 00000000000024232360484646FE494747FF494747FF484646FE4A4949FF646C - 6CFF77ADBEFF0C90D4FE0D97DEFF0D9DE6FE0EA0EBFF0EA2EEFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE34B1F1FF58BEF4FF57BEF3FE58BEF4FF58BEF4FF57BE - F3FE58BEF4FF58BEF4FF57BEF3FE58BEF4FF58BEF4FF58BEF4FF57BEF3FE58BE - F4FF58BEF4FF57BEF3FE58BEF3FF6E94A8FF807E7EFE807F7FFF807F7FFF807F - 7FFE807E7EFF797878FF6A7277FE59B7E7FF58BEF4FF57BEF3FE58BEF4FF58BE - F4FF57BEF3FE58BEF4FF58BEF4FF57BEF3FE58BEF4FF57BEF3FE58BEF4FF58BE - F4FF57BEF3FE58BEF4FF2AADF0FF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA2 - EDFF0EA0EAFF0D9CE6FE0D96DDFF1392D2FF6F97A3FE545656FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF444242F00909095E0000 - 002D0000000D0000000100000000000000000000000000000000000000000000 - 0000000000000C0C0C19484646E9494747FF494747FF484646FE494747FF5456 - 56FF849A9BFF2E9CD1FE0C94DAFF0D9AE3FE0E9FE9FF0EA1EDFF0DA2EEFE0EA3 - EFFF0EA3EFFF0FA3EFFE54BDF3FF5EC1F4FF5EC1F4FE5EC1F4FF5EC1F4FF5EC1 - F4FE5EC1F4FF5EC1F4FF5EC1F4FE5EC1F4FF5EC1F4FF5EC1F4FF5EC1F4FE5EC1 - F4FF5EC1F4FF5EC1F4FE60BDECFF7E888FFF858484FE868484FF868484FF8584 - 84FE848282FF7A7A7AFF688EA1FE5EC1F3FF5EC1F4FF5EC1F4FE5EC1F4FF5EC1 - F4FF5EC1F4FE5EC1F4FF5EC1F4FF5EC1F4FE5EC1F4FF5EC1F4FE5EC1F4FF5EC1 - F4FF5EC1F4FE5EC1F4FF4BBAF2FF0FA3EFFE0EA3EFFF0EA3EFFF0DA2EEFE0EA1 - ECFF0D9EE8FF0D9AE2FE0C93D8FF3B9BC7FF6E7B7CFE4C4B4BFF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE2423239C0000 - 003D000000190000000300000000000000000000000100000000000000000000 - 000000000000020202013B39399D484646FE484646FE484646FE484646FE4C4B - 4BFE697272FE6DAEC5FE0E91D4FE0C97DEFE0D9DE6FE0DA0EBFE0DA2EDFE0DA2 - EEFE0DA2EEFE1DA8F0FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4 - F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4 - F4FE65C4F4FE65C4F4FE6EB4D8FE898889FE8B8989FE8B8989FE8B8989FE8A89 - 89FE868585FE7B7A7AFE68B0D5FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4 - F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4 - F4FE65C4F4FE65C4F4FE5FC1F4FE18A6EFFE0DA2EEFE0DA2EEFE0DA1EDFE0DA0 - EAFE0D9CE5FE0C97DDFE1091D3FE6B9AAAFE595D5DFE494747FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE413F3FE30000 - 0049000000280000000A00000000000000000000000200000000000000000000 - 000000000000000000001A1A1A2E494747FD494747FF484646FE494747FF4947 - 47FF545656FF849C9DFE329DCFFF0C93D8FE0D9AE2FF0D9EE8FF0DA1ECFE0EA2 - EEFF0EA3EFFF2CAEF1FE6DC7F5FF6DC7F5FF6CC7F5FE6DC7F5FF6DC7F5FF6CC7 - F5FE6DC7F5FF6DC7F5FF6CC7F5FE6DC7F5FF6DC7F5FF6DC7F5FF6CC7F5FE6DC7 - F5FF6DC7F5FF6CC7F5FE81A5B8FF908F8FFF908F8FFE908F8FFF908F8FFF8F8E - 8EFE898787FF7A8890FF6CC7F5FE6DC7F5FF6DC7F5FF6CC7F5FE6DC7F5FF6DC7 - F5FF6CC7F5FE6DC7F5FF6DC7F5FF6CC7F5FE6DC7F5FF6CC7F5FE6DC7F5FF6DC7 - F5FF6CC7F5FE6DC7F5FF6BC6F5FF22AAF0FE0EA2EFFF0EA2EEFF0DA1ECFE0D9E - E7FF0D99E1FF0C93D8FE3E9CC6FF6E7B7CFF4D4D4DFE494747FF494848FF4B4A - 4AFE4D4D4DFF4E4D4DFF4E4D4DFE4E4D4DFF4E4D4DFF4E4D4DFE4E4D4DFF4E4D - 4DFF4D4D4DFE4C4B4BFF4A4949FF494747FE494747FF494747FF484646FE1A19 - 1982000000390000001500000002000000000000000100000000000000000000 - 0000000000000000000000000000484646B7494747FF484646FE494747FF4947 - 47FF4B4A4AFF677070FE77ADBEFF1192D3FE0D96DDFF0D9CE5FF0D9FEAFE0EA1 - EDFF0EA2EEFF32B1F1FE74CAF6FF74CAF6FF74CAF5FE74CAF6FF74CAF6FF74CA - F5FE74CAF6FF74CAF6FF74CAF5FE76C3EBFF889EAAFF8EA0AAFF8FA1AAFE8FA1 - ABFF8FA1ABFF8FA1AAFE94989AFF969595FF969595FE969595FF969595FF9492 - 92FE8A898AFF7AA8BFFF74CAF5FE74CAF6FF74CAF6FF74CAF5FE74CAF6FF74CA - F6FF74CAF5FE74CAF6FF74CAF6FF74CAF5FE74CAF6FF74CAF5FE74CAF6FF74CA - F6FF74CAF5FE74CAF6FF74CAF6FF26ACF0FE0EA2EEFF0EA1ECFF0D9FE9FE0D9B - E4FF0C95DBFF1492D1FE7498A2FF585B5BFF494747FE494747FF4D4E4FFF5A68 - 6DFE68797EFF6B7D82FF6B7D82FE6B7D82FF6B7D82FF6B7D82FE6B7D82FF6B7D - 82FF6A7C81FE647073FF545656FF4A4848FE494747FF494747FF484646FE3735 - 35CA010101480000002300000006000000000000000100000000000000000000 - 000000000000000000000000000048464640484646F8484646FE484646FE4846 - 46FE494747FE525353FE7B8E8EFE4FA7CDFE0C92D6FE0D98DFFE0D9DE7FE0DA0 - EBFE0DA1EDFE2CAEF0FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCD - F5FE7BCDF5FE7BCDF5FE7BCDF5FE7EC5E8FE93979AFE9B9A9AFE9C9B9BFE9C9B - 9BFE9C9B9BFE9C9B9BFE9C9B9BFE9C9B9BFE9C9B9BFE9C9B9BFE9B9A9AFE9796 - 96FE8C8F92FE7DC3E6FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCD - F5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCD - F5FE7BCDF5FE7BCDF5FE78CBF5FE22AAEFFE0DA1EDFE0DA0EAFE0D9DE6FE0C97 - DEFE0D92D5FE56A1C0FE677070FE4C4B4BFE494747FE494747FE515B5EFE66BB - E3FE7FD0F6FE7FD0F6FE7FD0F6FE7FD0F6FE7FD0F6FE7FD0F6FE7FD0F6FE7FD0 - F6FE7FD0F6FE86BCD6FE646969FE4C4A4AFE484646FE484646FE484646FE4745 - 45F80F0E0E6A000000330000000F000000010000000100000000000000000000 - 000000000000000000000000000048464601535858B1484646FE494747FF4947 - 47FF494747FF4A4848FE5C6161FF87A5A9FE2699D1FF0C94D9FF0C99E1FE0D9E - E8FF0EA0EBFF1AA6EEFE81CFF6FF83CFF7FF83CFF6FE83CFF7FF83CFF7FF83CF - F6FE83CFF7FF83CFF7FF83CFF6FE85C8EAFF9A9EA0FFA1A0A0FFA1A0A0FEA1A0 - A0FFA1A0A0FFA1A0A0FEA1A0A0FFA1A0A0FFA1A0A0FEA1A0A0FFA09F9FFF9998 - 98FE8CA3AFFF83CFF7FF83CFF6FE83CFF7FF83CFF7FF83CFF6FE83CFF7FF83CF - F7FF83CFF6FE83CFF7FF83CFF7FF83CFF6FE83CFF7FF83CFF6FE83CFF7FF83CF - F7FF83CFF6FE83CFF7FF76CAF6FF16A5EEFE0EA0EBFF0D9DE7FF0C99E1FE0C93 - D8FF329ACAFF75898CFE515252FF494747FF484646FE494747FF535B5FFF68BC - E2FE80D1F7FF80D1F7FF82CBEDFE82C8E7FF7FC5E5FF7EC4E4FE7EC4E4FF7EC4 - E4FF7EC4E4FE81B0C6FF616565FF4B4A4AFE494747FF494747FF484646FE4947 - 47FF2E2D2DB4000000420000001D000000050000000000000000000000000000 - 0000000000000000000000000000000000008AAEAE2F484646F2494747FF4947 - 47FF494747FF494747FE4D4D4DFF687171FE79AEBEFF1794D2FF0C95DBFE0D9B - E3FF0D9EE8FF0EA1EBFE6CC6F4FF8AD2F7FF8AD2F7FE8AD2F7FF8AD2F7FF8AD2 - F7FE8AD2F7FF8AD2F7FF8AD2F7FE8CCBEBFF9FA3A5FFA6A5A5FFA6A5A5FEA6A5 - A5FFA6A5A5FFA6A5A5FEA6A5A5FFA6A5A5FFA6A5A5FEA6A5A5FFA4A3A3FF9B9B - 9BFE8DBED8FF8AD2F7FF8AD2F7FE8AD2F7FF8AD2F7FF8AD2F7FE8AD2F7FF8AD2 - F7FF8AD2F7FE8AD2F7FF8AD2F7FF8AD2F7FE8AD2F7FF8AD2F7FE8AD2F7FF8AD2 - F7FF8AD2F7FE8AD2F7FF5DC0F3FF0EA0EBFE0D9EE8FF0D9AE2FF0C94DAFE1D95 - D0FF7298A3FF5A5F5FFE4A4848FF494747FF484646FE494747FF4F5050FF5D8E - A3FE7CCFF6FF80D1F7FF86C7E4FE899DA0FF6E7B7DFF636D6FFE626B6DFF626B - 6DFF616B6CFE5C6263FF515151FF4A4848FE494747FF494747FF484646FE4947 - 47FF434141ED0808085A0000002B0000000B0000000000000000000000000000 - 000000000000000000000000000000000000ABE2E2015E696989484646FE4846 - 46FE484646FE484646FE494747FE515252FE768484FE68ADC7FE0F91D3FE0C96 - DCFE0D9BE4FE0D9EE8FE39B1EFFE8FD4F6FE91D5F7FE91D5F7FE91D5F7FE91D5 - F7FE91D5F7FE91D5F7FE91D5F7FE93CEECFEA3A6A9FEA8A7A7FEA8A8A8FEA8A8 - A8FEA8A8A8FEA8A8A8FEA8A8A8FEA8A8A8FEA8A8A8FEA8A8A8FEA5A4A4FE9CA4 - A8FE92D1F2FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5 - F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5 - F7FE91D5F7FE8DD3F6FE2AACEDFE0D9EE8FE0D9AE3FE0C95DBFE1091D2FE6CA1 - B3FE636B6BFE4C4B4BFE494747FE484646FE484646FE484646FE4A4949FE5659 - 59FE65AAC8FE7ED0F6FE7FD0F6FE89BACFFE6F7879FE535454FE4B4A4AFE4B4A - 4AFE4B4A4AFE4A4949FE494848FE494747FE484646FE484646FE484646FE4846 - 46FE484646FE2121219600000038000000140000000100000000000000000000 - 00000000000000000000000000000000000000000000ADE4E409494747D64947 - 47FF494747FF484646FE494747FF494747FE555757FF7C8E8FFF5BAACAFE0D91 - D4FF0C96DDFF0D9BE4FE11A0E9FF6DC6F3FF99D7F7FE99D7F8FF99D7F8FF99D7 - F7FE99D7F8FF99D7F8FF99D7F7FE9AD0ECFFA3A6A8FFA6A5A5FFA6A5A5FEA6A5 - A5FFA6A5A5FFA6A5A5FEA6A5A5FFA6A5A5FFA6A5A5FEA5A5A5FFA4A3A3FF9DBA - C9FE99D7F8FF99D7F8FF99D7F7FE99D7F8FF99D7F8FF99D7F7FE99D7F8FF99D7 - F8FF99D7F7FE99D7F8FF99D7F8FF99D7F7FE99D7F8FF99D7F7FE99D7F8FF99D7 - F8FF99D7F7FE5DBFF1FF0F9FE8FF0D9AE3FE0C96DBFF1092D3FF5FA2BCFE6973 - 73FF4E4E4EFF494747FE494747FF494747FF484646FE494747FF494747FF4B4A - 4AFE596467FF6BB8DAFF7FD0F6FE80D0F6FF88ABBAFF656C6CFE4E4D4DFF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF3F3D3DDD000000430000001E0000000500000000000000000000 - 000000000000000000000000000000000000000000000000000088ABAB414A49 - 49F3494747FF484646FE494747FF484646FE4A4949FF595C5CFF819597FE50A7 - CCFF0E92D4FF0C96DCFE0D9BE3FF22A6EAFF89D0F5FEA1DAF8FFA1DAF8FFA0DB - F8FEA1DBF8FFA1DBF8FFA0DBF8FEA1D1E9FFA5A6A7FFA5A5A5FFA5A5A5FEA5A5 - A5FFA5A5A5FFA5A5A5FEA5A5A5FFA5A5A5FFA5A5A5FEA5A5A5FFA5A5A5FFA1D2 - EAFEA1DBF8FFA1DBF8FFA0DBF8FEA1DBF8FFA1DBF8FFA0DBF8FEA1DBF8FFA1DB - F8FFA0DBF8FEA1DBF8FFA1DBF8FFA0DBF8FEA1DBF8FFA0DBF8FEA1DAF8FFA0DA - F8FF81CDF4FE17A2E8FF0D9AE3FF0C96DCFE1092D3FF58A1BEFF6F7C7DFE5051 - 51FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4947 - 47FE4E4D4DFF5C747CFF72C5EAFE80D1F7FF82CDF1FF849DA6FE5C6161FF4C4B - 4BFF494747FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FD0E0E0E60000000270000000800000000000000000000 - 0000000000000000000000000000000000000000000000000000000000006777 - 777C484646FE484646FE484646FE484646FE494747FE4B4A4AFE5A5E5EFE8299 - 9AFE55A9CCFE0D90D4FE0C96DBFE0D9AE2FE2AA9E9FE98D6F6FEA7DCF8FEA7DD - F8FEA7DDF8FEA7DEF8FEA7DEF8FEA8DBF5FEA8D1E5FEA8D0E4FEA8D0E4FEA8D0 - E4FEA8D0E4FEA8D0E4FEA8D0E4FEA8D0E4FEA8D0E4FEA8D0E4FEA8D1E5FEA7DE - F8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DE - F8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DDF8FEA7DDF8FEA7DCF8FE8CD1 - F4FE22A5E8FE0D99E1FE0C95DAFE0E90D3FE5DA3BFFE707E7FFE525353FE4947 - 47FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE494747FE505151FE5E8594FE7ACEF5FE80D0F6FE85C9E9FE7D8A8DFE575A - 5AFE4A4949FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE242323970000002E0000000C00000000000000000000 - 000000000000000000000000000000000000000000000000000000000000B8F6 - F6065B6363A9484646FE494747FF484646FE494747FF494747FF4B4949FE595D - 5DFF7E9091FF68ADC8FE1392D2FF0C94DAFF0C99E0FE26A6E8FF8BD0F4FFAFDF - F8FEAFDFF9FFAFE0F9FFAFE0F9FEAFE0FAFFAFE0FAFFAFE0FAFFAFE0F9FEAFE0 - FAFFAFE0FAFFAFE0F9FEAFE0FAFFAFE0FAFFAFE0F9FEAFE0FAFFAFE0FAFFAFE0 - F9FEAFE0FAFFAFE0FAFFAFE0F9FEAFE0FAFFAFE0FAFFAFE0F9FEAFE0FAFFAFE0 - FAFFAFE0F9FEAFE0FAFFAFE0FAFFAFE0F9FEAFDFF9FFAFDFF8FE7FCCF3FF1EA2 - E6FF0C98DFFE0C94D9FF1994D1FF69A4B9FE6D7878FF515252FF494747FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF4A4848FF535555FE639AB1FF7DCFF5FF80D0F6FE87C1DCFF7480 - 81FF545555FE4A4848FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE343333C5000000320000000E00000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000A2D3D311464A4DCE494747FF484646FE494747FF494747FF494747FE4B49 - 49FF565959FF768585FE74AEC1FF2398D1FF0C92D7FE0D97DDFF1AA0E4FF6BC3 - F0FEAFDFF8FFB6E2F9FFB5E2F9FEB6E3FAFFB6E3FAFFB6E3FAFFB5E3F9FEB6E3 - FAFFB6E3FAFFB5E3F9FEB6E3FAFFB6E3FAFFB5E3F9FEB6E3FAFFB6E3FAFFB5E3 - F9FEB6E3FAFFB6E3FAFFB5E3F9FEB6E3FAFFB6E3FAFFB5E3F9FEB6E3FAFFB6E3 - FAFFB5E3F9FEB6E3FAFFB6E2F9FFB5E2F8FEAADDF7FF61BFEEFE149DE3FF0C96 - DDFF0C92D6FE2998CEFF729FADFF687272FE4F5050FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF4B4949FE575E5FFF73B2CDFF91D7F8FE8FD6F7FF91B8 - C9FF6B7474FE4F5050FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE3F3E3EDB040404370000000E00000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000001B79A921464A4DDE484646FE484646FE484646FE484646FE4947 - 47FE4A4848FE525353FE6D7878FE83A9B1FE44A4CFFE0C90D4FE0C94DAFE0D98 - DFFE37ACE8FE8CD0F3FEBBE4F9FEBDE5F9FEBDE5F9FEBDE5FAFEBDE5FAFEBDE6 - FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6 - FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE5FAFEBDE5 - FAFEBDE5F9FEBDE5F9FEB9E3F8FE81CCF2FE2EA8E7FE0D98DFFE0C94D9FE0F91 - D3FE49A2C9FE7A969BFE606767FE4D4D4DFE494747FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE494747FE4C4C4CFE5F6C70FE95CDE6FEA9E0F9FEA8DE - F7FE94ABB4FE5F6565FE4C4B4BFE494747FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE444242E6060606390000000C00000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000001A7BAC29454B4FDD494747FF494747FF484646FE4947 - 47FF494747FF494747FE4E4D4DFF5E6464FF809393FE71AEC4FF2799D1FF0C91 - D5FE0C95DBFF0E99E0FF34ABE7FE80CBF1FFB3E0F7FFC4E7FAFFC3E7F9FEC4E7 - FAFFC4E7FBFFC3E8FAFEC4E8FBFFC4E8FBFFC3E8FAFEC4E8FBFFC4E8FBFFC3E8 - FAFEC4E8FBFFC4E8FBFFC3E8FAFEC4E8FBFFC4E7FBFFC3E7FAFEC4E7FAFFC4E7 - FAFFAEDEF7FE76C7F0FF2EA8E6FF0C98DFFE0C95DAFF0C91D4FE2E9ACEFF71A4 - B4FF728080FE565858FF4B4A4AFF494747FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF4E4E4EFF677B82FEA6DCF4FFB0E1 - FAFFAEDDF3FE808C8EFF555757FF494747FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE434141E1060606310000000800000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000001A7BAC29464A4DDC494747FF484646FE4947 - 47FF494747FF484646FE494747FF4B4949FF545656FE6C7777FF83A2A6FF60AB - C8FE2197D1FF0D92D5FF0C94DAFE0E98DEFF1EA1E3FF49B4EAFF83CCF2FEAADD - F6FFBEE5F9FFC8E9FAFECAEAFAFFCAEAFAFFCAEAFAFECAEAFBFFCAEAFBFFCAEA - FAFECAEAFBFFCAEAFAFFCAEAFAFEC7E9FAFFBDE5F8FFA5DBF6FE7CC9F1FF45B2 - E9FF1A9EE2FE0D97DEFF0C94D9FF0E92D5FE2798CFFF61A5BFFE7A9093FF6168 - 68FF4F5050FE4A4848FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4A49 - 49FE4B4A4AFF4B4949FF494848FE494747FF494848FF525252FE80A3B1FFB4E3 - FAFFB5E4FAFE9EB8C2FF606666FF4B4949FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE3D3C3CD3030303220000000500000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001B79A921464A4DCA484646FE4846 - 46FE484646FE484646FE484646FE494747FE494747FE4D4C4CFE595D5DFE717D - 7DFE85A5AAFE65ADC7FE2C9CD1FE0C90D3FE0C93D7FE0C95DBFE0C97DDFE119B - E1FE25A4E5FE3EAEE8FE58BAECFE6BC2EFFE79C8F0FE82CCF2FE86CDF2FE81CB - F2FE78C7F0FE69C1EEFE55B9EBFE3AADE8FE23A3E4FE0F99E0FE0C97DDFE0C95 - DAFE0C92D7FE0E91D3FE309CD0FE68A7BEFE7C9699FE677070FE535454FE4B4A - 4AFE494747FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE494747FE4D4C4CFE575A - 5AFE616767FE5D6363FE525353FE4A4848FE494747FE4A4949FE637175FEAFDE - F2FEBBE6FAFEAECDDBFE6A7171FE4C4B4BFE484646FE484646FE484646FE4846 - 46FE484646FE484646FE343333B2000000130000000200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000001A7BAC0F3F515BA14947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494848FF4D4C - 4CFE585B5BFF6B7575FF84999AFE7CACBAFF54A7CAFF2C9CD1FF1192D2FE0C91 - D5FF0C93D8FF0C94D9FE0D95DBFF0D96DCFF0C96DDFE0D97DDFF0D97DDFF0C96 - DDFE0D96DDFF0D96DCFF0C95DBFE0C94D9FF0C93D7FF0C91D5FE1492D2FF2F9C - CFFF57A5C5FE7AA4B0FF7B8C8CFF626969FE525454FF4B4A4AFE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF555C5FFFA2D0 - E4FEBBE2F5FFAECEDDFF6B7272FE4D4D4DFF494747FF494848FE5C6263FFB0D9 - EBFFC2E8FBFEB4D1DEFF6C7474FF4C4C4CFE494747FF494747FF484646FE4947 - 47FF494747FF484646FE21202070000000090000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000E87C4053859 - 6A70484849EF484646FE494747FF494747FF484646FE494747FF494747FF4947 - 47FE494747FF4C4B4BFF535555FE606666FF717E7EFF80979AFF7FA9B3FE6AAA - C2FF51A6CBFF3AA0CEFE2799D0FF1C96D2FF1894D2FE1594D3FF1593D3FF1694 - D3FE1894D2FF1D96D2FF2999CFFE3CA0CDFF52A5C8FF6BA7BDFE7CA1AAFF7A8E - 90FF6A7474FE5B5F5FFF505151FF4A4949FE494747FF494747FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF55595AFFA9CF - DFFEC8EBFCFFC3E3F3FF869395FE585C5CFF4C4C4CFF4F4F4FFE718389FFC1E6 - F7FFC8EBFBFEB3CDD8FF686F6FFF4C4B4BFE494747FF494747FF484646FE4947 - 47FF494747FF484646F20909091F000000020000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000088B0B236535858CA484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE494747FE4A4848FE4C4C4CFE525353FE5A5F5FFE656E - 6EFE707C7CFE7B8C8CFE829899FE839FA3FE81A2A9FE7FA4ADFE7EA4ADFE7EA3 - ACFE80A1A7FE829DA0FE7F9495FE778686FE6D7777FE616868FE575A5AFE5050 - 50FE4B4A4AFE494747FE494747FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE494747FE4F5050FE8FAD - B9FECEEDFBFECEECFBFEB6CED8FE7A8787FE656D6DFE6E7B7DFEB2D2DFFECEED - FBFECEEDFBFE9FB1B7FE5D6262FE4A4949FE484646FE484646FE484646FE4846 - 46FE484646FE3130309400000006000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000ADE5E502768E8E724C4C4CE6484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF494747FF494747FE4A48 - 48FF4B4A4AFF4D4D4DFE505050FF525454FF545656FE565858FF565959FF5558 - 58FE535555FF525252FF4F4F4FFE4C4B4BFF4B4949FF494747FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF4B4949FF5F68 - 6AFEBCDCEAFFD4EFFCFFD4EFFCFECEE9F6FFC2DEEAFFCEECF9FED4EFFCFFD4EF - FCFFBFD7E2FE717A7AFF515252FF494747FE494747FF494747FF484646FE4947 - 47FF444242DC0B0A0A1D00000001000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000004A49491C4846468E494747F0494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF494747FE494747FF494747FF4947 - 47FE494747FF494747FF494747FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4E4D - 4DFE697578FFB0CBD5FFD2EBF7FED9F1FCFFDAF1FDFFD9F0FCFED2EAF6FFB4CA - D2FF798385FE565858FF4A4949FF494747FE494747FF494747FF484646FE4846 - 46F31F1F1F4C0000000100000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000484646244846468A4846 - 46ED484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4947 - 47FE4D4D4DFE595C5CFE707D80FE859395FE8A979AFE869497FE768284FE6167 - 67FE525454FE4B4949FE494747FE484646FE484646FE484646FE484646FC2D2C - 2C63010101020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000004846 - 460B49474765494747BD484646F6494747FF494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF4A4848FF4C4B4BFE4E4E4EFF505050FF4F4F4FFE4D4D4DFF4B49 - 49FF494747FE494747FF494747FF484646FE494747FF464444E1302F2F4C0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000049474704484646224947476E494747B4494747E5484646F94947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FE484646EF413F3F943837371D000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000004846460F484646354846 - 46604846468B484646AE484646CD484646E4484646F3484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FC484646E2484646B24846466E484646210000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFF - FFFF80000FFFFFFFFFFFFFFFFFF8000001FFFFFFFFFFFFFFFFE00000003FFFFF - FFFFFFFFFF000000000FFFFFFFFFFFFFFE0000000003FFFFFFFFFFFFF8000000 - 0000FFFFFFFFFFFFE000000000007FFFFFFFFFFFC000000000001FFFFFFFFFFF - 8000000000000FFFFFFFFFFE00000000000007FFFFFFFFFC00000000000003FF - FFFFFFF800000000000001FFFFFFFFF000000000000000FFFFFFFFF000000000 - 0000007FFFFFFFE0000000000000003FFFFFFFC0000000000000001FFFFFFF80 - 000000000000001FFFFFFF80000000000000000FFFFFFF000000000000000007 - FFFFFE000000000000000007FFFFFE000000000000000003FFFFFC0000000000 - 00000003FFFFFC000000000000000001FFFFF8000000000000000001FFFFF800 - 0000000000000000FFFFF0000000000000000000FFFFF0000000000000000000 - 7FFFF00000000000000000007FFFE00000000000000000007FFFE00000000000 - 000000003FFFE00000000000000000003FFFE00000000000000000001FFFC000 - 00000000000000001FFFC00000000000000000000FFFC0000000000000000000 - 0FFFC00000000000000000000FFFC000000000000000000007FFC00000000000 - 0000000007FFC000000000000000000003FFC000000000000000000003FFC000 - 000000000000000001FFC000000000000000000001FFC0000000000000000000 - 01FFC000000000000000000000FFC000000000000000000000FFC00000000000 - 00000000007FC0000000000000000000007FC0000000000000000000003FC000 - 0000000000000000003FE0000000000000000000003FE0000000000000000000 - 001FE0000000000000000000001FE0000000000000000000000FF00000000000 - 00000000000FF00000000000000000000007F00000000000000000000006F000 - 00000000000000000006F80000000000000000000002FC000000000000000000 - 0002FC0000000000000000000000FC0000000000000000000001FE0000000000 - 000000000001FE0000000000000000000000FF0000000000000000000000FF80 - 00000000000000000000FFC000000000000000000000FFC00000000000000000 - 0000FFE000000000000000000000FFF000000000000000000000FFF800000000 - 000000000000FFFC00000000000000000000FFFE00000000000000000000FFFF - 00000000000000000001FFFF80000000000000000001FFFFE000000000000000 - 0003FFFFF0000000000000000003FFFFFC000000000000000007FFFFFF000000 - 00000000000FFFFFFFC0000000000000003FFFFFFFF0000000000000007FFFFF - FFFF00000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28000000480000009000 - 0000010020000000000060540000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000003737370137373702373737043737370637373707373737073737 - 3707373737063737370537373703373737010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000001000000050000 - 000B000000130000001B00000023000000290000002E00000030000000310000 - 00310000002F0000002C000000260000001E000000160000000E000000070000 - 0002000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000040000000D0000001A000000290000 - 00370000004200000049030303520C0C0C64100F0F7110101073101010741010 - 10740E0D0D6B0707075B000000500000004C000000460000003B0000002F0000 - 0020000000110000000600000001000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000028272701070707060000001300000026000000390303034E121111742423 - 23A1333232C7424040E5474545F9484646FC484646FD484646FD484646FD4846 - 46FD484646FC474545FA444242EE383636D12A2929AF171616840606065F0000 - 004C0000003F0000002D000000190101010A1F1E1E0200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000D0C - 0C04000000120000002900000040121111702D2C2CB6424040E9484646FE4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF454343F23332 - 32C7181717860101015400000046000000320000001A03030308242323010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000001A1A1A020000000D0000 - 0024020202421B1A1A873C3A3AD9484646FE494747FF484646FE494747FF4846 - 46FE494747FF494747FF484646FE494747FF484646FE494747FF484646FE4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4846 - 46FE494747FF424040E92322229F0606065E000000460000002E000000140808 - 0804000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001014140500000017000000341716 - 16783C3A3AD9484646FE494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4A4949FF4C4B4BFF4D4D4DFF4E4E4EFF4E4E4EFF4D4D - 4DFF4C4B4BFF4A4949FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF424040EA1F1E1E97020202540000003D0000 - 0020010101090000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000040505080000002009090950323131BE4846 - 46FE494747FF484646FE494747FF484646FE494747FF494747FE4C4C4CFF5456 - 56FE606666FF697879FF68848CFE638C9AFF6091A4FE5E94A9FF5E93A9FE5E90 - A4FF618A9AFE66838CFF687779FF5F6565FE545656FF4C4B4BFE494747FF4947 - 47FE494747FF484646FE494747FF484646FE494747FF3B3A3AD9100F0F740000 - 00480000002B0000000F546B6B01000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000505050A0000002718171776424141EA494747FF4947 - 47FF494747FF494747FF494747FF4B4A4AFF545656FF657071FF6A8B95FF5598 - B4FF3F9DC9FF2F9DD4FF2B9FD9FF2CA0DCFF2EA2DDFF30A3DEFF30A3DEFF2EA2 - DDFF2CA0DCFF2B9ED9FF2C9CD4FF399BCAFF4C95B5FF638895FF636E70FF5355 - 55FF4B4949FF494747FF494747FF494747FF494747FF494747FF464444F62322 - 229E010101500000003300000012515151020000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000606060A0101012B25242498484646FA494747FF484646FE4947 - 47FF494747FF4B4A4AFE575A5AFF6C7F82FE5A98B1FF399ECEFE289DD9FF2EA3 - DFFE33A7E3FF35AAE5FF38ACE7FE3AAEE9FF3BAEEAFE3CAFEAFF3CAFEAFE3CAF - EAFF3BAEE9FE39ADE8FF37ABE6FF34A8E3FE30A4DFFF279DD9FE319BCFFF4F93 - B0FE667C81FF565959FE4B4949FF494747FE494747FF494747FF484646FE4846 - 46FE323030C00404045800000037000000140327390200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000404040A0101012C2E2D2DAD484646FD494747FF494747FF494747FF4948 - 48FF525454FF6A7B7EFF599AB5FF2E9DD3FF2AA0DDFF2FA6E3FF34AAE7FF37AD - EAFF39B0ECFF3BB1EEFF3DB3EFFF3EB4EFFF3EB4F0FF3FB4F0FF3FB4F0FF3FB4 - F0FF3FB4EFFF3EB3EFFF3EB2EEFF3CB1ECFF3AAFEBFF36ACE8FF32A7E4FF2BA1 - DEFF289AD4FF4B95B5FF65787CFF525454FF494848FF494747FF494747FF4947 - 47FF494747FF393737D30606065D0000003700000013526E6E01000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000D12 - 1206010101282E2D2DAC484646FE494747FF484646FE494747FF4B4A4AFE5F65 - 65FF6994A3FF349DCFFE269FDCFF2DA6E3FE31AAE8FF35AEECFE38B0EEFF39B2 - EFFE3AB3F0FF3BB4F1FF3BB4F1FE3CB4F1FF3CB4F1FE3DB5F2FF3DB5F1FE3DB5 - F2FF3DB4F1FE3EB5F1FF3DB5F1FF3DB4F1FE3CB3F0FF3BB2EEFE38B0ECFF35AC - E9FE30A7E4FF28A0DDFE2A99CFFF5A8EA3FE5D6363FF4B4A4AFF494747FE4947 - 47FF484646FE494747FF3C3B3BDB0505055B000000350000000F5E7E7E010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000263333040000 - 001E2D2C2CA6484646FE494747FF494747FF494747FF4E4E4EFF6A7778FF539D - BDFF239BD8FF28A2E1FF2DA8E7FF31ADECFF33AFEEFF35B1F0FF36B2F1FF37B2 - F1FF37B2F2FF37B3F2FF38B3F2FF38B3F2FF38B3F2FF39B3F2FF39B3F2FF39B3 - F2FF39B3F2FF39B3F2FF3AB4F2FF3AB4F2FF3AB4F2FF39B3F1FF39B3F0FF38B1 - EFFF36AFEDFF31ABE9FF2BA5E2FF229BD9FF4196BDFF647478FF4E4D4DFF4947 - 47FF494747FF494747FF494747FF393838D4050505580000002E0304040B0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000526E6E0100000014201F - 1F82484646FE494747FF494747FF494747FF505050FF6F8285FF419DC7FF219C - DBFF27A4E4FF2BA9EAFF2EADEDFF30AEEFFF31B0F0FF32B0F1FF32B0F1FF32B0 - F1FF33B1F1FF33B1F1FF33B1F1FF34B1F1FF34B1F1FF34B1F1FF34B1F1FF35B1 - F1FF35B2F2FF36B2F2FF36B2F2FF36B2F2FF36B2F2FF37B2F2FF37B2F2FF37B2 - F1FF36B1F0FF34AFEEFF31ACEBFF2BA7E6FF239EDDFF3197C8FF657D83FF4F50 - 50FF494747FF494747FF494747FF494747FF333232C40000004B000000240E11 - 1105000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000B131313584745 - 45F7484646FE494747FF494747FE505151FF70878CFE359CCDFF1F9CDDFE24A4 - E6FF28A9EBFF2AACEEFE2BADF0FF2CAEF0FE2DAFF1FF2DAFF0FE2DAFF1FF2EAF - F0FE2EAFF1FF2EAFF1FF2EAFF0FE2FAFF1FF2FAFF0FE2FB0F1FF30B0F0FE30B0 - F1FF30B0F0FE30B0F1FF31B0F1FF31B0F0FE31B0F1FF32B0F1FE32B0F1FF32B0 - F1FE32B0F1FF32B0F0FE31AFEFFF2EACECFE29A7E7FF239FDFFF2797CEFE6481 - 8AFF505050FE494747FF484646FE494747FF484646FE262525A4000000420000 - 00181B1A1A020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001315150405040428413F3FDF4947 - 47FF494747FF494747FF4E4E4EFF6F8285FF379CCCFF1C9CDDFF21A3E6FF25A8 - ECFF27ABEFFF27ACF0FF28ACF1FF28ADF1FF28ADF1FF28ADF1FF29ADF1FF29AD - F1FF29ADF1FF29ADF1FF2AADF1FF2AADF1FF2AAEF1FF2BAEF1FF2BAEF1FF2BAE - F1FF2BAEF1FF2CAEF1FF2CAEF1FF2CAEF1FF2DAEF1FF2DAFF1FF2DAFF1FF2DAF - F1FF2EAFF1FF2EAFF1FF2EAFF0FF2DAEEFFF2BABEDFF27A7E8FF219EDFFF2796 - CDFF647D83FF4D4D4DFF494747FF494747FF494747FF474545F9121212770000 - 00330000000B0000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000102D2C2CA0494747FF4947 - 47FF494747FE4B4A4AFF6B7778FE439EC7FF199ADBFE1DA2E6FF21A7EBFE22A9 - EEFF23AAF0FF23ABF0FE24ABF0FF24ABF0FE24ABF0FF24ABF0FE25ABF0FF25AB - F0FE25ACF0FF26ACF0FF26ACF0FE26ACF1FF26ACF0FE26ACF1FF27ACF0FE27AC - F1FF27ACF0FE27ACF1FF28ADF1FF28ADF0FE28ADF1FF3990BDFE3698CAFF2AAB - EDFE29ADF1FF29ADF0FE2AADF1FF29ADF0FE29ACEFFF28AAECFF24A5E7FE1E9D - DEFF2F96C8FE647376FF4B4A4AFE494747FF484646FE494747FF3E3D3DE00303 - 034F000000201211110300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000511111148474545F7494747FF4947 - 47FF494848FF5E6465FF589FBBFF1697D9FF199FE4FF1CA5EAFF1EA8EEFF1FA0 - E2FF2F6581FF3D708AFF42748EFF42748EFF42748EFF3B7D9FFF21A9EEFF21AA - F0FF21AAF0FF22AAF0FF22AAF0FF22AAF0FF22AAF0FF23ABF0FF23ABF0FF23AB - F0FF23ABF0FF24ABF0FF24ABF0FF24ABF0FF26A7EAFF535D63FF595959FF5264 - 6EFF4180A1FF2F9ED7FF26ABEFFF26ACF0FF26ACF0FF26ABEFFF24A8ECFF20A3 - E6FF199ADBFF4194BBFF5D6363FF494747FF494747FF494747FF484646FE2524 - 24A1000000390000000E00000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000001010110373636BF484646FE494747FF4947 - 47FF525454FE7096A2FF1996D5FE169CE1FF18A3E9FE1AA6EEFF1AA7EFFE1BA7 - EFFF285C77FF434242FE515050FF535252FE545252FF535152FE2B8EC1FF1DA8 - EFFE1DA8F0FF1DA8F0FF1DA8EFFE1EA9F0FF1EA9EFFE1EA9F0FF1EA9EFFE1FA9 - F0FF1FA9EFFE1FA9F0FF20A9F0FF20A9EFFE3288B4FF565454FE575555FF5755 - 55FE575555FF575657FE4B6979FF3986AEFE27A2E1FF22AAEFFF22A9EEFE20A6 - EBFF1BA0E4FE1796D7FF5B8DA1FE515252FF494747FE494747FF494747FF4442 - 42F10908085A0000002016161603000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000031615154F484646FC494747FF494747FF4B49 - 49FF6D7B7DFF359BCCFF1298DDFF15A0E7FF16A4EDFF17A6EFFF17A6F0FF17A6 - F0FF1998D9FF32373AFF494747FF504E4EFF514F4FFF514F4FFF465D6AFF1BA3 - E9FF19A7F0FF19A7F0FF19A7F0FF1AA7F0FF1AA7F0FF1AA8F0FF1AA7F0FF1AA8 - F0FF1BA8F0FF1BA8F0FF1BA8F0FF1CA7EEFF446272FF545252FF545252FF5452 - 52FF545252FF545353FF555353FF555353FF525659FF40697FFF2689BCFF1DA7 - EDFF1BA3E9FF179CDFFF2295CEFF65767AFF4B4949FF494747FF494747FF4947 - 47FF282727A8000000340202020A000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000B363434B6494747FF484646FE494747FF5658 - 58FF659EB3FE1094D7FF119CE3FE13A2EAFF14A4EEFE14A5EFFF15A5EFFE15A5 - EFFF15A5EFFF1F6487FE3B3A3AFF4C4A4AFE4E4C4CFF4E4C4CFE4E4C4DFF2D7E - A9FE16A6F0FF16A6F0FF16A6EFFE16A6F0FF17A6EFFE17A6F0FF17A6EFFE17A6 - F0FF17A6EFFE18A6F0FF18A7F0FF2294CEFE4E4F50FF514F4FFE514F4FFF514F - 4FFE514F4FFF514F4FFE525050FF525050FE514F4FFF454444FF266A8DFE1AA7 - EFFF19A5ECFE16A0E6FF1396DAFE4B92B1FF555858FE494747FF494747FF4846 - 46FE434242ED0505054D00000017252424010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000010D0D0D31484646F9494747FF494747FF4B4A4AFF707F - 7FFF2B9AD0FF0E98DEFF109FE8FF11A2EDFF11A4EEFF11A4EFFF12A4EFFF12A4 - EFFF12A4EFFF139BE0FF293841FF434141FF4C4A4AFF4C4A4AFF4D4B4BFF4751 - 57FF189DE1FF13A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5 - EFFF15A5EFFF15A5EFFF15A5EFFF356D8BFF4E4C4CFF4F4D4DFF4F4D4DFF4D4B - 4BFF474545FF464545FF4C4A4AFF4F4D4DFF4C4A4AFF383A3CFF1996D7FF17A6 - F0FF16A5EEFF15A2EAFF129AE1FF1C94D0FF657A7FFF4A4949FF494747FF4947 - 47FF484646FE1D1C1C8C0000002A0A0A0A060000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000327262684494747FF494747FF494747FF535555FF6B9D - AEFF0C92D7FF0E9BE3FF0FA0EBFF0FA2EEFF0FA3EFFF0FA3EFFF10A3EFFF10A4 - EFFF10A4EFFF10A4EFFF186E9AFF353434FF474545FF4A4848FF4A4848FF4A48 - 48FF307091FF11A4EFFF11A4EFFF11A4EFFF12A4EFFF12A4EFFF12A4EFFF12A4 - EFFF12A4EFFF12A4EFFF159FE6FF464D51FF4C4A4AFF4C4A4AFF4C4A4AFF4544 - 44FF313030FF2C2A2AFF363434FF403E3EFF3F3E3EFF265065FF14A5EFFF14A5 - EFFF14A5EEFF13A2ECFF109DE5FF0E94D9FF5192ADFF525353FF494747FF4947 - 47FF494747FF373535CD0000003E000000110000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000101010A403E3ED2484646FE494747FF494747FE666F70FF3E9E - CAFF0C96DCFE0D9DE7FF0EA1EDFE0EA2EEFF0EA2EEFE0EA3EFFF0EA2EEFE0EA3 - EFFF0EA3EFFF0EA2EEFE0F9FE9FF233B48FE3E3C3CFF494747FE4A4848FF4947 - 47FE464A4DFF1993D1FF0FA3EEFE0FA3EFFF0FA3EEFE0FA3EFFF0FA3EEFE10A3 - EFFF10A3EEFE10A3EFFF257CA9FF494747FE4A4848FF4A4848FE494747FF3A39 - 39FE1B658CFF16587AFE1C2B33FF232323FE262525FF167DB2FF12A4EEFE12A4 - EFFF11A4EEFE10A2EDFF0F9FE8FE0D97DEFF2696CCFE636B6BFF494747FF4846 - 46FE494747FF484646FC0E0E0E68000000231414140300000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000C0C0C2B484646F7494747FF494747FF4C4B4BFF758E93FF1995 - D3FF0D99E1FF0D9FEAFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF1379ADFF303030FF454343FF494747FF4947 - 47FF494747FF356178FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0FA1EDFF395969FF494747FF4A4848FF494747FF454343FF2E37 - 3DFF109BE2FF0FA3EFFF0F9BE2FF1371A2FF154964FF109EE7FF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA2EEFF0EA0EBFF0D9AE3FF0D92D5FF668690FF4C4B4BFF4947 - 47FF494747FF494747FF2D2C2CB4000000370101010C00000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000201F1F63494747FF484646FE494747FF535454FE689EB2FF0C93 - D7FF0D9BE4FE0EA1EBFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA1ECFE1E455AFF3B3939FE474545FF4846 - 46FE494747FF484646FF1C88C0FE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE188FCCFF464647FF494747FE494747FF484646FE3E3C3CFF1E59 - 77FE0EA3EFFF0EA2EEFE0EA3EFFF0EA2EEFE0EA3EFFF0EA3EFFF0EA2EEFE0EA3 - EFFF0EA2EEFE0EA2EEFF0DA1ECFE0D9DE6FF0C94DAFE4D92B0FF525454FF4846 - 46FE494747FF484646FE444242F1070707550000001C1F1E1E02000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000067676701312F2F94494747FF494747FF494747FF5E6363FF4EA2C5FF0C95 - DBFF0D9DE7FF0EA1EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1186C2FF2C2E2FFF434141FF4846 - 46FF494747FF494747FF3B5766FF0F9FE9FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF2C6B8CFF484646FF494747FF494747FF464444FF343435FF1285 - BFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EDFF0D9EE8FF0D97DDFF3396C4FF5D6262FF4947 - 47FF494747FF494747FF494747FE222121980000003001010108000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000067676703393737BE494747FF484646FE494747FF6B7575FE349ECFFF0D97 - DEFF0D9EE8FE0EA2EDFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA2EEFF1B516CFE383737FF4745 - 45FE494747FF494747FF484646FE247CA9FF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0F9EE7FE414B52FF494747FF484646FE484646FF424040FE26404DFF0EA1 - EDFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA3EFFF0DA2EEFE0D9FE9FF0D99E0FE1E94CFFF657274FF4947 - 47FE494747FF484646FE494747FF3F3D3DE201010145000000162A2929010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000069696907464444DC494747FF494747FF4A4949FF778787FF1E97D2FF0D99 - E0FF0E9FEAFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1090D2FF292F33FF413F - 3FFF484646FF494747FF494747FF424E55FF119CE2FF0EA3EFFF0EA3EFFF0EA3 - EFFF1F81B4FF474646FF494747FF494747FF484646FF3A3838FF186B95FF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA0EAFF0D9AE2FF1393D4FF677F85FF4A48 - 48FF494747FF494747FF494747FF484646FE1717177D000000290B0B0B050000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000069696909484646F0494747FF484646FE4C4B4BFF7B9396FE1293D4FF0D9A - E2FF0DA0EAFE0EA2EEFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE185D80FF3534 - 34FE464444FF494747FF484646FE484646FF2C7093FE0EA3EFFF0DA2EEFE0EA2 - EEFF345E75FE484646FF494747FF484646FE454343FF2F3437FE1094D8FF0DA2 - EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA0EBFF0D9BE3FE0D92D6FF648793FF4B4A - 4AFE494747FF484646FE494747FF484646FE353434C90000003D000000100000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00006969690B484646FE494747FF494747FF4D4D4DFF78979FFF0F92D5FF0D9A - E3FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0F98DEFF2534 - 3BFF3F3E3EFF484646FF494747FF494747FF45494DFF1693D4FF0EA3EFFF1397 - DBFF43474AFF494747FF494747FF484646FF3F3D3DFF205069FF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1ECFF0D9BE5FF0C92D7FF608C9DFF4C4B - 4BFF494747FF494747FF494747FF494747FF474545F90E0E0E67000000211414 - 1403000000000000000000000000000000000000000000000000000000000000 - 00006969690B494747FF494747FF494747FF4E4E4EFF769AA3FF0E92D5FF0D9A - E3FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF166A - 96FF333232FF454444FF494747FF494747FF484646FF34637BFF0EA3EFFF227C - AAFF474545FF494747FF494747FF474545FF363536FF147CB2FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1ECFF0D9CE5FF0C93D7FF5E8EA1FF4D4C - 4CFF494747FF494747FF494747FF494747FF494747FF2B2929B0000000350100 - 000B000000000000000000000000000000000000000000000000000000000000 - 00006969690B484646FE494747FF484646FE4E4E4EFF7799A2FE0E92D5FF0D9A - E3FF0DA0EBFE0EA2EEFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0E9F - E9FE223A46FF3D3C3CFF484646FE494747FF484646FE474748FF1D89C1FE3561 - 77FF484646FE494747FF494747FF434141FE293942FF0EA0EAFE0EA3EFFF0DA2 - EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA1ECFF0D9CE5FE0C93D7FF5E8EA0FF4D4C - 4CFE494747FF484646FE494747FF484646FE494747FF464444F30504044F0000 - 001B1F1E1E010000000000000000000000000000000000000000000000000000 - 00006969690A484646FE494747FF494747FF4D4C4CFF7A989EFF0F92D5FF0D9A - E2FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF1478ABFF302F2FFF454343FF484646FF494747FF494747FF3E5866FF454B - 4FFF494747FF494747FF484646FF3C3A3AFF1B6185FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EFFF0EA1ECFF0D9BE4FF0C92D7FF628D9CFF4C4B - 4BFF494747FF494747FF494747FF494747FF494747FF494747FF201F1F940000 - 002F050505070000000000000000000000000000000000000000000000000000 - 000069696907484646F0494747FF484646FE4C4B4BFF7C9295FE1493D4FF0D9A - E1FF0DA0EAFE0EA2EEFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EEFE10A1EBFF25485BFF434141FE504F4FFF525151FE535151FF535151FE5351 - 51FF525050FE504E4EFF4B4949FF333638FE118ECDFF0DA2EEFE0EA3EFFF0DA2 - EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA0EBFF0D9BE3FE0E92D6FF678892FF4B4A - 4AFE494747FF484646FE494747FF484646FE494747FF484646FE3E3C3CDE0202 - 0246000000152928280100000000000000000000000000000000000000000000 - 000069696904484646DB494747FF494747FF4A4949FF768586FF2499D2FF0D98 - E0FF0E9FE9FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF11A4EFFF1BA7EFFF22AA - F0FF26ACF0FF2992C7FF434243FF565555FF5B5959FF5B5959FF5B5959FF5B59 - 59FF5B5959FF5B5959FF545353FF395A6BFF23A9EFFF1CA8EFFF13A4EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA0EAFF0D9AE2FF1694D3FF697E84FF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF484646FE1514 - 147A000000270B0B0B0500000000000000000000000000000000000000000000 - 0000000000003A3838BC494747FF484646FE494747FF697373FE3CA1CFFF0D97 - DDFF0D9EE8FE0EA2EDFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF13A5EFFE23ABF0FF2DAEF0FE2EAFF1FF2DAF - F0FE2EAFF1FF2EAFF1FF3A667DFE535151FF605E5EFE615F5FFF615F5FFE615F - 5FFF615F5FFE605E5EFF535151FF3586AFFE2EAFF1FF2DAFF0FE2DAFF0FF25AB - F0FE15A5EFFF0EA3EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA3EFFF0DA2EEFE0D9FE9FF0D98DFFE2496CDFF667172FF4947 - 47FE494747FF484646FE494747FF484646FE494747FF484646FE494747FF3533 - 33C60000003C0000001000000000000000000000000000000000000000000000 - 00000000000034323291494747FF494747FF494747FF5C6161FF58A5C4FF0C95 - DAFF0D9DE6FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0FA3EFFF21AAF0FF34B1F1FF36B2F2FF36B2F1FF36B2F2FF36B2 - F1FF36B2F2FF36B2F2FF38A1D8FF4D5255FF616060FF676565FF676565FF6765 - 65FF676565FF636161FF4F5559FF36ADEAFF36B2F2FF36B2F1FF36B2F2FF36B2 - F1FF35B1F1FF25ABF0FF10A3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA1EDFF0D9EE7FF0D96DDFF3C98C2FF5C6060FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4745 - 45FA0C0B0B610000002100000003000000000000000000000000000000000000 - 0000000000002120205C494747FF484646FE494747FF525353FE73A1B0FF0D92 - D6FF0D9BE3FE0EA0EBFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0FA3EFFF2DAFF0FE3DB5F1FF3DB5F1FE3DB5F2FF3DB5F1FE3DB5F2FF3DB5 - F1FE3DB5F2FF3DB5F2FF3DB5F1FE487D98FF636161FE6C6B6BFF6D6B6BFE6D6B - 6BFF6D6B6BFE646363FF4A7991FF3DB5F1FE3DB5F2FF3DB5F1FE3DB5F2FF3DB5 - F1FE3DB5F2FF3DB5F1FE32B0F1FF12A4EFFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA2EEFF0DA1ECFE0D9CE5FF0C94D9FE5894ACFF515252FF4846 - 46FE494747FF484646FE494747FF484646FE494747FF484646FE494747FF4947 - 47FF2A2929AD000000350000000B000000000000000000000000000000000000 - 0000000000000E0D0D22484646F7494747FF494747FF4B4A4AFF788D8FFF2298 - D2FF0D98E0FF0D9FE9FF0EA2EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0FA3 - EFFF32B0F1FF46B8F2FF46B8F3FF46B8F2FF46B8F3FF46B8F2FF46B8F3FF46B8 - F2FF46B8F3FF46B8F3FF46B8F2FF48B1E7FF697075FF737272FF737272FF7372 - 72FF727070FF636464FF4AA2CFFF46B8F2FF46B8F3FF46B8F2FF46B8F3FF46B8 - F2FF46B8F3FF46B8F2FF46B8F3FF3AB3F1FF10A4EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA2EEFF0EA0EAFF0D99E1FF1092D4FF6E868BFF4B4A4AFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF434141ED050505500000001A000000010000000000000000000000000000 - 00000000000002010101424141D1484646FE494747FF494747FE646C6CFF4EA3 - C8FF0C95DBFE0D9DE6FF0DA1ECFE0EA2EEFF0DA2EEFE0EA3EFFF0DA2EEFE27AC - F0FF4EBBF3FF4FBBF3FE4FBBF3FF4FBBF3FE4FBBF3FF4FBBF3FE4FBBF3FF4FBB - F3FE4FBBF3FF4FBBF3FF4FBBF3FE50B9F0FF737D82FE7A7979FF7A7979FE7A79 - 79FF757474FE61737DFF4FB9F0FF4FBBF3FE4FBBF3FF4FBBF3FE4FBBF3FF4FBB - F3FE4FBBF3FF4FBBF3FE4FBBF3FF4FBBF3FE31B0F1FF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA1EDFF0D9EE7FE0C96DDFF359AC9FE616868FF494747FF4846 - 46FE494747FF484646FE494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE1F1E1E900000002E000000070000000000000000000000000000 - 000000000000000000002A29297C494747FF494747FF494747FF525353FF79A0 - AAFF0F92D5FF0D9AE2FF0E9FEAFF0EA2EEFF0EA3EFFF0EA3EFFF11A4EFFF51BC - F3FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BF - F4FF59BFF4FF59BFF4FF59BFF4FF61ADD4FF807E7EFF818080FF818080FF807F - 7FFF777676FF6098B5FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BF - F4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF55BEF3FF18A7EFFF0EA3EFFF0EA3 - EFFF0EA2EEFF0EA0EBFF0D9BE4FF0D93D7FF6094A8FF505151FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF3D3B3BDD01010143000000140000000000000000000000000000 - 0000000000000000000012111123484646F9494747FF494747FF4A4949FF6F7A - 7BFF3EA1CFFF0C96DCFF0D9DE7FF0EA1ECFF0EA2EEFF0EA3EFFF26ACF0FF61C2 - F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2 - F4FF62C2F4FF62C2F4FF62C2F4FF769EB4FF888787FF888787FF888787FF8685 - 85FF787A7BFF63BAE7FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2 - F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF33B1F1FF0EA3EFFF0EA2 - EEFF0EA1EDFF0D9EE8FF0D97DEFF2797CDFF697779FF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF484646FD15141477000000260000000500000000000000010000 - 00000000000000000000010101013C3A3AAF494747FF484646FE494747FF5456 - 56FF76A2AFFE1293D5FF0D99E1FE0D9FE9FF0DA1EDFE0EA2EEFF3AB3F1FE6BC6 - F5FF6BC6F5FF6BC6F5FE6BC6F5FF6BC6F5FE6BC6F5FF6BC6F5FE6BC6F5FF6BC6 - F5FE6BC6F5FF6BC6F5FF6CC4F1FE8A959BFF8F8E8EFE8F8E8EFF8F8E8EFE8A88 - 88FF7793A2FE6BC6F4FF6BC6F5FF6BC6F5FE6BC6F5FF6BC6F5FE6BC6F5FF6BC6 - F5FE6BC6F5FF6BC6F5FE6BC6F5FF6BC6F5FE6BC6F5FF49B9F2FF0DA2EEFE0EA2 - EEFF0DA0EAFE0D9BE3FF0D92D7FE5F96ABFF545656FE494747FF4A4848FF4C4B - 4BFE4C4C4CFF4C4C4CFE4C4C4CFF4C4C4CFE4C4C4CFF4C4B4BFE4B4A4AFF4947 - 47FF484646FE494747FF323131C30000003B0000000F00000000000000010000 - 00000000000000000000000000002524243E484646FB494747FF494747FF4A49 - 49FF6C7777FF4AA3CAFF0C94DAFF0D9CE5FF0EA0EBFF0EA2EEFF43B7F2FF75CB - F6FF75CBF6FF75CAF6FF75CBF6FF75CAF6FF75CBF6FF75CAF6FF86A2B1FF919E - A6FF929FA6FF929FA6FF929EA4FF979696FF979696FF979696FF969595FF8D8C - 8CFF79B4D2FF75CBF6FF75CBF6FF75CAF6FF75CBF6FF75CAF6FF75CBF6FF75CA - F6FF75CBF6FF75CAF6FF75CBF6FF75CAF6FF75CBF6FF53BDF3FF0EA2EEFF0EA1 - ECFF0D9DE6FF0C96DCFF3299CAFF677274FF4A4949FF4A4848FF53656DFF6C8D - 9BFF70929FFF70929FFF70929FFF70929FFF70929FFF6F919EFF697B82FF4F4F - 4FFF494747FF494747FF474545F80B0B0B5F0000002000000002000000010000 - 000000000000000000000000000000000000484646B8484646FE494747FF4947 - 47FF515151FE7C979CFF2198D2FE0C97DEFF0D9DE7FE0EA1ECFF3BB3F1FE7FCE - F6FF7FCEF6FF7FCEF6FE7FCEF6FF7FCEF6FE7FCEF6FF7FCEF6FE92A1AAFF9E9D - 9DFE9F9E9EFF9F9E9EFF9E9D9DFE9F9E9EFF9E9D9DFE9F9E9EFF9C9B9BFE8E97 - 9BFF80CBF2FE7FCEF6FF7FCEF6FF7FCEF6FE7FCEF6FF7FCEF6FE7FCEF6FF7FCE - F6FE7FCEF6FF7FCEF6FE7FCEF6FF7FCEF6FE7FCEF6FF4CBAF2FF0DA1ECFE0D9E - E8FF0D98E0FE1693D3FF6C8F99FE505050FF494747FE4A4949FF5A8CA1FF7FD0 - F6FE80D1F7FF7FD0F6FE80D1F7FF7FD0F6FE80D1F7FF7FD0F6FE82ADC0FF5456 - 56FF484646FE494747FF484646FE282727A9000000340000000A000000010000 - 000000000000000000000000000000000000748A8A33484646F7494747FF4947 - 47FF494747FF5C6060FF71A5B7FF1294D5FF0D99E0FF0D9EE8FF1EA7EDFF86D0 - F6FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF9AA9B0FFA5A4 - A4FFA6A5A5FFA6A5A5FFA6A5A5FFA6A5A5FFA6A5A5FFA5A4A4FF9F9F9FFF90B1 - C3FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2 - F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF88D1F7FF2FAEEFFF0D9FE9FF0D9A - E2FF0E93D6FF5A9AB4FF5B5F5FFF494747FF494747FF4A4848FF566F79FF78CB - F1FF80D0F6FF8BB5C4FF758C92FF697C82FF687B81FF687B81FF606B6EFF4D4D - 4DFF494747FF494747FF494747FF424141EB0404044D00000018000000010000 - 00000000000000000000000000000000000000000000626F6F91494747FF4947 - 47FF484646FE4B4A4AFF687272FE5FA7C3FF0D92D7FE0D99E1FF0D9EE8FE65C3 - F3FF92D5F7FF92D5F7FE92D5F8FF92D5F7FE92D5F8FF92D5F7FEA0ADB4FFA8A7 - A7FEA8A8A8FFA8A8A8FFA8A7A7FEA8A8A8FFA8A7A7FEA8A7A7FFA1A1A2FE94CC - E9FF92D5F7FE92D5F8FF92D5F8FF92D5F7FE92D5F8FF92D5F7FE92D5F8FF92D5 - F7FE92D5F8FF92D5F7FE92D5F8FF92D5F7FE77CAF4FF11A0E9FF0D9AE3FE0C93 - D8FF479CC1FE656F6FFF4B4949FE494747FF484646FE494747FF4E4D4DFF618D - 9FFE7DCFF5FF82CCEEFE7A8C91FF535454FE4B4949FF4A4949FE4A4848FF4947 - 47FF484646FE494747FF484646FE484646FE1D1C1C8B00000027000000040000 - 00000000000000000000000000000000000000000000ABE2E20D4E4F4FDA4947 - 47FF494747FF494747FF4D4C4CFF707D7EFF52A5C8FF0D93D7FF0D99E1FF1FA5 - EAFF8DD2F6FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FFA3ACB1FFA5A4 - A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA2B0B8FF9DD9 - F7FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9 - F8FF9DD9F8FF9DD9F8FF9DD9F8FF97D6F7FF2CABEBFF0D9AE3FF0C94D9FF3B9A - C6FF6C7A7BFF4C4C4CFF494747FF494747FF494747FF494747FF494747FF5152 - 52FF66A3BDFF7FD0F6FF84C4E2FF6F7A7CFF4E4D4DFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF383737CF000000360000000A0000 - 000000000000000000000000000000000000000000000000000092BABA3D4846 - 46F6484646FE494747FF494747FE4F4F4FFF748384FE52A5C9FF0D92D6FE0D99 - E0FF31ACEAFF9DD8F7FEA6DCF8FFA6DDF8FEA6DDF9FFA6DDF8FEA8C9D9FFA8C6 - D5FEA8C6D5FFA8C6D5FFA8C6D5FEA8C6D5FFA8C6D5FEA8C6D5FFA7D1E7FEA6DD - F9FFA6DDF8FEA6DDF9FFA6DDF9FFA6DDF8FEA6DDF9FFA6DDF8FEA6DDF9FFA6DD - F8FEA6DDF9FFA6DCF8FEA2DAF7FF45B4EDFE0D99E1FF0C93D8FF3C9BC7FE6D7F - 81FF4E4E4EFE494747FF484646FE494747FF484646FE494747FF494747FF4948 - 48FE555C5EFF6EB8D8FE80D0F6FF86B8CEFE636A6AFF4B4A4AFE494747FF4947 - 47FF484646FE494747FF484646FE494747FF474545F90707074B000000100000 - 0000000000000000000000000000000000000000000000000000000000007891 - 916A494747FE494747FF494747FF494747FF4E4E4EFF707D7DFF62A7C2FF1293 - D5FF0C97DDFF2EA9E8FF96D5F5FFB0E0F8FFB0E0F9FFB0E1FAFFB0E1FAFFB0E1 - FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1 - FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E0 - F9FFB0E0F9FFA0D9F6FF3DAFEAFF0D98DFFF0F93D6FF4C9DC1FF6C797AFF4E4D - 4DFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4A4949FF596A70FF75C5E9FF81D1F7FF84A9B8FF5C6060FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF17161674000000140000 - 000000000000000000000000000000000000000000000000000000000000B9F8 - F80138586992494747FE494747FF494747FF494747FF4D4C4CFF677171FF72A5 - B6FF2398D2FF0C94DAFF1A9FE2FF6FC4EFFFB2E1F8FFB9E3F9FFB9E4FAFFB9E4 - FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4 - FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB6E2 - F8FF7DCAF1FF22A3E4FF0C95DBFF1995D2FF629DB3FF656F6FFF4D4C4CFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4C4B4BFF67828DFF9CD9F6FF9FD9F5FF879AA1FF545555FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF2423238B000000120000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000E88C50638596BA1484646FE494747FF484646FE494747FF4B4949FE5B5F - 5FFF7C9599FF4EA4C9FE1293D4FF0C95DBFE28A5E4FF73C5EFFEB1DFF7FFC2E7 - FAFEC3E7FAFFC3E7FAFFC2E7FAFEC3E7FBFFC2E8FAFEC3E8FBFFC2E8FAFEC3E8 - FBFFC2E7FAFEC3E7FBFFC3E7FBFFC2E7FAFEC3E7FAFFB6E2F8FE7FCAF1FF32A9 - E6FE0D96DDFF0F93D5FE3F9DC8FF739198FE595E5EFF4A4949FF494747FE4947 - 47FF484646FE494747FF484646FE494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FE4F4F4FFF7B9EACFEADE1F9FFACD9EEFE727B7CFF4C4C - 4CFF484646FE494747FF484646FE494747FF484646FE252424890000000D0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000E88C60638596A9C494747FD494747FF494747FF494747FF4947 - 47FF505050FF6A7475FF77A1ACFF42A2CDFF1293D5FF0C95DAFF179CE0FF42B0 - E8FF75C6F0FFA0D9F5FFBCE4F8FFC5E8FAFFC9E9FAFFCBEAFAFFCBEAFAFFC9E9 - FAFFC6E8FAFFBFE5F9FFA6DBF6FF7CC9F0FF4BB4EAFF1C9FE1FF0D95DBFF0F93 - D5FF379CCCFF6B9BABFF687272FF505050FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4A4949FF4D4D - 4DFF4D4C4CFF494848FF494747FF545758FF9CC9DDFFB6E4FAFF95ACB4FF5355 - 55FF494747FF494747FF494747FF494747FF494747FF1C1B1B6E000000070000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000E88C50338596B7D484646FA494747FF484646FE4947 - 47FF494747FF4A4949FE535555FF6D7878FE789EA7FF54A4C6FE279AD2FF0E92 - D5FE0C94DAFF0D96DDFF129ADFFE22A2E3FF2EA7E5FE35AAE6FF36ABE6FE30A8 - E5FF24A3E3FE149BE0FF0D97DDFF0C94DAFE0C92D6FF2198D2FE4AA0C6FF7099 - A6FE6B7677FF535555FE4A4949FF494747FE494747FF494747FF484646FE4947 - 47FF484646FE494747FF484646FE494747FF484646FE4A4848FF64747AFF8DA5 - AFFE7F8F94FF525353FE494747FF4B4A4AFE84A1ACFFBFE7FAFEA5BEC9FF585B - 5BFF484646FE494747FF484646FE494747FF484646FE0F0E0E38000000020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000296A8B4D47494BE7494747FF4947 - 47FF494747FF494747FF494747FF4A4848FF515252FF616868FF76888AFF769F - ABFF5CA4C0FF43A1CCFF2C9BD0FF1C96D3FF1594D4FF1394D4FF1394D4FF1594 - D4FF1A96D3FF299AD1FF3E9FCCFF56A1BFFF6F9CAAFF748689FF616767FF5151 - 51FF4A4848FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4A4848FF7B939DFFC7EA - FBFFB7D2DFFF676E6EFF4C4C4CFF505151FF98B7C3FFC7EAFBFFA5BCC5FF5759 - 59FF494747FF494747FF494747FF494747FF3F3D3DCF0101010D000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000097CDD11E5C6666AE4947 - 47FE494747FF484646FE494747FF484646FE494747FF494747FE4B4A4AFF5151 - 51FE5A5F5FFF666F6FFF728080FE798D8FFF799397FE77959CFF77959CFE7792 - 97FF788C8EFE717F80FF666F6FFF5A5E5EFE515151FF4B4A4AFE494747FF4947 - 47FE494747FF484646FE494747FF484646FE494747FF494747FF484646FE4947 - 47FF484646FE494747FF484646FE494747FF484646FE494747FF606B6FFFC7E9 - F8FECEECFAFFA4B9BFFE778588FF8CA0A6FEC9E9F8FFCFEDFBFE8B989CFF5050 - 50FF484646FE494747FF484646FE484646FD1F1E1E6100000002000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000008CB1B1015D67 - 674D494747D0494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4A4848FF4B4949FF4B4B4BFF4C4C4CFF4C4C4CFF4C4B - 4BFF4B4949FF4A4848FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4D4D4DFF8498 - 9FFFCFEAF7FFD7F0FCFFD6EFFBFFD7F0FCFFD4EEFAFFA7BAC1FF5D6262FF4A48 - 48FF494747FF494747FF494747FF393838B20302020600000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000494747084846465F494747D0484646FE494747FF484646FE494747FF4846 - 46FE494747FF494747FF484646FE494747FF484646FE494747FF484646FE4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4846 - 46FE494747FF484646FE494747FF484646FE494747FF494747FF484646FE4947 - 47FF484646FE494747FF484646FE494747FF484646FE494747FF494747FF4E4E - 4EFE6A7477FF92A2A8FE9EADB2FF98A9AEFE7C888AFF5A5E5EFE4B4A4AFF4947 - 47FF484646FE494747FF434141D00C0C0C160000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000004947473E4947479D494747E6494747FE4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4A4848FF4C4B4BFF4E4D4DFF4D4D4DFF4B4A4AFF494747FF494747FF4947 - 47FF484646FC3D3C3CA618181811000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000004947470C4947473F4947 - 477E494747B6494747E3494747F8494747FB494747FD494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FD494747F24846 - 46B2444242424442420200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000D1D0D00DD1D1D127D1D0D036D1D1D13FD1D0D03FD1D1 - D13FD1D0D03FD1D1D13FD1D1D13FD1D0D03FD1D1D13FD1D0D03FD1D1D13FD1D0 - D03FD1D1D13FD1D0D03FD1D1D13FD1D0D03FD1D1D13FD1D1D13FD1D0D03FD1D1 - D13FD1D0D03FD1D1D13FD1D0D03FD1D1D13FD1D0D03FD1D1D13FD1D1D13FD1D0 - D03FD1D1D13FD1D0D03FD1D1D13FD1D0D03FD1D1D13FD1D0D030D1D1D10A0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000FFFF - FFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF00 - 0000FFFFFFFFFFFFFFFFFF000000FFFFFFC007FFFFFFFF000000FFFFFC00007F - FFFFFF000000FFFFF000000FFFFFFF000000FFFF80000003FFFFFF000000FFFF - 00000000FFFFFF000000FFFC000000007FFFFF000000FFF8000000003FFFFF00 - 0000FFF0000000000FFFFF000000FFE00000000007FFFF000000FFC000000000 - 03FFFF000000FF800000000001FFFF000000FF000000000000FFFF000000FE00 - 0000000000FFFF000000FC0000000000007FFF000000FC0000000000003FFF00 - 0000F80000000000003FFF000000F80000000000001FFF000000F00000000000 - 001FFF000000F00000000000000FFF000000E00000000000000FFF000000E000 - 000000000007FF000000C000000000000007FF000000C000000000000007FF00 - 0000C000000000000003FF000000C000000000000003FF000000C00000000000 - 0001FF0000008000000000000001FF0000008000000000000000FF0000008000 - 000000000000FF0000008000000000000000FF00000080000000000000007F00 - 000080000000000000007F00000080000000000000003F000000800000000000 - 00003F00000080000000000000001F00000080000000000000001F000000C000 - 0000000000001F000000C0000000000000000F000000C0000000000000000F00 - 0000C00000000000000007000000C00000000000000007000000E00000000000 - 000007000000E00000000000000002000000E00000000000000002000000F000 - 00000000000000000000F80000000000000000000000F8000000000000000000 - 0000FC0000000000000000000000FC0000000000000000000000FE0000000000 - 000000000000FF0000000000000000000000FF0000000000000000000000FF80 - 00000000000000000000FFC000000000000000000000FFE00000000000000000 - 0000FFF800000000000001000000FFFC00000000000001000000FFFE00000000 - 000003000000FFFF80000000000007000000FFFFF000000000000F000000FFFF - FC00000000001F000000FFFFFFE000000000FF000000FFFFFFFFFFFFFFFFFF00 - 0000FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF - FFFFFF000000FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF0000002800 - 0000400000008000000001002000000000000042000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000020000 - 00050000000A0000001000000015000000190000001B0000001B0000001A0000 - 0017000000120000000C00000007000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000020000000900000015000000230000 - 00310000003C00000044000000490000004C0000004D0000004E0000004D0000 - 004B000000470000004000000036000000280000001A0000000C000000040000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000121111040000001000000023000000380202024A131212772322 - 22A1323030C13A3939D9444242E9474545F4474545F4474545F4464444F0403E - 3EE1343333CC292828B01A19198B0707075F0000004C0000003E0000002A0000 - 0015090808072D2C2C0100000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001616 - 160300000010000000280101014218171780323030C3464444F5494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF484646FD3A3939D6201F1F9B0605055C0000 - 0047000000300000001709080806000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000040404090000 - 00220303034422212198414040E9494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF474545F72D2B - 2BB70A0A0A68000000460000002B0000000F1B1A1A0200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000475F5F0200000012000000331D1C - 1C88424040EA494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4B4A4AFF4E4E4EFF515252FF545656FF555858FF545656FF525353FF4E4E - 4EFF4B4A4AFF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF474545F92A2929B10404045A0000003D0000001C232F2F05000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000272F2F040000001B0A0A0A51383737CE4947 - 47FF494747FF494747FF494747FF494747FF4A4848FF505151FF5F6565FF6A7E - 82FF5F8B9BFF5594AEFF4D99BBFF4B9DC2FF4A9EC5FF499DC3FF4B99BCFF5093 - B0FF598A9EFF667E85FF606767FF515252FF4A4949FF494747FF494747FF4947 - 47FF494747FF494747FF424040EB1616168200000048000000260B0F0F090000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000002F2F2F050000002018181876454343F2494747FF4947 - 47FF494747FF494747FF4C4B4BFF5A5E5EFF6B8389FF5497B3FF3D9FCEFF289D - D8FF2EA2DEFF32A6E1FF35A8E3FF36A9E4FF37A9E4FF37A9E4FF35A8E3FF34A7 - E2FF2FA3DFFF279DDAFF339DD0FF4A95B7FF62838EFF5C6161FF4C4C4CFF4947 - 47FF494747FF494747FF494747FF484646FE292828AD0101014F0000002C0000 - 000B000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000002F2F2F040000002024232392484646FD494747FF494747FF4947 - 47FF4A4949FF5A5E5EFF698A94FF479EC5FF289DD9FF2EA4E0FF33A9E5FF37AC - E8FF3AAFEBFF3CB1ECFF3DB2EDFF3EB2EEFF3FB3EEFF3FB3EEFF3EB2EDFF3DB1 - EDFF3CB0EBFF39AEE9FF36AAE6FF31A6E1FF269DDAFF399AC9FF5C899AFF5C61 - 62FF4B4A4AFF494747FF494747FF494747FF494747FF363434CB030303560000 - 002E00080C0B0000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00002F3F3F030000001D27262698494747FF494747FF494747FF494747FF5051 - 51FF6B7E81FF4C9CC0FF269DD9FF2CA4E2FF32AAE7FF36AEEBFF39B1EEFF3AB2 - EFFF3BB3F0FF3CB4F1FF3DB5F1FF3DB5F1FF3EB5F1FF3EB5F1FF3EB5F1FF3EB5 - F1FF3EB4F1FF3DB4F0FF3CB2EEFF39B0ECFF36ACE9FF30A7E4FF259EDBFF3998 - C5FF637F87FF525353FF494747FF494747FF494747FF494747FF3A3838D60504 - 04580000002C0B0F0F0800000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000005F7F - 7F010000001625242490494747FF494747FF494747FF494848FF585B5BFF6892 - A1FF2D9CD3FF27A1DFFF2DA8E7FF31ADECFF34B0EEFF36B1F0FF37B2F1FF38B3 - F1FF38B3F2FF38B3F2FF39B3F2FF39B3F2FF3AB4F2FF3AB4F2FF3AB4F2FF3AB4 - F2FF3BB4F2FF3BB4F2FF3AB4F1FF3AB3F1FF39B2EFFF37AFEDFF32ABE9FF2BA4 - E1FF249BD6FF538FA9FF5B6060FF4A4848FF494747FF494747FF494747FF3837 - 37D30303035100000025232F2F05000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000D1A191970484646FD494747FF494747FF4A4848FF5F6464FF5E9BB3FF229B - D8FF26A3E3FF2BA9EAFF2FADEEFF30AFF0FF31B0F1FF32B0F1FF32B1F1FF33B1 - F1FF33B1F1FF33B1F1FF34B1F1FF34B1F1FF35B1F1FF35B2F1FF35B2F2FF36B2 - F2FF36B2F2FF36B2F2FF37B2F2FF37B2F2FF37B2F1FF36B1F1FF35B0EFFF31AC - EBFF2BA7E5FF229CDBFF4295BBFF60696AFF4A4949FF494747FF494747FF4947 - 47FF333131C4000000480000001B272A2A020000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000171F1F050D0C - 0C43464444F3494747FF494747FF4A4848FF606666FF569DBBFF1D9ADAFF24A3 - E5FF28A9EBFF2AACEEFF2BAEF0FF2CAEF1FF2CAFF1FF2DAFF1FF2DAFF1FF2EAF - F1FF2EAFF1FF2EAFF1FF2EAFF1FF2FAFF1FF2FAFF1FF2FB0F1FF30B0F1FF30B0 - F1FF30B0F1FF31B0F1FF31B0F1FF31B0F1FF32B0F1FF32B0F1FF32B0F1FF31AF - EFFF2FADEDFF29A7E7FF219EDDFF3895C2FF616B6DFF4A4949FF494747FF4947 - 47FF494747FF242323A10000003C0000000F0000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000242323010202021A3C3A - 3AD2494747FF494747FF494747FF5B6060FF5B9DB8FF1A99D9FF20A2E5FF24A8 - ECFF26ABEFFF27ACF0FF27ACF1FF27ACF1FF28ACF1FF28ADF1FF28ADF1FF28AD - F1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF2AADF1FF2AAEF1FF2AAEF1FF2BAE - F1FF2BAEF1FF2BAEF1FF2CAEF1FF2CAEF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAF - F0FF2DAEF0FF2BABEDFF26A6E8FF1F9DDDFF3A95BFFF5E6565FF494848FF4947 - 47FF494747FF484646FB101010710000002A0908080500000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000004040409242323854947 - 47FF494747FF494747FF545555FF6799AAFF1998D8FF1BA0E4FF1FA6EBFF21A9 - EEFF22AAF0FF22AAF0FF22ABF0FF23ABF0FF23ABF0FF23ABF0FF24ABF0FF24AB - F0FF24ABF0FF25ABF0FF25ABF0FF25ACF0FF25ACF0FF26ACF0FF26ACF1FF26AC - F1FF26ACF1FF27ACF1FF28AAEDFF4B7185FF3D8BB2FF2CA7E6FF28ADF1FF28AD - F1FF28ADF0FF28ACF0FF27AAEDFF22A5E7FF1B9ADBFF4993B3FF565A5AFF4947 - 47FF494747FF494747FF3D3C3CDE010101470000001500000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000010707072B474545F24947 - 47FF494747FF4C4C4CFF708A8FFF2098D3FF179DE1FF1BA4EAFF1CA7EEFF1DA7 - EEFF314855FF4C4A4AFF555353FF555353FF555353FF3484ADFF1FA9F0FF1FA9 - F0FF20A9F0FF20A9F0FF20AAF0FF20AAF0FF21AAF0FF21AAF0FF21AAF0FF22AA - F0FF22AAF0FF22AAF0FF338CB9FF585656FF595757FF57595BFF487287FF3591 - C0FF25A9ECFF24ABF0FF24AAEFFF22A8ECFF1EA2E5FF1897D8FF5C899AFF4E4E - 4EFF494747FF494747FF494747FF201F1F970000002E09080806000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000072E2D2D9E494747FF4947 - 47FF494747FF646B6BFF409EC9FF1499DDFF16A1E8FF18A5EEFF18A7EFFF19A7 - F0FF1E84B8FF3C3A3AFF4F4D4DFF525050FF525050FF4D565CFF1DA2E5FF1BA8 - F0FF1BA8F0FF1BA8F0FF1BA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1DA8 - F0FF1DA8F0FF1DA8F0FF456577FF555353FF555353FF555353FF565454FF5654 - 54FF525A5FFF407794FF2B95CBFF1FA8EEFF1DA5EAFF199EE2FF2396CEFF6371 - 74FF4A4848FF494747FF494747FF434242EE0303034900000013000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000007070725474545F5494747FF4947 - 47FF505151FF6998A9FF1094D7FF129EE5FF14A3ECFF15A5EFFF15A5EFFF16A6 - EFFF16A6EFFF264D61FF444242FF4E4D4DFF4F4D4DFF4F4D4DFF357394FF17A6 - F0FF17A6F0FF17A6F0FF18A6F0FF18A7F0FF18A7F0FF18A7F0FF18A7F0FF19A7 - F0FF19A7F0FF2197D4FF504E4EFF525050FF525050FF525050FF525151FF5351 - 51FF535151FF525050FF454343FF2282B3FF1BA6EDFF18A2E8FF1498DCFF4892 - B3FF525454FF494747FF494747FF494747FF1F1E1E92000000261B1A1A030000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000327262684494747FF494747FF4947 - 47FF687272FF329CCEFF0F99DFFF11A0E9FF12A3EDFF12A4EFFF12A4EFFF12A4 - EFFF13A4EFFF168DCAFF323233FF494747FF4D4B4BFF4D4B4BFF4B4C4EFF1C97 - D6FF14A5EFFF14A5EFFF15A5EFFF15A5EFFF15A5EFFF15A5EFFF15A5EFFF16A6 - EFFF16A6EFFF347090FF4E4D4DFF4F4D4DFF4F4D4DFF4C4A4AFF494747FF4E4C - 4CFF504E4EFF4D4B4BFF343F46FF18A3EBFF17A6EFFF16A3ECFF139CE3FF1794 - D3FF65787CFF4A4848FF494747FF494747FF3D3C3CDD0000003B0000000B0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000009424040DC494747FF494747FF4E4E - 4EFF6C97A5FF0D92D7FF0E9CE5FF0FA1ECFF0FA3EEFF10A3EFFF10A3EFFF10A4 - EFFF10A4EFFF10A4EFFF1D5673FF3D3B3BFF4A4848FF4B4949FF4B4949FF3764 - 7BFF11A4EFFF11A4EFFF11A4EFFF12A4EFFF12A4EFFF12A4EFFF12A4EFFF12A4 - EFFF14A0E8FF464E52FF4C4A4AFF4D4B4BFF4B4949FF3B3939FF2C2B2BFF3534 - 34FF413F3FFF3F3E3EFF216385FF15A5EFFF14A5EFFF14A4EDFF119FE7FF0E96 - DBFF4B90AFFF505151FF494747FF494747FF494747FF100F0F690000001C2927 - 2701000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000013121239494747FF494747FF494747FF5D62 - 62FF459FC7FF0D97DDFF0D9EE9FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF1094D8FF2C3033FF454343FF4A4848FF4A4848FF4947 - 47FF1D8AC2FF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF10A3EFFF10A3EFFF10A3 - EFFF247FAEFF4A4848FF4A4848FF4A4848FF454343FF27485AFF14709FFF1A3A - 4BFF222121FF242425FF1492D2FF12A4EFFF11A4EFFF11A3EEFF0FA0EAFF0E99 - E1FF2195CEFF616969FF494747FF494747FF494747FF2E2D2DB8000000330908 - 0807000000000000000000000000000000000000000000000000000000000000 - 000000000000000000003F3F3F012726267F494747FF494747FF4A4848FF7383 - 85FF1A96D3FF0D9AE2FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF186085FF383737FF484646FF494747FF4947 - 47FF3D5663FF0EA1ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF395A6CFF4A4848FF4A4848FF494747FF3C3A3AFF1775A5FF0FA3EFFF0FA3 - EFFF1189C6FF136792FF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EEFF0EA1ECFF0D9C - E5FF0C92D7FF618490FF4A4949FF494747FF494747FF474545F7060606510000 - 0015000000000000000000000000000000000000000000000000000000000000 - 000000000000000000003F3F3F02383737B9494747FF494747FF4D4D4DFF6B98 - A7FF0C93D8FF0D9CE6FF0EA1EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0E9CE5FF27343BFF424040FF484646FF4947 - 47FF484646FF247DABFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1692 - D2FF474545FF494747FF494747FF464444FF2E3539FF0E9DE6FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9E - E8FF0C96DCFF4A91B1FF4F4F4FFF494747FF494747FF494747FF2422229D0000 - 002B121111040000000000000000000000000000000000000000000000000000 - 000000000000000000003F3F3F05474545E6494747FF494747FF545656FF569F - BDFF0C96DCFF0D9EE8FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF156E9CFF353434FF474545FF4947 - 47FF494747FF424E54FF109DE5FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF2B6D - 90FF484646FF494747FF484646FF403E3EFF1E5978FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0E9F - EAFF0D98DFFF3397C6FF585B5BFF494747FF494747FF494747FF413F3FE70101 - 01420000000F0000000000000000000000000000000000000000000000000000 - 000000000000000000004B4A4A14494747FF494747FF494747FF5D6262FF43A0 - CAFF0D97DFFF0E9FE9FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA0EBFF233B47FF403E3EFF4846 - 46FF494747FF484646FF2C7093FF0EA3EFFF0EA3EFFF0EA3EFFF0EA0EBFF404C - 53FF494747FF494747FF474545FF363535FF1287C2FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA0 - EBFF0D9AE2FF1F96D1FF626A6AFF494747FF494747FF494747FF494747FF1918 - 1882000000231B1A1A0200000000000000000000000000000000000000000000 - 000000000000000000005150502F494747FF494747FF494747FF676F6FFF319E - D1FF0D99E1FF0EA0EAFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF137BB1FF323131FF4644 - 44FF494747FF494747FF46484AFF1596D8FF0EA3EFFF0EA3EFFF1D84B9FF4846 - 46FF494747FF494747FF444242FF27404DFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - ECFF0D9BE4FF1092D5FF68787AFF494747FF494747FF494747FF494747FF3836 - 36CE0000003A0404040A00000000000000000000000000000000000000000000 - 0000000000000000000051515141494747FF494747FF494747FF6E7A7AFF259A - D3FF0D9AE2FF0EA0EBFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1F4559FF3E3C - 3CFF484646FF494747FF494747FF33647DFF0EA3EFFF0EA3EFFF31627BFF4846 - 46FF494747FF484646FF3C3B3BFF196B95FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - EDFF0D9CE5FF0C92D6FF678086FF494747FF494747FF494747FF494747FF4846 - 46FE0E0D0D650000001B29272701000000000000000000000000000000000000 - 0000000000000000000052515143494747FF494747FF494747FF737F7FFF1F98 - D3FF0D9AE2FF0EA0EBFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1189C6FF2F2E - 2FFF454343FF494747FF494747FF484646FF1B8BC5FF0F9FE8FF434649FF4947 - 47FF494747FF464545FF313335FF0F98DEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - EDFF0D9CE5FF0C92D6FF65828BFF494848FF494747FF494747FF494747FF4947 - 47FF2D2B2BB50000003209080807000000000000000000000000000000000000 - 0000000000000000000052515142494747FF494747FF494747FF727F7FFF1F98 - D3FF0D9AE2FF0EA0EBFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1C52 - 6EFF3B3A3AFF484646FF494747FF494747FF3C5867FF1F85BAFF484646FF4947 - 47FF494747FF424040FF215069FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - EDFF0D9CE5FF0C92D6FF66838BFF494848FF494747FF494747FF494747FF4947 - 47FF464444F50505054F00000015000000000000000000000000000000000000 - 0000000000000000000051515140494747FF494747FF494747FF6E7979FF289B - D3FF0D99E1FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0F93 - D7FF2B2F32FF444242FF494747FF494747FF494747FF41525BFF494747FF4947 - 47FF484646FF383737FF147DB3FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - EDFF0D9CE5FF0C92D6FF698085FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF2221219A0000002A121111040000000000000000000000000000 - 000000000000000000005151512C494747FF494747FF494747FF666E6EFF369F - D0FF0D99E0FF0EA0EAFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF10A3EFFF16A6 - EFFF256789FF464444FF555353FF575555FF585656FF575555FF575555FF5553 - 53FF4F4E4EFF334148FF11A2ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - ECFF0D9BE3FF1293D4FF6A7779FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF403E3EE5000000400000000F0000000000000000000000000000 - 000000000000000000004C4C4C10494747FF494747FF494747FF5C6161FF49A2 - C9FF0D97DEFF0D9FE9FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF17A6EFFF23ABF0FF29ADF0FF2AAD - F1FF2AA6E6FF404B50FF585757FF5E5C5CFF5E5C5CFF5E5C5CFF5E5C5CFF5E5C - 5CFF555353FF367494FF2AADF1FF25ABF0FF1BA7EFFF0FA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA0 - EBFF0D99E1FF2497D0FF626969FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF1716167D000000221B1A1A0200000000000000000000 - 0000000000000000000000000000484646E7494747FF494747FF535555FF5EA1 - BCFF0C95DBFF0D9EE7FF0EA2EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF16A6EFFF2BAEF1FF32B0F1FF32B0F1FF32B0F1FF32B0 - F1FF32B0F1FF3982A8FF545353FF636161FF646262FF646262FF646262FF6361 - 61FF525252FF34A1D8FF32B0F1FF32B0F1FF32B0F1FF2EAFF1FF1BA8F0FF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9F - E9FF0D98DFFF3A98C4FF575A5AFF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF363535CB000000390404040A00000000000000000000 - 00000000000000000000000000003A3939B7494747FF494747FF4D4C4CFF759A - A5FF0C92D6FF0D9CE5FF0EA1ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF22AAF0FF3AB4F1FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4 - F2FF3BB4F2FF3BB2EFFF4E6069FF666565FF6B6969FF6B6969FF6B6969FF6665 - 65FF4D6A79FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF2BAE - F0FF0FA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EDFF0D9E - E7FF0C95DBFF5393AEFF4F4F4FFF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF484646FD0C0C0C620000001A00000001000000000000 - 000000000000000000000000000028272778494747FF494747FF494848FF7381 - 81FF259AD3FF0D99E1FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF26ACF0FF44B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7 - F2FF45B7F2FF45B7F2FF4C9BC4FF6D6C6CFF727171FF727171FF727070FF6766 - 66FF4B93B9FF45B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7 - F2FF33B1F1FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1ECFF0D9B - E4FF0E92D6FF6A858CFF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF2B2A2AB10000003000000006000000000000 - 000000000000000000000000000016151531494747FF494747FF494747FF5B5F - 5FFF53A3C5FF0C96DCFF0D9EE8FF0EA2EDFF0EA3EFFF0EA3EFFF0EA3EFFF1CA8 - EFFF4DBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBB - F3FF4EBBF3FF4EBBF3FF53B1E1FF787777FF7A7878FF7A7878FF787676FF666B - 6EFF4FB7ECFF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBB - F3FF4EBBF3FF2BAEF0FF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9FEAFF0D98 - E0FF2E99CBFF606667FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF464444F30504044D00000014000000000000 - 000000000000000000000000000000000000444242DB494747FF494747FF4D4D - 4DFF7899A1FF1093D5FF0D9BE4FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF46B8 - F2FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BF - F4FF59BFF4FF59BFF4FF6A9FBBFF818080FF828080FF818080FF7C7B7BFF648C - A1FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BF - F4FF59BFF4FF54BDF3FF12A4EFFF0EA3EFFF0EA2EEFF0EA1ECFF0D9DE6FF0C94 - D9FF5993AAFF4F4F4FFF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF2120209600000029000000030000 - 0000000000000000000000000000000000002D2C2C79494747FF494747FF4947 - 47FF656E6EFF43A2CCFF0C97DDFF0D9EE8FF0EA1EDFF0EA2EEFF15A5EFFF63C3 - F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3 - F4FF64C3F4FF64C3F4FF80939EFF8A8888FF8A8888FF898888FF7E7D7DFF67B1 - D7FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3 - F4FF64C3F4FF64C3F4FF2AADF0FF0EA3EFFF0EA2EEFF0D9FEAFF0D99E1FF2096 - D0FF697577FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF3F3D3DE10000003F0000000E0000 - 0000000000010000000000000000000000000D0D0D15484646F6494747FF4947 - 47FF4F4F4FFF789BA4FF1293D5FF0D9AE3FF0EA0EBFF0EA2EEFF23ABF0FF6EC8 - F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF70C3EDFF74BDE2FF75BE - E3FF75BEE3FF77BADCFF919091FF929191FF929191FF8F8E8EFF7E8C94FF6EC8 - F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8 - F5FF6EC8F5FF6EC8F5FF3CB4F2FF0EA2EEFF0EA1ECFF0D9CE5FF0C93D8FF5B95 - ACFF515252FF494747FF4D4D4DFF535454FF545555FF545555FF545555FF5455 - 55FF535555FF4F5050FF4A4848FF494747FF494747FF16151579000000210000 - 000200000001000000000000000000000000000000004846468F494747FF4947 - 47FF494747FF616767FF56A5C6FF0C95DAFF0D9DE6FF0EA1ECFF23AAF0FF7ACC - F6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF82B5CFFF989797FF9B99 - 99FF9B9999FF9B9999FF9B9999FF9B9999FF9A9999FF949393FF80ADC3FF7ACC - F6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACC - F6FF7ACCF6FF7ACCF6FF3EB5F2FF0EA1EDFF0D9EE8FF0C97DEFF3199CAFF656E - 6EFF494747FF4B4949FF5E8FA5FF7BBBD8FF7CBDD9FF7CBDD9FF7CBDD9FF7CBD - D9FF7CBCD9FF7896A3FF4F4F4FFF494747FF494747FF353333C8000000370000 - 00090000000100000000000000000000000000000000575D5D18484646F24947 - 47FF494747FF4C4B4BFF758889FF2C9BD0FF0D97DEFF0D9EE8FF13A3EDFF80CE - F6FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF8CBBD3FFA1A0A0FFA3A2 - A2FFA3A2A2FFA3A2A2FFA3A2A2FFA3A2A2FFA2A1A1FF979898FF86CAEDFF85D0 - F7FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF85D0 - F7FF85D0F7FF85D0F7FF2CADEFFF0D9FE9FF0D99E1FF1694D4FF6B8992FF4D4C - 4CFF494747FF4B4949FF609AB3FF80D1F7FF83CAEBFF81B8CDFF79ADC3FF78AC - C2FF78ACC2FF718B95FF4E4E4EFF494747FF494747FF484646FD0B0B0B5E0000 - 0019000000010000000000000000000000000000000000000000748B8B744947 - 47FF494747FF494747FF525353FF789BA4FF1A96D4FF0D99E0FF0D9EE8FF5EC0 - F2FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF96C1D7FFA7A6A6FFA8A8 - A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA6A5A5FF98AEB9FF90D4F7FF90D4 - F7FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF90D4 - F7FF90D4F7FF7CCCF5FF10A0EAFF0D9AE3FF0E93D6FF6197ABFF545656FF4947 - 47FF494747FF494747FF545C5FFF72BFE2FF80D0F5FF83A1ABFF595D5DFF4F50 - 50FF4F4F4FFF4D4C4CFF494747FF494747FF494747FF494747FF2A2929AD0000 - 002C000000040000000000000000000000000000000000000000B6F3F3045052 - 52CB494747FF494747FF494747FF585B5BFF72A3B2FF1394D5FF0D99E0FF1DA4 - E9FF8FD3F6FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8F8FF9EC3D6FFA5A4A4FFA5A5 - A5FFA5A5A5FFA5A5A5FFA5A5A5FFA5A5A5FFA4A4A4FF9DC8DEFF9BD8F8FF9BD8 - F8FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8 - F8FF99D7F7FF36AFEDFF0D9AE3FF0C93D7FF559BB8FF5C6161FF494747FF4947 - 47FF494747FF494747FF4A4848FF596E75FF78CAF0FF82CDF0FF76878BFF4E4E - 4EFF494747FF494747FF494747FF494747FF494747FF494747FF444242EF0101 - 013E0000000B000000000000000000000000000000000000000000000000A0D1 - D127484646F3494747FF494747FF494848FF5C6161FF71A4B4FF1595D5FF0D98 - DFFF33ACEAFF9FD9F7FFA6DCF8FFA6DDF9FFA6DDF9FFA7D1E7FFA8C2D0FFA8C2 - D0FFA8C2D0FFA8C2D0FFA8C2D0FFA8C2D0FFA8C3D0FFA6DCF8FFA6DDF9FFA6DD - F9FFA6DDF9FFA6DDF9FFA6DDF9FFA6DDF9FFA6DDF9FFA6DDF9FFA6DCF9FFA5DB - F8FF53BAEEFF0D9AE1FF0D93D7FF559CBAFF606667FF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF4C4B4BFF5F8493FF7DD0F6FF85C6E4FF6B74 - 75FF4C4B4BFF494747FF494747FF494747FF494747FF494747FF494747FF1514 - 146F000000120000000000000000000000000000000000000000000000000000 - 000083A3A355494747FE494747FF494747FF4A4848FF5B5F5FFF76A0ACFF2198 - D2FF0C96DCFF30A9E8FF9CD7F6FFB1E0F9FFB1E1F9FFB1E1FAFFB1E1FAFFB1E1 - FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1 - FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1F9FFB1E0F9FFAADDF7FF4BB5 - ECFF0D98DFFF1294D5FF609BB2FF5E6464FF4A4848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4E4E4EFF669DB4FF80D0F7FF85B9 - D1FF606666FF4A4949FF494747FF494747FF494747FF494747FF494747FF2625 - 259D000000160000000000000000000000000000000000000000000000000000 - 00000000000032607879494747FF494747FF494747FF494747FF555757FF7993 - 98FF3FA0CDFF0C93D7FF179DE1FF6DC3EFFFB4E1F8FFBBE4F9FFBBE5FAFFBBE5 - FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE5 - FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE4F9FFBAE3F9FF84CDF2FF26A4E4FF0C94 - DAFF2999CFFF6C939EFF575B5BFF494848FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF535656FF8DC0D6FFA4DE - F9FF92AEB9FF565959FF494747FF494747FF494747FF494747FF494747FF3130 - 30B1000000140000000000000000000000000000000000000000000000000000 - 0000000000000000000032607887494747FF494747FF494747FF494747FF4E4E - 4EFF6C7778FF6AA4B8FF2499D2FF0C94D9FF1FA0E2FF66C0EDFFA5DBF6FFC5E8 - FAFFC5E8FAFFC5E8FBFFC5E8FBFFC5E9FBFFC5E9FBFFC5E9FBFFC5E8FBFFC5E8 - FBFFC5E8FAFFC5E8FAFFB3E1F8FF76C7F0FF2FA7E5FF0C95DBFF1695D4FF549D - BCFF6D7C7DFF505050FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF5B6568FFA4D5 - ECFFB0E0F7FF7A8688FF4C4B4BFF494747FF494747FF494747FF494747FF302F - 2FAA0000000D0000000000000000000000000000000000000000000000000000 - 000000000000000000000000000032607876494747FE494747FF494747FF4947 - 47FF4A4848FF565959FF76888AFF63A3BCFF2B9CD2FF0C92D7FF0C96DCFF24A2 - E3FF50B6EAFF71C4EFFF88CEF2FF96D4F4FF9DD7F5FF99D5F4FF8CD0F3FF78C7 - F0FF58B9EBFF2FA7E5FF0F98DEFF0C93D8FF1D97D3FF529FBFFF728A8FFF585C - 5CFF4A4949FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF515252FF5A5E5EFF525353FF494747FF4B4949FF7E9B - A6FFBAE6FBFF99B1BAFF515151FF494747FF494747FF494747FF494747FF2423 - 2387000000060000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000002A698950494747F0494747FF4947 - 47FF494747FF494747FF4B4949FF565959FF717E7FFF729DA9FF53A3C5FF2E9D - D2FF1193D4FF0C92D7FF0C94D9FF0C95DAFF0C95DBFF0C95DBFF0C94DAFF0C93 - D8FF0E92D5FF2599D2FF48A0C7FF679AACFF718183FF585B5BFF4B4A4AFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4949FF8EAFBEFFBFE5F7FF839195FF4D4D4DFF4A4848FF768B - 92FFC4E9FBFFA1B8C0FF525353FF494747FF494747FF494747FF494747FF1312 - 1240000000010000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000074B4C422575E5EC24947 - 47FF494747FF494747FF494747FF494747FF494848FF4E4E4EFF5A5E5EFF6C77 - 77FF7A8F91FF7399A4FF689DB0FF619FB7FF5E9FB9FF5F9FB7FF659DB1FF6E98 - A5FF788F93FF6E7979FF5B5F5FFF4F4F4FFF4A4848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4848FF8198A0FFCDECFCFFB5CDD7FF6B7474FF626A6BFFAECC - D9FFCDECFCFF91A2A7FF4E4E4EFF494747FF494747FF494747FF3E3C3CCA0000 - 0006000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000099C5C5016675 - 7563494747E7494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4A4848FF4C4B4BFF4F4F4FFF515151FF525353FF515252FF4F4F4FFF4C4C - 4CFF4A4949FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF55595AFFB4D0DCFFD6F0FCFFCEE9F5FFCFEAF7FFD6F0 - FCFFB9D0D9FF626767FF4A4848FF494747FF494747FF484646FA1414143A0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00004947470C49474776494747E4494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494848FF56595AFF87979CFFA3B3B9FFA3B4B9FF8C9A - 9EFF5E6364FF4C4A4AFF494747FF494747FF494747FE2A282867000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000004947470549474752494747AD494747F6494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4A4949FF4D4C4CFF4D4D4DFF4B4A - 4AFF494747FF494747FF494747FF484646E93533335000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000049474709494747434947 - 477C494747AB494747CF494747E9494747FA494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747F1494747C1484646704442420D0000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFF8001FFFFFFFFFFFC00003FFFFFFFFFF0000007FFFFFFFFC - 0000003FFFFFFFF80000000FFFFFFFE000000007FFFFFFC000000003FFFFFF80 - 00000001FFFFFF0000000000FFFFFE00000000007FFFFC00000000003FFFFC00 - 000000001FFFF800000000001FFFF000000000000FFFF000000000000FFFE000 - 0000000007FFE0000000000007FFE0000000000003FFC0000000000003FFC000 - 0000000001FFC0000000000001FF80000000000001FF80000000000000FF8000 - 0000000000FF800000000000007F800000000000007F800000000000003F8000 - 00000000003F800000000000003F800000000000001F800000000000001F8000 - 00000000000FC00000000000000FC000000000000007C000000000000007C000 - 000000000007E000000000000003E000000000000002E000000000000000F000 - 000000000000F000000000000000F800000000000000F800000000000000FC00 - 000000000000FE00000000000000FF00000000000000FF80000000000000FFC0 - 000000000000FFE0000000000000FFF0000000000001FFF8000000000003FFFE - 000000000007FFFF80000000000FFFFFF0000000001FFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFF2800000030000000600000000100200000000000802500000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000200000008000000110000001A000000210000 - 002400000025000000230000001D000000140000000B00000004000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000A09 - 0901000000090000001B000000310404044B1110106F1B1A1A8C2221219D2322 - 22A1232222A1201F1F98161616830B0B0B640101014700000036000000210000 - 000C050404020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000A0A0A0A0000 - 0024080707502221219B393838D5464444F7484646FE494747FF484646FE4846 - 46FE494747FF484646FE484646FE484646FD424040EB2E2D2DBD1414147E0000 - 00470000002C0606060F29282801000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000191818040000001C0C0C0C59302E - 2EBD484646FA494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF3F3D - 3DE41E1D1D950101014A000000250F0E0E070000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000202B2B0904040435292828A9474545F94846 - 46FE484646FE494747FE4A4949FF525353FE5D6566FE5E7379FF5B7B87FE5B7F - 8DFE5A7D8AFF5B757EFE5E6A6CFE565858FF4C4B4BFE494747FE494747FF4846 - 46FE484646FE3C3B3BDE12111178000000380C10100F00000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000001C1C1C0D0D0D0D533E3C3CDF484646FE494747FF4947 - 47FE4F5050FE617073FE548CA3FF439CC5FE32A0D7FE2FA3DDFF31A5E0FE33A6 - E1FE32A6E1FF30A4DFFE2FA0DAFE399DCEFF4990B0FE5A7884FE555757FF4948 - 48FE484646FE494747FF474545FB262525A7010101430A0A0A15467287010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000001A1A1A0D16151568454343F3494747FF494747FF4D4D4DFF6174 - 79FF4C97B9FF2DA0D9FF31A7E3FF36ACE8FF3AAFEBFF3CB2EDFF3EB3EEFF3FB3 - EFFF3FB3EFFF3EB3EEFF3DB1EDFF3AAEEAFF35AAE6FF2BA2DEFF3A9AC9FF567F - 8FFF535555FF494747FF494747FF494747FF323131C50202024A000407160000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00002531310816161665464444F6484646FE494747FF585C5CFE588FA6FF2C9E - D7FE2DA6E4FE33ADEBFE37B0EEFF39B2F0FE3AB3F1FE3BB4F1FF3BB4F1FE3CB4 - F1FE3CB4F2FF3CB4F1FE3DB4F1FE3CB4F1FF3BB3EFFE38B0EDFE33ABE8FF29A1 - DEFE3E95BDFE5A6A70FF4A4949FE494747FF484646FE353333CB02020248080A - 0A11000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000004F6A - 6A030E0E0E4A464444F4494747FF494747FF5E6869FF4699BEFF24A0DFFF2BA9 - E9FF30AEEEFF32B0F0FF33B1F1FF34B1F1FF34B1F1FF35B1F1FF35B2F1FF35B2 - F1FF36B2F1FF36B2F2FF37B2F2FF37B2F2FF37B3F1FF37B2F1FF36B1F0FF33AD - ECFF2BA6E4FF2C9AD1FF597884FF4C4B4BFF494747FF494747FF302F2FBF0000 - 003A171D1D090000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000505 - 0524403E3EE0494747FF494747FE5F6A6BFE3C9AC7FF21A0E1FE27A9EBFF2AAC - EFFE2BAEF0FE2BAEF0FE2CAEF1FF2CAEF0FE2DAFF0FE2DAFF1FF2EAFF0FE2EAF - F0FE2EAFF1FF2FAFF0FE30B0F0FE30B0F1FF30B0F1FE31B0F1FE31B0F1FF31AF - F0FE2FADEEFE29A7E7FF249BD7FE577C8BFF4B4A4AFE484646FE494747FF2221 - 219C000000292221210200000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000D0D0D092E2D - 2DA6484646FE494747FF5B6061FE4299C2FE1C9EE1FF21A7EBFE24AAEFFF24AB - F0FE25ABF0FE25ABF0FE26ACF0FF26ACF0FE26ACF0FE27ACF0FF27ACF0FE27AC - F0FE28ADF1FF28ADF0FE29ADF0FE29ADF1FF31A0DAFE30A3DEFE2AAEF1FF2AAE - F0FE2AADF0FE29ACEEFF24A5E7FE2299D5FF5A747EFE4A4848FE494747FF4644 - 44F80D0D0D650101011300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000111111474846 - 46FB484646FE505151FF5594AFFE179BDDFE1BA4EAFF1DA8EFFE297298FF4364 - 75FE48697AFE48697AFE2C94CAFF20A9EFFE20AAEFFE21AAF0FF21AAF0FE21AA - F0FE22AAF0FF22AAF0FE23ABF0FE23ABF0FF476E82FE58595AFE4C6D7FFF398C - B7FE28A7E8FE25ABF0FF24A9EDFE1EA2E5FF2A96CBFE596365FE494747FF4846 - 46FE373535CF000000331E1D1D03000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000007393737C34947 - 47FF4A4848FF658088FF1A98D8FF16A0E8FF17A5EEFF18A7EFFF1B93D0FF3C3E - 3FFF504E4EFF525050FF45616FFF1BA6EDFF1AA7F0FF1AA7F0FF1BA8F0FF1BA8 - F0FF1BA8F0FF1CA8F0FF1CA8F0FF239BD9FF525354FF555353FF555353FF5553 - 53FF53575AFF42728AFF298EC2FF1DA6ECFF189DE0FF448DAEFF4E4E4EFF4947 - 47FF484646FE1514147605040411000000000000000000000000000000000000 - 000000000000000000000000000000000000000000001111113E484646FE4947 - 47FE565959FE3F9AC4FF109BE2FE13A3ECFE13A5EFFF14A5EFFE14A5EFFF225E - 7CFE464444FE4E4C4CFE4E4C4CFF2A82B0FE16A6EFFE16A6EFFF16A6EFFE16A6 - EFFE17A6EFFF17A6EFFE17A6EFFE337699FF504E4EFE514F4FFE504E4EFF504E - 4EFE514F4FFE4D4C4CFF2B627FFE19A6EFFF17A1E8FE1796D7FE5B7179FF4947 - 47FE484646FE353434CA000000282D2B2B010000000000000000000000000000 - 000000000000000000000000000000000000000000022E2D2D9E494747FF4947 - 47FE67828AFE1095D8FF0F9FE8FE10A3EEFE10A3EFFF10A4EEFE10A4EFFF1297 - DBFE31393EFE494747FE4B4949FF44525AFE149FE5FE12A4EFFF12A4EEFE12A4 - EEFE12A4EFFF13A4EFFE14A2EBFE465158FF4D4B4BFE4C4A4AFE3B3A3AFF3534 - 34FE424141FE3E3D3EFF198BC5FE15A5EFFF14A3ECFE109AE1FE408EB2FF4D4D - 4DFE484646FE484646FC090808510F0F0F090000000000000000000000000000 - 0000000000000000000000000000000000000303030B444242E8494747FF4F50 - 50FF4C98B9FF0D99E0FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF19668EFF3F3D3DFF494747FF494747FF2C7297FF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF2183B5FF4A4848FF4A4848FF454343FF205F7FFF1569 - 93FF1D3642FF1E3C4CFF11A3EEFF11A4EFFF10A3EEFF0E9DE7FF1895D3FF5C65 - 66FF494747FF494747FF272525A50000001E0000000000000000000000000000 - 00000000000000000000000000000000000011101038484646FE494747FF5F66 - 66FE299AD1FE0D9CE6FF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0E9CE5FE2A3B44FE464444FF484646FE46494CFE1497DAFF0EA2EEFE0EA2 - EEFE0EA3EFFF0EA2EEFE365E73FE494747FF494747FE393939FE1191D3FF0EA2 - EEFE0EA1EDFE0F97DCFF0FA3EEFE0EA3EFFF0EA2EEFE0EA0EAFE0C96DCFF557D - 8EFE494747FE494747FF424040EC0303033E1B1A1A0500000000000000000000 - 0000000000000000000000000000000000002120206B484646FE494747FF687F - 85FE1095D8FE0D9FE9FF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE1573A3FE3B3939FF484646FE484646FE336680FF0DA2EEFE0DA2 - EEFE0EA3EFFF1496D8FE464749FE494747FF464444FE274C5FFE0EA3EFFF0DA2 - EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0DA1ECFE0D99E1FF438C - AEFE4B4A4AFE494747FF484646FE1B1B1B880000001500000000000000000000 - 0000000000000000000000000000000000002E2C2C92494747FF4A4848FF618C - 9CFF0C96DCFF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA1EDFF264150FF454343FF494747FF484748FF1B8CC6FF0EA3 - EFFF0EA3EFFF297399FF484646FF494747FF403E3EFF1776A6FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EDFF0D9BE4FF3494 - C2FF505151FF494747FF494747FF3A3939D70000003024232302000000000000 - 000000000000000000000000000000000000313030AA484646FE4B4A4AFF5893 - ABFE0D98DFFE0EA1ECFF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE0DA2EEFE1380B7FF373737FE484646FE494747FF3A5A6BFE0EA1 - ECFE0EA1ECFF3E525DFE484646FE484646FF323B41FE0E9CE4FE0EA3EFFF0DA2 - EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0DA2EEFE0D9DE6FF2796 - CCFE555858FE494747FF484646FE484646FD1110106A0707070E000000000000 - 000000000000000000000000000000000000323030B1484646FE4C4B4BFF5496 - B2FE0D98E0FE0EA1ECFF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE0DA2EEFE0EA2EEFF214C62FE434141FE494747FF484646FE2281 - B1FE188ECAFF474546FE484646FE444343FF205C7BFE0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0DA2EEFE0D9DE7FF2196 - D0FE595D5DFE494747FF484646FE484646FE302E2EBD00000025302F2F010000 - 000000000000000000000000000000000000323030B1494747FF4C4B4BFF5596 - B1FF0D98E0FF0EA1ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF118CCAFF333537FF484646FF494747FF4150 - 59FF2D6F91FF484646FF484646FF3B3A3BFF1287C3FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9DE7FF2296 - D0FF595D5DFF494747FF494747FF494747FF474545F90707074E100F0F090000 - 000000000000000000000000000000000000323030A9484646FE4B4A4AFF5B94 - AAFE0D97DEFE0EA1ECFF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE0DA2EEFE0EA3EFFF0EA3EFFE205A77FE464545FF4F4D4DFE504E - 4EFE4F4F50FF4E4C4CFE4B4949FE2C4654FF0EA2EDFE0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0DA2EEFE0D9CE6FF2A96 - CBFE555858FE494747FF484646FE484646FE494747FF252424A10000001C0000 - 0000000000000000000000000000000000002F2D2D8F484646FE494848FF658D - 9BFE0C95DBFE0DA0EAFF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE13A5EFFE1FA9F0FF26ACF0FE29A1DEFE464B4FFF5B5A5AFE5D5B - 5BFE5D5B5BFF5D5B5BFE575555FE327CA2FF22AAF0FE19A7EFFE0EA3EFFF0DA2 - EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0DA2EDFE0D9BE4FF3895 - C0FE505050FE494747FF484646FE484646FE494747FF413F3FE90202023B1918 - 18050000000000000000000000000000000023222268494747FF494747FF6B7F - 83FF1395D7FF0D9EE8FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF11A4 - EFFF27ACF0FF33B1F1FF34B1F1FF34B1F1FF34B1F1FF3D7D9DFF5C5B5BFF6563 - 63FF656363FF656363FF555759FF35A8E3FF34B1F1FF34B1F1FF2FAFF1FF19A7 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1ECFF0D99E0FF488D - ABFF4B4A4AFF494747FF494747FF494747FF494747FF494747FF1A1919840202 - 02140000000000000000000000000000000012111133484646FE494747FF5E64 - 64FE319DD0FE0D9CE5FF0DA2EDFE0DA2EEFE0EA3EFFF0DA2EEFE14A5EFFF38B3 - F1FE3FB6F2FE3FB6F2FE40B6F2FF3FB6F2FE3FB6F2FE40B0E9FF5D696FFE6E6D - 6DFE6F6D6DFF6C6A6AFE51778BFE40B6F2FF3FB6F2FE3FB6F2FE40B6F2FF3FB5 - F2FE23ABF0FE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0D9FEAFE0C95DBFF5C7E - 8BFE494747FE494747FF484646FE484646FE494747FF484646FE393737D40000 - 002F0000000200000000000000000000000003030305464444E8494747FF4F4F - 4FFE559AB7FE0D98DFFF0DA0EBFE0DA2EEFE0EA3EFFF0FA3EFFE40B5F2FF4DBA - F3FE4DBAF3FE4DBAF3FE4DBAF3FF4DBAF3FE4DBAF3FE4DBAF3FF648FA6FE7877 - 77FE787777FF706F6FFE529FC7FE4DBAF3FF4DBAF3FE4DBAF3FE4DBAF3FF4DBA - F3FE4CBAF3FE1EA9F0FF0DA2EEFE0EA3EFFF0DA2EDFE0D9DE6FE2097D1FF5D63 - 63FE484747FE494747FF484646FE484646FE494747FF484646FE484646FD0F0F - 0F660000000D00000000000000000000000000000000302F2F98494747FF4947 - 47FF6D8287FF1596D7FF0D9DE7FF0EA2EEFF0EA3EFFF29ADF0FF5BC0F4FF5BC0 - F4FF5BC0F4FF5BC0F4FF5BC0F4FF5BC0F4FF5BC0F4FF5BBFF2FF7C888EFF8382 - 82FF828181FF717C82FF5BBEF0FF5BC0F4FF5BC0F4FF5BC0F4FF5BC0F4FF5BC0 - F4FF5BC0F4FF4BBAF3FF0EA3EFFF0EA2EEFF0DA0EBFF0D98DFFF4B90AEFF4C4C - 4CFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF2F2D - 2DBA000000240000000100000000000000000000000016151533494747FE4846 - 46FE545757FE4C9EC2FF0D98E0FE0DA0EBFE0EA2EEFF47B8F2FE69C5F5FF69C5 - F5FE69C5F5FE69C5F5FE69C5F5FF69C5F5FE69C5F5FE70B9DEFF8D8C8CFE8D8C - 8CFE8A8989FF729EB5FE69C5F5FE69C5F5FF69C5F5FE69C5F5FE69C5F5FF69C5 - F5FE69C5F5FE67C4F5FF15A5EFFE0EA2EDFF0D9DE6FE1A96D3FE607074FF4947 - 47FE4A4949FE4B4A4AFF4B4A4AFE4B4A4AFE4B4A4AFF4A4848FE494747FE4745 - 45F80606064B0000000800000000000000000000000000000000484646BB4947 - 47FF494747FF6B7F84FF1E98D5FF0D9CE5FF0EA1EDFF53BDF3FF78CBF6FF78CB - F6FF78CBF6FF78CBF6FF84AFC6FF959DA2FF959EA3FF979B9FFF999898FF9998 - 98FF909091FF7AC0E4FF78CBF6FF78CBF6FF78CBF6FF78CBF6FF78CBF6FF78CB - F6FF78CBF6FF77CBF6FF19A6EFFF0D9FEAFF0D96DDFF518FA9FF4D4D4DFF4C4E - 4FFF699BB1FF75A7BCFF75A7BCFF75A7BCFF75A6BCFF687B82FF4A4848FF4947 - 47FF2322229D0000001B000000010000000000000000000000005C6565384846 - 46FB484646FE4F4F4FFF6397AAFE0F95DAFE0D9EE8FF45B7F1FE87D1F7FF87D1 - F7FE87D1F7FE87D1F7FE93B5C7FFA3A2A2FEA4A3A3FEA4A3A3FFA4A3A3FEA3A2 - A2FE93A5AEFF87D1F7FE87D1F7FE87D1F7FF87D1F7FE87D1F7FE87D1F7FF87D1 - F7FE87D1F7FE78CBF5FF10A1EBFE0D99E1FF3396C5FE5A6061FE494747FF4D4E - 4FFE70BBDCFE82CDF0FF7EA9BAFE7098A9FE7098A8FF647278FE494848FE4947 - 47FF413F3FE80202023900000004000000000000000000000000000000006777 - 7799484646FE494747FF595D5DFE539EBDFE0D96DCFF19A3E9FE8AD1F6FF95D6 - F7FE95D6F7FE95D6F7FE9DBBCAFFA7A6A6FEA7A6A6FEA7A6A6FFA7A6A6FEA6A5 - A5FE99C2D7FF95D6F7FE95D6F7FE95D6F8FF95D6F7FE95D6F7FE95D6F8FF95D6 - F7FE95D6F7FE49B7EFFF0D9AE2FE2397CFFF627378FE494848FE494747FF4947 - 47FE586C74FE7ACAEFFF80ABBEFE545656FE4A4848FF494747FE494747FE4947 - 47FF484646FE1817177C0000000E00000000000000000000000000000000B0EA - EA10515353DB494747FF494747FF5F6667FF4D9FC2FF0D96DCFF38AEEBFFA0DA - F7FFA4DCF8FFA4DCF8FFA6C9DAFFA7BBC5FFA7BBC5FFA7BBC5FFA7BBC5FFA7BB - C5FFA4DAF5FFA4DCF8FFA4DCF8FFA4DCF9FFA4DCF8FFA4DCF8FFA4DCF9FFA4DC - F8FF74C7F2FF0F9BE2FF2297D0FF627C84FF4B4949FF494747FF494747FF4947 - 47FF4A4848FF5F8493FF7FCFF5FF79959FFF4E4D4DFF494747FF494747FF4947 - 47FF494747FF313030BD0000001A000000000000000000000000000000000000 - 00009DCBCB30484748F2484646FE494747FE5E6464FF599DB8FE1296D8FF36AB - E7FE9ED8F6FEB2E1F9FEB2E2FAFFB2E2F9FEB2E2F9FEB2E2FAFFB2E2F9FEB2E2 - F9FEB2E2FAFFB2E2F9FEB2E2F9FEB2E2FAFFB2E2F9FEB2E1F9FEAFE0F8FF69C2 - EFFE1199DEFE3098C9FF63777DFE4B4A4AFF484646FE484646FE494747FF4846 - 46FE484646FE4C4B4BFF6B9EB5FE8AD0F0FE718085FF4B4949FE484646FE4947 - 47FF484646FE413F3FE701010121000000000000000000000000000000000000 - 00000000000021729B4A484849F6484646FE494747FF555858FE69919EFF2C9B - D0FE179BDEFE62BEEDFEABDDF7FFC0E6FAFEC0E6FAFEC0E7FAFFC0E7FAFEC0E7 - FAFEC0E7FAFFC0E7FAFEC0E7FAFEC0E6FAFFBBE4F9FE86CEF2FE32A8E4FF1596 - D7FE4F96B4FE5F6869FF4A4848FE494747FF484646FE484646FE494747FF4846 - 46FE484646FE494747FF515354FE93C1D5FEA7D2E6FF606565FE494747FE4947 - 47FF484646FE464444F10303031F000000000000000000000000000000000000 - 0000000000000000000021729B49484748F1494747FF494747FF4C4B4BFF6570 - 72FF5E99B0FF2B9CD2FF1197DBFF39ABE5FF68C0EDFF8ACFF2FF9ED7F5FFA7DB - F6FFA3DAF6FF94D3F4FF78C7F0FF4FB5E9FF1E9EDFFF1696D6FF469ABFFF657E - 86FF515252FF494747FF494747FF494747FF494747FF494747FF494747FF4A48 - 48FF535555FF515252FF494747FF606C70FFB5E3F8FF86979DFF4A4848FF4947 - 47FF494747FF413F3FE00000000F000000000000000000000000000000000000 - 00000000000000000000000000001D77A52D444B50D7484646FE494747FF4947 - 47FE4D4D4DFE636B6CFE688E9AFF4F9BBCFE359DCEFE1E98D5FF1396D7FE1195 - D8FE1295D8FF1897D6FE2A9BD1FE429BC3FF5B91A6FE68787BFE525353FF4947 - 47FE484646FE494747FF484646FE494747FF484646FE484646FE494747FF4F51 - 52FEB4DBEDFE99AEB6FF4F4F4FFE595F60FEBFE5F6FF8FA0A6FE4A4949FE4947 - 47FF484646FE2F2D2DA000000003000000000000000000000000000000000000 - 000000000000000000000000000000000000A5E4E80D7084848F494848F84846 - 46FE484646FE494747FE4A4848FF4F5050FE5A5F5FFE677071FF6B7B7EFE6A7E - 83FE6A7C80FF687476FE5F6565FE535454FF4B4A4AFE494747FE494747FF4846 - 46FE484646FE494747FF484646FE494747FF484646FE484646FE494747FF4B4A - 4AFE9EB7C2FECBE6F3FF9CAFB5FEB1CAD4FECCE8F5FF707779FE494747FE4947 - 47FF474545F60F0E0E2E00000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000004947472A4947 - 47A7494747FA494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF535656FF93A4AAFFB1C3CAFFAABCC3FF788284FF4D4C4CFF494747FF4947 - 47FE262424690000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00004846461C48464676494747C8484646F7484646FE494747FF484646FE4846 - 46FE494747FF484646FE484646FE494747FF484646FE484646FE494747FF4846 - 46FE484646FE494747FF484646FE494747FF484646FE484646FE494747FF4846 - 46FE494747FE4A4848FF4C4B4BFE4B4A4AFE494747FF484646FE474545E03C3B - 3B52000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000A3A2A211A3A2A23BA4A3A35FA3A2A276A3A2 - A27FA4A3A37FA3A2A27FA3A2A27FA4A3A37FA3A2A27FA3A2A27FA4A3A37FA3A2 - A27FA3A2A27FA4A3A37FA3A2A27FA4A3A37FA3A2A27FA3A2A27FA4A3A37FA3A2 - A27FA3A2A27FA4A3A37FA3A2A27FA3A2A27FA4A3A377A3A2A248A3A2A2080000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF - FFFFFFFF0000FFFE001FFFFF0000FFF00003FFFF0000FFE00000FFFF0000FF80 - 00007FFF0000FF0000003FFF0000FE0000000FFF0000FC0000000FFF0000F800 - 000007FF0000F000000003FF0000F000000001FF0000E000000001FF0000E000 - 000000FF0000C000000000FF0000C0000000007F000080000000007F00008000 - 0000007F000080000000003F000080000000003F000080000000001F00008000 - 0000001F000080000000000F000080000000000F000080000000000F00008000 - 000000070000800000000007000080000000000300008000000000030000C000 - 000000010000C000000000010000E000000000000000E000000000000000F000 - 000000000000F000000000000000F800000000000000FC00000000000000FE00 - 000000000000FF00000000000000FF80000000010000FFE0000000030000FFF8 - 000000070000FFFF0000000F0000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF - FFFFFFFF0000FFFFFFFFFFFF0000280000002000000040000000010020000000 - 0000801000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000030000 - 000E0000001F0000002D00000033000000340000002F00000022000000110000 - 0004000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000252424040404041F121212672928 - 28AD393838D8444242F0484646F9474545F8414040EB353333CE2221219F0909 - 0958020202251F1F1F0700000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000B0B0B14181818763D3B3BDF494747FF4947 - 47FF494747FF4C4B4BFF4F4F4FFF4E4D4DFF4B4949FF494747FF494747FF4846 - 46FD323030C60B0B0B5F0606061A526262010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000BBC3C3011011112D343232C4494747FF494848FF565C5EFF507B - 8EFF4892B5FF429FCBFF40A3D4FF40A2D1FF439AC3FF4888A5FF526D78FF4E4E - 4EFF494747FF474545FA2221219D0304042A6183900300000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000151515363F3E3EE3494747FF545858FF4D88A3FF33A2DAFF34AB - E7FF39B0EDFF3DB3EFFF3EB4F0FF3EB4F0FF3DB3EEFF3AAFEBFF31A8E4FF3A9A - C8FF51717EFF4B4A4AFF494747FF2F2D2DBD0103042F7FABAB02000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00001E262625403E3EE2494747FF57696FFF379BCCFF2BA8E7FF32AFEFFF35B1 - F1FF35B2F1FF36B2F1FF37B2F1FF37B3F1FF38B3F2FF38B3F1FF38B2F1FF35AF - EDFF2BA4E2FF4488A8FF4F5050FF494747FF2E2C2CBA090C0C23000000000000 - 000000000000000000000000000000000000000000000000000000000000292E - 2E08363434C2494747FF586B71FF2B9DD5FF25A8EBFF29ACF0FF2AADF1FF2AAE - F1FF2BAEF1FF2CAEF1FF2CAEF1FF2DAFF1FF2EAFF1FF2EAFF1FF2FAFF1FF2FAF - F1FF2EAEEFFF27A6E6FF3C8DB3FF4E4F4FFF494747FF1F1E1E920F0F0F0F0000 - 0000000000000000000000000000000000000000000000000000000000001E1D - 1D6B494747FF565C5EFF2E99CEFF1CA4EAFF2491C8FF397D9FFF3C7FA1FF26A1 - DFFF22AAF0FF22AAF0FF23ABF0FF23ABF0FF24ABF0FF29A3E1FF4E6A79FF3D88 - AEFF2BA5E3FF26ABEFFF1FA2E5FF4583A0FF4A4848FF464444F6080808493230 - 30010000000000000000000000000000000000000000000000000101010B4240 - 40E44B4949FF478DADFF149FE6FF16A5EFFF189EE1FF3D464BFF514F4FFF3B6E - 89FF19A7F0FF19A7F0FF1AA7F0FF1AA7F0FF1BA8F0FF357DA2FF545252FF5452 - 52FF535455FF40687DFF1E9EDEFF1A9BDDFF526871FF494747FF2C2A2AB21413 - 130F0000000000000000000000000000000000000000000000001A19195B4947 - 47FF5B686BFF1799DAFF10A2ECFF11A4EFFF11A4EFFF1D6E98FF474545FF4B4A - 4AFF1E91CBFF13A4EFFF13A5EFFF14A5EFFF15A4EDFF45555EFF4D4B4BFF3F3D - 3DFF454343FF384B55FF16A5EEFF14A1E9FF358CB6FF4B4949FF464444F60403 - 0333000000000000000000000000000000000000000000000000333131AD4947 - 47FF4C87A0FF0D9CE5FF0EA2EEFF0EA3EFFF0EA3EFFF0E9FE9FF30424CFF4947 - 47FF3B5B6DFF0FA3EEFF0FA3EFFF0FA3EFFF1F88BEFF4A4848FF454343FF1874 - A3FF176288FF16709EFF10A3EFFF0FA2EDFF1297DBFF555F62FF494747FF1F1E - 1E8D21202007000000000000000000000000000000009F9F9F02444242E74D4C - 4CFF3798C6FF0D9FEAFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1678AAFF4240 - 40FF484646FF2183B5FF0EA3EFFF0EA3EFFF34637BFF484646FF34444DFF0EA1 - ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9BE3FF497588FF494747FF3D3C - 3CE00404042000000000000000000000000000000000A6A6A610494747FF5558 - 58FF239CD7FF0EA1ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF2A49 - 5AFF484646FF41515BFF0F9FE9FF129AE0FF464849FF474545FF1F678DFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9DE7FF3E82A2FF494747FF4947 - 47FF1413136B2B2A2A03000000000000000000000000A8A8A821494747FF5D62 - 62FF1799DBFF0EA1EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1385 - BFFF3E3D3DFF494747FF29769EFF247AA7FF484646FF3F3E3FFF1192D4FF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0D9FE9FF3989AFFF494747FF4947 - 47FF333131C60C0C0C15000000000000000000000000A8A8A820494747FF5C61 - 61FF189ADBFF0EA1EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF24536CFF474545FF454B4FFF3C5968FF484646FF2C5165FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0D9EE9FF3A89AFFF494747FF4947 - 47FF484646FC0A09094A353434010000000000000000A7A6A60F494747FF5557 - 57FF269CD6FF0DA1ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF10A3EFFF1AA7 - EFFF2498D4FF4D4E50FF5B5959FF5A5858FF565454FF2981AEFF17A6EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9DE7FF4083A1FF494747FF4947 - 47FF494747FF282727A81616160D000000000000000000000000454343E74C4C - 4CFF3B99C4FF0D9FEAFF0EA3EFFF0EA3EFFF0EA3EFFF20AAF0FF35B1F1FF36B2 - F1FF36B2F1FF457A95FF666464FF676666FF5A6064FF37AEEBFF36B2F1FF30B0 - F1FF15A5EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9AE3FF4D7587FF494747FF4947 - 47FF494747FF444242F104040430000000000000000000000000343232A94947 - 47FF51879EFF0D9BE4FF0EA2EEFF0EA3EFFF27ACF0FF49B9F3FF49B9F3FF49B9 - F3FF49B9F3FF4DB0E3FF747373FF757474FF5A879EFF49B9F3FF49B9F3FF49B9 - F3FF45B8F2FF15A5EFFF0EA3EFFF0DA1ECFF1598D9FF575F60FF494747FF4947 - 47FF494747FF494747FF1D1C1C880000000600000000000000001C1B1B554947 - 47FF5D6769FF1B9AD9FF0DA1ECFF0FA3EFFF59BFF4FF5EC1F4FF5EC1F4FF5EC1 - F4FF5EC1F4FF69ADD0FF858484FF818080FF62B0D8FF5EC1F4FF5EC1F4FF5EC1 - F4FF5EC1F4FF3DB4F2FF0EA2EEFF0D9EE7FF3C8DB3FF4A4949FF494747FF4947 - 47FF494747FF494747FF3C3A3ADD0000001E0000000000000000030303054846 - 46E14A4949FF508EA9FF0D9BE3FF18A6EEFF74CAF5FF74CAF5FF74CAF5FF80B3 - CDFF88ABBEFF8F9FA8FF969595FF88969EFF74CAF5FF74CAF5FF74CAF5FF74CA - F5FF74CAF5FF58BFF3FF0DA1ECFF1698D9FF56676DFF505B60FF678897FF6889 - 97FF688997FF585F62FF494747FF121212660000000300000000000000005E69 - 695F494747FF575B5BFF3399C9FF0F9EE7FF7CCDF5FF8AD2F7FF8AD2F7FF9BB0 - BCFFA5A5A5FFA5A5A5FFA5A4A4FF91B9CDFF8AD2F7FF8AD2F7FF8AD2F7FF8AD2 - F7FF8AD2F7FF4FBAF1FF0D99E1FF4D839AFF4A4848FF526168FF7DCAEEFF7699 - A6FF647E89FF555B5DFF494747FF313030C200000012000000000000000090B7 - B701606C6CB9494747FF5C6A6EFF2999CFFF3BAFEAFF9FD9F8FFA0DBF8FFA4BF - CCFFA6B4BAFFA6B4BAFFA6B3BAFFA1D6F1FFA0DBF8FFA0DBF8FFA0DBF8FFA0DA - F8FF8BD1F5FF179DE2FF458CACFF4E4E4EFF494747FF494747FF5F8291FF7EBA - D5FF535555FF494747FF494747FF474545FB0505053200000000000000000000 - 0000AFE8E815434D53DD494747FF5C676AFF3998C5FF3CACE6FFA1D9F6FFB6E3 - F9FFB6E3FAFFB6E3FAFFB6E3FAFFB6E3FAFFB6E3FAFFB6E3FAFFB5E2F9FF81CC - F2FF239EDDFF4D87A0FF4E4E4EFF494747FF494747FF494747FF4A4949FF71A1 - B6FF87ABBAFF4C4C4CFF494747FF494747FF1515155E00000000000000000000 - 0000000000001580B621434D53DC494747FF535555FF56879BFF2E9DD2FF49B1 - E6FF7FCAF0FFA1D9F5FFAFDFF7FFACDEF7FF97D4F4FF6DC2EDFF33A6E0FF3A95 - BFFF596F77FF4A4949FF494747FF494747FF494747FF4B4A4AFF4F4F4FFF4E4F - 50FFA3CDE1FF6C7578FF494747FF494747FF1514145100000000000000000000 - 00000000000000000000409FC71457686CB5494747FF494747FF565959FF5B7B - 86FF498DABFF3D97C1FF369AC9FF3799C7FF4093B9FF4D849CFF5C6D71FF4D4D - 4DFF494747FF494747FF494747FF494747FF494747FF69767CFFB1CCD8FF595C - 5DFFADCBD8FF757F82FF494747FF464444F10404041200000000000000000000 - 00000000000000000000000000000000000050525255494747D6494747FF4947 - 47FF494747FF4B4A4AFF4D4C4CFF4C4B4BFF4A4848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4B4CFF99ACB4FFB9CF - D8FF9EAFB6FF505050FF494747FE212020670000000000000000000000000000 - 0000000000000000000000000000000000000000000049474701494747404947 - 4790494747C9494747ED494747FD494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4B49 - 49FF494848FB484646CC42404051000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF80 - 1FFFFE0007FFFC0001FFF00000FFF000007FE000007FC000003FC000001F8000 - 001F8000001F8000000F0000000F000000070000000700000003000000038000 - 0003800000018000000180000000C0000000C0000000E0000000F0000000F800 - 0000FE000001FF000003FFFFFFFFFFFFFFFFFFFFFFFF28000000180000003000 - 0000010020000000000060090000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000006767 - 67066767670F6767671267676710676767076767670100000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000021202002040404201616166F2928 - 28AC333232C9363434D0323030C6252424A510101064010101201D1C1C040000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000262B2B101F1E1E86424040ED494747FF5051 - 51FE535F63FF526269FF525B5EFF4D4C4CFE494747FF3B3A3ADD141313711A1D - 1D14000000000000000000000000000000000000000000000000000000000000 - 000000000000000000004A4A4A20363535C94A4848FE516872FF4590B5FF39A6 - DCFE37ABE6FF39ADE8FF36AAE5FF3CA1D3FE4583A0FF4F595DFE484646FE2827 - 27AB1521271D0000000000000000000000000000000000000000000000000000 - 0000000000004E6767153B3939D34E4F4FFE4789A8FE2DA7E5FE34AFEFFE37B2 - F1FE38B3F1FE39B3F1FE39B3F1FE39B3F1FE36AFEDFE31A2DBFE4A7183FE4948 - 48FE2C2B2BB42B39391500000000000000000000000000000000000000000000 - 0000171A1A022F2D2DAA4D4D4DFF3E8FB5FF23A7EAFE27ACF0FF29ADF0FF29AD - F0FE2AADF0FF2BAEF1FF2CAEF1FF2EABEBFE2FACECFF2DAEF0FE27A5E5FF4875 - 8AFF494747FE1D1C1C892B2A2A05000000000000000000000000000000000000 - 000012121245494747FE497F98FF18A1E7FF1E95D1FE46565FFF436B81FF1DA8 - EFFE1EA9F0FF1EA9F0FF1FA9F0FF3882A8FE535B60FF427793FE2D95CAFF1F9F - DFFF4D616AFE444242F30E0D0D2F000000000000000000000000000000000000 - 0000343333B6545A5CFE1C9ADAFE11A3EEFE12A4EFFE2B5C76FE4C4A4AFE2686 - B8FE14A5EFFE14A5EFFE15A5EEFE455862FE4A4848FE464444FE345E73FE16A4 - ECFE318CB9FE4A4848FE21202090333232020000000000000000000000007C7C - 7C11474545F9497A90FE0D9EE8FF0EA3EFFF0EA2EEFE1192D4FF3E4143FF4152 - 5CFE10A0E9FF0EA3EFFF1D8AC1FF494747FE2C5B73FF1478ACFE1386C1FF0FA3 - EEFF109AE0FE515C60FF3E3D3DE4151515180000000000000000000000008B8A - 8A3F494747FF398EB5FE0DA1ECFF0EA3EFFF0DA2EEFE0EA3EFFF216486FF4746 - 46FE29779FFF0EA3EFFF336580FF464444FE1682B9FF0DA2EEFE0EA3EFFF0EA3 - EFFF0D9EE8FE456F83FF494747FF16151569000000000000000000000000908F - 8F574A4848FF3296C7FE0EA2EDFF0EA3EFFF0DA2EEFE0EA3EFFF0F9AE0FF3942 - 48FE454B50FF1694D5FF45494CFF384851FE0EA1ECFF0DA2EEFE0EA3EFFF0EA3 - EFFF0D9FEAFE3E7894FF494747FF343333C91F1E1E0D0000000000000000908F - 8F564A4848FE3296C6FE0DA2EDFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE1D6F - 9AFE494747FE435762FE4B4949FE226A90FE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0D9FEAFE3E7894FE484646FE484646FD0F0E0E4500000000000000008C8B - 8B3E494747FF3C8EB4FE0DA1ECFF0EA3EFFF0DA2EEFE15A5EFFF26ACF0FF2EAC - ECFE4F5F68FF615F5FFF5B5B5BFF2FA0DAFE22AAF0FF10A4EFFE0EA3EFFF0EA3 - EFFF0D9DE7FE476F82FF494747FF484646FE292828AA07060606000000007D7C - 7C0E484646F94D7A8EFE0D9DE7FE0DA2EEFE1CA8EFFE44B7F2FE46B8F2FE46B8 - F2FE5499BCFE737272FE607C8BFE46B8F2FE46B8F2FE3FB5F2FE12A4EFFE0DA2 - EEFE129ADFFE525C5FFE484646FE484646FE454343F304030329000000000000 - 0000363434B2555A5BFE1F9BD8FF0DA2EDFF4DBAF3FE62C2F4FF62C2F4FF62C2 - F4FE75A3BBFF878686FF6AA7C7FF62C2F4FE62C2F4FF62C2F4FE35B2F1FF0DA0 - EBFF348BB5FE4A4949FF4A4848FF4A4848FE494747FF1F1E1E88000000020000 - 0000292B2B3D494747FE4F7F94FF0E9CE5FF66C4F4FE7FCEF6FF85C0DEFF9CA0 - A3FE9E9E9FFF989C9EFF80CBF2FF7FCEF6FE7FCEF6FF7FCEF6FE46B7F1FF1799 - DBFF506167FE5D7C8BFF7AB1C8FF729FB2FE585F62FF3D3C3CE0000000160000 - 0000000000006C7F7FA14D4C4CFE438EB0FE3AAEE9FE9CD8F8FE9FCDE5FEA7B1 - B6FEA7B1B6FEA2BFCDFE9DD9F8FE9DD9F8FE9DD9F8FE91D4F6FE22A1E1FE4C74 - 85FE494747FE4D5153FE76B2CDFE596063FE494747FE484646FE121111580000 - 000000000000B5F2F20C3E525DCC4E4E4EFF4A87A2FE46AEE3FF9CD7F6FFB9E4 - FAFEB9E4FAFFB9E4FAFFB9E4FAFFB8E3F9FE86CEF2FF37A1D6FE4F707EFF4947 - 47FF484646FE494747FF546167FF8DB9CCFE4F4F4FFF494747FF232222860000 - 000000000000000000001184BF123C5461BD494848FE56676DFF428BADFF49A9 - D7FE56B5E5FF5BB8E7FF54B3E3FF42A0CCFE467F99FF525859FE494747FF4947 - 47FF484646FE687277FF606567FF8BA5B0FE6A7275FF494747FF1C1B1B640000 - 00000000000000000000000000007B9EA1035459596C484646E8494747FE4F4F - 4FFE595E5FFE596264FE56595AFE4C4B4BFE494747FE484646FE484646FE4846 - 46FE484646FE61676AFEAABFC7FEA8BCC4FE535455FE3F3E3ED70303030B0000 - 00000000000000000000000000000000000000000000767575077675754F7675 - 7590767575B4767575BF767575BF767575BF767575BF767575BF767575BF7675 - 75BF767575BF767575BF777676BF777676BD7674748C58575714000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000FFFF - FF00FF03FF00F800FF00F0007F00E0003F00C0001F0080000F0080000F008000 - 0700000007000000070000000300000003000000010000000100800000008000 - 0000C0000000C0000000E0000000F0000000FC000100FFFFFF00FFFFFF002800 - 0000100000002000000001002000000000004004000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001B1A1A01050505221818186D2322 - 2292222121911615156802020220191818010000000000000000000000000000 - 00000000000000000000000000006C7B7B0B2827279349494AF74A6774FF4777 - 8EFF47758BFF4B606BFF444343F01F1E1E844E63660B00000000000000000000 - 0000000000000000000073959509373636BF4B6876FF37A0D4FF36AFEDFF3AB3 - F0FF3BB3F0FF37AFECFF3B97C5FF4A5A62FF292929A94E5F5F09000000000000 - 000000000000000000003131318D496A79FF249EDCFF3295C8FF27AAECFF27AC - F0FF29ADF0FF359BCFFF31A2DCFF2AA0DBFF49585FFF1F1E1E78000000000000 - 000000000000565656194C4E4FF8219AD6FF14A3EBFF3D525DFF2F7CA3FF16A6 - EFFF17A6EFFF475C67FF4B4A4AFF2B7DA7FF2D8CBBFF413F3FE9282727100000 - 0000000000006D6C6C65466C7EFF0DA0EBFF0EA3EFFF187FB4FF434A4EFF139B - E0FF1C8CC5FF434547FF1386C2FF1196DAFF0F9EE6FF4C585EFF201F1F650000 - 0000000000007877778C3B7C9BFF0EA2EDFF0EA3EFFF0EA2EEFF315467FF306B - 8AFF316986FF2E5F79FF0EA3EFFF0EA3EFFF0DA0EBFF426678FF363434CB3231 - 3106000000007877778B3C7C9AFF0DA2EDFF0EA3EFFF0EA3EFFF1C8DC7FF4D4E - 4FFF4D5357FF1E87BCFF0EA3EFFF0EA3EFFF0DA0EBFF436677FF484646FE1F1E - 1E40000000006E6D6D64486D7DFF0DA0EAFF14A5EFFF3AB3F1FF40B6F2FF5B80 - 94FF647077FF40B5F0FF35B1F1FF0FA3EFFF0F9DE6FF4D585DFF494747FF2B2A - 2AAA00000001575757164E4F50F72199D4FF3DB5F1FF69C5F5FF71B8DDFF8599 - A4FF78A4BBFF69C5F5FF69C5F5FF2CAEF0FF2D8AB8FF525D62FF58686FFF494A - 4AF60404042200000000667474864B6976FF3CADE6FF95D6F7FFA3B2BAFFA6AC - AFFF97CFEBFF95D6F8FF90D4F7FF2E9FD8FF4B585DFF5E7D8CFF6B8996FF4C4C - 4CFF1F1F1F8000000000A4D6D605395869B64C6773FF58AAD2FF8DD0F2FFAFDF - F8FFABDEF8FF83CBF0FF4E9BC1FF4C595FFF494747FF4B4A4AFF7A9AA8FF5253 - 54FF2F2E2EAB00000000000000005897AD05586263824C4B4BF44E6570FF4372 - 88FF437085FF4F6067FF4A4848FF494747FF494747FF808E95FF97A9B1FF5557 - 58FE1B1A1A5A00000000000000000000000000000000A4A3A310A4A3A356A4A3 - A37AA4A3A37FA4A3A37FA4A3A37FA4A3A37FA4A3A37FA4A3A37FA4A3A37EA2A1 - A147000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FFFF0000E01F0000C00F00008007000080070000000300000003 - 0000000100000001000000000000000000008000000080000000C0000000F001 - 0000FFFF0000} - OldCreateOrder = False - Position = poScreenCenter - OnClose = FormClose - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object bvlSpace: TBevel - Left = 0 - Top = 314 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - object jplWizard: TJvPageList - Left = 0 - Top = 0 - Width = 527 - Height = 314 - ActivePage = jspWelcome - PropagateEnable = False - Align = alClient - OnChange = jplWizardChange - object jspWelcome: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - Color = clWhite - object imgInstall: TImage - Left = 0 - Top = 0 - Width = 164 - Height = 314 - Align = alLeft - AutoSize = True - Picture.Data = { - 07544269746D6170AE5B0200424DAE5B0200000000003600000028000000A400 - 00003A0100000100180000000000785B0200C40E0000C40E0000000000000000 - 00008C00018900028400047800036E02085F06094B02043500003404022F0401 - 3100004303024D00006200007300008304068000018200008600008700008700 - 018400018000047800046700016508094D00004D01024300004400014804053E - 00004300033C00003E00004302043D00004201034403053E00004201033C0000 - 3E00004302043D00004201034403053E00004201033C00003E00004302043D00 - 004201034403053E00004201033C00003E00004302043D00004201034403053E - 00004201033C00003E00004302043D00004201034403053E00004201033C0000 - 3E00004302043D00004201034403053E00004501023F00004100004603024000 - 004502014504033F00004302013C00003E00004104023900003E030140050338 - 00003B03023300003800003F04023B00004302014D03014C00005D0302570000 - 7002027A03047C00008702058700008A00028400018200018000018000018000 - 018000018400018400018300008000017B00027101016705055D08064E03013F - 00004003003F02004100004D02005200005E00006A00007A05087B00027F0002 - 8200018200018200018000018001008001008601008700008900008700008400 - 017D01017201046604045300014300003E00003F03043D00014300064B000845 - 00014C06063C00004F0A074000008A00018700028000047500046A03085D0609 - 4903043500003303013606043000004908074C00006701027000008405078000 - 018200008600008700008700018400017D0004760104640000680B0C49000051 - 07073E00004804054501024100003F0000420103390000500F113900004E0D0F - 3E00004201033E0000420103390000500F113900004E0D0F3E00004201033E00 - 00420103390000500F113900004E0D0F3E00004201033E000042010339000050 - 0F113900004E0D0F3E00004201033E0000420103390000500F113900004E0D0F - 3E00004201033E0000420103390000500F113900004E0D0F3E00004202024100 - 004502013C000053100F3C0000510E0D3F00004302013F00004202013900004E - 110F3700004C0F0D3C00003E03013800003C03013500004E110F3A0000530E0B - 4800005300005F03025A00007002027B03047C00008702058700008A00028600 - 018200018000017F00017F00017F00017F00017F00017E00017B00027601026A - 03016206055809064904013D0000420200490401430000580704520000670102 - 6800007D06077D00028000028200018400018200018200018001008001008200 - 008401008400008200007F00017801026D02046205044E00004901013900004E - 0F11390000510B124500024B00034D01024300005609074A0000880006820004 - 7D01076D00026403074F00004301023800003403013401003A00004A00005D03 - 036E03057B02068000028301028301018600008500008500007F000079000470 - 02046200015600004F01024500004701024100004600014300004100013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000004300004200004502014100004302013F000042010041 - 00004000003E00004303023F00004404034000004303024101003E01003E0100 - 4101004300004700004C00005100005900006804046D02047402027B00028000 - 028600028700028900018700018400007F00007C000078000176000076000074 - 00007502056B00006400005600005001004200003C05003C0200480000520000 - 5A03016104036A04057103037801027C00018300038500028700028600018400 - 018100008100007F00007E03017C03017E06067903027606066900005F000051 - 00004C00014500004300033D00004300054000004700034B00005400005B0000 - 6101016303037D00047D04086B00006D06095100005006063D00003A02013802 - 013900004200004F00006202027103037E010382000183010183010184000084 - 00008100007E00007500036D02045C00005704034500004C06063C0000490506 - 3F00004501024000004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101014000004704033D000048 - 07063A00004706053D00004101003E00004404033B00004908073B0000480706 - 4000004502014300004300004800004C00005201005601005E01006400006D02 - 047201047801027D00028200028600028700028700018600008300007E000078 - 00007301016F01016E01036A0203680203670505550000570402400000440802 - 3500003F03005300005F00006602026D03027303037902037F00028100018500 - 028700028700028600018400018200018000017D01017501007708066B000073 - 0C0A6000006407065100004F00004A00004A04043C00004702054000004F0307 - 4800005801056200006A00006E00027002027602076900006E070C5200005908 - 0B3E00004405073800003D01014100004A000058000069010277020380010382 - 00018301018301018200008200007F00007A00007100036602025A0202480000 - 4F09093A00004B090A3A00004905064200004300033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004301023B00004A09083A00004B0A093900004606053E00004202013B0000 - 4A09083C00004F09093E00004C04044600004900004E00005300005700005D02 - 006403006904027004037402027801027D000280000282000284000286000286 - 00018500008100007A00007302006C02016703036302046104055F0505530000 - 5A0706470000520B083A00004309034400006102006E01007202027703027D03 - 038001028200018300008600018600018600018500028101028001027E020279 - 03026F05046200006B0C09540000630C0A4A00005106044700004C0404420000 - 5006064300005605084900005D080C6102066F00017900007D00027E02026500 - 016906085000005B080A4000004A08093700004203054100004A000055000162 - 00006E00027901028000018400018102018102018001008001007C0000740000 - 6D00026101015100005107053A00004A0D0B3700004B0B0B3B00004503043E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004707063A00004C0C0B390000480B09 - 3700004003013F00004807063C0000500A0A4000005208084300005000005500 - 005B00005E00006400006902006F03027404047A03047B00027D000280000282 - 00028400028400028400028400028301017E03017602016E03006402025D0302 - 5603025503025000005704064A00005C0A09470000590E0C4700005806016F04 - 017A02027D03037F03038202038301028400018600018600018400018200017F - 00017C02027903027703027103036200006309094C00005E0C0B430000540A08 - 3F00004904014700005105064900005F0909500000690A0E5E000172070A7B00 - 028301028402038402035C03064D00005608094000004B090A37000045060840 - 00004900005300016000036B00027500037C00018200018400008001007F0100 - 8002017D02007800007001006700005C00005202013F00004B0B0A350000480C - 0C3700004808084100004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420202370000 - 4A0A093700004A0D0B3500004308063C00004404033B00004F09094000005509 - 0A4500005505065200006302006A01006D02006F02007302007802017C010380 - 01038200028200028400028400028400028400028400048000028204037A0502 - 6F04016504005A03015102004A00004900004D00014900005E05085200006B0D - 0E5A00006A0D0C6702007B030382030282030284020286020285010184000184 - 00018100007E00007B01017802017203017003016D04016804025E04044E0000 - 57090A420000500A0A3C00004B08074600004B00004A0000630909570000760D - 106500007A090C7700018102038602028602028602024A00004E06063C000047 - 0A083500004408083900004601044D00005900016700057300037A00017F0000 - 8300008400008001007F01008002017C03017802016D00006300005700004900 - 00470703350000430C09330000460A0A3C00004604053E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023C0000440705370000460B09350000450A083600004003014000 - 004807063E00005208084500005808094D00005D03036D030274030176020179 - 01017D0101800001820002860002870002870002860002860002840002820002 - 8200047F00027A03017305006804005C03004F02004500004200004300004800 - 005702065300006F080D6500007F0C0F7300017F050584020285010187010187 - 01018701018701018500028101027E00007800007501006F0200690200660300 - 6302005E02015200005405084200004C08093A00004808073E00004B03034C00 - 005F05045D0000790C0E6D0000830B0C77000080010282030283010183010183 - 01014302013D00004206063300003E08083400004304064700015000005F0002 - 6E00067901057E00018200008500008400007F00007D02007E03017A03017602 - 016C01005E00005400004B01003C000040070530000040080736000044060642 - 02024100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00003F01013800004207053300004108 - 063400004005033D00004303024000004D05054300005606074D00005D060960 - 02037203017B02007D01018000018200018600018700018900018B0002890002 - 8700028600028400028200028000047B00027100006702005E02005301004801 - 004001003D00004000005104085400016A030A6A000085070D8000008E02098A - 0000870000860100870000860000860000840000830101800201790101750100 - 6D02006602006002005A02005700005300005000024700004D03093A00004706 - 083B00004805044900005A04045F000075070972000087080A7F00008B030584 - 00008001007F01007F01007F01003F00003F02003900003D05043701003E0504 - 4000004A00015400006300027201057C01058000018200008500008400007F00 - 007D01017A02027504026F03026302005700004C00004500003F02003800003B - 03023800003F03033F01014404044000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000013E00013D01023C00004201033E0000430003 - 4000004100014100014200023F00004201033E00004001033D00003C00013901 - 003A03003700003B04013800003E03013D00004100004600004C01004C000055 - 00005600006103046401036D05067501007A01007F0100800001840001880002 - 8A00028C00038B00028900048600048000047D00047900047800057002046100 - 005A00005600005100004B00004A00004A00014D00015C05096605096D00057B - 03087F00038A01058B00008B0000890000860000860000860000860000860001 - 8301027F03037801026F01016602025E02015302004B01004500004500004C00 - 004E00024900004C01034600004D03034E000057000068060672060576000080 - 01038000008700028700008701018001007C01007E00007C0100430000400000 - 4002023A00003C03023C00004401004A00005E04046802037301017B01018000 - 018301018501018301018301027D00027806066800015F02034F00004A000142 - 00004000013D00004001033C00004002023E00003F02003E00004000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100023E0001390100360000 - 3C03023C00004301024100004600024700014700014400004500053F00014000 - 053800013A01043501013202013000003403013200003D04023C00004502004A - 00005000005800006301016A0203730205770205790102780000770500770500 - 7A04007D020080010083000086000086000187000484000582040A7901067303 - 0A6600026000025400004C00004A00004E00005200005800005F00016700066F - 03096F01057201047402027802017B01017D0200820100840100820000850000 - 8700008800018800028800038500057F00047A04096900055A00034800004201 - 033400002F03043100004600005100005500005900005F02016703016E040374 - 04047801027B01017F00018000018200018200018200018200018000017F0001 - 8000017F00014400004703043A00004507073500004606054100004F00006004 - 036A03017301017B01018001008301018301018301018100018205076E00006C - 0A0A4E00004F05053D00003F00023B00024003073A00004706083A0000460606 - 3C00003F02003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00003D01023600003B05043300004307073900004905064100004800024600 - 004902053D000047050A3500003F06093300003402023101003606042D00003E - 09063500004906034600005200005B00006300006D01007601027E0103810003 - 8400018100007A04007705007A04007B03008001008200018400028400028000 - 0580040A6E000172060C5C00005F03084E00004C00034300034400044E000558 - 00026200026D00037600057C00067B00047B00027901017902007902007B0300 - 7F02008002008401008600008701018500028500038000027C00047600036D00 - 056402084C00004C040A34000039070B2800003200004A00005700005E000064 - 01006B02007203017A02027F0303800001820001820001820001800001800001 - 7F00017F00018000018000018000018000014701023D0000490909370000480B - 093900004D06034E00006104036A03017402027B010180010082000083010183 - 0101820104760000790B0D5A00005E0A0C4000004605073B00003E0105360000 - 49080A3900004B090A3900004606053C00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073C00003B0302330000430A093500004A0A - 0A3A00004904074100004500033D00004A070A390000460A0B3300003F060735 - 0000390302340000430A083700004D0A09420000560403530000610101690200 - 7202027A02038102038301028600018300007F02007D02007F01008002018101 - 028101028100037E01037D03096C000070060C5500005F050A47000051040846 - 00024200024801045200055E00056700047100047A00047E00057D00027D0002 - 7D01017D02007F01007F02008201008401008802028801038402038001027901 - 027200006A00026200015E00044D00005506094000004F0A0D3A000045050A40 - 00005601006002006502006902006F02007602017C0202800102800001820001 - 8200018200018000018000017F00017F00018000018000018000018000014300 - 004A06073900004A0C0C3700004B0A094200005200006404046D03027601027D - 01018001008200008200008001007D00007F08096500006D0D0D490000510909 - 3A00004004053A000145050A3900004C0B0D3A00004A0A0A3900004003013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004001033A00 - 00410807350000480C0C370000480A0A3900004201033E00004706083900004A - 0B0D370000460A0B3500003E02023C00004707033C0000540D0A4500005C0B08 - 5300006203006904027103037803047D03038202038500028700018600008400 - 008201008200008001008001027E02027A02037702056C00026C07095200005C - 080A4300004E08093B00004503044502014D03035804066403076F0105770004 - 7D00048100038000028000027F00018000018001008200008600008600008902 - 048502057F02047702036C02016000005700004F000049000050060642000055 - 080B4500005D090D4E00005C03066303036804006C0300700301740301790101 - 7E02028101028200018200018200018200018000017F00017D01017D01018000 - 018000018000018000014501023C00004A0A0A3900004C0C0B3C00005106044F - 00006604046F03027801027D01018001008200008001007F01007F02046F0000 - 760B0D5300005B0B0C3E00004807093C00013E01053700004A090B3A00004D0B - 0C3900004707063C00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E0000400202370000480A0A350000480C0C35000041080738 - 00003C0302350000460A0A3700004A0C0C390000470707410000490000450000 - 5809064A0000650E0C5500006C0B086801007205037804037D03038103028402 - 028701018700008700008600008500008400018000017D00027801027002046B - 030460000150000059090A4000004D0B0C3700004007063B00004A0300560502 - 6206056B05067502057B00028000028301028200018200018000018000018200 - 018400018700018600018400067C01057502056A02035C02015101004401003F - 00004205013B000050090647000062070A59000074060C6F0004700403700502 - 7304027703027A02027E02028000018200018200018400018200018200018000 - 017F00017D01017D01018000018000018000018000014100004705063900004A - 0A0A3900004E08084600005700006905057103037901027F0001800100820000 - 7F00007C01007600007707075E0000640A094500004D07073B00004105063A00 - 014404093900004B080B3A00004909093A00004003013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033F000046060639000048 - 0A0A330000420A093300003B03023700003F0706350000480A0A3A00004C0809 - 3F00004C00015000005D04005300006A0C075C0000740D0A6B00007708067804 - 037A02028002018102018501018701018800018800018600008300008100007C - 00007400006D01006501015E02014C00004F04023E00004C0C0B350000420A09 - 3000003E01005204006105006B07037205037A02028000018400018500028400 - 018200017F00017F00018000018200018400028000027700037000036600025E - 01024F02004502003A02003602003901004809054200006009075A0000780508 - 79000085050A7902037504027903027A02027E02028101028200018400018400 - 018400018200018000018000017F00017D01017D01017F000180000180000180 - 00014200013D00004606063900004807064100005402015800006C0405750303 - 7C01038000018200008100007F00007A01007601026A00006907075100005004 - 053C00004304063E02033F00043A00004605073A00004806073A00004404033D - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A000044030540 - 00004400023F00004605073700004108073300003B0504360000380300350000 - 4207053900004C06064300004E02035000006102006200007007046700007609 - 076F00007B08057A03017D02007F010080010082000084000084000087010185 - 01018200017E00017700007100006700005F00005500004E01004700003C0000 - 4407053400004209083400003C04034100005E03006C04007504017A03018001 - 008600008700008802028200017F00017B00027901027901027901027B000478 - 00046600005D00005700015000014701013F02003902003801003C0200410000 - 5B0A075C00007606067500008B02068800037F00017B01017D01017F00018000 - 018200018500028700028600018400018200018000018000017F00017D01017D - 01017F00018000018000018000014100004200013E00004301024100004B0101 - 5000005C00007003057902038001038200018200008100007E00007A01007000 - 006B04025D00005502004600004201003E00014004053E00034100043F000043 - 00033F00004202023D00003E01004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004100014300014400023F00004001033800003B0302 - 3600003701003902003B02003E00004502014700005000005000005900006D03 - 027605037401007B06037700007D04027C01008002018001007F00007F00007F - 00007F00008001008102017F03037801027301016D00026600015C0000520000 - 4A00004500003F00003D03003700003C03013700003E02023E00004C01006703 - 007804007C04008103008500008800008700008602027F000179010174020270 - 02027002047002047002046B02055500004E00004900004700004201003F0200 - 3E01004001004000005103005F0400710A077802018402038700008900018100 - 007F00007F000082000184000186000187000287000286000184000182000180 - 00018000017F00017D01017D01017F0001800001800001800001420202410101 - 4404044000004701014A00005901016300027002047901028000028400018400 - 008200007F01007902007103036400005B01004E00004A02023F00003D01023A - 00003E00033F00024300034100004301023E00003F02003E01004000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E0000410002410001440002420000 - 4300033E00003E02023800003B02003900004005034202014400004700004E00 - 005600005E01026804047403017B02007D02007D02007F010080010080010082 - 00008001007F00007E00007C01007B02007A03017A02027605036D0506640202 - 6103045400005000004500004502003F02003C01003900003C03013A00004202 - 013F00004400015100006F03007D010080000084000087000088000088000281 - 01027901027101016F07086503036706085F00005F00005600004C0103430102 - 4400014300004200004500004700004D00005D06046405026D03027403017B01 - 0182000086000087000084000184000184000186000186000186000186000186 - 00018400018400018200018000018000017F00017D01017D01017F0001800001 - 8000018000014000004606063C00004907084000005404055600006801047401 - 047D00028200028400018400008200007F01007803006C02016506034F000053 - 06033F00004707063800003B01023D00024402073B00004A05083A0000460606 - 3A00003D02003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004200024200004702053B00004805083900004305053900004000004502 - 014801004C00005000005A00006000006703037004037B010180010080010082 - 00008200008200008400008200007E00007C01007C03017A0502750402720301 - 6E01006601005F02035B08074B00005207053E00004607033B00003D05003900 - 003E05033600004707063C00004D050545000056000074060281040085020087 - 01018700008600008100007A00017202026E08095C0000620A0A5100005A0608 - 5100004E00014100003C00004000004600004B00005200005900006000006B04 - 027002027602017B01017F010080010082010084000086000186000186000186 - 00018700018600018600018400018400018200018200018000017F00017F0001 - 7D01017F00018000018000018000018000014103033A00004B0B0B3C00005309 - 094900006305066900017800047F00028400028600018400008200007D020076 - 03006B06045800005B08064300004E0B0A3700004206073800004000053A0000 - 4A070A3C00004B090A3900004407053A00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004401063C00004A070A3A00004C08 - 093C00004903034500004D00005200005800005F00006600016C020171030379 - 05047F01008200008200008400008400008400008200018000017D0000790101 - 7804037205036E04036702006000005700005404034400004F09093A00004909 - 083500004108063A01003C0301360000470A083A000051090943000052040553 - 00006F04017A03018103028303048402038201047B00027300036F07085C0000 - 610B0B47000057090A4300005104074700003E00003C00004300004C00015700 - 036201036D02057502057901027D00027F00018000017F01007F01007D02007F - 0100840001870001870001870001860001860001860001840001840001820001 - 8200018000017F00017F00017F00017F00018000018000018000018000013C00 - 00460808390000500C0D4300005C080A5900007002067B000482000286000287 - 00018600008200007D0200740300650100600905470000550C083A0000480D0B - 3400003C02033C000147050A3A00004F0A0D3A00004A0A0A3700003E03013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 0147050A3A00004F0A0D3E00005207094500005200005900005D00006501016B - 01007202027703027903027D0303800100840000840000840000840000820001 - 8000017F00017B01017702036F03026903046101015A00005300004C00004400 - 00480706390000490C0A350000460B093400003E05033A00004508063900004F - 0C0B4000005309094300005300006100006A00007000007702037B0307790407 - 7204066D04075F0102600A0A450000560C0C42000051080A4200004A01034400 - 004700004E000159010165020470030579040781030880000284000284000182 - 00018001007F01007B02007D0200840001870001870001860001860001840001 - 8400018200018200018200018000018000017F00017F00017F00017F00018000 - 018000018000018000013E02023800004C0C0C3C0000560A0B4C00006906086D - 00027D00048400028700028900018600008200007D0200720400670603500000 - 570A074000004D0D0C3500004208093800004000053900004B080B3C00004D0B - 0C3900004508063A00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083C00004101063700004A090B3C0000550A0C4700005C030658 - 00006601036C01037201047702037A02037E02027F00017F0000820001820001 - 8200018200018200018000027F00027B00027803046F02046501015C00005300 - 004E0000480000450000430201390000470909370000490B0B3700004507073D - 00004202013900004B0A093C0000510B0B3E00004C06064800004F0000570000 - 5D00006402026803056803056502046002065801044A0000560B0D400000560B - 0D4200005104074B00005600005B01006100026701027002047702037F020483 - 02058400028600028600018400018200017F00017D01017F0001840001860001 - 8600018400018400018400018400018200018200018000018000018000018000 - 018000018000018000018000018000018000018000013A000044060639000050 - 0A0B4300005D06095F00007403077D0004860002890002890001860000800100 - 7D02007204006001005A08034300004F0B06370000450C0A3500003D03043C00 - 014604093C00004D080B3A00004909093800003E03013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A000040010338000140050939000050 - 090C4500005F080C5A00006900037001057702057C0103800102810102820001 - 8100008100008200018200018200018200018000027F00027B00027801027002 - 046701025C00005000004800004300004000004002023D00004505053900004A - 0A0A3A00004A08093C00004301023F00004706053C00004B0A093A00004A0908 - 3A00004302014401004800004D01025101025600025500015400015100004A00 - 004F0406400000530A0C42000057080B4C00005A00026802036E020171000374 - 02027801027C0103800103830003840002840002840001840001820001800001 - 8000018000018400018400018400018400018400018200018200018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00013D01013A00004707073F00005305065100006A03067300047F0004870002 - 8B00028B00018600008001007D02007204006104014F00004F06023C00004609 - 073600003F06073A00013F00043C00004904073C00004806073A00004205033B - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053D - 000039000335000045060841000059080B5700006C050A6E00037800057D0004 - 8200028400018600018600008701018501018200018000018000028000027F00 - 027D00027900047401046800006000005500004B00004300003D00003A02013C - 02034201033E00004A05083D00004D07084000004B02044300004600013F0000 - 4706053900004508063600003E05033601003704023903023E02024200014800 - 014900004900004900004A00024300004C03054200005405084D00005C050963 - 00047800047F00017F00027F00017F00017F00017F0002800002800002800002 - 8200028200028400028400028400028400028400018400018400018200018200 - 018000018000017F00017F00017F00017F00017F000180000180000180000180 - 00018000018000018000018000013E00003F01013F0000460203480000590003 - 6700017901068400048900028900028700018400008001007D02007203015C03 - 004E04004500004303003D00004005033B02013E02034000014200023F000043 - 01023F00004202023D00003E01004000004101013E00004202023E0000420202 - 3F00004000004000014101013E00004202023E00004202023F00004000004100 - 014200013E00004202023E00004001033D00003C00013E00013F00023C000042 - 01033F00004300034200004100013E00004200014600005404055A0002690406 - 7201057B02067E00028200008500008800008900008800018901028703037F00 - 017B00027B00047900047601047201046F02046902055800005200004D000047 - 00004200013D01013A02013900013F0002430204410001470205420000480203 - 4500004700004700004600014100004202023C00003E02023800003502003002 - 013002013301013900014000014400024900024D00034B00014D00014B000052 - 00005300006100026702047406087E0001850000840001820001800001800001 - 8001038001037F00027F00028000028200028400028400028600028600028400 - 018200018200018200018000018000017F00017F00017F00017F00017F00017F - 00018000018000018000018000017F00017F00017F00017F0001460001400000 - 3F03033B00004701015200006E00047F00058900048D00028700028200017F01 - 007D02008001007403015100004200004303003F00004202013E000041010040 - 00004100004000004301023E00004202013C00003F02003E01004000003F0000 - 4301023F00004301023F00004200014100004100004000004301023F00004202 - 023E00003F01014000004300004200004301023E00004002023800003A020137 - 01003C03043A01023F03043E00004500034500004B00054A00004D0000540000 - 5E02016703017004037902037F00028500008900018D00008C00008A00008800 - 008700008502008203027800047100047304086C01046805075B00005400004B - 00004A00004400004502013E00004003013C00003D02003A0100390100380000 - 3C03023A00004202023F00004600024700014700014600004700034100004300 - 033E00004100023A00013503053001033604043800004103034200004C000150 - 00005600005D00006600016E02017503037903027B01017E0000800001820001 - 8200018000018000018000018000018000018000018000018000018000018200 - 0182000182000182000182000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017D00027B0002 - 7B00027B00024600004703043500004108073C00005804066C00008400078D00 - 048F00028600028000017B02007B02008200007602014F00004404033A000047 - 07063A00004706053D00004201004000004504033A0000470706370000440705 - 3A00003F02003F00004404033B00004807063A00004706053F00004201004000 - 004504033B00004707063900004407053A00004101004200004903033B000047 - 07063500004007053300003802013701013E0405380000480508400000530308 - 4C00005700045B00006100006902007203017A02028101028600008A00008D00 - 008F00008D00008900008600008302008102017C020272010571050B62000067 - 060A510000570406460000470101400000420503360000430806370000440705 - 3C00003F02003900003D05043400004307073700004606063F00004400024400 - 004902053F00004A040A3A00004704093C00003D00043700033B060933000042 - 08093A00004D05054A00005600005E0000660000700000790101800201830101 - 8601008500008200018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000017F00027D00027F00027D00024900023E0000430A093300004D0A - 094A00007504088100048D00048F00028600028000017B02007B020082000076 - 02015200003B00004A09083A00004B0A093A00004706053F00004302013B0000 - 490908390000480B093700004407053C00004202013B00004A09083A00004B0A - 093A00004706053F00004302013A0000490908370000480B093500004207053C - 00004301023D00004A0809390000460A0A3300004007063800003D0101390000 - 4B070842000059080B4B00005F050A5D00006501006B03007004007704017F04 - 028301018700008800008B00018900018901038602028102037C030179010173 - 01017305096300016A060B5200005B0407450000500606440100420201380000 - 450A08350000480B093900004706053F00004301023A00004A08093900004B09 - 0A3A00004704073F00004201033A000049080A37000048090B3500004206073A - 00003D030437000048090B3A000052090B4500005805045900006501016B0100 - 7402027A02028103028301018401008300008200018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018200018600028600028700028600024500 - 004A0607330000460D0C3C00005D090B6700008501088D00048D000286000280 - 00017B02007D02008200007602014F00004807063A00004D0C0B3A00004B0A09 - 3A00004302013F00004807063900004C0C0B370000480B093700004202013F00 - 004807063A00004D0C0B3A00004B0A093A00004202013E000045080637000048 - 0D0B350000460B093500004003013F00004806073900004C0C0C370000480A0A - 3700004202023C00004C04044300005C090B4E0000690B0C5E00006B05066F04 - 017504017A05027D040282030285010186000087000087000185000284020380 - 03057B04057303036E00006A000165000268070B5200005F0609490000520607 - 3F00004605043E0000450806350000480D0B3900004A0A093A00004502014500 - 004E05073E00004F0B0C3C00004B090A3900004001033A000043070833000046 - 0C0D330000440A0B3300004001033D00004B0407420000570A0D470000610A0D - 5700006604046B03047103037804037B03038103028102018401008400008200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018200018900 - 018B00018B00028B00014A01033D0000450C0B3300004C0B0A4A00007305097E - 00038B00048D00028600027F00017B02007D02008200007802015500003C0000 - 4D0A093C00004F0C0B3C00004807063F00004202013900004A0A093900004C0C - 0B3900004707063E00004302013C00004D0A093C00004D0C0B3A00004707063C - 0000400301350000460B09350000480D0B3300004108063A0000420103390000 - 4A090B3900004C0C0C3A00004A07064300004C00014700005E0808520000700B - 0D5F000076090B7301017B04027F040081040082040086020285010186000184 - 00018200028001037B03047704076F04066802036000005D00005E0004500000 - 5E070A49000055090A4000004906053E0000400301350000460B093500004C0C - 0B3900004807064300004C000245000054070A4000004F0B0C39000045070738 - 00003B0302300000410B0A300000450D0C3300004108073F00004B00004A0000 - 5D060A4E00006A0C10590000700B0D6B03047204067604047A04037D03037F04 - 0281020182000082000080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018200018900018B00008B00018B000045000049050633000044 - 0B0A3A00005A07096700008201088900048B00028400027F00017B02007D0200 - 8200007802015100004B05053E00004D0A093C00004C09083B00004302013E00 - 004606053900004A0A093900004909083A00004302014100004906053C00004D - 0A093A00004909083800003E03013A0000420705350000460B09330000430A08 - 3400003E02023C00004604093900004B080B3C00004E08094300004E00015200 - 00600605570000700B096400007C0A0A73000081050582040085020085020085 - 02008701018501018301028101027D00027901057103056A03066302045C0104 - 5500015100004E0000560305450000560A0B4000004C09083A00003F02003A00 - 00420705350000480B093900004909083B00004701014A000054030643000051 - 080A3C00004709093400003B03023500003B0806300000430B0A350000470909 - 3A00004B00025200006400055800006F090E5E0000750C0F6D000278070A7604 - 047902037A02027C02027E030180020181020181020180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000182000186000086000087000086 - 00004B00024000004007063200004606054A00006E03067C0004870004890002 - 8200027D01017B02007D02008200007802015600004300004D05053E00004A07 - 063D00004504034000004101003C00004407053700004707063A000044040340 - 00004401004100004906053C00004807063A00004205033B00003D0200360000 - 4007053300004308063600004005033B00003F00023C00004704093C00004E05 - 074400005401035400006305066400007408076C00007E080777000085060584 - 01008700008701008700008700008600008200008001027C0103770205700305 - 6702045F01055700034E00024A00014700004A00004500004D05053F00004B08 - 073B00004306043B00003D02003800004407053700004707063A000045040344 - 00004B00014800004F03073C00004707073600003D0504360000380300330000 - 4007053700004A07064100004D03035000006801066A00007405096B00007908 - 0C7000007C070A7901057901027901027B01017D01017F00017F000180020181 - 0201800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00017F01007D02007F01007D02004900004501023900003B03023D0000510102 - 6700017C00068700048900028200027D01017B02007D02008200007901015700 - 004A00004700004901014300004502014000004000004000004101003C000040 - 03013E00004202013F00004100004300004600004100004302013F0000400301 - 3D00003C01003A01003B02003800003E03013A00004003013D00004000004100 - 014400044300014B00034A00005300015600005C00006C06077406067602017E - 05037D00008403008500008902008901008800008800008500008100007F0001 - 7A02037603067104066803055D02055400044C00024600024100014000014400 - 014701014100004302013E00004104023D02004005033C01003D02003C000040 - 03013E00004202014000004300004700014800024100004201033A00003C0302 - 3600003701003902003D02003F00004901014A00005300005400005E00007403 - 077D03097900057D04087800037D02067A00037B00027D00027C00017C00007C - 00007E00007F0001800201810302800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017B0200790200790200790200490000430000 - 3E05043800004205034D00006902057A00068600048700028000027D01017B02 - 007D02008400007B01015F02034E00014C00014600004701014100004302013F - 00004000003D00004003013C00004202013E0000420100410000430000440000 - 4502013F00004302013C00003F02003C01003D02003B00003F04023D00004404 - 034000004403024400014801044900034900004C00005300005C00026502046D - 05066F01037500017A00008001008400008702008A01008A0200890000860000 - 8500008100007F00017A02027503036F04065E00005600005200014700004500 - 033E00013D00043C00014000004000004202013C00004003013A00003D02003C - 01003C01003B00004003013C00004202013E00004201004100004100023D0000 - 3F03043900003D05043800003C05023B02004303024701014B00005100005900 - 006100006A01047403067B000480000480000480000480000480000280000280 - 00027F00027F00017F00017F00017F00017F00017F00017F0001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017F04027D0402 - 7C03017B02004800004804053600004109083800005406076300007A02078400 - 048600027F00027B01017902007D02008400007B010161000255050646000050 - 04054000004906053D00004101003D0000420503380000450806390000460605 - 3D00004401004400004903033D00004807063900004407053800003D02003B00 - 004205033B00004807063D00004C06064400004B01014B00004E000052000158 - 00025F00046601036D02047303037700017A00007E0000820000860100880100 - 8A02008801008400008100008101027F03037903027202026901026300025600 - 005401034400004A06073900004205093500003A01023B000042050338000045 - 08063500004207053800003D02003B0000400503380000450806390000460605 - 3D00004101013900003B05053400004007083300004108073B00004302014600 - 004E00005800006100006A00017000027601047C010382000484000284000484 - 00028400028200028200028200028200018000018000017F00017F00017F0001 - 7F00017F00018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000017D00007E00007F00018002014C0002400000440B0A320000490C - 0A4400006B06087400038200048400027F00027B01017902007D02008400007D - 01016603054F00005707084500005309093E00004706053E0000400301360000 - 450A083700004A0A093900004706054100004701013F00004C09083A00004A0A - 093700004207053A00004104023B00004A09083E00005309094300005404054E - 00004F00005400005C00026302046B04077104067502057901027C00017E0000 - 8200008400008401008601008702008502007D00007901017A03047404047004 - 036701025C00005500005200014400004E0809390000460A0B3300003F060937 - 00003E0202360000450A08350000460B093500004407053C0000400301380000 - 4909083900004A0A093900004706053C00003A04042E00003E0A0A300000440B - 0A3900004B05054800004D00005800006400006F01037803067D020480010382 - 0001860002860001860002860001860001840001840001820001820001800001 - 8000018000018000018000017F00017F00018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018200018300008500008500018500004800 - 004D0708330000440E0D350000550B0B5C00007802078000048200027D000279 - 01017902007D02008400007D01016400015E070A490000580A0B420000500A0A - 3B00004104023C0000430806350000480D0B3900004A0A093C00004502014300 - 004A07063A00004C0C0B390000480B093500004003013E00004807063E000055 - 0B0B4500005B080A4D00005A00025A00006000006701026E0305750407780304 - 7C01037F00018000018200018400008200008201008201008002007D02007601 - 027103056D02046902056100025A00005100004A00004700004A07063A00004A - 0C0C350000440A0B3200003C02033A0000430806350000480D0B370000480B09 - 3700004003013C00004508063900004C0C0B3900004A0A093A00004002023300 - 003A080A300000460C0D39000052090B4800005800025C000065000070000279 - 0203800305820203830102840001860001860001860001840001860001840001 - 8400018400018200018200018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018200018400 - 028400028500038300014D00033F0000460D0C300000480D0B42000068050770 - 00017F00048200027D00027901017902007B02008400007D0101690406530000 - 5D090B470000560C0C3E00004908073C0000400301350000460B093500004C0C - 0B3900004A07064100004502013C00004B0A093900004C0C0B3700004508063C - 00004403023F0000540A0A4700005F0B0D4E00006204085E00006802036C0201 - 7002027402027901027D01018000018400018400018400008400008001007F01 - 007D02007B02007602016D05066403055F01025A00025100004E000048000045 - 0000430102390000480A0A350000480C0C3500004307073A0000400301370000 - 480B093700004C0C0B3900004707063E00004202013900004A0A093900004C0C - 0B3900004707063C00003C0304310000470B0C3A0000570C0E4A000062040861 - 00006E00047300037900047D00027F0002800001800001820000820000840000 - 8400008200008400008200008200018200018200018200018200018200018200 - 0182000182000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000017F00027A00017900027C00047C01054900004C060733000041 - 0B0A3500005008085900007300047F00048000027B00027901017803007B0200 - 8400007D010166000260070A4A000059090A430000500A0A3D00004104023A00 - 00420705350000460B093900004909083D00004502014100004906053A00004A - 0A09390000470A083800004202014100004D05054500005D090B50000067080C - 5E00006B02057305057605027802017900007D00008000008500008700018701 - 018701018200008001007B02007902007502006E02016204055902065300024D - 00004700004300004100004202023C0000420606350000460A0A350000470909 - 3A00004202023C00004407053900004A0A093900004909083A00004202013E00 - 004606053900004A0A093900004909083A00004002023A00004205093A000055 - 090D4A000067070D6300007201057B03087D02067F00027D00007D00007D0000 - 7C01007F01008001008001008001008001008200008200008200018200018200 - 0182000182000182000182000182000182000182000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000017B00027100046C01046D00056A - 00024C00024200004108073000004007054100006201036D00007D0004800002 - 7B00027901017803007B02008400007F00016C03065800005B04074800005206 - 074400004706053E01003D02003600004207053500004707063A000047040342 - 00004401003F0000470605390000470706380000440403400000450000450000 - 5505064F000065070B5F000070060C6F01057703027903007C01007E00008200 - 008400008800008900008800018701018301027F000179010175010071020068 - 03015600034E00034A00014600004100003F00003D01023C02033B0201360000 - 4207053500004508063A00004504034000004101003C00004706053A00004807 - 063B00004504034000004201003D00004706053A00004707063A00004205033D - 00004000013F00005004084C000065070C62000177050C7900057E0006800004 - 7F00017E00007B00007700007702007902007D02007F02007F01007F01008001 - 0080010080010080010080000180000182000182000182000182000182000282 - 0002800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000178 - 01026201035602045600035200004A00004802033B00003B0401380000460100 - 5A00006C00017900047F00027D01017B01017B02007D02008200007D01016F01 - 036502045900005400024800004805043F02003C03013A01003B02003A000040 - 02023E00004301024000004100004000004101013E00004202013F0000430201 - 4400004900004C00005200005600006201036500017204087302067A05087800 - 007B00007F01008100008601008700008900008700018700028101027C010376 - 01026F03026802036503035C04044800004400004200004100004100023F0101 - 3D01023C00003C00003D01013C00004202013F00004502014400004300003E01 - 003D02003C00004202013F000043020142000045000045000044010043000045 - 02014100004303003F00004300004A000052000156000062010567000375030A - 7901068103097C00017E00007F00007F00007D02007902007803007902007D02 - 007F01007F01007F01007F01007F010080010080010080000180000182000182 - 0001820001820001820002820002820001800001800001800001800001800001 - 8000018000018000017F00018000018000018000018000018000018001007F01 - 007F01007F01008001008001008001008000018000017F00017F00017D01017D - 00027B00027901027901026F02044F00004600004800014A01034B0002450000 - 4303023C00004104024400005401005F00007302057D02048202038301027E00 - 007C01007C03017C04047800037502056B04075100004600003A000039060333 - 03003701003900004201033F00004300033F00004100043C0003380000360000 - 3E04054000004802024600005000005500006605026B04027002027402027900 - 047B00047F00047F000481020382030284020285010186000086000085000081 - 000183030879010672040A6200035902054B00004800013F00004100003F0000 - 4202023E00004202023F00004200014100004300004200004502014300004701 - 014300004800004100003901003500003C04033B00004404044300004802024A - 00004900004A00004B00004A00004700004400004200004A0000680404720104 - 7401047402027801027901027B00027B00027D00027F00017F00017F00017F00 - 017F00017D01017F00017F000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001820001820002820002 - 8200018200018000018000017F00017F00017F01007D02007F01007F01007F01 - 007F01007F01007F02007E04007C04007D03007F03008002007F01007F00007E - 00007D01017B00027D06077502057305076800006300005600004D0003430003 - 4100013E00004700004A04053C00004707063900004906034B00005C00006F03 - 027B03048202038500028200007C01007904017A04037C000081060A6700005E - 04033E00004008033101003405013401003E05043A00004A040A3C0000470409 - 3C00003D00053600023C06063800004806074300005603015600006502006F04 - 017602017901017F000180000282000284000484000282020381020182000081 - 000083000083000182000480000578000774060C5F00015F080C460000480508 - 3600003900013B00004205033800004707063A00004706053F00004600004400 - 004903033F00004C06063E00004B05054100004201003A00003D050435000044 - 08083800004707073E00004701014902004A00004900004A00004D0000500000 - 5201005D00007601027F00017F00017D01017D01017D01017D01017D01017D01 - 017D01017F00017F000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200028400028200018200018000018000017F00017F00017F01 - 007F01007F01007F01007F01007F01008002007F02008004008004007F030080 - 02008002008002007F01007D01017901027B06076A00007008095C0000620405 - 5400005200024000003D00003F00004302044903043F0000490909370000480B - 093C00005306045700006C02017902038102038301028001007E00007A03017B - 0303800103760000770A0C5000005208063500003C0906320200390302340000 - 49080A3A00004D070D3A000046030A3C00024003073B00004E0A0B4200005A08 - 075000006908056B02007403017902007D010180000182000284000286000284 - 00028101027F01007E00007D00007E00017F00027F01067B0307720007610000 - 66080D4A000055090D3A00004005093800004002023A00004909083900004B0A - 093A00004706054100004502013D00004C09083C00004D0A093C000047060541 - 00004701024000004C0809390000460B093300003E0704370000400300410100 - 4700004E00005600006000006901027202027B00028000018000017F00017F00 - 017F00017F00017F00017F00017F00017F00017F000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018200018200018200018000 - 0180000180000180000180000180000180010080010080010080010082000082 - 01008402008601008702008502008302008102017E03017A0202780606690000 - 6E070A5500006106094A00005703074B00014702054201034000013D00004000 - 004907083700004A0C0C3700004C0B0A4500005901016701027402027E010381 - 01028000017E00007B02007D04027D00008207096400006A0D0C4300004A0B07 - 3300003B06033700004307073900004D0A0D3C00004B080D3900004200054100 - 00500709450000610E0D5200006D0C096600007807047902007D020080000182 - 00018400028400028600028200027F00017B02007B0101790101790102760102 - 7300036E00046100006304084C00005A0B0E4000004B0A0C3600003F03043C00 - 004707063900004C0C0B3A00004B0A093A00004202013E00004707063900004C - 0C0B3900004A0A093700004302014900005304074200004E0A0B370000430A08 - 3200003B04013C02004200004C00005700006400006F00017900047F02048000 - 018000018000018000018000017F00018000017F00018000017F00017F00017F - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0182000182000182000180000180000180000180000182000182000182000082 - 00008400008400008400008600008900008900008800018701018301017E0202 - 7903027303036A00016A07095200005E070A4700005306094100004903043E00 - 003E0000400001430204440404390000470B0B3500004A0D0B3A000051070552 - 00006400006E00007A02038001028000018000017F0100800201830205760000 - 7A0C0C5600005F0E0B3E00004508063A01003C03023500004A090B3A00004D0A - 0F3A000047050A4100014C00004C0000650C0F56000075100E6400007B0A0877 - 00007F01008201008400008400008600018600018400028200027A0000780201 - 7803047604047103056B00026200005C00005A00024B000057080B4200004F0A - 0D39000045050A3C00004202023A00004B0A093A00004C0C0B3900004707063C - 0000400301370000460B09350000480D0B3500004308063E00004E0104480000 - 5408093E00004C0B0A3900004508043F00004300004C00005A00006501017201 - 047B000483000384000282000182000182000182000182000180000182000180 - 00018200018000018000018000018000018000017F00017F0001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000182000182000182000182 - 00018400018400018400018400018600018600018600018700018C00018C0001 - 8700018400017F00017700016F01036801045E00014E000059090A420000510B - 0C3A00004605073B00004302044201034000013D00003C000043070733000044 - 0B0A3500004A09084500005502015F00006A00017601027F0204810102820001 - 8001008101028100008205076A0000720E0C4D00005208043D00004306043C00 - 004406063900004B080B3A00004A070C3A00004900034E00006204055D000078 - 10116800007F0C09740000810201840100860100860000860000840001840001 - 8200027F00027700017402027103036E04036703035D00005400004D00004A00 - 004F05053E00004D090A3A000049080A3B00004302043F00004706053A00004B - 0A09390000470A083800003E03013A0000400705330000440B09330000430A08 - 3400004003014500005005074200005008084200005309094900005604035500 - 005E00006901027302057B020681010684000282000084000182000182000182 - 0001820001820001820001820001820001820001820001800001800001800001 - 7F00017F00018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000017F00017F000180000180 - 0001820001820001840001840001840001840001860001860001860001860001 - 8600028700028800038700038200027C00037400026C00016400015A00004C00 - 004E04043E00004C0C0C37000045090A3300003A00013A00003E000040000143 - 02043D03043700003F06073300004307073B00004C04044E00005B0000660001 - 7202027B03048001028200018400018400018503047800007B0607650000660A - 094A00004C02004502004101003C00004606063900004706083A000045020748 - 00005A00006200007407096C00007F0908770000830403820000870000870000 - 8600008400008200018000017F00027B00027301016B00026600015F00005900 - 005200004C00004600004502013D00004707073800004706083B000044030540 - 00004200013F00004706053A00004707063800004005033900003B0200350000 - 3F08053200004009063300003E05033900003F04023D00004906054200005906 - 055600006A05076D00037100017600027B00047E00058102048001037E00017D - 0000820001820001820001820001840001840001840001840001840001820001 - 8200018200018000018000017F00017F00018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00017F00017D01017F0001800001820001820001840001840001860002860002 - 8600028600028400028400028400048200048101067A01057601046E00036500 - 015C00005300004C00004500003B000042060734000041080B3400003C030638 - 00014304064302044100023D00003A01023C03043800003D03043A0000430303 - 4500004E00015400006000006D02047604047C01038000018400018600018301 - 027D01017500007307066400005800004B00004B04014300004101003E000042 - 02023E00004201034000024A00015E00006D00026E0000790302760000800100 - 8200008702008700008700008400008200017F00017D00027901027601046C01 - 036501015D00005300004E00004900004502014404033D02003D040239000040 - 04043D00004302044000004200014300004401003F00004202013E00003E0301 - 3B00003A01003902003A03003800003C03013800003E03013B00003C01003B02 - 004003014300005000015800006A01047400037F010784000687000587000584 - 00027F00017E00017C00017D00027F0001800001800001820001820001840001 - 8600018600018400018400018400018200018200018000017F00017F00018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017F00017D01017F00017F0001800001820001 - 8400018400018400028400028400028200028200048000047F00047900047203 - 076A03066502045E00045500014E00004500003E00003B00003A020136000039 - 03033400003B02053900033C01053B00003E0000400001430204370003380002 - 3B02033800003E02023E00004401004900005100005A00006301016F03027902 - 038001038500008400008200017F00017A02027403016B010061000054000049 - 00004901014100004303033C00004302043F00004401044B00016502046F0103 - 7200007600007B00007F00008401008601008802028300008202037B00007C04 - 057601047605087005086000005800005700014E00004C00014100003F02003A - 01003901003600003B03023800003E02033E0000420002430000430000420000 - 4302013E00004202013A00003D02003A01003B02003A01004005033E01004205 - 033F00004201004000004101004300004B00005800006500027200037C000384 - 00048A00058C00058C00038700028400027F00007C00007A00008004047F0303 - 8001028000018200018400018700028700028600018400018400018200018200 - 018000017F00017F000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017E00007C0100 - 7E00007F00018000018101028300038300038300057E00028100057B00007C00 - 067700037B03087203075A00004F00004E00014700004701023F00003F010139 - 00003C03043802023B05053500003B02033700003B0002390000430204420103 - 4000013D00003600023D04073400004307083700004606063F00004800004B00 - 005300005E02016802037503037D00028500008600008200017F00017E020279 - 03027101016700005B00005000004A00004805043B0000450707390000460507 - 3E00004D00036201036D00027000027500017B01017F01008200008200008200 - 008505067500007C07086A000072070A6500016504085800005700034A000051 - 05063E00004606053600003A03003600003B0504310000400807350000460507 - 3D00004400014200004504033B00004707063700004407053800003D02003C01 - 004306043B00004908073F00004D05054600004C00015101005401005B010163 - 00026D00037600057D0004850005870004890002880001860001830000810000 - 7F00007C00007B03037A02027C02027D01018000018200018500028700028600 - 018600018600018400018400018200018000017F000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000017E00007C01007E00007F00018000018101028100038100037D00 - 0281030876000080080D6E000075060A6A00006302064900004504033A000045 - 07073500003F06053400003901003700003D0405340000410708350000440507 - 3C00004100023B00003D00003F00004302043B020533000045080C3700004A09 - 0B3A00004705064100004800004E01005702006303037002027B000284000286 - 00008100008001008001027E02027801027000006500005A0000500301410000 - 490908350000480A0A3900004806074A00005C00006500006B00027202027702 - 037A02027E02027D01017F05057400007C0A0A6300006F0A0C57000060040954 - 00015200024600005207093E00004B090A370000400706370000390302310000 - 420A09330000480A0A3900004705064100004302013B00004A0908390000480B - 093700004407053C00004303023E00004E08084200005608094900005A030659 - 00006702046C01046E00047001057201047502057901057A01057B00007D0000 - 8100018100008300008500008500008100007802017203017602017901017D01 - 0180000183010287000286000186000186000184000184000182000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000017E00007E00008001008001008000 - 018000018001037E01037C01057200007E0A0F660000730C115B00006203074F - 0000430303320000400A09320000420A093300004004043800003F0000390000 - 4806073A00004D090A3E00004D07084500014502054201034000013D00003700 - 0141060A3700004C0A0F3A00004B080B3A00004301024300004800005202015D - 03026C01037901028400028600018100008001008200018101027E0103780102 - 6E01036303034F00004F0805390000480D0B3700004B0B0B3C00004D02045400 - 005D00006601036C040571040674040477020376010273010177090B5F00006E - 0B0D5000005C070B4500004C00034700004E05073E00004D0B0C390000460A0A - 3300003C0302370000410807330000480C0C3900004B090A3A00004301023F00 - 004707063900004C0C0B370000480B093700004202014200004E06064500005C - 090B4E000066070B5800006900057701067C00067A00067A0006790105780004 - 7601047800047800017800017C00007E00008000018400018600018000016F00 - 006B02006F02007403017901017D010180000184000186000187000186000186 - 0001860001840001820001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018001 - 008001008001008001008000017F00017D00027901027500037A090D61000071 - 0D125200005F080C4900004800013800003A0907300000450D0C350000490909 - 3C0000460001460000500306430000560A0B430000540A0A4500004B02043E00 - 003E00004000014302043C00063500004A080D3A00004F0A0D3C00004806073E - 00004000004201004B01005702006701027601048200028700028100007F0000 - 8400008501018301027E02027303036905055502014200004B0B0A350000480C - 0C3700004B07084600004D00005200005B01016104036905056C04056F02046E - 01036F0406610000690A0E4C000058080D4000004603083B00004300033A0000 - 4A090B3900004A0B0D3700004307083A0000400103370000480A0A3900004C0C - 0C3A00004806073F0000420201370000480B093700004A0D0B37000047070641 - 00004A02024600005C080A5200006C080D5D000074040B7100027F0005820004 - 8000048000047E00037C00037A00017A00017901027901027901017A02027C03 - 017C03017E03017904016800006401006902006F02007602017A02027F000182 - 0001860001860001870001860001860001840001820001820001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018001008002008001008001007F00017D01017B000276 - 010475060A6500006B0A0E4E00005A090C4200004A05083C00003C0403320000 - 460B09390000530B0B4300005704065100005D020554000062090C4C00005D0A - 0C4700005204054600004602034201034000013D00003A000242040A3A00004D - 070D3E00004E070A3B00004002023C01003E0100470200510100630101730003 - 8100038700037F00007F00008300008600008600018101027902036C05035300 - 00500604390000460B093500004709093F00004B02044800004B000051010258 - 02025F02036202026501016501016100006305094D000057070C3E000046060C - 3200003A000538000142060735000048090B37000047080A3A00004201033F00 - 004704073A00004B090A3A00004A08093B00004202023C000044070537000048 - 0B093700004909083B00004701014800005703055300006F090E6300007B070E - 7200007E00067E00048100038100038300038300038300038400008200008300 - 038001037C02027802017403006F03006E03006804005C00005E00006401006C - 03007203017903027D0101800001840001860001870001870001860001860001 - 8400018200018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180010083010183020082000080 - 01007F00017D01017800037300036C01046A07094E00005405083E0000450608 - 3400003E05063A00004606053C000055090A4A000063080B5A00006600056700 - 056E070A5C0000690B0C4E00005A07064700004900003F00003E000040000143 - 02043F00053A00004903093E00004E040A3F00004503043D00003900003A0100 - 4202004F02006101017100038000058601047F00007F00008500008600008600 - 008200017901026E040358010046000046070333000043080639000048040545 - 00004300004600004A00005000005500005A00005D00005D00005B0003510000 - 5504073E000045050B31000036030A3200063801043500004005093500004505 - 0A3A00004502054200004600024100004905063C00004806073B00004404043F - 00003F02003800004207053500004508063A00004704034600004E0000520000 - 67060A6600007D091077000385020C7D00037800047800037E00038300038A00 - 018E00019400029400029100028900018200017600006802005E030056030054 - 03005200005800006002006804006F04017504027B0101800001840001860001 - 8700018700018600018600018400018200018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 01008301018302008301018001007F00017C00007700036F0103660002570000 - 5603054000004203053000003706083602024000004500005505065100006706 - 0863000073040872000378040970000373080B5F00006408074F000052030047 - 00004804054302044100023D0000400003410004410000470003430000470003 - 4000003E00003900003C01004101004C01005901016802037501067D02067C00 - 007F00008200008500008700008500007C00017202025F000054010048000044 - 04003E00004303024100004301023F01014101014300004700004C0000510000 - 5500015500015100005000024700004300033A00013802073300073503073900 - 033D01023A00014001033E000143000344000045000147000146000243000045 - 01024100004301024000003E00003C00003B02003A00004003013F0000470101 - 49000050000055000061000069000177060A7A020783050B8000058100067C00 - 037C00017F00018600028900028E00039000038E000389000281000176000068 - 01005C01004F01004501004501004A00005100005D00006902007403017C0202 - 8000018300008400018400018400018400018400018400018600018400017F00 - 027B00027D00027D00027F00027F000180000180000182000182000182000180 - 00018000018001008000018001008301018301018001027B01017601026F0101 - 6802036104035200004C00004400004301023900003B02033501013C02034700 - 005400005900006700036B00007702057800047B02067E03077D040877000374 - 03066400005F03025100004B01014000003E0000400001430204410000400000 - 4301023F00004301023F00004101004000004101004000004603024500005000 - 015000005D02056803057801027F00008300008400008500008500008300017C - 00017705056C05035F03025201004900004000003C00003900003B0203390001 - 3F03043C00004601044400004C01034B00014900004600004701023F00003E02 - 0337000038020239000140000142000045000341000047000343000046000245 - 00014600024400004700034100004500054100004400043D00003D0504390302 - 3B00004000004800005200005F01026902057001057401047800047900047B00 - 027B00027B00027F00028600018800008600008500008200018001037A020374 - 03066D04076201035C03064D00004901013F00004002023F01014502014E0100 - 5D00006D00018000028B00038E00028D00008700008200007F01007D02007F00 - 018200018700028400027800047201057401047800047B00047D000280000282 - 00028702048601038501018200007F00007E00007D00007E00008202037F0002 - 7901056A00006202025000004A00003E00003A01003A03003A03003B02003E00 - 003F00004200004800005C04046802037101017901027F00018001027C02027C - 02027D01017E00008300018000047901056A0104540002460000440104420103 - 4000013D00004200004504033B00004707063900004606053C00004101004000 - 004605043E00004C06064200005105064B000060060675030380000182000183 - 00008600008600008500018100017F02047601026901025D0100520100470000 - 3F01003800003900013E050834000043060A3700004704094000004601044200 - 004702053B00004707073700004206063600003D01014200004B02043F00004C - 06073E00004B05063F00004400024200004702053D00004A040A3C0000480208 - 3E00004100013C03023D01014100004900005400006000016C01047702057B00 - 047D00027F00027F00027D01017B01017901017F00018700008C000088000184 - 02027C02027402026901026101015B02055808094600004B0708370000420607 - 3700003D03043E02034901015B00016D00018400049100039300028F00008700 - 008001007902007803007D010180000187000286000478000572010574000578 - 00057B00047F00048200028400028500028500028400018200007F01007D0200 - 7D02007B02007700027703086500006507084C00004C07043800003503003405 - 013404003601003A00004200004A00005200025A00026503036F01017A000082 - 00018600008301017E03017C03017D02008100008800018700028000066E0004 - 5600034600003C00003D00003F00004302044302013B00004A09083900004A0A - 093700004407053C00004202013C00004D0A093E000051090942000053070859 - 01017103037E02028001028200018600028500018500018300017F0002780102 - 6E02016403005902004E010047000040000042040438000045090A3700004A09 - 0B3900004805084100014300033A0000490909370000480A0A3500004206063A - 00004202023B00004A08093A00004A0A0A3900004605073E00004401043C0000 - 4A070A3A00004C070A3C00004902054100004600014A00004F00005800026300 - 046C01047701067E03078000048200028200028200018000017F00017B02007D - 02008200008400008202037D03037702036D0100620000590000570305490000 - 51080A3C000049080A35000043060A3A00013C02034201005500016800017F00 - 048B00038E00028B00008400007D02007803007603007B01017F000186000286 - 00027F00047B00047D00047F0004800004820004840002840002830001810000 - 8000018001027C02027A03017903027203016B00035C000065070B4A00005509 - 0A3C00004407053800003C04003C02003F00004700004F000057000060010568 - 03056A02037101017D01018400018600008400007E03017C03017D0200810000 - 8600018600027E00066C01045400034400004502054201034000013D00003F00 - 004707063900004A0D0B370000480B093700004003013B00004808073A000050 - 0D0C3E00005109094500005805046E04037903027C0202800102830003840002 - 8500018300017F00017B00027402026B04026202025902005201004A00004400 - 004906093A00004C0B0D3900004B0A0C3900004203053C000045060835000048 - 0C0C370000480A0A3700004002023C00004507073700004A0C0C350000460A0A - 3500004001033C00004706083A00004F0A0D3E00004E070A4000004B00015300 - 015A00006100046700037001057901057E000584010484000286000286000184 - 00018200017F00017D02007B02007D02007C03017802017403016C0000640000 - 5A00005300004F00005105064000004E0A0B39000048090B3800003E04053802 - 023F02005000016200007800048500028800028600008200007B020078030076 - 03007901017D0101840002860002840002840002840004840004860004860004 - 8600028400027F00017F00027C01037A02027702037203016F01016702005500 - 00570406450000550B0B3E00004B0A093900004303024300004600004E000055 - 00005F00006600016F02047204066F03027402027F0001860001870000840000 - 7D02007B02007D02007F00008600018600027E00066C01045400034400003E00 - 003E00004000014302044202013900004A0A093700004A0D0B3500004308063A - 00003E03013800004C0C0B3A00004F0C0B3E00004D07074F0000670303710101 - 7601027A02037E01038000028400028300018100017F00027A02037303036D03 - 026602005E010057000052020344000052090B3E00004D0B0C37000044080839 - 00003B0302320000440B0A330000480C0C3700004707073E00003E0202350000 - 440B0A330000460D0C3300004108073A00004103033900004D090A3E0000530A - 0C4300005304075100006601036E01037201057702057E000581000386000286 - 00018900028900018700018600018200007F01007D02007902007605036F0401 - 6A00006400005E00005900005200005000004C00014000004E08093C00004B0A - 0C39000047050A3B00003602023B02004A00005D01007100037E020284000183 - 00008001007B02007803007603007901017D01018200028600028B00028B0001 - 8B00028B00028900028700028400028000027F02047902037503037002026B00 - 026601006100005900004A00013900004909093900004C0C0C3A00004C060647 - 00004C00005300005D00006601007002047801027C01037B0002760102780102 - 8200018700018700008600007D02007B02007D02007F00008600018400027C00 - 066A01045300034200004401044201034000013D00003E000046060537000048 - 0B09350000450A083600003E03013900004207053700004B0B0A3A00004B0807 - 3E00005003015D00006700006D01007202027902037E01038000028100018500 - 038100038001037A02037601026F01016B010066020257000058030747000053 - 080A3C00004909093600003D05043500003D0706300000440B0A350000490909 - 3B00004202023C0000400706330000430B0A320000420A093400003E02023C00 - 004705063E000054090B4700005C080C5100006201057401047C010380000581 - 00038500038700028800018A00018900018700018600018200017F01007B0200 - 7902007403006905016203005C00005600005100004E00004C00004B01004400 - 004A04043C00004B090A3A000049080A3B00003E02033802013902004800005B - 01006E01037901018000018100008001007D02007902007902007B01017D0101 - 8200028700028D00019000018F00018D00018900028400028000027B00027904 - 057103036A02036301015D00005800005600004D00003A00003B050533000045 - 09093900004E08094500005401005900006200006D01007503037D0204820203 - 8400017E00007A02037A02038400018900018900008600007C01007801007B02 - 007E00008500018400027C00066A01045300034200003D00003E000040000143 - 02044101003C00004407053700004308063600003E05033900003A0100380000 - 4409073900004707063A00004403024800005200005B00006400006C01037302 - 057A01057F00028200028601048601048301028000017D010179010178020171 - 03036300005600005B02054700004E06063C0000410604370200360301310000 - 3D07063200004506083A00004702054000004100023800004206073300004108 - 073400004004043D00004000004100005105064C000060070A59000067060A6B - 00037D00028600018600028700018900018900018A00028A0002870001840001 - 8000017D01017902007603007403006B04015C01005300005000004D00004800 - 004800004600004502014302013E00004806073B00004906093C00004502053C - 00003901003A01004800005801006C0103790101800001820000820000800100 - 7D02007D02007F00018000018200028700028F00019000008D00008900008600 - 017F00017901027202026E03056503035D00015400004F00004A00004A000043 - 01023900013000003E05063700004A06074400005501035900006600016E0002 - 7801027E02028202038501018600008200007E02027E01038800028B00018B00 - 008500007C01007801007B02007E00008500018200027A00066A010453000342 - 00004603064302044100023D00004000004101003E00004003013A00003E0301 - 3900003A01003800003C03013C01004005033B00004101003F00004500004B00 - 005200005C00006402026D02047502057B000280000287020586010487000283 - 00008100008000018102037C04056900006300005900005600024A0000480202 - 3E01003B04013701003603013500003B03023C00004300034200004300014100 - 014100023E00004001033A00003E02023D00004000004100004A00004F00005D - 02056100026C03066F01077A0207820000870000870000880000890001880002 - 8801038702048000017D01017901017602017003016D05006B04016406014E00 - 0048000048000047000044010042020041010040000041010043030240000045 - 03044000004401044100004000013A01003E01004A00005A00006B0002780201 - 7F00008200008400008400008200008200008200018200018400028600018B00 - 018B00008700008400007D01017802017002026904026205045803014F000047 - 00004200004000004202024004043800003A01043C0000450003480000530001 - 5900006200007403067902037E02028001008300008500008500008400007E02 - 028001038A00028D00018D00008600007E00007801007B02007E000083000182 - 00027A00066A01045300034400003E00003E0000400001430204430201400000 - 4303023C00003F04023B00003D04023B02003A01003900003E03013A00004003 - 013C00004101004300004A00004B00005300005500006501016B00007A050681 - 04068100038500038700028600018600008500008300007F00007B0307700305 - 6700035C00005100004900004100003D00003B04013702003C04033800004102 - 044000004601044600024500014400004500033F00004202023E000042010043 - 00004900004F00005800006300026B00037401047900057F0004870002890001 - 8900018700018500008100007D00007800007C05067303037206056500006403 - 005900005A00004F00004900004000004302013E00004202013C00003D02003C - 01003C00003D00004202023F00004300034100004600024100014002023F0000 - 4C00005500006C01037500008000018300008800018800018800018600008600 - 018300008300018300008500028301018405067A02027606066700005F000053 - 00005200004A00004701013E00004002023900003B02013B00003D0000410000 - 4900015000035A00056302066C03067403077800047B00027F00018001008200 - 008201008201008002007D01018000028900018D00018D00008700007F010079 - 02007C03017F0100830001820002790005690003540003450000440104420103 - 4000013D00004300004605043C00004707063700004207053900003D04023900 - 003E05033600004308063700004407053C00004201004200004B040144000058 - 05045500006D07086D00017D06077E0103830102870002870000870000860000 - 8600008300007D02047601046D00026400005B00005000004800004100003E01 - 004106043500004307073700004704074000004801044800004D01054100004C - 05083C00004705063F00004600004A00005200005D00016701027201047B0004 - 8000048400028700028600008400008200007E00007A00007802017303036D03 - 026E09075D0000630A064F00005805034A00004A000042000042050338000043 - 08063500004207053600003B02003B00004004043A00004707073C0000490407 - 4100004400024100004603024500005E04036100007C08077C00008701018900 - 008B00008800008800008500008300008100017F00017C00007D070670000077 - 0B0A6000006308044F00004D00004500004603003B0000440907340000400706 - 3500004000004900005000005500035D00046600056D02057501067A02067D00 - 027F00027F00018001007F01007F02007D02007D02007D01018000028B00018F - 00018D00008700007F01007902007C03017F01008500018400027B00056B0003 - 5600034700003C00003D00003F00004302044903033F00004C09083A00004A0A - 093700004308063C01003E0301360000450A08350000480B093700004606053E - 00004202013B00004D0707450000600A0A59000071090A7202027A0203800102 - 8200018600008600008601008600008300007F00017901027500016D01006400 - 005B00005000004900004903033D00004909093700004A090B39000048050A43 - 00034C000546000052060A4000004D090A3C0000490605430000490000530000 - 6100026D02047702058001038700038700028600028300017E00007B00007700 - 007402026F05046B07076205045700005E0B09470000560B094000004D060341 - 0000420201380000470909350000460A0A3300004007063800003E0202360000 - 4909093900004D090A3C00004B05064300004501023F0000560607500000700A - 0B6A00008408088300008700008900008A00008800008500008100007E000178 - 00017404046500006F0B09550000630C0A480000500604410000410100370000 - 470A083500004A0D0B3700004505044300005A00026200036600056B00057100 - 067600057A00067E00057F00027F00027F00017F01007D02007B030079030079 - 02007D01018000028B00018F00018D00008600007D02007803007A03017F0100 - 8500018600027F00056F00045B00044A00014702054201034000013D00004600 - 004D07073E00004F0C0B3A00004B0B0A3900004005033A000043080635000048 - 0D0B370000480B093900004003013900004308063A0000540C0C490000650B0B - 5F00007105047601027B01018001008200008401008401008601008401007F00 - 007D01017901027402026D00026400005B00005100004B00004F07073C00004D - 0B0C3900004B0A0C39000045020747000153030A420000510A0D3C00004B090A - 3A00004502014800005201005F02016D03027803048102038700028700018200 - 027F00027D00027801027202026D020465030360030453000057070643000055 - 0D0D3C00004C0B0A3A00004303033E0000450707370000480C0C350000440B0A - 3300003C03023A00004307073700004C0C0C3A00004D090A3E00004501024000 - 004B0505450000610C0A570000790E0B74000085060585000088000088000085 - 00008000017D01017801027002026400006508094E00005E0D0A430000520B08 - 3B00004405013B00004407033900004D0C0B3C0000520B084400005502016801 - 047100047300047600057900057D00048000058000058000028000027F00017F - 00017D01017B02007902007902007B01018000028900018D00018B0000860000 - 7B02007803007A03017F01008600018700028100067100045D00044E00024000 - 003E00004000014302044D0303440000520A0A3E00004F0C0B3A00004808073D - 0000400301370000480B093700004C0C0B3900004807063C00003B0302320000 - 460B093A0000580D0B4A00006508076300007002027602017B02007F01008002 - 008201008402008201008100008001007E02027A02027402026D01006400005C - 000057000349000054090B3E00004C0B0D37000044070B3D0002490005430000 - 51070B3C00004A0C0C3500004308063C00004300004B01005902006703017503 - 037E02028500028600018000027C01057A02067704076E03056601035B000051 - 00004F0102430000500A0B3A00004C0C0C3700004506083C00004300033A0000 - 4B080B3900004A0B0D3500004307083A00003E0203350000480A0A3900004D0B - 0C3A00004A06074100004200013C0000540A0A490000670D0C5C00007A0B097B - 02008001008400008400008102017C02027504027004036905055E04044D0000 - 57090A4000004E0B0A3900004609073B00004205013B00004E09064200005909 - 084C00006309096501017502057C01057C01057E000580000580010380000280 - 00028000028000028000027F00027F00027D01017D01017D01017B0002800002 - 8700018B00018900008400007B02007803007A03017F01008700028900028300 - 067600056100055100034801044201034000013D00004A000051050642000051 - 09093E00004C09083D00004404033E0000440705370000480B09390000490908 - 3B00004003013400003A07053300004B0B0A4000005808075300006201006C02 - 017102007803007B02007D02007F02008103008103008301018301018001027E - 02027901027500016D00026701025A00005C030647000051080A3A000045090A - 3500004003074300014D03093C00004A090B330000400A093100003B04003E01 - 004801005402006103006E01007800008200008200017D000279010578030672 - 04066801045D00005200004A00004700004B05063A000048090B35000045080C - 3700004101064100014904073C00004B080B39000047080A3800003E02033A00 - 004206073700004A0A0A3A00004A08093D00004301023D00004606053E000056 - 0C084A0000660A056600007706037E03018002018002017B02007403016C0300 - 6703015E04034F00005106083E00004A09083700004409073700004005034102 - 004C07044300005B08065200006B09096500007606067C010381010281000381 - 0003810003810003800002800002800002800002800002800002800002800002 - 8000028000027D00027F00028700018900018700008200007902007803007902 - 008001008900028A00038400077901066400065400044100003E000040000143 - 02044F01024700005004054200004C06063E00004605044000004101003C0000 - 4606053900004807063B00004704033D00003701002F00003F07063800004D08 - 054700005902005B00006803016E03007302007803007903007C04007E040080 - 04008402028402028301018001007D0101790102760104700305630002560000 - 5702064200004805083700003E05083A00034200044100004605073500003E08 - 072D00003707033402003B03004202004D01005901006600007401007F010081 - 01027C01057600057200036C00026300025A00005100004B0000490003400000 - 47050A38000043060A3700004002083F00024600044300004B03093C00004805 - 0A3A00004403053D00003F00023A00004606063900004806073B000047030440 - 00003E00003B00004808074000005306035000006704006C0100790401790200 - 7902007401006C01006401005C01005401004B00024000004704073700004307 - 073700004106043E01004502004600005906045700007008096C00007D06077D - 0002820001840000840001820001800001800001810102810102800002800002 - 8200028400028400048600048600048400027D00027D00028600018900018700 - 008200007902007603007902008001008900028C00038600077A000667000755 - 00044A03064302044100023D00005600005600005000005101004800004A0300 - 4300004202013E01003F02003C00004202023F00004301024200004000003700 - 003603013500003D04033E00004702004A00005100006005016504016A030070 - 03017603007A04007C0400800300830403840202830101810000810000800001 - 7F02047B03076B00006600005900005400024800004602033E00014001034300 - 014400023E00003E02033500003704023202003502003A030040020048000050 - 00005B00006501007101017303037103076A01046300005C00005300004F0000 - 4C00024A01034200024302043D00024003073D00024101073D00034200044900 - 014D00024A00004E00034A00005000024D00005000005000005100004C00004E - 00014800004901014400004100003E0000400301410000490401460000520000 - 5700006103006904026804006702006302005D00005800005100004A00004100 - 004001033D00004103033D00004404034300004901014900005500005D00006E - 06077302057D06077D0004800002830000830000830000820000800001800001 - 8101028101028000028000028200028400028600028600028700048400027F00 - 027F00028400018600018400008001007902007902007D02008200018900018A - 00038400067A02076801045801044400003E00004000014302047207046E0502 - 6602005B00005100004900004100003D00003E03013A01003F03033C00004302 - 044200004800064400043C00033800003902053700003B02033800003F010141 - 00004B01005000005E02016200007002027600007F02048001028001007F0000 - 8100008200008500008500008500008300017F00027900047302056903045F03 - 025401004B00004600004A01034400014703043F00004103033A00003B020139 - 00003E03014000004603024700004F01024F00005800025400005000004B0000 - 4C00014700004701013F00003F01013C00003C02033A00013D03043B00004102 - 043F00024200054500014D00005600005C02026103046905056E040374020277 - 00017B03047901027301016B00025F02015300004700003E0000430000440000 - 4901014700004E01004A00004D00004C00004A00004700004C02024600004D03 - 034A00004F00034800013D04023904013B02003E01004400004800004E000054 - 00006603056B02057001057400057800057900047B00057D0004800001820001 - 8200018000018000018000018000018000018000018000018000018200018200 - 018200018200028200018000018000018000017F00017F00017D01017D01017F - 00018100008700028700028300007D00027503036902005800004A0103420103 - 4000013D00007B04027603006E01006501005B00005000004600003E00003C01 - 003F06053500004307083900004903094200014800073F000240030734000040 - 070A3000003D07073500003B02014100004D05054D00006306075F0000740608 - 7300007A02037C02027D02008000018300008600008800008800008800008600 - 028000027C01037303036A03016001005800005000004900004B02044000004A - 06073B00004707073B00004103033E00004305053B00004806073E00004B0506 - 4400004A01034200004404033A00004508063500004007053500003A02013900 - 014006073800004607093B00004904074100004B00015700015F00006602026B - 04027503037C02028200008600008C00018900008100007800006A02035C0201 - 4C01004400004400004903034100005006064300004F05054100004200013C00 - 003E05043500004408083A00004A05084400004701023C01003902003E010044 - 01004D00005700005E00006500007201057600057900057B00057D00057D0005 - 7D00057D00047F00028000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302047F00017B01017501006B02006001 - 005501004A000042000044040338000045090A3500004A080D3A00004A040A43 - 00034300053A000047080A350000440A0B3300004206063C0000450403430000 - 570A084A0000660A095900006B05066900007504027A02027E02027F00018400 - 018500008600018600018500018200027E01037702036F03026702006200005A - 00005100004300005106084000004E0A0B3A00004808083F0101400404380000 - 4709093700004B090A3A00004A06074300004301023A0000490909370000460A - 0A3500004206063A00004103033B00004D090A3E000054090B43000053040751 - 00006300026900036D02047103037803047C0202820000850000890000860000 - 8100007901016E03056105045303024902004502013B00004C09083C00004F09 - 093C00004706053C00003C0302340000420A09330000480A0A3A00004A040544 - 00004100004100004900005001005902006202026B03047302057800047B0004 - 7D00047F00048000048000047F00047F00048000028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00008300 - 008000017B01017203016902005D02005300004900004200004808073700004A - 0B0D3900004B090E3C00004701074100014A040A3A00004C0B0D39000048090B - 3900004202024000004D0707400000570C0A4700005C09074D00005D00006E04 - 037504027703027C02028001028200018500018500018500018400027F00027C - 01037702037002026E0103670303530000580408470000570A0D420000510B0C - 3C00004404043D0000460808350000480C0C370000490B0B3B00004404043E00 - 004707073700004A0C0C370000480A0A3900004301023F00004D050543000059 - 0B0C490000610B0B5300006204056F01057501067603067803047B03047E0202 - 8001008400008700008500007F00007901016F02046303035701014B00003F00 - 004508063900004C0C0B3A00004A0A093700003E030139000041080733000047 - 0B0B3900004C08093E00004B01014B00005000005700005E0100670303700305 - 7704077D04087D00048000048200048200048200048200048200048000028000 - 0280000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302048800008600018101027A02027202026602005D010052 - 00004E02034000004E0A0B3A00004C0B0D3900004807094000004500033E0000 - 4D080B3C00004F0B0C3C00004806073F00004504033B00004E0B0A3C00004F0C - 093E00004C07044900006304016C02017002027503037A02037F000282000283 - 00018500018300018200028100037E01037A0203790203710305650106550000 - 630A0D4A00005C0C0D4300004E06064300004504033B0000490C0A350000480D - 0B3500004209073B00004001033700004A090B3900004C0C0C3A00004C060645 - 00004900004700005B08075000006B0D0E5B0000700C0C6F02047B01077F0107 - 7F01067D02047D02047E02028001008200008501018400007E00007800006F01 - 036501015B00004D0000430201350000460B09350000480D0B35000043080638 - 0000400503360000480B093900004C0B0A3E00004E06064D00005C0000640000 - 6600016D00027401047901057F01068302078400048600048600048600048600 - 0484000484000482000280000280000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00008E00028C000287000281 - 01027801026E02016602025D03025100005305064000004F090A3A00004A070A - 3C00004502053F00004904073C00004D080B3E00004E08093D00004501024200 - 00470605390000490C0A350000450B063600004502005601006201006701026D - 03027303037902037D00027F0001830001830001830001840002820002810003 - 8001037A01056D00036D070C5C0000690A0E5000005E070A4B00004E00014700 - 004A07063A0000480B09370000450A083600004004043C00004604093900004B - 080B3C00005007094400005000014E00005D03025400006F0B09600000790D0C - 7000007E07088400068700068300058100038001038001028002018102018301 - 018200007E00007800007100036800015D00004F000041000042070533000044 - 0B09330000430A083400003E03013E01004707063C00004E0808420000540809 - 4700005903036802037100037300037800047B00048000058300058500058600 - 0487000487000486000486000484000484000482000280000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02049200039100038A00038400027D00027601026F02046905055C00004E0000 - 5204054200004C06063E00004604054000003F01013A00004606063A00004A06 - 073D00004903034200004502013D00004606053600004209073400003C07043E - 01004D00005800005D00016503036C04057302057800047D00047F0003810003 - 8300018500018500018600028400028100057A02076F000275060A6700006D06 - 095D00006104055700005301004900004D06033E00004808043B00004306023E - 01004100023D00004903093E0000500507460000540103540000610304620000 - 7107066900007B0A087400008108068101028900048B00058700048400028000 - 027F00018002018002018102018001007E00007B01017702056E010365000159 - 00004800003A00004207053300004108063400004005033F0000460300440000 - 5205034900005906054E00005B08076002037201047B00027D00027F00028200 - 0284000286000286000287000287000286000286000284000282000282000280 - 0002800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00009300049100038C00038500018100017B0002 - 7803067205076100005C00005200005101024800004A02024500004301023C00 - 003A02013A00004002023E00004501024200004500004200004401003E000041 - 04023900003B06033803003F04024600004F00005600005D03036403056C0405 - 7002047601047A00037E00038000008200008400008600018600018600027F00 - 037E00067900037A02077100027102066800026702045B00005800005000004F - 02004800004A03004700004701014500014600044500014C00034C0000530001 - 5600005C00006B05067307067403017C07047C01008104008100008600008D00 - 048C00048800038300017F00017D01017E03017F04027E00007F00007E00007E - 02027B03077403066D02055F01024A00004200013C00003E03013800003E0301 - 3F00004300004B00005300005500005C00005B00006303036002036B05067700 - 017F000180000282000284000286000287000387000386000286000284000282 - 00028200028000027F00027F0002800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302048D00028A0001 - 8A00018500008200007E00007A00037300037003056804046104035A02025301 - 004D00004900004100003D04023603003D06033900004104023E000044010042 - 00004500004200004501023E00004002023800003B02013C0000460001490000 - 5202035200005E03066100026A03066F01057502057B02068102048401048601 - 048800038700018600018800058700058500058200047F00047A000375000371 - 00036C01036602026101015D01005700005100005000004D00004D00014E0003 - 5000035300035900045E00046401036901026F01037500017800007D02008200 - 008502008702008A00018F00068C00068600038000007B00007A00007C03017D - 04027F01007F01008000018001027B02067601046C0001610000500000440000 - 4301023E00004003013E00004401004A00005200005D00006800016E01037003 - 057004036D02046F01017B000282000282000282000284000284000284000284 - 00028200028200028000027F00027F00027D00027B00027B00027F0001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00008800038700028700028500018300018100017E00037800037702 - 056F02046802036202025D01005500005100004A00003C02003C070434000042 - 09073600004606053D00004502014400004903033D00004A06073A0000460606 - 3A00004101014100004B02044400005406074C00005F06095B00006601036D02 - 047201047902037E01038100038500038600018700018A00038A00038A000587 - 00028600048100017E00037A00017601047101016E01036902006400005F0000 - 5F00005B00005700015600035800035D00036100046700036C01037101017500 - 017800007C010080010084010087020088020088000188000587000683000580 - 01037901027802017801007A01007F01008001008000018001027F0106780004 - 7100026300005200004D02043D00004707073700004606054300005100005E00 - 006800007400027901027A02037A02037601027700017F000282000282000282 - 00028200028200028200028200028000027F00027F00027D00027B0002790102 - 7801027901027F00018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302048001038100038100038200028200 - 028100017F00017E00017B00027801027101016C02016602006102005E020154 - 0300430300360000450B06350000490C0A3900004706054000004501023D0000 - 4E08093E00004D080B3C00004904074100004400023C00004D06094200005607 - 0A4900005A03065800006301016901026E00007301017901017D010180010283 - 01028800028A00028900028900018700028600018300017F00008001037C0202 - 7801027403017101016E03006D01006902006200016100046300046700036C01 - 046F01037401047801027A00017C000080010082000084010086010087020085 - 01018000047E00067B02067A0304780304760201760100780000800201820000 - 8200018101028101067900047300026600005700024400004E0809390000480B - 093900004D06035100006600017400027F00048300038401048101027D01017C - 00007F00018000018000018000018000018000017F00017F00017F00017D0101 - 7D01017B01017B01017901017802017901017F00018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00007702 - 037902037A02037E01038001038000028100018100018000027D000279010276 - 01027002026B04026804026106024900004C07043E00004F0C093C00004E0B0A - 3B00004504033F00004806073C00004F0B0C3C00004D080B3E00004500033E00 - 004704073C000050090C4000005306094500005300015800005D00006400006A - 00006E01007403017903027D0303820001860001860001860001870001860001 - 8600018400018200018000017F00017D01017901017903027703027304026D00 - 026C01036E01036F01037401047801027C01037E02027F000180000182000082 - 00008201008201008201007F01007901057302067002046F03026F0302710200 - 7502007A01008102018400008400018400018000057C01057400036900035300 - 005104073C00004A0C0C350000480B094000005500006D02047A02038601048B - 00038B00038701018200007F01008000018000018000018000017F00017F0001 - 7D01017D01017D01017D01017D01017D01017B01017B01017B01017B01017F00 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302046A02036C01037002027702037C01037F000282000283 - 00018500018400028000017D01017903027504027205036B06045C00004D0000 - 5C0907470000570C0A4000004D070740000042020239000048090B3900004C0B - 0D3A00004A040A4100014502073B00004C090E3C00004F0A0D3E00004D050547 - 00004F00005200005800005E00006401006902006F04017304027902007F0100 - 7F01008001008200008200008400008400008300008300008100008001007F01 - 007D02007E03017A02027602017601027801027901027C010380010281010283 - 01028200018200008200008001008001007F01007F01007802016D0506660305 - 6301016100006400006A01007403007D04028402028600008600008600018100 - 057C01057600056900055500024200004A0A0A330000430E0B3300004C070451 - 00006F04067D02048900048F00038D00038A0001820000800100800001800001 - 7F00017F00017F00017F00017F00017F00017F00017F00017F00017F00017F00 - 017F00017F000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00005D000062000067020070 - 02027902037E01038400028600018800018700028600018200018001027A0202 - 7A04037405036700006B0506590000660A094A0000570A084300004504033C00 - 00420606330000440A0B35000047080A3A000043000541000348050A3A00004C - 090E3A00004B080B3C00004603024801004A00005000005300005B0000600200 - 6403006B04017103007502007803007B02007D02007F01008301018501018300 - 008300008300008300008200008001008001007F01007D02007D020080010281 - 02018301028500028500028700028501018501018001007F01007D02007B0200 - 7A01007102006205045802025600005600005C00006501007305017F06048402 - 028800018800008700018300057D02067701066A00064F00004B040735000041 - 0B0A2C0000400B083B00005201006D05067C01038800028E00018E00018A0100 - 8302008103008001008000018000017F00018000017F00018000018000018000 - 0180000182000182000182000182000184000184000182000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02045400005800006201006C02017503037E01038400028900028B00018B0001 - 8900018700018400018001027E03017A02027A02037100007605085F00006306 - 074D00004D05054000003D01013500003D070730000040070A3400004003073D - 00024300063E00014704093A0000480709390000430505400000420200450100 - 4800004D00005100005701005E04006204006A04006E03006F03007403007803 - 007C030180020181020183010184000084000084000084000082000082000082 - 0000820000840100840000860100860000870000870000870000870101850101 - 8101027D01017B01017701007701006C02015500004B00004B00005000005700 - 006401007004007E05038602028A00018800008700018300057D020678020769 - 02074F00013D00003F07062B0000350B062C00004205014D0000690304790102 - 8700018D00008D00008700008103008003008001008200008200008001008200 - 0080010082000082000082000084000086000086000087000087000089000087 - 0000820001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004700004D00005600006003026D0204750205 - 7D00048400028900028B00018B00018900018600018400018001008000018100 - 038102047700027401046500006100025300004E00014700004200013E000040 - 01033A00003E02033B00023C00033C00013E00033B00003E02033A00003F0304 - 3C00003E02023F02004001004200004500004900004F01005302005804005E05 - 016105006504016B04017003017703027A02027C02027F030381020382020383 - 0101850101840000840000860000870000870000870000890000890000870000 - 8700008600018301028001027C01037601027202026E01036C01036104034700 - 004100004500004C00005501006001006E03007901018503048800028A000086 - 00008300037F02047A02066C03065000004200013700003505012E0100350501 - 3D00004E00006903047800018500008A00008A00008700008103008104008001 - 0082000082000082000082000082000082000082000082000084000086000086 - 0000870000870000870000860000820001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302043E02033F0000 - 4701024A00005B00036200017102067A00067D00018200008600008600008700 - 008800018802028602028200018000017F00027D00027B00027800047201046D - 02056200005B00015500015000024B00024400014200023F00023B0203370101 - 3A04043500003B03023600003901003800003B02013B00004202013E00004401 - 004100004600004400004A00004A000055010357000067020469000171030575 - 02057400007600007B00027B00008402038400008B00038B00008A00008A0000 - 8A00008900008900008700028300038101067D02067600057002086400026001 - 055600005400014A00004400013F000046030244000050000056000068020374 - 01047F00028600028900018900018400018000017B01016F0302530000450000 - 4102003700003D06033A01004701014F00006A03067A02078600068A00038800 - 0085000083010183040380010080000180000180000180000180000180000180 - 0001800001820001820001820001820001820001820001820001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003700033E05083800004B04074800006004096300017102067800 - 057D000482000284000186000186000087010187010182000182000182000182 - 00018200028200027F00047B00047400036C00026500035D00025300024D0001 - 4A00014300003B00003E05043400004108073500004206063800003D01013B00 - 004004043800004507073700004505053C00004101013D000045030443000058 - 04085200006504086200006A01046F01057507096F00007F0809760000850506 - 8100008700018600008600008500008500008300008000027D00047800047000 - 0570040A5E000062060B4C00005104084500004300013D00004204043B00004C - 06074300005A03066200007403077D0004840002890002890001860000820000 - 7D02007203015600004D03003C00004508043700004808074300005300006B01 - 077A020784000788000387000285000083010182030280000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302043D04073500004807093E00005607 - 0A4C00006504086500007102067702057C01037F000180000182000181000081 - 00008200008001008200018200018400018200018000027D00027A0105740104 - 6E00046601035E00035700015200004D00004B00024100005007094000005108 - 0A3E00004905064200004301023A0000490909370000490B0B3500004307073B - 00003E02033700004B07084200005A060A4E00006002065C0000680507620000 - 730B0C6400007C0B0E6F00007E06077800007E03017D02007D01017B01017901 - 027801027300036E01036700055A000063070C49000055080C3E00004903093E - 00004001033900004909093E00005408094C00006906086F00047B0004820002 - 8700028700018600008200007D02007203015D02004700004D0805390000490C - 0A3900004D05054E000068010677010682000787000387000285000083010182 - 0302800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003B00 - 0246060B3900004E090C42000058070A4F00005D00026702046C010371000376 - 01027901027D01017F00017F01007F0100800100800001820001840001840001 - 8200028000028000057A01057601046F00046900036300026000035D00035700 - 005E04094E000060090D4A00005A060A4500004C00024600004B05063C00004D - 0B0C370000470B0B3600003D04033800004307083900004E0A0B420000570609 - 4900005500015400005F05055200006D0D0D5A0000750D0E6A00007406067205 - 037206027205037104026F03026D03026802036502045700005A030647000055 - 0A0C3E00004A090B3700003F03043A00004507073900004F0B0C4300005F080B - 5D00007304087B00048200028700028700018600008200007D02007203015B00 - 005607044000004D0D093700004C0C0B41000053000166000576000581000687 - 0003870002850000820000820302800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044301063A00004B080B3C0000500A0B4200005204054E - 00005A00005D00006400006B01007101017703027A04037B03037D02007F0100 - 8001008200008400018400018400018400018300017F00017C00017900047601 - 047201047001056F010570020864000072080E5A00006C080D5300005D02054F - 00005200014500005309093E00004D0C0B3900004508063900003E0405350000 - 490A0C3900004C090C3E00004E05074700004A00004500005808094A0000640B - 0E52000066090A5F02016304016305006304016003005F02015E02015B010157 - 01015100004300005007093A00004A0B0D33000040070A3700003F0304380000 - 4B0B0B3C000055090A4A00006807096D00037900048200028700028700018600 - 008200007D02007403016304014C00005309073A00004B0E0C3900004D07074D - 0000620003720003800006850003860002840001820000810201800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00004100014704093A00004B - 080B3C00004B07083F00004A00004C00005100005900006000006701026D0302 - 7103037605037902007B02007D02007F01008200018400018600018600018400 - 008500018300018200028001037E01037D02067B02067800047E050D6C00007C - 080F62000070040A5D00005F00025900005A030649000057090A4200004D0707 - 3F000042000140000146060B370000490A0C37000049080A3B00004503044200 - 004B0506400000540A0A43000055070848000052000052000054000052000052 - 00005100004E00004E00004A0000430000470403390000450909330000400A0A - 3200003A04043A00004406063900004D090A4200005B07095C00007204087900 - 048000028600028700018600008200007D02007403016201005C07054300004D - 0A073700004A0A094000005000016100026F00027D0005860104870003840001 - 8200008102018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044600023F00004704073B00004808083900004306043F0000420000470000 - 4D00005300005D01006101016602026C02017403017803007902007B02007F00 - 0182000184000186000187000187000189000187000187000187000287000383 - 00038100067B000182040A7300007F050B6D00007203076A00026801045E0000 - 6306075200005C06064C00005402014B00004A00044000004704093900004306 - 0A3700004105063D01024302043F00004A05083D00004C05083F000048010444 - 00004800004900004900004900004900004700004700004300004100003B0000 - 4105053300004007083100003B05053600003E02023B00004606063C00004F05 - 054C00006305066C01047800048000028600028700018600008200007F010076 - 02016A05035800005505043E00004707063900004805044B00005E00016D0002 - 7B00058401048500038400018200008001008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004400004400024000004403053C00003E0504 - 3A01003C03013C01004000004601004B00005200005801005C00006100006D04 - 017004007403017602017901017D01018000018400018800028A00028A00028B - 00018B00018A00008A00008600018100018000057D00028100077B00037D0309 - 7701067504087102066F04076900036803056000006100025C00005900015000 - 004D00044400004400043B00003C01053900013D03043B00004100023F000044 - 0104400000450205410002440203450000470000480100470200470200460300 - 4403024403023F00003F02003A00003E02023800003C02033800003A01023C00 - 004002023F00004301024400005101025D00016C03067601047F000284000286 - 00018400008200007F01007802016B04026003024F00004B01003E0000410402 - 4100004B00005A00006900017900058201048500038400018200008001008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E0000400001430204450001420000 - 4300033C00003C03023700003802013701003902003900004202014100004B01 - 014C00005200005700006605026703006E04036B00007402027400007A00017D - 00008300008500008800008A00008A00008C00008C00008700008200047F0004 - 7F00047D00047D00047B00047900047800047800047601047401047401047201 - 047201047201046D02056400065800025000014500004302043A00013B020339 - 00003E00013F00004500054100014300053E00013F0004400001430000440000 - 4701014300004701014100004201004100004000003F00004002023C00004001 - 033C00003F00023E00013F01014000004303033F00004901014D00005F020369 - 02057401047D00028200028400018400008200007F01007802016C00005E0000 - 5400004500004201003C00004201004700005C01046A01047A02078102048300 - 0384000182000080010080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00004200004702053A00004506083300003F07063300003802013601 - 003D06033600004707063E00004F05054600005100005600005F02015900006B - 07056200007408077100007C04057D00028000018400018600018900018B0001 - 8B00018700028000027B00027B00047D00027D00047D00027D00047D00027D00 - 047D00027D00047D00027D00047D00027D00047900046E000668010851000052 - 03063D00004307083700003B01023D00004502053F00004C040A3C0000470409 - 3A00003F00024200004903033F00004C06063C00004906053D00004201003F00 - 004404043A00004806073A00004704073D00004200023F00004505053B000048 - 06074000005305065800006904067401047B0002800002840001840000820000 - 7F01007901016F00006802035200005205033A00004508063D00004800005900 - 036801047501067F020481000382000182000080010080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044301023A0000490909370000440B - 0A3200003F07063700003B03023300004509093700004B090A3C00004B050647 - 00004D00004A00005E0606500000690B0C5C000071090A6E0103750205790203 - 7C01038001038300038500038700038500037D00027901017901027B01017B00 - 027D01017D00027F000180000280000182000282000184000284000186000282 - 00027F020B6B00006A060C4A0000500A0B3700004007063700004202023F0000 - 52060A42000051070B3C00004404093E00004701024100005007093E00004D09 - 0A3C00004705063F00004301023B00004A08093C00004D090A3C00004B050641 - 00004301023B00004A0A0A3A00004F09094500005E0606620001720104790102 - 8000028200018400008200008001007B01017803046400006306074500004D0C - 0B3500004508064400005501036401037302067D020481000382000182000082 - 0000800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003C00 - 00450707370000480C0C350000460A0A3300003C03023800004307073500004A - 0C0C3700004A0A0A3900004501024500005206074500005B0B0C4A0000610909 - 5400006300026B02056F02047201047702037A02037C01038102047F02047B01 - 017901017901017B01017B01017D01017F00017F000180000182000184000186 - 000186000186000187000186000283000580080D5D0000620C0C400000470C0A - 3300003C03023E00004C060743000056090D4200004D080B3700004001034300 - 00500507400000510B0C3C00004B090A3A00004202023F00004806073A00004F - 0B0C3C00004F090A4000004701023E00004808083900004E0C0D3E0000540809 - 4F00006502047002047901027F00028200018400008200008001007D01017600 - 007306085300005B0B0A3A0000480D0B3800004502015300026100027001057A - 02037F0002820001820000830101800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302043C0302330000460A0A3500004A0C0C3700004706083E - 00004201033900004A090B3700004A0B0D3500004307083A00004504063C0000 - 4F0A0D3E0000550A0C4500005501054E00005F01056302046801046C01036F02 - 047002047502057702037901017B02007B02007D02007D02007F01007F01007F - 01008001008200008200008400008400008400008600008400018A0508760000 - 770C0E4E0000520D0A3300004009043700004202013E000054070A450000550A - 0C3C00004307083C000047000342000051070B3E00004F0A0D3A00004706083C - 00004201033900004A0A0A3A00004F0B0C3C00004C06074300004301023B0000 - 4C0C0C3A00004F0C0B4300005B05055D00006F02047801027F00028200018200 - 008200008001007D01017B03046800006807094900004F0C0B3500004207053F - 00005000015E00016F00047A02037F0002810000820000830101800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003500003F070633000046 - 0A0A3900004A08093D00004500034100004904073A00004A090B35000043090A - 3300003B020338000142050935000048090B3A00004B06094100004C00025300 - 035700035D00036100026401036602026A02036F01017901017F01007F01007F - 01007F01007F01007F01007F01007F0100800100800100800100800100800100 - 80010082000084000185080A640000630C0A3C0000400A032F00003A06003C00 - 004B050543000056070A4200004C08093600003E02034100004D03073E00004D - 080B3A000049080A3800003E02033A00004206073700004A0A0A3A00004C0809 - 3D00004501023E00004705063900004C0A0B3C00005107074C00006000016F02 - 047801027F00028200018200008001008001007D01017900007704075700005A - 08073C00004409073500004100004F00005D00016E00047801027F0002810000 - 8200008301018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02043603013300003F07063500004707073D0000490205460000480002410000 - 49030939000043060A3300003B04073400023500043200003C04093200004306 - 0A3900004603064500004900004C00005100005500005A00005D000160000168 - 00017B01018400008400008200008200008001008001007F01007F01007D0200 - 7D02007D02007B02007B02007B02007D02008301027A00007009065000004708 - 003000003608003405003D03003F00005004054300004E05073B00003E050439 - 00004200024100004B03093C000047050A3800004004053900003B0102360000 - 4206063500004507073A00004503044000004100003D00004808083C00004A07 - 064200005401005900006D02047601027D00028000018200008001008001007F - 00018003057100006904064B00004D07073700004005033D00004C00005C0000 - 6D00037801027F00027F00008200008301018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00003701003802013800004002023F0000450102 - 4400004700014700014600024100014300053C00013C01053800023700033900 - 043B01063700023D02063800013E01053C00004100014300004700004B000051 - 00005600005B00005F00006800007D0101860000860001840000820001820000 - 8000018001007F00017D02007D01017B02007901017803007901017802017600 - 007103035F02005206003D00003703003102003606003A020041020041000047 - 01013F00003E02023600003901004000014600044100014300053F0001420005 - 3D00003C00013C00013D01023A00004002023E00004202024000004100003F00 - 004202023E00004205033D00004600004C00005700006903047201047B00027F - 00018200018200008000017F0001800305780306630000560302450000420503 - 3A01003E01004A00005800026900037601047D00028100008400018501018200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302043C00013B0000 - 4001033E00004201033F00004200024100014100014000004300033E00004201 - 033C00003F00023E00014100034200024300053E00014000053C00003F000240 - 00014501024900025000015400005A00006200016800047302067F0002840001 - 8400028400018200028200018000028000017F00027D01017D00027B01017B00 - 027901017B00027202025D01005202014C02004502003F02003A020039020036 - 01003B04013B04013A03003A03003803003303003203003502003F0000420000 - 4200004200004200004200004200004000004300034100014401044200004601 - 044100004400024200004000003B00003C03013600003C03013C00004601004F - 00006205046D02047601047D00028000028200018200028000017C0001720000 - 6804025400004A03003B00003B02003C01004400005300026502047302057D00 - 028500008A000089000184000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004200024400024B01073F00004A - 05083900004405073A00004101014501024C02025300025A0002600001680002 - 6E00057800058000048400028400028200028200028200028000028000027F00 - 027F00027D00027D00027B00027B00027B00027002045700004C00014B000049 - 00004800004500004300004000004302014202013F02003D02003B02003A0100 - 3A01003C01004101014200014200024200014400024400014400024400014500 - 034A06074000004C08093E00004A060740000043010240000043060437000042 - 09073400004508044200005000006205046D02047601047D0004800002820002 - 8400028000027B00007706046200006009054100004306023600003C03014200 - 005101026302047103057D00048500018C00008D000184000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073F - 00004700033F00004C070A3A00004A0A0A390000460606410000480000500203 - 5B02056201036900036F00027700047B00058000048200028200028200028200 - 028000028000028000027F00027F00027D00027D00027B00027B00027B000276 - 01046600006000006000005D00005C00005A0000580000560000580000560000 - 5300005200005200004F00004F00004B00004200003F00003F00003F00003F00 - 003F00003F00003F00004204043A0000480A0A370000490B0B3700004406063F - 00004701014100004C09083A00004B0B073E00005005035100006604046F0204 - 7801027F0002820002840002820002800002800102720000740A09510000540A - 083900004007053B00004200005101026103047103057D00048500018C00008B - 0001840001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004300034100004A06073A00004D0B0C3900004A0A09 - 3A00004701014B00005502016104056A03067302067700037E00048000048200 - 028200018200028200018200028000018000028000018000027F00017F00027D - 01017D00027B01017D00027901027500037300037300047200026F00026F0001 - 6D00026B00006B00036901026600026501016400016400006400015E00015100 - 004B00004B00004A00004B00004A00004A00004A00004600004F080540000053 - 0C09400000510A074000004B01014D000056030545000055090A430000550806 - 4A00005B00006B03047401047B00028000028200028400028200028200027D00 - 008208086400006B0E0B4500004B0B0736000040050342000051010261030470 - 03057B00048300018A00008B0001840001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E00004301023A0000 - 4A0A093900004C0C0B3A00004A07044700005100005C02016905057305077B02 - 0680010386000486000284000184000084000182000082000182000082000180 - 01008000017F01007F00017F01007F00017D02007F00017F0001810204810003 - 8000058001038000057D00027B00047901027A01057902037800047601027500 - 037301017300037100036D020469030469020568040469020568040468030566 - 0404630204590000680A0B530000690B0C5300006305065A0000610002570000 - 6508094E0000630B0B5000006306056100007002047800047F00028200028400 - 028400028200018200018601037900007C0C0C5500005C0C0B3E00004609073E - 01004400005101026103047003057B0004830001880000890001840001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023C00004407053700004A0B073900004A0A063F00004E01005500 - 005F02016C04057604048102048400028B00028C000287000084000086000084 - 0000840000840000840000820000820000820000800100800100800100800100 - 8001008001008400018400028200028200028200028200028000027F00028102 - 047F02047F02047E01037C01037B00027B00027B00027E01037E01037E00057C - 01037C01057C01037C01057A02037700037D08096E00007F0D0D6A00007C0A0A - 6C00007302056D000274060A620000710C0E5B0000700B0D6400007103057800 - 047D00028200028600028400028400028000018200018400008707086B000070 - 0C0A4A00005009063B0000440403440000510102610304700305790004810001 - 8600008700018200018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003D02003800004208033700004708 - 043D00004B04004D00005801006302006F03027903028200018700018F000190 - 0002890000860000870000860000860000860000860000840000840000840000 - 8400008400008400008400008400008200008100007F00007F00007F00007E00 - 007E00007E00007C00007E02027C02027C02027B01017B01017B01017A00007F - 00008800008C00008C00018A00008A00018800008800018600008A0206820000 - 8C070A7F00008A070A7D00008603067F00017D02067500027A060B6C00007609 - 0B6A00007605087700037D000282000286000287000186000184000180000182 - 00018901038100007E07086000005C0606440000460504410100440000510102 - 6103046E03057800047F00018500008600018200018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003C01 - 003B03003A00004003003E00004503004800004E00005A01006302006F020079 - 01018100008600008D00018E0002890000870000870000870000870000870000 - 8600008600008600008600008600008600008600008600008600008400008000 - 017F00017F00017F00017D01017D01017D01017E02027D01017D01017D01017C - 00007C00007B00007B00008000008C00029100029000029000028E00028E0002 - 8C00028C00028900018800028500008801038300008500028300008300018000 - 027F00057900017A00067200007601047600017C000182000286000289000189 - 00018700018400018000018200018900018902047700006B04025300004C0200 - 4100004303024400005101026103046E03057800047E00018300008600018200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003901003E04003C00004204004100004A01004E - 00005A0300620100710603770100830405830000890001860000870000850000 - 8500008400008400008500008500008600008600008600008600008600008700 - 008700008700008400008000017D01017D01017D01017D01017D01017F00017F - 00017F00017F00017F00017F00017F00017F00017F0001800001860103870002 - 8400018300008100008100008100007F00008000017F00017F00017D01017D01 - 017B01017D01017F00028200028200028000027E00037A00037A00037D000280 - 00028600028900018B00018B00018700008400007F0100800100890001850000 - 7C04056700005802024700004100003E00004701014E00015C00006800017601 - 047F020483010284000182000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900003E060136000045 - 08043900004907024300004D00005400006205026400007A0B09730000840808 - 7F00008301028301028001008100008100008100008100008200018301018100 - 008100008100008100008300008300008300008100007E00007E00007E00007E - 00007D00007D00007E00007E00007F00007F0000810000810000810000810000 - 8300008100008101028001027F00017E00007B00007B00007C00007C00007C02 - 027C02027C02027A02027A02027A02027A02027E020284000486000482000480 - 00047D00047E01038001038300038700018B00018D00018B0001870000820000 - 7F01008001008600008B0406740000710A084F00004D06033C00004101004502 - 014E00015900006600017401047D020481010282000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003E0301340000450A083700004A0B073A00004B0603470000520100510000 - 6909095E00007A0E0D6A00007D08097600007801027802017800017800007800 - 017800007901027901017B00027B01017B00027B01017D00027D01017D00027D - 00027E00017F00017F00017F0001810001810001830001830001860002860002 - 8700028700028700028700028900028600028101027E02027D01017C00007C00 - 007C00007C00007C00007E02027E02027E02027C02027C02027C02027C020280 - 01028200048400048000027F00027D00027D00027F00028200018700018B0001 - 8D00008B00008600008200007F01007F0100890204800000800B0C5D00005F0C - 0B3E00004606053D00004502014B00005700006501017201047D020481010282 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004001033A00004308063500004A0D0B3700004A0B07 - 3C00004702004700005607044C0000670D0C5300006D0C095F00006A03016B00 - 026B01006A00016A00006C00016C00006D00026D010071030571030371030573 - 03037302057303037302057702037A01057C01037C01057E01037E0005810204 - 8201068201048200048200028400048400028600048600028600048400028001 - 037E02027D00027C00007C00017D01017D00027E02027E00017E00007E00017E - 00007E00017E00007E00017F00017F00017F00037C00017A0001790000790000 - 7D00008000008700018B00018B00008900008600008001007D02007F01008300 - 008808096B000071100D4900004E0B083700004106044201004B000057000064 - 00007201047A0203810102810000800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000400103370000 - 480A0A3700004A0C0C3900004707063F0000480202410000550A084500005D0B - 0A4A00005A04045200005A00005A00005B00005B00005B00005B00005D00005D - 00006201036202026201036402026401036402026401036701026B00036D0002 - 6E00046F01037201057201047501067702057800057800047900057B00047D00 - 057D00047D00057D00047C01057B00027B00047A00017D00047D000280000580 - 01037F00037F00018100038100018300038300018300038100017F00027B0002 - 7901027801027700017800017C00007F00008600008900008B00008900008601 - 008002007D02007D02008503047700007A0C0C5300005A0D0B3A0000430A083B - 02004101004A00005400006200007100037A0203800001810000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E0000440507370000480A0A3700004709093800004202013F00 - 004706053C00004E09063E00004D06034200004800004B00004B00004C00004C - 00004C00004C00004F00004F0000510000510000520000520000520000520000 - 5400005600005800005A00005A00005B00005D00006000016000016200016601 - 036700036900036B00036D00036D00036E00036E00036E00036E00026E00026F - 00017000027300037300037601047901057A01057C01057C01057E00057E0005 - 7E00057E00057901027601027503037503037503037803047B03038102038400 - 008700008900008900008401008002007B03007B03007D000080060665000067 - 0C08430000490A063500003E07043F0200470000540000620000710003790102 - 7F00018100008000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100043C00004604093700004506 - 083600004004053B00003E02023900004407053700004407053700004303023E - 00004101004101004000003F0000400000410000440001440100450000450000 - 4700004700004900004900004900004700004200004200004300004600004700 - 004A00004B00004E000151010253000254000256000258000258000258000258 - 00005700005700005700005900005900005C00005E0001610002640103660103 - 6700036900036B00036B00036B00036D00026E00006F00006D00006E00007003 - 017304027903027F03038400008700008900008700008401008002007B03007B - 03007D01017200006E07055200004F05033700003C07043904013E0100470000 - 5400006100006F01037901027F00018000008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 034100043F00014300033E00004201033D00003E00003C00003B02003800003B - 04013800003E05033B02003E05033E03013D02003B02003A01003A01003D0101 - 3D01014002024202024301024500034501024501024501024301024202023900 - 003800003A00003B00003E01003F020042020143020143000045000045000047 - 00004900004900004A00004900004800004800004700004700004900004A0000 - 4D00005000005200015300005500015700005700015900005900015B00005B00 - 005D00005C00005E00005F00006302006901026E020174020278010278010278 - 01027602017203016F04016F04016D00006C01035E00005401004300003E0100 - 3801003C05023E01004700005200006100007000007B01018300008400008200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000013E00013F000043000343000049000345000046000143 - 00004000003B00003B04013501003B04003700003B03003C02004004003E0200 - 3F05003800003B03023600003A00013A00004100014200004700054300004701 - 023F00004101003E01003D01013C00003F03033B00004204043D000041030341 - 0101410101400000430102410000460203410000470102430000460203440100 - 4703044200004602034200004701024500004700004600004B00024700004B00 - 024800004B00014A00004900004600004900024500004B00024700004B00014C - 00004E00004F00005200014E00005200014C00004F0000500000510000500000 - 5200024800004900033F00003F00023E00004301024600005300005D00007302 - 007D00008C00018C000084000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F00023D00004203053D00004E - 04084300005003064500004600013F00004005033300003E0A043000003F0803 - 3800003F0300410100450700370000420A053300003F07063600003E02033F00 - 024701073F00004C05083C00004705063A00003F02003E00004305053A000046 - 08083900004507073C00004103033D00004303033900004606063A0000460405 - 3C00004000003F00004204043800004507073700004305053B00004101013F00 - 004404043B00004806073A00004705063D00004101013D000040040536000043 - 07083500004206073A00003F00023D0000420305380000450608370000440507 - 3C00004200024400004B01054100004C05083C00004704093C00003F00024000 - 004903034A00006405026800008506058900008E000086000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00004001033800004A070A3E000053080A4300004F0406430000420201360000 - 420B06300000430C073300004407033F00004404003C0000480C06350000450E - 0B3200004108093A00014000053A00004A070A3A00004A0A0A3700004207053A - 00004303033C00004A0A0A3900004B0B0B3900004707073F00004101013A0000 - 4808083900004A0A0A3900004505053D00003E0202360000440808350000460A - 0A3500004206063A00003E0202360000450909350000460A0A3500004206063A - 00003C020334000043090A330000440A0B3300004206073A00003E0203360000 - 45090A350000460A0B3500004206073C00004202023B00004A070A3A00004A09 - 0B3700004206073800004004043C0000530806500000740B087000008C070485 - 0000840001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004001033C00004506083A0000510A0D42000053080A - 4000004501023E0000430806320000450E09330000480B073A00004503004300 - 004C08013A00004D0F09350000460D0B3500003E04053A000145050A3700004A - 0B0D370000460A0A3500004003013F00004C06073E0000510B0C3E00004D090A - 3C00004301024000004907083A00004E0C0D3A00004C0A0B3B00004404043C00 - 00440808350000490D0D350000460D0C3500003F060538000041080733000045 - 0D0C320000430B0A3200003B0302380000430708350000480C0D350000440A0B - 3300003C0203380000410708330000460C0D330000430A0B3300003C03023A00 - 004507073700004A0B0D370000460A0B3200003B02033800004508063E00005F - 0D085700007C0E0A780000840300820001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C0000400103370000 - 4B080B3E0000530A0C4200004E0507410000420201350000440C073300004A0D - 093A00004C07044700004D0300440000520B073E00004E0D0C3700004607093A - 00003E0203350000460A0B350000480C0C3500004308063E00004A0202440000 - 54080943000055090A4200004E04044300004A0202410000500A0A3E0000500D - 0C3C00004B08073F0000430302370000490C0A3700004B0E0C3500004409073A - 00003C0301330000430C09320000450E0B3000003E09063700003E0202370000 - 480A0A3700004A0C0C3500004307073A00003C0302330000430B0A320000450D - 0C3000004008073700003C0302330000460A0A330000460C0D3200003E080835 - 00003B05043400004B0B074500006A0F0A6200007F0A057A0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004001033C00004405073A00004F080B4000005007093F00004301023C00 - 00420705350000480B073A00004E09064400005001005200005907024A000058 - 0B084200004E08083E00004201033C0000420607350000460A0A370000470A08 - 3A00004701015100005B04074C00005F080B4A00005A06084A00004F00004B00 - 005103044500005408094300005107074300004A00004500004B05053E00004E - 08083E00004A07063A00004100003E0000460605370000460B09350000450A08 - 3600004003013F00004905063E00004D090A3C00004A08093B00004202023C00 - 00440606350000440B0A330000430A093400003C030138000040070535000046 - 0A0A35000043090A3300003903023702004008033A0000560C06520000710D08 - 6E00007D05007F00018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003F00023A00004704073E00004E05 - 074100004703044000003F02003800004208033900004C070444000054020154 - 00006205025F01006508055500005D07074D00004F02054500004200023A0000 - 4406063700004707073D00004B03034D00006204056300006A07095C00006706 - 085900006002035A00005C00005500005D05054E00005C06064D000057040352 - 00005603025100005906054B00005705044800004E01004900004B0000460000 - 4F05034000004E07043F00004904014600004B00004800005404054500005105 - 064300004D03034600004600004100004906053A00004807063A00004404033F - 00004101003C00004707033A00004807063A00004204043B00003F04023B0000 - 4B0603470000650A066300007608047701007F00018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000013E00 - 013F00023F00004500034300004701024000004000003E01003D02003C000043 - 03004700005000005400005C00006D06047007046C02016A05036100005F0203 - 5200014F00034500014200023E00004301024300004C00014F00005700006E03 - 067504086F00047203076C00026F010569000168000267000368030564000167 - 04066000016403055F01026302046904066A0507660103670406600000610002 - 5B00005B00005900005800005300005500005100005300005000005100005500 - 005800005500005900015300005500015000005100005000004F00004A00004C - 00014800004B01014800004700004700004801004700004B01004700004B0101 - 4600004500004401004702004800005503005E00006E05027302007902007F00 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000013E00013D00004300034100004501024100004200013E - 00003D02003B0000420300430000510402560000630506690304730200790302 - 7902037500017201056C03066200065400014B00014400004501024500005103 - 045600006205066902057800047D00047B00047B000479000479000478000476 - 01047401047201047201047002046F02046F02046D0204700204760104780004 - 7800047601047601047401047201047002046F02046D02046D02046B03046903 - 046903046903046903046C05086D04076902056700036400015F00005C00005B - 00005C00005B0000590000570000570000550000550000530000550200550200 - 5601005500005600005300005000004F00004F00005100005400005B00006500 - 007001007902007E03017F000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023D00004203053B000048 - 05083C00004705063C00003F01013B00004005033A00004E07044B0000610707 - 6300007204067800008002018101027E00017B00047501066900055A00014D00 - 004D02044100005006064C00006406076400007603067F000484000284000482 - 00028200048000028000047F00027D00047B0002790004790102780004780102 - 7601047901028000048400028200048200028000048000027F00047D00027B00 - 0479010279000478010276010476010276010476010475020575020574000571 - 00037000036D00016C00026900006B0003690102670003670102660103660202 - 6401036202026104016003006203006301016400006300006100025E00015D00 - 025D00005F00006400006D00007600007F010080010080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004001033800004A070A3A00004B090A3A00004406063A00003C0301360000 - 4A0A064200005F090958000072070A7500037E00008501018700028300018200 - 047C00066E00055D00005300024400005008084300006109095C00007706097A - 0003840002870001870002870001870002860001860002840001820002800001 - 8000027F00017F00027F00017D00028000018700028B00018900028900018900 - 028700018700028600018400028200018200028000018000028000017F00027F - 00027D00027B00027C01057C01037C01057B03047B02067A0304770205750303 - 7502057303037302057303037103057004036F06036F06037005027002027201 - 047100036E00036D00036B00036900036A00016D00007600007C000084000086 - 0000820001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033C00004706083900004D0A0D3A00004A0A0A - 3700003E02023800004508063C0000570C0A5000006F0A0C6800007C03077F00 - 008701018800028600008600047E00057000055F00004E000050050740000057 - 0B0C50000070090C6E0000830205860001890001870001870001870001870001 - 8700018600018400018400018200018200018200018200018000018400018900 - 018D00018B00018B00018B00018B000189000189000187000186000186000186 - 0001860001860001840001840001820002800002810003800103820104810204 - 8203058003057C00017A00017A00017800017A00017800017800017701007706 - 037706037A04037B03037C01037C01057B000578000577010674000574010477 - 00037A00017F0000870001870000820001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0C0C3700004307073800003D04023700004D0A07450000670A - 0B5E00007A060B7900027F00008501018700028500008400047E00056E00055B - 00004F01023E00004D0A09420000630B0B5E00007E060A7E0000840001860000 - 8600008600008600008600008600008400008400008400008400008400008200 - 0082000082000084000086000087000087000087000087000087000086000086 - 0000860000840000840000840000840000840000840000840001830003830003 - 8300038100038300038000028000028000027F00017F00017F00017E00017F00 - 017E00017E00017C00007B04027B05007E03018101028300038300058200057F - 00057D01077B01077A01057B00047F0002840001870001880002820001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B3900004709093600003C03023800 - 004407053C000059090853000072070A7100008002077E000081030085000283 - 00008200047C01056D00035A0000470000460605390000520B084C00006E0809 - 7200008302058200018200008200008200008200008200008200008200008200 - 0082000082000082000082000080010082000082000082000082000082000082 - 0000820000820000800100800100800100800100820000820000820000820000 - 8200008200008402038300038300038200028100018100018000008000008300 - 038300038300038300038300038300038300038101027D02007D020082000084 - 00008700028700028600048200058200077E00067E00057D0004800002840002 - 8A00028800028200018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004507 - 073600003E05043800003B04013800004B06034800006504066600007C02087E - 00037C01007E03008101027F00007F0004790105690003560000470101380000 - 4208033B00005A07055F00007B04057E00017F00017D02007D02007D02007D02 - 007D02007F01007F01007F01007F01008001008001008001007F01008001007F - 01007B02007902007902007902007B02007B02007B02007B02007B02007B0200 - 7D02007D02007D02007D02007D02007F01008001028101028101028000018000 - 0180000181000081000083010283010285000285000285000285000285000283 - 01027E00007E01008300008600008900028900028700048400048300067F0005 - 7D00047E00038000028400028800028901038200018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004002023900003A01003A01003F020043000053 - 01005C00006E00047700037E01037A01007C03018001027F00007F0004790105 - 6700035400004300003B02003800004404005000006703037600028001037D01 - 017D02007D02007D02007D02007D02007D02007D02007F01007F01007F01007F - 01007F01007F01007F01007D0200790200780300790200790200790200790200 - 7902007902007B02007B02007B02007B02007D02007D02007D02007D02007F00 - 017F000181010281010281010281010283010284020382000182000182000182 - 00018400018200018400018200017F00007F0000840000860001870001870002 - 8600028400048200047F00037E00037E00017F00018200028700028801038200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000003F00004301023F00004300033E00003F00023C - 00013B00003E00004802024B00005D00006900007A02067A00017A01007E0301 - 8101028100008000047A01056900035600004400003C01003F04024000005600 - 006700007D02068100018000017F00017F00017F00017F00017F00017F00017F - 00018000018000018000018000018000018000018000017F00017F00017D0101 - 7F00017F00017F00017F00017F00017F00017F00017F00017F00017F00017F00 - 017F00017F00017F000180000180000180000180000180000180000180000180 - 0001800001800001800001800001820001800001820001800001800001800001 - 8200018200018200018200018200018200028000028000028000028000018000 - 0180000182000182000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013F00004404033B000048 - 06073A00004605073C00003F00043A0000460606410000540403540000710608 - 7300007C02027A00007E03018301028100008200047A01056B00055600004500 - 004407053800004906054F00006F06097A000183000382000280000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004202023A00004A08093A00004B080B3900004604093C00013D01023C0000 - 4F090A4700006507086300007C07087800007A00007E03018301028100008200 - 047A01056B00055600004800003A0000460B093C000060080861000083050A7F - 0000820002800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004707063A00004D0B0C3A00004A090B - 3900004000053900004808083E0000590908530000750A0C7000007D03037A00 - 007E03018301028100008200047A01056B00055600004400004609073500004E - 0B0A4E0000730A0D770000840104820002800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420202390000 - 4B090A3A00004D0A0D39000047050A3C00013D01023B0000510B0C4700006709 - 0A6100007E090A7800007A00007E03018301028100008200047A01056B000556 - 0000480000390000480D0B3C0000620A0A5F000085070C7F0000820002800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023E00004606053A00004B090A3A000049080A3A00004000053900 - 004707073E000057070653000074090B7100007C02027A00007E030183010281 - 00008200047A01056B00055600004400004508063500004C09084E000072090C - 7800008300038200028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004101013C00004705063A00004805 - 083A00004402073D00023C00013E00004C06074700006103046500007B060779 - 00007A00007E03018301028100008200047A01056B00055600004700003C0000 - 4308063C00005C04046300008204098000008200028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101003F00004301023F00004201033F00023E00033A00004303034400004F - 00005800006D02047500017B01017A00007E03018301028100008200047A0105 - 6B00055600004500004104023B00004401005300006B02057C00038200028200 - 0280000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000004000003F00004301023F00004300033E00004100043E - 00033B00004000004802034B00005D00006900007803047A00007A00007E0301 - 8301028100008200047A01056B00055600004600003E01003F04024000005800 - 006700017F010681000182000280000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013F00004404033B000048 - 06073A00004605073C00003F00043A0000460606410000540403540000710608 - 7300007C02027A00007E03018301028100008200047A01056B00055600004500 - 004407053800004906054F00006F06097A000183000382000280000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004202023A00004A08093A00004B080B3900004604093C00013D01023C0000 - 4F090A4700006507086300007C07087800007A00007E03018301028100008200 - 047A01056B00055600004800003A0000460B093C000060080861000083050A7F - 0000820002800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004707063A00004D0B0C3A00004A090B - 3900004000053900004808083E0000590908530000750A0C7000007D03037A00 - 007E03018301028100008200047A01056B00055600004400004609073500004E - 0B0A4E0000730A0D770000840104820002800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420202390000 - 4B090A3A00004D0A0D39000047050A3C00013D01023B0000510B0C4700006709 - 0A6100007E090A7800007A00007E03018301028100008200047A01056B000556 - 0000480000390000480D0B3C0000620A0A5F000085070C7F0000820002800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023E00004606053A00004B090A3A000049080A3A00004000053900 - 004707073E000057070653000074090B7100007C02027A00007E030183010281 - 00008200047A01056B00055600004400004508063500004C09084E000072090C - 7800008300038200028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004101013C00004705063A00004805 - 083A00004402073D00023C00013E00004C06074700006103046500007B060779 - 00007A00007E03018301028100008200047A01056B00055600004700003C0000 - 4308063C00005C04046300008204098000008200028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101003F00004301023F00004201033F00023E00033A00004303034400004F - 00005800006D02047500017B01017A00007E03018301028100008200047A0105 - 6B00055800004500004104023B00004401005100006B02057A00038200028000 - 0280000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017D01017D01017F00018000018300008500028301027E - 00007B01017703026E01005D00004700003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000004000003F00004301023F00004300033E00004100043E - 00033B00004000004802034B00005D00006900007803047A00007800007C0100 - 8100008200018300057800036800025700004600003E01003F04024000005600 - 006700017D020681000180000280000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000017F00017F00017D01017F00017F - 00017F00017F00017F00017D01017D01017B01017901016D03024F0003420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013F00004404033B000048 - 06073A00004605073C00003F00043A0000460606410000540403540000710608 - 7300007C02027800007A01008100008400018300057A00036B00035A00004700 - 004606053A00004906054D00006D060976000183000380000280000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00017F00017F00017D01017D01017D01017D01017D01017D01017D01017F0001 - 7F00017002024900003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004202023A00004A08093A00004B080B3900004604093C00013D01023C0000 - 4F090A4700006507086300007C07087800007901017A01008100008400018300 - 057A00036B00035B00014A00003C0000480B093C00005C09085F00007F060A7D - 0000800002800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000017F00017F00017F00017F00017F00017F0001 - 7F00017F00017F00018000018000017202025201044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004707063A00004D0B0C3A00004A090B - 3900004000053900004808083E0000590908530000750A0C7000007D03037901 - 017A01008100008300008200047B00046C00045C00024600004808073700004E - 0B0A4A0000700B0D720000820104800002800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000017F00017F0001 - 7F00017F00018000017F00018000018000018000018000018000017202024B00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420202390000 - 4B090A3A00004D0A0D39000047050A3C00013D01023B0000510B0C4700006709 - 0A6100007E090A7800007A02027A01008000008300008400047D00046F00065E - 00044A00003B00004A0D0B3C00005D0B0A5C00007E090C7C0000800002800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000017F00017F0001 - 8000018000018000018000018000018000018200018000018200018200018200 - 018200018200017402025100034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023E00004606053A00004B090A3A000049080A3A00004000053900 - 004707073E000057070653000074090B7100007C02027A02027D020080000083 - 00008400047E00057000076001054700004707063700004C09084900006D0A0C - 6F00007E01037F00028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000017F00017F00018000018000018000018000018200018200018200 - 018200018200018200018200018200018200017402024A00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004101013C00004705063A00004805 - 083A00004402073D00023C00013E00004C06074700006103046500007B060779 - 00007A02027D02008000008500008600048000057301086102064A00003F0000 - 4508063C00005705045C00007706097900007F00028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000017F00017F00018000018000018200 - 0182000184000184000184000184000184000184000182000182000182000174 - 02025302054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101003F00004301023F00004201033F00023E00033A00004303034400004F - 00005800006D02047500017B01017B03037D0200800000840000860004810005 - 7301086403074A00004403023D00004201004C00006403057100037B00027F00 - 0280000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000017F00 - 017F000180000180000182000182000184000184000186000186000184000182 - 00018200018000018000017202024B00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000004000003F00004301023F00004300033E00004100043E - 00033B00004000004802034B00005D00006900007803047A00007901017D0200 - 8200018600018700048000047400076602074D00004200004104023E00005000 - 005900006F01037901027F000280000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000017F00017F000180000182000184000184000186000186 - 00018500008600018500028402038202038102037E0202700403510003420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013F00004404033B000048 - 06073A00004605073C00003F00043A0000460606410000540403540000710608 - 7300007C02027901017D02008200018600018700048200047600076602074D00 - 004704033900004807064500006003046900007A03047D000280000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000017F000180000182000182 - 00018400018400018600018600018700028500028200018000017D01017C0202 - 7A02026C05034700003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004202023A00004A08093A00004B080B3900004604093C00013D01023C0000 - 4F090A4700006507086300007C07087800007901017D02008200018600018700 - 048200047600076802075200013E0000470A083A000056090750000070050775 - 00017D0002800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001820001840001860001860001870001860001880103830102 - 8000017C00007800007602017203016905034E01044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004707063A00004D0B0C3A00004A090B - 3900004000053900004808083E0000590908530000750A0C7000007D03037901 - 017D02008200018700018900048400047800076802074E00004C06063900004D - 0C0B4300006109096200007904057D0002800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001820001840001840001860001860001 - 8700018600018400018000017E02027A02027403016F02006B02005F02004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420202390000 - 4B090A3A00004D0A0D39000047050A3C00013D01023B0000510B0C4700006709 - 0A6100007E090A7800007901017D020084000187000189000484000478000769 - 02075400023F00004B0B0A3A0000550A084E00006F07087200007D0002800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001820001 - 8400018600018700018700018600018600017F00007E00007B03037905047205 - 036A03006300005700004A01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023E00004606053A00004B090A3A000049080A3A00004000053900 - 004707073E000057070653000074090B7100007C02027901017D020084000187 - 00018900048400047900076902074F00004B05053900004A0A094300005F0707 - 6100007705057D00028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018400018600018600018700018700018600018400017E00 - 007C00007A04037506046E05026502005D00005100004300003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004101013C00004705063A00004805 - 083A00004402073D00023C00013E00004C06074700006103046500007B060779 - 00007901017D02008400018700018900048400047900076B0107530001420000 - 4606053900005005035100006A04057301017D00028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018400018600018600018700 - 018700018600018400018101027C02027403016E03006602005F010058000050 - 00004A04054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101003F00004301023F00004201033F00023E00033A00004303034600004F - 00005800006D02047700017B00027B01017F0001840001860001860002820004 - 7D00056F01075100004701023F00004202014400005401006700007702037D01 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001820001820001820001820001800001800001 - 7F00017F00017F00017F00017F00017F00017F00017F00017F00018000018200 - 018200018400018400018600018600018400018000018006067803046D010063 - 00005A00005200004E02004C03004000003F00004100014401044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000003E00003F00004301023F00004300033E00004100043E - 00033D00004000004A01034D00005F00006900007A03047C00017F0002800002 - 8400018200007B02007B01018200027800055400014200004301063B00004202 - 014D00006E03007D02007F000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001820001860002870002 - 8600018400018200017F00017D01017B01017B02007902007902007B02007B02 - 007D02007D02007F01007D00007F00008200008301018301028101028001037B - 00027604046B00026303035200004B01003F00003E04003D0200440203450102 - 4300004000003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013D00004205033B000048 - 06073A00004605073C00003F00043C0000470506430000560403560000730608 - 7500007E01037F00048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018200018600028600028400018200018000017F00017D01017B01017B02 - 007B02007B02007B02007D02007F01007F020080020082000082000081020180 - 01027E02027802017301016D01006602026307064D00005107053A0000420705 - 3600003C05023B00003E00004000004402034201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004002023800004A08093A00004B080B3900004604093C00013F00023D0000 - 51080A4900006706086500007E07087A00007F00048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000017F00017F00017F00 - 017F00017F00017F00017F000180000180010082000082000084000084000086 - 00008B00038901038402037E01037402026902005F0201570200520503440000 - 4F09093C00004A09083A00004806074100004204043E02023C00003900003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023C00004508063A00004D0B0C3A00004A090B - 3700004000053B00004808084000005B0908550000750A0C7000007F02047F00 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000017F00017B01 - 017B01017B01017D01017F000180000182000184000184000186000186000086 - 00008600008600008600008700018C01048901058102047702036A02035D0100 - 5001004601003F0000430904350000490C0A3A00004D0A094100004703043900 - 003500003701003A04034201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000400202370000 - 4B090A3A00004D0A0D39000045050A3A00013D01023B0000530A0C4700006709 - 0A6100007E090A7800007F00048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000017D01017802017602017802017B01017F000182000186000187 - 00018900018B00018B00018900018900018700018700018600018400067E0005 - 7702056C01035F01025301004601003D00003B0401300000420A09330000490B - 0B3A00004C05084200003C04033704013502003200003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023C00004606053A00004B090A3A000049080A3800003E01053900 - 004507073E0000570706520000720A0B6F00007C01037F00048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000017D01017802017602017802017B - 01018000018400018700018B00018D00018D00018B0001890001870001860001 - 8400027D00027200036B00036500045E01025400024C00014300003D00003700 - 003E0704320000440B0A3500004709093B00004002023600003500003702003A - 05024100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004101013C00004705063A00004805 - 083A00004202073B00023A00013C00004C06074500005E040461000079070777 - 00007F00048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018000018000018000017F - 00017901017802017B01017F00018400018700018B00018D00018D00028B0002 - 8900028600028000027D00027B00047002045800004F00005000024E00014E00 - 024B00014900004600004701023E00004706083600004208093400003B050537 - 00004106044304004102003D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101003F00004301023F00004201033D00023C00033800003F03034200004D - 00005500006804047101017901027F00048000028400017F0100760400780300 - 8400017B00045300014300053F00034000053900004D03006E00008103008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017D01017D0101800001840001870001890001 - 8B00018B00018900028600028200027D00027800047201046F02046204054700 - 003E00004000004300004800014A00014A00004A00004A00014A010343000144 - 03053B00003C03043300003901004200004800004C00004F02004000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000004000003F00004301023F00004300033E00003F00043C - 00033C02033C00004503044800005800006000007002027902037D0004800002 - 8400017F01007604007803008400017B00045400024000024300073B00003E03 - 0149000071030080020080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001820001840000860000 - 8700018900018800008800008700008400008200047C00037B03076F01036B04 - 075E00005800004B00004000003900003E02033C000043000343000048000149 - 00004900024700004701024000004202023B00003C00004000005000005B0000 - 6101016303033F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013F00004404033B000048 - 06073A00004605073A00003B00043900013F06053C00005107054D0000660404 - 6A00007904057D00048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018200018900008A00008900008900008700008600008400028100037900 - 047605086600006706085100005705044700004901013F000040040538000045 - 06083700004406063C00004101014200014804053E00004B03034200004F0505 - 4800005602046200006A00006E00027002024201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004301023B00004C08093C00004B080B3900004205093800013C0304360000 - 4A0A0A4000005C09085600007107067601027D00048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018400018B00008C00008B00008700008400 - 008000017D02047904057306086000006508094A00005206073E000048070642 - 00014900034100004E0809390000440B0A3000003B08063101003A0704350000 - 4A07064300005B04075300006C060B6E00047500007900007D00027E02023E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023F00004807063C00004F0B0C3A00004A090B - 3500003C0105380000420908390000540D0A4A0000670A096300007806067D00 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018400018B00 - 008D00008900008400007F00017802016F01016803015F02015F090947000051 - 09093C00004608083600004505054800005504074200004D0B0C3300003D0D09 - 2900003205013101004109043E00005D0A0857000077090B7300008404098000 - 018301028402038402034201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E00004301023A0000 - 4D090A3C00004D0A0D39000043060A3800013D04053400004A0C0C3E00005C0A - 095300007009077301017D00048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018200018600008702008402027E05037504026B02005E000055 - 0000530302440000500A0A3A0000490B0B3500004206073F00004E0002490000 - 53080A3C0000480D0B3000003A0A063101003A0300390000580B085200007A0D - 0F6F00008A070A8500008601038602028602028602023E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023F00004706053C00004D090A3A000049080A3600003B02053800 - 00400807370000500B084900006408076400007606067D00048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018001008200008003007B040274 - 06026A03005D0100500000460000430000460703370000480C0C35000047080A - 3800004200024700005003064000004D0A09390000450B063600004004004300 - 00540802520000720E0C6B0000870B0B80000088000286020283010183010183 - 01014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004200013D00004905063C00004805 - 083A00004003073800023C03043700004507073F00005705045600006D060472 - 02027D00048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018000018000018000017F - 01007C03017803006E02006602005C01005101004700004000003D0300360000 - 4007053400004607093B00004603084000004200013D00004706053C00004C07 - 044300005003014F00005E04035F00007009076A0000800A097800008305047E - 00007F01007F01007F01007F01004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101004100004501023F00004001033B00023C00033D01023F03033C000044 - 04004800005902006A00007A03047D00048000028400017F0100760400780300 - 8400017B00045300014300053F00034000053900004D03006E00008103008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000017F00017F00017F00017F00017F00017F00017F00017F00018000018200 - 018200018200018000018000017F00017F00017F00017F00017F000180000180 - 00018200018200018400017F00017405036A03006100005700004E0000480000 - 4303003F05003A03003904013700003C03023C00004302044200044702054100 - 004202004300004B01004E00005700005900006000006F05047505057400007A - 02027700007E03017B00007E03017D02007C01007E00007C01004000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003C00003D00004501024100004001033A00003F000441 - 00034800024400003D04033600004003004D0000710101800002800004800002 - 8400017F01007604007803008400017B00045400024000024300073B00003E03 - 0149000071030080020080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001820001 - 8200018200018000018000017F00017D01017D01017D01017D01017D01017D01 - 017D01017D01017F00018602028701018400008100007E00007C01007A000079 - 01017C02027B00008001037C00008500038500008C0105810106600000520000 - 5200004A00004902004100003F02003C01003B03023901003C02033700003E02 - 033B00004100044200004700004E00005300005900006302006A030171030378 - 04037901017D01017F00017F00017F00017F00017F00017F00017F00017F0001 - 8000017F00013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008800048200048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018400018200018200018000018000017F00017D01017D01 - 017D01017D01017D01017D01017D01017D01017F000183010185010184000082 - 00008001008001007F00017D01017B000081050578000085080A770000840507 - 7A00007100045400004D03034100004C06063A00004606053A00003D01013800 - 003D03043700004607093800004605073B00004700005000005700005E000064 - 01006B02007203017A02027F0303800001820001820001820001800001800001 - 7F00017F00018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058500018200048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018200018200018200018000 - 018000018000017F00017F00017F00017F00017F00017F00017F00017F00017F - 00017E03018002018102018501018700028800028A00028B00038700037A0000 - 850A0C6B0000770C0E5D00006404045100004C00013F00004C08093A00004A0A - 0A3700004406063C00003C00003700004909093A00004F0B0C3E00004C030548 - 00005801006002006502006902006F02007602017C0202800102800001820001 - 8200018200018000018000017F00017F00018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008901058200 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 0182000182000182000180000180000180000182000182000182000182000182 - 00018200018200018200018000017D02007D02008102018802028B00038D0003 - 8F00038D000385000187080A6A0000740F0D5000005A0B084000004202003F00 - 004707073900004C0C0C370000480A0A3700004202023D00004706053E000055 - 0B0B430000570A084900005702006104016804006C0300700301740301790101 - 7E02028101028200018200018200018200018000017F00017D01017D01018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008200048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000182000182000182000184 - 0001840001840001860001860001860001860001860001840001820001800001 - 8500028801038B00048B00048800038400028204096E0000700A0B4E0000550B - 093700003E0A043300003B0203350000460A0B350000480C0C3700004707063F - 00004903034300005508064900005E08084E00006309085F02006A0602700502 - 7304027703027A02027E02028000018200018200018400018200018200018000 - 017F00017D01017D01018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008901058200048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001820001840001840001860001860001870001870001870001870001870001 - 8700018700018500008600018700028601038300038000027900007300006E01 - 036A08084C00005107053900003E0A042D00003708043300003F060932000044 - 0A0B3500004909093B00004701014B00005506034C00006108045300006B0A07 - 6200006F08057104027504027903027A02027E02028101028200018400018400 - 018400018200018000018000017F00017D01017D01017F000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020385 - 00018200048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00017F00017F0001800001800001820001840001860001870001870001890001 - 8900018900018700018700018700018900018A00018B00028700038001037800 - 046E00026300005900005503024700004906033900004005033300003E07043A - 02013802023300003F06093300004507073B00004B0303490000520000520000 - 6205025E00007009066900007709057403007802017B01017D01017F00018000 - 018200018500028700028600018400018200018000018000017F00017D01017D - 01017F00018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008700038200048000028400017F0100760400780300 - 8400017B00045300014300053F00034000053900004D03006E00008103008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000017F00017F0001800001800001840001840001 - 8600018700018700018700018700018700018600018600018600018600018600 - 018600028001037702056A02035F02015100004800004000003C02003700003C - 03013900004003014000004002023A00013A01043800014001033F0000490101 - 4B00005100005400005E00006600007207037504017B09037903007B03007E00 - 007F00007F000082000184000186000187000287000286000184000182000180 - 00018000017F00017D01017D01017F00018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D0403320000390500490000750001860002820004800002 - 8400017F01007604007803008400017B00045400024000024300073B00003E03 - 0149000071030080020080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000017F00017F0001 - 8000018000018400018400018600018600018801038700028600018300008100 - 007F00007F00007F00017E03057601047204066300005C02024D00004801003E - 00003C01003700003D04033B00004404044300004802034600014102043E0203 - 4100024300004600004A00004E00005600006604046B04027203017603007902 - 007D02007F020080020082000084000184000186000186000186000186000186 - 00018400018400018200018000018000017F00017D01017D01017F0001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008800048200048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000017F00017F00018000018200018400018400018600018600018400 - 018400018200017F00017D01017A02027903027303036400006205045500005C - 06064900004F05034100004201003C00004205033900004808083B00004C0607 - 4400004900024300004300004700004B00004F00005500005C00006200006D03 - 027203017803007B02007F020080020082020084010086000086000186000186 - 00018700018600018600018400018400018200018200018000017F00017F0001 - 7D01017F00018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058500018200048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018200018200018400 - 018400018400018400018000007D00007D01017A020275040272050370050265 - 06034B01003C00004B08073E00005109094200005003064900004C0002450000 - 52060A4000004F080B3C00004603064000004800004C00005000005500005D00 - 016402026903047004037402027802017D02007F010082010084010084010086 - 0100860000870001870001870001860001860001860001840001840001820001 - 8200018000017F00017F00017F00017F00018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008901058200 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018200018200018200018400018400018200018000017E000078000076020171 - 04026E05026805016305005605003A00003A0802320000490C0A3C0000510909 - 4600005300034F000057030747000055080C4000004C070A3900004700035000 - 005700005C00006000006802037004037505057A06057901017D010180010082 - 0000840100840100860100860000870001870001870001860001860001840001 - 8400018200018200018200018000018000017F00017F00017F00017F00018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008200048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018400018400018400018400018200018000017F - 00017B03037605037005026905016004005C04005403004903003C05002C0000 - 400D0B3300004C0C0C3E00005104084A000052000548000056060D4300005208 - 0E3E000048050A4800005C00006500006A00006D01007202027903027D030380 - 0404800001820000840000840000860000860000860000860000860001860001 - 8600018400018400018400018400018200018200018000018000018000018000 - 018000018000018000018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008901058200048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000182000184000184000184000184 - 00018400018200018000017B01017A06057205036905015F03005602004F0100 - 4901004302003B03003F0A07330000460D0C3700004909093B00004400024500 - 014E040842000052050C42000053060D46000057020668030171030075010078 - 03007B0101800102810102850002860000860000860000860000860000860000 - 8600008600008600018400018400018400018400018200018200018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020385 - 00018200048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000182 - 00018400018600018600018600018400018200017F00017901017706046D0401 - 6002005600004D00004601004103004203004802024300004A06073A00004307 - 073400003905053400003A03063700004604093E000052030C4D00015D040E62 - 00067202027903007D02007F0200800100840000860000870000890000890000 - 8900018700018600018600018400018400018400018400018400018200018200 - 018000018000017F00017F00017F00017F00017F000180000180000180000180 - 00018000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008700038200048000028400017F0100760400780300 - 8400017B00045300014300053F00034000053900004D03006E00008103008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018001 - 0080010080010080010082000182000182000182000182000182000182000180 - 00018000018000018000018000018400018400018200018000017D0101790101 - 7403016F03026905035F04005501004C00004600004100004103004305004400 - 004800014100004202023800003B03023600003802013B010242010345000050 - 00025600006300086700077202097800007E0100800100820100840000860000 - 8701018800018700008700008700018600018600018400018200018200018200 - 018200018200018200018000018000017F00017F00017F00017F00017F00017F - 00018000018000018000018000018000018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D0403320000390500490000750001860002820004800002 - 8400017F01007604007803008400017B00045400024000024300073B00003E03 - 0149000071030080020080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018001007F020080020080020082010084000084000086000086 - 00008701018701018500028200018000017F00007E00017E0001830102810102 - 8205077702037307066400005A01004F00004A00004600004702004100004302 - 013F00004201004000003C02033900013C03043900003F03033F00004701014A - 00004F00005800006301016C01037503037902037D00027E00007F0001800100 - 8000018001008200018200018200018200018200018200018200018200018200 - 0182000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008800048200048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018001007F02007F030080020082 - 0100840100860100860000870000880001870101850002840001820001800001 - 7F00027F00027E0000800606720000770B0A5C00005D09044A00004602003F00 - 004006013600004308063700004606063D00004100023701013B060933000042 - 08093A00004D05054A00005600005E0000660000700000790101800201830101 - 8601008500008200018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058500018200048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018000018000018000017F - 01007D02007B03007D02007F0200800100820000840000860000860001860001 - 8400018500028300038100038100037E01037B03046E000076090B5B0000670B - 0A4A00005006043F0000400301340000430A0935000048090B3900004704073F - 00003F030437000048090B3A000052090B4500005805045900006501016B0100 - 7402027A02028103028301018401008300008200018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008901058200 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017B02007903007B03007D02007F0100800100 - 8200008200008400018400018200018200018100038001038001037A02036E00 - 006F0708590000670B0A4A0000550A083F00004404033A000041080633000048 - 0C0C3700004A090B3C00004500033F00004B0407420000570A0D470000610A0D - 5700006604046B03047103037804037B03038103028102018401008400008200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008200048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017B0200790200 - 7B02007D02007D02007F01007F00018000017F00017F00017F00027F00027D00 - 047B00047B000474010468020356000060080849000055090A3E00004808073B - 00003C0302320000440A0B3500004A0B0D3900004A05084500004D00004A0000 - 5D060A4E00006A0C10590000700B0D6B03047204067604047A04037D03037F04 - 0281020182000082000080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008901058200048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000017F00017D02007D02007D02007D02007D02007D01017D01017D01017A00 - 017A00017800017700017200027000026F000168000258000056060745000050 - 08083C00004808073700003E050438000040070635000048090B3900004C070A - 3F00004E00035400006400055800006F090E5E0000750C0F6D000278070A7604 - 047902037A02027C02027E030180020181020181020180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020385 - 00018200048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018200018200018000017F00 - 017D00027B00027901027601047100036E00026A000165000163000060000059 - 00004C00014200004905063900004507073700003F06053A01003B0102380000 - 4405073A00004A05084100004D01055000006701066A00007405096B00007908 - 0C7000007C070A7901057901027901027B01017D01017F00017F000180020181 - 0201800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008700038200048000028400017F0100760400780300 - 8400017B00045300014300053F00034000053900004D03006E00008103008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018200018600 - 018700018600018400018000027D00027901027402026F02046802036402025F - 01025800005400005100004A00004100004002023B00003F03033B00003E0504 - 3A01003E02023E00014100024100004700034700004C00024B00005700007203 - 077D03097900057D04087800037D02067A00037B00027D00027C00017C00007C - 00007E00007F0001800201810302800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D0403320000390500490000750001860002820004800002 - 8400017F01007604007803008400017B00045400024000024300073B00003E03 - 0149000071030080020080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018400018B00028C00018A00018500018200047C010575020571 - 04066500025B00005802024D00004C02024200004300003D00003B0201380000 - 3D04033900004004043B00004103034101014703044701024800004A00004E00 - 0052000058010563020678000580000480000480000480000480000280000280 - 00027F00027F00017F00017F00017F00017F00017F00017F0001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008800048200048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018400018900008C00018A000386 - 00068000057800046E00026500025900005704034600004D07073A0000420705 - 3500003904013600003D05043400004108073800004707074000004901014900 - 004E00005200005500015A00025E01026001056A01047D000484000284000484 - 00028400028200028200028200028200018000018000017F00017F00017F0001 - 7F00017F00018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058500018200048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000182 - 00018500008700048600068100077A00066E00036300005A0000530001440000 - 4C0809370000440C0B2E00003B0A083302003A0403340000450A083700004B0A - 094000005004054E00004F00005600005D00006502046A03066C04056B020571 - 0003800002860001860002860001860001840001840001820001820001800001 - 8000018000018000018000017F00017F00018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008901058200 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000028000047E00057900057400056C0002630000 - 5A00005100004A00004C0606390000470E0D300000410E0C2E00003906043700 - 004308063900004F0C0B4200005909084D00005C00005C00006300006B000270 - 0403740404740404740202780001820001860001860001840001860001840001 - 8400018400018200018200018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008200048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017D00027603066F0105 - 6800026300005A00005500004F00004A00004B02043C00004C0B0D350000470D - 0E3300004007083800004104023B0000500B084200005C0C0B4E000063060560 - 00006E01037101017601027802017901017B01017D01017F0001820000840000 - 8400008200008400008200008200018200018200018200018200018200018200 - 0182000182000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008901058200048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000017901026903045F02035700005000004E00004800004900004701014100 - 004808083900004B0A0C39000049080A3A00004301024100004B06034200005A - 0B084E0000670A096100006F03027904057B03037D01017E00007E0000810000 - 8200008301018200008001008001008001008200008200008200018200018200 - 0182000182000182000182000182000182000182000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020385 - 00018200048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000017601025A00004C00014900004600004300 - 004200004200014202024201033C00004704073D00004D050B4300004F020949 - 00014700004500005506034F00006609086100007408077602017C02027F0100 - 8100008500008500008701008801008603008002007F02007F01007F01008001 - 0080010080010080010080000180000182000182000182000182000182000282 - 0002800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D0300720000870003840004820002840001800100760300780300 - 8600027B00045300004300033F00024001033900004D03006E00008102018000 - 0180010080000182000182000182000182000182000182000182000182000182 - 0001820001820001800001800001820001820000820000820000820000820001 - 8000018000017F00017D01017B01017901017802017602017601026B03044F00 - 004600004200004100004101013D01013D01013A01003900003C00013D000046 - 01044600004F0206500003550105510000580000590000640300670000730505 - 7703027F05057C00008000008300008601008801008902008902008603008002 - 007F01007F01007F01007F01007F010080010080010080000180000182000182 - 0001820001820001820002820002800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D0403320000390500490000750001870002860002860002 - 8700028200017802017901028600027D00045400004000004303023B00003E04 - 0049000071000480000282000182010082000084000086000086000087000087 - 0000870001870001860001860001840002840002820002820001880202890200 - 8902008801008601008300008000007C00007F05057703027305056700006403 - 005900005800005100005000004800004A000442000042030539000138040434 - 02023302003603013B02014101014500004900004D00005500006D0204760201 - 7601027802017901017B01017D01017F00018000018000018200018200008200 - 0082000082000082000080010080000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008900048700028700028700028400027901027901028700047D00045200 - 004505003B00004508043700005306046C000182010680000180020082010084 - 0100860000860000870000870000870001870001870001860001860002840002 - 8200028200018803008802008700008500008500008100007F01007C02027602 - 017408076100006609064F00005506034500004900004800004D000740000049 - 060B3600003E08083200003504023704023802013B0000410000480000500000 - 5500016300007801028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058600018600028600028700028200027901 - 027901028700047D00045700003E00004A0A06370000480B0745000075030A7F - 00037F00017F0200800200800200820000840000860000860000860001860001 - 8600028400028200028000028000028000018301018201008100007E00007E00 - 007D01017B03037904056F0302610000670A094E00005A0A094200004B060341 - 00004301023B000047080A350000440A0B3200003E0605370000400202410000 - 4500004C00005400005C00006401036F02047B00028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008901058400 - 028400028600028200027801027901028600047D00045300004A08033A00004C - 0D093900005A0A096B00008301087D01017D02007D02007F0200800100820000 - 8200008400008400018400018400028200028000027F00027F00027D00027D01 - 017B01017B01017901017802017601027101016E01036000006306054E00005C - 0C0B420000500B083B0000410402390000400708320000440B0C330000450909 - 3900004501024900004D00005300005A00006300006A00027001057803067D00 - 0280000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008200028000028400028000027801027901028600047D - 00045801003D00004C0C083900004B0C0847000078040B7E00037D01017B0200 - 7B02007D02007F01008001008200018200018200018200018200028000028000 - 027F00027F00047B00047700017402027604047404047004036B00026300005C - 00005C00004D00005909084200004F0C0B3900004308063700003906042D0000 - 3F0C0A320000490B0B3A00005005074D00005300005C00006400006C00027400 - 057900057C01057D000480000280000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008901058000027F00028200027F - 00027601027901028600047D00045300004B07023C00004B0B07390000580807 - 6C00008301087D01017B02007B02007D02007F01008001008200018200018200 - 018200018200028000027F00027F00027D00047900046F01036B03046C030669 - 04066502045D00005600004F00004E00005004054000004B0A09370000450A08 - 3400003A04033302003A09073000004509093C00005408094E00005F01056100 - 006A00007400037A00067F010782010682000480000080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020383 - 00017F00027D00028000027D00027601027801028700047F0004590000420000 - 4906033A00004607034A00007501087F00047D01017D02007F01008001008000 - 018200018200018400018400028200028200048000047F00047F00047D000476 - 01046801046002035E00045A00025700015200004E0000490000490002400000 - 4707073800004108073400003D05043600003A05023600004407053C00005406 - 075200006605096B00037100027700027F000481000584000685000383000180 - 0000800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008500037F00027D00027F00027D0002740202780102 - 8700047F00045700004703004200004203003B00004F02006E00038100067F00 - 017F010080010082000082000184000184000184000184000284000282000480 - 00047F00047D00047D00047400056302065801045200014C00004A0000480000 - 4701024703044101014103033B00003E05043900003D04033800003B02013F02 - 004302014500005000015600006702046D00037803067F010681000583000584 - 0002830001830001810001800002800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D04033200003905004900007500018400027D00027B0002 - 7F00027D00027601027901028700047F00045A00004501004404003F00004006 - 014C01006E00067E00047F000181000083000083000083000085000085000185 - 00018400048300038400067F00038103097B00057D03097203075700004B0000 - 4C00034700004900034100004100023E00013E02023A01003E05043900003F03 - 033B00004002024100004A00005000005600005D00006800027000027800037F - 00048200048400028400028200028200027F00017D01017D01017F0001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008601047D00027B00027F00027D00027601027901028700047F00045700 - 004A06013C0000450804350000510A076700017E000683000385000285000285 - 000285000285000285000383000383000586050A79000082070B7100007A0409 - 6E00006A00065000004D01054100004A05083A00004405073800003B01023A01 - 003F06053700004507073A00004905064200004C00015A00006100006500016C - 00017200027900047F00048300038400028400028400028200017F00017B0101 - 7901017901017F00018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058300017F00027D00028000027F00027801 - 027B00028900048000045A0000400000490A06350000450E094000006C060B77 - 000381000383010283000383000383000381000381000580000581060A770002 - 800A0F67000076080C5F00006900035900005000023F00004C070A3900004809 - 0B3500004007063800003E05043700004808073C000052080845000056060758 - 00006A01047100037300037800047B0004800103830003850003840002840001 - 8200018001007D02007902007803007803007D01018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008702057F00 - 027D00028200027F00027901027B00028900048000045500004A080337000046 - 0E092E00004F0F0B5B00007701067B00027F00017F00027F00027D00027B0002 - 790004780004740104780A0C620000710C0E5500006406075200005000004700 - 004A05083A00004A0B0D350000440B0A3200003C03023B00004808073E000055 - 0A084900006008085600006703037502057C01057C01057E0103800103800002 - 8200028200018200018200018001007F01007D02007902007803007902007F00 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008000027F00028400028000027B00027D00028B000480 - 00045B01003D0000480B0732000040100A37000064060A6B0000760104790102 - 7901027801027601027402027002046D02046902055C0000670A0B4C00005D0A - 0C4500005004054300004701023A00004A090B370000480C0C3300004108073A - 00004404033F0000550A084A0000670A0B5900006F07086E00007B00027F0002 - 7F00027F00027F00017F00007F00007F00008000018001007F01007F01007F02 - 007D02007D02007D02007F000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E000089010582000280000284000282 - 00027B00027F00028D00048200045A00004B0904350000410D072B0000450B06 - 5300006A00027103057303037303037303037103036E04036A04056505055900 - 005A0404470000540A083C00004A0A093900004104023F000047040739000048 - 0A0A350000430A083400004003003F00005007034A0000670B0A5B0000760A09 - 6E00007B03047E00017F00017F00017E00017E00007E00007D00007D00007F01 - 007F01007F01007F010080020080020082010082010080010080000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020385 - 00018200028200028600028400027D00027F00028D00048200045F0302430100 - 4309042E0000340A033300005700036000006B00026B01006B01006902006701 - 026402025F03025B0402510000460000490603380000410A0731000039090535 - 02004101013D00004606063700004307073600004005033F00004601004A0000 - 5D08065C0000770B0A7200008005077E00007E00017E00017E00007C00007A00 - 007A00007B02007B02007B02007D02007F020080020084010086010087010086 - 0100820000800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008700038200028200018400028400027F0002800002 - 8900047F00046003024D06024001003B04002E00003902004900005900005A00 - 005A00005A00005900005500005100004E00004A00004700004502013D00003D - 04023601003805023303003704013E01004101003E00004202013F0000450200 - 4400004A00004E00005801006001007107067503037E06078001028101027F00 - 007E00007C01007F01008600018301027A02027703027901017B010180000182 - 0000860001870000870000860000820001800001820001820001820001820001 - 8400018400018400018400018200018200018200018200018000018000018200 - 0182000182000182000182000182000182000182000182000182000182000182 - 0001820001820001820001820001820001800001820001800001820001800001 - 8200018000018200018000018200018000018200018000018200017F00027901 - 027900048000048400028600028600028200018000017F00017F00017F000180 - 00018000018000017F00017F00018000018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D04033200003905004900007500018400028000017F0100 - 8200018200018200018000028000047800046603055100004800003E00004005 - 033900004100004700004A00014900004B00034500004700034100004100023E - 00013F01013B00003E02023A00004002023C00003F01013D00004006003E0500 - 3F01004000004700005100005A03006405026904026F04017203017602017901 - 017B01017D01017F0100810300780000860A047C00009F00049E040970000071 - 060878050874000085030A8100018500068B050B7F0001820004820002820002 - 8400028600028600028700028900028900028900028900028700028600028600 - 0284000282000282000284000284000284000284000286000286000287000287 - 0002870002870002860002860002840002840002840002840002840002820002 - 8400028200028400028200028400028200028904077700008F0A0D7B00008300 - 017E00008400027A000374080E62000074000090030E8D000296020A84000088 - 070A7901017901017D01018000018200018000017D00027B00027F0001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008601037F00017D02008001008200008400018000017D00047401046601 - 035B03034500004C06063A00004305053700004001034200024701083B000047 - 040B3700004205093600003A01043900003E0405360000450707390000460405 - 3E00004300004204004104004502004900005201005E02006804007104027602 - 017901017D01017D01017F00017F00017F00017F01007F03008007007B060080 - 0000A00105830000720E0E4D0000530000640307690308740D12620001620003 - 66050966070B6103046104036303036503036703036802036A02036A02036C01 - 036A020368020367030365030363030361040361040363030365030365030365 - 0303670303670303670303670303680203670303670303650303650303650303 - 6503036503036703036703036703036703036703036703036703036703036400 - 006300006D09095D00006A06066000006B07077113145300045F020B921C2777 - 00008A00019000048400017900007802017802017D0101800001840001820001 - 7D00027B00027F00018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058300007F00017D02008001008200008400 - 018000017D00047401046904065100005305063E00004B0B0B3700004004043F - 00004700054100004E060C3C00004B080D3900004206073800003F0304370000 - 4509093700004909093A00004504033F00004802004B02005101005802006103 - 006804007104027905047B01017F00018000018200018200018200018000017F - 01007C04008211076300006600008A04048C1615FFEDE7FFFDF5FFFCF7FFFBF8 - FFEBE8FFFBF8FFF4F0FFFDF8FFFDF8FFFDF7FFFFF8FFFFF8FFFFF8FFFEF8FFFE - F8FFFEF8FFFDF8FFFDF8FFFDF8FFFDF8FFFEF8FFFEF8FFFEF8FFFFF8FFFFF8FF - FFF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8 - FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFDF8FFFCF8FFFCF8FFFCF8FFFC - F8FFFCF8FFFCF8FFFCF8FFFCF8FFFCF8FFF8F4FFF8F4FFFCF8FFFCF8FFF6F2FF - E8E5FFF9F9FFECF2FFDDE5850E178B040E8600038504097D0204760201780201 - 7F00018400018700018400017F00027D00027F00018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008702047F00 - 017D02008001008200008400018000017D00047401046500025D050545000052 - 0C0C3900004709093500004303034300014E040A40000051090F3C00004B080B - 3900004001033C00004507073700004C0C0C3A00004A09083C00004A00005301 - 005A02005F03006603006D04017504027A02027F030380000184000184000186 - 00018600018400018400018001007100007D0902740D04740A037F0303610000 - FFF5EEFFFFF7FFFFF6FFFDF6FBF5EEFFFFF9FFFFF9FBFFF8F8FFF9E7F5EAF3FF - FAF2FFFAF3FFFBF5FFFAF7FFFBF7FFFAF9FFFBFAFFFAFAFFFBF9FFFAF7FFFBF7 - FFFAF5FFFBF3FFFAF3FFFBF3FFFAF5FFFBF5FFFAF5FFFBF5FFFAF7FFFBF7FFFA - F7FFFBF7FFFAF7FFFBF7FFFAF7FFFBF7FFFAF5FFFBF5FFFAF5FFFBF7FFFAFCFF - FBFEFFFAFEFFFBFEFFFAFEFFFBFEFFFAFEFFFBFEFFFAFCFDF9FFFFFBFFFFFCFF - FFFBF8F9F5F7F9F3FFFFFCFFFFFBFFFDFBFFF9FBFFF5F9600000770005810106 - 7F01067E06077602017901018200018700018900018700018000027F00028000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068200007F00017D02008001008200008400018000017D000474 - 01046A05075000005507083E00004D0D0D3700004105053E0000470005400000 - 51070B3E00004F0A0D3C00004805083F00004402033A00004D090A3C0000510B - 0B3E00004E06064E00006203006C03007003017504027A02027E020282000183 - 000087000187000187000187000187000186000186000186000097100E7E0000 - 7502006B00007D00006D0909FFFDF7FFFFF8FCFFF8FBFFFBFAFFFBF1FCF4F0FF - F7E5F9EDEDFFF9F1FFFBF3FFFEF7FFFEF9FEFFF9FFFEFAFEFFFAFFFEFCFEFFFC - FEFEFCFEFFFCFEFEFAFEFFFAFFFEF9FEFFF7FFFEF7FFFFF7FFFEF9FEFFFAFFFE - FAFEFFFAFFFEF9FEFFF9FFFEF9FEFFF9FFFEF9FEFFF9FFFEF9FEFFF9FFFEFAFE - FFFAFFFEFAFEFFF9FFFEF3FFFFF2FFFEF2FFFFF2FFFEF2FFFFF2FFFEF2FFFFF2 - FFFEF3FFFFEBF9F7EFFDFCF3FFFFECFAF9F3FFFFF3FFFFDFE7E6F5F4F0FFFCFA - FFF8F95500046F01077F070B6A00006F00007802017D01018600018900018B00 - 018900018200027F00028000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008702047F00017D020080010082 - 00008400018000017D00047401046500025C0404450000500A0A390000460808 - 3500004103033F00004904073E00004D080B3C00004C08093F00004701024500 - 004D050542000055090A4500005A0A094E00005F03026F03027903027A02027E - 02028101028400018600008800008B00018B0001890001870001870001860001 - 8600018700019102047C00008408087A0203850107730E10FFF6F2F8F9F0F6FA - F4FBFFFCF0F6F1F1F7F2FBFFFCFBFFFBF3FAF5F9FEFCFFFEFFFFFDFFFFFDFFFF - FDFFFFFDFFFFFCFFFFFCFFFFFCFFFFFCFFFFFCFFFFFCFFFFFDFFFFFDFFFFFDFF - FFFDFFFFFDFFFFFDFFFFFCFFFFFCFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFD - FFFFFDFFFFFDFFFFFDFFFFFDFFFFFCFFFFFCFFFFFDFFFDFEFFFAFFFFFBFEFFFA - FFFFFBFEFFFAFFFFFBFEFFFAFFFFFBFEFFEEF3F6F4F7FBFAFFFFFBFEFFFAFFFF - F8FBFFFAFFFFF8FFFCFFFFFBFFF7F54B00026300027D080B740000850D0E7B01 - 017F00018700018D00018D00018900018000027F000280000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020383 - 00007F00017D02008001008200008400018000017D0004740104690406530000 - 5002033F00004808083700003F03033C00003F01013A00004606063900004806 - 073D00004B02044800004C00004C00005804065100006407085A000067060869 - 01027901028000018200018400018600018700018A00028C00028B00018B0001 - 8900018700018400018200018200018600018B00008B00008405067F04067B00 - 00690005FFFAF8FFFFFBFFFFFCFCF0F03020211400011C04061B00001E000221 - 02051B01071901091B00091B00091B00091D00091D00091D00091D00091D0009 - 1D00091B00091B00091B00091B00091B00091D00091D00091D00091B00091B00 - 091901091901091901091901091901091901091B00091B00091D00091D00091D - 00091D00091B00091D00091B00091D00091B00091D00091B00091B0007220710 - 2A0D161B00091700031500033C1F28F8E9EDF4FBF6FDFDF7FFF9F74F090A6D07 - 0C7200007600017700007F00018200018900018D00018D00018700017F00027D - 00027F00018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008500027F00017D0200800100820000840001800001 - 7D00047401046702045800004900004802023F00003F01013900003B02013901 - 003A02013800004002023E00004502014800004E00005100005800005B000066 - 01036800007003057002047A03047E00008200008400008500008700018A0002 - 8B00038C01048900018700018600018400018000017F00017F00018200018A00 - 009106097000007E060A7F00066A030AFFFBFBFFFDFAFFF7F7FFFDFE13000020 - 01042400012700003000042900002200011E00011E00011E00011E00011E0001 - 1E00011E00011E00011E00011E00011E00011E00011E00011E00011E00012000 - 012000012000011E00011C00011C00011B00011B00011B00011B00011C00011C - 00011E0001200001200001220001230001230001250001230001250001230001 - 250001230001250001270005250001230001390C15230001250001FFFBFFFAFE - F9FEFEF8FFFBF94C030570060C6B0000890B107E00008000018600018B00018F - 00018D00018600017D00027901027F00018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D04033200003905004900007500018400017F00017D0200 - 8001008200008400018000017D00047401046803055500004D00004300004404 - 043B00003C00003A01003704013303003904013700004202014200004C000052 - 00006103046703036E01037401047900047E0103800103830003840001860001 - 8600018600018600018700018700018600018600018400018000017F00017D01 - 017B01017B01017D01018100007D01016F03026A02037501085D0308FFFDFBFB - FFFCFFFFFEFFFEFF1E0B0E1C01052F060D2900023D09102E00022E050A1E0000 - 39161A2200032A070B1F00002D0A0E2200033C191D1E00002D0A0E2704082C09 - 0D1E000027040823000231090E2A0207310C101E00002D0C101E00013112151B - 00002B0C0F1B00002B0A0E1F00022F0C102400032D050A25000132060C250000 - 43151B25000035070D2500003F111725000032040A2C000634060C2700013608 - 0E27000135070DFFFBFCFFFEFBFFFFFBFFFAF957060971000680000483000385 - 00038400018700018D00018D00018B00018400017801027601027D0101800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008601037F00017D02008001008200008400018000017D00047401046601 - 035B03034500004C06063A00004305053700003C030236030038080432000040 - 05033C00005005034F00005E02016802036F01037700037D0002820002870003 - 8A00038A00038600018600018600018400018400018400018400018400018200 - 018000017D01017B01017901017802017802017901017F00007B01016D030268 - 0203710108590408FFFEFBF8FFFCF6FBF9FCFAFA100305130000200004230000 - 2F01072700002300002501012000001F00002604042200002402021E00001E00 - 002A08083715151E00001E00002301012000002200002300002300002200002F - 0B0B1E00001C00001B00002C0E0D1C00002608071C00001E0000200000220000 - 2300002B0304280001230000230000391112240000320A0B2300002300002400 - 00230000270000230000290102230000270000FFF8F7FFFEFAFFFEFBFFF8F95E - 04097700068400048600038800038600018700018B00018D0001890001820001 - 7601027402027D01018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058300007F00017D02008001008200008400 - 018000017D00047401046904065100005305063E00004B0B0B37000040040439 - 00003E07043400004508043A00005107054900006509086703036F0103770001 - 7D00028400028700028B00019000028E00028700018400018400018200018200 - 018200018000018000017F00017D01017B01017901017901017802017802017B - 01018500008400017402026F01037900085D0308FFFDFBFAFFFCFAFFFEFDFFFE - 140E0F110305210B0D1B00012E0D112100002B070729060334110E200000300F - 0C2403001D00002809063314112203002706031E000045221F20000039131122 - 00003A13112400003812102805022E0D0A1C0000270A061900002005011B0000 - 341512270603401D1A22000038110F220000300F0C1B00002E110D1B00002A0D - 091C000030130F1B0000270A06230602290C081D00002B0E0A1D0000290C08FF - FDF9FFFDFAFFFCFBFFF7F96303097A0006870004860003880003860001860001 - 8900018B00018700018000017601027402027D01018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008702047F00 - 017D02008001008200008400018000017D00047401046500025D050545000052 - 0C0C3900004709093500004104023E00004A0704400000580B084A0000680C0B - 6200007408077601027D00028200028600018900018D00018F00018D00018600 - 018400018200018200018000018000017F00017F00017D01017D01017B01017B - 01017901017901017802017F00018A00008B00007B0101770001800006660207 - FFFCF9FFFFFBFAFBF7FCFAF90C04040C00001601031500001F04071900001B00 - 002A0D081B00001900001E05011A02001500001500001500009A847E8A716DD9 - C1BBD9BEBAFFFDF8FFFDF91C00001E00002D0D081C0000190000170000150000 - 1D09049E8C85FFFEF998857E1903001700001B000032140F2B0A071E00002003 - 001900002106021E04001C01001900001E03002B110B1A00001900001D020019 - 00001F04001900001D0200FFFAF5FFFDFAFFFCFBFFF6F9650309780006860004 - 8500038500038200018400018700018900018700018000017801027601027D01 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068200007F00017D02008001008200008400018000017D000474 - 01046A05075000005507083E00004D0D0D3700004105053F00004D00004C0000 - 610A08520000710F0F610000780A0A7500017B00028000018200018400018700 - 018700008900008700008400018200018200018200018000018000017F00017F - 00017F00017F00017D01017D01017D01017D01017D0101840001910000920000 - 8400017F00018800066F0107FFFAF9FFFFFBFFFFFCFFFEFC1F0D0C180302250B - 0B1B00002D0E0F1C00002613100E00000C0000110700180F0B090100A39D98CE - C8C1FFFFFBFFFBF4FFFFFBCBC3BCB8ADA9FFFFF9BFB0AD1F0F09271411120000 - 251613100400180D099A948DFFFDF8F3F1E9FFFEF9FFFFF9FFFAF58B837C1F13 - 0F0E00001502001E0803280C0B1B00002D0F0E1B0000381A191B00002A0C0B1B - 0000260807230602290B0A1D00002B0D0C1D0000290B0AFFFDFBFFFDFAFFFCFB - FFF7F96204097500067F00047E00038001037D01017F00018600018700018700 - 018200017901027801027F00018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008702047F00017D020080010082 - 00008400018000017D00047401046500025C0404450000500A0A390000460808 - 350000480202550000690304600000790C0E690000800B0C7300007E01038001 - 0281010282000182000182000082000081000081000082000182000182000182 - 00018200018000018000017F0001800001800001800001800001800001800001 - 8000018600008E00008D00007F01007C00008700056F0105FFFBF8FFFFF9FFF9 - F6FFF7F61803021700001E00001C00002604051B00001200000F0200160A0809 - 0000918A87FAF5F2FFFFFCAFACA87A7773787571787370FFFFFCD9D0CD8B7F7D - 1306040E00001000001001001B0E0C090000D6CFCCBAB7B3878682848581F7F8 - F40C0B0784817DC4BDBAFFFFFCC1B4B2A492911300001A00001C00001E00001E - 00001C00001C00002000012303041D00001C00002000011C00002202031C0000 - 200001FFF7F7FFFDFAFFFDFBFFF8F95C05096E00067900047700037902037802 - 017B01018200018700018700018600017D00027B00027F000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020383 - 00007F00017D02008001008200008400018000017D0004740104690406530000 - 5002033F00004808083700003F03034900006801047100007D06077300008508 - 0A7A00008404057E00008301028101028002017D02007D02007A01007801007A - 0100800001840001840001820001820001820001820001800001820001820001 - 8200018200018400018400018600018400008100007B03006F04006E03007C01 - 05660305FFFCF8FFFFF9FFFFFBFFFEFB240D0B1E02012A0B0A220000340E0E21 - 0000290C0F291216715C5FFFFCFFFFF7FAFFFDFF8C7F81180B0D180B0D241719 - 1507091302051C090C1200001600031B02062E1317170000967D81FFFBFE8F7E - 81140709090000867E7FFFFEFF090000180B0D120104180306957E82FFF9FDFF - F4F991717629090E1B00001B000046262B1B000023030823030826060B230308 - 29090E1D00022B0B101D000229090EFFFCFEFFFEFBFFFEFBFFF9F95506096701 - 067201047100037303037203017602018000018600018900018700018200027F - 00028000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02003F00004501023C00004001033D00004100014700014701023900003B - 04013900004F02006C00007E01037F00017F01008001008200008000017F0001 - 7901027201046802035D00005000005101004B00004B00004700005600007403 - 068203057D00008100037C00008300038000008301028301028101028002017D - 02007B0200780100770200780100800001820001840001820001820001820001 - 8200018200018200018200018200018400018400018400018600018200007C01 - 007404006B05006C03007A0105640305FFFDF8FFFFF9FFFBF6FFFAF61A03011B - 00002400012000002804041C0000190002FFEDF19D868A917A7EFFF6F9190407 - 120000120000190407120000160003170004150000150000250A0E1700009C80 - 86FFEEF4D6BCC2998287847075FFF1F59E8F93897B7DFFFCFF1406080E000012 - 000020090D1500001A00039C7E83DFBFC4FFF7FCE3C2C99A7C8119000125070C - 1900011900001B00031900001F00051B00002100071B0000210006FFF7FBFFFE - FBFFFEFBFFF9F95506096801067201047100037103037003017403017F000186 - 00018900018900018400018000017F00017F00017F00017F00014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003C00003B00004202013F00004302013E00004101013E - 00004002023F02004106043D00004802024E00006302046F01037D0002820001 - 8200017F00017D01017901017403017002026B01006500006100006300006A03 - 016D06046F03026E00007B000280000180000180000180000180000180000180 - 00018000018000018000017F00017F00017F00017D01017F0001800001800001 - 8200018000018000018000018000018000018000018000018000018200018200 - 018200018200018000017C0100790200760201770001850006690207FFFCF9FD - FFFBFEFFFAFFFFFC260E0E1C00002E060B300B0D1C0000170201FFFBFC938384 - 180607D6C4C598838513000021090B1F04072B101317000024090C22070A2409 - 0C150000331B1D887274FFF2F59C8B8E958487C0AFB2FFFCFF7D6F712413168D - 7D7EFFFCFF857576322021100000210F101402031F0B0A19040323080B1B0001 - 927479FFFAFDFFFBFF8D727523080C190001290E1217000034161B1B00002C0C - 111C00003E1A20FFF2F5FFFEFBFFFEFBFFF8F95C05096F000679000477000377 - 02037203017403007D02008200008700008700008600008000017A0000790101 - 7901017A02023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013B000040050338000047 - 07063C00004706053C00003D02003A0100400705390000490807430000580507 - 5600006A03067D00028400018200017F00017B01017602017203017003016E01 - 006B00006B00006F00007802017B03037D01017C000080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000017F00017E00007B02007B00027E - 00038800066B0108FFFCF9FAFFFBF3F9F4FFFFFC1500001E0000340C111E0000 - 170000D7C5C49285830B00009A8B89FFFCFB1300001F07071900001900001F00 - 011900001A00001700002A10109D8585FFF2F1D1BFBE180B0D73686AFFF7F992 - 87890B0000887B7DFFFDFEFFFDFEFFF1F2FFFDFEF1E2E09182800C00000D0000 - 271B171000001800022005081500001D0507957D7FA48E90FFFCFEC5AFB1907A - 7C2810121700001900001F00032605091F0000FFFAFDFFFEFBFFFEFBFFF7FB5E - 04097300067F00047C00037A02027403017603007D0200820100870000870000 - 8400008001007B00007A00007D01017E02024201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003E0202360000470A083900004D0A093A00004606053A00003D0402360000 - 470C0A3A0000540A0A49000060070A6600027D00028600018400017F00017B01 - 017802017403017203017102006F00006F00007300007A02027E04047E02027D - 0000800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018000018000018000017F - 00017E00007B02007B00027E00038800066B0108FFFCF9FAFFFBFBFFFCFFFEFA - 1C0406300D112800052300043A2020FFEEED0F00001D0E0CC2B3B19D8B8A220D - 0C1500002A1010200606280C0C2004042206062B1111C2AAAAFFFBFA9B86850E - 0000877F80C3BEBF251F20827C7DD5CDCEFFFEFFFFF7F7FBF1F1FFFEFEFFFEFE - FFFEFCFFF6F4FFFEFCBFB3B1877C780C00001702041B05071500011200001B06 - 081200002D181A988385CCB7B9FFFCFED0B5B81C00023011141C0000351216FF - F5F8FFFEFBFFFEFBFFF8FB5E04097500068000047E00037E0202780201790200 - 7F01008400008700018700018400018200018800048900048800038700023E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023A00004308063700004C0C0B3C00004B0A09 - 3900003E03013800004209073500004E0D0C4200005C090B5300006A03067F00 - 028600018400018000017D010179010176020174030174030172010073000077 - 01007C0202800404800102800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017E00007B02007B00027E00038800066B0108 - FFFCF9FAFFFBF9FFFAF7F4F01C04062000012200002200038A70709B87861A08 - 07190706FFF5F4998584150000190101210707170000190000170000907676FF - F2F2A89392120000200C0B0C00000500000202027D7B7BF6F4F4FDF8F9F2EDEE - FFFFFEFFFFFEFFFCFBF2EDECFFF9F6FFFBF8FFFFFCFFF9F6FFFFFBFFFFFB9484 - 851000002210110E000019090A1404050E00000F0000160405150002D0B8BAD5 - BABD1B00001C00001C0000FFFCFEFFFEFBFFFEFBFFF9F95E0409750006840004 - 8300038100037D01017D02008001008400008700018600018000018000018A01 - 058D00048C00038B00024201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003E0202350000 - 480B093900004F0C0B3A00004707063A00003D0402340000470C0A3A0000550B - 0B49000060070A6500017F00028600018400018200017F00017B010179010178 - 02017802017802017800007B01017E0202810203810102800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017E00007B0200 - 7B00027E00038800066B0108FFFCF9FAFFFBF9FFFAFFFFFC20080A1E0000370F - 14240105FEE4E49D8988180403120000FFFDFC8A7272371F1F170000290F0F17 - 00002E1414D8BEBEFFFCFC8B76751803021200001F0D0C1C100E9A9898EFF1F1 - FDFFFFFDFFFFFFFFFFFFFFFFEFEDECFDFBFAFFFCFB888483DCD7D4FFFFFCFFFC - F9FFFFFCFFFFFBFDF4F0F9EDEDFFFEFEB9ADAD867C7C180E0E1107071C10100C - 0000100001100000978183C7AFB133161927080B27060AFFFCFEFFFFFBFFFFFB - FFF9F95C05097700068700048600038700038000018000018400018600018600 - 028200027B00027B00028200028500018600028700033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023A00004207053700004A0A093C00004A09083A00003E03013800 - 004007053500004B0A094200005906085300006902057F000286000186000182 - 00017F00017D01017B01017901017901017901017B01017D01017F0001800001 - 8200018200018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000017F00017E00007B02007B00027E00038800066B0108FFFCF9FAFFFBF6FC - F7FFFFFB1500001E00002A02071E0000FFFCFC897574200B0A1C0404D7BFBF99 - 7F7F170000240A0A170000967C7CFFFCFC856D6D130000210D0C170302100000 - 948583BCB0AEF7F5F5FBFFFFFBFFFFFBFFFFF7F9F9F1F3F39C9D9B7F7D7CFFFF - FE110D0C040100050000CCC5C2FFFFFCFFF8F4FFFFFBFFFEFEFFF7F7FFFFFEFF - FFFEF5F0EF7F77779189890900001D0F100E0000120000FFFCFE170000190000 - 240508F7E2E1FEFFFBFFFFFBFFF9F95C05097800068900048A00038A00038400 - 018200018400018400018200027F00027601027402027A02067A020378000375 - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003D01013800004407053900004A07 - 063B00004404033B00003B02003600004207053A00004F05054A00005C030666 - 00027F00028600018600018200018000017F00017D01017B01017A00007D0101 - 7D01017F00017F00008100008300008400018200018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000017F00017E00007B02007B00027E00038800 - 066B0108FFFCF9FAFFFBFBFFFCFFFFFC1F07092C090D220000280509FFF1F190 - 7B7A240C0C170000907676FFFCFC2F1515170000FFF6F6DFC7C7200808130000 - 220D0C120000210D0C9C8A89FFFEFCFFF6F4FEFCFCFDFFFFFDFFFFFBFDFDC5C7 - C70000000D0E0C807E7DFAF6F5070201140D0A1B120F160A08998C8AFFF3F0FF - FCF8FEF6F6FFFFFEFBF7F6FFFBFAFFFFFEFFFEFDFFFEFDFFFEFE7C70701D0F10 - 8A7879FFFCFE1700001F02053A1B1EFFFDFCFCFFFBFFFFFBFFFAF95C05097800 - 068900048C00038C00038400028200028200028200027F00047900047002046B - 03046C07096806066300025F00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003C00 - 003D02003C00004202014100004302013F00003C01003900003C03013A000043 - 02014600005200015700016700037D0002860001840001820001800001800001 - 7F00017D01017D00007E00007F00018000018000008200008400008300008200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000017F00017E00 - 007B02007B00027E00038800066B0108FFFCF9FAFFFBF0F6F1FFFFFC1500001E - 00002700041E00009A8080D0BBBA170000220606200404FFEDEDA187871E0404 - 977F7F1300001300001C0807120000968281FFFDFC837170796A68FFFEFCFFFE - FFF8F8F8FEFEFE8A8A8A0000008E8E8E020000040000FFFFFE0D03030C00000C - 00001200001200009D8684FFFEFBFFFAFAFFFFFEFEFCFBFCFAF9FFFFFEFFFFFE - F3EEEDFFFEFEFFFEFEFEF0F1FFFDFED0BABC1800021900001B0000FFFCFBFAFF - FBFFFFFBFFFAF95A05097800068900058A00038A00038400028000028000027D - 00027900047201046902056204055805045404035202015101004000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003C00003B00004003013E00004502013F00004101003C - 01003B02003700003D02004000004C02024D00005800026801047B0002840001 - 8400018200018000018000018000017F00018000018000018000018200018200 - 0184000186000184000182000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000017F00017E00007B02007B00027E00038800066B0108FFFCF9FA - FFFBF9FFFAFFFFFC250D0F1E0000340C111E00002D1313FFFDFC2105051B0000 - 270B0B1F0303FFF6F69B8181240C0C130000230E0D120000FFF1F0FFF9F8A795 - 94100000251312FFF7F5FFFEFF8D8788040000140F10B6B1B2FFFEFF807B7A07 - 0000FFFCFC0F0102210F0E1300002F15151900002F100FFFFDFB918787777574 - C5C3C2FCFAF9FFFFFEFFFFFEFFFEFDFFFEFEFFFEFEFFF3F4FFFDFE8973753119 - 1B19000026070AFFFCFBFAFFFCFFFFFBFFFAF95A050977000686000487000286 - 00048001037C01038005097901057605096700015D00024F00004C0202450201 - 4300004000003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013B000040050338000047 - 07063C00004706053C00003D02003A01003D0402350000490807430000540103 - 5300006A03067901028200018200018200018000018000018000018000018000 - 0180000182000182000184000184000186000184000182000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000017F00017E00007B02007B00027E - 00038800066B0108FFFCF9FAFFFBFBFFFCFDFAF61800021E00002E060B1E0000 - 1B0101907B7AE2C6C61C0000190000170000907676FFFCFC846F6E220E0D1200 - 009A86859E8C8B100000100000120000170302998A880B00000700008D8586FF - FEFFFFFEFFFFFAFB948C8C0B0101FFFDFE1000001803021700002E0E0F200000 - 240000997B7ABEB2B21915140400000E0A097F7B7AF0ECEBFFFFFEFEF6F6FFF5 - F5A89A9B816F701701031700001900002C0D10FFF9F8FBFFFBFFFFF9FFFBF859 - 060875000684000583000381000577000179070770000078090D630000660509 - 5100004B00003E00003D00003F00004303024201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003E0202360000470A083900004D0A093A00004606053A00003D0402330000 - 4409073A0000540A0A4900005C03066500027801028000018000018000018000 - 0180000180000180000182000182000182000182000184000184000184000184 - 0001820001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018000018000018000017F - 00017E00007B02007B00027E00038800066B0108FFFCF9FAFFFBFBFFFCFEFBF7 - 1800022100022800052502061B01011E0908D2B8B8DBBFBF270B0B170000331B - 1B897473FFFDFCD2BEBD210D0C1000001804038F7B7AFFFCFB8D7877200B0A12 - 00009B8E90CCC4C5FFFAFBFFFEFFF3EBECFFFAFB9187870B0000FFFDFE120000 - 1901011B00002D080A2800022800002C0808FFFDFE847C7C1914130500001813 - 12CDC5C5FFFEFE8B81811608090E000029141617010323080B1B0001250609FF - FDFCFDFFFBFFFFF9FFFBF85906087200078000067D00047A0206710406630000 - 70090C5B000068090D4F00005304074500004B02044701024500004200003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023A00004308063700004C0C0B3C00004B0A09 - 3900003E03013800003F06043500004E0D0C4200005906085000006A05077601 - 027F00017F00017F00017F000180000180000180000182000182000182000182 - 0001840001840001840001820001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017E00007B02007B00027E00038800066B0108 - FFFCF9FAFFFBFAFFFBFFFFFC1E0608250206230000230004280E0E1300001900 - 00DAC0C0FFFAFA937B7B1300002E1A19120000907C7BFFFDFCCEBCBBD5C1C0FF - FDFC927D7CFFF8F8230B0B8F7A79F3E6E8FFFEFFFFFEFFFBF5F6FFFEFFFFFEFF - 756D6D160C0CFFFCFD1604051F07071E000027020428000037080A2200009781 - 83C4B8B8140808090000110707FFFCFC7F73730C00001F0F101000001B050715 - 00001C00021B00001C0000FFFAF9FEFFFAFFFFF9FFFAF85707086F01077A0006 - 760104710406620000650908500000630A0D4C000057080B3F00004502054400 - 004700004700004A01034201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003E0202350000 - 480B093900004F0C0B3A00004707063A00003D0402330000450A083A0000560C - 0C4900005D04076500027601027D01017D01017D01017D01017F000180000180 - 0001800001800001820001820001820001820001820001820001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017E00007B0200 - 7B00027E00038800066B0108FFFCF9FAFFFBF0F6F1FFFFFC1A02041F00002200 - 001E0000260C0C1500001F07071B0101917979FFFDFCDEC9C88B777628141312 - 00001C0A098B79788B7776170201281010FFEDED2C1010917C7BFFFDFFFFFEFF - FFFEFFFFFEFFFAF8F8F2F0F07D79780B0605FDF3F31B0B0C1A05041900002702 - 04230000330708260000190103FFFDFE1000000E0000958586FFFDFE16060718 - 08091B090A1200001901031700002D0E112D0C102C0B0FFFFCFCFFFFFAFFFFF9 - FFF9F75406076A00067400056C01036705055A04044B000057090A4500005508 - 0B3E000046060B3D00004801044B00034900014600003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023A00004207053700004A0A093C00004A09083A00003E03013900 - 003E05033500004C0B0A4200005704065100006904067402027B01017B01017B - 01017D01017D01017F0001800001800001800001820001820001820001820001 - 8200018200018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000017F00017E00007B02007B00027E00038800066B0108FFFCF9FAFFFBF5FB - F6FFFFFC1600001E00002A02071E00001C02021601001500001B030313000012 - 0000988483D2C0BFFFEEEDD1BFBE1000001200002C1716150000170000FFFCFC - 1E0000897171FFFEFFF8F8F8FFFFFFFDFFFFF3F5F5FDFFFF979896020000FFFA - F9160A0A1200001700002A0A0B2200002700002600001A00008F797B97818312 - 00008F7A7C8671732D181A1200001601031F090B250A0D1900001B00001C0000 - 200001FFFCFCFFFFFAFFFFF9FFF9F75305066500046D00036400005B04024B00 - 004D08053C00004C08093C00004807093400003D04073D000043000045000148 - 01044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003D01013800004407053900004A07 - 063B00004404033B00003C03013500004106043B00005006064900005B020564 - 01037202027901017901017B01017D01017D01017F00017F0001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000017F00017E00007B02007B00027E00038800 - 066B0108FFFCF9FAFFFBFBFFFCFFFFFC1B03052603072800052100021D030312 - 000025100F130000341F1E150100100000DCCDCBFFFEFCD7C8C6877574A69291 - 130000150000391D1DFFFBFC240405A89090FFFEFFFAFFFEF6FBFAFAFFFFFAFF - FFECF4F36C7370050A08FFFFFE0700001306041702012509091F000026000022 - 00002D0E111B0003FFFCFE150000DAC2C48973751600022C1618130000190103 - 1800002104072F101328070B260307FFFAFAFFFEFAFFFFF9FFF8F65204056100 - 026600005B00005301004502003B00004407053700004506083500003A040935 - 00033F05063F03043D01023900004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00013C00 - 003D02003C00004202013F00004302013F00003E01003C00003C01003B000045 - 04034500004D00005000006104056F02047602017801027901017B01017D0101 - 7D01017F00018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000017E00 - 007D02007B00027E00038800066B0108FFFDF9FAFFFBFBFFFCF5F2EE21090B2A - 070B220000210000230909130000170000260C0C1500001702011D0908837170 - FFFEFCFFF1EFFFFEFCFFEEEDFFFDFCFFFDFCFFF0F3FFFCFC230407846E70FAF6 - F5FAFFFFFAFFFFF2FAF9F7FFFEF8FFFF818885000100FFFFFE070000190C0A1A - 06051700001C00002904062000001B0000170000D2BABCA08A8CC8B2B4250F11 - 1300001500001700011F04071900001C00001E00011C00001C0000FFFCFCFFFE - FAFFFFF9FFF8F74604055300015900015000004B00004101003E04003B00003F - 03033B00003E03073700033702053600003800003A00013D03044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000013E00013D00004201033E00004201033E000041000240 - 00003E00013D00004201033E0000430003410000460002500000670003700000 - 7300037601027A02037C01037E01038001038000018000018000018000018001 - 008001007F01007F010080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000017F00008001007D00027F00038A00066B0108FFFDF9FA - FFFBFBFFFCFFFFFC230B0D23000430070C2400012C0D0E1C00002E0F0E1E0000 - 200001270B0B2208081300001F0D0E1202031D0D0E1303041303041F0D0E1B06 - 091300003922267D6D6EFFFFFEFBFFFEF8FDFBF9FEFCFBFFFEF9FCFA7A7B790B - 0706FFFEFE11050519090A18020426090C2000032C070B240203270B0B150000 - 857170FFFDFCFFFEFC0E00002C1A1913000022080822030429090A2000002B0B - 0C1D0000270B0BFFFDFCFFFDFBFFFEFCFFFBFC2F00023C000143000049010144 - 00004300003F00004003013C00004002023A00003D01023C0001410204400103 - 3E00013B00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004A00015F00006B00006E00027401047801027901027D00027E00018000 - 018200018200018200018001008001008001007F010080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018100008001007F00027F - 00038A00066B0108FFFDF9F8FFFBF6FCF7FEFBF71A02041E0000290003230000 - 2304051B00002000002F09092803051C00001E0202947F7E7967680F0102897B - 7C867A7A86787A8E8082938285857477867376978A8CFFFDFCF9FEFCF3F8F6F4 - F9F7FDFFFEFFFFFE888483050000FFF9F90C00001100001300001C00021C0000 - 2000011C0000190000200B0A210F0EFBECEAC7BAB81205030E00001804031A00 - 001C00002200011E00002202031900001B0101FFF9F8FFFBFBFFFEFEFFF4F42D - 0B0B2B00004108073D00004401004200004505013A0000450806370000440606 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605074500005700006300006800016F01037401 - 047800037B00007C000082000284000284000184000182000080010080010080 - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018100008001007F00027F00038A00066B0108FFFDF9F8FFFBFBFFFCFFFFFC - 240C0E23000433070D2500012D0E0F1E00002500002B03042000001C00001C02 - 02DFCAC99A88890E0001FFFEFEFFFEFEFFFDFFFFFBFDFFFDFFFFFDFFFFF9FCFF - F4F6FFFDFCFDFFFEFDFFFEFDFFFEF4F5F3F5F6F48682810E0606FFFEFE120405 - 1D080A1B0305270A0D2000032A070B230206280C0C190101120000E3D4D2C3B6 - B41508061C0D0B1804032509092404052C0A0B2000002C0C0D1D0000250B0BFF - FDFCFFFEFEFFFAFAFFFCFC1E00003A090B3300004707074100004502003B0000 - 490908370000480A0A3700004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004701025000 - 005A00006200006A02037002047700037B00007D000084000286000286000186 - 0001840000820000800100800100800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018100008001007F00027F00038A00066B0108 - FFFDF9F8FFFBF6FCF7FEFBF71A02041E00002900032300002304051B0000350F - 0F230000200000270708170000D9C5C48676770B0000FFFAFAFFFEFEFFFEFFFA - F2F3FFF7F9FFFDFFFFFDFFFFFEFFFFFFFEF7FAF8FFFFFEFFFFFEFFFFFEFFFFFE - 85807F070000FFF9F90C00001300001500001C00021B00001E00011C00001900 - 001F0707120000948583FFF8F60C00001000001300001A00001C000024000120 - 00002402031B00001B0101FFF9F8FFFAFAFFFEFEFFF0F03210102B0000460D0C - 3A00004502014100004808043900004A0D0B370000480A0A3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706084100004A00005100005901016302046D02047401047C000381 - 0003860002870002870001870001860001840001820001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001810000800100 - 7F00027F00038A00066B0108FFFDF9F8FFFBFBFFFCFFFFFC240C0E2300043307 - 0D2500012D0E0F1E00002B0505230000351012220203170000D8C4C38F7F8009 - 0000FDF5F5FFFFFEFFFEFFFFFDFEFFFEFFFFFAFBFEF6F7FFFDFEFFFFFEFEFFFD - FCFAF9F8F6F5FBF9F8FFFFFE928D8C110909FFFEFE1404051D080A1B03052409 - 0C1F000328070B2302062B0F0F1600001E0A09897A78FFFCFA0D00002D1B1A13 - 00002408082404052E090B2200002E0C0D1D0000250B0BFFFDFCFFFEFEFFF9F9 - FFFCFC1E00003C0B0D3300004808084100004502003A00004A0A093700004A0C - 0C3700004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004301024300004A00005101005C - 02026602027002047B0004820004860002890002890002870001860001840001 - 8200018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018100008001007F00027F00038A00066B0108FFFDF9F8FFFBF6FC - F7FDFAF61A02041E00002800022300002304051B00002D0707230000330E101D - 00001C0202D6C2C1928485070000FFFFFEFFFFFEFEFCFCFFFFFFFFFFFFFFFFFF - FDF8F9FFFDFEFFFBFAFFFFFEFFFFFEFFFEFDFFFFFEFEF9F87D7575090000FFF9 - F90E00001300001300001A00021900001E00011C00001900001B030312000027 - 1514FFFDFB0E00001000001601001C00001E00002400012000002402031B0000 - 1B0101FFF8F7FFFBFBFFFEFEFFF1F1310F0F2B0000440B0A3B00004502014100 - 00470703390000480B093700004709093A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00003E01004001004801005100005D00006A0002780004800005860004870002 - 8900028700028600018400018200018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018100008001007F00027F00038A00 - 066B0108FFFDF9F8FFFBFBFFFCFFFFFC240C0E23000433070D2500012D0E0F1E - 0000300A0A230000220000220304220808CAB8B7877B7B070201FFFFFEFFFFFE - F8F8F8F5F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFDFCFFFEFDFFFDFCFFFFFEFFFF - FEBAB5B4312929090000FFFEFE1204051B090A19030524090C1D000327080B22 - 0306290D0D170000230E0D100000FFFEFC0E0000231110170201260708260405 - 2E090B2200002E0C0D1E0000270B0BFFFDFCFFFEFEFFFCFCFFFCFC2000003706 - 083600004505054200004401003D00004606053700004507073800004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00003E00003902003901003F0000480000550000630000 - 7100037C01058000048600048600028600028400028200018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018100 - 008001007F00027F00038A00066B0108FFFDF9F8FFFBF6FCF7FEFBF71A02041E - 00002900032300002304051B00002200002901022400011E0000150000D0BEBD - 8D8181050000F6F4F3FFFFFEFDFFFFFCFEFEFBFDFDFBFDFDF9FBFBFCFCFCFFFF - FEFFFFFEFFFFFEFAF5F48C87860803020700008A8282FFFAFA0C000010000112 - 00001901031700001C00021900001900001C0202190403100000FFFCFA1F100E - 1200001500001D00001E00002600012200002601031C00001E0202FFF9F8FFFC - FCFFFEFEFFF8F82907072E00003E05043F00004300004300004202003E000040 - 03013C00004002023F00004000013D00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100023C0000390401370200 - 3F04024300005301005900006600006D00007D02067F00048100037F00007D00 - 007D00007E00017F000280000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018100008001007F00027F00038A00066B0108FFFDF9F8 - FFFBFBFFFCFFFFFC230B0D23000432060C2500012C0D0E1E00002C0808240000 - 2E0C0D1D0000230B0BD5C3C28E82820B0605FFFFFEFFFFFEFDFFFFFBFFFFFBFF - FFF9FEFDFDFFFFFEFEFEFFFFFEFFFEFECDC5C50700001D1817080302C1BCBBFF - FEFEFFF9F9897D7D1F11121505061F0A0C1300002D1517160000270B0B250B0B - 261110867473FFFEFC0E00002E1A191500002607082503042F080A2400002F0A - 0C1E0000270B0BFFFDFCFFFDFDFFFEFEFFFCFC2402023201033A010042020242 - 00004300004000004202013C00004002023C0000410002400001430204420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00003D01023701003A07043500004807064300005903035900006600007201 - 047700037A00037B00027C00017C00017D00027D00027F000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018100008001007F00027F - 00038A00066B0108FFFDF9F8FFFBF6FCF7FEFBF71A02041E0000290003230000 - 2304051B0000230000220000240203190000180302C9BAB8857979050000FEFC - FBF4F5F3FDFFFFE5EAE9FBFFFFFDFFFFFCFEFEFAF8F8FDF8F7847C7C0700000D - 0807898483FCF7F6FFFEFDFFFFFEFFFCFCFFFEFEFFFBFB7B6D6E908081B09E9F - 8570728F797B8E7474947A7A968180FFFAF99B89881000001200001500001D00 - 002000002600012200002601031C00001D0101FFF9F8FFFBFBFFFEFEFFF4F42D - 0B0B2B00004108073D00004401004200004505013A0000450806370000440606 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073C00003D0504330000430A083900005109 - 094500005A04045A00006500026A00026E00027401047800047A01057A02037B - 00027F0001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018100008001007F00027F00038A00066B0108FFFDF9F8FFFBFBFFFCFFFFFC - 240C0E23000433070D2500012D0E0F1E00002D09092300002C0C0D1C0000220D - 0CD3C4C28F83830B0605FFFFFEF3F4F2FAFCFCFDFFFFFBFDFDFFFFFFFFFFFF81 - 7F7F211C1B150D0D8F8A89FFFDFCFAF5F4FFFFFEFFFFFEFFFCFBFDF9F8FFFFFE - FFF9F9FFFBFBFFFEFEEDDFE0FFFDFEFFFCFEFFFCFCFFFCFCFFF2F2A28E8D200E - 0D1000003D292815000028080928030530090B240000300B0D200000290A0BFF - FDFCFFFEFEFFFAFAFFFCFC1E00003A090B3300004707074100004502003B0000 - 490908370000480A0A3700004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004001033900 - 004209083500004A0D0B3A0000520A0A4500005402015700005D00006602026D - 02047103057502057902037901027F0001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018100008001007F00027F00038A00066B0108 - FFFDF9F8FFFBF6FCF7FEFBF71A02041E00002900032300002304051900002100 - 00200000220203190000180302C9BAB8857979050000EBE9E8FFFFFEFBFBFBFE - FEFEFFFFFFBEBCBC04000004000005000075706FFFFFFEFAF6F5FFFDFCFDFBFA - FFFFFEFFFDFCFFFFFEFDF9F8FFFFFEFFFEFDFAF0F0FFFBFBFFFEFEFFF3F4FFF9 - F98C70702109091200001000001000001500002107071D000020000027000123 - 00002801031E00001F0001FFF9F8FFF9FAFFFEFEFFF0F03210102B0000460D0C - 3A00004502014100004808043900004A0D0B370000480A0A3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E0000420404390000490B0B3700004A0D0B39000049080744 - 00004A00005100005B01016201036B03047002047401047801027D0101800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001810000800100 - 7F00027F00038A00066B0108FFFDF9F8FFFBFBFFFCFFFFFC240C0E2300043307 - 0D2500012D0E0F1C00002B09092100002C0C0D1B0000210C0BD3C4C28F83830D - 0505FFFFFEFFFFFEECEAEAFFFFFF817C7D0500001C1415847C7DFFFFFEFCF7F6 - F8F3F2FFFFFEFFFFFEF7F8F6FFFFFEF6F7F5EDEEECF8F9F7F7F5F4FFFFFEFFFC - FBFFFFFEF4ECECDACCCD170000240808260E0E1200002E1C1B1000001D080717 - 000027070828030531090B250000320B0D200000290A0BFFFDFCFFFDFEFFF9F9 - FFFCFC1E00003C0B0D3300004808084100004502003A00004A0A093700004A0C - 0C3700004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A000042010341000048060739000048 - 0A0A350000430A08360000400503400000470000500000590101630101690102 - 6E00027500017D00028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018100008001007F00027F00038A00066B0108FFFDF9F8FFFBF6FC - F7FDFAF61A02041E00002800022300002304051900002100001E000022020317 - 0000160201C9BAB8857979070000FDF8F7F8F4F39C97980500000B0506857D7E - D2C7C9FFFDFFE4DFDEFFFFFEFFFEFDF7F5F4FFFFFEFCFFFDF6F9F7FDFFFEFDFF - FEF8FBF9FDFFFEFFFFFEF9F7F6FFFFFE807C7B0C00001E06062307071500001D - 08071200001501001A05041700001F00002200002700012300002801031E0000 - 1F0001FFF7F7FFFAFBFFFEFEFFF1F1310F0F2B0000440B0A3B00004502014100 - 00470703390000480B093700004709093A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A000044030540 - 00004802034200004705063700004108073200003A07043702003A0200400100 - 4900005100005B00006400006B00007300007D00028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018100008001007F00027F00038A00 - 066B0108FFFDF9F8FFFBFBFFFCFFFFFC240C0E23000433070D2500012D0E0F1C - 0000290A091F00002B0C0D190000200C0BD3C4C28F83830D0505C9C4C38E8988 - 0E08090E0607CDC2C4FFFDFFFFFDFFFFF4F6FFFFFEFEFAF9FFFFFEF7F5F4FFFF - FEEDF0EEFDFFFEFBFFFEE8EDEBF9FEFCFAFFFDF6F9F7898A8802000017151409 - 00001D05051900002F151519040324100F1200002914131700002907082A0305 - 31090B250000320B0D2200002A0A0BFFFCFCFFFDFEFFFCFCFFFCFC2000003706 - 083600004505054200004401003D00004606053700004507073800004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004100014600014802034000004103033800003C0403 - 3701003904013A03003E01004200004900005000005800005F00006500007202 - 027601027601027601027801027801027901027901027B00027B00027D00027D - 00027F00027F00027F00027F00027F00017F00017F00017F00017F00017F0001 - 7F00017F00017F00017F00017F00017F00017F00017F00017F00018000018100 - 008000017D00027C0003830008660208FFFCFBFDFFFBF8FCF7FFFAF71C010420 - 00002600032000002304051B00002300002000002503041900001A0202CCBAB9 - 8678790900000904030702017F797AFFFBFCFFFDFFFCF1F3FFF7F9FFFEFEFFFF - FEF3F4F2FFFFFEFFFFFEFDFFFEFDFFFEF4F7F5FFFFFEFFFFFEFFFFFEC4C2C104 - 00000904030700000900001002031800001C00001800001500001300001F0A09 - 1500001F03031E00002000002600012200002601031E0000210102FFF8F8FFFB - FCFFFEFEFFF8F82907072E00003E05043F00004300004300004202003E000040 - 03013C00004002023F00004000013D00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E0000410002400001410001400000 - 4201033E00004001033C00003D01023C00003E00003F00004301024100004701 - 024500004A00014E00005500005A00005E02015C00006505056602026B05066E - 03057305077302057A05087700037D04087A00037F01067D00047C00017A0000 - 7D00027900007E01037900007D00027B00007C00017A00007D00027900007E01 - 037900007D00027D00007E00007D00017A020771000474010B580008FFFBFBFF - FFFCFFFFFEFFFEFE290A0B27000229090A1D00002C0E0D2100003A0D10290000 - 2D04092B060A331619C2ACAED8C8C9090000837E7DBFBBBAFBF7F6FFFFFEFFFF - FEFFFDFCFFFCFCFFFBFAF5FAF8F8FFFCFAFFFCF6FCF7FDFFFCF3F4F0FFFFFCFE - F9F6FFFDFA8A7E7C2A1B191000001F0A091C04042309091A0000270809210203 - 2509091C0000270B0B1E020224080820010226070823030429090A1E00002B0B - 0C1E0000290A0BFFFCFCFFFCFDFFFEFEFFFCFC2402023201033A010042020242 - 00004300004000004202013C00004002023C0000410002400001430204420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004200014400004C010046000055 - 05044C00005B05055700005F01026500026D040768000076070B6D00007C060B - 7500027A02077700037A05067100007D08097000007C07087300007803047500 - 017A05067100007D08097000007C07087300007B02067B00018002086E000372 - 080F6300035A0A11FFF6F8FFFEFCFCFAF9FFF9F92101022200001F0100170000 - 2306022000002500002800002500021C0000170000E7D2D4C4B8B8837E7DFFFF - FEFFFFFEF9FCFAF5F8F6F9FAF8FFFFFEFFFFFEFFFFFEFAFFFCF4FEF8F6FDF8FB - FFFCF2F6F1FFFFFCFFF8F59185831809071000001300001700002405061C0000 - 2100001C00001E00001B00001E00001B00002001021B00001C00001B00001C00 - 001B00001F00011B00002102031B00001F0001FFF8F8FFFAFBFFFEFEFFF4F42D - 0B0B2B00004108073D00004401004200004505013A0000450806370000440606 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073F - 00004300003E00004C07044000005308064700005604035100005A0000560000 - 6906085A000070090C61000072070A6B00036E0305660000750A0C620000760B - 0D6400007207096A00016E0305660000750A0C620000760B0D6400007207096D - 00017500026E000075090F5900006D0A12460000FFFBFCFFFFFCFFFFFEFFFEFE - 2B0B0C270002290B0A1900002E0F0C21000024040528090C2005081400011709 - 0A817979FFFFFEF5FAF8F1FAF7F4FFFCF6FFFEF6FFFEF8FFFEEFF8F5F5FCF9FA - FFFEF0F6F1F4FAF5FDFFFCFDFEFAFFFFFCC0BBB88A817E0D0000100000120000 - 2810101C02022001021D00002F0D0E22020328080922030428090A1E00002A0B - 0C200102270809210203270809230405290A0B1D00002B0C0D1D0000290A0BFF - FCFCFFFDFEFFFAFAFFFCFC1E00003A090B3300004707074100004502003B0000 - 490908370000480A0A3700004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004809053900004E0E0A3C0000520B08 - 4200004F02004B00005704034C0000620A0A50000066090A5700006002035A00 - 00630605530000680B0A5300006609085500005F02015A000063060553000068 - 0B0A5300006609085500006300026400006D020555000064080D5000004F090F - FFF0F1FFFFFCF8FBF9FFFAF92101022200001F01001700002405021C00001F03 - 031500001200000E0000201616040000F3F6F4F9FFFDF6FFFEF0FEFAEEF9F6F3 - FEFBF6FFFEF8FFFEF6FDFAF2F7F5FFFFFCF0EFEBFFFEFAFFFFFC7B7471170E0B - 0E01001000001F0B0A1601001E04041900001B00001C00002301021E00001E00 - 001B00001E00001B00002001021B00001C00001B00001C00001B00001F00011B - 00002102031B00001F0001FFF8F8FFF9FAFFFEFEFFF0F03210102B0000460D0C - 3A00004502014100004808043900004A0D0B370000480A0A3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003F0604350000 - 460D0B3500004B0E0C390000490807410000470101400000530909430000580A - 0B4700005505064B000050000147000057070847000059090A4700005404054B - 000050000147000057070847000059090A4700005404054E00005B0000530000 - 5C080A4700005C080D370000FFFCFCFEFDF9FBFFFEFFFFFE2B0B0C270002290B - 0A1900002E0F0C1F00002E14141701031A05070E00002418180F0A09939190FD - FFFEF7FCFAFAFFFEFBFFFEF8FDFBFBFEFCFDFFFEFFFFFEFFFFFEFFFFFCFFFFFC - BFB3B11205031407050E0000210F0E1300001B03031700002105051E00002606 - 071F00002C0A0B22000128080923030429090A1F00002B0B0C21010227070822 - 02032707082404052A0A0B1E00002C0C0D1E00002A0A0BFFFCFCFFFDFEFFF9F9 - FFFCFC1E00003C0B0D3300004808084100004502003A00004A0A093700004A0C - 0C3700004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023700003D0805320000430C093200004209073600004003013D00 - 004606053A00004D0A093C00004B08073E00004600004300004B05053E00004F - 09093E00004E08083F00004701014300004B05053E00004F09093E00004E0808 - 3F00004B01014E00005705044200004F090A420000440B0EFFF5F4FDFFFCF5FC - F9FDF9F82001022200001E00001700002405021C00001B00001900002E131619 - 03051402030E00000B00000900008C8484B4ACACD2CACACCC4C4C0B6B6C4B8B8 - CBBDBECCBEBFCABBB982706F1A08071200001200001C07061C0404170000280E - 0E1900001B00001B00001E00001C00002100001E00001E00001C00001F00001C - 00002101021C00001D00001C00001D00001C00002000011C00002202031C0000 - 200001FFF7F7FFFAFBFFFEFEFFF1F1310F0F2B0000440B0A3B00004502014100 - 00470703390000480B093700004709093A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003A02013200003C07043000003E09 - 063300003D06033900003B02003800004207053700004508063900004306043E - 01004202023D00004706083A00004807093B00004504063F00004201033D0000 - 4706083A00004807093B00004504064000004800004400004707063700004906 - 09300000FFFEFCFBFFFCF8FFFEFFFFFE2A0B0C270002290B0A1900002D100C21 - 00003D161823000030080D2400031C00001B000045282B170000260B0E22070A - 1C01041B00012506092D0E1129080C1B0000250B0B230B0B220A0A1C02023F25 - 251700001900002408082307071B00002102032505063313142606072707081C - 000028080923030429090A1F00002B0B0C210102270708220203270708240405 - 2A0A0B1E00002C0C0D1E00002A0A0BFFFCFCFFFDFEFFFCFCFFFCFC2000003706 - 083600004505054200004401003D00004606053700004507073800004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00013A01 - 003B04013801003C05023801003D06033A03003C05023800003A01003700003D - 04023900003F06043C03013E05043B00003D01023A00003E02033900003E0203 - 3B00003C00013B00003D01023A00003E02033900003E02033B00003E00003F00 - 00410200360000390100390000330406FFF9F7FAFFFCF3FCF9FEFAF920010222 - 00001D01001700002306021E00002500002F0107270000280002260002220000 - 2100002000002200012000002200002200002300002500002500002500011C00 - 001900001B00001900001B00001B00003213141B00002001021B00002303041C - 00001C00001C00002404051E00001F00001C00001F00001C00002101021C0000 - 1E00001C00001E00001C00002000011C00002202031C0000210102FFF8F8FFFB - FCFFFEFEFFF8F82907072E00003E05043F00004300004300004202003E000040 - 03013C00004002023F00004000013D00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00013E00003B00003E02023A00003E02023A00003D01013A - 01003C00003B00003E02023A00003C03023800003B02013A01003C00013D0002 - 4000053C00014000053C00013F00043E00033E00033D00024000053C00014000 - 053C00013F00043C00013F040232000045120F2E000043090A290000FFFEFCF5 - FBF6F4FBF8FFFFFE1F00012B0406311514150000280D0922030230080A2A0004 - 31050B250000330A0F2600032D050A2500022F070C2700042F060B2500003509 - 0F2B000332040A2800022B090A2001022808091B00002C0C0D2000012707081F - 000028090A2001022708091B00002B0C0D1F00012607081E000028090A200102 - 2708091B00002B0C0D1F00012607081E0000240506270809290A0B1B00001C00 - 002A0B0C1B0000FFFCFCFFFDFEFFFDFDFFF8F82100004211133600004A0A0A3C - 00004300004000004202013C00004002023C0000410002400001430204420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004404043A000047 - 07073900004406063A00003F01013D0000420404380000430707350000420606 - 3800003D01013D00004202073A000045050A3900004404093C00003F00043F00 - 024202073A000045050A3900004404093C00003F00023900003F0B052B00003C - 0B09330000491A1CFFF0EEFDFFFCFAFFFEFCF7F6200001220000230A08130000 - 1C03001900002000011E00002100021E00002401051E00001E00011C00002200 - 031E00002300022000002601052200002400012200002200011C00001F00001C - 00002202031B00001E00001B00001F00011B00001E0000190000210203190000 - 1D00001900001F00011900001E00001900002102031900001D00001900001B00 - 001900002506072509092B0C0D1900001B0000FFF4F4FFFDFEFFFEFEFFE9E930 - 0E0E2B0000370000390000520F0E4200004505013A0000450806370000440606 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004301023B00004A08093A00004B090A3A00004705063E00004202023A0000 - 490909370000480A0A3700004406063E00004201033A00004A070A3900004B08 - 0B3900004704073E00004300033A00004A070A3900004B080B3900004704073C - 00003400003300004919152E00004E12132F0000FFEFEEFFFFFCFBFFFEEDE5E5 - 4222232200001C030112000028140F230E0C1B07061601031B06081400011D08 - 0A1601031A05071500021B06081601031C06081500011E080A1901031D05071A - 00022405061F00012405061D00002607081D01012304051C00002206061D0101 - 2206061900002408081B01012105051A00002206061B01012206061900002408 - 081B01012105051A00002C10101700001900001700001F0303190000472B2BFF - F5F4FFFBFBFFF8F8FFFCFC1E00004211133300004707073C00004502003B0000 - 490908370000480A0A3700004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033F00004A06073C00004F0B0C3C00004D090A - 3A00004301023F00004806073900004C0C0C3900004A0A0A3900004202023F00 - 004805083A00004D0A0D3A00004B080B3A00004300033F00004805083A00004D - 0A0D3A00004B080B3A00004202023D02003D06013906033200003F0000370205 - FFFDFCFFFFFCFAFBF9FFFEFEFFE9EAFFF6F8FFFDFBFFFCF9FFFCF7FFEFECFFFE - FCFFFEFEFFFEFEFFFEFEFFFEFEFFFEFEFFFDFEFFFEFEFFFDFEFFFDFEFFFDFEFF - FDFEFFFDFEFFFDFEFFFDFEFFFDFEFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFC - FFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFC - FCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFF7F7FFFCFCFFFCFCFF - FCFCFFFCFCFFEDEDF7DFDFFFFDFCFFFEFEFFFEFEFFF5F52000002B00004A1110 - 3F00004704034100004808043900004A0D0B370000480A0A3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E00004300033A0000 - 4B080B3A00004D0A0D3A00004805083F00004300033A00004B080B3A00004D0A - 0D3A00004805083F00004301023A00004B090A3A00004D0B0C3A00004806073F - 00004301023A00004B090A3A00004D0B0C3A00004806073E0000430302350000 - 3B0401370000510C0F320000FFFCFCEDE6E3FDFBFAFFFEFEFFFAFCFFF9FBFFFD - FBFFF8F5FFFFF9FFFEFBFFF9F7FFFAFAFFF9F9FFFBFBFFF8F8FFFBFBFFF9F9FF - FBFBFFF9F9FFFAFAFFF9F9FFFBFBFFF8F8FFFBFBFFF9F9FFFAFBFFF8F7FFF8F8 - FFF7F7FFF9F9FFF6F6FFF9F9FFF7F7FFF9F9FFF7F7FFF8F8FFF7F7FFFAF9FFF6 - F6FFFAF9FFF7F7FFFAF9FFF8F7FFF9F8FFF8F7FFFAF9FFF7F6FFFAF9FFF8F7FF - FAF9FFF6F5FFFDFCFFFAF9FFF1F0FFFDFCFFFDFCFFFDFCFFF9F8FFFEFEFFFBFB - FFFCFC2B09093F0E103500003C00004906054502003A00004A0A093700004A0C - 0C3700004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3B00004201033F00 - 004605073A00004B080B3A00004A070A3B00004300033F00004705063A00004B - 090A3A00004A08093B00004301023F00004705063A00004B090A3A00004A0809 - 3B00004302013B00004203003A00004F1111410000420509FFFBFCFFFFFCFFFC - FBFFF9FAFFFAFCFFF8FAFFFBF9FFFBF8FFFBF5FFFEFAFFFEFCFFFDFEFFFDFEFF - FDFEFFFCFDFFFDFEFFFDFEFFFDFEFFFDFEFFFDFEFFFDFEFFFDFEFFFCFDFFFDFE - FFFDFEFFFDFEFFFDFCFFFDFCFFFDFCFFFDFCFFFCFBFFFDFCFFFDFCFFFDFCFFFD - FCFFFDFCFFFDFCFFFDFCFFFCFBFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF - FDFCFFFCFBFFFDFCFFFDFCFFFDFCFFFAF9FFFDFCFFFBFAFFFDFCFFFBFAFFFDFC - FFFCFBFFF7F5F9EFEFFFFEFEFFFBFB2A08083100023500004808084401004100 - 00470703390000480B093700004709093A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00003F00023A00004405073700004506 - 083800004403053D00004100023A00004605073900004706083A00004403053F - 00004101013C00004606053900004707063A00004404033F00004101003C0000 - 4606053900004707063A00004404034000004D0A073F00005212113A00005407 - 0B400003FFE2E3FFFEFCFFFEFEFFFDFEFFFAFCFFFAFCFFFDFBFFFFFBFFF7F1FF - F9F6FFF5F4FFFBFDFFF4F7FFFBFEFFF1F4FFFBFEFFF5F8FFFBFEFFF3F6FFFAFD - FFF4F7FFFBFEFFF2F4FFFCFEFFF6F8FFFCFEFFF5F4FFFCFBFFF6F5FFFDFCFFF3 - F2FFFDFCFFF7F6FFFDFCFFF5F4FFFCFBFFF6F5FFFDFCFFF3F2FFFDFCFFF7F6FF - FDFCFFF5F4FFFDFBFFF6F5FFFEFCFFF3F2FFFEFCFFF7F6FFFEFCFFFDFCFFFEFC - FFF9F8FFFEFCFFF5F4FFFEFCFFF8F7FFFEFCFFFEFEFFFEFEFFFCFC1E00004918 - 1A3300005313133C00004401003D00004606053700004507073800004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000013E00 - 013D01023C00004001033C00004001033D00003E00013E00013F00023C000040 - 01033E00004201033F00004000014000004101003E00004202013E0000420201 - 3F00004000004000004101003E00004202013E00004202013F00004100003C00 - 004A07063A00004C0809480000470409300607290D0D1300002408082A000031 - 02041D00002108061C03002C100F2300002D0608270001330B0D2300002F0709 - 2A000232070A2600002E0608270001330B0D2200002C07092700022B090A1E00 - 002408071D0101290D0C190000250908200102280A091E00002608071F00012B - 0D0C1B0000270908210102280A091C00002408071D0101290D0C190000250908 - 1E0202260A091D01012105041900002A0E0D1900002D11101900002208081500 - 002B11111E00002500003703034D1112390000500F0E4300004201003E000040 - 02023C00004002023F00004000013D00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013D00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000004000013F00004201033E00004201 - 033E00004100024000004100004000004202023F00004500033E00003A010235 - 00033301033400023C0105380000390303330000360202350101370003380002 - 3B02053700013B02053700013A01043900033900033800023B02053700013B02 - 053500013A010437000335000334000037020533000037020533000036010435 - 0101350003340000370205330000370205330000380104350101350003340000 - 3702053300003702053300003601043501013500033400003702053300003702 - 053300003601043500033301033400023902053700003E02033C000041000240 - 00004100003F00004202023E00004201033E0000410002400001430204420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000013D00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E0000410002400001430204420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000013D00003E0000400001430204} - end - object lblWelcome: TLabel - Left = 172 - Top = 10 - Width = 318 - Height = 50 - Caption = 'Welcome to the Metamod:Source (version) Setup Wizard' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -21 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - WordWrap = True - end - object lblInfo1: TLabel - Left = 172 - Top = 82 - Width = 331 - Height = 26 - Caption = - 'This wizard will guide you through the installation of Metamod:S' + - 'ource (version).' - WordWrap = True - end - object lblInfo2: TLabel - Left = 172 - Top = 120 - Width = 335 - Height = 39 - Caption = - 'It is recommended that you close all other applications before s' + - 'tarting a setup for e.g. Half-Life 2 or other games. Otherwise y' + - 'ou should restart your system after this installation.' - WordWrap = True - end - object lblInfo3: TLabel - Left = 172 - Top = 176 - Width = 108 - Height = 13 - Caption = 'Click Next to continue.' - end - end - object jspLicense: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - object pnlLicense: TPanel - Left = 0 - Top = 0 - Width = 527 - Height = 49 - Align = alTop - BevelOuter = bvNone - Color = clWhite - TabOrder = 0 - object imgIcon1: TImage - Left = 486 - Top = 8 - Width = 32 - Height = 32 - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000002000 - 0000200806000000737A7AF40000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C000008ED4944415478DAD556096C54D7153D7FE6CFFC59BC321EE3F1162F60 - 833DB6C10B019C60410007D43649518480B64924BAD0D00401A58AD456EA42A4 - 268A4848216D43054A55910588484A020D2EE09D181BDB78C106DB638FEDB1F1 - 18DBE3F12C7FFED2FBBFC1402090B46AAB3EE96966DEBCE5DC7BCF3DF732AB57 - 3F8EFFE6D06AB5686C6C80CBE5527F33FF8F00CC34B9AF7340969529836120B1 - 2C3BDED07001C3C3C35F19004B7339CDB5744911DD9328430E67C02817D264EE - 7B58926408A20893914320C08B3A1DDBD9D3D3BDB7B3B3E3FDAF02600341DF29 - 8872BE286BC1EA39707AFA6419D5A2202F83E74380C883D5021A0D73D7E346A3 - 1E3F78E69B489D930247B71307DEF9580182CB97DBB7381C3D7FF832007134F7 - 0BA2F494ACE1101F6B4656BC0F732CE3B09A791875324472ABC7CF6060C288F6 - E128740C6AE1F54E41AF9566BC120886B0A2380BDF5B5F8ADFED3B8A977EB20E - 474FD4E2A393B5049819AFACACB0DF0B400645EC3819362F26D68255760F8A13 - 5D88B725C2146B87C69C044617465B44C8C1318426AEC0E36A419B730A7FBFFA - 102E748A80E023B269542F994D9C1227F294803FEEDE80831F36A0ACBC590D49 - 7D7DDDFA2F02502C3FC70B4CC6FC0C2B36E5B6213BD10073E626B0519960345A - C892A0D00A924C618086EE26DF0B531086CEC1DD7E0CA77A5270AC2E0281A949 - C54A8ABF043E24E1575B164267B6E2B7FBCB2189210A234B002E6CBE1D8086E6 - DFC8F235F6F9B3F1C385E7911C1B0EA3FD456828759A1D22AE793420C354F215 - A6F230734A9C152611109D19D24407BC4D7B503698834395B3C0FB271122BC1B - 4B6D5856908C1D7B9BE0A330190D3A088218AAAAAA58C19496AE515D45F35951 - 940FC6C55BB1BDA41369BA361873B781E1ACD02288CFDA67C1311E01032B4224 - 721526B8919B14002FDE229E863523D47F0ABEDE933836B00A7F39A34141860E - AF6F5F884FEAFCE8EC19414B970703435E0C0D0D5636355D5CCBE4E717107B35 - E6A8A8E866B0E6B4CDAB24AC8CFA94DC351BBAF4F58A79D03012DA5D61180B18 - 31EC35C0E531C0C28DE3E9FC6BE40D8AF50C021DE4C93EF08E0F302E5AF04A4D - 31A6A6043C5A10A7440D1CC7A2B27114DDCE71345EACFBB1DBED7E8BD1EBF588 - 8B8B5B3F37D3FE6E669A053B1757221A2E30FA30B0B615605813794702AB91C1 - E944B40E46E2484B32B990C7A6050EA4C70AAA17981B00C4894E88A3F5F4A084 - F29102BC713A1641BF173733D4C8E9303939DE535B5B53425E77AACB0B16E4BF - 1F13F7D0D31B96C978D2F6992A9732B15C634E80262243BD4C3141A79531E4D1 - 615F7506A67816453627BEF3F02802218DCA03884188D79B2841FCAAFC8DF251 - 78B972097A9C93D0B1D308585687E6E6C657FBFB9DBB542122361A962C296E8B - B6C6A5EE5CD98B1C632318AD7EDAADF4B0C6685179408B30E9451CA88C468533 - 0D0612244E1EC32F4ABB1161A444080520FB06200B816952D2F11089C581D665 - 38D940DE632525D42442018F42BE502854AF02309BCDC9458B96B627265A4D2F - 9534205ED74BABBADB845C525D6B301AD03164C42F4FCE87DE14AD7A64CA17C2 - F78B9AF18D6C377D0F4E8BBEE2094C678A4CE9F651DF221CAC88849EE1A1D3E9 - 70F5EA950F3A3A2E6FA42D82BA2F2C2C2CBBA070496366BA95DDB5B41A167644 - B5F6F6A1643C47ECFFD9311BCE0F6722D512443817428B2B02B931DD78EDDB0E - 08127B8B8CEA1905630865AE3CEC3F1307AD1C5016C4EAEAAA755EAFF7F8CC3E - 05402101C8488FB901C07D1700935E467927879F7F9A05D61085AD4BDB616405 - BC7ACE0E569AC09E275A30CF16425060EE02F00F572EF69DB141AF1194D43B7F - F162C36AFAC733B38F42904221684D4A8CA110D4C3A673DE118269F64AD8FA5E - 323A3D69C8B47AF1C6130D18F3EBF1E2F185182652AEB7B7E285E56E7883B780 - DF0CC1C7BD853848BC51F4A3AEEEFC0B947A6FDEE15D62BC69C9D2475A2DD6B8 - 949D8F75C16E6EA130EA67DC19669070B4DE88D7CA73603499F0D3925694660C - 931831D85D361FA7AFC623DE3088031B3A10499D829F57C8379D968A0CFFB9B5 - 18279BF4084E5DEFABA9A95652CF716778D5345C782CC696FAD4A64702F856FC - 594AC3E9782AB2EB0BCAF8D1BBE918E293B138D98DDF3CDEA23EAE5854E9B010 - 885C88C4FC67165CC2D098041BF173D3121EFEA084EB41135EAE5A8ADE411E1D - 979BF7F4F5F56DFF62E55301D86CF1DFCDCEC97F675E6A38763C5C812876420D - 8362FD818A701C6AB0233A9CC5AF57372327DE4379AF55C185A8F0ED3A9107E7 - 7818BC93E3F0F21C526679F1F6C6AB30698328776560EFD964F0BE715F7575E5 - 63C160B0F69E00480BA2480B9A4C1131C99B974F6265ECE7249B7A38DC1A3C7F - 641E021A1B9ECCEEC3B647AFC02F686F1E839974E17063320E5D9843592223DA - 2460EE2C379E2BEC22D594F14A55212E39240C3ABB4EB4B5B5AEA323C17B0250 - 466242E2D6ACECBC3767CF8EC08E920E6484F7E3D250241A5C5698382D4A5287 - 610DE311923433C754659C34128054E42578A8405D872D22A0880D8E74CCC3E1 - 9A704A046FB0A6A66A9DCFE73B817B8C1900D4C57054984E455BE24BEC734CD8 - B2A81D49E113D4824D133240960B92A270CCF42995E6D37D2129377542B21A92 - 50C087B37D09F853790C756A3CDADA2EBDD5D7D7BB8D4EF0F705A00C83C19051 - 54B4E834678C4A9A9F66C2B3454ECC891CA5326B80ACD1DDD87E03C08DEF37B1 - 2875C017E471BA2B0E876B23C0533BD6EFEC296B6D6D798EFE75E24BC65D2D2D - E9C262F2C47B9C3132D932CB88B5797E14278F20C6A474315AA57ADC925BF28D - D221F979115D6E033EA19EA1B6430B860468A0BFF72C3DFE3CA55D1BEE33EED9 - 53731C97939565FFBD35366E9944D9906065919714C2DCD800628907D4D0A81D - AF27C0A07F5C8F9601035AFBB5540F04305250E8EABAF2576ABD77D35557F080 - 71BFA63ED266B36D494949DB6C0E8B4C97C972C5039C9E514BAB4C0002216ACB - 69529347BF7969D47DEDF3EEEEAEB73D1ECF87747EEC418F3F08C04D72A6582C - 96353131D695111111597ABDC14A65D500E55951F005027ED7D8D858D3C8C8B5 - B2C9C9C9725AEF03EEA84BFF1E80DB23433396A47B360130290BA2284E499244 - E51354C1E0FB1A77FD4B00FE23E37F0EE09F19A8E321D9E34DB9000000004945 - 4E44AE426082} - Stretch = True - Transparent = True - end - object lblTitle1: TLabel - Left = 12 - Top = 8 - Width = 116 - Height = 14 - Caption = 'License Agreement' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object lblSubTitle1: TLabel - Left = 22 - Top = 28 - Width = 408 - Height = 13 - Caption = - 'Please review the following license terms before installing Meta' + - 'mod:Source (version).' - end - object bvlSpacer1: TBevel - Left = 0 - Top = 46 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - end - object freLicense: TmxFlatRichEdit - Left = 10 - Top = 62 - Width = 507 - Height = 207 - Lines.Strings = ( - 'The zlib/libpng License' - '' - 'Copyright (c) 2006-2008, AlliedModders' - '' - - 'This software is provided '#39'as-is'#39', without any express or implie' + - 'd warranty. In no event will the ' - - 'authors be held liable for any damages arising from the use of t' + - 'his software.' - '' - - 'Permission is granted to anyone to use this software for any pur' + - 'pose, including commercial ' - - 'applications, and to alter it and redistribute it freely, subjec' + - 't to the following restrictions:' - '' - - ' 1. The origin of this software must not be misrepresented; y' + - 'ou must not claim that you wrote the ' - - 'original software. If you use this software in a product, an ack' + - 'nowledgment in the product ' - 'documentation would be appreciated but is not required.' - '' - - ' 2. Altered source versions must be plainly marked as such, a' + - 'nd must not be misrepresented as ' - 'being the original software.' - '' - - ' 3. This notice may not be removed or altered from any source' + - ' distribution.' - '') - ReadOnly = True - ScrollBars = ssVertical - TabOrder = 1 - Activate = True - BorderColor = clBtnShadow - Flat = True - ShowBorder = True - Version = '1.26' - end - object frbAgree: TFlatRadioButton - Left = 10 - Top = 274 - Width = 231 - Height = 17 - Caption = 'I accept the terms in the License Agreement' - TabOrder = 2 - OnClick = CheckNext - end - object ftbDontAgree: TFlatRadioButton - Left = 10 - Top = 290 - Width = 265 - Height = 17 - Caption = 'I do not accept the terms in the License Agreement' - Checked = True - TabOrder = 3 - TabStop = True - OnClick = CheckNext - end - end - object jspInstallMethod: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - object lblInstallMethod: TLabel - Left = 124 - Top = 124 - Width = 144 - Height = 13 - Caption = 'Please select a install method:' - end - object pnlHeader2: TPanel - Left = 0 - Top = 0 - Width = 527 - Height = 49 - Align = alTop - BevelOuter = bvNone - Color = clWhite - TabOrder = 0 - object imgIcon2: TImage - Left = 486 - Top = 8 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000002000 - 0000200806000000737A7AF40000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C000008ED4944415478DAD556096C54D7153D7FE6CFFC59BC321EE3F1162F60 - 833DB6C10B019C60410007D43649518480B64924BAD0D00401A58AD456EA42A4 - 268A4848216D43054A55910588484A020D2EE09D181BDB78C106DB638FEDB1F1 - 18DBE3F12C7FFED2FBBFC1402090B46AAB3EE96966DEBCE5DC7BCF3DF732AB57 - 3F8EFFE6D06AB5686C6C80CBE5527F33FF8F00CC34B9AF7340969529836120B1 - 2C3BDED07001C3C3C35F19004B7339CDB5744911DD9328430E67C02817D264EE - 7B58926408A20893914320C08B3A1DDBD9D3D3BDB7B3B3E3FDAF02600341DF29 - 8872BE286BC1EA39707AFA6419D5A2202F83E74380C883D5021A0D73D7E346A3 - 1E3F78E69B489D930247B71307DEF9580182CB97DBB7381C3D7FF832007134F7 - 0BA2F494ACE1101F6B4656BC0F732CE3B09A791875324472ABC7CF6060C288F6 - E128740C6AE1F54E41AF9566BC120886B0A2380BDF5B5F8ADFED3B8A977EB20E - 474FD4E2A393B5049819AFACACB0DF0B400645EC3819362F26D68255760F8A13 - 5D88B725C2146B87C69C044617465B44C8C1318426AEC0E36A419B730A7FBFFA - 102E748A80E023B269542F994D9C1227F294803FEEDE80831F36A0ACBC590D49 - 7D7DDDFA2F02502C3FC70B4CC6FC0C2B36E5B6213BD10073E626B0519960345A - C892A0D00A924C618086EE26DF0B531086CEC1DD7E0CA77A5270AC2E0281A949 - C54A8ABF043E24E1575B164267B6E2B7FBCB2189210A234B002E6CBE1D8086E6 - DFC8F235F6F9B3F1C385E7911C1B0EA3FD456828759A1D22AE793420C354F215 - A6F230734A9C152611109D19D24407BC4D7B503698834395B3C0FB271122BC1B - 4B6D5856908C1D7B9BE0A330190D3A088218AAAAAA58C19496AE515D45F35951 - 940FC6C55BB1BDA41369BA361873B781E1ACD02288CFDA67C1311E01032B4224 - 721526B8919B14002FDE229E863523D47F0ABEDE933836B00A7F39A34141860E - AF6F5F884FEAFCE8EC19414B970703435E0C0D0D5636355D5CCBE4E717107B35 - E6A8A8E866B0E6B4CDAB24AC8CFA94DC351BBAF4F58A79D03012DA5D61180B18 - 31EC35C0E531C0C28DE3E9FC6BE40D8AF50C021DE4C93EF08E0F302E5AF04A4D - 31A6A6043C5A10A7440D1CC7A2B27114DDCE71345EACFBB1DBED7E8BD1EBF588 - 8B8B5B3F37D3FE6E669A053B1757221A2E30FA30B0B615605813794702AB91C1 - E944B40E46E2484B32B990C7A6050EA4C70AAA17981B00C4894E88A3F5F4A084 - F29102BC713A1641BF173733D4C8E9303939DE535B5B53425E77AACB0B16E4BF - 1F13F7D0D31B96C978D2F6992A9732B15C634E80262243BD4C3141A79531E4D1 - 615F7506A67816453627BEF3F02802218DCA03884188D79B2841FCAAFC8DF251 - 78B972097A9C93D0B1D308585687E6E6C657FBFB9DBB542122361A962C296E8B - B6C6A5EE5CD98B1C632318AD7EDAADF4B0C6685179408B30E9451CA88C468533 - 0D0612244E1EC32F4ABB1161A444080520FB06200B816952D2F11089C581D665 - 38D940DE632525D42442018F42BE502854AF02309BCDC9458B96B627265A4D2F - 9534205ED74BABBADB845C525D6B301AD03164C42F4FCE87DE14AD7A64CA17C2 - F78B9AF18D6C377D0F4E8BBEE2094C678A4CE9F651DF221CAC88849EE1A1D3E9 - 70F5EA950F3A3A2E6FA42D82BA2F2C2C2CBBA070496366BA95DDB5B41A167644 - B5F6F6A1643C47ECFFD9311BCE0F6722D512443817428B2B02B931DD78EDDB0E - 08127B8B8CEA1905630865AE3CEC3F1307AD1C5016C4EAEAAA755EAFF7F8CC3E - 05402101C8488FB901C07D1700935E467927879F7F9A05D61085AD4BDB616405 - BC7ACE0E569AC09E275A30CF16425060EE02F00F572EF69DB141AF1194D43B7F - F162C36AFAC733B38F42904221684D4A8CA110D4C3A673DE118269F64AD8FA5E - 323A3D69C8B47AF1C6130D18F3EBF1E2F185182652AEB7B7E285E56E7883B780 - DF0CC1C7BD853848BC51F4A3AEEEFC0B947A6FDEE15D62BC69C9D2475A2DD6B8 - 949D8F75C16E6EA130EA67DC19669070B4DE88D7CA73603499F0D3925694660C - 931831D85D361FA7AFC623DE3088031B3A10499D829F57C8379D968A0CFFB9B5 - 18279BF4084E5DEFABA9A95652CF716778D5345C782CC696FAD4A64702F856FC - 594AC3E9782AB2EB0BCAF8D1BBE918E293B138D98DDF3CDEA23EAE5854E9B010 - 885C88C4FC67165CC2D098041BF173D3121EFEA084EB41135EAE5A8ADE411E1D - 979BF7F4F5F56DFF62E55301D86CF1DFCDCEC97F675E6A38763C5C812876420D - 8362FD818A701C6AB0233A9CC5AF57372327DE4379AF55C185A8F0ED3A9107E7 - 7818BC93E3F0F21C526679F1F6C6AB30698328776560EFD964F0BE715F7575E5 - 63C160B0F69E00480BA2480B9A4C1131C99B974F6265ECE7249B7A38DC1A3C7F - 641E021A1B9ECCEEC3B647AFC02F686F1E839974E17063320E5D9843592223DA - 2460EE2C379E2BEC22D594F14A55212E39240C3ABB4EB4B5B5AEA323C17B0250 - 466242E2D6ACECBC3767CF8EC08E920E6484F7E3D250241A5C5698382D4A5287 - 610DE311923433C754659C34128054E42578A8405D872D22A0880D8E74CCC3E1 - 9A704A046FB0A6A66A9DCFE73B817B8C1900D4C57054984E455BE24BEC734CD8 - B2A81D49E113D4824D133240960B92A270CCF42995E6D37D2129377542B21A92 - 50C087B37D09F853790C756A3CDADA2EBDD5D7D7BB8D4EF0F705A00C83C19051 - 54B4E834678C4A9A9F66C2B3454ECC891CA5326B80ACD1DDD87E03C08DEF37B1 - 2875C017E471BA2B0E876B23C0533BD6EFEC296B6D6D798EFE75E24BC65D2D2D - E9C262F2C47B9C3132D932CB88B5797E14278F20C6A474315AA57ADC925BF28D - D221F979115D6E033EA19EA1B6430B860468A0BFF72C3DFE3CA55D1BEE33EED9 - 53731C97939565FFBD35366E9944D9906065919714C2DCD800628907D4D0A81D - AF27C0A07F5C8F9601035AFBB5540F04305250E8EABAF2576ABD77D35557F080 - 71BFA63ED266B36D494949DB6C0E8B4C97C972C5039C9E514BAB4C0002216ACB - 69529347BF7969D47DEDF3EEEEAEB73D1ECF87747EEC418F3F08C04D72A6582C - 96353131D695111111597ABDC14A65D500E55951F005027ED7D8D858D3C8C8B5 - B2C9C9C9725AEF03EEA84BFF1E80DB23433396A47B360130290BA2284E499244 - E51354C1E0FB1A77FD4B00FE23E37F0EE09F19A8E321D9E34DB9000000004945 - 4E44AE426082} - Transparent = True - end - object lblTitle2: TLabel - Left = 12 - Top = 8 - Width = 137 - Height = 14 - Caption = 'Choose install method' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object lblSubTitle2: TLabel - Left = 22 - Top = 28 - Width = 263 - Height = 13 - Caption = 'Choose a install method for installing Metamod:Source.' - end - object bvlSpacer2: TBevel - Left = 0 - Top = 46 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - end - object pnlInstallMethod: TPanel - Left = 122 - Top = 142 - Width = 267 - Height = 97 - BevelOuter = bvLowered - TabOrder = 1 - object frbDedicatedServer: TFlatRadioButton - Left = 4 - Top = 4 - Width = 135 - Height = 17 - Caption = 'Steam Dedicated Server' - Checked = True - TabOrder = 0 - TabStop = True - end - object frbListenServer: TFlatRadioButton - Left = 4 - Top = 22 - Width = 115 - Height = 17 - Caption = 'Steam Listen Server' - TabOrder = 1 - end - object frbSelectMod: TFlatRadioButton - Left = 4 - Top = 58 - Width = 117 - Height = 17 - Caption = 'Select mod directory' - TabOrder = 3 - end - object frbFTP: TFlatRadioButton - Left = 4 - Top = 76 - Width = 35 - Height = 17 - Caption = 'FTP' - TabOrder = 4 - end - object frbStandaloneServer: TFlatRadioButton - Left = 4 - Top = 40 - Width = 107 - Height = 17 - Caption = 'Standalone Server' - TabOrder = 2 - end - end - end - object jspSelectMod: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - object lblInfo: TLabel - Left = 138 - Top = 114 - Width = 255 - Height = 26 - Caption = - 'The following mods were detected. Please select the mod you want' + - ' to install Metamod:Source to:' - WordWrap = True - end - object shpMods: TShape - Left = 136 - Top = 142 - Width = 255 - Height = 104 - Pen.Color = clBtnShadow - end - object pnlSelectMod: TPanel - Left = 0 - Top = 0 - Width = 527 - Height = 49 - Align = alTop - BevelOuter = bvNone - Color = clWhite - TabOrder = 0 - object imgIcon5: TImage - Left = 486 - Top = 8 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000002000 - 0000200806000000737A7AF40000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C000008ED4944415478DAD556096C54D7153D7FE6CFFC59BC321EE3F1162F60 - 833DB6C10B019C60410007D43649518480B64924BAD0D00401A58AD456EA42A4 - 268A4848216D43054A55910588484A020D2EE09D181BDB78C106DB638FEDB1F1 - 18DBE3F12C7FFED2FBBFC1402090B46AAB3EE96966DEBCE5DC7BCF3DF732AB57 - 3F8EFFE6D06AB5686C6C80CBE5527F33FF8F00CC34B9AF7340969529836120B1 - 2C3BDED07001C3C3C35F19004B7339CDB5744911DD9328430E67C02817D264EE - 7B58926408A20893914320C08B3A1DDBD9D3D3BDB7B3B3E3FDAF02600341DF29 - 8872BE286BC1EA39707AFA6419D5A2202F83E74380C883D5021A0D73D7E346A3 - 1E3F78E69B489D930247B71307DEF9580182CB97DBB7381C3D7FF832007134F7 - 0BA2F494ACE1101F6B4656BC0F732CE3B09A791875324472ABC7CF6060C288F6 - E128740C6AE1F54E41AF9566BC120886B0A2380BDF5B5F8ADFED3B8A977EB20E - 474FD4E2A393B5049819AFACACB0DF0B400645EC3819362F26D68255760F8A13 - 5D88B725C2146B87C69C044617465B44C8C1318426AEC0E36A419B730A7FBFFA - 102E748A80E023B269542F994D9C1227F294803FEEDE80831F36A0ACBC590D49 - 7D7DDDFA2F02502C3FC70B4CC6FC0C2B36E5B6213BD10073E626B0519960345A - C892A0D00A924C618086EE26DF0B531086CEC1DD7E0CA77A5270AC2E0281A949 - C54A8ABF043E24E1575B164267B6E2B7FBCB2189210A234B002E6CBE1D8086E6 - DFC8F235F6F9B3F1C385E7911C1B0EA3FD456828759A1D22AE793420C354F215 - A6F230734A9C152611109D19D24407BC4D7B503698834395B3C0FB271122BC1B - 4B6D5856908C1D7B9BE0A330190D3A088218AAAAAA58C19496AE515D45F35951 - 940FC6C55BB1BDA41369BA361873B781E1ACD02288CFDA67C1311E01032B4224 - 721526B8919B14002FDE229E863523D47F0ABEDE933836B00A7F39A34141860E - AF6F5F884FEAFCE8EC19414B970703435E0C0D0D5636355D5CCBE4E717107B35 - E6A8A8E866B0E6B4CDAB24AC8CFA94DC351BBAF4F58A79D03012DA5D61180B18 - 31EC35C0E531C0C28DE3E9FC6BE40D8AF50C021DE4C93EF08E0F302E5AF04A4D - 31A6A6043C5A10A7440D1CC7A2B27114DDCE71345EACFBB1DBED7E8BD1EBF588 - 8B8B5B3F37D3FE6E669A053B1757221A2E30FA30B0B615605813794702AB91C1 - E944B40E46E2484B32B990C7A6050EA4C70AAA17981B00C4894E88A3F5F4A084 - F29102BC713A1641BF173733D4C8E9303939DE535B5B53425E77AACB0B16E4BF - 1F13F7D0D31B96C978D2F6992A9732B15C634E80262243BD4C3141A79531E4D1 - 615F7506A67816453627BEF3F02802218DCA03884188D79B2841FCAAFC8DF251 - 78B972097A9C93D0B1D308585687E6E6C657FBFB9DBB542122361A962C296E8B - B6C6A5EE5CD98B1C632318AD7EDAADF4B0C6685179408B30E9451CA88C468533 - 0D0612244E1EC32F4ABB1161A444080520FB06200B816952D2F11089C581D665 - 38D940DE632525D42442018F42BE502854AF02309BCDC9458B96B627265A4D2F - 9534205ED74BABBADB845C525D6B301AD03164C42F4FCE87DE14AD7A64CA17C2 - F78B9AF18D6C377D0F4E8BBEE2094C678A4CE9F651DF221CAC88849EE1A1D3E9 - 70F5EA950F3A3A2E6FA42D82BA2F2C2C2CBBA070496366BA95DDB5B41A167644 - B5F6F6A1643C47ECFFD9311BCE0F6722D512443817428B2B02B931DD78EDDB0E - 08127B8B8CEA1905630865AE3CEC3F1307AD1C5016C4EAEAAA755EAFF7F8CC3E - 05402101C8488FB901C07D1700935E467927879F7F9A05D61085AD4BDB616405 - BC7ACE0E569AC09E275A30CF16425060EE02F00F572EF69DB141AF1194D43B7F - F162C36AFAC733B38F42904221684D4A8CA110D4C3A673DE118269F64AD8FA5E - 323A3D69C8B47AF1C6130D18F3EBF1E2F185182652AEB7B7E285E56E7883B780 - DF0CC1C7BD853848BC51F4A3AEEEFC0B947A6FDEE15D62BC69C9D2475A2DD6B8 - 949D8F75C16E6EA130EA67DC19669070B4DE88D7CA73603499F0D3925694660C - 931831D85D361FA7AFC623DE3088031B3A10499D829F57C8379D968A0CFFB9B5 - 18279BF4084E5DEFABA9A95652CF716778D5345C782CC696FAD4A64702F856FC - 594AC3E9782AB2EB0BCAF8D1BBE918E293B138D98DDF3CDEA23EAE5854E9B010 - 885C88C4FC67165CC2D098041BF173D3121EFEA084EB41135EAE5A8ADE411E1D - 979BF7F4F5F56DFF62E55301D86CF1DFCDCEC97F675E6A38763C5C812876420D - 8362FD818A701C6AB0233A9CC5AF57372327DE4379AF55C185A8F0ED3A9107E7 - 7818BC93E3F0F21C526679F1F6C6AB30698328776560EFD964F0BE715F7575E5 - 63C160B0F69E00480BA2480B9A4C1131C99B974F6265ECE7249B7A38DC1A3C7F - 641E021A1B9ECCEEC3B647AFC02F686F1E839974E17063320E5D9843592223DA - 2460EE2C379E2BEC22D594F14A55212E39240C3ABB4EB4B5B5AEA323C17B0250 - 466242E2D6ACECBC3767CF8EC08E920E6484F7E3D250241A5C5698382D4A5287 - 610DE311923433C754659C34128054E42578A8405D872D22A0880D8E74CCC3E1 - 9A704A046FB0A6A66A9DCFE73B817B8C1900D4C57054984E455BE24BEC734CD8 - B2A81D49E113D4824D133240960B92A270CCF42995E6D37D2129377542B21A92 - 50C087B37D09F853790C756A3CDADA2EBDD5D7D7BB8D4EF0F705A00C83C19051 - 54B4E834678C4A9A9F66C2B3454ECC891CA5326B80ACD1DDD87E03C08DEF37B1 - 2875C017E471BA2B0E876B23C0533BD6EFEC296B6D6D798EFE75E24BC65D2D2D - E9C262F2C47B9C3132D932CB88B5797E14278F20C6A474315AA57ADC925BF28D - D221F979115D6E033EA19EA1B6430B860468A0BFF72C3DFE3CA55D1BEE33EED9 - 53731C97939565FFBD35366E9944D9906065919714C2DCD800628907D4D0A81D - AF27C0A07F5C8F9601035AFBB5540F04305250E8EABAF2576ABD77D35557F080 - 71BFA63ED266B36D494949DB6C0E8B4C97C972C5039C9E514BAB4C0002216ACB - 69529347BF7969D47DEDF3EEEEAEB73D1ECF87747EEC418F3F08C04D72A6582C - 96353131D695111111597ABDC14A65D500E55951F005027ED7D8D858D3C8C8B5 - B2C9C9C9725AEF03EEA84BFF1E80DB23433396A47B360130290BA2284E499244 - E51354C1E0FB1A77FD4B00FE23E37F0EE09F19A8E321D9E34DB9000000004945 - 4E44AE426082} - Stretch = True - Transparent = True - end - object lblSelectMod: TLabel - Left = 12 - Top = 8 - Width = 68 - Height = 14 - Caption = 'Select Mod' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object lblSelectModInfo: TLabel - Left = 22 - Top = 28 - Width = 332 - Height = 13 - Caption = - 'Please select the mod Metamod:Source (version) shall be installe' + - 'd to.' - end - object bvlSelectMod: TBevel - Left = 0 - Top = 46 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - end - object trvMods: TTreeView - Left = 137 - Top = 143 - Width = 253 - Height = 102 - BorderStyle = bsNone - Indent = 19 - MultiSelectStyle = [] - ReadOnly = True - RightClickSelect = True - RowSelect = True - TabOrder = 1 - OnClick = trvModsClick - end - end - object jspFTP: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - object lblStep1: TLabel - Left = 44 - Top = 56 - Width = 100 - Height = 13 - Caption = '1. Set your FTP data' - end - object lblStep2: TLabel - Left = 44 - Top = 146 - Width = 244 - Height = 13 - Caption = '2. Connect to server and select the mod directory:' - end - object lblStep5: TLabel - Left = 44 - Top = 338 - Width = 64 - Height = 13 - Caption = '5. Click Next.' - end - object lblStep3: TLabel - Left = 44 - Top = 252 - Width = 223 - Height = 13 - Caption = '3. Select the operating system of your server:' - end - object lblStep4: TLabel - Left = 44 - Top = 296 - Width = 125 - Height = 13 - Caption = '4. Select the engine type:' - end - object pnlHeader3: TPanel - Left = 0 - Top = 0 - Width = 527 - Height = 49 - Align = alTop - BevelOuter = bvNone - Color = clWhite - TabOrder = 0 - object imgIcon3: TImage - Left = 486 - Top = 8 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000002000 - 0000200806000000737A7AF40000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C000008ED4944415478DAD556096C54D7153D7FE6CFFC59BC321EE3F1162F60 - 833DB6C10B019C60410007D43649518480B64924BAD0D00401A58AD456EA42A4 - 268A4848216D43054A55910588484A020D2EE09D181BDB78C106DB638FEDB1F1 - 18DBE3F12C7FFED2FBBFC1402090B46AAB3EE96966DEBCE5DC7BCF3DF732AB57 - 3F8EFFE6D06AB5686C6C80CBE5527F33FF8F00CC34B9AF7340969529836120B1 - 2C3BDED07001C3C3C35F19004B7339CDB5744911DD9328430E67C02817D264EE - 7B58926408A20893914320C08B3A1DDBD9D3D3BDB7B3B3E3FDAF02600341DF29 - 8872BE286BC1EA39707AFA6419D5A2202F83E74380C883D5021A0D73D7E346A3 - 1E3F78E69B489D930247B71307DEF9580182CB97DBB7381C3D7FF832007134F7 - 0BA2F494ACE1101F6B4656BC0F732CE3B09A791875324472ABC7CF6060C288F6 - E128740C6AE1F54E41AF9566BC120886B0A2380BDF5B5F8ADFED3B8A977EB20E - 474FD4E2A393B5049819AFACACB0DF0B400645EC3819362F26D68255760F8A13 - 5D88B725C2146B87C69C044617465B44C8C1318426AEC0E36A419B730A7FBFFA - 102E748A80E023B269542F994D9C1227F294803FEEDE80831F36A0ACBC590D49 - 7D7DDDFA2F02502C3FC70B4CC6FC0C2B36E5B6213BD10073E626B0519960345A - C892A0D00A924C618086EE26DF0B531086CEC1DD7E0CA77A5270AC2E0281A949 - C54A8ABF043E24E1575B164267B6E2B7FBCB2189210A234B002E6CBE1D8086E6 - DFC8F235F6F9B3F1C385E7911C1B0EA3FD456828759A1D22AE793420C354F215 - A6F230734A9C152611109D19D24407BC4D7B503698834395B3C0FB271122BC1B - 4B6D5856908C1D7B9BE0A330190D3A088218AAAAAA58C19496AE515D45F35951 - 940FC6C55BB1BDA41369BA361873B781E1ACD02288CFDA67C1311E01032B4224 - 721526B8919B14002FDE229E863523D47F0ABEDE933836B00A7F39A34141860E - AF6F5F884FEAFCE8EC19414B970703435E0C0D0D5636355D5CCBE4E717107B35 - E6A8A8E866B0E6B4CDAB24AC8CFA94DC351BBAF4F58A79D03012DA5D61180B18 - 31EC35C0E531C0C28DE3E9FC6BE40D8AF50C021DE4C93EF08E0F302E5AF04A4D - 31A6A6043C5A10A7440D1CC7A2B27114DDCE71345EACFBB1DBED7E8BD1EBF588 - 8B8B5B3F37D3FE6E669A053B1757221A2E30FA30B0B615605813794702AB91C1 - E944B40E46E2484B32B990C7A6050EA4C70AAA17981B00C4894E88A3F5F4A084 - F29102BC713A1641BF173733D4C8E9303939DE535B5B53425E77AACB0B16E4BF - 1F13F7D0D31B96C978D2F6992A9732B15C634E80262243BD4C3141A79531E4D1 - 615F7506A67816453627BEF3F02802218DCA03884188D79B2841FCAAFC8DF251 - 78B972097A9C93D0B1D308585687E6E6C657FBFB9DBB542122361A962C296E8B - B6C6A5EE5CD98B1C632318AD7EDAADF4B0C6685179408B30E9451CA88C468533 - 0D0612244E1EC32F4ABB1161A444080520FB06200B816952D2F11089C581D665 - 38D940DE632525D42442018F42BE502854AF02309BCDC9458B96B627265A4D2F - 9534205ED74BABBADB845C525D6B301AD03164C42F4FCE87DE14AD7A64CA17C2 - F78B9AF18D6C377D0F4E8BBEE2094C678A4CE9F651DF221CAC88849EE1A1D3E9 - 70F5EA950F3A3A2E6FA42D82BA2F2C2C2CBBA070496366BA95DDB5B41A167644 - B5F6F6A1643C47ECFFD9311BCE0F6722D512443817428B2B02B931DD78EDDB0E - 08127B8B8CEA1905630865AE3CEC3F1307AD1C5016C4EAEAAA755EAFF7F8CC3E - 05402101C8488FB901C07D1700935E467927879F7F9A05D61085AD4BDB616405 - BC7ACE0E569AC09E275A30CF16425060EE02F00F572EF69DB141AF1194D43B7F - F162C36AFAC733B38F42904221684D4A8CA110D4C3A673DE118269F64AD8FA5E - 323A3D69C8B47AF1C6130D18F3EBF1E2F185182652AEB7B7E285E56E7883B780 - DF0CC1C7BD853848BC51F4A3AEEEFC0B947A6FDEE15D62BC69C9D2475A2DD6B8 - 949D8F75C16E6EA130EA67DC19669070B4DE88D7CA73603499F0D3925694660C - 931831D85D361FA7AFC623DE3088031B3A10499D829F57C8379D968A0CFFB9B5 - 18279BF4084E5DEFABA9A95652CF716778D5345C782CC696FAD4A64702F856FC - 594AC3E9782AB2EB0BCAF8D1BBE918E293B138D98DDF3CDEA23EAE5854E9B010 - 885C88C4FC67165CC2D098041BF173D3121EFEA084EB41135EAE5A8ADE411E1D - 979BF7F4F5F56DFF62E55301D86CF1DFCDCEC97F675E6A38763C5C812876420D - 8362FD818A701C6AB0233A9CC5AF57372327DE4379AF55C185A8F0ED3A9107E7 - 7818BC93E3F0F21C526679F1F6C6AB30698328776560EFD964F0BE715F7575E5 - 63C160B0F69E00480BA2480B9A4C1131C99B974F6265ECE7249B7A38DC1A3C7F - 641E021A1B9ECCEEC3B647AFC02F686F1E839974E17063320E5D9843592223DA - 2460EE2C379E2BEC22D594F14A55212E39240C3ABB4EB4B5B5AEA323C17B0250 - 466242E2D6ACECBC3767CF8EC08E920E6484F7E3D250241A5C5698382D4A5287 - 610DE311923433C754659C34128054E42578A8405D872D22A0880D8E74CCC3E1 - 9A704A046FB0A6A66A9DCFE73B817B8C1900D4C57054984E455BE24BEC734CD8 - B2A81D49E113D4824D133240960B92A270CCF42995E6D37D2129377542B21A92 - 50C087B37D09F853790C756A3CDADA2EBDD5D7D7BB8D4EF0F705A00C83C19051 - 54B4E834678C4A9A9F66C2B3454ECC891CA5326B80ACD1DDD87E03C08DEF37B1 - 2875C017E471BA2B0E876B23C0533BD6EFEC296B6D6D798EFE75E24BC65D2D2D - E9C262F2C47B9C3132D932CB88B5797E14278F20C6A474315AA57ADC925BF28D - D221F979115D6E033EA19EA1B6430B860468A0BFF72C3DFE3CA55D1BEE33EED9 - 53731C97939565FFBD35366E9944D9906065919714C2DCD800628907D4D0A81D - AF27C0A07F5C8F9601035AFBB5540F04305250E8EABAF2576ABD77D35557F080 - 71BFA63ED266B36D494949DB6C0E8B4C97C972C5039C9E514BAB4C0002216ACB - 69529347BF7969D47DEDF3EEEEAEB73D1ECF87747EEC418F3F08C04D72A6582C - 96353131D695111111597ABDC14A65D500E55951F005027ED7D8D858D3C8C8B5 - B2C9C9C9725AEF03EEA84BFF1E80DB23433396A47B360130290BA2284E499244 - E51354C1E0FB1A77FD4B00FE23E37F0EE09F19A8E321D9E34DB9000000004945 - 4E44AE426082} - Transparent = True - end - object lblTitle3: TLabel - Left = 12 - Top = 8 - Width = 269 - Height = 14 - Caption = 'Installing Metamod:Source (version) via FTP' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object lblSubTitle3: TLabel - Left = 22 - Top = 28 - Width = 189 - Height = 13 - Caption = 'Do the following steps and press Next. ' - end - object bvlSpacer3: TBevel - Left = 0 - Top = 46 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - end - object pnlFTPData: TPanel - Left = 44 - Top = 72 - Width = 441 - Height = 64 - BevelOuter = bvLowered - TabOrder = 1 - object lblHost: TLabel - Left = 4 - Top = 4 - Width = 26 - Height = 13 - Caption = 'Host:' - end - object lblUserName: TLabel - Left = 180 - Top = 6 - Width = 52 - Height = 13 - Caption = 'Username:' - end - object lblPassword: TLabel - Left = 308 - Top = 4 - Width = 50 - Height = 13 - Caption = 'Password:' - end - object lblPort: TLabel - Left = 132 - Top = 4 - Width = 24 - Height = 13 - Caption = 'Port:' - end - object txtHost: TFlatEdit - Left = 4 - Top = 20 - Width = 121 - Height = 19 - ColorFlat = clBtnFace - ParentColor = True - TabOrder = 0 - end - object txtUserName: TFlatEdit - Left = 180 - Top = 20 - Width = 121 - Height = 19 - ColorFlat = clBtnFace - ParentColor = True - TabOrder = 2 - end - object txtPassword: TFlatEdit - Left = 308 - Top = 20 - Width = 127 - Height = 19 - ColorFlat = clBtnFace - ParentColor = True - PasswordChar = '*' - TabOrder = 3 - end - object txtPort: TFlatEdit - Left = 132 - Top = 20 - Width = 43 - Height = 19 - ColorFlat = clBtnFace - ParentColor = True - MaxLength = 5 - TabOrder = 1 - Text = '21' - OnChange = txtPortChange - end - object chkPassive: TFlatCheckBox - Left = 4 - Top = 44 - Width = 139 - Height = 16 - Caption = 'Use PASV (Passive) Mode' - Checked = True - TabOrder = 4 - TabStop = True - end - object cmdProxySettings: TFlatButton - Left = 350 - Top = 42 - Width = 83 - Height = 18 - ColorFocused = 16245198 - ColorDown = 16245198 - ColorHighLight = 8623776 - ColorShadow = 8623776 - Caption = 'Proxy-Settings' - TabOrder = 5 - OnClick = cmdProxySettingsClick - end - end - object cmdConnect: TFlatButton - Left = 416 - Top = 161 - Width = 71 - Height = 20 - ColorFocused = 16245198 - ColorDown = 16245198 - ColorBorder = clBtnShadow - ColorHighLight = clBtnShadow - ColorShadow = clBtnShadow - Caption = 'Connect' - TabOrder = 3 - OnClick = cmdConnectClick - end - object pnlDirectory: TPanel - Left = 44 - Top = 162 - Width = 367 - Height = 83 - BevelOuter = bvLowered - TabOrder = 2 - object trvDirectories: TTreeView - Left = 1 - Top = 1 - Width = 365 - Height = 81 - Align = alClient - BorderStyle = bsNone - Images = ilImages - Indent = 19 - TabOrder = 0 - OnChange = trvDirectoriesChange - OnCollapsing = trvDirectoriesCollapsing - OnExpanding = trvDirectoriesExpanding - OnExpanded = trvDirectoriesExpanded - OnMouseDown = trvDirectoriesMouseDown - end - end - object pnlOS: TPanel - Left = 44 - Top = 268 - Width = 441 - Height = 21 - BevelOuter = bvLowered - TabOrder = 4 - object optWindows: TFlatRadioButton - Left = 1 - Top = 3 - Width = 62 - Height = 14 - Caption = 'Windows' - Checked = True - TabOrder = 0 - TabStop = True - end - object optLinux: TFlatRadioButton - Left = 183 - Top = 3 - Width = 82 - Height = 14 - Caption = 'Linux (32-bit)' - TabOrder = 1 - end - object FlatRadioButton1: TFlatRadioButton - Left = 319 - Top = 3 - Width = 82 - Height = 14 - Caption = 'Linux (64-bit)' - Enabled = False - TabOrder = 2 - end - end - object pnlEngineType: TPanel - Left = 44 - Top = 312 - Width = 441 - Height = 21 - BevelOuter = bvLowered - TabOrder = 5 - object optAutoDetect: TFlatRadioButton - Left = 1 - Top = 3 - Width = 154 - Height = 14 - Caption = 'Auto-Detect (recommended)' - Checked = True - TabOrder = 0 - TabStop = True - end - object optSource: TFlatRadioButton - Left = 183 - Top = 3 - Width = 96 - Height = 15 - Caption = 'Source'#8482' Engine' - TabOrder = 1 - end - object optOrangeBox: TFlatRadioButton - Left = 319 - Top = 3 - Width = 118 - Height = 15 - Caption = 'OrangeBox'#8482' Engine' - TabOrder = 2 - end - end - end - object jspInstallProgress: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - Caption = 'jspInstallProgress' - object ggeAll: TFlatGauge - Left = 8 - Top = 84 - Width = 509 - Height = 24 - AdvColorBorder = 0 - Color = clBtnFace - ColorBorder = 8623776 - MaxValue = 8 - Progress = 0 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - ParentColor = False - ParentFont = False - end - object lblProgress: TLabel - Left = 8 - Top = 66 - Width = 46 - Height = 13 - Caption = 'Progress:' - end - object ggeItem: TFlatGauge - Left = 8 - Top = 112 - Width = 509 - Height = 24 - AdvColorBorder = 0 - Color = clBtnFace - ColorBorder = 8623776 - Progress = 0 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - ParentColor = False - ParentFont = False - end - object lblDetails: TLabel - Left = 10 - Top = 152 - Width = 36 - Height = 13 - Caption = 'Details:' - end - object bvlSpace2: TBevel - Left = 4 - Top = 142 - Width = 519 - Height = 3 - Shape = bsTopLine - end - object pnlHeader5: TPanel - Left = 0 - Top = 0 - Width = 527 - Height = 49 - Align = alTop - BevelOuter = bvNone - Color = clWhite - TabOrder = 0 - object imgIcon4: TImage - Left = 486 - Top = 8 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000002000 - 0000200806000000737A7AF40000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C000008ED4944415478DAD556096C54D7153D7FE6CFFC59BC321EE3F1162F60 - 833DB6C10B019C60410007D43649518480B64924BAD0D00401A58AD456EA42A4 - 268A4848216D43054A55910588484A020D2EE09D181BDB78C106DB638FEDB1F1 - 18DBE3F12C7FFED2FBBFC1402090B46AAB3EE96966DEBCE5DC7BCF3DF732AB57 - 3F8EFFE6D06AB5686C6C80CBE5527F33FF8F00CC34B9AF7340969529836120B1 - 2C3BDED07001C3C3C35F19004B7339CDB5744911DD9328430E67C02817D264EE - 7B58926408A20893914320C08B3A1DDBD9D3D3BDB7B3B3E3FDAF02600341DF29 - 8872BE286BC1EA39707AFA6419D5A2202F83E74380C883D5021A0D73D7E346A3 - 1E3F78E69B489D930247B71307DEF9580182CB97DBB7381C3D7FF832007134F7 - 0BA2F494ACE1101F6B4656BC0F732CE3B09A791875324472ABC7CF6060C288F6 - E128740C6AE1F54E41AF9566BC120886B0A2380BDF5B5F8ADFED3B8A977EB20E - 474FD4E2A393B5049819AFACACB0DF0B400645EC3819362F26D68255760F8A13 - 5D88B725C2146B87C69C044617465B44C8C1318426AEC0E36A419B730A7FBFFA - 102E748A80E023B269542F994D9C1227F294803FEEDE80831F36A0ACBC590D49 - 7D7DDDFA2F02502C3FC70B4CC6FC0C2B36E5B6213BD10073E626B0519960345A - C892A0D00A924C618086EE26DF0B531086CEC1DD7E0CA77A5270AC2E0281A949 - C54A8ABF043E24E1575B164267B6E2B7FBCB2189210A234B002E6CBE1D8086E6 - DFC8F235F6F9B3F1C385E7911C1B0EA3FD456828759A1D22AE793420C354F215 - A6F230734A9C152611109D19D24407BC4D7B503698834395B3C0FB271122BC1B - 4B6D5856908C1D7B9BE0A330190D3A088218AAAAAA58C19496AE515D45F35951 - 940FC6C55BB1BDA41369BA361873B781E1ACD02288CFDA67C1311E01032B4224 - 721526B8919B14002FDE229E863523D47F0ABEDE933836B00A7F39A34141860E - AF6F5F884FEAFCE8EC19414B970703435E0C0D0D5636355D5CCBE4E717107B35 - E6A8A8E866B0E6B4CDAB24AC8CFA94DC351BBAF4F58A79D03012DA5D61180B18 - 31EC35C0E531C0C28DE3E9FC6BE40D8AF50C021DE4C93EF08E0F302E5AF04A4D - 31A6A6043C5A10A7440D1CC7A2B27114DDCE71345EACFBB1DBED7E8BD1EBF588 - 8B8B5B3F37D3FE6E669A053B1757221A2E30FA30B0B615605813794702AB91C1 - E944B40E46E2484B32B990C7A6050EA4C70AAA17981B00C4894E88A3F5F4A084 - F29102BC713A1641BF173733D4C8E9303939DE535B5B53425E77AACB0B16E4BF - 1F13F7D0D31B96C978D2F6992A9732B15C634E80262243BD4C3141A79531E4D1 - 615F7506A67816453627BEF3F02802218DCA03884188D79B2841FCAAFC8DF251 - 78B972097A9C93D0B1D308585687E6E6C657FBFB9DBB542122361A962C296E8B - B6C6A5EE5CD98B1C632318AD7EDAADF4B0C6685179408B30E9451CA88C468533 - 0D0612244E1EC32F4ABB1161A444080520FB06200B816952D2F11089C581D665 - 38D940DE632525D42442018F42BE502854AF02309BCDC9458B96B627265A4D2F - 9534205ED74BABBADB845C525D6B301AD03164C42F4FCE87DE14AD7A64CA17C2 - F78B9AF18D6C377D0F4E8BBEE2094C678A4CE9F651DF221CAC88849EE1A1D3E9 - 70F5EA950F3A3A2E6FA42D82BA2F2C2C2CBBA070496366BA95DDB5B41A167644 - B5F6F6A1643C47ECFFD9311BCE0F6722D512443817428B2B02B931DD78EDDB0E - 08127B8B8CEA1905630865AE3CEC3F1307AD1C5016C4EAEAAA755EAFF7F8CC3E - 05402101C8488FB901C07D1700935E467927879F7F9A05D61085AD4BDB616405 - BC7ACE0E569AC09E275A30CF16425060EE02F00F572EF69DB141AF1194D43B7F - F162C36AFAC733B38F42904221684D4A8CA110D4C3A673DE118269F64AD8FA5E - 323A3D69C8B47AF1C6130D18F3EBF1E2F185182652AEB7B7E285E56E7883B780 - DF0CC1C7BD853848BC51F4A3AEEEFC0B947A6FDEE15D62BC69C9D2475A2DD6B8 - 949D8F75C16E6EA130EA67DC19669070B4DE88D7CA73603499F0D3925694660C - 931831D85D361FA7AFC623DE3088031B3A10499D829F57C8379D968A0CFFB9B5 - 18279BF4084E5DEFABA9A95652CF716778D5345C782CC696FAD4A64702F856FC - 594AC3E9782AB2EB0BCAF8D1BBE918E293B138D98DDF3CDEA23EAE5854E9B010 - 885C88C4FC67165CC2D098041BF173D3121EFEA084EB41135EAE5A8ADE411E1D - 979BF7F4F5F56DFF62E55301D86CF1DFCDCEC97F675E6A38763C5C812876420D - 8362FD818A701C6AB0233A9CC5AF57372327DE4379AF55C185A8F0ED3A9107E7 - 7818BC93E3F0F21C526679F1F6C6AB30698328776560EFD964F0BE715F7575E5 - 63C160B0F69E00480BA2480B9A4C1131C99B974F6265ECE7249B7A38DC1A3C7F - 641E021A1B9ECCEEC3B647AFC02F686F1E839974E17063320E5D9843592223DA - 2460EE2C379E2BEC22D594F14A55212E39240C3ABB4EB4B5B5AEA323C17B0250 - 466242E2D6ACECBC3767CF8EC08E920E6484F7E3D250241A5C5698382D4A5287 - 610DE311923433C754659C34128054E42578A8405D872D22A0880D8E74CCC3E1 - 9A704A046FB0A6A66A9DCFE73B817B8C1900D4C57054984E455BE24BEC734CD8 - B2A81D49E113D4824D133240960B92A270CCF42995E6D37D2129377542B21A92 - 50C087B37D09F853790C756A3CDADA2EBDD5D7D7BB8D4EF0F705A00C83C19051 - 54B4E834678C4A9A9F66C2B3454ECC891CA5326B80ACD1DDD87E03C08DEF37B1 - 2875C017E471BA2B0E876B23C0533BD6EFEC296B6D6D798EFE75E24BC65D2D2D - E9C262F2C47B9C3132D932CB88B5797E14278F20C6A474315AA57ADC925BF28D - D221F979115D6E033EA19EA1B6430B860468A0BFF72C3DFE3CA55D1BEE33EED9 - 53731C97939565FFBD35366E9944D9906065919714C2DCD800628907D4D0A81D - AF27C0A07F5C8F9601035AFBB5540F04305250E8EABAF2576ABD77D35557F080 - 71BFA63ED266B36D494949DB6C0E8B4C97C972C5039C9E514BAB4C0002216ACB - 69529347BF7969D47DEDF3EEEEAEB73D1ECF87747EEC418F3F08C04D72A6582C - 96353131D695111111597ABDC14A65D500E55951F005027ED7D8D858D3C8C8B5 - B2C9C9C9725AEF03EEA84BFF1E80DB23433396A47B360130290BA2284E499244 - E51354C1E0FB1A77FD4B00FE23E37F0EE09F19A8E321D9E34DB9000000004945 - 4E44AE426082} - Transparent = True - end - object lblTitle5: TLabel - Left = 12 - Top = 8 - Width = 223 - Height = 14 - Caption = 'Installing Metamod:Source (version)' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object lblSubTitle5: TLabel - Left = 22 - Top = 28 - Width = 296 - Height = 13 - Caption = 'Please wait while Metamod:Source (version) is being installed.' - end - object bvlSpacer5: TBevel - Left = 0 - Top = 46 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - end - object rtfDetails: TmxFlatRichEdit - Left = 8 - Top = 166 - Width = 509 - Height = 139 - ReadOnly = True - ScrollBars = ssVertical - TabOrder = 1 - Activate = True - BorderColor = clBtnShadow - Flat = True - ShowBorder = True - Version = '1.26' - end - end - end - object pnlButtons: TPanel - Left = 0 - Top = 317 - Width = 527 - Height = 38 - Align = alBottom - BevelOuter = bvNone - TabOrder = 1 - object cmdNext: TFlatButton - Left = 438 - Top = 7 - Width = 85 - Height = 25 - ColorFocused = 16245198 - ColorDown = 16245198 - ColorBorder = clBtnShadow - ColorHighLight = clBtnShadow - ColorShadow = clBtnShadow - Caption = '&Next >' - TabOrder = 0 - OnClick = cmdNextClick - end - object cmdCancel: TFlatButton - Left = 4 - Top = 7 - Width = 85 - Height = 25 - Color = clBtnFace - ColorFocused = 16245198 - ColorDown = 16245198 - ColorBorder = clBtnShadow - ColorHighLight = clBtnShadow - ColorShadow = clBtnShadow - Caption = '&Cancel' - ParentColor = False - TabOrder = 1 - OnClick = cmdCancelClick - end - object cmdBack: TFlatButton - Left = 348 - Top = 7 - Width = 85 - Height = 25 - ColorFocused = 16245198 - ColorDown = 16245198 - ColorBorder = clBtnShadow - ColorHighLight = clBtnShadow - ColorShadow = clBtnShadow - Caption = '< &Back' - TabOrder = 2 - Visible = False - OnClick = cmdBackClick - end - end - object ilImages: TImageList - Left = 334 - Top = 8 - Bitmap = { - 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000400000001000000001002000000000000010 - 00000000000000000000000000000000000000000000008CBD00008CBD00008C - BD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD00008CBD00008CBD00000000000000000000000000008CBD00008CBD00008C - BD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD00008CBD000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD0063CEF700008CBD00A5F7 - FF0063CEF70063CEF70063CEF70063CEF70063CEF70063CEF70063CEF70063CE - F70039ADDE00ADF7FF00008CBD0000000000008CBD0021A5CE005ACEEF0084E7 - FF0063CEF70063CEF70063CEF70063CEF70063CEF70063CEF70063CEF70063CE - F70039ADDE001094C60000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD006BD6F700008CBD00ADF7 - FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6 - FF0039ADDE00BDEFF700008CBD0000000000008CBD004ABDE70031ADD60094EF - FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6 - FF0039B5DE00CEF7FF00008CBD00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD0073D6FF00008CBD00ADF7 - FF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDE - FF0042B5DE00BDEFF700008CBD0000000000008CBD0073D6FF00008CBD00ADFF - FF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDE - FF0042B5DE00CEF7FF00008CBD00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD007BDEFF00008CBD00B5F7 - FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7 - FF0042B5DE00C6F7F700008CBD0000000000008CBD007BDEFF001094C60094EF - FF0094EFFF0084E7FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7 - FF004ABDE700CEF7FF001094C600000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD0084E7FF00008CBD00BDF7 - FF008CEFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEF - FF004ABDE700BDF7FF00008CBD0000000000008CBD0084E7FF0042B5DE005AC6 - EF00ADFFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEF - FF004ABDE700CEF7FF00CEF7FF00008CBD000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD008CEFFF00008CBD00D6F7 - FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7 - FF00BDDEDE00D6F7FF00008CBD0000000000008CBD008CE7FF007BDEFF0021A5 - CE00E7FFFF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7 - FF0094EFFF00E7FFFF00CEF7FF00008CBD000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD0094F7FF00008CBD00008C - BD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD00008CBD00008CBD00008CBD0000000000008CBD0094F7FF0094F7FF001094 - C600008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD00008CBD00008CBD00008CBD00008CBD000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD009CF7FF009CF7FF009CF7 - FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7 - FF00008CBD00000000000000000000000000008CBD009CF7FF009CF7FF009CF7 - FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7 - FF00088CBD000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD00D6F7FF00A5F7FF00A5F7 - FF00A5F7FF00A5F7FF00A5F7FF00A5F7FF00A5F7FF00A5F7FF00A5F7FF00A5F7 - FF00008CBD00000000000000000000000000008CBD00E7FFFF00A5FFFF00A5FF - FF00A5FFFF00A5FFFF00A5FFFF00A5FFFF00A5FFFF00A5FFFF00A5FFFF00A5FF - FF00088CBD000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000008CBD00D6F7FF00A5F7 - FF00A5F7FF00A5F7FF00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD000000000000000000000000000000000000000000008CBD00E7FFFF00A5FF - FF00A5FFFF00A5FFFF00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD00000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000008CBD00008C - BD00008CBD00008CBD0000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000008CBD00008C - BD00008CBD00008CBD0000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000424D3E000000000000003E000000 - 2800000040000000100000000100010000000000800000000000000000000000 - 000000000000000000000000FFFFFF0080038007000000000001000300000000 - 0001000100000000000100010000000000010001000000000001000000000000 - 0001000000000000000100000000000000070007000000000007000700000000 - 800F800F00000000C3FFC3FF00000000FFFFFFFF00000000FFFFFFFF00000000 - FFFFFFFF00000000FFFFFFFF0000000000000000000000000000000000000000 - 000000000000} - end - object IdFTP: TIdFTP - Intercept = IdLogFile - MaxLineAction = maException - ReadTimeout = 0 - RecvBufferSize = 1024 - SendBufferSize = 1024 - OnWork = IdFTPWork - ProxySettings.ProxyType = fpcmNone - ProxySettings.Port = 0 - Left = 454 - Top = 8 - end - object IdAntiFreeze: TIdAntiFreeze - IdleTimeOut = 150 - Left = 424 - Top = 8 - end - object tmrSpeed: TTimer - Enabled = False - OnTimer = tmrSpeedTimer - Left = 394 - Top = 8 - end - object IdLogFile: TIdLogFile - LogTime = False - Left = 364 - Top = 8 - end -end diff --git a/installer/UnitfrmMain.pas b/installer/UnitfrmMain.pas deleted file mode 100644 index 2f810dc..0000000 --- a/installer/UnitfrmMain.pas +++ /dev/null @@ -1,803 +0,0 @@ -unit UnitfrmMain; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, TFlatRadioButtonUnit, StdCtrls, ComCtrls, mxFlatControls, JvPageList, - ExtCtrls, JvExControls, JvComponent, TFlatButtonUnit, jpeg, TFlatEditUnit, - TFlatGaugeUnit, ImgList, FileCtrl, Registry, CheckLst, TFlatComboBoxUnit, - TFlatCheckBoxUnit, IdBaseComponent, IdComponent, IdTCPConnection, - IdTCPClient, IdFTP, IdException, IdAntiFreezeBase, IdAntiFreeze, - IdIntercept, IdLogBase, IdLogFile, pngimage; - -type - TfrmMain = class(TForm) - jplWizard: TJvPageList; - jspWelcome: TJvStandardPage; - pnlButtons: TPanel; - bvlSpace: TBevel; - cmdNext: TFlatButton; - cmdCancel: TFlatButton; - imgInstall: TImage; - lblWelcome: TLabel; - lblInfo1: TLabel; - lblInfo2: TLabel; - lblInfo3: TLabel; - jspLicense: TJvStandardPage; - pnlLicense: TPanel; - imgIcon1: TImage; - lblTitle1: TLabel; - lblSubTitle1: TLabel; - freLicense: TmxFlatRichEdit; - frbAgree: TFlatRadioButton; - ftbDontAgree: TFlatRadioButton; - jspInstallMethod: TJvStandardPage; - pnlHeader2: TPanel; - imgIcon2: TImage; - lblTitle2: TLabel; - lblSubTitle2: TLabel; - lblInstallMethod: TLabel; - pnlInstallMethod: TPanel; - frbDedicatedServer: TFlatRadioButton; - frbListenServer: TFlatRadioButton; - frbSelectMod: TFlatRadioButton; - frbFTP: TFlatRadioButton; - cmdBack: TFlatButton; - jspFTP: TJvStandardPage; - pnlHeader3: TPanel; - imgIcon3: TImage; - lblTitle3: TLabel; - lblSubTitle3: TLabel; - lblStep1: TLabel; - pnlFTPData: TPanel; - lblHost: TLabel; - txtHost: TFlatEdit; - lblUserName: TLabel; - txtUserName: TFlatEdit; - txtPassword: TFlatEdit; - lblPassword: TLabel; - txtPort: TFlatEdit; - lblPort: TLabel; - lblStep2: TLabel; - cmdConnect: TFlatButton; - pnlDirectory: TPanel; - trvDirectories: TTreeView; - lblStep5: TLabel; - jspInstallProgress: TJvStandardPage; - pnlHeader5: TPanel; - imgIcon4: TImage; - lblTitle5: TLabel; - lblSubTitle5: TLabel; - ggeAll: TFlatGauge; - lblProgress: TLabel; - ggeItem: TFlatGauge; - rtfDetails: TmxFlatRichEdit; - lblDetails: TLabel; - bvlSpace2: TBevel; - ilImages: TImageList; - bvlSpacer1: TBevel; - bvlSpacer2: TBevel; - bvlSpacer3: TBevel; - bvlSpacer5: TBevel; - jspSelectMod: TJvStandardPage; - pnlSelectMod: TPanel; - imgIcon5: TImage; - lblSelectMod: TLabel; - lblSelectModInfo: TLabel; - bvlSelectMod: TBevel; - lblInfo: TLabel; - chkPassive: TFlatCheckBox; - lblStep3: TLabel; - pnlOS: TPanel; - optWindows: TFlatRadioButton; - optLinux: TFlatRadioButton; - IdFTP: TIdFTP; - cmdProxySettings: TFlatButton; - IdAntiFreeze: TIdAntiFreeze; - frbStandaloneServer: TFlatRadioButton; - tmrSpeed: TTimer; - IdLogFile: TIdLogFile; - shpMods: TShape; - trvMods: TTreeView; - FlatRadioButton1: TFlatRadioButton; - pnlEngineType: TPanel; - optAutoDetect: TFlatRadioButton; - optSource: TFlatRadioButton; - optOrangeBox: TFlatRadioButton; - lblStep4: TLabel; - procedure jvwStepsCancelButtonClick(Sender: TObject); - procedure cmdCancelClick(Sender: TObject); - procedure cmdNextClick(Sender: TObject); - procedure CheckNext(Sender: TObject); - procedure cmdBackClick(Sender: TObject); - procedure cmdConnectClick(Sender: TObject); - procedure jplWizardChange(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure cmdProxySettingsClick(Sender: TObject); - procedure txtPortChange(Sender: TObject); - procedure trvDirectoriesExpanded(Sender: TObject; Node: TTreeNode); - procedure trvDirectoriesChange(Sender: TObject; Node: TTreeNode); - procedure IdFTPWork(Sender: TObject; AWorkMode: TWorkMode; - const AWorkCount: Integer); - procedure FormClose(Sender: TObject; var Action: TCloseAction); - procedure tmrSpeedTimer(Sender: TObject); - procedure trvDirectoriesExpanding(Sender: TObject; Node: TTreeNode; - var AllowExpansion: Boolean); - procedure trvDirectoriesCollapsing(Sender: TObject; Node: TTreeNode; - var AllowCollapse: Boolean); - procedure trvModsClick(Sender: TObject); - procedure trvDirectoriesMouseDown(Sender: TObject; - Button: TMouseButton; Shift: TShiftState; X, Y: Integer); - private - OldProgress: Integer; - CurrProgress: Integer; - public - procedure ExceptionHandler(Sender: TObject; E: Exception); - end; - -var - frmMain: TfrmMain; - -var VERSION: String = ''; - -const NormalHeight = 382; - FTPHeight = 422; - -implementation - -uses UnitFunctions, UnitfrmProxy, UnitInstall, UnitSelectModPath; - -{$R *.dfm} - -procedure TfrmMain.jvwStepsCancelButtonClick(Sender: TObject); -begin - Close; -end; - -procedure TfrmMain.cmdCancelClick(Sender: TObject); -begin - Close; -end; - -procedure TfrmMain.cmdNextClick(Sender: TObject); -var ePath: String; - eRegistry: TRegistry; - eStr: TStringList; - CurNode: TTreeNode; - eOS: TOS; - i: integer; - Source: Boolean; -begin - { FTP } - if (jplWizard.ActivePage = jspFTP) then begin - if (not IdFTP.Connected) then - IdFTP.Connect; - eStr := TStringList.Create; - ePath := '/'; - CurNode := trvDirectories.Selected; - if (Assigned(CurNode)) then begin - repeat - ePath := '/' + CurNode.Text + ePath; - CurNode := CurNode.Parent; - until (not Assigned(CurNode)); - end; - IdFTP.ChangeDir(ePath); - IdFTP.List(eStr, '', False); - eStr.CaseSensitive := False; - // check if gameinfo.txt is in the directory -> valid installation - if (eStr.IndexOf('gameinfo.txt') = -1) then begin - MessageBox(Handle, 'Invalid directory. Please select your mod directory and try again.', PChar(Application.Title), MB_ICONWARNING); - eStr.Free; - exit; - end - else - eStr.Free; - // check for orangebox directory (!! OrangeBox Check !!) - if (optAutoDetect.Checked) then - Source := not ((AnsiSameText(trvDirectories.Selected.Text, 'tf')) or (Pos('orangebox', LowerCase(ePath)) <> 0)) - else if (optSource.Checked) then - Source := True - else - Source := False; - // design stuff - trvDirectories.Enabled := False; - cmdConnect.Enabled := False; - optWindows.Enabled := False; - optLinux.Enabled := False; - Screen.Cursor := crHourGlass; - - if (optWindows.Checked) then begin - eOS := osWindows; - if (Source) then - rtfDetails.Lines.Text := '* Installing Source binaries for Windows' + #13#10 + #13#10 - else - rtfDetails.Lines.Text := '* Installing OrangeBox binaries for Windows' + #13#10 + #13#10 - end - else begin - eOS := osLinux; - if (Source) then - rtfDetails.Lines.Text := '* Installing Source binaries for Linux' + #13#10 + #13#10 - else - rtfDetails.Lines.Text := '* Installing OrangeBox binaries for Linux' + #13#10 + #13#10 - end; - jspInstallProgress.Show; - // installation - Screen.Cursor := crAppStart; - InstallFTP(eOS, Source, trvDirectories.Selected.Text); - end - else if (jplWizard.ActivePage = jspInstallProgress) then - Close - else if (jplWizard.ActivePage = jspSelectMod) then begin - { Dedicated Server } - if frbDedicatedServer.Checked then begin - Source := True; - ePath := trvMods.Selected.Text; - if (ePath = 'Counter-Strike:Source') then - ePath := trvMods.Selected.Parent.Text + '\source dedicated server\cstrike' - else if (ePath = 'Day of Defeat:Source') then - ePath := trvMods.Selected.Parent.Text + '\source dedicated server\dod' - else if (ePath = 'Half-Life 2 Deathmatch') then - ePath := trvMods.Selected.Parent.Text + '\source dedicated server\hl2mp' - else begin - { get games } - if (ePath = 'Team Fortress 2') then - ePath := trvMods.Selected.Parent.Text + '\source 2007 dedicated server\tf'; - { ask user, just in case } - case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: Source := False; - mrNo: Source := True; - mrCancel: exit; - end; - end; - SteamPath := IncludeTrailingPathDelimiter(SteamPath) + 'steamapps\'; - // install it - if (DirectoryExists(SteamPath + ePath)) then begin - jspInstallProgress.Show; - InstallDedicated(IncludeTrailingPathDelimiter(SteamPath + ePath), True, Source); - end - else begin - MessageBox(Handle, 'Error: The directory of the mod you selected doesn''t exist any more. Run Dedicated Server with the chosen mod and try again.', PChar(Application.Title), MB_ICONERROR); - jspSelectMod.Show; - exit; - end; - end; - { Standalone Server } - if (frbStandaloneServer.Checked) then begin - Source := True; - ePath := trvMods.Selected.Text; - if ePath = 'Counter-Strike:Source' then - ePath := 'cstrike' - else if ePath = 'Day of Defeat:Source' then - ePath := 'dod' - else if ePath = 'Half-Life 2 Deathmatch' then - ePath := 'hl2mp' - else begin - { get games } - if (ePath = 'Team Fortress 2') then - ePath := 'orangebox\tf'; - { ask user, just in case } - case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: Source := False; - mrNo: Source := True; - mrCancel: exit; - end; - end; - // install it - if (DirectoryExists(StandaloneServer + ePath)) then begin - jspInstallProgress.Show; - InstallDedicated(IncludeTrailingPathDelimiter(StandaloneServer + ePath), False, Source) - end - else begin - MessageBox(Handle, 'Error: The directory of the mod you selected doesn''t exist (any more). Run Half-Life Dedicated Server with the chosen mod again and restart.', PChar(Application.Title), MB_ICONERROR); - jspSelectMod.Show; - exit; - end; - end; - { Listen Server } - if (frbListenServer.Checked) then begin - Source := True; - ePath := trvMods.Selected.Text; - if (ePath = 'Counter-Strike:Source') then - ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\counter-strike source\cstrike' - else if (ePath = 'Half-Life 2 Deathmatch') then - ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\half-life 2 deathmatch\hl2mp' - else if ePath = 'Day of Defeat:Source' then - ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\day of defeat source\dod' - else begin - { get games } - if (ePath = 'Team Fortress 2') then - ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\team fortress 2\tf'; - { ask user, just in case } - case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: Source := False; - mrNo: Source := True; - mrCancel: exit; - end; - end; - - if (Pos(SteamPath, ePath) = 0) then - MessageBox(Handle, 'An error occured. Please report this bug to the Metamod:Source team and post a new thread on the forums of www.amxmodx.org.', PChar(Application.Title), MB_ICONSTOP) - else begin - if (not FileExists(ePath + '\gameinfo.txt')) then begin - MessageBox(Handle, 'You have to play this game once before installing Metamod:Source. Do that and try again.', PChar(Application.Title), MB_ICONWARNING); - exit; - end; - - jspInstallProgress.Show; - InstallListen(IncludeTrailingPathDelimiter(ePath), Source); - end; - end; - { Custom mod below } - end - else if (jplWizard.ActivePage = jspInstallMethod) then begin - if (frbDedicatedServer.Checked) then begin // Dedicated Server - eRegistry := TRegistry.Create(KEY_READ); - try - eRegistry.RootKey := HKEY_CURRENT_USER; - if eRegistry.OpenKey('Software\Valve\Steam', False) then begin - ePath := eRegistry.ReadString('SteamPath'); - ePath := IncludeTrailingPathDelimiter(StringReplace(ePath, '/', '\', [rfReplaceAll])); - SteamPath := ePath; - - ePath := ePath + 'SteamApps\'; - if (DirectoryExists(ePath)) then begin - trvMods.Items.Clear; - // Check Mods - eStr := GetAllFiles(ePath + '*.*', faDirectory, False, True, False); - for i := 0 to eStr.Count -1 do begin - CurNode := trvMods.Items.Add(nil, eStr[i]); - - if (DirectoryExists(ePath + eStr[i] + '\source dedicated server\cstrike')) then - trvMods.Items.AddChild(CurNode, 'Counter-Strike:Source'); - if (DirectoryExists(ePath + eStr[i] + '\source dedicated server\dod')) then - trvMods.Items.AddChild(CurNode, 'Day of Defeat:Source'); - if (DirectoryExists(ePath + eStr[i] + '\source dedicated server\hl2mp')) then - trvMods.Items.AddChild(CurNode, 'Half-Life 2 Deatmatch'); - if (DirectoryExists(ePath + eStr[i] + '\source 2007 dedicated server\tf')) then - trvMods.Items.AddChild(CurNode, 'Team Fortress 2'); - - if CurNode.Count = 0 then - CurNode.Free - else - CurNode.Expand(False); - end; - // Misc - jspSelectMod.Show; - trvMods.Selected := nil; - cmdNext.Enabled := False; - end - else - MessageBox(Handle, 'You have to run Dedicated Server once before installing Metamod:Source!', 'Error', MB_ICONWARNING); - end - else - MessageBox(Handle, 'You haven''t installed Steam yet! Download it at www.steampowered.com, install Dedicated Server and try again.', 'Error', MB_ICONWARNING); - finally - eRegistry.Free; - end; - end - else if (frbListenServer.Checked) then begin // Listen Server - eRegistry := TRegistry.Create(KEY_READ); - try - eRegistry.RootKey := HKEY_CURRENT_USER; - if (eRegistry.OpenKey('Software\Valve\Steam', False)) then begin - ePath := eRegistry.ReadString('SteamPath'); - ePath := IncludeTrailingPathDelimiter(StringReplace(ePath, '/', '\', [rfReplaceAll])); - SteamPath := ePath; - - ePath := ePath + 'SteamApps\'; - if DirectoryExists(ePath) then begin - trvMods.Items.Clear; - // Check Mods - eStr := GetAllFiles(ePath + '*.*', faDirectory, False, True, False); - for i := 0 to eStr.Count -1 do begin - CurNode := trvMods.Items.Add(nil, eStr[i]); - - if DirectoryExists(ePath + eStr[i] + '\counter-strike source') then - trvMods.Items.AddChild(CurNode, 'Counter-Strike:Source'); - if DirectoryExists(ePath + eStr[i] + '\day of defeat source') then - trvMods.Items.AddChild(CurNode, 'Day of Defeat:Source'); - if DirectoryExists(ePath + eStr[i] + '\half-life 2 deathmatch') then - trvMods.Items.AddChild(CurNode, 'Half-Life 2 Deatmatch'); - if DirectoryExists(ePath + eStr[i] + '\team fortress 2') then - trvMods.Items.AddChild(CurNode, 'Team Fortress 2'); - - if CurNode.Count = 0 then - CurNode.Free - else - CurNode.Expand(False); - end; - // Misc - jspSelectMod.Show; - trvMods.Selected := nil; - cmdNext.Enabled := False; - end - else - MessageBox(Handle, 'You haven''t installed Steam yet! Download it at www.steampowered.com, install Dedicated Server and try again.', 'Error', MB_ICONWARNING); - end - else - MessageBox(Handle, 'You haven''t installed Steam yet! Download it at www.steampowered.com, install Dedicated Server and try again.', 'Error', MB_ICONWARNING); - finally - eRegistry.Free; - end; - end - else if (frbStandaloneServer.Checked) then begin // Standalone Server - eRegistry := TRegistry.Create; - try - eRegistry.RootKey := HKEY_CURRENT_USER; - if eRegistry.OpenKey('Software\Valve\HLServer', False) then begin - StandaloneServer := IncludeTrailingPathDelimiter(eRegistry.ReadString('InstallPath')); - if DirectoryExists(StandaloneServer + 'cstrike') then - trvMods.Items.Add(nil, 'Counter-Strike:Source'); - if DirectoryExists(StandaloneServer + 'dod') then - trvMods.Items.Add(nil, 'Day of Defeat:Source'); - if DirectoryExists(StandaloneServer + 'hl2mp') then - trvMods.Items.Add(nil, 'Half-Life 2 Deatmatch'); - if DirectoryExists(StandaloneServer + 'orangebox\tf') then - trvMods.Items.Add(nil, 'Team Fortress 2'); - jspSelectMod.Show; - cmdNext.Enabled := False; - end - else - MessageBox(Handle, 'You haven''t installed Half-Life Dedicated Server yet!', 'Error', MB_ICONWARNING); - finally - eRegistry.Free; - end; - end - else if (frbSelectMod.Checked) then begin - { Custom mod } - if frmSelectModPath.ShowModal = mrOk then begin - ePath := frmSelectModPath.trvDirectory.SelectedFolder.PathName; - { install now } - jspInstallProgress.Show; - InstallCustom(IncludeTrailingPathDelimiter(ePath), osWindows, not frmSelectModPath.chkUsesOrangebox.Checked); - end; - end - else if (frbFTP.Checked) then begin // FTP - Height := FTPHeight; - jspFTP.Show; - end; - end - else - jplWizard.NextPage -end; - -procedure TfrmMain.CheckNext(Sender: TObject); -begin - cmdNext.Enabled := frbAgree.Checked; -end; - -procedure TfrmMain.cmdBackClick(Sender: TObject); -begin - if jplWizard.ActivePage = jspFTP then begin - Height := NormalHeight; - jspInstallMethod.Show; - end - else begin - jplWizard.PrevPage; - cmdBack.Visible := jplWizard.ActivePageIndex <> 0; - end; -end; - -procedure TfrmMain.cmdConnectClick(Sender: TObject); -var i, k: integer; - eStr: TStringList; - CurNode, CurNode2: TTreeNode; - Path: String; -begin - if (Trim(txtHost.Text) = '') or (Trim(txtUsername.Text) = '') then - MessageBox(Handle, 'Please fill in each field!', PChar(Application.Title), MB_ICONWARNING) - else if cmdConnect.Caption = 'Connect' then begin - // ... design stuff ... - Screen.Cursor := crHourGlass; - cmdConnect.Enabled := False; - cmdProxySettings.Enabled := False; - txtHost.Enabled := False; - txtPort.Enabled := False; - txtUsername.Enabled := False; - txtPassword.Enabled := False; - chkPassive.Enabled := False; - cmdConnect.Caption := 'Connecting...'; - // ... set values ... - IdFTP.Host := txtHost.Text; - IdFTP.Port := StrToInt(txtPort.Text); - IdFTP.Username := txtUsername.Text; - IdFTP.Passive := chkPassive.Checked; - IdFTP.Password := txtPassword.Text; - // ... connect and check values etc ... - try - IdFTP.Connect(True, 15000); - // ... get initial directory ... - Path := IdFTP.RetrieveCurrentDir; - // ... "fix" path ... - eStr := TStringList.Create; - eStr.Text := StringReplace(Path, '/', #13, [rfReplaceAll]); - for i := eStr.Count -1 downto 0 do begin - if (eStr[i] = '') then - eStr.Delete(i); - end; - if (Copy(Path, Length(Path) -1, 1) <> '/') then - Path := Path + '/'; - // ... connect successful, change captions ... - trvDirectories.Enabled := True; - cmdConnect.Enabled := True; - cmdConnect.Caption := 'Disconnect'; - // ... find directories in start path ... - CurNode := nil; - CurNode2 := nil; - if (eStr.Count <> 0) then begin - IdFTP.ChangeDir('/'); - for i := 0 to eStr.Count do begin - try - with GetAllDirs do begin - for k := 0 to Count -1 do begin - if (i = eStr.Count) or (Strings[k] <> eStr[i]) then - trvDirectories.Items.AddChild(trvDirectories.Items.AddChild(CurNode, Strings[k]), 'Scanning...') - else - CurNode2 := trvDirectories.Items.AddChild(CurNode, Strings[k]); - end; - Free; - - CurNode := CurNode2; - trvDirectories.Selected := CurNode; - Repaint; - Application.ProcessMessages; - end; - - if (i <> eStr.Count) then - IdFTP.ChangeDir(eStr[i]); - except - IdFTP.CheckForDisconnect(False); - if (not IdFTP.Connected) then - IdFTP.Disconnect; - CurNode := trvDirectories.Items.AddChild(CurNode, eStr.Strings[i]) - end; - end; - end; - eStr.Free; - - if Assigned(CurNode) then - CurNode.Expand(False); - except - on E: Exception do begin - // reset button properties - cmdConnect.Enabled := True; - txtHost.Enabled := True; - txtPort.Enabled := True; - txtUsername.Enabled := True; - txtPassword.Enabled := True; - chkPassive.Enabled := True; - cmdProxySettings.Enabled := True; - cmdNext.Enabled := False; - cmdConnect.Caption := 'Connect'; - // analyze messages - if Pos('Login incorrect.', E.Message) <> 0 then begin // login failed - MessageBox(Handle, 'Login incorrect. Check your FTP settings and try again.', PChar(Application.Title), MB_ICONWARNING); - txtUsername.SetFocus; - txtUsername.SelectAll; - end - else if Pos('Host not found.', E.Message) <> 0 then begin // host not found - MessageBox(Handle, 'The entered host couldn''t be found. Check your settings and try again.', PChar(Application.Title), MB_ICONWARNING); - txtHost.SetFocus; - txtHost.SelectAll; - end - else if Pos('Connection refused.', E.Message) <> 0 then begin // wrong port (?) - MessageBox(Handle, 'The host refused the connection. Check your port and try again.', PChar(Application.Title), MB_ICONWARNING); - txtPort.SetFocus; - txtPort.SelectAll; - end - else if E is EIdProtocolReplyError then begin // wrong port - MessageBox(Handle, 'The port you entered is definitely wrong. Check it and try again.', PChar(Application.Title), MB_ICONWARNING); - txtPort.SetFocus; - txtPort.SelectAll; - end - else - MessageBox(Handle, PChar(E.Message), PChar(Application.Title), MB_ICONWARNING); // unknown error - // ... connect failed, leave procedure ... - Screen.Cursor := crDefault; - exit; - end; - end; - - Screen.Cursor := crDefault; - end - else begin - Screen.Cursor := crHourGlass; - IdFTP.Quit; - trvDirectories.Items.Clear; - trvDirectories.Enabled := False; - cmdConnect.Enabled := True; - cmdProxySettings.Enabled := True; - txtHost.Enabled := True; - txtPort.Enabled := True; - txtUsername.Enabled := True; - txtPassword.Enabled := True; - chkPassive.Enabled := True; - cmdConnect.Caption := 'Connect'; - cmdNext.Enabled := False; - Screen.Cursor := crDefault; - end; -end; - -procedure TfrmMain.jplWizardChange(Sender: TObject); -begin - if (jplWizard.ActivePage = jspInstallProgress) then begin - cmdNext.Caption := '&Finish'; - cmdNext.Enabled := False; - cmdBack.Visible := False; - end - else begin - cmdNext.Caption := '&Next >'; - cmdNext.Enabled := True; - cmdBack.Visible := jplWizard.ActivePageIndex <> 0; - end; - - if (jplWizard.ActivePage = jspLicense) then - cmdNext.Enabled := frbAgree.Checked; - - if (jplWizard.ActivePage = jspFTP) then - cmdNext.Enabled := False; -end; - -procedure TfrmMain.FormCreate(Sender: TObject); -begin - if LowerCase(ParamStr(1)) = '-logftp' then begin - MessageBox(Handle, 'FTP installation will be logged to FTP.log!', PChar(Application.Title), MB_ICONINFORMATION); - IdLogFile.Filename := ExtractFilePath(ParamStr(0)) + 'FTP.log'; - IdLogFile.Active := True; - end; - - rtfDetails.Clear; -end; - -procedure TfrmMain.cmdProxySettingsClick(Sender: TObject); -begin - frmProxy.ShowModal; - // Apply Proxy Settings - case frmProxy.cboProxy.ItemIndex of - 0: IdFTP.ProxySettings.ProxyType := fpcmNone; // none - 1: IdFTP.ProxySettings.ProxyType := fpcmHttpProxyWithFtp; // HTTP Proxy with FTP - 2: IdFTP.ProxySettings.ProxyType := fpcmOpen; // Open - 3: IdFTP.ProxySettings.ProxyType := fpcmSite; // Site - 4: IdFTP.ProxySettings.ProxyType := fpcmTransparent; // Transparent - 5: IdFTP.ProxySettings.ProxyType := fpcmUserPass; // User (Password) - 6: IdFTP.ProxySettings.ProxyType := fpcmUserSite; // User (Site) - end; - - IdFTP.ProxySettings.Host := frmProxy.txtHost.Text; - IdFTP.ProxySettings.UserName := frmProxy.txtPort.Text; - IdFTP.ProxySettings.Password := frmProxy.txtPassword.Text; - IdFTP.ProxySettings.Port := StrToInt(frmProxy.txtPort.Text); -end; - -procedure TfrmMain.txtPortChange(Sender: TObject); -var i: integer; -begin - if txtPort.Text = '' then - txtPort.Text := '21' - else begin - // check if value is numeric... - for i := Length(txtPort.Text) downto 1 do begin - if Pos(txtPort.Text[i], '0123456789') = 0 then begin - txtPort.Text := '21'; - txtPort.SelStart := 4; - exit; - end; - end; - end; -end; - -procedure TfrmMain.trvDirectoriesExpanded(Sender: TObject; - Node: TTreeNode); -var ePath: String; - CurNode: TTreeNode; - i: integer; -begin - if Node.Item[0].Text = 'Scanning...' then begin // no directories added yet - Screen.Cursor := crHourGlass; - // get complete path - ePath := '/'; - CurNode := Node; - repeat - ePath := '/' + CurNode.Text + ePath; - CurNode := CurNode.Parent; - until (not Assigned(CurNode)); - // change dir and add directories in it - try - Repaint; - IdFTP.ChangeDir(ePath); - with GetAllDirs do begin - Node.Item[0].Free; - for i := 0 to Count -1 do begin - trvDirectories.Items.AddChild(trvDirectories.Items.AddChild(Node, Strings[i]), 'Scanning...'); - end; - Free; - end; - finally - Application.ProcessMessages; - end; - Screen.Cursor := crDefault; - end; -end; - -procedure TfrmMain.trvDirectoriesChange(Sender: TObject; Node: TTreeNode); -begin - cmdNext.Enabled := Assigned(trvDirectories.Selected); -end; - -procedure TfrmMain.IdFTPWork(Sender: TObject; AWorkMode: TWorkMode; - const AWorkCount: Integer); -begin - if AWorkCount > 15 then begin - ggeItem.Progress := AWorkCount; - CurrProgress := AWorkCount; - end; - - if Cancel then - IdFTP.Abort; - - Application.ProcessMessages; -end; - -procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction); -begin - if (jplWizard.ActivePage = jspFTP) and (IdFTP.Connected) then - IdFTP.Quit; - if (jplWizard.ActivePage = jspInstallProgress) and (ggeAll.Progress <> ggeAll.MaxValue) and (not Cancel) then begin - if MessageBox(Handle, 'Do you really want to cancel the installation?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNO) = mrYes then begin - Screen.Cursor := crDefault; - Application.OnException := ExceptionHandler; - Cancel := True; - if IdFTP.Connected then - IdFTP.Quit; - end - else - Action := caNone; - end; -end; - -procedure TfrmMain.ExceptionHandler(Sender: TObject; E: Exception); -begin - // IF any exceptions were raised after close, nobody would want them so leave this empty -end; - -procedure TfrmMain.tmrSpeedTimer(Sender: TObject); -begin - Caption := CalcSpeed(OldProgress, CurrProgress); - OldProgress := CurrProgress; -end; - -procedure TfrmMain.trvDirectoriesExpanding(Sender: TObject; - Node: TTreeNode; var AllowExpansion: Boolean); -begin - Node.ImageIndex := 1; - Node.SelectedIndex := 1; -end; - -procedure TfrmMain.trvDirectoriesCollapsing(Sender: TObject; - Node: TTreeNode; var AllowCollapse: Boolean); -begin - Node.ImageIndex := 0; - Node.SelectedIndex := 0; -end; - -procedure TfrmMain.trvModsClick(Sender: TObject); -begin - if Assigned(trvMods.Selected) then - cmdNext.Enabled := Assigned(trvMods.Selected.Parent) - else - cmdNext.Enabled := False; -end; - -procedure TfrmMain.trvDirectoriesMouseDown(Sender: TObject; - Button: TMouseButton; Shift: TShiftState; X, Y: Integer); -var Node: TTreeNode; -begin - Node := trvDirectories.GetNodeAt(X, Y); - if (Assigned(Node)) then begin - if (Node.DisplayRect(True).Right < X) then - trvDirectories.Selected := nil; - end; -end; - -end. diff --git a/installer/UnitfrmProxy.dfm b/installer/UnitfrmProxy.dfm deleted file mode 100644 index 7ba9c06c5cae79c3827a3d1d98e81d212d147e8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1584 zcmb7EO>fgc5Z&00KjI`*DjSGp8wQ9=#K`$X!!aK*xPz!0uToNo)ez2 zS-|M>!Y+RpeRRh4&lNqSbN#F4wkeAd8}kc{EPIl5Qi$o)^5C4Ol$cG~{B(>sPsuc^ zdpJde_fR@bxc&vWDn3nPp6EY7)uWg)%ZYHC6CXyX?o+~dy#%rhaqCW}>mQ!8@$ zSt`g|TXQ;qDe)!JzfDT73QEtfLpf#rKi~qGWs6)k3T`f$m2l5)fGg`a;oQ*2khjk{ zr^JqCv4?3^@Ovqx`5qJmPfEo5btx~OM&}udjc-4H14sVTp$j5ISB6T_mMc{_PGByo zrcCs5)%JyQFXdE|s=Jg}y>L~Ma|bkrc!aWZ%(aRg!im(IRt3P3%XH(ETRa!kmB)Xf z7STU|a+7VvTU@}ha^WW_M=J%akt+Z+B(g_m6WXRrJDSi9X=?KFcMJIMEBJd=W#?v; zbr_wC^Yqh<7w)u6r`3))nw4^Hh#=b?b0&OVF^ywNkh$Fp!=NQcwiYQ*T7DRq#&C{^ zX^eByrW-OyvN>eAzf4!?ruA4n_f8pzsvWT22^hk23f>Vjk4TJ`8nA~X|4fi6vYO?R zD!zK%wI@C*PZa0X4sUf`X8@OdM5a8^s%utS!D@eRe{apCkw2ywcb$lvXG)W7n(D03 lY;-Fw>-qZTmIA!Ai~=X}q5luOUP6ekuUUDr9%cXl{sJ)8?-l?6 diff --git a/installer/UnitfrmProxy.pas b/installer/UnitfrmProxy.pas deleted file mode 100644 index 1556226..0000000 --- a/installer/UnitfrmProxy.pas +++ /dev/null @@ -1,72 +0,0 @@ -unit UnitfrmProxy; - -interface - -uses - SysUtils, Windows, Messages, Classes, Graphics, Controls, - StdCtrls, ExtCtrls, Forms, TFlatButtonUnit, TFlatComboBoxUnit, - TFlatEditUnit; - -type - TfrmProxy = class(TForm) - cmdClose: TFlatButton; - lblProxy: TLabel; - txtHost: TFlatEdit; - cboProxy: TFlatComboBox; - lblHost: TLabel; - txtPort: TFlatEdit; - lblPort: TLabel; - lblUsername: TLabel; - txtUsername: TFlatEdit; - txtPassword: TFlatEdit; - lblPassword: TLabel; - procedure cboProxyChange(Sender: TObject); - procedure txtPortChange(Sender: TObject); - public - procedure EnableControls(Enable: Boolean); - end; - -var - frmProxy: TfrmProxy; - -implementation - -{$R *.DFM} - -{ TfrmProxy } - -procedure TfrmProxy.EnableControls(Enable: Boolean); -begin - lblHost.Enabled := Enable; - lblPassword.Enabled := Enable; - lblPort.Enabled := Enable; - lblUsername.Enabled := Enable; - txtHost.Enabled := Enable; - txtPassword.Enabled := Enable; - txtPort.Enabled := Enable; - txtUsername.Enabled := Enable; -end; - -procedure TfrmProxy.cboProxyChange(Sender: TObject); -begin - EnableControls(cboProxy.ItemIndex <> 0); // 0 = None -end; - -procedure TfrmProxy.txtPortChange(Sender: TObject); -var i: integer; -begin - if txtPort.Text = '' then - txtPort.Text := '8080' - else begin - // check if value is numeric... - for i := Length(txtPort.Text) downto 1 do begin - if Pos(txtPort.Text[i], '0123456789') = 0 then begin - txtPort.Text := '8080'; - txtPort.SelStart := 4; - exit; - end; - end; - end; -end; - -end. diff --git a/installer/del.bat b/installer/del.bat deleted file mode 100644 index 74a143b..0000000 --- a/installer/del.bat +++ /dev/null @@ -1,15 +0,0 @@ -del .\*.~pas -del .\*.dcu -del .\*.~ddp -del .\*.ddp -del .\*.~dpr -del .\*.~dfm -del .\*.~dpr -del .\*.map -del .\*.drc -del .\*.~xfm -del .\*.log -del .\*.dof -upx MMS_Installer.exe -upx Attach.exe -upx hl2launch.exe \ No newline at end of file diff --git a/installer/files/Readme.txt b/installer/files/Readme.txt deleted file mode 100644 index 4f858b5..0000000 --- a/installer/files/Readme.txt +++ /dev/null @@ -1,8 +0,0 @@ -Every MM:S library should be located in this directory. - -How to prepare a release: -1) Copy the latest MM:S dlls into this folder -2) Append .source to the Source binaries and .orangebox to the OrangeBox binaries -3) Run Attach.exe -4) Test MMS_Installer.exe once (recommended) -5) Release it or e-Mail me if you find a bug \ No newline at end of file diff --git a/installer/install.bmp b/installer/install.bmp deleted file mode 100644 index 39b905be4507286639395912964881258552398f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154542 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 diff --git a/installer/upx.exe b/installer/upx.exe deleted file mode 100644 index d47856823e48792f97d19f20ed08d40bc7cb0d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126464 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 z 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,<=,>= comparison operators to allow storage in ordered containers. -// * Substantial reduction of code size, especially the 'Closure' class. -// * Standardised all the compiler-specific workarounds. -// * MFP conversion now works for CodePlay (but not yet supported in the full code). -// * Now compiles without warnings on _any_ supported compiler, including BCC 5.5.1 -// * New syntax: FastDelegate< int (char *, double) >. -// 14-Feb-05 1.4.1* Now treats =0 as equivalent to .clear(), ==0 as equivalent to .empty(). (Thanks elfric). -// * Now tested on Intel ICL for AMD64, VS2005 Beta for AMD64 and Itanium. -// 30-Mar-05 1.5 * Safebool idiom: "if (dg)" is now equivalent to "if (!dg.empty())" -// * Fully supported by CodePlay VectorC -// * Bugfix for Metrowerks: empty() was buggy because a valid MFP can be 0 on MWCC! -// * More optimal assignment,== and != operators for static function pointers. - -#ifndef FASTDELEGATE_H -#define FASTDELEGATE_H - -#ifdef _MSC_VER -# if _MSC_VER > 1000 -# pragma once -# endif // _MSC_VER > 1000 -#endif // #ifdef _MSC_VER - -#include // to allow <,> comparisons - -//////////////////////////////////////////////////////////////////////////////// -// Configuration options -// -//////////////////////////////////////////////////////////////////////////////// - -// Uncomment the following #define for optimally-sized delegates. -// In this case, the generated asm code is almost identical to the code you'd get -// if the compiler had native support for delegates. -// It will not work on systems where sizeof(dataptr) < sizeof(codeptr). -// Thus, it will not work for DOS compilers using the medium model. -// It will also probably fail on some DSP systems. -#define FASTDELEGATE_USESTATICFUNCTIONHACK - -// Uncomment the next line to allow function declarator syntax. -// It is automatically enabled for those compilers where it is known to work. -//#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Compiler identification for workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Compiler identification. It's not easy to identify Visual C++ because -// many vendors fraudulently define Microsoft's identifiers. -#if defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__VECTOR_C) && !defined(__ICL) && !defined(__BORLANDC__) -#define FASTDLGT_ISMSVC - -#if (_MSC_VER <1300) // Many workarounds are required for VC6. -#define FASTDLGT_VC6 -#pragma warning(disable:4786) // disable this ridiculous warning -#endif - -#endif - -// Does the compiler uses Microsoft's member function pointer structure? -// If so, it needs special treatment. -// Metrowerks CodeWarrior, Intel, and CodePlay fraudulently define Microsoft's -// identifier, _MSC_VER. We need to filter Metrowerks out. -#if defined(_MSC_VER) && !defined(__MWERKS__) -#define FASTDLGT_MICROSOFT_MFP - -#if !defined(__VECTOR_C) -// CodePlay doesn't have the __single/multi/virtual_inheritance keywords -#define FASTDLGT_HASINHERITANCE_KEYWORDS -#endif -#endif - -// Does it allow function declarator syntax? The following compilers are known to work: -#if defined(FASTDLGT_ISMSVC) && (_MSC_VER >=1310) // VC 7.1 -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// Gcc(2.95+), and versions of Digital Mars, Intel and Comeau in common use. -#if defined (__DMC__) || defined(__GNUC__) || defined(__ICL) || defined(__COMO__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// It works on Metrowerks MWCC 3.2.2. From boost.Config it should work on earlier ones too. -#if defined (__MWERKS__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -#ifdef __GNUC__ // Workaround GCC bug #8271 - // At present, GCC doesn't recognize constness of MFPs in templates -#define FASTDELEGATE_GCC_BUG_8271 -#endif - - - -//////////////////////////////////////////////////////////////////////////////// -// General tricks used in this code -// -// (a) Error messages are generated by typdefing an array of negative size to -// generate compile-time errors. -// (b) Warning messages on MSVC are generated by declaring unused variables, and -// enabling the "variable XXX is never used" warning. -// (c) Unions are used in a few compiler-specific cases to perform illegal casts. -// (d) For Microsoft and Intel, when adjusting the 'this' pointer, it's cast to -// (char *) first to ensure that the correct number of *bytes* are added. -// -//////////////////////////////////////////////////////////////////////////////// -// Helper templates -// -//////////////////////////////////////////////////////////////////////////////// - - -namespace fastdelegate { -namespace detail { // we'll hide the implementation details in a nested namespace. - -// implicit_cast< > -// I believe this was originally going to be in the C++ standard but -// was left out by accident. It's even milder than static_cast. -// I use it instead of static_cast<> to emphasize that I'm not doing -// anything nasty. -// Usage is identical to static_cast<> -template -inline OutputClass implicit_cast(InputClass input){ - return input; -} - -// horrible_cast< > -// This is truly evil. It completely subverts C++'s type system, allowing you -// to cast from any class to any other class. Technically, using a union -// to perform the cast is undefined behaviour (even in C). But we can see if -// it is OK by checking that the union is the same size as each of its members. -// horrible_cast<> should only be used for compiler-specific workarounds. -// Usage is identical to reinterpret_cast<>. - -// This union is declared outside the horrible_cast because BCC 5.5.1 -// can't inline a function with a nested class, and gives a warning. -template -union horrible_union{ - OutputClass out; - InputClass in; -}; - -template -inline OutputClass horrible_cast(const InputClass input){ - horrible_union u; - // Cause a compile-time error if in, out and u are not the same size. - // If the compile fails here, it means the compiler has peculiar - // unions which would prevent the cast from working. - typedef int ERROR_CantUseHorrible_cast[sizeof(InputClass)==sizeof(u) - && sizeof(InputClass)==sizeof(OutputClass) ? 1 : -1]; - u.in = input; - return u.out; -} - -//////////////////////////////////////////////////////////////////////////////// -// Workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Backwards compatibility: This macro used to be necessary in the virtual inheritance -// case for Intel and Microsoft. Now it just forward-declares the class. -#define FASTDELEGATEDECLARE(CLASSNAME) class CLASSNAME; - -// Prevent use of the static function hack with the DOS medium model. -#ifdef __MEDIUM__ -#undef FASTDELEGATE_USESTATICFUNCTIONHACK -#endif - -// DefaultVoid - a workaround for 'void' templates in VC6. -// -// (1) VC6 and earlier do not allow 'void' as a default template argument. -// (2) They also doesn't allow you to return 'void' from a function. -// -// Workaround for (1): Declare a dummy type 'DefaultVoid' which we use -// when we'd like to use 'void'. We convert it into 'void' and back -// using the templates DefaultVoidToVoid<> and VoidToDefaultVoid<>. -// Workaround for (2): On VC6, the code for calling a void function is -// identical to the code for calling a non-void function in which the -// return value is never used, provided the return value is returned -// in the EAX register, rather than on the stack. -// This is true for most fundamental types such as int, enum, void *. -// Const void * is the safest option since it doesn't participate -// in any automatic conversions. But on a 16-bit compiler it might -// cause extra code to be generated, so we disable it for all compilers -// except for VC6 (and VC5). -#ifdef FASTDLGT_VC6 -// VC6 workaround -typedef const void * DefaultVoid; -#else -// On any other compiler, just use a normal void. -typedef void DefaultVoid; -#endif - -// Translate from 'DefaultVoid' to 'void'. -// Everything else is unchanged -template -struct DefaultVoidToVoid { typedef T type; }; - -template <> -struct DefaultVoidToVoid { typedef void type; }; - -// Translate from 'void' into 'DefaultVoid' -// Everything else is unchanged -template -struct VoidToDefaultVoid { typedef T type; }; - -template <> -struct VoidToDefaultVoid { typedef DefaultVoid type; }; - - - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1: -// -// Conversion of member function pointer to a standard form -// -//////////////////////////////////////////////////////////////////////////////// - -// GenericClass is a fake class, ONLY used to provide a type. -// It is vitally important that it is never defined, so that the compiler doesn't -// think it can optimize the invocation. For example, Borland generates simpler -// code if it knows the class only uses single inheritance. - -// Compilers using Microsoft's structure need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -#ifdef FASTDLGT_HASINHERITANCE_KEYWORDS - // For Microsoft and Intel, we want to ensure that it's the most efficient type of MFP - // (4 bytes), even when the /vmg option is used. Declaring an empty class - // would give 16 byte pointers in this case.... - class __single_inheritance GenericClass; -#endif - // ...but for Codeplay, an empty class *always* gives 4 byte pointers. - // If compiled with the /clr option ("managed C++"), the JIT compiler thinks - // it needs to load GenericClass before it can call any of its functions, - // (compiles OK but crashes at runtime!), so we need to declare an - // empty class to make it happy. - // Codeplay and VC4 can't cope with the unknown_inheritance case either. - class GenericClass {}; -#else - class GenericClass; -#endif - -// The size of a single inheritance member function pointer. -const int SINGLE_MEMFUNCPTR_SIZE = sizeof(void (GenericClass::*)()); - -// SimplifyMemFunc< >::Convert() -// -// A template function that converts an arbitrary member function pointer into the -// simplest possible form of member function pointer, using a supplied 'this' pointer. -// According to the standard, this can be done legally with reinterpret_cast<>. -// For (non-standard) compilers which use member function pointers which vary in size -// depending on the class, we need to use knowledge of the internal structure of a -// member function pointer, as used by the compiler. Template specialization is used -// to distinguish between the sizes. Because some compilers don't support partial -// template specialisation, I use full specialisation of a wrapper struct. - -// general case -- don't know how to convert it. Force a compile failure -template -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // Unsupported member function type -- force a compile failure. - // (it's illegal to have a array with negative size). - typedef char ERROR_Unsupported_member_function_pointer_on_this_compiler[N-100]; - return 0; - } -}; - -// For compilers where all member func ptrs are the same size, everything goes here. -// For non-standard compilers, only single_inheritance classes go here. -template <> -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { -#if defined __DMC__ - // Digital Mars doesn't allow you to cast between abitrary PMF's, - // even though the standard says you can. The 32-bit compiler lets you - // static_cast through an int, but the DOS compiler doesn't. - bound_func = horrible_cast(function_to_bind); -#else - bound_func = reinterpret_cast(function_to_bind); -#endif - return reinterpret_cast(pthis); - } -}; - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1b: -// -// Workarounds for Microsoft and Intel -// -//////////////////////////////////////////////////////////////////////////////// - - -// Compilers with member function pointers which violate the standard (MSVC, Intel, Codeplay), -// need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -// We use unions to perform horrible_casts. I would like to use #pragma pack(push, 1) -// at the start of each function for extra safety, but VC6 seems to ICE -// intermittently if you do this inside a template. - -// __multiple_inheritance classes go here -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -template<> -struct SimplifyMemFunc< SINGLE_MEMFUNCPTR_SIZE + sizeof(int) > { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // We need to use a horrible_cast to do this conversion. - // In MSVC, a multiple inheritance member pointer is internally defined as: - union { - XFuncType func; - struct { - GenericMemFuncType funcaddress; // points to the actual member function - int delta; // #BYTES to be added to the 'this' pointer - }s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - return reinterpret_cast(reinterpret_cast(pthis) + u.s.delta); - } -}; - -// virtual inheritance is a real nuisance. It's inefficient and complicated. -// On MSVC and Intel, there isn't enough information in the pointer itself to -// enable conversion to a closure pointer. Earlier versions of this code didn't -// work for all cases, and generated a compile-time error instead. -// But a very clever hack invented by John M. Dlugosz solves this problem. -// My code is somewhat different to his: I have no asm code, and I make no -// assumptions about the calling convention that is used. - -// In VC++ and ICL, a virtual_inheritance member pointer -// is internally defined as: -struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance -}; -// The CRUCIAL feature of Microsoft/Intel MFPs which we exploit is that the -// m_codeptr member is *always* called, regardless of the values of the other -// members. (This is *not* true for other compilers, eg GCC, which obtain the -// function address from the vtable if a virtual function is being called). -// Dlugosz's trick is to make the codeptr point to a probe function which -// returns the 'this' pointer that was used. - -// Define a generic class that uses virtual inheritance. -// It has a trival member function that returns the value of the 'this' pointer. -struct GenericVirtualClass : virtual public GenericClass -{ - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } -}; - -// __virtual_inheritance classes go here -template <> -struct SimplifyMemFunc -{ - - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - union { - XFuncType func; - GenericClass* (X::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = function_to_bind; - bound_func = reinterpret_cast(u.s.codeptr); - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s) - && sizeof(function_to_bind)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - return (pthis->*u.ProbeFunc)(); - } -}; - -#if (_MSC_VER <1300) - -// Nasty hack for Microsoft Visual C++ 6.0 -// unknown_inheritance classes go here -// There is a compiler bug in MSVC6 which generates incorrect code in this case!! -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // There is an apalling but obscure compiler bug in MSVC6 and earlier: - // vtable_index and 'vtordisp' are always set to 0 in the - // unknown_inheritance case! - // This means that an incorrect function could be called!!! - // Compiling with the /vmg option leads to potentially incorrect code. - // This is probably the reason that the IDE has a user interface for specifying - // the /vmg option, but it is disabled - you can only specify /vmg on - // the command line. In VC1.5 and earlier, the compiler would ICE if it ever - // encountered this situation. - // It is OK to use the /vmg option if /vmm or /vms is specified. - - // Fortunately, the wrong function is only called in very obscure cases. - // It only occurs when a derived class overrides a virtual function declared - // in a virtual base class, and the member function - // points to the *Derived* version of that function. The problem can be - // completely averted in 100% of cases by using the *Base class* for the - // member fpointer. Ie, if you use the base class as an interface, you'll - // stay out of trouble. - // Occasionally, you might want to point directly to a derived class function - // that isn't an override of a base class. In this case, both vtable_index - // and 'vtordisp' are zero, but a virtual_inheritance pointer will be generated. - // We can generate correct code in this case. To prevent an incorrect call from - // ever being made, on MSVC6 we generate a warning, and call a function to - // make the program crash instantly. - typedef char ERROR_VC6CompilerBug[-100]; - return 0; - } -}; - - -#else - -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -// unknown_inheritance classes go here -// This is probably the ugliest bit of code I've ever written. Look at the casts! -// There is a compiler bug in MSVC6 which prevents it from using this code. -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - XFuncType func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - GenericMemFuncType m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(XFuncType)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - const int * vtable = *reinterpret_cast( - reinterpret_cast(pthis) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - } - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - return reinterpret_cast( - reinterpret_cast(pthis) + u.s.delta + virtual_delta); - }; -}; -#endif // MSVC 7 and greater - -#endif // MS/Intel hacks - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 2: -// -// Define the delegate storage, and cope with static functions -// -//////////////////////////////////////////////////////////////////////////////// - -// DelegateMemento -- an opaque structure which can hold an arbitary delegate. -// It knows nothing about the calling convention or number of arguments used by -// the function pointed to. -// It supplies comparison operators so that it can be stored in STL collections. -// It cannot be set to anything other than null, nor invoked directly: -// it must be converted to a specific delegate. - -// Implementation: -// There are two possible implementations: the Safe method and the Evil method. -// DelegateMemento - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// A static function pointer is stored inside the class. -// Here are the valid values: -// +-- Static pointer --+--pThis --+-- pMemFunc-+-- Meaning------+ -// | 0 | 0 | 0 | Empty | -// | !=0 |(dontcare)| Invoker | Static function| -// | 0 | !=0 | !=0* | Method call | -// +--------------------+----------+------------+----------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// When stored stored inside a specific delegate, the 'dontcare' entries are replaced -// with a reference to the delegate itself. This complicates the = and == operators -// for the delegate class. - -// DelegateMemento - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. In this case the DelegateMemento implementation is simple: -// +--pThis --+-- pMemFunc-+-- Meaning---------------------+ -// | 0 | 0 | Empty | -// | !=0 | !=0* | Static function or method call| -// +----------+------------+-------------------------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - -class DelegateMemento { -protected: - // the data is protected, not private, because many - // compilers have problems with template friends. - typedef void (detail::GenericClass::*GenericMemFuncType)(); // arbitrary MFP. - detail::GenericClass *m_pthis; - GenericMemFuncType m_pFunction; - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - typedef void (*GenericFuncPtr)(); // arbitrary code pointer - GenericFuncPtr m_pStaticFunction; -#endif - -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - DelegateMemento() : m_pthis(0), m_pFunction(0), m_pStaticFunction(0) {}; - void clear() { - m_pthis=0; m_pFunction=0; m_pStaticFunction=0; - } -#else - DelegateMemento() : m_pthis(0), m_pFunction(0) {}; - void clear() { m_pthis=0; m_pFunction=0; } -#endif -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - inline bool IsEqual (const DelegateMemento &x) const{ - // We have to cope with the static function pointers as a special case - if (m_pFunction!=x.m_pFunction) return false; - // the static function ptrs must either both be equal, or both be 0. - if (m_pStaticFunction!=x.m_pStaticFunction) return false; - if (m_pStaticFunction!=0) return m_pthis==x.m_pthis; - else return true; - } -#else // Evil Method - inline bool IsEqual (const DelegateMemento &x) const{ - return m_pthis==x.m_pthis && m_pFunction==x.m_pFunction; - } -#endif - // Provide a strict weak ordering for DelegateMementos. - inline bool IsLess(const DelegateMemento &right) const { - // deal with static function pointers first -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - if (m_pStaticFunction !=0 || right.m_pStaticFunction!=0) - return m_pStaticFunction < right.m_pStaticFunction; -#endif - if (m_pthis !=right.m_pthis) return m_pthis < right.m_pthis; - // There are no ordering operators for member function pointers, - // but we can fake one by comparing each byte. The resulting ordering is - // arbitrary (and compiler-dependent), but it permits storage in ordered STL containers. - return memcmp(&m_pFunction, &right.m_pFunction, sizeof(m_pFunction)) < 0; - - } - // BUGFIX (Mar 2005): - // We can't just compare m_pFunction because on Metrowerks, - // m_pFunction can be zero even if the delegate is not empty! - inline bool operator ! () const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } - inline bool empty() const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } -public: - DelegateMemento & operator = (const DelegateMemento &right) { - SetMementoFrom(right); - return *this; - } - inline bool operator <(const DelegateMemento &right) { - return IsLess(right); - } - inline bool operator >(const DelegateMemento &right) { - return right.IsLess(*this); - } - DelegateMemento (const DelegateMemento &right) : - m_pthis(right.m_pthis), m_pFunction(right.m_pFunction) -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - , m_pStaticFunction (right.m_pStaticFunction) -#endif - {} -protected: - void SetMementoFrom(const DelegateMemento &right) { - m_pFunction = right.m_pFunction; - m_pthis = right.m_pthis; -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = right.m_pStaticFunction; -#endif - } -}; - - -// ClosurePtr<> -// -// A private wrapper class that adds function signatures to DelegateMemento. -// It's the class that does most of the actual work. -// The signatures are specified by: -// GenericMemFunc: must be a type of GenericClass member function pointer. -// StaticFuncPtr: must be a type of function pointer with the same signature -// as GenericMemFunc. -// UnvoidStaticFuncPtr: is the same as StaticFuncPtr, except on VC6 -// where it never returns void (returns DefaultVoid instead). - -// An outer class, FastDelegateN<>, handles the invoking and creates the -// necessary typedefs. -// This class does everything else. - -namespace detail { - -template < class GenericMemFunc, class StaticFuncPtr, class UnvoidStaticFuncPtr> -class ClosurePtr : public DelegateMemento { -public: - // These functions are for setting the delegate to a member function. - - // Here's the clever bit: we convert an arbitrary member function into a - // standard form. XMemFunc should be a member function of class X, but I can't - // enforce that here. It needs to be enforced by the wrapper class. - template < class X, class XMemFunc > - inline void bindmemfunc(X *pthis, XMemFunc function_to_bind ) { - m_pthis = SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(pthis, function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } - // For const member functions, we only need a const class pointer. - // Since we know that the member function is const, it's safe to - // remove the const qualifier from the 'this' pointer with a const_cast. - // VC6 has problems if we just overload 'bindmemfunc', so we give it a different name. - template < class X, class XMemFunc> - inline void bindconstmemfunc(const X *pthis, XMemFunc function_to_bind) { - m_pthis= SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(const_cast(pthis), function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#ifdef FASTDELEGATE_GCC_BUG_8271 // At present, GCC doesn't recognize constness of MFPs in templates - template < class X, class XMemFunc> - inline void bindmemfunc(const X *pthis, XMemFunc function_to_bind) { - bindconstmemfunc(pthis, function_to_bind); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#endif - // These functions are required for invoking the stored function - inline GenericClass *GetClosureThis() const { return m_pthis; } - inline GenericMemFunc GetClosureMemPtr() const { return reinterpret_cast(m_pFunction); } - -// There are a few ways of dealing with static function pointers. -// There's a standard-compliant, but tricky method. -// There's also a straightforward hack, that won't work on DOS compilers using the -// medium memory model. It's so evil that I can't recommend it, but I've -// implemented it anyway because it produces very nice asm code. - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - -// ClosurePtr<> - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// I store the function pointer inside the class, and the delegate then -// points to itself. Whenever the delegate is copied, these self-references -// must be transformed, and this complicates the = and == operators. -public: - // The next two functions are for operator ==, =, and the copy constructor. - // We may need to convert the m_pthis pointers, so that - // they remain as self-references. - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &x) { - SetMementoFrom(x); - if (m_pStaticFunction!=0) { - // transform self references... - m_pthis=reinterpret_cast(pParent); - } - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - template < class DerivedClass, class ParentInvokerSig > - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind ) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - bindmemfunc(pParent, static_function_invoker); - } - m_pStaticFunction=reinterpret_cast(function_to_bind); - } - inline UnvoidStaticFuncPtr GetStaticFunction() const { - return reinterpret_cast(m_pStaticFunction); - } -#else - -// ClosurePtr<> - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. Invocation isn't any faster, but it saves 4 bytes, and -// speeds up comparison and assignment. If C++ provided direct language support -// for delegates, they would produce asm code that was almost identical to this. -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &right) { - SetMementoFrom(right); - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - // ******** EVIL, EVIL CODE! ******* - template < class DerivedClass, class ParentInvokerSig> - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - // We'll be ignoring the 'this' pointer, but we need to make sure we pass - // a valid value to bindmemfunc(). - bindmemfunc(pParent, static_function_invoker); - } - - // WARNING! Evil hack. We store the function in the 'this' pointer! - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(GenericClass *)==sizeof(function_to_bind) ? 1 : -1]; - m_pthis = horrible_cast(function_to_bind); - // MSVC, SunC++ and DMC accept the following (non-standard) code: -// m_pthis = static_cast(static_cast(function_to_bind)); - // BCC32, Comeau and DMC accept this method. MSVC7.1 needs __int64 instead of long -// m_pthis = reinterpret_cast(reinterpret_cast(function_to_bind)); - } - // ******** EVIL, EVIL CODE! ******* - // This function will be called with an invalid 'this' pointer!! - // We're just returning the 'this' pointer, converted into - // a function pointer! - inline UnvoidStaticFuncPtr GetStaticFunction() const { - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(UnvoidStaticFuncPtr)==sizeof(this) ? 1 : -1]; - return horrible_cast(this); - } -#endif // !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - - // Does the closure contain this static function? - inline bool IsEqualToStaticFuncPtr(StaticFuncPtr funcptr){ - if (funcptr==0) return empty(); - // For the Evil method, if it doesn't actually contain a static function, this will return an arbitrary - // value that is not equal to any valid function pointer. - else return funcptr==reinterpret_cast(GetStaticFunction()); - } -}; - - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 3: -// -// Wrapper classes to ensure type safety -// -//////////////////////////////////////////////////////////////////////////////// - - -// Once we have the member function conversion templates, it's easy to make the -// wrapper classes. So that they will work with as many compilers as possible, -// the classes are of the form -// FastDelegate3 -// They can cope with any combination of parameters. The max number of parameters -// allowed is 8, but it is trivial to increase this limit. -// Note that we need to treat const member functions seperately. -// All this class does is to enforce type safety, and invoke the delegate with -// the correct list of parameters. - -// Because of the weird rule about the class of derived member function pointers, -// you sometimes need to apply a downcast to the 'this' pointer. -// This is the reason for the use of "implicit_cast(pthis)" in the code below. -// If CDerivedClass is derived from CBaseClass, but doesn't override SimpleVirtualFunction, -// without this trick you'd need to write: -// MyDelegate(static_cast(&d), &CDerivedClass::SimpleVirtualFunction); -// but with the trick you can write -// MyDelegate(&d, &CDerivedClass::SimpleVirtualFunction); - -// RetType is the type the compiler uses in compiling the template. For VC6, -// it cannot be void. DesiredRetType is the real type which is returned from -// all of the functions. It can be void. - -// Implicit conversion to "bool" is achieved using the safe_bool idiom, -// using member data pointers (MDP). This allows "if (dg)..." syntax -// Because some compilers (eg codeplay) don't have a unique value for a zero -// MDP, an extra padding member is added to the SafeBool struct. -// Some compilers (eg VC6) won't implicitly convert from 0 to an MDP, so -// in that case the static function constructor is not made explicit; this -// allows "if (dg==0) ..." to compile. - -//N=0 -template -class FastDelegate0 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(); - typedef RetType (*UnvoidStaticFunctionPtr)(); - typedef RetType (detail::GenericClass::*GenericMemFn)(); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate0 type; - - // Construction and comparison functions - FastDelegate0() { clear(); } - FastDelegate0(const FastDelegate0 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate0 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate0 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate0 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate0 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate0 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate0(Y *pthis, DesiredRetType (X::* function_to_bind)() ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)()) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate0(const Y *pthis, DesiredRetType (X::* function_to_bind)() const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)() const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate0(DesiredRetType (*function_to_bind)() ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)() ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)()) { - m_Closure.bindstaticfunc(this, &FastDelegate0::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() () const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction() const { - return (*(m_Closure.GetStaticFunction()))(); } -}; - -//N=1 -template -class FastDelegate1 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate1 type; - - // Construction and comparison functions - FastDelegate1() { clear(); } - FastDelegate1(const FastDelegate1 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate1 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate1 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate1 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate1 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate1 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate1(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate1(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate1(DesiredRetType (*function_to_bind)(Param1 p1) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1)) { - m_Closure.bindstaticfunc(this, &FastDelegate1::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1) const { - return (*(m_Closure.GetStaticFunction()))(p1); } -}; - -//N=2 -template -class FastDelegate2 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate2 type; - - // Construction and comparison functions - FastDelegate2() { clear(); } - FastDelegate2(const FastDelegate2 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate2 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate2 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate2 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate2 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate2 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate2(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate2(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate2(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2)) { - m_Closure.bindstaticfunc(this, &FastDelegate2::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2); } -}; - -//N=3 -template -class FastDelegate3 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate3 type; - - // Construction and comparison functions - FastDelegate3() { clear(); } - FastDelegate3(const FastDelegate3 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate3 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate3 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate3 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate3 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate3 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate3(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate3(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate3(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3)) { - m_Closure.bindstaticfunc(this, &FastDelegate3::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3); } -}; - -//N=4 -template -class FastDelegate4 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate4 type; - - // Construction and comparison functions - FastDelegate4() { clear(); } - FastDelegate4(const FastDelegate4 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate4 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate4 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate4 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate4 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate4 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate4(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate4(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate4(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - m_Closure.bindstaticfunc(this, &FastDelegate4::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4); } -}; - -//N=5 -template -class FastDelegate5 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate5 type; - - // Construction and comparison functions - FastDelegate5() { clear(); } - FastDelegate5(const FastDelegate5 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate5 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate5 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate5 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate5 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate5 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate5(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate5(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate5(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - m_Closure.bindstaticfunc(this, &FastDelegate5::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5); } -}; - -//N=6 -template -class FastDelegate6 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate6 type; - - // Construction and comparison functions - FastDelegate6() { clear(); } - FastDelegate6(const FastDelegate6 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate6 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate6 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate6 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate6 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate6 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate6(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate6(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate6(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - m_Closure.bindstaticfunc(this, &FastDelegate6::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6); } -}; - -//N=7 -template -class FastDelegate7 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate7 type; - - // Construction and comparison functions - FastDelegate7() { clear(); } - FastDelegate7(const FastDelegate7 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate7 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate7 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate7 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate7 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate7 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate7(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate7(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate7(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - m_Closure.bindstaticfunc(this, &FastDelegate7::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7); } -}; - -//N=8 -template -class FastDelegate8 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate8 type; - - // Construction and comparison functions - FastDelegate8() { clear(); } - FastDelegate8(const FastDelegate8 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate8 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate8 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate8 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate8 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate8 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate8(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate8(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate8(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - m_Closure.bindstaticfunc(this, &FastDelegate8::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8); } -}; - -//N=9 -template -class FastDelegate9 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate9 type; - - // Construction and comparison functions - FastDelegate9() { clear(); } - FastDelegate9(const FastDelegate9 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate9 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate9 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate9 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate9 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate9 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate9(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate9(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate9(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - m_Closure.bindstaticfunc(this, &FastDelegate9::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9); } -}; - -//N=10 -template -class FastDelegate10 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate10 type; - - // Construction and comparison functions - FastDelegate10() { clear(); } - FastDelegate10(const FastDelegate10 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate10 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate10 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate10 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate10 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate10 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate10(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate10(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate10(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - m_Closure.bindstaticfunc(this, &FastDelegate10::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } -}; - -//N=11 -template -class FastDelegate11 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate11 type; - - // Construction and comparison functions - FastDelegate11() { clear(); } - FastDelegate11(const FastDelegate11 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate11 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate11 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate11 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate11 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate11 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate11(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate11(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate11(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - m_Closure.bindstaticfunc(this, &FastDelegate11::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } -}; - -//N=12 -template -class FastDelegate12 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate12 type; - - // Construction and comparison functions - FastDelegate12() { clear(); } - FastDelegate12(const FastDelegate12 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate12 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate12 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate12 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate12 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate12 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate12(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate12(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate12(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - m_Closure.bindstaticfunc(this, &FastDelegate12::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } -}; - -//N=13 -template -class FastDelegate13 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate13 type; - - // Construction and comparison functions - FastDelegate13() { clear(); } - FastDelegate13(const FastDelegate13 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate13 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate13 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate13 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate13 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate13 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate13(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate13(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate13(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - m_Closure.bindstaticfunc(this, &FastDelegate13::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } -}; - -//N=14 -template -class FastDelegate14 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate14 type; - - // Construction and comparison functions - FastDelegate14() { clear(); } - FastDelegate14(const FastDelegate14 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate14 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate14 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate14 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate14 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate14 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate14(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate14(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate14(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - m_Closure.bindstaticfunc(this, &FastDelegate14::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); } -}; - -//N=15 -template -class FastDelegate15 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate15 type; - - // Construction and comparison functions - FastDelegate15() { clear(); } - FastDelegate15(const FastDelegate15 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate15 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate15 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate15 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate15 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate15 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate15(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate15(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate15(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - m_Closure.bindstaticfunc(this, &FastDelegate15::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15); } -}; - -//N=16 -template -class FastDelegate16 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate16 type; - - // Construction and comparison functions - FastDelegate16() { clear(); } - FastDelegate16(const FastDelegate16 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate16 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate16 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate16 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate16 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate16 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate16(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate16(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate16(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - m_Closure.bindstaticfunc(this, &FastDelegate16::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16); } -}; - -//N=17 -template -class FastDelegate17 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate17 type; - - // Construction and comparison functions - FastDelegate17() { clear(); } - FastDelegate17(const FastDelegate17 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate17 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate17 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate17 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate17 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate17 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate17(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate17(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate17(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - m_Closure.bindstaticfunc(this, &FastDelegate17::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17); } -}; - -//N=18 -template -class FastDelegate18 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate18 type; - - // Construction and comparison functions - FastDelegate18() { clear(); } - FastDelegate18(const FastDelegate18 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate18 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate18 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate18 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate18 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate18 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate18(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate18(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate18(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - m_Closure.bindstaticfunc(this, &FastDelegate18::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18); } -}; - -//N=19 -template -class FastDelegate19 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate19 type; - - // Construction and comparison functions - FastDelegate19() { clear(); } - FastDelegate19(const FastDelegate19 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate19 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate19 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate19 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate19 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate19 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate19(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate19(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate19(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - m_Closure.bindstaticfunc(this, &FastDelegate19::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19); } -}; - -//N=20 -template -class FastDelegate20 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate20 type; - - // Construction and comparison functions - FastDelegate20() { clear(); } - FastDelegate20(const FastDelegate20 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate20 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate20 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate20 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate20 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate20 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate20(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate20(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate20(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - m_Closure.bindstaticfunc(this, &FastDelegate20::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20); } -}; - - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 4: -// -// FastDelegate<> class (Original author: Jody Hagins) -// Allows boost::function style syntax like: -// FastDelegate< double (int, long) > -// instead of: -// FastDelegate2< int, long, double > -// -//////////////////////////////////////////////////////////////////////////////// - -#ifdef FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -// Declare FastDelegate as a class template. It will be specialized -// later for all number of arguments. -template -class FastDelegate; - -//N=0 -// Specialization to allow use of -// FastDelegate< R ( ) > -// instead of -// FastDelegate0 < R > -template -class FastDelegate< R ( ) > - // Inherit from FastDelegate0 so that it can be treated just like a FastDelegate0 - : public FastDelegate0 < R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate0 < R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=1 -// Specialization to allow use of -// FastDelegate< R ( Param1 ) > -// instead of -// FastDelegate1 < Param1, R > -template -class FastDelegate< R ( Param1 ) > - // Inherit from FastDelegate1 so that it can be treated just like a FastDelegate1 - : public FastDelegate1 < Param1, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate1 < Param1, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=2 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2 ) > -// instead of -// FastDelegate2 < Param1, Param2, R > -template -class FastDelegate< R ( Param1, Param2 ) > - // Inherit from FastDelegate2 so that it can be treated just like a FastDelegate2 - : public FastDelegate2 < Param1, Param2, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate2 < Param1, Param2, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=3 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3 ) > -// instead of -// FastDelegate3 < Param1, Param2, Param3, R > -template -class FastDelegate< R ( Param1, Param2, Param3 ) > - // Inherit from FastDelegate3 so that it can be treated just like a FastDelegate3 - : public FastDelegate3 < Param1, Param2, Param3, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate3 < Param1, Param2, Param3, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=4 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4 ) > -// instead of -// FastDelegate4 < Param1, Param2, Param3, Param4, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4 ) > - // Inherit from FastDelegate4 so that it can be treated just like a FastDelegate4 - : public FastDelegate4 < Param1, Param2, Param3, Param4, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate4 < Param1, Param2, Param3, Param4, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=5 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5 ) > -// instead of -// FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5 ) > - // Inherit from FastDelegate5 so that it can be treated just like a FastDelegate5 - : public FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=6 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6 ) > -// instead of -// FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6 ) > - // Inherit from FastDelegate6 so that it can be treated just like a FastDelegate6 - : public FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=7 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7 ) > -// instead of -// FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7 ) > - // Inherit from FastDelegate7 so that it can be treated just like a FastDelegate7 - : public FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=8 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8 ) > -// instead of -// FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8 ) > - // Inherit from FastDelegate8 so that it can be treated just like a FastDelegate8 - : public FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=9 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9 ) > -// instead of -// FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9 ) > - // Inherit from FastDelegate9 so that it can be treated just like a FastDelegate9 - : public FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=10 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10 ) > -// instead of -// FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10 ) > - // Inherit from FastDelegate10 so that it can be treated just like a FastDelegate10 - : public FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=11 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11 ) > -// instead of -// FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11 ) > - // Inherit from FastDelegate11 so that it can be treated just like a FastDelegate11 - : public FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=12 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12 ) > -// instead of -// FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12 ) > - // Inherit from FastDelegate12 so that it can be treated just like a FastDelegate12 - : public FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=13 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13 ) > -// instead of -// FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13 ) > - // Inherit from FastDelegate13 so that it can be treated just like a FastDelegate13 - : public FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=14 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14 ) > -// instead of -// FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14 ) > - // Inherit from FastDelegate14 so that it can be treated just like a FastDelegate14 - : public FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=15 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15 ) > -// instead of -// FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15 ) > - // Inherit from FastDelegate15 so that it can be treated just like a FastDelegate15 - : public FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=16 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16 ) > -// instead of -// FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16 ) > - // Inherit from FastDelegate16 so that it can be treated just like a FastDelegate16 - : public FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=17 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17 ) > -// instead of -// FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17 ) > - // Inherit from FastDelegate17 so that it can be treated just like a FastDelegate17 - : public FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=18 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18 ) > -// instead of -// FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18 ) > - // Inherit from FastDelegate18 so that it can be treated just like a FastDelegate18 - : public FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=19 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19 ) > -// instead of -// FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19 ) > - // Inherit from FastDelegate19 so that it can be treated just like a FastDelegate19 - : public FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=20 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20 ) > -// instead of -// FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20 ) > - // Inherit from FastDelegate20 so that it can be treated just like a FastDelegate20 - : public FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - - -#endif //FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 5: -// -// MakeDelegate() helper function -// -// MakeDelegate(&x, &X::func) returns a fastdelegate of the type -// necessary for calling x.func() with the correct number of arguments. -// This makes it possible to eliminate many typedefs from user code. -// -//////////////////////////////////////////////////////////////////////////////// - -// Also declare overloads of a MakeDelegate() global function to -// reduce the need for typedefs. -// We need seperate overloads for const and non-const member functions. -// Also, because of the weird rule about the class of derived member function pointers, -// implicit downcasts may need to be applied later to the 'this' pointer. -// That's why two classes (X and Y) appear in the definitions. Y must be implicitly -// castable to X. - -// Workaround for VC6. VC6 needs void return types converted into DefaultVoid. -// GCC 3.2 and later won't compile this unless it's preceded by 'typename', -// but VC6 doesn't allow 'typename' in this context. -// So, I have to use a macro. - -#ifdef FASTDLGT_VC6 -#define FASTDLGT_RETTYPE detail::VoidToDefaultVoid::type -#else -#define FASTDLGT_RETTYPE RetType -#endif - -//N=0 -template -FastDelegate0 MakeDelegate(Y* x, RetType (X::*func)()) { - return FastDelegate0(x, func); -} - -template -FastDelegate0 MakeDelegate(Y* x, RetType (X::*func)() const) { - return FastDelegate0(x, func); -} - -template -FastDelegate0 MakeDelegate(RetType (*func)()) { - return FastDelegate0(func); -} - -//N=1 -template -FastDelegate1 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1)) { - return FastDelegate1(x, func); -} - -template -FastDelegate1 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1) const) { - return FastDelegate1(x, func); -} - -template -FastDelegate1 MakeDelegate(RetType (*func)(Param1 p1)) { - return FastDelegate1(func); -} - -//N=2 -template -FastDelegate2 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2)) { - return FastDelegate2(x, func); -} - -template -FastDelegate2 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2) const) { - return FastDelegate2(x, func); -} - -template -FastDelegate2 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2)) { - return FastDelegate2(func); -} - -//N=3 -template -FastDelegate3 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3)) { - return FastDelegate3(x, func); -} - -template -FastDelegate3 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3) const) { - return FastDelegate3(x, func); -} - -template -FastDelegate3 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3)) { - return FastDelegate3(func); -} - -//N=4 -template -FastDelegate4 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - return FastDelegate4(x, func); -} - -template -FastDelegate4 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - return FastDelegate4(x, func); -} - -template -FastDelegate4 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - return FastDelegate4(func); -} - -//N=5 -template -FastDelegate5 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - return FastDelegate5(x, func); -} - -template -FastDelegate5 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - return FastDelegate5(x, func); -} - -template -FastDelegate5 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - return FastDelegate5(func); -} - -//N=6 -template -FastDelegate6 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - return FastDelegate6(x, func); -} - -template -FastDelegate6 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - return FastDelegate6(x, func); -} - -template -FastDelegate6 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - return FastDelegate6(func); -} - -//N=7 -template -FastDelegate7 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - return FastDelegate7(x, func); -} - -template -FastDelegate7 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - return FastDelegate7(x, func); -} - -template -FastDelegate7 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - return FastDelegate7(func); -} - -//N=8 -template -FastDelegate8 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - return FastDelegate8(x, func); -} - -template -FastDelegate8 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - return FastDelegate8(x, func); -} - -template -FastDelegate8 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - return FastDelegate8(func); -} - -//N=9 -template -FastDelegate9 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - return FastDelegate9(x, func); -} - -template -FastDelegate9 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - return FastDelegate9(x, func); -} - -template -FastDelegate9 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - return FastDelegate9(func); -} - -//N=10 -template -FastDelegate10 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - return FastDelegate10(x, func); -} - -template -FastDelegate10 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - return FastDelegate10(x, func); -} - -template -FastDelegate10 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - return FastDelegate10(func); -} - -//N=11 -template -FastDelegate11 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - return FastDelegate11(x, func); -} - -template -FastDelegate11 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - return FastDelegate11(x, func); -} - -template -FastDelegate11 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - return FastDelegate11(func); -} - -//N=12 -template -FastDelegate12 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - return FastDelegate12(x, func); -} - -template -FastDelegate12 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - return FastDelegate12(x, func); -} - -template -FastDelegate12 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - return FastDelegate12(func); -} - -//N=13 -template -FastDelegate13 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - return FastDelegate13(x, func); -} - -template -FastDelegate13 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - return FastDelegate13(x, func); -} - -template -FastDelegate13 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - return FastDelegate13(func); -} - -//N=14 -template -FastDelegate14 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - return FastDelegate14(x, func); -} - -template -FastDelegate14 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - return FastDelegate14(x, func); -} - -template -FastDelegate14 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - return FastDelegate14(func); -} - -//N=15 -template -FastDelegate15 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - return FastDelegate15(x, func); -} - -template -FastDelegate15 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - return FastDelegate15(x, func); -} - -template -FastDelegate15 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - return FastDelegate15(func); -} - -//N=16 -template -FastDelegate16 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - return FastDelegate16(x, func); -} - -template -FastDelegate16 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - return FastDelegate16(x, func); -} - -template -FastDelegate16 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - return FastDelegate16(func); -} - -//N=17 -template -FastDelegate17 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - return FastDelegate17(x, func); -} - -template -FastDelegate17 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - return FastDelegate17(x, func); -} - -template -FastDelegate17 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - return FastDelegate17(func); -} - -//N=18 -template -FastDelegate18 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - return FastDelegate18(x, func); -} - -template -FastDelegate18 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - return FastDelegate18(x, func); -} - -template -FastDelegate18 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - return FastDelegate18(func); -} - -//N=19 -template -FastDelegate19 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - return FastDelegate19(x, func); -} - -template -FastDelegate19 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - return FastDelegate19(x, func); -} - -template -FastDelegate19 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - return FastDelegate19(func); -} - -//N=20 -template -FastDelegate20 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - return FastDelegate20(x, func); -} - -template -FastDelegate20 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - return FastDelegate20(x, func); -} - -template -FastDelegate20 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - return FastDelegate20(func); -} - - - // clean up after ourselves... -#undef FASTDLGT_RETTYPE - -} // namespace fastdelegate - -#endif // !defined(FASTDELEGATE_H) diff --git a/sourcehook/generate/FastDelegate.h b/sourcehook/generate/FastDelegate.h deleted file mode 100644 index a17bb1a..0000000 --- a/sourcehook/generate/FastDelegate.h +++ /dev/null @@ -1,3811 +0,0 @@ -// FastDelegate.h -// Efficient delegates in C++ that generate only two lines of asm code! -// Documentation is found at http://www.codeproject.com/cpp/FastDelegate.asp -// -// - Don Clugston, Mar 2004. -// Major contributions were made by Jody Hagins. -// History: -// 24-Apr-04 1.0 * Submitted to CodeProject. -// 28-Apr-04 1.1 * Prevent most unsafe uses of evil static function hack. -// * Improved syntax for horrible_cast (thanks Paul Bludov). -// * Tested on Metrowerks MWCC and Intel ICL (IA32) -// * Compiled, but not run, on Comeau C++ and Intel Itanium ICL. -// 27-Jun-04 1.2 * Now works on Borland C++ Builder 5.5 -// * Now works on /clr "managed C++" code on VC7, VC7.1 -// * Comeau C++ now compiles without warnings. -// * Prevent the virtual inheritance case from being used on -// VC6 and earlier, which generate incorrect code. -// * Improved warning and error messages. Non-standard hacks -// now have compile-time checks to make them safer. -// * implicit_cast used instead of static_cast in many cases. -// * If calling a const member function, a const class pointer can be used. -// * MakeDelegate() global helper function added to simplify pass-by-value. -// * Added fastdelegate.clear() -// 16-Jul-04 1.2.1* Workaround for gcc bug (const member function pointers in templates) -// 30-Oct-04 1.3 * Support for (non-void) return values. -// * No more workarounds in client code! -// MSVC and Intel now use a clever hack invented by John Dlugosz: -// - The FASTDELEGATEDECLARE workaround is no longer necessary. -// - No more warning messages for VC6 -// * Less use of macros. Error messages should be more comprehensible. -// * Added include guards -// * Added FastDelegate::empty() to test if invocation is safe (Thanks Neville Franks). -// * Now tested on VS 2005 Express Beta, PGI C++ -// 24-Dec-04 1.4 * Added DelegateMemento, to allow collections of disparate delegates. -// * <,>,<=,>= comparison operators to allow storage in ordered containers. -// * Substantial reduction of code size, especially the 'Closure' class. -// * Standardised all the compiler-specific workarounds. -// * MFP conversion now works for CodePlay (but not yet supported in the full code). -// * Now compiles without warnings on _any_ supported compiler, including BCC 5.5.1 -// * New syntax: FastDelegate< int (char *, double) >. -// 14-Feb-05 1.4.1* Now treats =0 as equivalent to .clear(), ==0 as equivalent to .empty(). (Thanks elfric). -// * Now tested on Intel ICL for AMD64, VS2005 Beta for AMD64 and Itanium. -// 30-Mar-05 1.5 * Safebool idiom: "if (dg)" is now equivalent to "if (!dg.empty())" -// * Fully supported by CodePlay VectorC -// * Bugfix for Metrowerks: empty() was buggy because a valid MFP can be 0 on MWCC! -// * More optimal assignment,== and != operators for static function pointers. - -#ifndef FASTDELEGATE_H -#define FASTDELEGATE_H - -#ifdef _MSC_VER -# if _MSC_VER > 1000 -# pragma once -# endif // _MSC_VER > 1000 -#endif // #ifdef _MSC_VER - -#include // to allow <,> comparisons - -//////////////////////////////////////////////////////////////////////////////// -// Configuration options -// -//////////////////////////////////////////////////////////////////////////////// - -// Uncomment the following #define for optimally-sized delegates. -// In this case, the generated asm code is almost identical to the code you'd get -// if the compiler had native support for delegates. -// It will not work on systems where sizeof(dataptr) < sizeof(codeptr). -// Thus, it will not work for DOS compilers using the medium model. -// It will also probably fail on some DSP systems. -#define FASTDELEGATE_USESTATICFUNCTIONHACK - -// Uncomment the next line to allow function declarator syntax. -// It is automatically enabled for those compilers where it is known to work. -//#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Compiler identification for workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Compiler identification. It's not easy to identify Visual C++ because -// many vendors fraudulently define Microsoft's identifiers. -#if defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__VECTOR_C) && !defined(__ICL) && !defined(__BORLANDC__) -#define FASTDLGT_ISMSVC - -#if (_MSC_VER <1300) // Many workarounds are required for VC6. -#define FASTDLGT_VC6 -#pragma warning(disable:4786) // disable this ridiculous warning -#endif - -#endif - -// Does the compiler uses Microsoft's member function pointer structure? -// If so, it needs special treatment. -// Metrowerks CodeWarrior, Intel, and CodePlay fraudulently define Microsoft's -// identifier, _MSC_VER. We need to filter Metrowerks out. -#if defined(_MSC_VER) && !defined(__MWERKS__) -#define FASTDLGT_MICROSOFT_MFP - -#if !defined(__VECTOR_C) -// CodePlay doesn't have the __single/multi/virtual_inheritance keywords -#define FASTDLGT_HASINHERITANCE_KEYWORDS -#endif -#endif - -// Does it allow function declarator syntax? The following compilers are known to work: -#if defined(FASTDLGT_ISMSVC) && (_MSC_VER >=1310) // VC 7.1 -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// Gcc(2.95+), and versions of Digital Mars, Intel and Comeau in common use. -#if defined (__DMC__) || defined(__GNUC__) || defined(__ICL) || defined(__COMO__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// It works on Metrowerks MWCC 3.2.2. From boost.Config it should work on earlier ones too. -#if defined (__MWERKS__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -#ifdef __GNUC__ // Workaround GCC bug #8271 - // At present, GCC doesn't recognize constness of MFPs in templates -#define FASTDELEGATE_GCC_BUG_8271 -#endif - - - -//////////////////////////////////////////////////////////////////////////////// -// General tricks used in this code -// -// (a) Error messages are generated by typdefing an array of negative size to -// generate compile-time errors. -// (b) Warning messages on MSVC are generated by declaring unused variables, and -// enabling the "variable XXX is never used" warning. -// (c) Unions are used in a few compiler-specific cases to perform illegal casts. -// (d) For Microsoft and Intel, when adjusting the 'this' pointer, it's cast to -// (char *) first to ensure that the correct number of *bytes* are added. -// -//////////////////////////////////////////////////////////////////////////////// -// Helper templates -// -//////////////////////////////////////////////////////////////////////////////// - - -namespace fastdelegate { -namespace detail { // we'll hide the implementation details in a nested namespace. - -// implicit_cast< > -// I believe this was originally going to be in the C++ standard but -// was left out by accident. It's even milder than static_cast. -// I use it instead of static_cast<> to emphasize that I'm not doing -// anything nasty. -// Usage is identical to static_cast<> -template -inline OutputClass implicit_cast(InputClass input){ - return input; -} - -// horrible_cast< > -// This is truly evil. It completely subverts C++'s type system, allowing you -// to cast from any class to any other class. Technically, using a union -// to perform the cast is undefined behaviour (even in C). But we can see if -// it is OK by checking that the union is the same size as each of its members. -// horrible_cast<> should only be used for compiler-specific workarounds. -// Usage is identical to reinterpret_cast<>. - -// This union is declared outside the horrible_cast because BCC 5.5.1 -// can't inline a function with a nested class, and gives a warning. -template -union horrible_union{ - OutputClass out; - InputClass in; -}; - -template -inline OutputClass horrible_cast(const InputClass input){ - horrible_union u; - // Cause a compile-time error if in, out and u are not the same size. - // If the compile fails here, it means the compiler has peculiar - // unions which would prevent the cast from working. - typedef int ERROR_CantUseHorrible_cast[sizeof(InputClass)==sizeof(u) - && sizeof(InputClass)==sizeof(OutputClass) ? 1 : -1]; - u.in = input; - return u.out; -} - -//////////////////////////////////////////////////////////////////////////////// -// Workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Backwards compatibility: This macro used to be necessary in the virtual inheritance -// case for Intel and Microsoft. Now it just forward-declares the class. -#define FASTDELEGATEDECLARE(CLASSNAME) class CLASSNAME; - -// Prevent use of the static function hack with the DOS medium model. -#ifdef __MEDIUM__ -#undef FASTDELEGATE_USESTATICFUNCTIONHACK -#endif - -// DefaultVoid - a workaround for 'void' templates in VC6. -// -// (1) VC6 and earlier do not allow 'void' as a default template argument. -// (2) They also doesn't allow you to return 'void' from a function. -// -// Workaround for (1): Declare a dummy type 'DefaultVoid' which we use -// when we'd like to use 'void'. We convert it into 'void' and back -// using the templates DefaultVoidToVoid<> and VoidToDefaultVoid<>. -// Workaround for (2): On VC6, the code for calling a void function is -// identical to the code for calling a non-void function in which the -// return value is never used, provided the return value is returned -// in the EAX register, rather than on the stack. -// This is true for most fundamental types such as int, enum, void *. -// Const void * is the safest option since it doesn't participate -// in any automatic conversions. But on a 16-bit compiler it might -// cause extra code to be generated, so we disable it for all compilers -// except for VC6 (and VC5). -#ifdef FASTDLGT_VC6 -// VC6 workaround -typedef const void * DefaultVoid; -#else -// On any other compiler, just use a normal void. -typedef void DefaultVoid; -#endif - -// Translate from 'DefaultVoid' to 'void'. -// Everything else is unchanged -template -struct DefaultVoidToVoid { typedef T type; }; - -template <> -struct DefaultVoidToVoid { typedef void type; }; - -// Translate from 'void' into 'DefaultVoid' -// Everything else is unchanged -template -struct VoidToDefaultVoid { typedef T type; }; - -template <> -struct VoidToDefaultVoid { typedef DefaultVoid type; }; - - - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1: -// -// Conversion of member function pointer to a standard form -// -//////////////////////////////////////////////////////////////////////////////// - -// GenericClass is a fake class, ONLY used to provide a type. -// It is vitally important that it is never defined, so that the compiler doesn't -// think it can optimize the invocation. For example, Borland generates simpler -// code if it knows the class only uses single inheritance. - -// Compilers using Microsoft's structure need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -#ifdef FASTDLGT_HASINHERITANCE_KEYWORDS - // For Microsoft and Intel, we want to ensure that it's the most efficient type of MFP - // (4 bytes), even when the /vmg option is used. Declaring an empty class - // would give 16 byte pointers in this case.... - class __single_inheritance GenericClass; -#endif - // ...but for Codeplay, an empty class *always* gives 4 byte pointers. - // If compiled with the /clr option ("managed C++"), the JIT compiler thinks - // it needs to load GenericClass before it can call any of its functions, - // (compiles OK but crashes at runtime!), so we need to declare an - // empty class to make it happy. - // Codeplay and VC4 can't cope with the unknown_inheritance case either. - class GenericClass {}; -#else - class GenericClass; -#endif - -// The size of a single inheritance member function pointer. -const int SINGLE_MEMFUNCPTR_SIZE = sizeof(void (GenericClass::*)()); - -// SimplifyMemFunc< >::Convert() -// -// A template function that converts an arbitrary member function pointer into the -// simplest possible form of member function pointer, using a supplied 'this' pointer. -// According to the standard, this can be done legally with reinterpret_cast<>. -// For (non-standard) compilers which use member function pointers which vary in size -// depending on the class, we need to use knowledge of the internal structure of a -// member function pointer, as used by the compiler. Template specialization is used -// to distinguish between the sizes. Because some compilers don't support partial -// template specialisation, I use full specialisation of a wrapper struct. - -// general case -- don't know how to convert it. Force a compile failure -template -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // Unsupported member function type -- force a compile failure. - // (it's illegal to have a array with negative size). - typedef char ERROR_Unsupported_member_function_pointer_on_this_compiler[N-100]; - return 0; - } -}; - -// For compilers where all member func ptrs are the same size, everything goes here. -// For non-standard compilers, only single_inheritance classes go here. -template <> -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { -#if defined __DMC__ - // Digital Mars doesn't allow you to cast between abitrary PMF's, - // even though the standard says you can. The 32-bit compiler lets you - // static_cast through an int, but the DOS compiler doesn't. - bound_func = horrible_cast(function_to_bind); -#else - bound_func = reinterpret_cast(function_to_bind); -#endif - return reinterpret_cast(pthis); - } -}; - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1b: -// -// Workarounds for Microsoft and Intel -// -//////////////////////////////////////////////////////////////////////////////// - - -// Compilers with member function pointers which violate the standard (MSVC, Intel, Codeplay), -// need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -// We use unions to perform horrible_casts. I would like to use #pragma pack(push, 1) -// at the start of each function for extra safety, but VC6 seems to ICE -// intermittently if you do this inside a template. - -// __multiple_inheritance classes go here -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -template<> -struct SimplifyMemFunc< SINGLE_MEMFUNCPTR_SIZE + sizeof(int) > { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // We need to use a horrible_cast to do this conversion. - // In MSVC, a multiple inheritance member pointer is internally defined as: - union { - XFuncType func; - struct { - GenericMemFuncType funcaddress; // points to the actual member function - int delta; // #BYTES to be added to the 'this' pointer - }s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - return reinterpret_cast(reinterpret_cast(pthis) + u.s.delta); - } -}; - -// virtual inheritance is a real nuisance. It's inefficient and complicated. -// On MSVC and Intel, there isn't enough information in the pointer itself to -// enable conversion to a closure pointer. Earlier versions of this code didn't -// work for all cases, and generated a compile-time error instead. -// But a very clever hack invented by John M. Dlugosz solves this problem. -// My code is somewhat different to his: I have no asm code, and I make no -// assumptions about the calling convention that is used. - -// In VC++ and ICL, a virtual_inheritance member pointer -// is internally defined as: -struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance -}; -// The CRUCIAL feature of Microsoft/Intel MFPs which we exploit is that the -// m_codeptr member is *always* called, regardless of the values of the other -// members. (This is *not* true for other compilers, eg GCC, which obtain the -// function address from the vtable if a virtual function is being called). -// Dlugosz's trick is to make the codeptr point to a probe function which -// returns the 'this' pointer that was used. - -// Define a generic class that uses virtual inheritance. -// It has a trival member function that returns the value of the 'this' pointer. -struct GenericVirtualClass : virtual public GenericClass -{ - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } -}; - -// __virtual_inheritance classes go here -template <> -struct SimplifyMemFunc -{ - - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - union { - XFuncType func; - GenericClass* (X::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = function_to_bind; - bound_func = reinterpret_cast(u.s.codeptr); - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s) - && sizeof(function_to_bind)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - return (pthis->*u.ProbeFunc)(); - } -}; - -#if (_MSC_VER <1300) - -// Nasty hack for Microsoft Visual C++ 6.0 -// unknown_inheritance classes go here -// There is a compiler bug in MSVC6 which generates incorrect code in this case!! -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // There is an apalling but obscure compiler bug in MSVC6 and earlier: - // vtable_index and 'vtordisp' are always set to 0 in the - // unknown_inheritance case! - // This means that an incorrect function could be called!!! - // Compiling with the /vmg option leads to potentially incorrect code. - // This is probably the reason that the IDE has a user interface for specifying - // the /vmg option, but it is disabled - you can only specify /vmg on - // the command line. In VC1.5 and earlier, the compiler would ICE if it ever - // encountered this situation. - // It is OK to use the /vmg option if /vmm or /vms is specified. - - // Fortunately, the wrong function is only called in very obscure cases. - // It only occurs when a derived class overrides a virtual function declared - // in a virtual base class, and the member function - // points to the *Derived* version of that function. The problem can be - // completely averted in 100% of cases by using the *Base class* for the - // member fpointer. Ie, if you use the base class as an interface, you'll - // stay out of trouble. - // Occasionally, you might want to point directly to a derived class function - // that isn't an override of a base class. In this case, both vtable_index - // and 'vtordisp' are zero, but a virtual_inheritance pointer will be generated. - // We can generate correct code in this case. To prevent an incorrect call from - // ever being made, on MSVC6 we generate a warning, and call a function to - // make the program crash instantly. - typedef char ERROR_VC6CompilerBug[-100]; - return 0; - } -}; - - -#else - -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -// unknown_inheritance classes go here -// This is probably the ugliest bit of code I've ever written. Look at the casts! -// There is a compiler bug in MSVC6 which prevents it from using this code. -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - XFuncType func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - GenericMemFuncType m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(XFuncType)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - const int * vtable = *reinterpret_cast( - reinterpret_cast(pthis) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - } - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - return reinterpret_cast( - reinterpret_cast(pthis) + u.s.delta + virtual_delta); - }; -}; -#endif // MSVC 7 and greater - -#endif // MS/Intel hacks - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 2: -// -// Define the delegate storage, and cope with static functions -// -//////////////////////////////////////////////////////////////////////////////// - -// DelegateMemento -- an opaque structure which can hold an arbitary delegate. -// It knows nothing about the calling convention or number of arguments used by -// the function pointed to. -// It supplies comparison operators so that it can be stored in STL collections. -// It cannot be set to anything other than null, nor invoked directly: -// it must be converted to a specific delegate. - -// Implementation: -// There are two possible implementations: the Safe method and the Evil method. -// DelegateMemento - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// A static function pointer is stored inside the class. -// Here are the valid values: -// +-- Static pointer --+--pThis --+-- pMemFunc-+-- Meaning------+ -// | 0 | 0 | 0 | Empty | -// | !=0 |(dontcare)| Invoker | Static function| -// | 0 | !=0 | !=0* | Method call | -// +--------------------+----------+------------+----------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// When stored stored inside a specific delegate, the 'dontcare' entries are replaced -// with a reference to the delegate itself. This complicates the = and == operators -// for the delegate class. - -// DelegateMemento - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. In this case the DelegateMemento implementation is simple: -// +--pThis --+-- pMemFunc-+-- Meaning---------------------+ -// | 0 | 0 | Empty | -// | !=0 | !=0* | Static function or method call| -// +----------+------------+-------------------------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - -class DelegateMemento { -protected: - // the data is protected, not private, because many - // compilers have problems with template friends. - typedef void (detail::GenericClass::*GenericMemFuncType)(); // arbitrary MFP. - detail::GenericClass *m_pthis; - GenericMemFuncType m_pFunction; - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - typedef void (*GenericFuncPtr)(); // arbitrary code pointer - GenericFuncPtr m_pStaticFunction; -#endif - -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - DelegateMemento() : m_pthis(0), m_pFunction(0), m_pStaticFunction(0) {}; - void clear() { - m_pthis=0; m_pFunction=0; m_pStaticFunction=0; - } -#else - DelegateMemento() : m_pthis(0), m_pFunction(0) {}; - void clear() { m_pthis=0; m_pFunction=0; } -#endif -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - inline bool IsEqual (const DelegateMemento &x) const{ - // We have to cope with the static function pointers as a special case - if (m_pFunction!=x.m_pFunction) return false; - // the static function ptrs must either both be equal, or both be 0. - if (m_pStaticFunction!=x.m_pStaticFunction) return false; - if (m_pStaticFunction!=0) return m_pthis==x.m_pthis; - else return true; - } -#else // Evil Method - inline bool IsEqual (const DelegateMemento &x) const{ - return m_pthis==x.m_pthis && m_pFunction==x.m_pFunction; - } -#endif - // Provide a strict weak ordering for DelegateMementos. - inline bool IsLess(const DelegateMemento &right) const { - // deal with static function pointers first -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - if (m_pStaticFunction !=0 || right.m_pStaticFunction!=0) - return m_pStaticFunction < right.m_pStaticFunction; -#endif - if (m_pthis !=right.m_pthis) return m_pthis < right.m_pthis; - // There are no ordering operators for member function pointers, - // but we can fake one by comparing each byte. The resulting ordering is - // arbitrary (and compiler-dependent), but it permits storage in ordered STL containers. - return memcmp(&m_pFunction, &right.m_pFunction, sizeof(m_pFunction)) < 0; - - } - // BUGFIX (Mar 2005): - // We can't just compare m_pFunction because on Metrowerks, - // m_pFunction can be zero even if the delegate is not empty! - inline bool operator ! () const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } - inline bool empty() const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } -public: - DelegateMemento & operator = (const DelegateMemento &right) { - SetMementoFrom(right); - return *this; - } - inline bool operator <(const DelegateMemento &right) { - return IsLess(right); - } - inline bool operator >(const DelegateMemento &right) { - return right.IsLess(*this); - } - DelegateMemento (const DelegateMemento &right) : - m_pthis(right.m_pthis), m_pFunction(right.m_pFunction) -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - , m_pStaticFunction (right.m_pStaticFunction) -#endif - {} -protected: - void SetMementoFrom(const DelegateMemento &right) { - m_pFunction = right.m_pFunction; - m_pthis = right.m_pthis; -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = right.m_pStaticFunction; -#endif - } -}; - - -// ClosurePtr<> -// -// A private wrapper class that adds function signatures to DelegateMemento. -// It's the class that does most of the actual work. -// The signatures are specified by: -// GenericMemFunc: must be a type of GenericClass member function pointer. -// StaticFuncPtr: must be a type of function pointer with the same signature -// as GenericMemFunc. -// UnvoidStaticFuncPtr: is the same as StaticFuncPtr, except on VC6 -// where it never returns void (returns DefaultVoid instead). - -// An outer class, FastDelegateN<>, handles the invoking and creates the -// necessary typedefs. -// This class does everything else. - -namespace detail { - -template < class GenericMemFunc, class StaticFuncPtr, class UnvoidStaticFuncPtr> -class ClosurePtr : public DelegateMemento { -public: - // These functions are for setting the delegate to a member function. - - // Here's the clever bit: we convert an arbitrary member function into a - // standard form. XMemFunc should be a member function of class X, but I can't - // enforce that here. It needs to be enforced by the wrapper class. - template < class X, class XMemFunc > - inline void bindmemfunc(X *pthis, XMemFunc function_to_bind ) { - m_pthis = SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(pthis, function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } - // For const member functions, we only need a const class pointer. - // Since we know that the member function is const, it's safe to - // remove the const qualifier from the 'this' pointer with a const_cast. - // VC6 has problems if we just overload 'bindmemfunc', so we give it a different name. - template < class X, class XMemFunc> - inline void bindconstmemfunc(const X *pthis, XMemFunc function_to_bind) { - m_pthis= SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(const_cast(pthis), function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#ifdef FASTDELEGATE_GCC_BUG_8271 // At present, GCC doesn't recognize constness of MFPs in templates - template < class X, class XMemFunc> - inline void bindmemfunc(const X *pthis, XMemFunc function_to_bind) { - bindconstmemfunc(pthis, function_to_bind); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#endif - // These functions are required for invoking the stored function - inline GenericClass *GetClosureThis() const { return m_pthis; } - inline GenericMemFunc GetClosureMemPtr() const { return reinterpret_cast(m_pFunction); } - -// There are a few ways of dealing with static function pointers. -// There's a standard-compliant, but tricky method. -// There's also a straightforward hack, that won't work on DOS compilers using the -// medium memory model. It's so evil that I can't recommend it, but I've -// implemented it anyway because it produces very nice asm code. - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - -// ClosurePtr<> - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// I store the function pointer inside the class, and the delegate then -// points to itself. Whenever the delegate is copied, these self-references -// must be transformed, and this complicates the = and == operators. -public: - // The next two functions are for operator ==, =, and the copy constructor. - // We may need to convert the m_pthis pointers, so that - // they remain as self-references. - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &x) { - SetMementoFrom(x); - if (m_pStaticFunction!=0) { - // transform self references... - m_pthis=reinterpret_cast(pParent); - } - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - template < class DerivedClass, class ParentInvokerSig > - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind ) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - bindmemfunc(pParent, static_function_invoker); - } - m_pStaticFunction=reinterpret_cast(function_to_bind); - } - inline UnvoidStaticFuncPtr GetStaticFunction() const { - return reinterpret_cast(m_pStaticFunction); - } -#else - -// ClosurePtr<> - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. Invocation isn't any faster, but it saves 4 bytes, and -// speeds up comparison and assignment. If C++ provided direct language support -// for delegates, they would produce asm code that was almost identical to this. -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &right) { - SetMementoFrom(right); - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - // ******** EVIL, EVIL CODE! ******* - template < class DerivedClass, class ParentInvokerSig> - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - // We'll be ignoring the 'this' pointer, but we need to make sure we pass - // a valid value to bindmemfunc(). - bindmemfunc(pParent, static_function_invoker); - } - - // WARNING! Evil hack. We store the function in the 'this' pointer! - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(GenericClass *)==sizeof(function_to_bind) ? 1 : -1]; - m_pthis = horrible_cast(function_to_bind); - // MSVC, SunC++ and DMC accept the following (non-standard) code: -// m_pthis = static_cast(static_cast(function_to_bind)); - // BCC32, Comeau and DMC accept this method. MSVC7.1 needs __int64 instead of long -// m_pthis = reinterpret_cast(reinterpret_cast(function_to_bind)); - } - // ******** EVIL, EVIL CODE! ******* - // This function will be called with an invalid 'this' pointer!! - // We're just returning the 'this' pointer, converted into - // a function pointer! - inline UnvoidStaticFuncPtr GetStaticFunction() const { - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(UnvoidStaticFuncPtr)==sizeof(this) ? 1 : -1]; - return horrible_cast(this); - } -#endif // !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - - // Does the closure contain this static function? - inline bool IsEqualToStaticFuncPtr(StaticFuncPtr funcptr){ - if (funcptr==0) return empty(); - // For the Evil method, if it doesn't actually contain a static function, this will return an arbitrary - // value that is not equal to any valid function pointer. - else return funcptr==reinterpret_cast(GetStaticFunction()); - } -}; - - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 3: -// -// Wrapper classes to ensure type safety -// -//////////////////////////////////////////////////////////////////////////////// - - -// Once we have the member function conversion templates, it's easy to make the -// wrapper classes. So that they will work with as many compilers as possible, -// the classes are of the form -// FastDelegate3 -// They can cope with any combination of parameters. The max number of parameters -// allowed is 8, but it is trivial to increase this limit. -// Note that we need to treat const member functions seperately. -// All this class does is to enforce type safety, and invoke the delegate with -// the correct list of parameters. - -// Because of the weird rule about the class of derived member function pointers, -// you sometimes need to apply a downcast to the 'this' pointer. -// This is the reason for the use of "implicit_cast(pthis)" in the code below. -// If CDerivedClass is derived from CBaseClass, but doesn't override SimpleVirtualFunction, -// without this trick you'd need to write: -// MyDelegate(static_cast(&d), &CDerivedClass::SimpleVirtualFunction); -// but with the trick you can write -// MyDelegate(&d, &CDerivedClass::SimpleVirtualFunction); - -// RetType is the type the compiler uses in compiling the template. For VC6, -// it cannot be void. DesiredRetType is the real type which is returned from -// all of the functions. It can be void. - -// Implicit conversion to "bool" is achieved using the safe_bool idiom, -// using member data pointers (MDP). This allows "if (dg)..." syntax -// Because some compilers (eg codeplay) don't have a unique value for a zero -// MDP, an extra padding member is added to the SafeBool struct. -// Some compilers (eg VC6) won't implicitly convert from 0 to an MDP, so -// in that case the static function constructor is not made explicit; this -// allows "if (dg==0) ..." to compile. - -//N=0 -template -class FastDelegate0 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(); - typedef RetType (*UnvoidStaticFunctionPtr)(); - typedef RetType (detail::GenericClass::*GenericMemFn)(); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate0 type; - - // Construction and comparison functions - FastDelegate0() { clear(); } - FastDelegate0(const FastDelegate0 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate0 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate0 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate0 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate0 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate0 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate0(Y *pthis, DesiredRetType (X::* function_to_bind)() ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)()) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate0(const Y *pthis, DesiredRetType (X::* function_to_bind)() const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)() const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate0(DesiredRetType (*function_to_bind)() ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)() ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)()) { - m_Closure.bindstaticfunc(this, &FastDelegate0::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() () const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction() const { - return (*(m_Closure.GetStaticFunction()))(); } -}; - -//N=1 -template -class FastDelegate1 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate1 type; - - // Construction and comparison functions - FastDelegate1() { clear(); } - FastDelegate1(const FastDelegate1 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate1 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate1 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate1 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate1 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate1 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate1(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate1(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate1(DesiredRetType (*function_to_bind)(Param1 p1) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1)) { - m_Closure.bindstaticfunc(this, &FastDelegate1::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1) const { - return (*(m_Closure.GetStaticFunction()))(p1); } -}; - -//N=2 -template -class FastDelegate2 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate2 type; - - // Construction and comparison functions - FastDelegate2() { clear(); } - FastDelegate2(const FastDelegate2 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate2 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate2 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate2 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate2 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate2 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate2(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate2(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate2(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2)) { - m_Closure.bindstaticfunc(this, &FastDelegate2::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2); } -}; - -//N=3 -template -class FastDelegate3 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate3 type; - - // Construction and comparison functions - FastDelegate3() { clear(); } - FastDelegate3(const FastDelegate3 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate3 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate3 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate3 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate3 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate3 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate3(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate3(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate3(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3)) { - m_Closure.bindstaticfunc(this, &FastDelegate3::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3); } -}; - -//N=4 -template -class FastDelegate4 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate4 type; - - // Construction and comparison functions - FastDelegate4() { clear(); } - FastDelegate4(const FastDelegate4 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate4 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate4 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate4 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate4 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate4 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate4(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate4(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate4(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - m_Closure.bindstaticfunc(this, &FastDelegate4::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4); } -}; - -//N=5 -template -class FastDelegate5 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate5 type; - - // Construction and comparison functions - FastDelegate5() { clear(); } - FastDelegate5(const FastDelegate5 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate5 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate5 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate5 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate5 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate5 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate5(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate5(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate5(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - m_Closure.bindstaticfunc(this, &FastDelegate5::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5); } -}; - -//N=6 -template -class FastDelegate6 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate6 type; - - // Construction and comparison functions - FastDelegate6() { clear(); } - FastDelegate6(const FastDelegate6 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate6 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate6 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate6 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate6 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate6 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate6(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate6(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate6(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - m_Closure.bindstaticfunc(this, &FastDelegate6::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6); } -}; - -//N=7 -template -class FastDelegate7 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate7 type; - - // Construction and comparison functions - FastDelegate7() { clear(); } - FastDelegate7(const FastDelegate7 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate7 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate7 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate7 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate7 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate7 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate7(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate7(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate7(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - m_Closure.bindstaticfunc(this, &FastDelegate7::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7); } -}; - -//N=8 -template -class FastDelegate8 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate8 type; - - // Construction and comparison functions - FastDelegate8() { clear(); } - FastDelegate8(const FastDelegate8 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate8 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate8 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate8 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate8 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate8 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate8(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate8(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate8(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - m_Closure.bindstaticfunc(this, &FastDelegate8::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8); } -}; - -//N=9 -template -class FastDelegate9 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate9 type; - - // Construction and comparison functions - FastDelegate9() { clear(); } - FastDelegate9(const FastDelegate9 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate9 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate9 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate9 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate9 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate9 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate9(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate9(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate9(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - m_Closure.bindstaticfunc(this, &FastDelegate9::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9); } -}; - -//N=10 -template -class FastDelegate10 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate10 type; - - // Construction and comparison functions - FastDelegate10() { clear(); } - FastDelegate10(const FastDelegate10 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate10 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate10 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate10 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate10 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate10 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate10(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate10(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate10(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - m_Closure.bindstaticfunc(this, &FastDelegate10::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } -}; - -//N=11 -template -class FastDelegate11 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate11 type; - - // Construction and comparison functions - FastDelegate11() { clear(); } - FastDelegate11(const FastDelegate11 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate11 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate11 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate11 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate11 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate11 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate11(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate11(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate11(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - m_Closure.bindstaticfunc(this, &FastDelegate11::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } -}; - -//N=12 -template -class FastDelegate12 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate12 type; - - // Construction and comparison functions - FastDelegate12() { clear(); } - FastDelegate12(const FastDelegate12 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate12 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate12 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate12 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate12 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate12 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate12(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate12(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate12(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - m_Closure.bindstaticfunc(this, &FastDelegate12::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } -}; - -//N=13 -template -class FastDelegate13 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate13 type; - - // Construction and comparison functions - FastDelegate13() { clear(); } - FastDelegate13(const FastDelegate13 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate13 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate13 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate13 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate13 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate13 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate13(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate13(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate13(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - m_Closure.bindstaticfunc(this, &FastDelegate13::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } -}; - -//N=14 -template -class FastDelegate14 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate14 type; - - // Construction and comparison functions - FastDelegate14() { clear(); } - FastDelegate14(const FastDelegate14 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate14 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate14 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate14 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate14 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate14 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate14(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate14(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate14(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - m_Closure.bindstaticfunc(this, &FastDelegate14::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); } -}; - -//N=15 -template -class FastDelegate15 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate15 type; - - // Construction and comparison functions - FastDelegate15() { clear(); } - FastDelegate15(const FastDelegate15 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate15 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate15 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate15 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate15 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate15 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate15(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate15(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate15(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - m_Closure.bindstaticfunc(this, &FastDelegate15::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15); } -}; - -//N=16 -template -class FastDelegate16 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate16 type; - - // Construction and comparison functions - FastDelegate16() { clear(); } - FastDelegate16(const FastDelegate16 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate16 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate16 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate16 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate16 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate16 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate16(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate16(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate16(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - m_Closure.bindstaticfunc(this, &FastDelegate16::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16); } -}; - -//N=17 -template -class FastDelegate17 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate17 type; - - // Construction and comparison functions - FastDelegate17() { clear(); } - FastDelegate17(const FastDelegate17 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate17 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate17 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate17 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate17 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate17 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate17(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate17(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate17(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - m_Closure.bindstaticfunc(this, &FastDelegate17::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17); } -}; - -//N=18 -template -class FastDelegate18 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate18 type; - - // Construction and comparison functions - FastDelegate18() { clear(); } - FastDelegate18(const FastDelegate18 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate18 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate18 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate18 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate18 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate18 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate18(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate18(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate18(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - m_Closure.bindstaticfunc(this, &FastDelegate18::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18); } -}; - -//N=19 -template -class FastDelegate19 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate19 type; - - // Construction and comparison functions - FastDelegate19() { clear(); } - FastDelegate19(const FastDelegate19 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate19 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate19 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate19 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate19 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate19 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate19(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate19(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate19(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - m_Closure.bindstaticfunc(this, &FastDelegate19::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19); } -}; - -//N=20 -template -class FastDelegate20 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate20 type; - - // Construction and comparison functions - FastDelegate20() { clear(); } - FastDelegate20(const FastDelegate20 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate20 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate20 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate20 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate20 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate20 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate20(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate20(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate20(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - m_Closure.bindstaticfunc(this, &FastDelegate20::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20); } -}; - - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 4: -// -// FastDelegate<> class (Original author: Jody Hagins) -// Allows boost::function style syntax like: -// FastDelegate< double (int, long) > -// instead of: -// FastDelegate2< int, long, double > -// -//////////////////////////////////////////////////////////////////////////////// - -#ifdef FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -// Declare FastDelegate as a class template. It will be specialized -// later for all number of arguments. -template -class FastDelegate; - -//N=0 -// Specialization to allow use of -// FastDelegate< R ( ) > -// instead of -// FastDelegate0 < R > -template -class FastDelegate< R ( ) > - // Inherit from FastDelegate0 so that it can be treated just like a FastDelegate0 - : public FastDelegate0 < R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate0 < R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=1 -// Specialization to allow use of -// FastDelegate< R ( Param1 ) > -// instead of -// FastDelegate1 < Param1, R > -template -class FastDelegate< R ( Param1 ) > - // Inherit from FastDelegate1 so that it can be treated just like a FastDelegate1 - : public FastDelegate1 < Param1, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate1 < Param1, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=2 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2 ) > -// instead of -// FastDelegate2 < Param1, Param2, R > -template -class FastDelegate< R ( Param1, Param2 ) > - // Inherit from FastDelegate2 so that it can be treated just like a FastDelegate2 - : public FastDelegate2 < Param1, Param2, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate2 < Param1, Param2, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=3 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3 ) > -// instead of -// FastDelegate3 < Param1, Param2, Param3, R > -template -class FastDelegate< R ( Param1, Param2, Param3 ) > - // Inherit from FastDelegate3 so that it can be treated just like a FastDelegate3 - : public FastDelegate3 < Param1, Param2, Param3, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate3 < Param1, Param2, Param3, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=4 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4 ) > -// instead of -// FastDelegate4 < Param1, Param2, Param3, Param4, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4 ) > - // Inherit from FastDelegate4 so that it can be treated just like a FastDelegate4 - : public FastDelegate4 < Param1, Param2, Param3, Param4, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate4 < Param1, Param2, Param3, Param4, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=5 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5 ) > -// instead of -// FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5 ) > - // Inherit from FastDelegate5 so that it can be treated just like a FastDelegate5 - : public FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=6 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6 ) > -// instead of -// FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6 ) > - // Inherit from FastDelegate6 so that it can be treated just like a FastDelegate6 - : public FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=7 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7 ) > -// instead of -// FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7 ) > - // Inherit from FastDelegate7 so that it can be treated just like a FastDelegate7 - : public FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=8 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8 ) > -// instead of -// FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8 ) > - // Inherit from FastDelegate8 so that it can be treated just like a FastDelegate8 - : public FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=9 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9 ) > -// instead of -// FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9 ) > - // Inherit from FastDelegate9 so that it can be treated just like a FastDelegate9 - : public FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=10 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10 ) > -// instead of -// FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10 ) > - // Inherit from FastDelegate10 so that it can be treated just like a FastDelegate10 - : public FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=11 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11 ) > -// instead of -// FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11 ) > - // Inherit from FastDelegate11 so that it can be treated just like a FastDelegate11 - : public FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=12 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12 ) > -// instead of -// FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12 ) > - // Inherit from FastDelegate12 so that it can be treated just like a FastDelegate12 - : public FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=13 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13 ) > -// instead of -// FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13 ) > - // Inherit from FastDelegate13 so that it can be treated just like a FastDelegate13 - : public FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=14 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14 ) > -// instead of -// FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14 ) > - // Inherit from FastDelegate14 so that it can be treated just like a FastDelegate14 - : public FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=15 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15 ) > -// instead of -// FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15 ) > - // Inherit from FastDelegate15 so that it can be treated just like a FastDelegate15 - : public FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=16 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16 ) > -// instead of -// FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16 ) > - // Inherit from FastDelegate16 so that it can be treated just like a FastDelegate16 - : public FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=17 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17 ) > -// instead of -// FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17 ) > - // Inherit from FastDelegate17 so that it can be treated just like a FastDelegate17 - : public FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=18 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18 ) > -// instead of -// FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18 ) > - // Inherit from FastDelegate18 so that it can be treated just like a FastDelegate18 - : public FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=19 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19 ) > -// instead of -// FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19 ) > - // Inherit from FastDelegate19 so that it can be treated just like a FastDelegate19 - : public FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=20 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20 ) > -// instead of -// FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20 ) > - // Inherit from FastDelegate20 so that it can be treated just like a FastDelegate20 - : public FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - - -#endif //FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 5: -// -// MakeDelegate() helper function -// -// MakeDelegate(&x, &X::func) returns a fastdelegate of the type -// necessary for calling x.func() with the correct number of arguments. -// This makes it possible to eliminate many typedefs from user code. -// -//////////////////////////////////////////////////////////////////////////////// - -// Also declare overloads of a MakeDelegate() global function to -// reduce the need for typedefs. -// We need seperate overloads for const and non-const member functions. -// Also, because of the weird rule about the class of derived member function pointers, -// implicit downcasts may need to be applied later to the 'this' pointer. -// That's why two classes (X and Y) appear in the definitions. Y must be implicitly -// castable to X. - -// Workaround for VC6. VC6 needs void return types converted into DefaultVoid. -// GCC 3.2 and later won't compile this unless it's preceded by 'typename', -// but VC6 doesn't allow 'typename' in this context. -// So, I have to use a macro. - -#ifdef FASTDLGT_VC6 -#define FASTDLGT_RETTYPE detail::VoidToDefaultVoid::type -#else -#define FASTDLGT_RETTYPE RetType -#endif - -//N=0 -template -FastDelegate0 MakeDelegate(Y* x, RetType (X::*func)()) { - return FastDelegate0(x, func); -} - -template -FastDelegate0 MakeDelegate(Y* x, RetType (X::*func)() const) { - return FastDelegate0(x, func); -} - -template -FastDelegate0 MakeDelegate(RetType (*func)()) { - return FastDelegate0(func); -} - -//N=1 -template -FastDelegate1 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1)) { - return FastDelegate1(x, func); -} - -template -FastDelegate1 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1) const) { - return FastDelegate1(x, func); -} - -template -FastDelegate1 MakeDelegate(RetType (*func)(Param1 p1)) { - return FastDelegate1(func); -} - -//N=2 -template -FastDelegate2 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2)) { - return FastDelegate2(x, func); -} - -template -FastDelegate2 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2) const) { - return FastDelegate2(x, func); -} - -template -FastDelegate2 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2)) { - return FastDelegate2(func); -} - -//N=3 -template -FastDelegate3 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3)) { - return FastDelegate3(x, func); -} - -template -FastDelegate3 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3) const) { - return FastDelegate3(x, func); -} - -template -FastDelegate3 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3)) { - return FastDelegate3(func); -} - -//N=4 -template -FastDelegate4 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - return FastDelegate4(x, func); -} - -template -FastDelegate4 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - return FastDelegate4(x, func); -} - -template -FastDelegate4 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - return FastDelegate4(func); -} - -//N=5 -template -FastDelegate5 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - return FastDelegate5(x, func); -} - -template -FastDelegate5 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - return FastDelegate5(x, func); -} - -template -FastDelegate5 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - return FastDelegate5(func); -} - -//N=6 -template -FastDelegate6 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - return FastDelegate6(x, func); -} - -template -FastDelegate6 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - return FastDelegate6(x, func); -} - -template -FastDelegate6 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - return FastDelegate6(func); -} - -//N=7 -template -FastDelegate7 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - return FastDelegate7(x, func); -} - -template -FastDelegate7 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - return FastDelegate7(x, func); -} - -template -FastDelegate7 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - return FastDelegate7(func); -} - -//N=8 -template -FastDelegate8 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - return FastDelegate8(x, func); -} - -template -FastDelegate8 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - return FastDelegate8(x, func); -} - -template -FastDelegate8 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - return FastDelegate8(func); -} - -//N=9 -template -FastDelegate9 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - return FastDelegate9(x, func); -} - -template -FastDelegate9 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - return FastDelegate9(x, func); -} - -template -FastDelegate9 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - return FastDelegate9(func); -} - -//N=10 -template -FastDelegate10 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - return FastDelegate10(x, func); -} - -template -FastDelegate10 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - return FastDelegate10(x, func); -} - -template -FastDelegate10 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - return FastDelegate10(func); -} - -//N=11 -template -FastDelegate11 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - return FastDelegate11(x, func); -} - -template -FastDelegate11 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - return FastDelegate11(x, func); -} - -template -FastDelegate11 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - return FastDelegate11(func); -} - -//N=12 -template -FastDelegate12 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - return FastDelegate12(x, func); -} - -template -FastDelegate12 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - return FastDelegate12(x, func); -} - -template -FastDelegate12 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - return FastDelegate12(func); -} - -//N=13 -template -FastDelegate13 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - return FastDelegate13(x, func); -} - -template -FastDelegate13 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - return FastDelegate13(x, func); -} - -template -FastDelegate13 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - return FastDelegate13(func); -} - -//N=14 -template -FastDelegate14 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - return FastDelegate14(x, func); -} - -template -FastDelegate14 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - return FastDelegate14(x, func); -} - -template -FastDelegate14 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - return FastDelegate14(func); -} - -//N=15 -template -FastDelegate15 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - return FastDelegate15(x, func); -} - -template -FastDelegate15 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - return FastDelegate15(x, func); -} - -template -FastDelegate15 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - return FastDelegate15(func); -} - -//N=16 -template -FastDelegate16 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - return FastDelegate16(x, func); -} - -template -FastDelegate16 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - return FastDelegate16(x, func); -} - -template -FastDelegate16 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - return FastDelegate16(func); -} - -//N=17 -template -FastDelegate17 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - return FastDelegate17(x, func); -} - -template -FastDelegate17 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - return FastDelegate17(x, func); -} - -template -FastDelegate17 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - return FastDelegate17(func); -} - -//N=18 -template -FastDelegate18 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - return FastDelegate18(x, func); -} - -template -FastDelegate18 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - return FastDelegate18(x, func); -} - -template -FastDelegate18 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - return FastDelegate18(func); -} - -//N=19 -template -FastDelegate19 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - return FastDelegate19(x, func); -} - -template -FastDelegate19 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - return FastDelegate19(x, func); -} - -template -FastDelegate19 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - return FastDelegate19(func); -} - -//N=20 -template -FastDelegate20 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - return FastDelegate20(x, func); -} - -template -FastDelegate20 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - return FastDelegate20(x, func); -} - -template -FastDelegate20 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - return FastDelegate20(func); -} - - - // clean up after ourselves... -#undef FASTDLGT_RETTYPE - -} // namespace fastdelegate - -#endif // !defined(FASTDELEGATE_H) diff --git a/sourcehook/generate/FastDelegate.hxx b/sourcehook/generate/FastDelegate.hxx deleted file mode 100644 index 6f2fe49..0000000 --- a/sourcehook/generate/FastDelegate.hxx +++ /dev/null @@ -1,1054 +0,0 @@ -// FastDelegate.h -// Efficient delegates in C++ that generate only two lines of asm code! -// Documentation is found at http://www.codeproject.com/cpp/FastDelegate.asp -// -// - Don Clugston, Mar 2004. -// Major contributions were made by Jody Hagins. -// History: -// 24-Apr-04 1.0 * Submitted to CodeProject. -// 28-Apr-04 1.1 * Prevent most unsafe uses of evil static function hack. -// * Improved syntax for horrible_cast (thanks Paul Bludov). -// * Tested on Metrowerks MWCC and Intel ICL (IA32) -// * Compiled, but not run, on Comeau C++ and Intel Itanium ICL. -// 27-Jun-04 1.2 * Now works on Borland C++ Builder 5.5 -// * Now works on /clr "managed C++" code on VC7, VC7.1 -// * Comeau C++ now compiles without warnings. -// * Prevent the virtual inheritance case from being used on -// VC6 and earlier, which generate incorrect code. -// * Improved warning and error messages. Non-standard hacks -// now have compile-time checks to make them safer. -// * implicit_cast used instead of static_cast in many cases. -// * If calling a const member function, a const class pointer can be used. -// * MakeDelegate() global helper function added to simplify pass-by-value. -// * Added fastdelegate.clear() -// 16-Jul-04 1.2.1* Workaround for gcc bug (const member function pointers in templates) -// 30-Oct-04 1.3 * Support for (non-void) return values. -// * No more workarounds in client code! -// MSVC and Intel now use a clever hack invented by John Dlugosz: -// - The FASTDELEGATEDECLARE workaround is no longer necessary. -// - No more warning messages for VC6 -// * Less use of macros. Error messages should be more comprehensible. -// * Added include guards -// * Added FastDelegate::empty() to test if invocation is safe (Thanks Neville Franks). -// * Now tested on VS 2005 Express Beta, PGI C++ -// 24-Dec-04 1.4 * Added DelegateMemento, to allow collections of disparate delegates. -// * <,>,<=,>= comparison operators to allow storage in ordered containers. -// * Substantial reduction of code size, especially the 'Closure' class. -// * Standardised all the compiler-specific workarounds. -// * MFP conversion now works for CodePlay (but not yet supported in the full code). -// * Now compiles without warnings on _any_ supported compiler, including BCC 5.5.1 -// * New syntax: FastDelegate< int (char *, double) >. -// 14-Feb-05 1.4.1* Now treats =0 as equivalent to .clear(), ==0 as equivalent to .empty(). (Thanks elfric). -// * Now tested on Intel ICL for AMD64, VS2005 Beta for AMD64 and Itanium. -// 30-Mar-05 1.5 * Safebool idiom: "if (dg)" is now equivalent to "if (!dg.empty())" -// * Fully supported by CodePlay VectorC -// * Bugfix for Metrowerks: empty() was buggy because a valid MFP can be 0 on MWCC! -// * More optimal assignment,== and != operators for static function pointers. - -#ifndef FASTDELEGATE_H -#define FASTDELEGATE_H - -#ifdef _MSC_VER -# if _MSC_VER > 1000 -# pragma once -# endif // _MSC_VER > 1000 -#endif // #ifdef _MSC_VER - -#include // to allow <,> comparisons - -//////////////////////////////////////////////////////////////////////////////// -// Configuration options -// -//////////////////////////////////////////////////////////////////////////////// - -// Uncomment the following #define for optimally-sized delegates. -// In this case, the generated asm code is almost identical to the code you'd get -// if the compiler had native support for delegates. -// It will not work on systems where sizeof(dataptr) < sizeof(codeptr). -// Thus, it will not work for DOS compilers using the medium model. -// It will also probably fail on some DSP systems. -#define FASTDELEGATE_USESTATICFUNCTIONHACK - -// Uncomment the next line to allow function declarator syntax. -// It is automatically enabled for those compilers where it is known to work. -//#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Compiler identification for workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Compiler identification. It's not easy to identify Visual C++ because -// many vendors fraudulently define Microsoft's identifiers. -#if defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__VECTOR_C) && !defined(__ICL) && !defined(__BORLANDC__) -#define FASTDLGT_ISMSVC - -#if (_MSC_VER <1300) // Many workarounds are required for VC6. -#define FASTDLGT_VC6 -#pragma warning(disable:4786) // disable this ridiculous warning -#endif - -#endif - -// Does the compiler uses Microsoft's member function pointer structure? -// If so, it needs special treatment. -// Metrowerks CodeWarrior, Intel, and CodePlay fraudulently define Microsoft's -// identifier, _MSC_VER. We need to filter Metrowerks out. -#if defined(_MSC_VER) && !defined(__MWERKS__) -#define FASTDLGT_MICROSOFT_MFP - -#if !defined(__VECTOR_C) -// CodePlay doesn't have the __single/multi/virtual_inheritance keywords -#define FASTDLGT_HASINHERITANCE_KEYWORDS -#endif -#endif - -// Does it allow function declarator syntax? The following compilers are known to work: -#if defined(FASTDLGT_ISMSVC) && (_MSC_VER >=1310) // VC 7.1 -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// Gcc(2.95+), and versions of Digital Mars, Intel and Comeau in common use. -#if defined (__DMC__) || defined(__GNUC__) || defined(__ICL) || defined(__COMO__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// It works on Metrowerks MWCC 3.2.2. From boost.Config it should work on earlier ones too. -#if defined (__MWERKS__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -#ifdef __GNUC__ // Workaround GCC bug #8271 - // At present, GCC doesn't recognize constness of MFPs in templates -#define FASTDELEGATE_GCC_BUG_8271 -#endif - - - -//////////////////////////////////////////////////////////////////////////////// -// General tricks used in this code -// -// (a) Error messages are generated by typdefing an array of negative size to -// generate compile-time errors. -// (b) Warning messages on MSVC are generated by declaring unused variables, and -// enabling the "variable XXX is never used" warning. -// (c) Unions are used in a few compiler-specific cases to perform illegal casts. -// (d) For Microsoft and Intel, when adjusting the 'this' pointer, it's cast to -// (char *) first to ensure that the correct number of *bytes* are added. -// -//////////////////////////////////////////////////////////////////////////////// -// Helper templates -// -//////////////////////////////////////////////////////////////////////////////// - - -namespace fastdelegate { -namespace detail { // we'll hide the implementation details in a nested namespace. - -// implicit_cast< > -// I believe this was originally going to be in the C++ standard but -// was left out by accident. It's even milder than static_cast. -// I use it instead of static_cast<> to emphasize that I'm not doing -// anything nasty. -// Usage is identical to static_cast<> -template -inline OutputClass implicit_cast(InputClass input){ - return input; -} - -// horrible_cast< > -// This is truly evil. It completely subverts C++'s type system, allowing you -// to cast from any class to any other class. Technically, using a union -// to perform the cast is undefined behaviour (even in C). But we can see if -// it is OK by checking that the union is the same size as each of its members. -// horrible_cast<> should only be used for compiler-specific workarounds. -// Usage is identical to reinterpret_cast<>. - -// This union is declared outside the horrible_cast because BCC 5.5.1 -// can't inline a function with a nested class, and gives a warning. -template -union horrible_union{ - OutputClass out; - InputClass in; -}; - -template -inline OutputClass horrible_cast(const InputClass input){ - horrible_union u; - // Cause a compile-time error if in, out and u are not the same size. - // If the compile fails here, it means the compiler has peculiar - // unions which would prevent the cast from working. - typedef int ERROR_CantUseHorrible_cast[sizeof(InputClass)==sizeof(u) - && sizeof(InputClass)==sizeof(OutputClass) ? 1 : -1]; - u.in = input; - return u.out; -} - -//////////////////////////////////////////////////////////////////////////////// -// Workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Backwards compatibility: This macro used to be necessary in the virtual inheritance -// case for Intel and Microsoft. Now it just forward-declares the class. -#define FASTDELEGATEDECLARE(CLASSNAME) class CLASSNAME; - -// Prevent use of the static function hack with the DOS medium model. -#ifdef __MEDIUM__ -#undef FASTDELEGATE_USESTATICFUNCTIONHACK -#endif - -// DefaultVoid - a workaround for 'void' templates in VC6. -// -// (1) VC6 and earlier do not allow 'void' as a default template argument. -// (2) They also doesn't allow you to return 'void' from a function. -// -// Workaround for (1): Declare a dummy type 'DefaultVoid' which we use -// when we'd like to use 'void'. We convert it into 'void' and back -// using the templates DefaultVoidToVoid<> and VoidToDefaultVoid<>. -// Workaround for (2): On VC6, the code for calling a void function is -// identical to the code for calling a non-void function in which the -// return value is never used, provided the return value is returned -// in the EAX register, rather than on the stack. -// This is true for most fundamental types such as int, enum, void *. -// Const void * is the safest option since it doesn't participate -// in any automatic conversions. But on a 16-bit compiler it might -// cause extra code to be generated, so we disable it for all compilers -// except for VC6 (and VC5). -#ifdef FASTDLGT_VC6 -// VC6 workaround -typedef const void * DefaultVoid; -#else -// On any other compiler, just use a normal void. -typedef void DefaultVoid; -#endif - -// Translate from 'DefaultVoid' to 'void'. -// Everything else is unchanged -template -struct DefaultVoidToVoid { typedef T type; }; - -template <> -struct DefaultVoidToVoid { typedef void type; }; - -// Translate from 'void' into 'DefaultVoid' -// Everything else is unchanged -template -struct VoidToDefaultVoid { typedef T type; }; - -template <> -struct VoidToDefaultVoid { typedef DefaultVoid type; }; - - - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1: -// -// Conversion of member function pointer to a standard form -// -//////////////////////////////////////////////////////////////////////////////// - -// GenericClass is a fake class, ONLY used to provide a type. -// It is vitally important that it is never defined, so that the compiler doesn't -// think it can optimize the invocation. For example, Borland generates simpler -// code if it knows the class only uses single inheritance. - -// Compilers using Microsoft's structure need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -#ifdef FASTDLGT_HASINHERITANCE_KEYWORDS - // For Microsoft and Intel, we want to ensure that it's the most efficient type of MFP - // (4 bytes), even when the /vmg option is used. Declaring an empty class - // would give 16 byte pointers in this case.... - class __single_inheritance GenericClass; -#endif - // ...but for Codeplay, an empty class *always* gives 4 byte pointers. - // If compiled with the /clr option ("managed C++"), the JIT compiler thinks - // it needs to load GenericClass before it can call any of its functions, - // (compiles OK but crashes at runtime!), so we need to declare an - // empty class to make it happy. - // Codeplay and VC4 can't cope with the unknown_inheritance case either. - class GenericClass {}; -#else - class GenericClass; -#endif - -// The size of a single inheritance member function pointer. -const int SINGLE_MEMFUNCPTR_SIZE = sizeof(void (GenericClass::*)()); - -// SimplifyMemFunc< >::Convert() -// -// A template function that converts an arbitrary member function pointer into the -// simplest possible form of member function pointer, using a supplied 'this' pointer. -// According to the standard, this can be done legally with reinterpret_cast<>. -// For (non-standard) compilers which use member function pointers which vary in size -// depending on the class, we need to use knowledge of the internal structure of a -// member function pointer, as used by the compiler. Template specialization is used -// to distinguish between the sizes. Because some compilers don't support partial -// template specialisation, I use full specialisation of a wrapper struct. - -// general case -- don't know how to convert it. Force a compile failure -template -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // Unsupported member function type -- force a compile failure. - // (it's illegal to have a array with negative size). - typedef char ERROR_Unsupported_member_function_pointer_on_this_compiler[N-100]; - return 0; - } -}; - -// For compilers where all member func ptrs are the same size, everything goes here. -// For non-standard compilers, only single_inheritance classes go here. -template <> -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { -#if defined __DMC__ - // Digital Mars doesn't allow you to cast between abitrary PMF's, - // even though the standard says you can. The 32-bit compiler lets you - // static_cast through an int, but the DOS compiler doesn't. - bound_func = horrible_cast(function_to_bind); -#else - bound_func = reinterpret_cast(function_to_bind); -#endif - return reinterpret_cast(pthis); - } -}; - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1b: -// -// Workarounds for Microsoft and Intel -// -//////////////////////////////////////////////////////////////////////////////// - - -// Compilers with member function pointers which violate the standard (MSVC, Intel, Codeplay), -// need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -// We use unions to perform horrible_casts. I would like to use #pragma pack(push, 1) -// at the start of each function for extra safety, but VC6 seems to ICE -// intermittently if you do this inside a template. - -// __multiple_inheritance classes go here -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -template<> -struct SimplifyMemFunc< SINGLE_MEMFUNCPTR_SIZE + sizeof(int) > { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // We need to use a horrible_cast to do this conversion. - // In MSVC, a multiple inheritance member pointer is internally defined as: - union { - XFuncType func; - struct { - GenericMemFuncType funcaddress; // points to the actual member function - int delta; // #BYTES to be added to the 'this' pointer - }s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - return reinterpret_cast(reinterpret_cast(pthis) + u.s.delta); - } -}; - -// virtual inheritance is a real nuisance. It's inefficient and complicated. -// On MSVC and Intel, there isn't enough information in the pointer itself to -// enable conversion to a closure pointer. Earlier versions of this code didn't -// work for all cases, and generated a compile-time error instead. -// But a very clever hack invented by John M. Dlugosz solves this problem. -// My code is somewhat different to his: I have no asm code, and I make no -// assumptions about the calling convention that is used. - -// In VC++ and ICL, a virtual_inheritance member pointer -// is internally defined as: -struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance -}; -// The CRUCIAL feature of Microsoft/Intel MFPs which we exploit is that the -// m_codeptr member is *always* called, regardless of the values of the other -// members. (This is *not* true for other compilers, eg GCC, which obtain the -// function address from the vtable if a virtual function is being called). -// Dlugosz's trick is to make the codeptr point to a probe function which -// returns the 'this' pointer that was used. - -// Define a generic class that uses virtual inheritance. -// It has a trival member function that returns the value of the 'this' pointer. -struct GenericVirtualClass : virtual public GenericClass -{ - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } -}; - -// __virtual_inheritance classes go here -template <> -struct SimplifyMemFunc -{ - - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - union { - XFuncType func; - GenericClass* (X::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = function_to_bind; - bound_func = reinterpret_cast(u.s.codeptr); - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s) - && sizeof(function_to_bind)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - return (pthis->*u.ProbeFunc)(); - } -}; - -#if (_MSC_VER <1300) - -// Nasty hack for Microsoft Visual C++ 6.0 -// unknown_inheritance classes go here -// There is a compiler bug in MSVC6 which generates incorrect code in this case!! -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // There is an apalling but obscure compiler bug in MSVC6 and earlier: - // vtable_index and 'vtordisp' are always set to 0 in the - // unknown_inheritance case! - // This means that an incorrect function could be called!!! - // Compiling with the /vmg option leads to potentially incorrect code. - // This is probably the reason that the IDE has a user interface for specifying - // the /vmg option, but it is disabled - you can only specify /vmg on - // the command line. In VC1.5 and earlier, the compiler would ICE if it ever - // encountered this situation. - // It is OK to use the /vmg option if /vmm or /vms is specified. - - // Fortunately, the wrong function is only called in very obscure cases. - // It only occurs when a derived class overrides a virtual function declared - // in a virtual base class, and the member function - // points to the *Derived* version of that function. The problem can be - // completely averted in 100% of cases by using the *Base class* for the - // member fpointer. Ie, if you use the base class as an interface, you'll - // stay out of trouble. - // Occasionally, you might want to point directly to a derived class function - // that isn't an override of a base class. In this case, both vtable_index - // and 'vtordisp' are zero, but a virtual_inheritance pointer will be generated. - // We can generate correct code in this case. To prevent an incorrect call from - // ever being made, on MSVC6 we generate a warning, and call a function to - // make the program crash instantly. - typedef char ERROR_VC6CompilerBug[-100]; - return 0; - } -}; - - -#else - -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -// unknown_inheritance classes go here -// This is probably the ugliest bit of code I've ever written. Look at the casts! -// There is a compiler bug in MSVC6 which prevents it from using this code. -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - XFuncType func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - GenericMemFuncType m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(XFuncType)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - const int * vtable = *reinterpret_cast( - reinterpret_cast(pthis) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - } - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - return reinterpret_cast( - reinterpret_cast(pthis) + u.s.delta + virtual_delta); - }; -}; -#endif // MSVC 7 and greater - -#endif // MS/Intel hacks - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 2: -// -// Define the delegate storage, and cope with static functions -// -//////////////////////////////////////////////////////////////////////////////// - -// DelegateMemento -- an opaque structure which can hold an arbitary delegate. -// It knows nothing about the calling convention or number of arguments used by -// the function pointed to. -// It supplies comparison operators so that it can be stored in STL collections. -// It cannot be set to anything other than null, nor invoked directly: -// it must be converted to a specific delegate. - -// Implementation: -// There are two possible implementations: the Safe method and the Evil method. -// DelegateMemento - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// A static function pointer is stored inside the class. -// Here are the valid values: -// +-- Static pointer --+--pThis --+-- pMemFunc-+-- Meaning------+ -// | 0 | 0 | 0 | Empty | -// | !=0 |(dontcare)| Invoker | Static function| -// | 0 | !=0 | !=0* | Method call | -// +--------------------+----------+------------+----------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// When stored stored inside a specific delegate, the 'dontcare' entries are replaced -// with a reference to the delegate itself. This complicates the = and == operators -// for the delegate class. - -// DelegateMemento - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. In this case the DelegateMemento implementation is simple: -// +--pThis --+-- pMemFunc-+-- Meaning---------------------+ -// | 0 | 0 | Empty | -// | !=0 | !=0* | Static function or method call| -// +----------+------------+-------------------------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - -class DelegateMemento { -protected: - // the data is protected, not private, because many - // compilers have problems with template friends. - typedef void (detail::GenericClass::*GenericMemFuncType)(); // arbitrary MFP. - detail::GenericClass *m_pthis; - GenericMemFuncType m_pFunction; - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - typedef void (*GenericFuncPtr)(); // arbitrary code pointer - GenericFuncPtr m_pStaticFunction; -#endif - -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - DelegateMemento() : m_pthis(0), m_pFunction(0), m_pStaticFunction(0) {}; - void clear() { - m_pthis=0; m_pFunction=0; m_pStaticFunction=0; - } -#else - DelegateMemento() : m_pthis(0), m_pFunction(0) {}; - void clear() { m_pthis=0; m_pFunction=0; } -#endif -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - inline bool IsEqual (const DelegateMemento &x) const{ - // We have to cope with the static function pointers as a special case - if (m_pFunction!=x.m_pFunction) return false; - // the static function ptrs must either both be equal, or both be 0. - if (m_pStaticFunction!=x.m_pStaticFunction) return false; - if (m_pStaticFunction!=0) return m_pthis==x.m_pthis; - else return true; - } -#else // Evil Method - inline bool IsEqual (const DelegateMemento &x) const{ - return m_pthis==x.m_pthis && m_pFunction==x.m_pFunction; - } -#endif - // Provide a strict weak ordering for DelegateMementos. - inline bool IsLess(const DelegateMemento &right) const { - // deal with static function pointers first -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - if (m_pStaticFunction !=0 || right.m_pStaticFunction!=0) - return m_pStaticFunction < right.m_pStaticFunction; -#endif - if (m_pthis !=right.m_pthis) return m_pthis < right.m_pthis; - // There are no ordering operators for member function pointers, - // but we can fake one by comparing each byte. The resulting ordering is - // arbitrary (and compiler-dependent), but it permits storage in ordered STL containers. - return memcmp(&m_pFunction, &right.m_pFunction, sizeof(m_pFunction)) < 0; - - } - // BUGFIX (Mar 2005): - // We can't just compare m_pFunction because on Metrowerks, - // m_pFunction can be zero even if the delegate is not empty! - inline bool operator ! () const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } - inline bool empty() const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } -public: - DelegateMemento & operator = (const DelegateMemento &right) { - SetMementoFrom(right); - return *this; - } - inline bool operator <(const DelegateMemento &right) { - return IsLess(right); - } - inline bool operator >(const DelegateMemento &right) { - return right.IsLess(*this); - } - DelegateMemento (const DelegateMemento &right) : - m_pthis(right.m_pthis), m_pFunction(right.m_pFunction) -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - , m_pStaticFunction (right.m_pStaticFunction) -#endif - {} -protected: - void SetMementoFrom(const DelegateMemento &right) { - m_pFunction = right.m_pFunction; - m_pthis = right.m_pthis; -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = right.m_pStaticFunction; -#endif - } -}; - - -// ClosurePtr<> -// -// A private wrapper class that adds function signatures to DelegateMemento. -// It's the class that does most of the actual work. -// The signatures are specified by: -// GenericMemFunc: must be a type of GenericClass member function pointer. -// StaticFuncPtr: must be a type of function pointer with the same signature -// as GenericMemFunc. -// UnvoidStaticFuncPtr: is the same as StaticFuncPtr, except on VC6 -// where it never returns void (returns DefaultVoid instead). - -// An outer class, FastDelegateN<>, handles the invoking and creates the -// necessary typedefs. -// This class does everything else. - -namespace detail { - -template < class GenericMemFunc, class StaticFuncPtr, class UnvoidStaticFuncPtr> -class ClosurePtr : public DelegateMemento { -public: - // These functions are for setting the delegate to a member function. - - // Here's the clever bit: we convert an arbitrary member function into a - // standard form. XMemFunc should be a member function of class X, but I can't - // enforce that here. It needs to be enforced by the wrapper class. - template < class X, class XMemFunc > - inline void bindmemfunc(X *pthis, XMemFunc function_to_bind ) { - m_pthis = SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(pthis, function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } - // For const member functions, we only need a const class pointer. - // Since we know that the member function is const, it's safe to - // remove the const qualifier from the 'this' pointer with a const_cast. - // VC6 has problems if we just overload 'bindmemfunc', so we give it a different name. - template < class X, class XMemFunc> - inline void bindconstmemfunc(const X *pthis, XMemFunc function_to_bind) { - m_pthis= SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(const_cast(pthis), function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#ifdef FASTDELEGATE_GCC_BUG_8271 // At present, GCC doesn't recognize constness of MFPs in templates - template < class X, class XMemFunc> - inline void bindmemfunc(const X *pthis, XMemFunc function_to_bind) { - bindconstmemfunc(pthis, function_to_bind); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#endif - // These functions are required for invoking the stored function - inline GenericClass *GetClosureThis() const { return m_pthis; } - inline GenericMemFunc GetClosureMemPtr() const { return reinterpret_cast(m_pFunction); } - -// There are a few ways of dealing with static function pointers. -// There's a standard-compliant, but tricky method. -// There's also a straightforward hack, that won't work on DOS compilers using the -// medium memory model. It's so evil that I can't recommend it, but I've -// implemented it anyway because it produces very nice asm code. - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - -// ClosurePtr<> - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// I store the function pointer inside the class, and the delegate then -// points to itself. Whenever the delegate is copied, these self-references -// must be transformed, and this complicates the = and == operators. -public: - // The next two functions are for operator ==, =, and the copy constructor. - // We may need to convert the m_pthis pointers, so that - // they remain as self-references. - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &x) { - SetMementoFrom(x); - if (m_pStaticFunction!=0) { - // transform self references... - m_pthis=reinterpret_cast(pParent); - } - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - template < class DerivedClass, class ParentInvokerSig > - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind ) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - bindmemfunc(pParent, static_function_invoker); - } - m_pStaticFunction=reinterpret_cast(function_to_bind); - } - inline UnvoidStaticFuncPtr GetStaticFunction() const { - return reinterpret_cast(m_pStaticFunction); - } -#else - -// ClosurePtr<> - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. Invocation isn't any faster, but it saves 4 bytes, and -// speeds up comparison and assignment. If C++ provided direct language support -// for delegates, they would produce asm code that was almost identical to this. -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &right) { - SetMementoFrom(right); - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - // ******** EVIL, EVIL CODE! ******* - template < class DerivedClass, class ParentInvokerSig> - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - // We'll be ignoring the 'this' pointer, but we need to make sure we pass - // a valid value to bindmemfunc(). - bindmemfunc(pParent, static_function_invoker); - } - - // WARNING! Evil hack. We store the function in the 'this' pointer! - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(GenericClass *)==sizeof(function_to_bind) ? 1 : -1]; - m_pthis = horrible_cast(function_to_bind); - // MSVC, SunC++ and DMC accept the following (non-standard) code: -// m_pthis = static_cast(static_cast(function_to_bind)); - // BCC32, Comeau and DMC accept this method. MSVC7.1 needs __int64 instead of long -// m_pthis = reinterpret_cast(reinterpret_cast(function_to_bind)); - } - // ******** EVIL, EVIL CODE! ******* - // This function will be called with an invalid 'this' pointer!! - // We're just returning the 'this' pointer, converted into - // a function pointer! - inline UnvoidStaticFuncPtr GetStaticFunction() const { - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(UnvoidStaticFuncPtr)==sizeof(this) ? 1 : -1]; - return horrible_cast(this); - } -#endif // !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - - // Does the closure contain this static function? - inline bool IsEqualToStaticFuncPtr(StaticFuncPtr funcptr){ - if (funcptr==0) return empty(); - // For the Evil method, if it doesn't actually contain a static function, this will return an arbitrary - // value that is not equal to any valid function pointer. - else return funcptr==reinterpret_cast(GetStaticFunction()); - } -}; - - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 3: -// -// Wrapper classes to ensure type safety -// -//////////////////////////////////////////////////////////////////////////////// - - -// Once we have the member function conversion templates, it's easy to make the -// wrapper classes. So that they will work with as many compilers as possible, -// the classes are of the form -// FastDelegate3 -// They can cope with any combination of parameters. The max number of parameters -// allowed is 8, but it is trivial to increase this limit. -// Note that we need to treat const member functions seperately. -// All this class does is to enforce type safety, and invoke the delegate with -// the correct list of parameters. - -// Because of the weird rule about the class of derived member function pointers, -// you sometimes need to apply a downcast to the 'this' pointer. -// This is the reason for the use of "implicit_cast(pthis)" in the code below. -// If CDerivedClass is derived from CBaseClass, but doesn't override SimpleVirtualFunction, -// without this trick you'd need to write: -// MyDelegate(static_cast(&d), &CDerivedClass::SimpleVirtualFunction); -// but with the trick you can write -// MyDelegate(&d, &CDerivedClass::SimpleVirtualFunction); - -// RetType is the type the compiler uses in compiling the template. For VC6, -// it cannot be void. DesiredRetType is the real type which is returned from -// all of the functions. It can be void. - -// Implicit conversion to "bool" is achieved using the safe_bool idiom, -// using member data pointers (MDP). This allows "if (dg)..." syntax -// Because some compilers (eg codeplay) don't have a unique value for a zero -// MDP, an extra padding member is added to the SafeBool struct. -// Some compilers (eg VC6) won't implicitly convert from 0 to an MDP, so -// in that case the static function constructor is not made explicit; this -// allows "if (dg==0) ..." to compile. - -@VARARGS -template<@CLASSARGS, class RetType=detail::DefaultVoid> -class FastDelegate@NUM { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(@FUNCARGS); - typedef RetType (*UnvoidStaticFunctionPtr)(@FUNCARGS); - typedef RetType (detail::GenericClass::*GenericMemFn)(@FUNCARGS); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate@NUM type; - - // Construction and comparison functions - FastDelegate@NUM() { clear(); } - FastDelegate@NUM(const FastDelegate@NUM &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate@NUM &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate@NUM &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate@NUM &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate@NUM &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate@NUM &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate@NUM(Y *pthis, DesiredRetType (X::* function_to_bind)(@FUNCARGS) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(@FUNCARGS)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate@NUM(const Y *pthis, DesiredRetType (X::* function_to_bind)(@FUNCARGS) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(@FUNCARGS) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate@NUM(DesiredRetType (*function_to_bind)(@FUNCARGS) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(@FUNCARGS) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(@FUNCARGS)) { - m_Closure.bindstaticfunc(this, &FastDelegate@NUM::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (@FUNCARGS) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(@INVOKEARGS); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(@FUNCARGS) const { - return (*(m_Closure.GetStaticFunction()))(@INVOKEARGS); } -}; - -@ENDVAR - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 4: -// -// FastDelegate<> class (Original author: Jody Hagins) -// Allows boost::function style syntax like: -// FastDelegate< double (int, long) > -// instead of: -// FastDelegate2< int, long, double > -// -//////////////////////////////////////////////////////////////////////////////// - -#ifdef FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -// Declare FastDelegate as a class template. It will be specialized -// later for all number of arguments. -template -class FastDelegate; - -@VARARGS -// Specialization to allow use of -// FastDelegate< R ( @SELARGS ) > -// instead of -// FastDelegate@NUM < @SELARGS, R > -template -class FastDelegate< R ( @SELARGS ) > - // Inherit from FastDelegate@NUM so that it can be treated just like a FastDelegate@NUM - : public FastDelegate@NUM < @SELARGS, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate@NUM < @SELARGS, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( @FUNCARGS )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( @FUNCARGS ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( @FUNCARGS )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -@ENDVAR - -#endif //FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 5: -// -// MakeDelegate() helper function -// -// MakeDelegate(&x, &X::func) returns a fastdelegate of the type -// necessary for calling x.func() with the correct number of arguments. -// This makes it possible to eliminate many typedefs from user code. -// -//////////////////////////////////////////////////////////////////////////////// - -// Also declare overloads of a MakeDelegate() global function to -// reduce the need for typedefs. -// We need seperate overloads for const and non-const member functions. -// Also, because of the weird rule about the class of derived member function pointers, -// implicit downcasts may need to be applied later to the 'this' pointer. -// That's why two classes (X and Y) appear in the definitions. Y must be implicitly -// castable to X. - -// Workaround for VC6. VC6 needs void return types converted into DefaultVoid. -// GCC 3.2 and later won't compile this unless it's preceded by 'typename', -// but VC6 doesn't allow 'typename' in this context. -// So, I have to use a macro. - -#ifdef FASTDLGT_VC6 -#define FASTDLGT_RETTYPE detail::VoidToDefaultVoid::type -#else -#define FASTDLGT_RETTYPE RetType -#endif - -@VARARGS -template -FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE> MakeDelegate(Y* x, RetType (X::*func)(@FUNCARGS)) { - return FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE>(x, func); -} - -template -FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE> MakeDelegate(Y* x, RetType (X::*func)(@FUNCARGS) const) { - return FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE>(x, func); -} - -template <@CLASSARGS, class RetType> -FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE> MakeDelegate(RetType (*func)(@FUNCARGS)) { - return FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE>(func); -} - -@ENDVAR - - // clean up after ourselves... -#undef FASTDLGT_RETTYPE - -} // namespace fastdelegate - -#endif // !defined(FASTDELEGATE_H) diff --git a/sourcehook/generate/generate b/sourcehook/generate/generate deleted file mode 100755 index f537ff3..0000000 --- a/sourcehook/generate/generate +++ /dev/null @@ -1,7 +0,0 @@ -#/bin/sh - -./shworker.bin iter sourcehook.hxx sourcehook.h $1 -./shworker.bin iter sh_memfuncinfo.hxx sh_memfuncinfo.h $1 -./shworker.bin hopter FastDelegate.hxx FastDelegate.h $1 - -cp *.h .. diff --git a/sourcehook/generate/generate.bat b/sourcehook/generate/generate.bat deleted file mode 100644 index 53c863a..0000000 --- a/sourcehook/generate/generate.bat +++ /dev/null @@ -1,10 +0,0 @@ -:: Generates everything -:: Usage: -:: generate.bat - - -shworker iter sourcehook.hxx sourcehook.h %1 -shworker iter sh_memfuncinfo.hxx sh_memfuncinfo.h %1 -shworker hopter FastDelegate.hxx FastDelegate.h %1 - -copy *.h .. \ No newline at end of file diff --git a/sourcehook/generate/sh_memfuncinfo.h b/sourcehook/generate/sh_memfuncinfo.h deleted file mode 100644 index fbfddab..0000000 --- a/sourcehook/generate/sh_memfuncinfo.h +++ /dev/null @@ -1,912 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** - * @brief This file provides a way for getting information about a member function. - * @file sh_memfuncinfo.h - */ - -#ifndef __SHINT_MEMFUNC_INFO_H__ -#define __SHINT_MEMFUNC_INFO_H__ - -namespace SourceHook -{ - - // Don Clugston: - // implicit_cast< > - // I believe this was originally going to be in the C++ standard but - // was left out by accident. It's even milder than static_cast. - // I use it instead of static_cast<> to emphasize that I'm not doing - // anything nasty. - // Usage is identical to static_cast<> - template - inline OutputClass implicit_cast(InputClass input){ - return input; - } - - - struct MemFuncInfo - { - bool isVirtual; // Is the function virtual? - int thisptroffs; // The this pointer the function expects to be called with - // If -1, you need to call the GetFuncInfo_GetThisPtr function - int vtblindex; // The function's index in the vtable (0-based, 1=second entry, 2=third entry, ...) - int vtbloffs; // The vtable pointer - }; - - // Ideas by Don Clugston. - // Check out his excellent paper: http://www.codeproject.com/cpp/FastDelegate.asp - - template struct MFI_Impl - { - template static inline void GetFuncInfo(MFP *mfp, MemFuncInfo &out) - { - static char weird_memfunc_pointer_exclamation_mark_arrow_error[N-1000]; - } - }; - -# if SH_COMP == SH_COMP_GCC - - template<> struct MFI_Impl<2*SH_PTRSIZE> // All of these have size==8/16 - { - struct GCC_MemFunPtr - { - union - { - void *funcadr; // always even - intptr_t vtable_index_plus1; // = vindex+1, always odd - }; - intptr_t delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - GCC_MemFunPtr *mfp_detail = (GCC_MemFunPtr*)&mfp; - out.thisptroffs = mfp_detail->delta; - if (mfp_detail->vtable_index_plus1 & 1) - { - out.vtblindex = (mfp_detail->vtable_index_plus1 - 1) / SH_PTRSIZE; - out.vtbloffs = 0; - out.isVirtual = true; - } - else - out.isVirtual = false; - } - }; - -# elif SH_COMP == SH_COMP_MSVC - - namespace - { - int MFI_GetVtblOffset(void *mfp) - { - unsigned char *addr = (unsigned char*)mfp; - if (*addr == 0xE9) // Jmp - { - // May or may not be! - // Check where it'd jump - addr += 5 /*size of the instruction*/ + *(unsigned long*)(addr + 1); - } - - // Check whether it's a virtual function call - // They look like this: - // 004125A0 8B 01 mov eax,dword ptr [ecx] - // 004125A2 FF 60 04 jmp dword ptr [eax+4] - // ==OR== - // 00411B80 8B 01 mov eax,dword ptr [ecx] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // However, for vararg functions, they look like this: - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 0048F0B6 FF 60 08 jmp dword ptr [eax+8] - // ==OR== - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // With varargs, the this pointer is passed as if it was the first argument - - bool ok = false; - if (addr[0] == 0x8B && addr[1] == 0x44 && addr[2] == 0x24 && addr[3] == 0x04 && - addr[4] == 0x8B && addr[5] == 0x00) - { - addr += 6; - ok = true; - } - else if (addr[0] == 0x8B && addr[1] == 0x01) - { - addr += 2; - ok = true; - } - if (!ok) - return -1; - - if (*addr++ == 0xFF) - { - if (*addr == 0x60) - { - return *++addr / 4; - } - else if (*addr == 0xA0) - { - return *((unsigned int*)++addr) / 4; - } - else if (*addr == 0x20) - return 0; - else - return -1; - } - return -1; - } - } - - template<> struct MFI_Impl<1*SH_PTRSIZE> // simple ones - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = 0; - out.vtbloffs = 0; - } - }; - - template<> struct MFI_Impl<2*SH_PTRSIZE> // more complicated ones! - { - struct MSVC_MemFunPtr2 - { - void *funcadr; - int delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = reinterpret_cast(&mfp)->delta; - out.vtbloffs = 0; - } - }; - - // By Don Clugston, adapted - template<> struct MFI_Impl<3*SH_PTRSIZE> // WOW IT"S GETTING BIGGER OMGOMOGMG - { - class __single_inheritance GenericClass; - class GenericClass {}; - - struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance - }; - - struct GenericVirtualClass : virtual public GenericClass - { - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } - }; - - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - // This pointer - /* - union { - MFP func; - GenericClass* (T::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = mfp; - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(mfp)==sizeof(u.s) - && sizeof(mfp)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - out.thisptroffs = (reinterpret_cast(NULL)->*u.ProbeFunc)(); - */ - out.thisptroffs = -1; - out.vtbloffs = 0; - } - }; - - // Don: Nasty hack for Microsoft and Intel (IA32 and Itanium) - // unknown_inheritance classes go here - // This is probably the ugliest bit of code I've ever written. Look at the casts! - // There is a compiler bug in MSVC6 which prevents it from using this code. - template<> struct MFI_Impl<4*SH_PTRSIZE> // THE BIGGEST ONE!!!1GABEN - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - MFP func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - void *m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(u.func)==sizeof(u.s)? 1 : -1]; - u.func = mfp; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - /* - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - int * vtable = *reinterpret_cast( - reinterpret_cast(thisptr) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - out.thisptr = reinterpret_cast( - reinterpret_cast(thisptr) + u.s.delta + virtual_delta); - */ - out.vtbloffs = u.s.vtordisp; - out.thisptroffs = -1; - } - else - { - out.vtbloffs = out.vtblindex < 0 ? 0 : u.s.delta; - out.thisptroffs = u.s.delta; - } - }; - }; -# else -# error Unsupported compiler -# endif - - // This version does not take a this pointer - // Useful for hookdecls, as they ensure that mfp is correct through a static_cast - template inline void GetFuncInfo(X mfp, MemFuncInfo &out) - { - MFI_Impl::GetFuncInfo(mfp, out); - } - - // Versions which do take a this - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(), MemFuncInfo &out) - { - RetType(Y::*mfp2)() = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)() const, MemFuncInfo &out) - { - RetType(Y::*mfp2)() const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - // GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - -#endif - -} - -#endif diff --git a/sourcehook/generate/sh_memfuncinfo.hxx b/sourcehook/generate/sh_memfuncinfo.hxx deleted file mode 100644 index 5ed37ab..0000000 --- a/sourcehook/generate/sh_memfuncinfo.hxx +++ /dev/null @@ -1,332 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** - * @brief This file provides a way for getting information about a member function. - * @file sh_memfuncinfo.h - */ - -#ifndef __SHINT_MEMFUNC_INFO_H__ -#define __SHINT_MEMFUNC_INFO_H__ - -namespace SourceHook -{ - - // Don Clugston: - // implicit_cast< > - // I believe this was originally going to be in the C++ standard but - // was left out by accident. It's even milder than static_cast. - // I use it instead of static_cast<> to emphasize that I'm not doing - // anything nasty. - // Usage is identical to static_cast<> - template - inline OutputClass implicit_cast(InputClass input){ - return input; - } - - - struct MemFuncInfo - { - bool isVirtual; // Is the function virtual? - int thisptroffs; // The this pointer the function expects to be called with - // If -1, you need to call the GetFuncInfo_GetThisPtr function - int vtblindex; // The function's index in the vtable (0-based, 1=second entry, 2=third entry, ...) - int vtbloffs; // The vtable pointer - }; - - // Ideas by Don Clugston. - // Check out his excellent paper: http://www.codeproject.com/cpp/FastDelegate.asp - - template struct MFI_Impl - { - template static inline void GetFuncInfo(MFP *mfp, MemFuncInfo &out) - { - static char weird_memfunc_pointer_exclamation_mark_arrow_error[N-1000]; - } - }; - -# if SH_COMP == SH_COMP_GCC - - template<> struct MFI_Impl<2*SH_PTRSIZE> // All of these have size==8/16 - { - struct GCC_MemFunPtr - { - union - { - void *funcadr; // always even - intptr_t vtable_index_plus1; // = vindex+1, always odd - }; - intptr_t delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - GCC_MemFunPtr *mfp_detail = (GCC_MemFunPtr*)&mfp; - out.thisptroffs = mfp_detail->delta; - if (mfp_detail->vtable_index_plus1 & 1) - { - out.vtblindex = (mfp_detail->vtable_index_plus1 - 1) / SH_PTRSIZE; - out.vtbloffs = 0; - out.isVirtual = true; - } - else - out.isVirtual = false; - } - }; - -# elif SH_COMP == SH_COMP_MSVC - - namespace - { - int MFI_GetVtblOffset(void *mfp) - { - unsigned char *addr = (unsigned char*)mfp; - if (*addr == 0xE9) // Jmp - { - // May or may not be! - // Check where it'd jump - addr += 5 /*size of the instruction*/ + *(unsigned long*)(addr + 1); - } - - // Check whether it's a virtual function call - // They look like this: - // 004125A0 8B 01 mov eax,dword ptr [ecx] - // 004125A2 FF 60 04 jmp dword ptr [eax+4] - // ==OR== - // 00411B80 8B 01 mov eax,dword ptr [ecx] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // However, for vararg functions, they look like this: - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 0048F0B6 FF 60 08 jmp dword ptr [eax+8] - // ==OR== - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // With varargs, the this pointer is passed as if it was the first argument - - bool ok = false; - if (addr[0] == 0x8B && addr[1] == 0x44 && addr[2] == 0x24 && addr[3] == 0x04 && - addr[4] == 0x8B && addr[5] == 0x00) - { - addr += 6; - ok = true; - } - else if (addr[0] == 0x8B && addr[1] == 0x01) - { - addr += 2; - ok = true; - } - if (!ok) - return -1; - - if (*addr++ == 0xFF) - { - if (*addr == 0x60) - { - return *++addr / 4; - } - else if (*addr == 0xA0) - { - return *((unsigned int*)++addr) / 4; - } - else if (*addr == 0x20) - return 0; - else - return -1; - } - return -1; - } - } - - template<> struct MFI_Impl<1*SH_PTRSIZE> // simple ones - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = 0; - out.vtbloffs = 0; - } - }; - - template<> struct MFI_Impl<2*SH_PTRSIZE> // more complicated ones! - { - struct MSVC_MemFunPtr2 - { - void *funcadr; - int delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = reinterpret_cast(&mfp)->delta; - out.vtbloffs = 0; - } - }; - - // By Don Clugston, adapted - template<> struct MFI_Impl<3*SH_PTRSIZE> // WOW IT"S GETTING BIGGER OMGOMOGMG - { - class __single_inheritance GenericClass; - class GenericClass {}; - - struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance - }; - - struct GenericVirtualClass : virtual public GenericClass - { - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } - }; - - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - // This pointer - /* - union { - MFP func; - GenericClass* (T::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = mfp; - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(mfp)==sizeof(u.s) - && sizeof(mfp)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - out.thisptroffs = (reinterpret_cast(NULL)->*u.ProbeFunc)(); - */ - out.thisptroffs = -1; - out.vtbloffs = 0; - } - }; - - // Don: Nasty hack for Microsoft and Intel (IA32 and Itanium) - // unknown_inheritance classes go here - // This is probably the ugliest bit of code I've ever written. Look at the casts! - // There is a compiler bug in MSVC6 which prevents it from using this code. - template<> struct MFI_Impl<4*SH_PTRSIZE> // THE BIGGEST ONE!!!1GABEN - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - MFP func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - void *m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(u.func)==sizeof(u.s)? 1 : -1]; - u.func = mfp; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - /* - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - int * vtable = *reinterpret_cast( - reinterpret_cast(thisptr) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - out.thisptr = reinterpret_cast( - reinterpret_cast(thisptr) + u.s.delta + virtual_delta); - */ - out.vtbloffs = u.s.vtordisp; - out.thisptroffs = -1; - } - else - { - out.vtbloffs = out.vtblindex < 0 ? 0 : u.s.delta; - out.thisptroffs = u.s.delta; - } - }; - }; -# else -# error Unsupported compiler -# endif - - // This version does not take a this pointer - // Useful for hookdecls, as they ensure that mfp is correct through a static_cast - template inline void GetFuncInfo(X mfp, MemFuncInfo &out) - { - MFI_Impl::GetFuncInfo(mfp, out); - } - - // Versions which do take a this -@[$1,0,$a: - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(@[$2,1,$1|, :Param$2@]), MemFuncInfo &out) - { - RetType(Y::*mfp2)(@[$2,1,$1|, :Param$2@]) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(@[$2,1,$1|, :Param$2@]) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(@[$2,1,$1|, :Param$2@]) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } -@] - - // GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 - -@[$1,0,$a: - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - -@] - -#endif - -} - -#endif diff --git a/sourcehook/generate/shworker.bin b/sourcehook/generate/shworker.bin deleted file mode 100755 index 18d35bd2ec92e780d2384dbf192640497b82ae37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54998 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 XRI!`2;db_HgI+>5lKQxTZw>zg{q0Ax diff --git a/sourcehook/generate/shworker.exe b/sourcehook/generate/shworker.exe deleted file mode 100644 index a251da14479b56dd75dd15f925de69e066c036c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352256 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 diff --git a/sourcehook/generate/shworker/Makefile b/sourcehook/generate/shworker/Makefile deleted file mode 100644 index 86ac5bf..0000000 --- a/sourcehook/generate/shworker/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -default: shworker - -bin: - mkdir bin - -fd_hopter.o: fd_hopter.cpp bin - gcc -fPIC -O2 -o bin/$@ -c $< - -main.o: shworker.cpp bin - gcc -fPIC -O2 -o bin/$@ -c $< - -shworker: fd_hopter.o main.o bin - gcc -ldl -lstdc++ bin/fd_hopter.o bin/main.o -o bin/shworker.bin diff --git a/sourcehook/generate/shworker/fd_hopter.cpp b/sourcehook/generate/shworker/fd_hopter.cpp deleted file mode 100644 index 7fc149d..0000000 --- a/sourcehook/generate/shworker/fd_hopter.cpp +++ /dev/null @@ -1,370 +0,0 @@ -// From fastdelegate -// http://www.codeproject.com/cpp/FastDelegate.asp - -// Modified to be run from shworker by PM - - -// HOPTER.EXE -- A simple header generator for vararg templates -/* MOTIVATION - C++ doesn't have a vararg feature for templates. This can be a - nuisance when writing class libraries. There are a few options: - (a) manually repeat code. This is tedious and error prone. - (b) Use macros. Messy, can't cope with template - arguments, and users get hard-to-interpret error messages. - (c) Use the boost preprocessor library. This slows compilation, - and introduces a dependency on boost. - (d) Write a program to automatically generate the code. - I've never seen a general program to do this job, so this is - a very simple command-line program to do it. - - Why is it called Hopter? - I wanted a word that started with h, to be reminiscent of header - files. At the time, my 2yo son kept talking about 'Hopter Copters' - (he couldn't pronounce 'helicopter'). - It also reflects the level of sophistication of this program -- - it was named by a two year old. - - IMPLEMENTATION - - When you analyze the problem, you find that the requirements - are very simple. - Varargs are needed in two places: templates and functions. - You want to use them in two ways: when declaring the template - or function, and when invoking the function / selecting the - template. - - It's a brain-dead implementation, which just does a search-and-replace - of specific strings. It could be done with a few lines using sed on - a *NIX platform. Because I use Windows, I've done a quick and dirty - implementation using CString. - -In a file, @VARARGS at the start of a line indicates the start of the code -to be expanded. @ENDVAR at the start of a line marks the end of the -expansion. - - declare template -- template <@CLASSARGS> class SomeClass - template - class SomeClass - - declare function -- somefunc(@FUNCARGS) - somefunc(Param1 p1, Param2 p2) - - select template -- SomeClass<@SELARGS> - SomeClass - - invoke function -- somefunc(@INVOKEARGS) - somefunc(p1, p2) - - I also provide @NUM which is the number of arguments. - The case where @NUM is zero is a special case: for template declarations, - the entire template<> bit needs to disappear. When other arguments are - involved, either at the beginning or end of the list, there a commas - which might need to be removed. - - I've used .hxx as the extension for these files. This enables C++ - I wanted to use an unusual file extension (.HOH) for these files, because they - aren't real header files. But I also like to use the C++ syntax highlighting - in Visual Studio. I chose .hxx because MSVC treats it as C++, but it - seems to very rarely used. - - Installation (for VC6, if you want to use .HOH as the extension instead): - Go into the registry and change - HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Text Editor\Tabs/Language Settings\C/C++\FileExtensions from cpp;cxx;c;h;hxx;hpp;inl;tlh;tli;rc;rc2 - to cpp;cxx;c;h;hxx;hpp;inl;tlh;tli;rc;rc2;hoh by adding “;hoh” to the end. - Then add this as a custom build step to the main file of your project: - hopter $(InputDir)\*.hoh $(InputDir)\*.h - -*/ - -#include -#include -#include - -// This is a quick-n-dirty implementation of a CString replacement. -// It promises nothing more than to provide enough functionality to get -// this program to run. -// Note that I have really never used CString, so the information to -// implement the members that are used in this program come from -// online documentation at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cstring.asp -// Also, I have only used VC++ a few times, a long time ago, so -// I really do not know what all their alphabet soup is suppoed to -// mean, so I just made a guess... - - -class CString -{ -public: - enum { MAX_FORMAT_STRING_SIZE = 8 * 1044 }; - CString() - : str_() - { - } - - CString( - CString const & rhs) - : str_(rhs.str_) - { - } - - CString( - char ch, - int repeat = 1) - : str_(repeat, ch) - { - } - - CString( - char const * s) - : str_(s) - { - } - - CString & operator=( - CString const & rhs) - { - str_ = rhs.str_; - return *this; - } - - CString & operator=( - char const * s) - { - str_ = s; - return *this; - } - - CString & operator=( - char ch) - { - str_ = ch; - return *this; - } - - void Format( - char const * fmt, - ...) - { - char buffer[ MAX_FORMAT_STRING_SIZE ]; - va_list ap; - va_start(ap, fmt); - vsprintf(buffer, fmt, ap); - va_end(ap); - str_ = buffer; - } - - char operator[]( - int x) const - { - return str_[x]; - } - - CString & operator+=( - CString const & x) - { - str_ += x.str_; return *this; - } - - int Replace( - CString const & lhs, - CString const & rhs) - { - int rval = 0; - std::string::size_type pos = 0; - while (pos < str_.length()) - { - pos = str_.find(lhs.str_, pos); - if (pos != std::string::npos) - { - str_.replace(pos, lhs.GetLength(), rhs.str_); - pos += rhs.GetLength(); - ++rval; - } - } - return rval; - } - - int GetLength() const - { - return str_.length(); - } - - operator char const * () const - { - return str_.c_str(); - } - -private: - std::string str_; -}; - - -CString operator+( - CString const & x, - CString const & y) -{ - CString result(x); - result += y; - return result; -} - - -/* Example: This is an excerpt from boost::function_template.hpp - -#define BOOST_FUNCTION_FUNCTION_INVOKER \ - BOOST_JOIN(function_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER \ - BOOST_JOIN(void_function_invoker,BOOST_FUNCTION_NUM_ARGS) - - template< - typename FunctionPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_GET_FUNCTION_INVOKER - { - typedef typename ct_if<(is_void::value), - BOOST_FUNCTION_VOID_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >, - BOOST_FUNCTION_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - > - >::type type; - }; - -Using HOPTER, this can be written as: - - template< typename FunctionPtr, typename R, @CLASSARGS> - struct get_function_invoker@NUM - { - typedef typename ct_if<(is_void::value), - void_function_invoker@NUM, - function_invoker@NUM - >::type type; - }; -*/ - -int MaxNumArgs; - -/// Makes the necessary subsititutions in 'bigblock', and writes to fout. -void PrintVarArgs(FILE *fout, CString bigblock, int num) { - CString numstr; - CString invokelist; - CString funclist; - CString selectlist; - CString classlist; - CString commastr; - numstr.Format("%d", num); - if (num==0) { - invokelist=""; - funclist=""; - selectlist=""; - commastr=""; - classlist=""; - }else { - invokelist="p1"; - funclist="Param1 p1"; - selectlist = "Param1"; - classlist = "class Param1"; - commastr=", "; - CString str; - for (int k=2; k<=num; k++) { - str.Format(", p%d", k); - invokelist+=str; - str.Format(", Param%d p%d", k, k); - funclist+=str; - str.Format(", Param%d", k); - selectlist += str; - str.Format(", class Param%d", k); - classlist += str; - } - } - - // Simple replacement of number of arguments - bigblock.Replace("@NUM", numstr); - - // Template declarations - if (num==0) bigblock.Replace("template<@CLASSARGS>", ""); - else bigblock.Replace("template<@CLASSARGS>", - (CString)"template<" + classlist+">"); - if (num==0) bigblock.Replace("template <@CLASSARGS>", ""); - else bigblock.Replace("template <@CLASSARGS>", - (CString)"template<" + classlist+">"); - bigblock.Replace(",@CLASSARGS", commastr + classlist); - bigblock.Replace(", @CLASSARGS", commastr + classlist); - bigblock.Replace("@CLASSARGS, ", classlist + commastr); - bigblock.Replace("@CLASSARGS,", classlist + commastr); - bigblock.Replace("@CLASSARGS", classlist); - - // Template selections - CString selargstr; - if (num==0) selargstr = ""; - else selargstr = (CString)"<"+selectlist+">"; - - bigblock.Replace("<@SELARGS>", selargstr); - bigblock.Replace("< @SELARGS >", selargstr); - bigblock.Replace(",@SELARGS", commastr + selectlist); - bigblock.Replace(", @SELARGS", commastr + selectlist); - bigblock.Replace("@SELARGS, ", selectlist + commastr); - bigblock.Replace("@SELARGS,", selectlist + commastr); - bigblock.Replace("@SELARGS", selectlist); - - // Function declarations - bigblock.Replace(",@FUNCARGS", commastr + funclist); - bigblock.Replace(", @FUNCARGS", commastr + funclist); - bigblock.Replace("@FUNCARGS, ", funclist + commastr); - bigblock.Replace("@FUNCARGS,", funclist + commastr); - bigblock.Replace("@FUNCARGS", funclist); - - // Function invocation - bigblock.Replace(",@INVOKEARGS", commastr + invokelist); - bigblock.Replace(", @INVOKEARGS", commastr + invokelist); - bigblock.Replace("@INVOKEARGS, ", invokelist + commastr); - bigblock.Replace("@INVOKEARGS,", invokelist + commastr); - bigblock.Replace("@INVOKEARGS", invokelist); - - fprintf(fout, bigblock); -} - -int action_hopter(int numargs, const char *filenamein, const char *filenameout) -{ - - MaxNumArgs = numargs; - - FILE * fin; - FILE *fout; - - fin =fopen(filenamein,"rt"); - if (!fin) { printf("Error, can't open %s\n", filenamein); return 1; }; - fout = fopen (filenameout, "wt"); - if (!fout) { printf("Error, can't open %s\n", filenameout); return 1; }; - char buf[5000]; - for (;;) { - if (!fgets(buf, 5000, fin)) break; - if (!strncmp(buf, "@VARARGS", 8)) { - // found a match... - CString bigblock; - for (;;) { - if (feof(fin)) { printf("No matching @ENDVAR !!??\n"); return 1; }; - fgets(buf, 5000, fin); - if (!strncmp(buf, "@ENDVAR", 7)) break; - bigblock+=buf; - } -// fprintf(fout, "// Auto-generated code [[[\n"); - for (int k=0; k<=MaxNumArgs; k++) { - fprintf(fout, "//N=%d\n", k); - PrintVarArgs(fout, bigblock, k); - } -// fprintf(fout, "// ]]] End auto-generated code\n"); - } else { - fprintf(fout, "%s", buf); - } - } - fclose(fin); - fclose(fout); - return 0; -} diff --git a/sourcehook/generate/shworker/msvc7/shworker.vcproj b/sourcehook/generate/shworker/msvc7/shworker.vcproj deleted file mode 100644 index 159bd19..0000000 --- a/sourcehook/generate/shworker/msvc7/shworker.vcproj +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcehook/generate/shworker/msvc8/shworker.vcproj b/sourcehook/generate/shworker/msvc8/shworker.vcproj deleted file mode 100644 index 997949d..0000000 --- a/sourcehook/generate/shworker/msvc8/shworker.vcproj +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcehook/generate/shworker/shworker.cpp b/sourcehook/generate/shworker/shworker.cpp deleted file mode 100644 index 5e0047c..0000000 --- a/sourcehook/generate/shworker/shworker.cpp +++ /dev/null @@ -1,767 +0,0 @@ -// SHWorker -// Inspired by "Hopter" that comes with FastDelegate (http://www.codeproject.com/cpp/FastDelegate.asp) -// Much more powerful (and ugly) though - -/* - - INPUT FILE DIRECTIVES - - $a is the first additional argument, $b the second, ... - - --- - ITERATION - - @[variable,min,max:code|separator@] - - variable: this will be replaced in code by its current value. - vars are always $ and a number. - min: first value to be used for variable - max: last value to be used for variable - code: the code that will be inserted on each iteration. - separator: optional. this will be inserted between iterations. - If you don't use a separator, you may leave out the | - IMPORTANT: iterations will only be performed if max >= min - - --- ARITHMETIC EXPRESSION - - @(expr) - - expr may contain: - variables - constants - operators (currently only + and * are supported) - - --- CONDITION - - @[expr operator expr:code@] - - Example: @[$1!=0:hello@] - - Currently only != and == are supported operators. - - - Yes, error handling in here is weird, some stuff uses return values, other code uses exceptions. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include "stdio.h" - -#ifdef __linux__ -# define stricmp strcasecmp -#endif - -// Ensure that the template version is being used! -#ifdef min -#undef min -#endif - -using namespace std; - -extern int action_hopter(int numargs, const char *filenamein, const char *filenameout); - -typedef map varmap; - -struct MyError -{ - const char *m_desc; - - MyError(const char *desc) : m_desc(desc) - { - } - - void Print() - { - cout << m_desc << endl; - } -}; - -struct SyntaxError : MyError -{ - SyntaxError() : MyError("Syntax error in expression") - { - } -}; -struct OtherError : MyError -{ - OtherError() : MyError("WTF") - { - } -}; - -void trim_string(std::string &str) -{ - size_t first = str.find_first_not_of(" \t\v\n\r"); - if (first == std::string::npos) - { - str.clear(); - return; - } - - size_t last = str.length(); - for (std::string::reverse_iterator riter = str.rbegin(); riter != str.rend(); ++riter) - { - char ch = *riter; - if (ch != ' ' && - ch != '\t' && - ch != '\v' && - ch != '\n' && - ch != '\r') - break; - --last; - } - str = str.substr(first, last - first); -} - -// unused -bool ExtractToken(std::string &strin, std::string &strout) -{ - trim_string(strin); - if (strin.begin() == strin.end()) - { - strout.clear(); - return false; - } - size_t first = strin.find_first_not_of("abcdefghijklmnopqrstuvwxyzABCDEFHIJKLMNOPQRSTUVWXYZ_0123456789"); - if (first == 0) - { - if (strin.size() > 1 && strin.at(0) == '/' && strin.at(1) == '/') - { - // One-line comment, find its end - first = strin.find('\n') + 1; - } - else if (strin.size() > 1 && strin.at(0) == '/' && strin.at(1) == '*') - { - // Multi-line comment, find its end - first = strin.find("*/") + 2; - } - strin = strin.substr(1); - strout.clear(); - return true; - } - strout = strin.substr(0, first); - strin = strin.substr(first); - return true; -} - -// Returns the number of occurencies replaced -int DoReplace(string &str, const string &what, const string &with) -{ - int cnt=0; - size_t where = str.find(what); - - while (where != string::npos) - { - str.replace(where, what.size(), with); - ++cnt; - where = str.find(what, where); - } - return cnt; -} - -int DoReplace(string &str, const char *what, const char *with) -{ - int cnt=0; - size_t where = str.find(what); - size_t whatsize = strlen(what); - while (where != string::npos) - { - str.replace(where, whatsize, with); - ++cnt; - where = str.find(what, where); - } - return cnt; -} - - -class ExprParser -{ - // grammar: - /* - expr -> expr + term { do_add } - | expr - term { do_sub } - | term - - term -> term * factor { do_mul } - | term / factor { do_div } - | term % factor { do_mod } - - factor -> (expr) - | numeric constant { push } - - - equivalent to: - - expr -> term moreterms - moreterms -> + term { do_add } moreterms - moreterms -> - term { do_sub } moreterms - moreterms -> epsilon - - term -> factor morefactors - morefactors -> * factor { do_mul } morefactors - morefactors -> / factor { do_div } morefactors - morefactors -> % factor { do_mod } morefactors - morefactors -> epsilon - - factor -> (expr) - factor -> numeric constant { push } - - */ - - string::const_iterator m_begin; - string::const_iterator m_end; - string::const_iterator m_iter; - - int m_lookahead; - int m_tokenval; - - stack m_stack; - static const int DONE = 256; - static const int NUM = 257; - - int lexan() - { - while (1) - { - if (m_iter == m_end) - return DONE; - - int t = *m_iter++; - - if (t == ' ' || t == '\t') - ; // Remove whitespace - else if (isdigit(t)) - { - --m_iter; - - m_tokenval = 0; - while (m_iter != m_end && isdigit(*m_iter)) - { - m_tokenval *= 10; - m_tokenval += *m_iter - '0'; - ++m_iter; - } - return NUM; - } - else - return t; - } - } - - void match(int t) - { - if (m_lookahead == t) - m_lookahead = lexan(); - else - throw SyntaxError(); - } - void factor() - { - switch (m_lookahead) - { - case '(': - match('('); expr(); match(')'); - break; - case NUM: - m_stack.push(m_tokenval); match(NUM); - break; - default: - throw SyntaxError(); - } - } - void term() - { - factor(); - while (1) - { - switch (m_lookahead) - { - case '*': - match('*'); factor(); do_mul(); - continue; - case '/': - match('/'); factor(); do_div(); - continue; - case '%': - match('%'); factor(); do_mod(); - continue; - default: - return; - } - - } - } - - void expr() - { - term(); - while (1) - { - switch (m_lookahead) - { - case '+': - match('+'); term(); do_add(); - continue; - case '-': - match('-'); term(); do_sub(); - continue; - default: - return; - } - } - } - - void do_add() - { - int a2 = m_stack.top(); m_stack.pop(); - int a1 = m_stack.top(); m_stack.pop(); - m_stack.push(a1 + a2); - } - - void do_sub() - { - int a2 = m_stack.top(); m_stack.pop(); - int a1 = m_stack.top(); m_stack.pop(); - m_stack.push(a1 - a2); - } - - void do_mul() - { - int a2 = m_stack.top(); m_stack.pop(); - int a1 = m_stack.top(); m_stack.pop(); - m_stack.push(a1 * a2); - } - - void do_div() - { - int a2 = m_stack.top(); m_stack.pop(); - int a1 = m_stack.top(); m_stack.pop(); - m_stack.push(a1 / a2); - } - - void do_mod() - { - int a2 = m_stack.top(); m_stack.pop(); - int a1 = m_stack.top(); m_stack.pop(); - m_stack.push(a1 % a2); - } - -public: - ExprParser(string::const_iterator begin, string::const_iterator end) : - m_begin(begin), m_end(end), m_iter(begin) - { - m_lookahead = lexan(); - expr(); - } - - operator int() - { - if (m_stack.size() != 1) - throw OtherError(); - - return m_stack.top(); - } -}; - -int parse_expr(string::const_iterator begin, string::const_iterator end) -{ - return ExprParser(begin, end); -} - -size_t find_first_directive(const string &buf, size_t begin=0) -{ - for (;;) - { - if (begin >= buf.size()) - return string::npos; - - size_t firstdirpos = buf.find('@', begin); - if (firstdirpos == string::npos) - return firstdirpos; - - if (buf.size() > firstdirpos+1) - { - if (buf[firstdirpos+1] == '[' || buf[firstdirpos+1] == '(') - return firstdirpos; - } - begin = firstdirpos+1; - } -} - -// buf begins with a section. Find its end! -size_t find_section_end(const string &buf) -{ - int starttype = buf[1]; - int endtype = (buf[1] == '(') ? ')' : ']'; - - int nestlevel = 0; - - if (starttype == '(') - { - for (string::const_iterator iter = buf.begin(); iter != buf.end(); ++iter) - { - if (*iter == starttype) - ++nestlevel; - if (*iter == endtype) - { - if (--nestlevel == 0) - return iter - buf.begin() + 1; - } - } - return string::npos; - } - else if (starttype == '[') - { - int lastchar = 0; - for (string::const_iterator iter = buf.begin(); iter != buf.end(); ++iter) - { - if (lastchar == '@' && *iter == starttype) - ++nestlevel; - if (lastchar == '@' && *iter == endtype) - { - if (--nestlevel == 0) - return iter - buf.begin() + 1; - } - lastchar = *iter; - } - return string::npos; - } - - return string::npos; -} - -// replaces variables and additional arguments -void replace_vars(string &buf, int argc, int *argv, const varmap &vars) -{ - char varname[] = "$ "; - char value[32]; - - for (int i = 0; i < argc; ++i) - { - varname[1] = 'a' + i; - sprintf(value, "%d", argv[i]); - DoReplace(buf, varname, value); - } - - for (varmap::const_iterator iter = vars.begin(); iter != vars.end(); ++iter) - { - varname[1] = '0' + iter->first; - sprintf(value, "%d", iter->second); - DoReplace(buf, varname, value); - } -} - -// do_input -// params: -// argc: number of additional arguments -// argv: additional arguments -// outfile: output file -// buf: string to be processed. IMPORTANT: buf is modified! -// curvars: variables buffer. -// retval: -// 0 on success, non-zero on error - -int do_input(int argc, int *argv, ofstream &outfile, string &buf, varmap &curvars) -{ - for (;;) - { - // Find the next directive. - size_t firstdirpos = find_first_directive(buf); - - // Output everything that came before, and remove it from buf - outfile << buf.substr(0, firstdirpos); - if (firstdirpos == string::npos) - return 0; - buf = buf.substr(firstdirpos); - - // Now find the matching end. - size_t sectionend = find_section_end(buf); - if (sectionend == string::npos) - { - cout << "ERROR: Section not closed!" << endl; - return 1; - } - - // Place the section in its own buffer and remove it from the input string. - string sect(buf.begin(), buf.begin() + sectionend); - buf = buf.substr(sectionend); - - // CASE1: Arithmetic expression - if (sect[1] == '(') - { - replace_vars(sect, argc, argv, curvars); - outfile << parse_expr(sect.begin()+1, sect.end()); - } - else if (sect[1] == '[') - { - int is_iter = 0; // 0 -> no; 1 -> maybe (only used in check); 2 -> yes - char lastchar = 0; - // This could be an iteration OR a conditional thing. - // Pretty braindead check: iterations begin with a variable, then a comma. - for (string::iterator iter = sect.begin() + 2; iter != sect.end(); ++iter) - { - if (*iter == ' ' || *iter == '\t') - ; - else if (is_iter == 0 && lastchar == '$' && isdigit(*iter)) - is_iter = 1; - else if (is_iter == 1 && *iter == ',') - { - is_iter = 2; - break; - } - else if (*iter == '$') - ; - else - break; - lastchar = *iter; - } - if (is_iter == 2) - { - // CASE2: iteration - // Looks like: @[var,min,max:code|sep@] - // Replace known variables / additional arguments - replace_vars(sect, argc, argv, curvars); - - // get the parts! - string varname; - int varnum; - int expr_min; - int expr_max; - - // varname - size_t comma = sect.find(','); - if (comma == string::npos) - { - cout << "Invalid iteration syntax" << endl; - return 1; - } - varname.assign(sect.begin() + 2, sect.begin() + comma); - trim_string(varname); - if (varname.size() != 2 || varname[0] != '$' || !isdigit(varname[1])) - { - cout << "Invalid variable name" << endl; - return 1; - } - varnum = varname[1] - '0'; - - // min - ++comma; - size_t nextcomma = sect.find(',', comma); - if (nextcomma == string::npos) - { - cout << "Invalid iteration syntax" << endl; - return 1; - } - expr_min = parse_expr(sect.begin() + comma, sect.begin() + nextcomma); - - // max - comma = nextcomma + 1; - nextcomma = sect.find(':', comma); - if (nextcomma == string::npos) - { - cout << "Invalid iteration syntax" << endl; - return 1; - } - - expr_max = parse_expr(sect.begin() + comma, sect.begin() + nextcomma); - - // separator - size_t sepbegin = sect.find('|'); - size_t sepend = string::npos; - if (sepbegin != string::npos && sepbegin < nextcomma) - { - // There's a separator! - ++sepbegin; - sepend = nextcomma; - } - else - sepbegin = string::npos; - - - ++nextcomma; // nextcomma is now where code begins! - - size_t codeend = sect.size() - 2; - - // Check whether the var is already taken - if (curvars.find(varnum) != curvars.end()) - { - cout << "Variable $" << varnum << "already taken!" << endl; - return 1; - } - - // Do iterations!! - for (int i = expr_min; i <= expr_max; ++i) - { - curvars[varnum] = i; - - string code(sect.begin() + nextcomma, sect.begin() + codeend); - replace_vars(code, argc, argv, curvars); - - // Feed it through the input routine (RECURSE!!!!!! YEAH!) - do_input(argc, argv, outfile, code, curvars); - - // Add separator if required - if (sepbegin != string::npos && i != expr_max) - { - string tmp(sect.begin() + sepbegin, sect.begin() + sepend); - do_input(argc, argv, outfile, tmp, curvars); - } - } - // Remove the var! - curvars.erase(varnum); - } - else - { - // CASE3: conditional thing. - // Looks like: @[expr1 operator expr2:code@] - - // Find the operator position - - enum OP_TYPE - { - OP_EQ, - OP_NEQ - }; - - OP_TYPE op; - size_t oppos = sect.find("=="); - if (oppos != string::npos) - op = OP_EQ; - else - { - oppos = sect.find("!="); - if (oppos != string::npos) - op = OP_NEQ; - else - { - cout << "Conditional expression without operator!?" << endl; - return 1; - } - } - size_t colon = sect.find(':'); - - // Now we've got everything. Parse first expr: - int expr1 = parse_expr(sect.begin() + 2, sect.begin() + oppos); - int expr2 = parse_expr(sect.begin() + oppos + 2, sect.begin() + colon); - if ((op == OP_EQ && expr1 == expr2) || - (op == OP_NEQ && expr1 != expr2)) - { - // Condition is true, process it! - // The text may still contain arithmetic exprs or other cond. exprs - // so send it through do_input - string tmp(sect.substr(colon+1, sect.size() - colon - 3)); - do_input(argc, argv, outfile, tmp, curvars); - } - } - } - else - { - cout << "WTF" << endl; - return 1; - } - } - - return 0; -} - - - -// action_iter -// params: -// filenamein: input file name -// filenameout: output file name -// argc: number of additional arguments -// argv: additional arguments -// retval: 0 on success, non-zero on error - -// Convert additional arguments -// Read whole input file to memory and open output file -// Pass to do_input() -int action_iter(const char *filenamein, const char *filenameout, int argc, const char *argv[]) -{ - // Convert additional arguments - const int MAX_ARGC = 10; - int converted_argv[MAX_ARGC]; - - int i; - for (i = 0; i < argc && i < MAX_ARGC; ++i) - converted_argv[i] = atoi(argv[i]); - - if (argc != i) - cout << "WARNING: Not all additional arguments processed!" << endl; - - - // Read whole input file to memory and open output file - ifstream fin(filenamein); - ofstream fout(filenameout); - - if (!fin) - { - cout << "Could not open file \"" << filenamein << "\"." << endl; - return 1; - } - if (!fout) - { - cout << "Could not open file \"" << filenameout << "\"." << endl; - return 1; - } - string input_str( - istreambuf_iterator (fin.rdbuf()), - istreambuf_iterator ()); - - - // Begin processing input - varmap vars; - try - { - return do_input(argc, converted_argv, fout, input_str, vars); - } - catch (MyError err) - { - err.Print(); - return 1; - } -} - -// MAIN -// Prints usage if required -// Calls action_hopter OR action_iter -int main(int argc, const char **argv) -{ - if (argc < 4) - { - cout << "Usage:" << endl << " shworker [iter/hopter] ..." << endl; - cout << " shworker iter filename.in filename.out [param1, param2, ...]" << endl; - cout << " shworker hopter filename.in filename.out [num-of-args]" << endl; - return 1; - } - - const char *action = argv[1]; - - if (stricmp(action, "hopter") == 0) - { - const char *filenamein = argv[2]; - const char *filenameout = argv[3]; - int argsnum = atoi(argv[4]); - - return action_hopter(argsnum, filenamein, filenameout); - } - else if (stricmp(action, "iter") == 0) - { - const char *filenamein = argv[2]; - const char *filenameout = argv[3]; - int additional_argc = argc - 4; - const char ** additional_argv = argv + 4; - return action_iter(filenamein, filenameout, additional_argc, additional_argv); - } - else - { - cout << "Unrecognized action: " << argv[1] << endl; - return 1; - } -} diff --git a/sourcehook/generate/sourcehook.h b/sourcehook/generate/sourcehook.h deleted file mode 100644 index 49e6813..0000000 --- a/sourcehook/generate/sourcehook.h +++ /dev/null @@ -1,6104 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** -* @file sourcehook.h -* @brief Contains the public SourceHook API -*/ - -#ifndef __SOURCEHOOK_H__ -#define __SOURCEHOOK_H__ - -// Interface revisions: -// 1 - Initial revision -// 2 - Changed to virtual functions for iterators and all queries -// 3 - Added "hook loop status variable" -// 4 - Reentrant -#define SH_IFACE_VERSION 4 -#define SH_IMPL_VERSION 3 - -// Hookman version: -// 1 - Support for recalls, performance optimisations -#define SH_HOOKMAN_VERSION 1 - -// The value of SH_GLOB_SHPTR has to be a pointer to SourceHook::ISourceHook -// It's used in various macros -#ifndef SH_GLOB_SHPTR -#define SH_GLOB_SHPTR g_SHPtr -#endif - -// Used to identify the current plugin -#ifndef SH_GLOB_PLUGPTR -#define SH_GLOB_PLUGPTR g_PLID -#endif - -#ifdef SH_DEBUG -# include -# include - -# define SH_ASSERT(x, info) \ - do { \ - if (!(x)) \ - { \ - printf("SOURCEHOOK DEBUG ASSERTION FAILED: %s:%u(%s): %s: ", __FILE__, __LINE__, __FUNCTION__, #x); \ - printf info; \ - putchar('\n'); \ - abort(); \ - } \ - } while(0) - -#else -# define SH_ASSERT(x, info) -#endif - -// System -#define SH_SYS_WIN32 1 -#define SH_SYS_LINUX 2 - -#ifdef _WIN32 -# define SH_SYS SH_SYS_WIN32 -#elif defined __linux__ -# define SH_SYS SH_SYS_LINUX -#else -# error Unsupported system -#endif - -// Compiler -#define SH_COMP_GCC 1 -#define SH_COMP_MSVC 2 - -#ifdef _MSC_VER -# define SH_COMP SH_COMP_MSVC -#elif defined __GNUC__ -# define SH_COMP SH_COMP_GCC -#else -# error Unsupported compiler -#endif - -#if SH_COMP==SH_COMP_MSVC -# define vsnprintf _vsnprintf -#endif - -#if SH_SYS != SH_SYS_WIN32 -# include -#endif - -#define SH_PTRSIZE sizeof(void*) - -#include "FastDelegate.h" -#include "sh_memfuncinfo.h" - -// Good old metamod! - -// Flags returned by a plugin's api function. -// NOTE: order is crucial, as greater/less comparisons are made. -enum META_RES -{ - MRES_IGNORED=0, // plugin didn't take any action - MRES_HANDLED, // plugin did something, but real function should still be called - MRES_OVERRIDE, // call real function, but use my return value - MRES_SUPERCEDE // skip real function; use my return value -}; - - -namespace SourceHook -{ - /** - * @brief Specifies the size (in bytes) for the internal buffer of vafmt(printf-like) function handlers - */ - const int STRBUF_LEN=4096; - - /** - * @brief An empty class. No inheritance used. Used for original-function-call hacks - */ - class EmptyClass - { - }; - - /** - * @brief Implicit cast. - */ - template - inline Out implicit_cast(In input) - { - return input; - } - - /** - * @brief A plugin typedef - * - * SourceHook doesn't really care what this is. As long as the ==, != and = operators work on it and every - * plugin has a unique identifier, everything is ok. - * It should also be possible to set it to 0. - */ - typedef int Plugin; - - struct ProtoInfo - { - ProtoInfo(int rtsz, int nop, const int *p) : beginningNull(0), retTypeSize(rtsz), numOfParams(nop), params(p) - { - } - int beginningNull; //!< To distinguish from old protos (which never begin with 0) - int retTypeSize; //!< 0 if void - int numOfParams; //!< number of parameters - const int *params; //!< params[0]=0 (or -1 for vararg), params[1]=size of first param, ... - }; - - /** - * @brief Specifies the actions for hook managers - */ - enum HookManagerAction - { - HA_GetInfo = 0, //!< Store info about the hook manager - HA_Register, //!< Save the IHookManagerInfo pointer for future reference - HA_Unregister //!< Clear the saved pointer - }; - - struct IHookManagerInfo; - - /** - * @brief Pointer to hook manager interface function - * - * A "hook manager" is a the only thing that knows the actual protoype of the function at compile time. - * - * @param ha What the hook manager should do - * @param hi A pointer to IHookManagerInfo - */ - typedef int (*HookManagerPubFunc)(HookManagerAction ha, IHookManagerInfo *hi); - - class ISHDelegate - { - public: - virtual void DeleteThis() = 0; // Ugly, I know - virtual bool IsEqual(ISHDelegate *other) = 0; - }; - - template class CSHDelegate : public ISHDelegate - { - T m_Deleg; - public: - CSHDelegate(T deleg) : m_Deleg(deleg) - { - } - - CSHDelegate(const CSHDelegate &other) : m_Deleg(other.m_Deleg) - { - } - - void DeleteThis() - { - delete this; - } - - bool IsEqual(ISHDelegate *other) - { - return static_cast* >(other)->GetDeleg() == GetDeleg(); - } - - T &GetDeleg() - { - return m_Deleg; - } - }; - - struct IHookList - { - struct IIter - { - virtual bool End() = 0; - virtual void Next() = 0; - virtual ISHDelegate *Handler() = 0; - virtual int ThisPtrOffs() = 0; - }; - virtual IIter *GetIter() = 0; - virtual void ReleaseIter(IIter *pIter) = 0; - }; - - struct IIface - { - virtual void *GetPtr() = 0; - virtual IHookList *GetPreHooks() = 0; - virtual IHookList *GetPostHooks() = 0; - }; - - struct IVfnPtr - { - virtual void *GetVfnPtr() = 0; - virtual void *GetOrigEntry() = 0; - - virtual IIface *FindIface(void *ptr) = 0; - }; - - struct IHookManagerInfo - { - virtual IVfnPtr *FindVfnPtr(void *vfnptr) = 0; - - virtual void SetInfo(int vtbloffs, int vtblidx, const char *proto) = 0; - virtual void SetHookfuncVfnptr(void *hookfunc_vfnptr) = 0; - - // Added 23.12.2005 (yup! I'm coding RIGHT BEFORE CHRISTMAS!) - // If the hookman doesn't set this, it defaults 0 - // SourceHook prefers hookmans with higher version numbers - virtual void SetVersion(int version) = 0; - }; - - class AutoHookIter - { - IHookList *m_pList; - IHookList::IIter *m_pIter; - public: - AutoHookIter(IHookList *pList) - : m_pList(pList), m_pIter(pList->GetIter()) - { - } - - ~AutoHookIter() - { - if (m_pList) - m_pList->ReleaseIter(m_pIter); - } - - bool End() - { - return m_pIter->End(); - } - - void Next() - { - m_pIter->Next(); - } - - ISHDelegate *Handler() - { - return m_pIter->Handler(); - } - - int ThisPtrOffs() - { - return m_pIter->ThisPtrOffs(); - } - - void SetToZero() - { - m_pList = 0; - } - }; - - template struct CallClass - { - virtual B *GetThisPtr() = 0; - virtual void *GetOrigFunc(int vtbloffs, int vtblidx) = 0; - }; - - typedef CallClass GenericCallClass; - typedef CallClass ManualCallClass; - - // 09.08.2008 (6 AM, I just woke up, the others are still sleeping so i finally can use this notebook !!) - // - Today is an important day. - // I'm adding support for functions which return references. - - // How it works: - // SH_SETUPCALLS doesn't use plain rettype to store the temporary return values (plugin ret, orig ret, - // override ret) anymore; instead, it uses SourceHook::ReferenceCarrier::type - // this is typedefed to the original rettype normally, but if the rettype is a reference, it's a special class - // which stores the reference as a pointer, and implements constructors, operator= and a conversion operator. - // special cases were needed for getoverrideret / getorigret; these are implemented through the - // SourceHook::MacroRefHelpers structs. - // Furthermore, SetOverrideRet had to be changed a bit; see SourceHook::OverrideFunctor somewhere down in this file. - template struct ReferenceCarrier - { - typedef T type; - }; - - template struct ReferenceCarrier - { - class type - { - T *m_StoredRef; - public: - type() : m_StoredRef(NULL) - { - } - type(T& ref) : m_StoredRef(&ref) - { - } - - T& operator= (T& ref) - { - m_StoredRef = &ref; - return ref; - } - - operator T& () const - { - return *m_StoredRef; - } - }; - }; - - /** - * @brief The main SourceHook interface - */ - class ISourceHook - { - public: - /** - * @brief Return interface version - */ - virtual int GetIfaceVersion() = 0; - - /** - * @brief Return implementation version - */ - virtual int GetImplVersion() = 0; - - /** - * @brief Add a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param ifacesize The size of the class iface points to - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool AddHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Removes a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool RemoveHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Checks whether a plugin has (a) hook manager(s) that is/are currently used by other plugins - * - * @param plug The unique identifier of the plugin in question - */ - virtual bool IsPluginInUse(Plugin plug) = 0; - - /** - * @brief Return a pointer to a callclass. Generate a new one if required. - * - * @param iface The interface pointer - * @param size Size of the class instance - */ - virtual GenericCallClass *GetCallClass(void *iface, size_t size) = 0; - - /** - * @brief Release a callclass - * - * @param ptr Pointer to the callclass - */ - virtual void ReleaseCallClass(GenericCallClass *ptr) = 0; - - virtual void SetRes(META_RES res) = 0; //!< Sets the meta result - virtual META_RES GetPrevRes() = 0; //!< Gets the meta result of the - //!< previously calledhandler - virtual META_RES GetStatus() = 0; //!< Gets the highest meta result - virtual const void *GetOrigRet() = 0; //!< Gets the original result. - //!< If not in post function, undefined - virtual const void *GetOverrideRet() = 0; //!< Gets the override result. - //!< If none is specified, NULL - virtual void *GetIfacePtr() = 0; //!< Gets the interface pointer - ////////////////////////////////////////////////////////////////////////// - // For hook managers - virtual void HookLoopBegin(IIface *pIface) = 0; //!< Should be called when a hook loop begins - virtual void HookLoopEnd() = 0; //!< Should be called when a hook loop exits - virtual void SetCurResPtr(META_RES *mres) = 0; //!< Sets pointer to the current meta result - virtual void SetPrevResPtr(META_RES *mres) = 0; //!< Sets pointer to previous meta result - virtual void SetStatusPtr(META_RES *mres) = 0; //!< Sets pointer to the status variable - virtual void SetIfacePtrPtr(void **pp) = 0; //!< Sets pointer to the interface this pointer - virtual void SetOrigRetPtr(const void *ptr) = 0; //!< Sets the original return pointer - virtual void SetOverrideRetPtr(void *ptr) = 0; //!< Sets the override result pointer - virtual bool ShouldContinue() = 0; //!< Returns false if the hook loop should exit - - /** - * @brief Remove a hook manager. Auto-removes all hooks attached to it from plugin plug. - * - * @param plug The owner of the hook manager - * @param pubFunc The hook manager's info function - */ - virtual void RemoveHookManager(Plugin plug, HookManagerPubFunc pubFunc) = 0; - - virtual void DoRecall() = 0; //!< Initiates a recall sequence - /* - HOW RECALLS WORK: - - The problem: - Users want the ability to change parameters of the called function - from inside their handler. - The solution: - 1) Mark as "recall" - 2) Recall the function - 3) => SH's hook func gets called: - 4) The first iterator points at the first hook the last hookfunc didn't execute yet - 5) does all iteration and returns normally - 6) The user's handler returns immediately - 7) The hook func returns immediately as well - - Also note that the recalled hookfunc starts with the status the recalling hookfunc - ended with. The last handler (doing the recall) is also able to specify its own - META_RES. - */ - - virtual void *GetOverrideRetPtr() = 0; //!< Returns the pointer set by SetOverrideRetPtr - - /** - * @brief Set up the hook loop. Equivalent to calling: - * SetStatusPtr, SetPrevResPtr, SetCurResPtr, SetIfacePtrPtr, SetOrigRetPtr, Get/SetOverrideRetPtr - * - * @param statusPtr pointer to status variable - * @param prevResPtr pointer to previous result variable - * @param curResPtr pointer to current result variable - * @param ifacePtrPtr pointer to interface this pointer variable - * @param origRetPr pointer to original return value variable. NULL for void funcs - * @param overrideRetPtr pointer to override return value variable. NULL for void funcs - * - * @return Override Return Pointer the hookfunc should use (may differ from overrideRetPtr - * when the hook func is being called as part of a recall - */ - virtual void *SetupHookLoop(META_RES *statusPtr, META_RES *prevResPtr, META_RES *curResPtr, - void **ifacePtrPtr, const void *origRetPtr, void *overrideRetPtr) = 0; - - //!< - }; - - // For META_RESULT_ORIG_RET and META_RESULT_OVERRIDE_RET: - // These have to be able to return references. If T is a reference, the pointers returned - // from the SH_GLOB_SHPTR are pointers to instances of ReferenceCarrier::type. - template struct MacroRefHelpers - { - inline static const T* GetOrigRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOrigRet()); - } - inline static const T* GetOverrideRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOverrideRet()); - } - }; - - template struct MacroRefHelpers - { - inline static T* GetOrigRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOrigRet()); - return &ref; - } - inline static T* GetOverrideRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOverrideRet()); - return &ref; - } - }; -} - -/************************************************************************/ -/* High level interface */ -/************************************************************************/ -#define META_RESULT_STATUS SH_GLOB_SHPTR->GetStatus() -#define META_RESULT_PREVIOUS SH_GLOB_SHPTR->GetPrevRes() -#define META_RESULT_ORIG_RET(type) *SourceHook::MacroRefHelpers::GetOrigRet(SH_GLOB_SHPTR) -#define META_RESULT_OVERRIDE_RET(type) *SourceHook::MacroRefHelpers::GetOverrideRet(SH_GLOB_SHPTR) -#define META_IFACEPTR(type) reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()) - -#define SET_META_RESULT(result) SH_GLOB_SHPTR->SetRes(result) -#define RETURN_META(result) do { SET_META_RESULT(result); return; } while(0) -#define RETURN_META_VALUE(result, value) do { SET_META_RESULT(result); return (value); } while(0) - -// If a hook on a function which returns a reference does not want to specify a return value, -// it can use this macro. -// ONLY USE THIS WITH MRES_IGNORED AND MRES_HANDLED !!! -#define RETURN_META_NOREF(result, rettype) do { SET_META_RESULT(result); return reinterpret_cast(*SH_GLOB_SHPTR); } while(0) - -// only call these from the hook handlers directly! -// :TODO: enforce it ? - -// Why take a memfuncptr instead of iface and func when we have to deduce the iface anyway now? -// Well, without it, there'd be no way to specify which overloaded version we want in _VALUE - -// SourceHook::SetOverrideRet is defined later. -#define RETURN_META_NEWPARAMS(result, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_NEWPARAMS(result, value, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* meh, set the override result here because we don't get a chance to return */ \ - /* before continuing the hook loop through the recall */ \ - SourceHook::SetOverrideResult(memfuncptr)(SH_GLOB_SHPTR, value); \ - } \ - RETURN_META_VALUE(MRES_SUPERCEDE, \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams); \ - } while (0) - -// :TODO: thisptroffs in MNEWPARAMS ?? - -#if SH_COMP == SH_COMP_MSVC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - void *addr; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; - -#elif SH_COMP == SH_COMP_GCC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.s.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; \ - u.s.adjustor = 0; - -#endif - -#define RETURN_META_MNEWPARAMS(result, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - (thisptr->*(u.mfp)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_MNEWPARAMS(result, value, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* see RETURN_META_VALUE_NEWPARAMS */ \ - SourceHook::SetOverrideResult(SH_GLOB_SHPTR, value); \ - } \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - RETURN_META_VALUE(MRES_SUPERCEDE, (thisptr->*(u.mfp)) newparams); \ - } while (0) - -/** -* @brief Get/generate callclass for an interface pointer -* -* @param ifaceptr The interface pointer -*/ -template -inline SourceHook::CallClass *SH_GET_CALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), sizeof(ifacetype))); -} - -template -inline SourceHook::CallClass *SH_GET_MCALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr, int ifacesize) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), ifacesize)); -} - -template -inline void SH_RELEASE_CALLCLASS_R(SourceHook::ISourceHook *shptr, SourceHook::CallClass *ptr) -{ - shptr->ReleaseCallClass(reinterpret_cast(ptr)); -} - -#define SH_MANUALHOOK_RECONFIGURE(hookname, pvtblindex, pvtbloffs, pthisptroffs) \ - do { \ - SH_GLOB_SHPTR->RemoveHookManager(SH_GLOB_PLUGPTR, SH_MFHCls(hookname)::HookManPubFunc); \ - SH_MFHCls(hookname)::ms_MFI.thisptroffs = pthisptroffs; \ - SH_MFHCls(hookname)::ms_MFI.vtblindex = pvtblindex; \ - SH_MFHCls(hookname)::ms_MFI.vtbloffs = pvtbloffs; \ - } while (0) - -#define SH_GET_CALLCLASS(ptr) SH_GET_CALLCLASS_R(SH_GLOB_SHPTR, ptr) -#define SH_GET_MCALLCLASS(ptr, size) SH_GET_MCALLCLASS_R(SH_GLOB_SHPTR, reinterpret_cast(ptr), size) -#define SH_RELEASE_CALLCLASS(ptr) SH_RELEASE_CALLCLASS_R(SH_GLOB_SHPTR, ptr) - -#define SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHAdd##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_ADD_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHRemove##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_REMOVE_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_ADD_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMAdd##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_ADD_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMRemove##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_REMOVE_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_NOATTRIB - - - - -#if SH_COMP == SH_COMP_MSVC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; -#elif SH_COMP == SH_COMP_GCC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; \ - reinterpret_cast(&mfp)[1] = 0; -#else -# error Not supported yet. -#endif - -////////////////////////////////////////////////////////////////////////// -#define SH_FHCls(ift, iff, ov) __SourceHook_FHCls_##ift##iff##ov -#define SH_MFHCls(hookname) __SourceHook_MFHCls_##hookname - -#define SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) \ - SH_FHCls(ifacetype,ifacefunc,overload)() \ - { \ - GetFuncInfo(funcptr, ms_MFI); \ - } \ - \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - GetFuncInfo(funcptr, ms_MFI); \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_FHCls(ifacetype,ifacefunc,overload)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -// It has to be possible to use the macros in namespaces -// -> So we need to access and extend the global SourceHook namespace -// We use a namespace alias for this -#define SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, funcptr) \ - struct SH_FHCls(ifacetype,ifacefunc,overload) \ - { \ - static SH_FHCls(ifacetype,ifacefunc,overload) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) - -#define SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, funcptr) \ - }; \ - SH_FHCls(ifacetype,ifacefunc,overload) SH_FHCls(ifacetype,ifacefunc,overload)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_FHCls(ifacetype,ifacefunc,overload)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_FHCls(ifacetype,ifacefunc,overload)::ms_HI; \ - bool __SourceHook_FHAdd##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0 || !mfi.isVirtual) \ - return false; /* No non-virtual functions / virtual inheritance supported */ \ - \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, \ - new CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHRemove##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0) \ - return false; /* No virtual inheritance supported */ \ - \ - CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, &tmp, post); \ - } \ - -#define SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - struct SH_MFHCls(hookname) \ - { \ - static SH_MFHCls(hookname) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - \ - SH_MFHCls(hookname)() \ - { \ - ms_MFI.isVirtual = true; \ - ms_MFI.thisptroffs = pthisptroffs; \ - ms_MFI.vtblindex = pvtblidx; \ - ms_MFI.vtbloffs = pvtbloffs; \ - } \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - /* we don't set ms_MFI here because manual hookmans can be reconfigured */ \ - /* :FIXME: possible problem: someone adding a hook from a constructor of a global entity */ \ - /* which is construced before SH_MFHCls(hookname)() gets called? */ \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_MFHCls(hookname)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -#define SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - }; \ - SH_MFHCls(hookname) SH_MFHCls(hookname)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_MFHCls(hookname)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_MFHCls(hookname)::ms_HI; \ - bool __SourceHook_FHMAdd##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, \ - new ::SourceHook::CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHMRemove##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - ::SourceHook::CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, &tmp, post); \ - } \ - - -#define SH_SETUPCALLS(rettype, paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - return (reinterpret_cast(this)->*mfp)params; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - typedef ReferenceCarrier::type my_rettype; \ - my_rettype orig_ret; \ - my_rettype override_ret; \ - my_rettype plugin_ret; \ - void* ifptr; \ - my_rettype *pOverrideRet = reinterpret_cast(SH_GLOB_SHPTR->SetupHookLoop( \ - &status, &prev_res, &cur_res, &ifptr, &orig_ret, &override_ret)); - -#define SH_CALL_HOOKS(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - plugin_ret = reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (cur_res >= MRES_OVERRIDE) \ - *pOverrideRet = plugin_ret; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG(rettype, paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - orig_ret = (reinterpret_cast(this)->*mfp)params; \ - } \ - else \ - orig_ret = override_ret; \ - -#define SH_RETURN() \ - SH_GLOB_SHPTR->HookLoopEnd(); \ - return status >= MRES_OVERRIDE ? *pOverrideRet : orig_ret; - -#define SH_HANDLEFUNC(paramtypes, params, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params) \ - SH_CALL_HOOKS(pre, params) \ - SH_CALL_ORIG(rettype, paramtypes, params) \ - SH_CALL_HOOKS(post, params) \ - SH_RETURN() - -////////////////////////////////////////////////////////////////////////// -#define SH_SETUPCALLS_void(paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - return; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - void* ifptr; \ - SH_GLOB_SHPTR->SetupHookLoop(&status, &prev_res, &cur_res, &ifptr, NULL, NULL); \ - -#define SH_CALL_HOOKS_void(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG_void(paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - } - -#define SH_RETURN_void() \ - SH_GLOB_SHPTR->HookLoopEnd(); - -#define SH_HANDLEFUNC_void(paramtypes, params) \ - SH_SETUPCALLS_void(paramtypes, params) \ - SH_CALL_HOOKS_void(pre, params) \ - SH_CALL_ORIG_void(paramtypes, params) \ - SH_CALL_HOOKS_void(post, params) \ - SH_RETURN_void() - - -// Special vafmt handlers -// :TODO: what -#define SH_HANDLEFUNC_vafmt(paramtypes, params_orig, params_plug, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(pre, params_plug) \ - SH_CALL_ORIG(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(post, params_plug) \ - SH_RETURN() - -#define SH_HANDLEFUNC_void_vafmt(paramtypes, params_orig, params_plug) \ - SH_SETUPCALLS_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(pre, params_plug) \ - SH_CALL_ORIG_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(post, params_plug) \ - SH_RETURN_void() - -////////////////////////////////////////////////////////////////////////// - -// :FIXME: -// sizeof on references returns the size of the datatype, NOT the pointer size or something -// -> one should probably flag references in __SourceHook_ParamSizes_* ! -// or simply assume that their size is sizeof(void*)=SH_PTRSIZE... could be doable through a simple template - - -// ********* Support for 0 arguments ********* -#define SH_DECL_HOOK0(ifacetype, ifacefunc, attr, overload, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate0 FD; \ - virtual rettype Func() \ - { SH_HANDLEFUNC((), (), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_void(ifacetype, ifacefunc, attr, overload) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate0<> FD; \ - virtual void Func() \ - { SH_HANDLEFUNC_void((), ()); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_vafmt(ifacetype, ifacefunc, attr, overload, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((...), ("%s", buf), (buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_void_vafmt(ifacetype, ifacefunc, attr, overload) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((...), ("%s", buf), (buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK0(hookname, vtblidx, vtbloffs, thisptroffs, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate0 FD; \ - virtual rettype Func() \ - { SH_HANDLEFUNC((), (), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK0_void(hookname, vtblidx, vtbloffs, thisptroffs) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate0<> FD; \ - virtual void Func() \ - { SH_HANDLEFUNC_void((), ()); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 0, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 1 arguments ********* -#define SH_DECL_HOOK1(ifacetype, ifacefunc, attr, overload, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(param1 p1) \ - { SH_HANDLEFUNC((param1), (p1), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_void(ifacetype, ifacefunc, attr, overload, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(param1 p1) \ - { SH_HANDLEFUNC_void((param1), (p1)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, ...), (p1, "%s", buf), (p1, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_void_vafmt(ifacetype, ifacefunc, attr, overload, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, ...), (p1, "%s", buf), (p1, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK1(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(param1 p1) \ - { SH_HANDLEFUNC((param1), (p1), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK1_void(hookname, vtblidx, vtbloffs, thisptroffs, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(param1 p1) \ - { SH_HANDLEFUNC_void((param1), (p1)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 1, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 2 arguments ********* -#define SH_DECL_HOOK2(ifacetype, ifacefunc, attr, overload, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC((param1, param2), (p1, p2), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_void(ifacetype, ifacefunc, attr, overload, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC_void((param1, param2), (p1, p2)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, ...), (p1, p2, "%s", buf), (p1, p2, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, ...), (p1, p2, "%s", buf), (p1, p2, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK2(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC((param1, param2), (p1, p2), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK2_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC_void((param1, param2), (p1, p2)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 2, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 3 arguments ********* -#define SH_DECL_HOOK3(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC((param1, param2, param3), (p1, p2, p3), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC_void((param1, param2, param3), (p1, p2, p3)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, ...), (p1, p2, p3, "%s", buf), (p1, p2, p3, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, ...), (p1, p2, p3, "%s", buf), (p1, p2, p3, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK3(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC((param1, param2, param3), (p1, p2, p3), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK3_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC_void((param1, param2, param3), (p1, p2, p3)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 3, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 4 arguments ********* -#define SH_DECL_HOOK4(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC((param1, param2, param3, param4), (p1, p2, p3, p4), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4), (p1, p2, p3, p4)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, ...), (p1, p2, p3, p4, "%s", buf), (p1, p2, p3, p4, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, ...), (p1, p2, p3, p4, "%s", buf), (p1, p2, p3, p4, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK4(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC((param1, param2, param3, param4), (p1, p2, p3, p4), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK4_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4), (p1, p2, p3, p4)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 4, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 5 arguments ********* -#define SH_DECL_HOOK5(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, ...), (p1, p2, p3, p4, p5, "%s", buf), (p1, p2, p3, p4, p5, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, ...), (p1, p2, p3, p4, p5, "%s", buf), (p1, p2, p3, p4, p5, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK5(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK5_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 5, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 6 arguments ********* -#define SH_DECL_HOOK6(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, ...), (p1, p2, p3, p4, p5, p6, "%s", buf), (p1, p2, p3, p4, p5, p6, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, ...), (p1, p2, p3, p4, p5, p6, "%s", buf), (p1, p2, p3, p4, p5, p6, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK6(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK6_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 6, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 7 arguments ********* -#define SH_DECL_HOOK7(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, ...), (p1, p2, p3, p4, p5, p6, p7, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, ...), (p1, p2, p3, p4, p5, p6, p7, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK7(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK7_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 7, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 8 arguments ********* -#define SH_DECL_HOOK8(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, ...), (p1, p2, p3, p4, p5, p6, p7, p8, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, ...), (p1, p2, p3, p4, p5, p6, p7, p8, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK8(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK8_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 8, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 9 arguments ********* -#define SH_DECL_HOOK9(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK9(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK9_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 9, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 10 arguments ********* -#define SH_DECL_HOOK10(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK10(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK10_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 10, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 11 arguments ********* -#define SH_DECL_HOOK11(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK11(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK11_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 11, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 12 arguments ********* -#define SH_DECL_HOOK12(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK12(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK12_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 12, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 13 arguments ********* -#define SH_DECL_HOOK13(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK13(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK13_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 13, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 14 arguments ********* -#define SH_DECL_HOOK14(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK14(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK14_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 14, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 15 arguments ********* -#define SH_DECL_HOOK15(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK15(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK15_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 15, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 16 arguments ********* -#define SH_DECL_HOOK16(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK16(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK16_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 16, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 17 arguments ********* -#define SH_DECL_HOOK17(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK17(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK17_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 17, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 18 arguments ********* -#define SH_DECL_HOOK18(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK18(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK18_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 18, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 19 arguments ********* -#define SH_DECL_HOOK19(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK19(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK19_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 19, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 20 arguments ********* -#define SH_DECL_HOOK20(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate21 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate21 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK20(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK20_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 20, __SourceHook_ParamSizesM_##hookname); \ - - - - -////////////////////////////////////////////////////////////////////////// -// SH_CALL - -#if SH_COMP == SH_COMP_MSVC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = origfunc; \ - \ - void *adjustedthisptr = reinterpret_cast(reinterpret_cast(m_CC->GetThisPtr()) + mfi.thisptroffs); \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *adjustedthisptr = reinterpret_cast(m_CC->GetThisPtr()) + m_ThisPtrOffs; \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.addr) \ - u.addr = (*reinterpret_cast(adjustedthisptr + m_VtblOffs))[m_VtblIdx]; \ - \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -#elif SH_COMP == SH_COMP_GCC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = origfunc; \ - u.s.adjustor = mfi.thisptroffs; \ - \ - return (reinterpret_cast(m_CC->GetThisPtr())->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *thisptr = reinterpret_cast(m_CC->GetThisPtr()); \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.s.addr) \ - u.s.addr = (*reinterpret_cast(thisptr + m_ThisPtrOffs + m_VtblOffs))[m_VtblIdx]; \ - \ - u.s.adjustor = m_ThisPtrOffs; \ - return (reinterpret_cast(thisptr)->*u.mfpnew)call; \ -} - -#endif - -namespace SourceHook -{ - - // Support for 0 arguments - template class ExecutableClass0 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass0(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()() const - SH_MAKE_EXECUTABLECLASS_OB((), ()) - - - template RetType operator()(Param1 p1) const - SH_MAKE_EXECUTABLECLASS_OB((p1), (Param1)) - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass0 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass0(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()() const - SH_MAKE_MEXECUTABLECLASS_OB((), ()) - - - template RetType operator()(Param1 p1) const - SH_MAKE_MEXECUTABLECLASS_OB((p1), (Param1)) - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 1 arguments - template class ExecutableClass1 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass1(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1) const - SH_MAKE_EXECUTABLECLASS_OB((p1), (Param1)) - - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass1 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass1(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1) const - SH_MAKE_MEXECUTABLECLASS_OB((p1), (Param1)) - - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 2 arguments - template class ExecutableClass2 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass2(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass2 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass2(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 3 arguments - template class ExecutableClass3 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass3(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass3 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass3(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 4 arguments - template class ExecutableClass4 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass4(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass4 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass4(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 5 arguments - template class ExecutableClass5 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass5(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass5 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass5(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 6 arguments - template class ExecutableClass6 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass6(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass6 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass6(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 7 arguments - template class ExecutableClass7 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass7(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass7 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass7(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 8 arguments - template class ExecutableClass8 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass8(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass8 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass8(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 9 arguments - template class ExecutableClass9 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass9(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass9 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass9(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 10 arguments - template class ExecutableClass10 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass10(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass10 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass10(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 11 arguments - template class ExecutableClass11 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass11(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass11 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass11(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 12 arguments - template class ExecutableClass12 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass12(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass12 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass12(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 13 arguments - template class ExecutableClass13 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass13(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass13 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass13(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 14 arguments - template class ExecutableClass14 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass14(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass14 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass14(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 15 arguments - template class ExecutableClass15 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass15(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass15 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass15(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 16 arguments - template class ExecutableClass16 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass16(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass16 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass16(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 17 arguments - template class ExecutableClass17 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass17(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass17 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass17(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 18 arguments - template class ExecutableClass18 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass18(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass18 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass18(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 19 arguments - template class ExecutableClass19 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass19(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass19 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass19(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 20 arguments - template class ExecutableClass20 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass20(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - - }; - - template class MExecutableClass20 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass20(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - - }; - - -} - -// SH_CALL needs to deduce the return type -> it uses templates and function overloading -// That's why SH_CALL takes two parameters: "mfp2" of type RetType(X::*mfp)(params), and "mfp" of type MFP -// The only purpose of the mfp2 parameter is to extract the return type - - -// Support for 0 arguments -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)()) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)()const) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::MExecutableClass0 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass0(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 1 arguments -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1)) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1)const) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::MExecutableClass1 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass1(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 2 arguments -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2)) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2)const) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::MExecutableClass2 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass2(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 3 arguments -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3)) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3)const) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::MExecutableClass3 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass3(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 4 arguments -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4)) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4)const) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::MExecutableClass4 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass4(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 5 arguments -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5)) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5)const) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::MExecutableClass5 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass5(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 6 arguments -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6)) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6)const) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::MExecutableClass6 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass6(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 7 arguments -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)const) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::MExecutableClass7 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass7(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 8 arguments -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)const) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::MExecutableClass8 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass8(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 9 arguments -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)const) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::MExecutableClass9 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass9(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 10 arguments -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)const) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::MExecutableClass10 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass10(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 11 arguments -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)const) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::MExecutableClass11 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass11(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 12 arguments -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)const) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::MExecutableClass12 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass12(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 13 arguments -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)const) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::MExecutableClass13 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass13(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 14 arguments -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)const) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::MExecutableClass14 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass14(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 15 arguments -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)const) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::MExecutableClass15 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass15(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 16 arguments -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)const) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::MExecutableClass16 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass16(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 17 arguments -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)const) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::MExecutableClass17 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass17(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 18 arguments -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)const) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::MExecutableClass18 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass18(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 19 arguments -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)const) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::MExecutableClass19 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass19(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 20 arguments -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)const) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::MExecutableClass20 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass20(ptr, vtbloffs, vtblidx, thisptroffs); -} - - -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 -// GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it - - -// Support for 0 arguments -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(...)) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(...)const) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - - -// Support for 1 arguments -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, ...)) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, ...)const) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - - -// Support for 2 arguments -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, ...)) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, ...)const) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - - -// Support for 3 arguments -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, ...)) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, ...)const) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - - -// Support for 4 arguments -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, ...)) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, ...)const) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - - -// Support for 5 arguments -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...)) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...)const) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - - -// Support for 6 arguments -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...)) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...)const) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - - -// Support for 7 arguments -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...)) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...)const) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - - -// Support for 8 arguments -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...)) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...)const) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - - -// Support for 9 arguments -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...)) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...)const) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - - -// Support for 10 arguments -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...)) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...)const) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - - -// Support for 11 arguments -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...)) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...)const) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - - -// Support for 12 arguments -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...)) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...)const) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - - -// Support for 13 arguments -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...)) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...)const) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - - -// Support for 14 arguments -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...)) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...)const) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - - -// Support for 15 arguments -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...)) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...)const) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - - -// Support for 16 arguments -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...)) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...)const) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - - -// Support for 17 arguments -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...)) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...)const) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - - -// Support for 18 arguments -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...)) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...)const) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - - -// Support for 19 arguments -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...)) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...)const) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - - -// Support for 20 arguments -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...)) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...)const) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - - - -#endif - -#define SH_CALL(ptr, mfp) SH_CALL2((ptr), (mfp), (mfp)) -#define SH_MCALL(ptr, mhookname) SH_MCALL2((ptr), SH_MFHCls(mhookname)::ECMFP(), SH_MFHCls(mhookname)::ms_MFI.vtblindex, \ - SH_MFHCls(mhookname)::ms_MFI.vtbloffs, SH_MFHCls(mhookname)::ms_MFI.thisptroffs) - -#undef SH_MAKE_EXECUTABLECLASS_OB - -////////////////////////////////////////////////////////////////////////// -// SetOverrideRet and RecallGetIface for recalls -// These take a ISourceHook pointer instead of using SH_GLOB_SHPTR directly -// The reason is that the user may want to redefine SH_GLOB_SHPTR - then the macros -// (META_RETURN_VALUE_NEWPARAMS) should obey the new pointer. - -namespace SourceHook -{ - template - void SetOverrideResult(ISourceHook *shptr, const RetType res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - - // SetOverrideResult used to be implemented like this: - // SetOverrideResult(shptr, memfuncptr, return); - // normally the compiler can deduce the return type from memfuncptr, but (at least msvc8) failed when it was a reference - // (it thought it was ambigous - the ref and non-ref type) - // so now SetOverrideResult(memfuncptr) deduces the ret type, and returns a functor which does the work - // new syntax: SetOverrideResult(memfuncptr)(shptr, return) - // This also allows us to create a special version for references which respects ReferenceCarrier. - - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - }; - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T &res) - { - // overrideretptr points to ReferenceCarrier - *reinterpret_cast::type *>(shptr->GetOverrideRetPtr()) = res; - } - }; - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)()) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)()) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - -} - -#endif - // The pope is dead. -> :( diff --git a/sourcehook/generate/sourcehook.hxx b/sourcehook/generate/sourcehook.hxx deleted file mode 100755 index 1431c12..0000000 --- a/sourcehook/generate/sourcehook.hxx +++ /dev/null @@ -1,1370 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** -* @file sourcehook.h -* @brief Contains the public SourceHook API -*/ - -#ifndef __SOURCEHOOK_H__ -#define __SOURCEHOOK_H__ - -// Interface revisions: -// 1 - Initial revision -// 2 - Changed to virtual functions for iterators and all queries -// 3 - Added "hook loop status variable" -// 4 - Reentrant -#define SH_IFACE_VERSION 4 -#define SH_IMPL_VERSION 3 - -// Hookman version: -// 1 - Support for recalls, performance optimisations -#define SH_HOOKMAN_VERSION 1 - -// The value of SH_GLOB_SHPTR has to be a pointer to SourceHook::ISourceHook -// It's used in various macros -#ifndef SH_GLOB_SHPTR -#define SH_GLOB_SHPTR g_SHPtr -#endif - -// Used to identify the current plugin -#ifndef SH_GLOB_PLUGPTR -#define SH_GLOB_PLUGPTR g_PLID -#endif - -#ifdef SH_DEBUG -# include -# include - -# define SH_ASSERT(x, info) \ - do { \ - if (!(x)) \ - { \ - printf("SOURCEHOOK DEBUG ASSERTION FAILED: %s:%u(%s): %s: ", __FILE__, __LINE__, __FUNCTION__, #x); \ - printf info; \ - putchar('\n'); \ - abort(); \ - } \ - } while(0) - -#else -# define SH_ASSERT(x, info) -#endif - -// System -#define SH_SYS_WIN32 1 -#define SH_SYS_LINUX 2 - -#ifdef _WIN32 -# define SH_SYS SH_SYS_WIN32 -#elif defined __linux__ -# define SH_SYS SH_SYS_LINUX -#else -# error Unsupported system -#endif - -// Compiler -#define SH_COMP_GCC 1 -#define SH_COMP_MSVC 2 - -#ifdef _MSC_VER -# define SH_COMP SH_COMP_MSVC -#elif defined __GNUC__ -# define SH_COMP SH_COMP_GCC -#else -# error Unsupported compiler -#endif - -#if SH_COMP==SH_COMP_MSVC -# define vsnprintf _vsnprintf -#endif - -#if SH_SYS != SH_SYS_WIN32 -# include -#endif - -#define SH_PTRSIZE sizeof(void*) - -#include "FastDelegate.h" -#include "sh_memfuncinfo.h" - -// Good old metamod! - -// Flags returned by a plugin's api function. -// NOTE: order is crucial, as greater/less comparisons are made. -enum META_RES -{ - MRES_IGNORED=0, // plugin didn't take any action - MRES_HANDLED, // plugin did something, but real function should still be called - MRES_OVERRIDE, // call real function, but use my return value - MRES_SUPERCEDE // skip real function; use my return value -}; - - -namespace SourceHook -{ - /** - * @brief Specifies the size (in bytes) for the internal buffer of vafmt(printf-like) function handlers - */ - const int STRBUF_LEN=4096; - - /** - * @brief An empty class. No inheritance used. Used for original-function-call hacks - */ - class EmptyClass - { - }; - - /** - * @brief Implicit cast. - */ - template - inline Out implicit_cast(In input) - { - return input; - } - - /** - * @brief A plugin typedef - * - * SourceHook doesn't really care what this is. As long as the ==, != and = operators work on it and every - * plugin has a unique identifier, everything is ok. - * It should also be possible to set it to 0. - */ - typedef int Plugin; - - struct ProtoInfo - { - ProtoInfo(int rtsz, int nop, const int *p) : beginningNull(0), retTypeSize(rtsz), numOfParams(nop), params(p) - { - } - int beginningNull; //!< To distinguish from old protos (which never begin with 0) - int retTypeSize; //!< 0 if void - int numOfParams; //!< number of parameters - const int *params; //!< params[0]=0 (or -1 for vararg), params[1]=size of first param, ... - }; - - /** - * @brief Specifies the actions for hook managers - */ - enum HookManagerAction - { - HA_GetInfo = 0, //!< Store info about the hook manager - HA_Register, //!< Save the IHookManagerInfo pointer for future reference - HA_Unregister //!< Clear the saved pointer - }; - - struct IHookManagerInfo; - - /** - * @brief Pointer to hook manager interface function - * - * A "hook manager" is a the only thing that knows the actual protoype of the function at compile time. - * - * @param ha What the hook manager should do - * @param hi A pointer to IHookManagerInfo - */ - typedef int (*HookManagerPubFunc)(HookManagerAction ha, IHookManagerInfo *hi); - - class ISHDelegate - { - public: - virtual void DeleteThis() = 0; // Ugly, I know - virtual bool IsEqual(ISHDelegate *other) = 0; - }; - - template class CSHDelegate : public ISHDelegate - { - T m_Deleg; - public: - CSHDelegate(T deleg) : m_Deleg(deleg) - { - } - - CSHDelegate(const CSHDelegate &other) : m_Deleg(other.m_Deleg) - { - } - - void DeleteThis() - { - delete this; - } - - bool IsEqual(ISHDelegate *other) - { - return static_cast* >(other)->GetDeleg() == GetDeleg(); - } - - T &GetDeleg() - { - return m_Deleg; - } - }; - - struct IHookList - { - struct IIter - { - virtual bool End() = 0; - virtual void Next() = 0; - virtual ISHDelegate *Handler() = 0; - virtual int ThisPtrOffs() = 0; - }; - virtual IIter *GetIter() = 0; - virtual void ReleaseIter(IIter *pIter) = 0; - }; - - struct IIface - { - virtual void *GetPtr() = 0; - virtual IHookList *GetPreHooks() = 0; - virtual IHookList *GetPostHooks() = 0; - }; - - struct IVfnPtr - { - virtual void *GetVfnPtr() = 0; - virtual void *GetOrigEntry() = 0; - - virtual IIface *FindIface(void *ptr) = 0; - }; - - struct IHookManagerInfo - { - virtual IVfnPtr *FindVfnPtr(void *vfnptr) = 0; - - virtual void SetInfo(int vtbloffs, int vtblidx, const char *proto) = 0; - virtual void SetHookfuncVfnptr(void *hookfunc_vfnptr) = 0; - - // Added 23.12.2005 (yup! I'm coding RIGHT BEFORE CHRISTMAS!) - // If the hookman doesn't set this, it defaults 0 - // SourceHook prefers hookmans with higher version numbers - virtual void SetVersion(int version) = 0; - }; - - class AutoHookIter - { - IHookList *m_pList; - IHookList::IIter *m_pIter; - public: - AutoHookIter(IHookList *pList) - : m_pList(pList), m_pIter(pList->GetIter()) - { - } - - ~AutoHookIter() - { - if (m_pList) - m_pList->ReleaseIter(m_pIter); - } - - bool End() - { - return m_pIter->End(); - } - - void Next() - { - m_pIter->Next(); - } - - ISHDelegate *Handler() - { - return m_pIter->Handler(); - } - - int ThisPtrOffs() - { - return m_pIter->ThisPtrOffs(); - } - - void SetToZero() - { - m_pList = 0; - } - }; - - template struct CallClass - { - virtual B *GetThisPtr() = 0; - virtual void *GetOrigFunc(int vtbloffs, int vtblidx) = 0; - }; - - typedef CallClass GenericCallClass; - typedef CallClass ManualCallClass; - - // 09.08.2008 (6 AM, I just woke up, the others are still sleeping so i finally can use this notebook !!) - // - Today is an important day. - // I'm adding support for functions which return references. - - // How it works: - // SH_SETUPCALLS doesn't use plain rettype to store the temporary return values (plugin ret, orig ret, - // override ret) anymore; instead, it uses SourceHook::ReferenceCarrier::type - // this is typedefed to the original rettype normally, but if the rettype is a reference, it's a special class - // which stores the reference as a pointer, and implements constructors, operator= and a conversion operator. - // special cases were needed for getoverrideret / getorigret; these are implemented through the - // SourceHook::MacroRefHelpers structs. - // Furthermore, SetOverrideRet had to be changed a bit; see SourceHook::OverrideFunctor somewhere down in this file. - template struct ReferenceCarrier - { - typedef T type; - }; - - template struct ReferenceCarrier - { - class type - { - T *m_StoredRef; - public: - type() : m_StoredRef(NULL) - { - } - type(T& ref) : m_StoredRef(&ref) - { - } - - T& operator= (T& ref) - { - m_StoredRef = &ref; - return ref; - } - - operator T& () const - { - return *m_StoredRef; - } - }; - }; - - /** - * @brief The main SourceHook interface - */ - class ISourceHook - { - public: - /** - * @brief Return interface version - */ - virtual int GetIfaceVersion() = 0; - - /** - * @brief Return implementation version - */ - virtual int GetImplVersion() = 0; - - /** - * @brief Add a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param ifacesize The size of the class iface points to - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool AddHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Removes a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool RemoveHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Checks whether a plugin has (a) hook manager(s) that is/are currently used by other plugins - * - * @param plug The unique identifier of the plugin in question - */ - virtual bool IsPluginInUse(Plugin plug) = 0; - - /** - * @brief Return a pointer to a callclass. Generate a new one if required. - * - * @param iface The interface pointer - * @param size Size of the class instance - */ - virtual GenericCallClass *GetCallClass(void *iface, size_t size) = 0; - - /** - * @brief Release a callclass - * - * @param ptr Pointer to the callclass - */ - virtual void ReleaseCallClass(GenericCallClass *ptr) = 0; - - virtual void SetRes(META_RES res) = 0; //!< Sets the meta result - virtual META_RES GetPrevRes() = 0; //!< Gets the meta result of the - //!< previously calledhandler - virtual META_RES GetStatus() = 0; //!< Gets the highest meta result - virtual const void *GetOrigRet() = 0; //!< Gets the original result. - //!< If not in post function, undefined - virtual const void *GetOverrideRet() = 0; //!< Gets the override result. - //!< If none is specified, NULL - virtual void *GetIfacePtr() = 0; //!< Gets the interface pointer - ////////////////////////////////////////////////////////////////////////// - // For hook managers - virtual void HookLoopBegin(IIface *pIface) = 0; //!< Should be called when a hook loop begins - virtual void HookLoopEnd() = 0; //!< Should be called when a hook loop exits - virtual void SetCurResPtr(META_RES *mres) = 0; //!< Sets pointer to the current meta result - virtual void SetPrevResPtr(META_RES *mres) = 0; //!< Sets pointer to previous meta result - virtual void SetStatusPtr(META_RES *mres) = 0; //!< Sets pointer to the status variable - virtual void SetIfacePtrPtr(void **pp) = 0; //!< Sets pointer to the interface this pointer - virtual void SetOrigRetPtr(const void *ptr) = 0; //!< Sets the original return pointer - virtual void SetOverrideRetPtr(void *ptr) = 0; //!< Sets the override result pointer - virtual bool ShouldContinue() = 0; //!< Returns false if the hook loop should exit - - /** - * @brief Remove a hook manager. Auto-removes all hooks attached to it from plugin plug. - * - * @param plug The owner of the hook manager - * @param pubFunc The hook manager's info function - */ - virtual void RemoveHookManager(Plugin plug, HookManagerPubFunc pubFunc) = 0; - - virtual void DoRecall() = 0; //!< Initiates a recall sequence - /* - HOW RECALLS WORK: - - The problem: - Users want the ability to change parameters of the called function - from inside their handler. - The solution: - 1) Mark as "recall" - 2) Recall the function - 3) => SH's hook func gets called: - 4) The first iterator points at the first hook the last hookfunc didn't execute yet - 5) does all iteration and returns normally - 6) The user's handler returns immediately - 7) The hook func returns immediately as well - - Also note that the recalled hookfunc starts with the status the recalling hookfunc - ended with. The last handler (doing the recall) is also able to specify its own - META_RES. - */ - - virtual void *GetOverrideRetPtr() = 0; //!< Returns the pointer set by SetOverrideRetPtr - - /** - * @brief Set up the hook loop. Equivalent to calling: - * SetStatusPtr, SetPrevResPtr, SetCurResPtr, SetIfacePtrPtr, SetOrigRetPtr, Get/SetOverrideRetPtr - * - * @param statusPtr pointer to status variable - * @param prevResPtr pointer to previous result variable - * @param curResPtr pointer to current result variable - * @param ifacePtrPtr pointer to interface this pointer variable - * @param origRetPr pointer to original return value variable. NULL for void funcs - * @param overrideRetPtr pointer to override return value variable. NULL for void funcs - * - * @return Override Return Pointer the hookfunc should use (may differ from overrideRetPtr - * when the hook func is being called as part of a recall - */ - virtual void *SetupHookLoop(META_RES *statusPtr, META_RES *prevResPtr, META_RES *curResPtr, - void **ifacePtrPtr, const void *origRetPtr, void *overrideRetPtr) = 0; - - //!< - }; - - // For META_RESULT_ORIG_RET and META_RESULT_OVERRIDE_RET: - // These have to be able to return references. If T is a reference, the pointers returned - // from the SH_GLOB_SHPTR are pointers to instances of ReferenceCarrier::type. - template struct MacroRefHelpers - { - inline static const T* GetOrigRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOrigRet()); - } - inline static const T* GetOverrideRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOverrideRet()); - } - }; - - template struct MacroRefHelpers - { - inline static T* GetOrigRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOrigRet()); - return &ref; - } - inline static T* GetOverrideRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOverrideRet()); - return &ref; - } - }; -} - -/************************************************************************/ -/* High level interface */ -/************************************************************************/ -#define META_RESULT_STATUS SH_GLOB_SHPTR->GetStatus() -#define META_RESULT_PREVIOUS SH_GLOB_SHPTR->GetPrevRes() -#define META_RESULT_ORIG_RET(type) *SourceHook::MacroRefHelpers::GetOrigRet(SH_GLOB_SHPTR) -#define META_RESULT_OVERRIDE_RET(type) *SourceHook::MacroRefHelpers::GetOverrideRet(SH_GLOB_SHPTR) -#define META_IFACEPTR(type) reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()) - -#define SET_META_RESULT(result) SH_GLOB_SHPTR->SetRes(result) -#define RETURN_META(result) do { SET_META_RESULT(result); return; } while(0) -#define RETURN_META_VALUE(result, value) do { SET_META_RESULT(result); return (value); } while(0) - -// If a hook on a function which returns a reference does not want to specify a return value, -// it can use this macro. -// ONLY USE THIS WITH MRES_IGNORED AND MRES_HANDLED !!! -#define RETURN_META_NOREF(result, rettype) do { SET_META_RESULT(result); return reinterpret_cast(*SH_GLOB_SHPTR); } while(0) - -// only call these from the hook handlers directly! -// :TODO: enforce it ? - -// Why take a memfuncptr instead of iface and func when we have to deduce the iface anyway now? -// Well, without it, there'd be no way to specify which overloaded version we want in _VALUE - -// SourceHook::SetOverrideRet is defined later. -#define RETURN_META_NEWPARAMS(result, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_NEWPARAMS(result, value, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* meh, set the override result here because we don't get a chance to return */ \ - /* before continuing the hook loop through the recall */ \ - SourceHook::SetOverrideResult(memfuncptr)(SH_GLOB_SHPTR, value); \ - } \ - RETURN_META_VALUE(MRES_SUPERCEDE, \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams); \ - } while (0) - -// :TODO: thisptroffs in MNEWPARAMS ?? - -#if SH_COMP == SH_COMP_MSVC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - void *addr; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; - -#elif SH_COMP == SH_COMP_GCC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.s.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; \ - u.s.adjustor = 0; - -#endif - -#define RETURN_META_MNEWPARAMS(result, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - (thisptr->*(u.mfp)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_MNEWPARAMS(result, value, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* see RETURN_META_VALUE_NEWPARAMS */ \ - SourceHook::SetOverrideResult(SH_GLOB_SHPTR, value); \ - } \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - RETURN_META_VALUE(MRES_SUPERCEDE, (thisptr->*(u.mfp)) newparams); \ - } while (0) - -/** -* @brief Get/generate callclass for an interface pointer -* -* @param ifaceptr The interface pointer -*/ -template -inline SourceHook::CallClass *SH_GET_CALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), sizeof(ifacetype))); -} - -template -inline SourceHook::CallClass *SH_GET_MCALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr, int ifacesize) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), ifacesize)); -} - -template -inline void SH_RELEASE_CALLCLASS_R(SourceHook::ISourceHook *shptr, SourceHook::CallClass *ptr) -{ - shptr->ReleaseCallClass(reinterpret_cast(ptr)); -} - -#define SH_MANUALHOOK_RECONFIGURE(hookname, pvtblindex, pvtbloffs, pthisptroffs) \ - do { \ - SH_GLOB_SHPTR->RemoveHookManager(SH_GLOB_PLUGPTR, SH_MFHCls(hookname)::HookManPubFunc); \ - SH_MFHCls(hookname)::ms_MFI.thisptroffs = pthisptroffs; \ - SH_MFHCls(hookname)::ms_MFI.vtblindex = pvtblindex; \ - SH_MFHCls(hookname)::ms_MFI.vtbloffs = pvtbloffs; \ - } while (0) - -#define SH_GET_CALLCLASS(ptr) SH_GET_CALLCLASS_R(SH_GLOB_SHPTR, ptr) -#define SH_GET_MCALLCLASS(ptr, size) SH_GET_MCALLCLASS_R(SH_GLOB_SHPTR, reinterpret_cast(ptr), size) -#define SH_RELEASE_CALLCLASS(ptr) SH_RELEASE_CALLCLASS_R(SH_GLOB_SHPTR, ptr) - -#define SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHAdd##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_ADD_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHRemove##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_REMOVE_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_ADD_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMAdd##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_ADD_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMRemove##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_REMOVE_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_NOATTRIB - - - - -#if SH_COMP == SH_COMP_MSVC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; -#elif SH_COMP == SH_COMP_GCC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; \ - reinterpret_cast(&mfp)[1] = 0; -#else -# error Not supported yet. -#endif - -////////////////////////////////////////////////////////////////////////// -#define SH_FHCls(ift, iff, ov) __SourceHook_FHCls_##ift##iff##ov -#define SH_MFHCls(hookname) __SourceHook_MFHCls_##hookname - -#define SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) \ - SH_FHCls(ifacetype,ifacefunc,overload)() \ - { \ - GetFuncInfo(funcptr, ms_MFI); \ - } \ - \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - GetFuncInfo(funcptr, ms_MFI); \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_FHCls(ifacetype,ifacefunc,overload)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -// It has to be possible to use the macros in namespaces -// -> So we need to access and extend the global SourceHook namespace -// We use a namespace alias for this -#define SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, funcptr) \ - struct SH_FHCls(ifacetype,ifacefunc,overload) \ - { \ - static SH_FHCls(ifacetype,ifacefunc,overload) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) - -#define SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, funcptr) \ - }; \ - SH_FHCls(ifacetype,ifacefunc,overload) SH_FHCls(ifacetype,ifacefunc,overload)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_FHCls(ifacetype,ifacefunc,overload)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_FHCls(ifacetype,ifacefunc,overload)::ms_HI; \ - bool __SourceHook_FHAdd##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0 || !mfi.isVirtual) \ - return false; /* No non-virtual functions / virtual inheritance supported */ \ - \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, \ - new CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHRemove##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0) \ - return false; /* No virtual inheritance supported */ \ - \ - CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, &tmp, post); \ - } \ - -#define SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - struct SH_MFHCls(hookname) \ - { \ - static SH_MFHCls(hookname) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - \ - SH_MFHCls(hookname)() \ - { \ - ms_MFI.isVirtual = true; \ - ms_MFI.thisptroffs = pthisptroffs; \ - ms_MFI.vtblindex = pvtblidx; \ - ms_MFI.vtbloffs = pvtbloffs; \ - } \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - /* we don't set ms_MFI here because manual hookmans can be reconfigured */ \ - /* :FIXME: possible problem: someone adding a hook from a constructor of a global entity */ \ - /* which is construced before SH_MFHCls(hookname)() gets called? */ \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_MFHCls(hookname)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -#define SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - }; \ - SH_MFHCls(hookname) SH_MFHCls(hookname)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_MFHCls(hookname)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_MFHCls(hookname)::ms_HI; \ - bool __SourceHook_FHMAdd##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, \ - new ::SourceHook::CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHMRemove##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - ::SourceHook::CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, &tmp, post); \ - } \ - - -#define SH_SETUPCALLS(rettype, paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - return (reinterpret_cast(this)->*mfp)params; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - typedef ReferenceCarrier::type my_rettype; \ - my_rettype orig_ret; \ - my_rettype override_ret; \ - my_rettype plugin_ret; \ - void* ifptr; \ - my_rettype *pOverrideRet = reinterpret_cast(SH_GLOB_SHPTR->SetupHookLoop( \ - &status, &prev_res, &cur_res, &ifptr, &orig_ret, &override_ret)); - -#define SH_CALL_HOOKS(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - plugin_ret = reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (cur_res >= MRES_OVERRIDE) \ - *pOverrideRet = plugin_ret; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG(rettype, paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - orig_ret = (reinterpret_cast(this)->*mfp)params; \ - } \ - else \ - orig_ret = override_ret; \ - -#define SH_RETURN() \ - SH_GLOB_SHPTR->HookLoopEnd(); \ - return status >= MRES_OVERRIDE ? *pOverrideRet : orig_ret; - -#define SH_HANDLEFUNC(paramtypes, params, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params) \ - SH_CALL_HOOKS(pre, params) \ - SH_CALL_ORIG(rettype, paramtypes, params) \ - SH_CALL_HOOKS(post, params) \ - SH_RETURN() - -////////////////////////////////////////////////////////////////////////// -#define SH_SETUPCALLS_void(paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - return; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - void* ifptr; \ - SH_GLOB_SHPTR->SetupHookLoop(&status, &prev_res, &cur_res, &ifptr, NULL, NULL); \ - -#define SH_CALL_HOOKS_void(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG_void(paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - } - -#define SH_RETURN_void() \ - SH_GLOB_SHPTR->HookLoopEnd(); - -#define SH_HANDLEFUNC_void(paramtypes, params) \ - SH_SETUPCALLS_void(paramtypes, params) \ - SH_CALL_HOOKS_void(pre, params) \ - SH_CALL_ORIG_void(paramtypes, params) \ - SH_CALL_HOOKS_void(post, params) \ - SH_RETURN_void() - - -// Special vafmt handlers -// :TODO: what -#define SH_HANDLEFUNC_vafmt(paramtypes, params_orig, params_plug, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(pre, params_plug) \ - SH_CALL_ORIG(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(post, params_plug) \ - SH_RETURN() - -#define SH_HANDLEFUNC_void_vafmt(paramtypes, params_orig, params_plug) \ - SH_SETUPCALLS_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(pre, params_plug) \ - SH_CALL_ORIG_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(post, params_plug) \ - SH_RETURN_void() - -////////////////////////////////////////////////////////////////////////// - -// :FIXME: -// sizeof on references returns the size of the datatype, NOT the pointer size or something -// -> one should probably flag references in __SourceHook_ParamSizes_* ! -// or simply assume that their size is sizeof(void*)=SH_PTRSIZE... could be doable through a simple template - -@[$1,0,$a: -// ********* Support for $1 arguments ********* -#define SH_DECL_HOOK$1(ifacetype, ifacefunc, attr, overload, rettype@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]@[$1!=0:, @]rettype> FD; \ - virtual rettype Func(@[$2,1,$1|, :param$2 p$2@]) \ - { SH_HANDLEFUNC((@[$2,1,$1|, :param$2@]), (@[$2,1,$1|, :p$2@]), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - $1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK$1_void(ifacetype, ifacefunc, attr, overload@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]> FD; \ - virtual void Func(@[$2,1,$1|, :param$2 p$2@]) \ - { SH_HANDLEFUNC_void((@[$2,1,$1|, :param$2@]), (@[$2,1,$1|, :p$2@])); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - $1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK$1_vafmt(ifacetype, ifacefunc, attr, overload, rettype@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate@($1+1)<@[$2,1,$1|, :param$2@]@[$1!=0:, @]const char *, rettype> FD; \ - virtual rettype Func(@[$2,1,$1|, :param$2 p$2@]@[$1!=0:, @]const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((@[$2,1,$1|, :param$2@]@[$1!=0:, @]...), (@[$2,1,$1|, :p$2@]@[$1!=0:, @]"%s", buf), (@[$2,1,$1|, :p$2@]@[$1!=0:, @]buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - $1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK$1_void_vafmt(ifacetype, ifacefunc, attr, overload@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate@($1+1)<@[$2,1,$1|, :param$2@]@[$1!=0:, @]const char *> FD; \ - virtual void Func(@[$2,1,$1|, :param$2 p$2@]@[$1!=0:, @]const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((@[$2,1,$1|, :param$2@]@[$1!=0:, @]...), (@[$2,1,$1|, :p$2@]@[$1!=0:, @]"%s", buf), (@[$2,1,$1|, :p$2@]@[$1!=0:, @]buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - $1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK$1(hookname, vtblidx, vtbloffs, thisptroffs, rettype@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]@[$1!=0:, @]rettype> FD; \ - virtual rettype Func(@[$2,1,$1|, :param$2 p$2@]) \ - { SH_HANDLEFUNC((@[$2,1,$1|, :param$2@]), (@[$2,1,$1|, :p$2@]), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(@[$2,1,$1|, :param$2@]); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - $1, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK$1_void(hookname, vtblidx, vtbloffs, thisptroffs@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]> FD; \ - virtual void Func(@[$2,1,$1|, :param$2 p$2@]) \ - { SH_HANDLEFUNC_void((@[$2,1,$1|, :param$2@]), (@[$2,1,$1|, :p$2@])); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(@[$2,1,$1|, :param$2@]); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - $1, __SourceHook_ParamSizesM_##hookname); \ - -@] - - -////////////////////////////////////////////////////////////////////////// -// SH_CALL - -#if SH_COMP == SH_COMP_MSVC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = origfunc; \ - \ - void *adjustedthisptr = reinterpret_cast(reinterpret_cast(m_CC->GetThisPtr()) + mfi.thisptroffs); \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *adjustedthisptr = reinterpret_cast(m_CC->GetThisPtr()) + m_ThisPtrOffs; \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.addr) \ - u.addr = (*reinterpret_cast(adjustedthisptr + m_VtblOffs))[m_VtblIdx]; \ - \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -#elif SH_COMP == SH_COMP_GCC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = origfunc; \ - u.s.adjustor = mfi.thisptroffs; \ - \ - return (reinterpret_cast(m_CC->GetThisPtr())->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *thisptr = reinterpret_cast(m_CC->GetThisPtr()); \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.s.addr) \ - u.s.addr = (*reinterpret_cast(thisptr + m_ThisPtrOffs + m_VtblOffs))[m_VtblIdx]; \ - \ - u.s.adjustor = m_ThisPtrOffs; \ - return (reinterpret_cast(thisptr)->*u.mfpnew)call; \ -} - -#endif - -namespace SourceHook -{ -@[$1,0,$a: - // Support for $1 arguments - template class ExecutableClass$1 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass$1(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(@[$2,1,$1|, :Param$2 p$2@]) const - SH_MAKE_EXECUTABLECLASS_OB((@[$2,1,$1|, :p$2@]), (@[$2,1,$1|, :Param$2@])) - - @[$2,$1+1,$a: - template <@[$3,$1+1,$2|, :class Param$3@]> RetType operator()(@[$3,1,$2|, :Param$3 p$3@]) const - SH_MAKE_EXECUTABLECLASS_OB((@[$3,1,$2|, :p$3@]), (@[$3,1,$2|, :Param$3@])) - @] - }; - - template class MExecutableClass$1 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass$1(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(@[$2,1,$1|, :Param$2 p$2@]) const - SH_MAKE_MEXECUTABLECLASS_OB((@[$2,1,$1|, :p$2@]), (@[$2,1,$1|, :Param$2@])) - - @[$2,$1+1,$a: - template <@[$3,$1+1,$2|, :class Param$3@]> RetType operator()(@[$3,1,$2|, :Param$3 p$3@]) const - SH_MAKE_MEXECUTABLECLASS_OB((@[$3,1,$2|, :p$3@]), (@[$3,1,$2|, :Param$3@])) - @] - }; -@] - -} - -// SH_CALL needs to deduce the return type -> it uses templates and function overloading -// That's why SH_CALL takes two parameters: "mfp2" of type RetType(X::*mfp)(params), and "mfp" of type MFP -// The only purpose of the mfp2 parameter is to extract the return type - -@[$1,0,$a: -// Support for $1 arguments -template -SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(@[$2,1,$1|, :Param$2@])) -{ - return SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]>(ptr, mfp); -} - -template -SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(@[$2,1,$1|, :Param$2@])const) -{ - return SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]>(ptr, mfp); -} - -template -SourceHook::MExecutableClass$1 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(@[$2,1,$1|, :Param$2@]), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass$1(ptr, vtbloffs, vtblidx, thisptroffs); -} -@] - -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 -// GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it - -@[$1,0,$a: -// Support for $1 arguments -template -SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...)) -{ - return SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]>(ptr, mfp); -} - -template -SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...)const) -{ - return SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]>(ptr, mfp); -} - -@] - -#endif - -#define SH_CALL(ptr, mfp) SH_CALL2((ptr), (mfp), (mfp)) -#define SH_MCALL(ptr, mhookname) SH_MCALL2((ptr), SH_MFHCls(mhookname)::ECMFP(), SH_MFHCls(mhookname)::ms_MFI.vtblindex, \ - SH_MFHCls(mhookname)::ms_MFI.vtbloffs, SH_MFHCls(mhookname)::ms_MFI.thisptroffs) - -#undef SH_MAKE_EXECUTABLECLASS_OB - -////////////////////////////////////////////////////////////////////////// -// SetOverrideRet and RecallGetIface for recalls -// These take a ISourceHook pointer instead of using SH_GLOB_SHPTR directly -// The reason is that the user may want to redefine SH_GLOB_SHPTR - then the macros -// (META_RETURN_VALUE_NEWPARAMS) should obey the new pointer. - -namespace SourceHook -{ - template - void SetOverrideResult(ISourceHook *shptr, const RetType res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - - // SetOverrideResult used to be implemented like this: - // SetOverrideResult(shptr, memfuncptr, return); - // normally the compiler can deduce the return type from memfuncptr, but (at least msvc8) failed when it was a reference - // (it thought it was ambigous - the ref and non-ref type) - // so now SetOverrideResult(memfuncptr) deduces the ret type, and returns a functor which does the work - // new syntax: SetOverrideResult(memfuncptr)(shptr, return) - // This also allows us to create a special version for references which respects ReferenceCarrier. - - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - }; - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T &res) - { - // overrideretptr points to ReferenceCarrier - *reinterpret_cast::type *>(shptr->GetOverrideRetPtr()) = res; - } - }; -@[$1,0,$a: - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(@[$2,1,$1|, :Param$2@])) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(@[$2,1,$1|, :Param$2@])) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } -@] -} - -#endif - // The pope is dead. -> :( diff --git a/sourcehook/sh_list.h b/sourcehook/sh_list.h deleted file mode 100644 index 12a56f2..0000000 --- a/sourcehook/sh_list.h +++ /dev/null @@ -1,291 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_SMM_LIST_H -#define _INCLUDE_SMM_LIST_H - -#include -#include - -namespace SourceHook -{ - - //This class is from CSDM for AMX Mod X - /* - A circular, doubly-linked list with one sentinel node - - Empty: - m_Head = sentinel - m_Head->next = m_Head; - m_Head->prev = m_Head; - One element: - m_Head = sentinel - m_Head->next = node1 - m_Head->prev = node1 - node1->next = m_Head - node1->prev = m_Head - Two elements: - m_Head = sentinel - m_Head->next = node1 - m_Head->prev = node2 - node1->next = node2 - node1->prev = m_Head - node2->next = m_Head - node2->prev = node1 - */ - template - class List - { - public: - class iterator; - friend class iterator; - class ListNode - { - public: - ListNode(const T & o) : obj(o) { }; - ListNode() { }; - T obj; - ListNode *next; - ListNode *prev; - }; - private: - // Initializes the sentinel node. - // BAIL used malloc instead of new in order to bypass the need for a constructor. - ListNode *_Initialize() - { - ListNode *n = (ListNode *)malloc(sizeof(ListNode)); - n->next = n; - n->prev = n; - return n; - } - public: - List() : m_Head(_Initialize()), m_Size(0) - { - } - List(const List &src) : m_Head(_Initialize()), m_Size(0) - { - iterator iter; - for (iter=src.begin(); iter!=src.end(); iter++) - push_back( (*iter) ); - } - ~List() - { - clear(); - - // Don't forget to free the sentinel - if (m_Head) - { - free(m_Head); - m_Head = NULL; - } - } - void push_back(const T &obj) - { - ListNode *node = new ListNode(obj); - - node->prev = m_Head->prev; - node->next = m_Head; - m_Head->prev->next = node; - m_Head->prev = node; - - m_Size++; - } - size_t size() const - { - return m_Size; - } - - void clear() - { - ListNode *node = m_Head->next; - ListNode *temp; - m_Head->next = m_Head; - m_Head->prev = m_Head; - - // Iterate through the nodes until we find g_Head (the sentinel) again - while (node != m_Head) - { - temp = node->next; - delete node; - node = temp; - } - m_Size = 0; - } - bool empty() const - { - return (m_Size == 0); - } - T & back() - { - return m_Head->prev->obj; - } - private: - ListNode *m_Head; - size_t m_Size; - public: - class iterator - { - friend class List; - public: - iterator() - { - m_This = NULL; - } - iterator(const List &src) - { - m_This = src.m_Head; - } - iterator(ListNode *n) : m_This(n) - { - } - iterator(const iterator &where) - { - m_This = where.m_This; - } - //pre decrement - iterator & operator--() - { - if (m_This) - m_This = m_This->prev; - return *this; - } - //post decrement - iterator operator--(int) - { - iterator old(*this); - if (m_This) - m_This = m_This->prev; - return old; - } - - //pre increment - iterator & operator++() - { - if (m_This) - m_This = m_This->next; - return *this; - } - //post increment - iterator operator++(int) - { - iterator old(*this); - if (m_This) - m_This = m_This->next; - return old; - } - - const T & operator * () const - { - return m_This->obj; - } - T & operator * () - { - return m_This->obj; - } - - T * operator -> () - { - return &(m_This->obj); - } - const T * operator -> () const - { - return &(m_This->obj); - } - - bool operator != (const iterator &where) const - { - return (m_This != where.m_This); - } - bool operator ==(const iterator &where) const - { - return (m_This == where.m_This); - } - private: - ListNode *m_This; - }; - public: - iterator begin() const - { - return iterator(m_Head->next); - } - iterator end() const - { - return iterator(m_Head); - } - iterator erase(iterator &where) - { - ListNode *pNode = where.m_This; - iterator iter(where); - iter++; - - - // Works for all cases: empty list, erasing first element, erasing tail, erasing in the middle... - pNode->prev->next = pNode->next; - pNode->next->prev = pNode->prev; - - delete pNode; - m_Size--; - - return iter; - } - - iterator insert(iterator where, const T &obj) - { - // Insert obj right before where - - ListNode *node = new ListNode(obj); - ListNode *pWhereNode = where.m_This; - - pWhereNode->prev->next = node; - node->prev = pWhereNode->prev; - pWhereNode->prev = node; - node->next = pWhereNode; - - m_Size++; - - return iterator(node); - } - - public: - void remove(const T & obj) - { - iterator b; - for (b=begin(); b!=end(); b++) - { - if ( (*b) == obj ) - { - erase( b ); - break; - } - } - } - template - iterator find(const U & equ) const - { - iterator iter; - for (iter=begin(); iter!=end(); iter++) - { - if ( (*iter) == equ ) - return iter; - } - return end(); - } - List & operator =(const List &src) - { - clear(); - iterator iter; - for (iter=src.begin(); iter!=src.end(); iter++) - push_back( (*iter) ); - return *this; - } - }; -}; //NAMESPACE - -#endif //_INCLUDE_CSDM_LIST_H diff --git a/sourcehook/sh_memfuncinfo.h b/sourcehook/sh_memfuncinfo.h deleted file mode 100644 index fbfddab..0000000 --- a/sourcehook/sh_memfuncinfo.h +++ /dev/null @@ -1,912 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** - * @brief This file provides a way for getting information about a member function. - * @file sh_memfuncinfo.h - */ - -#ifndef __SHINT_MEMFUNC_INFO_H__ -#define __SHINT_MEMFUNC_INFO_H__ - -namespace SourceHook -{ - - // Don Clugston: - // implicit_cast< > - // I believe this was originally going to be in the C++ standard but - // was left out by accident. It's even milder than static_cast. - // I use it instead of static_cast<> to emphasize that I'm not doing - // anything nasty. - // Usage is identical to static_cast<> - template - inline OutputClass implicit_cast(InputClass input){ - return input; - } - - - struct MemFuncInfo - { - bool isVirtual; // Is the function virtual? - int thisptroffs; // The this pointer the function expects to be called with - // If -1, you need to call the GetFuncInfo_GetThisPtr function - int vtblindex; // The function's index in the vtable (0-based, 1=second entry, 2=third entry, ...) - int vtbloffs; // The vtable pointer - }; - - // Ideas by Don Clugston. - // Check out his excellent paper: http://www.codeproject.com/cpp/FastDelegate.asp - - template struct MFI_Impl - { - template static inline void GetFuncInfo(MFP *mfp, MemFuncInfo &out) - { - static char weird_memfunc_pointer_exclamation_mark_arrow_error[N-1000]; - } - }; - -# if SH_COMP == SH_COMP_GCC - - template<> struct MFI_Impl<2*SH_PTRSIZE> // All of these have size==8/16 - { - struct GCC_MemFunPtr - { - union - { - void *funcadr; // always even - intptr_t vtable_index_plus1; // = vindex+1, always odd - }; - intptr_t delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - GCC_MemFunPtr *mfp_detail = (GCC_MemFunPtr*)&mfp; - out.thisptroffs = mfp_detail->delta; - if (mfp_detail->vtable_index_plus1 & 1) - { - out.vtblindex = (mfp_detail->vtable_index_plus1 - 1) / SH_PTRSIZE; - out.vtbloffs = 0; - out.isVirtual = true; - } - else - out.isVirtual = false; - } - }; - -# elif SH_COMP == SH_COMP_MSVC - - namespace - { - int MFI_GetVtblOffset(void *mfp) - { - unsigned char *addr = (unsigned char*)mfp; - if (*addr == 0xE9) // Jmp - { - // May or may not be! - // Check where it'd jump - addr += 5 /*size of the instruction*/ + *(unsigned long*)(addr + 1); - } - - // Check whether it's a virtual function call - // They look like this: - // 004125A0 8B 01 mov eax,dword ptr [ecx] - // 004125A2 FF 60 04 jmp dword ptr [eax+4] - // ==OR== - // 00411B80 8B 01 mov eax,dword ptr [ecx] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // However, for vararg functions, they look like this: - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 0048F0B6 FF 60 08 jmp dword ptr [eax+8] - // ==OR== - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // With varargs, the this pointer is passed as if it was the first argument - - bool ok = false; - if (addr[0] == 0x8B && addr[1] == 0x44 && addr[2] == 0x24 && addr[3] == 0x04 && - addr[4] == 0x8B && addr[5] == 0x00) - { - addr += 6; - ok = true; - } - else if (addr[0] == 0x8B && addr[1] == 0x01) - { - addr += 2; - ok = true; - } - if (!ok) - return -1; - - if (*addr++ == 0xFF) - { - if (*addr == 0x60) - { - return *++addr / 4; - } - else if (*addr == 0xA0) - { - return *((unsigned int*)++addr) / 4; - } - else if (*addr == 0x20) - return 0; - else - return -1; - } - return -1; - } - } - - template<> struct MFI_Impl<1*SH_PTRSIZE> // simple ones - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = 0; - out.vtbloffs = 0; - } - }; - - template<> struct MFI_Impl<2*SH_PTRSIZE> // more complicated ones! - { - struct MSVC_MemFunPtr2 - { - void *funcadr; - int delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = reinterpret_cast(&mfp)->delta; - out.vtbloffs = 0; - } - }; - - // By Don Clugston, adapted - template<> struct MFI_Impl<3*SH_PTRSIZE> // WOW IT"S GETTING BIGGER OMGOMOGMG - { - class __single_inheritance GenericClass; - class GenericClass {}; - - struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance - }; - - struct GenericVirtualClass : virtual public GenericClass - { - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } - }; - - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - // This pointer - /* - union { - MFP func; - GenericClass* (T::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = mfp; - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(mfp)==sizeof(u.s) - && sizeof(mfp)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - out.thisptroffs = (reinterpret_cast(NULL)->*u.ProbeFunc)(); - */ - out.thisptroffs = -1; - out.vtbloffs = 0; - } - }; - - // Don: Nasty hack for Microsoft and Intel (IA32 and Itanium) - // unknown_inheritance classes go here - // This is probably the ugliest bit of code I've ever written. Look at the casts! - // There is a compiler bug in MSVC6 which prevents it from using this code. - template<> struct MFI_Impl<4*SH_PTRSIZE> // THE BIGGEST ONE!!!1GABEN - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - MFP func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - void *m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(u.func)==sizeof(u.s)? 1 : -1]; - u.func = mfp; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - /* - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - int * vtable = *reinterpret_cast( - reinterpret_cast(thisptr) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - out.thisptr = reinterpret_cast( - reinterpret_cast(thisptr) + u.s.delta + virtual_delta); - */ - out.vtbloffs = u.s.vtordisp; - out.thisptroffs = -1; - } - else - { - out.vtbloffs = out.vtblindex < 0 ? 0 : u.s.delta; - out.thisptroffs = u.s.delta; - } - }; - }; -# else -# error Unsupported compiler -# endif - - // This version does not take a this pointer - // Useful for hookdecls, as they ensure that mfp is correct through a static_cast - template inline void GetFuncInfo(X mfp, MemFuncInfo &out) - { - MFI_Impl::GetFuncInfo(mfp, out); - } - - // Versions which do take a this - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(), MemFuncInfo &out) - { - RetType(Y::*mfp2)() = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)() const, MemFuncInfo &out) - { - RetType(Y::*mfp2)() const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - // GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - -#endif - -} - -#endif diff --git a/sourcehook/sh_memory.h b/sourcehook/sh_memory.h deleted file mode 100644 index d626bb9..0000000 --- a/sourcehook/sh_memory.h +++ /dev/null @@ -1,186 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko, Scott "Damaged Soul" Ehlert -* Contributors: lancevorgin, XAD, theqizmo -* ============================ -*/ - -#ifndef __SHINT_MEMORY_H__ -#define __SHINT_MEMORY_H__ - -// Feb 17 / 2005: -// Unprotect now sets to readwrite -// The vtable doesn't need to be executable anyway - -# if /********/ defined _WIN32 -# include -# define SH_MEM_READ 1 -# define SH_MEM_WRITE 2 -# define SH_MEM_EXEC 4 -# elif /******/ defined __linux__ -# include -# include -# include -# include -// http://www.die.net/doc/linux/man/man2/mprotect.2.html -# include -# ifndef PAGESIZE -# define PAGESIZE 4096 -# endif -# define SH_MEM_READ PROT_READ -# define SH_MEM_WRITE PROT_WRITE -# define SH_MEM_EXEC PROT_EXEC - -// We need to align addr down to pagesize on linux -// We assume PAGESIZE is a power of two -# define SH_LALIGN(x) (void*)((intptr_t)(x) & ~(PAGESIZE-1)) -# define SH_LALDIF(x) ((intptr_t)(x) & (PAGESIZE-1)) -# else -# error Unsupported OS/Compiler -# endif - - -namespace SourceHook -{ - inline bool SetMemAccess(void *addr, size_t len, int access) - { -# ifdef __linux__ - return mprotect(SH_LALIGN(addr), len + SH_LALDIF(addr), access)==0 ? true : false; -# else - DWORD tmp; - DWORD prot; - switch (access) - { - case SH_MEM_READ: - prot = PAGE_READONLY; break; - case SH_MEM_READ | SH_MEM_WRITE: - prot = PAGE_READWRITE; break; - case SH_MEM_READ | SH_MEM_EXEC: - prot = PAGE_EXECUTE_READ; break; - default: - case SH_MEM_READ | SH_MEM_WRITE | SH_MEM_EXEC: - prot = PAGE_EXECUTE_READWRITE; break; - } - return VirtualProtect(addr, len, prot, &tmp) ? true : false; -# endif - } - -#ifdef __linux__ - namespace - { - bool g_BadReadCalled; - jmp_buf g_BadReadJmpBuf; - - static void BadReadHandler(int sig) - { - if (g_BadReadCalled) - longjmp(g_BadReadJmpBuf, 1); - } - } -#endif - - /** - * @brief Checks whether the specified memory region is (still) accessible - * - * @param addr The lower boundary - * @param len Length of the region to be checked - */ - namespace - { - bool ModuleInMemory(char *addr, size_t len) - { -#ifdef __linux__ - // On linux, first check /proc/self/maps - long lower = reinterpret_cast(addr); - long upper = lower + len; - - FILE *pF = fopen("/proc/self/maps", "r"); - if (pF) - { - // Linux /proc/self/maps -> parse - // Format: - // lower upper prot stuff path - // 08048000-0804c000 r-xp 00000000 03:03 1010107 /bin/cat - long rlower, rupper; - while (fscanf(pF, "%lx-%lx", &rlower, &rupper) != EOF) - { - // Check whether we're IN THERE! - if (lower >= rlower && upper <= rupper) - { - fclose(pF); - return true; - } - // Read to end of line - int c; - while ((c = fgetc(pF)) != '\n') - { - if (c == EOF) - break; - } - if (c == EOF) - break; - } - fclose(pF); - return false; - } - pF = fopen("/proc/curproc/map", "r"); - if (pF) - { - // FreeBSD /proc/curproc/map -> parse - // 0x804800 0x805500 13 15 0xc6e18960 r-x 21 0x0 COW NC vnode - long rlower, rupper; - while (fscanf(pF, "0x%lx 0x%lx", &rlower, &rupper) != EOF) - { - // Check whether we're IN THERE! - if (lower >= rlower && upper <= rupper) - { - fclose(pF); - return true; - } - // Read to end of line - int c; - while ((c = fgetc(pF)) != '\n') - { - if (c == EOF) - break; - } - if (c == EOF) - break; - } - fclose(pF); - return false; - } - - // Both of the above failed, try to actually read and trap sigsegv (implemented by Damaged Soul) - void(*prevHandler)(int sig); - g_BadReadCalled = true; - - if (setjmp(g_BadReadJmpBuf)) - return true; - - prevHandler = signal(SIGSEGV, BadReadHandler); - - volatile const char *p = reinterpret_cast(addr); - char dummy; - - for (size_t i = 0; i < len; i++) - dummy = p[i]; - - g_BadReadCalled = false; - - signal(SIGSEGV, prevHandler); - - return false; -#else - // On Win32, simply use IsBadReadPtr - return !IsBadReadPtr(addr, len); -#endif - } - } -} - -#endif diff --git a/sourcehook/sh_stack.h b/sourcehook/sh_stack.h deleted file mode 100644 index ffbeecf..0000000 --- a/sourcehook/sh_stack.h +++ /dev/null @@ -1,237 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -#ifndef __SH_STACK_H__ -#define __SH_STACK_H__ - -#include - -#define SH_STACK_DEFAULT_SIZE 4 - -namespace SourceHook -{ - // Vector - template class CStack - { - T *m_Elements; - size_t m_AllocatedSize; - size_t m_UsedSize; - public: - friend class iterator; - class iterator - { - CStack *m_pParent; - size_t m_Index; - public: - iterator(CStack *pParent, size_t id) : m_pParent(pParent), m_Index(id) - { - } - - iterator(CStack *pParent) : m_pParent(pParent), m_Index(0) - { - } - - iterator() : m_pParent(NULL), m_Index(0) - { - } - - T &operator *() - { - return m_pParent->m_Elements[m_Index]; - } - const T &operator *() const - { - return m_pParent->m_Elements[m_Index]; - } - - T * operator->() - { - return m_pParent->m_Elements + m_Index; - } - - const T * operator->() const - { - return m_pParent->m_Elements + m_Index; - } - - iterator & operator++() // preincrement - { - ++m_Index; - return (*this); - } - - iterator operator++(int) // postincrement - { - iterator tmp = *this; - ++m_Index; - return tmp; - } - - iterator & operator--() // predecrement - { - --m_Index; - return (*this); - } - - iterator operator--(int) // postdecrememnt - { - iterator tmp = *this; - --m_Index; - return tmp; - } - - bool operator==(const iterator & right) const - { - return (m_pParent == right.m_pParent && m_Index == right.m_Index); - } - - bool operator!=(const iterator & right) const - { - return !(*this == right); - } - }; - CStack() : m_Elements(new T[SH_STACK_DEFAULT_SIZE]), - m_AllocatedSize(SH_STACK_DEFAULT_SIZE), - m_UsedSize(0) - { - } - CStack(size_t size) : m_Elements(new T[size]), - m_AllocatedSize(size), - m_UsedSize(0) - { - } - - CStack(const CStack &other) : m_Elements(NULL), - m_AllocatedSize(0), - m_UsedSize(0) - { - reserve(other.m_AllocatedSize); - m_UsedSize = other.m_UsedSize; - for (size_t i = 0; i < m_UsedSize; ++i) - m_Elements[i] = other.m_Elements[i]; - } - - ~CStack() - { - if (m_Elements) - delete [] m_Elements; - } - - void operator=(const CStack &other) - { - if (m_AllocatedSize < other.m_AllocatedSize) - { - if (m_Elements) - delete [] m_Elements; - m_Elements = new T[other.m_AllocatedSize]; - m_AllocatedSize = other.m_AllocatedSize; - } - m_UsedSize = other.m_UsedSize; - for (size_t i = 0; i < m_UsedSize; ++i) - m_Elements[i] = other.m_Elements[i]; - } - - bool push(const T &val) - { - if (m_UsedSize + 1 == m_AllocatedSize) - { - // zOHNOES! REALLOCATE! - m_AllocatedSize *= 2; - T *newElements = new T[m_AllocatedSize]; - if (!newElements) - { - m_AllocatedSize /= 2; - return false; - } - if (m_Elements) - { - for (size_t i = 0; i < m_UsedSize; ++i) - newElements[i] = m_Elements[i]; - delete [] m_Elements; - } - m_Elements = newElements; - } - m_Elements[m_UsedSize++] = val; - return true; - } - - void pop() - { - --m_UsedSize; - } - - void popall() - { - m_UsedSize = 0; - } - - T &front() - { - return m_Elements[m_UsedSize - 1]; - } - - const T &front() const - { - return m_Elements[m_UsedSize - 1]; - } - - T &second() - { - return m_Elements[m_UsedSize - 2]; - } - - const T &second() const - { - return m_Elements[m_UsedSize - 2]; - } - - iterator begin() - { - return iterator(this, 0); - } - iterator end() - { - return iterator(this, m_UsedSize); - } - - size_t size() - { - return m_UsedSize; - } - size_t capacity() - { - return m_AllocatedSize; - } - bool empty() - { - return m_UsedSize == 0 ? true : false; - } - bool reserve(size_t size) - { - if (size > m_AllocatedSize) - { - T *newElements = new T[size]; - if (!newElements) - return false; - if (m_Elements) - { - for (size_t i = 0; i < m_UsedSize; ++i) - newElements[i] = m_Elements[i]; - delete [] m_Elements; - } - m_Elements = newElements; - m_AllocatedSize = size; - } - return true; - } - }; -}; //namespace SourceHook - -#endif diff --git a/sourcehook/sh_string.h b/sourcehook/sh_string.h deleted file mode 100755 index 220b4ee..0000000 --- a/sourcehook/sh_string.h +++ /dev/null @@ -1,401 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -/* AMX Mod X - * - * by the AMX Mod X Development Team - */ - -#ifndef _INCLUDE_CSTRING_H -#define _INCLUDE_CSTRING_H - -#include -#include - -namespace SourceHook -{ -class String -{ -public: - String() - { - v = NULL; - a_size = 0; - //assign(""); - } - - ~String() - { - if (v) - delete [] v; - } - - String(const char *src) - { - v = NULL; - a_size = 0; - assign(src); - } - - String(const String &src) - { - v = NULL; - a_size = 0; - assign(src.c_str()); - } - - bool operator ==(const String &other) - { - return (compare(other.c_str()) == 0); - } - - bool operator ==(const char *other) - { - return (compare(other) == 0); - } - - const char *c_str() { return v?v:""; } - - const char *c_str() const { return v?v:""; } - - void append(const char *t) - { - Grow(size() + strlen(t) + 1); - strcat(v, t); - } - - void append(const char c) - { - size_t len = size(); - Grow(len + 2); - v[len] = c; - v[len + 1] = '\0'; - } - - void append(String &d) - { - append(d.c_str()); - } - - void assign(const String &src) - { - assign(src.c_str()); - } - - void assign(const char *d) - { - if (!d) - { - clear(); - } else { - Grow(strlen(d) + 1, false); - strcpy(v, d); - } - } - - void clear() - { - if (v) - v[0] = '\0'; - } - - int compare (const char *d) const - { - if (!v) - return strcmp("", d); - else - return strcmp(v, d); - } - - //Added this for amxx inclusion - bool empty() const - { - if (!v) - return true; - - if (v[0] == '\0') - return true; - - return false; - } - - size_t size() const - { - if (v) - return strlen(v); - else - return 0; - } - - int find(const char c, int index = 0) const - { - int len = static_cast(size()); - if (len < 1) - return npos; - if (index >= len || index < 0) - return npos; - int i = 0; - for (i=index; i(size()); - if (len < 1) - return npos; - if (index >= len || index < npos) - return npos; - int i; - if (index == npos) - i = len - 1; - else - i = index; - - for (; i>=0; i--) - { - if (v[i] == c) - { - return i; - } - } - - return npos; - } - - bool is_space(int c) const - { - if (c == '\f' || c == '\n' || - c == '\t' || c == '\r' || - c == '\v' || c == ' ') - { - return true; - } - - return false; - } - - void trim() - { - if (!v) - return; - - unsigned int i = 0; - unsigned int j = 0; - size_t len = strlen(v); - - if (len == 1) - { - if (is_space(v[i])) - { - clear(); - return; - } - } - - unsigned char c0 = v[0]; - - if (is_space(c0)) - { - for (i=0; i=0; i--) - { - if (!is_space(v[i]) - || (is_space(v[i]) && i==0)) - { - erase(i+1, j); - break; - } - j++; - } - } - - if (len == 1) - { - if (is_space(v[0])) - { - clear(); - return; - } - } - } - - void erase(unsigned int start, int num = npos) - { - if (!v) - return; - unsigned int i = 0; - size_t len = size(); - //check for bounds - if (num == npos || start+num > len-start) - num = len - start; - //do the erasing - bool copyflag = false; - for (i=0; i=start && i= len || !v) - return ns; - - if (num == npos) - { - num = len - index; - } else if (index+num >= len) { - num = len - index; - } - - unsigned int i = 0; - unsigned int nslen = num + 2; - - ns.Grow(nslen); - - for (i=index; i= 65 && v[i] <= 90) - v[i] &= ~(1<<5); - } - } - - String & operator = (const String &src) - { - assign(src); - return *this; - } - - String & operator = (const char *src) - { - assign(src); - return *this; - - } - - char operator [] (unsigned int index) const - { - if (index > size() || !v) - { - return -1; - } else { - return v[index]; - } - } - - int at(int a) const - { - if (a < 0 || a >= (int)size() || !v) - return -1; - - return v[a]; - } - - bool at(int at, char c) - { - if (at < 0 || at >= (int)size() || !v) - return false; - - v[at] = c; - - return true; - } - -private: - void Grow(unsigned int d, bool copy=true) - { - if (d <= a_size) - return; - char *n = new char[d + 1]; - if (copy && v) - strcpy(n, v); - if (v) - delete [] v; - else - strcpy(n, ""); - v = n; - a_size = d + 1; - } - - char *v; - unsigned int a_size; -public: - static const int npos = -1; -}; - -}; //NAMESPACE - -#endif //_INCLUDE_CSTRING_H diff --git a/sourcehook/sh_tinyhash.h b/sourcehook/sh_tinyhash.h deleted file mode 100644 index 634b253..0000000 --- a/sourcehook/sh_tinyhash.h +++ /dev/null @@ -1,534 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_SH_TINYHASH_H_ -#define _INCLUDE_SH_TINYHASH_H_ - -#include "sh_list.h" - -#define _T_INIT_HASH_SIZE 32 - -namespace SourceHook -{ - template - int HashFunction(const K & k); - - template - int HashAlt(const U &u); - - template - int CompareAlt(const U &k1, const K &k2); - - template - int Compare(const K & k1, const K & k2); - - /** - * This is a tiny, growable hash class. - * Meant for quick and dirty dictionaries only! - */ - template - class THash - { - public: - struct THashNode - { - THashNode(const K & k, const V & v) : - key(k), val(v) - { - }; - THashNode & operator =(const THashNode &other) - { - key = other.key; - val = other.val; - } - K key; - V val; - }; - typedef List * NodePtr; - public: - class const_iterator; - THash() : m_Buckets(NULL), m_numBuckets(0), m_percentUsed(0.0f) - { - _Refactor(); - } - THash(const THash &other) : m_Buckets(new NodePtr[other.m_numBuckets]), - m_numBuckets(other.m_numBuckets), m_percentUsed(other.m_percentUsed) - { - for (size_t i=0; ikey)->val = iter->val; - } - void operator=(const THash &other) - { - clear(); - for (const_iterator iter = other.begin(); iter != other.end(); ++iter) - _FindOrInsert(iter->key)->val = iter->val; - } - - ~THash() - { - _Clear(); - } - void clear() - { - _Clear(); - _Refactor(); - } - size_t GetBuckets() - { - return m_numBuckets; - } - float PercentUsed() - { - return m_percentUsed; - } - V & operator [](const K & key) - { - THashNode *pNode = _FindOrInsert(key); - return pNode->val; - } - private: - void _Clear() - { - typename List::iterator iter, end; - for (size_t i=0; iend(); - iter = m_Buckets[i]->begin(); - while (iter != end) - { - delete (*iter); - iter++; - } - delete m_Buckets[i]; - m_Buckets[i] = NULL; - } - } - if (m_Buckets) - delete [] m_Buckets; - m_Buckets = NULL; - m_numBuckets = 0; - } - public: - template - V & AltFindOrInsert(const U & ukey) - { - size_t place = HashAlt(ukey) % m_numBuckets; - THashNode *pNode = NULL; - if (!m_Buckets[place]) - { - m_Buckets[place] = new List; - pNode = new THashNode(ukey, V()); - m_Buckets[place]->push_back(pNode); - m_percentUsed += (1.0f / (float)m_numBuckets); - } else { - typename List::iterator iter; - for (iter=m_Buckets[place]->begin(); iter!=m_Buckets[place]->end(); iter++) - { - if (CompareAlt(ukey, (*iter)->key) == 0) - { - return (*iter)->val; - } - } - //node does not exist - pNode = new THashNode(ukey, V()); - m_Buckets[place]->push_back(pNode); - } - if (PercentUsed() > 0.75f) - { - _Refactor(); - } - return pNode->val; - } - private: - THashNode *_FindOrInsert(const K & key) - { - size_t place = HashFunction(key) % m_numBuckets; - THashNode *pNode = NULL; - if (!m_Buckets[place]) - { - m_Buckets[place] = new List; - pNode = new THashNode(key, V()); - m_Buckets[place]->push_back(pNode); - m_percentUsed += (1.0f / (float)m_numBuckets); - } else { - typename List::iterator iter; - for (iter=m_Buckets[place]->begin(); iter!=m_Buckets[place]->end(); iter++) - { - if (Compare((*iter)->key, key) == 0) - return (*iter); - } - //node does not exist - pNode = new THashNode(key, V()); - m_Buckets[place]->push_back(pNode); - } - if (PercentUsed() > 0.75f) - { - _Refactor(); - } - return pNode; - } - void _Refactor() - { - m_percentUsed = 0.0f; - if (!m_numBuckets) - { - m_numBuckets = _T_INIT_HASH_SIZE; - m_Buckets = new NodePtr[m_numBuckets]; - for (size_t i=0; i::iterator iter; - size_t place; - THashNode *pHashNode; - NodePtr *temp = new NodePtr[m_numBuckets]; - for (size_t i=0; ibegin(); iter != m_Buckets[i]->end(); iter++) - { - pHashNode = (*iter); - //rehash it with the new bucket filter - place = HashFunction(pHashNode->key) % m_numBuckets; - //add it to the new hash table - if (!temp[place]) - { - temp[place] = new List; - m_percentUsed += (1.0f / (float)m_numBuckets); - } - temp[place]->push_back(pHashNode); - } - //delete that bucket! - delete m_Buckets[i]; - m_Buckets[i] = NULL; - } - } - //reassign bucket table - delete [] m_Buckets; - m_Buckets = temp; - } - } - public: - friend class iterator; - friend class const_iterator; - class iterator - { - friend class THash; - public: - iterator() : curbucket(-1), hash(NULL), end(true) - { - }; - iterator(THash *h) : curbucket(-1), hash(h), end(false) - { - if (!h->m_Buckets) - end = true; - else - _Inc(); - }; - //pre increment - iterator & operator++() - { - _Inc(); - return *this; - } - //post increment - iterator operator++(int) - { - iterator old(*this); - _Inc(); - return old; - } - const THashNode & operator * () const - { - return *(*iter); - } - THashNode & operator * () - { - return *(*iter); - } - const THashNode * operator ->() const - { - return (*iter); - } - THashNode * operator ->() - { - return (*iter); - } - bool operator ==(const iterator &where) const - { - if (where.hash == this->hash - && where.end == this->end - && - (this->end || - ((where.curbucket == this->curbucket) - && (where.iter == iter)) - )) - return true; - return false; - } - bool operator !=(const iterator &where) const - { - return !( (*this) == where ); - } - - void erase() - { - if (end || !hash || curbucket < 0 || curbucket >= static_cast(hash->m_numBuckets)) - return; - - // Remove this element and move to the next one - iterator tmp = *this; - ++tmp; - delete (*iter); - hash->m_Buckets[curbucket]->erase(iter); - *this = tmp; - - // :TODO: Maybe refactor to a lower size if required - } - private: - void _Inc() - { - if (end || !hash || curbucket >= static_cast(hash->m_numBuckets)) - return; - if (curbucket < 0) - { - for (int i=0; i<(int)hash->m_numBuckets; i++) - { - if (hash->m_Buckets[i]) - { - iter = hash->m_Buckets[i]->begin(); - if (iter == hash->m_Buckets[i]->end()) - continue; - curbucket = i; - break; - } - } - if (curbucket < 0) - end = true; - } else { - if (iter != hash->m_Buckets[curbucket]->end()) - iter++; - if (iter == hash->m_Buckets[curbucket]->end()) - { - int oldbucket = curbucket; - for (int i=curbucket+1; i<(int)hash->m_numBuckets; i++) - { - if (hash->m_Buckets[i]) - { - iter = hash->m_Buckets[i]->begin(); - if (iter == hash->m_Buckets[i]->end()) - continue; - curbucket = i; - break; - } - } - if (curbucket == oldbucket) - end = true; - } - } - } - private: - int curbucket; - typename SourceHook::List::iterator iter; - THash *hash; - bool end; - }; - class const_iterator - { - friend class THash; - public: - const_iterator() : curbucket(-1), hash(NULL), end(true) - { - }; - const_iterator(const THash *h) : curbucket(-1), hash(h), end(false) - { - if (!h->m_Buckets) - end = true; - else - _Inc(); - }; - //pre increment - const_iterator & operator++() - { - _Inc(); - return *this; - } - //post increment - const_iterator operator++(int) - { - iterator old(*this); - _Inc(); - return old; - } - const THashNode & operator * () const - { - return *(*iter); - } - const THashNode * operator ->() const - { - return (*iter); - } - bool operator ==(const const_iterator &where) const - { - if (where.hash == this->hash - && where.end == this->end - && - (this->end || - ((where.curbucket == this->curbucket) - && (where.iter == iter)) - )) - return true; - return false; - } - bool operator !=(const const_iterator &where) const - { - return !( (*this) == where ); - } - private: - void _Inc() - { - if (end || !hash || curbucket >= static_cast(hash->m_numBuckets)) - return; - if (curbucket < 0) - { - for (int i=0; i<(int)hash->m_numBuckets; i++) - { - if (hash->m_Buckets[i]) - { - iter = hash->m_Buckets[i]->begin(); - if (iter == hash->m_Buckets[i]->end()) - continue; - curbucket = i; - break; - } - } - if (curbucket < 0) - end = true; - } else { - if (iter != hash->m_Buckets[curbucket]->end()) - iter++; - if (iter == hash->m_Buckets[curbucket]->end()) - { - int oldbucket = curbucket; - for (int i=curbucket+1; i<(int)hash->m_numBuckets; i++) - { - if (hash->m_Buckets[i]) - { - iter = hash->m_Buckets[i]->begin(); - if (iter == hash->m_Buckets[i]->end()) - continue; - curbucket = i; - break; - } - } - if (curbucket == oldbucket) - end = true; - } - } - } - private: - int curbucket; - typename SourceHook::List::iterator iter; - const THash *hash; - bool end; - }; - public: - iterator begin() - { - return iterator(this); - } - iterator end() - { - iterator iter; - iter.hash = this; - return iter; - } - - const_iterator begin() const - { - return const_iterator(this); - } - const_iterator end() const - { - const_iterator iter; - iter.hash = this; - return iter; - } - - template - iterator find(const U & u) const - { - iterator b = begin(); - iterator e = end(); - for (iterator iter = b; iter != e; iter++) - { - if ( (*iter).key == u ) - return iter; - } - return end(); - } - template - iterator find(const U & u) - { - iterator b = begin(); - iterator e = end(); - for (iterator iter = b; iter != e; iter++) - { - if ( (*iter).key == u ) - return iter; - } - return end(); - } - template - iterator FindAlt(const U & u) - { - iterator b = begin(); - iterator e = end(); - for (iterator iter = b; iter != e; iter++) - { - if (CompareAlt(u, (*iter).key) == 0) - { - return iter; - } - } - return e; - } - iterator erase(iterator where) - { - where.erase(); - return where; - } - template - void erase(const U & u) - { - iterator iter = find(u); - if (iter == end()) - return; - iter.erase(); - } - private: - NodePtr *m_Buckets; - size_t m_numBuckets; - float m_percentUsed; - }; -}; - -#endif //_INCLUDE_SH_TINYHASH_H_ diff --git a/sourcehook/sh_vector.h b/sourcehook/sh_vector.h deleted file mode 100755 index 26b16b9..0000000 --- a/sourcehook/sh_vector.h +++ /dev/null @@ -1,519 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -#ifndef __CVECTOR_H__ -#define __CVECTOR_H__ - -#include - -//This file originally from AMX Mod X -namespace SourceHook -{ -// Vector -template class CVector -{ - bool Grow(size_t amount) - { - // automatic grow - size_t newSize = m_Size * 2; - - if (newSize == 0) - { - newSize = 8; - } - - while (m_CurrentUsedSize + amount > newSize) - { - newSize *= 2; - } - - T *newData = new T[newSize]; - - if (m_Data) - { - for (size_t i=0; i= m_Size) - { - return Grow(amount); - } - else - { - return true; - } - } - - bool ChangeSize(size_t size) - { - // change size - if (size == m_Size) - { - return true; - } - - if (!size) - { - if (m_Data) - { - delete [] m_Data; - m_Data = NULL; - m_Size = 0; - } - return true; - } - - T *newData = new T[size]; - - if (m_Data) - { - size_t end = (m_CurrentUsedSize < size) ? (m_CurrentUsedSize) : size; - for (size_t i=0; i m_Size) - { - m_CurrentUsedSize = m_Size; - } - - return true; - } - - void FreeMemIfPossible() - { - if (!m_Data) - { - return; - } - - if (!m_CurrentUsedSize) - { - ChangeSize(0); - return; - } - - size_t newSize = m_Size; - while (m_CurrentUsedSize <= newSize / 2) - { - newSize /= 2; - } - - if (newSize != m_Size) - { - ChangeSize(newSize); - } - } -protected: - T *m_Data; - size_t m_Size; - size_t m_CurrentUsedSize; -public: - class iterator - { - protected: - T *m_Ptr; - public: - // constructors / destructors - iterator() - { - m_Ptr = NULL; - } - - iterator(T * ptr) - { - m_Ptr = ptr; - } - - // member functions - T * base() - { - return m_Ptr; - } - - const T * base() const - { - return m_Ptr; - } - - // operators - T & operator*() - { - return *m_Ptr; - } - - T * operator->() - { - return m_Ptr; - } - - iterator & operator++() // preincrement - { - ++m_Ptr; - return (*this); - } - - iterator operator++(int) // postincrement - { - iterator tmp = *this; - ++m_Ptr; - return tmp; - } - - iterator & operator--() // predecrement - { - --m_Ptr; - return (*this); - } - - iterator operator--(int) // postdecrememnt - { - iterator tmp = *this; - --m_Ptr; - return tmp; - } - - bool operator==(T * right) const - { - return (m_Ptr == right); - } - - bool operator==(const iterator & right) const - { - return (m_Ptr == right.m_Ptr); - } - - bool operator!=(T * right) const - { - return (m_Ptr != right); - } - - bool operator!=(const iterator & right) const - { - return (m_Ptr != right.m_Ptr); - } - - iterator & operator+=(size_t offset) - { - m_Ptr += offset; - return (*this); - } - - iterator & operator-=(size_t offset) - { - m_Ptr -= offset; - return (*this); - } - - iterator operator+(size_t offset) const - { - iterator tmp(*this); - tmp.m_Ptr += offset; - return tmp; - } - - iterator operator-(size_t offset) const - { - iterator tmp(*this); - tmp.m_Ptr -= offset; - return tmp; - } - - T & operator[](size_t offset) - { - return (*(*this + offset)); - } - - const T & operator[](size_t offset) const - { - return (*(*this + offset)); - } - - bool operator<(const iterator & right) const - { - return m_Ptr < right.m_Ptr; - } - - bool operator>(const iterator & right) const - { - return m_Ptr > right.m_Ptr; - } - - bool operator<=(const iterator & right) const - { - return m_Ptr <= right.m_Ptr; - } - - bool operator>=(const iterator & right) const - { - return m_Ptr >= right.m_Ptr; - } - - size_t operator-(const iterator & right) const - { - return m_Ptr - right.m_Ptr; - } - }; - - // constructors / destructors - CVector() - { - m_Size = 0; - m_CurrentUsedSize = 0; - m_Data = NULL; - } - - CVector(const CVector & other) - { - // copy data - m_Data = new T [other.m_CurrentUsedSize]; - m_Size = other.m_CurrentUsedSize; - m_CurrentUsedSize = other.m_CurrentUsedSize; - for (size_t i=0; i() - { - clear(); - } - - CVector & operator =(const CVector & other) - { - clear(); - ChangeSize(other.size()); - m_CurrentUsedSize = other.size(); - for (size_t i=0; i m_CurrentUsedSize) - assert(0); - return iterator(m_Data + pos); - } - - bool reserve(size_t newSize) - { - if (newSize > m_Size) - return ChangeSize(newSize); - return true; - } - - bool push_back(const T & elem) - { - if (!GrowIfNeeded(1)) - { - return false; - } - - m_Data[m_CurrentUsedSize++] = elem; - - return true; - } - - void pop_back() - { - --m_CurrentUsedSize; - if (m_CurrentUsedSize < 0) - m_CurrentUsedSize = 0; - - FreeMemIfPossible(); - } - - bool resize(size_t newSize) - { - return resize(newSize, T()); - } - - bool resize(size_t newSize, T defval) - { - if (!ChangeSize(newSize)) - return false; - for (size_t i = m_CurrentUsedSize; i < newSize; ++i) - m_Data[i] = defval; - m_CurrentUsedSize = newSize; - return true; - } - - bool empty() const - { - return (m_CurrentUsedSize == 0); - } - - T & at(size_t pos) - { - if (pos > m_CurrentUsedSize) - { - assert(0); - } - return m_Data[pos]; - } - - const T & at(size_t pos) const - { - if (pos > m_CurrentUsedSize) - { - assert(0); - } - return m_Data[pos]; - } - - T & operator[](size_t pos) - { - return at(pos); - } - - const T & operator[](size_t pos) const - { - return at(pos); - } - - T & front() - { - if (m_CurrentUsedSize < 1) - { - assert(0); - } - return m_Data[0]; - } - - const T & front() const - { - if (m_CurrentUsedSize < 1) - { - assert(0); - } - return m_Data[0]; - } - - T & back() - { - if (m_CurrentUsedSize < 1) - { - assert(0); - } - return m_Data[m_CurrentUsedSize - 1]; - } - - const T & back() const - { - if (m_CurrentUsedSize < 1) - { - assert(0); - } - return m_Data[m_CurrentUsedSize - 1]; - } - - iterator insert(iterator where, const T & value) - { - // validate iter - if (where < m_Data || where > (m_Data + m_CurrentUsedSize)) - return iterator(0); - - size_t ofs = where - begin(); - - if (!GrowIfNeeded(1)) - { - return false; - } - - ++m_CurrentUsedSize; - - where = begin() + ofs; - - // Move subsequent entries - for (T *ptr = m_Data + m_CurrentUsedSize - 2; ptr >= where.base(); --ptr) - *(ptr + 1) = *ptr; - - *where.base() = value; - - return where; - } - - iterator erase(iterator where) - { - // validate iter - if (where < m_Data || where >= (m_Data + m_CurrentUsedSize)) - return iterator(0); - - size_t ofs = where - begin(); - - if (m_CurrentUsedSize > 1) - { - // move - T *theend = m_Data + m_CurrentUsedSize; - for (T *ptr = where.base() + 1; ptr < theend; ++ptr) - *(ptr - 1) = *ptr; - } - - --m_CurrentUsedSize; - - FreeMemIfPossible(); - - return begin() + ofs; - } - - void clear() - { - m_Size = 0; - m_CurrentUsedSize = 0; - if (m_Data) - { - delete [] m_Data; - m_Data = NULL; - } - } -}; -}; //namespace SourceHook - -#endif // __CVECTOR_H__ diff --git a/sourcehook/sourcehook.cpp b/sourcehook/sourcehook.cpp deleted file mode 100644 index d7f8e7f..0000000 --- a/sourcehook/sourcehook.cpp +++ /dev/null @@ -1,1231 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* Contributors: Scott "Damaged Soul" Ehlert -* ============================ -*/ - -/** - * @file sourcehook.cpp - * @brief Contains the implementation of the SourceHook API -*/ - -#if defined __GNUC__ -#include -#endif - -#include "sourcehook_impl.h" -#include "sh_memory.h" - -namespace SourceHook -{ - template<> - int HashFunction(const int & k) - { - return k; - } - template<> - int Compare(const int & k1, const int & k2) - { - if (k1 == k2) - return 0; - if (k1 > k2) - return 1; - if (k1 < k2) - return -1; - return 0; - } - CSourceHookImpl::CSourceHookImpl() - { - } - CSourceHookImpl::~CSourceHookImpl() - { - } - - int CSourceHookImpl::GetIfaceVersion() - { - return SH_IFACE_VERSION; - } - - int CSourceHookImpl::GetImplVersion() - { - return SH_IMPL_VERSION; - } - - bool CSourceHookImpl::IsPluginInUse(Plugin plug) - { - // Iterate through all hook managers which are in this plugin - // Iterate through their vfnptrs, ifaces, hooks - // If a hook from an other plugin is found, return true - // Return false otherwise -#define TMP_CHECK_LIST(name) \ - for (hook_iter = iface_iter->name.m_List.begin(); hook_iter != iface_iter->name.m_List.end(); ++hook_iter) \ - if (hook_iter->plug == plug) \ - return true; - - for (HookManContList::iterator hmcl_iter = m_HookMans.begin(); - hmcl_iter != m_HookMans.end(); ++hmcl_iter) - { - for (CHookManagerContainer::iterator hmil_iter = hmcl_iter->begin(); - hmil_iter != hmcl_iter->end(); ++hmil_iter) - { - if (hmil_iter->m_Plug != plug) - continue; - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hmil_iter->m_VfnPtrs.begin(); - vfnptr_iter != hmil_iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end(); ++iface_iter) - { - List::iterator hook_iter; - TMP_CHECK_LIST(m_PreHooks); - TMP_CHECK_LIST(m_PostHooks); - } - } - } - } - -#undef TMP_CHECK_LIST - return false; - } - - void CSourceHookImpl::UnloadPlugin(Plugin plug) - { - // 1) Manually remove all hooks by this plugin - // 2) Manually remove all hook mans by this plugin - - List hookstoremove; - List hookmanstoremove; - HookManInfoList::iterator hmil_iter; - -#define TMP_CHECK_LIST(name, ispost) \ - for (hook_iter = iface_iter->name.m_List.begin(); hook_iter != iface_iter->name.m_List.end(); ++hook_iter) \ - if (hook_iter->plug == plug) \ - hookstoremove.push_back(RemoveHookInfo(hook_iter->plug, iface_iter->m_Ptr, \ - hook_iter->thisptr_offs, hmil_iter->m_Func, hook_iter->handler, ispost)); \ - - for (HookManContList::iterator hmcl_iter = m_HookMans.begin(); - hmcl_iter != m_HookMans.end(); ++hmcl_iter) - { - for (CHookManagerContainer::iterator hmil_iter = hmcl_iter->begin(); - hmil_iter != hmcl_iter->end(); ++hmil_iter) - { - if (hmil_iter->m_Plug == plug) - hookmanstoremove.push_back(RemoveHookManInfo(plug, hmil_iter->m_Func)); - - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hmil_iter->m_VfnPtrs.begin(); - vfnptr_iter != hmil_iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end(); ++iface_iter) - { - List::iterator hook_iter; - TMP_CHECK_LIST(m_PreHooks, false); - TMP_CHECK_LIST(m_PostHooks, true); - } - } - } - } -#undef TMP_CHECK_LIST - - for (List::iterator rmiter = hookstoremove.begin(); rmiter != hookstoremove.end(); ++rmiter) - RemoveHook(*rmiter); - - for (List::iterator rmiter = hookmanstoremove.begin(); rmiter != hookmanstoremove.end(); ++rmiter) - RemoveHookManager(*rmiter); - } - - void CSourceHookImpl::RemoveHookManager(Plugin plug, HookManagerPubFunc pubFunc) - { - // Moo! - - CHookManagerInfo tmp; - if (pubFunc(HA_GetInfo, &tmp) != 0) - return; - - - HookManContList::iterator hmcl_iter = m_HookMans.find( - CHookManagerContainer::HMCI(tmp.m_Proto, tmp.m_VtblOffs, tmp.m_VtblIdx)); - - if (hmcl_iter == m_HookMans.end()) - { - // Moo? - return; - } - - CHookManagerContainer::iterator hmil_iter = hmcl_iter->find( - CHookManagerInfo::Descriptor(plug, pubFunc)); - - if (hmil_iter == hmcl_iter->end()) - { - // Moo? - return; - } - - bool stillInUse = false; - List hookstoremove; - - // Iterate through all of the hook manager's hooks. Remove all hooks from the hookman's plugin. -#define TMP_CHECK_LIST(name, ispost) \ - for (hook_iter = iface_iter->name.m_List.begin(); hook_iter != iface_iter->name.m_List.end(); ++hook_iter) \ - if (hook_iter->plug == plug) \ - hookstoremove.push_back(RemoveHookInfo(hook_iter->plug, iface_iter->m_Ptr, \ - hook_iter->thisptr_offs, hmil_iter->m_Func, hook_iter->handler, ispost)); \ - else \ - stillInUse = true; \ - - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hmil_iter->m_VfnPtrs.begin(); - vfnptr_iter != hmil_iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end(); ++iface_iter) - { - List::iterator hook_iter; - TMP_CHECK_LIST(m_PreHooks, false); - TMP_CHECK_LIST(m_PostHooks, true); - } - } -#undef TMP_CHECK_LIST - - for (List::iterator rmiter = hookstoremove.begin(); rmiter != hookstoremove.end(); ++rmiter) - RemoveHook(*rmiter); - - CHookManagerInfo info = *hmil_iter; - - // Unlink the hook manager from the list - hmcl_iter->erase(hmil_iter); - - // If there were any hooks from other plugins, find a new suitable hook manager. - if (stillInUse) - { - // Find a suitable hook manager in an other plugin - hmil_iter = hmcl_iter->begin(); - - // This should _never_ happen. - // If there is a hook from an other plugin, the plugin must have provided a hook manager as well. - SH_ASSERT(hmil_iter != hmcl_iter->end(), - ("Could not find a suitable hook manager in an other plugin!")); - - // AddHook should make sure that every plugin only has _one_ hook manager for _one_ proto/vi/vo - SH_ASSERT(hmil_iter->m_Plug != plug, ("New hook manager from same plugin!")); - - // The first hook manager should be always used - so the new hook manager has to be empty - SH_ASSERT(hmil_iter->m_VfnPtrs.empty(), ("New hook manager not empty!")); - - // Move the vfnptrs from the old hook manager to the new one - hmil_iter->m_VfnPtrs = info.m_VfnPtrs; - - // Unregister the old one, register the new one - info.m_Func(HA_Unregister, NULL); - hmil_iter->m_Func(HA_Register, &(*hmil_iter)); - - // Go through all vfnptrs in this hookman and patch them to point to the new manager's handler! - // or whatever - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hmil_iter->m_VfnPtrs.begin(); - vfnptr_iter != hmil_iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - // And DEREFERENCE newHookMan->m_HookfuncVfnptr! - // otherwise it will be executing the vtable... had to find out the hard way - *reinterpret_cast(vfnptr_iter->m_Ptr) = *reinterpret_cast(hmil_iter->m_HookfuncVfnptr); - } - } - } - - void CSourceHookImpl::RemoveHookManager(RemoveHookManInfo info) - { - RemoveHookManager(info.plug, info.hookman); - } - - void CSourceHookImpl::CompleteShutdown() - { - // Remove all hooks - - List hookstoremove; - -#define TMP_CHECK_LIST(name, ispost) \ - for (hook_iter = iface_iter->name.m_List.begin(); hook_iter != iface_iter->name.m_List.end(); ++hook_iter) \ - hookstoremove.push_back(RemoveHookInfo(hook_iter->plug, iface_iter->m_Ptr, \ - hook_iter->thisptr_offs, hmil_iter->m_Func, hook_iter->handler, ispost)) - for (HookManContList::iterator hmcl_iter = m_HookMans.begin(); - hmcl_iter != m_HookMans.end(); ++hmcl_iter) - { - for (CHookManagerContainer::iterator hmil_iter = hmcl_iter->begin(); - hmil_iter != hmcl_iter->end(); ++hmil_iter) - { - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hmil_iter->m_VfnPtrs.begin(); - vfnptr_iter != hmil_iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end(); ++iface_iter) - { - List::iterator hook_iter; - TMP_CHECK_LIST(m_PreHooks, false); - TMP_CHECK_LIST(m_PostHooks, true); - } - } - } - } -#undef TMP_CHECK_LIST - - for (List::iterator rmiter = hookstoremove.begin(); rmiter != hookstoremove.end(); ++rmiter) - RemoveHook(*rmiter); - - m_HookMans.clear(); - } - - bool CSourceHookImpl::AddHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, ISHDelegate *handler, bool post) - { - void *adjustediface = reinterpret_cast(reinterpret_cast(iface) + thisptr_offs); - - // 1) Get info about the hook manager - CHookManagerInfo tmp; - if (myHookMan(HA_GetInfo, &tmp) != 0) - return false; - - tmp.m_Func = myHookMan; - tmp.m_Plug = plug; - - CHookManagerContainer::HMCI hmci(tmp.m_Proto, tmp.m_VtblOffs, tmp.m_VtblIdx); - - void **cur_vtptr = *reinterpret_cast( - reinterpret_cast(adjustediface) + tmp.m_VtblOffs); - void *cur_vfnptr = reinterpret_cast(cur_vtptr + tmp.m_VtblIdx); - - // Add the container if not already added - HookManContList::iterator hmcl_iter = m_HookMans.find(hmci); - if (hmcl_iter == m_HookMans.end()) - { - m_HookMans.push_back(CHookManagerContainer(hmci)); - hmcl_iter = m_HookMans.end(); - --hmcl_iter; - } - - hmcl_iter->AddHookManager(plug, tmp); - - CHookManagerContainer::iterator hookman = hmcl_iter->begin(); - SH_ASSERT(hookman != hmcl_iter->end(), ("No hookman found - but we've just added one!")); - - // Check whether any other container holds a hook manager which holds this vfnptr - // If yes, it means that the two are incompatible, so return false. - for (HookManContList::iterator hmcl_iter2 = m_HookMans.begin(); - hmcl_iter2 != m_HookMans.end(); ++hmcl_iter2) - { - if (hmcl_iter2 != hmcl_iter) - { - for (CHookManagerContainer::iterator hmil_iter = hmcl_iter2->begin(); - hmil_iter != hmcl_iter2->end(); ++hmil_iter) - { - if (hmil_iter->m_VfnPtrs.find(cur_vfnptr) != hmil_iter->m_VfnPtrs.end()) - return false; - } - } - } - - // Tell it to store the pointer if it's not already active - if (hookman->m_VfnPtrs.empty()) - hookman->m_Func(HA_Register, &(*hookman)); - - CHookManagerInfo::VfnPtrListIter vfnptr_iter = hookman->m_VfnPtrs.find(cur_vfnptr); - - if (vfnptr_iter == hookman->m_VfnPtrs.end()) - { - // Add a new one - CVfnPtr vfp(cur_vfnptr); - - // Alter vtable entry - if (!SetMemAccess(cur_vtptr, sizeof(void*) * (tmp.m_VtblIdx + 1), SH_MEM_READ | SH_MEM_WRITE)) - return false; - - *reinterpret_cast(cur_vfnptr) = *reinterpret_cast(hookman->m_HookfuncVfnptr); - - hookman->m_VfnPtrs.push_back(vfp); - - // Make vfnptr_iter point to the new element - vfnptr_iter = hookman->m_VfnPtrs.end(); - --vfnptr_iter; - - // Now that it is done, check whether we have to update any callclasses - ApplyCallClassPatches(adjustediface, tmp.m_VtblOffs, tmp.m_VtblIdx, vfp.m_OrigEntry); - } - - CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.find(adjustediface); - if (iface_iter == vfnptr_iter->m_Ifaces.end()) - { - // Add a new one - vfnptr_iter->m_Ifaces.push_back(CIface(adjustediface)); - - // Make iface_iter point to the new element - iface_iter = vfnptr_iter->m_Ifaces.end(); - --iface_iter; - } - - // Add the hook - HookInfo hookinfo; - hookinfo.handler = handler; - hookinfo.plug = plug; - hookinfo.paused = false; - hookinfo.thisptr_offs = thisptr_offs; - if (post) - iface_iter->m_PostHooks.m_List.push_back(hookinfo); - else - iface_iter->m_PreHooks.m_List.push_back(hookinfo); - - return true; - } - - bool CSourceHookImpl::RemoveHook(RemoveHookInfo info) - { - return RemoveHook(info.plug, info.iface, info.thisptr_offs, info.hookman, info.handler, info.post); - } - - bool CSourceHookImpl::RemoveHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, ISHDelegate *handler, bool post) - { - void *adjustediface = reinterpret_cast(reinterpret_cast(iface)+thisptr_offs); - CHookManagerInfo tmp; - if (myHookMan(HA_GetInfo, &tmp) != 0) - return false; - - // Find the hook manager and the hook - - HookManContList::iterator hmcl_iter = m_HookMans.find( - CHookManagerContainer::HMCI(tmp.m_Proto, tmp.m_VtblOffs, tmp.m_VtblIdx)); - if (hmcl_iter == m_HookMans.end() || hmcl_iter->empty()) - return false; - - CHookManagerContainer::iterator hookman = hmcl_iter->begin(); - - if (!ModuleInMemory(reinterpret_cast(adjustediface) + tmp.m_VtblOffs, - sizeof(void*) * (tmp.m_VtblIdx + 1))) - { - // The module the vtable was in is already unloaded. - hookman->m_VfnPtrs.clear(); - hookman->m_Func(HA_Unregister, NULL); - return true; - } - - void **cur_vtptr = *reinterpret_cast( - reinterpret_cast(adjustediface) + tmp.m_VtblOffs); - void *cur_vfnptr = reinterpret_cast(cur_vtptr + tmp.m_VtblIdx); - - CHookManagerInfo::VfnPtrListIter vfnptr_iter = hookman->m_VfnPtrs.find(cur_vfnptr); - - if (vfnptr_iter == hookman->m_VfnPtrs.end()) - return false; - - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end();) - { - if (iface_iter->m_Ptr != adjustediface) - { - iface_iter++; - continue; - } - List &hooks = - post ? iface_iter->m_PostHooks.m_List : iface_iter->m_PreHooks.m_List; - - bool erase; - for (List::iterator hookiter = hooks.begin(); - hookiter != hooks.end(); ) - { - erase = hookiter->plug == plug && hookiter->handler->IsEqual(handler) && - hookiter->thisptr_offs == thisptr_offs; - if (erase) - { - hookiter->handler->DeleteThis(); // Make the _plugin_ delete the handler object - - // Move all iterators pointing at this - List::iterator oldhookiter = hookiter; - hookiter = hooks.erase(hookiter); - List::iterator newhookiter = hookiter; - --newhookiter; // The hook loop will ++ it then - CHookList::CIter *pItIter; - for (pItIter = iface_iter->m_PreHooks.m_UsedIters; pItIter; pItIter = pItIter->m_pNext) - if (pItIter->m_Iter == oldhookiter) - pItIter->m_Iter = newhookiter; - } - else - ++hookiter; - } - if (iface_iter->m_PostHooks.m_List.empty() && iface_iter->m_PreHooks.m_List.empty()) - { - // There are no hooks on this iface anymore... - for (HookLoopInfoStack::iterator hli_iter = m_HLIStack.begin(); - hli_iter != m_HLIStack.end(); ++hli_iter) - { - if (hli_iter->pCurIface == static_cast(&(*iface_iter))) - hli_iter->shouldContinue = false; - } - - iface_iter = vfnptr_iter->m_Ifaces.erase(iface_iter); - if (vfnptr_iter->m_Ifaces.empty()) - { - // No ifaces at all -> Deactivate the hook - *reinterpret_cast(vfnptr_iter->m_Ptr) = vfnptr_iter->m_OrigEntry; - - hookman->m_VfnPtrs.erase(vfnptr_iter); - - // Remove callclass patch - for (Impl_CallClassList::iterator cciter = m_CallClasses.begin(); cciter != m_CallClasses.end(); ++cciter) - if (cciter->m_Ptr == adjustediface) - cciter->RemoveCallClassPatch(tmp.m_VtblOffs, tmp.m_VtblIdx); - - if (hookman->m_VfnPtrs.empty()) - { - // Unregister the hook manager - hookman->m_Func(HA_Unregister, NULL); - } - - // Don't try to continue looping through ifaces - // - the list is already invalid - return true; - } - } - else - ++iface_iter; - } - return true; - } - - GenericCallClass *CSourceHookImpl::GetCallClass(void *iface, size_t size) - { - for (Impl_CallClassList::iterator cciter = m_CallClasses.begin(); cciter != m_CallClasses.end(); ++cciter) - { - if (cciter->m_Ptr == iface && cciter->m_ObjSize == size) - { - ++cciter->m_RefCounter; - return &(*cciter); - } - } - - // Make a new one - - CCallClassImpl tmp(iface, size); - ApplyCallClassPatches(tmp); - m_CallClasses.push_back(tmp); - return &m_CallClasses.back(); - } - - void CSourceHookImpl::ReleaseCallClass(GenericCallClass *ptr) - { - Impl_CallClassList::iterator iter = m_CallClasses.find(ptr); - if (iter == m_CallClasses.end()) - return; - --iter->m_RefCounter; - if (iter->m_RefCounter < 1) - m_CallClasses.erase(iter); - } - - void CSourceHookImpl::ApplyCallClassPatches(CCallClassImpl &cc) - { - for (HookManContList::iterator hmcl_iter = m_HookMans.begin(); - hmcl_iter != m_HookMans.end(); ++hmcl_iter) - { - for (CHookManagerContainer::iterator hookman = hmcl_iter->begin(); - hookman != hmcl_iter->end(); ++hookman) - { - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hookman->m_VfnPtrs.begin(); - vfnptr_iter != hookman->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end(); ++iface_iter) - { - if (iface_iter->m_Ptr >= cc.m_Ptr && - iface_iter->m_Ptr < (reinterpret_cast(cc.m_Ptr) + cc.m_ObjSize)) - { - cc.ApplyCallClassPatch(static_cast(reinterpret_cast(iface_iter->m_Ptr) - - reinterpret_cast(cc.m_Ptr)) + hookman->m_VtblOffs, - hookman->m_VtblIdx, vfnptr_iter->m_OrigEntry); - } - } - } - } - } - } - - void CSourceHookImpl::ApplyCallClassPatches(void *ifaceptr, int vtbl_offs, int vtbl_idx, void *orig_entry) - { - for (Impl_CallClassList::iterator cc_iter = m_CallClasses.begin(); cc_iter != m_CallClasses.end(); - ++cc_iter) - { - if (ifaceptr >= cc_iter->m_Ptr && - ifaceptr < (reinterpret_cast(cc_iter->m_Ptr) + cc_iter->m_ObjSize)) - { - cc_iter->ApplyCallClassPatch(static_cast(reinterpret_cast(ifaceptr) - - reinterpret_cast(cc_iter->m_Ptr)) + vtbl_offs, vtbl_idx, orig_entry); - } - } - } - - void CSourceHookImpl::RemoveCallClassPatches(void *ifaceptr, int vtbl_offs, int vtbl_idx) - { - for (Impl_CallClassList::iterator cc_iter = m_CallClasses.begin(); cc_iter != m_CallClasses.end(); - ++cc_iter) - { - if (ifaceptr >= cc_iter->m_Ptr && - ifaceptr < (reinterpret_cast(cc_iter->m_Ptr) + cc_iter->m_ObjSize)) - { - cc_iter->RemoveCallClassPatch(vtbl_offs, vtbl_idx); - } - } - } - - void CSourceHookImpl::SetPluginPaused(Plugin plug, bool paused) - { - // Go through all hook managers, all interfaces, and set the status of all hooks of this plugin to paused - for (HookManContList::iterator hmcl_iter = m_HookMans.begin(); - hmcl_iter != m_HookMans.end(); ++hmcl_iter) - { - for (CHookManagerContainer::iterator hookmaniter = hmcl_iter->begin(); - hookmaniter != hmcl_iter->end(); ++hookmaniter) - { - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hookmaniter->m_VfnPtrs.begin(); - vfnptr_iter != hookmaniter->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter ifaceiter = vfnptr_iter->m_Ifaces.begin(); - ifaceiter != vfnptr_iter->m_Ifaces.end(); ++ifaceiter) - { - for (List::iterator hookiter = ifaceiter->m_PreHooks.m_List.begin(); - hookiter != ifaceiter->m_PreHooks.m_List.end(); ++hookiter) - if (plug == hookiter->plug) - hookiter->paused = paused; - - for (List::iterator hookiter = ifaceiter->m_PostHooks.m_List.begin(); - hookiter != ifaceiter->m_PostHooks.m_List.end(); ++hookiter) - if (plug == hookiter->plug) - hookiter->paused = paused; - } - } - } - } - } - void CSourceHookImpl::PausePlugin(Plugin plug) - { - SetPluginPaused(plug, true); - } - - void CSourceHookImpl::UnpausePlugin(Plugin plug) - { - SetPluginPaused(plug, false); - } - - void CSourceHookImpl::HookLoopBegin(IIface *pIface) - { - HookLoopInfo hli; - hli.pCurIface = pIface; - hli.shouldContinue = true; - hli.recall = HookLoopInfo::Recall_No; - - static_cast(pIface)->m_PreHooks.RQFlagReset(); - static_cast(pIface)->m_PostHooks.RQFlagReset(); - - m_HLIStack.push(hli); - } - - void CSourceHookImpl::HookLoopEnd() - { - // When in a post recall... make sure status is high enough so that it returns the orig ret. - if (m_HLIStack.size() > 1 && m_HLIStack.second().recall == HookLoopInfo::Recall_Post2) - *m_HLIStack.front().pStatus = MRES_SUPERCEDE; // THAT'LL TEACH THEM! - m_HLIStack.pop(); - } - - void CSourceHookImpl::SetRes(META_RES res) - { - *m_HLIStack.front().pCurRes = res; - } - - META_RES CSourceHookImpl::GetPrevRes() - { - return *m_HLIStack.front().pPrevRes; - } - - META_RES CSourceHookImpl::GetStatus() - { - return *m_HLIStack.front().pStatus; - } - - const void *CSourceHookImpl::GetOrigRet() - { - // When in a post recall... return the orig ret of the previous hookloop. - if (m_HLIStack.size() > 1 && m_HLIStack.second().recall == HookLoopInfo::Recall_Post2) - return m_HLIStack.second().pOrigRet; - - return m_HLIStack.front().pOrigRet; - } - - const void *CSourceHookImpl::GetOverrideRet() - { - // pOverrideRet is always set since recalls were introduced - // GetOverrideRetPtr was added; a function which always returns pOverrideRet - // so that RETURN_META_VALUE_NEWPARAMS can provide an override result - - // This means that we have to filter GetOverrideRet: - // If the status variable is < MRES_OVERRIDE, return NULL. - - return (*m_HLIStack.front().pStatus < MRES_OVERRIDE) ? - NULL : m_HLIStack.front().pOverrideRet; - } - - void *CSourceHookImpl::GetOverrideRetPtr() - { - // As described in the comment above: always return pOverrideRet - return m_HLIStack.front().pOverrideRet; - } - - void *CSourceHookImpl::GetIfacePtr() - { - return *m_HLIStack.front().pIfacePtrPtr; - } - - void CSourceHookImpl::SetCurResPtr(META_RES *mres) - { - m_HLIStack.front().pCurRes = mres; - } - - void CSourceHookImpl::SetPrevResPtr(META_RES *mres) - { - m_HLIStack.front().pPrevRes = mres; - - // If we're recalling, drag the previous mres value to the new hookfunc - if (m_HLIStack.size() > 1 && m_HLIStack.second().recall) - *mres = *m_HLIStack.second().pPrevRes; - } - - void CSourceHookImpl::SetStatusPtr(META_RES *mres) - { - m_HLIStack.front().pStatus = mres; - - // If we're recalling, drag the previous mres value to the new hookfunc - if (m_HLIStack.size() > 1 && m_HLIStack.second().recall) - *mres = *m_HLIStack.second().pStatus; - } - - void CSourceHookImpl::SetIfacePtrPtr(void **pp) - { - m_HLIStack.front().pIfacePtrPtr = pp; - } - - void CSourceHookImpl::SetOrigRetPtr(const void *ptr) - { - m_HLIStack.front().pOrigRet = ptr; - } - void CSourceHookImpl::SetOverrideRetPtr(void *ptr) - { - m_HLIStack.front().pOverrideRet = ptr; - } - - // New function which does all of the above + more :) - void *CSourceHookImpl::SetupHookLoop(META_RES *statusPtr, META_RES *prevResPtr, META_RES *curResPtr, - void **ifacePtrPtr, const void *origRetPtr, void *overrideRetPtr) - { - HookLoopInfo &hli = m_HLIStack.front(); - hli.pStatus = statusPtr; - hli.pPrevRes = prevResPtr; - hli.pCurRes = curResPtr; - hli.pIfacePtrPtr = ifacePtrPtr; - hli.pOrigRet = origRetPtr; - - // Handle some recall stuff - if (m_HLIStack.size() > 1 && m_HLIStack.second().recall) - { - HookLoopInfo &other = m_HLIStack.second(); - *statusPtr = *other.pStatus; - *prevResPtr = *other.pStatus; - - // When the status is low so there's no override return value and we're in a post recall, - // give it the orig return value as override return value. - if (*statusPtr < MRES_OVERRIDE && other.recall == HookLoopInfo::Recall_Post1) - hli.pOverrideRet = const_cast(other.pOrigRet); - else // Otherwise, transfer override ret normally - hli.pOverrideRet = other.pOverrideRet; - } - else - hli.pOverrideRet = overrideRetPtr; - - // Tell the hook func which override ret ptr to use - return hli.pOverrideRet; - } - - bool CSourceHookImpl::ShouldContinue() - { - // Post-recalls: - // The second element on the stack has recall set to Recall_Post1. - // This means that we want to skip this part and the original function calling thing, so - // we store the status mres value, set status to MRES_SUPERCEDE, and return false. - // We also set the recall flag to Recall_Post2, so the next time the thing calls us, we - // can return true (so that the thing goes into post hooks). - if (m_HLIStack.size() > 1) - { - if (m_HLIStack.second().recall == HookLoopInfo::Recall_Post1) - { - m_HLIStack.front().temporaryStatus = *m_HLIStack.front().pStatus; - *m_HLIStack.front().pStatus = MRES_SUPERCEDE; - m_HLIStack.second().recall = HookLoopInfo::Recall_Post2; - return false; - } - else if (m_HLIStack.second().recall == HookLoopInfo::Recall_Post2) - { - *m_HLIStack.front().pStatus = m_HLIStack.front().temporaryStatus; - return m_HLIStack.front().shouldContinue; - } - } - - // 16.01.2008: We used to return false for recalls here. - // This caused the hook funcs to think that the whole iface has been destroyed - // (the original purpose of shouldcontinue was to notify the hookfuncs that everything has been - // invalidated by RemoveHook) so they did not release their iterator. -> Leaks - // Now, GetIter sets the iterator to END so it still gets released but the hooks don't continue. - - // But: we have to return false in the post phase of pre recalls (ie. a pre hook made a recall). - if (m_HLIStack.front().recall == HookLoopInfo::Recall_Pre && - static_cast(m_HLIStack.front().pCurIface)->m_PreHooks.RelFlagGet()) - { - return false; - } - - return m_HLIStack.front().shouldContinue; - } - - void CSourceHookImpl::DoRecall() - { - if (!m_HLIStack.empty()) - { - // Also watch out for post recalls! Described at the beginning of sourcehook_impl.h - m_HLIStack.front().recall = - static_cast(m_HLIStack.front().pCurIface)->m_PostHooks.RQFlagGet() ? - HookLoopInfo::Recall_Post1 : HookLoopInfo::Recall_Pre; - - CHookList *mlist = static_cast(m_HLIStack.front().recall == HookLoopInfo::Recall_Pre ? - m_HLIStack.front().pCurIface->GetPreHooks() : m_HLIStack.front().pCurIface->GetPostHooks()); - mlist->m_Recall = true; - - // The hookfunc usually does this, but it won't have a chance to see it, - // so for recalls, we update status here if it's required - if (*m_HLIStack.front().pCurRes > *m_HLIStack.front().pStatus) - *m_HLIStack.front().pStatus = *m_HLIStack.front().pCurRes; - - } - } - - //////////////////////////// - // CCallClassImpl - //////////////////////////// - CSourceHookImpl::CCallClassImpl::CCallClassImpl(void *ptr, size_t size) - : m_Ptr(ptr), m_ObjSize(size), m_RefCounter(1) - { - } - CSourceHookImpl::CCallClassImpl::~CCallClassImpl() - { - } - - void *CSourceHookImpl::CCallClassImpl::GetThisPtr() - { - return m_Ptr; - } - void *CSourceHookImpl::CCallClassImpl::GetOrigFunc(int vtbloffs, int vtblidx) - { - OrigVTables::iterator iter = m_VT.find(vtbloffs); - if (iter != m_VT.end() && iter->val.size() > (size_t)vtblidx) - { - return iter->val[vtblidx]; - } - return NULL; - } - - void CSourceHookImpl::CCallClassImpl::ApplyCallClassPatch(int vtbl_offs, int vtbl_idx, void *orig_entry) - { - OrigFuncs &tmpvec = m_VT[vtbl_offs]; - if (tmpvec.size() <= (size_t)vtbl_idx) - tmpvec.resize(vtbl_idx+1, NULL); - tmpvec[vtbl_idx] = orig_entry; - } - void CSourceHookImpl::CCallClassImpl::RemoveCallClassPatch(int vtbl_offs, int vtbl_idx) - { - OrigVTables::iterator iter = m_VT.find(vtbl_offs); - if (iter != m_VT.end()) - { - if (iter->val.size() > (size_t)vtbl_idx) - { - iter->val[vtbl_idx] = 0; - - OrigFuncs &of = iter->val; - OrigFuncs::iterator lastused = of.end(); - for (OrigFuncs::iterator viter = of.begin(); viter != of.end(); ++viter) - { - if (*viter) - lastused = viter; - } - if (lastused == of.end()) - { - // No used element => Remove the whole vector - m_VT.erase(iter); - return; - } - of.resize(lastused - of.begin() + 1); - } - } - } - - //////////////////////////// - // CHookManagerInfo - //////////////////////////// - CSourceHookImpl::CHookManagerInfo::CHookManagerInfo() : m_HookManVersion(0) - { - } - CSourceHookImpl::CHookManagerInfo::~CHookManagerInfo() - { - } - - IVfnPtr *CSourceHookImpl::CHookManagerInfo::FindVfnPtr(void *vfnptr) - { - VfnPtrListIter iter = m_VfnPtrs.find(vfnptr); - return iter == m_VfnPtrs.end() ? NULL : &(*iter); - } - void CSourceHookImpl::CHookManagerInfo::SetInfo(int vtbl_offs, int vtbl_idx, const char *proto) - { - m_VtblOffs = vtbl_offs; - m_VtblIdx = vtbl_idx; - m_Proto = proto; - } - void CSourceHookImpl::CHookManagerInfo::SetHookfuncVfnptr(void *hookfunc_vfnptr) - { - m_HookfuncVfnptr = hookfunc_vfnptr; - } - void CSourceHookImpl::CHookManagerInfo::SetVersion(int version) - { - m_HookManVersion = version; - } - //////////////////////////// - // CVfnPtr - //////////////////////////// - - - // If you get a crash here, the ptr passed is invalid - // This usually means a SH_DECL_MANUALHOOK* with wrong thisptroffs/vtbloffs/vtblidx - CSourceHookImpl::CVfnPtr::CVfnPtr(void *ptr) : m_Ptr(ptr), m_OrigEntry(*reinterpret_cast(ptr)) - { - } - CSourceHookImpl::CVfnPtr::~CVfnPtr() - { - } - - void *CSourceHookImpl::CVfnPtr::GetVfnPtr() - { - return m_Ptr; - } - - void *CSourceHookImpl::CVfnPtr::GetOrigEntry() - { - return m_OrigEntry; - } - - IIface *CSourceHookImpl::CVfnPtr::FindIface(void *ptr) - { - IfaceListIter iter = m_Ifaces.find(ptr); - return iter == m_Ifaces.end() ? NULL : &(*iter); - } - - //////////////////////////// - // CIface - //////////////////////////// - CSourceHookImpl::CIface::CIface(void *ptr) : m_Ptr(ptr) - { - } - CSourceHookImpl::CIface::~CIface() - { - } - - void *CSourceHookImpl::CIface::GetPtr() - { - return m_Ptr; - } - - IHookList *CSourceHookImpl::CIface::GetPreHooks() - { - return &m_PreHooks; - } - IHookList *CSourceHookImpl::CIface::GetPostHooks() - { - return &m_PostHooks; - } - - //////////////////////////// - // CHookList - //////////////////////////// - - CSourceHookImpl::CHookList::CHookList() : m_FreeIters(NULL), m_UsedIters(NULL), - m_Recall(false) - { - } - CSourceHookImpl::CHookList::CHookList(const CHookList &other) : m_List(other.m_List), - m_FreeIters(NULL), m_UsedIters(NULL), m_Recall(false) - { - } - - CSourceHookImpl::CHookList::~CHookList() - { - while (m_FreeIters) - { - CIter *iter = m_FreeIters->m_pNext; - delete m_FreeIters; - m_FreeIters = iter; - } - while (m_UsedIters) - { - CIter *iter = m_UsedIters->m_pNext; - delete m_UsedIters; - m_UsedIters = iter; - } - } - IHookList::IIter *CSourceHookImpl::CHookList::GetIter() - { - m_RQFlag = true; - - CIter *ret; - if (m_FreeIters) - { - ret = m_FreeIters; - m_FreeIters = ret->m_pNext; - ret->GoToBegin(); - } - else - { - ret = new CIter(this); - } - - // Muuuh, if we're recalling, it shall be a copy of the last iterator, incremented by one - if (m_Recall && m_UsedIters) - { - ret->Set(m_UsedIters); // m_UsedIters is the last returned and not released iterator - ret->Next(); // Use next instead of directly incrementing its m_Iter: - // skips paused plugins - - // Set the last iterator to END! - m_UsedIters->GoToEnd(); - } - - ret->m_pNext = m_UsedIters; - ret->m_pPrev = NULL; - if (m_UsedIters) - m_UsedIters->m_pPrev = ret; - m_UsedIters = ret; - - m_Recall = false; - - return ret; - } - void CSourceHookImpl::CHookList::ReleaseIter(IIter *pIter) - { - m_RelFlag = true; - - CIter *pIter2 = static_cast(pIter); - - // Unlink from m_UsedIters - - if (pIter2->m_pNext) - pIter2->m_pNext->m_pPrev = pIter2->m_pPrev; - if (pIter2->m_pPrev) - pIter2->m_pPrev->m_pNext = pIter2->m_pNext; - if (pIter2 == m_UsedIters) - m_UsedIters = m_UsedIters->m_pNext; - - // Link to m_FreeIters - - pIter2->m_pNext = m_FreeIters; - - m_FreeIters = pIter2; - - // Reset recall state. - m_Recall = false; - } - - CSourceHookImpl::CHookList::CIter::CIter(CHookList *pList) : m_pList(pList), m_pNext(NULL) - { - GoToBegin(); - } - CSourceHookImpl::CHookList::CIter::~CIter() - { - } - - void CSourceHookImpl::CHookList::CIter::Set(CIter *pOther) - { - m_Iter = pOther->m_Iter; - } - - void CSourceHookImpl::CHookList::CIter::GoToBegin() - { - m_Iter = m_pList->m_List.begin(); - SkipPaused(); - } - - void CSourceHookImpl::CHookList::CIter::GoToEnd() - { - m_Iter = m_pList->m_List.end(); - } - - bool CSourceHookImpl::CHookList::CIter::End() - { - if (!m_pList) - return false; - return m_Iter == m_pList->m_List.end(); - } - void CSourceHookImpl::CHookList::CIter::Next() - { - if (!m_pList || m_Iter == m_pList->m_List.end()) - return; - ++m_Iter; - SkipPaused(); - } - void CSourceHookImpl::CHookList::CIter::Clear() - { - m_pList = NULL; - } - void CSourceHookImpl::CHookList::CIter::SkipPaused() - { - while (m_Iter != m_pList->m_List.end() && m_Iter->paused) - ++m_Iter; - } - - ISHDelegate *CSourceHookImpl::CHookList::CIter::Handler() - { - return m_Iter->handler; - } - int CSourceHookImpl::CHookList::CIter::ThisPtrOffs() - { - return m_Iter->thisptr_offs; - } - - ////////////////////////////////////////////////////////////////////////// - // CProto - ////////////////////////////////////////////////////////////////////////// - char *CSourceHookImpl::CProto::DupProto(const char *p) - { - char *newproto; - if (*p) - { - size_t len = strlen(p); - newproto = new char[len+1]; - memcpy(newproto, p, len+1); - } else { - const ProtoInfo *pi1 = reinterpret_cast(p); - int *ar_copy = new int[pi1->numOfParams + 1]; - for (int i = 0; i <= pi1->numOfParams; i++) - ar_copy[i] = pi1->params[i]; - ProtoInfo *copy = new ProtoInfo(pi1->retTypeSize, pi1->numOfParams, ar_copy); - newproto = reinterpret_cast(copy); - } - - return newproto; - } - - void CSourceHookImpl::CProto::FreeProto(char *prot) - { - if (*prot) - { - delete [] prot; - } else { - ProtoInfo *pi = reinterpret_cast(prot); - delete [] pi->params; - delete pi; - } - } - - bool CSourceHookImpl::CProto::Equal(const char *p1, const char *p2) - { - if (*p1 && *p2) // Case1: Both old - { - // As in old versions - return strcmp(p1, p2) == 0; - } - else if (!*p1 && !*p2) // Case2: Both new - { - const ProtoInfo *pi1 = reinterpret_cast(p1); - const ProtoInfo *pi2 = reinterpret_cast(p2); - - if (pi1->retTypeSize == pi2->retTypeSize && - pi1->numOfParams == pi2->numOfParams) - { - // params[0] is 0 for "normal" functions and -1 for vararg functions - // params[1] is size of first parameter - // params[2] is size of second parameter ... - for (int i = 0; i <= pi1->numOfParams; ++i) - { - if (pi1->params[i] != pi2->params[i]) - return false; - } - return true; - } - else - { - return false; - } - } - else // Case3: Mixed old/new - { - // Trust the user - return true; - } - } - - - ////////////////////////////////////////////////////////////////////////// - // CHookManagerContainer - ////////////////////////////////////////////////////////////////////////// - void CSourceHookImpl::CHookManagerContainer::AddHookManager(Plugin plug, const CHookManagerInfo &hookman) - { - iterator iter; - // Check whether such a hook manager already exists; if yes, ignore. - for (iter = begin(); iter != end(); ++iter) - { - if (iter->m_Plug == plug && iter->m_Func == hookman.m_Func) - return; - } - - // It doesn't -> add it. Add it to the end of its version group. - for (iter = begin(); iter != end(); ++iter) - { - if (iter->m_HookManVersion < hookman.m_HookManVersion) - break; - } - - bool isBeginning = iter == begin(); - - insert(iter, hookman); - - // If we inserted it at the beginning and if the dam breaks open many years too soon - // and if there is more than one hookman and if the second one isn't empty, transfer - // hooks from second to first - - if (isBeginning && size() > 1) - { - iter = begin(); - iterator second = iter; - ++second; - - if (!second->m_VfnPtrs.empty()) - { - // Move the vfnptrs from the old hook manager to the new one - iter->m_VfnPtrs = second->m_VfnPtrs; - second->m_VfnPtrs.clear(); - - // Unregister the old one, register the new one - second->m_Func(HA_Unregister, NULL); - iter->m_Func(HA_Register, &(*iter)); - - // Go through all vfnptrs in this hookman and patch them to point to the new manager's handler! - // or whatever - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = iter->m_VfnPtrs.begin(); - vfnptr_iter != iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - // And DEREFERENCE newHookMan->m_HookfuncVfnptr! - // otherwise it will be executing the vtable... had to find out the hard way - *reinterpret_cast(vfnptr_iter->m_Ptr) = *reinterpret_cast(iter->m_HookfuncVfnptr); - } - } - } - } -} diff --git a/sourcehook/sourcehook.h b/sourcehook/sourcehook.h deleted file mode 100644 index 49e6813..0000000 --- a/sourcehook/sourcehook.h +++ /dev/null @@ -1,6104 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** -* @file sourcehook.h -* @brief Contains the public SourceHook API -*/ - -#ifndef __SOURCEHOOK_H__ -#define __SOURCEHOOK_H__ - -// Interface revisions: -// 1 - Initial revision -// 2 - Changed to virtual functions for iterators and all queries -// 3 - Added "hook loop status variable" -// 4 - Reentrant -#define SH_IFACE_VERSION 4 -#define SH_IMPL_VERSION 3 - -// Hookman version: -// 1 - Support for recalls, performance optimisations -#define SH_HOOKMAN_VERSION 1 - -// The value of SH_GLOB_SHPTR has to be a pointer to SourceHook::ISourceHook -// It's used in various macros -#ifndef SH_GLOB_SHPTR -#define SH_GLOB_SHPTR g_SHPtr -#endif - -// Used to identify the current plugin -#ifndef SH_GLOB_PLUGPTR -#define SH_GLOB_PLUGPTR g_PLID -#endif - -#ifdef SH_DEBUG -# include -# include - -# define SH_ASSERT(x, info) \ - do { \ - if (!(x)) \ - { \ - printf("SOURCEHOOK DEBUG ASSERTION FAILED: %s:%u(%s): %s: ", __FILE__, __LINE__, __FUNCTION__, #x); \ - printf info; \ - putchar('\n'); \ - abort(); \ - } \ - } while(0) - -#else -# define SH_ASSERT(x, info) -#endif - -// System -#define SH_SYS_WIN32 1 -#define SH_SYS_LINUX 2 - -#ifdef _WIN32 -# define SH_SYS SH_SYS_WIN32 -#elif defined __linux__ -# define SH_SYS SH_SYS_LINUX -#else -# error Unsupported system -#endif - -// Compiler -#define SH_COMP_GCC 1 -#define SH_COMP_MSVC 2 - -#ifdef _MSC_VER -# define SH_COMP SH_COMP_MSVC -#elif defined __GNUC__ -# define SH_COMP SH_COMP_GCC -#else -# error Unsupported compiler -#endif - -#if SH_COMP==SH_COMP_MSVC -# define vsnprintf _vsnprintf -#endif - -#if SH_SYS != SH_SYS_WIN32 -# include -#endif - -#define SH_PTRSIZE sizeof(void*) - -#include "FastDelegate.h" -#include "sh_memfuncinfo.h" - -// Good old metamod! - -// Flags returned by a plugin's api function. -// NOTE: order is crucial, as greater/less comparisons are made. -enum META_RES -{ - MRES_IGNORED=0, // plugin didn't take any action - MRES_HANDLED, // plugin did something, but real function should still be called - MRES_OVERRIDE, // call real function, but use my return value - MRES_SUPERCEDE // skip real function; use my return value -}; - - -namespace SourceHook -{ - /** - * @brief Specifies the size (in bytes) for the internal buffer of vafmt(printf-like) function handlers - */ - const int STRBUF_LEN=4096; - - /** - * @brief An empty class. No inheritance used. Used for original-function-call hacks - */ - class EmptyClass - { - }; - - /** - * @brief Implicit cast. - */ - template - inline Out implicit_cast(In input) - { - return input; - } - - /** - * @brief A plugin typedef - * - * SourceHook doesn't really care what this is. As long as the ==, != and = operators work on it and every - * plugin has a unique identifier, everything is ok. - * It should also be possible to set it to 0. - */ - typedef int Plugin; - - struct ProtoInfo - { - ProtoInfo(int rtsz, int nop, const int *p) : beginningNull(0), retTypeSize(rtsz), numOfParams(nop), params(p) - { - } - int beginningNull; //!< To distinguish from old protos (which never begin with 0) - int retTypeSize; //!< 0 if void - int numOfParams; //!< number of parameters - const int *params; //!< params[0]=0 (or -1 for vararg), params[1]=size of first param, ... - }; - - /** - * @brief Specifies the actions for hook managers - */ - enum HookManagerAction - { - HA_GetInfo = 0, //!< Store info about the hook manager - HA_Register, //!< Save the IHookManagerInfo pointer for future reference - HA_Unregister //!< Clear the saved pointer - }; - - struct IHookManagerInfo; - - /** - * @brief Pointer to hook manager interface function - * - * A "hook manager" is a the only thing that knows the actual protoype of the function at compile time. - * - * @param ha What the hook manager should do - * @param hi A pointer to IHookManagerInfo - */ - typedef int (*HookManagerPubFunc)(HookManagerAction ha, IHookManagerInfo *hi); - - class ISHDelegate - { - public: - virtual void DeleteThis() = 0; // Ugly, I know - virtual bool IsEqual(ISHDelegate *other) = 0; - }; - - template class CSHDelegate : public ISHDelegate - { - T m_Deleg; - public: - CSHDelegate(T deleg) : m_Deleg(deleg) - { - } - - CSHDelegate(const CSHDelegate &other) : m_Deleg(other.m_Deleg) - { - } - - void DeleteThis() - { - delete this; - } - - bool IsEqual(ISHDelegate *other) - { - return static_cast* >(other)->GetDeleg() == GetDeleg(); - } - - T &GetDeleg() - { - return m_Deleg; - } - }; - - struct IHookList - { - struct IIter - { - virtual bool End() = 0; - virtual void Next() = 0; - virtual ISHDelegate *Handler() = 0; - virtual int ThisPtrOffs() = 0; - }; - virtual IIter *GetIter() = 0; - virtual void ReleaseIter(IIter *pIter) = 0; - }; - - struct IIface - { - virtual void *GetPtr() = 0; - virtual IHookList *GetPreHooks() = 0; - virtual IHookList *GetPostHooks() = 0; - }; - - struct IVfnPtr - { - virtual void *GetVfnPtr() = 0; - virtual void *GetOrigEntry() = 0; - - virtual IIface *FindIface(void *ptr) = 0; - }; - - struct IHookManagerInfo - { - virtual IVfnPtr *FindVfnPtr(void *vfnptr) = 0; - - virtual void SetInfo(int vtbloffs, int vtblidx, const char *proto) = 0; - virtual void SetHookfuncVfnptr(void *hookfunc_vfnptr) = 0; - - // Added 23.12.2005 (yup! I'm coding RIGHT BEFORE CHRISTMAS!) - // If the hookman doesn't set this, it defaults 0 - // SourceHook prefers hookmans with higher version numbers - virtual void SetVersion(int version) = 0; - }; - - class AutoHookIter - { - IHookList *m_pList; - IHookList::IIter *m_pIter; - public: - AutoHookIter(IHookList *pList) - : m_pList(pList), m_pIter(pList->GetIter()) - { - } - - ~AutoHookIter() - { - if (m_pList) - m_pList->ReleaseIter(m_pIter); - } - - bool End() - { - return m_pIter->End(); - } - - void Next() - { - m_pIter->Next(); - } - - ISHDelegate *Handler() - { - return m_pIter->Handler(); - } - - int ThisPtrOffs() - { - return m_pIter->ThisPtrOffs(); - } - - void SetToZero() - { - m_pList = 0; - } - }; - - template struct CallClass - { - virtual B *GetThisPtr() = 0; - virtual void *GetOrigFunc(int vtbloffs, int vtblidx) = 0; - }; - - typedef CallClass GenericCallClass; - typedef CallClass ManualCallClass; - - // 09.08.2008 (6 AM, I just woke up, the others are still sleeping so i finally can use this notebook !!) - // - Today is an important day. - // I'm adding support for functions which return references. - - // How it works: - // SH_SETUPCALLS doesn't use plain rettype to store the temporary return values (plugin ret, orig ret, - // override ret) anymore; instead, it uses SourceHook::ReferenceCarrier::type - // this is typedefed to the original rettype normally, but if the rettype is a reference, it's a special class - // which stores the reference as a pointer, and implements constructors, operator= and a conversion operator. - // special cases were needed for getoverrideret / getorigret; these are implemented through the - // SourceHook::MacroRefHelpers structs. - // Furthermore, SetOverrideRet had to be changed a bit; see SourceHook::OverrideFunctor somewhere down in this file. - template struct ReferenceCarrier - { - typedef T type; - }; - - template struct ReferenceCarrier - { - class type - { - T *m_StoredRef; - public: - type() : m_StoredRef(NULL) - { - } - type(T& ref) : m_StoredRef(&ref) - { - } - - T& operator= (T& ref) - { - m_StoredRef = &ref; - return ref; - } - - operator T& () const - { - return *m_StoredRef; - } - }; - }; - - /** - * @brief The main SourceHook interface - */ - class ISourceHook - { - public: - /** - * @brief Return interface version - */ - virtual int GetIfaceVersion() = 0; - - /** - * @brief Return implementation version - */ - virtual int GetImplVersion() = 0; - - /** - * @brief Add a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param ifacesize The size of the class iface points to - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool AddHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Removes a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool RemoveHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Checks whether a plugin has (a) hook manager(s) that is/are currently used by other plugins - * - * @param plug The unique identifier of the plugin in question - */ - virtual bool IsPluginInUse(Plugin plug) = 0; - - /** - * @brief Return a pointer to a callclass. Generate a new one if required. - * - * @param iface The interface pointer - * @param size Size of the class instance - */ - virtual GenericCallClass *GetCallClass(void *iface, size_t size) = 0; - - /** - * @brief Release a callclass - * - * @param ptr Pointer to the callclass - */ - virtual void ReleaseCallClass(GenericCallClass *ptr) = 0; - - virtual void SetRes(META_RES res) = 0; //!< Sets the meta result - virtual META_RES GetPrevRes() = 0; //!< Gets the meta result of the - //!< previously calledhandler - virtual META_RES GetStatus() = 0; //!< Gets the highest meta result - virtual const void *GetOrigRet() = 0; //!< Gets the original result. - //!< If not in post function, undefined - virtual const void *GetOverrideRet() = 0; //!< Gets the override result. - //!< If none is specified, NULL - virtual void *GetIfacePtr() = 0; //!< Gets the interface pointer - ////////////////////////////////////////////////////////////////////////// - // For hook managers - virtual void HookLoopBegin(IIface *pIface) = 0; //!< Should be called when a hook loop begins - virtual void HookLoopEnd() = 0; //!< Should be called when a hook loop exits - virtual void SetCurResPtr(META_RES *mres) = 0; //!< Sets pointer to the current meta result - virtual void SetPrevResPtr(META_RES *mres) = 0; //!< Sets pointer to previous meta result - virtual void SetStatusPtr(META_RES *mres) = 0; //!< Sets pointer to the status variable - virtual void SetIfacePtrPtr(void **pp) = 0; //!< Sets pointer to the interface this pointer - virtual void SetOrigRetPtr(const void *ptr) = 0; //!< Sets the original return pointer - virtual void SetOverrideRetPtr(void *ptr) = 0; //!< Sets the override result pointer - virtual bool ShouldContinue() = 0; //!< Returns false if the hook loop should exit - - /** - * @brief Remove a hook manager. Auto-removes all hooks attached to it from plugin plug. - * - * @param plug The owner of the hook manager - * @param pubFunc The hook manager's info function - */ - virtual void RemoveHookManager(Plugin plug, HookManagerPubFunc pubFunc) = 0; - - virtual void DoRecall() = 0; //!< Initiates a recall sequence - /* - HOW RECALLS WORK: - - The problem: - Users want the ability to change parameters of the called function - from inside their handler. - The solution: - 1) Mark as "recall" - 2) Recall the function - 3) => SH's hook func gets called: - 4) The first iterator points at the first hook the last hookfunc didn't execute yet - 5) does all iteration and returns normally - 6) The user's handler returns immediately - 7) The hook func returns immediately as well - - Also note that the recalled hookfunc starts with the status the recalling hookfunc - ended with. The last handler (doing the recall) is also able to specify its own - META_RES. - */ - - virtual void *GetOverrideRetPtr() = 0; //!< Returns the pointer set by SetOverrideRetPtr - - /** - * @brief Set up the hook loop. Equivalent to calling: - * SetStatusPtr, SetPrevResPtr, SetCurResPtr, SetIfacePtrPtr, SetOrigRetPtr, Get/SetOverrideRetPtr - * - * @param statusPtr pointer to status variable - * @param prevResPtr pointer to previous result variable - * @param curResPtr pointer to current result variable - * @param ifacePtrPtr pointer to interface this pointer variable - * @param origRetPr pointer to original return value variable. NULL for void funcs - * @param overrideRetPtr pointer to override return value variable. NULL for void funcs - * - * @return Override Return Pointer the hookfunc should use (may differ from overrideRetPtr - * when the hook func is being called as part of a recall - */ - virtual void *SetupHookLoop(META_RES *statusPtr, META_RES *prevResPtr, META_RES *curResPtr, - void **ifacePtrPtr, const void *origRetPtr, void *overrideRetPtr) = 0; - - //!< - }; - - // For META_RESULT_ORIG_RET and META_RESULT_OVERRIDE_RET: - // These have to be able to return references. If T is a reference, the pointers returned - // from the SH_GLOB_SHPTR are pointers to instances of ReferenceCarrier::type. - template struct MacroRefHelpers - { - inline static const T* GetOrigRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOrigRet()); - } - inline static const T* GetOverrideRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOverrideRet()); - } - }; - - template struct MacroRefHelpers - { - inline static T* GetOrigRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOrigRet()); - return &ref; - } - inline static T* GetOverrideRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOverrideRet()); - return &ref; - } - }; -} - -/************************************************************************/ -/* High level interface */ -/************************************************************************/ -#define META_RESULT_STATUS SH_GLOB_SHPTR->GetStatus() -#define META_RESULT_PREVIOUS SH_GLOB_SHPTR->GetPrevRes() -#define META_RESULT_ORIG_RET(type) *SourceHook::MacroRefHelpers::GetOrigRet(SH_GLOB_SHPTR) -#define META_RESULT_OVERRIDE_RET(type) *SourceHook::MacroRefHelpers::GetOverrideRet(SH_GLOB_SHPTR) -#define META_IFACEPTR(type) reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()) - -#define SET_META_RESULT(result) SH_GLOB_SHPTR->SetRes(result) -#define RETURN_META(result) do { SET_META_RESULT(result); return; } while(0) -#define RETURN_META_VALUE(result, value) do { SET_META_RESULT(result); return (value); } while(0) - -// If a hook on a function which returns a reference does not want to specify a return value, -// it can use this macro. -// ONLY USE THIS WITH MRES_IGNORED AND MRES_HANDLED !!! -#define RETURN_META_NOREF(result, rettype) do { SET_META_RESULT(result); return reinterpret_cast(*SH_GLOB_SHPTR); } while(0) - -// only call these from the hook handlers directly! -// :TODO: enforce it ? - -// Why take a memfuncptr instead of iface and func when we have to deduce the iface anyway now? -// Well, without it, there'd be no way to specify which overloaded version we want in _VALUE - -// SourceHook::SetOverrideRet is defined later. -#define RETURN_META_NEWPARAMS(result, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_NEWPARAMS(result, value, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* meh, set the override result here because we don't get a chance to return */ \ - /* before continuing the hook loop through the recall */ \ - SourceHook::SetOverrideResult(memfuncptr)(SH_GLOB_SHPTR, value); \ - } \ - RETURN_META_VALUE(MRES_SUPERCEDE, \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams); \ - } while (0) - -// :TODO: thisptroffs in MNEWPARAMS ?? - -#if SH_COMP == SH_COMP_MSVC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - void *addr; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; - -#elif SH_COMP == SH_COMP_GCC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.s.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; \ - u.s.adjustor = 0; - -#endif - -#define RETURN_META_MNEWPARAMS(result, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - (thisptr->*(u.mfp)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_MNEWPARAMS(result, value, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* see RETURN_META_VALUE_NEWPARAMS */ \ - SourceHook::SetOverrideResult(SH_GLOB_SHPTR, value); \ - } \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - RETURN_META_VALUE(MRES_SUPERCEDE, (thisptr->*(u.mfp)) newparams); \ - } while (0) - -/** -* @brief Get/generate callclass for an interface pointer -* -* @param ifaceptr The interface pointer -*/ -template -inline SourceHook::CallClass *SH_GET_CALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), sizeof(ifacetype))); -} - -template -inline SourceHook::CallClass *SH_GET_MCALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr, int ifacesize) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), ifacesize)); -} - -template -inline void SH_RELEASE_CALLCLASS_R(SourceHook::ISourceHook *shptr, SourceHook::CallClass *ptr) -{ - shptr->ReleaseCallClass(reinterpret_cast(ptr)); -} - -#define SH_MANUALHOOK_RECONFIGURE(hookname, pvtblindex, pvtbloffs, pthisptroffs) \ - do { \ - SH_GLOB_SHPTR->RemoveHookManager(SH_GLOB_PLUGPTR, SH_MFHCls(hookname)::HookManPubFunc); \ - SH_MFHCls(hookname)::ms_MFI.thisptroffs = pthisptroffs; \ - SH_MFHCls(hookname)::ms_MFI.vtblindex = pvtblindex; \ - SH_MFHCls(hookname)::ms_MFI.vtbloffs = pvtbloffs; \ - } while (0) - -#define SH_GET_CALLCLASS(ptr) SH_GET_CALLCLASS_R(SH_GLOB_SHPTR, ptr) -#define SH_GET_MCALLCLASS(ptr, size) SH_GET_MCALLCLASS_R(SH_GLOB_SHPTR, reinterpret_cast(ptr), size) -#define SH_RELEASE_CALLCLASS(ptr) SH_RELEASE_CALLCLASS_R(SH_GLOB_SHPTR, ptr) - -#define SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHAdd##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_ADD_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHRemove##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_REMOVE_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_ADD_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMAdd##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_ADD_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMRemove##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_REMOVE_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_NOATTRIB - - - - -#if SH_COMP == SH_COMP_MSVC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; -#elif SH_COMP == SH_COMP_GCC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; \ - reinterpret_cast(&mfp)[1] = 0; -#else -# error Not supported yet. -#endif - -////////////////////////////////////////////////////////////////////////// -#define SH_FHCls(ift, iff, ov) __SourceHook_FHCls_##ift##iff##ov -#define SH_MFHCls(hookname) __SourceHook_MFHCls_##hookname - -#define SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) \ - SH_FHCls(ifacetype,ifacefunc,overload)() \ - { \ - GetFuncInfo(funcptr, ms_MFI); \ - } \ - \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - GetFuncInfo(funcptr, ms_MFI); \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_FHCls(ifacetype,ifacefunc,overload)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -// It has to be possible to use the macros in namespaces -// -> So we need to access and extend the global SourceHook namespace -// We use a namespace alias for this -#define SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, funcptr) \ - struct SH_FHCls(ifacetype,ifacefunc,overload) \ - { \ - static SH_FHCls(ifacetype,ifacefunc,overload) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) - -#define SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, funcptr) \ - }; \ - SH_FHCls(ifacetype,ifacefunc,overload) SH_FHCls(ifacetype,ifacefunc,overload)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_FHCls(ifacetype,ifacefunc,overload)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_FHCls(ifacetype,ifacefunc,overload)::ms_HI; \ - bool __SourceHook_FHAdd##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0 || !mfi.isVirtual) \ - return false; /* No non-virtual functions / virtual inheritance supported */ \ - \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, \ - new CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHRemove##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0) \ - return false; /* No virtual inheritance supported */ \ - \ - CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, &tmp, post); \ - } \ - -#define SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - struct SH_MFHCls(hookname) \ - { \ - static SH_MFHCls(hookname) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - \ - SH_MFHCls(hookname)() \ - { \ - ms_MFI.isVirtual = true; \ - ms_MFI.thisptroffs = pthisptroffs; \ - ms_MFI.vtblindex = pvtblidx; \ - ms_MFI.vtbloffs = pvtbloffs; \ - } \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - /* we don't set ms_MFI here because manual hookmans can be reconfigured */ \ - /* :FIXME: possible problem: someone adding a hook from a constructor of a global entity */ \ - /* which is construced before SH_MFHCls(hookname)() gets called? */ \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_MFHCls(hookname)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -#define SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - }; \ - SH_MFHCls(hookname) SH_MFHCls(hookname)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_MFHCls(hookname)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_MFHCls(hookname)::ms_HI; \ - bool __SourceHook_FHMAdd##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, \ - new ::SourceHook::CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHMRemove##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - ::SourceHook::CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, &tmp, post); \ - } \ - - -#define SH_SETUPCALLS(rettype, paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - return (reinterpret_cast(this)->*mfp)params; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - typedef ReferenceCarrier::type my_rettype; \ - my_rettype orig_ret; \ - my_rettype override_ret; \ - my_rettype plugin_ret; \ - void* ifptr; \ - my_rettype *pOverrideRet = reinterpret_cast(SH_GLOB_SHPTR->SetupHookLoop( \ - &status, &prev_res, &cur_res, &ifptr, &orig_ret, &override_ret)); - -#define SH_CALL_HOOKS(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - plugin_ret = reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (cur_res >= MRES_OVERRIDE) \ - *pOverrideRet = plugin_ret; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG(rettype, paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - orig_ret = (reinterpret_cast(this)->*mfp)params; \ - } \ - else \ - orig_ret = override_ret; \ - -#define SH_RETURN() \ - SH_GLOB_SHPTR->HookLoopEnd(); \ - return status >= MRES_OVERRIDE ? *pOverrideRet : orig_ret; - -#define SH_HANDLEFUNC(paramtypes, params, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params) \ - SH_CALL_HOOKS(pre, params) \ - SH_CALL_ORIG(rettype, paramtypes, params) \ - SH_CALL_HOOKS(post, params) \ - SH_RETURN() - -////////////////////////////////////////////////////////////////////////// -#define SH_SETUPCALLS_void(paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - return; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - void* ifptr; \ - SH_GLOB_SHPTR->SetupHookLoop(&status, &prev_res, &cur_res, &ifptr, NULL, NULL); \ - -#define SH_CALL_HOOKS_void(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG_void(paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - } - -#define SH_RETURN_void() \ - SH_GLOB_SHPTR->HookLoopEnd(); - -#define SH_HANDLEFUNC_void(paramtypes, params) \ - SH_SETUPCALLS_void(paramtypes, params) \ - SH_CALL_HOOKS_void(pre, params) \ - SH_CALL_ORIG_void(paramtypes, params) \ - SH_CALL_HOOKS_void(post, params) \ - SH_RETURN_void() - - -// Special vafmt handlers -// :TODO: what -#define SH_HANDLEFUNC_vafmt(paramtypes, params_orig, params_plug, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(pre, params_plug) \ - SH_CALL_ORIG(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(post, params_plug) \ - SH_RETURN() - -#define SH_HANDLEFUNC_void_vafmt(paramtypes, params_orig, params_plug) \ - SH_SETUPCALLS_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(pre, params_plug) \ - SH_CALL_ORIG_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(post, params_plug) \ - SH_RETURN_void() - -////////////////////////////////////////////////////////////////////////// - -// :FIXME: -// sizeof on references returns the size of the datatype, NOT the pointer size or something -// -> one should probably flag references in __SourceHook_ParamSizes_* ! -// or simply assume that their size is sizeof(void*)=SH_PTRSIZE... could be doable through a simple template - - -// ********* Support for 0 arguments ********* -#define SH_DECL_HOOK0(ifacetype, ifacefunc, attr, overload, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate0 FD; \ - virtual rettype Func() \ - { SH_HANDLEFUNC((), (), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_void(ifacetype, ifacefunc, attr, overload) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate0<> FD; \ - virtual void Func() \ - { SH_HANDLEFUNC_void((), ()); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_vafmt(ifacetype, ifacefunc, attr, overload, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((...), ("%s", buf), (buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_void_vafmt(ifacetype, ifacefunc, attr, overload) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((...), ("%s", buf), (buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK0(hookname, vtblidx, vtbloffs, thisptroffs, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate0 FD; \ - virtual rettype Func() \ - { SH_HANDLEFUNC((), (), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK0_void(hookname, vtblidx, vtbloffs, thisptroffs) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate0<> FD; \ - virtual void Func() \ - { SH_HANDLEFUNC_void((), ()); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 0, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 1 arguments ********* -#define SH_DECL_HOOK1(ifacetype, ifacefunc, attr, overload, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(param1 p1) \ - { SH_HANDLEFUNC((param1), (p1), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_void(ifacetype, ifacefunc, attr, overload, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(param1 p1) \ - { SH_HANDLEFUNC_void((param1), (p1)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, ...), (p1, "%s", buf), (p1, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_void_vafmt(ifacetype, ifacefunc, attr, overload, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, ...), (p1, "%s", buf), (p1, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK1(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(param1 p1) \ - { SH_HANDLEFUNC((param1), (p1), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK1_void(hookname, vtblidx, vtbloffs, thisptroffs, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(param1 p1) \ - { SH_HANDLEFUNC_void((param1), (p1)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 1, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 2 arguments ********* -#define SH_DECL_HOOK2(ifacetype, ifacefunc, attr, overload, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC((param1, param2), (p1, p2), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_void(ifacetype, ifacefunc, attr, overload, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC_void((param1, param2), (p1, p2)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, ...), (p1, p2, "%s", buf), (p1, p2, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, ...), (p1, p2, "%s", buf), (p1, p2, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK2(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC((param1, param2), (p1, p2), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK2_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC_void((param1, param2), (p1, p2)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 2, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 3 arguments ********* -#define SH_DECL_HOOK3(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC((param1, param2, param3), (p1, p2, p3), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC_void((param1, param2, param3), (p1, p2, p3)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, ...), (p1, p2, p3, "%s", buf), (p1, p2, p3, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, ...), (p1, p2, p3, "%s", buf), (p1, p2, p3, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK3(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC((param1, param2, param3), (p1, p2, p3), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK3_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC_void((param1, param2, param3), (p1, p2, p3)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 3, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 4 arguments ********* -#define SH_DECL_HOOK4(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC((param1, param2, param3, param4), (p1, p2, p3, p4), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4), (p1, p2, p3, p4)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, ...), (p1, p2, p3, p4, "%s", buf), (p1, p2, p3, p4, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, ...), (p1, p2, p3, p4, "%s", buf), (p1, p2, p3, p4, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK4(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC((param1, param2, param3, param4), (p1, p2, p3, p4), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK4_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4), (p1, p2, p3, p4)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 4, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 5 arguments ********* -#define SH_DECL_HOOK5(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, ...), (p1, p2, p3, p4, p5, "%s", buf), (p1, p2, p3, p4, p5, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, ...), (p1, p2, p3, p4, p5, "%s", buf), (p1, p2, p3, p4, p5, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK5(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK5_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 5, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 6 arguments ********* -#define SH_DECL_HOOK6(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, ...), (p1, p2, p3, p4, p5, p6, "%s", buf), (p1, p2, p3, p4, p5, p6, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, ...), (p1, p2, p3, p4, p5, p6, "%s", buf), (p1, p2, p3, p4, p5, p6, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK6(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK6_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 6, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 7 arguments ********* -#define SH_DECL_HOOK7(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, ...), (p1, p2, p3, p4, p5, p6, p7, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, ...), (p1, p2, p3, p4, p5, p6, p7, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK7(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK7_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 7, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 8 arguments ********* -#define SH_DECL_HOOK8(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, ...), (p1, p2, p3, p4, p5, p6, p7, p8, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, ...), (p1, p2, p3, p4, p5, p6, p7, p8, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK8(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK8_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 8, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 9 arguments ********* -#define SH_DECL_HOOK9(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK9(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK9_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 9, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 10 arguments ********* -#define SH_DECL_HOOK10(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK10(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK10_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 10, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 11 arguments ********* -#define SH_DECL_HOOK11(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK11(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK11_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 11, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 12 arguments ********* -#define SH_DECL_HOOK12(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK12(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK12_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 12, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 13 arguments ********* -#define SH_DECL_HOOK13(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK13(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK13_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 13, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 14 arguments ********* -#define SH_DECL_HOOK14(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK14(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK14_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 14, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 15 arguments ********* -#define SH_DECL_HOOK15(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK15(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK15_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 15, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 16 arguments ********* -#define SH_DECL_HOOK16(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK16(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK16_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 16, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 17 arguments ********* -#define SH_DECL_HOOK17(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK17(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK17_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 17, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 18 arguments ********* -#define SH_DECL_HOOK18(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK18(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK18_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 18, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 19 arguments ********* -#define SH_DECL_HOOK19(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK19(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK19_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 19, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 20 arguments ********* -#define SH_DECL_HOOK20(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate21 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate21 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK20(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK20_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 20, __SourceHook_ParamSizesM_##hookname); \ - - - - -////////////////////////////////////////////////////////////////////////// -// SH_CALL - -#if SH_COMP == SH_COMP_MSVC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = origfunc; \ - \ - void *adjustedthisptr = reinterpret_cast(reinterpret_cast(m_CC->GetThisPtr()) + mfi.thisptroffs); \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *adjustedthisptr = reinterpret_cast(m_CC->GetThisPtr()) + m_ThisPtrOffs; \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.addr) \ - u.addr = (*reinterpret_cast(adjustedthisptr + m_VtblOffs))[m_VtblIdx]; \ - \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -#elif SH_COMP == SH_COMP_GCC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = origfunc; \ - u.s.adjustor = mfi.thisptroffs; \ - \ - return (reinterpret_cast(m_CC->GetThisPtr())->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *thisptr = reinterpret_cast(m_CC->GetThisPtr()); \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.s.addr) \ - u.s.addr = (*reinterpret_cast(thisptr + m_ThisPtrOffs + m_VtblOffs))[m_VtblIdx]; \ - \ - u.s.adjustor = m_ThisPtrOffs; \ - return (reinterpret_cast(thisptr)->*u.mfpnew)call; \ -} - -#endif - -namespace SourceHook -{ - - // Support for 0 arguments - template class ExecutableClass0 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass0(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()() const - SH_MAKE_EXECUTABLECLASS_OB((), ()) - - - template RetType operator()(Param1 p1) const - SH_MAKE_EXECUTABLECLASS_OB((p1), (Param1)) - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass0 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass0(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()() const - SH_MAKE_MEXECUTABLECLASS_OB((), ()) - - - template RetType operator()(Param1 p1) const - SH_MAKE_MEXECUTABLECLASS_OB((p1), (Param1)) - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 1 arguments - template class ExecutableClass1 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass1(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1) const - SH_MAKE_EXECUTABLECLASS_OB((p1), (Param1)) - - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass1 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass1(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1) const - SH_MAKE_MEXECUTABLECLASS_OB((p1), (Param1)) - - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 2 arguments - template class ExecutableClass2 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass2(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass2 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass2(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 3 arguments - template class ExecutableClass3 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass3(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass3 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass3(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 4 arguments - template class ExecutableClass4 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass4(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass4 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass4(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 5 arguments - template class ExecutableClass5 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass5(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass5 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass5(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 6 arguments - template class ExecutableClass6 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass6(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass6 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass6(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 7 arguments - template class ExecutableClass7 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass7(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass7 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass7(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 8 arguments - template class ExecutableClass8 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass8(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass8 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass8(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 9 arguments - template class ExecutableClass9 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass9(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass9 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass9(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 10 arguments - template class ExecutableClass10 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass10(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass10 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass10(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 11 arguments - template class ExecutableClass11 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass11(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass11 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass11(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 12 arguments - template class ExecutableClass12 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass12(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass12 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass12(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 13 arguments - template class ExecutableClass13 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass13(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass13 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass13(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 14 arguments - template class ExecutableClass14 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass14(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass14 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass14(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 15 arguments - template class ExecutableClass15 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass15(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass15 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass15(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 16 arguments - template class ExecutableClass16 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass16(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass16 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass16(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 17 arguments - template class ExecutableClass17 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass17(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass17 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass17(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 18 arguments - template class ExecutableClass18 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass18(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass18 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass18(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 19 arguments - template class ExecutableClass19 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass19(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass19 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass19(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 20 arguments - template class ExecutableClass20 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass20(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - - }; - - template class MExecutableClass20 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass20(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - - }; - - -} - -// SH_CALL needs to deduce the return type -> it uses templates and function overloading -// That's why SH_CALL takes two parameters: "mfp2" of type RetType(X::*mfp)(params), and "mfp" of type MFP -// The only purpose of the mfp2 parameter is to extract the return type - - -// Support for 0 arguments -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)()) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)()const) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::MExecutableClass0 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass0(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 1 arguments -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1)) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1)const) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::MExecutableClass1 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass1(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 2 arguments -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2)) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2)const) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::MExecutableClass2 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass2(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 3 arguments -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3)) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3)const) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::MExecutableClass3 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass3(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 4 arguments -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4)) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4)const) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::MExecutableClass4 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass4(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 5 arguments -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5)) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5)const) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::MExecutableClass5 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass5(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 6 arguments -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6)) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6)const) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::MExecutableClass6 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass6(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 7 arguments -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)const) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::MExecutableClass7 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass7(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 8 arguments -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)const) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::MExecutableClass8 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass8(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 9 arguments -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)const) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::MExecutableClass9 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass9(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 10 arguments -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)const) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::MExecutableClass10 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass10(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 11 arguments -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)const) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::MExecutableClass11 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass11(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 12 arguments -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)const) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::MExecutableClass12 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass12(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 13 arguments -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)const) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::MExecutableClass13 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass13(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 14 arguments -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)const) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::MExecutableClass14 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass14(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 15 arguments -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)const) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::MExecutableClass15 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass15(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 16 arguments -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)const) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::MExecutableClass16 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass16(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 17 arguments -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)const) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::MExecutableClass17 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass17(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 18 arguments -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)const) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::MExecutableClass18 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass18(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 19 arguments -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)const) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::MExecutableClass19 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass19(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 20 arguments -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)const) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::MExecutableClass20 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass20(ptr, vtbloffs, vtblidx, thisptroffs); -} - - -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 -// GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it - - -// Support for 0 arguments -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(...)) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(...)const) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - - -// Support for 1 arguments -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, ...)) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, ...)const) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - - -// Support for 2 arguments -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, ...)) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, ...)const) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - - -// Support for 3 arguments -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, ...)) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, ...)const) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - - -// Support for 4 arguments -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, ...)) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, ...)const) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - - -// Support for 5 arguments -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...)) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...)const) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - - -// Support for 6 arguments -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...)) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...)const) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - - -// Support for 7 arguments -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...)) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...)const) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - - -// Support for 8 arguments -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...)) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...)const) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - - -// Support for 9 arguments -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...)) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...)const) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - - -// Support for 10 arguments -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...)) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...)const) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - - -// Support for 11 arguments -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...)) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...)const) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - - -// Support for 12 arguments -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...)) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...)const) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - - -// Support for 13 arguments -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...)) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...)const) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - - -// Support for 14 arguments -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...)) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...)const) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - - -// Support for 15 arguments -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...)) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...)const) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - - -// Support for 16 arguments -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...)) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...)const) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - - -// Support for 17 arguments -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...)) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...)const) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - - -// Support for 18 arguments -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...)) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...)const) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - - -// Support for 19 arguments -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...)) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...)const) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - - -// Support for 20 arguments -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...)) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...)const) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - - - -#endif - -#define SH_CALL(ptr, mfp) SH_CALL2((ptr), (mfp), (mfp)) -#define SH_MCALL(ptr, mhookname) SH_MCALL2((ptr), SH_MFHCls(mhookname)::ECMFP(), SH_MFHCls(mhookname)::ms_MFI.vtblindex, \ - SH_MFHCls(mhookname)::ms_MFI.vtbloffs, SH_MFHCls(mhookname)::ms_MFI.thisptroffs) - -#undef SH_MAKE_EXECUTABLECLASS_OB - -////////////////////////////////////////////////////////////////////////// -// SetOverrideRet and RecallGetIface for recalls -// These take a ISourceHook pointer instead of using SH_GLOB_SHPTR directly -// The reason is that the user may want to redefine SH_GLOB_SHPTR - then the macros -// (META_RETURN_VALUE_NEWPARAMS) should obey the new pointer. - -namespace SourceHook -{ - template - void SetOverrideResult(ISourceHook *shptr, const RetType res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - - // SetOverrideResult used to be implemented like this: - // SetOverrideResult(shptr, memfuncptr, return); - // normally the compiler can deduce the return type from memfuncptr, but (at least msvc8) failed when it was a reference - // (it thought it was ambigous - the ref and non-ref type) - // so now SetOverrideResult(memfuncptr) deduces the ret type, and returns a functor which does the work - // new syntax: SetOverrideResult(memfuncptr)(shptr, return) - // This also allows us to create a special version for references which respects ReferenceCarrier. - - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - }; - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T &res) - { - // overrideretptr points to ReferenceCarrier - *reinterpret_cast::type *>(shptr->GetOverrideRetPtr()) = res; - } - }; - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)()) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)()) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - -} - -#endif - // The pope is dead. -> :( diff --git a/sourcehook/sourcehook_impl.h b/sourcehook/sourcehook_impl.h deleted file mode 100644 index 2c30900..0000000 --- a/sourcehook/sourcehook_impl.h +++ /dev/null @@ -1,659 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -#ifndef __SOURCEHOOK_IMPL_H__ -#define __SOURCEHOOK_IMPL_H__ - -#include "sourcehook.h" -#include "sh_list.h" -#include "sh_vector.h" -#include "sh_tinyhash.h" -#include "sh_stack.h" - -/* - -IMPLEMENTATION INFO - ---------------------------------------- -Protos ("Prototypes") - The purpose of protos is to provide the amount of type information about a function - which is required to be able to execute a function call without corrupting the stack. - Our protos do not fully do this, but they provide the size of the return value, the number of - parameters, and the size of each parameter, which is enough for most situations. - - There are two version of protos: - OLD: - C-Style strings. - - 0_void: - "attrib" - 1_void: - "attrib|param1_type" - 2_void: - "attrib|param1_type|param2_type - 0: - "attrib|ret_type" - 1: - "attrib|ret_type|param1_type" - 2: - "attrib|ret_type|param2_type" - - Old protos are deprecated. - - NEW: - New protos are in fact pointers to the ProtoInfo structure (see sourcehook.h) - - Old protos begin with a non-zero byte, new protos begin with a zero byte. - - Protos are usually stored in a CProto instance. - ---------------------------------------- -Hook managers and hook manager containers - Each hookman container is tied to _one_ proto/vtable index/vtable offset info. - Hookman containers then contain a list of hook managers provided by plugins, sorted by version. - (higher versions come first) - - Duplicate hook managers are ignored (ie. hook managers where proto, vtable index, vtable offset, - plugin, version are the same as in an already exisiting hook manager) - - A new hook manager is always added to the end of the version group in the corresponding - hook container. - - If the new hook manager was added to the beginning of the container (which only happens if - it is the first one or if it has a higher version than the previously first hook manager), - the now second hook manager is shut down and the new hook manager takes its job. - - A "hook manager container id" (HMCI) consits of three values: proto, vtbl index, vtbl offset. ---------------------------------------- -Hooks - When adding a hook, first the proposed hook manager is added to the corresponding - hook manager container as described above. - - Then the first hook manager in the the manhook container is chosen to handle the function. - - Removing a hook does not neccessarily unreigster the plugin's hook manager. In order to do this, - use RemoveHookManager or UnloadPlugin/ - - Hooks can be paused - they remain in memory but they are not called. In SH, the hook iterator - classes handle pausing transparently. - - The hook loop is supposed to call ShouldContinue before each iteration. This makes hook handlers - able to remove themselves. - ---------------------------------------- -Call classes - Call classes are identified by a this pointer and an instance size - - We use the instance size because a derived class instance and a base class instance could - have the same this pointers, and we want to avoid that the derived class - (which could be bigger) gets the same callclass as the base class (mainly if the - base class' callclass was requested first). - - Call classes are reference counted. - - The original function pointers are stored in a vector (in order to allow fast random access). - These vectors are stored as the value type of a hash. The key type is int and represents the - vtable offset. - - If the hash key doesn't exist or the vtblidx is out of range or the corresponding element in the - vector is NULL, there is no hook on that function. - ---------------------------------------- -Recalls - Recalls are used for the META_RETURN_(VALUE_)NEWPARAMS macros, ie. to change the parameters - in the hook loop on the fly. - - First, the macro calls DoRecall(), then it calls the function the hook is attached to -> it - calls the hookfunc. SourceHook makes sure that the newly invoked hook loop starts where the last - one left off and that status variables like status, previous result, override return are kept. - When this recurisvely called hookfunc returns, the macro returns what it returned - (using MRES_SUPERCEDE). CSourceHookImpl returns false from ShouldContinue so the original hook loop - is abandonned. - -Post Recalls - People wanted to be able to use META_RETURN_(VALUE_)NEWPARAMS from post hooks as well. Crazy people! - Anyway, for this, we have to know where a hook handler is. Is it executing pre or post hooks at the moment? - The only way we can know this is watching when it calls CHookList::GetIter(). So CHookList gets a new variable: - m_RequestedFlag. It also gets two new functions: RQFlagReset() and RQFlagGet(). - HookLoopBegin() calls RQFlagReset on both hooklists of the iface; then DoRecall() checks whether the postlist's - RQ flag is set. if yes, the hook loop is in post mode. - - So, what a about a recall in post mode? The first ShouldContinue returns false and sets Status to supercede. - This way the pre hooks and the function call will be skipped. Then, then next ShouldContinue returns true, so we get - into the post hooks. HA! - -Return Values in Post Recalls - The easy case is when we already have an override return value. In this case, the status register gets transferred, - and so does the override return pointer. So, basically, everything is ok. - - However, what happens if we don't? ie. the status register is on MRES_IGNORED? In this case we'd have to transfer the - orig ret value. But we can't: There's no way to tell the hookfunc: "Use this as orig ret pointer". It uses its own. - So, we emulate it. GetOrigRet will return the orig ret pointer from the old hook loop. If still no one overrides it, - we'd have to return it. BUT! HOW TO DO THIS? Check out SH_RETURN(). First calls HookLoopEnd(), then decides whether - to return the override retval or the orig retval. But it doesn't ask for a new override return. So we give the function - the last orig return value as its new override return value; but leave status where it is so everything works, and in - HookLoopEnd we make sure that status is high enough so that the override return will be returned. crazy. - - All this stuff could be much less complicated if I didn't try to preserve binary compatibility :) -*/ - -namespace SourceHook -{ - /** - * @brief The SourceHook implementation class - */ - class CSourceHookImpl : public ISourceHook - { - private: - class CProto - { - char *m_Proto; - - static bool Equal(const char *p1, const char *p2); - char *DupProto(const char *src); - void FreeProto(char *prot); - public: - CProto(const char *szProto) : m_Proto(DupProto(szProto)) - { - } - - CProto(const CProto &other) : m_Proto(DupProto(other.m_Proto)) - { - } - - ~CProto() - { - FreeProto(m_Proto); - m_Proto = NULL; - } - - void operator = (const char *szProto) - { - m_Proto = DupProto(szProto); - } - - void operator = (const CProto &other) - { - m_Proto = DupProto(other.m_Proto); - } - - bool operator == (const char *szProto) const - { - return Equal(szProto, m_Proto); - } - bool operator == (const CProto &other) const - { - return Equal(other.m_Proto, m_Proto); - } - }; - - - /** - * @brief A hook can be removed if you have this information - */ - struct RemoveHookInfo - { - RemoveHookInfo(Plugin pplug, void *piface, int tpo, HookManagerPubFunc phookman, - ISHDelegate *phandler, bool ppost) - : plug(pplug), iface(piface), thisptr_offs(tpo), - hookman(phookman), handler(phandler), post(ppost) - { - } - - Plugin plug; - void *iface; - int thisptr_offs; - HookManagerPubFunc hookman; - ISHDelegate *handler; - bool post; - }; - - struct RemoveHookManInfo - { - RemoveHookManInfo(Plugin pplug, HookManagerPubFunc phookman) - : plug(pplug), hookman(phookman) - { - } - - Plugin plug; - HookManagerPubFunc hookman; - }; - - struct HookInfo - { - ISHDelegate *handler; //!< Pointer to the handler - bool paused; //!< If true, the hook should not be executed - Plugin plug; //!< The owner plugin - int thisptr_offs; //!< This pointer offset - }; - - class CHookList : public IHookList - { - public: - List m_List; - - friend class CIter; - - class CIter : public IHookList::IIter - { - friend class CHookList; - - CHookList *m_pList; - - void SkipPaused(); - public: - - List::iterator m_Iter; - - CIter(CHookList *pList); - - virtual ~CIter(); - - void GoToBegin(); - void GoToEnd(); - void Set(CIter *pOther); - - bool End(); - void Next(); - ISHDelegate *Handler(); - int ThisPtrOffs(); - - void Clear(); - - CIter *m_pNext; // When stored in m_FreeIters and m_UsedIters - CIter *m_pPrev; // Only used when stored in m_UsedIters - }; - - CIter *m_FreeIters; - CIter *m_UsedIters; // The last returned and not-yet-released iter is always m_UsedIters - - // For recalls - bool m_Recall; - bool m_RQFlag; - bool m_RelFlag; - - void SetRecallState(); // Sets the list into a state where the next returned - // iterator (from GetIter) will be a copy of the last - // returned iterator, incremented by one. This is used in Recalls. - // The hook resets this state automatically on: - // GetIter, ReleaseIter - - void RQFlagReset() { m_RQFlag = false; m_RelFlag = false; } - bool RQFlagGet() { return m_RQFlag; } - bool RelFlagGet() { return m_RelFlag; } - CHookList(); - CHookList(const CHookList &other); - virtual ~CHookList(); - - void operator=(const CHookList &other); - - IIter *GetIter(); - void ReleaseIter(IIter *pIter); - }; - - // I know, data hiding... But I'm a lazy bastard! - - class CIface : public IIface - { - public: - void *m_Ptr; - CHookList m_PreHooks; - CHookList m_PostHooks; - public: - CIface(void *ptr); - virtual ~CIface(); - - void *GetPtr(); - IHookList *GetPreHooks(); - IHookList *GetPostHooks(); - - bool operator==(void *ptr) - { - return m_Ptr == ptr; - } - }; - - class CVfnPtr : public IVfnPtr - { - public: - typedef List IfaceList; - typedef IfaceList::iterator IfaceListIter; - - void *m_Ptr; - void *m_OrigEntry; - - IfaceList m_Ifaces; - - public: - CVfnPtr(void *ptr); - virtual ~CVfnPtr(); - - void *GetVfnPtr(); - void *GetOrigEntry(); - - virtual IIface *FindIface(void *ptr); - - bool operator==(void *ptr) - { - return m_Ptr == ptr; - } - }; - - class CHookManagerInfo : public IHookManagerInfo - { - public: - typedef List VfnPtrList; - typedef VfnPtrList::iterator VfnPtrListIter; - - Plugin m_Plug; - HookManagerPubFunc m_Func; - - int m_VtblOffs; - int m_VtblIdx; - const char *m_Proto; - void *m_HookfuncVfnptr; - - VfnPtrList m_VfnPtrs; - - int m_HookManVersion; - public: - CHookManagerInfo(); - virtual ~CHookManagerInfo(); - - IVfnPtr *FindVfnPtr(void *vfnptr); - - void SetInfo(int vtbl_offs, int vtbl_idx, const char *proto); - void SetHookfuncVfnptr(void *hookfunc_vfnptr); - - void SetVersion(int version); - - bool operator < (const CHookManagerInfo &other) - { - return m_HookManVersion < other.m_HookManVersion; - } - - struct Descriptor - { - Descriptor(Plugin pplug, HookManagerPubFunc ppubFunc) : plug(pplug), pubFunc(ppubFunc) - { - } - - Plugin plug; - HookManagerPubFunc pubFunc; - }; - - bool operator == (const Descriptor desc) - { - return m_Func == desc.pubFunc && m_Plug == desc.plug; - } - }; - - typedef List HookManInfoList; - - class CHookManagerContainer : public HookManInfoList - { - public: - // HMCI (Hook Manager Container Identification) - class HMCI - { - CProto m_Proto; - int m_VtableOffset; - int m_VtableIndex; - public: - HMCI(const char *proto, int vtbloffs, int vtblidx) : - m_Proto(proto), m_VtableOffset(vtbloffs), m_VtableIndex(vtblidx) - { - } - ~HMCI() - { - } - - bool operator==(const HMCI &other) const - { - return - other.m_VtableIndex == m_VtableIndex && - other.m_Proto == m_Proto && - other.m_VtableOffset == m_VtableOffset; - } - - const CProto &GetProto() const - { - return m_Proto; - } - int GetVtableOffset() const - { - return m_VtableOffset; - } - int GetVtableIndex() const - { - return m_VtableIndex; - } - }; - HMCI m_HCMI; - - public: - CHookManagerContainer(const HMCI &hmci) : m_HCMI(hmci) - { - } - bool operator == (const HMCI &other) const - { - return m_HCMI == other; - } - void AddHookManager(Plugin plug, const CHookManagerInfo &hookman); - }; - - class CCallClassImpl : public GenericCallClass - { - public: - - typedef SourceHook::CVector OrigFuncs; - typedef SourceHook::THash OrigVTables; - - void *m_Ptr; //!< Pointer to the actual object - size_t m_ObjSize; //!< Size of the instance - OrigVTables m_VT; //!< Info about vtables & functions - - int m_RefCounter; - - CCallClassImpl(void *ptr, size_t size); - virtual ~CCallClassImpl(); - - bool operator==(void *other) - { - return m_Ptr == other; - } - - void *GetThisPtr(); - void *GetOrigFunc(int vtbloffs, int vtblidx); - - void ApplyCallClassPatch(int vtbl_offs, int vtbl_idx, void *orig_entry); - void RemoveCallClassPatch(int vtbl_offs, int vtbl_idx); - }; - - /** - * @brief A list of CallClass structures - */ - typedef List Impl_CallClassList; - - Impl_CallClassList m_CallClasses; //!< A list of already generated callclasses - - /** - * @brief A list of CHookManagerContainers - */ - typedef List HookManContList; - - HookManContList m_HookMans; //!< A list of hook managers - - struct HookLoopInfo - { - enum RecallType - { - Recall_No=0, - Recall_Pre, - Recall_Post1, - Recall_Post2 - }; - - META_RES *pStatus; - META_RES *pPrevRes; - META_RES *pCurRes; - - META_RES temporaryStatus; //!< Stored during Post1 recall phase - bool shouldContinue; - RecallType recall; //!< Specifies which kind of recall we're in. - - IIface *pCurIface; - const void *pOrigRet; - void *pOverrideRet; - void **pIfacePtrPtr; - }; - typedef CStack HookLoopInfoStack; - - void ApplyCallClassPatches(CCallClassImpl &cc); - void ApplyCallClassPatches(void *ifaceptr, int vtbl_offs, int vtbl_idx, void *orig_entry); - void RemoveCallClassPatches(void *ifaceptr, int vtbl_offs, int vtbl_idx); - - void SetPluginPaused(Plugin plug, bool paused); - - HookLoopInfoStack m_HLIStack; - public: - CSourceHookImpl(); - virtual ~CSourceHookImpl(); - - /** - * @brief Returns the interface version - */ - int GetIfaceVersion(); - - /** - * @brief Returns the implemnetation version - */ - int GetImplVersion(); - - /** - * @brief Make sure that a plugin is not used by any other plugins anymore, and unregister all its hook managers - */ - void UnloadPlugin(Plugin plug); - - /** - * @brief Shut down the whole system, unregister all hook managers - */ - void CompleteShutdown(); - - /** - * @brief Add a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param ifacesize The size of the class iface points to - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - bool AddHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, ISHDelegate *handler, bool post); - - /** - * @brief Removes a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param thisptr_offs This pointer adjuster - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - bool RemoveHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, ISHDelegate *handler, bool post); - - /** - * @brief Removes a hook. - * - * @ return True if the function succeeded, false otherwise - * - * @param info A RemoveHookInfo structure, describing the hook - */ - bool RemoveHook(RemoveHookInfo info); - - /** - * @brief Checks whether a plugin has (a) hook manager(s) that is/are currently used by other plugins - * - * @param plug The unique identifier of the plugin in question - */ - bool IsPluginInUse(Plugin plug); - - /** - * @brief Pauses all hooks of a plugin - * - * @param plug The unique identifier of the plugin - */ - void PausePlugin(Plugin plug); - - /** - * @brief Unpauses all hooks of a plugin - * - * @param plug The unique identifier of the plugin - */ - void UnpausePlugin(Plugin plug); - - /** - * @brief Return a pointer to a callclass. Generate a new one if required. - * - * @param iface The interface pointer - * @param size Size of the class instance - */ - GenericCallClass *GetCallClass(void *iface, size_t size); - - /** - * @brief Release a callclass - * - * @param ptr Pointer to the callclass - */ - virtual void ReleaseCallClass(GenericCallClass *ptr); - - virtual void SetRes(META_RES res); //!< Sets the meta result - virtual META_RES GetPrevRes(); //!< Gets the meta result of the previously called handler - virtual META_RES GetStatus(); //!< Gets the highest meta result - virtual const void *GetOrigRet(); //!< Gets the original result. If not in post function, undefined - virtual const void *GetOverrideRet(); //!< Gets the override result. If none is specified, NULL - virtual void *GetIfacePtr(); //!< Gets the interface pointer - - ////////////////////////////////////////////////////////////////////////// - // For hook managers - void HookLoopBegin(IIface *pIface); //!< Should be called when a hook loop begins - void HookLoopEnd(); //!< Should be called when a hook loop exits - void SetCurResPtr(META_RES *mres); //!< Sets pointer to the current meta result - void SetPrevResPtr(META_RES *mres); //!< Sets pointer to previous meta result - void SetStatusPtr(META_RES *mres); //!< Sets pointer to the status variable - void SetIfacePtrPtr(void **pp); //!< Sets pointer to the interface this pointer - void SetOrigRetPtr(const void *ptr); //!< Sets the original return pointer - void SetOverrideRetPtr(void *ptr); //!< Sets the override result pointer - bool ShouldContinue(); //!< Returns false if the hook loop should exit - - /** - * @brief Remove a hook manager. Auto-removes all hooks attached to it from plugin plug. - * - * @param plug The owner of the hook manager - * @param pubFunc The hook manager's info function - */ - virtual void RemoveHookManager(Plugin plug, HookManagerPubFunc pubFunc); - virtual void RemoveHookManager(RemoveHookManInfo info); - - virtual void DoRecall(); //!< Initiates a recall sequence - virtual void *GetOverrideRetPtr(); //!< Returns the pointer set by SetOverrideRetPtr - - virtual void *SetupHookLoop(META_RES *statusPtr, META_RES *prevResPtr, META_RES *curResPtr, - void **ifacePtrPtr, const void *origRetPtr, void *overrideRetPtr); - }; -} - -#endif diff --git a/sourcehook/test/Makefile b/sourcehook/test/Makefile deleted file mode 100644 index 6c859b0..0000000 --- a/sourcehook/test/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -#(C)2004-2007 SourceMM Development Team -# Makefile written by David "BAILOPAN" Anderson and Pavol Marko - -OPT_FLAGS = -O3 -funroll-loops -s -pipe -DEBUG_FLAGS = -g -ggdb3 -CPP = gcc -LINK = -lstdc++ -INCLUDE = -I. -I.. -MAX_PARAMS=20 - -BINARY = sourcehook_test -OBJECTS = main.cpp sourcehook.cpp $(shell ls -t test*.cpp) -HEADERS = ../sh_list.h ../sh_tinyhash.h ../sh_memory.h ../sh_string.h ../sh_vector.h ../sourcehook_impl.h ../FastDelegate.h ../sourcehook.h ../sh_memfuncinfo.h - -ifeq "$(DEBUG)" "true" - BIN_DIR = Debug - CFLAGS = $(DEBUG_FLAGS) -else - BIN_DIR = Release - CFLAGS = $(OPT_FLAGS) -endif - -CFLAGS += -Wall -# Also, enable SH_ASSERT -CFLAGS += -DSH_DEBUG - -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) - - -default: all - -$(BIN_DIR)/%.o: %.cpp $(HEADERS) - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< - -../sourcehook.h: ../generate/sourcehook.hxx - (cd ../generate; ./shworker.bin iter sourcehook.hxx sourcehook.h $(MAX_PARAMS); cp sourcehook.h ..) - -../sourcehook.hxx: ../generate/sh_memfuncinfo.hxx - (cd ../generate; ./shworker.bin iter sh_memfuncinfo.hxx sh_memfuncinfo.h $(MAX_PARAMS); cp sh_memfuncino.h ..) - -../FastDelegate.hxx: ../generate/FastDelegate.hxx - (cd ../generate; ./shworker.bin iter FastDelegate.hxx FastDelegate.h $(MAX_PARAMS); cp FastDelegate.h ..) - -debug: - $(MAKE) all DEBUG=true - -all: - mkdir -p $(BIN_DIR) - ln -sf ../sourcehook.cpp sourcehook.cpp - $(MAKE) $(BINARY) - rm -f $(BINARY) - rm -f sourcehook.cpp - ln -sf $(BIN_DIR)/$(BINARY) $(BINARY) - - -$(BINARY): $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -o$(BIN_DIR)/$(BINARY) - -clean: - rm -rf Release/*.o - rm -rf Release/$(BINARY) - rm -rf Debug/*.o - rm -rf Debug/$(BINARY) diff --git a/sourcehook/test/main.cpp b/sourcehook/test/main.cpp deleted file mode 100644 index 12a4706..0000000 --- a/sourcehook/test/main.cpp +++ /dev/null @@ -1,131 +0,0 @@ -// Hello BAIL! -// hello pm how are you -// I'm fine, what about you? -// not bad, just looking for mem leaks -// mem leaks in my code!? never! I have to preserve binary compatibility :( -// This is a test file - -#include -#include -#include -#include -#include -#include "sh_tinyhash.h" -#include "sh_list.h" -#include "sourcehook_impl.h" -#include "sourcehook.h" - -using namespace std; - -bool g_Verbose; - -class Test -{ - typedef bool (*TestProto)(std::string&); - TestProto m_Func; - std::string m_Name; - - static SourceHook::List ms_Tests; -public: - Test(TestProto func, const char *name) : m_Func(func), m_Name(name) - { - ms_Tests.push_back(this); - } - - bool operator()() - { - std::string error; - if (!m_Func(error)) - { - cout << "Test" << m_Name << " FAILED: " << error << endl; - return false; - } - else - { - cout << "Test" << m_Name << " passed" << endl; - return true; - } - } - - static void DoTests() - { - int passed=0, failed=0; - for (SourceHook::List::iterator iter = ms_Tests.begin(); iter != ms_Tests.end(); ++iter) - { - if ((**iter)()) - ++passed; - else - ++failed; - } - cout << endl << "----" << endl << "Passed: " << passed << endl << "Failed: " << failed << endl; - cout << "Total: " << passed + failed << endl; - } -}; - -SourceHook::List Test::ms_Tests; - -#define DO_TEST(x) \ - bool Test##x(std::string &error); \ - Test g_Test##x(Test##x, #x); - -DO_TEST(List); -DO_TEST(Basic); -DO_TEST(VafmtAndOverload); -DO_TEST(ThisPtrOffs); -DO_TEST(PlugSys); -DO_TEST(Bail); -DO_TEST(Reentr); -DO_TEST(Manual); -DO_TEST(Recall); -DO_TEST(Multi); -DO_TEST(Ref); -DO_TEST(RefRet); - -int main(int argc, char *argv[]) -{ - std::string error; - - g_Verbose = argc > 1 && strcmp(argv[1], "-v") == 0; - - Test::DoTests(); - - cout << "Press enter to continue" << endl; - - char x; - cin.read(&x, 1); -} - -SourceHook::ISourceHook *Test_Factory() -{ - return new SourceHook::CSourceHookImpl(); -} - -void Test_Delete(SourceHook::ISourceHook *shptr) -{ - delete static_cast(shptr); -} - -void Test_CompleteShutdown(SourceHook::ISourceHook *shptr) -{ - static_cast(shptr)->CompleteShutdown(); -} - -bool Test_IsPluginInUse(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug) -{ - return static_cast(shptr)->IsPluginInUse(plug); -} - -void Test_UnloadPlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug) -{ - static_cast(shptr)->UnloadPlugin(plug); -} - -void Test_PausePlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug) -{ - static_cast(shptr)->PausePlugin(plug); -} - -void Test_UnpausePlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug) -{ - static_cast(shptr)->UnpausePlugin(plug); -} diff --git a/sourcehook/test/msvc7/test.vcproj b/sourcehook/test/msvc7/test.vcproj deleted file mode 100644 index 364a956..0000000 --- a/sourcehook/test/msvc7/test.vcproj +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcehook/test/msvc8/test.vcproj b/sourcehook/test/msvc8/test.vcproj deleted file mode 100644 index ae768e5..0000000 --- a/sourcehook/test/msvc8/test.vcproj +++ /dev/null @@ -1,513 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcehook/test/sourcehook_test.h b/sourcehook/test/sourcehook_test.h deleted file mode 100644 index 9d914b4..0000000 --- a/sourcehook/test/sourcehook_test.h +++ /dev/null @@ -1,27 +0,0 @@ -// This file is used for backwards compatibility testing -// It allows us to test binary backwards compatibility by using an older include file HERE: -#include "sourcehook.h" // <-- here -// There. main.cpp which implements all of the following function is always usign sourcehook.h -// and the up-to-date sourcehook_impl.h/sourcehook.cpp. The tests use this file however. -// If the test needs an up-to-date version (like the recall test), it can simply -// #include "sourcehook.h" before including this, thus overriding our decision. - - -SourceHook::ISourceHook *Test_Factory(); -void Test_Delete(SourceHook::ISourceHook *shptr); - -struct CSHPtrAutoDestruction -{ - SourceHook::ISourceHook *m_SHPtr; - CSHPtrAutoDestruction(SourceHook::ISourceHook *shptr) : m_SHPtr(shptr) {} - ~CSHPtrAutoDestruction() { Test_Delete(m_SHPtr); } -}; - -#define GET_SHPTR(var) var = Test_Factory(); CSHPtrAutoDestruction ___autodestruction(var); - -// Access to CSourceHookImpl functions -void Test_CompleteShutdown(SourceHook::ISourceHook *shptr); -bool Test_IsPluginInUse(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug); -void Test_UnloadPlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug); -void Test_PausePlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug); -void Test_UnpausePlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug); diff --git a/sourcehook/test/test1.cpp b/sourcehook/test/test1.cpp deleted file mode 100644 index 6b99ea4..0000000 --- a/sourcehook/test/test1.cpp +++ /dev/null @@ -1,700 +0,0 @@ -#include -#include "sourcehook_test.h" -#include "testevents.h" - -#include "sh_memory.h" - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - // TEST1 - // Basic tests - // Hooking and callclass - - MAKE_STATE_1(State_ModuleInMemory, bool); - MAKE_STATE(State_F1_Called); - MAKE_STATE_1(State_F1_PreHandler_Called, void*); - MAKE_STATE_1(State_F1_PostHandler_Called, void*); - MAKE_STATE_1(State_F1_HookAdded, bool); - MAKE_STATE(State_F1_HookRemoved); - MAKE_STATE(State_F1_CallClassGenerated); - MAKE_STATE(State_F1_CallClassReleased); - MAKE_STATE_1(State_F299_Called, std::string); - MAKE_STATE_1(State_F299_PreHandlerCalled, std::string); - MAKE_STATE_1(State_F299_PostHandlerCalled, std::string); - MAKE_STATE_1(State_F299Ret, bool); - - class Test - { - public: - virtual void F1() - { - ADD_STATE(State_F1_Called); - } - virtual void F2(){} - virtual void F3(){} - virtual void F4(){} - virtual void F5(){} - virtual void F6(){} - virtual void F7(){} - virtual void F8(){} - virtual void F9(){} - virtual void F10(){} - virtual void F11(){} - virtual void F12(){} - virtual void F13(){} - virtual void F14(){} - virtual void F15(){} - virtual void F16(){} - virtual void F17(){} - virtual void F18(){} - virtual void F19(){} - virtual float F20() const { return 1.0f; } // Look! F20 is const-ed and returns a float - virtual void F21(){} - virtual void F22(){} - virtual void F23(){} - virtual void F24(){} - virtual void F25(){} - virtual void F26(){} - virtual void F27(){} - virtual void F28(){} - virtual void F29(){} - virtual void F30(){} - virtual void F31(){} - virtual void F32(){} - virtual void F33(){} - virtual void F34(){} - virtual void F35(){} - virtual void F36(){} - virtual void F37(){} - virtual void F38(){} - virtual void F39(){} - virtual void F40(){} - virtual void F41(){} - virtual void F42(){} - virtual void F43(){} - virtual void F44(){} - virtual void F45(){} - virtual void F46(){} - virtual void F47(){} - virtual void F48(){} - virtual void F49(){} - virtual void F50(){} - virtual void F51(){} - virtual void F52(){} - virtual void F53(){} - virtual void F54(){} - virtual void F55(){} - virtual void F56(){} - virtual void F57(){} - virtual void F58(){} - virtual void F59(){} - virtual void F60(int &hello){} - virtual void F61(){} - virtual void F62(){} - virtual void F63(){} - virtual void F64(){} - virtual void F65(){} - virtual void F66(){} - virtual void F67(){} - virtual void F68(){} - virtual void F69(){} - virtual void F70(){} - virtual void F71(){} - virtual void F72(){} - virtual void F73(){} - virtual void F74(){} - virtual void F75(){} - virtual void F76(){} - virtual void F77(){} - virtual void F78(){} - virtual void F79(){} - virtual void F80(){} - virtual void F81(){} - virtual void F82(){} - virtual void F83(){} - virtual void F84(){} - virtual void F85(){} - virtual void F86(){} - virtual void F87(){} - virtual void F88(){} - virtual void F89(){} - virtual void F90(){} - virtual void F91(){} - virtual void F92(){} - virtual void F93(){} - virtual void F94(){} - virtual void F95(){} - virtual void F96(){} - virtual void F97(){} - virtual void F98(){} - virtual void F99(){} - virtual void F100(){} - virtual void F101(){} - virtual void F102(){} - virtual void F103(){} - virtual void F104(){} - virtual void F105(){} - virtual void F106(){} - virtual void F107(){} - virtual void F108(){} - virtual void F109(){} - virtual void F110(){} - virtual void F111(){} - virtual void F112(){} - virtual void F113(){} - virtual void F114(){} - virtual void F115(){} - virtual void F116(){} - virtual void F117(){} - virtual void F118(){} - virtual void F119(){} - virtual void F120(){} - virtual void F121(){} - virtual void F122(){} - virtual void F123(){} - virtual void F124(){} - virtual void F125(){} - virtual void F126(){} - virtual void F127(){} - virtual void F128(){} - virtual void F129(){} - virtual void F130(){} - virtual void F131(){} - virtual void F132(){} - virtual void F133(){} - virtual void F134(){} - virtual void F135(){} - virtual void F136(){} - virtual void F137(){} - virtual void F138(){} - virtual void F139(){} - virtual void F140(){} - virtual void F141(){} - virtual void F142(){} - virtual void F143(){} - virtual void F144(){} - virtual void F145(){} - virtual void F146(){} - virtual void F147(){} - virtual void F148(){} - virtual void F149(){} - virtual void F150(){} - virtual void F151(){} - virtual void F152(){} - virtual void F153(){} - virtual void F154(){} - virtual void F155(){} - virtual void F156(){} - virtual void F157(){} - virtual void F158(){} - virtual void F159(){} - virtual void F160(){} - virtual void F161(){} - virtual void F162(){} - virtual void F163(){} - virtual void F164(){} - virtual void F165(){} - virtual void F166(){} - virtual void F167(){} - virtual void F168(){} - virtual void F169(){} - virtual void F170(){} - virtual void F171(){} - virtual void F172(){} - virtual void F173(){} - virtual void F174(){} - virtual void F175(){} - virtual void F176(){} - virtual void F177(){} - virtual void F178(){} - virtual void F179(){} - virtual void F180(){} - virtual void F181(){} - virtual void F182(){} - virtual void F183(){} - virtual void F184(){} - virtual void F185(){} - virtual void F186(){} - virtual void F187(){} - virtual void F188(){} - virtual void F189(){} - virtual void F190(){} - virtual void F191(){} - virtual void F192(){} - virtual void F193(){} - virtual void F194(){} - virtual void F195(){} - virtual void F196(){} - virtual void F197(){} - virtual void F198(){} - virtual void F199(){} - virtual void F200(){} - virtual void F201(){} - virtual void F202(){} - virtual void F203(){} - virtual void F204(){} - virtual void F205(){} - virtual void F206(){} - virtual void F207(){} - virtual void F208(){} - virtual void F209(){} - virtual void F210(){} - virtual void F211(){} - virtual void F212(){} - virtual void F213(){} - virtual void F214(){} - virtual void F215(){} - virtual void F216(){} - virtual void F217(){} - virtual void F218(){} - virtual void F219(){} - virtual void F220(){} - virtual void F221(){} - virtual void F222(){} - virtual void F223(){} - virtual void F224(){} - virtual void F225(){} - virtual void F226(){} - virtual void F227(){} - virtual void F228(){} - virtual void F229(){} - virtual void F230(){} - virtual void F231(){} - virtual void F232(){} - virtual void F233(){} - virtual void F234(){} - virtual void F235(){} - virtual void F236(){} - virtual void F237(){} - virtual void F238(){} - virtual void F239(){} - virtual void F240(){} - virtual void F241(){} - virtual void F242(){} - virtual void F243(){} - virtual void F244(){} - virtual void F245(){} - virtual void F246(){} - virtual void F247(){} - virtual void F248(){} - virtual void F249(){} - virtual void F250(){} - virtual void F251(){} - virtual void F252(){} - virtual void F253(){} - virtual void F254(){} - virtual void F255(){} - virtual void F256(){} - virtual void F257(){} - virtual void F258(){} - virtual void F259(){} - virtual void F260(){} - virtual void F261(){} - virtual void F262(){} - virtual void F263(){} - virtual void F264(){} - virtual void F265(){} - virtual void F266(){} - virtual void F267(){} - virtual void F268(){} - virtual void F269(){} - virtual void F270(){} - virtual void F271(){} - virtual void F272(){} - virtual void F273(){} - virtual void F274(){} - virtual void F275(){} - virtual void F276(){} - virtual void F277(){} - virtual void F278(){} - virtual void F279(){} - virtual void F280(){} - virtual void F281(){} - virtual void F282(){} - virtual void F283(){} - virtual void F284(){} - virtual void F285(){} - virtual void F286(){} - virtual void F287(){} - virtual void F288(){} - virtual void F289(){} - virtual void F290(){} - virtual void F291(){} - virtual void F292(){} - virtual void F293(){} - virtual void F294(){} - virtual void F295(){} - virtual void F296(){} - virtual void F297(){} - virtual void F298(){} - virtual bool F299(const char *mwah) - { - ADD_STATE(State_F299_Called(mwah)); - return true; - } - }; - - SH_DECL_HOOK1(Test, F299, SH_NOATTRIB, 0, bool, const char *); - SH_DECL_HOOK0_void(Test, F1, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F2, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F3, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F4, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F5, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F6, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F7, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F8, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F9, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F10, SH_NOATTRIB, 0); - - SH_DECL_HOOK0(Test, F20, const, 0, float); - SH_DECL_HOOK1_void(Test, F60, SH_NOATTRIB, 0, int&); - - META_RES g_F1Pre_WhatToDo; - META_RES g_F1Post_WhatToDo; - - struct HandlersF1 - { - void Pre() - { - ADD_STATE(State_F1_PreHandler_Called(reinterpret_cast(this))); - RETURN_META(g_F1Pre_WhatToDo); - } - - void Post() - { - ADD_STATE(State_F1_PostHandler_Called(reinterpret_cast(this))); - RETURN_META(g_F1Post_WhatToDo); - } - }; - - META_RES g_F299Pre_WhatToDo; - bool g_F299Pre_WhatToRet; - - bool F299_Pre(const char *mwah) - { - ADD_STATE(State_F299_PreHandlerCalled(mwah)); - RETURN_META_VALUE(g_F299Pre_WhatToDo, g_F299Pre_WhatToRet); - } - - bool F299_Post(const char *mwah) - { - ADD_STATE(State_F299_PostHandlerCalled(mwah)); - RETURN_META_VALUE(MRES_OVERRIDE, META_RESULT_STATUS >= MRES_OVERRIDE ? !META_RESULT_OVERRIDE_RET(bool) : - !META_RESULT_ORIG_RET(bool)); - } - - void F60_Pre(int &hello) - { - hello = 10; - } -} - -template T func(T a) -{ - return a; -} - - -bool TestBasic(std::string &error) -{ - // Simple test for ModuleInMemory - // 1) &error should on the stack - // 2) 0 should not be mapped - ADD_STATE(State_ModuleInMemory(SourceHook::ModuleInMemory(reinterpret_cast(&error), sizeof(error)))); - ADD_STATE(State_ModuleInMemory(SourceHook::ModuleInMemory(0, 1))); - - CHECK_STATES((&g_States, - new State_ModuleInMemory(true), - new State_ModuleInMemory(false), - NULL), "ModuleInMemory"); - - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - HandlersF1 f1_handlers; - Test test; - Test *pTest = &test; - - // 1) Get a call class and call the member through it and normally - SourceHook::CallClass *cc = SH_GET_CALLCLASS(pTest); - - ADD_STATE(State_F1_CallClassGenerated); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_CallClassGenerated, - new State_F1_Called, - new State_F1_Called, - NULL), "Part 1"); - - // 2) Request a call class again - SourceHook::CallClass *cc2 = SH_GET_CALLCLASS(pTest); - ADD_STATE(State_F1_CallClassGenerated); - - SH_CALL(cc, &Test::F1)(); - SH_CALL(cc2, &Test::F1)(); - pTest->F1(); - - SH_RELEASE_CALLCLASS(cc2); - ADD_STATE(State_F1_CallClassReleased); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_CallClassGenerated, - new State_F1_Called, - new State_F1_Called, - new State_F1_Called, - new State_F1_CallClassReleased, - new State_F1_Called, - new State_F1_Called, - NULL), "Part 2"); - - // 3) Add a pre hook - g_F1Pre_WhatToDo = MRES_SUPERCEDE; - ADD_STATE(State_F1_HookAdded(SH_ADD_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, false))); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_HookAdded(true), - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - NULL), "Part 3"); - - // 4) Rerequest the callclass - SH_RELEASE_CALLCLASS(cc); - - ADD_STATE(State_F1_CallClassReleased); - cc2 = SH_GET_CALLCLASS(pTest); - ADD_STATE(State_F1_CallClassGenerated); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_CallClassReleased, - new State_F1_CallClassGenerated, - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - NULL), "Part 4"); - - // 5) Check ignore / supercede - g_F1Pre_WhatToDo = MRES_SUPERCEDE; - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - g_F1Pre_WhatToDo = MRES_IGNORED; - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - new State_F1_Called, - NULL), "Part 5"); - - // 6) remove the hook again - SH_REMOVE_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, false); - ADD_STATE(State_F1_HookRemoved); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_HookRemoved, - new State_F1_Called, - new State_F1_Called, - NULL), "Part 6"); - - // 7) add a post hook now - g_F1Post_WhatToDo = MRES_IGNORED; - ADD_STATE(State_F1_HookAdded(SH_ADD_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Post, true))); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_HookAdded(true), - new State_F1_Called, - new State_F1_Called, - new State_F1_PostHandler_Called(&f1_handlers), - NULL), "Part 7"); - - // 8) And a pre hook again - g_F1Pre_WhatToDo = MRES_IGNORED; - ADD_STATE(State_F1_HookAdded(SH_ADD_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, false))); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - g_F1Pre_WhatToDo = MRES_SUPERCEDE; - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_HookAdded(true), - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - new State_F1_Called, - new State_F1_PostHandler_Called(&f1_handlers), - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - new State_F1_PostHandler_Called(&f1_handlers), - NULL), "Part 8"); - - // 9) Remove all hooks - SH_REMOVE_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, false); - ADD_STATE(State_F1_HookRemoved); - SH_REMOVE_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Post, true); - ADD_STATE(State_F1_HookRemoved); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_HookRemoved, - new State_F1_HookRemoved, - new State_F1_Called, - new State_F1_Called, - NULL), "Part 9"); - - // 10) Some checks on F299 - g_F299Pre_WhatToDo = MRES_IGNORED; - g_F299Pre_WhatToRet = false; - - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_Called("hi"), - new State_F299Ret(true), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.1"); - - SH_ADD_HOOK_STATICFUNC(Test, F299, pTest, F299_Pre, false); - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_PreHandlerCalled("hi"), - new State_F299_Called("hi"), - new State_F299Ret(true), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.2"); - - SH_ADD_HOOK_STATICFUNC(Test, F299, pTest, F299_Post, true); - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_PreHandlerCalled("hi"), - new State_F299_Called("hi"), - new State_F299_PostHandlerCalled("hi"), - new State_F299Ret(false), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.3"); - - g_F299Pre_WhatToDo = MRES_OVERRIDE; - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_PreHandlerCalled("hi"), - new State_F299_Called("hi"), - new State_F299_PostHandlerCalled("hi"), - new State_F299Ret(true), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.4"); - - g_F299Pre_WhatToDo = MRES_SUPERCEDE; - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_PreHandlerCalled("hi"), - new State_F299_PostHandlerCalled("hi"), - new State_F299Ret(true), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.5"); - - SH_REMOVE_HOOK_STATICFUNC(Test, F299, pTest, F299_Pre, false); - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_Called("hi"), - new State_F299_PostHandlerCalled("hi"), - new State_F299Ret(false), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.6"); - - SH_REMOVE_HOOK_STATICFUNC(Test, F299, pTest, F299_Post, true); - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_Called("hi"), - new State_F299Ret(true), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.7"); - - // 11) Release callclass - SH_RELEASE_CALLCLASS(cc); - ADD_STATE(State_F1_CallClassReleased); - - - CHECK_STATES((&g_States, - new State_F1_CallClassReleased, - NULL), "Part 11"); - - // 12) Test? Test. - SH_ADD_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_ADD_HOOK_MEMFUNC(Test, F2, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_ADD_HOOK_MEMFUNC(Test, F3, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_ADD_HOOK_MEMFUNC(Test, F4, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_ADD_HOOK_MEMFUNC(Test, F5, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_ADD_HOOK_MEMFUNC(Test, F6, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_ADD_HOOK_MEMFUNC(Test, F7, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_ADD_HOOK_MEMFUNC(Test, F8, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_ADD_HOOK_MEMFUNC(Test, F9, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_ADD_HOOK_MEMFUNC(Test, F10, pTest, &f1_handlers, &HandlersF1::Pre, false); - - SH_REMOVE_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_REMOVE_HOOK_MEMFUNC(Test, F2, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_REMOVE_HOOK_MEMFUNC(Test, F3, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_REMOVE_HOOK_MEMFUNC(Test, F4, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_REMOVE_HOOK_MEMFUNC(Test, F5, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_REMOVE_HOOK_MEMFUNC(Test, F6, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_REMOVE_HOOK_MEMFUNC(Test, F7, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_REMOVE_HOOK_MEMFUNC(Test, F8, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_REMOVE_HOOK_MEMFUNC(Test, F9, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_REMOVE_HOOK_MEMFUNC(Test, F10, pTest, &f1_handlers, &HandlersF1::Pre, false); - - SH_ADD_HOOK_STATICFUNC(Test, F60, pTest, F60_Pre, false); - - int a = 0; - pTest->F60(a); - Test_CompleteShutdown(g_SHPtr); - - CHECK_COND(a == 10, "Part12.a"); - - return true; -} diff --git a/sourcehook/test/test2.cpp b/sourcehook/test/test2.cpp deleted file mode 100644 index 1164e0f..0000000 --- a/sourcehook/test/test2.cpp +++ /dev/null @@ -1,171 +0,0 @@ -#include -#include "sourcehook_test.h" -#include "testevents.h" -#include - -// TEST2 -// Vafmt and Overloaded functions -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_EatYams_Called, int); - MAKE_STATE_1(State_EatYams_Handler_Called, int); - MAKE_STATE_2(State_Vafmt_Called, int, std::string); - MAKE_STATE_2(State_Vafmt_PreHandler_Called, int, std::string); - MAKE_STATE_2(State_Vafmt_PostHandler_Called, int, std::string); - - class IGaben - { - public: - virtual void EatYams() - { - ADD_STATE(State_EatYams_Called(0)); - } - virtual bool EatYams(const char *location) const - { - ADD_STATE(State_EatYams_Called(1)); - return true; - } - virtual void Vafmt1(bool param1, int x, const char *fmt, ...) - { - va_list ap; - va_start(ap, fmt); - char buffer[512]; - vsprintf(buffer, fmt, ap); - va_end(ap); - ADD_STATE(State_Vafmt_Called(1, std::string(buffer))); - } - virtual float Vafmt2(const char *fmt, ...) - { - va_list ap; - va_start(ap, fmt); - char buffer[512]; - vsprintf(buffer, fmt, ap); - va_end(ap); - ADD_STATE(State_Vafmt_Called(2, std::string(buffer))); - return 0.0f; - } - }; - - SH_DECL_HOOK0_void(IGaben, EatYams, SH_NOATTRIB, 0); - SH_DECL_HOOK1(IGaben, EatYams, const, 1, bool, const char *); - SH_DECL_HOOK2_void_vafmt(IGaben, Vafmt1, SH_NOATTRIB, 0, bool, int); - SH_DECL_HOOK0_vafmt(IGaben, Vafmt2, SH_NOATTRIB, 0, float); - - void EatYams0_Handler() - { - ADD_STATE(State_EatYams_Handler_Called(0)); - } - - bool EatYams1_Handler(const char *loc) - { - ADD_STATE(State_EatYams_Handler_Called(1)); - return true; - } - - void Vafmt1_PreHandler(bool param1, int x, const char *in) - { - ADD_STATE(State_Vafmt_PreHandler_Called(1, std::string(in))); - } - void Vafmt1_PostHandler(bool param1, int x, const char *in) - { - ADD_STATE(State_Vafmt_PostHandler_Called(1, std::string(in))); - } - float Vafmt2_PreHandler(const char *in) - { - ADD_STATE(State_Vafmt_PreHandler_Called(2, std::string(in))); - return 0.0f; - } - float Vafmt2_PostHandler(const char *in) - { - ADD_STATE(State_Vafmt_PostHandler_Called(2, std::string(in))); - return 0.0f; - } -} - - -bool TestVafmtAndOverload(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - IGaben gabgab; - IGaben *pGab = &gabgab; - - SourceHook::CallClass *cc = SH_GET_CALLCLASS(pGab); - - // Part 1 - SH_CALL(cc, static_cast(&IGaben::EatYams))(); - SH_CALL(cc, static_cast(&IGaben::EatYams))("Here!"); - - SH_ADD_HOOK(IGaben, EatYams, pGab, EatYams0_Handler, false); - SH_ADD_HOOK(IGaben, EatYams, pGab, EatYams1_Handler, false); - - pGab->EatYams(); - pGab->EatYams("Here!"); - - SH_REMOVE_HOOK(IGaben, EatYams, pGab, EatYams0_Handler, false); - SH_REMOVE_HOOK(IGaben, EatYams, pGab, EatYams1_Handler, false); - - CHECK_STATES((&g_States, - new State_EatYams_Called(0), - new State_EatYams_Called(1), - new State_EatYams_Handler_Called(0), - new State_EatYams_Called(0), - new State_EatYams_Handler_Called(1), - new State_EatYams_Called(1), - NULL),"Part 1"); - - // Part 2 - pGab->Vafmt1(true, 55, "Hello %s%d%s", "BA", 1, "L"); - SH_CALL(cc, &IGaben::Vafmt1)(true, 55, "Hello %s%d%s", "BA", 1, "L"); - pGab->Vafmt2("Hello %s%d%s", "BA", 1, "LOPAN"); - SH_CALL(cc, &IGaben::Vafmt2)("Hello %s%d%s", "BA", 1, "LOPAN"); - - CHECK_STATES((&g_States, - new State_Vafmt_Called(1, "Hello BA1L"), - new State_Vafmt_Called(1, "Hello BA1L"), - new State_Vafmt_Called(2, "Hello BA1LOPAN"), - new State_Vafmt_Called(2, "Hello BA1LOPAN"), - NULL), "Part 2"); - - // Part 3 - SH_ADD_HOOK(IGaben, Vafmt1, pGab, Vafmt1_PreHandler, false); - SH_ADD_HOOK(IGaben, Vafmt1, pGab, Vafmt1_PostHandler, true); - SH_ADD_HOOK(IGaben, Vafmt2, pGab, Vafmt2_PreHandler, false); - SH_ADD_HOOK(IGaben, Vafmt2, pGab, Vafmt2_PostHandler, true); - - pGab->Vafmt1(true, 55, "Hello %s%d%s", "BA", 1, "L"); - pGab->Vafmt2("Hello %s%d%s", "BA", 1, "LOPAN"); - - CHECK_STATES((&g_States, - new State_Vafmt_PreHandler_Called(1, std::string("Hello BA1L")), - new State_Vafmt_Called(1, std::string("Hello BA1L")), - new State_Vafmt_PostHandler_Called(1, std::string("Hello BA1L")), - - new State_Vafmt_PreHandler_Called(2, std::string("Hello BA1LOPAN")), - new State_Vafmt_Called(2, std::string("Hello BA1LOPAN")), - new State_Vafmt_PostHandler_Called(2, std::string("Hello BA1LOPAN")), - NULL), "Part 3"); - - // Part 4 - SH_REMOVE_HOOK(IGaben, Vafmt1, pGab, Vafmt1_PreHandler, false); - SH_REMOVE_HOOK(IGaben, Vafmt1, pGab, Vafmt1_PostHandler, true); - SH_REMOVE_HOOK(IGaben, Vafmt2, pGab, Vafmt2_PreHandler, false); - SH_REMOVE_HOOK(IGaben, Vafmt2, pGab, Vafmt2_PostHandler, true); - - pGab->Vafmt1(true, 55, "Hello %s%d%s", "BA", 1, "L"); - pGab->Vafmt2("Hello %s%d%s", "BA", 1, "LOPAN"); - - CHECK_STATES((&g_States, - new State_Vafmt_Called(1, "Hello BA1L"), - new State_Vafmt_Called(2, "Hello BA1LOPAN"), - NULL), "Part 4"); - - SH_RELEASE_CALLCLASS(cc); - - return true; -} diff --git a/sourcehook/test/test3.cpp b/sourcehook/test/test3.cpp deleted file mode 100644 index 97d04c2..0000000 --- a/sourcehook/test/test3.cpp +++ /dev/null @@ -1,238 +0,0 @@ -#include -#include "sourcehook_test.h" -#include "testevents.h" - -// TEST3 -// Tests with inheritance / thisptroffsets - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_Func1_Called, void*); // param1: This pointer - MAKE_STATE_1(State_Func2_Called, void*); // param1: This pointer - MAKE_STATE_1(State_Func3_Called, void*); // param1: This pointer - - MAKE_STATE_1(State_Func1H_Called, void*); - MAKE_STATE_1(State_Func2H_Called, void*); - MAKE_STATE_1(State_Func3H_Called, void*); - - class Base1 - { - int a; - public: - virtual void Func1() - { - ADD_STATE(State_Func1_Called(reinterpret_cast(this))); - } - }; - class Base2 - { - int b; - public: - virtual void Func2() - { - ADD_STATE(State_Func2_Called(reinterpret_cast(this))); - } - }; - class Derived : public Base1, public Base2 - { - int c; - public: - virtual void Func3() - { - ADD_STATE(State_Func3_Called(reinterpret_cast(this))); - } - }; - - SH_DECL_HOOK0_void(Derived, Func1, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Derived, Func2, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Derived, Func3, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Base1, Func1, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Base2, Func2, SH_NOATTRIB, 0); - - void Handler_Func1() - { - ADD_STATE(State_Func1H_Called(META_IFACEPTR(void))); - } - void Handler_Func2() - { - ADD_STATE(State_Func2H_Called(META_IFACEPTR(void))); - } - void Handler_Func3() - { - ADD_STATE(State_Func3H_Called(META_IFACEPTR(void))); - } -} - -bool TestThisPtrOffs(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - Derived inst; - Derived *pD = &inst; - Base1 *pB1 = pD; - Base2 *pB2 = pD; - - // It should be: - // pB1 = pD - // pB2 > pB1 - - // 1) - // Get a callclass for pD - // Verify whether the this pointers are correct - // Also call them normally to make sure that we aren't messing it up ;) - SourceHook::CallClass *pD_CC = SH_GET_CALLCLASS(pD); - - SH_CALL(pD_CC, &Derived::Func1)(); - SH_CALL(pD_CC, &Derived::Func2)(); - SH_CALL(pD_CC, &Derived::Func3)(); - pD->Func1(); - pD->Func2(); - pD->Func3(); - - CHECK_STATES((&g_States, - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - new State_Func3_Called(pD), - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - new State_Func3_Called(pD), - NULL), "Part 1"); - - SH_CALL(pD_CC, &Base1::Func1)(); - SH_CALL(pD_CC, &Base2::Func2)(); - - CHECK_STATES((&g_States, - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - NULL), "Part 1.1"); - - // 2) - // Get callclasses for the other ones and verify it as well - - SourceHook::CallClass *pB1_CC = SH_GET_CALLCLASS(pB1); - SourceHook::CallClass *pB2_CC = SH_GET_CALLCLASS(pB2); - - SH_CALL(pB1_CC, &Base1::Func1)(); - SH_CALL(pB2_CC, &Base2::Func2)(); - - CHECK_STATES((&g_States, - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - NULL), "Part 2"); - - - // 3) Add hooks on them (referring to them through pD1 / Derived) - // Check whether the hooks are called with the correct this pointer - - SH_ADD_HOOK_STATICFUNC(Derived, Func1, pD, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Derived, Func2, pD, Handler_Func2, false); - SH_ADD_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - pD->Func1(); - pD->Func2(); - pD->Func3(); - pB1->Func1(); - pB2->Func2(); - - // The handlers should always be called with the pointer to Derived - CHECK_STATES((&g_States, - new State_Func1H_Called(pD), - new State_Func1_Called(pB1), - new State_Func2H_Called(pD), - new State_Func2_Called(pB2), - new State_Func3H_Called(pD), - new State_Func3_Called(pD), - new State_Func1H_Called(pD), - new State_Func1_Called(pB1), - new State_Func2H_Called(pD), - new State_Func2_Called(pB2), - NULL), "Part 3"); - - SH_REMOVE_HOOK_STATICFUNC(Derived, Func1, pD, Handler_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(Derived, Func2, pD, Handler_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - // 4) - // Now add the hooks on Base1 and Base2 and check again - - // Note that the new implicit_cast should convert the pD to Base1*/Base2* :) - SH_ADD_HOOK_STATICFUNC(Base1, Func1, pD, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Base2, Func2, pD, Handler_Func2, false); - SH_ADD_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - pD->Func1(); - pD->Func2(); - pD->Func3(); - pB1->Func1(); - pB2->Func2(); - - // This time, the handlers for Func1 should be called with pB1 and the handlers - // for Func2 should be called with pB2 - CHECK_STATES((&g_States, - new State_Func1H_Called(pB1), - new State_Func1_Called(pB1), - new State_Func2H_Called(pB2), - new State_Func2_Called(pB2), - new State_Func3H_Called(pD), - new State_Func3_Called(pD), - new State_Func1H_Called(pB1), - new State_Func1_Called(pB1), - new State_Func2H_Called(pB2), - new State_Func2_Called(pB2), - NULL), "Part 4"); - - SH_REMOVE_HOOK_STATICFUNC(Base1, Func1, pD, Handler_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(Base2, Func2, pD, Handler_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - - // 5) - // Add some hooks, and use callclasses - - // 5.1) First off, add all of them on pD - SH_ADD_HOOK_STATICFUNC(Derived, Func1, pD, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Derived, Func2, pD, Handler_Func2, false); - SH_ADD_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - pD->Func1(); - pD->Func2(); - pD->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called(pD), - new State_Func1_Called(pB1), - new State_Func2H_Called(pD), - new State_Func2_Called(pB2), - new State_Func3H_Called(pD), - new State_Func3_Called(pD), - NULL), "Part 5.1"); - - SH_CALL(pD_CC, &Derived::Func1)(); - SH_CALL(pD_CC, &Derived::Func2)(); - SH_CALL(pD_CC, &Derived::Func3)(); - SH_CALL(pB1_CC, &Base1::Func1)(); - SH_CALL(pB2_CC, &Base2::Func2)(); - - CHECK_STATES((&g_States, - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - new State_Func3_Called(pD), - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - NULL), "Part 5.2"); - - SH_REMOVE_HOOK_STATICFUNC(Derived, Func1, pD, Handler_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(Derived, Func2, pD, Handler_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - SH_RELEASE_CALLCLASS(pB1_CC); - SH_RELEASE_CALLCLASS(pB2_CC); - SH_RELEASE_CALLCLASS(pD_CC); - - return true; -} diff --git a/sourcehook/test/test4.cpp b/sourcehook/test/test4.cpp deleted file mode 100644 index f2b0a88..0000000 --- a/sourcehook/test/test4.cpp +++ /dev/null @@ -1,420 +0,0 @@ -#include -#include "sourcehook_test.h" -#include "testevents.h" - -// TEST4 -// Tests of plugin management system - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE(State_Func1_Called); - MAKE_STATE(State_Func2_Called); - MAKE_STATE(State_Func3_Called); - - MAKE_STATE(State_Func1H_Called); - MAKE_STATE(State_Func2H_Called); - MAKE_STATE(State_Func3H_Called); - - MAKE_STATE_2(State_PluginInUse, int, bool); - - class Test - { - public: - virtual void Func1() - { - ADD_STATE(State_Func1_Called); - } - - virtual void Func2() - { - ADD_STATE(State_Func2_Called); - } - - virtual void Func3() - { - ADD_STATE(State_Func3_Called); - } - }; - - SH_DECL_HOOK0_void(Test, Func1, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, Func2, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, Func3, SH_NOATTRIB, 0); - - void Handler_Func1() - { - ADD_STATE(State_Func1H_Called); - } - void Handler_Func2() - { - ADD_STATE(State_Func2H_Called); - } - void Handler_Func3() - { - ADD_STATE(State_Func3H_Called); - } -} - -bool TestPlugSys(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1; - - Test inst; - Test *pInst = &inst; - - // 1) - // Add hooks, then issue a complete shutdown - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 1.1"); - - Test_CompleteShutdown(g_SHPtr); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1_Called, - new State_Func2_Called, - new State_Func3_Called, - NULL), "Part 1.2"); - - // 2) - // Add hooks from "different plugins", then shutdown the plugins - - g_PLID = 1; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - g_PLID = 2; - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - g_PLID = 3; - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 1; - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 2; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 3; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 2.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 2.2"); - - // Unload plugins one by one - Test_UnloadPlugin(g_SHPtr, 3); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 2.3.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, false), - new State_PluginInUse(4, false), - NULL), "Part 2.3.2"); - - Test_UnloadPlugin(g_SHPtr, 2); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 2.4.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, false), - new State_PluginInUse(3, false), - new State_PluginInUse(4, false), - NULL), "Part 2.4.2"); - - Test_UnloadPlugin(g_SHPtr, 1); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1_Called, - new State_Func2_Called, - new State_Func3_Called, - NULL), "Part 2.5.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, false), - new State_PluginInUse(2, false), - new State_PluginInUse(3, false), - new State_PluginInUse(4, false), - NULL), "Part 2.5.2"); - - - // 3) - // Add hooks from "different plugins", then pause the plugins - - g_PLID = 1; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - g_PLID = 2; - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - g_PLID = 3; - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 1; - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 2; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 3; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 3.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 3.2"); - - // Unload plugins one by one - Test_PausePlugin(g_SHPtr, 3); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 3.3.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 3.3.2"); - - Test_PausePlugin(g_SHPtr, 2); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 3.4.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 3.4.2"); - - Test_PausePlugin(g_SHPtr, 1); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1_Called, - new State_Func2_Called, - new State_Func3_Called, - NULL), "Part 3.5.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 3.5.2"); - - Test_UnpausePlugin(g_SHPtr, 1); - Test_UnpausePlugin(g_SHPtr, 2); - Test_UnpausePlugin(g_SHPtr, 3); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 3.6"); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 3.7"); - - // 4) Shutdown :) - Test_CompleteShutdown(g_SHPtr); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1_Called, - new State_Func2_Called, - new State_Func3_Called, - NULL), "Part 4"); - - return true; -} diff --git a/sourcehook/test/testbail.cpp b/sourcehook/test/testbail.cpp deleted file mode 100644 index ebb6d92..0000000 --- a/sourcehook/test/testbail.cpp +++ /dev/null @@ -1,119 +0,0 @@ -// TESTBAIL -// This test used to be a test for a bug BAIL found. -// That bug is now fixed so I've granted BAIL the pleasure of being a test for -// the correct priority ordering of hook managers based on their version. - -/* - THE PROBLEM: - Old hook funcs don't work right when you combine override returns and recalls. - THE SOLUTION: - Always use a new hook func when possible. For this, hook funcs have to be able to say - " HELLO I'M NEW! " - - This file tests that functionality. - - How it works: - testbail.cpp compiles with old version of sourcehook.h. - It sets everything up, adds a hook on a function - Then testbail2.cpp which has the new version adds a hook on the same function and - does a recall and overrides the value in it. -*/ -#include "sourcehook_test.h" -#include "testbail.h" - -namespace N_TestBail -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - IGaben *g_Gabgab; -} - -namespace -{ - int EatYams_Handler1(int a) - { - ADD_STATE(State_EatYams_Handler1_Called(a)); - RETURN_META_VALUE(MRES_IGNORED, 0); - } -} - -bool TestBail(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1; - - g_Gabgab = new IGaben; - - SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler1, false); - - ADD_STATE(State_EatYams_Return(g_Gabgab->EatYams(0xDEAD))); - - CHECK_STATES((&g_States, - new State_EatYams_Handler1_Called(0xDEAD), - new State_EatYams_Called(0xDEAD), - new State_EatYams_Return(5), - NULL), "Part 1"); - - if (!TestBail2(error)) - return false; - - CHECK_STATES((&g_States, - new State_EatYams_Handler1_Called(0xDEAD), - new State_EatYams_Handler2_Called(0xDEAD), - new State_EatYams_Handler3_Called(0xBEEF), - new State_EatYams_Called(0xBEEF), - NULL), "Part 2.1"); - - // WHAT IF NOW SOMEONE UNLOADS PLUGIN 2 !?!?!?!? - Test_UnloadPlugin(g_SHPtr, 2); - - ADD_STATE(State_EatYams_Return(g_Gabgab->EatYams(0xDEAD))); - - CHECK_STATES((&g_States, - new State_EatYams_Handler1_Called(0xDEAD), - new State_EatYams_Called(0xDEAD), - new State_EatYams_Return(5), - NULL), "Part 3"); - - SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler1, false); - - ADD_STATE(State_EatYams_Return(g_Gabgab->EatYams(0xDEAD))); - - CHECK_STATES((&g_States, - new State_EatYams_Called(0xDEAD), - new State_EatYams_Return(5), - NULL), "Part 4"); - - // Now, heh, try it the other way round. - - Test_CompleteShutdown(g_SHPtr); - - if (!TestBail2(error)) - return false; - - CHECK_STATES((&g_States, - new State_EatYams_Handler2_Called(0xDEAD), - new State_EatYams_Handler3_Called(0xBEEF), - new State_EatYams_Called(0xBEEF), - NULL), "Part 5"); - - SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler1, false); - - ADD_STATE(State_EatYams_Return(g_Gabgab->EatYams(0xDEAD))); - - CHECK_STATES((&g_States, - new State_EatYams_Handler2_Called(0xDEAD), - new State_EatYams_Handler3_Called(0xBEEF), - new State_EatYams_Handler1_Called(0xBEEF), - new State_EatYams_Called(0xBEEF), - new State_EatYams_Return(6), - NULL), "Part 6"); - - SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler1, false); - - UntestBail2(); - - delete g_Gabgab; - - return true; -} diff --git a/sourcehook/test/testbail.h b/sourcehook/test/testbail.h deleted file mode 100644 index f0eed7c..0000000 --- a/sourcehook/test/testbail.h +++ /dev/null @@ -1,40 +0,0 @@ -////////////////////////////////////////////////////////////////////////// -// Shared data for testbail - -#include -#include "testevents.h" - -namespace N_TestBail -{ - extern StateList g_States; - extern SourceHook::ISourceHook *g_SHPtr; - - MAKE_STATE_1(State_EatYams_Called, int); - MAKE_STATE_1(State_EatYams_Handler1_Called, int); - MAKE_STATE_1(State_EatYams_Handler2_Called, int); - MAKE_STATE_1(State_EatYams_Handler3_Called, int); - MAKE_STATE_1(State_EatYams_Return, int); - - class IGaben - { - public: - virtual int EatYams(int a) - { - ADD_STATE(State_EatYams_Called(a)); - return 5; - } - }; - - extern IGaben *g_Gabgab; - - bool TestBail2(std::string &error); - void UntestBail2(); -} - -using namespace N_TestBail; - -namespace -{ - SourceHook::Plugin g_PLID; - SH_DECL_HOOK1(IGaben, EatYams, SH_NOATTRIB, 0, int, int); -} diff --git a/sourcehook/test/testbail2.cpp b/sourcehook/test/testbail2.cpp deleted file mode 100644 index d1d6d3c..0000000 --- a/sourcehook/test/testbail2.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// TESTBAIL -// Different compilation unit - -#include "sourcehook.h" -#include "sourcehook_test.h" -#include "testbail.h" - -static unsigned int n_calls = 0; - -int EatYams_Handler2(int a) -{ - ADD_STATE(State_EatYams_Handler2_Called(a)); - RETURN_META_VALUE_NEWPARAMS(MRES_OVERRIDE, 6, &IGaben::EatYams, (0xBEEF)); -} - -int EatYams_Handler3(int a) -{ - ADD_STATE(State_EatYams_Handler3_Called(a)); - RETURN_META_VALUE(MRES_IGNORED, 0); -} - -namespace N_TestBail -{ - bool TestBail2(std::string &error) - { - g_PLID = 2; - - SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler2, false); - SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler3, false); - - int ret = g_Gabgab->EatYams(0xDEAD); - - CHECK_COND(ret == 6, "Part 2.1"); - - n_calls++; - - return true; - } - - void UntestBail2() - { - while (n_calls) - { - SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler3, false); - SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler2, false); - n_calls--; - } - } -} diff --git a/sourcehook/test/testevents.h b/sourcehook/test/testevents.h deleted file mode 100644 index ef7c891..0000000 --- a/sourcehook/test/testevents.h +++ /dev/null @@ -1,153 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -#ifndef __TESTEVENTS_H__ -#define __TESTEVENTS_H__ - -#include -#include -#include -#include -#include - -extern bool g_Verbose; - -struct State -{ - virtual ~State() - { - - } - - virtual bool IsEqual(State *other) - { - return (typeid(other) == typeid(this)) ? true : false; - } - - virtual void Dump() = 0; -}; - -typedef std::list StateList; -namespace -{ - void DumpStates(StateList *sl) - { - for (StateList::iterator iter = sl->begin(); iter != sl->end(); ++iter) - (*iter)->Dump(); - } - - bool StatesOk(StateList *sl, ...) - { - StateList requiredstates; - va_list argptr; - va_start(argptr, sl); - while (true) - { - State *cs = va_arg(argptr, State*); - if (!cs) - break; - requiredstates.push_back(cs); - } - va_end(argptr); - - if (requiredstates.size() != sl->size()) - { - if (g_Verbose) - { - std::cout << std::endl << "FAIL: Should be:" << std::endl; - DumpStates(&requiredstates); - std::cout << std::endl << "FAIL: Is:" << std::endl; - DumpStates(sl); - } - - for (StateList::iterator iter = requiredstates.begin(); iter != requiredstates.end(); ++iter) - delete *iter; - for (StateList::iterator iter = sl->begin(); iter != sl->end(); ++iter) - delete *iter; - sl->clear(); - return false; - } - - bool ok = true; - StateList::iterator req_iter = requiredstates.begin(); - for (StateList::iterator o_iter = sl->begin(); o_iter != sl->end(); ++o_iter, ++req_iter) - { - if (!(*o_iter)->IsEqual(*req_iter)) - { - ok = false; - break; - } - } - - for (StateList::iterator iter = requiredstates.begin(); iter != requiredstates.end(); ++iter) - delete *iter; - for (StateList::iterator iter = sl->begin(); iter != sl->end(); ++iter) - delete *iter; - sl->clear(); - - return ok; - } -} - -#define ADD_STATE(name) g_States.push_back(new name) -#define ADD_STATE_PTR(statesptr, name) statesptr->push_back(new name) - -#define CHECK_STATES(mwah, myerr) if (!StatesOk mwah) { error=myerr; return false; } else if (g_Verbose) { std::cout << "No error: " << myerr << std::endl; } - -#define MAKE_STATE(name) struct name : State { \ - virtual void Dump() { \ - std::cout << " " << #name << std::endl; } \ - }; - -#define MAKE_STATE_1(name, p1_type) struct name : State { \ - p1_type m_Param1; \ - name(p1_type param1) : m_Param1(param1) {} \ - virtual bool IsEqual(State *other) { \ - name *other2 = dynamic_cast(other); \ - if (!other2) \ - return false; \ - return other2->m_Param1 == m_Param1;\ - } \ - virtual void Dump() { \ - std::cout << " " << #name << "; Param1=" << m_Param1 << std::endl; } \ - } - -#define MAKE_STATE_2(name, p1_type, p2_type) struct name : State { \ - p1_type m_Param1; \ - p2_type m_Param2; \ - name(p1_type param1, p2_type param2) : m_Param1(param1), m_Param2(param2) {} \ - virtual bool IsEqual(State *other) { \ - name *other2 = dynamic_cast(other); \ - if (!other2) \ - return false; \ - return other2->m_Param1 == m_Param1 && other2->m_Param2 == m_Param2;\ - } \ - virtual void Dump() { \ - std::cout << " " << #name << "; Param1=" << m_Param1 << "; Param2=" << m_Param2 << std::endl; } \ - } - -#define MAKE_STATE_3(name, p1_type, p2_type, p3_type) struct name : State { \ - p1_type m_Param1; \ - p2_type m_Param2; \ - p3_type m_Param3; \ - name(p1_type param1, p2_type param2, p3_type param3) : m_Param1(param1), m_Param2(param2), m_Param3(param3) {} \ - virtual bool IsEqual(State *other) { \ - name *other2 = dynamic_cast(other); \ - if (!other2) \ - return false; \ - return other2->m_Param1 == m_Param1 && other2->m_Param2 == m_Param2 && other2->m_Param3 == m_Param3;\ - } \ - virtual void Dump() { \ - std::cout << " " << #name << "; Param1=" << m_Param1 << "; Param2=" << m_Param2 << "; Param3=" << m_Param3 << std::endl; } \ - } - -#define CHECK_COND(c, err) if (!(c)) { error = err; return false; } - -#endif diff --git a/sourcehook/test/testlist.cpp b/sourcehook/test/testlist.cpp deleted file mode 100644 index bbaa4d3..0000000 --- a/sourcehook/test/testlist.cpp +++ /dev/null @@ -1,282 +0,0 @@ -#include -#include "sh_list.h" -#include "sh_stack.h" -#include "sh_tinyhash.h" -#include "sh_vector.h" -#include "testevents.h" - -// TEST LIST -// Tests sh_list, sh_tinyhash, sh_vector - -// :TODO: vector test, list insert test - -namespace -{ - struct Hmm - { - Hmm *m_This; - int m_Int; - Hmm(const Hmm &other) : m_Int(other.m_Int) - { - m_This = this; - } - Hmm(int i) : m_Int(i) - { - m_This = this; - } - Hmm() : m_Int(0) - { - m_This = this; - } - void operator = (const Hmm &other) - { - m_Int = other.m_Int; - } - operator int () const - { - return m_Int; - } - }; - - #define LIST_THIS_CHECK(lst, err) \ - for (ListType::iterator iter = lst.begin(); iter != lst.end(); ++iter) \ - CHECK_COND(&(*iter) == iter->m_This, err); - - bool DoTestList(std::string &error) - { - typedef SourceHook::List ListType; - ListType lst; - - CHECK_COND(lst.empty(), "Part1"); - - for (int i = 1; i <= 100; ++i) - lst.push_back(i); - - LIST_THIS_CHECK(lst, "PartA1"); - - CHECK_COND(!lst.empty(), "Part2"); - - lst.clear(); - - CHECK_COND(lst.empty(), "Part3"); - - for (int i = 1; i <= 100; ++i) - lst.push_back(i); - - CHECK_COND(lst.back() == 100, "Part4"); - LIST_THIS_CHECK(lst, "PartA2"); - - int ver = 1; - for (ListType::iterator iter = lst.begin(); iter != lst.end(); ++iter) - CHECK_COND(*iter == ver++, "Part5"); - - CHECK_COND(ver == 101, "Part 6"); - - ListType::iterator iter50 = lst.find(50); - CHECK_COND(*iter50 == 50, "Part7"); - - iter50 = lst.erase(iter50); - CHECK_COND(*iter50 == 51, "Part8"); - CHECK_COND(*--iter50 == 49, "Part8.2"); - - lst.remove(80); - - ver = 1; - for (ListType::iterator iter = lst.begin(); iter != lst.end(); ++iter) - { - CHECK_COND(*iter == ver++, "Part9"); - if (ver == 50 || ver == 80) - ++ver; - } - CHECK_COND(ver == 101, "Part10"); - LIST_THIS_CHECK(lst, "PartA3"); - - ListType lst2; - lst = lst2; - CHECK_COND(lst.empty(), "Part11"); - - for (int i = 1; i <= 100; ++i) - lst.push_back(i); - lst2 = lst; - CHECK_COND(lst2.size() == 100, "Part11.2"); - - LIST_THIS_CHECK(lst, "PartA4"); - LIST_THIS_CHECK(lst2, "PartA5"); - - ver = 1; - for (ListType::iterator iter = lst2.begin(); iter != lst2.end(); ++iter) - CHECK_COND(*iter == ver++, "Part12"); - - lst.clear(); - for (int i = 401; i <= 500; ++i) - lst.push_back(i); - lst = lst2; - CHECK_COND(lst2.size() == 100, "Part13"); - - ver = 1; - for (ListType::iterator iter = lst.begin(); iter != lst.end(); ++iter) - CHECK_COND(*iter == ver++, "Part14"); - - LIST_THIS_CHECK(lst, "PartA6"); - LIST_THIS_CHECK(lst2, "PartA7"); - - return true; - } - - bool DoTestTinyHash(std::string &error) - { - const int mymax = 5000; - - typedef SourceHook::THash HashType; - HashType hash; - - for (int i = 1; i <= mymax; ++i) - hash[i] = i + 5000; - - for (int i = 1; i <= mymax; ++i) - CHECK_COND(hash[i] == i + 5000, "Part1"); - - // Find - int ver = 1; - HashType::iterator iter; - for (iter = hash.begin(); iter != hash.end(); ++iter) - CHECK_COND(iter->key == ver && iter->val == (ver++) + 5000, "Part2"); - - CHECK_COND(ver == mymax+1, "Part2.1"); - - iter = hash.find(300); - CHECK_COND(iter != hash.end() && iter->val == 300+5000, "Part3.1"); - iter = hash.find(mymax+200); - CHECK_COND(iter == hash.end(), "Part3.2"); - - HashType hash2; - for (int i = 1; i <= mymax; ++i) - hash2[i] = i + 5000; - - hash2.erase(mymax - 100); - CHECK_COND(hash2.find(mymax - 101) != hash2.end(), "Part 4.1"); - CHECK_COND(hash2.find(mymax - 99) != hash2.end(), "Part 4.2"); - CHECK_COND(hash2.find(mymax - 100) == hash2.end(), "Part 4.3"); - hash2.erase(mymax - 99); - CHECK_COND(hash2.find(mymax - 101) != hash2.end(), "Part 4.4"); - CHECK_COND(hash2.find(mymax - 99) == hash2.end(), "Part 4.5"); - CHECK_COND(hash2.find(mymax - 100) == hash2.end(), "Part 4.6"); - - return true; - } - - bool DoTestStack(std::string &error) - { - typedef SourceHook::CStack IntStack; - IntStack stk; - int i; - - CHECK_COND(stk.size() == 0 && stk.empty(), "A0"); - - for (i = 0; i < 5000; ++i) - stk.push(i); - - CHECK_COND(stk.front() == 4999, "1"); - CHECK_COND(stk.size() == 5000 && !stk.empty(), "A1"); - - IntStack::iterator iter; - i = 0; - for (iter = stk.begin(); iter != stk.end(); ++iter, ++i) - CHECK_COND(*iter == i, "2"); - - i = 0; - for (iter = stk.begin(); iter != stk.end(); iter++, ++i) - CHECK_COND(*iter == i, "3"); - - --iter; - iter--; - *iter = 'g'+'a'+'b'+'e'+'n'; - stk.pop(); - - CHECK_COND(stk.size() == 4999 && !stk.empty(), "A2"); - CHECK_COND(stk.front() == 'g'+'a'+'b'+'e'+'n', "4"); - - IntStack stk2(stk); - CHECK_COND(stk2.size() == 4999 && !stk2.empty(), "A3"); - - IntStack::iterator iter2 = stk2.begin(); - for (iter = stk.begin(); iter != stk.end(); ++iter, iter2++) - CHECK_COND(*iter == *iter2, "5"); - - while (!stk2.empty()) - stk2.pop(); - CHECK_COND(stk2.size() == 0 && stk2.empty(), "A4"); - stk = stk2; - CHECK_COND(stk.size() == 0 && stk.empty(), "A5"); - - return true; - } - - bool DoTestVec(std::string &error) - { - typedef SourceHook::CVector IntVector; - IntVector vec1; - IntVector::iterator iter; - int i; - - CHECK_COND(vec1.size() == 0 && vec1.empty(), "V1"); - for (i = 0; i < 500; ++i) - vec1.push_back(i); - - CHECK_COND(vec1.size() == 500 && !vec1.empty(), "V2"); - - for (i = 0; i < 500; ++i) - CHECK_COND(vec1[i] == i, "V3"); - - for (i = 0, iter = vec1.begin(); iter != vec1.end(); ++iter, ++i) - CHECK_COND(*iter == i, "V4"); - - vec1.resize(1000); - for (i = 0; i < 500; ++i) - CHECK_COND(vec1[i] == i, "V5.1"); - for (i = 500; i < 1000; ++i) - CHECK_COND(vec1[i] == 0, "V5.2"); - - vec1.resize(200); - for (i = 0; i < 200; ++i) - CHECK_COND(vec1[i] == i, "V6"); - - vec1.resize(500, 0x12345678); - for (i = 0; i < 200; ++i) - CHECK_COND(vec1[i] == i, "V7.1"); - for (i = 200; i < 500; ++i) - CHECK_COND(vec1[i] == 0x12345678, "V7.2"); - - IntVector vec2(vec1); - CHECK_COND(vec2.size() == vec1.size() && vec2.empty() == vec1.empty(), "V8.0"); - for (i = 0; i < 200; ++i) - CHECK_COND(vec2[i] == i, "V8.1"); - for (i = 200; i < 500; ++i) - CHECK_COND(vec2[i] == 0x12345678, "V8.2"); - - - vec1.clear(); - CHECK_COND(vec1.size() == 0 && vec1.empty() && vec1.begin() == vec1.end(), "V9"); - vec2 = vec1; - CHECK_COND(vec2.size() == 0 && vec2.empty() && vec2.begin() == vec2.end(), "V9"); - - return true; - } -} - -bool TestList(std::string &error) -{ - if (!DoTestList(error)) - return false; - - if (!DoTestTinyHash(error)) - return false; - - if (!DoTestStack(error)) - return false; - - if (!DoTestVec(error)) - return false; - - return true; -} diff --git a/sourcehook/test/testmanual.cpp b/sourcehook/test/testmanual.cpp deleted file mode 100644 index 0d1013a..0000000 --- a/sourcehook/test/testmanual.cpp +++ /dev/null @@ -1,355 +0,0 @@ -#include -#include "sourcehook.h" -#include "sourcehook_test.h" -#include "testevents.h" - -// TESTMANUAL -// Test manual hooks -// :TODO: test more extensively - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_Func1_Called, void*); // param1: This pointer - MAKE_STATE_2(State_Func2_Called, void*, int); // param1: This pointer; param2: parameter - MAKE_STATE_1(State_Func3_Called, void*); // param1: This pointer - MAKE_STATE_2(State_Func4_Called, void*, int); // param1: This pointer; param2: parameter - MAKE_STATE_1(State_Func5_Called, void*); // param1: This pointer - - MAKE_STATE_1(State_Func1H_Called, void*); - MAKE_STATE_2(State_Func2H_Called, void*, int); - MAKE_STATE_1(State_Func3H_Called, void*); - MAKE_STATE_2(State_Func4H_Called, void*, int); - - MAKE_STATE_1(State_Return, short); - - class TheWall - { - public: - virtual void Func1() - { - ADD_STATE(State_Func1_Called(reinterpret_cast(this))); - } - virtual void Func2(int x) - { - ADD_STATE(State_Func2_Called(reinterpret_cast(this), x)); - } - - virtual short Func3() - { - ADD_STATE(State_Func3_Called(reinterpret_cast(this))); - return 3; - } - virtual short Func4(int x) - { - ADD_STATE(State_Func4_Called(reinterpret_cast(this), x)); - return 4; - } - virtual void Func5() - { - ADD_STATE(State_Func5_Called(reinterpret_cast(this))); - } - }; - - SH_DECL_HOOK0_void(TheWall, Func1, SH_NOATTRIB, 0); - SH_DECL_HOOK1_void(TheWall, Func2, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0(TheWall, Func3, SH_NOATTRIB, 0, short); - SH_DECL_HOOK1(TheWall, Func4, SH_NOATTRIB, 0, short, int); - - SH_DECL_MANUALHOOK0_void(TheWall_Func1, 0, 0, 0); - SH_DECL_MANUALHOOK1_void(TheWall_Func2, 1, 0, 0, int); - SH_DECL_MANUALHOOK0(TheWall_Func3, 2, 0, 0, short); - SH_DECL_MANUALHOOK1(TheWall_Func4, 3, 0, 0, short, int); - - typedef void (SourceHook::EmptyClass::*MFP_Func1)(); - typedef void (SourceHook::EmptyClass::*MFP_Func2)(int); - typedef short (SourceHook::EmptyClass::*MFP_Func3)(); - typedef short (SourceHook::EmptyClass::*MFP_Func4)(int); - - void Handler_Func1() - { - ADD_STATE(State_Func1H_Called(META_IFACEPTR(void))); - } - void Handler_Func2(int x) - { - ADD_STATE(State_Func2H_Called(META_IFACEPTR(void), x)); - RETURN_META_MNEWPARAMS(MRES_IGNORED, TheWall_Func2, (0x87654321)); - } - short Handler_Func3() - { - ADD_STATE(State_Func3H_Called(META_IFACEPTR(void))); - return 0; - } - short Handler_Func4(int x) - { - ADD_STATE(State_Func4H_Called(META_IFACEPTR(void), x)); - - // newparams (recall) using the manual hook declaration! - RETURN_META_VALUE_MNEWPARAMS(MRES_IGNORED, 0, TheWall_Func4, (0x12345678)); - } - - struct AnotherBrick - { - void Handler_Func1() - { - ADD_STATE(State_Func1H_Called(META_IFACEPTR(void))); - RETURN_META(MRES_SUPERCEDE); - } - }; -} - -bool TestManual(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - TheWall inst; - TheWall *p = &inst; - - SourceHook::ManualCallClass *cc = SH_GET_MCALLCLASS(p, sizeof(void*)); - - // 1) - // Call each function - p->Func1(); - p->Func2(200); - ADD_STATE(State_Return(p->Func3())); - ADD_STATE(State_Return(p->Func4(400))); - - CHECK_STATES((&g_States, - new State_Func1_Called(p), - new State_Func2_Called(p, 200), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4_Called(p, 400), - new State_Return(4), - NULL), "Part 1"); - - // 1.1) - // Now call each function through the manual call class, using the hook decl and manually - SH_MCALL(cc, TheWall_Func1)(); - SH_MCALL2(cc, MFP_Func1(), 0, 0, 0)(); - SH_MCALL(cc, TheWall_Func2)(200); - SH_MCALL2(cc, MFP_Func2(), 1, 0, 0)(200); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func3)())); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func3(), 2, 0, 0)())); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func4)(400))); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func4(), 3, 0, 0)(400))); - - CHECK_STATES((&g_States, - new State_Func1_Called(p), - new State_Func1_Called(p), - new State_Func2_Called(p, 200), - new State_Func2_Called(p, 200), - new State_Func3_Called(p), - new State_Return(3), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4_Called(p, 400), - new State_Return(4), - new State_Func4_Called(p, 400), - new State_Return(4), - NULL), "Part 1.1"); - - // 2) - // Hook each function normally, call them - SH_ADD_HOOK_STATICFUNC(TheWall, Func1, p, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func2, p, Handler_Func2, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func3, p, Handler_Func3, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func4, p, Handler_Func4, false); - - p->Func1(); - p->Func2(200); - ADD_STATE(State_Return(p->Func3())); - ADD_STATE(State_Return(p->Func4(400))); - - CHECK_STATES((&g_States, - new State_Func1H_Called(p), - new State_Func1_Called(p), - new State_Func2H_Called(p, 200), - new State_Func2_Called(p, 0x87654321), - new State_Func3H_Called(p), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4H_Called(p, 400), - new State_Func4_Called(p, 0x12345678), - new State_Return(4), - NULL), "Part 2"); - - // Call them through the mcallclass - // 2.1) - // Now call each function through the manual call class, using the hook decl and manually - SH_MCALL(cc, TheWall_Func1)(); - SH_MCALL2(cc, MFP_Func1(), 0, 0, 0)(); - SH_MCALL(cc, TheWall_Func2)(200); - SH_MCALL2(cc, MFP_Func2(), 1, 0, 0)(200); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func3)())); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func3(), 2, 0, 0)())); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func4)(400))); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func4(), 3, 0, 0)(400))); - - CHECK_STATES((&g_States, - new State_Func1_Called(p), - new State_Func1_Called(p), - new State_Func2_Called(p, 200), - new State_Func2_Called(p, 200), - new State_Func3_Called(p), - new State_Return(3), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4_Called(p, 400), - new State_Return(4), - new State_Func4_Called(p, 400), - new State_Return(4), - NULL), "Part 2.1"); - - // Unhook them - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func1, p, Handler_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func2, p, Handler_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func3, p, Handler_Func3, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func4, p, Handler_Func4, false); - - // 3) - // Hook each function manually, call them - - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func1, p, Handler_Func1, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func2, p, Handler_Func2, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func3, p, Handler_Func3, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func4, p, Handler_Func4, false); - - p->Func1(); - p->Func2(200); - ADD_STATE(State_Return(p->Func3())); - ADD_STATE(State_Return(p->Func4(400))); - - CHECK_STATES((&g_States, - new State_Func1H_Called(p), - new State_Func1_Called(p), - new State_Func2H_Called(p, 200), - new State_Func2_Called(p, 0x87654321), - new State_Func3H_Called(p), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4H_Called(p, 400), - new State_Func4_Called(p, 0x12345678), - new State_Return(4), - NULL), "Part 3"); - - // Now through the mcallclass - - // Call them through the mcallclass - // 3.1) - // Now call each function through the manual call class, using the hook decl and manually - SH_MCALL(cc, TheWall_Func1)(); - SH_MCALL2(cc, MFP_Func1(), 0, 0, 0)(); - SH_MCALL(cc, TheWall_Func2)(200); - SH_MCALL2(cc, MFP_Func2(), 1, 0, 0)(200); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func3)())); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func3(), 2, 0, 0)())); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func4)(400))); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func4(), 3, 0, 0)(400))); - - CHECK_STATES((&g_States, - new State_Func1_Called(p), - new State_Func1_Called(p), - new State_Func2_Called(p, 200), - new State_Func2_Called(p, 200), - new State_Func3_Called(p), - new State_Return(3), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4_Called(p, 400), - new State_Return(4), - new State_Func4_Called(p, 400), - new State_Return(4), - NULL), "Part 3.1"); - - // Unhook them - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func1, p, Handler_Func1, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func2, p, Handler_Func2, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func3, p, Handler_Func3, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func4, p, Handler_Func4, false); - - // 4) - // Hook each function manually, then normally, call, unhook - - AnotherBrick handler_inst; - - // Why this? - // 1) tests sh_add_manualhook_memfunc - // 2) in my tests, the proto of the manual hook was not equal to the proto of the auto hook - // (because there are no attribs for manual hooks). - // sourcehook.cpp did a !strcmp(..), so it assigned a new hook manager even though there - // already was one for this vfnptr. This hook manager stored the pointer of the original - // hook manager's hookfunc as the orig pointer - everything seemingly worked. - // The problem with this is that returning MRES_SUPERCEDE (as AnotherBrick::Handler_Func1 - // does) will supercede the second hook func from being called - thus bypassing the call - // of the auto hook here. - SH_ADD_MANUALHOOK_MEMFUNC(TheWall_Func1, p, &handler_inst, &AnotherBrick::Handler_Func1, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func2, p, Handler_Func2, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func3, p, Handler_Func3, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func4, p, Handler_Func4, false); - - SH_ADD_HOOK_STATICFUNC(TheWall, Func1, p, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func2, p, Handler_Func2, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func3, p, Handler_Func3, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func4, p, Handler_Func4, false); - - p->Func1(); - p->Func2(200); - ADD_STATE(State_Return(p->Func3())); - ADD_STATE(State_Return(p->Func4(400))); - - CHECK_STATES((&g_States, - new State_Func1H_Called(p), - new State_Func1H_Called(p), - //new State_Func1_Called(p), - new State_Func2H_Called(p, 200), - new State_Func2H_Called(p, 0x87654321), - new State_Func2_Called(p, 0x87654321), - new State_Func3H_Called(p), - new State_Func3H_Called(p), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4H_Called(p, 400), - new State_Func4H_Called(p, 0x12345678), - new State_Func4_Called(p, 0x12345678), - new State_Return(4), - NULL), "Part 4"); - - SH_REMOVE_MANUALHOOK_MEMFUNC(TheWall_Func1, p, &handler_inst, &AnotherBrick::Handler_Func1, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func2, p, Handler_Func2, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func3, p, Handler_Func3, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func4, p, Handler_Func4, false); - - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func1, p, Handler_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func2, p, Handler_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func3, p, Handler_Func3, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func4, p, Handler_Func4, false); - - // 5) Reconfigure TheWall_Func1 to actually hook Func5: - SH_MANUALHOOK_RECONFIGURE(TheWall_Func1, 4, 0, 0); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func1, p, Handler_Func1, false); - - p->Func5(); - - CHECK_STATES((&g_States, - new State_Func1H_Called(p), - new State_Func5_Called(p), - NULL), "Part 5"); - - // 6) Test auto-remove on reconfig - SH_MANUALHOOK_RECONFIGURE(TheWall_Func1, 0, 0, 0); - - p->Func1(); - p->Func5(); - - CHECK_STATES((&g_States, - new State_Func1_Called(p), - new State_Func5_Called(p), - NULL), "Part 6"); - - return true; -} diff --git a/sourcehook/test/testmulti.cpp b/sourcehook/test/testmulti.cpp deleted file mode 100644 index 95e7490..0000000 --- a/sourcehook/test/testmulti.cpp +++ /dev/null @@ -1,107 +0,0 @@ -#include -#include "sourcehook.h" -#include "sourcehook_test.h" -#include "testevents.h" - -// This should probably be done the other way round! -#ifdef __linux__ -#define _snprintf snprintf -#endif - -namespace -{ - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - unsigned int g_callcount[10]; - - class VMultiTest - { - public: - VMultiTest(unsigned int index) : m_idx(index) - { - } - public: - virtual void HookTarget() - { - } - virtual void Notify() - { - g_callcount[this->m_idx]++; - } - private: - unsigned int m_idx; - }; - - void HookFunction() - { - VMultiTest *pv = META_IFACEPTR(VMultiTest); - pv->Notify(); - } - - SH_DECL_HOOK0_void(VMultiTest, HookTarget, SH_NOATTRIB, false); -}; - -bool TestMulti(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - VMultiTest **pv = new VMultiTest *[10]; - for (unsigned int i=0; i<10; i++) - pv[i] = new VMultiTest(i); - - - for (unsigned int i=0; i<10; i++) - SH_ADD_HOOK_STATICFUNC(VMultiTest, HookTarget, pv[i], HookFunction, false); - - pv[0]->HookTarget(); - - if (g_callcount[0] != 1) - { - error.assign("g_callcount[0] != 0"); - return false; - } - - for (unsigned int i=1; i<10; i++) - { - if (g_callcount[i]) - { - error.assign("g_callcount[n] != 0"); - return false; - } - } - - SH_REMOVE_HOOK_STATICFUNC(VMultiTest, HookTarget, pv[0], HookFunction, false); - - for (unsigned int i=1; i<10; i++) - pv[i]->HookTarget(); - - if (g_callcount[0] != 1) - { - error.assign("g_callcount[0] != 0"); - return false; - } - - for (unsigned int i=1; i<10; i++) - { - if (g_callcount[i] != 1) - { - char err[256]; - _snprintf(err, sizeof(err)-1, "g_callcount[%d] != 1", i); - error.assign(err); - return false; - } - } - - for (unsigned int i=0; i<10; i++) - { - SH_REMOVE_HOOK_STATICFUNC(VMultiTest, HookTarget, pv[i], HookFunction, false); - delete pv[i]; - } - - delete [] pv; - - return true; -} - diff --git a/sourcehook/test/testrecall.cpp b/sourcehook/test/testrecall.cpp deleted file mode 100644 index 25eede5..0000000 --- a/sourcehook/test/testrecall.cpp +++ /dev/null @@ -1,232 +0,0 @@ -#include -#include "sourcehook.h" -#include "sourcehook_test.h" -#include "testevents.h" - -// TESTRECALL -// Test modifying parameters from hook handlers - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_Func1, int); - MAKE_STATE_1(State_H1_Func1, int); - MAKE_STATE_1(State_H2_Func1, int); - MAKE_STATE_2(State_HP_Func1, int, void*); - - MAKE_STATE_1(State_Func2, int); - MAKE_STATE_1(State_H1_Func2, int); - MAKE_STATE_1(State_H2_Func2, int); - MAKE_STATE_2(State_HP_Func2, int, int); - - MAKE_STATE_2(State_Func22, int, int); - MAKE_STATE_2(State_H1_Func22, int, int); - MAKE_STATE_2(State_HP1_Func22, int, int); - MAKE_STATE_2(State_HP2_Func22, int, int); - - struct Test - { - virtual void Func1(int a) - { - ADD_STATE(State_Func1(a)); - } - - virtual int Func2(int a) - { - ADD_STATE(State_Func2(a)); - return 1000; - } - - // Overloaded version - virtual int Func2(int a, int b) - { - ADD_STATE(State_Func22(a, b)); - return 0xDEADFC; - } - }; - - void Handler1_Func1(int a) - { - ADD_STATE(State_H1_Func1(a)); - RETURN_META_NEWPARAMS(MRES_IGNORED, &Test::Func1, (5)); - } - void Handler2_Func1(int a) - { - ADD_STATE(State_H2_Func1(a)); - RETURN_META_NEWPARAMS(MRES_IGNORED, &Test::Func1, (a - 5)); - } - void HandlerPost_Func1(int a) - { - ADD_STATE(State_HP_Func1(a, META_IFACEPTR(void))); - } - - - int Handler1_Func2(int a) - { - ADD_STATE(State_H1_Func2(a)); - // Pfeeehhh, ugly, I know, but I had to test it :) - RETURN_META_VALUE_NEWPARAMS(MRES_OVERRIDE, 500, - static_cast(&Test::Func2), (a - 10)); - } - - int Handler2_Func2(int a) - { - ADD_STATE(State_H2_Func2(a)); - RETURN_META_VALUE_NEWPARAMS(MRES_IGNORED, 0, - static_cast(&Test::Func2), (a - 10)); - } - - int HandlerPost_Func2(int a) - { - ADD_STATE(State_HP_Func2(a, META_RESULT_ORIG_RET(int))); - RETURN_META_VALUE(MRES_IGNORED, 0); - } - - int Handler1_Func22(int a, int b) - { - ADD_STATE(State_H1_Func22(a, b)); - RETURN_META_VALUE(MRES_IGNORED, 0); - } - - int HandlerPost1_Func22(int a, int b) - { - ADD_STATE(State_HP1_Func22(a, b)); - RETURN_META_VALUE_NEWPARAMS(MRES_IGNORED, 0, static_cast(&Test::Func2), (1, 2)); - } - - int HandlerPost1A_Func22(int a, int b) - { - ADD_STATE(State_HP1_Func22(a, b)); - RETURN_META_VALUE_NEWPARAMS(MRES_OVERRIDE, 0, static_cast(&Test::Func2), (1, 2)); - } - - int HandlerPost2_Func22(int a, int b) - { - ADD_STATE(State_HP2_Func22(a, b)); - RETURN_META_VALUE(MRES_IGNORED, 0); - } - - SH_DECL_HOOK1_void(Test, Func1, SH_NOATTRIB, 0, int); - SH_DECL_HOOK1(Test, Func2, SH_NOATTRIB, 0, int, int); - SH_DECL_HOOK2(Test, Func2, SH_NOATTRIB, 1, int, int, int); -} - -bool TestRecall(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - Test inst; - Test *ptr = &inst; - - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, Handler1_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, Handler2_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, HandlerPost_Func1, true); - - ptr->Func1(77); - - CHECK_STATES((&g_States, - new State_H1_Func1(77), - new State_H2_Func1(5), - new State_Func1(0), - new State_HP_Func1(0, ptr), - NULL), "Part 1"); - - SH_REMOVE_HOOK_STATICFUNC(Test, Func1, ptr, Handler1_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, Handler2_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, Handler2_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, Handler2_Func1, false); - - ptr->Func1(77); - - CHECK_STATES((&g_States, - new State_H2_Func1(77), - new State_H2_Func1(72), - new State_H2_Func1(67), - new State_H2_Func1(62), - new State_Func1(57), - new State_HP_Func1(57, ptr), - NULL), "Part 2"); - - SH_REMOVE_HOOK_STATICFUNC(Test, Func1, ptr, Handler2_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(Test, Func1, ptr, HandlerPost_Func1, true); - - ptr->Func1(77); - - CHECK_STATES((&g_States, - new State_Func1(77), - NULL), "Part 3"); - - // Func2 - - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, Handler1_Func2, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost_Func2, true); - - int a = ptr->Func2(77); - CHECK_STATES((&g_States, - new State_H1_Func2(77), - new State_Func2(67), - new State_HP_Func2(67, 1000), // 1000 because it's the ORIG_RET - NULL), "Part 4"); - - CHECK_COND(a == 500, "Part 4.1"); - - // Func2, with other handler - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, Handler1_Func2, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, Handler2_Func2, false); - - a = ptr->Func2(77); - CHECK_STATES((&g_States, - new State_H2_Func2(77), - new State_Func2(67), - new State_HP_Func2(67, 1000), // 1000 because it's the ORIG_RET - NULL), "Part 4.2"); - - CHECK_COND(a == 1000, "Part 4.2.1"); // Should return 1000 as well. - - // Func22 -> post recalls - - // 1) WITH OVERRIDE - - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, Handler1_Func22, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost1A_Func22, true); - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost2_Func22, true); - - a = ptr->Func2(10, 11); - CHECK_STATES((&g_States, - new State_H1_Func22(10, 11), - new State_Func22(10, 11), - new State_HP1_Func22(10, 11), - new State_HP2_Func22(1, 2), - NULL), "Part 5"); - - CHECK_COND(a == 0, "Part 5.1"); - - // 2) WITH IGNORE - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost1A_Func22, true); - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost2_Func22, true); - - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost1_Func22, true); - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost2_Func22, true); - - a = ptr->Func2(10, 11); - CHECK_STATES((&g_States, - new State_H1_Func22(10, 11), - new State_Func22(10, 11), - new State_HP1_Func22(10, 11), - new State_HP2_Func22(1, 2), - NULL), "Part 5"); - - CHECK_COND(a == 0xDEADFC, "Part 5.1"); - - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost_Func2, true); - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, Handler2_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, Handler1_Func22, false); - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost1_Func22, true); - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost2_Func22, true); - - return true; -} diff --git a/sourcehook/test/testreentr.cpp b/sourcehook/test/testreentr.cpp deleted file mode 100644 index b4f0ec5..0000000 --- a/sourcehook/test/testreentr.cpp +++ /dev/null @@ -1,599 +0,0 @@ -// Reentrancy test -// = calling hooks from hook handlers, etc - -#include -#include "sourcehook_test.h" -#include "testevents.h" - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - struct C1; - struct C2; - struct C3; - struct C4; - struct C5; - struct C6; - struct C7; - struct C8; - - C1 *g_pC1; - C2 *g_pC2; - C3 *g_pC3; - C4 *g_pC4; - C5 *g_pC5; - C6 *g_pC6; - C7 *g_pC7; - C8 *g_pC8; - - // param1: This pointer - MAKE_STATE_1(State_C1_F, C1*); - MAKE_STATE_1(State_C2_F, C2*); - MAKE_STATE_1(State_C3_F, C3*); - MAKE_STATE_1(State_C4_F, C4*); - MAKE_STATE_1(State_C5_F, C5*); - MAKE_STATE_1(State_C6_F, C6*); - MAKE_STATE_1(State_C7_F, C7*); - MAKE_STATE_1(State_C8_F, C8*); - - MAKE_STATE_1(State_C1_G, C1*); - MAKE_STATE_1(State_C2_G, C2*); - MAKE_STATE_1(State_C3_G, C3*); - MAKE_STATE_1(State_C4_G, C4*); - MAKE_STATE_1(State_C5_G, C5*); - MAKE_STATE_1(State_C6_G, C6*); - MAKE_STATE_1(State_C7_G, C7*); - MAKE_STATE_1(State_C8_G, C8*); - - MAKE_STATE_1(State_H_C1_F, C1*); - MAKE_STATE_1(State_H_C2_F, C2*); - MAKE_STATE_1(State_H_C3_F, C3*); - MAKE_STATE_1(State_H_C4_F, C4*); - MAKE_STATE_1(State_H_C5_F, C5*); - MAKE_STATE_1(State_H_C6_F, C6*); - MAKE_STATE_1(State_H_C7_F, C7*); - MAKE_STATE_1(State_H_C8_F, C8*); - - MAKE_STATE_1(State_H_C1_G, C1*); - MAKE_STATE_1(State_H_C2_G, C2*); - MAKE_STATE_1(State_H_C3_G, C3*); - MAKE_STATE_1(State_H_C4_G, C4*); - MAKE_STATE_1(State_H_C5_G, C5*); - MAKE_STATE_1(State_H_C6_G, C6*); - MAKE_STATE_1(State_H_C7_G, C7*); - MAKE_STATE_1(State_H_C8_G, C8*); - - MAKE_STATE_1(State_H2_C4_G, C4*); - - int g_TestID; - - struct C1 - { - virtual void F() - { - ADD_STATE(State_C1_F(this)); - } - virtual int G() - { - ADD_STATE(State_C1_G(this)); - return 1; - } - }; - struct C2 - { - virtual void F() - { - ADD_STATE(State_C2_F(this)); - } - virtual int G() - { - ADD_STATE(State_C2_G(this)); - return 2; - } - }; - struct C3 - { - virtual void F() - { - ADD_STATE(State_C3_F(this)); - } - virtual int G() - { - ADD_STATE(State_C3_G(this)); - return 3; - } - }; - struct C4 - { - virtual void F() - { - ADD_STATE(State_C4_F(this)); - } - virtual int G() - { - ADD_STATE(State_C4_G(this)); - return 4; - } - }; - struct C5 - { - virtual void F() - { - ADD_STATE(State_C5_F(this)); - } - virtual int G() - { - ADD_STATE(State_C5_G(this)); - return 5; - } - }; - struct C6 - { - virtual void F() - { - ADD_STATE(State_C6_F(this)); - } - virtual int G() - { - ADD_STATE(State_C6_G(this)); - return 6; - } - }; - struct C7 - { - virtual void F() - { - ADD_STATE(State_C7_F(this)); - } - virtual int G() - { - ADD_STATE(State_C7_G(this)); - return 7; - } - }; - struct C8 - { - virtual void F() - { - ADD_STATE(State_C8_F(this)); - } - virtual int G() - { - ADD_STATE(State_C8_G(this)); - return 8; - } - }; - - SH_DECL_HOOK0_void(C1, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C1, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C2, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C2, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C3, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C3, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C4, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C4, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C5, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C5, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C6, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C6, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C7, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C7, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C8, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C8, G, SH_NOATTRIB, 0, int); - - void Handler_C1_F() - { - ADD_STATE(State_H_C1_F(META_IFACEPTR(C1))); - g_pC1->G(); - } - int Handler_C1_G() - { - ADD_STATE(State_H_C1_G(META_IFACEPTR(C1))); - g_pC2->F(); - return 1; - } - void Handler_C2_F() - { - ADD_STATE(State_H_C2_F(META_IFACEPTR(C2))); - g_pC2->G(); - } - int Handler_C2_G() - { - ADD_STATE(State_H_C2_G(META_IFACEPTR(C2))); - g_pC3->F(); - return 2; - } - void Handler_C3_F() - { - ADD_STATE(State_H_C3_F(META_IFACEPTR(C3))); - g_pC3->G(); - } - int Handler_C3_G() - { - ADD_STATE(State_H_C3_G(META_IFACEPTR(C3))); - g_pC4->F(); - return 3; - } - void Handler_C4_F() - { - ADD_STATE(State_H_C4_F(META_IFACEPTR(C4))); - g_pC4->G(); - } - int Handler_C4_G() - { - ADD_STATE(State_H_C4_G(META_IFACEPTR(C4))); - g_pC5->F(); - return 4; - } - int Handler2_C4_G() - { - ADD_STATE(State_H2_C4_G(META_IFACEPTR(C4))); - return 4; - } - void Handler_C5_F() - { - ADD_STATE(State_H_C5_F(META_IFACEPTR(C5))); - g_pC5->G(); - } - int Handler_C5_G() - { - ADD_STATE(State_H_C5_G(META_IFACEPTR(C5))); - g_pC6->F(); - return 5; - } - void Handler_C6_F() - { - ADD_STATE(State_H_C6_F(META_IFACEPTR(C6))); - g_pC6->G(); - } - int Handler_C6_G() - { - ADD_STATE(State_H_C6_G(META_IFACEPTR(C6))); - g_pC7->F(); - return 6; - } - void Handler_C7_F() - { - if (g_TestID == 1 || g_TestID == 2) - SH_REMOVE_HOOK_STATICFUNC(C4, G, g_pC4, Handler2_C4_G, false); - if (g_TestID == 2) - SH_REMOVE_HOOK_STATICFUNC(C4, G, g_pC4, Handler_C4_G, false); - - ADD_STATE(State_H_C7_F(META_IFACEPTR(C7))); - g_pC7->G(); - } - int Handler_C7_G() - { - ADD_STATE(State_H_C7_G(META_IFACEPTR(C7))); - g_pC8->F(); - return 7; - } - void Handler_C8_F() - { - ADD_STATE(State_H_C8_F(META_IFACEPTR(C8))); - g_pC8->G(); - } - int Handler_C8_G() - { - ADD_STATE(State_H_C8_G(META_IFACEPTR(C8))); - return 8; - } - - C1 g_C1; - C2 g_C2; - C3 g_C3; - C4 g_C4; - C5 g_C5; - C6 g_C6; - C7 g_C7; - C8 g_C8; -} - -bool TestReentr(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - g_pC1 = &g_C1; - g_pC2 = &g_C2; - g_pC3 = &g_C3; - g_pC4 = &g_C4; - g_pC5 = &g_C5; - g_pC6 = &g_C6; - g_pC7 = &g_C7; - g_pC8 = &g_C8; - - SH_ADD_HOOK_STATICFUNC(C1, F, g_pC1, Handler_C1_F, false); - SH_ADD_HOOK_STATICFUNC(C1, G, g_pC1, Handler_C1_G, false); - SH_ADD_HOOK_STATICFUNC(C2, F, g_pC2, Handler_C2_F, false); - SH_ADD_HOOK_STATICFUNC(C2, G, g_pC2, Handler_C2_G, false); - SH_ADD_HOOK_STATICFUNC(C3, F, g_pC3, Handler_C3_F, false); - SH_ADD_HOOK_STATICFUNC(C3, G, g_pC3, Handler_C3_G, false); - SH_ADD_HOOK_STATICFUNC(C4, F, g_pC4, Handler_C4_F, false); - SH_ADD_HOOK_STATICFUNC(C4, G, g_pC4, Handler_C4_G, false); - SH_ADD_HOOK_STATICFUNC(C5, F, g_pC5, Handler_C5_F, false); - SH_ADD_HOOK_STATICFUNC(C5, G, g_pC5, Handler_C5_G, false); - SH_ADD_HOOK_STATICFUNC(C6, F, g_pC6, Handler_C6_F, false); - SH_ADD_HOOK_STATICFUNC(C6, G, g_pC6, Handler_C6_G, false); - SH_ADD_HOOK_STATICFUNC(C7, F, g_pC7, Handler_C7_F, false); - SH_ADD_HOOK_STATICFUNC(C7, G, g_pC7, Handler_C7_G, false); - SH_ADD_HOOK_STATICFUNC(C8, F, g_pC8, Handler_C8_F, false); - SH_ADD_HOOK_STATICFUNC(C8, G, g_pC8, Handler_C8_G, false); - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "1"); - - - SH_ADD_HOOK_STATICFUNC(C4, G, g_pC4, Handler2_C4_G, false); - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_H2_C4_G(g_pC4), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "2"); - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_H2_C4_G(g_pC4), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "3"); - - g_TestID = 1; - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "4"); - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "5"); - - - - SH_ADD_HOOK_STATICFUNC(C4, G, g_pC4, Handler2_C4_G, false); - - g_TestID = 2; - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "6"); - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "7"); - - SH_REMOVE_HOOK_STATICFUNC(C1, F, g_pC1, Handler_C1_F, false); - SH_REMOVE_HOOK_STATICFUNC(C1, G, g_pC1, Handler_C1_G, false); - SH_REMOVE_HOOK_STATICFUNC(C2, F, g_pC2, Handler_C2_F, false); - SH_REMOVE_HOOK_STATICFUNC(C2, G, g_pC2, Handler_C2_G, false); - SH_REMOVE_HOOK_STATICFUNC(C3, F, g_pC3, Handler_C3_F, false); - SH_REMOVE_HOOK_STATICFUNC(C3, G, g_pC3, Handler_C3_G, false); - SH_REMOVE_HOOK_STATICFUNC(C4, F, g_pC4, Handler_C4_F, false); - SH_REMOVE_HOOK_STATICFUNC(C4, G, g_pC4, Handler_C4_G, false); - SH_REMOVE_HOOK_STATICFUNC(C5, F, g_pC5, Handler_C5_F, false); - SH_REMOVE_HOOK_STATICFUNC(C5, G, g_pC5, Handler_C5_G, false); - SH_REMOVE_HOOK_STATICFUNC(C6, F, g_pC6, Handler_C6_F, false); - SH_REMOVE_HOOK_STATICFUNC(C6, G, g_pC6, Handler_C6_G, false); - SH_REMOVE_HOOK_STATICFUNC(C7, F, g_pC7, Handler_C7_F, false); - SH_REMOVE_HOOK_STATICFUNC(C7, G, g_pC7, Handler_C7_G, false); - SH_REMOVE_HOOK_STATICFUNC(C8, F, g_pC8, Handler_C8_F, false); - SH_REMOVE_HOOK_STATICFUNC(C8, G, g_pC8, Handler_C8_G, false); - - return true; -} diff --git a/sourcehook/test/testref.cpp b/sourcehook/test/testref.cpp deleted file mode 100644 index 1727bf5..0000000 --- a/sourcehook/test/testref.cpp +++ /dev/null @@ -1,165 +0,0 @@ -#include "testevents.h" -#include "sourcehook_test.h" - -// References and private copy constructors and stuff like that! - -/* -BAILOPAN, 29.04.2006 21:51 : -onoto-san, interesting error from VS -we have this function: -void GabHaben(ISomething &sth); - -SomethingDerived sth; -and SH_CALL(cc, &WHAT::GabHaben)(sth); -"No copy constructor available for class 'SomethingDerived'" -*/ - - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_Result, int); - MAKE_STATE_1(State_Result_InHook, int); - - class CBase - { - // Private copy constructor! - CBase(CBase &other) - { - } - public: - CBase() - { - } - - virtual int Func() - { - return 0; - } - }; - - class CDerived : public CBase - { - virtual int Func() - { - return 10; - } - }; - - // Complicated derived shit ! - class COtherWeirdBase - { - int member; - }; - class CDerived2 : private COtherWeirdBase, public CBase - { - int m_Return; - public: - CDerived2(int a) : m_Return(a) - { - } - - virtual int Func() - { - return m_Return; - } - }; - - class CHello - { - public: - virtual int Func(CBase &sth) - { - return sth.Func(); - } - }; - - class CHook - { - public: - virtual int Func(CBase &sth) - { - ADD_STATE(State_Result_InHook(sth.Func())); - RETURN_META_VALUE(MRES_SUPERCEDE, 20); - } - }; - SH_DECL_HOOK1(CHello, Func, SH_NOATTRIB, 0, int, CBase&); -} - - -bool TestRef(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1; - - CBase base; - CDerived der; - CDerived2 der2(11); - CDerived2 der3(12); - CHello hello; - CHello *pHello = &hello; - CHook hook; - - SourceHook::CallClass *cc = SH_GET_CALLCLASS(&hello); - - ADD_STATE(State_Result(pHello->Func(base))); - ADD_STATE(State_Result(pHello->Func(der))); - ADD_STATE(State_Result(pHello->Func(der2))); - ADD_STATE(State_Result(pHello->Func(der3))); - - CHECK_STATES((&g_States, - new State_Result(0), - new State_Result(10), - new State_Result(11), - new State_Result(12), - NULL), "Part 1"); - - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(base))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der2))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der3))); - - CHECK_STATES((&g_States, - new State_Result(0), - new State_Result(10), - new State_Result(11), - new State_Result(12), - NULL), "Part 2"); - - SH_ADD_HOOK_MEMFUNC(CHello, Func, &hello, &hook, &CHook::Func, false); - - ADD_STATE(State_Result(pHello->Func(base))); - ADD_STATE(State_Result(pHello->Func(der))); - ADD_STATE(State_Result(pHello->Func(der2))); - ADD_STATE(State_Result(pHello->Func(der3))); - - CHECK_STATES((&g_States, - new State_Result_InHook(0), - new State_Result(20), - new State_Result_InHook(10), - new State_Result(20), - new State_Result_InHook(11), - new State_Result(20), - new State_Result_InHook(12), - new State_Result(20), - NULL), "Part 3"); - - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(base))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der2))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der3))); - - CHECK_STATES((&g_States, - new State_Result(0), - new State_Result(10), - new State_Result(11), - new State_Result(12), - NULL), "Part 4"); - - SH_REMOVE_HOOK_MEMFUNC(CHello, Func, &hello, &hook, &CHook::Func, false); - - return true; -} diff --git a/sourcehook/test/testrefret.cpp b/sourcehook/test/testrefret.cpp deleted file mode 100644 index b2f9291..0000000 --- a/sourcehook/test/testrefret.cpp +++ /dev/null @@ -1,208 +0,0 @@ -#include "testevents.h" -#include "sourcehook_test.h" - -// Tests support for functions which return references - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_Func1_Pre1, int*); // p1: the ref Func1_Pre1 is going to return - MAKE_STATE_3(State_Func1_Pre2, META_RES, int*, int*); // p1: current status - // p2: override ret - // p3: what this handler is going to supercede with - MAKE_STATE_1(State_Func1, int*); // p1: the ref Func1 is going to return - MAKE_STATE_2(State_Func1_Post1, int*, int*); // p1: orig_ret; p2: override_ret - MAKE_STATE_1(State_Func1_Post2, int*); // p1: what it's going to return - MAKE_STATE_1(State_Func1_Ret, int*); // p1: the ref it returned - - - MAKE_STATE_2(State_Func2_Pre1, int, const int*); // p1: func's p1; p2: what it's going to ret - MAKE_STATE_2(State_Func2, int, const int*); // p1: func's p1; p2: what it's going to ret - MAKE_STATE_3(State_Func2_Post1, int, const int*, const int*); // p1: func's p1; p2: orig ret; p3: override ret - MAKE_STATE_1(State_Func2_Ret, const int*); // p1: ret - - int g_Var; - - class Test - { - public: - int m_Var1; - int m_Var2; - - Test() : m_Var1(87) - { - } - - virtual int& Func1() - { - ADD_STATE(State_Func1(&m_Var1)); - return m_Var1; - } - virtual const int& Func2(int p1) - { - ADD_STATE(State_Func2(p1, &m_Var2)); - m_Var2 = p1; - return m_Var2; - } - }; - - class CHook - { - public: - int m_Var; - virtual int& Func1_Pre1() - { - ADD_STATE(State_Func1_Pre1(&m_Var)); - RETURN_META_VALUE(MRES_OVERRIDE, m_Var); - } - virtual int &Func1_Pre2() - { - int &overrideret = META_RESULT_OVERRIDE_RET(int&); - overrideret = 1337; - ADD_STATE(State_Func1_Pre2(META_RESULT_STATUS, &overrideret, &g_Var)); - RETURN_META_VALUE(MRES_SUPERCEDE, g_Var); - } - virtual int& Func1_Post1() - { - ADD_STATE(State_Func1_Post1(&META_RESULT_ORIG_RET(int&), &META_RESULT_OVERRIDE_RET(int&))); - RETURN_META_NOREF(MRES_IGNORED, int&); - } - virtual int& Func1_Post2() - { - ADD_STATE(State_Func1_Post2(&m_Var)); - RETURN_META_VALUE(MRES_OVERRIDE, m_Var); - } - - virtual const int& Func2_Pre1(int p1) - { - ADD_STATE(State_Func2_Pre1(p1, &m_Var)); - RETURN_META_VALUE_NEWPARAMS(MRES_OVERRIDE, m_Var, static_cast(&Test::Func2), (1337)); - } - - virtual const int& Func2_Post1(int p1) - { - ADD_STATE(State_Func2_Post1(p1, &META_RESULT_ORIG_RET(int&), &META_RESULT_OVERRIDE_RET(int&))); - RETURN_META_NOREF(MRES_IGNORED, const int&); - } - }; - - SH_DECL_HOOK0(Test, Func1, SH_NOATTRIB, 0, int&); - SH_DECL_HOOK1(Test, Func2, SH_NOATTRIB, 0, const int&, int); -} - -bool TestRefRet(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1; - - Test test; - Test *pTest = &test; - CHook hook; - - int &ret1 = pTest->Func1(); - ADD_STATE(State_Func1_Ret(&ret1)); - - CHECK_STATES((&g_States, - new State_Func1(&test.m_Var1), - new State_Func1_Ret(&test.m_Var1), - NULL), "Part 1"); - - // Now add Func1_Pre1, which supercedes and returns hook.m_Var - SH_ADD_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Pre1, false); - - int &ret2 = pTest->Func1(); - ADD_STATE(State_Func1_Ret(&ret2)); - - CHECK_STATES((&g_States, - new State_Func1_Pre1(&hook.m_Var), // Pre1 says that it's going to override with hook.m_Var - new State_Func1(&test.m_Var1), // Function says that it's going to return test.m_Var1 - new State_Func1_Ret(&hook.m_Var), // hook.m_Var is returned - NULL), "Part 2"); - - // Now add Func1_Post1, which only reports orig ret and override ret - SH_ADD_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Post1, true); - - int &ret3 = pTest->Func1(); - ADD_STATE(State_Func1_Ret(&ret3)); - - CHECK_STATES((&g_States, - new State_Func1_Pre1(&hook.m_Var), // Pre1 says that it's going to override with hook.m_Var - new State_Func1(&test.m_Var1), // Function says that it's going to return test.m_Var1 - new State_Func1_Post1(&test.m_Var1, &hook.m_Var), // origret(=p1) is what it wanted to - // return, overrideret(=p2) is pre1's var - new State_Func1_Ret(&hook.m_Var), // hook.m_Var is returned - NULL), "Part 3"); - - // Now add Func1_Pre2, which supercedes and returns g_Var (it also sets the override ret from pre1 to 1337) - // and add Func1_Post2, which overrides and returns hook.m_Var again. - - SH_ADD_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Pre2, false); - SH_ADD_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Post2, true); - - int &ret4 = pTest->Func1(); - ADD_STATE(State_Func1_Ret(&ret4)); - - CHECK_STATES((&g_States, - new State_Func1_Pre1(&hook.m_Var), // Pre1 says that it's going to override with hook.m_Var - new State_Func1_Pre2(MRES_OVERRIDE, // current status - &hook.m_Var, // override ret (which it set to 1337) - &g_Var), // what it's going to ret, AND supercede with - - new State_Func1_Post1(&g_Var, &g_Var), // origret(=p1) is what pre2 superceded with, - // so overrideret(=p2) has to be the same - new State_Func1_Post2(&hook.m_Var), // post2 is going to override with hook.m_Var again - new State_Func1_Ret(&hook.m_Var), // ==>>> hook.m_Var is returned - NULL), "Part 4"); - - CHECK_COND(hook.m_Var == 1337, "Part 4.1"); - - // Through a callclass - SourceHook::CallClass *cc1 = SH_GET_CALLCLASS(&test); - int &ret5 = SH_CALL(cc1, &Test::Func1)(); - ADD_STATE(State_Func1_Ret(&ret5)); - - CHECK_STATES((&g_States, - new State_Func1(&test.m_Var1), - new State_Func1_Ret(&test.m_Var1), - NULL), "Part 5"); - - SH_RELEASE_CALLCLASS(cc1); - - //////////////////////////////////////////////////////////////////////////////////////// - // Func2 tests - const int &ret21 = pTest->Func2(500); - ADD_STATE(State_Func2_Ret(&ret21)); - - CHECK_STATES((&g_States, - new State_Func2(500, &test.m_Var2), - new State_Func2_Ret(&test.m_Var2), - NULL), "Part 6"); - - SH_ADD_HOOK_MEMFUNC(Test, Func2, &test, &hook, &CHook::Func2_Pre1, false); - SH_ADD_HOOK_MEMFUNC(Test, Func2, &test, &hook, &CHook::Func2_Post1, true); - - const int &ret22 = pTest->Func2(500); - ADD_STATE(State_Func2_Ret(&ret22)); - - CHECK_STATES((&g_States, - new State_Func2_Pre1(500, &hook.m_Var), // p1 was 500; it's going to override with hook.m_Var; and also change p1 to 1337 - new State_Func2(1337, &test.m_Var2), // p1 was 1337; it's going to ret test.m_Var2 - new State_Func2_Post1(1337, // p1 was 1337 - &test.m_Var2, // orig ret was test.m_Var2 - &hook.m_Var), // override ret was hook.m_Var - new State_Func2_Ret(&hook.m_Var), // really returned hook.m_Var - NULL), "Part 7"); - - SH_REMOVE_HOOK_MEMFUNC(Test, Func2, &test, &hook, &CHook::Func2_Post1, true); - SH_REMOVE_HOOK_MEMFUNC(Test, Func2, &test, &hook, &CHook::Func2_Pre1, false); - SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Pre1, false); - SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Post1, true); - SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Pre2, false); - SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Post2, true); - - return true; -} - diff --git a/sourcemm/CPlugin.cpp b/sourcemm/CPlugin.cpp deleted file mode 100644 index ee4077d..0000000 --- a/sourcemm/CPlugin.cpp +++ /dev/null @@ -1,698 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include "CPlugin.h" -#include "CSmmAPI.h" -#include "sourcemm.h" -#include "concommands.h" -#include "vsp_listener.h" - -/** - * @brief Implements functions from CPlugin.h - * @file CPlugin.cpp - */ - -using namespace SourceMM; - -#define ITER_PLEVENT(evn, plid) \ - CPluginManager::CPlugin *_Xpl; \ - SourceHook::List::iterator event; \ - IMetamodListener *api; \ - for (PluginIter iter = g_PluginMngr._begin(); iter != g_PluginMngr._end(); iter++) { \ - _Xpl = (*iter); \ - if (_Xpl->m_Id == plid) \ - continue; \ - for (event=_Xpl->m_Events.begin(); event!=_Xpl->m_Events.end(); event++) { \ - api = (*event).event; \ - api->evn(plid); \ - } \ - } - -CPluginManager g_PluginMngr; - -CPluginManager::CPluginManager() -{ - m_LastId = Pl_MinId; - m_AllLoaded = false; -} - -CPluginManager::~CPluginManager() -{ - SourceHook::List::iterator iter; - - for (iter=m_Aliases.begin(); iter!=m_Aliases.end(); iter++) - { - delete (*iter); - } - - m_Aliases.clear(); -} - -const char *CPluginManager::LookupAlias(const char *alias) -{ - SourceHook::List::iterator iter; - CNameAlias *p; - - for (iter=m_Aliases.begin(); iter!=m_Aliases.end(); iter++) - { - p = (*iter); - if (p->alias.compare(alias) == 0) - { - return p->value.c_str(); - } - } - - return NULL; -} - -SourceHook::List::iterator CPluginManager::_alias_begin() -{ - return m_Aliases.begin(); -} - -SourceHook::List::iterator CPluginManager::_alias_end() -{ - return m_Aliases.end(); -} - -void CPluginManager::SetAlias(const char *alias, const char *value) -{ - SourceHook::List::iterator iter; - CNameAlias *p; - - for (iter=m_Aliases.begin(); iter!=m_Aliases.end(); iter++) - { - p = (*iter); - if (p->alias.compare(alias) == 0) - { - if (value[0] == '\0') - { - iter = m_Aliases.erase(iter); - return; - } else { - p->value.assign(value); - return; - } - } - } - - if (value[0] != '\0') - { - p = new CNameAlias; - - p->alias.assign(alias); - p->value.assign(value); - - m_Aliases.push_back(p); - } -} - -CPluginManager::CPlugin::CPlugin() : m_Id(0), m_Source(0), m_API(NULL), m_Lib(NULL) -{ - -} - -PluginId CPluginManager::Load(const char *file, PluginId source, bool &already, char *error, size_t maxlen) -{ - already = false; - //Check if we're about to reload an old plugin - PluginIter i = m_Plugins.begin(); - while (i != m_Plugins.end()) - { - if ( (*i) && UTIL_PathCmp(file, (*i)->m_File.c_str()) ) - { - if ( (*i)->m_Status < Pl_Paused ) - { - //Attempt to load the plugin again - already = true; - i = m_Plugins.erase(i); - continue; - } else { - //No need to load it - already = true; - return (*i)->m_Id; - } - } - i++; - } - - CPlugin *pl = _Load(file, source, error, maxlen); - - if (!pl) - return Pl_BadLoad; - - ITER_PLEVENT(OnPluginLoad, pl->m_Id); - - return pl->m_Id; -} - -CPluginManager::CPlugin *CPluginManager::FindById(PluginId id) -{ - PluginIter i; - - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i)->m_Id == id ) - return (*i); - } - - return NULL; -} - -void CPluginManager::SetAllLoaded() -{ - m_AllLoaded = true; - PluginIter i; - - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i) && (*i)->m_Status == Pl_Running && (*i)->m_API ) - { - //API 4 is when we added this callback - //Min version is now 5, so we ignore this check - //if ( (*i)->m_API->GetApiVersion() >= 004 ) - (*i)->m_API->AllPluginsLoaded(); - } - } -} - -void CPluginManager::SetVSPAsLoaded() -{ - PluginIter i; - CPlugin *pPlugin; - SourceHook::List::iterator event; - - for (i = m_Plugins.begin(); i != m_Plugins.end(); i++) - { - pPlugin = (*i); - if (pPlugin->m_Status < Pl_Paused) - { - continue; - } - /* Only valid for plugins >= 10 (v1:5, SourceMM 1.4) */ - if (pPlugin->m_API->GetApiVersion() < 10) - { - continue; - } - for (event = pPlugin->m_Events.begin(); - event != pPlugin->m_Events.end(); - event++) - { - if ((*event).got_vsp) - { - continue; - } - (*event).got_vsp = true; - (*event).event->OnVSPListening(&g_VspListener); - } - } -} - -bool CPluginManager::Pause(PluginId id, char *error, size_t maxlen) -{ - CPlugin *pl = FindById(id); - - if (!pl) - { - UTIL_Format(error, maxlen, "Plugin id not found"); - return false; - } - - bool ret; - - if ( (ret=_Pause(pl, error, maxlen)) == true ) - { - ITER_PLEVENT(OnPluginPause, pl->m_Id); - } - - return ret; -} - -bool CPluginManager::Unpause(PluginId id, char *error, size_t maxlen) -{ - CPlugin *pl = FindById(id); - - if (!pl) - { - UTIL_Format(error, maxlen, "Plugin id not found"); - return false; - } - - bool ret; - - if ( (ret=_Unpause(pl, error, maxlen)) == true ) - { - ITER_PLEVENT(OnPluginUnpause, pl->m_Id); - } - - return ret; -} - -bool CPluginManager::Unload(PluginId id, bool force, char *error, size_t maxlen) -{ - CPlugin *pl = FindById(id); - - if (!pl) - { - UTIL_Format(error, maxlen, "Plugin %d not found", id); - return false; - } - - bool ret; - PluginId old_id = pl->m_Id; - if ( (ret=_Unload(pl, force, error, maxlen)) == true ) - { - ITER_PLEVENT(OnPluginUnload, old_id); - } - - return ret; -} - -bool CPluginManager::Retry(PluginId id, char *error, size_t len) -{ - PluginIter i; - char buffer[64]; - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i) && (*i)->m_Id == id ) - { - if ( (*i)->m_Status >= Pl_Paused) - { - UTIL_Format(error, len, "Plugin %d is already running.", id); - return false; - } - CPlugin *pl = _Load((*i)->m_File.c_str(), Pl_Console, error, len); - if (!pl) - return false; - if (pl->m_Status >= Pl_Paused) - { - //Now it gets crazy... unload the original copy. - _Unload( (*i), true, buffer, sizeof(buffer)-1 ); - - //Set the new copy's id - pl->m_Id = id; - - //We just wasted an id... reclaim it - m_LastId--; - - return true; - } else { - //don't really care about the buffer here - _Unload(pl, true, buffer, sizeof(buffer)-1); - - //We just wasted an id... reclaim it - m_LastId--; - return false; - } - } - } - - UTIL_Format(error, len, "Plugin %d not found,", id); - return false; -} - -CPluginManager::CPlugin *CPluginManager::FindByAPI(ISmmPlugin *api) -{ - PluginIter i; - - //don't find bad plugins! - if (!api) - return NULL; - - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i)->m_API == api ) - return (*i); - } - - return NULL; -} - -CPluginManager::CPlugin *CPluginManager::_Load(const char *file, PluginId source, char *error, size_t maxlen) -{ - FILE *fp; - CPlugin *pl; - - pl = new CPlugin(); - *error = '\0'; - - //Add plugin to list - pl->m_Id = m_LastId; - pl->m_File.assign(file); - m_Plugins.push_back(pl); - m_LastId++; - - //Check if the file even exists - fp = fopen(file, "r"); - if (!fp) - { - if (error) - UTIL_Format(error, maxlen, "File not found: %s", file); - pl->m_Status = Pl_NotFound; - } - - if (fp) - { - fclose(fp); - fp = NULL; - - //Load the file - pl->m_Lib = dlmount(file); - if (!pl->m_Lib) - { - if (error) - UTIL_Format(error, maxlen, "[%d]", GetLastError()); - pl->m_Status = Pl_Error; - } else { - CreateInterfaceFn pfn = (CreateInterfaceFn)(dlsym(pl->m_Lib, PL_EXPOSURE_C)); - if (!pfn) - { - if (error) - UTIL_Format(error, maxlen, "Function %s not found", PL_EXPOSURE_C); - pl->m_Status = Pl_Error; - } else { - pl->m_API = static_cast((pfn)(PLAPI_NAME, NULL)); - if (!pl->m_API) - { - if (error) - UTIL_Format(error, maxlen, "Failed to get API"); - pl->m_Status = Pl_Error; - } else { - int api = pl->m_API->GetApiVersion(); - if (api < PLAPI_MIN_VERSION) - { - if (error) - UTIL_Format(error, maxlen, "Plugin API %d is out of date with required minimum (%d)", api, PLAPI_MIN_VERSION); - pl->m_Status = Pl_Error; - } else if (api > PLAPI_VERSION) { - if (error) - UTIL_Format(error, maxlen, "Plugin API %d is newer than internal version (%d)", api, PLAPI_VERSION); - pl->m_Status = Pl_Error; - } else { - if (pl->m_API->Load(pl->m_Id, static_cast(&g_SmmAPI), error, maxlen, m_AllLoaded)) - { - pl->m_Status = Pl_Running; - if (m_AllLoaded) - { - //API 4 is when we added this callback - //Removing this code as the min version is now 5 - //if (pl->m_API->GetApiVersion() >= 4) - pl->m_API->AllPluginsLoaded(); - } - if (g_VspListener.IsRootLoadMethod() - || (g_VspListener.IsLoaded() && g_SmmAPI.VSPEnabled())) - { - SourceHook::List::iterator event; - for (event = pl->m_Events.begin(); - event != pl->m_Events.end(); - event++) - { - if ((*event).got_vsp) - { - continue; - } - (*event).got_vsp = true; - (*event).event->OnVSPListening(&g_VspListener); - } - } - } else { - pl->m_Status = Pl_Refused; - } - } - } - } - } - } - - if (pl->m_Lib && (pl->m_Status < Pl_Paused)) - { - pl->m_Events.clear(); - g_SourceHook.UnloadPlugin(pl->m_Id); - UnregAllConCmds(pl); - - dlclose(pl->m_Lib); - pl->m_Lib = NULL; - pl->m_API = NULL; - } - - return pl; -} - -bool CPluginManager::_Unload(CPluginManager::CPlugin *pl, bool force, char *error, size_t maxlen) -{ - if (error) - *error = '\0'; - if (pl->m_API && pl->m_Lib) - { - //Note, we'll always tell the plugin it will be unloading... - if (pl->m_API->Unload(error, maxlen) || force) - { - //Make sure to detach it from sourcehook! - g_SourceHook.UnloadPlugin(pl->m_Id); - - UnregAllConCmds(pl); - - //Clean up the DLL - dlclose(pl->m_Lib); - pl->m_Lib = NULL; - pl->m_API = NULL; - - //Remove the plugin from the list - PluginIter i; - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i)->m_Id == pl->m_Id ) - { - i = m_Plugins.erase(i); - break; - } - } - //Free its memory - delete pl; - - return true; - } - } else { - //The plugin is not valid, and let's just remove it from the list anyway - PluginIter i; - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i)->m_Id == pl->m_Id ) - { - i = m_Plugins.erase(i); - break; - } - } - delete pl; - - return true; - } - - return false; -} - -bool CPluginManager::_Pause(CPluginManager::CPlugin *pl, char *error, size_t maxlen) -{ - if (error) - *error = '\0'; - if (pl->m_Status != Pl_Running || !pl->m_API) - { - if (error) - UTIL_Format(error, maxlen, "Plugin cannot be paused"); - } else { - if (pl->m_API->Pause(error, maxlen)) - { - g_SourceHook.PausePlugin(pl->m_Id); - pl->m_Status = Pl_Paused; - - return true; - } - } - - return false; -} - -bool CPluginManager::_Unpause(CPluginManager::CPlugin *pl, char *error, size_t maxlen) -{ - if (error) - *error = '\0'; - - if (pl->m_Status != Pl_Paused || !pl->m_API) - { - if (error) - UTIL_Format(error, maxlen, "Plugin cannot be unpaused"); - } else { - if (pl->m_API->Unpause(error, maxlen)) - { - g_SourceHook.UnpausePlugin(pl->m_Id); - pl->m_Status = Pl_Running; - - return true; - } - } - - return false; -} - -bool CPluginManager::UnloadAll() -{ - PluginIter i; - - char error[128]; - bool status = true; - - while ((i = m_Plugins.begin()) != m_Plugins.end()) - { - if ( !_Unload( (*i), true, error, sizeof(error)) ) - { - status = false; - } - } - - return status; -} - -bool CPluginManager::Query(PluginId id, const char *&file, Pl_Status &status, PluginId &source) -{ - CPlugin *pl = FindById(id); - - if (!pl) - return false; - - file = pl->m_File.c_str(); - status = pl->m_Status; - source = pl->m_Source; - - return true; -} - -bool CPluginManager::QueryRunning(PluginId id, char *error, size_t maxlength) -{ - CPlugin *pl = FindById(id); - - if (!pl || !pl->m_API) - { - if (error) - UTIL_Format(error, maxlength, "Plugin not valid"); - return false; - } - - return pl->m_API->QueryRunning(error, maxlength); -} - -bool CPluginManager::QueryHandle(PluginId id, void *&handle) -{ - CPlugin *pl = FindById(id); - - if (!pl) - { - return false; - } - - handle = static_cast(pl->m_Lib); - - return true; -} - -PluginIter CPluginManager::_begin() -{ - return m_Plugins.begin(); -} - -PluginIter CPluginManager::_end() -{ - return m_Plugins.end(); -} - -void CPluginManager::AddPluginCvar(ISmmPlugin *api, ConCommandBase *pCvar) -{ - CPlugin *pl = FindByAPI(api); - - if (!pl) - return; - - pl->m_Cvars.push_back(pCvar); -} - -void CPluginManager::AddPluginCmd(ISmmPlugin *api, ConCommandBase *pCmd) -{ - CPlugin *pl = FindByAPI(api); - - if (!pl) - return; - - pl->m_Cmds.push_back(pCmd); -} - -void CPluginManager::RemovePluginCvar(ISmmPlugin *api, ConCommandBase *pCvar) -{ - CPlugin *pl = FindByAPI(api); - - if (!pl) - return; - - pl->m_Cvars.remove(pCvar); -} - -void CPluginManager::RemovePluginCmd(ISmmPlugin *api, ConCommandBase *pCmd) -{ - CPlugin *pl = FindByAPI(api); - - if (!pl) - return; - - pl->m_Cmds.remove(pCmd); -} - -void CPluginManager::UnregAllConCmds(CPlugin *pl) -{ - SourceHook::List::iterator i; - - for (i=pl->m_Cvars.begin(); i!=pl->m_Cvars.end(); i++) - g_SMConVarAccessor.Unregister( (*i) ); - - pl->m_Cvars.clear(); - - for (i=pl->m_Cmds.begin(); i!=pl->m_Cmds.end(); i++) - g_SMConVarAccessor.Unregister( (*i) ); - - pl->m_Cmds.clear(); -} - -const char *CPluginManager::GetStatusText(CPlugin *pl) -{ - switch (pl->m_Status) - { - case Pl_NotFound: - return "NOFILE"; - case Pl_Error: - return "ERROR"; - case Pl_Refused: - return "FAILED"; - case Pl_Paused: - return "PAUSED"; - case Pl_Running: - { - if (pl->m_API && pl->m_API->QueryRunning(NULL, 0)) - { - return "STOPPED"; - } else { - return "RUNNING"; - } - } - default: - return "-"; - } -} - -unsigned int CPluginManager::GetPluginCount() -{ - return (unsigned int)m_Plugins.size(); -} diff --git a/sourcemm/CPlugin.h b/sourcemm/CPlugin.h deleted file mode 100644 index 9b8335b..0000000 --- a/sourcemm/CPlugin.h +++ /dev/null @@ -1,157 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_CPLUGIN_H -#define _INCLUDE_CPLUGIN_H - -/** - * @brief Implementation of Plugin API and Management routines - * @file CPlugin.cpp - */ - -#include -#include -#include "convar_smm.h" -#include "IPluginManager.h" -#include "oslink.h" -#include "sh_list.h" -#include "sh_string.h" - -/** - * History of plugin versions: (M=min, C=current) - * 1: Initial interface - * 2: Added GetLogTag() - * 3: Moved GetApiVersion() to top (2005-04-16) - * 4: Added AllPluginsLoaded() callback (2005-04-18) - * 5: Bumped version for SourceHook V4 (2005-05-01) - * 6: Added functions for console printing (2005-05-26) - * M 7: Changed template libraries (2005-08-11) - * New loading structure mechanism - * New SourceHook version - * 8: New SourceHook version (2005-12-23) - * New ISmmAPI additions - * 9: New ISmmPluginManager additions - * C 10: Added VSP listen functions to ISmmAPI and IMetamodListener (2007-02-09) - */ - -#define PLAPI_MIN_VERSION 7 - -namespace SourceMM -{ - struct CNameAlias - { - SourceHook::String alias; - SourceHook::String value; - }; - - struct CPluginEventHandler - { - bool got_vsp; - IMetamodListener *event; - }; - - /** - * @brief Implements Plugin Manager API - */ - class CPluginManager : public ISmmPluginManager - { - public: - /** - * @brief Internal structure for holding plugin data - */ - class CPlugin - { - public: - CPlugin(); - public: - PluginId m_Id; - SourceHook::String m_File; - Pl_Status m_Status; - PluginId m_Source; - ISmmPlugin *m_API; - HINSTANCE m_Lib; - SourceHook::List m_Cvars; - SourceHook::List m_Cmds; - SourceHook::List m_Events; - }; - public: - CPluginManager(); - ~CPluginManager(); - void SetAllLoaded(); - public: - PluginId Load(const char *file, PluginId source, bool &already, char *error, size_t maxlen); - bool Unload(PluginId id, bool force, char *error, size_t maxlen); - bool Pause(PluginId id, char *error, size_t maxlen); - bool Unpause(PluginId id, char *error, size_t maxlen); - bool UnloadAll(); - void SetAlias(const char *alias, const char *value); - public: - bool Query(PluginId id, const char *&file, Pl_Status &status, PluginId &source); - bool QueryRunning(PluginId id, char *error, size_t maxlength); - bool QueryHandle(PluginId id, void *&handle); - - void AddPluginCvar(ISmmPlugin *api, ConCommandBase *pCvar); - void AddPluginCmd(ISmmPlugin *api, ConCommandBase *pCmd); - void RemovePluginCvar(ISmmPlugin *api, ConCommandBase *pCvar); - void RemovePluginCmd(ISmmPlugin *api, ConCommandBase *pCmd); - - /** - * @brief Finds a plugin by Id - * - * @param id Id of plugin - * @return CPlugin on success, NULL otherwise - */ - CPlugin *FindById(PluginId id); - - CPlugin *FindByAPI(ISmmPlugin *api); - - /** - * @brief Attempts to reload a failed plugin - * - * @param id Id of plugin - * @param error Error message buffer - * @param len Maximum length of buffer - * @return True on success, false otherwise - */ - bool Retry(PluginId id, char *error, size_t len); - - //get alias info - const char *LookupAlias(const char *alias); - SourceHook::List::iterator _alias_begin(); - SourceHook::List::iterator _alias_end(); - - //Internal iterators - SourceHook::List::iterator _begin(); - SourceHook::List::iterator _end(); - - void SetVSPAsLoaded(); - unsigned int GetPluginCount(); - const char *GetStatusText(CPlugin *pl); - private: - //These are identical internal functions for the wrappers above. - CPlugin *_Load(const char *file, PluginId source, char *error, size_t maxlen); - bool _Unload(CPlugin *pl, bool force, char *error, size_t maxlen); - bool _Pause(CPlugin *pl, char *error, size_t maxlen); - bool _Unpause(CPlugin *pl, char *error, size_t maxlen); - void UnregAllConCmds(CPlugin *pl); - private: - PluginId m_LastId; - SourceHook::List m_Plugins; - SourceHook::List m_Aliases; - bool m_AllLoaded; - }; -}; - -typedef SourceHook::List::iterator PluginIter; - -/** @brief Singleton for plugin manager */ -extern SourceMM::CPluginManager g_PluginMngr; - -#endif //_INCLUDE_CPLUGIN_H diff --git a/sourcemm/CSmmAPI.cpp b/sourcemm/CSmmAPI.cpp deleted file mode 100644 index 7538f15..0000000 --- a/sourcemm/CSmmAPI.cpp +++ /dev/null @@ -1,672 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include "convar_smm.h" -#include "CSmmAPI.h" -#include "sourcemm.h" -#include "concommands.h" -#include "CPlugin.h" -#include "vsp_listener.h" - -/** - * @brief Implementation of main API interface - * @file CSmmAPI.cpp - */ - -using namespace SourceMM; - -CSmmAPI g_SmmAPI; - -CSmmAPI::CSmmAPI() -{ - m_ConPrintf = NULL; - m_CmdCache = false; - m_MsgCount = -1; - m_VSP = false; -} - -CSmmAPI::~CSmmAPI() -{ - m_UserMessages.RemoveAll(); -} - -void CSmmAPI::LogMsg(ISmmPlugin *pl, const char *msg, ...) -{ - va_list ap; - static char buffer[2048]; - - va_start(ap, msg); - UTIL_FormatArgs(buffer, sizeof(buffer), msg, ap); - va_end(ap); - - LogMessage("[%s] %s", pl->GetLogTag(), buffer); -} - -CreateInterfaceFn CSmmAPI::engineFactory(bool syn) -{ - if (syn) - return EngineFactory; - return g_Engine.engineFactory; -} - -CreateInterfaceFn CSmmAPI::physicsFactory(bool syn) -{ - if (syn) - return PhysicsFactory; - return g_Engine.physicsFactory; -} - -CreateInterfaceFn CSmmAPI::fileSystemFactory(bool syn) -{ - if (syn) - return FileSystemFactory; - return g_Engine.fileSystemFactory; -} - -CreateInterfaceFn CSmmAPI::serverFactory(bool syn) -{ - if (syn) - return CreateInterface; - return g_GameDll.factory; -} - -CGlobalVars *CSmmAPI::pGlobals() -{ - return g_Engine.pGlobals; -} - -void CSmmAPI::SetLastMetaReturn(META_RES res) -{ - m_Res = res; -} - -META_RES CSmmAPI::GetLastMetaReturn() -{ - return m_Res; -} - -IConCommandBaseAccessor *CSmmAPI::GetCvarBaseAccessor() -{ - return static_cast(&g_SMConVarAccessor); -} - -bool CSmmAPI::RegisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand) -{ - if (pCommand->IsCommand()) - { - g_PluginMngr.AddPluginCmd(plugin, pCommand); - } else { - g_PluginMngr.AddPluginCvar(plugin, pCommand); - } - - return g_SMConVarAccessor.Register(pCommand); -} - -void CSmmAPI::UnregisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand) -{ - if (pCommand->IsCommand()) - { - g_PluginMngr.RemovePluginCmd(plugin, pCommand); - } else { - g_PluginMngr.RemovePluginCvar(plugin, pCommand); - } - - g_SMConVarAccessor.Unregister(pCommand); -} - -void CSmmAPI::ConPrint(const char *fmt) -{ - (m_ConPrintf)("%s", fmt); -} - -void CSmmAPI::ConPrintf(const char *fmt, ...) -{ - va_list ap; - static char buffer[4096]; - - va_start(ap, fmt); - UTIL_FormatArgs(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - (m_ConPrintf)("%s", buffer); -} - -void CSmmAPI::AddListener(ISmmPlugin *plugin, IMetamodListener *pListener) -{ - CPluginManager::CPlugin *pl = g_PluginMngr.FindByAPI(plugin); - CPluginEventHandler cpeh; - - cpeh.event = pListener; - cpeh.got_vsp = false; - - pl->m_Events.push_back(cpeh); -} - -void *CSmmAPI::MetaFactory(const char *iface, int *_ret, PluginId *id) -{ - if (id) - { - *id = 0; - } - - if (!iface) - { - return NULL; - } - - //first check ours... we get first chance! - if (strcmp(iface, MMIFACE_SOURCEHOOK) == 0) - { - if (_ret) - { - *_ret = IFACE_OK; - } - return static_cast(static_cast(&g_SourceHook)); - } else if (strcmp(iface, MMIFACE_PLMANAGER) == 0) { - if (_ret) - { - *_ret = IFACE_OK; - } - return static_cast(static_cast(&g_PluginMngr)); - } - - CPluginManager::CPlugin *pl; - SourceHook::List::iterator event; - IMetamodListener *api; - int ret = 0; - void *val = NULL; - - for (PluginIter iter = g_PluginMngr._begin(); iter != g_PluginMngr._end(); iter++) - { - pl = (*iter); - for (event=pl->m_Events.begin(); event!=pl->m_Events.end(); event++) - { - api = (*event).event; - ret = IFACE_FAILED; - if ( (val=api->OnMetamodQuery(iface, &ret)) != NULL ) - { - if (_ret) - *_ret = ret; - if (id) - *id = pl->m_Id; - return val; - } - } - } - - if (_ret) - *_ret = IFACE_FAILED; - - return NULL; -} - -////////////////////////////////////////////////////////////////////////// -//THERE BE HAX HERE!!!! DON'T TELL ALFRED, BUT GABE WANTED IT THAT WAY. // -// (note: you can find the offset by looking for the text // -// "Echo text to console", you'll find the callback cmd pushed on the // -// stack.) // -////////////////////////////////////////////////////////////////////////// - -#define SIGLEN 8 -#define ENGINE486_SIG "\x55\x89\xE5\x53\x83\xEC\x14\xBB" -#define ENGINE486_OFFS 40 -#define ENGINE686_SIG "\x53\x83\xEC\x08\xBB\x01\x00\x00" -#define ENGINE686_OFFS 50 -#define ENGINEAMD_SIG "\x53\x51\xBB\x01\x00\x00\x00\x51" -#define ENGINEAMD_OFFS 47 -#define ENGINEW32_SIG "\xA1\x2A\x2A\x2A\x2A\x56\xBE\x01" -#define ENGINEW32_OFFS 38 -#define IA32_CALL 0xE8 - -bool vcmp(const void *_addr1, const void *_addr2, size_t len) -{ - unsigned char *addr1 = (unsigned char *)_addr1; - unsigned char *addr2 = (unsigned char *)_addr2; - - for (size_t i=0; iGetCommands(); - unsigned char *ptr = NULL; - FnCommandCallback callback = NULL; - int offs = 0; - - while (pBase) - { - if ( strcmp(pBase->GetName(), "echo") == 0 ) - { - //callback = //*((FnCommandCallback *)((char *)pBase + offsetof(ConCommand, m_fnCommandCallback))); - callback = ((ConCommand *)pBase)->GetCallback(); - ptr = (unsigned char *)callback; - #ifdef OS_LINUX - if (vcmp(ptr, ENGINE486_SIG, SIGLEN)) - { - offs = ENGINE486_OFFS; - } - else if (vcmp(ptr, ENGINE686_SIG, SIGLEN)) - { - offs = ENGINE686_OFFS; - } - else if (vcmp(ptr, ENGINEAMD_SIG, SIGLEN)) - { - offs = ENGINEAMD_OFFS; - } - #elif defined OS_WIN32 // Only one Windows engine binary so far... - if (vcmp(ptr, ENGINEW32_SIG, SIGLEN)) - { - offs = ENGINEW32_OFFS; - } - #endif - - if (!offs || ptr[offs - 1] != IA32_CALL) - { - m_ConPrintf = (CONPRINTF_FUNC)Msg; - return false; - } - //get the relative offset - m_ConPrintf = *((CONPRINTF_FUNC *)(ptr + offs)); - //add the base offset, to the ip (which is the address+offset + 4 bytes for next instruction) - m_ConPrintf = (CONPRINTF_FUNC)((unsigned long)m_ConPrintf + (unsigned long)(ptr + offs) + 4); - - m_CmdCache = true; - - return true; - } - pBase = const_cast(pBase->GetNext()); - } - - m_ConPrintf = (CONPRINTF_FUNC)Msg; - - return false; -} - -bool CSmmAPI::CmdCacheSuccessful() -{ - return m_CmdCache; -} - -void CSmmAPI::GetApiVersions(int &major, int &minor, int &plvers, int &plmin) -{ - major = SM_VERS_API_MAJOR; - minor = SM_VERS_API_MINOR; - plvers = PLAPI_VERSION; - plmin = PLAPI_MIN_VERSION; -} - -void CSmmAPI::GetShVersions(int &shvers, int &shimpl) -{ - shvers = SH_IFACE_VERSION; - shimpl = SH_IMPL_VERSION; -} - -int CSmmAPI::FormatIface(char iface[], unsigned int maxlength) -{ - int length = (int)strlen(iface); - int i; - int num = 0; - - for (i = length - 1; i >= 0; i--) - { - if (!isdigit(iface[i])) - { - if (i != length - 1) - { - num = 1; - } - break; - } - } - - if ( (num && ((int)maxlength <= length)) || (!num && ((int)maxlength <= length + 3)) ) - { - return -1; - } - - if (i != length - 1) - num = atoi(&(iface[++i])); - - num++; - - snprintf(&(iface[i]), 4, "%03d", num); - - return num; -} - -void *CSmmAPI::InterfaceSearch(CreateInterfaceFn fn, const char *iface, int max, int *ret) -{ - char _if[256]; /* assume no interface goes beyond this */ - size_t len = strlen(iface); - int num = 0; - void *pf = NULL; - - if (max > 999) - max = 999; - - if (len + 4 > sizeof(_if)) - { - if (ret) - { - *ret = IFACE_FAILED; - } - return NULL; - } - - strcpy(_if, iface); - - do - { - if ( (pf = (fn)(_if, ret)) != NULL ) - break; - if (num > max) - break; - } while (( num = FormatIface(_if, len+1) )); - - return pf; -} - -void *CSmmAPI::VInterfaceMatch(CreateInterfaceFn fn, const char *iface, int min) -{ - char buffer[256]; /* assume no interface will go beyond this */ - size_t len = strlen(iface); - int ret; /* just in case something doesn't handle NULL properly */ - - if (len > sizeof(buffer) - 4) - { - return NULL; - } - - strcpy(buffer, iface); - - if (min != -1) - { - char *ptr = &buffer[len - 1]; - int digits = 0; - while (isdigit(*ptr) && digits <=3) - { - *ptr = '\0'; - digits++; - ptr--; - } - if (digits != 3) - { - /* for now, assume this is an error */ - strcpy(buffer, iface); - } else { - char num[4]; - min = (min == 0) ? 1 : min; - snprintf(num, sizeof(num), "%03d", min); - strcat(buffer, num); - } - } - - return InterfaceSearch(fn, buffer, IFACE_MAXNUM, &ret); -} - -const char *CSmmAPI::GetBaseDir() -{ - return g_ModPath.c_str(); -} - -void CSmmAPI::PathFormat(char *buffer, size_t len, const char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - size_t mylen = UTIL_FormatArgs(buffer, len, fmt, ap); - va_end(ap); - - for (size_t i = 0; i < mylen; i++) - { - if (buffer[i] == ALT_SEP_CHAR) - { - buffer[i] = PATH_SEP_CHAR; - } - } -} - -void CSmmAPI::ClientConPrintf(edict_t *client, const char *fmt, ...) -{ - va_list ap; - static char buffer[4096]; - - va_start(ap, fmt); - UTIL_FormatArgs(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - g_Engine.engine->ClientPrintf(client, buffer); -} - -void CSmmAPI::LoadAsVSP() -{ - size_t len; - char engine_file[PATH_SIZE]; - char rel_path[PATH_SIZE * 2]; - - GetFileOfAddress(g_Engine.engine, engine_file, sizeof(engine_file)); - - /* Chop off the "engine" file part */ - len = strlen(engine_file); - for (size_t i = len - 1; i >= 0 && i < len; i--) - { - if (engine_file[i] == '/' - || engine_file[i] == '\\') - { - engine_file[i] = '\0'; - break; - } - } - - const char *usepath = g_SmmPath.c_str(); - if (UTIL_Relatize(rel_path, sizeof(rel_path), engine_file, g_SmmPath.c_str())) - { - usepath = rel_path; - } - - char command[PATH_SIZE * 2]; - g_VspListener.SetLoadable(true); - UTIL_Format(command, sizeof(command), "plugin_load \"%s\"\n", usepath); - g_Engine.engine->ServerCommand(command); -} - -void CSmmAPI::EnableVSPListener() -{ - /* If GameInit already passed and we're not already enabled or loaded, go ahead and LoadAsVSP load */ - if (bGameInit && !m_VSP && !g_VspListener.IsLoaded() && !g_VspListener.IsRootLoadMethod()) - { - LoadAsVSP(); - } - m_VSP = true; -} - -int CSmmAPI::GetGameDLLVersion() -{ - return g_GameDllVersion; -} - -////////////////////////////////////////////////////////////////////// -// EVEN MORE HACKS HERE! YOU HAVE BEEN WARNED! // -// Signatures necessary in finding the pointer to the CUtlDict that // -// stores user message information. // -// IServerGameDLL::GetUserMessageInfo() normally crashes with bad // -// message indices. This is our answer to it. Yuck! <:-( // -////////////////////////////////////////////////////////////////////// -#ifdef OS_WIN32 - /* General Windows sig */ - #define MSGCLASS_SIGLEN 7 - #define MSGCLASS_SIG "\x8B\x0D\x2A\x2A\x2A\x2A\x56" - #define MSGCLASS_OFFS 2 - - /* Dystopia Wimdows hack */ - #define MSGCLASS2_SIGLEN 16 - #define MSGCLASS2_SIG "\x56\x8B\x74\x24\x2A\x85\xF6\x7C\x2A\x3B\x35\x2A\x2A\x2A\x2A\x7D" - #define MSGCLASS2_OFFS 11 - - /* Windows frame pointer sig */ - #define MSGCLASS3_SIGLEN 18 - #define MSGCLASS3_SIG "\x55\x8B\xEC\x51\x89\x2A\x2A\x8B\x2A\x2A\x50\x8B\x0D\x2A\x2A\x2A\x2A\xE8" - #define MSGCLASS3_OFFS 13 -#elif defined OS_LINUX - /* No frame pointer sig */ - #define MSGCLASS_SIGLEN 14 - #define MSGCLASS_SIG "\x53\x83\xEC\x2A\x8B\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x89" - #define MSGCLASS_OFFS 9 - - /* Frame pointer sig */ - #define MSGCLASS2_SIGLEN 16 - #define MSGCLASS2_SIG "\x55\x89\xE5\x53\x83\xEC\x2A\x8B\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x89" - #define MSGCLASS2_OFFS 11 -#endif - -/* This is the ugliest function in all of SourceMM */ -/* :TODO: Make this prettier */ -bool CSmmAPI::CacheUserMessages() -{ - SourceHook::MemFuncInfo info = {true, -1, 0, 0}; - SourceHook::GetFuncInfo(&IServerGameDLL::GetUserMessageInfo, info); - - /* Get address of original GetUserMessageInfo() */ - char *vfunc = reinterpret_cast(g_GameDllPatch->GetOrigFunc(info.vtbloffs, info.vtblindex)); - - /* If we can't get original function, that means there's no hook */ - if (vfunc == NULL) - { - /* Get virtual function address 'manually' then */ - char *adjustedptr = reinterpret_cast(g_GameDll.pGameDLL) + info.thisptroffs + info.vtbloffs; - char **vtable = *reinterpret_cast(adjustedptr); - - vfunc = vtable[info.vtblindex]; - } - - /* Oh dear, we have a relative jump on our hands - * PVK II on Windows made me do this, but I suppose it doesn't hurt to check this on Linux too... - */ - if (*vfunc == '\xE9') - { - /* Get address from displacement... - * - * Add 5 because it's relative to next instruction: - * Opcode <1 byte> + 32-bit displacement <4 bytes> - */ - vfunc = vfunc + *reinterpret_cast(vfunc + 1) + 5; - } - - UserMsgDict *dict = NULL; - - if (vcmp(vfunc, MSGCLASS_SIG, MSGCLASS_SIGLEN)) - { - /* Get address of CUserMessages instance */ - char **userMsgClass = *reinterpret_cast(vfunc + MSGCLASS_OFFS); - - /* Get address of CUserMessages::m_UserMessages */ - dict = reinterpret_cast(*userMsgClass); - } else if (vcmp(vfunc, MSGCLASS2_SIG, MSGCLASS2_SIGLEN)) { - #ifdef OS_WIN32 - /* If we get here, the code is possibly inlined like in Dystopia */ - - /* Get the address of the CUtlRBTree */ - char *rbtree = *reinterpret_cast(vfunc + MSGCLASS2_OFFS); - - /* CUtlDict should be 8 bytes before the CUtlRBTree (hacktacular!) */ - dict = reinterpret_cast(rbtree - 8); - #elif defined OS_LINUX - /* Get address of CUserMessages instance */ - char **userMsgClass = *reinterpret_cast(vfunc + MSGCLASS2_OFFS); - - /* Get address of CUserMessages::m_UserMessages */ - dict = reinterpret_cast(*userMsgClass); - #endif - #ifdef OS_WIN32 - } else if (vcmp(vfunc, MSGCLASS3_SIG, MSGCLASS3_SIGLEN)) { - /* Get address of CUserMessages instance */ - char **userMsgClass = *reinterpret_cast(vfunc + MSGCLASS3_OFFS); - - /* Get address of CUserMessages::m_UserMessages */ - dict = reinterpret_cast(*userMsgClass); - #endif - } - - if (dict) - { - m_MsgCount = dict->Count(); - - /* Ensure that count is within bounds of an unsigned byte, because that's what engine supports */ - if (m_MsgCount < 0 || m_MsgCount > 255) - { - m_MsgCount = -1; - return false; - } - - UserMessage *msg; - - /* Cache messages in our CUtlDict */ - for (int i = 0; i < m_MsgCount; i++) - { - msg = dict->Element(i); - m_UserMessages.Insert(msg->name, msg); - } - - return true; - } - - return false; -} - -bool CSmmAPI::MsgCacheSuccessful() -{ - return m_MsgCount > -1; -} - -int CSmmAPI::GetUserMessageCount() -{ - return m_MsgCount; -} - -int CSmmAPI::FindUserMessage(const char *name, int *size) -{ - int index = m_UserMessages.Find(name); - - if (size && index > -1) - { - UserMessage *msg = m_UserMessages.Element(index); - *size = msg->size; - } - - return index; -} - -const char *CSmmAPI::GetUserMessage(int index, int *size) -{ - if (m_MsgCount <= 0 || index < 0 || index >= m_MsgCount) - { - return NULL; - } - - UserMessage *msg = m_UserMessages.Element(index); - - if (size) - { - *size = msg->size; - } - - return msg->name; -} diff --git a/sourcemm/CSmmAPI.h b/sourcemm/CSmmAPI.h deleted file mode 100644 index 914fb7f..0000000 --- a/sourcemm/CSmmAPI.h +++ /dev/null @@ -1,98 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_CSMM_API_H -#define _INCLUDE_CSMM_API_H - -/** - * @brief Header for CSmmAPI implementation - * @file CSmmAPI.h - */ - -#include "ISmmAPI.h" -#include - -struct UserMessage -{ - int size; - const char *name; -}; - -typedef CUtlDict UserMsgDict; - -typedef void (*CONPRINTF_FUNC)(const char *, ...); - -namespace SourceMM -{ - class CSmmAPI : public ISmmAPI - { - public: - CSmmAPI(); - ~CSmmAPI(); - public: - void LogMsg(ISmmPlugin *pl, const char *msg, ...); - public: - CreateInterfaceFn engineFactory(bool syn=true); - CreateInterfaceFn physicsFactory(bool syn=true); - CreateInterfaceFn fileSystemFactory(bool syn=true); - CreateInterfaceFn serverFactory(bool syn=true); - CGlobalVars *pGlobals(); - void SetLastMetaReturn(META_RES res); - META_RES GetLastMetaReturn(); - IConCommandBaseAccessor *GetCvarBaseAccessor(); - bool RegisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand); - void UnregisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand); - void ConPrint(const char *fmt); - void ConPrintf(const char *fmt, ...); - bool RemotePrintingAvailable() - { - return CmdCacheSuccessful(); - } - virtual void GetApiVersions(int &major, int &minor, int &plvers, int &plmin); - virtual void GetShVersions(int &shvers, int &shimpl); - virtual void AddListener(ISmmPlugin *plugin, IMetamodListener *pListener); - virtual void *MetaFactory(const char *iface, int *ret, PluginId *id); - virtual int FormatIface(char buffer[], unsigned int maxlength); - virtual void *InterfaceSearch(CreateInterfaceFn fn, const char *iface, int max, int *ret); - virtual const char *GetBaseDir(); - virtual void PathFormat(char *buffer, size_t len, const char *fmt, ...); - void ClientConPrintf(edict_t *client, const char *fmt, ...); - void *VInterfaceMatch(CreateInterfaceFn fn, const char *iface, int min=-1); - void EnableVSPListener(); - int GetGameDLLVersion(); - int GetUserMessageCount(); - int FindUserMessage(const char *name, int *size=NULL); - const char *GetUserMessage(int index, int *size=NULL); - public: - bool CacheCmds(); - bool CmdCacheSuccessful(); - void LoadAsVSP(); - bool VSPEnabled() - { - return m_VSP; - } - bool CacheUserMessages(); - bool MsgCacheSuccessful(); - private: - META_RES m_Res; - CONPRINTF_FUNC m_ConPrintf; - bool m_CmdCache; - bool m_VSP; - int m_MsgCount; - UserMsgDict m_UserMessages; - }; -}; - -extern SourceMM::CSmmAPI g_SmmAPI; - -#define CONMSG g_SmmAPI.ConPrintf -#define CLIENT_CONMSG g_SmmAPI.ClientConPrintf - -#endif //_INCLUDE_CSMM_API_H diff --git a/sourcemm/IPluginManager.h b/sourcemm/IPluginManager.h deleted file mode 100644 index fd0662f..0000000 --- a/sourcemm/IPluginManager.h +++ /dev/null @@ -1,137 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_PLUGINMANAGER_H -#define _INCLUDE_PLUGINMANAGER_H - -/** - * @brief Plugin Manager interface - * @file IPluginManager.h - */ - -typedef int PluginId; - -#include "ISmmPlugin.h" - -/** - * @brief Load sources - */ -enum -{ - Pl_BadLoad=0, - Pl_Console=-1, - Pl_File=-2, - Pl_MinId=1, -}; - -/** - * @brief Status of a plugin at runtime - */ -enum Pl_Status -{ - Pl_NotFound=-4, - Pl_Error=-3, - Pl_Refused=-2, - Pl_Paused=-1, - Pl_Running=0, -}; - -typedef int PluginId; -struct factories; - -class ISmmPluginManager -{ -public: - /** - * @brief Loads a plugin and returns its id. If this is called before DLLInit(), - * then the plugin is considered to be "hot" - it might refuse its own load later! - * Also, a hot plugin might not have an error message. - * - * @param file String containing file name - * @param source Specifies who loaded the plugin - * @param status Status of the plugin - * @param ismm Pointer to Smm API - * @param error String buffer for error messages - * @param maxlen Maximum length of buffer - * @return Id of plugin - */ - virtual PluginId Load(const char *file, PluginId source, bool &already, char *error, size_t maxlen) =0; - - /** - * @brief Unloads a plugin - * - * @param id Id of plugin - * @param error String buffer for error messages - * @param maxlen Maximum length of buffer - * @return True on success, false otherwise - */ - virtual bool Unload(PluginId id, bool force, char *error, size_t maxlen) =0; - - /** - * @brief Pauses a plugin - * - * @param id Id of plugin - * @param error String buffer for error messages - * @param maxlen Maximum length of buffer - * @return True on success, false otherwise - */ - virtual bool Pause(PluginId id, char *error, size_t maxlen) =0; - - /** - * @brief Unpauses a plugin - * - * @param id Id of plugin - * @param force If true, forces the plugin to unload - * @param error String buffer for error messages - * @param maxlen Maximum length of buffer - * @return True on success, false otherwise - */ - virtual bool Unpause(PluginId id, char *error, size_t maxlen) =0; - - /** - * @brief Unloads all plugins forcefully - * - * @return True on success, false otherwise - */ - virtual bool UnloadAll() =0; - - /** - * @brief Returns information about a plugin - * - * @param id Id of plugin - * @param file Pointer to file string by reference - * @param list Pointer to factories by reference - * @param status By reference status of plugin - * @param source By reference source of plugin - * @return True on success, false if not found - */ - virtual bool Query(PluginId id, const char *&file, Pl_Status &status, PluginId &source) =0; - - /** - * @brief Checks another plugin's QueryRunning() status. - * - * @param id Id of plugin - * @param error Message buffer - * @param maxlen Size of error buffer - * @return Status value - */ - virtual bool QueryRunning(PluginId id, char *error, size_t maxlength) =0; - - /** - * @brief Returns the handle of a plugin (OS dependent meaning) - * - * @param id Id of plugin - * @param handle By reference handle of plugin, if any - * @return True if plugin id is valid, false otherwise - */ - virtual bool QueryHandle(PluginId id, void *&handle) =0; -}; - -#endif //_INCLUDE_PLUGINMANAGER_H diff --git a/sourcemm/ISmmAPI.h b/sourcemm/ISmmAPI.h deleted file mode 100644 index e6e90a7..0000000 --- a/sourcemm/ISmmAPI.h +++ /dev/null @@ -1,320 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_ISMM_API_H -#define _INCLUDE_ISMM_API_H - -/** - * @brief External API interface - * @file ISmmAPI.h - */ - -#include -#include -#include -#include "IPluginManager.h" - -#if defined __GNUC__ -#if ((__GNUC__ == 3) && (__GNUC_MINOR__ < 4)) || (__GNUC__ < 3) -#error "You must compile with at least GCC 3.4! If you know what you are doing, you can remove this message." -#endif //version check -#endif //__GNUC__ - -class IMetamodListener; -class ISmmPluginManager; -class ISmmPlugin; - -#define MMIFACE_SOURCEHOOK "ISourceHook" /**< ISourceHook Pointer */ -#define MMIFACE_PLMANAGER "IPluginManager" /**< SourceMM Plugin Functions */ -#define IFACE_MAXNUM 999 - -class ISmmAPI -{ -public: - /** - * @brief Logs a message through the HL2 log system. - * Note: Newlines are appended automatically. - * - * @param pl Plugin API pointer (used for tagging message) - * @param msg Formatted string. - */ - virtual void LogMsg(ISmmPlugin *pl, const char *msg, ...) =0; -public: - /** - * @brief Returns an interface factory for the HL2 engine. - * - * @param syn If syn is true, the synthetic wrapper is returned. - * If syn is false, the true function is returned. - * @return CreateInterfaceFn function pointer. - */ - virtual CreateInterfaceFn engineFactory(bool syn=true) =0; - - /** - * @brief Returns an interface factory for the HL2 physics engine. - * - * @param syn If syn is true, the synthetic wrapper is returned. - * If syn is false, the true function is returned. - * @return CreateInterfaceFn function pointer. - */ - virtual CreateInterfaceFn physicsFactory(bool syn=true) =0; - - /** - * @brief Returns an interface factory for the HL2 file system. - * - * @param syn If syn is true, the synthetic wrapper is returned. - * If syn is false, the true function is returned. - * @return CreateInterfaceFn function pointer. - */ - virtual CreateInterfaceFn fileSystemFactory(bool syn=true) =0; - - /** - * @brief Returns an interface factory for the GameDLL. - * - * @param syn If syn is true, the synthetic wrapper is returned. - * If syn is false, the true function is returned. - * @return CreateInterfaceFn function pointer. - */ - virtual CreateInterfaceFn serverFactory(bool syn=true) =0; - - /** - * @brief Returns a CGlobalVars pointer from the HL2 Engine. - * - * @return CGlobalVars pointer. - */ - virtual CGlobalVars *pGlobals() =0; - - /** - * @brief Used with SourceHook, sets teh last meta return value. - * Note: Do not call this directly, use the Metamod macros. - * - * @param res META_RETURN value to set. - */ - virtual void SetLastMetaReturn(META_RES res) =0; - - /** - * @brief Used with SourceHook, returns the last meta return value. - * Note: This is only valid inside a hook function. - * - * @return Last META_RETURN value set by a plugin. - */ - virtual META_RES GetLastMetaReturn() =0; - -public: // Added in 1.00-RC2 (0:0) - /** - * @brief Allows access to Metamod's ConCommandBaseAccessor. - * - * @return Returns IConCommandBaseAccessor pointer. - */ - virtual IConCommandBaseAccessor *GetCvarBaseAccessor() =0; - - /** - * @brief Registers a ConCommandBase. - * - * @param plugin Parent plugin API pointer. - * @param pCommand ConCommandBase to register. - * @return True if successful, false otherwise. Does not return false yet. - */ - virtual bool RegisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand) =0; - - /** - * @brief Unregisters a ConCommandBase. - * - * @param plugin Parent plugin API pointer. - * @param pCommand ConCommandBase to unlink. - */ - virtual void UnregisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand) =0; - - /** - * @brief Prints an unformatted string to the remote server console. - * Note: Newlines are not added automatically. - * - * @param str Message string. - */ - virtual void ConPrint(const char *str) =0; - - /** - * @brief Prints a formatted message to the remote server console. - * Note: Newlines are not added automatically. - * - * @param fmt Formatted message. - */ - virtual void ConPrintf(const char *fmt, ...) =0; - -public: // Added in 1.1.0 (1:0) - /** - * @brief Checks if ConPrint/ConPrintf will mirror to rcon. - * - * @return True if remote printing available, false otherwise. - */ - virtual bool RemotePrintingAvailable() =0; - - /** - * @brief Returns the Metamod Version numbers as major version and minor (API) version. - * Changes to minor version are guaranteed to be backwards compatible. - * Changes to major version are not. - * - * @param major Filled with the major API version number. - * @param minor Filled with the minor API version number. - * @param plvers Filled with the current plugin API version number. - * @param plmin Filled with the minimum plugin API version number supported. - */ - virtual void GetApiVersions(int &major, int &minor, int &plvers, int &plmin) =0; - - /** - * @brief Returns sourcehook API version and implementation version. - * - * @param shvers Filled with the SourceHook API version number. - * @param shimpl Filled with the SourceHook implementation number. - */ - virtual void GetShVersions(int &shvers, int &shimpl) =0; - - /** - * @brief Adds a Metamod listener. - * - * @param plugin Plugin interface pointer. - * @param pListener Listener interface pointer to add. - */ - virtual void AddListener(ISmmPlugin *plugin, IMetamodListener *pListener) =0; - - /** - * @brief Queries the metamod factory - * - * @param iface String containing interface name - * @param ret Optional pointer to store return status - * @param id Optional pointer to store id of plugin that overrode interface, 0 if none - * @return Returned pointer - */ - virtual void *MetaFactory(const char *iface, int *ret, PluginId *id) =0; - -public: // Added in 1.1.2 (1:1) - /** - * @brief Given a base interface name, such as ServerGameDLL or ServerGameDLL003, - * reformats the string to increase the number, then returns the new number. - * This is the base function to InterfaceSearch() and VInterfaceMatch(). - * - * @param iface Input/output interface name. Must be writable. - * @param maxlength Maximum length of iface buffer. Must be at least strlen(iface)+4 chars. - * @return The newly incremented iface version number. - */ - virtual int FormatIface(char iface[], unsigned int maxlength) =0; - -public: // Added in 1.2 (1:2) - /** - * @brief Searches for an interface for you. - * - * @param fn InterfaceFactory function. - * @param iface Interface string name. - * @param max Maximum version to look up. - * @param ret Last return code from interface factory function. - * @return Interface pointer, or NULL if not found. - */ - virtual void *InterfaceSearch(CreateInterfaceFn fn, const char *iface, int max, int *ret) =0; - - /** - * @brief Returns the base directory of the game/server, equivalent to - * IVEngineServer::GetGameDir(), except the path is absolute. - * - * @return Static pointer to game's absolute basedir. - */ - virtual const char *GetBaseDir() =0; - - /** - * @brief Formats a file path to the local OS. Does not include any base directories. - * Note that all slashes and black slashes are reverted to the local OS's expectancy. - * - * @param buffer Destination buffer to store path. - * @param len Maximum length of buffer, including null terminator. - * @param fmt Formatted string. - */ - virtual void PathFormat(char *buffer, size_t len, const char *fmt, ...) =0; - -public: // Added in 1.2.2 (1:3) - /** - * @brief Prints text in the specified client's console. Same as IVEngineServer::ClientPrintf - * except that it allows for string formatting. - * - * @param client Client edict pointer. - * @param fmt Formatted string to print to the client. - */ - virtual void ClientConPrintf(edict_t *client, const char *fmt, ...) =0; - -public: // Added in 1.3 (1:4) - /** - * @brief Wrapper around InterfaceSearch(). Assumes no maximum. - * This is designed to replace the fact that searches only went upwards. - * The "V" is intended to convey that this is for Valve formatted interface strings. - * - * @param fn Interface factory function. - * @param iface Interface string. - * @param min Minimum value to search from. If zero, searching begins from the - * first available version regardless of the interface. - * Note that this can return interfaces EARLIER than the version specified. - * A value of -1 (default) specifies the string version as the minimum. - * Any other value specifices the minimum value to search from. - * @return Interface pointer, or NULL if not found. - */ - virtual void *VInterfaceMatch(CreateInterfaceFn fn, const char *iface, int min=-1) =0; - -public: // Added in 1.4 (1:5) - /** - * @brief Tells SourceMM to add VSP hooking capability to plugins. - * - * Since this potentially uses more resources than it would otherwise, plugins have to - * explicitly enable the feature. Whether requested or not, if it is enabled, all plugins - * will get a pointer to the VSP listener through IMetamodListener. - */ - virtual void EnableVSPListener() =0; - - /** - * @brief Returns the interface version of the GameDLL's IServerGameDLL implementation. - * - * @return Interface version of the loaded IServerGameDLL. - */ - virtual int GetGameDLLVersion() =0; - - /** - * @brief Returns the number of user messages in the GameDLL. - * - * @return Number of user messages, or -1 if SourceMM has failed to get user message list. - */ - virtual int GetUserMessageCount() =0; - - /** - * @brief Returns the index of the specified user message. - * - * @param name User message name. - * @param size Optional pointer to store size of user message. - * @return Message index, or -1 on failure. - */ - virtual int FindUserMessage(const char *name, int *size=NULL) =0; - - /** - * @brief Returns the name of the specified user message. - * - * @param index User message index. - * @param size Optional pointer to store size of user message. - * @return Message name, or NULL on failure. - */ - virtual const char *GetUserMessage(int index, int *size=NULL) =0; -}; - - -/** - * Version History - * - * 1.1.0 Bumped API to 1:0. The breaking changes occurred in SourceHook and the plugin API. - * 1.1.2 Added API call for generating iface names. - * 1.2 Added API more helper functions and new SourceHook version. - * 1.2.2 Added API for printing to client console (with string formatting). - * 1.3 Added new interface search API. - * 1.4 Added VSP listener and user message API. - */ - -#endif //_INCLUDE_ISMM_API_H diff --git a/sourcemm/ISmmPlugin.h b/sourcemm/ISmmPlugin.h deleted file mode 100644 index dea7700..0000000 --- a/sourcemm/ISmmPlugin.h +++ /dev/null @@ -1,409 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_ISMM_PLUGIN_H -#define _INCLUDE_ISMM_PLUGIN_H - -/** - * @brief Plugin API interface - * @file ISmmPlugin.h - */ - -#include -#include -#include "ISmmAPI.h" - -#define PLAPI_VERSION 10 -#define PLAPI_NAME "ISmmPlugin" - -class ISmmAPI; - -class ISmmPlugin -{ -public: - virtual int GetApiVersion() { return PLAPI_VERSION; } - virtual ~ISmmPlugin() { } -public: - /** - * @brief Called on plugin load. - * NOTE - As of API 7, this is called as DLLInit() executes - after the parameters are known, but before - * the original GameDLL function is called. Therefore, you cannot hook it, but you don't need to - - * Load() is basically your hook. - * NOTE - As of API 7, you can override factories before the engine and gamedll exchange them. - * However, take care to note that if your plugin is unloaded, and the gamedll/engine have cached - * an interface you've passed, something will definitely crash. Be careful. - * - * @param id Internal id of plugin. Saved globally by PLUGIN_SAVEVARS() - * @param ismm External API for SourceMM. Saved globally by PLUGIN_SAVEVARS() - * @param list Contains a list of factories. Hook a factory call by setting one equal to your own function. - * @param late Set to true if your plugin was loaded late (not at server load). - * @param error Error message buffer - * @param maxlen Size of error message buffer - * @return True if successful, return false to reject the load. - */ - virtual bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlength, bool late) =0; - - /** - * @brief Called when your plugin is "queried". This is useful for rejecting a loaded - * state. For example, if your plugin wants to stop operating, it can simply return - * false and copy an error message. This will notify other plugins or MM:S of something - * bad that happened. NOTE - MM:S will not cache the return state, so if you return false, - * your plugin will not actually be paused or unloaded. This callback will be called when: - * - Another plugin requests it - * - Someone types "meta list", it will show up as "REFUSED" - * - When Metamod need to re-check the plugin's status - * - If the plugin does something like overload a factory, Metamod will make sure the Query() returns true - * before calling it. - * Also note that this query will only override Metamod when the plugin is running and not paused. - * - * @param error Buffer for error message. This can be NULL! - * @param maxlen Maximum length of error buffer. - * @return Status code - true for okay, false for badness. - */ - virtual bool QueryRunning(char *error, size_t maxlen) - { - return true; - } - - /** - * @brief Called on plugin unload. You can return false if you know your plugin - * is not capable of restoring critical states it modifies. - * - * @param error Error message buffer - * @param maxlen Size of error message buffer - * @return True on success, return false to request no unload. - */ - virtual bool Unload(char *error, size_t maxlen) - { - return true; - } - - /** @brief Called on plugin pause. - * - * @param error Error message buffer - * @param maxlen Size of error message buffer - * @return True on success, return false to request no pause. - */ - virtual bool Pause(char *error, size_t maxlen) - { - return true; - } - - /** @brief Called on plugin unpause. - * - * @param error Error message buffer - * @param maxlen Size of error message buffer - * @return True on success, return false to request no unpause. - */ - virtual bool Unpause(char *error, size_t maxlen) - { - return true; - } -public: - /** @brief Return author as string */ - virtual const char *GetAuthor() =0; - - /** @brief Return plugin name as string */ - virtual const char *GetName() =0; - - /** @brief Return a description as string */ - virtual const char *GetDescription() =0; - - /** @brief Return a URL as string */ - virtual const char *GetURL() =0; - - /** @brief Return quick license code as string */ - virtual const char *GetLicense() =0; - - /** @brief Return version as string */ - virtual const char *GetVersion() =0; - - /** @brief Return author as string */ - virtual const char *GetDate() =0; - - /** @brief Return author as string */ - virtual const char *GetLogTag() =0; -public: - /** - * @brief Called when all plugins have been loaded - API version 4 - * - * This is useful for knowing when it's safe to request things another plugin might have. - * NOTE for API 7 - This is called after DLLInit(). - */ - virtual void AllPluginsLoaded() - { - } -}; - -/** - * @brief Added in 1.1 so plugins could listen to specific events - */ -class IMetamodListener -{ -public: - virtual ~IMetamodListener() { } -public: - /** - * @brief Called when a plugin is loaded. - * - * @param id Id of the plugin. - */ - virtual void OnPluginLoad(PluginId id) { } - - /** - * @brief Called when a plugin is unloaded. - * - * @param id Id of the plugin. - */ - virtual void OnPluginUnload(PluginId id) { } - - /** - * @brief Called when a plugin is paused. - * - * @param id Id of the plugin. - */ - virtual void OnPluginPause(PluginId id) { } - - /** - * @brief Called when a plugin is unpaused. - * - * @param id Id of the plugin. - */ - virtual void OnPluginUnpause(PluginId id) { } - - /** - * @brief Called when the level is loaded (after GameInit, before ServerActivate). - * - * To override this, hook IServerGameDLL::LevelInit(). - * - * @param pMapName Name of the map. - * @param pMapEntities Lump string of the map entities, in KeyValue format. - * @param pOldLevel Unknown. - * @param pLandmarkName Unknown. - * @param loadGame Unknown. - * @param background Unknown. - */ - virtual void OnLevelInit(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background) { } - - /** - * @brief Called when the level is shut down. May be called more than once. - */ - virtual void OnLevelShutdown() { } - - /** - * @brief Called when engineFactory() is used through Metamod:Source's wrapper. - * This can be used to provide interfaces to other plugins or the GameDLL. - * - * If ret is passed, you should fill it with IFACE_OK or IFACE_FAILED. - * - * @param iface Interface string. - * @param ret Optional pointer to store return code. - * @return Generic pointer to the interface, or NULL if not found. - */ - virtual void *OnEngineQuery(const char *iface, int *ret) - { - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /** - * @brief Called when the physics factory is used through Metamod:Source's wrapper. - * This can be used to provide interfaces to other plugins. - * - * If ret is passed, you should fill it with IFACE_OK or IFACE_FAILED. - * - * @param iface Interface string. - * @param ret Optional pointer to store return code. - * @return Generic pointer to the interface, or NULL if not found. - */ - virtual void *OnPhysicsQuery(const char *iface, int *ret) - { - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /** - * @brief Called when the filesystem factory is used through Metamod:Source's wrapper. - * This can be used to provide interfaces to other plugins. - * - * If ret is passed, you should fill it with IFACE_OK or IFACE_FAILED. - * - * @param iface Interface string. - * @param ret Optional pointer to store return code. - * @return Generic pointer to the interface, or NULL if not found. - */ - virtual void *OnFileSystemQuery(const char *iface, int *ret) - { - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /** - * @brief Called when the server DLL's factory is used through Metamod:Source's wrapper. - * This can be used to provide interfaces to other plugins. - * - * If ret is passed, you should fill it with IFACE_OK or IFACE_FAILED. - * - * @param iface Interface string. - * @param ret Optional pointer to store return code. - * @return Generic pointer to the interface, or NULL if not found. - */ - virtual void *OnGameDLLQuery(const char *iface, int *ret) - { - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /** - * @brief Called when Metamod's own factory is invoked. - * This can be used to provide interfaces to other plugins. - * - * If ret is passed, you should fill it with IFACE_OK or IFACE_FAILED. - * - * @param iface Interface string. - * @param ret Optional pointer to store return code. - * @return Generic pointer to the interface, or NULL if not found. - */ - virtual void *OnMetamodQuery(const char *iface, int *ret) - { - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /** - * @brief Called when Metamod:Source acquires a valid IServerPluginCallbacks - * pointer to be used for hooking by plugins. - * - * This will only be called after a call to ISmmAPI::EnableVSPListener(). - * If called before GameInit, this callback will occur before LevelInit. - * Otherwise, it will be called on the first call after that. - * - * This callback is provided to all plugins regardless of which (or how many) - * called EnableVSPListener(), but only if at least one did in fact enable it. - * - * This callback is only available for plugins using API v1:5 (SourceMM 1.4+). - * - * @param iface Interface pointer. If NULL, then the VSP listening construct - * failed to initialize and is not available. - */ - virtual void OnVSPListening(IServerPluginCallbacks *iface) - { - } -}; - -#define PL_EXPOSURE CreateInterface -#define PL_EXPOSURE_C "CreateInterface" - -#define PLUGIN_EXPOSE(name, var) \ - ISmmAPI *g_SMAPI = NULL; \ - ISmmPlugin *g_PLAPI = NULL; \ - PluginId g_PLID = (PluginId)0; \ - SourceHook::ISourceHook *g_SHPtr = NULL; \ - SMM_API void *PL_EXPOSURE(const char *name, int *code) { \ - if (name && !strcmp(name, PLAPI_NAME)) { \ - return static_cast(&var); \ - } \ - return NULL; \ - } - -#define PLUGIN_GLOBALVARS() \ - extern SourceHook::ISourceHook *g_SHPtr; \ - extern ISmmAPI *g_SMAPI; \ - extern ISmmPlugin *g_PLAPI; \ - extern PluginId g_PLID; - -#define PLUGIN_SAVEVARS() \ - g_SMAPI = ismm; \ - g_SHPtr = static_cast(ismm->MetaFactory(MMIFACE_SOURCEHOOK, NULL, NULL)); \ - g_PLAPI = static_cast(this); \ - g_PLID = id; - -#define META_LOG g_SMAPI->LogMsg -#define META_REGCMD(name) g_SMAPI->RegisterConCmdBase(g_PLAPI, name##_command) -#define META_REGCVAR(var) g_SMAPI->RegisterConCmdBase(g_PLAPI, var) -#define META_UNREGCMD(name) g_SMAPI->UnregisterConCmdBase(g_PLAPI, name##_command) -#define META_UNREGCVAR(var) g_SMAPI->UnregisterConCmdBase(g_PLAPI, var) -#define META_CONPRINT g_SMAPI->ConPrint -#define META_CONPRINTF g_SMAPI->ConPrintf - -/* Probably should use this up above someday */ -#define CONCMD_VARNAME(name) name##_command - -#if !defined SMM_API -#if defined __WIN32__ || defined _WIN32 || defined WIN32 - #define SMM_API extern "C" __declspec(dllexport) -#elif defined __GNUC__ - #if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 1) - #define SMM_API extern "C" __attribute__ ((visibility("default"))) - #else - #define SMM_API extern "C" - #endif -#endif -#endif //!defined SMM_API - -/** - * @brief Macro for automatically getting a current or newer Valve interface. - * - * @param v_factory Factory method to use from ISmmAPI (such as engineFactory). - * @param v_var Variable name to store into. - * @param v_type Interface type (do not include the pointer/asterisk). - * @param v_name Interface name. - */ -#define GET_V_IFACE_CURRENT(v_factory, v_var, v_type, v_name) \ - v_var = (v_type *)ismm->VInterfaceMatch(ismm->v_factory(), v_name); \ - if (!v_var) \ - { \ - if (error && maxlen) \ - { \ - snprintf(error, maxlen, "Could not find interface: %s", v_name); \ - } \ - return false; \ - } - - /** - * @brief Same as GET_V_IFACE, except searches for any. - * - * @param v_factory Factory method to use from ISmmAPI (such as engineFactory). - * @param v_var Variable name to store into. - * @param v_type Interface type (do not include the pointer/asterisk). - * @param v_name Interface name. - */ -#define GET_V_IFACE_ANY(v_factory, v_var, v_type, v_name) \ - v_var = (v_type *)ismm->VInterfaceMatch(ismm->v_factory(), v_name, 0); \ - if (!v_var) \ - { \ - if (error && maxlen) \ - { \ - snprintf(error, maxlen, "Could not find interface: %s", v_name); \ - } \ - return false; \ - } - -#endif //_INCLUDE_ISMM_PLUGIN_H diff --git a/sourcemm/LICENSE.txt b/sourcemm/LICENSE.txt deleted file mode 100644 index bf9f1fd..0000000 --- a/sourcemm/LICENSE.txt +++ /dev/null @@ -1,29 +0,0 @@ -The software is Copyright (C) 2004-2007, Metamod:Source Development Team. - -Metamod:Source is distributed under the "zLib/libpng" license, which is reproduced -below: - ------------------------------------------------------------------------------ - -This software is provided "as-is", without any express or implied warranty. -In no event will the authors be held liable for any damages arising from -the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software in - a product, an acknowledgment in the product documentation would be - appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. - ------------------------------------------------------------------------------ - -The zLib/libpng license has been approved by the "Open Source Initiative" -organization. diff --git a/sourcemm/Makefile b/sourcemm/Makefile deleted file mode 100644 index ff2cd6b..0000000 --- a/sourcemm/Makefile +++ /dev/null @@ -1,69 +0,0 @@ -#(C)2004-2007 SourceMM Development Team -# Makefile written by David "BAILOPAN" Anderson - -HL2SDK = ../../../hl2sdk -SMM_ROOT = .. -SRCDS = ~/srcds - -### EDIT BELOW FOR OTHER PROJECTS ### - -OPT_FLAGS = -O2 -funroll-loops -s -pipe -GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden -DEBUG_FLAGS = -g -ggdb3 -CPP = gcc-4.1 -BINARY = server_i486.so - -HL2PUB = $(HL2SDK)/public -HL2LIB = $(HL2SDK)/linux_sdk - -OBJECTS = oslink.cpp util.cpp concommands.cpp CSmmAPI.cpp \ - sourcemm.cpp CPlugin.cpp sourcehook.cpp vsp_listener.cpp - -LINK = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so -static-libgcc - -INCLUDE = -I. -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ - -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_ROOT) -I$(SMM_ROOT)/sourcehook - -ifeq "$(DEBUG)" "true" - BIN_DIR = Debug - CFLAGS = $(DEBUG_FLAGS) -else - BIN_DIR = Release - CFLAGS = $(OPT_FLAGS) -endif - -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) - -CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse -Wno-uninitialized - -ifeq "$(GCC_VERSION)" "4" - CFLAGS += $(GCC4_FLAGS) -endif - -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) - -$(BIN_DIR)/%.o: %.cpp - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< - -all: - mkdir -p $(BIN_DIR) - ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so - ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so - ln -sf $(SMM_ROOT)/sourcehook/sourcehook.cpp sourcehook.cpp - $(MAKE) sourcemm - rm -rf $(BINARY) - ln -sf $(BIN_DIR)/$(BINARY) $(BINARY) - -sourcemm: $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) - -debug: - $(MAKE) all DEBUG=true - -default: all - -clean: - rm -rf Release/*.o - rm -rf Release/$(BINARY) - rm -rf Debug/*.o - rm -rf Debug/$(BINARY) diff --git a/sourcemm/SourceMM.Doxyfile b/sourcemm/SourceMM.Doxyfile deleted file mode 100644 index b7f2df7..0000000 --- a/sourcemm/SourceMM.Doxyfile +++ /dev/null @@ -1,257 +0,0 @@ -# Doxyfile 1.4.2 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = SourceMM -PROJECT_NUMBER = 1.00 -OUTPUT_DIRECTORY = c:\temp\smm-dox -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = YES -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = "C:/Documents and Settings/dvander.WHITENIGHT/Desktop/code/" -STRIP_FROM_INC_PATH = -SHORT_NAMES = YES -JAVADOC_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = NO -INHERIT_DOCS = YES -DISTRIBUTE_GROUP_DOC = NO -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = YES -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = NO -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 38 -SHOW_USED_FILES = YES -SHOW_DIRECTORIES = YES -FILE_VERSION_FILTER = -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = "C:/Documents and Settings/dvander.WHITENIGHT/Desktop/code/sourcemm" -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.d \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.idl \ - *.odl \ - *.cs \ - *.php \ - *.php3 \ - *.inc \ - *.m \ - *.mm \ - *.dox -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = test \ - sample_mm -EXAMPLE_PATH = -EXAMPLE_PATTERNS = * -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = NO -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -VERBATIM_HEADERS = NO -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = NO -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = NO -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 1024 -MAX_DOT_GRAPH_HEIGHT = 1024 -MAX_DOT_GRAPH_DEPTH = 1000 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = YES diff --git a/sourcemm/changelog.txt b/sourcemm/changelog.txt deleted file mode 100644 index 6f80841..0000000 --- a/sourcemm/changelog.txt +++ /dev/null @@ -1,133 +0,0 @@ -2008/01/23 1.4.3: - - Metamod:Source can now be loaded via a .vdf instead of gameinfo.txt. - - Added new plugin loading mechanism via .vdf files in the metamod folder. - - Changed "meta list" output to look similar to Metamod:Source 1.6. - - Plugins which need a VSP pointer can now receive it on late load. - - Fixed a small memory leak when using recalls (RETURN_META_NEWPARAMS). - - Fixed a rare memory corruption bug in the CVector class. - -2007/06/26 1.4.2: - - Fixed a bug where unloading all plugins could crash if one plugin had child plugins. - -2007/05/16 1.4.1: - - The client version of the "meta" command should now work with games using the latest - Source beta (srcds0407). - - Fixed amb233 (VSP listener didn't work with Steam dedicated version). - - Fixed amb277 (failed to get user message list in Kreedz Climbing). - -2007/04/05 1.4.0: - - Added API functions for retrieving User Message info without potentially crashing. - - Added API functions for letting SourceMM plugins use Valve Server Plugin callbacks. - - Added plugin status to client version of "meta list" command. Previously, it did not - differentiate between running and paused plugins. - - An experimental automatic gameinfo.txt fixer is now available. - - Changed version numbering to include the build number (SVN revision). - - Fixed amb93 (improved mod path detection). - - Fixed various rare string inconsistencies. - -2006/11/29 1.3d: - - Updated Metamod:Source to recognize the latest Source Engine version (ServerGameDLL006) - -2006/09/06 1.3a: - - Fixed a building issue on Linux which caused unresolved symbol errors when trying to - load Metamod:Source on a game using an older set of engine libraries. This fix should - now allow Metamod:Source to run with The Ship on Linux. - -2006/08/16 1.3: - - Added SourceHook support for functions that return references. - - Added some extra information to the "meta game" command: Description and Interface. For - example, CS:S would display "Counter-Strike: Source" and "ServerGameDLL004." - - Added some extra functionality to ISmmPluginManager. - - Added compiling support for MSVC 8.0 (Visual Studio 2005) and GCC 4.x - - Added another API helper function for formatting and searching for interfaces. - - Updated project files and source tree to use the latest HL2SDK. - - Updated the sample plugins to be a bit cleaner and use newer API. - - Fixed bug where Metamod:Source could load the wrong GameDLL and/or load more than one - GameDLL. This issue occured in HL2 CTF, SourceForts, or any other mod that relied on - files from another mod directory. - - Fixed bug where ISmmAPI::MetaFactory() would return the wrong interface when trying to - retrieve ISmmPluginManager. - - Fixed bug where returning false in Load() after adding a Metamod event listener or - hooking a function could cause a crash instead of rejecting the plugin. - - Fixed bug where trying to load Metamod:Source a second time as a SourceMM or Valve - server plugin could cause a crash. - - Fixed a bug in FormatIface() that caused InterfaceSearch() to infinite loop. - -2006/06/14 1.2.3: - - Added SourceHook API for manual recalls: RETURN_META_(VALUE_)MNEWPARAMS - - Added support for ServerGameDLL005 (latest HL2DM update) - -2006/05/25 1.2.2: - - Added the ability to "alias" plugin names in metaplugins.ini. - - Added "meta alias" command. - - Added SourceHook API for manual callclasses. - - Added support for the latest Source engine (ServerGameDLL005). - - Added API for printing text in a client's console with ClientConPrintf. This does the - same thing as IVEngineServer::ClientPrintf except that it allows string formatting. - - Added client version of "meta" command in order to allow clients to view version - information and a list of loaded plugins. - - Fixed a bug causing old mods on newer engines to fail loading. - - Fixed issues with SourceHook's SH_CALL and reference parameters. - - Fixed a bug where the mm_pluginsfile cvar was being ignored. - - Fixed a memory leak when using ISmmAPI::InterfaceSearch. - -2006/02/15 1.2.1: - - Fixed bug where returning newparams in a post hook would cause infinite recursion. - - Fixed bug where "meta load" could load the same plugin multiple times. - - Fixed bug where unloading a plugin could crash internal hook states. - - Fixed bug where unhooking a single hook would clear the hook chain. - -2006/01/07 1.2: - - Added SourceHook API for modifying parameters in the hook chain. - - Added SourceHook API for declaring and hooking manual vtable hooks. - - Added better API for querying an interface factory. - - Added API for formatting an OS-independent path. - - Added Listen Server Launcher to the graphical installer. - - Fixed bug where failed plugins could crash the plugin list. - - NOTE: SourceHook changes may require plugins to be recompiled against - the new API. - -2005/12/06 1.1.2: - - Added interface overriding/sharing examples to sample plugins. - - Added API to help guessing at Valve interface versions. - - Fixed various memory leaks. - - Fixed memory corruption bug on vector copying. - - Fixed other various template bugs. - -2005/10/21 1.1.1: - - Fixed a bug where AllPluginsLoaded() was not called after DLLInit(). - -2005/10/21 1.1: - - Rewrote GameDLL loading code to be API version generic. - As such, SourceMM will now easily support new API releases without - an SDK release, such as the case with Day of Defeat:Source - - Added more flexibility to plugin control by supplying an event system. - - Removed dependency on libstdc++.so by supplying a small template library. - - SourceHook internal API is now interface-based, meaning that future - updates to the API will not break older plugins. This update, however, - breaks older plugins. - - SourceHook is now re-entrant. - - Added a basic automated installer (by Basic-Master). - - Fixed a bug where games with changing game names would not work. - - Fixed various bugs, including a cvarlist corruption bug on unloading plugins. - -2005/07/07 1.00-RC2: - - Added API for dealing with ConCommandBase registration (cvars/concmds). - This is to fix the fact that Valve API provides no way to unlist a cvar/cmd. - - Added two new commands - "meta cmds" and "meta cvars". - - Added API calls for correctly printing to the console such that rcon - will also receive messages that a plugin prints. - This problem was mentioned on hlcoders and Valve offered no reply. - - Added event hooking and cvar samples to sample_mm. - - Added new cvar, mm_pluginsfile, which defaults to "addons/metamod/metaplugins.ini". - - Fixed a bug where multiple vtable patches on the same hook were not re-patched when removed. - This caused a crash when two hooks were declared on one function, the first was removed, and - the original function was then called. - - Fixed "meta clear" not unloading all plugins. - - Fixed Metamod:Source loading plugins with a higher current API version. - - Fixed whitespace being parsed in metaplugins.ini. - - Fixed bug where SourceHook tried to patch already destroyed/unavailable memory. - - Bumped Plugin API version to 6. - -2005/05/06 1.00-RC1: - - Initial release. diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp deleted file mode 100644 index 6ef18a1..0000000 --- a/sourcemm/concommands.cpp +++ /dev/null @@ -1,802 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include -#include "CSmmAPI.h" -#include "concommands.h" -#include "CPlugin.h" -#include "sh_string.h" -#include "sh_list.h" -#include "vsp_listener.h" - -/** - * @brief Console Command Implementations - * @file concommands.cpp - */ - -CAlwaysRegisterableCommand g_EternalCommand; -SMConVarAccessor g_SMConVarAccessor; - -bool SMConVarAccessor::RegisterConCommandBase(ConCommandBase *pCommand) -{ - // Add the FCVAR_GAMEDLL flag - // => No crash on exit! - // UPDATE: Do _not_ add the FCVAR_GAMEDLL flag here, as it - // causes the command to be unusable on listenservers until you load a map - // We will set the FCVAR_GAMEDLL flag on all commands we have registered once we are being unloaded - //pCommand->AddFlags(FCVAR_GAMEDLL); - m_RegisteredCommands.push_back(pCommand); - - pCommand->SetNext( NULL ); - g_Engine.icvar->RegisterConCommandBase(pCommand); - - return true; -} - -bool SMConVarAccessor::Register(ConCommandBase *pCommand) -{ - //simple, don't mark as part of sourcemm! - pCommand->SetNext( NULL ); - g_Engine.icvar->RegisterConCommandBase(pCommand); - - return true; -} - -void SMConVarAccessor::MarkCommandsAsGameDLL() -{ - for (SourceHook::List::iterator iter = m_RegisteredCommands.begin(); - iter != m_RegisteredCommands.end(); ++iter) - { - (*iter)->AddFlags(FCVAR_GAMEDLL); - } -} - -void SMConVarAccessor::Unregister(ConCommandBase *pCommand) -{ - ICvar *cv = g_Engine.icvar; - ConCommandBase *ptr = cv->GetCommands(); - - if (ptr == pCommand) - { - //first in list - g_EternalCommand.BringToFront(); - g_EternalCommand.SetNext(const_cast(pCommand->GetNext())); - } else { - //find us and unregister us - ConCommandBase *pPrev = NULL; - while (ptr) - { - if (ptr == pCommand) - break; - pPrev = ptr; - ptr = const_cast(ptr->GetNext()); - } - if (pPrev && ptr == pCommand) - { - pPrev->SetNext(const_cast(pCommand->GetNext())); - } - } -} - -void SMConVarAccessor::UnregisterGameDLLCommands() -{ - ConCommandBase *begin = g_Engine.icvar->GetCommands(); - ConCommandBase *iter = begin; - ConCommandBase *prev = NULL; - while (iter) - { - // watch out for the ETERNAL COMMAND! - if (iter != &g_EternalCommand && iter->IsBitSet(FCVAR_GAMEDLL)) - { - // Remove it! - if (iter == begin) - { - g_EternalCommand.BringToFront(); - iter = const_cast(iter->GetNext()); - g_EternalCommand.SetNext(iter); - prev = &g_EternalCommand; - continue; - } - else - { - iter = const_cast(iter->GetNext()); - prev->SetNext(iter); - continue; - } - } - prev = iter; - iter = const_cast(iter->GetNext()); - } -} - -ConVar metamod_version("metamod_version", SOURCEMM_VERSION, FCVAR_REPLICATED | FCVAR_SPONLY | FCVAR_NOTIFY, "Metamod:Source Version"); -#if defined WIN32 || defined _WIN32 -ConVar mm_pluginsfile("mm_pluginsfile", "addons\\metamod\\metaplugins.ini", FCVAR_SPONLY, "Metamod:Source Plugins File"); -ConVar mm_basedir("mm_basedir", "addons\\metamod", FCVAR_SPONLY, "Metamod:Source base folder"); -#else -ConVar mm_pluginsfile("mm_pluginsfile", "addons/metamod/metaplugins.ini", FCVAR_SPONLY, "Metamod:Source Plugins File"); -ConVar mm_basedir("mm_basedir", "addons/metamod", FCVAR_SPONLY, "Metamod:Source base folder"); -#endif - -CON_COMMAND(meta, "Metamod:Source Menu") -{ - IVEngineServer *e = g_Engine.engine; - - int args = e->Cmd_Argc(); - - if (g_VspListener.IsRootLoadMethod() && !g_bLevelChanged) - { - CONMSG("WARNING: You must change the map to activate Metamod:Source.\n"); - return; - } - - if (args >= 2) - { - const char *command = e->Cmd_Argv(1); - if (strcmp(command, "credits") == 0) - { - CONMSG("Metamod:Source was developed by:\n"); - CONMSG(" SourceHook: Pavol \"PM OnoTo\" Marko\n"); - CONMSG(" GameDLL/Plugins: David \"BAILOPAN\" Anderson\n"); - CONMSG(" GameDLL: Scott \"Damaged Soul\" Ehlert\n"); - CONMSG("For more information, see the official website\n"); - CONMSG("http://www.metamodsource.net/\n"); - - return; - } else if (strcmp(command, "version") == 0) { - CONMSG("Metamod:Source version %s\n", SOURCEMM_VERSION); - if (g_VspListener.IsRootLoadMethod()) - { - CONMSG("Loaded As: Valve Server Plugin\n"); - } - else - { - CONMSG("Loaded As: GameDLL (gameinfo.txt)\n"); - } - CONMSG("Compiled on: %s\n", SOURCEMM_DATE); - CONMSG("Plugin interface version: %d:%d\n", PLAPI_VERSION, PLAPI_MIN_VERSION); - CONMSG("SourceHook version: %d:%d\n", g_SourceHook.GetIfaceVersion(), g_SourceHook.GetImplVersion()); - CONMSG("http://www.metamodsource.net/\n"); - - return; - } else if (strcmp(command, "game") == 0) { - CONMSG("GameDLL Information\n"); - CONMSG(" Description: %s\n", g_GameDll.pGameDLL->GetGameDescription()); - CONMSG(" Mod Path: %s\n", g_ModPath.c_str()); - CONMSG(" DLL Path: %s\n", g_BinPath.c_str()); - CONMSG(" Interface: ServerGameDLL%03d\n", g_GameDllVersion); - - // Display user messages - if (g_SmmAPI.MsgCacheSuccessful()) - { - const char *msgname; - int msgsize; - int msgcount = g_SmmAPI.GetUserMessageCount(); - - if (msgcount > 0) - { - CONMSG(" User Messages: %-32.31s %-5s %-5s\n", "Name", "Index", "Size"); - - for (int i = 0; i < msgcount; i++) - { - msgname = g_SmmAPI.GetUserMessage(i, &msgsize); - - CONMSG(" %-32.31s %-5d %-5d\n", msgname, i, msgsize); - } - - CONMSG(" %d user message%s in total\n", msgcount, (msgcount > 1) ? "s" : ""); - } else { - CONMSG(" User Messages: None\n"); - } - } else { - CONMSG(" User Messages: Failed to get list of user messages\n"); - } - - return; - } else if (strcmp(command, "refresh") == 0) { - char full_path[255]; - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), GetPluginsFile()); - - LoadPluginsFromFile(full_path); - - return; - } else if (strcmp(command, "list") == 0) { - size_t len; - PluginIter i; - char buffer[255]; - ISmmPlugin *plapi; - const char *plname; - SourceMM::CPluginManager::CPlugin *pl; - unsigned int plnum = g_PluginMngr.GetPluginCount(); - -#define IS_STR_FILLED(var) (var != NULL && var[0] != '\0') - - if (!plnum) - { - CONMSG("No plugins loaded.\n"); - return; - } - else - { - CONMSG("Listing %d plugin%s:\n", plnum, (plnum > 1) ? "s" : ""); - } - - for (i=g_PluginMngr._begin(); i!=g_PluginMngr._end(); i++) - { - pl = (*i); - if (!pl) - { - break; - } - - len = 0; - - if (pl->m_Status != Pl_Running) - { - len += UTIL_Format(buffer, sizeof(buffer), " [%02d] <%s>", pl->m_Id, g_PluginMngr.GetStatusText(pl)); - } - else - { - len += UTIL_Format(buffer, sizeof(buffer), " [%02d]", pl->m_Id); - } - - if ((plapi = pl->m_API)) - { - plname = IS_STR_FILLED(plapi->GetName()) ? plapi->GetName() : pl->m_File.c_str(); - len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " %s", plname); - - if (IS_STR_FILLED(plapi->GetVersion())) - { - len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " (%s)", plapi->GetVersion()); - } - if (IS_STR_FILLED(plapi->GetAuthor())) - { - UTIL_Format(&buffer[len], sizeof(buffer)-len, " by %s", plapi->GetAuthor()); - } - } - - CONMSG("%s\n", buffer); - } - - return; - } else if (strcmp(command, "cmds") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - SourceMM::CPluginManager::CPlugin *pl = g_PluginMngr.FindById(id); - - if (!pl) - { - CONMSG("Plugin %d not found.\n", id); - return; - } - - if (!pl->m_API) - { - CONMSG("Plugin %d is not loaded.\n", id); - } else { - CONMSG("Console commands for %s:\n", pl->m_API->GetName()); - SourceHook::List::iterator ci; - size_t count = 0; - - for (ci=pl->m_Cmds.begin(); ci!=pl->m_Cmds.end(); ci++) - { - count++; - CONMSG(" [%5d] %-s\n", count, (*ci)->GetName()); - } - } - } else { - CONMSG("Usage: meta cmds \n"); - } - - return; - } else if (strcmp(command, "cvars") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - SourceMM::CPluginManager::CPlugin *pl = g_PluginMngr.FindById(id); - - if (!pl) - { - CONMSG("Plugin %d not found.\n", id); - return; - } - - if (!pl->m_API) - { - CONMSG("Plugin %d is not loaded.\n", id); - } else { - CONMSG("Registered cvars for %s:\n", pl->m_API->GetName()); - SourceHook::List::iterator ci; - size_t count = 0; - - for (ci=pl->m_Cvars.begin(); ci!=pl->m_Cvars.end(); ci++) - { - count++; - CONMSG(" [%5d] %-s\n", count, (*ci)->GetName()); - } - } - } else { - CONMSG("Usage: meta cvars \n"); - } - - return; - } else if (strcmp(command, "info") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - SourceMM::CPluginManager::CPlugin *pl = g_PluginMngr.FindById(id); - if (!pl) - { - CONMSG("Plugin %d not found.\n", id); - return; - } - - if (!pl->m_API) - { - CONMSG("Plugin %d is not loaded.\n", id); - } else { - if (pl->m_Status == Pl_Paused) - { - CONMSG("Plugin %d is paused.\n", id); - } else if (pl->m_Status == Pl_Running) { - char run_msg[255]; - bool run = false; - if (pl->m_API && pl->m_API->QueryRunning(run_msg, sizeof(run_msg)-1)) - run = true; - if (run) - { - CONMSG("Plugin %d is running.\n", id); - } else { - CONMSG("Plugin %d is stopped: %s\n", id, run_msg); - } - } - CONMSG(" Name: \"%s\" by %s\n", pl->m_API->GetName(), pl->m_API->GetAuthor()); - CONMSG(" Version: %s\n", pl->m_API->GetVersion()); - CONMSG(" Description: %s\n", pl->m_API->GetDescription()); - CONMSG(" License: %s\n", pl->m_API->GetLicense()); - CONMSG(" URL: %s\n", pl->m_API->GetURL()); - CONMSG(" Details: API %03d, Date: %s\n", pl->m_API->GetApiVersion(), pl->m_API->GetDate()); - } - CONMSG("File: %s\n\n", pl->m_File.c_str()); - - return; - } else { - CONMSG("Usage: meta info \n"); - - return; - } - } else if (strcmp(command, "pause") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - - char error[255]; - - if (!g_PluginMngr.Pause(id, error, sizeof(error))) - { - CONMSG("Pause failed: %s\n", error); - return; - } - - CONMSG("Plugin %d has been paused.\n", id); - - return; - } else { - CONMSG("Usage: meta pause \n"); - - return; - } - } else if (strcmp(command, "unpause") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - char error[255]; - - if (!g_PluginMngr.Unpause(id, error, sizeof(error))) - { - CONMSG("Unpause failed: %s\n", error); - return; - } - - CONMSG("Plugin %d has been unpaused.\n", id); - - return; - } else { - CONMSG("Usage: meta unpause \n"); - - return; - } - } else if (strcmp(command, "load") == 0) { - if (args >= 3) - { - const char *file = e->Cmd_Argv(2); - char full_path[255]; - - const char *alias = g_PluginMngr.LookupAlias(file); - if (alias) - { - file = alias; - } - - if (file[0] == '/' || strcmp(&(file[1]), ":\\") == 0) - { - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s", file); - } else { - const char *ext = UTIL_GetExtension(file); -#if defined WIN32 || defined _WIN32 - ext = ext ? "" : ".dll"; -#else - ext = ext ? "" : "_i486.so"; -#endif - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s%s", g_ModPath.c_str(), file, ext); - } - - char error[255]={0}; - bool already; - SourceMM::CPluginManager::CPlugin *pl; - - PluginId id = g_PluginMngr.Load(full_path, Pl_Console, already, error, sizeof(error)); - pl = g_PluginMngr.FindById(id); - if (!pl || id < Pl_MinId || (pl->m_Status < Pl_Paused)) - { - CONMSG("Failed to load plugin %s (%s).\n", file, error); - return; - } - - if (!already) - { - CONMSG("Plugin \"%s\" loaded with id %d.\n", pl->m_API->GetName(), pl->m_Id); - } else { - CONMSG("Plugin \"%s\" is already loaded as %d.\n", pl->m_API->GetName(), pl->m_Id); - } - - return; - } else { - CONMSG("Usage: meta load \n"); - - return; - } - } else if ( (strcmp(command, "alias") == 0) || - (strcmp(command, "aliases") == 0) ) { - if (args >= 4) - { - const char *alias = e->Cmd_Argv(2); - const char *value = e->Cmd_Argv(3); - - g_PluginMngr.SetAlias(alias, value); - if (value[0] == '\0') - { - CONMSG("Deleted alias: %s.\n", alias); - } else { - CONMSG("Set alias \"%s\" to: %s\n", alias, value); - } - } else if (args >= 3) { - const char *alias = e->Cmd_Argv(2); - const char *value = g_PluginMngr.LookupAlias(alias); - if (value) - { - CONMSG("Alias \"%s\" is set to: %s\n", alias, value); - } else { - CONMSG("Alias \"%s\" was not found.\n", alias); - } - } else { - SourceHook::List::iterator iter, end; - SourceMM::CNameAlias *p; - - iter = g_PluginMngr._alias_begin(); - end = g_PluginMngr._alias_end(); - size_t total = 0; - if (iter != end) - { - CONMSG("%-10.9s %s\n", "Alias", "File"); - CONMSG(" --- \n"); - for (; iter!=end; iter++) - { - p = (*iter); - CONMSG("%-10.9s %s\n", p->alias.c_str(), p->value.c_str()); - total++; - } - CONMSG(" --- \n"); - CONMSG("%d aliases total.\n", total); - } else { - CONMSG("No aliases found.\n"); - } - } - return; - } else if (strcmp(command, "unload") == 0) { - if (args >= 3) - { - const char *file = e->Cmd_Argv(2); - int id = atoi(file); - char error[255]={0}; - - if (id == 0 && isalpha(file[0])) - { - char full_path[255]; - const char *alias = g_PluginMngr.LookupAlias(file); - - if (alias) - { - file = alias; - } - - /* first check if it's a known filename */ - if (file[0] == '/' || strcmp(&(file[1]), ":\\") == 0) - { - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s", file); - } else { - const char *ext = UTIL_GetExtension(file); -#if defined WIN32 || defined _WIN32 - ext = ext ? "" : ".dll"; -#else - ext = ext ? "" : "_i486.so"; -#endif - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s%s", g_ModPath.c_str(), file, ext); - } - - SourceHook::List::iterator iter, end; - SourceMM::CPluginManager::CPlugin *pl; - iter = g_PluginMngr._begin(); - end = g_PluginMngr._end(); - for (; iter!=end; iter++) - { - pl = (*iter); - if (strcmp(pl->m_File.c_str(), full_path) == 0) - { - id = pl->m_Id; - break; - } - } - if (id == 0) - { - CONMSG("Plugin \"%s\" not found.\n", full_path); - return; - } - } - - if (!g_PluginMngr.Unload(id, false, error, sizeof(error))) - { - CONMSG("Unload failed: %s\n", error); - return; - } - - CONMSG("Plugin %d unloaded.\n", id); - } else { - CONMSG("Usage: meta unload \n"); - } - return; - } else if (strcmp(command, "force_unload") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - char error[255]={0}; - - if (!g_PluginMngr.Unload(id, false, error, sizeof(error))) - { - CONMSG("Force unload failed: %s\n", error); - return; - } - - CONMSG("Plugin %d force unloaded.\n", id); - - return; - } else { - CONMSG("Usage: meta force_unload \n"); - - return; - } - } else if (strcmp(command, "clear") == 0) { - if (!g_PluginMngr.UnloadAll()) - { - CONMSG("One or more plugins resisted removal (cleaned anyway).\n"); - return; - } - - CONMSG("All plugins unloaded.\n"); - - return; - } else if (strcmp(command, "retry") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - char error[255]; - - if (!g_PluginMngr.Retry(id, error, sizeof(error))) - { - CONMSG("Error reloading plugin: %s\n", error); - return; - } - - CONMSG("Plugin %d successfully reloaded.\n", id); - - return; - } else { - CONMSG("Usage: meta retry \n"); - - return; - } - } - } - - CONMSG("Metamod:Source Menu\n"); - CONMSG("usage: meta [arguments]\n"); - CONMSG(" alias - List or set an alias\n"); - CONMSG(" clear - Unload all plugins forcefully\n"); - CONMSG(" cmds - Show plugin commands\n"); - CONMSG(" cvars - Show plugin cvars\n"); - CONMSG(" credits - About Metamod:Source\n"); - CONMSG(" force_unload - Forcefully unload a plugin\n"); - CONMSG(" game - Information about GameDLL\n"); - CONMSG(" info - Information about a plugin\n"); - CONMSG(" list - List plugins\n"); - CONMSG(" load - Load a plugin\n"); - CONMSG(" pause - Pause a running plugin\n"); - CONMSG(" refresh - Reparse plugins file\n"); - CONMSG(" retry - Attempt to reload a plugin\n"); - CONMSG(" unload - Unload a loaded plugin\n"); - CONMSG(" unpause - Unpause a paused plugin\n"); - CONMSG(" version - Version information\n"); -} - -CAlwaysRegisterableCommand::CAlwaysRegisterableCommand() -{ - Create("", NULL, FCVAR_UNREGISTERED|FCVAR_GAMEDLL); - m_pICvar = NULL; -} - -bool CAlwaysRegisterableCommand::IsRegistered( void ) const -{ - return false; -} - -void CAlwaysRegisterableCommand::BringToFront() -{ - if (!m_pICvar) - m_pICvar = g_Engine.icvar; - - // First, let's try to find us! - ConCommandBase *pPtr = m_pICvar->GetCommands(); - - if (pPtr == this) - { - // We are already at the beginning; Nothing to do - return; - } - - while (pPtr) - { - if (pPtr == this && pPtr->IsCommand() && stricmp(GetName(), pPtr->GetName()) == 0) - break; - ConCommandBase *pPrev = NULL; - while (pPtr) - { - if (pPtr == this) - break; - pPrev = pPtr; - pPtr = const_cast(pPtr->GetNext()); - } - if (pPrev && pPtr == this) - { - pPrev->SetNext(m_pNext); // Remove us from the list - } - // Now, register us - SetNext(NULL); - m_pICvar->RegisterConCommandBase(this); - } -} - -void ClientCommand_handler(edict_t *client) -{ - IVEngineServer *e = g_Engine.engine; - const char *cmd = e->Cmd_Argv(0); - - if (strcmp(cmd, "meta") == 0) - { - int args = e->Cmd_Argc(); - if (args == 2) - { - const char *subcmd = e->Cmd_Argv(1); - - if (strcmp(subcmd, "credits") == 0) - { - CLIENT_CONMSG(client, "Metamod:Source was developed by:\n"); - CLIENT_CONMSG(client, " SourceHook: Pavol \"PM OnoTo\" Marko\n"); - CLIENT_CONMSG(client, " Core: David \"BAILOPAN\" Anderson\n"); - CLIENT_CONMSG(client, " Core: Scott \"Damaged Soul\" Ehlert\n"); - CLIENT_CONMSG(client, "For more information, see the official website\n"); - CLIENT_CONMSG(client, "http://www.metamodsource.net/\n"); - - RETURN_META(MRES_SUPERCEDE); - } else if(strcmp(subcmd, "version") == 0) { - CLIENT_CONMSG(client, "Metamod:Source version %s\n", SOURCEMM_VERSION); - CLIENT_CONMSG(client, "Compiled on: %s\n", SOURCEMM_DATE); - CLIENT_CONMSG(client, "Plugin interface version: %d:%d\n", PLAPI_VERSION, PLAPI_MIN_VERSION); - CLIENT_CONMSG(client, "SourceHook version: %d:%d\n", g_SourceHook.GetIfaceVersion(), g_SourceHook.GetImplVersion()); - CLIENT_CONMSG(client, "http://www.metamodsource.net/\n"); - - RETURN_META(MRES_SUPERCEDE); - } else if(strcmp(subcmd, "list") == 0) { - SourceMM::CPluginManager::CPlugin *pl; - ISmmPlugin *plapi; - const char *plname; - PluginIter i; - char buffer[256]; - int len = 0; - int plnum = 0; - - for (i = g_PluginMngr._begin(); i != g_PluginMngr._end(); i++, len=0) - { - pl = (*i); - if (pl && pl->m_Status == Pl_Running) - { - plapi = pl->m_API; - if (!plapi || !plapi->QueryRunning(NULL, 0)) - { - continue; - } - plnum++; - - len += UTIL_Format(buffer, sizeof(buffer), " [%02d]", plnum); - - plname = IS_STR_FILLED(plapi->GetName()) ? plapi->GetName() : pl->m_File.c_str(); - len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " %s", plname); - - if (IS_STR_FILLED(plapi->GetVersion())) - { - len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " (%s)", plapi->GetVersion()); - } - if (IS_STR_FILLED(plapi->GetAuthor())) - { - UTIL_Format(&buffer[len], sizeof(buffer)-len, " by %s", plapi->GetAuthor()); - } - - CLIENT_CONMSG(client, "%s\n", buffer); - } - } - - if (!plnum) - { - CLIENT_CONMSG(client, "No active plugins loaded.\n"); - } - - RETURN_META(MRES_SUPERCEDE); - } - } - - CLIENT_CONMSG(client, "Metamod:Source Menu\n"); - CLIENT_CONMSG(client, "usage: meta \n"); - CLIENT_CONMSG(client, " credits - About Metamod:Source\n"); - CLIENT_CONMSG(client, " list - List plugins\n"); - CLIENT_CONMSG(client, " version - Version information\n"); - - RETURN_META(MRES_SUPERCEDE); - } - - RETURN_META(MRES_IGNORED); -} - -void SMConVarAccessor::UnloadMetamodCommands() -{ - Unregister(&metamod_version); - Unregister(&mm_pluginsfile); - Unregister(&mm_basedir); - Unregister(&meta_command); -} - -const char *GetPluginsFile() -{ - return mm_pluginsfile.GetString(); -} - -const char *GetMetamodBaseDir() -{ - return mm_basedir.GetString(); -} diff --git a/sourcemm/concommands.h b/sourcemm/concommands.h deleted file mode 100644 index 6256186..0000000 --- a/sourcemm/concommands.h +++ /dev/null @@ -1,55 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_CONCOMMANDS_H -#define _INCLUDE_CONCOMMANDS_H - -/** - * @brief Header for console commands - * @file concommands.h - */ - -#include -#include -#include "sourcemm.h" -#include "convar_smm.h" -#include "sh_list.h" - -class SMConVarAccessor : public IConCommandBaseAccessor -{ - SourceHook::List m_RegisteredCommands; -public: - virtual bool RegisterConCommandBase(ConCommandBase *pCommand); - bool Register(ConCommandBase *pCommand); - void MarkCommandsAsGameDLL(); - void Unregister(ConCommandBase *pCommand); - void UnregisterGameDLLCommands(); - void UnloadMetamodCommands(); -}; - -class CAlwaysRegisterableCommand : public ConCommandBase -{ - ICvar *m_pICvar; -public: - CAlwaysRegisterableCommand(); - bool IsRegistered( void ) const; - // If already registered, removes us - // Then it registers us again - void BringToFront(); -}; - -void ClientCommand_handler(edict_t *client); - -const char *GetPluginsFile(); -const char *GetMetamodBaseDir(); - -extern SMConVarAccessor g_SMConVarAccessor; - -#endif //_INCLUDE_CONCOMMANDS_H diff --git a/sourcemm/convar_smm.h b/sourcemm/convar_smm.h deleted file mode 100644 index 26abce9..0000000 --- a/sourcemm/convar_smm.h +++ /dev/null @@ -1,523 +0,0 @@ -//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// -// -// Purpose: -// -// $Workfile: $ -// $Date$ -// -//----------------------------------------------------------------------------- -// $NoKeywords: $ -//=============================================================================// - -#ifndef CONVAR_H -#define CONVAR_H -#if _WIN32 -#pragma once -#endif - -#include "tier0/dbg.h" - -#ifdef _WIN32 -#define FORCEINLINE_CVAR FORCEINLINE -#elif _LINUX -#define FORCEINLINE_CVAR __inline__ FORCEINLINE -#else -#error "implement me" -#endif - -// The default, no flags at all -#define FCVAR_NONE 0 - -// Command to ConVars and ConCommands -// ConVar Systems -#define FCVAR_UNREGISTERED (1<<0) // If this is set, don't add to linked list, etc. -#define FCVAR_LAUNCHER (1<<1) // defined by launcher -#define FCVAR_GAMEDLL (1<<2) // defined by the game DLL -#define FCVAR_CLIENTDLL (1<<3) // defined by the client DLL -#define FCVAR_MATERIAL_SYSTEM (1<<4) // Defined by the material system. -#define FCVAR_DATACACHE (1<<19) // Defined by the datacache system. -#define FCVAR_STUDIORENDER (1<<15) // Defined by the studiorender system. -#define FCVAR_FILESYSTEM (1<<21) // Defined by the file system. -#define FCVAR_PLUGIN (1<<18) // Defined by a 3rd party plugin. -#define FCVAR_TOOLSYSTEM (1<<20) // Defined by an IToolSystem library -#define FCVAR_SOUNDSYSTEM (1<<23) // Defined by the soundsystem library -#define FCVAR_INPUTSYSTEM (1<<25) // Defined by the inputsystem dll -#define FCVAR_NETWORKSYSTEM (1<<26) // Defined by the network system -// NOTE!! if you add a cvar system, add it here too!!!! -// the engine lacks a cvar flag, but needs it for xbox -// an engine cvar is thus a cvar not marked with any other system -#define FCVAR_NON_ENGINE ((FCVAR_LAUNCHER|FCVAR_GAMEDLL|FCVAR_CLIENTDLL|FCVAR_MATERIAL_SYSTEM|FCVAR_DATACACHE|FCVAR_STUDIORENDER|FCVAR_FILESYSTEM|FCVAR_PLUGIN|FCVAR_TOOLSYSTEM|FCVAR_SOUNDSYSTEM|FCVAR_INPUTSYSTEM|FCVAR_NETWORKSYSTEM)) - -// ConVar only -#define FCVAR_PROTECTED (1<<5) // It's a server cvar, but we don't send the data since it's a password, etc. Sends 1 if it's not bland/zero, 0 otherwise as value -#define FCVAR_SPONLY (1<<6) // This cvar cannot be changed by clients connected to a multiplayer server. -#define FCVAR_ARCHIVE (1<<7) // set to cause it to be saved to vars.rc -#define FCVAR_NOTIFY (1<<8) // notifies players when changed -#define FCVAR_USERINFO (1<<9) // changes the client's info string -#define FCVAR_CHEAT (1<<14) // Only useable in singleplayer / debug / multiplayer & sv_cheats - -#define FCVAR_PRINTABLEONLY (1<<10) // This cvar's string cannot contain unprintable characters ( e.g., used for player name etc ). -#define FCVAR_UNLOGGED (1<<11) // If this is a FCVAR_SERVER, don't log changes to the log file / console if we are creating a log -#define FCVAR_NEVER_AS_STRING (1<<12) // never try to print that cvar - -// It's a ConVar that's shared between the client and the server. -// At signon, the values of all such ConVars are sent from the server to the client (skipped for local -// client, of course ) -// If a change is requested it must come from the console (i.e., no remote client changes) -// If a value is changed while a server is active, it's replicated to all connected clients -#define FCVAR_REPLICATED (1<<13) // server setting enforced on clients, TODO rename to FCAR_SERVER at some time -#define FCVAR_DEMO (1<<16) // record this cvar when starting a demo file -#define FCVAR_DONTRECORD (1<<17) // don't record these command in demofiles - -#define FCVAR_NOT_CONNECTED (1<<22) // cvar cannot be changed by a client that is connected to a server - -#define FCVAR_ARCHIVE_XBOX (1<<24) // cvar written to config.cfg on the Xbox - - -// #define FCVAR_AVAILABLE (1<<27) -// #define FCVAR_AVAILABLE (1<<28) -// #define FCVAR_AVAILABLE (1<<29) -// #define FCVAR_AVAILABLE (1<<30) -// #define FCVAR_AVAILABLE (1<<31) - - -class ConVar; -class ConCommand; -class ConCommandBase; - -// Any executable that wants to use ConVars need to implement one of -// these to hook up access to console variables. -class IConCommandBaseAccessor -{ -public: - // Flags is a combination of FCVAR flags in cvar.h. - // hOut is filled in with a handle to the variable. - virtual bool RegisterConCommandBase( ConCommandBase *pVar )=0; -}; - - -// You don't have to instantiate one of these, just call its -// OneTimeInit function when your executable is initializing. -class ConCommandBaseMgr -{ -public: - // Call this ONCE when the executable starts up. - static void OneTimeInit( IConCommandBaseAccessor *pAccessor ); -#ifdef _XBOX - static bool Fixup( ConCommandBase* pConCommandBase ); -#ifndef _RETAIL - static void PublishCommands( bool bForce ); -#endif -#endif -}; - -// Called when a ConVar changes value -typedef void ( *FnChangeCallback )( ConVar *var, char const *pOldString ); - -// Called when a ConCommand needs to execute -typedef void ( *FnCommandCallback )( void ); - -#define COMMAND_COMPLETION_MAXITEMS 64 -#define COMMAND_COMPLETION_ITEM_LENGTH 64 - -// Returns 0 to COMMAND_COMPLETION_MAXITEMS worth of completion strings -typedef int ( *FnCommandCompletionCallback )( char const *partial, char commands[ COMMAND_COMPLETION_MAXITEMS ][ COMMAND_COMPLETION_ITEM_LENGTH ] ); - -//----------------------------------------------------------------------------- -// Purpose: The base console invoked command/cvar interface -//----------------------------------------------------------------------------- -class ConCommandBase -{ - friend class ConCommandBaseMgr; - friend class CCvar; - friend class ConVar; - friend class ConCommand; - -public: - ConCommandBase( void ); - ConCommandBase( char const *pName, char const *pHelpString = 0, - int flags = 0 ); - - virtual ~ConCommandBase( void ); - - virtual bool IsCommand( void ) const; - - // Check flag - virtual bool IsBitSet( int flag ) const; - // Set flag - virtual void AddFlags( int flags ); - - // Return name of cvar - virtual char const *GetName( void ) const; - - // Return help text for cvar - virtual char const *GetHelpText( void ) const; - - // Deal with next pointer - const ConCommandBase *GetNext( void ) const; - void SetNext( ConCommandBase *next ); - - virtual bool IsRegistered( void ) const; - - // Global methods - static ConCommandBase const *GetCommands( void ); - static void AddToList( ConCommandBase *var ); - static void RemoveFlaggedCommands( int flag ); - static void RevertFlaggedCvars( int flag ); - static ConCommandBase const *FindCommand( char const *name ); - -protected: - virtual void Create( char const *pName, char const *pHelpString = 0, - int flags = 0 ); - - // Used internally by OneTimeInit to initialize. - virtual void Init(); - - // Internal copy routine ( uses new operator from correct module ) - char *CopyString( char const *from ); - - // Next ConVar in chain - ConCommandBase *m_pNext; - -private: - // Has the cvar been added to the global list? - bool m_bRegistered; - - // Static data - char const *m_pszName; - char const *m_pszHelpString; - - // ConVar flags - int m_nFlags; - -protected: - - // ConVars add themselves to this list for the executable. Then ConVarMgr::Init() runs through - // all the console variables and registers them. - static ConCommandBase *s_pConCommandBases; - - // ConVars in this executable use this 'global' to access values. - static IConCommandBaseAccessor *s_pAccessor; -}; - -//----------------------------------------------------------------------------- -// Purpose: The console invoked command -//----------------------------------------------------------------------------- -class ConCommand : public ConCommandBase -{ -friend class ConCommandBaseMgr; -friend class CCvar; -#ifdef _STATIC_LINKED -friend class G_ConCommand; -friend class C_ConCommand; -friend class M_ConCommand; -friend class S_ConCommand; -friend class D_ConCommand; -#endif - -public: - typedef ConCommandBase BaseClass; - - ConCommand( void ); - ConCommand( char const *pName, FnCommandCallback callback, - char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ); - - virtual ~ConCommand( void ); - - virtual bool IsCommand( void ) const; - - virtual int AutoCompleteSuggest( char const *partial, char commands[ COMMAND_COMPLETION_MAXITEMS ][ COMMAND_COMPLETION_ITEM_LENGTH ] ); - - virtual bool CanAutoComplete( void ); - - // Invoke the function - virtual void Dispatch( void ); -private: - virtual void Create( char const *pName, FnCommandCallback callback, - char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ); - - // Call this function when executing the command - FnCommandCallback m_fnCommandCallback; - - FnCommandCompletionCallback m_fnCompletionCallback; - bool m_bHasCompletionCallback; -public: - FnCommandCallback GetCallback() { return m_fnCommandCallback; } -}; - -//----------------------------------------------------------------------------- -// Purpose: A console variable -//----------------------------------------------------------------------------- -class ConVar : public ConCommandBase -{ -friend class ConCommandBaseMgr; -friend class CCvar; -friend class CDefaultCvar; -#ifdef _STATIC_LINKED -friend class G_ConVar; -friend class C_ConVar; -friend class M_ConVar; -friend class S_ConVar; -friend class D_ConVar; -#endif - -public: - typedef ConCommandBase BaseClass; - - ConVar( char const *pName, char const *pDefaultValue, int flags = 0); - - ConVar( char const *pName, char const *pDefaultValue, int flags, - char const *pHelpString ); - ConVar( char const *pName, char const *pDefaultValue, int flags, - char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ); - ConVar( char const *pName, char const *pDefaultValue, int flags, - char const *pHelpString, FnChangeCallback callback ); - ConVar( char const *pName, char const *pDefaultValue, int flags, - char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, - FnChangeCallback callback ); - - virtual ~ConVar( void ); - - virtual bool IsBitSet( int flag ) const; - virtual char const* GetHelpText( void ) const; - virtual bool IsRegistered( void ) const; - virtual char const *GetName( void ) const; - virtual void AddFlags( int flags ); - virtual bool IsCommand( void ) const; - - // Install a change callback (there shouldn't already be one....) - void InstallChangeCallback( FnChangeCallback callback ); - - // Retrieve value - FORCEINLINE_CVAR float GetFloat( void ) const; - FORCEINLINE_CVAR int GetInt( void ) const; - FORCEINLINE_CVAR bool GetBool() const { return !!GetInt(); } - FORCEINLINE_CVAR char const *GetString( void ) const; - - // Any function that allocates/frees memory needs to be virtual or else you'll have crashes - // from alloc/free across dll/exe boundaries. - - // These just call into the IConCommandBaseAccessor to check flags and set the var (which ends up calling InternalSetValue). - virtual void SetValue( char const *value ); - virtual void SetValue( float value ); - virtual void SetValue( int value ); - - // Reset to default value - void Revert( void ); - - // True if it has a min/max setting - bool GetMin( float& minVal ) const; - bool GetMax( float& maxVal ) const; - char const *GetDefault( void ) const; - - static void RevertAll( void ); -private: - // Called by CCvar when the value of a var is changing. - virtual void InternalSetValue(char const *value); - // For CVARs marked FCVAR_NEVER_AS_STRING - virtual void InternalSetFloatValue( float fNewValue ); - virtual void InternalSetIntValue( int nValue ); - - virtual bool ClampValue( float& value ); - virtual void ChangeStringValue( char const *tempVal ); - - virtual void Create( char const *pName, char const *pDefaultValue, int flags = 0, - char const *pHelpString = 0, bool bMin = false, float fMin = 0.0, - bool bMax = false, float fMax = false, FnChangeCallback callback = 0 ); - - // Used internally by OneTimeInit to initialize. - virtual void Init(); - -private: - - // This either points to "this" or it points to the original declaration of a ConVar. - // This allows ConVars to exist in separate modules, and they all use the first one to be declared. - // m_pParent->m_pParent must equal m_pParent (ie: m_pParent must be the root, or original, ConVar). - ConVar *m_pParent; - - // Static data - char const *m_pszDefaultValue; - - // Value - // Dynamically allocated - char *m_pszString; - int m_StringLength; - - // Values - float m_fValue; - int m_nValue; - - // Min/Max values - bool m_bHasMin; - float m_fMinVal; - bool m_bHasMax; - float m_fMaxVal; - - // Call this function when ConVar changes - FnChangeCallback m_fnChangeCallback; -}; - - -//----------------------------------------------------------------------------- -// Purpose: Return ConVar value as a float -// Output : float -//----------------------------------------------------------------------------- -FORCEINLINE_CVAR float ConVar::GetFloat( void ) const -{ - return m_pParent->m_fValue; -} - -//----------------------------------------------------------------------------- -// Purpose: Return ConVar value as an int -// Output : int -//----------------------------------------------------------------------------- -FORCEINLINE_CVAR int ConVar::GetInt( void ) const -{ - return m_pParent->m_nValue; -} - - -//----------------------------------------------------------------------------- -// Purpose: Return ConVar value as a string, return "" for bogus string pointer, etc. -// Output : char const * -//----------------------------------------------------------------------------- -FORCEINLINE_CVAR char const *ConVar::GetString( void ) const -{ - if ( m_nFlags & FCVAR_NEVER_AS_STRING ) - { - return "FCVAR_NEVER_AS_STRING"; - } - - return ( m_pParent->m_pszString ) ? m_pParent->m_pszString : ""; -} - - -#ifdef _STATIC_LINKED -// identifies subsystem via piggybacking constructors with flags -class G_ConCommand : public ConCommand -{ -public: - G_ConCommand(char const *pName, FnCommandCallback callback, char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ) : ConCommand(pName, callback, pHelpString, flags|FCVAR_GAMEDLL, completionFunc) {} -}; - -class C_ConCommand : public ConCommand -{ -public: - C_ConCommand(char const *pName, FnCommandCallback callback, char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ) : ConCommand(pName, callback, pHelpString, flags|FCVAR_CLIENTDLL, completionFunc) {} -}; - -class M_ConCommand : public ConCommand -{ -public: - M_ConCommand(char const *pName, FnCommandCallback callback, char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ) : ConCommand(pName, callback, pHelpString, flags|FCVAR_MATERIAL_SYSTEM, completionFunc) {} -}; - -class S_ConCommand : public ConCommand -{ -public: - S_ConCommand(char const *pName, FnCommandCallback callback, char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ) : ConCommand(pName, callback, pHelpString, flags|FCVAR_STUDIORENDER, completionFunc) {} -}; - -class D_ConCommand : public ConCommand -{ -public: - D_ConCommand(char const *pName, FnCommandCallback callback, char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ) : ConCommand(pName, callback, pHelpString, flags|FCVAR_DATACACHE, completionFunc) {} -}; - -typedef void ( *G_FnChangeCallback )( G_ConVar *var, char const *pOldString ); -typedef void ( *C_FnChangeCallback )( C_ConVar *var, char const *pOldString ); -typedef void ( *M_FnChangeCallback )( M_ConVar *var, char const *pOldString ); -typedef void ( *S_FnChangeCallback )( S_ConVar *var, char const *pOldString ); -typedef void ( *D_FnChangeCallback )( D_ConVar *var, char const *pOldString ); - -class G_ConVar : public ConVar -{ -public: - G_ConVar( char const *pName, char const *pDefaultValue, int flags = 0) : ConVar(pName, pDefaultValue, flags|FCVAR_GAMEDLL) {} - G_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString ) : ConVar(pName, pDefaultValue, flags|FCVAR_GAMEDLL, pHelpString ) {} - G_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ) : ConVar(pName, pDefaultValue, flags|FCVAR_GAMEDLL, pHelpString, bMin, fMin, bMax, fMax) {} - G_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, G_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_GAMEDLL, pHelpString, (FnChangeCallback)callback ) {} - G_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, G_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_GAMEDLL, pHelpString, bMin, fMin, bMax, fMax, (FnChangeCallback)callback ) {} -}; - -class C_ConVar : public ConVar -{ -public: - C_ConVar( char const *pName, char const *pDefaultValue, int flags = 0) : ConVar(pName, pDefaultValue, flags|FCVAR_CLIENTDLL) {} - C_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString ) : ConVar(pName, pDefaultValue, flags|FCVAR_CLIENTDLL, pHelpString ) {} - C_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ) : ConVar(pName, pDefaultValue, flags|FCVAR_CLIENTDLL, pHelpString, bMin, fMin, bMax, fMax) {} - C_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, C_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_CLIENTDLL, pHelpString, (FnChangeCallback)callback ) {} - C_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, C_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_CLIENTDLL, pHelpString, bMin, fMin, bMax, fMax, (FnChangeCallback)callback ) {} -}; - -class M_ConVar : public ConVar -{ -public: - M_ConVar( char const *pName, char const *pDefaultValue, int flags = 0) : ConVar(pName, pDefaultValue, flags|FCVAR_MATERIAL_SYSTEM) {} - M_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString ) : ConVar(pName, pDefaultValue, flags|FCVAR_MATERIAL_SYSTEM, pHelpString ) {} - M_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ) : ConVar(pName, pDefaultValue, flags|FCVAR_MATERIAL_SYSTEM, pHelpString, bMin, fMin, bMax, fMax) {} - M_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, M_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_MATERIAL_SYSTEM, pHelpString, (FnChangeCallback)callback ) {} - M_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, M_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_MATERIAL_SYSTEM, pHelpString, bMin, fMin, bMax, fMax, (FnChangeCallback)callback ) {} -}; - -class S_ConVar : public ConVar -{ -public: - S_ConVar( char const *pName, char const *pDefaultValue, int flags = 0) : ConVar(pName, pDefaultValue, flags|FCVAR_STUDIORENDER) {} - S_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString ) : ConVar(pName, pDefaultValue, flags|FCVAR_STUDIORENDER, pHelpString ) {} - S_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ) : ConVar(pName, pDefaultValue, flags|FCVAR_STUDIORENDER, pHelpString, bMin, fMin, bMax, fMax) {} - S_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, M_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_STUDIORENDER, pHelpString, (FnChangeCallback)callback ) {} - S_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, S_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_STUDIORENDER, pHelpString, bMin, fMin, bMax, fMax, (FnChangeCallback)callback ) {} -}; - -class D_ConVar : public ConVar -{ -public: - D_ConVar( char const *pName, char const *pDefaultValue, int flags = 0) : ConVar(pName, pDefaultValue, flags|FCVAR_DATACACHE) {} - D_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString ) : ConVar(pName, pDefaultValue, flags|FCVAR_DATACACHE, pHelpString ) {} - D_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ) : ConVar(pName, pDefaultValue, flags|FCVAR_DATACACHE, pHelpString, bMin, fMin, bMax, fMax) {} - D_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, M_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_DATACACHE, pHelpString, (FnChangeCallback)callback ) {} - D_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, D_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_DATACACHE, pHelpString, bMin, fMin, bMax, fMax, (FnChangeCallback)callback ) {} -}; - -// redirect these declarations to their specific subsystem -#ifdef GAME_DLL -#define ConCommand G_ConCommand -#define ConVar G_ConVar -#endif -#ifdef CLIENT_DLL -#define ConCommand C_ConCommand -#define ConVar C_ConVar -#endif -#ifdef MATERIALSYSTEM_DLL -#define ConCommand M_ConCommand -#define ConVar M_ConVar -#endif -#ifdef STUDIORENDER_DLL -#define ConCommand S_ConCommand -#define ConVar S_ConVar -#endif -#ifdef DATACACHE_DLL -#define ConCommand D_ConCommand -#define ConVar D_ConVar -#endif -#endif // _STATIC_LINKED - -//----------------------------------------------------------------------------- -// Purpose: Utility to quicky generate a simple console command -//----------------------------------------------------------------------------- -#define CON_COMMAND( name, description ) \ - static void name(); \ - static ConCommand name##_command( #name, name, description ); \ - static void name() - -//----------------------------------------------------------------------------- -// Purpose: Utility to quicky generate a simple console command -//----------------------------------------------------------------------------- -#define CON_COMMAND_F( name, description, flags ) \ - static void name(); \ - static ConCommand name##_command( #name, name, description, flags ); \ - static void name() - - -#endif // CONVAR_H diff --git a/sourcemm/msvc7/sourcemm.sln b/sourcemm/msvc7/sourcemm.sln deleted file mode 100644 index fa8eb75..0000000 --- a/sourcemm/msvc7/sourcemm.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sourcemm", "sourcemm.vcproj", "{F7D47743-73B3-49B5-9D76-2333C5DFD565}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug.ActiveCfg = Debug|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug.Build.0 = Debug|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release.ActiveCfg = Release|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/sourcemm/msvc7/sourcemm.vcproj b/sourcemm/msvc7/sourcemm.vcproj deleted file mode 100644 index 556c859..0000000 --- a/sourcemm/msvc7/sourcemm.vcproj +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/msvc8/sourcemm.sln b/sourcemm/msvc8/sourcemm.sln deleted file mode 100644 index b338452..0000000 --- a/sourcemm/msvc8/sourcemm.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sourcemm", "sourcemm.vcproj", "{F7D47743-73B3-49B5-9D76-2333C5DFD565}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug|Win32.ActiveCfg = Debug|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug|Win32.Build.0 = Debug|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release|Win32.ActiveCfg = Release|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/sourcemm/msvc8/sourcemm.vcproj b/sourcemm/msvc8/sourcemm.vcproj deleted file mode 100644 index 6430d55..0000000 --- a/sourcemm/msvc8/sourcemm.vcproj +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/oslink.cpp b/sourcemm/oslink.cpp deleted file mode 100644 index 9c8ec16..0000000 --- a/sourcemm/oslink.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -/** - * @brief Implements OS-dependant functions from oslink.h - * @file oslink.cpp - */ - -#include "oslink.h" -#ifdef __linux -#include -#endif -#include - -#if defined __WIN32__ || defined _WIN32 || defined WIN32 -const char *dlerror() -{ - static char buf[1024]; - DWORD num; - - num = GetLastError(); - - if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - num, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - buf, - sizeof(buf), - NULL) - == 0) - { - _snprintf(buf, sizeof(buf), "unknown error %x", num); - } - - return buf; -} -#endif - -#if defined __linux__ -int GetLastError() -{ - return errno; -} - -extern "C" void __cxa_guard_acquire(void) -{ -} - -extern "C" void __cxa_guard_release(void) -{ -} -#endif - -bool GetFileOfAddress(void *pAddr, char *buffer, size_t maxlength) -{ -#if defined WIN32 || defined _WIN32 - MEMORY_BASIC_INFORMATION mem; - if (!VirtualQuery(pAddr, &mem, sizeof(mem))) - return false; - if (mem.AllocationBase == NULL) - return false; - HMODULE dll = (HMODULE)mem.AllocationBase; - GetModuleFileName(dll, (LPTSTR)buffer, maxlength); -#elif defined __linux__ - Dl_info info; - if (!dladdr(pAddr, &info)) - return false; - if (!info.dli_fbase || !info.dli_fname) - return false; - const char *dllpath = info.dli_fname; - snprintf(buffer, maxlength, "%s", dllpath); -#endif - return true; -} diff --git a/sourcemm/oslink.h b/sourcemm/oslink.h deleted file mode 100644 index 7c317ed..0000000 --- a/sourcemm/oslink.h +++ /dev/null @@ -1,91 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_OSLINK_H -#define _INCLUDE_OSLINK_H - -/** - * @brief Defines OS-independent information - * @file oslink.h - */ - -#if defined __WIN32__ || defined _WIN32 || defined WIN32 - #define WIN32_LEAN_AND_MEAN - #define OS_WIN32 - #if defined _MSC_VER && _MSC_VER >= 1400 - #undef ARRAYSIZE - #else - #define mkdir(a) _mkdir(a) - #endif - #include - #include - #include - #define dlmount(x) LoadLibrary(x) - #define dlsym(x, s) GetProcAddress(x, s) - #define dlclose(x) FreeLibrary(x) - const char* dlerror(); - #define abspath(x, s) _fullpath(x, s, sizeof(x)) - #define PATH_SEP_STR "\\" - #define PATH_SEP_CHAR '\\' - #define ALT_SEP_CHAR '/' - #define PATH_SIZE MAX_PATH - #define SERVER_DLL "server.dll" -#elif defined __linux__ - #define OS_LINUX - #include - #include - #include - #include - typedef void* HINSTANCE; - #define dlmount(x) dlopen(x,RTLD_NOW) - #define abspath(x, s) realpath(s, x) - #define PATH_SEP_STR "/" - #define PATH_SEP_CHAR '/' - #define ALT_SEP_CHAR '\\' - #define PATH_SIZE PATH_MAX - #define stricmp strcasecmp - #define strnicmp strncasecmp - #define SERVER_DLL "server_i486.so" -#endif - -#if defined __linux__ - #include - int GetLastError(); -#endif - -bool GetFileOfAddress(void *pAddr, char *buffer, size_t maxlength); - -#if defined __WIN32__ || defined _WIN32 || defined WIN32 - #define SMM_API extern "C" __declspec(dllexport) -#elif defined __GNUC__ - #if (__GNUC__ == 4) - #define SMM_API extern "C" __attribute__ ((visibility("default"))) - #else - #define SMM_API extern "C" - #endif -#endif - -#if defined __WIN32__ || defined _WIN32 || defined WIN32 - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; -#elif defined __GNUC__ -#include -#if !__GLIBC_HAVE_LONG_LONG - typedef long long int64_t; - typedef unsigned long long uint64_t; -#endif -#endif - -#ifndef __linux__ - #define snprintf _snprintf - #define vsnprintf _vsnprintf -#endif - -#endif //_INCLUDE_OSLINK_H diff --git a/sourcemm/sample_mm/LICENSE.txt b/sourcemm/sample_mm/LICENSE.txt deleted file mode 100644 index bf9f1fd..0000000 --- a/sourcemm/sample_mm/LICENSE.txt +++ /dev/null @@ -1,29 +0,0 @@ -The software is Copyright (C) 2004-2007, Metamod:Source Development Team. - -Metamod:Source is distributed under the "zLib/libpng" license, which is reproduced -below: - ------------------------------------------------------------------------------ - -This software is provided "as-is", without any express or implied warranty. -In no event will the authors be held liable for any damages arising from -the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software in - a product, an acknowledgment in the product documentation would be - appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. - ------------------------------------------------------------------------------ - -The zLib/libpng license has been approved by the "Open Source Initiative" -organization. diff --git a/sourcemm/sample_mm/Makefile b/sourcemm/sample_mm/Makefile deleted file mode 100644 index 8d6f411..0000000 --- a/sourcemm/sample_mm/Makefile +++ /dev/null @@ -1,67 +0,0 @@ -#(C)2004-2007 SourceMM Development Team -# Makefile written by David "BAILOPAN" Anderson - -HL2SDK = ../../../hl2sdk -SMM_ROOT = ../.. -SRCDS = ~/srcds - -### EDIT BELOW FOR OTHER PROJECTS ### - -OPT_FLAGS = -O3 -funroll-loops -s -pipe -GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden -DEBUG_FLAGS = -g -ggdb3 -CPP = gcc-4.1 -BINARY = sample_mm_i486.so - -HL2PUB = $(HL2SDK)/public -HL2LIB = $(HL2SDK)/linux_sdk - -OBJECTS = SamplePlugin.cpp cvars.cpp - -LINK = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so -static-libgcc - -INCLUDE = -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ - -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_ROOT) -I$(SMM_ROOT)/sourcehook -I$(SMM_ROOT)/sourcemm - -ifeq "$(DEBUG)" "true" - BIN_DIR = Debug - CFLAGS = $(DEBUG_FLAGS) -else - BIN_DIR = Release - CFLAGS = $(OPT_FLAGS) -endif - -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) - -CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse - -ifeq "$(GCC_VERSION)" "4" - CFLAGS += $(GCC4_FLAGS) -endif - -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) - -$(BIN_DIR)/%.o: %.cpp - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< - -all: - mkdir -p $(BIN_DIR) - ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so - ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so - $(MAKE) sourcemm - rm -rf $(BINARY) - ln -sf $(BIN_DIR)/$(BINARY) $(BINARY) - -sourcemm: $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) - -debug: - $(MAKE) all DEBUG=true - -default: all - -clean: - rm -rf Release/*.o - rm -rf Release/$(BINARY) - rm -rf Debug/*.o - rm -rf Debug/$(BINARY) diff --git a/sourcemm/sample_mm/SamplePlugin.cpp b/sourcemm/sample_mm/SamplePlugin.cpp deleted file mode 100644 index 62c874e..0000000 --- a/sourcemm/sample_mm/SamplePlugin.cpp +++ /dev/null @@ -1,237 +0,0 @@ -/* ======== sample_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include -#include "SamplePlugin.h" -#include "cvars.h" - -//Declare the hooks we will be using in this file. Hooking will not compile without these. -//The macro naming scheme is SH_DECL_HOOKn[_void]. -//If you have 5 parameters, it would be HOOK5. If the function is void, add _void. -//It stands for "SourceHook, Declare Hook". -SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, 0, bool, char const *, char const *, char const *, char const *, bool, bool); -SH_DECL_HOOK3_void(IServerGameDLL, ServerActivate, SH_NOATTRIB, 0, edict_t *, int, int); -SH_DECL_HOOK1_void(IServerGameDLL, GameFrame, SH_NOATTRIB, 0, bool); -SH_DECL_HOOK0_void(IServerGameDLL, LevelShutdown, SH_NOATTRIB, 0); -SH_DECL_HOOK2_void(IServerGameClients, ClientActive, SH_NOATTRIB, 0, edict_t *, bool); -SH_DECL_HOOK1_void(IServerGameClients, ClientDisconnect, SH_NOATTRIB, 0, edict_t *); -SH_DECL_HOOK2_void(IServerGameClients, ClientPutInServer, SH_NOATTRIB, 0, edict_t *, char const *); -SH_DECL_HOOK1_void(IServerGameClients, SetCommandClient, SH_NOATTRIB, 0, int); -SH_DECL_HOOK1_void(IServerGameClients, ClientSettingsChanged, SH_NOATTRIB, 0, edict_t *); -SH_DECL_HOOK5(IServerGameClients, ClientConnect, SH_NOATTRIB, 0, bool, edict_t *, const char*, const char *, char *, int); -SH_DECL_HOOK1_void(IServerGameClients, ClientCommand, SH_NOATTRIB, 0, edict_t *); -SH_DECL_HOOK2(IGameEventManager2, FireEvent, SH_NOATTRIB, 0, bool, IGameEvent *, bool); - -SamplePlugin g_SamplePlugin; -MyListener g_Listener; - -PLUGIN_EXPOSE(SamplePlugin, g_SamplePlugin); - -bool SamplePlugin::LevelInit(const char *pMapName, const char *pMapEntities, const char *pOldLevel, const char *pLandmarkName, bool loadGame, bool background) -{ - META_LOG(g_PLAPI, "LevelInit() called: pMapName=%s", pMapName); - RETURN_META_VALUE(MRES_IGNORED, true); -} - -void SamplePlugin::OnLevelShutdown() -{ - META_LOG(g_PLAPI, "OnLevelShutdown() called from listener"); -} - -void SamplePlugin::ServerActivate(edict_t *pEdictList, int edictCount, int clientMax) -{ - META_LOG(g_PLAPI, "ServerActivate() called: edictCount=%d, clientMax=%d", edictCount, clientMax); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::GameFrame(bool simulating) -{ - //don't log this, it just pumps stuff to the screen ;] - //META_LOG(g_PLAPI, "GameFrame() called: simulating=%d", simulating); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::LevelShutdown( void ) -{ - META_LOG(g_PLAPI, "LevelShutdown() called"); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::ClientActive(edict_t *pEntity, bool bLoadGame) -{ - META_LOG(g_PLAPI, "ClientActive called: pEntity=%d", pEntity ? m_Engine->IndexOfEdict(pEntity) : 0); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::ClientDisconnect(edict_t *pEntity) -{ - META_LOG(g_PLAPI, "ClientDisconnect called: pEntity=%d", pEntity ? m_Engine->IndexOfEdict(pEntity) : 0); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::ClientPutInServer(edict_t *pEntity, char const *playername) -{ - META_LOG(g_PLAPI, "ClientPutInServer called: pEntity=%d, playername=%s", pEntity ? m_Engine->IndexOfEdict(pEntity) : 0, playername); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::SetCommandClient(int index) -{ - META_LOG(g_PLAPI, "SetCommandClient() called: index=%d", index); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::ClientSettingsChanged(edict_t *pEdict) -{ - META_LOG(g_PLAPI, "ClientSettingsChanged called: pEdict=%d", pEdict ? m_Engine->IndexOfEdict(pEdict) : 0); - RETURN_META(MRES_IGNORED); -} - -bool SamplePlugin::ClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen) -{ - META_LOG(g_PLAPI, "ClientConnect called: pEntity=%d, pszName=%s, pszAddress=%s", pEntity ? m_Engine->IndexOfEdict(pEntity) : 0, pszName, pszAddress); - RETURN_META_VALUE(MRES_IGNORED, true); -} - -void SamplePlugin::ClientCommand(edict_t *pEntity) -{ - META_LOG(g_PLAPI, "ClientCommand called: pEntity=%d (commandString=%s)", pEntity ? m_Engine->IndexOfEdict(pEntity) : 0, m_Engine->Cmd_Args() ? m_Engine->Cmd_Args() : ""); - RETURN_META(MRES_IGNORED); -} - -bool FireEvent_Handler(IGameEvent *event, bool bDontBroadcast) -{ - if (!event || !event->GetName()) - RETURN_META_VALUE(MRES_IGNORED, false); - - /** - * Note that this will only fire on game events that are already being listened to. - * For events that are not firing (such as item_pickup), you must actually - * register an event listener in the event manager. This hook is provided - * as an example for non-eiface hooks only. - */ - - const char *name = event->GetName(); - - META_LOG(g_PLAPI, "FireGameEvent called: name=%s", name); - - RETURN_META_VALUE(MRES_IGNORED, true); -} - -bool SamplePlugin::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late) -{ - PLUGIN_SAVEVARS(); - - GET_V_IFACE_ANY(serverFactory, m_ServerDll, IServerGameDLL, INTERFACEVERSION_SERVERGAMEDLL); - GET_V_IFACE_CURRENT(engineFactory, m_Engine, IVEngineServer, INTERFACEVERSION_VENGINESERVER); - GET_V_IFACE_ANY(serverFactory, m_ServerClients, IServerGameClients, INTERFACEVERSION_SERVERGAMECLIENTS); - GET_V_IFACE_CURRENT(engineFactory, m_GameEventManager, IGameEventManager2, INTERFACEVERSION_GAMEEVENTSMANAGER2); - - META_LOG(g_PLAPI, "Starting plugin.\n"); - - ismm->AddListener(this, &g_Listener); - - //Init our cvars/concmds - ConCommandBaseMgr::OneTimeInit(&g_Accessor); - - //We're hooking the following things as POST, in order to seem like Server Plugins. - //However, I don't actually know if Valve has done server plugins as POST or not. - //Change the last parameter to 'false' in order to change this to PRE. - //SH_ADD_HOOK_MEMFUNC means "SourceHook, Add Hook, Member Function". - - //Hook LevelInit to our function - SH_ADD_HOOK_MEMFUNC(IServerGameDLL, LevelInit, m_ServerDll, &g_SamplePlugin, &SamplePlugin::LevelInit, true); - //Hook ServerActivate to our function - SH_ADD_HOOK_MEMFUNC(IServerGameDLL, ServerActivate, m_ServerDll, &g_SamplePlugin, &SamplePlugin::ServerActivate, true); - //Hook GameFrame to our function - SH_ADD_HOOK_MEMFUNC(IServerGameDLL, GameFrame, m_ServerDll, &g_SamplePlugin, &SamplePlugin::GameFrame, true); - //Hook LevelShutdown to our function -- this makes more sense as pre I guess - SH_ADD_HOOK_MEMFUNC(IServerGameDLL, LevelShutdown, m_ServerDll, &g_SamplePlugin, &SamplePlugin::LevelShutdown, false); - //Hook ClientActivate to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientActive, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientActive, true); - //Hook ClientDisconnect to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientDisconnect, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientDisconnect, true); - //Hook ClientPutInServer to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientPutInServer, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientPutInServer, true); - //Hook SetCommandClient to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, SetCommandClient, m_ServerClients, &g_SamplePlugin, &SamplePlugin::SetCommandClient, true); - //Hook ClientSettingsChanged to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientSettingsChanged, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientSettingsChanged, true); - - //The following functions are pre handled, because that's how they are in IServerPluginCallbacks - - //Hook ClientConnect to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientConnect, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientConnect, false); - //Hook ClientCommand to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientCommand, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientCommand, false); - - //This hook is a static hook, no member function - SH_ADD_HOOK_STATICFUNC(IGameEventManager2, FireEvent, m_GameEventManager, FireEvent_Handler, false); - - //Get the call class for IVServerEngine so we can safely call functions without - // invoking their hooks (when needed). - m_Engine_CC = SH_GET_CALLCLASS(m_Engine); - - SH_CALL(m_Engine_CC, &IVEngineServer::LogPrint)("All hooks started!\n"); - - return true; -} - -bool SamplePlugin::Unload(char *error, size_t maxlen) -{ - //IT IS CRUCIAL THAT YOU REMOVE CVARS. - //As of Metamod:Source 1.00-RC2, it will automatically remove them for you. - //But this is only if you've registered them correctly! - - //Make sure we remove any hooks we did... this may not be necessary since - //SourceHook is capable of unloading plugins' hooks itself, but just to be safe. - - SH_REMOVE_HOOK_STATICFUNC(IGameEventManager2, FireEvent, m_GameEventManager, FireEvent_Handler, false); - SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, LevelInit, m_ServerDll, &g_SamplePlugin, &SamplePlugin::LevelInit, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, ServerActivate, m_ServerDll, &g_SamplePlugin, &SamplePlugin::ServerActivate, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, GameFrame, m_ServerDll, &g_SamplePlugin, &SamplePlugin::GameFrame, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, LevelShutdown, m_ServerDll, &g_SamplePlugin, &SamplePlugin::LevelShutdown, false); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientActive, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientActive, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientDisconnect, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientDisconnect, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientPutInServer, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientPutInServer, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, SetCommandClient, m_ServerClients, &g_SamplePlugin, &SamplePlugin::SetCommandClient, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientSettingsChanged, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientSettingsChanged, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientConnect, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientConnect, false); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientCommand, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientCommand, false); - - //this, sourcehook does not keep track of. we must do this. - SH_RELEASE_CALLCLASS(m_Engine_CC); - - return true; -} - -void SamplePlugin::AllPluginsLoaded() -{ - //we don't really need this for anything other than interplugin communication - //and that's not used in this plugin. - //If we really wanted, we could override the factories so other plugins can request - // interfaces we make. In this callback, the plugin could be assured that either - // the interfaces it requires were either loaded in another plugin or not. -} - -void *MyListener::OnMetamodQuery(const char *iface, int *ret) -{ - if (strcmp(iface, "SamplePlugin")==0) - { - if (ret) - *ret = IFACE_OK; - return static_cast(&g_SamplePlugin); - } - - if (ret) - *ret = IFACE_FAILED; - - return NULL; -} diff --git a/sourcemm/sample_mm/SamplePlugin.h b/sourcemm/sample_mm/SamplePlugin.h deleted file mode 100644 index 74f5af1..0000000 --- a/sourcemm/sample_mm/SamplePlugin.h +++ /dev/null @@ -1,132 +0,0 @@ -/* ======== sample_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_SAMPLEPLUGIN_H -#define _INCLUDE_SAMPLEPLUGIN_H - -#include -#include -#include - -#define SAMPLE_VERSION "1.10" - -class SamplePlugin : public ISmmPlugin, public IMetamodListener -{ -public: - bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late); - bool Unload(char *error, size_t maxlen); - void AllPluginsLoaded(); - bool Pause(char *error, size_t maxlen) - { - return true; - } - bool Unpause(char *error, size_t maxlen) - { - return true; - } -public: - int GetApiVersion() { return PLAPI_VERSION; } -public: - const char *GetAuthor() - { - return "BAILOPAN"; - } - const char *GetName() - { - return "Sample Plugin"; - } - const char *GetDescription() - { - return "Sample plugin that hooks basic things"; - } - const char *GetURL() - { - return "http://www.sourcemm.net/"; - } - const char *GetLicense() - { - return "zlib/libpng"; - } - const char *GetVersion() - { - return SAMPLE_VERSION; - } - const char *GetDate() - { - return __DATE__; - } - const char *GetLogTag() - { - return "SAMPLE"; - } -public: - //These functions are from IServerPluginCallbacks - //Note, the parameters might be a little different to match the actual calls! - - //Called on LevelInit. Server plugins only have pMapName - bool LevelInit(const char *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background); - - //Called on ServerActivate. Same definition as server plugins - void ServerActivate(edict_t *pEdictList, int edictCount, int clientMax); - - //Called on a game tick. Same definition as server plugins - void GameFrame(bool simulating); - - //Called on level shutdown. Same definition as server plugins - void LevelShutdown(void); - - //Client is activate (whatever that means). We get an extra parameter... - // "If bLoadGame is true, don't spawn the player because its state is already setup." - void ClientActive(edict_t *pEntity, bool bLoadGame); - - //Client disconnects - same as server plugins - void ClientDisconnect(edict_t *pEntity); - - //Client is put in server - same as server plugins - void ClientPutInServer(edict_t *pEntity, char const *playername); - - //Sets the client index - same as server plugins - void SetCommandClient(int index); - - //Called on client settings changed (duh) - same as server plugins - void ClientSettingsChanged(edict_t *pEdict); - - //Called on client connect. Unlike server plugins, we return whether the - // connection is allowed rather than set it through a pointer in the first parameter. - // You can still supercede the GameDLL through RETURN_META_VALUE(MRES_SUPERCEDE, true/false) - bool ClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen); - - //Called when a client uses a command. Unlike server plugins, it's void. - // You can still supercede the gamedll through RETURN_META(MRES_SUPERCEDE). - void ClientCommand(edict_t *pEntity); - - //From IMetamodListener - virtual void OnLevelShutdown(); - -private: - IGameEventManager2 *m_GameEventManager; - IVEngineServer *m_Engine; - IServerGameDLL *m_ServerDll; - IServerGameClients *m_ServerClients; - SourceHook::CallClass *m_Engine_CC; -}; - -class MyListener : public IMetamodListener -{ -public: - virtual void *OnMetamodQuery(const char *iface, int *ret); -}; - -extern SamplePlugin g_SamplePlugin; -PLUGIN_GLOBALVARS(); - -bool FireEvent_Handler(IGameEvent *event, bool bDontBroadcast); - -#endif //_INCLUDE_SAMPLEPLUGIN_H diff --git a/sourcemm/sample_mm/cvars.cpp b/sourcemm/sample_mm/cvars.cpp deleted file mode 100644 index 4a6c16a..0000000 --- a/sourcemm/sample_mm/cvars.cpp +++ /dev/null @@ -1,27 +0,0 @@ -/* ======== sample_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include "SamplePlugin.h" -#include "cvars.h" - -SampleAccessor g_Accessor; - -ConVar g_MyConVar("sample_version", SAMPLE_VERSION, FCVAR_SPONLY, "Sample Plugin version"); - -bool SampleAccessor::RegisterConCommandBase(ConCommandBase *pVar) -{ - //this will work on any type of concmd! - return META_REGCVAR(pVar); -} - -CON_COMMAND(sample_cmd, "Sample Plugin command") -{ - META_LOG(g_PLAPI, "This sentence is in Spanish when you're not looking."); -} diff --git a/sourcemm/sample_mm/cvars.h b/sourcemm/sample_mm/cvars.h deleted file mode 100644 index 9bc6286..0000000 --- a/sourcemm/sample_mm/cvars.h +++ /dev/null @@ -1,24 +0,0 @@ -/* ======== sample_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_CVARS_H -#define _INCLUDE_CVARS_H - -#include - -class SampleAccessor : public IConCommandBaseAccessor -{ -public: - virtual bool RegisterConCommandBase(ConCommandBase *pVar); -}; - -extern SampleAccessor g_Accessor; - -#endif //_INCLUDE_CVARS_H diff --git a/sourcemm/sample_mm/msvc7/sample_mm.sln b/sourcemm/sample_mm/msvc7/sample_mm.sln deleted file mode 100644 index b885d6b..0000000 --- a/sourcemm/sample_mm/msvc7/sample_mm.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sample_mm", "sample_mm.vcproj", "{FAFF34FB-FE14-47B5-81BD-70D237392FB2}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Debug.ActiveCfg = Debug|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Debug.Build.0 = Debug|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Release.ActiveCfg = Release|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/sourcemm/sample_mm/msvc7/sample_mm.vcproj b/sourcemm/sample_mm/msvc7/sample_mm.vcproj deleted file mode 100644 index 57c68a7..0000000 --- a/sourcemm/sample_mm/msvc7/sample_mm.vcproj +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/sample_mm/msvc8/sample_mm.sln b/sourcemm/sample_mm/msvc8/sample_mm.sln deleted file mode 100644 index df4b2fb..0000000 --- a/sourcemm/sample_mm/msvc8/sample_mm.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sample_mm", "sample_mm.vcproj", "{FAFF34FB-FE14-47B5-81BD-70D237392FB2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Debug|Win32.ActiveCfg = Debug|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Debug|Win32.Build.0 = Debug|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Release|Win32.ActiveCfg = Release|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/sourcemm/sample_mm/msvc8/sample_mm.vcproj b/sourcemm/sample_mm/msvc8/sample_mm.vcproj deleted file mode 100644 index 0e10bef..0000000 --- a/sourcemm/sample_mm/msvc8/sample_mm.vcproj +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp deleted file mode 100644 index d1f3210..0000000 --- a/sourcemm/sourcemm.cpp +++ /dev/null @@ -1,979 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * Contributor(s): Scott "Damaged Soul" Ehlert - * : Pavol "PM OnoTo" Marko - * ============================ - */ - -#include -#include -#include -#include "sourcemm.h" -#include "concommands.h" -#include "CSmmAPI.h" -#include "CPlugin.h" -#include "util.h" -#include "vsp_listener.h" -#include "iplayerinfo.h" -#include - -using namespace SourceMM; - -/** - * @brief Implementation of main SourceMM GameDLL functionality - * @file sourcemm.cpp - */ - -#undef CommandLine -DLL_IMPORT ICommandLine *CommandLine(); - -SH_DECL_HOOK4(IServerGameDLL, DLLInit, SH_NOATTRIB, false, bool, CreateInterfaceFn, CreateInterfaceFn, CreateInterfaceFn, CGlobalVars *); -SH_DECL_HOOK0_void(IServerGameDLL, DLLShutdown, SH_NOATTRIB, false); -SH_DECL_HOOK0_void(IServerGameDLL, LevelShutdown, SH_NOATTRIB, false); -SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, false, bool, const char *, const char *, const char *, const char *, bool, bool); -SH_DECL_HOOK1_void(IServerGameClients, ClientCommand, SH_NOATTRIB, 0, edict_t *); -SH_DECL_HOOK0(IServerGameDLL, GameInit, SH_NOATTRIB, false, bool); - -bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, CreateInterfaceFn filesystemFactory, CGlobalVars *pGlobals); -bool DLLInit_Post(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, CreateInterfaceFn filesystemFactory, CGlobalVars *pGlobals); -void DLLShutdown_handler(); -void LevelShutdown_handler(); -bool LevelInit_handler(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background); -bool GameInit_handler(); -void LookForVDFs(const char *dir); - -GameDllInfo g_GameDll = {false, NULL, NULL, NULL, NULL}; -EngineInfo g_Engine; -SourceHook::CSourceHookImpl g_SourceHook; -SourceHook::ISourceHook *g_SHPtr = &g_SourceHook; -SourceHook::String g_ModPath; -SourceHook::String g_BinPath; -SourceHook::String g_SmmPath; -PluginId g_PLID = Pl_Console; /* Technically, SourceMM is the "Console" plugin... :p */ -bool bInFirstLevel = true; -bool gParsedGameInfo = false; -bool bGameInit = false; -SourceHook::List gamedll_list; -SourceHook::CallClass *g_GameDllPatch; -int g_GameDllVersion = 0; -const char VSPIFACE_001[] = "ISERVERPLUGINCALLBACKS001"; -const char VSPIFACE_002[] = "ISERVERPLUGINCALLBACKS002"; -const char GAMEINFO_PATH[] = "|gameinfo_path|"; -IFileSystem *baseFs = NULL; -bool g_bLevelChanged = false; - - -void ClearGamedllList(); - -/* Helper Macro */ -#define IFACE_MACRO(orig,nam) \ - CPluginManager::CPlugin *pl; \ - SourceHook::List::iterator event; \ - IMetamodListener *api; \ - int mret = 0; \ - void *val = NULL; \ - for (PluginIter iter = g_PluginMngr._begin(); iter != g_PluginMngr._end(); iter++) { \ - pl = (*iter); \ - for (event=pl->m_Events.begin(); event!=pl->m_Events.end(); event++) { \ - api = (*event).event; \ - mret = IFACE_FAILED; \ - if ( (val=api->On##nam##Query(iface, &mret)) != NULL ) { \ - if (ret) *ret = mret; \ - return val; \ - } \ - } \ - } \ - return (orig)(iface, ret); - -#define ITER_EVENT(evn, args) \ - CPluginManager::CPlugin *pl; \ - SourceHook::List::iterator event; \ - IMetamodListener *api; \ - for (PluginIter iter = g_PluginMngr._begin(); iter != g_PluginMngr._end(); iter++) { \ - pl = (*iter); \ - for (event=pl->m_Events.begin(); event!=pl->m_Events.end(); event++) { \ - api = (*event).event; \ - api->evn args; \ - } \ - } - -/////////////////////////////////// -// Main code for HL2 Interaction // -/////////////////////////////////// - -/* Initialize everything here */ -void InitMainStates() -{ - char full_path[PATH_SIZE] = {0}; - GetFileOfAddress((void *)g_GameDll.factory, full_path, sizeof(full_path)); - g_BinPath.assign(full_path); - - /* Like Metamod, reload plugins at the end of the map. - * This is so plugins can hook everything on load, BUT, new plugins will be reloaded - * if the server is shut down (silly, but rare case). - */ - bInFirstLevel = true; - - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, DLLInit, g_GameDll.pGameDLL, DLLInit, false); - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, DLLInit, g_GameDll.pGameDLL, DLLInit_Post, true); - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, DLLShutdown, g_GameDll.pGameDLL, DLLShutdown_handler, false); - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, LevelShutdown, g_GameDll.pGameDLL, LevelShutdown_handler, true); - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, LevelInit, g_GameDll.pGameDLL, LevelInit_handler, true); - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, GameInit, g_GameDll.pGameDLL, GameInit_handler, false); -} - -void DoInitialPluginLoads() -{ - const char *pluginFile = g_Engine.icvar->GetCommandLineValue("mm_pluginsfile"); - const char *mmBaseDir = g_Engine.icvar->GetCommandLineValue("mm_basedir"); - - if (!pluginFile) - { - pluginFile = GetPluginsFile(); - } - if (!mmBaseDir) - { - mmBaseDir = GetMetamodBaseDir(); - } - - char full_path[260]; - - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), pluginFile); - LoadPluginsFromFile(full_path); - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), mmBaseDir); - LookForVDFs(full_path); -} - -bool StartupMetamod(CreateInterfaceFn engineFactory, bool bWaitForGameInit) -{ - g_Engine.engine = (IVEngineServer *)((engineFactory)(INTERFACEVERSION_VENGINESERVER, NULL)); - - if (!g_Engine.engine) - { - Error("Could not find IVEngineServer! Metamod cannot load."); - return false; - } - g_Engine.icvar = (ICvar *)((engineFactory)(VENGINE_CVAR_INTERFACE_VERSION , NULL)); - if (!g_Engine.icvar) - { - Error("Could not find ICvar! Metamod cannot load."); - return false; - } - - g_Engine.loaded = true; - - ConCommandBaseMgr::OneTimeInit(static_cast(&g_SMConVarAccessor)); - - g_GameDllPatch = SH_GET_CALLCLASS(g_GameDll.pGameDLL); - - if (g_GameDll.pGameClients) - { - SH_ADD_HOOK_STATICFUNC(IServerGameClients, ClientCommand, g_GameDll.pGameClients, ClientCommand_handler, false); - } - else - { - /* If IServerGameClients isn't found, this really isn't a fatal error so... */ - LogMessage("[META] Warning: Could not find IServerGameClients!"); - LogMessage("[META] Warning: The 'meta' command will not be available to clients."); - } - - if (!g_SmmAPI.CacheCmds()) - { - LogMessage("[META] Warning: Failed to initialize Con_Printf. Defaulting to Msg()."); - LogMessage("[META] Warning: Console messages will not be redirected to rcon console."); - } - - if (!g_SmmAPI.CacheUserMessages()) - { - /* Don't know of a mod that has stripped out user messages completely, - * but perhaps should do something different here? - */ - LogMessage("[META] Warning: Failed to get list of user messages."); - LogMessage("[META] Warning: The 'meta game' command will not display user messages."); - } - - baseFs = (IFileSystem *)((engineFactory)(FILESYSTEM_INTERFACE_VERSION, NULL)); - if (baseFs == NULL) - { - LogMessage("[META] Failed to find filesystem interface, .vdf files will not be parsed."); - } - - if (!bWaitForGameInit) - { - DoInitialPluginLoads(); - bInFirstLevel = true; - } - - return true; -} - -bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, CreateInterfaceFn filesystemFactory, CGlobalVars *pGlobals) -{ - g_Engine.engineFactory = engineFactory; - g_Engine.fileSystemFactory = filesystemFactory; - g_Engine.physicsFactory = physicsFactory; - g_Engine.pGlobals = pGlobals; - - StartupMetamod(engineFactory, false); - - RETURN_META_VALUE(MRES_IGNORED, true); -} - -bool AlternatelyLoadMetamod(CreateInterfaceFn ifaceFactory, CreateInterfaceFn serverFactory) -{ - g_Engine.engineFactory = ifaceFactory; - g_Engine.fileSystemFactory = ifaceFactory; - g_Engine.physicsFactory = ifaceFactory; - - IPlayerInfoManager *playerInfoManager = (IPlayerInfoManager *)serverFactory("PlayerInfoManager002", NULL); - if (playerInfoManager == NULL) - { - Error("Metamod:Source requires gameinfo.txt modification to load on this game."); - return false; - } - - g_Engine.pGlobals = playerInfoManager->GetGlobalVars(); - - /* Now find the server */ - g_GameDll.factory = serverFactory; - g_GameDll.lib = NULL; - - char gamedll_iface[] = "ServerGameDLL000"; - for (unsigned int i = 3; i <= 50; i++) - { - gamedll_iface[15] = '0' + i; - g_GameDll.pGameDLL = (IServerGameDLL *)serverFactory(gamedll_iface, NULL); - if (g_GameDll.pGameDLL != NULL) - { - g_GameDllVersion = i; - break; - } - } - - if (g_GameDll.pGameDLL == NULL) - { - Error("Metamod:Source requires gameinfo.txt modification to load on this game."); - return false; - } - - char gameclients_iface[] = "ServerGameClients000"; - for (unsigned int i = 3; i <= 4; i++) - { - gameclients_iface[19] = '0' + i; - g_GameDll.pGameClients = (IServerGameClients *)serverFactory(gameclients_iface, NULL); - if (g_GameDll.pGameClients != NULL) - { - break; - } - } - - char smm_path[PATH_SIZE]; - const char *game_dir; - GetFileOfAddress((void *)AlternatelyLoadMetamod, smm_path, sizeof(smm_path)); - g_SmmPath.assign(smm_path); - - game_dir = CommandLine()->ParmValue("-game", "hl2"); - abspath(smm_path, game_dir); - g_ModPath.assign(smm_path); - - InitMainStates(); - - if (!StartupMetamod(ifaceFactory, true)) - { - return false; - } - - g_PluginMngr.SetAllLoaded(); - - return true; -} - -bool GameInit_handler() -{ - if (bGameInit) - { - RETURN_META_VALUE(MRES_IGNORED, true); - } - - if (g_SmmAPI.VSPEnabled() && !g_VspListener.IsRootLoadMethod()) - { - g_SmmAPI.LoadAsVSP(); - } - - if (g_VspListener.IsRootLoadMethod()) - { - DoInitialPluginLoads(); - //gaben - } - - bGameInit = true; - - RETURN_META_VALUE(MRES_IGNORED, true); -} - -bool DLLInit_Post(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, CreateInterfaceFn filesystemFactory, CGlobalVars *pGlobals) -{ - g_PluginMngr.SetAllLoaded(); - RETURN_META_VALUE(MRES_IGNORED, true); -} - -/* This is where the magic happens */ -SMM_API void *CreateInterface(const char *iface, int *ret) -{ - /* Prevent loading of self as a SourceMM plugin or Valve server plugin :x */ - if (strcmp(iface, PLAPI_NAME) == 0) - { - Warning("Do not try loading Metamod:Source as a Metamod:Source plugin"); - - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /* We check these separately because we can't reply - * unless our interface version really matches. - */ - if ((strcmp(iface, VSPIFACE_002) == 0) - || strcmp(iface, VSPIFACE_001) == 0) - { - if (ret) - { - *ret = IFACE_OK; - } - return &g_VspListener; - } - - /* If we're a VSP, bypass this by default */ - if (g_VspListener.IsRootLoadMethod()) - { - IFACE_MACRO(g_GameDll.factory, GameDLL); - } - - if (!gParsedGameInfo) - { - gParsedGameInfo = true; - const char *gameDir = NULL; - char gamePath[PATH_SIZE]; - char smmPath[PATH_SIZE]; - - /* Get path to SourceMM DLL */ - if (!GetFileOfAddress((void *)CreateInterface, smmPath, sizeof(smmPath))) - { - Error("GetFileOfAddress() failed! Metamod cannot load.\n"); - return NULL; - } - - g_SmmPath.assign(smmPath); - - /* Get value of -game from command line, defaulting to hl2 as engine seems to do */ - gameDir = CommandLine()->ParmValue("-game", "hl2"); - - /* Get absolute path */ - abspath(gamePath, gameDir); - g_ModPath.assign(gamePath); - - char tempPath[PATH_SIZE]; - - /* Path to gameinfo.txt */ - g_SmmAPI.PathFormat(tempPath, PATH_SIZE, "%s/%s", g_ModPath.c_str(), "gameinfo.txt"); - - FILE *fp = fopen(tempPath, "rt"); - - if (!fp) - { - Error("Unable to open gameinfo.txt! Metamod cannot load.\n"); - return NULL; - } - - char buffer[255]; - char key[128], val[128]; - size_t len = 0; - bool search = false; - bool gamebin = false; - char *ptr; - const char *lptr; - char curPath[PATH_SIZE]; - - getcwd(curPath, PATH_SIZE); - - while (!feof(fp)) - { - buffer[0] = '\0'; - fgets(buffer, sizeof(buffer), fp); - len = strlen(buffer); - if (buffer[len-1] == '\n') - buffer[--len] = '\0'; - UTIL_TrimComments(buffer); - UTIL_TrimLeft(buffer); - UTIL_TrimRight(buffer); - if (stricmp(buffer, "SearchPaths") == 0) - search = true; - if (!search) - continue; - UTIL_KeySplit(buffer, key, sizeof(key) - 1, val, sizeof(val) - 1); - if (stricmp(key, "Game") == 0 || stricmp(key, "GameBin") == 0) - { - if (stricmp(key, "Game") == 0) - gamebin = false; - else - gamebin = true; - - if (strncmp(val, GAMEINFO_PATH, sizeof(GAMEINFO_PATH) - 1) == 0) - { - ptr = &(val[sizeof(GAMEINFO_PATH) - 1]); - if (ptr[0] == '.') - ptr++; - lptr = g_ModPath.c_str(); - } else { - ptr = val; - lptr = curPath; - } - - size_t ptr_len = strlen(ptr); - if (ptr[ptr_len] == '/' || ptr[ptr_len] == '\\') - ptr[--ptr_len] = '\0'; - - /* No need to append "bin" if key is GameBin */ - if (gamebin) - { - g_SmmAPI.PathFormat(tempPath, PATH_SIZE, "%s/%s/%s", lptr, ptr, SERVER_DLL); - } else if (!ptr[0]) { - g_SmmAPI.PathFormat(tempPath, PATH_SIZE, "%s/%s/%s", lptr, "bin", SERVER_DLL); - } else { - g_SmmAPI.PathFormat(tempPath, PATH_SIZE, "%s/%s/%s/%s", lptr, ptr, "bin", SERVER_DLL); - } - - /* If not path to SourceMM... */ - if (!UTIL_PathCmp(smmPath, tempPath)) - { - FILE *fp = fopen(tempPath, "rb"); - if (!fp) - continue; - //:TODO: Optimize this a bit! - SourceHook::List::iterator iter; - GameDllInfo *pCheck; - bool found = false; - for (iter=gamedll_list.begin(); iter!=gamedll_list.end(); iter++) - { - pCheck = (*iter); - if (GetFileOfAddress((void *)pCheck->factory, buffer, sizeof(buffer))) - { - if (UTIL_PathCmp(tempPath, buffer)) - { - found = true; - break; - } - } - } - if (found) - continue; - fclose(fp); - HINSTANCE gamedll = dlmount(tempPath); - if (gamedll == NULL) - continue; - CreateInterfaceFn fn = (CreateInterfaceFn)dlsym(gamedll, "CreateInterface"); - if (fn == NULL) - { - dlclose(gamedll); - continue; - } - GameDllInfo *pInfo = new GameDllInfo; - pInfo->factory = fn; - pInfo->lib = gamedll; - pInfo->loaded = true; - pInfo->pGameDLL = NULL; - gamedll_list.push_back(pInfo); - break; - } - } - } - fclose(fp); - } - - if (!g_GameDll.loaded) - { - const char *str = "ServerGameDLL"; - size_t len = strlen(str); - - if (strncmp(iface, str, len) == 0) - { - /* This is the interface we want! Right now we support versions 3 through 8 */ - g_GameDllVersion = atoi(&(iface[len])); - int sizeTooBig = 0; //rename this to sizeWrong in the future! - if (g_GameDllVersion < MIN_GAMEDLL_VERSION || g_GameDllVersion > MAX_GAMEDLL_VERSION) - { - /* Maybe this will get used in the future */ - sizeTooBig = g_GameDllVersion; - if (ret) - { - *ret = IFACE_FAILED; - } - } - SourceHook::List::iterator iter; - GameDllInfo *pInfo = NULL; - void *ptr; - for (iter=gamedll_list.begin(); iter!=gamedll_list.end(); iter++) - { - pInfo = (*iter); - ptr = (pInfo->factory)(iface, ret); - if (ptr) - { - /* This is our GameDLL. Unload the others. */ - gamedll_list.erase(iter); - ClearGamedllList(); - pInfo->pGameDLL = static_cast(ptr); - g_GameDll = *pInfo; - delete pInfo; - break; - } - } - if (g_GameDll.loaded) - { - if (sizeTooBig) - { - Error("This mod version requires a SourceMM update (ServerGameDLL%03d)!\n", sizeTooBig); - if (ret) - { - *ret = IFACE_FAILED; - } - return NULL; - } else { - InitMainStates(); - } - } else { - sizeTooBig = 0; - if (ret) - *ret = IFACE_FAILED; - return NULL; - } - } else { - /* wtf do we do... */ - /* :TODO: .. something a bit more intelligent? */ - Error("Engine requested unknown interface before GameDLL was known!\n"); - return NULL; - } - } - - /* We use this interface for responding to the meta client command */ - if (strncmp(iface, "ServerGameClients", 17) == 0) - { - void *ptr = (g_GameDll.factory)(iface, ret); - g_GameDll.pGameClients = static_cast(ptr); - - return ptr; - } - - /* If we got here, there's definitely a GameDLL */ - IFACE_MACRO(g_GameDll.factory, GameDLL); -} - -void ClearGamedllList() -{ - SourceHook::List::iterator iter; - - GameDllInfo *pInfo; - for (iter=gamedll_list.begin(); iter!=gamedll_list.end(); iter++) - { - pInfo = (*iter); - dlclose(pInfo->lib); - delete pInfo; - } - - gamedll_list.clear(); -} - -void UnloadMetamod(bool shutting_down) -{ - /* Unload plugins */ - g_PluginMngr.UnloadAll(); - - if (shutting_down) - { - /* Add the FCVAR_GAMEDLL flag to our cvars so the engine removes them properly */ - g_SMConVarAccessor.MarkCommandsAsGameDLL(); - g_SMConVarAccessor.UnregisterGameDLLCommands(); - - SH_CALL(g_GameDllPatch, &IServerGameDLL::DLLShutdown)(); - } - - SH_RELEASE_CALLCLASS(g_GameDllPatch); - g_GameDllPatch = NULL; - - g_SourceHook.CompleteShutdown(); - - if (g_GameDll.lib && g_GameDll.loaded) - { - dlclose(g_GameDll.lib); - } - memset(&g_GameDll, 0, sizeof(GameDllInfo)); -} - -void DLLShutdown_handler() -{ - UnloadMetamod(true); - RETURN_META(MRES_SUPERCEDE); -} - -void LoadFromVDF(const char *file) -{ - PluginId id; - bool already; - KeyValues *pValues; - const char *plugin_file, *alias; - char full_path[256], error[256]; - - pValues = new KeyValues("Metamod Plugin"); - - if (!pValues->LoadFromFile(baseFs, file)) - { - pValues->deleteThis(); - return; - } - - if ((plugin_file = pValues->GetString("file", NULL)) == NULL) - { - pValues->deleteThis(); - return; - } - - if ((alias = pValues->GetString("alias", NULL)) != NULL) - { - g_PluginMngr.SetAlias(alias, plugin_file); - } - - /* Attempt to find a file extension */ - if (UTIL_GetExtension(plugin_file) == NULL) - { - g_SmmAPI.PathFormat(full_path, - sizeof(full_path), - "%s/%s%s", - g_ModPath.c_str(), - plugin_file, -#if defined WIN32 || defined _WIN32 - ".dll" -#else - "_i486.so" -#endif - ); - } - else - { - g_SmmAPI.PathFormat(full_path, - sizeof(full_path), - "%s/%s", - g_ModPath.c_str(), - plugin_file); - } - - id = g_PluginMngr.Load(full_path, Pl_File, already, error, sizeof(error)); - if (id < Pl_MinId || g_PluginMngr.FindById(id)->m_Status < Pl_Paused) - { - LogMessage("[META] Failed to load plugin %s: %s", plugin_file, error); - } - - pValues->deleteThis(); -} - -void LookForVDFs(const char *dir) -{ - char path[MAX_PATH]; - -#if defined _MSC_VER - HANDLE hFind; - WIN32_FIND_DATA fd; - char error[255]; - - g_SmmAPI.PathFormat(path, sizeof(path), "%s\\*.*", dir); - if ((hFind = FindFirstFile(path, &fd)) == INVALID_HANDLE_VALUE) - { - DWORD dw = GetLastError(); - FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - dw, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - error, - sizeof(error), - NULL); - LogMessage("[META] Could not open folder \"%s\" (%s)", dir, error); - return; - } - - do - { - if (strcmp(fd.cFileName, ".") == 0 - || strcmp(fd.cFileName, "..") == 0) - { - continue; - } - if (strstr(fd.cFileName, ".vdf") == NULL) - { - continue; - } - g_SmmAPI.PathFormat(path, sizeof(path), "%s\\%s", dir, fd.cFileName); - LoadFromVDF(path); - } while (FindNextFile(hFind, &fd)); - - FindClose(hFind); -#else - DIR *pDir; - struct dirent *pEnt; - - if ((pDir = opendir(dir)) == NULL) - { - LogMessage("[META] Could not open folder \"%s\" (%s)", dir, strerror(errno)); - return; - } - - while ((pEnt = readdir(pDir)) != NULL) - { - if (strcmp(pEnt->d_name, ".") == 0 - || strcmp(pEnt->d_name, "..") == 0) - { - continue; - } - if (strstr(pEnt->d_name, ".vdf") == NULL) - { - continue; - } - g_SmmAPI.PathFormat(path, sizeof(path), "%s/%s", dir, pEnt->d_name); - LoadFromVDF(path); - } - - closedir(pDir); -#endif -} - -int LoadPluginsFromFile(const char *_file) -{ - FILE *fp; - int total = 0, skipped=0; - PluginId id; - bool already; - - fp = fopen(_file, "rt"); - if (!fp) - { - LogMessage("[META] Could not open plugins file %s\n", _file); - return -1; - } - - char buffer[255], error[255], full_path[255]; - const char *ptr, *ext, *file; - size_t length; - while (!feof(fp)) - { - buffer[0] = '\0'; - fgets(buffer, sizeof(buffer), fp); - length = strlen(buffer); - if (!length) - continue; - if (buffer[length-1] == '\n') - buffer[--length] = '\0'; - - UTIL_TrimLeft(buffer); - UTIL_TrimRight(buffer); - - if (buffer[0] == '\0' || buffer[0] == ';' || strncmp(buffer, "//", 2) == 0) - continue; - file = buffer; - if (buffer[0] == '"') - { - char *cptr = buffer; - file = ++cptr; - - while (*cptr) - { - if (*cptr == '"') - { - *cptr = '\0'; - break; - } - cptr++; - } - } else { - char *cptr = buffer; - while (*cptr) - { - if (isspace(*cptr)) - { - char *optr = cptr; - while (*cptr && isspace(*cptr)) - cptr++; - *optr = '\0'; - UTIL_TrimRight(cptr); - if (*cptr && isalpha(*cptr)) - { - g_PluginMngr.SetAlias(buffer, cptr); - file = cptr; - } - break; - } - cptr++; - } - } - if (!file[0]) - { - continue; - } - /* First find if it's an absolute path or not... */ - if (file[0] == '/' || strncmp(&(file[1]), ":\\", 2) == 0) - { - /* If we're in an absolute path, ignore our normal heuristics */ - id = g_PluginMngr.Load(file, Pl_File, already, error, sizeof(error)); - if (id < Pl_MinId || g_PluginMngr.FindById(id)->m_Status < Pl_Paused) - { - LogMessage("[META] Failed to load plugin %s. %s", buffer, error); - } else { - if (already) - skipped++; - else - total++; - } - } else { - /* Attempt to find a file extension */ - ptr = UTIL_GetExtension(file); - /* Add an extension if there's none there */ - if (!ptr) - { -#if defined WIN32 || defined _WIN32 - ext = ".dll"; -#else - ext = "_i486.so"; -#endif - } else { - ext = ""; - } - /* Format the new path */ - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s%s", g_ModPath.c_str(), file, ext); - id = g_PluginMngr.Load(full_path, Pl_File, already, error, sizeof(error)); - if (id < Pl_MinId || g_PluginMngr.FindById(id)->m_Status < Pl_Paused) - { - LogMessage("[META] Failed to load plugin %s. %s", buffer, error); - } else { - if (already) - skipped++; - else - total++; - } - } - } - fclose(fp); - - if (skipped) - { - LogMessage("[META] Loaded %d plugins from file (%d already loaded)", total, skipped); - } else { - LogMessage("[META] Loaded %d plugins from file.", total); - } - - return total; -} - -/* Wrapper function. This is called when the GameDLL thinks it's using - * the engine's real engineFactory. - */ -void *EngineFactory(const char *iface, int *ret) -{ - IFACE_MACRO(g_Engine.engineFactory, Engine); -} - -/* Wrapper function. This is called when the GameDLL thinks it's using - * the engine's real physicsFactory. - */ -void *PhysicsFactory(const char *iface, int *ret) -{ - IFACE_MACRO(g_Engine.physicsFactory, Physics); -} - -/* Wrapper function. This is called when the GameDLL thinks it's using - * the engine's real fileSystemFactory. - */ -void *FileSystemFactory(const char *iface, int *ret) -{ - IFACE_MACRO(g_Engine.fileSystemFactory, FileSystem); -} - -void LogMessage(const char *msg, ...) -{ - va_list ap; - static char buffer[2048]; - - va_start(ap, msg); - size_t len = vsnprintf(buffer, sizeof(buffer) - 2, msg, ap); - va_end(ap); - - buffer[len++] = '\n'; - buffer[len] = '\0'; - - if (!g_Engine.engine) - { - fprintf(stdout, "%s", buffer); - } else { - g_Engine.engine->LogPrint(buffer); - } -} - -void LevelShutdown_handler(void) -{ - if (!bInFirstLevel) - { - char full_path[255]; - - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), GetPluginsFile()); - LoadPluginsFromFile(full_path); - - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), GetMetamodBaseDir()); - LookForVDFs(full_path); - } - else - { - bInFirstLevel = false; - } - - g_bLevelChanged = true; - - ITER_EVENT(OnLevelShutdown, ()); - - RETURN_META(MRES_IGNORED); -} - -bool LevelInit_handler(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background) -{ - if (!g_SmmAPI.CmdCacheSuccessful()) - { - LogMessage("[META] Warning: Failed to initialize Con_Printf. Defaulting to Msg()."); - LogMessage("[META] Warning: Console messages will not be redirected to rcon console."); - } - - ITER_EVENT(OnLevelInit, (pMapName, pMapEntities, pOldLevel, pLandmarkName, loadGame, background)); - - RETURN_META_VALUE(MRES_IGNORED, false); -} - -#if defined __GNUC__ && (__GNUC__ == 3 || __GNUC__ == 4) -void * operator new(size_t size) { - return(calloc(1, size)); -} - -void * operator new[](size_t size) { - return(calloc(1, size)); -} - -void operator delete(void * ptr) { - if(ptr) - free(ptr); -} - -void operator delete[](void * ptr) { - if(ptr) - free(ptr); -} -#endif diff --git a/sourcemm/sourcemm.h b/sourcemm/sourcemm.h deleted file mode 100644 index 05fd0b6..0000000 --- a/sourcemm/sourcemm.h +++ /dev/null @@ -1,127 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_SOURCEMM_H -#define _INCLUDE_SOURCEMM_H - -/** - * @brief SourceMM main functionality for GameDLL interception - * @file sourcemm.h - */ - -#include -#include -#include -#include -#include -#include "ISmmAPI.h" -#include "CPlugin.h" -#include "oslink.h" -#include "util.h" -#include "svn_version.h" - -/** - * Versioning - * increase api_major when API breaks - * increase api_minor when new functions are added (non-breaking) - */ -#define SOURCEMM_VERSION SVN_FILE_VERSION_STRING -#define SOURCEMM_DATE __DATE__ -#define SM_VERS_API_MAJOR 1 //increase this on a breaking change -#define SM_VERS_API_MINOR 5 //increase this on a non-breaking API change - -//We need a good CServerGameDLL version to work properly. We support these inclusively. -#define MIN_GAMEDLL_VERSION 3 -#define MAX_GAMEDLL_VERSION 8 - -/** - * @brief Entry point for HL2 Engine - */ -SMM_API void *CreateInterface(const char *name, int *code); - -/** @brief Wrapper to catch GameDLL calls */ -void *EngineFactory(const char *name, int *code); - -/** @brief Wrapper to catch GameDLL calls */ -void *PhysicsFactory(const char *name, int *code); - -/** @brief Wrapper to catch GameDLL calls */ -void *FileSystemFactory(const char *name, int *code); - -/** @brief Loads all plugins found in a file */ -int LoadPluginsFromFile(const char *file); - -/** @brief Logs a message to the standard log file */ -void LogMessage(const char *msg, ...); - -/** @brief Stores information about the GameDLL */ -struct GameDllInfo -{ - bool loaded; - HINSTANCE lib; - CreateInterfaceFn factory; - IServerGameDLL *pGameDLL; - IServerGameClients *pGameClients; -}; - -/** @brief Stores information about the HL2 Engine pointers */ -struct EngineInfo -{ - EngineInfo() : loaded(false), - engineFactory(NULL), physicsFactory(NULL), fileSystemFactory(NULL), - pGlobals(NULL), icvar(NULL), engine(NULL) - { }; - bool loaded; - CreateInterfaceFn engineFactory; - CreateInterfaceFn physicsFactory; - CreateInterfaceFn fileSystemFactory; - CGlobalVars *pGlobals; - ICvar *icvar; - IVEngineServer *engine; -}; - -bool AlternatelyLoadMetamod(CreateInterfaceFn ifaceFactory, CreateInterfaceFn serverFactory); - -/** @brief Global variable for GameDLL info */ -extern GameDllInfo g_GameDll; - -/** @brief Global variable for Engine info */ -extern EngineInfo g_Engine; - -/** @brief Global singleton for SourceHook */ -extern SourceHook::CSourceHookImpl g_SourceHook; - -/** @brief Mod path (important!)*/ -extern SourceHook::String g_ModPath; - -/** @brief Path to server binary */ -extern SourceHook::String g_BinPath; - -/** @brief Path to SourceMM binary */ -extern SourceHook::String g_SmmPath; - -/** @brief Global variable for SourceHook macros */ -extern SourceHook::ISourceHook *g_SHPtr; - -/** @brief We have our own internal plugin id... */ -extern PluginId g_PLID; - -/** @brief ServerGameDLL version that is currently loaded */ -extern int g_GameDllVersion; - -extern bool bGameInit; -extern bool g_bLevelChanged; - -void UnloadMetamod(bool shutting_down); - -/** @brief Global CallClass for IServerGameDLL */ -extern SourceHook::CallClass *g_GameDllPatch; - -#endif //_INCLUDE_SOURCEMM_H diff --git a/sourcemm/stub_mm/LICENSE.txt b/sourcemm/stub_mm/LICENSE.txt deleted file mode 100644 index bf9f1fd..0000000 --- a/sourcemm/stub_mm/LICENSE.txt +++ /dev/null @@ -1,29 +0,0 @@ -The software is Copyright (C) 2004-2007, Metamod:Source Development Team. - -Metamod:Source is distributed under the "zLib/libpng" license, which is reproduced -below: - ------------------------------------------------------------------------------ - -This software is provided "as-is", without any express or implied warranty. -In no event will the authors be held liable for any damages arising from -the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software in - a product, an acknowledgment in the product documentation would be - appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. - ------------------------------------------------------------------------------ - -The zLib/libpng license has been approved by the "Open Source Initiative" -organization. diff --git a/sourcemm/stub_mm/Makefile b/sourcemm/stub_mm/Makefile deleted file mode 100644 index eec1eb9..0000000 --- a/sourcemm/stub_mm/Makefile +++ /dev/null @@ -1,66 +0,0 @@ -#(C)2004-2007 SourceMM Development Team -# Makefile written by David "BAILOPAN" Anderson - -HL2SDK = ../../../hl2sdk -SMM_ROOT = ../.. -SRCDS = ~/srcds - -### EDIT BELOW FOR OTHER PROJECTS ### - -OPT_FLAGS = -O3 -funroll-loops -s -pipe -GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden -DEBUG_FLAGS = -g -ggdb3 -CPP = gcc-4.1 -BINARY = stub_mm_i486.so - -HL2PUB = $(HL2SDK)/public - -OBJECTS = stub_mm.cpp - -LINK = vstdlib_i486.so tier0_i486.so -static-libgcc - -INCLUDE = -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ - -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_ROOT) -I$(SMM_ROOT)/sourcehook -I$(SMM_ROOT)/sourcemm - -ifeq "$(DEBUG)" "true" - BIN_DIR = Debug - CFLAGS = $(DEBUG_FLAGS) -else - BIN_DIR = Release - CFLAGS = $(OPT_FLAGS) -endif - -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) - -CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse - -ifeq "$(GCC_VERSION)" "4" - CFLAGS += $(GCC4_FLAGS) -endif - -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) - -$(BIN_DIR)/%.o: %.cpp - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< - -all: - mkdir -p $(BIN_DIR) - ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so - ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so - $(MAKE) sourcemm - rm -rf $(BINARY) - ln -sf $(BIN_DIR)/$(BINARY) $(BINARY) - -sourcemm: $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) - -debug: - $(MAKE) all DEBUG=true - -default: all - -clean: - rm -rf Release/*.o - rm -rf Release/$(BINARY) - rm -rf Debug/*.o - rm -rf Debug/$(BINARY) diff --git a/sourcemm/stub_mm/msvc7/stub_mm.sln b/sourcemm/stub_mm/msvc7/stub_mm.sln deleted file mode 100644 index 0567903..0000000 --- a/sourcemm/stub_mm/msvc7/stub_mm.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stub_mm", "stub_mm.vcproj", "{836E726E-AB80-43AB-9A8F-0E6EE680B0F6}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Debug.ActiveCfg = Debug|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Debug.Build.0 = Debug|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Release.ActiveCfg = Release|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/sourcemm/stub_mm/msvc7/stub_mm.vcproj b/sourcemm/stub_mm/msvc7/stub_mm.vcproj deleted file mode 100644 index aaed89b..0000000 --- a/sourcemm/stub_mm/msvc7/stub_mm.vcproj +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/stub_mm/msvc8/stub_mm.sln b/sourcemm/stub_mm/msvc8/stub_mm.sln deleted file mode 100644 index 4e0655b..0000000 --- a/sourcemm/stub_mm/msvc8/stub_mm.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stub_mm", "stub_mm.vcproj", "{836E726E-AB80-43AB-9A8F-0E6EE680B0F6}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Debug|Win32.ActiveCfg = Debug|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Debug|Win32.Build.0 = Debug|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Release|Win32.ActiveCfg = Release|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/sourcemm/stub_mm/msvc8/stub_mm.vcproj b/sourcemm/stub_mm/msvc8/stub_mm.vcproj deleted file mode 100644 index ed30615..0000000 --- a/sourcemm/stub_mm/msvc8/stub_mm.vcproj +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/stub_mm/stub_mm.cpp b/sourcemm/stub_mm/stub_mm.cpp deleted file mode 100644 index f43ed53..0000000 --- a/sourcemm/stub_mm/stub_mm.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* ======== stub_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include -#include "stub_mm.h" - -SH_DECL_HOOK3_void(IServerGameDLL, ServerActivate, SH_NOATTRIB, 0, edict_t *, int, int); - -StubPlugin g_StubPlugin; - -PLUGIN_EXPOSE(SamplePlugin, g_StubPlugin); - -void ServerActivate_handler(edict_t *pEdictList, int edictCount, int clientMax) -{ - META_LOG(g_PLAPI, "ServerActivate() called: edictCount=%d, clientMax=%d", edictCount, clientMax); - RETURN_META(MRES_IGNORED); -} - -bool StubPlugin::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late) -{ - PLUGIN_SAVEVARS(); - - GET_V_IFACE_ANY(serverFactory, m_ServerDll, IServerGameDLL, INTERFACEVERSION_SERVERGAMEDLL); - - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, ServerActivate, m_ServerDll, ServerActivate_handler, true); - - return true; -} - -bool StubPlugin::Unload(char *error, size_t maxlen) -{ - SH_REMOVE_HOOK_STATICFUNC(IServerGameDLL, ServerActivate, m_ServerDll, ServerActivate_handler, true); - - return true; -} - -bool StubPlugin::Pause(char *error, size_t maxlen) -{ - return true; -} - -bool StubPlugin::Unpause(char *error, size_t maxlen) -{ - return true; -} - -void StubPlugin::AllPluginsLoaded() -{ - //This is an example of inter-plugin communication - PluginId id; - void *ptr = g_SMAPI->MetaFactory("SamplePlugin", NULL, &id); - if (ptr) - { - META_LOG(g_PLAPI, "Found Sample Plugin[%d] at (%p)!", id, ptr); - } else { - META_LOG(g_PLAPI, "Did not find Sample Plugin!"); - } -} - -const char *StubPlugin::GetAuthor() -{ - return "AUTHOR"; -} - -const char *StubPlugin::GetName() -{ - return "Stub Plugin"; -} - -const char *StubPlugin::GetDescription() -{ - return "Stub Plugin"; -} - -const char *StubPlugin::GetURL() -{ - return "http://www.mysite.com/"; -} - -const char *StubPlugin::GetLicense() -{ - return "zlib/libpng"; -} - -const char *StubPlugin::GetVersion() -{ - return "1.00"; -} - -const char *StubPlugin::GetDate() -{ - return __DATE__; -} - -const char *StubPlugin::GetLogTag() -{ - return "STUB"; -} diff --git a/sourcemm/stub_mm/stub_mm.h b/sourcemm/stub_mm/stub_mm.h deleted file mode 100644 index fec6701..0000000 --- a/sourcemm/stub_mm/stub_mm.h +++ /dev/null @@ -1,45 +0,0 @@ -/* ======== stub_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_SAMPLEPLUGIN_H -#define _INCLUDE_SAMPLEPLUGIN_H - -#include - -class StubPlugin : public ISmmPlugin -{ -public: - bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late); - bool Unload(char *error, size_t maxlen); - bool Pause(char *error, size_t maxlen); - bool Unpause(char *error, size_t maxlen); - void AllPluginsLoaded(); -public: - const char *GetAuthor(); - const char *GetName(); - const char *GetDescription(); - const char *GetURL(); - const char *GetLicense(); - const char *GetVersion(); - const char *GetDate(); - const char *GetLogTag(); -private: - IServerGameDLL *m_ServerDll; - IServerGameDLL *m_ServerDll_CC; -}; - -extern StubPlugin g_StubPlugin; - -PLUGIN_GLOBALVARS(); - -//Called on ServerActivate. Same definition as server plugins -void ServerActivate_handler(edict_t *pEdictList, int edictCount, int clientMax); - -#endif //_INCLUDE_SAMPLEPLUGIN_H diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h deleted file mode 100644 index 0d4023c..0000000 --- a/sourcemm/svn_version.h +++ /dev/null @@ -1,13 +0,0 @@ -/** This file is autogenerated by build scripts */ - -#ifndef _INCLUDE_SVN_VERSION_H_ -#define _INCLUDE_SVN_VERSION_H_ - -#define SVN_PRODUCT_VERSION "1.4.3" - -#define SVN_REVISION 656 -#define SVN_REVISION_STRING "656" -#define SVN_FILE_VERSION 1,4,3,656 -#define SVN_FILE_VERSION_STRING "1.4.3.656" - -#endif //_INCLUDE_SVN_VERSION_H_ diff --git a/sourcemm/svn_version.tpl b/sourcemm/svn_version.tpl deleted file mode 100644 index 9b93d57..0000000 --- a/sourcemm/svn_version.tpl +++ /dev/null @@ -1,13 +0,0 @@ -/** This file is autogenerated by build scripts */ - -#ifndef _INCLUDE_SVN_VERSION_H_ -#define _INCLUDE_SVN_VERSION_H_ - -#define SVN_PRODUCT_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$" - -#define SVN_REVISION $GLOBAL_BUILD$ -#define SVN_REVISION_STRING "$GLOBAL_BUILD$" -#define SVN_FILE_VERSION $PMAJOR$,$PMINOR$,$PREVISION$,$GLOBAL_BUILD$ -#define SVN_FILE_VERSION_STRING "$PMAJOR$.$PMINOR$.$PREVISION$.$GLOBAL_BUILD$" - -#endif //_INCLUDE_SVN_VERSION_H_ diff --git a/sourcemm/util.cpp b/sourcemm/util.cpp deleted file mode 100644 index fadcf26..0000000 --- a/sourcemm/util.cpp +++ /dev/null @@ -1,408 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include -#include -#include -#include "util.h" -#include "oslink.h" - -/** - * @brief Utility functions - * @file util.cpp - */ - -const char *UTIL_GetExtension(const char *file) -{ - int len = strlen(file); - int i = 0; - - for (i = len - 1; i >= 0; i--) - { - if (file[i] == '/' || file[i] == '\\') - { - return NULL; - } - - if ((file[i] == '.') && (i != len - 1)) - { - return (const char *)&(file[i + 1]); - } - } - - return NULL; -} - -void UTIL_TrimLeft(char *buffer) -{ - /* Let's think of this as our iterator */ - char *i = buffer; - - /* Make sure the buffer isn't null */ - if (i && *i) - { - /* Add up number of whitespace characters */ - while(isspace((unsigned char) *i)) - { - i++; - } - - /* If whitespace chars in buffer then adjust string so first non-whitespace char is at start of buffer */ - if (i != buffer) - { - memmove(buffer, i, (strlen(i) + 1) * sizeof(char)); - } - } -} - -void UTIL_TrimRight(char *buffer) -{ - /* Make sure buffer isn't null */ - if (buffer) - { - size_t len = strlen(buffer); - - /* Loop through buffer backwards while replacing whitespace chars with null chars */ - for (size_t i = len - 1; i >= 0; i--) - { - if (isspace((unsigned char) buffer[i])) - { - buffer[i] = '\0'; - } else { - break; - } - } - } -} - -/* :TODO: this should skip string literals */ -void UTIL_TrimComments(char *buffer) -{ - int num_sc = 0; - size_t len = strlen(buffer); - if (buffer) - { - for (int i = len - 1; i >= 0; i--) - { - if (buffer[i] == '/') - { - if (++num_sc >= 2 && i==0) - { - buffer[i] = '\0'; - return; - } - } else { - if (num_sc >= 2) - { - buffer[i] = '\0'; - return; - } - num_sc = 0; - } - /* size_t won't go below 0, manually break out */ - if (i == 0) - { - break; - } - } - } -} - -void UTIL_KeySplit(const char *str, char *buf1, size_t len1, char *buf2, size_t len2) -{ - size_t start; - size_t len = strlen(str); - - for (start = 0; start < len; start++) - { - if (!isspace(str[start])) - { - break; - } - } - - size_t end; - for (end = start; end < len; end++) - { - if (isspace(str[end])) - { - break; - } - } - - size_t i, c = 0; - for (i = start; i < end; i++, c++) - { - if (c >= len1) - { - break; - } - buf1[c] = str[i]; - } - buf1[c] = '\0'; - - for (start = end; start < len; start++) - { - if (!isspace(str[start])) - { - break; - } - } - - for (c = 0; start < len; start++, c++) - { - if (c >= len2) - { - break; - } - buf2[c] = str[start]; - } - buf2[c] = '\0'; -} - -bool UTIL_PathCmp(const char *path1, const char *path2) -{ - size_t pos1 = 0, pos2 = 0; - - while (true) - { - if (path1[pos1] == '\0' || path2[pos2] == '\0') - { - return (path1[pos1] == path2[pos2]); - } - - if (path1[pos1] == PATH_SEP_CHAR) - { - if (path2[pos2] != PATH_SEP_CHAR) - { - return false; - } - - /* Look for extra path chars */ - while (path1[++pos1]) - { - if (path1[pos1] != PATH_SEP_CHAR) - { - break; - } - } - while (path2[++pos2]) - { - if (path2[pos2] != PATH_SEP_CHAR) - { - break; - } - } - continue; - } - - /* If we're at a different non-alphanumeric, the next character MUST match */ - if (!isalpha(path1[pos1]) && (path1[pos1] != path2[pos2])) - { - return false; - } - - #ifdef WIN32 - if (toupper(path1[pos1]) != toupper(path2[pos2])) - #else - if (path1[pos1] != path2[pos2]) - #endif - { - return false; - } - - pos1++; - pos2++; - } -} - -size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - size_t len = vsnprintf(buffer, maxlength, fmt, ap); - va_end(ap); - - if (len >= maxlength) - { - len = maxlength - 1; - buffer[len] = '\0'; - } - - return len; -} - -inline bool pathchar_isalpha(char a) -{ - return (((a & 1<<7) == 0) && isalpha(a)); -} - -inline bool pathchar_sep(char a) -{ -#if defined WIN32 - return (a == '/' || a == '\\'); -#elif defined __linux__ - return (a == '/'); -#endif -} - -inline bool pathstr_isabsolute(const char *str) -{ -#if defined WIN32 - return (pathchar_isalpha(str[0]) - && str[1] == ':' - && pathchar_sep(str[2])); -#elif defined __linux__ - return (str[0] == '/'); -#endif -} - -inline bool pathchar_cmp(char a, char b) -{ -#if defined WIN32 - if (pathchar_isalpha(a) && pathchar_isalpha(b)) - { - return (tolower(a) == tolower(b)); - } - /* Either path separator is acceptable */ - if (pathchar_sep(a)) - { - return pathchar_sep(b); - } -#endif - return (a == b); -} - -/** - * @brief Forms a relative path given two absolute paths. - * - * @param buffer Buffer to store relative path in. - * @param maxlength Maximum length of the output buffer. - * @param relTo Destination folder to use as a working directory. - * Final folder name should not be pathchar-terminated. - * @param relFrom Source file or folder to use as a target. - * @return True on success, false on failure. - */ -bool UTIL_Relatize(char buffer[], - size_t maxlength, - const char *relTo, - const char *relFrom) -{ - /* We don't allow relative paths in here, force - * the user to resolve these himself! - */ - if (!pathstr_isabsolute(relTo) - || !pathstr_isabsolute(relFrom)) - { - return false; - } - -#if defined WIN32 - /* Relative paths across drives are not possible */ - if (!pathchar_cmp(relTo[0], relFrom[0])) - { - return false; - } - /* Get rid of the drive and semicolon part */ - relTo = &relTo[2]; - relFrom = &relFrom[2]; -#endif - - /* Eliminate the common root between the paths */ - const char *rootTo = NULL; - const char *rootFrom = NULL; - while (*relTo != '\0' && *relFrom != '\0') - { - /* If we get to a new path sequence, start over */ - if (pathchar_sep(*relTo) - && pathchar_sep(*relFrom)) - { - rootTo = relTo; - rootFrom = relFrom; - /* If the paths don't compare, stop looking for a common root */ - } else if (!pathchar_cmp(*relTo, *relFrom)) { - break; - } - relTo++; - relFrom++; - } - - /* NULLs shouldn't happen! */ - if (rootTo == NULL - || rootFrom == NULL) - { - return false; - } - - size_t numLevels = 0; - - /* The root case is special! - * Don't count anything from it. - */ - if (*(rootTo + 1) != '\0') - { - /* Search for how many levels we need to go up. - * Since the root pointer points to a '/', we increment - * the initial pointer by one. - */ - while (*rootTo != '\0') - { - if (pathchar_sep(*rootTo)) - { - /* Check for an improper trailing slash, - * just to be nice even though the user - * should NOT have done this! - */ - if (*(rootTo + 1) == '\0') - { - break; - } - numLevels++; - } - rootTo++; - } - } - - /* Now build the new relative path. */ - size_t len, total = 0; - while (numLevels--) - { - len = _snprintf(&buffer[total], maxlength - total, ".." PATH_SEP_STR); - if (len >= maxlength - total) - { - /* Not enough space in the buffer */ - return false; - } - total += len; - } - - /* Add the absolute path. */ - len = _snprintf(&buffer[total], maxlength - total, "%s", &rootFrom[1]); - if (len >= maxlength - total) - { - return false; - } - - return true; -} - -size_t UTIL_FormatArgs(char *buffer, size_t maxlength, const char *fmt, va_list params) -{ - size_t len = vsnprintf(buffer, maxlength, fmt, params); - - if (len >= maxlength) - { - len = maxlength - 1; - buffer[len] = '\0'; - } - - return len; -} diff --git a/sourcemm/util.h b/sourcemm/util.h deleted file mode 100644 index ed053bd..0000000 --- a/sourcemm/util.h +++ /dev/null @@ -1,76 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_UTIL_H -#define _INCLUDE_UTIL_H - -#include - -/** - * @brief Utility functions - * @file util.h - */ - -/** - * @brief Returns a pointer to the extension in a file name. - */ -const char *UTIL_GetExtension(const char *file); - -/** - * @brief Removes C-style comments from string. - */ -void UTIL_TrimComments(char *buffer); - -/** - * @brief Removes whitespace characters from left side of string. - */ -void UTIL_TrimLeft(char *buffer); - -/** - * @brief Removes whitespace characters from right side of string. - */ -void UTIL_TrimRight(char *buffer); - -/** - * @brief Breaks a string at the first space until it reaches a non-space. - */ -void UTIL_KeySplit(const char *str, char *buf1, size_t len1, char *buf2, size_t len2); - -/** - * @brief Compares two file paths. - */ -bool UTIL_PathCmp(const char *path1, const char *path2); - -/** - * @brief Same as snprintf except that it ensures the string buffer is null terminated. - */ -size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...); - -/** - * @brief Same as vsnprintf except that it ensures the string buffer is null terminated. - */ -size_t UTIL_FormatArgs(char *buffer, size_t maxlength, const char *fmt, va_list params); - -/** - * @brief Forms a relative path given two absolute paths. - * - * @param buffer Buffer to store relative path in. - * @param maxlength Maximum length of the output buffer. - * @param relTo Destination folder to use as a working directory. - * Final folder name should not be pathchar-terminated. - * @param relFrom Source file or folder to use as a target. - * @return True on success, false on failure. - */ -bool UTIL_Relatize(char buffer[], - size_t maxlength, - const char *relTo, - const char *relFrom); - -#endif //_INCLUDE_UTIL_H diff --git a/sourcemm/version.rc b/sourcemm/version.rc deleted file mode 100755 index 67529d4..0000000 --- a/sourcemm/version.rc +++ /dev/null @@ -1,101 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "winres.h" -#include "svn_version.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION SVN_FILE_VERSION - PRODUCTVERSION SVN_FILE_VERSION - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "000004b0" - BEGIN - VALUE "Comments", "Metamod: Source" - VALUE "FileDescription", "Metamod: Source" - VALUE "FileVersion", SVN_FILE_VERSION_STRING - VALUE "InternalName", "sourcemm" - VALUE "LegalCopyright", "Copyright (c) 2004-2007, Metamod: Source Development Team" - VALUE "OriginalFilename", "server.dll" - VALUE "ProductName", "Metamod: Source" - VALUE "ProductVersion", SVN_PRODUCT_VERSION - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0, 1200 - END -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""winres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED diff --git a/sourcemm/vsp_listener.cpp b/sourcemm/vsp_listener.cpp deleted file mode 100644 index 87cbc91..0000000 --- a/sourcemm/vsp_listener.cpp +++ /dev/null @@ -1,194 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include "vsp_listener.h" -#include "CPlugin.h" -#include "concommands.h" - -SH_DECL_HOOK0_void(ConCommand, Dispatch, SH_NOATTRIB, false); - -using namespace SourceMM; - -VSPListener g_VspListener; -ConCommand *g_plugin_unload = NULL; -bool g_bIsTryingToUnload; - -void InterceptPluginUnloads() -{ - g_bIsTryingToUnload = true; -} - -void InterceptPluginUnloads_Post() -{ - g_bIsTryingToUnload = false; -} - -VSPListener::VSPListener() -{ - m_Loaded = false; - m_Loadable = false; - m_bIsRootLoadMethod = false; -} - -void VSPListener::ClientActive(edict_t *pEntity) -{ -} - -PLUGIN_RESULT VSPListener::ClientCommand(edict_t *pEntity) -{ - return PLUGIN_CONTINUE; -} - -PLUGIN_RESULT VSPListener::ClientConnect(bool *bAllowConnect, edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen) -{ - return PLUGIN_CONTINUE; -} - -void VSPListener::ClientDisconnect(edict_t *pEntity) -{ -} - -void VSPListener::ClientPutInServer(edict_t *pEntity, char const *playername) -{ -} - -void VSPListener::ClientSettingsChanged(edict_t *pEdict) -{ -} - -void VSPListener::SetCommandClient(int index) -{ -} - -void VSPListener::GameFrame(bool simulating) -{ -} - -const char *VSPListener::GetPluginDescription() -{ - return "Metamod:Source Interface v" SOURCEMM_VERSION; -} - -bool VSPListener::IsLoaded() -{ - return m_Loaded; -} - -void VSPListener::LevelInit(char const *pMapName) -{ -} - -void VSPListener::LevelShutdown() -{ -} - -PLUGIN_RESULT VSPListener::NetworkIDValidated(const char *pszUserName, const char *pszNetworkID) -{ - return PLUGIN_CONTINUE; -} - -void VSPListener::Pause() -{ -} - -void VSPListener::UnPause() -{ -} - -void VSPListener::ServerActivate(edict_t *pEdictList, int edictCount, int clientMax) -{ -} - -void VSPListener::Unload() -{ - if (g_bIsTryingToUnload) - { - Error("Metamod:Source cannot be unloaded from VSP mode. Use \"meta unload\" to unload specific plugins.\n"); - return; - } - if (IsRootLoadMethod()) - { - if (g_plugin_unload != NULL) - { - SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads, false); - SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads_Post, true); - g_plugin_unload = NULL; - } - g_SMConVarAccessor.UnloadMetamodCommands(); - UnloadMetamod(false); - } - m_Loadable = true; - m_Loaded = false; - m_bIsRootLoadMethod = false; -} - -void VSPListener::SetLoadable(bool set) -{ - m_Loadable = set; -} - -bool VSPListener::IsRootLoadMethod() -{ - return m_bIsRootLoadMethod; -} - -bool VSPListener::Load(CreateInterfaceFn interfaceFactory, CreateInterfaceFn gameServerFactory) -{ - if (m_Loaded) - { - return false; - } - - if (!m_Loadable && !g_GameDll.loaded) - { - /* New loading mechanism, do a bunch o' stuff! */ - m_bIsRootLoadMethod = true; - m_Loaded = true; - SetLoadable(false); - if (!AlternatelyLoadMetamod(interfaceFactory, gameServerFactory)) - { - return false; - } - - ConCommandBase *pBase = g_Engine.icvar->GetCommands(); - while (pBase != NULL) - { - if (pBase->IsCommand() && strcmp(pBase->GetName(), "plugin_unload") == 0) - { - g_plugin_unload = (ConCommand *)pBase; - break; - } - pBase = const_cast(pBase->GetNext()); - } - - if (g_plugin_unload != NULL) - { - SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads, false); - SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads_Post, true); - } - - /* Ho ho ho... if we get here, set a new cvar version. */ - extern ConVar metamod_version; - char buffer[255]; - - UTIL_Format(buffer, sizeof(buffer), "%sV", metamod_version.GetString()); - metamod_version.SetValue(buffer); - } - - m_Loaded = true; - SetLoadable(false); - - if (!m_bIsRootLoadMethod) - { - g_PluginMngr.SetVSPAsLoaded(); - } - - return true; -} diff --git a/sourcemm/vsp_listener.h b/sourcemm/vsp_listener.h deleted file mode 100644 index f907855..0000000 --- a/sourcemm/vsp_listener.h +++ /dev/null @@ -1,51 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_SOURCEMM_VSPLISTENER_H_ -#define _INCLUDE_SOURCEMM_VSPLISTENER_H_ - -#include "sourcemm.h" -#include "iserverplugin.h" - -class VSPListener : public IServerPluginCallbacks -{ -public: - VSPListener(); -public: - virtual bool Load(CreateInterfaceFn interfaceFactory, CreateInterfaceFn gameServerFactory); - virtual void Unload(); - virtual void Pause(); - virtual void UnPause(); - virtual const char *GetPluginDescription(); - virtual void LevelInit(char const *pMapName); - virtual void ServerActivate(edict_t *pEdictList, int edictCount, int clientMax); - virtual void GameFrame(bool simulating); - virtual void LevelShutdown(void); - virtual void ClientActive(edict_t *pEntity); - virtual void ClientDisconnect(edict_t *pEntity); - virtual void ClientPutInServer(edict_t *pEntity, char const *playername); - virtual void SetCommandClient(int index); - virtual void ClientSettingsChanged(edict_t *pEdict); - virtual PLUGIN_RESULT ClientConnect(bool *bAllowConnect, edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen); - virtual PLUGIN_RESULT ClientCommand(edict_t *pEntity); - virtual PLUGIN_RESULT NetworkIDValidated(const char *pszUserName, const char *pszNetworkID); -public: - bool IsLoaded(); - void SetLoadable(bool loadable); - bool IsRootLoadMethod(); -private: - bool m_Loaded; - bool m_Loadable; - bool m_bIsRootLoadMethod; -}; - -extern VSPListener g_VspListener; - -#endif //_INCLUDE_SOURCEMM_VSPLISTENER_H_ diff --git a/update_tool/Makefile b/update_tool/Makefile deleted file mode 100644 index 02273b2..0000000 --- a/update_tool/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -#(C)2004-2007 SourceMM Development Team -# Makefile written by David "BAILOPAN" Anderson - -HL2SDK = ../../hl2sdk -SMM_ROOT = .. -SRCDS = ~/srcds - -### EDIT BELOW FOR OTHER PROJECTS ### - -OPT_FLAGS = -O2 -funroll-loops -s -pipe -GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden -DEBUG_FLAGS = -g -ggdb3 -CPP = gcc-4.1 -BINARY = sourcemm_update_tool_i486.so - -HL2PUB = $(HL2SDK)/public -HL2LIB = $(HL2SDK)/linux_sdk - -OBJECTS = update_tool.cpp - -LINK = vstdlib_i486.so tier0_i486.so -static-libgcc - -INCLUDE = -I. -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ - -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_ROOT) -I$(SMM_ROOT)/sourcehook - -ifeq "$(DEBUG)" "true" - BIN_DIR = Debug - CFLAGS = $(DEBUG_FLAGS) -else - BIN_DIR = Release - CFLAGS = $(OPT_FLAGS) -endif - -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) - -CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse - -ifeq "$(GCC_VERSION)" "4" - CFLAGS += $(GCC4_FLAGS) -endif - -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) - -$(BIN_DIR)/%.o: %.cpp - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< - -all: - mkdir -p $(BIN_DIR) - ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so - ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so - nasm api_link.asm -f elf -o $(BIN_DIR)/api_link.o -DLINUX - $(MAKE) sourcemm - rm -rf $(BINARY) - ln -sf $(BIN_DIR)/$(BINARY) $(BINARY) - -sourcemm: $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(BIN_DIR)/api_link.o $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) - -debug: - $(MAKE) all DEBUG=true - -default: all - -clean: - rm -rf Release/*.o - rm -rf Release/$(BINARY) - rm -rf Debug/*.o - rm -rf Debug/$(BINARY) diff --git a/update_tool/README.txt b/update_tool/README.txt deleted file mode 100644 index 9c974a4..0000000 --- a/update_tool/README.txt +++ /dev/null @@ -1,90 +0,0 @@ -This is the README file for sourcemm_update_tool. - -This tool will automatically correct gameinfo.txt when your server gets updated, and Valve's updater overwrites Metamod:Source's changes. This tool is experimental, and is thus a separate download for now. - -1. INSTALLATION - - a. Extract the entire package to your mod folder. The structure should look like: - - /addons/metamod/bin/sourcemm_update_tool.dll - /addons/metamod/bin/sourcemm_update_tool_i486.so - /addons/metamod/README.txt - /addons/sourcemm_update_tool.vdf - /sourcemm_updater.conf - - b. Open /sourcemm_updater.conf with your favorite text editor. Change the - "cstrike" folder to match your mod folder. - -2. CONFIGURATION - - The sourcemm_updater.conf file has two configuration options. - - mmpath - Set this to the path Metamod:Source is located in. - This defaults to addons/metamod/bin - restart - Set this to how the server should be restarted when - gameinfo.txt is patched. There are three options: - - quit - Execute "quit" in the console. Currently does not work. - never - Do not restart. - error - Generate an error message. Because of a bug in SourceDS, - this will generate a crash dump on Windows, but the server - will successfully quit. - -3. USAGE - - You do not need to do anything to use the updater tool. When your server starts, - it silently checks to see if Metamod:Source is loaded. If not, it will make sure - gameinfo.txt is correctly set. Then, depending on how it's configured, it will - kill the server. Most game server provides have auto-restart functionality on their - servers; if not, you will need to manually restart the server. - - The update tool unloads itself immediately after the server starts, so it will not - use any resources, and will not display when you type 'plugin_print'. - -4. TROUBLESHOOTING - - This tool is currently experimental. There are two possible problems. For - any issue you encounter, you should post a report here: - - http://bugs.alliedmods.net/index.php?project=4 - - a. The updater tool does not patch gameinfo.txt - - Verify that the tool is loading. You can do this by opening up the - sourcemm_update_tool.vdf file and copying its file path. Then, enter - the following command in your server console: - - plugin_load - - Example: - - plugin_load cstrike\addons\metamod\bin\sourcemm_update_tool - - If you get the following reply: - - Failed to load plugin "cstrike\addons\sourcemm_update_tool" - Unable to load plugin "cstrike\addons\sourcemm_update_tool" - - Then the tool is working, and you should post a bug report. If instead, - you get: - - Unable to load plugin "cstrike\addons\sourcemm_update_tool" - Unable to load plugin "cstrike\addons\sourcemm_update_tool" - - Then the tool is not loading properly, and the path you are trying to use - is not correct. - - b. The server always dies, and you can't start it at all - - The updater tool is either crashing or not repairing Metamod:Source - correctly. First, try changing the 'restart' line in sourcemm_updater.conf - to the following line: - - restart = never - - If that does not fix the problem, remove the .vdf file so the updater tool - will not be loaded. - - In either case, you should post a bug report containing your mod name and - your gameinfo.txt as an attachment. - \ No newline at end of file diff --git a/update_tool/api_link.asm b/update_tool/api_link.asm deleted file mode 100644 index 6f94053..0000000 --- a/update_tool/api_link.asm +++ /dev/null @@ -1,138 +0,0 @@ -;;;; -;; (C)2005-2007 AlliedModders LLC -;; By the Metamod:Source Development Team -;; This software is licensed under the zlib/libpng free software license. -;; -;; This assembly file is a short thunk wrapper to let us load as a VSP and exit quietly, -;; without any overhead of the rest of the interface, and also to prevent linking against -;; tierX or vstdlib -;;;; - -;;Exports: -;; void GetBaseDir(char *buffer, maxlength); -;; void *GetThisPointer(); -;;Imports: -;; void LoadFunction(); - -section .text - -global GetThisPointer, GetGameDir, ServerCommand -global _GetThisPointer, _GetGameDir, _ServerCommand -global _GetICvar, GetICvar -extern _LoadFunction - -GetICvar: -_GetICvar: - mov eax, [icvar] - ret - -GetThisPointer: -_GetThisPointer: - mov eax, GLOBAL_POINTER - ret - -GetGameDir: -_GetGameDir: - push ebp - mov ebp, esp - - mov ecx, [engine] ;get this pointer - mov edx, [ecx] ;get the vtable - push dword [ebp+12] ;push maxlenth - push dword [ebp+8] ;push buffer - %ifdef LINUX - push ecx ;push this pointer - %endif - call dword [edx+216] ;call IVEngineServer::GetGameDir - %ifdef LINUX - add esp, 12 ;correct stack - %endif - - pop ebp - ret - -ServerCommand -_ServerCommand: - push ebp - mov ebp, esp - - mov ecx, [engine] ;get this pointer - mov edx, [ecx] ;get the vtable - push dword [ebp+8] ;push string - %ifdef LINUX - push ecx ;push this pointer - %endif - call dword [edx+144] ;call IVEngineServer::ServerCommand - %ifdef LINUX - add esp, 8 ;correct stack - %endif - - pop ebp - ret - -thisLoadFunction: - push ebp - mov ebp, esp - - push edi - - ;get factory - %ifdef LINUX - mov edi, [ebp+12] - %else - mov edi, [ebp+8] - %endif - - push dword 0 ;NULL - push dword VENGINESERVER ;iface name - call edi ;call factory - add esp, 8 ;correct stack - - test eax, eax ;do we have a valid pointer? - jz .end ;no, bail out - - mov [engine], eax ;store the engine pointer - - push dword 0 ;NULL - push dword VENGINECVAR ;iface name - call edi ;call factory - add esp, 8 ;correct stack - - test eax, eax ;do we have a valid pointer? - jz .end ;no, bail out - - mov [icvar], eax ;store the icvar pointer - - call _LoadFunction - -.end: - ;We never load, never ever ever! - xor eax, eax - - pop edi - - pop ebp - %ifdef LINUX - ret - %else - retn 8 - %endif - -thisUnloadFunction: - ret - -section .data - INTERFACE_NAME DB "ISERVERPLUGINCALLBACKS001", 0 - VENGINESERVER DB "VEngineServer021", 0 - VENGINECVAR DB "VEngineCvar003", 0 - - VIRTUAL_TABLE DD thisLoadFunction - DD thisUnloadFunction - ;We don't need any more of the vtable here - - GLOBAL_POINTER DD VIRTUAL_TABLE - - temp_ret DD 0 - temp_ptr DD temp_ret - engine DD 0 - icvar DD 0 diff --git a/update_tool/msvc8/update_tool.sln b/update_tool/msvc8/update_tool.sln deleted file mode 100644 index 5250f8a..0000000 --- a/update_tool/msvc8/update_tool.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "update_tool", "update_tool.vcproj", "{DDD1563F-7EE2-4E76-BE57-ED84A2664A51}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DDD1563F-7EE2-4E76-BE57-ED84A2664A51}.Debug|Win32.ActiveCfg = Debug|Win32 - {DDD1563F-7EE2-4E76-BE57-ED84A2664A51}.Debug|Win32.Build.0 = Debug|Win32 - {DDD1563F-7EE2-4E76-BE57-ED84A2664A51}.Release|Win32.ActiveCfg = Release|Win32 - {DDD1563F-7EE2-4E76-BE57-ED84A2664A51}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/update_tool/msvc8/update_tool.vcproj b/update_tool/msvc8/update_tool.vcproj deleted file mode 100644 index 825e521..0000000 --- a/update_tool/msvc8/update_tool.vcproj +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/update_tool/sourcemm_update_tool.vdf b/update_tool/sourcemm_update_tool.vdf deleted file mode 100644 index 79a505c..0000000 --- a/update_tool/sourcemm_update_tool.vdf +++ /dev/null @@ -1,6 +0,0 @@ -//This is a sample VDF file. You need to edit "cstrike" to point to the mod you use. - -"Plugin" -{ - "file" "cstrike/addons/metamod/bin/sourcemm_update_tool" -} diff --git a/update_tool/sourcemm_updater.conf b/update_tool/sourcemm_updater.conf deleted file mode 100644 index bdf1eea..0000000 --- a/update_tool/sourcemm_updater.conf +++ /dev/null @@ -1,9 +0,0 @@ -;Use this to configure where Metamod resides, if you have -;changed its location -;mmpath = addons/metamod/bin - -;Use this to specify how the updater tool restarts SourceDS -; never - don't restart -; error - restart by generating a fatal error message -; quit - restart by issuing a "quit" server command -restart = error diff --git a/update_tool/update_tool.cpp b/update_tool/update_tool.cpp deleted file mode 100644 index ef6dbfe..0000000 --- a/update_tool/update_tool.cpp +++ /dev/null @@ -1,366 +0,0 @@ -#include -#include -#include -#include - -#if defined _MSC_VER -#define SEPCHAR "\\" -#define MMPATH "addons\\metamod\\bin" -#define WINDOWS_LEAN_AND_MEAN -#include -#elif defined __linux__ -#define SEPCHAR "/" -#define MMPATH "addons/metamod/bin" -#include -#endif - -#include - -extern "C" void GetGameDir(char *buffer, int maxlength); -extern "C" void *GetThisPointer(); -extern "C" void ServerCommand(const char *command); -extern "C" ICvar *GetICvar(); - -size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...); -bool s_isspace(char c); -bool RenameFile(const char *old, const char *newf); -bool RemoveFile(const char *file); - -/* This will be called by the thunk */ -#if defined _MSC_VER -extern "C" void LoadFunction() -#elif defined __linux__ -extern "C" void _LoadFunction() -#endif -{ - ICvar *pCvar = GetICvar(); - if (pCvar->FindVar("metamod_version") != NULL) - { - /* Already exists, bail out */ - return; - } - - char gamedir[260]; - char mmpath[260]; - - enum RestartMode - { - Restart_Never, - Restart_Error, - Restart_Quit, - }; - - RestartMode mode = Restart_Error; - - GetGameDir(gamedir, sizeof(gamedir)); - - /* Defaults */ - UTIL_Format(mmpath, sizeof(mmpath), "|gameinfo_path|%s", MMPATH); - - /* Read config */ - char config[260]; - UTIL_Format(config, sizeof(config), "%s" SEPCHAR "sourcemm_updater.conf", gamedir); - FILE *fpCfg = fopen(config, "rt"); - if (fpCfg) - { - char cfgLine[512]; - while (!feof(fpCfg) && fgets(cfgLine, sizeof(cfgLine), fpCfg) != NULL) - { - char key[255]; - - size_t keyLen = 0; - - /* Strip whitespace */ - char *input = cfgLine; - while (*input != '\0' && s_isspace(*input)) - { - input++; - } - - /* Strip ending whitespace */ - size_t len = strlen(input); - for (size_t i = len - 1; - i >= 0 && i < len; - i--) - { - if (s_isspace(input[i])) - { - input[i] = '\0'; - len--; - } else { - break; - } - } - - /* Eat stuff until we find a key */ - while (*input != '\0' && !s_isspace(*input)) - { - if (keyLen < sizeof(key)) - { - key[keyLen++] = *input; - } - input++; - } - key[keyLen] = '\0'; - - /* Eat spaces until we hit an = sign */ - while (*input != '\0' && *input != '=') - { - input++; - } - - if (*input == '=') - { - input++; - } - - /* Eat spaces again */ - while (*input != '\0' && s_isspace(*input)) - { - input++; - } - - /* Ignore comments */ - if (key[0] == ';') - { - continue; - } - - /* The rest is our key */ - if (strcmp(key, "mmpath") == 0) - { - UTIL_Format(mmpath, sizeof(mmpath), "%s", input); - } else if (strcmp(key, "restart") == 0) { - if (strcmp(input, "never") == 0) - { - mode = Restart_Never; - } else if (strcmp(input, "error") == 0) { - mode = Restart_Error; - } else if (strcmp(input, "quit") == 0) { - mode = Restart_Quit; - } - } - } - fclose(fpCfg); - } - - char old_path[260]; - char new_path[260]; - - UTIL_Format(old_path, sizeof(old_path), "%s" SEPCHAR "gameinfo.txt", gamedir); - UTIL_Format(new_path, sizeof(new_path), "%s" SEPCHAR "gameinfo.new.txt", gamedir); - - FILE *fp = fopen(old_path, "rt"); - - if (!fp) - { - return; - } - - FILE *op = fopen(new_path, "wt"); - if (!op) - { - fclose(fp); - return; - } - - enum ParseState - { - Parse_None, - Parse_Root, - Parse_GameInfo, - Parse_FileSystem, - Parse_SearchPaths, - }; - - ParseState ps = Parse_Root; - - char input[1024]; - char backup[1024]; - - bool bWroteOutput = false; - - while (!feof(fp) && fgets(input, sizeof(input), fp) != NULL) - { - UTIL_Format(backup, sizeof(backup), "%s", input); - - if (ps != Parse_None) - { - char *inbuf = input; - - /* Strip beginning whitespace */ - while (*inbuf != '\0' && s_isspace(*inbuf)) - { - inbuf++; - } - - /* Strip ending whitespace */ - size_t len = strlen(inbuf); - for (size_t i = len - 1; - i >= 0 && i < len; - i--) - { - if (s_isspace(inbuf[i])) - { - inbuf[i] = '\0'; - len--; - } else { - break; - } - } - - /* Strip quotation marks */ - if (inbuf[0] == '"' - && inbuf[len-1] == '"') - { - inbuf[len - 1] = '\0'; - inbuf = &inbuf[1]; - len -= 2; - } - - /* Do tests */ - if (ps == Parse_Root && strcmp(inbuf, "GameInfo") == 0) - { - ps = Parse_GameInfo; - } else if (ps == Parse_GameInfo && strcmp(inbuf, "FileSystem") == 0) { - ps = Parse_FileSystem; - } else if (ps == Parse_FileSystem && strcmp(inbuf, "SearchPaths") == 0) { - ps = Parse_SearchPaths; - } else if (ps == Parse_SearchPaths) { - const char *game = strstr(inbuf, "Game"); - if (game) - { - if (strstr(game, "GameBin") != NULL - && strstr(game, mmpath) != NULL) - { - fclose(op); - op = NULL; - break; /* Nothing more to do! */ - } else { - fputs("\t\t\tGameBin\t\t\t", op); - fputs(mmpath, op); - fputs("\n", op); - ps = Parse_None; - bWroteOutput = true; - } - } - } - } - - fputs(backup, op); - } - - if (!op) - { - /* Well, we can't really do anything else. Give up. */ - fclose(fp); - return; - } - - /* Close all streams */ - fclose(op); - fclose(fp); - - /* If we didn't change anything, abort here */ - if (!bWroteOutput) - { - RemoveFile(new_path); - return; - } - - /* Move the old file to a backup name */ - char backup_name[260]; - UTIL_Format(backup_name, sizeof(backup_name), "%s" SEPCHAR "gameinfo.backup.txt", gamedir); - - if (!RenameFile(old_path, backup_name)) - { - /* If we can't rename, just bail out. - * We don't want to overwrite the client's default - * without backing it up first! - */ - return; - } - if (!RenameFile(new_path, old_path)) - { - /* Since this failed, we really have no choice. - * Try and rename the old back. - */ - RenameFile(backup_name, old_path); - return; - } - RemoveFile(new_path); - - if (mode == Restart_Error) - { - Error("Server is restarting to load Metamod:Source"); - } else if (mode == Restart_Quit) { - ServerCommand("quit\n"); - } -} - -bool RemoveFile(const char *file) -{ -#if defined _MSC_VER - return (_unlink(file) == 0); -#else - return (unlink(file) == 0); -#endif -} - -bool s_isspace(char c) -{ - if ((unsigned)c & 0x80) - { - return false; - } else { - return isspace(c) ? true : false; - } -} - -size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - size_t len = vsnprintf(buffer, maxlength, fmt, ap); - va_end(ap); - - if (len >= maxlength) - { - len = maxlength - 1; - buffer[len] = '\0'; - } - - return len; -} - -bool RenameFile(const char *old, const char *newf) -{ -#if defined __linux__ - return (rename(old, newf) == 0); -#elif defined WIN32 - return (MoveFileA(old, newf) != 0); -#endif -} - -#if defined _MSC_VER -extern "C" __declspec(dllexport) void *CreateInterface(const char *iface, int *ret) -#elif defined __linux__ -extern "C" __attribute__((visibility("default"))) void *CreateInterface(const char *iface, int *ret) -#endif -{ - if (strcmp(iface, "ISERVERPLUGINCALLBACKS001") == 0) - { - if (ret) - { - *ret = 0; - } - return GetThisPointer(); - } - - if (ret) - { - *ret = 1; - } - return NULL; -} From fb9ac5221bc5d104d05e33cff53d744c9df6a9d6 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Fri, 22 Feb 2008 14:41:25 +0000 Subject: [PATCH 37/52] bumped modules.versions --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40665 --- modules.versions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules.versions b/modules.versions index eff06f3..29e45bc 100644 --- a/modules.versions +++ b/modules.versions @@ -1,7 +1,7 @@ [PRODUCT] major = 1 minor = 4 -revision = 3 +revision = 4 [sourcemm] folder = sourcemm From c3628a7a587571f3988d95e395d8501762d9fa0a Mon Sep 17 00:00:00 2001 From: David Anderson Date: Fri, 14 Mar 2008 17:07:21 +0000 Subject: [PATCH 38/52] fixed amb1479 - removed fcvar_replicated --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40679 --- sourcemm/concommands.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp index 6ef18a1..220f127 100644 --- a/sourcemm/concommands.cpp +++ b/sourcemm/concommands.cpp @@ -116,7 +116,7 @@ void SMConVarAccessor::UnregisterGameDLLCommands() } } -ConVar metamod_version("metamod_version", SOURCEMM_VERSION, FCVAR_REPLICATED | FCVAR_SPONLY | FCVAR_NOTIFY, "Metamod:Source Version"); +ConVar metamod_version("metamod_version", SOURCEMM_VERSION, FCVAR_SPONLY | FCVAR_NOTIFY, "Metamod:Source Version"); #if defined WIN32 || defined _WIN32 ConVar mm_pluginsfile("mm_pluginsfile", "addons\\metamod\\metaplugins.ini", FCVAR_SPONLY, "Metamod:Source Plugins File"); ConVar mm_basedir("mm_basedir", "addons\\metamod", FCVAR_SPONLY, "Metamod:Source base folder"); From 9959fca230a6e0e5d62f8f3b2007eb0998022c97 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Thu, 20 Mar 2008 17:35:42 +0000 Subject: [PATCH 39/52] Updated 1.4.x makefile for cross-compiling on 64-bit systems --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40681 --- sourcemm/Makefile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sourcemm/Makefile b/sourcemm/Makefile index ff2cd6b..0c8c2a6 100644 --- a/sourcemm/Makefile +++ b/sourcemm/Makefile @@ -1,7 +1,7 @@ #(C)2004-2007 SourceMM Development Team # Makefile written by David "BAILOPAN" Anderson -HL2SDK = ../../../hl2sdk +HL2SDK = ../../hl2sdk SMM_ROOT = .. SRCDS = ~/srcds @@ -34,7 +34,10 @@ endif GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) -CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse -Wno-uninitialized +CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \ + -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \ + -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Wno-uninitialized -Werror -fPIC \ + -fno-exceptions -fno-rtti -msse -m32 ifeq "$(GCC_VERSION)" "4" CFLAGS += $(GCC4_FLAGS) @@ -43,7 +46,7 @@ endif OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) $(BIN_DIR)/%.o: %.cpp - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< + $(CPP) $(INCLUDE) -m32 $(CFLAGS) -o $@ -c $< all: mkdir -p $(BIN_DIR) @@ -55,7 +58,7 @@ all: ln -sf $(BIN_DIR)/$(BINARY) $(BINARY) sourcemm: $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) + $(CPP) $(INCLUDE) -m32 $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) debug: $(MAKE) all DEBUG=true From 50d388ab8a197cc67adda6231681c1eb4ea61e60 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Thu, 20 Mar 2008 17:37:38 +0000 Subject: [PATCH 40/52] Err, oops. Removed extra -m32 --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40682 --- sourcemm/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sourcemm/Makefile b/sourcemm/Makefile index 0c8c2a6..56701c1 100644 --- a/sourcemm/Makefile +++ b/sourcemm/Makefile @@ -46,7 +46,7 @@ endif OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) $(BIN_DIR)/%.o: %.cpp - $(CPP) $(INCLUDE) -m32 $(CFLAGS) -o $@ -c $< + $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< all: mkdir -p $(BIN_DIR) From b0b66cbf47ad28ca55ef29dc555af5e31b1b13da Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Thu, 20 Mar 2008 23:08:35 +0000 Subject: [PATCH 41/52] Fixed amb1523 - Crash on The Ship due to unavailable IFileSystem functions which are used in KeyValues::LoadFromFile() --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40683 --- sourcemm/sourcemm.cpp | 48 +++++++++++++++++++++++++++++++++++++++++-- sourcemm/sourcemm.h | 3 ++- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index d1f3210..0e3abb4 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -46,6 +46,7 @@ void LevelShutdown_handler(); bool LevelInit_handler(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background); bool GameInit_handler(); void LookForVDFs(const char *dir); +bool KVLoadFromFile(KeyValues *kv, IBaseFileSystem *filesystem, const char *resourceName, const char *pathID = NULL); GameDllInfo g_GameDll = {false, NULL, NULL, NULL, NULL}; EngineInfo g_Engine; @@ -167,6 +168,9 @@ bool StartupMetamod(CreateInterfaceFn engineFactory, bool bWaitForGameInit) g_Engine.loaded = true; + /* The Ship is the only game known at this time that uses the pre-Episode One engine */ + g_Engine.original = strcmp(CommandLine()->ParmValue("-game", "hl2"), "ship") == 0; + ConCommandBaseMgr::OneTimeInit(static_cast(&g_SMConVarAccessor)); g_GameDllPatch = SH_GET_CALLCLASS(g_GameDll.pGameDLL); @@ -625,14 +629,24 @@ void DLLShutdown_handler() void LoadFromVDF(const char *file) { PluginId id; - bool already; + bool already, kvfileLoaded; KeyValues *pValues; const char *plugin_file, *alias; char full_path[256], error[256]; pValues = new KeyValues("Metamod Plugin"); - if (!pValues->LoadFromFile(baseFs, file)) + if (g_Engine.original) + { + /* The Ship must use a special version of this function */ + kvfileLoaded = KVLoadFromFile(pValues, baseFs, file); + } + else + { + kvfileLoaded = pValues->LoadFromFile(baseFs, file); + } + + if (!kvfileLoaded) { pValues->deleteThis(); return; @@ -751,6 +765,36 @@ void LookForVDFs(const char *dir) #endif } +bool KVLoadFromFile(KeyValues *kv, IBaseFileSystem *filesystem, const char *resourceName, const char *pathID) +{ + Assert(filesystem); +#ifdef _MSC_VER + Assert(_heapchk() == _HEAPOK); +#endif + + FileHandle_t f = filesystem->Open(resourceName, "rb", pathID); + if (!f) + return false; + + // load file into a null-terminated buffer + int fileSize = filesystem->Size(f); + char *buffer = (char *)MemAllocScratch(fileSize + 1); + + Assert(buffer); + + filesystem->Read(buffer, fileSize, f); // read into local buffer + + buffer[fileSize] = 0; // null terminate file as EOF + + filesystem->Close( f ); // close file after reading + + bool retOK = kv->LoadFromBuffer( resourceName, buffer, filesystem ); + + MemFreeScratch(); + + return retOK; +} + int LoadPluginsFromFile(const char *_file) { FILE *fp; diff --git a/sourcemm/sourcemm.h b/sourcemm/sourcemm.h index 05fd0b6..61a58c7 100644 --- a/sourcemm/sourcemm.h +++ b/sourcemm/sourcemm.h @@ -74,11 +74,12 @@ struct GameDllInfo /** @brief Stores information about the HL2 Engine pointers */ struct EngineInfo { - EngineInfo() : loaded(false), + EngineInfo() : loaded(false), original(false), engineFactory(NULL), physicsFactory(NULL), fileSystemFactory(NULL), pGlobals(NULL), icvar(NULL), engine(NULL) { }; bool loaded; + bool original; CreateInterfaceFn engineFactory; CreateInterfaceFn physicsFactory; CreateInterfaceFn fileSystemFactory; From 61b28a7c0d840215827401c85ed2831e2156b804 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Fri, 21 Mar 2008 04:51:02 +0000 Subject: [PATCH 42/52] Updated changelog --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40684 --- sourcemm/changelog.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sourcemm/changelog.txt b/sourcemm/changelog.txt index 6f80841..f211ffa 100644 --- a/sourcemm/changelog.txt +++ b/sourcemm/changelog.txt @@ -1,3 +1,8 @@ +2008/??/?? 1.4.4: + - Fixed a bug where loading plugins using VDF files caused Metamod:Source + to crash on The Ship. + - Removed FCVAR_REPLICATED from MM:S convars. + 2008/01/23 1.4.3: - Metamod:Source can now be loaded via a .vdf instead of gameinfo.txt. - Added new plugin loading mechanism via .vdf files in the metamod folder. From 5524ec8d8ee9ca4f05e968516f2223e24bd65d82 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Wed, 26 Mar 2008 05:04:35 +0000 Subject: [PATCH 43/52] Fixed amb1534 - VDF files with a ".vdf" that wasn't at the very end of the filename were being opened by MM:S. This was due to the use of strstr. --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40686 --- sourcemm/sourcemm.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index 0e3abb4..6daed69 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -704,6 +704,7 @@ void LookForVDFs(const char *dir) HANDLE hFind; WIN32_FIND_DATA fd; char error[255]; + int extidx; g_SmmAPI.PathFormat(path, sizeof(path), "%s\\*.*", dir); if ((hFind = FindFirstFile(path, &fd)) == INVALID_HANDLE_VALUE) @@ -727,7 +728,8 @@ void LookForVDFs(const char *dir) { continue; } - if (strstr(fd.cFileName, ".vdf") == NULL) + extidx = strlen(fd.cFileName) - 4; + if (extidx < 0 || stricmp(&fd.cFileName[extidx], ".vdf")) { continue; } @@ -753,7 +755,8 @@ void LookForVDFs(const char *dir) { continue; } - if (strstr(pEnt->d_name, ".vdf") == NULL) + extidx = strlen(fd.cFileName) - 4; + if (extidx < 0 || stricmp(&fd.cFileName[extidx], ".vdf")) { continue; } From b67c2209d08a4b2e96d3d489106fdbd8665e28d5 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Wed, 26 Mar 2008 05:16:33 +0000 Subject: [PATCH 44/52] Updated 1.4.4 changelog --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40688 --- sourcemm/changelog.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sourcemm/changelog.txt b/sourcemm/changelog.txt index f211ffa..e0917c7 100644 --- a/sourcemm/changelog.txt +++ b/sourcemm/changelog.txt @@ -1,6 +1,9 @@ 2008/??/?? 1.4.4: - Fixed a bug where loading plugins using VDF files caused Metamod:Source to crash on The Ship. + - Fixed a bug where VDF files were opened by MM:S even if the .vdf extension + was not at the very end of the filename. For example, "plugin.vdf.disabled" + would have been opened in previous versions. - Removed FCVAR_REPLICATED from MM:S convars. 2008/01/23 1.4.3: From b7cce2b3f8487b9c28bccf813c13342eb65b9763 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Wed, 26 Mar 2008 21:16:13 +0000 Subject: [PATCH 45/52] Updated license year... --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40690 --- sourcehook/generate/sh_memfuncinfo.h | 2 +- sourcehook/generate/sh_memfuncinfo.hxx | 2 +- sourcehook/generate/sourcehook.h | 2 +- sourcehook/generate/sourcehook.hxx | 2 +- sourcehook/sh_list.h | 2 +- sourcehook/sh_memfuncinfo.h | 2 +- sourcehook/sh_memory.h | 2 +- sourcehook/sh_stack.h | 2 +- sourcehook/sh_string.h | 2 +- sourcehook/sh_tinyhash.h | 2 +- sourcehook/sh_vector.h | 2 +- sourcehook/sourcehook.cpp | 2 +- sourcehook/sourcehook.h | 2 +- sourcehook/sourcehook_impl.h | 2 +- sourcehook/test/Makefile | 2 +- sourcehook/test/testevents.h | 2 +- sourcemm/CPlugin.cpp | 2 +- sourcemm/CPlugin.h | 2 +- sourcemm/CSmmAPI.cpp | 2 +- sourcemm/CSmmAPI.h | 2 +- sourcemm/IPluginManager.h | 2 +- sourcemm/ISmmAPI.h | 2 +- sourcemm/ISmmPlugin.h | 2 +- sourcemm/LICENSE.txt | 2 +- sourcemm/Makefile | 2 +- sourcemm/concommands.cpp | 2 +- sourcemm/concommands.h | 2 +- sourcemm/oslink.cpp | 2 +- sourcemm/oslink.h | 2 +- sourcemm/sample_mm/LICENSE.txt | 2 +- sourcemm/sample_mm/Makefile | 2 +- sourcemm/sample_mm/SamplePlugin.cpp | 2 +- sourcemm/sample_mm/SamplePlugin.h | 2 +- sourcemm/sample_mm/cvars.cpp | 2 +- sourcemm/sample_mm/cvars.h | 2 +- sourcemm/sourcemm.cpp | 2 +- sourcemm/sourcemm.h | 2 +- sourcemm/stub_mm/LICENSE.txt | 2 +- sourcemm/stub_mm/Makefile | 2 +- sourcemm/stub_mm/stub_mm.cpp | 2 +- sourcemm/stub_mm/stub_mm.h | 2 +- sourcemm/util.cpp | 2 +- sourcemm/util.h | 2 +- sourcemm/version.rc | 3 ++- sourcemm/vsp_listener.cpp | 2 +- sourcemm/vsp_listener.h | 2 +- 46 files changed, 47 insertions(+), 46 deletions(-) diff --git a/sourcehook/generate/sh_memfuncinfo.h b/sourcehook/generate/sh_memfuncinfo.h index fbfddab..a2f2d8c 100644 --- a/sourcehook/generate/sh_memfuncinfo.h +++ b/sourcehook/generate/sh_memfuncinfo.h @@ -1,5 +1,5 @@ /* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/generate/sh_memfuncinfo.hxx b/sourcehook/generate/sh_memfuncinfo.hxx index 5ed37ab..19e6e1e 100644 --- a/sourcehook/generate/sh_memfuncinfo.hxx +++ b/sourcehook/generate/sh_memfuncinfo.hxx @@ -1,5 +1,5 @@ /* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/generate/sourcehook.h b/sourcehook/generate/sourcehook.h index 49e6813..92ff0c0 100644 --- a/sourcehook/generate/sourcehook.h +++ b/sourcehook/generate/sourcehook.h @@ -1,5 +1,5 @@ /* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/generate/sourcehook.hxx b/sourcehook/generate/sourcehook.hxx index 1431c12..0c767a0 100755 --- a/sourcehook/generate/sourcehook.hxx +++ b/sourcehook/generate/sourcehook.hxx @@ -1,5 +1,5 @@ /* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/sh_list.h b/sourcehook/sh_list.h index 12a56f2..b672361 100644 --- a/sourcehook/sh_list.h +++ b/sourcehook/sh_list.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/sh_memfuncinfo.h b/sourcehook/sh_memfuncinfo.h index fbfddab..a2f2d8c 100644 --- a/sourcehook/sh_memfuncinfo.h +++ b/sourcehook/sh_memfuncinfo.h @@ -1,5 +1,5 @@ /* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/sh_memory.h b/sourcehook/sh_memory.h index d626bb9..d2d3531 100644 --- a/sourcehook/sh_memory.h +++ b/sourcehook/sh_memory.h @@ -1,5 +1,5 @@ /* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/sh_stack.h b/sourcehook/sh_stack.h index ffbeecf..8ab9168 100644 --- a/sourcehook/sh_stack.h +++ b/sourcehook/sh_stack.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/sh_string.h b/sourcehook/sh_string.h index 220b4ee..79f96b8 100755 --- a/sourcehook/sh_string.h +++ b/sourcehook/sh_string.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/sh_tinyhash.h b/sourcehook/sh_tinyhash.h index 634b253..70e2ee8 100644 --- a/sourcehook/sh_tinyhash.h +++ b/sourcehook/sh_tinyhash.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/sh_vector.h b/sourcehook/sh_vector.h index 26b16b9..03a3896 100755 --- a/sourcehook/sh_vector.h +++ b/sourcehook/sh_vector.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/sourcehook.cpp b/sourcehook/sourcehook.cpp index d7f8e7f..f945296 100644 --- a/sourcehook/sourcehook.cpp +++ b/sourcehook/sourcehook.cpp @@ -1,5 +1,5 @@ /* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/sourcehook.h b/sourcehook/sourcehook.h index 49e6813..92ff0c0 100644 --- a/sourcehook/sourcehook.h +++ b/sourcehook/sourcehook.h @@ -1,5 +1,5 @@ /* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/sourcehook_impl.h b/sourcehook/sourcehook_impl.h index 2c30900..92d6a5f 100644 --- a/sourcehook/sourcehook_impl.h +++ b/sourcehook/sourcehook_impl.h @@ -1,5 +1,5 @@ /* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcehook/test/Makefile b/sourcehook/test/Makefile index 6c859b0..323625a 100644 --- a/sourcehook/test/Makefile +++ b/sourcehook/test/Makefile @@ -1,4 +1,4 @@ -#(C)2004-2007 SourceMM Development Team +#(C)2004-2008 SourceMM Development Team # Makefile written by David "BAILOPAN" Anderson and Pavol Marko OPT_FLAGS = -O3 -funroll-loops -s -pipe diff --git a/sourcehook/test/testevents.h b/sourcehook/test/testevents.h index ef7c891..e555a49 100644 --- a/sourcehook/test/testevents.h +++ b/sourcehook/test/testevents.h @@ -1,5 +1,5 @@ /* ======== SourceHook ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/CPlugin.cpp b/sourcemm/CPlugin.cpp index ee4077d..e770749 100644 --- a/sourcemm/CPlugin.cpp +++ b/sourcemm/CPlugin.cpp @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/CPlugin.h b/sourcemm/CPlugin.h index 9b8335b..12f810b 100644 --- a/sourcemm/CPlugin.h +++ b/sourcemm/CPlugin.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/CSmmAPI.cpp b/sourcemm/CSmmAPI.cpp index 7538f15..5cb9493 100644 --- a/sourcemm/CSmmAPI.cpp +++ b/sourcemm/CSmmAPI.cpp @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/CSmmAPI.h b/sourcemm/CSmmAPI.h index 914fb7f..1a2d29e 100644 --- a/sourcemm/CSmmAPI.h +++ b/sourcemm/CSmmAPI.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/IPluginManager.h b/sourcemm/IPluginManager.h index fd0662f..226ad61 100644 --- a/sourcemm/IPluginManager.h +++ b/sourcemm/IPluginManager.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/ISmmAPI.h b/sourcemm/ISmmAPI.h index e6e90a7..fa616ef 100644 --- a/sourcemm/ISmmAPI.h +++ b/sourcemm/ISmmAPI.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/ISmmPlugin.h b/sourcemm/ISmmPlugin.h index dea7700..7665f9a 100644 --- a/sourcemm/ISmmPlugin.h +++ b/sourcemm/ISmmPlugin.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== -* Copyright (C) 2004-2007 Metamod:Source Development Team +* Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/LICENSE.txt b/sourcemm/LICENSE.txt index bf9f1fd..2618fa4 100644 --- a/sourcemm/LICENSE.txt +++ b/sourcemm/LICENSE.txt @@ -1,4 +1,4 @@ -The software is Copyright (C) 2004-2007, Metamod:Source Development Team. +The software is Copyright (C) 2004-2008, Metamod:Source Development Team. Metamod:Source is distributed under the "zLib/libpng" license, which is reproduced below: diff --git a/sourcemm/Makefile b/sourcemm/Makefile index 56701c1..d97b384 100644 --- a/sourcemm/Makefile +++ b/sourcemm/Makefile @@ -1,4 +1,4 @@ -#(C)2004-2007 SourceMM Development Team +#(C)2004-2008 SourceMM Development Team # Makefile written by David "BAILOPAN" Anderson HL2SDK = ../../hl2sdk diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp index 220f127..e21bb31 100644 --- a/sourcemm/concommands.cpp +++ b/sourcemm/concommands.cpp @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/concommands.h b/sourcemm/concommands.h index 6256186..e3488e2 100644 --- a/sourcemm/concommands.h +++ b/sourcemm/concommands.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/oslink.cpp b/sourcemm/oslink.cpp index 9c8ec16..049b743 100644 --- a/sourcemm/oslink.cpp +++ b/sourcemm/oslink.cpp @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/oslink.h b/sourcemm/oslink.h index 7c317ed..3529456 100644 --- a/sourcemm/oslink.h +++ b/sourcemm/oslink.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/sample_mm/LICENSE.txt b/sourcemm/sample_mm/LICENSE.txt index bf9f1fd..2618fa4 100644 --- a/sourcemm/sample_mm/LICENSE.txt +++ b/sourcemm/sample_mm/LICENSE.txt @@ -1,4 +1,4 @@ -The software is Copyright (C) 2004-2007, Metamod:Source Development Team. +The software is Copyright (C) 2004-2008, Metamod:Source Development Team. Metamod:Source is distributed under the "zLib/libpng" license, which is reproduced below: diff --git a/sourcemm/sample_mm/Makefile b/sourcemm/sample_mm/Makefile index 8d6f411..fb828ac 100644 --- a/sourcemm/sample_mm/Makefile +++ b/sourcemm/sample_mm/Makefile @@ -1,4 +1,4 @@ -#(C)2004-2007 SourceMM Development Team +#(C)2004-2008 SourceMM Development Team # Makefile written by David "BAILOPAN" Anderson HL2SDK = ../../../hl2sdk diff --git a/sourcemm/sample_mm/SamplePlugin.cpp b/sourcemm/sample_mm/SamplePlugin.cpp index 62c874e..3535159 100644 --- a/sourcemm/sample_mm/SamplePlugin.cpp +++ b/sourcemm/sample_mm/SamplePlugin.cpp @@ -1,5 +1,5 @@ /* ======== sample_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/sample_mm/SamplePlugin.h b/sourcemm/sample_mm/SamplePlugin.h index 74f5af1..96c480d 100644 --- a/sourcemm/sample_mm/SamplePlugin.h +++ b/sourcemm/sample_mm/SamplePlugin.h @@ -1,5 +1,5 @@ /* ======== sample_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/sample_mm/cvars.cpp b/sourcemm/sample_mm/cvars.cpp index 4a6c16a..f887bdf 100644 --- a/sourcemm/sample_mm/cvars.cpp +++ b/sourcemm/sample_mm/cvars.cpp @@ -1,5 +1,5 @@ /* ======== sample_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/sample_mm/cvars.h b/sourcemm/sample_mm/cvars.h index 9bc6286..dc036ab 100644 --- a/sourcemm/sample_mm/cvars.h +++ b/sourcemm/sample_mm/cvars.h @@ -1,5 +1,5 @@ /* ======== sample_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index 6daed69..e44d7bb 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/sourcemm.h b/sourcemm/sourcemm.h index 61a58c7..eaab297 100644 --- a/sourcemm/sourcemm.h +++ b/sourcemm/sourcemm.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/stub_mm/LICENSE.txt b/sourcemm/stub_mm/LICENSE.txt index bf9f1fd..2618fa4 100644 --- a/sourcemm/stub_mm/LICENSE.txt +++ b/sourcemm/stub_mm/LICENSE.txt @@ -1,4 +1,4 @@ -The software is Copyright (C) 2004-2007, Metamod:Source Development Team. +The software is Copyright (C) 2004-2008, Metamod:Source Development Team. Metamod:Source is distributed under the "zLib/libpng" license, which is reproduced below: diff --git a/sourcemm/stub_mm/Makefile b/sourcemm/stub_mm/Makefile index eec1eb9..3b9c67e 100644 --- a/sourcemm/stub_mm/Makefile +++ b/sourcemm/stub_mm/Makefile @@ -1,4 +1,4 @@ -#(C)2004-2007 SourceMM Development Team +#(C)2004-2008 SourceMM Development Team # Makefile written by David "BAILOPAN" Anderson HL2SDK = ../../../hl2sdk diff --git a/sourcemm/stub_mm/stub_mm.cpp b/sourcemm/stub_mm/stub_mm.cpp index f43ed53..0143a76 100644 --- a/sourcemm/stub_mm/stub_mm.cpp +++ b/sourcemm/stub_mm/stub_mm.cpp @@ -1,5 +1,5 @@ /* ======== stub_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/stub_mm/stub_mm.h b/sourcemm/stub_mm/stub_mm.h index fec6701..a5436dd 100644 --- a/sourcemm/stub_mm/stub_mm.h +++ b/sourcemm/stub_mm/stub_mm.h @@ -1,5 +1,5 @@ /* ======== stub_mm ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/util.cpp b/sourcemm/util.cpp index fadcf26..6f1cdaa 100644 --- a/sourcemm/util.cpp +++ b/sourcemm/util.cpp @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/util.h b/sourcemm/util.h index ed053bd..571179f 100644 --- a/sourcemm/util.h +++ b/sourcemm/util.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/version.rc b/sourcemm/version.rc index 67529d4..4ce03de 100755 --- a/sourcemm/version.rc +++ b/sourcemm/version.rc @@ -47,7 +47,7 @@ BEGIN VALUE "FileDescription", "Metamod: Source" VALUE "FileVersion", SVN_FILE_VERSION_STRING VALUE "InternalName", "sourcemm" - VALUE "LegalCopyright", "Copyright (c) 2004-2007, Metamod: Source Development Team" + VALUE "LegalCopyright", "Copyright (c) 2004-2008, Metamod: Source Development Team" VALUE "OriginalFilename", "server.dll" VALUE "ProductName", "Metamod: Source" VALUE "ProductVersion", SVN_PRODUCT_VERSION @@ -99,3 +99,4 @@ END ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED + diff --git a/sourcemm/vsp_listener.cpp b/sourcemm/vsp_listener.cpp index 87cbc91..947fb49 100644 --- a/sourcemm/vsp_listener.cpp +++ b/sourcemm/vsp_listener.cpp @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng diff --git a/sourcemm/vsp_listener.h b/sourcemm/vsp_listener.h index f907855..8c9a0b8 100644 --- a/sourcemm/vsp_listener.h +++ b/sourcemm/vsp_listener.h @@ -1,5 +1,5 @@ /* ======== SourceMM ======== - * Copyright (C) 2004-2007 Metamod:Source Development Team + * Copyright (C) 2004-2008 Metamod:Source Development Team * No warranties of any kind * * License: zlib/libpng From cb42757f830beed54154d64d23cca4f16c45e0ac Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Sat, 12 Jul 2008 08:51:11 +0000 Subject: [PATCH 46/52] Fixed Linux build, argh --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40697 --- sourcemm/sourcemm.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index e44d7bb..1d504d9 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -699,14 +699,14 @@ void LoadFromVDF(const char *file) void LookForVDFs(const char *dir) { char path[MAX_PATH]; + int extidx; #if defined _MSC_VER HANDLE hFind; WIN32_FIND_DATA fd; char error[255]; - int extidx; - g_SmmAPI.PathFormat(path, sizeof(path), "%s\\*.*", dir); + g_Metamod.PathFormat(path, sizeof(path), "%s\\*.*", dir); if ((hFind = FindFirstFile(path, &fd)) == INVALID_HANDLE_VALUE) { DWORD dw = GetLastError(); @@ -733,8 +733,8 @@ void LookForVDFs(const char *dir) { continue; } - g_SmmAPI.PathFormat(path, sizeof(path), "%s\\%s", dir, fd.cFileName); - LoadFromVDF(path); + g_Metamod.PathFormat(path, sizeof(path), "%s\\%s", dir, fd.cFileName); + ProcessVDF(path); } while (FindNextFile(hFind, &fd)); FindClose(hFind); @@ -755,13 +755,13 @@ void LookForVDFs(const char *dir) { continue; } - extidx = strlen(fd.cFileName) - 4; - if (extidx < 0 || stricmp(&fd.cFileName[extidx], ".vdf")) + extidx = strlen(pEnt->d_name) - 4; + if (extidx < 0 || stricmp(&pEnt->d_name[extidx], ".vdf")) { continue; } - g_SmmAPI.PathFormat(path, sizeof(path), "%s/%s", dir, pEnt->d_name); - LoadFromVDF(path); + g_Metamod.PathFormat(path, sizeof(path), "%s/%s", dir, pEnt->d_name); + ProcessVDF(path); } closedir(pDir); From ee77452d9215ceae48471b58bffceece5c6f3e52 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Sat, 12 Jul 2008 08:59:30 +0000 Subject: [PATCH 47/52] Err, fixed Linux build for real --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40699 --- sourcemm/sourcemm.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index 1d504d9..33992c5 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -706,7 +706,7 @@ void LookForVDFs(const char *dir) WIN32_FIND_DATA fd; char error[255]; - g_Metamod.PathFormat(path, sizeof(path), "%s\\*.*", dir); + g_SmmAPI.PathFormat(path, sizeof(path), "%s\\*.*", dir); if ((hFind = FindFirstFile(path, &fd)) == INVALID_HANDLE_VALUE) { DWORD dw = GetLastError(); @@ -733,8 +733,8 @@ void LookForVDFs(const char *dir) { continue; } - g_Metamod.PathFormat(path, sizeof(path), "%s\\%s", dir, fd.cFileName); - ProcessVDF(path); + g_SmmAPI.PathFormat(path, sizeof(path), "%s\\%s", dir, fd.cFileName); + LoadFromVDF(path); } while (FindNextFile(hFind, &fd)); FindClose(hFind); @@ -760,8 +760,8 @@ void LookForVDFs(const char *dir) { continue; } - g_Metamod.PathFormat(path, sizeof(path), "%s/%s", dir, pEnt->d_name); - ProcessVDF(path); + g_SmmAPI.PathFormat(path, sizeof(path), "%s/%s", dir, pEnt->d_name); + LoadFromVDF(path); } closedir(pDir); From abd8737128231252202cdad59cdd395a5641df7e Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Sun, 13 Jul 2008 07:43:26 +0000 Subject: [PATCH 48/52] Fixed crash when loading plugins built for MM:S 1.3 or older (API ver <= 9) --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40701 --- sourcemm/CPlugin.cpp | 2 +- sourcemm/changelog.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sourcemm/CPlugin.cpp b/sourcemm/CPlugin.cpp index e770749..8df7a6f 100644 --- a/sourcemm/CPlugin.cpp +++ b/sourcemm/CPlugin.cpp @@ -414,7 +414,7 @@ CPluginManager::CPlugin *CPluginManager::_Load(const char *file, PluginId source event != pl->m_Events.end(); event++) { - if ((*event).got_vsp) + if (pl->m_API->GetApiVersion() < 10 || (*event).got_vsp) { continue; } diff --git a/sourcemm/changelog.txt b/sourcemm/changelog.txt index e0917c7..4961de2 100644 --- a/sourcemm/changelog.txt +++ b/sourcemm/changelog.txt @@ -1,4 +1,6 @@ 2008/??/?? 1.4.4: + - Fixed a bug where loading plugins built for MM:S 1.3 or older (API ver <= 9) + would cause a crash. - Fixed a bug where loading plugins using VDF files caused Metamod:Source to crash on The Ship. - Fixed a bug where VDF files were opened by MM:S even if the .vdf extension From 4e21dbaf871607a0300fad9a1b761734c283f384 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Sat, 26 Jul 2008 05:45:07 +0000 Subject: [PATCH 49/52] -Fixed amb1416: Fixed a class of crashes caused by improper cvar removal handling. This encompasses a lot of crazy internal changes. Thank goodness I never have to do this for OB. -Removed unused update tool -Bumped version for tagging --HG-- branch : sourcemm-1.4.4 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.4%40705 --- sourcemm/CSmmAPI.cpp | 65 +---- sourcemm/changelog.txt | 11 +- sourcemm/concommands.cpp | 211 +++++++-------- sourcemm/concommands.h | 19 +- sourcemm/convar_smm.h | 7 +- sourcemm/sourcemm.cpp | 17 +- sourcemm/sourcemm.h | 3 + sourcemm/svn_version.h | 10 +- sourcemm/util.cpp | 16 ++ sourcemm/util.h | 54 ++++ update_tool/Makefile | 68 ----- update_tool/README.txt | 90 ------- update_tool/api_link.asm | 138 ---------- update_tool/msvc8/update_tool.sln | 20 -- update_tool/msvc8/update_tool.vcproj | 203 --------------- update_tool/sourcemm_update_tool.vdf | 6 - update_tool/sourcemm_updater.conf | 9 - update_tool/update_tool.cpp | 366 --------------------------- 18 files changed, 227 insertions(+), 1086 deletions(-) delete mode 100644 update_tool/Makefile delete mode 100644 update_tool/README.txt delete mode 100644 update_tool/api_link.asm delete mode 100644 update_tool/msvc8/update_tool.sln delete mode 100644 update_tool/msvc8/update_tool.vcproj delete mode 100644 update_tool/sourcemm_update_tool.vdf delete mode 100644 update_tool/sourcemm_updater.conf delete mode 100644 update_tool/update_tool.cpp diff --git a/sourcemm/CSmmAPI.cpp b/sourcemm/CSmmAPI.cpp index 5cb9493..16b5894 100644 --- a/sourcemm/CSmmAPI.cpp +++ b/sourcemm/CSmmAPI.cpp @@ -225,22 +225,6 @@ void *CSmmAPI::MetaFactory(const char *iface, int *_ret, PluginId *id) #define ENGINEW32_OFFS 38 #define IA32_CALL 0xE8 -bool vcmp(const void *_addr1, const void *_addr2, size_t len) -{ - unsigned char *addr1 = (unsigned char *)_addr1; - unsigned char *addr2 = (unsigned char *)_addr2; - - for (size_t i=0; iGetCallback(); ptr = (unsigned char *)callback; #ifdef OS_LINUX - if (vcmp(ptr, ENGINE486_SIG, SIGLEN)) + if (UTIL_VerifySignature(ptr, ENGINE486_SIG, SIGLEN)) { offs = ENGINE486_OFFS; } - else if (vcmp(ptr, ENGINE686_SIG, SIGLEN)) + else if (UTIL_VerifySignature(ptr, ENGINE686_SIG, SIGLEN)) { offs = ENGINE686_OFFS; } - else if (vcmp(ptr, ENGINEAMD_SIG, SIGLEN)) + else if (UTIL_VerifySignature(ptr, ENGINEAMD_SIG, SIGLEN)) { offs = ENGINEAMD_OFFS; } #elif defined OS_WIN32 // Only one Windows engine binary so far... - if (vcmp(ptr, ENGINEW32_SIG, SIGLEN)) + if (UTIL_VerifySignature(ptr, ENGINEW32_SIG, SIGLEN)) { offs = ENGINEW32_OFFS; } @@ -541,45 +525,22 @@ int CSmmAPI::GetGameDLLVersion() /* :TODO: Make this prettier */ bool CSmmAPI::CacheUserMessages() { - SourceHook::MemFuncInfo info = {true, -1, 0, 0}; - SourceHook::GetFuncInfo(&IServerGameDLL::GetUserMessageInfo, info); - - /* Get address of original GetUserMessageInfo() */ - char *vfunc = reinterpret_cast(g_GameDllPatch->GetOrigFunc(info.vtbloffs, info.vtblindex)); - - /* If we can't get original function, that means there's no hook */ - if (vfunc == NULL) - { - /* Get virtual function address 'manually' then */ - char *adjustedptr = reinterpret_cast(g_GameDll.pGameDLL) + info.thisptroffs + info.vtbloffs; - char **vtable = *reinterpret_cast(adjustedptr); - - vfunc = vtable[info.vtblindex]; - } - - /* Oh dear, we have a relative jump on our hands - * PVK II on Windows made me do this, but I suppose it doesn't hurt to check this on Linux too... - */ - if (*vfunc == '\xE9') - { - /* Get address from displacement... - * - * Add 5 because it's relative to next instruction: - * Opcode <1 byte> + 32-bit displacement <4 bytes> - */ - vfunc = vfunc + *reinterpret_cast(vfunc + 1) + 5; - } - UserMsgDict *dict = NULL; + char *vfunc = UTIL_GetOrigFunction(&IServerGameDLL::GetUserMessageInfo, g_GameDll.pGameDLL, g_GameDllPatch); - if (vcmp(vfunc, MSGCLASS_SIG, MSGCLASS_SIGLEN)) + if (!vfunc) + { + return false; + } + + if (UTIL_VerifySignature(vfunc, MSGCLASS_SIG, MSGCLASS_SIGLEN)) { /* Get address of CUserMessages instance */ char **userMsgClass = *reinterpret_cast(vfunc + MSGCLASS_OFFS); /* Get address of CUserMessages::m_UserMessages */ dict = reinterpret_cast(*userMsgClass); - } else if (vcmp(vfunc, MSGCLASS2_SIG, MSGCLASS2_SIGLEN)) { + } else if (UTIL_VerifySignature(vfunc, MSGCLASS2_SIG, MSGCLASS2_SIGLEN)) { #ifdef OS_WIN32 /* If we get here, the code is possibly inlined like in Dystopia */ @@ -596,7 +557,7 @@ bool CSmmAPI::CacheUserMessages() dict = reinterpret_cast(*userMsgClass); #endif #ifdef OS_WIN32 - } else if (vcmp(vfunc, MSGCLASS3_SIG, MSGCLASS3_SIGLEN)) { + } else if (UTIL_VerifySignature(vfunc, MSGCLASS3_SIG, MSGCLASS3_SIGLEN)) { /* Get address of CUserMessages instance */ char **userMsgClass = *reinterpret_cast(vfunc + MSGCLASS3_OFFS); diff --git a/sourcemm/changelog.txt b/sourcemm/changelog.txt index 4961de2..93e8a76 100644 --- a/sourcemm/changelog.txt +++ b/sourcemm/changelog.txt @@ -1,12 +1,13 @@ -2008/??/?? 1.4.4: +2008/07/26 1.4.4: - Fixed a bug where loading plugins built for MM:S 1.3 or older (API ver <= 9) would cause a crash. - Fixed a bug where loading plugins using VDF files caused Metamod:Source - to crash on The Ship. + to crash on The Ship. (bug 1523) + - Fixed a class of crashes caused by improper cvar removal handling. (bug 1416) - Fixed a bug where VDF files were opened by MM:S even if the .vdf extension was not at the very end of the filename. For example, "plugin.vdf.disabled" - would have been opened in previous versions. - - Removed FCVAR_REPLICATED from MM:S convars. + would have been opened in previous versions. (bug 1534) + - Removed FCVAR_REPLICATED from MM:S convars. (bug 1479) 2008/01/23 1.4.3: - Metamod:Source can now be loaded via a .vdf instead of gameinfo.txt. @@ -23,7 +24,7 @@ - The client version of the "meta" command should now work with games using the latest Source beta (srcds0407). - Fixed amb233 (VSP listener didn't work with Steam dedicated version). - - Fixed amb277 (failed to get user message list in Kreedz Climbing). + - Fixed amb277 (failed to get user message list in Kreedz Climbing). 2007/04/05 1.4.0: - Added API functions for retrieving User Message info without potentially crashing. diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp index e21bb31..72aed0b 100644 --- a/sourcemm/concommands.cpp +++ b/sourcemm/concommands.cpp @@ -9,6 +9,7 @@ */ #include +#include "convar_smm.h" #include "CSmmAPI.h" #include "concommands.h" #include "CPlugin.h" @@ -21,20 +22,25 @@ * @file concommands.cpp */ -CAlwaysRegisterableCommand g_EternalCommand; SMConVarAccessor g_SMConVarAccessor; +SMConVarAccessor::SMConVarAccessor() +{ + m_TopConCommandBase = NULL; +} + bool SMConVarAccessor::RegisterConCommandBase(ConCommandBase *pCommand) { - // Add the FCVAR_GAMEDLL flag - // => No crash on exit! - // UPDATE: Do _not_ add the FCVAR_GAMEDLL flag here, as it - // causes the command to be unusable on listenservers until you load a map - // We will set the FCVAR_GAMEDLL flag on all commands we have registered once we are being unloaded - //pCommand->AddFlags(FCVAR_GAMEDLL); + /* Add the FCVAR_GAMEDLL flag + * => No crash on exit! + * UPDATE: Do _not_ add the FCVAR_GAMEDLL flag here, as it + * causes the command to be unusable on listen servers until you load a map + * We will set the FCVAR_GAMEDLL flag on all commands we have registered once we are being unloaded + */ + // pCommand->AddFlags(FCVAR_GAMEDLL); m_RegisteredCommands.push_back(pCommand); - pCommand->SetNext( NULL ); + pCommand->SetNext(NULL); g_Engine.icvar->RegisterConCommandBase(pCommand); return true; @@ -42,8 +48,8 @@ bool SMConVarAccessor::RegisterConCommandBase(ConCommandBase *pCommand) bool SMConVarAccessor::Register(ConCommandBase *pCommand) { - //simple, don't mark as part of sourcemm! - pCommand->SetNext( NULL ); + /* Simple, don't mark as part of sourcemm! */ + pCommand->SetNext(NULL); g_Engine.icvar->RegisterConCommandBase(pCommand); return true; @@ -60,64 +66,47 @@ void SMConVarAccessor::MarkCommandsAsGameDLL() void SMConVarAccessor::Unregister(ConCommandBase *pCommand) { - ICvar *cv = g_Engine.icvar; - ConCommandBase *ptr = cv->GetCommands(); + ConCommandBase *pCur = NULL; + ConCommandBase *pPrev = NULL; - if (ptr == pCommand) + if (!pCommand || !pCommand->IsRegistered()) { - //first in list - g_EternalCommand.BringToFront(); - g_EternalCommand.SetNext(const_cast(pCommand->GetNext())); - } else { - //find us and unregister us - ConCommandBase *pPrev = NULL; - while (ptr) - { - if (ptr == pCommand) - break; - pPrev = ptr; - ptr = const_cast(ptr->GetNext()); - } - if (pPrev && ptr == pCommand) + return; + } + + pCur = g_Engine.icvar->GetCommands(); + pCommand->SetRegistered(false); + + if (!m_TopConCommandBase || !pCur) + { + return; + } + + if (pCur == pCommand) + { + *m_TopConCommandBase = const_cast(pCommand->GetNext()); + pCommand->SetNext(NULL); + return; + } + + pPrev = pCur; + pCur = const_cast(pCur->GetNext()); + + while (pCur) + { + if (pCur == pCommand) { pPrev->SetNext(const_cast(pCommand->GetNext())); + pCommand->SetNext(NULL); } - } -} -void SMConVarAccessor::UnregisterGameDLLCommands() -{ - ConCommandBase *begin = g_Engine.icvar->GetCommands(); - ConCommandBase *iter = begin; - ConCommandBase *prev = NULL; - while (iter) - { - // watch out for the ETERNAL COMMAND! - if (iter != &g_EternalCommand && iter->IsBitSet(FCVAR_GAMEDLL)) - { - // Remove it! - if (iter == begin) - { - g_EternalCommand.BringToFront(); - iter = const_cast(iter->GetNext()); - g_EternalCommand.SetNext(iter); - prev = &g_EternalCommand; - continue; - } - else - { - iter = const_cast(iter->GetNext()); - prev->SetNext(iter); - continue; - } - } - prev = iter; - iter = const_cast(iter->GetNext()); + pPrev = pCur; + pCur = const_cast(pCur->GetNext()); } } ConVar metamod_version("metamod_version", SOURCEMM_VERSION, FCVAR_SPONLY | FCVAR_NOTIFY, "Metamod:Source Version"); -#if defined WIN32 || defined _WIN32 +#ifdef OS_WIN32 ConVar mm_pluginsfile("mm_pluginsfile", "addons\\metamod\\metaplugins.ini", FCVAR_SPONLY, "Metamod:Source Plugins File"); ConVar mm_basedir("mm_basedir", "addons\\metamod", FCVAR_SPONLY, "Metamod:Source base folder"); #else @@ -646,53 +635,6 @@ CON_COMMAND(meta, "Metamod:Source Menu") CONMSG(" version - Version information\n"); } -CAlwaysRegisterableCommand::CAlwaysRegisterableCommand() -{ - Create("", NULL, FCVAR_UNREGISTERED|FCVAR_GAMEDLL); - m_pICvar = NULL; -} - -bool CAlwaysRegisterableCommand::IsRegistered( void ) const -{ - return false; -} - -void CAlwaysRegisterableCommand::BringToFront() -{ - if (!m_pICvar) - m_pICvar = g_Engine.icvar; - - // First, let's try to find us! - ConCommandBase *pPtr = m_pICvar->GetCommands(); - - if (pPtr == this) - { - // We are already at the beginning; Nothing to do - return; - } - - while (pPtr) - { - if (pPtr == this && pPtr->IsCommand() && stricmp(GetName(), pPtr->GetName()) == 0) - break; - ConCommandBase *pPrev = NULL; - while (pPtr) - { - if (pPtr == this) - break; - pPrev = pPtr; - pPtr = const_cast(pPtr->GetNext()); - } - if (pPrev && pPtr == this) - { - pPrev->SetNext(m_pNext); // Remove us from the list - } - // Now, register us - SetNext(NULL); - m_pICvar->RegisterConCommandBase(this); - } -} - void ClientCommand_handler(edict_t *client) { IVEngineServer *e = g_Engine.engine; @@ -800,3 +742,62 @@ const char *GetMetamodBaseDir() { return mm_basedir.GetString(); } + +/* Signature for ICvar::GetCommands() in vstdlib for Win32 and Linux. + * + * 20226EE0 A1 50 5C 5A 20 mov eax,dword ptr ds:[205A5C50h] <-- What we want + * 20226EE5 C3 ret + */ +#define CMDLIST_SIG "\xA1\x2A\x2A\x2A\x2A\xC3" +#define CMDLIST_SIGLEN 6 + +/* Linux symbol name of ConCommandBase list in vstdlib */ +#define CMDLIST_SYMBOL "_ZN14ConCommandBase18s_pConCommandBasesE" + +/* This function retrieves the address of the var that holds the top of the ConCommandBase list. + * Having this allows us to change the beginning of this list with ease. + * + * This craziness eliminates the need for the eternal command/cvar used previously which + * could have caused a crash as a result of registering commands/cvars more than once. + */ +bool SMConVarAccessor::InitConCommandBaseList() +{ + char *vfunc = UTIL_GetOrigFunction(&ICvar::GetCommands, g_Engine.icvar, g_CvarPatch); + + if (!vfunc) + { + return false; + } + +#ifdef OS_WIN32 + if (UTIL_VerifySignature(vfunc, CMDLIST_SIG, CMDLIST_SIGLEN)) + { + /* Skip past 0xA1 and get addr of ConCommandBase list var */ + m_TopConCommandBase = *reinterpret_cast(vfunc + 1); + return true; + } +#elif defined OS_LINUX + /* Try dlsym first */ + char path[PATH_SIZE]; + if (GetFileOfAddress((void *)g_Engine.icvar, path, sizeof(path))) + { + void *handle = dlopen(path, RTLD_NOW); + if (handle) + { + m_TopConCommandBase = reinterpret_cast(dlsym(handle, CMDLIST_SYMBOL)); + dlclose(handle); + return true; + } + } + + /* If dlsym failed, then verify signature of function */ + if (!m_TopConCommandBase && UTIL_VerifySignature(vfunc, CMDLIST_SIG, CMDLIST_SIGLEN)) + { + /* Skip past 0xA1 and get addr of ConCommandBase list var */ + m_TopConCommandBase = *reinterpret_cast(vfunc + 1); + return true; + } +#endif + + return false; +} diff --git a/sourcemm/concommands.h b/sourcemm/concommands.h index e3488e2..0ecf594 100644 --- a/sourcemm/concommands.h +++ b/sourcemm/concommands.h @@ -16,35 +16,24 @@ * @file concommands.h */ -#include -#include -#include "sourcemm.h" #include "convar_smm.h" +#include "sourcemm.h" #include "sh_list.h" class SMConVarAccessor : public IConCommandBaseAccessor { SourceHook::List m_RegisteredCommands; + ConCommandBase **m_TopConCommandBase; public: + SMConVarAccessor(); virtual bool RegisterConCommandBase(ConCommandBase *pCommand); bool Register(ConCommandBase *pCommand); void MarkCommandsAsGameDLL(); + bool InitConCommandBaseList(); void Unregister(ConCommandBase *pCommand); - void UnregisterGameDLLCommands(); void UnloadMetamodCommands(); }; -class CAlwaysRegisterableCommand : public ConCommandBase -{ - ICvar *m_pICvar; -public: - CAlwaysRegisterableCommand(); - bool IsRegistered( void ) const; - // If already registered, removes us - // Then it registers us again - void BringToFront(); -}; - void ClientCommand_handler(edict_t *client); const char *GetPluginsFile(); diff --git a/sourcemm/convar_smm.h b/sourcemm/convar_smm.h index 26abce9..dd4d9e3 100644 --- a/sourcemm/convar_smm.h +++ b/sourcemm/convar_smm.h @@ -198,6 +198,11 @@ protected: // ConVars in this executable use this 'global' to access values. static IConCommandBaseAccessor *s_pAccessor; +public: + inline void SetRegistered(bool registered) + { + m_bRegistered = registered; + } }; //----------------------------------------------------------------------------- @@ -242,7 +247,7 @@ private: FnCommandCompletionCallback m_fnCompletionCallback; bool m_bHasCompletionCallback; public: - FnCommandCallback GetCallback() { return m_fnCommandCallback; } + inline FnCommandCallback GetCallback() { return m_fnCommandCallback; } }; //----------------------------------------------------------------------------- diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index 33992c5..5fa436d 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -61,6 +61,7 @@ bool gParsedGameInfo = false; bool bGameInit = false; SourceHook::List gamedll_list; SourceHook::CallClass *g_GameDllPatch; +SourceHook::CallClass *g_CvarPatch; int g_GameDllVersion = 0; const char VSPIFACE_001[] = "ISERVERPLUGINCALLBACKS001"; const char VSPIFACE_002[] = "ISERVERPLUGINCALLBACKS002"; @@ -174,6 +175,7 @@ bool StartupMetamod(CreateInterfaceFn engineFactory, bool bWaitForGameInit) ConCommandBaseMgr::OneTimeInit(static_cast(&g_SMConVarAccessor)); g_GameDllPatch = SH_GET_CALLCLASS(g_GameDll.pGameDLL); + g_CvarPatch = SH_GET_CALLCLASS(g_Engine.icvar); if (g_GameDll.pGameClients) { @@ -195,8 +197,8 @@ bool StartupMetamod(CreateInterfaceFn engineFactory, bool bWaitForGameInit) if (!g_SmmAPI.CacheUserMessages()) { /* Don't know of a mod that has stripped out user messages completely, - * but perhaps should do something different here? - */ + * but perhaps should do something different here? + */ LogMessage("[META] Warning: Failed to get list of user messages."); LogMessage("[META] Warning: The 'meta game' command will not display user messages."); } @@ -207,6 +209,13 @@ bool StartupMetamod(CreateInterfaceFn engineFactory, bool bWaitForGameInit) LogMessage("[META] Failed to find filesystem interface, .vdf files will not be parsed."); } + if (!g_SMConVarAccessor.InitConCommandBaseList()) + { + /* This is very unlikely considering it's old engine */ + LogMessage("[META] Warning: Failed to find ConCommandBase list!"); + LogMessage("[META] Warning: ConVars and ConCommands cannot be unregistered properly! Please file a bug report."); + } + if (!bWaitForGameInit) { DoInitialPluginLoads(); @@ -603,13 +612,15 @@ void UnloadMetamod(bool shutting_down) { /* Add the FCVAR_GAMEDLL flag to our cvars so the engine removes them properly */ g_SMConVarAccessor.MarkCommandsAsGameDLL(); - g_SMConVarAccessor.UnregisterGameDLLCommands(); + g_Engine.icvar->UnlinkVariables(FCVAR_GAMEDLL); SH_CALL(g_GameDllPatch, &IServerGameDLL::DLLShutdown)(); } SH_RELEASE_CALLCLASS(g_GameDllPatch); + SH_RELEASE_CALLCLASS(g_CvarPatch); g_GameDllPatch = NULL; + g_CvarPatch = NULL; g_SourceHook.CompleteShutdown(); diff --git a/sourcemm/sourcemm.h b/sourcemm/sourcemm.h index eaab297..6b8ab2a 100644 --- a/sourcemm/sourcemm.h +++ b/sourcemm/sourcemm.h @@ -125,4 +125,7 @@ void UnloadMetamod(bool shutting_down); /** @brief Global CallClass for IServerGameDLL */ extern SourceHook::CallClass *g_GameDllPatch; +/** @brief Global CallClass for ICvar */ +extern SourceHook::CallClass *g_CvarPatch; + #endif //_INCLUDE_SOURCEMM_H diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h index 0d4023c..972dec2 100644 --- a/sourcemm/svn_version.h +++ b/sourcemm/svn_version.h @@ -3,11 +3,11 @@ #ifndef _INCLUDE_SVN_VERSION_H_ #define _INCLUDE_SVN_VERSION_H_ -#define SVN_PRODUCT_VERSION "1.4.3" +#define SVN_PRODUCT_VERSION "1.4.4" -#define SVN_REVISION 656 -#define SVN_REVISION_STRING "656" -#define SVN_FILE_VERSION 1,4,3,656 -#define SVN_FILE_VERSION_STRING "1.4.3.656" +#define SVN_REVISION 705 +#define SVN_REVISION_STRING "705" +#define SVN_FILE_VERSION 1,4,4,705 +#define SVN_FILE_VERSION_STRING "1.4.4.705" #endif //_INCLUDE_SVN_VERSION_H_ diff --git a/sourcemm/util.cpp b/sourcemm/util.cpp index 6f1cdaa..035298b 100644 --- a/sourcemm/util.cpp +++ b/sourcemm/util.cpp @@ -406,3 +406,19 @@ size_t UTIL_FormatArgs(char *buffer, size_t maxlength, const char *fmt, va_list return len; } + +bool UTIL_VerifySignature(const void *addr, const char *sig, size_t len) +{ + unsigned char *addr1 = (unsigned char *) addr; + unsigned char *addr2 = (unsigned char *) sig; + + for (size_t i = 0; i < len; i++) + { + if (addr2[i] == '*') + continue; + if (addr1[i] != addr2[i]) + return false; + } + + return true; +} diff --git a/sourcemm/util.h b/sourcemm/util.h index 571179f..d8c8260 100644 --- a/sourcemm/util.h +++ b/sourcemm/util.h @@ -12,12 +12,15 @@ #define _INCLUDE_UTIL_H #include +#include /** * @brief Utility functions * @file util.h */ +#define IA32_JMP_IMM32 '\xE9' + /** * @brief Returns a pointer to the extension in a file name. */ @@ -73,4 +76,55 @@ bool UTIL_Relatize(char buffer[], const char *relTo, const char *relFrom); +/** + * @brief Compares memory address against a signature. + * + * @param addr Memory address to check. + * @param sig Signature used to check against memory address. Accept 0x2A as wildcard. + * @param len Length of signature. + * @return True if signature was verified, false otherwise. + */ +bool UTIL_VerifySignature(const void *addr, const char *sig, size_t len); + +/** + * @brief Returns the original function address of a given virtual function. + * + * @param mfp Member function pointer to virtual function. + * @param ptr Pointer to interface in which the virtual function belongs. + * @param cls A CallClass for the interface in which the virtual function belongs. + * @return Address of function originally pointed to by the virtual function. + */ +template +char *UTIL_GetOrigFunction(MFP vfunc, Iface *ptr, SourceHook::CallClass *cls) +{ + SourceHook::MemFuncInfo info = {true, -1, 0, 0}; + SourceHook::GetFuncInfo(vfunc, info); + + /* Get address of original GetUserMessageInfo() */ + char *func = reinterpret_cast(cls->GetOrigFunc(info.vtbloffs, info.vtblindex)); + + /* If we can't get original function, that means there's no hook */ + if (func == NULL) + { + /* Get virtual function address 'manually' then */ + char *adjustedptr = reinterpret_cast(ptr) + info.vtbloffs + info.vtbloffs; + char **vtable = *reinterpret_cast(adjustedptr); + + func = vtable[info.vtblindex]; + } + + /* Check for relative jumps */ + if (func[0] == IA32_JMP_IMM32) + { + /* Get address from displacement... + * + * Add 5 because it's relative to next instruction: + * Opcode <1 byte> + 32-bit displacement <4 bytes> + */ + func += *reinterpret_cast(func + 1) + 5; + } + + return func; +} + #endif //_INCLUDE_UTIL_H diff --git a/update_tool/Makefile b/update_tool/Makefile deleted file mode 100644 index 02273b2..0000000 --- a/update_tool/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -#(C)2004-2007 SourceMM Development Team -# Makefile written by David "BAILOPAN" Anderson - -HL2SDK = ../../hl2sdk -SMM_ROOT = .. -SRCDS = ~/srcds - -### EDIT BELOW FOR OTHER PROJECTS ### - -OPT_FLAGS = -O2 -funroll-loops -s -pipe -GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden -DEBUG_FLAGS = -g -ggdb3 -CPP = gcc-4.1 -BINARY = sourcemm_update_tool_i486.so - -HL2PUB = $(HL2SDK)/public -HL2LIB = $(HL2SDK)/linux_sdk - -OBJECTS = update_tool.cpp - -LINK = vstdlib_i486.so tier0_i486.so -static-libgcc - -INCLUDE = -I. -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ - -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_ROOT) -I$(SMM_ROOT)/sourcehook - -ifeq "$(DEBUG)" "true" - BIN_DIR = Debug - CFLAGS = $(DEBUG_FLAGS) -else - BIN_DIR = Release - CFLAGS = $(OPT_FLAGS) -endif - -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) - -CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse - -ifeq "$(GCC_VERSION)" "4" - CFLAGS += $(GCC4_FLAGS) -endif - -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) - -$(BIN_DIR)/%.o: %.cpp - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< - -all: - mkdir -p $(BIN_DIR) - ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so - ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so - nasm api_link.asm -f elf -o $(BIN_DIR)/api_link.o -DLINUX - $(MAKE) sourcemm - rm -rf $(BINARY) - ln -sf $(BIN_DIR)/$(BINARY) $(BINARY) - -sourcemm: $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(BIN_DIR)/api_link.o $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) - -debug: - $(MAKE) all DEBUG=true - -default: all - -clean: - rm -rf Release/*.o - rm -rf Release/$(BINARY) - rm -rf Debug/*.o - rm -rf Debug/$(BINARY) diff --git a/update_tool/README.txt b/update_tool/README.txt deleted file mode 100644 index 9c974a4..0000000 --- a/update_tool/README.txt +++ /dev/null @@ -1,90 +0,0 @@ -This is the README file for sourcemm_update_tool. - -This tool will automatically correct gameinfo.txt when your server gets updated, and Valve's updater overwrites Metamod:Source's changes. This tool is experimental, and is thus a separate download for now. - -1. INSTALLATION - - a. Extract the entire package to your mod folder. The structure should look like: - - /addons/metamod/bin/sourcemm_update_tool.dll - /addons/metamod/bin/sourcemm_update_tool_i486.so - /addons/metamod/README.txt - /addons/sourcemm_update_tool.vdf - /sourcemm_updater.conf - - b. Open /sourcemm_updater.conf with your favorite text editor. Change the - "cstrike" folder to match your mod folder. - -2. CONFIGURATION - - The sourcemm_updater.conf file has two configuration options. - - mmpath - Set this to the path Metamod:Source is located in. - This defaults to addons/metamod/bin - restart - Set this to how the server should be restarted when - gameinfo.txt is patched. There are three options: - - quit - Execute "quit" in the console. Currently does not work. - never - Do not restart. - error - Generate an error message. Because of a bug in SourceDS, - this will generate a crash dump on Windows, but the server - will successfully quit. - -3. USAGE - - You do not need to do anything to use the updater tool. When your server starts, - it silently checks to see if Metamod:Source is loaded. If not, it will make sure - gameinfo.txt is correctly set. Then, depending on how it's configured, it will - kill the server. Most game server provides have auto-restart functionality on their - servers; if not, you will need to manually restart the server. - - The update tool unloads itself immediately after the server starts, so it will not - use any resources, and will not display when you type 'plugin_print'. - -4. TROUBLESHOOTING - - This tool is currently experimental. There are two possible problems. For - any issue you encounter, you should post a report here: - - http://bugs.alliedmods.net/index.php?project=4 - - a. The updater tool does not patch gameinfo.txt - - Verify that the tool is loading. You can do this by opening up the - sourcemm_update_tool.vdf file and copying its file path. Then, enter - the following command in your server console: - - plugin_load - - Example: - - plugin_load cstrike\addons\metamod\bin\sourcemm_update_tool - - If you get the following reply: - - Failed to load plugin "cstrike\addons\sourcemm_update_tool" - Unable to load plugin "cstrike\addons\sourcemm_update_tool" - - Then the tool is working, and you should post a bug report. If instead, - you get: - - Unable to load plugin "cstrike\addons\sourcemm_update_tool" - Unable to load plugin "cstrike\addons\sourcemm_update_tool" - - Then the tool is not loading properly, and the path you are trying to use - is not correct. - - b. The server always dies, and you can't start it at all - - The updater tool is either crashing or not repairing Metamod:Source - correctly. First, try changing the 'restart' line in sourcemm_updater.conf - to the following line: - - restart = never - - If that does not fix the problem, remove the .vdf file so the updater tool - will not be loaded. - - In either case, you should post a bug report containing your mod name and - your gameinfo.txt as an attachment. - \ No newline at end of file diff --git a/update_tool/api_link.asm b/update_tool/api_link.asm deleted file mode 100644 index 6f94053..0000000 --- a/update_tool/api_link.asm +++ /dev/null @@ -1,138 +0,0 @@ -;;;; -;; (C)2005-2007 AlliedModders LLC -;; By the Metamod:Source Development Team -;; This software is licensed under the zlib/libpng free software license. -;; -;; This assembly file is a short thunk wrapper to let us load as a VSP and exit quietly, -;; without any overhead of the rest of the interface, and also to prevent linking against -;; tierX or vstdlib -;;;; - -;;Exports: -;; void GetBaseDir(char *buffer, maxlength); -;; void *GetThisPointer(); -;;Imports: -;; void LoadFunction(); - -section .text - -global GetThisPointer, GetGameDir, ServerCommand -global _GetThisPointer, _GetGameDir, _ServerCommand -global _GetICvar, GetICvar -extern _LoadFunction - -GetICvar: -_GetICvar: - mov eax, [icvar] - ret - -GetThisPointer: -_GetThisPointer: - mov eax, GLOBAL_POINTER - ret - -GetGameDir: -_GetGameDir: - push ebp - mov ebp, esp - - mov ecx, [engine] ;get this pointer - mov edx, [ecx] ;get the vtable - push dword [ebp+12] ;push maxlenth - push dword [ebp+8] ;push buffer - %ifdef LINUX - push ecx ;push this pointer - %endif - call dword [edx+216] ;call IVEngineServer::GetGameDir - %ifdef LINUX - add esp, 12 ;correct stack - %endif - - pop ebp - ret - -ServerCommand -_ServerCommand: - push ebp - mov ebp, esp - - mov ecx, [engine] ;get this pointer - mov edx, [ecx] ;get the vtable - push dword [ebp+8] ;push string - %ifdef LINUX - push ecx ;push this pointer - %endif - call dword [edx+144] ;call IVEngineServer::ServerCommand - %ifdef LINUX - add esp, 8 ;correct stack - %endif - - pop ebp - ret - -thisLoadFunction: - push ebp - mov ebp, esp - - push edi - - ;get factory - %ifdef LINUX - mov edi, [ebp+12] - %else - mov edi, [ebp+8] - %endif - - push dword 0 ;NULL - push dword VENGINESERVER ;iface name - call edi ;call factory - add esp, 8 ;correct stack - - test eax, eax ;do we have a valid pointer? - jz .end ;no, bail out - - mov [engine], eax ;store the engine pointer - - push dword 0 ;NULL - push dword VENGINECVAR ;iface name - call edi ;call factory - add esp, 8 ;correct stack - - test eax, eax ;do we have a valid pointer? - jz .end ;no, bail out - - mov [icvar], eax ;store the icvar pointer - - call _LoadFunction - -.end: - ;We never load, never ever ever! - xor eax, eax - - pop edi - - pop ebp - %ifdef LINUX - ret - %else - retn 8 - %endif - -thisUnloadFunction: - ret - -section .data - INTERFACE_NAME DB "ISERVERPLUGINCALLBACKS001", 0 - VENGINESERVER DB "VEngineServer021", 0 - VENGINECVAR DB "VEngineCvar003", 0 - - VIRTUAL_TABLE DD thisLoadFunction - DD thisUnloadFunction - ;We don't need any more of the vtable here - - GLOBAL_POINTER DD VIRTUAL_TABLE - - temp_ret DD 0 - temp_ptr DD temp_ret - engine DD 0 - icvar DD 0 diff --git a/update_tool/msvc8/update_tool.sln b/update_tool/msvc8/update_tool.sln deleted file mode 100644 index 5250f8a..0000000 --- a/update_tool/msvc8/update_tool.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "update_tool", "update_tool.vcproj", "{DDD1563F-7EE2-4E76-BE57-ED84A2664A51}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DDD1563F-7EE2-4E76-BE57-ED84A2664A51}.Debug|Win32.ActiveCfg = Debug|Win32 - {DDD1563F-7EE2-4E76-BE57-ED84A2664A51}.Debug|Win32.Build.0 = Debug|Win32 - {DDD1563F-7EE2-4E76-BE57-ED84A2664A51}.Release|Win32.ActiveCfg = Release|Win32 - {DDD1563F-7EE2-4E76-BE57-ED84A2664A51}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/update_tool/msvc8/update_tool.vcproj b/update_tool/msvc8/update_tool.vcproj deleted file mode 100644 index 825e521..0000000 --- a/update_tool/msvc8/update_tool.vcproj +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/update_tool/sourcemm_update_tool.vdf b/update_tool/sourcemm_update_tool.vdf deleted file mode 100644 index 79a505c..0000000 --- a/update_tool/sourcemm_update_tool.vdf +++ /dev/null @@ -1,6 +0,0 @@ -//This is a sample VDF file. You need to edit "cstrike" to point to the mod you use. - -"Plugin" -{ - "file" "cstrike/addons/metamod/bin/sourcemm_update_tool" -} diff --git a/update_tool/sourcemm_updater.conf b/update_tool/sourcemm_updater.conf deleted file mode 100644 index bdf1eea..0000000 --- a/update_tool/sourcemm_updater.conf +++ /dev/null @@ -1,9 +0,0 @@ -;Use this to configure where Metamod resides, if you have -;changed its location -;mmpath = addons/metamod/bin - -;Use this to specify how the updater tool restarts SourceDS -; never - don't restart -; error - restart by generating a fatal error message -; quit - restart by issuing a "quit" server command -restart = error diff --git a/update_tool/update_tool.cpp b/update_tool/update_tool.cpp deleted file mode 100644 index ef6dbfe..0000000 --- a/update_tool/update_tool.cpp +++ /dev/null @@ -1,366 +0,0 @@ -#include -#include -#include -#include - -#if defined _MSC_VER -#define SEPCHAR "\\" -#define MMPATH "addons\\metamod\\bin" -#define WINDOWS_LEAN_AND_MEAN -#include -#elif defined __linux__ -#define SEPCHAR "/" -#define MMPATH "addons/metamod/bin" -#include -#endif - -#include - -extern "C" void GetGameDir(char *buffer, int maxlength); -extern "C" void *GetThisPointer(); -extern "C" void ServerCommand(const char *command); -extern "C" ICvar *GetICvar(); - -size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...); -bool s_isspace(char c); -bool RenameFile(const char *old, const char *newf); -bool RemoveFile(const char *file); - -/* This will be called by the thunk */ -#if defined _MSC_VER -extern "C" void LoadFunction() -#elif defined __linux__ -extern "C" void _LoadFunction() -#endif -{ - ICvar *pCvar = GetICvar(); - if (pCvar->FindVar("metamod_version") != NULL) - { - /* Already exists, bail out */ - return; - } - - char gamedir[260]; - char mmpath[260]; - - enum RestartMode - { - Restart_Never, - Restart_Error, - Restart_Quit, - }; - - RestartMode mode = Restart_Error; - - GetGameDir(gamedir, sizeof(gamedir)); - - /* Defaults */ - UTIL_Format(mmpath, sizeof(mmpath), "|gameinfo_path|%s", MMPATH); - - /* Read config */ - char config[260]; - UTIL_Format(config, sizeof(config), "%s" SEPCHAR "sourcemm_updater.conf", gamedir); - FILE *fpCfg = fopen(config, "rt"); - if (fpCfg) - { - char cfgLine[512]; - while (!feof(fpCfg) && fgets(cfgLine, sizeof(cfgLine), fpCfg) != NULL) - { - char key[255]; - - size_t keyLen = 0; - - /* Strip whitespace */ - char *input = cfgLine; - while (*input != '\0' && s_isspace(*input)) - { - input++; - } - - /* Strip ending whitespace */ - size_t len = strlen(input); - for (size_t i = len - 1; - i >= 0 && i < len; - i--) - { - if (s_isspace(input[i])) - { - input[i] = '\0'; - len--; - } else { - break; - } - } - - /* Eat stuff until we find a key */ - while (*input != '\0' && !s_isspace(*input)) - { - if (keyLen < sizeof(key)) - { - key[keyLen++] = *input; - } - input++; - } - key[keyLen] = '\0'; - - /* Eat spaces until we hit an = sign */ - while (*input != '\0' && *input != '=') - { - input++; - } - - if (*input == '=') - { - input++; - } - - /* Eat spaces again */ - while (*input != '\0' && s_isspace(*input)) - { - input++; - } - - /* Ignore comments */ - if (key[0] == ';') - { - continue; - } - - /* The rest is our key */ - if (strcmp(key, "mmpath") == 0) - { - UTIL_Format(mmpath, sizeof(mmpath), "%s", input); - } else if (strcmp(key, "restart") == 0) { - if (strcmp(input, "never") == 0) - { - mode = Restart_Never; - } else if (strcmp(input, "error") == 0) { - mode = Restart_Error; - } else if (strcmp(input, "quit") == 0) { - mode = Restart_Quit; - } - } - } - fclose(fpCfg); - } - - char old_path[260]; - char new_path[260]; - - UTIL_Format(old_path, sizeof(old_path), "%s" SEPCHAR "gameinfo.txt", gamedir); - UTIL_Format(new_path, sizeof(new_path), "%s" SEPCHAR "gameinfo.new.txt", gamedir); - - FILE *fp = fopen(old_path, "rt"); - - if (!fp) - { - return; - } - - FILE *op = fopen(new_path, "wt"); - if (!op) - { - fclose(fp); - return; - } - - enum ParseState - { - Parse_None, - Parse_Root, - Parse_GameInfo, - Parse_FileSystem, - Parse_SearchPaths, - }; - - ParseState ps = Parse_Root; - - char input[1024]; - char backup[1024]; - - bool bWroteOutput = false; - - while (!feof(fp) && fgets(input, sizeof(input), fp) != NULL) - { - UTIL_Format(backup, sizeof(backup), "%s", input); - - if (ps != Parse_None) - { - char *inbuf = input; - - /* Strip beginning whitespace */ - while (*inbuf != '\0' && s_isspace(*inbuf)) - { - inbuf++; - } - - /* Strip ending whitespace */ - size_t len = strlen(inbuf); - for (size_t i = len - 1; - i >= 0 && i < len; - i--) - { - if (s_isspace(inbuf[i])) - { - inbuf[i] = '\0'; - len--; - } else { - break; - } - } - - /* Strip quotation marks */ - if (inbuf[0] == '"' - && inbuf[len-1] == '"') - { - inbuf[len - 1] = '\0'; - inbuf = &inbuf[1]; - len -= 2; - } - - /* Do tests */ - if (ps == Parse_Root && strcmp(inbuf, "GameInfo") == 0) - { - ps = Parse_GameInfo; - } else if (ps == Parse_GameInfo && strcmp(inbuf, "FileSystem") == 0) { - ps = Parse_FileSystem; - } else if (ps == Parse_FileSystem && strcmp(inbuf, "SearchPaths") == 0) { - ps = Parse_SearchPaths; - } else if (ps == Parse_SearchPaths) { - const char *game = strstr(inbuf, "Game"); - if (game) - { - if (strstr(game, "GameBin") != NULL - && strstr(game, mmpath) != NULL) - { - fclose(op); - op = NULL; - break; /* Nothing more to do! */ - } else { - fputs("\t\t\tGameBin\t\t\t", op); - fputs(mmpath, op); - fputs("\n", op); - ps = Parse_None; - bWroteOutput = true; - } - } - } - } - - fputs(backup, op); - } - - if (!op) - { - /* Well, we can't really do anything else. Give up. */ - fclose(fp); - return; - } - - /* Close all streams */ - fclose(op); - fclose(fp); - - /* If we didn't change anything, abort here */ - if (!bWroteOutput) - { - RemoveFile(new_path); - return; - } - - /* Move the old file to a backup name */ - char backup_name[260]; - UTIL_Format(backup_name, sizeof(backup_name), "%s" SEPCHAR "gameinfo.backup.txt", gamedir); - - if (!RenameFile(old_path, backup_name)) - { - /* If we can't rename, just bail out. - * We don't want to overwrite the client's default - * without backing it up first! - */ - return; - } - if (!RenameFile(new_path, old_path)) - { - /* Since this failed, we really have no choice. - * Try and rename the old back. - */ - RenameFile(backup_name, old_path); - return; - } - RemoveFile(new_path); - - if (mode == Restart_Error) - { - Error("Server is restarting to load Metamod:Source"); - } else if (mode == Restart_Quit) { - ServerCommand("quit\n"); - } -} - -bool RemoveFile(const char *file) -{ -#if defined _MSC_VER - return (_unlink(file) == 0); -#else - return (unlink(file) == 0); -#endif -} - -bool s_isspace(char c) -{ - if ((unsigned)c & 0x80) - { - return false; - } else { - return isspace(c) ? true : false; - } -} - -size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - size_t len = vsnprintf(buffer, maxlength, fmt, ap); - va_end(ap); - - if (len >= maxlength) - { - len = maxlength - 1; - buffer[len] = '\0'; - } - - return len; -} - -bool RenameFile(const char *old, const char *newf) -{ -#if defined __linux__ - return (rename(old, newf) == 0); -#elif defined WIN32 - return (MoveFileA(old, newf) != 0); -#endif -} - -#if defined _MSC_VER -extern "C" __declspec(dllexport) void *CreateInterface(const char *iface, int *ret) -#elif defined __linux__ -extern "C" __attribute__((visibility("default"))) void *CreateInterface(const char *iface, int *ret) -#endif -{ - if (strcmp(iface, "ISERVERPLUGINCALLBACKS001") == 0) - { - if (ret) - { - *ret = 0; - } - return GetThisPointer(); - } - - if (ret) - { - *ret = 1; - } - return NULL; -} From b00237be436b6af669d2c202242bb3d9ec3fb526 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Sun, 24 Aug 2008 04:01:36 +0000 Subject: [PATCH 50/52] Renamed 1.4.4 branch to 1.4.x --HG-- branch : sourcemm-1.4.4 --- installer/Attach.cfg | 38 - installer/Attach.dpr | 77 - installer/Attach.exe | Bin 360448 -> 0 bytes installer/MMS_Installer.cfg | 38 - installer/MMS_Installer.dpr | 72 - installer/MMS_Installer.exe | Bin 638464 -> 0 bytes installer/MMS_Installer.res | Bin 171456 -> 0 bytes installer/UnitFunctions.pas | 142 - installer/UnitInstall.pas | 590 - installer/UnitPackSystem.pas | 221 - installer/UnitSelectModPath.dfm | Bin 1310 -> 0 bytes installer/UnitSelectModPath.pas | 35 - installer/UnitfrmMain.dfm | 11618 ---------------- installer/UnitfrmMain.pas | 803 -- installer/UnitfrmProxy.dfm | Bin 1584 -> 0 bytes installer/UnitfrmProxy.pas | 72 - installer/del.bat | 15 - installer/files/Readme.txt | 8 - installer/install.bmp | Bin 154542 -> 0 bytes installer/upx.exe | Bin 126464 -> 0 bytes modules.versions | 9 - sourcehook/FastDelegate.h | 3811 ----- sourcehook/generate/FastDelegate.h | 3811 ----- sourcehook/generate/FastDelegate.hxx | 1054 -- sourcehook/generate/generate | 7 - sourcehook/generate/generate.bat | 10 - sourcehook/generate/sh_memfuncinfo.h | 912 -- sourcehook/generate/sh_memfuncinfo.hxx | 332 - sourcehook/generate/shworker.bin | Bin 54998 -> 0 bytes sourcehook/generate/shworker.exe | Bin 352256 -> 0 bytes sourcehook/generate/shworker/Makefile | 13 - sourcehook/generate/shworker/fd_hopter.cpp | 370 - .../generate/shworker/msvc7/shworker.vcproj | 137 - .../generate/shworker/msvc8/shworker.vcproj | 208 - sourcehook/generate/shworker/shworker.cpp | 767 - sourcehook/generate/sourcehook.h | 6104 -------- sourcehook/generate/sourcehook.hxx | 1370 -- sourcehook/sh_list.h | 291 - sourcehook/sh_memfuncinfo.h | 912 -- sourcehook/sh_memory.h | 186 - sourcehook/sh_stack.h | 237 - sourcehook/sh_string.h | 401 - sourcehook/sh_tinyhash.h | 534 - sourcehook/sh_vector.h | 519 - sourcehook/sourcehook.cpp | 1231 -- sourcehook/sourcehook.h | 6104 -------- sourcehook/sourcehook_impl.h | 659 - sourcehook/test/Makefile | 63 - sourcehook/test/main.cpp | 131 - sourcehook/test/msvc7/test.vcproj | 362 - sourcehook/test/msvc8/test.vcproj | 513 - sourcehook/test/sourcehook_test.h | 27 - sourcehook/test/test1.cpp | 700 - sourcehook/test/test2.cpp | 171 - sourcehook/test/test3.cpp | 238 - sourcehook/test/test4.cpp | 420 - sourcehook/test/testbail.cpp | 119 - sourcehook/test/testbail.h | 40 - sourcehook/test/testbail2.cpp | 49 - sourcehook/test/testevents.h | 153 - sourcehook/test/testlist.cpp | 282 - sourcehook/test/testmanual.cpp | 355 - sourcehook/test/testmulti.cpp | 107 - sourcehook/test/testrecall.cpp | 232 - sourcehook/test/testreentr.cpp | 599 - sourcehook/test/testref.cpp | 165 - sourcehook/test/testrefret.cpp | 208 - sourcemm/CPlugin.cpp | 698 - sourcemm/CPlugin.h | 157 - sourcemm/CSmmAPI.cpp | 633 - sourcemm/CSmmAPI.h | 98 - sourcemm/IPluginManager.h | 137 - sourcemm/ISmmAPI.h | 320 - sourcemm/ISmmPlugin.h | 409 - sourcemm/LICENSE.txt | 29 - sourcemm/Makefile | 72 - sourcemm/SourceMM.Doxyfile | 257 - sourcemm/changelog.txt | 144 - sourcemm/concommands.cpp | 803 -- sourcemm/concommands.h | 44 - sourcemm/convar_smm.h | 528 - sourcemm/msvc7/sourcemm.sln | 21 - sourcemm/msvc7/sourcemm.vcproj | 258 - sourcemm/msvc8/sourcemm.sln | 20 - sourcemm/msvc8/sourcemm.vcproj | 366 - sourcemm/oslink.cpp | 81 - sourcemm/oslink.h | 91 - sourcemm/sample_mm/LICENSE.txt | 29 - sourcemm/sample_mm/Makefile | 67 - sourcemm/sample_mm/SamplePlugin.cpp | 237 - sourcemm/sample_mm/SamplePlugin.h | 132 - sourcemm/sample_mm/cvars.cpp | 27 - sourcemm/sample_mm/cvars.h | 24 - sourcemm/sample_mm/msvc7/sample_mm.sln | 21 - sourcemm/sample_mm/msvc7/sample_mm.vcproj | 149 - sourcemm/sample_mm/msvc8/sample_mm.sln | 20 - sourcemm/sample_mm/msvc8/sample_mm.vcproj | 224 - sourcemm/sourcemm.cpp | 1037 -- sourcemm/sourcemm.h | 131 - sourcemm/stub_mm/LICENSE.txt | 29 - sourcemm/stub_mm/Makefile | 66 - sourcemm/stub_mm/msvc7/stub_mm.sln | 21 - sourcemm/stub_mm/msvc7/stub_mm.vcproj | 142 - sourcemm/stub_mm/msvc8/stub_mm.sln | 20 - sourcemm/stub_mm/msvc8/stub_mm.vcproj | 216 - sourcemm/stub_mm/stub_mm.cpp | 105 - sourcemm/stub_mm/stub_mm.h | 45 - sourcemm/svn_version.h | 13 - sourcemm/svn_version.tpl | 13 - sourcemm/util.cpp | 424 - sourcemm/util.h | 130 - sourcemm/version.rc | 102 - sourcemm/vsp_listener.cpp | 194 - sourcemm/vsp_listener.h | 51 - 114 files changed, 57487 deletions(-) delete mode 100644 installer/Attach.cfg delete mode 100644 installer/Attach.dpr delete mode 100644 installer/Attach.exe delete mode 100644 installer/MMS_Installer.cfg delete mode 100644 installer/MMS_Installer.dpr delete mode 100644 installer/MMS_Installer.exe delete mode 100644 installer/MMS_Installer.res delete mode 100644 installer/UnitFunctions.pas delete mode 100644 installer/UnitInstall.pas delete mode 100644 installer/UnitPackSystem.pas delete mode 100644 installer/UnitSelectModPath.dfm delete mode 100644 installer/UnitSelectModPath.pas delete mode 100644 installer/UnitfrmMain.dfm delete mode 100644 installer/UnitfrmMain.pas delete mode 100644 installer/UnitfrmProxy.dfm delete mode 100644 installer/UnitfrmProxy.pas delete mode 100644 installer/del.bat delete mode 100644 installer/files/Readme.txt delete mode 100644 installer/install.bmp delete mode 100644 installer/upx.exe delete mode 100644 modules.versions delete mode 100644 sourcehook/FastDelegate.h delete mode 100644 sourcehook/generate/FastDelegate.h delete mode 100644 sourcehook/generate/FastDelegate.hxx delete mode 100755 sourcehook/generate/generate delete mode 100644 sourcehook/generate/generate.bat delete mode 100644 sourcehook/generate/sh_memfuncinfo.h delete mode 100644 sourcehook/generate/sh_memfuncinfo.hxx delete mode 100755 sourcehook/generate/shworker.bin delete mode 100644 sourcehook/generate/shworker.exe delete mode 100644 sourcehook/generate/shworker/Makefile delete mode 100644 sourcehook/generate/shworker/fd_hopter.cpp delete mode 100644 sourcehook/generate/shworker/msvc7/shworker.vcproj delete mode 100644 sourcehook/generate/shworker/msvc8/shworker.vcproj delete mode 100644 sourcehook/generate/shworker/shworker.cpp delete mode 100644 sourcehook/generate/sourcehook.h delete mode 100755 sourcehook/generate/sourcehook.hxx delete mode 100644 sourcehook/sh_list.h delete mode 100644 sourcehook/sh_memfuncinfo.h delete mode 100644 sourcehook/sh_memory.h delete mode 100644 sourcehook/sh_stack.h delete mode 100755 sourcehook/sh_string.h delete mode 100644 sourcehook/sh_tinyhash.h delete mode 100755 sourcehook/sh_vector.h delete mode 100644 sourcehook/sourcehook.cpp delete mode 100644 sourcehook/sourcehook.h delete mode 100644 sourcehook/sourcehook_impl.h delete mode 100644 sourcehook/test/Makefile delete mode 100644 sourcehook/test/main.cpp delete mode 100644 sourcehook/test/msvc7/test.vcproj delete mode 100644 sourcehook/test/msvc8/test.vcproj delete mode 100644 sourcehook/test/sourcehook_test.h delete mode 100644 sourcehook/test/test1.cpp delete mode 100644 sourcehook/test/test2.cpp delete mode 100644 sourcehook/test/test3.cpp delete mode 100644 sourcehook/test/test4.cpp delete mode 100644 sourcehook/test/testbail.cpp delete mode 100644 sourcehook/test/testbail.h delete mode 100644 sourcehook/test/testbail2.cpp delete mode 100644 sourcehook/test/testevents.h delete mode 100644 sourcehook/test/testlist.cpp delete mode 100644 sourcehook/test/testmanual.cpp delete mode 100644 sourcehook/test/testmulti.cpp delete mode 100644 sourcehook/test/testrecall.cpp delete mode 100644 sourcehook/test/testreentr.cpp delete mode 100644 sourcehook/test/testref.cpp delete mode 100644 sourcehook/test/testrefret.cpp delete mode 100644 sourcemm/CPlugin.cpp delete mode 100644 sourcemm/CPlugin.h delete mode 100644 sourcemm/CSmmAPI.cpp delete mode 100644 sourcemm/CSmmAPI.h delete mode 100644 sourcemm/IPluginManager.h delete mode 100644 sourcemm/ISmmAPI.h delete mode 100644 sourcemm/ISmmPlugin.h delete mode 100644 sourcemm/LICENSE.txt delete mode 100644 sourcemm/Makefile delete mode 100644 sourcemm/SourceMM.Doxyfile delete mode 100644 sourcemm/changelog.txt delete mode 100644 sourcemm/concommands.cpp delete mode 100644 sourcemm/concommands.h delete mode 100644 sourcemm/convar_smm.h delete mode 100644 sourcemm/msvc7/sourcemm.sln delete mode 100644 sourcemm/msvc7/sourcemm.vcproj delete mode 100644 sourcemm/msvc8/sourcemm.sln delete mode 100644 sourcemm/msvc8/sourcemm.vcproj delete mode 100644 sourcemm/oslink.cpp delete mode 100644 sourcemm/oslink.h delete mode 100644 sourcemm/sample_mm/LICENSE.txt delete mode 100644 sourcemm/sample_mm/Makefile delete mode 100644 sourcemm/sample_mm/SamplePlugin.cpp delete mode 100644 sourcemm/sample_mm/SamplePlugin.h delete mode 100644 sourcemm/sample_mm/cvars.cpp delete mode 100644 sourcemm/sample_mm/cvars.h delete mode 100644 sourcemm/sample_mm/msvc7/sample_mm.sln delete mode 100644 sourcemm/sample_mm/msvc7/sample_mm.vcproj delete mode 100644 sourcemm/sample_mm/msvc8/sample_mm.sln delete mode 100644 sourcemm/sample_mm/msvc8/sample_mm.vcproj delete mode 100644 sourcemm/sourcemm.cpp delete mode 100644 sourcemm/sourcemm.h delete mode 100644 sourcemm/stub_mm/LICENSE.txt delete mode 100644 sourcemm/stub_mm/Makefile delete mode 100644 sourcemm/stub_mm/msvc7/stub_mm.sln delete mode 100644 sourcemm/stub_mm/msvc7/stub_mm.vcproj delete mode 100644 sourcemm/stub_mm/msvc8/stub_mm.sln delete mode 100644 sourcemm/stub_mm/msvc8/stub_mm.vcproj delete mode 100644 sourcemm/stub_mm/stub_mm.cpp delete mode 100644 sourcemm/stub_mm/stub_mm.h delete mode 100644 sourcemm/svn_version.h delete mode 100644 sourcemm/svn_version.tpl delete mode 100644 sourcemm/util.cpp delete mode 100644 sourcemm/util.h delete mode 100755 sourcemm/version.rc delete mode 100644 sourcemm/vsp_listener.cpp delete mode 100644 sourcemm/vsp_listener.h diff --git a/installer/Attach.cfg b/installer/Attach.cfg deleted file mode 100644 index 6c57635..0000000 --- a/installer/Attach.cfg +++ /dev/null @@ -1,38 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"c:\program files\borland\delphi7\Projects\Bpl" --LN"c:\program files\borland\delphi7\Projects\Bpl" --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/installer/Attach.dpr b/installer/Attach.dpr deleted file mode 100644 index 214317d..0000000 --- a/installer/Attach.dpr +++ /dev/null @@ -1,77 +0,0 @@ -program Attach; - -{$APPTYPE CONSOLE} - -uses - SysUtils, Classes, UnitPackSystem; - -var eStream: TMemoryStream; - eFiles: TStringList; - Version: String; -begin - WriteLn('// File attacher for the MM:S installer'); - WriteLn('// by Basic-Master'); - WriteLn(''); - WriteLn('// Looking up files...'); - { Check files } - if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server.dll.source') then - WriteLn('// Found files\server.dll.source') - else begin - WriteLn('// Error: Couldn''t find files\server.dll.source!'); - ReadLn; - exit; - end; - if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.source') then - WriteLn('// Found files\server_i486.so.source') - else begin - WriteLn('// Error: Couldn''t find files\server_i486.so.source!'); - ReadLn; - exit; - end; - if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server.dll.orangebox') then - WriteLn('// Found files\server.dll.orangebox') - else begin - WriteLn('// Error: Couldn''t find files\server.dll.orangebox!'); - ReadLn; - exit; - end; - if FileExists(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.orangebox') then - WriteLn('// Found files\server_i486.so.orangebox') - else begin - WriteLn('// Error: Couldn''t find files\server_i486.so.orangebox!'); - ReadLn; - exit; - end; - if FileExists(ExtractFilePath(ParamStr(0)) + 'MMS_Installer.exe') then - WriteLn('// Found MMS_Installer.exe') - else begin - WriteLn('// Error: Couldn''t find MMS_Installer.exe!'); - ReadLn; - exit; - end; - { Get version number } - WriteLn('// Please enter the version number:'); - ReadLn(Version); - if (Trim(Version) = '') then begin - WriteLn('// Error: Invalid version number!'); - ReadLn; - exit; - end; - { Compress files } - WriteLn('// Compressing files...'); - eFiles := TStringList.Create; - eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server.dll.source'); - eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.source'); - eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server.dll.orangebox'); - eFiles.Add(ExtractFilePath(ParamStr(0)) + 'files\server_i486.so.orangebox'); - eStream := TMemoryStream.Create; - CompressFiles(eFiles, ExtractFilePath(ParamStr(0)) + 'temp.zip'); - eStream.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'temp.zip'); - WriteLn('// Attaching output to MMS_Installer.exe...'); - AttachToFile(ExtractFilePath(ParamStr(0)) + 'MMS_Installer.exe', eStream, Version); - DeleteFile(ExtractFilePath(ParamStr(0)) + 'temp.zip'); - eStream.Free; - eFiles.Free; - WriteLn('// Done.'); - ReadLn; -end. diff --git a/installer/Attach.exe b/installer/Attach.exe deleted file mode 100644 index d83a203980b4a1778b9549c8a8bcb6af0b491d31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360448 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%0A-+Kg##_gtoMUkhAj!pCyJYoKAX|Guy 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 k6reX;W=A*NsNR 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

    YgUyu-)ZdB^F+R$C}v&C+AZDR#Wix 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

    &$-OG&nD? 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 T%UP5xmgl8GFaE#$X9oTUHt(6} diff --git a/installer/MMS_Installer.cfg b/installer/MMS_Installer.cfg deleted file mode 100644 index 6c57635..0000000 --- a/installer/MMS_Installer.cfg +++ /dev/null @@ -1,38 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"c:\program files\borland\delphi7\Projects\Bpl" --LN"c:\program files\borland\delphi7\Projects\Bpl" --w-UNSAFE_TYPE --w-UNSAFE_CODE --w-UNSAFE_CAST diff --git a/installer/MMS_Installer.dpr b/installer/MMS_Installer.dpr deleted file mode 100644 index 09273ac..0000000 --- a/installer/MMS_Installer.dpr +++ /dev/null @@ -1,72 +0,0 @@ -program MMS_Installer; - -{ - - Metamod:Source installer is published under the zlib/libpng license, as well - as Metamod:Source itself. You can find a copy of it below. - - --------- - - zLib/libpng License - - Copyright (c) 2007, Metamod:Source Development Team - - This software is provided 'as-is', without any express or implied warranty. - In no event will the authors be held liable for any damages arising from the - use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it freely, - subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software in a - product, an acknowledgment in the product documentation would be appreciated - but is not required. - - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - - 3. This notice may not be removed or altered from any source distribution. - - --------- - - Used components: - - - Indy 9 (www.indyproject.org) - - FlatStyle Components (www.torry.net) - - FlatPack Component Pack (www.torry.net) - - JVCL Lib Pack 3.0 (jvcl.sourceforge.net) - - Half-Life 2 Icons by Vasili "vaksa" Vorotnikov, Thanks! - Visit www.vaksa.net for further information - -} - -uses - Forms, - UnitfrmMain in 'UnitfrmMain.pas' {frmMain}, - UnitFunctions in 'UnitFunctions.pas', - UnitfrmProxy in 'UnitfrmProxy.pas' {frmProxy}, - UnitInstall in 'UnitInstall.pas', - UnitSelectModPath in 'UnitSelectModPath.pas' {frmSelectModPath}, - UnitPackSystem in 'UnitPackSystem.pas'; - -{$R *.res} - -begin - Application.Initialize; - Application.Title := 'Metamod:Source Installer'; - Application.CreateForm(TfrmMain, frmMain); - UnitfrmMain.VERSION := GetVersion; - frmMain.lblWelcome.Caption := 'Welcome to the Metamod:Source ' + VERSION + ' Setup Wizard'; - frmMain.lblInfo1.Caption := 'This wizard will guide you through the installation of Metamod:Source ' + VERSION + '.'; - frmMain.lblSubTitle1.Caption := 'Please review the following license terms before installing Metamod:Source ' + VERSION + '.'; - frmMain.lblSelectModInfo.Caption := 'Please select the mod Metamod:Source ' + VERSION + ' shall be installed to.'; - frmMain.lblTitle3.Caption := 'Installing Metamod:Source ' + VERSION + ' via FTP'; - frmMain.lblTitle5.Caption := 'Installing Metamod:Source ' + VERSION; - frmMain.lblSubTitle5.Caption := 'Please wait while Metamod:Source ' + VERSION + ' is being installed.'; - Application.CreateForm(TfrmProxy, frmProxy); - Application.CreateForm(TfrmSelectModPath, frmSelectModPath); - Application.Run; -end. diff --git a/installer/MMS_Installer.exe b/installer/MMS_Installer.exe deleted file mode 100644 index 0b64b156f923f6a5872018398567d8ae0c65c532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638464 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%0AS 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

    o8H74xj5 zYb9J&-inc;AQqkJmh&cx6b8MLc!9yS6&&{yT-9CtqfQ5D+FQ`ThUxZDdK?{m7Ti>IDc=HNm^Ui(WkJ{Hsv5^T z6eB0a1$C*wfXsbI-&!Z`CA`RN9GbtI4Xg?JD|FDaC*m1Lf!m&0+tzAwm7P8}M2hZ@ zhr2YmDcR&(rzveZJVYlmSEiFk69WKyD_EtH+LP$eYzF~;K%HIw0fu; z5buw#TLa4S4yAq2P(m2jSnV(KgzdAOv0s|d!{9(8->$Na-xtwdSe`F;WaqhvbFIdu z5ZJ>4y?5PV7E*=E=Io6xp8eHl`RX^MFAK01pmehxw~$Ie$1+r*`JfbEfT9(DJP3iJ z0fARxxKlQf%t-owU{4Yhi{*!`2elP=Z@UZ0Mao(frg=@O4DnnwDKIF_Jt`7E8Z@l8U+od zc1U%Gion}#^-77NFT{YmbqvS~7i<{4B19aHAjWq#X`-GQRo)yu#wzWIu;BXcx*Lj8Qd;F6e zv1>e|3p;kj@=J}*N6y1nP`eLNQ{m>X`zC*tCQT7C!YDUV=-u4etc_<$VNU%Vf0IOjbB zj%FzE=8bMj6em1VcEg!cfE<NYVwmj1Dy#0=iY#udSb;|q^!LfRQk4vI!30Nx zdUP@OgEku?kV<_PoOLZzwy>N5clFQivQ z{T9r*RMiuU7V}Q^dgqDPdFmC6>R^dN8w{(XCOHU$O%ouCb*DpLLZ8RsyWtnvX85K6 zoMCxB8`qX2>i>t_9Pr1m7wI>#WRbmWZ3bbG)48rfD%&(J>*$4JK_5 zAr!Za89nVP7w*PPT0~a%WF_6-A-C1&rYa^pRk8@6@8rh33jxtNjugs8^%Z`%x=}yB z&Pz|I!Gqq33a2qz4|Au}$;J?!J&$F#n}SiOP(J0kuepONyLCKU zLwcXG&+*JIz&+dN_1P$V=iIrklzvB1*r){~V-u>ra5~U6PjLK6Q^%^oaeSvYN`A$+70x?d*ViO-EJLO zHnrvThY7BNKt$Jd~ z$HDLZ-j+E+{YFW;=*RU1<^j}7`XU!Z0~8D$z^%-z1pQs4YcJ4}B0UvGkS zHlJN9LL+>ggh%A{jjGkhD*VYtglaj9A5_tbL!D9S059IN(~9!edzIi6gb`6ACH>Ku z#NC+HCP6^gvDVZ?n$??o7CK!oTd%}A+m*V{X#Ht@$-%}cB^F&=!p8S)0EKUgG~9iChLUUPE%Yn$feN~0 z@H4~PFCyTrb4>09O&k;UX}CDOe*WSF6KR2~)jg}`<7g^JtJyp1b5bK}1e!Spf-y;H_3Oe<~Az!X*3 zsj!3+yP+^sr|f0>&{W%<@Uw1A)wLDv(~e%DIze zn}QMcpOcCHi)ik+m??l*`4mEJjh|-ZWa>w8L>@V;+a`Het`)vNw6pVzLODM)(zpZ> zf+BApvVffG^gMS&(-s;nnXS3%(mWKVd`W&Ce1;YW&M#jVW@&srZKJ^mrGF<+E@r$C zaRYxKVc@5pJ@)?cdYM`Oc`43q`s7FB#x)FlE{)dla#q;U$%JbIrTSTA@&zX&vtlFe zthkP&%{ugN)5oc%Ay%w(2!p^TYIgXNtLMJboH|}zX1jGxAMe8mi)A#zgGWX8OAqb! zm|VN4saM>j$-5fcj>4jlD%-dB#{#)RT7ojeHh$u7Ib6z(9CSKG=%rEB?cca@znMCOr+(gg2asr2djMQxGDqAs0L)bUWn<)1HNMd@r6(GN9-aek~AeZE+k zB?;XpBp|9G#TdR8wf<<;P1YvV9V++k-y2_yLo?jS8$00haQlo{iFw%P6m;*O znQitC#UoL1Ls8_sIi2S`qX+sGw#R_O{4_`y( zmGa@>XeIttQ1(}0)dPHlFBDz=MGj%mFPp8*pU#%c_Dio9wf*^@f{0B5V!y!Yv17{#WI`?Zpf@%PV$Y6=^2ZNZ^i5^aT=dj`dJk2EKRdRyj5 zldoh-xNw^dH8L)q-61|ZM1bth&Jt?v^zLqcg_Lw;AQS9ld~FXkz1=xG>L(IY&eJg7 z^buKbzbTTTbYd^!HVo#FGo-7iK@=*_&0cf<#{c>s_@e|pPVOe3&Yz7}PVvr$03s@H!LYQ)W z=Ik%U141Ug+3yVq{#xiNUAO0}*lC~@9hubHv9AExZ#QId%qOd1`X1fDxSAf&_I=W#4F7!rRI3Awi>5hJ?I;|H8egKraq z95=j13OcVmV2Emp2#gg320NP(5HJtuEVf?ZP5ZRXl2;tsm|FtVKiMnmd+4t_b2{Fc zb2v_@=b1>aFpr+(`^>lXf@ley5C3Y%9X~rQ7vkFU+ zBRK7sjGaeL5RQBev9Qs1x-C^-`Ki;63IvwVIjik9RQ9u$Zua%8l=8MF-H4bgUWyPB z=&d^>VSQ1Dpmanw=wz;r#!ic7sLst?9h<_a0-JM%`8B1FXwcH$IPZmuj#<+ek91r( zebKx`HqCD28Byeu{o{vWJSp_7$0YzY!|vz>rfOM=KeFF&CXG>TqaW zhi33RrU+7rPtnB``~waTWI9B$A%H)MRM@N&_pSbW`=aM9d;g6V+V%@j^_@VCkCfgC`XPhXn?gLMRp)PZ&N8^s3Yq}4{{ zv0P%wSvG98d!3f{<@*PE@NxG@=+QwBn%5=&Uw+q){Ee(#^8z0M^d33M7I{```{4BO zJ8emmNWqgaY%e(e_Ig$Ki8#T|tR7Hj0|Jnt4LTklW|Eo_a@k8Deo<6YI47nQeHyap zAb&J8Jh&E%=MOcUa@V?#BS1x>k7v8+NXzKr_0qn`4iQ0SjLq(UpG*+Q^ zB6LV+^iKwzgSp>m*U^{L>jUZ`o+%nHjFUq%1k^LXB#2t`LqUY&mcgngFo4x=vJ4_9 z_IMd|3aqC{6GFE`+$w1)bcrDoC?2BAkSHGHis(A)x-+H<1{J;0-Top6C$uKhO_*X# z)2G?e^e(2Euyjz2s^V9c-_%18gvyuhBVmgCL-YrY%j^pwL23N2V<-6a6S*SMD!25K z^*AkW%Ler_^l~n^Q9FB33T&N%#=-OCSr1q4p$la%2?8Y>uu3D$FrRIb(!;4uM$KWk zLVbBWq$H{7l!7ST&aAE7uH$L$O7lC(&cnJrrApvTJ;CCBbN)(L0AlyRtez^Wp(PV_ z90k6^D>4}6lFFyNgfpZivqHz44W>*Kwb%4#44xS*KzdSdz*U2T&6k1PfOZHe5+<-XsT$5u zLHH;_gurdiBFBayB>Sbc5vl-8STd9P~0Hkx2#aa(Z^B)jCfWcg|1+i}?*vO(K{Yr?D z4NS^Q`?^Zr2R}PW^wk&1`Ghb6_D-@2uJflXU`0v%g|(bFbmDho!Asmz*)hZ&7os`B z^_%7bsID%gVAO>Nkb~Bx^Vff#iCO=0Fgu*J0gPHZCpi8YB~T9$rH*MNX{%10@Ybc5 zfA(_)Cn-xuphR{*XV{$`JZ^`|5|I7+%4(K%9yKFI{VXsAQ=IKny8yRk;-}R4d7?5W z-_MqwDQt`sJ#v5RX@{cknh`}R@vN{|jhKMW>Z2TTR^>#-_9NL-(FEKcVf{bv{~J$A>? zS)0>itJGl}4IIyP&|MSL#zm3r(Aw&w6`ffG8>6iRf4*brQjcTb!7PQttMIFvW>J`7 zVHng>`Kqtux9nTgI-rF*xXqf!-Zf5!JJw7U(k zsrsx1)hfH!t_DFhgX08N$(lSk8fvm;wvouxh{k71Td-&+6;c*l2qxnTA<+Uudsd`8 zp=YN=biK>!PGS^fdI7+WfMdE-Q=gIfGG!4z7Y5em@bo;C*`oECQHQ)L@ zOXF*9;}@&ZT@l^;{}HJs4jaPowvG);t+f^NljzjZ(dWI!CENLn4?2YdEuaBYEa zV9>3{KTNDE7}`$&J(#qDbynLUqdR+ISW%E~%q=yz;maBHlLz~xSK|<}Ja+D!HJ!KG>4XnDx!j^+>1SFUkZAdVjwu+b27NUSP(S`ai(jIp zt*d5y(oHdud#R_ERGR+vqxsW2~$a`2d&}7>yzWO?4dLfzj%#poz0r|^((RB z-l33`sFcq@j6n&M-8C|N%|b$&LB%iK{6Vrf+sw+=7+VMhvP}33l?*IAS8xGL)yFc2 zzW6x^!b}zb@!Ag6opOg4>Jhk%uLl^n^8ikGM~cl3e4&1%667m2e2_zb#|NkBImtQ7 zc!dpe_%)A8jq}ORO%nJffZ6Hd4iMwH<<=}r7Zj4~U*zYVw({zK^(}Ug6ON6W$purM z+{BPL$%puiV!;Y}r8!8}B}3s7^i2&RBP97(POyO4bw3F&T;afISSJjdKYzTmaMP^P zFR|(tK4h>iI#qg{!>NHr5~;EH5bu+c8JqBCg0{DqTstYgz}zM}ER4p!<~q)0bEI9J zGTK`{!EQI3F(o$QI!+DIh->nd8RFXJB95BN><{1({a^Y!7=<25AhPo%jj!^^bv6pixr{&AjEtK8gpk-5bF(Xv4G7~fEnXLRhTf>o zF<32sLKo}5OEJ!6MqR*17-ksDCuB;AMu&l?bpLhc<2TZEVylT9m{W~n6 z5laT1CaO=G zUjEVjuZ39tA4JW3&k?XC>9HC`?`OfND`ir-dB>1^EPGrgd}2CuIi%svmb5}PnNFR`gN;?vBfTi zWer_5oU%|r8l9D}vy@*_z8kP8c(OmxR2agH{-`>5X+*%sH!^CbPeCzi3B$Z}JTWB3 zFhAxGF6vsOW3(53`Y6fyu2thuY@xAn%bLZb@#Qq(N51p<*H!}%9)-Oz^XJUYkR8GD z>Z*eUW6PNej=Md%Q!!(t(e&^N(_2=Z*>MX@Aq4yb%U03^srEffj71nimSwp`LPZoW zD&?eOpPDT6y|A1wo&K^PNaq(X#k$PdNe2rZI&#E{&El8S zIo4_~&QfBnoy!@x{?S4t2C-ML!U$v=hl6r{+lfT@`v-)cP*}eG7$12&_k{u#?RPe) zU1!Kd`}VC3ci)=|MB%^VY___CKtOdkbN*~tbYJJ=I9eQ->KT7No~jf?RlE2iMGN)C ztcH&g^F8)XH@`AyM!>56vf?Wc*~?KUSLnl=C3Pe^%ghZqW`=szCHh3su}9MN!lajZ z5UNgnMc{;i$4glqFkP9d9LZnsuuSZVjcFg}UfmhnHbFR~RW@IVimclQXJQm`d$Z07 z%94l;NdCdmko}l1V|t>vh)A`7Ct9k}j?a||g1+;GCVAet12J^=C@pnc&QKmx?S|w2zC{@zDZ_l6mR61)qdEMvD29 z%ut$G88gp7#vC7-;s4B&vRSfqJW>l`O5n>>-;}-P;)t&HMDa*WD)QqK*2?uLc->Ij(4%reudr9Hb4Y6l z9|Rns4N+6iA?g;&KAcIrEK{#wDp^!nb(7>LlCHM+s9s%_q^f{%@0Xo9EZ~3RN+kar z-?@J}d#}!z6=B9t=K8n=6M8yjt@xLa(^dk}v`wpW{|hNzCfO@Rh40h0FLqURMSCM3 z&TL%&>u&1LHsgooN8d`oB_*5HAes1|yKJ+nE@3Bjez5bye&I*s-D{_pAd)}Y9MZBK zzNk(%%Yt4ks-(5#(z1UY+dF%H?tO2|M_F$xYd*>w@t-Q(waA&)Mm6hs=GAq1ZHV6MSe&_731iH@5P6@L;IuXeSbAyX?a?^5g5TiPS|#?+w- zM{yIp{FW|^LVtJ1jcYvIikD?Eztg@=S6--W0zpusrgAj}?v@?Z0=-R#z`o9X4ITHL z%=<_rJWS?uIn!23(6F`3x@@IOBS=?FU@ltJ&q`iHa_HI&THftxi3I(EJfvw0J5t^J zWiQS8>`uVC9wVMB{KEO3Z|NsRmWwI%rwjB z`VWaU4d<7a%YCGnc0tp$9nNXWiV+G52x)M6epzD)6A!|_vV}b;Yh852KhNAq>0U#* zxxqFs3%yE8y14%-%+4MeD)b`N*T1BAx`ncDLmw9C*geb0fM)vf89x8Uxgc@v#!MEFR2sdm;6*;2zCd9)QU*@;;tFQxPqDhGv&3kk9t>`73`4ty_?#O)2 zR>9X~DKs?#eKiA1xK4U**Zh5C95a=T)Et_bU%M$FkmHfttw?xx}iT`RtH&wU}66x_=@Z%E86nhht@ij~=U&m{Pv z*L@nxPs#RFD*jF8iq=v+=zVXuuv<<#Tn_DxKM%S%d6+Ha4zlojpt1UvlH2jp&>-kP zxOM1ZGpdAaoNQ^5Q>cBtwihT*JmS}%Oc4NEbowLr?eS3cpG+06oA*3ID_s4CfrU+Q zk_d1p!#pEIr_NEKrHDZ+%Ibi8J1q})ZtxYvRTYRaD5LwC0 z>V0-!A6eyLC$$s$yCnW`{8=$LOT^DWY$HwZ`OWpgE2j#)h9OthUEmI~L1P6LpHip! zz>N?+e6p%!XiF9!>V8auNW3q~2NV^k6nVbd*6G!>^EWZ{QxI;VsaUpn ze@v`y*z8;7ur(41VaGS4Mat8TT`Zq!I2Es3>=?*?dJ_w*$oXTx<@cSLnf+~=lY;jq znMIsV6~r6Jvu%81Qo=z~3jSijcE<_)$9-(SNL&beJ5+q1g~sU$um?v~23E`p($Z-c zJ;5somG?OVy-J(!fsWqZnS6X?=hY6S_5#Z@##p&n<50c07yZT|@AVFUdiIsDdqt5k zIsOi2BMvQrniQFEy6-8~+g1`Uuaf)kJ;3YzwUEj)+?}yTV#&bNiu1D3_ryW&R%=YBGDnz=3*=frtJJ<1u?ir>VqjihIhhKHl$9^j z16Eas!+}a?OBg_F41A9+g97X?`l=m$n;Iv_onYn7$Af_J`%k!+Ue*7xgzy}*^enWr z$vxK#XdF)rrnh=gJrw}<*Oo6S>x}oMaS`*7x<;7Vran;e59dL4ppEVT(8}(3@0GU- zR2EwRTUotxs@DRnJPAvtEh8QlVWmyl02@aG%%Gw%0;LgJO*jDqQGh^HTa(rgd;K5; z2^E{tM{@`nKhmqlQWfaA%n6BT&8>~6 z!~p9(ePqbx$R$8D{Gh#aVRa=;#VQVH@y162Qi1OmJ8|pEu=$*mCBS-qRfju$*tr(o zc$?W@U&>zn83rgc9L(HtYXr6*pLy@mTEAy81X$JWa~>vM`@6D-Vb+b=dZgb=pG<6e zO20qYa=!&Iy5}+3_%D8`xv2w?T5n!)=Nb-ZYfPMZ7!$_rI9tzZ%lm9dgR4$qP16Io z*Bv94J16IJUnhpO=HUR)mAsP9`YM2R^i~2MHwu!L=`)Ci z%b|w37Uu@yLn;FQg{{SP#ap$+sSk5fa?`yAVeB&X3hem(DqwA{Y|5iGI38yO)LPEX zsm|#GG0tWg-V|qGzj`?Ez3Rv|r+?3VsHLq*Tc3^u;IFA8TcW;WM71^mw1<8MwtpMf zMY>%6pUrZ)zcf{wu)Z>@UX3_b&`|vPiM=lDg_=I<(K;EYlHveAVFBC6+Hd8n)11cz zOQAWR{6VZE!Pt^>9Z^32(1UeRXV=_RJ;5hZL^aRo_5TQFI8?2WiuGYDgvKI$*qNmz z8tiA~;jDkuuguTOcPhw39b#s-3qCV%&7|a@gU(SzD?FB1Q$s^xMdR7|ZR2R$pHkyf z+&6%GUSiIGJgg5P`w!1!GaarjOuYbwPl^>c!Ne|~zG&1GO)`G&XdIPnQM>LSnB*I$qM&+V%sl992y4kg5%tX5O498$DYtU$ zsHzF$rgWVwb0p$v;Q(3oi=&lo8c37<%b|E{N#%N2bTof|(R)(ep_gv_dKUzx%a<;j zSULrV_d5CC7P_#bCV_2CQ8cYvn&`8IXD0i4+&s@exG9T?^Su)nl)Z$`l7xv8oFdah zp7q11*|!k^Ii~EU90+6#{0%n_(-g^Bfc>2i7LA746Sz;<<^CKTyjCO+j|{zhH#YQo zbZ%z${VVQA!#*s1Tn4TDt>bI|%$uJ1v57o75fdWB^v&-FrK^Jt%&}JZT{De-tFpz= zp1NGR<_#Gbj7VpSToaL2d+X`lcc&_K*Cy8u@Qdk4()Eb8{=} z+xyU1B+Yh`CMu<%N}J^7^v!IXy|@Q#S!`ZG!Mb79dMc7&<&r!BcB&RTS*9YB@ zkiZ@Eixl5ZRojRZbm+T{tNK_55zQo$B8j$oYTXb+nG$qu?*e!|5*&nP3>kEUzH7$L z5YcNy(moM_v}=Q@ZyI1oZR&PO^S>59b{L^KueR!_zcFl;l=aA}s@g2HLIIjrcSt?5 z7d%tS&0@Ahq4rpwS*3*41~+#|EiXrVUL5Ssq_cF4TM!L}fr!MjL4 z1rZ|x&;Cq&3^e;1H%Ba&ZiMwSCW-6N4>B`o(i&Qf!yOR!aiR|ViV0i+Kp*Z58b|9C zALB1aUv$K9l~>pjQdCo|cxO&yX2xgp6c$uB*7Wlf-k*Q4{RrvA?MA923XA$1U({_U zoev_r8>)PnB9NodG{B|t_SB-io}Az*x6md{lnL4b>5B1FgS%d|@-3DAp&Oa}PcnEJ zizSc>a1Zr2o_WJlgdl`JbN<~4I}`A~Ux^DrqoA-A6V0|9_f?r~IxUT4zi#MIES%{t zlV=L`Hx$+3tU)*-fP(6(NKau%kQ%UU48wBUZjz*KWaCA%4YiG=1?mH4HeQ?%+evOO z??}uj$T2N&#^E5S?|x;8O$ z-&N2pl!!>70+-q3N5HPL`vrqA#ndi;-N5KSf8@N z8!-$|8pjX7Ij5uuE|qjjEzrYj*2cE}`KghP(5jG?$gxCVobfO9k^8)^gQ;aUe!uqc z2}L#d?fbm~u80EQyq(wEH1p3{c=)vrU-cu&V58{#P*dwDi2Ky9k}mVJ@eem{hTT_k z!$7VaTs};169;c*k=o4*9^W<;Ezg#tQ>NL9HT~TwbPEWEFQNJi7?0zw|0~I|nU?S} zPKXCMwviibZE<_qFf<#hsB7cK8zETn8RfOScI+9MTHE8+H~@Z;plarZ(e>khgR#KQ zjH`>8l7iq`7r*9w0{fJ7nthmAJRFO*Jzb$bmmBP_cp&mhnM#j5Zj=fyJK6z#ckjj3 ztm7Fi_xNCSw}1YJ5=3M83W#ixS#E21q@e#R*suB@ua~v_+rKyS>q!M?cYUWy6!QWf9d|@)yn1vb1Q~dtIh0<%I`eZxZeA1{Of>LI&EbSRMt}CtN!gBX3D8{I?h8j zp~fhsfQU}cNo8hwL~NJ|@Cgb?I#+)M3qX>ChzXVAJH5IV*rcq$3T98TN0^rEH$n|Mz?Uzk@%#%Y;BP(k?uw zeeXz5&H@8`pqO4hM!uDj<<8H;^-x7#=_%0v(kVuEAjl~RpZ*E|AX5ELduZBaGKFyk0B)r3i zs~?vP^;fepQ^Psy^~YvsvhaC{mU{gw(!cQqH>#cvotd!)x8bj9^&g*g)6$x<#I4ID z@HYp}?24B8Tm>o4XeWl?ef7(-720z8Ea2;U|?^Y znwG3WT#x_>JL(|?#=}MI1L||S)Td24KBjHp;v?M5bz`Es)NW({DJPssTu3gEe8H+ zF#fFf?3s0ZhT7HgIDF#-GQn7?2M-><37VyJvjsAE zDWX!ajh74}Vw?#H1X8E8WMctzcF8D1_!6M7uhKVpK;H)d!53 zh9)LAa-`uDQ^?B0g3o49b2#;!Ak`v>Vr03pBNtCHJkGu2>EQ?fqwKH)rEZkOm*N-& zJj}zpg1PIp{T(6J6i@rXu&~)#FUsI4%AmCAggSEv8>oZ)PEPv}WJd|MaxtACMKY1E z3)*ttMUk;*NFtu<3i0=Eo>L*`i9Pi>|CG|<=SN9+N=bymUA@dHe?9$hKNWQ?ISxWe z8@x8NGE1^gr(_J0J8apM3xjc)bh?mDXI31=?nMRAauCr9=J>sQOKB_H;`6orr?>H%`fWK(DST*m{(QlYkfpn;|qW_ zIQ6=xBV>y<^no=FY&tT6up|Ni(Ga)T4nmkR!~f15jw?QJdfrT~BLoIdDP-$IV)@83K8 zpQqR_%$VVomdFF{pIn=s#B|fv=zRO9$)qLhxazvpy!^7rq}ry;hbm?PgD2C-uJpR) zU+i=*;-(LLNOup~Pumt8*82?`)Y;9p>Wb&dWSF(ZK1LcBWqKVX2qBk=Ob zzx*$>|G9MH(RrRsrbS2W#p4gpT`+GytNc}Bmb{9aR{A3T{?OlIZyQcmcywF*IN$`9 zy50%7>V7-mip#F?hvb9*Ubx+KGO@-S*SsZHFC;0OupjLgjCpFlkes|LsGda7ku(l- z_QSLq8y^K~#JyLuwnk=~RUtC;-lMW`0q9eJ4qU0;66iR$M98zZDI50ZNmm3_NL$XPeVh!r**WS z2M4_&3SSJnNrMUJ9X=YKx_f5PrTz`LCUnXuOTZq{@iW`FLWm%a5$0O?6hD9zk&xxy zz&MKPN^+9CTbU>dfT6{Bw=yYtWer^(JEEzgAkAYq44!yMmB+M>>d_AK7+How)#fq% zV{|ng0|EdFF~rKW_{OslI08)Tb6TqJ3=)R6KT2tL;I7hB|?!ETxuhSPPKa|*1qk&--5t3=X|~H8DB$cKY4S``M45 zmRJ5>{d`M(?_llA*B?KBZU3{gyZ7(^Sm$)()6*}&SYmNEgtmSrt5^F2!p06T-zX6| zxTuMY>H#yvUqD{VaZButuLA8O*f_24(2vt0K}uGP$h43kX9p60fZ?npLm3wi9{vrL zHfyyPvc)`d<{1&U#9*zs@vIoL#>`mfS&?0`6;r#-gDGu$x&09V6`cL@sX}}$FGyQ~ zHg3bY0pnyFv<=xS$}5N+Q4pQt6{Hd7&7@X%1)WLjEQMA!cMOS91a)WdVmVcKi8}WG zRM4c_bQO7VUcbKjlo5{^t(Y;ktttZF)4ZVVHf&Lz3Pz%Wa{*61&8^DJi>JQDnc2%? z@z{7w@LI+LZjQZQ5-HllRq?tuMzt;8j90_{M6an7p8EKejDl_6Bq+Nc+L7DKQz2R~ zu28bXQ$Z_VH>>2;aNoHK{+Pw9MJ*wwUNwWKqQ$7B&5fs`wu{}?%VR11{RLA)JXXIl z(zR{dYCAdJ5AC$Wjf?UQ&de*!uki}dmbT4SxF-q#J#k)xvv}uRmx|d^%;24KTeoD- zh*#~}edjii2v_J3CAa(> z_x4lU(lfNVT)}Ov<>loSKnm%{2~nhhzjGg;p=!A+XT99{D6M~dX}u-&rH;D}wuE3+ z*MtGD*B-Pcd@z0hGvna+PfFlz=bl6X7!n?W)jdJ_K6~fHQ7jc-+P%pR$CE%{VF)+` zU)wPmE`q}zXy4Ub(T^cXlYo{0Q2f!g<86OrjvUcGymi7v?X-_CcrC>98L%SaBosnd=7J{kRx#2~W zD$jyB5fdld(m47vH}HShsyxGYA#-i^_;_8#QTUep8J-n1`vv{vc&rwZX0ig~F%O9n z)APIu_0cJjq|?g04%mjcbYh!dzwb_nEACy%fflc1EPVtM$SX;11Trnwc_jtBiIx5w zZQIEtgLz3}cyPsZ1+@o_Cg$1gD^{dcA2|FGN?5GlCJpc zSdgt`?Q9tF@FVn%c;kvom;c!QFHnT5@y?&;(OLtau71aIr~(}Cbe@JkrmLQkrQDLn z33}6^$~WAZ%>o@aa{gF@x$1UK;wQN%PG>ZTNGafaa&Ja2X8p0;;8oa1=0>uiI~OlT z5Y?WbkuKWbZ{!p0{~YucAYT?#e|*VJ3g6r})ht2&czK8WI9TD!RZVX4{^7q|!gz6; zC-C=`x2D{*{h!x7fu`>~f$Iy83y_CQ|9j38xV2o&)rOpG{lz6E!*_WC->%IuxM}xq zp1@$;XP!XWyG{kJrrj}~z`f0zTy3Two*wi}Wkn|Y;;)JD|IphzWiN@r3h~Q`W1wRE zdT#FAkECEOe;{CDHsgLkMEMV-FeG9A4-yzo$ZnJ;Kg`G_36gr_Z}%JG1Q_7UbmwNF zd>ZN~3CZHWk$tQF%Tc?H5v^sRaq`QaozO+6&QN)@g{L9LpQxZ8ewP#+PQoUcg2q8- z5%BW#P|`mpl?pwiuoJ(gMXR(oNx?QE0uvNJL5~EDcv8%{$U{Tf_x0*hwXFLg5?2Z*&^SxbJ)ACZ#ii4 zmk6a=TjNIP@+b()$6LD*5*88t!74TubDSK&{C2w~k3)sm{U978ev1$(i&%KGJm+Jb z%AdMTIA)>ulrPI7|Bb)r2l+Z{fB*DjW51Utxt%}Z84kjW4i0hil2Xz}*y_`jhvi9w zDgu8<#w_-pCP~M|6bwLkCgOwgyLuj00CyJno}4So0$?!ivJ(p~fEef2g}e28UmB`L z(p|@Pa#nH&`7;-=8ByhVRU>;{s*>k%Ui11ri9C<`yV`($~n+V`VSA&)t{(YPPQV?Vf#`cjF%6RPL$#?H`cuc3WGcJzD zc6TwD{Cpm>w;vl*<1w{+_aY*AY;#ja=H^Wv^YQuc!H~xcpFT}auGk5vI5k|DM}+;IGS1U~pcW5TK$+ zDPDU)gb@+|j@MpjB3MYEf^%$A93lpwr1^L!5D}Dw;h9GBnPe!`Gu1_hvRaDqm59T> z6D9PL0^FrYy6&X`=XQ-4%*d2r>(YR#-lfm?O=cDs;bX9_ZtGS)&W+MM0q|^*Vrso? zpF;5Lzr<-2oCtiT^eiS62L;B1C?L=l#fSSYmk4)QNrwplI}u9<2!25*k`DzzgE84q zetrPNDlo3#F76|$Syq{X$jlR&MJO}|p_Oq$Nw}bl0P+Xnxq!v>7cQxml#(-H(8}_w+)V@6?Bbik+}izs+`ofsA@j?)r4^ z{5I%YiE4)T$!{lYDbty=U^O@_LT>y9;f9)L6FqkGpcH&N%>{o@MzK|Zq=OBzqKs!9 z6aiM*FoaXDbkVxE{y$?BLIUxj)>%pdeOn^T*GS`_r9et_3A6@bFKq6Kpc^GU;dIhw zoao8RN&;CZ3eDC@LugS1FDb*bjJ%4Lo+-~VPX5v9x1K9?{h%#_!E(@Sqt9s5$i9r; zIM^mCq=F88Ck}9@7?+q8-0#5l;Zi4Q-(AW8J}AH|3rBL7$JJ{jrf5dY&l8dgz7f>3 ze$oEq%Y!-c6?e{lsqVRT6N9h6b#K1IPXH{$Z+Vz{p`$DxEX2HZ`PhN-^x0R~IG9a; ztsg)|_|Qa6qmVwRIJB|DX-7I(#BXY<{v#-Lr3=?M7zF#y9iU_Y!{h^_13LHAys5}R zvY2*D3QeW4!z9=ToD$NaWIGmIK`&hfRP{lG+K?(81W^LdF*#Z`hN}ZyC5#arqPBuS z^Fu>Onc!zW8yTU}#$VP#IXVBk_NDr@a?TfneLv z+C|kQXR90I-m|4TJ|9Mw2DZOE*N*r#iU!|Xcdmx@h=!^=HiaX-MK|o&L_Ob&hjtXF zv`rOJ*(UTIgvS*H8j{+zVU#&NJJ*r&dJ{_Ar!$C^)4@&cncD-wxR@tWL{a*Zv9YNN zkccK3^gq!BTBbdW%QqD5O8zvuvQ{rmH>V~g;(!eA{qUxCl{>7#-pmrJRd~PaIKZFB z{!=PdYBt&=79+SSnpvC2=GeFugF@+Bfkj?q<4}7eSID|+F0tP(yszImkz=>|qNKWg zt+|KH=2+~%@-XH`|2MKN_5)+6*TWVAffd+EQm?>V^KgyEBw(PSH?BP zN&yN~gL$&^YFL=_jYi_?JfL_lKf66MEwev!gtIc;544znD`}*XfQ?G}HZ?t1vW-e> zPLhJy;gmu>ET{6e^R`Ot+S8^hEZXc;$$L2N3KmH;SjCR1ro$eh1~mFKG<-62LXYWZHA`*1cEST_aB$h-OZ&kQ0fC9^XnEGfU9Z$Wg^W8$#RUxU1E` zUY>r^XJ&c;H=d4B%LwI1p@2r57mk)$5UYz<@rZFX18BuQThkutw+EUPsJRBJ;kQ%H z2vMJKcd-|`wSHri%{vuoVX zVN93$x`%#G%FDHYqQ^UQQDNg9!DxeESN8Nrufwh_&G)vOjm;;`3_4VYMnxC-+onB6 z=(Xg1&Qem#G3h3y=5TcY}|JI7liT%t!qmHx|$UXN~VLA*9hp? z0vwdO=RV!6bc59xeq&_1>E#*PDCtHAlHNs1;}gSqjiMWWwTPqX>s2tD;Ew960|WZu zZ870w{ibIIHm>NxC*k|9J&k!g!5#4FKcFO=NL|q`DzThu;9;u8v>-m=Ze}!)vGk@5 zOzntKm_FvALKr~Ta@x@Kz}wk|>b&vTww>@?jy@0;RaR$|XGbViY{{95i{cL63Nb7hkVsG9blmzSP(91eZ2jIE6uJae3B7q5?jh0Q`*pNt41+-f^hWO z>y%jK#cc~Z5 zK-*MCdx`f50MPh7?t0HmC*}=>Hxp#IzpY-avMOT<+*^9%SfyRUi6J%}^C(;-n&G@U zHX7~vwfUuj4H}zW=?cQPb~X%(h;cMK8`o5S)9BF--2vvv6K|8$hbE#~G@w!%O{gNS zF6PZ=7fnF}!Hm@0sw#*$zY$0iG2`^ifw>D*Q(M?yv5~fVsSG2Kk)yf!bADk29HAg; zBxa?UqFlfLIg_eEX5%JczSL=bXBf!D7_bk0o&>db2Jy?-K;ZcA*W2l)5_Sl4IS)A- z4<~&#JyZ^mvC?7q90yr0p4u6$P=U%z2oG3?7VkXEI_mt%9c^B75i;t*-(jX~-yXDB zp*cpekTkw|acA9VT)_MMNrdU~=%7{(6GnHls?BV%d_t%TApysUF=U^6Xc!>uT4C;LshMPd ztthRJPZ$CRe$OfgiwGj@mZ@g5Az|Za%Z^J7obh?HtmlKzW>0tvR>-+YRfZh3Y%qWm z{bn1LAhyOT0`iPbE0ywhZgxVH8(;mWo7+w0Y>%2Xh>(mVN;~^alV3>O9at;7i$r^%e|sj{O3p#s7di25}R!t}Q?c_#kIN^3a=u z1sL(%O5uL;!Jgs4mdwG@E_VXn+rJMs^qKLVs1U#ahJTWOa8lo@13?Ll=bzpMA?gz< zhW}1LxxGPm!6NyXy@CIFuPaYNs)G0#nAry1Im}*i1ZcD3?=%0xJ`-lI?aXb=u6);K zf7ZLz3x+N6z1-FB*@B7h$-w>?PET)y6R8G1S-rB%A#jk)*1trpwAKT480RrGV0Ee`Y#4h(0-qP!N7V-Pa`%9)33cna2tL^`(A z-G770_v#n~Lp69?)7@?79Zr6uV;ilCh5fg;)oe#COI|YUmD#fcKeq0kf>ABK!}qi+ z(H;3OJ7nhLQDTz za<7QY3{((?>d2N=E(e3LDbUtXoe*RS1ltQn%grv-E*wCS2M`6gR*~uK6c|L#HtfDW zmT*KUU9CL(7lokKTK4`g-Cy~Ks1(^kD*16!fFa+WR{l+r5Jfh<`(5*O1eqZeYo;r( zXU7QdZtu2X45U*uY#H?K?sZ4XD+LBNZXtGfg5okrxM?*HPU|BCg~Y3&Rig90s?=V{be}6oK==4exh4dB* zO-_#ecSokFC&k3!al)$OZHlcjgJ=jlGW3B#)|9KMN&j_J`Ehqv5F=jK(=a~PT8=%o zQQ+XgAit<___5HcH^Lyx9+hY0>!N=pS;_yYxuxZB!dsx@XQcC=qYf-~>s*V&JI1Rz zN{4i;8bcn-=yd1^6O}{_I&j|$(Ni3(p)e>z3i+QL2KRp55^{JO>>Bjg#5@%i;#>3O z2`FxNH){{;Y6zSEOJv9ho_(;5QfO7_PN+G!XUl+5P?WD`pRZ0+%->>MWlC3C-k-2P zMaho0JHi+m+FZ#(|A{>L0AvPAYx{0(2tL@OfR|%)@6S;{TCKk*3&E2_L_?LsFZ)We zm)Tp2VPGnMxFq%ioNnf?aX;oSPl`dH=^Oi&!{yC?c-}nn zYcS<-O3x)B7G&)?yDn)5iWSH|aMiZt zS`tNToqU>;L$}@n2f$x-~L%jz8HDwXwKBC7-MIOS1SoIj-<2<#eruvc+>}vSx#v!q`TJ z*vm9BLy4t>%F|`zVgegXe}A{gIz2skcJp+NMGYllYc5=#GN904X0T@1H)GzlN1ka= zt{uc92QP$eDL3dD9()&?kCn4!;AtmpkI>E2i(oaB^tt5|)CMi#xaKe+v72AAN*`Mk z$UHlQW#?*nwV=(FK40(Z7LZp;(iIZFx=by%$OPdE#fzit^`)%|73q!ST*(oGzfvjr zYvk`0Uq+l01r==e1j&RB#M{4YiVG<-j`@_1Ige=@Eeh{1C6oIGstq^YvoY?D)j2z0 zGofqqDjlclHq&i0k#DnUcsgc8Se%l7dhcdmo6S~sYUe@vRzX(bDsc7c!O3i#JSy($ zRfUkxrP&S9hP#C;Og_r5+~?WlI=B6XWCwL_V18d+$j5$|>p&j*`z~gR2yL zkKRk?1G>8N^2su1Lj!f6r9QfzO$m$lHJzKB8(_{9P;^Fhia(v0B+Hv!B|)RY;t{b| z8Aoi4QsQj-C~RTHKvxd#Tg{ZWzWh}k~QSzJ#x64%HBN9Bsl%&9!0J! z_IlR^qAmG=T*{YE3I;WFp|kf~8_&;|DpVTYJjHMkIBkd(`B`KiB201=>^4mG;t%Hs3`Mh?F1o&&fo-l|hs41|!*`~UyRCc~$byCOJ1E3^nc;0D8(DUI1tQ%|a`{>^a6T8Y_oo)S(3tLoGcz#I#(8eXkVyxmJq;q13#>~80QK0p z?iUu#f_xYO3_()wc`o<$WB!m^ifRWkhuom)x;|=1p&Cejo>8`W6DD7=J{xhlri!c( zDqtilD~zaua06a`ZorG+2E1b2fLGbb1niue0jY-w@H4m(an=7nBCh8OFt`F~T!E=} zvqLh@@Nc4!llowTV88lba6gh)`|;<1Yqap}A9~0@2q@6_&*KvpqenoYKG1`MwAp8+ z&tzKd0+Qj*lYzD|gApLsPGftJ3+C(_@@3I>aty z`Rtz{iD?O@gyw0v(4(&x-4i^+kNQ8rnZ%roj%9{7q4$CFMH(PiKVQSJu<2RHGl)Q^ z0P^|gNb~X8%!UAoa13pUWGp%HH8O~Jm@S)D{W;uFYdm~RYC0axCelGP1fy{3x^0B7 za#1*8#`^5#P3P5t#)VcL#HY~NXJ@|(`{{MX_Q^i;2_dtUTVdB?H%xuKcY?TI<&2Mg z%{tv7cSG*z$@kFWwln8_?d;>!+G0i8LW!0Mk%5cRfu#7EQQRQMyLdJhIr5sk8S?74 zzqjNAK^)~KOYNG(VsFKnK-`l+-=|*WatlL8&(JwNKYDBsGILzRhx1gC{@KxlkMZPl@~%NtL^(|={5Oki z=WF9XLDS>}9h-~6>qHt-8>qP#@;FrIbJlltx)tez?*j9~{7!|w1BmpPqYtQ5C;A&- zhgrLKYDFhIoEcGPJy^phy=#^YgwG@;OP*W4ed{^|7q;6R!@o(d)d?bt_)iw5b<<6M zMwDjSKW`G`Bo`(457KO6)Pne^#x1qa?4N3?gPjnqc>j#NL8gWG#KEMMYR0`wg3|(? z1`;5bXq_$;d*47g->KB@qVrZj$6fn~2KT!yoPZ*>8uWi{b&o(!{F^(V4>-P|twyn* z=gz>%k}H<-rsEsMW{?1DcHk?6$bdi1_QY`e^7fDa8$A>q$_ZBsk5zXQ-SkF8>$K>S zB;(?~rdejBo7oqe3Mweje=B<`KR;@3>zpBEFX0k*R(kzV8p86K4LWJoocXlty~;%j ziEvIM>515YMLylarH4s3y(FF=eL8Vgd)~FmF>=sTQi2t$;c*>u{_E_cfQVcmtC~a~ zmAm1ZdNy6qn=Of(`PkgRandQb=ueIQwd^_x;WU2E!Nu<<>eU}6OhPwWZ|AI5LQ zBNxe%E?Gj&1V&D<2T}c5n*Hg7pbgzmCXuV(Jo{y}E05OYxnyXEC5U{MOl{07>u#q? zS%fEBRvYAfcXpiqj*5#SBXFK-Y+Xd!RzHqlP0~#E+vSXU71cxoOGoQS>bQ2*{f$e^O3&I`qwppXYW5juWRZsOsJFd(;(aE*KLLehDJr zchbqtMKGL%6S+1O>TsHZ;hR@He>@K7xXc`=C*1tzFs{w`pLcOLlXldR4_EGM*`oE0 zqNyTFTP~2JxJV`21IB#M#b=daLSi8J;Y3M8s;y& zvhg(*k!4uavD70G0h@N<&jW!e{vLIl6SoGg1>Frx5e*4lw8ZH}c1b|gs7n)#?bDv* z#5M7@TNP)bvqT$?r!RN9`a{EB#Q*P`qx2uIPQtVnW*XB>U`q_*JQc=WGhlPD;eQAC zvnDpfr~QpjHt~hYPzMph-{Xuu{de`?LQ>J8HI|p;9W=TmG$$K{lrQHboshHhd`?%K zJK(#K>ni`8U6(NWSB8~Z!?KBJwdCc%-6zj%>)yVav+R&DfjY4*MJS+?EKuk!>oWS3 z7#{EA8J>X{etxS?c+z1S)2XA-;Q2p$N#7GMP5qu?umqF!wNAV#zR?qudpA?Pv2;eH z;)G?4Sh{tCtB&j`l^NR)fve4zR9sPzuwno1hZQ(Z#+il^#9hW`9Fizf!VVixdDs_lcMB94hL$;@6UbK?h?uk3?dS`X4*yMU1v%SG;d1QDng1I{`upA#8qk$M zeMk#>(t`MZ6rFiIRNw!{?-=IV$2ue1U}EfJ9}#08`_70MOWAiZ$}+Z$kTrztJ293- zlr^b*`Y4J@8B%FAs_%zNxj(4GP~C3 z0*Ly2IsXYaG;6_gbz7nbMo*%G$~r4Opg^oD&uBXl(m@0Ph~> zRaQR<*w+u;s?RW{xh^N=qgicH%WjM4U=;WyuRw53{GdIQ{LD((nIaJ~#cO7uGJ=xy z5|JCC;f4dWZ(j&?5{2Sxk<(2#7FLWyHOFD&g6dfRs8*dAM}z=LI93$>UR&HsFYu`n zVe*ZfHwOi2>FhM+QH~8iBW6Ff9)DA6*5=;Sh9nBo`ir6qGQDPRW`Km#AyPYSp`(K}8GEHj;hkB?Ph|a$^r7rX&8tbXh z6Zu3=W(YH~A@Yh{vGNTnfWGvSJ2#0osS`D$TPu%rD+}t0qP!t-zm|U`facc@@?i_> zp&9Tcd@>6iVq*yPus%1oJ>MVah+sH1u3PpQ@1?s6=QHy2+C%`&;E!?nMfyo*o;43S zxGp|Z&fOo6cs=!+@Y@)(QY5bbe#AE3(!kPbJV(tZn!Jm>A^ z^Kip+H>73)_m^e5mTrnOooY3^ADgfV1M60IlFC0NYI@0Q?EPRX2=5;qSsH;QMP$fG zgE&v!&e#hJ4Q88{cd0^4Z`>kOtUei74sE%2C30#r@-xk!Xbwi_P9{~KG2*#cFI{n)((wxM{OVyR%7to{32Y#`2gXfEJ<=Y(Z$$YEWPoT!1 zdZbyOdysam&rG`*T1&0AD(9ll6Y(-TdZ+J&VcWgEz$NvV z!0d?8;cPAmEp1y)&)%@rgoX&YtQ2^$?skNrfMmPw%ZL-!Q<`4pK@PAICBXcN94G&L zQ0;MG4ra-;Zp^}Jq089qLDQg2UzgrV?HSNSNA47q$FD2~5^JAydI1o@5*&7cEO3e? zE$nhS1||7{X2RP7phXkT%vP~=hQHep6u%80P&PF9E`u;@CVC2cYFKZm&-vnht zGC_zO$C=CuwXmFm3dgvS?mU+ZIeHS{Li{h4PkbOuQcg}pq77E6xKn~fGu@)`upm>O96oUL&vcRN{ zpqq>dV^vWi9#^V8uDr^j6T&|Xtrg7jA995!QehF2FNrlDH~F7O#G;st2YSGr|j=x$~94W@*x zA7F~q0u+y~+=2Co@8{R?(6SaSMmoy@5A=PE2E^Ggzj6JX!P~N-&4uoVc3jaa5B-Gg zmGzeTM})C%!p;PzDS4d}=D|q*#?07pWB3{6vr}f_WRcEOu+>go_b}HO6Xs{O5*`OF zanX49RRir~V~JX`Cp5Tit5vx509cRaXYM$Y(s?H&dn1=hu}(mvm6PT;Z}VfAb%a2- zn0^S&#l6j-Bj(xh*7oeGM=+^aQDNc8P5u=acEqC6`ewC0O1s9B^M%Gv#LUy06|-}C z$wJzJIWt$2<0DW7ZE+nMXq7YB>>1f!#xWj3IILgDW9j~v$0$MpAtJY{G`XZ*?Hew> zSL%G9o@myWHDw&gkA(zN-R^+~mJ5{gNttJT+}JQ~b2(+*uC9lqh|m3nRni{bQkOG_ zrG-fLSznLJbLI9Z2Yz!s8$UyCyGVb0R07WtNf3uyxc|~B%auCD&g~tcZh>+~2%~jx zWS-qgvZ>@#xIUceWWnu7C#11&=(~m>$#In{Nlbc^kutUkg_cH%M8*cxc@`Ek1&k@$JF#2?M? zW@t7meq17@(k>`;WRee`kS|EO%Q4R*6crmerx#I$m#(-j`;2ETAYA;VKu;(I-Der= zey$Jv)cLY%?xOCoRUOxn3^C~SQg5z3Cp zSGstT5F^oz=oCBFfiyIG#y$-Sx&?KsOpy$^`lofSqn!|*Np}9t$rCX&{T2%e-ywOq z5ZCrVCyRk3DLWowm85FaORia&j&a>j{!LqG2G{X3Z?0+wAh~(4&qT956IS%BLIUS? z42nV))r;Bn9M9~e#IFjv@xkc`y;nA=!I9>0obc@O)Sy;Af`>i(#?*0eF)Oqs>H1iJ zmT9gKhvh%9ZG+M0Y8}GMMPAX*D~E7?ifCTHY0GSgFpo-%4GIe94nxGK1o_k1tRC7n z1?+}fIVneXWCulw(p20&b;F0;7b5osq~O<;N4#hGF2`mBVrTE#Ki}XtGloPHBjn=K zUGtzTE3Fm4KKJGjfW($|tSqr>3Q(ab1odkMvIH|gzw_RuV=7IXNmDWg6F!}8+VF5RC6G#7+v^$MeMVd%BJDf85t`B@A*T@p;M+LkDS|WlAsgzbE)4 zy1wQzG zCFse~0=0vP=8$Da$C0{w8+--M7ijHA+BSAL`v|%|*B_9G_H;g$EoJvM5pp*34SMv20HTlehu=C& zvQRjN6&Uy=nqxuP%t5PYIBtXxZI%zumK#tJG8~CJBgxw!=1R>L@R12Lf&hBT|;(=Dg-;uAALKqS->8 zNIxqbcd(47JaLS>*o@VYd@7Xz*6qKyO??nOlZGg#Ie>c7JYh zfRD^+&Mk{YD-CnQ(F?iM=Fp%MS)5a1^hNFgZ;y!Fg*I<-(`CF$ll%>*nuyrbUKxqz z)Wp+Ayr_9oo-<=suOj!)!OvQ$@<(+rxGPqA>k{`@ir;khkD)3%%=GgloMYUu;mhk* z+y!T#8_~m8f(|d0WJRn+XEVZ(p|R?3`fMe8HTZhf+%8BQfnyC+g24eX;i!p(K)ZtM z+$TS>^_IM2o21|Hgf>`R-`sU|oXt*pWO^B6MO5+dYFc2;a;RU1%!C!7T*8=$dbm~y zlo8F9>r9X^xa`OqAEAe9M}%swrIY9dUjjpI%GCm6#^5}_3KTkc^O!8TJpO`^`E9{S z>@psYiWSaf64yM37EVw>Bum8!-9tDwNgy~{s0jCLX&z){ zjl#W+%{WiQ!%EiB&wIKj#3^NgE_j&t)kHC&wW4!poG}Pm=RPIPV4R~s#q(H0<(!JOO}nI z`ymmo@`mU418m~gl+|28tidACx`jwA!eWb_?&Mm{XOD2NUOY1&f$84P~ti-dQUB3<9X=^r~Mf0<0O5{3GM8A zv%qL@d~jLdM$WY2YM%l@kyl^N8?G)V_t9@fI>ho4Ji>@O;h@C2FTXZgPZhEHBT6}% z+7uwc_pq!Mnf%$RP{k<;#RH$Kz%rpgeUkF^szIl>DofsB*%LfF-F7M3C`KSMsuDg2 z8=*@;QAZ#Duo&(tvy7nHo)KvSub1jBtIEi!%A(AIc<3716>lvPgDHhu~=5IbCwXJnFuv zk7ZB`T7w@jcOGhW|8GUOMj@s2v1%Am@0vXGu6wvlF?W7i0Zay8Zb`|HeKX*JQ`6*soDzT-U@h@IFBZ zU;C?sKsRqVtSw_?OjI~bjI+}xWO5W{-!DwIf!?s^ZrPK?;S!xidTwegL!$V}JoX9K zrA{vqaXo&Kll1v<$=5buw#A{xi!7`#OA7TJ38ZJy;e9|)c{%o9IO)q>8J2Vu z=X|2m+cjq2a7531v9d}Ka4B3qA`sDk_sw1l0{Q8AkD1guqzpYniP80 zQA)7c&~YEHQadHv4m0xn2j;S@+SM~t|7tgoDh!Ra&*sjJFBK+oU>^NX(2c0D9f-Xt$!GZiGz^Vn|u zVUDl2{|auzH2+OL4`xlzdYZe-eEx%%w+e2eMXe|^%xyf7A-2pdm(YV92)&G^hvaj| z0Cw`*o+CHsxXYFY7a~(cAV4 zveuCPCpI~}3(JL*fY9?ciw=WbHtYGVE{cOU{ivjfqJ%h^hA(3cV}pl;7!ELro_)yr z#RycVkz>O1AK7G`du%;jP(?k>M)+X4A?KMrl!x^U!W6U+{pEr>1U zoOQzmVLf$Y`G*#6@GE*YMEjdw+LDkUlnPrr2l3;b*<_P2F@z_cUou_GS%A5v?Jc&E z$LB#;9)~Q{M&0!kZVNdptAL3CanN>60da$a@HJS1GbsX_EG%&mFJv>`qER-JRv5+CI zgAIN$r6i$y!vehH!Z8?5thud!)HEjnJ2I6&*mImUd9)o+UvAdRYmtKwVOAPrPZOhk zW;+sr3W^lTw)L@C3*LuE|3&2mwq{onM-Eod*_xx5iZ86bar_pn z@cj=rUbnFvCy>&G9@(Ya41u6-(;qb5EuI-M&(+87ur4Yq;kY#a=MbT+_)Olr>JnxN z@lsxV-6@;r>5eB<3u&{|GO4odMC`RtfmXHH2r*lY;R}<}+{TJ|10VLROT7XZK7b zrF;nLoJ)n_EJGMVTFo*6b&EB}||(7a~Onola#TEWLj77$^BH83FOI z5iC&kGO%SqIX8k0RSuy#x}I=cUxnFjINFv`f5^Owh7nyKa1MCR;`RM?`V&y(K$Aka zIOM5=O^i7FV`tER=IK4;y%B>F8GWf3W~rb-KNYzP(SYVc=GByw2Im#xh+Ifzc{EI3 z=zZlsfVlnV;+-E34sH|&iM!`%0`uPXVS#-AJDYU@G$YMF6!4!_$`sJBmaFGAVk4{F z=%v52lR9FPZYX&So~SFA-FTEJ;CDSQv~*HY&eh%ijCQuGPgI?%d05EHU|o^p?PV_h z!9rP+2^j?0NV=Es83nwQp4&0l<2xa<4ayRx&NiA>xXkmmUM7NZTsCs+eDnM>DE_R+ zZZG+mx}2kR1c&I3{u@eOCePZ*Zm}}`TnZ=wl?;XUnam-s;UQrsNs-`CgJQme-Ycse zZs*RljlN6M;CK~(M(Nb!);RVSg+f`uVqXE>_UgwA(t94sqQV>+kJ-(#S`dvMI)$c2BjM7YK>}RDk~S8R zAvPagC?#o&2rFi8;D?t5$6e2cIDgJslm3VJ`D`o8BZLDn;vdw8ynIUIe;C&WbN`xZ zy(`iG@cz>H@Xu}JTx=M&e^X$_QgT>zR{v6R6L3-VHR{_;*z0FiVQ(&$OsnLw3&oW3 z2=A8&aO7nx=3+dpn;u)c+26TqT_6^Y!|4UwmTl?e+f>V~(v+*I0-Ed^Bae#mZ6 z=Mbejnc5a^Fu`WwK+gq{ZwC7U62(#@mv|-^ z16Q3DuDa?t=HPTXOeMp@Ca02*&gWK~B;-LB(zGuB^6r%Un>HWZG23fj*udo-S4j(D zMHJb@O8wQ3EkTMUM6PI`PGzvaXDN>sVgQi`47Ty$}KuuHrqW? z(&d#s{-xx1=Y+qP8z1qR+0IC+-Z2p*yiy$0od2k?s9GSbCFtQQCw*yJtJUJR#2B95 z^AC?i1XbCq@560(Bzo7~+4RS^UT?cN zjZX|pL~_Cp4sFiFMafE*bk4TPfGW-AvSxwDvXl`=d9>wK3E>IPOcSo;<@wKQ605$V=aYAzlnT#i$Vg`AJm3sJI<)*_4S@}wkuHUvn&K;+7reS2@e*-a zq~XHrK;b*F1K|OaMS#amXSOMU>F>;|T7UQ*Pk4)4B}NBDXH9`pn($q{O$A-aQi*l% z9)QhK6K10Jo})c1M+!uumvxM-;0`b`I1(nNXd~RfBV!R+BP9%0$sB-UcRL+kz$2w> z+Yn+rS6VL#Xdmr?fd|1j+;8Tff3abu=t^%ut`ofB+)IYbhUx(YTv`7Ek<(h1|J>v@ z4B>q-5-IbIM{|MgKQ4(kJbb`U1j0QaRLnE$>)C*~l$8zxvB?$n6*a`QcPuvnUtT~% zgP#-V)2tsadO6T6QCP;0ZJXXgs{{A#d z%0bN)RbgvuOrCrCw6KZEp2B1R#SE$!W%H9ij2XQ1fXpT>aG1uH&b1O;8+lm7mLAGp z#U|e`DE!|Syw8J{02CL%+Bl5U)zzyyVGJ0;kj6-v2h+vsY>1!z?h|@kk zNZ)xsgg=FOisH|ru?`pkG5DY}xUg;WGl_srcnUt^@!lQsq)!4e2nL)%_@DiBuES9N z3~7W!OJOb>bwwZ<(fG(%Oe`7cw^58t0s}6WI_MfBquiLM;G1(=OxEkwIyjv#bM5SQ;TN6%@`Gp=1q#lh9#RRzGl}5N%v> z2cYDPL}k$_ncp`K?pz{ekdw1=_VbFI3Tro~vspzo)Y5uPMZ;=g-(lL%-QvqV#KIP* z;`aICF2JtD@3iqBoKI;x0kDoX6tP9XdmCcb_cNE8}8JZQfSq<2w-=(B)$!Jl{g-_i;nGKxUH zinXguK%`=Ym`XH8S1hBiJ|k2-$JM+BScX5DlC=b-qM0Kd)}xLJvUUYke=?gnTQP;N zp=s4D%-4dlm5PHB5;~gF2 z`&Qz?&udcaE7k$)0LRz>C*NTPH-7=+Z^4E4G5=)A2~2(nnR@>l zLJOoao)BSXPX^3t!)Yw6mBcVb)P=qYGL(ZB^COisv?< zJ-^OQPG?yspX)cTw-hU*h8<3Cw9f4WUNT**%69yxLk#)Y@(h?#^ zVg7|oCFIH)TRWON1cW8TygLB29fmM4Jt6^!33ay8vD0Q!v?SI(CBLE7vblh*oL3M) z^BzON4>kfJm@s=zM{8s3G$tiJw;6VL$TGBKr`j|JoR>r6lPd>CleRWu&!n7>vKv>NoSvXwq%;d;4Hvk4 zb>YTJ&&!OqizGZ{qJIp`LnAe4EEb2AaV((ZmST!-VrC^8#60P_K2^8kaASX9_Bc(s z{`x?_w7r4->?61cMY+1ccXVuQ+VCLy7i?IC;K~OdyGgm|?t5qBGWOC7sm@j?UN0k%pq1lL3AO{-g7-ul&)(z$Z`0bE317k*1XIHyxg6H{AA{{s%Vk z)HH+jI$Z$h@V#XC^6Pg8df+9K0MASFi@;_$bLVjF#f#_9S011MzX&m@G#cO;a?mw~ zH^HRjHcamTZ`OZO=Ev7WfW>5Gr-_}6)Ko*%9az+y8jopCCFVPF=^xA}| zlTv9?|Gj=a1xxY${ZcY>V}G*x%VeM=*5IV4r-3p?{M_W$;p@++9`ETxQ>lt8Uobb< zdPRKEn6;1Z10>;J+UI=NL||e)jXYTFv3M0%j<#R?L-P*=r~YstclAUX?*s5`WJUs~ z^WFak#zyJzA7cI>f9k-ObiiHshL+5u4A>M9pP@>kWe@|0pC<%~-gzsv7 z;ph8F`hz^&-O1&J9`iTCdvd>iRd0X}7a81_+0L2G{T04%>BMeqWCUoK*$4cEh{F~R zfRU9Qplss}=-YV!sxFSd51@-~k-*7Qp@5-J6fr0TFl%bPbgopIWNC@BZY{RP%iB3& z?CtEwS*0YLgQKa756Qz1hx$up_jh-dbszC`cLzL9weGEBi9WvQ(*$pnFAejNY;_t# z@$<8C_VFiB0st>44LYC%0;dCz-u`C**MLx5NEGI57(fn-IXIl&2Yf;!(BaXGp=p3) z_<3Sz9A%G&XGVahqfW(8F;U5YOI$h-m|m)0W?f$y5guM7UFb9weJ3)}C8>1Xwv_rH zX%m`bro#YqVBWis%Yan$RR9%R&xHRu1fwqjN=e8QX$?=#wcwJwrBi<*i5EHm-Lz&B zt%;dP&t?|f{2Stvl1s&=v8Gdswl7p{r-vlcC_jx-nHMLk@+N4ReatM%iA#+Ah5eM( zJhW`~Fs<6A(?{F^a`cLW)3s=@*Qhp0as%~dAjYyX|oFZMhSho9@ z_>-?{E#&G8;8@K|K)m)fzJ7gUnwU&0y^pJ21k|hl#Z*mOdLyMvuiismy~`X)g?t|X zdNmI)wg1$Rj$fr=ud((I4^{z%Yb)fsB|xR_8K$1D(8MG+8=w1?-oRJ$2CRKs_a6HA zKi0wjR%_tsI-E!YMy!4l;6M24TZF`jG!X<)Lai)7v<(^GO5K%g{e)>p9>Ynzo2+8t z+9^scDy?tkJGTM(&d(D^lYkzwdLO9W-l5q!uhWA+dHv(Yy8|aeA3=+u%lJxSNPpay za_UDK4OPi??>geHzcak>3smk^>-#p@59$ugV(%>I4;tOTnTMD);JA^2MASfc|E#04lEp3a(rM@+w0rE1;`Yhow6QA;k@y_?|Hwsrvd2pq}wA ztrd@}?Z55WJ~Rg2kWL-_lQHxND81D>$?RP~4*WAgi~R-OTFm?h%zv^6R6S)iynxn` zlPN8a2u&;Bz!%%S>-#`sPZoUgC2si5uep7mtgl3A6d-5eAuS|?f(&R_gM;yrf!2U*DC+9wE53x=BDaw+B2l(wlx$#x3tguxJ-StA?2eig3hjTrrebs-n6t15u|7TO2_pQ0j@`I( zQ&j4U2~Erm<8dx1F9$0My-qr7n2a=ik9l|M!Eb6y_I>FI0QGA7m4wij+wc5MpCeBq zeXjGFJTvNnV5z>9cJf3d9O{9cUzd#%+5l-&XH1S%p&1zDunc$%gii&->Rwd8N9_LW zXjGp+#jW|=>7ApP#tKCSZ^CA34xBJ^nxcsRXYB&0`VdYF6yr9M03DJQ0~wd|6J=>* zk8}hr?RpO;A!oqB#SJiZJx%hY08XcT0T-AeJvmq24dHQzHOS@Y>UGK+>ElQ6zQ*dN4fiVoo-GJ?C=7eD4{f?oZ^!NS6_#KaG-ZvwsMV%IOQJ{=oA?Cx-Ns| z5*km5O)n-G8H@P+bP5j(+W~>Fc!=^7Njq~c4Tz76+mni^0c6kQ0@{Q8hxD`Ma^WR_ z618DFd1HG2WnJ?1{fJC@OxC^qjqj6j+2<}Y6Z2UYiVhB~U;=;{wH&ayKyjjxX``?A zt!UL~+Eu1HD(ePI5>9~eLAh8P&&Yi~RPm_O=Y3Zmd&t6wN0npWJlT7SJS}MNg1y=)7 zjbhCA8Pck}2jClD0!O{xa{159*8Y4m=|uah6G*;m#ThZ`I001SX9cmQi~B}7+plqg zEoi|ElF2W$NGn0Q%V~1I7~ixB;M(3XIzVj4r@uYBKAW@<_3K{%z3z9bPA7Ulz!pUN z?kP+vsb(`(Br$pn{UMMz{Jm-y+MI3t2kcs1?U)CW1|IzXk59k=U2@DPl0GDsAcHNm{9UP|MCKoSGtpg2@CNmZox&MNt8PL;-rw!Lu5zpbH zTfcx?Z@E!226z}vL=~@%Ay{7HK?gGyhk8!`|Rrij{%+4I4z5X5Hag0;@39m<5 zR^BBbE7B}~rDcg%>m9Ev6ae|$0kUYhsTQ2IcwW16fdVGyFVLWJ=;C=tc~VF)j#vBG z*`y>6UMH?3Ic`p9^7kGh$(cKV*CO^mf0#gQ5`~k4=$8~1b+9&aEP&G`0Wjb+N-*Sf z5Q;UySN{FG%^Moc#^=uk7fLYZ#8B`JH&4hhTr@;4hU~aY-{yo-#u?7MxI71@o=F%ni}9Qt}djQZZ(>f{*2n$tal7F;pxn6jsPQQ&af2>RqzKol zf10L!Kw62ke8#f?T=y4DsAw{?m!QW$;uejPe|hE_3?Yq%9c!nV-Ae@jBktAcwsbD# z6(Ke=Bg6ADET*UeF#i1)x>(%`RCNsi?bjJVS0C6nJRCGQ1|06+A$Z^ySF;zYEmyMv0vpVq15%h0VN)+JFK!8SfuG3l>S)eWvXW-@E-v1KsvZhJ#RM{wL@k&=KA}srv(7_3IeFF=VKm{ujiB0}EoX<*1 z2=n*z%AXV5JQ^ep6O5J3u(q71GbCa98N+j1(AbsiahgCTJ258HKWK@H(fu(O1N?%{ zZa|n+CSFHTSHk^lc=#E&qwsA#B(|#=8uX(eRYW*BIDC8sRZL(afZiYDj0X{j%G((T z&}-%GmpU*5#-%2^Kd+1Er)f~8z%SWGo=j2%c5ENFItb%);V1mS!+ zgTvz-5@i*kSUzxPsgjo;XY9x!wZG#RoerrcSQ(8KSHY=$xyTihQ@Y?Bg~_@rByGL z8g_JYzi2%^n_E{}GzDC&S7V(JdhjlNMYe6>b&1?SMT9!ph;IG=R4;^`ql>HiQG={K zJaI+ny&WrrpEIq9q%f8nRAQ!skvlvlEYKPz$bBj7w~K&~pdf6AJ-EhSZ`kNEiWAl{1XUKKH#8)T0$nN;QcDBh|r!><6k!{-1N_o|M^tPX}nurjs9 zZK)h`adP^tl&Gny4l~%lOy+DL|Jaa75Xgj7f=K&BBco?Zii+38VObn}^RcSF7`JVb zruDLjv9Y#-Kt7CPiJz0Dx*(b>LYBoFdeCgHISzy=$ji3{uVw@Zh^%79)*Drq*gGd5QixF*)hF9A~eH0;UnBZrhsT&Te*y!DR9`=eWM-$s|Te};6l zw5G(+=rjegduT~}goU)e5`RVpPy0;-aoL@37SFMcl+^uWXsv3^0}D`BQyX0QA2{IR zzREPMY1)E_#0@!F*(x|2n>SKVf$fL`e54`DFcr^*8*?eV;fB^}R(!Cty4u>44ZkrQ z*;y=trGVQBS8~iQ7*gy*6?613!g_+s5tc=VRBH6XH#$TuhmqMSVo`GMI`nhoP*sZNgX%{0`n=9=$-#5v0P0Al`y4^gV`HJ%loW_cr$cFF=55~hlXm+_(R}9N zK@D9`%E^IfRW;DLrlTh@+2GrB8zME_g9vqxAjRq@5TPI&inu21gloiI0c1<%Cn~?$exZSDrgZNxl^3`*m_jZp{_6(Mw|*@pZmCf?>E%b zi13U}O@%V5uR#%QV~|1pKQ5>5jCEASU~8&Wn16qx3s!D+yn%GP-h$olp8NV8f<5mc z{p%;LZ})zP0dEh55EKx``i_1vTU&9+6kNJOy)oc_wFll63TW@$%*WRV}j*-TB$RFJ!jYrnH_?5Q3-BbtdxH-O)xoH?_ak>P>< ziDosnL*&-kc3C~;xo6J`8n)G%CpFSLLgorEy-Y~2r;2cW#OVO~exmPV-zUhB@fkWf z@C7mgze2{W5>&~co^d~T@=rkToqmd8v_ZOlQPL4UdpOcKz5}I-tvzORIL}nquelFJ z*7c$<(xHIRQ2wW~LUEYw*EQ`Q^(R9RE*AJ>bAWX^Tuy6`<8;7%-qkC*?wlsX2}Js7 z55C~I^{mD=WXl{{LRy-2b^G|9awDh~S-DWqvaQjs)v2p@J#e7Y*)RG;deQg$3*-M9 z4eo$L#zQRPja|d>9D5Tzgk$hcy?H|f^=ph_{fRz8?>zn2&q>{Gv^H~d=Lk-eNqPy1 zS1e7!{GoAiQ0CQ|hV~h~h4+DdJ4&jpc+D<9)gv!=4^EH3VthG$J2`-2Fc4!n zSbWm=Bx{DX3*PwFFnn{kv;ZW2N22LxS69GjV?=R1Dn4~I(s1BjCGyjHV(i9myw(cx z4W=1Pe(?>bz%O=1uX^68T2lWpqZLP`q8xCk54$*mG3Ss#@YG^Q!6Co19W#zHZ zz9+7wQn~%@4P@>c7zj~wbD{H{!}Hhv758lD3t3sLU)%myEkB>EvZK+ps?~$&MX53u z3K-k^{U-)k;Nb3%+eynI1H<=-lYL+r?{SimF>*oL&?yOQZ$D*VEPZqSEB}|i%%iwR z9nDU)Hsz-E$F%=_!@oe5lU?fWKuLwgLa~>3(`jf`X0ot?h_G-f-o?!FZqtwo;aB^y z{CyCGS5a2Jau~Cu*yrZ%4h2U?Ls>P~jPE>VKyCLR4CeSX2Ch-Hii}|>w=&f_HM+H` z+fRA!==A9k^v|4MpF=?3z@hIqGS6768yMaUI(O}4OalU6wIw~Vvc9rI`dLik*Xl;% zJKjPnIK}^ED~5Qv>a0>A+l@ay*BwT$uh%ZWGi zRNKf(C^>Plk09G56rYh9yx(fDP6Byh`U~F+LurnNa^hTh*^8VWpXjStQ4x`|j7`k9 zSZVddnDgDYAbDgJnX)KT^PJW2y5&uAhqw!!ysg^Jh)E`ziLq{K;AlYYN@w=mOZI-*F1`W_yyfsi%-F0zNv z)WYVRzCWP-V4m$(%(wJGIIllhFCB$rfYuqi1S@2&KaX)>1fmuZh7RNCbtD4=sL zSGwjUB-a?+{^p}wD;3v4SK3oXF0kfQdReM{pjzK9V^zKH?Xf@*->Rim0H7qQbUA04?Ij-s2@RdbaF|Hw{tey9iK>es8LV5@Hx zEBMis_)RGZST5D^1UuWAQyA_msdEBo&OHh7W5c7Epdc@ zmTfsM-}xmKkFO8u-pBPQUf%_Kzb%?*WhyE6aZbg_tIz|?`P*r<=U~wyHdRBPsxM3*BcbTJx+Nz z&Iv3Mndhd`0!92YRKXXCIU|QEy$DvWBELfW#O`1a7J;clSFT7WC59H_a1i0Bw_pgm zy7%W@Opf<#STiwtE-sIUZ_bZ058JP6_63DNt!2E_}lfv)drU;xR_o$Nfk1Un|kO z;B`veB>^v@eG?|sU_8Jns@=U$%!haPINnFZrO&k@lxKPQxZ;<=Bj<2Rpt)o&N4OI*$t{+pErMfTohidJo->Z;azWHYEx>nE^XE4Cklljzt%5L01kNe!SJwHb6~HMxk16|}myBYtfirChbabvt9hFQl?s>>N@dF<|32 zAsFOG0;Id5+znWnr+JO)Ov=CDn^@6yde6Y($maC-H^LRqp;~6cKDs4Rbz>J4YemN( z3=26V2~-T?X8|VvP(jI*bwXbsB6aMI8f`<)MXt`y{Gf4!_ETxhh(t6fg_K9%?~+!# zJehKwGj;{30DhyLw30$wM`c2~g`;A!|Hsgo$3wOLaokwuAZDy{Y#I9q&Cp_0GPaBs zMzU2HQHVla;Y!9j_OUjDV(deUscxaVA%&KE4JFfR&uE)bzcOyOd!FC?d;WQz*K=Oy zdCv3wem?JyVw!~aiNH6SQ>ONs2=FuOc?uX9G2kvhFzLR!bM|C(!X|VWCIvcru>Xh^ zyl)G2AD|>wZJLXrStsU5o*|iJ!5K}T7Ub7(=o9ylayG5h>5U)B6pOm;c znJo<%Y>$Le8uM7|>A>PdB_C~&TxaYjZiAYQ(c14#5Gn~%@eCZl*v)Oiu?X{2^ZX>D!^uDP5dBa*+N%2xr?>0$h&1HH&v!MYvai!`|?ey2R{*a4gjizO&uaub-qVF>ip?2AMm1ON8sGMB{#-czAuPi~Vos3n27bmU)a--c9zbSFp{1 z$PsnkSC5Ewv3>h8A{rNrp@%50>9H&i#FHPG*L#Z5IIIql@byQM)`fX88$HpHO?1lk z!d_|7_CelZ13oIOTLsm^yK!H!@hK^QaeY9#im7=8ts9oUsFPwFL{QU5MC#6puGi3j zGzTdz>-CS|?QEeP+qZ+WIXivvXo$LJU+|fYPSdqBTAZ1$Ys=oL+rtvO56zkl&n)fW z<8miFAQu;61l3f{YrxgmX7I8CS(@ELYFybkgtUGZHh*x$&Uil8reea${NKiZOdgiS zVio#^nn~iY=T$FV7wh!T&8%U8M)09SAiKI6Y8wM;l`o$3&i)6n-$568xXV!U=birF zHUg+sg8N8{D25s+BuDVF0ke+W*f9lJ#Fi7bL^GJswc&F~!3H(Y$Ht)Shg$o*r@g#N zRn<%rjlsW&x!ORGjk5-5jK=*m%BIVT|&i(U<}Rp zHFU{w$!wS8&{?{r4VaEnzqcL*M0gZn$vay}z{Y56D_?KTS%VlB0sfg_gQYcpa>2;7 zaO}5lN1n$fOpc6g(_F^UF*h=X?1)%r{Q0E)k5p6#%24i)D#KNHxwgK?Wmm@vhMjd< zd@xks(b&`U$s)4-(kccj-P@ZSoN2t(m5@=E_k>bwsV=}efwjn>0+W@?cY-nHrtF8#|Q)5g?T6NR-EN%Z93jDSCgVc&E!dzSm zpGmD2`s!tY^7CULt(29Cy^#?s=LOqpDhGyWu448m@1GToNkjY7`+D;0>Or$qt!j!h z9f``meer#d6r$QJ0x?}{-}dz@>DPdjP~5n>&g<$F6__)+6O)}?g+i088v}DH5#DI5 z)#mL&${8cxC!uD^W1#DQnzV6Omc+yoE5n%4ovoi2%W8J&>%TTpgVpJ3sUBvJl%|)I zoYj&g?$~)<)2H7EzGOomJI8esFDO#S{9w*Dw# z8@e62ZLViGtoj%L$pii&_cHn8q89 zQh23ozmQJ|RVt8&*KtrbTgK+4dn1p>UEBhWgL3{KK&SGRNMihPq>zRS&kY#7Qa#;6 zSFuKv9reo|2mh%v`pJlSuaPt6)YLb!M{H*w{2tt1Tz47$;l-?l*Cb4Zz9>rLk%(Y^H50`(u?6^VZbEk)v@PU#Sn*Dj zL&WdpM8#pc@9L7_fkY{^J}d-!pYpKcjvI5wg-6Cs`+H9fBp&@|Q=_bu=w)McTvHk0 zkiXAn?~x{*J4d@VB4@30Ng~kznnGA7jt#7>tdgB4Zy~?~GR?Zi%~gH7Pt$!DRcbBH zF0Gbw`h#Ib?un_$GloA$i(;%Ou+TvvS%rXx5D}Dz569;om#r| z82Z(}kV)x*Y^U>-VN}Q^t4)|GuT3A#yCGNKpi%#poeu}h)7ltrI{f$3(@vh!AHO9> zLbGs{U{^zFHZj!*r8g*m(@dUz+d%fPQa1=Ikwbc7%zvdfNi)mKv0Z`~t@u2D$*P5K zS&o!2GJoP;+Ep;)SPX5yY31mmdhp=^9H4YJRxS95>AVMCSO>LjZGAKDDSsm^Q(2=={g0Lz(b}-9r z8uNG_yY~sE8AUP%xNg<6f=RAlym(q5OF%U2YU$&?0cXrvwa`4PF{PnX4kbsPrk&f5 ziFDyb7HgVdVKDqqSwBCaP*qR&=f#V_sY%-Gw6#e@z$dFOY8E_z>|=6s7hC0}goNsr zHTSfR&7;P<>C)mq4%=dZ(V(FI4Lh;%Dke|UQ;v4@ACt!5D->_ysQ^tma7Y(FYbhvc zqHb!O0Ng`vryHz%`{WfWj!O^a#61 z$*NUq)14oBrp$f^+^(;jQT@tXFgbK?3(0*qr@aE*fJN@XZu;&>`s|(4G6YA z$bLVxcN1=_J5dLmJ+$FZEIIf5d6*~ZLRkbO??cvAOc08-lyyl$yKEbEfO$mHtw+?; z8#}<^$HUD^@K1TmnP)Dkrcs{9t&tgvU}dwQ)!-|FBy+b%7vU!Kn1XKVrJ$46>eq=0 zfo`haIOD{(@A{g{i7vkK!D+{$_w8HV=9H(gUkD9WUo36ZsvIwEs`1MN-{m3#$P!*q z;o^2!i_s+C2lj!~{CsfynrevJ#iuFi7hK)iiot;I@q}gFc7{o6^QP%Fdm0^s-ddA$ zZt7rgFw|&}io)VLY{P%IFtZ2`*J?||sO(Y#O_|Fq>kIn4w{W5^YMH!y{MU1V^Wy9CY32V)&0Q@zRq&Y1kq zjT}mg*!8waJs9$`e5u_~&U4v+m_MZYcsIL4r@bmhNe6tko~6#dWAEaQ49lsyEdfeR zW1c2OxbDuCPl@{F8cN^uQQT#bzIOEv#`I0{PIFKL2$ZU*hs7u#G#Af>frc?T}T zZ5PD??fK#`a)f$?IDsyJypVvFu#+QBXB!1h*J>uGd&!$GddfqMnka4G1va}k3xyI2 zlv^Wps8xxx?i@FgWzK@8DdF~L^7-#U&{R=lqrck`XGpry{Fq}<$NI+Nt7OPIxiY2j zVWeAlKRj*uIu-H?+M9SWNPg9kH#fs7viVw5F2zJOTdqRIsKB3Rn!Bac?a7K|)O&D( zkz4a<8Kg)+vd@;3fT(MKL+VZb2E?s)0V=LNiIg%}(W}>+ma~>0A#v%6jgAIESxSdf zA!d}9weDRl#OwH3QHbSoju&|~N}hgRYEUiU1;!3`*7Z|<-Y_!2mD7jIOz`kdC|fm7 z#a{?}2Je|J?0b*^b#?_jKHp7>vsE5lV~T9mBgX0BrFDN5fEfHvQz2vOd_E6{SVrI;eOQo_@PngH(G2QR*MGxb}41pkl}I! z@yl(HC=F#(Ay`U0U$ILv>tU|o(d%bqa0Y@s3y=P@-bluEGTgrxD=3tplrR}hK{>s{ zP@Lj76eK#Ypzmuu19Yi`9LVnmHhDGGGi&`GavCI8A{>t)Bibqv6oGHoOX+!wra_Xl z*J8^Gx#6#V?4Wh=eqeIj150=YZ`FYMHK3hP{&S~C`>u9l1NDYgWTeb9X*Mta{2z4W z;$1HOq@9B?4LX~iuJrk`5eW%DlP%5qsJ_{cB-I_dq$v>vDCz%*YroSWRUTJ75`)>0 zp(#j8bc@hDeb7QpF48P716uHXaW&!Bxw0}D2L(-^{x*0qXlk{Kftj(pUEwZO-+jUrwKRg#^mgKr+3(-1ZFX?D z6THVk_mo|}JFnDMP4NykrMgG;SrKiZEzDbnRZyX) zEuVgacABW7bmiC@)}jm6dGg`8ZMLC5@rSzwFnR&+C|AS|yB~aHs5k3!1e7?M(sXK^ zSq?#24qG}35*4pgRwRybtY%=b>&M7;ytIhxVi~Mg9h1fFa94pgPV-3aPGnUyY7w&@ zYKHATDxX17nS;6Moz+l9U%w24A;ds%B-u6@Jrn)#2ei}bs|usG9dJP@eK9=?DlRO9 zkmLO4bNMQfz#p5BQQ0qHi{c)*?(}OJX3lhm49QW3npL$&Xz+UX<(fpA+?tj<-mh;3 z8z{}=a6rU00XEs-t^-WU3ELfkIWh7BntPeXOBfQc$mJ{OKRhTEvWr6LOTiQ>CQp=> zR{{dRy5)34J@_tNF{S29-W${i&d53COwl1>$)<>IgkZ1Xe+`nJ*{yzu!C^KPU*s?W zdbhA#Q$s@${U&Tsl4n(Q>ozds5WLr?9XH1EBFTp0Q;%1nv|idZ4mR=JADOo%p!`es z7QQNe12xsv)m2qw#V=T+;Cymw`#s?QQ!Xba>G2Ppnmw0=(=&M*;cCw$9YfO*cIaC( znbdi?tJo1izDn(0W9ab3L0c4$mAYP56y^)y2u1%>dWcds(azU60?QFI4;bUl^!#O9 zqP?Sy1S=SptcQ@8_+nlpRCtlcseRPvdS$8(3SWhn(tEK?Y}$hl;FO$OPRwrxdRHS6 z>FN;8RE80-tN$Bhx#kaR%p^#Z@kmLEUt}DJuH%=t^)>G4Cy?$!U4N$W?&t^?r1Zv^ zxWvRp>_6k@^Wc-P>pIu`&A{vN`Rq%G;^>=sNtHaYqO%Klb&PABhEiZ`W13Bh5_0bE zRj91#QUpV5KvG)^E`o-O7opdeXWGLPDk~~LLzi?#Q&EK;Kl(!`*KI9%DV?Zt^H82n zF!EE@6^x~rtv*noB>hFsnvg=fOIJ?iJ`tSjEto2lLC5I5!*v-43-$m-W|SfnA;Gx^ zN*pWt20(6lT%OT@m7>w75l1|FzUyV6I7c9bs@l5EQgSLqJm|-B^Qb2Jh5DJQ%E}xQ zx3l2(b17ZJ+IV{yB-O~=OOz~01KLJN@;akSfixsAHR*TVZ~5T2zjGd+%{JZj)vO;J zJNHOM3?J6KH2$gpEGyPeKu<|;)wk&wyQKF$Ret+&BL#0f9`OZ2C({ZyG!~YPLhR1# z68Tm3*S6MH07EZRyXiqK&CM~@wNT->B+pIpGA-(Kz5_+{S$W-j;7sLD8*Jz+jlmf&Z@e~2cGRXiuC!8O1yqMl{vmj1zks9zK}v|-0oh$>*xTZRMo|< z&d#8=XqA_cCzoFHR3ymBSBsz)I34L+^Sk?1I*r!w@LM;%q_tbaTfBNiQC^qU{ULew zTz`0FdyD{^_q6$e=2}ca4ST6y(_ioK41_m&R)B_cVluLPP03B;;~MuPDw5F)W7FS~ ze~niY92(J;Z{*wl)28-HWaVrrdhPy`-t?wxeKJi?2c()3csRTjX}t1>AlK47gjUcT z={cJ#_#u$yxDRU0jNtrR^p?($AC;m)`D~2yVDuQhot`<4J-v|6EgE_YGEx)bJbR64 z^n)(VQT$Ol)pli*u~~F-vRAS0M@Oi?a@2RBmuy`}hf26|``)i6j{J{&&)xU+E7?3= zw_biLZA{O`DC0+6=qt_?ZBzH>w-zRWQmZ4K4?ESBEyU7Vy?qLd zU-$C|SYgqz;MncAa9QtT@Y}@h47Gyb!-r{~0(a{LL8!n2Z#I^(85e!Vt#jSb84l#D z!CF_?U43T|((GHe1I8OJ-hwG4rrz`!)$6aCcQfQ&({y(#%)m9MAy4D z$V2gl+CS6pen#GR@NIvC54a<_HDqhS8fCwoR&-Fj#a>d4+?Xvc;4zMj7dDQB=T(6- zNMcFJ-;!(uo%{C+D7n}Kj>g9;Y*%cbPV83>Rp#I0xlCwUAH<_AjPwQr5eXJ|Zb1b$ zwj#cqK{sxqCm2z(fA?kn_t*bG_skmf&+N}0C6pWzq}M=!Nhf41l#iaGLj{jSx#g9*qlVaUF7&O4WJdV_xmoH${#cL4 zy7`{ce**_i$yP*1`#;ZY@(TB5V%5l6j>qn=^bhtJZ+1zaH) zJZpdX!^|`%&mj-nVOc9!I(|hiTa4dx(J-(aJ+)ADSAlut%F_XSn)7TqR5CCH()ou3 zx|F8Fsj4a}K8U$c$IDVGciLL<+qRI{7{}QlUZ{(gp)bxDvjflWaIEV1uN<%^zk|Mo zHS|9}dvH06iz0OWU`ypcd}8eV*ooNh+@|;835<TI3 z1n*X~w*-pTLnp63w5+gaE{V;zd)hHlDd*AZsnb0%896JyP9xwV=Mn+kwLf&N9MA6T z2GNO$Fdf}rM2Y7aSFl`7(B(#1hZTH-hJ?%V;pLRn-oHwn7K~CWo@cUGW=Rx`Zlh1n zCr~#f8WL4iH=h$e5dDPyT@H+kGG*{*bhzX1Z_cHRN;@UWwxK3dug8>|m2*<23Y%2- zWXvSz9`_xD$_v{S5 zK2-ihPocjfGIoRW*V5SFGRFepKQEbZ6=u>{oI8WVAjT&j2=!k+?QXLgS$_0EHkIx> zIP3B|Q>=;qxzZH4GdDktM3`PVs`s{vjg@y{@W86MR%2WOjbp2|6ao9 zpDupd)%!wx8tUH!~FOmK$eKzN>Z&dQ&QsUpAekNugje!28KKYoI&j}vAF-SP@1aVZ&_#< z|Lcf+>e16@K<7J2-}`@uw4oS?Kbd$IX3h5CK&oQ)yyFVWmh0AOxE>ur;yV}Ny*lF0 zoavZ5_SUC6=KA0LxKC;4Tq><#uTj#uD=x+w#=02dHv)xM)|jQLd)9Xbk&qNG_+pv7_?8lNko1xq^Vpg0F)MO4B%(sOF(P zUM^M%hp)}`5#EtzAV*x<2@zaH^=h#$SaREiU$ij zRf5x2Kk|E`G73QV+ZEpIH|TsPKl|yR!4mmlLAP(vSc!0GWoVczLH{`in2@V{F`NjR zh#&WJE>iD9^Zt7c(=Qn%XcQNFK9E%C*~c!imneUl7*7>cb>jv|eK^yN5NwveVYkN*ZYlF;{>)Sp1tkyYgOUg^%>m>O;0F z_hx9j>!xC2GMS)%t}`aMapdDK=<59^(W>NYNh4ya*`?<$xQ55CXan;g!*FI0+Jjdq zT~^MA@?2fU74Zd1>Qg5L(~t8;=ch5a)hw;OLLu%3`sz714JlH1uiREPoCzVsoYf0t1gT?ma`Ml5%PHmw(c-l>*l8zI+eT zf$7JdBa^>Jcj?;jnwWDUs>oe8x@3t5{Mh zC`2iv!lR26l@$|GB%cNyIyjpMAWizQ0%S)L%5zAtAtZ2V?olRd7Y6nU+6m@a$-|6B=5h2 zNy#thIzYCMeI)$(Y7u(74936wOActePZ^&62pENhV_2INyNJZwlGZCBCaC@QmvhiW zu1Hg<)K%nVZl)a5_+`M1#Z2Lky#F6~`Sm}@X;!HHXyy~Sx&~83RPgcIllm4Xb20T= za_`S7%V8ZoYwQo%qxsUjTr=h1ef0l;tt9qL8fdt64?LU`gI6n}ci;Y_e7Fc!+1TyfH2a zy7bJ$D#e&C9MvG&i$n}}oQ^}8Y;|3dAaVia&8)nJJpSSNn|YlKU5zW3v{RMpSviVg z3*%T`T%p|YnSb?Ax>uL3p|?mj?sGSynfN@PSUurb&L8bicYFNlf9U6(-Zu5EN5y(> z`Bz?|icR8n{cTDpEOT3dPG4)@vZjyEI+vyT2!*EH*E-vcUxC7oyl$u}f*E&ryuA8O z?mZ{f%piZd7S(M?A9(=Tmu~uoche*Ny zB35~vHpU?6J;X(CAb-@Ic{FPf6&vi3m%WC6Tw%2P7qT&@QVkp_F{?3J81&d0pdRRf zdVpFN$R9UfRG8~FJ+2KI&#ozaLKSUn_RQKE5m~g5%@~I624?U2^8r4`vQy>UC%^5A ziq;W%4|aX%q-E8->@=(AqEruCb#hUVxrVNmut*-$B1A>#w`JHWti!yn(zSjLowoiE zW=vEUsy?hpsE}7GnA7vpn1N(I4`#Uz+R)T`qnhj`ZQ4rSB6}1-w70Xw>$SbB$l*Rf zp?DH`(LthxI##N0;eC*OjI_^O|++I#SW$W=C8Pjl0Gwrjj-uxF&~EQoP#s zSJHri;||ok>celS-71lzRXKyFO+*hr{8babT)xIbuvHW2>u}~j%3*t*Xdg$1j|%g; zsccHz81J}A7Gsl@SyZ67FRP75Tlm`hBpktBxYt&cR{BPn}_S9Tuy!q^(kpL%YsYiS4tN z86Skx=w*YS*B}HS6)x?GB!rHbf6V%cMP`t4)Q^qFAQ+h;t(%#WJ?CO3;cSGA&>~bj z{!R4u&g8qP;@7f>(i%!&_GtBcs`nO^O~L5zZVyQZ^v_dGtJLR-bJd=@$jZGk1~6%?G%Re9D_<+^m(phOmnfo7?_)H zShh0x4b?YY{vc+(JZHNpszRucrzzy)O|#0mE8eX~BHN8cc^??SNL^KA$t$+q!o5t6`y5S{aec=VL9e}wA*ik=mA^sh3egrMkt5om6l9XGP=83Xep`Q=-duuxAf!DM}L8aNI`=xkI;rSmDcj-;x zM5O^!f^dCTz<(>qDF!vEu7lL@0I|O~fmq259uwn|Zn$j*p&?s37Z69s?HEgifV%86Q6UJ8w~+NUHmrUwemBo`piM6~vxC&Gg!>#E``u zk~VJaV})p?&n`;6v}iBSxY{Sii(F#=Z0Iprhw@8&mbas=P$WkE_d{4<{97+_l*@2x z95ej6&SVL(YkmhvZBZUfZRyra-Qt(yQ65W(bM%|4rRgsSO#YmY^8c55?NiW4EBveR z=H{LS#mBLoY^48CMizZ_Tm2&>vZg%l_p_KRx98O?*wY>pVEl}946BecUy0H-g19Er zo)R_Ge(J1}njTu_me}HTK_G-<6vihWG+ZCONVeRVzI%Dbc7W88(zWz_{P{RR{L^Q7 zj(Ux|gW!B4l$og?jqEJAtyV|EA{2h4NA#Po2-cWLTG-U4x05(vf3pEsKBh_M$RW^fGg}4vLl1@!g#*2p{;DO!hEpIyFM4^g`dL}UX&b5gxtA;e*yPHg> z`59Wl_FpTM0VI{fMO+&nV-V{m{7q!L_5i(0gs81&`SN1AMcUglt^)q`nb!qpL+}NE zphul=Lh84xL_2S}IQZ9csHr{m$KtAFDx2gYni<0?{mw@Bd~Xxt9{ zLpLvc#e}c0PaO(y?k8im2w(*uJ&dt!0~QUhA?zB!0x}5 zIgW^Q1@F*J+RT@X>krLA*Jv@#4;E`_UkkFE_h$29KGW)NL);&KRE2Kz!NS|N96e;+ z*xjA5kj1g49D>@DUA_zH9f24NR)@J;*u3P=gCiraowu|&L}vMSLBG&wr?R>`D*zRXMC`t z2?I9>PC_jnnv>AOZ@b^umVT#*9vonLtO~f_Et{FEMtGB^`6##cBT`wT{dJr>PYhwv zNFLEAj|#sLpD5#F@UoFr_f{9mP)#}|t`3awRGl}KM#O7yqS{XFJ67E*gWk)xae~Vo zAoA-1#e#|$K@|1~h|ei-&6z7i$Uwf_exD;L*C%UV@Ti$F-IQprp)9f%mfTc*{3e?9 zd-Zq8@{85S^Nc}Waimde#R;szkX;vURV>#G|U7b{RU-L{Ea z-I;b+%9W&cgFnRumnbf@rjOZ_G`eAJq7&yKasqE9Uz)T^I@te%ieG@x=rAD}r_dVd zPsylEQ{ariaP8*2K)GO-KhxJ3NNPzL@MwAhV9ra>$Xnla|gIE7}0g-KcabjWyyIc*b>h)W;|LlX6Xp7c=2K@dd8U$Bv3{>l)?sv%K_ zsK6?`*~Z=0rNbn1Z@N-r!!!a@4%KA!;;e!kH70ks!vAWalHDB6zfX16hjb$IpUaPd z87K=%+DoHQXDDmPnHGLb&2vPz?k$$P2-?iu3QA-`aVZ5qJD&srsEV+8+fHlm7smW( z|L!g6v=c(eGbWwd0mUZW$L4 zV*NxWw1S=PP3Zc<=tx}O{2tM-mxE>*<;FDvB)+5u;mjZK%E1PYy>yK`hxMgVCTluJ z8Or*4dI#wtld((x2!eiZx^Jt`v%eVp5uKbb)@@k8Ae%I_RGF}kijq2?fR4<~@)*xS zQa)*I8OO|sdPBw~$bLWU#=_pznAcl9?iyj>_3JTkSyqL<@u>2D6>J<9_y&hYUfZkM zk04k%m!WbX~_nc|65 zc`(0#Jpvn_I%>urhxR17Ju-(a&{rqMi4yneU*LNfbDEWLu@ymUu-_nB+m*iPST%n% zM(R=b+;ky?8etl>KRUjuXURtKTseY8d~{M#IMUgc7}$S&F$?Cg4v)7BU~-#sdlNp@ zBlP&Fzu{-}6b2@^>^vrOu_q=s*?;ILDoSZC83A<41KdMHVYfktc!dNrPz9z9^){0@r(k) zshwcsM&dS&?^!)KJTlZckJ@~qD5zXJsHEL{Jh~ii?2(sk=#J5hck8v*kMNc-#!+># zI=)CZ{qEmcz7&xdsYI2$*-11H{XH|rD9-KV6r$4~KI)^CCALDJ$jlZ)we~zl6ogl{tisR z6_nED`|<7p2yQz{U6E>qTv=Oo-9s^|_$y}cm3kmY3ys5Y)QfrHsrxu^$9@Gptk|wx zC&+an5$ShaHTL^OlEHGMVetL zJ^F@<*#SSCcyUJ6w@zU7@a}g7YUqU&QmUL-Y%ocXn&zCBiyA0I4LU6QLZ>2N@@)c$|%Zb~4)Q*c5!=??3m;3<|Iz`{DkPJ&_{?F?xU8 z9~h-_wjPT=40AYQe8_cJ3U&k>N%2{*ujM#m)}2jjv~(NQ@S^cPl#ks^9X(PA^hxlg z&;Jq(jn=~n7m2iPqm9Zz?CyS*HNKiut8xNKDk@hF8+HnUe_8xRU~y9Ej?A-s8=kyA zYJWG-@!P0IjGHw=_Xi*97#7yeF*&b?D2Nm+bUD_k!y3hpj%O?!M+k^M`K_uDlj#3l zzSyk$Bd7RbXrz-ChYE1>(FO|rjry^bC3kVd;oKh0vp0H`%(NcW&+$ z46Sv1?b17V7J(6H-(U_!M9})I@-nrFXCHNrfzDX#4MuD?lDM3=WVNxk%4l)75*2!)#ZhQSwJNS5?V@2vM zPv~U90CrOlgjPE*FgySEp>^|`*qok+`9+sW2&rRFlU+eM#gNjxGqOpUzc?_v;;Z6| zB=dR`+YMZu3Z|J&l`U>wK&~_^bLv9rsyv8rU5#vjMS-_ySc{-1XUvstQbvq2` z?26j|K&G&S+u$R?BWj#?hQgB$IBtdz+* z+VudDB2suEv>2UYy4gAS#m6Fqz~t}VSoIn&)Mq_OMQ`)%tb8316*Ik*g}x%T+U7~6 zl3kWvUklI;RJGb!H|HV%RZb#N=R3trn%ToqE{o;5Iih|$juKZ|oT`V~G9XU#?(<&S z&wHBEaxuicM*{W&x0Vr|(=EW()~>HFsR9$!3v4tJ<)z|_a*(}S0OzJ&fCk1YRkhM?6y9suG%gEK*gLSw!BSeJh-<3=)V#W| zU=n0WXmR^7*^p_x)7O#7oQa%l6yVnv+yf`ta(Ff;%7Gk{(J9zSvPU#ao&c~Abxkmh zh^e)I0(x{3Y6CMGIM#N|q2S-xTQ$o^tZlHV5x6`(AO5P_UIV%iA>#touS-^YYd+!o zI9ge^5o;UU#IOP5FKFN#D9~u&sC50800U>*L7F^FWQsdXy$(52fWdV+$ffQ9a`eP; zwe3YG%7c_0ToUiW*p?$Y4lr_bC0MIFvbAm$u_$+l6~G_mo!#%?kf@Cf-MdT*7K2aAOGbJS3zB1x{Ps&pXxOVP z?oW!;Jo`F=-7D(;-v=ue$$k?x=TGoIeSOu1ZAnSWW%bP@Mfbw5qC%KrU&VAq!U^h( z=CSmmBE+d_0(s31&UQ5k#%atS{}3tj+p^R$T;o9hUYfh&23I)2)!up~b?2UN@GR+i z6Q>@jHmUGkbE_W$fF!r|j2csb-g7|Xz#gu^AmUkUI?9{7G#fBb6N6CO1z5Fu@+CK{ z7@%hvS1eZ%oeOiwhMnFQM)dU1UPN1;A$|e^;f~zW5~GQkWX(tPy|`8V_?iZdj5zf2 zG$QOYXhCTIB6Zf8`ksbe^RsnC*voFCdNB^bMwOy6eX#2ZZQpt4*gDXNNf`=3 zNyG77waZ<&0$auYHrj z`hm@E%Z$+a8^$Ds?L*3(+s~fW_i>Gnm7;fK&0yug*C-W*=~U#zl?RX8yL-s9V441K z&P}UrsRtl-ep({z6*1WEPjCIYf@Y4sKo`WA^r_G^9Vm!NRe;19wqZ zT_ylk;NiW6YPB=i2n{(3Hjdqn0VH>&_HKsU!R|adm8h-|+jiY+$$1KH2I7pa9_(|( zZ2WI!sR$Z9W#w|k*zA%^2F+nJ5!zBQAlZ-|+y-;aY$0gxOMx^DPU69|2Lg0^~sOLF8E3IJysx zN1&Ix__{Lyp=Q?e(HgEQ9fT|u(^~B6wRCNr5$T=___9l1+hU~tG`+`YUaqO!jSRe# zE_pm@cY)W^e?Vcqmb+s-`C45L8dp0DluJ>MM49)eZDP?L5aI#HuF+4Dd%gnytU3@k zmgMzv%eVl+u2OS~rU*xXSNjWo?#Ra1qnKEYsfWfw8ZJ%$eD|t!r9@!1R53YI*Co@h zTiLWiB=Zm14@qO>U}d+`-LMjzZ#AdS`vB5+&nv}D>DAayqHtIU!5&lgSL952o%pv7 zSAP3{0D{rmGwzdp_;W(h#pvNpJt?vxDW0MdJ8gAP7WL70|JMFLzNU;)yo?Q&n~oUr zz?c4?r6ywO8yqMs)>JX@#DMsZ{+ogb30ONtSN0YS>^0RNls+s}S{5LGS%A1zzjVZo z%w_A*k=4Nsul)<4Lp-g2*EvDIOV9rPJG2wkxJgI|s=b|Xzow}d!}8p1FE5e%rTdQr zk?w6A()6i`7o!t@H|x$8+zj@3;3;=>eZF1tM{dLbf*6Ffr-Rh1{RGE2IpZM;2Bzs3 zjQ51#?xVk800t%pJXwnkPN?bZM;qF@f!yc1Ye*q9LPGF*4 z+s`|C!C4Q?^4S6R7@c*!Su`{PD=%q2|)eDf7y&Fy!Kc3c?UYTbs1&SnGwLmwlpOzM7v9i2OAiL-tR#c(RBaDOKj zZh+HPu73x|c_+JvgDWS4vL3&Km#~DmflUo&O!l z%7*|Fd+o&ladUGm9V3=RjL7$W>F!aM@k^I9DxZ(mU&?X|tr7Qj+2-q!cngnY+F5wF zwW>V1G(?_=fgz;M9lF?nY-*6XbMxGlP60SkDas*{8iPK8zZPH%)3V$9?DR4EGe`tu zD1;zPFRb9d*Sv4Zg5pO)3bXZzF``{_8Wx#}t4MybtH|Zz2s|BR-b%v(UkLGaa=7yX z4)={_N0r*p;hb%b^ONr6XnBoNW-mbFd_N9iFq(K@J_q zfKJMTPoS{z5@0n!<;_Ba5lIGg8Q^Ma>ph-JUiYIB47#SO3SA7Wy$8je1Kp!gh-a;X zYdz~mNHh^jP$A?3)CndjUj^?0|sPFhM7&tB?8#$Wvo9}m@ z(mkotCvwLPhZD3U}+%B%}pNahPHI{MoaV|ql)szPRr~dar59b zl~)C3(EAUEBhhyk5XSf_^G}@-S1jQu1$X>oB#yFX>2n~N5{GQYqK4;3u&4tevdafQ zAIRCbw09v^bra@8yN!qhV{Lw~C7E&Zn>b#OD-(jst}j%z1$zFYkD$I$f;g0FZic5{ z7i6o=fL1;~OzCp_43u*HAxaCOXKp+oPb6skMMz{EMZR^2iy^t}%p9&*0(im1NlEGk(N`V4J zP}I;wJqMyrCL)pXCjol=$=dRf_!Hzv8HMbp7TPFv^h*U{{yFJTu@(8ZQNTTEHX(*k z(5-*hM@X=3vIgU~Mo9hPGwrhHt5&`rNAXeY6phMfG0lItT`oB^Ce!jNO(E=KmmbNe zYqK6u(H#M@WBO&RTF?{}w7dFN%S{4J?&$B&*mx%$lyA$qtBZ>&>?x@{g3(IJV3mWz zm!8<=D<%2Tqj!YbL|{(V34@{C^OLXFFl%uAI8qUL746>yEyRft50Ew4>maNTgSRiA2UofgcvTB{0*s;d2B;8S9Q+6 z<3ER`)?u)7P4pjON8SlB6efKjg|V5B8JO2mhlhVa`{foT4Gf_E*&Obfdyh@?vqy}U zRw*?}U8EDZ(71+?kM|?GdU-e&6jb(72IM{b4&fTLOnd7eyxHi69yl%M5X8+jjNHl_ z+Mbc~HLn-Ryp2OY%#3!<5esTt?c@u$=`E1{(Zo{C{|aIeIb3dzlX+vKmTsCkmyv(6 z2H*BTOM~Vle|6B8w0(f8$5_(mb0mrBH}J*ynP)#9y?wCf#P;Dgp@|^A`@-fasN|8> zp`{aHwf)^#C%Vjk!*A(hT$3D1&*ilOJKg!JarDOm2^3RU2^|>v0YHU!m4}WT^UB|Z z!ZHo7<=5fGT+$N64F2luEU<0o&bCe-LNMG)&n+v5KLpJGk<@+%%A%W|oJ?Q-HFXF+ zI{aPzX8A!42>uT<2|_>NETecC9;e$B%pgm67`w)Ib%RI zqCg{s%>XrvkuO^@(w1{v~OT2)x=3Q#<`&k9yfSD~1jK4U#7oGt1Q~(OCJ_ zyUL9EM$4`YX2 zONRf0ZoHYOfAi+at+%>aMt*b?Wogq&Z%Xl^Q;Rh@z&@0Czw zMKbm>Q~H<>drvxaVxW)x-_s);Y%;JJNK{#C=lAO>i%2Y zulGOS|9W54{lXw7jSF-DJ!q0uk7jHl$|4r_;0X=@ zjdL&`LVj%e)B5~7-1QQAA>$ugd+?QpED!S-ox!|>Jkm^~A3Ff(=W;?-ADWmL*$v(9 zE@*6pW6#}z=&0oS6Uy5wD-jM6A_NfySLstj67Qx`-$cBtv3GvM@bJmK)6nK?pP-fPswUHYQZY-C+e(Hy(BtSK_tV2rlC+0h zbuwe`a6}bjf-qocDeOTwwU~!em5#AiqO_d_7~i>lnNa6A?S`=9p(Hl!eM<_ZlGc5@eeu%u+r(IwNDsnMCj zHn-Dwo42#!#`KvVp3EDsekg~)-LCo@+I2IHA5d1jcU}K}N`)>z+EHxr6W)`N!N#UI z203Ac&?Y~^1X?&?;JYOyz1~k!hS%^?4)2H*=I%XLK1hf7bL>OEHN3V`+t@q)T z^+QmU5$>e(!m5#RXkN%IcB6RSaS&_LwdAE5T13jp{=sBJtLqQ}e} z2c&8Q)kE`Kw#b5y*2DAv=eG%3SW2F8FwZ{>R~rf%ad2@e%3c=N9!BRl+CeZm8}7RQ z4?OZo3;p|b;_2`EM}_QvXK*7QFW(!1_ZJjC<1fgLfr0<1H{Td{rTMWPRoUk5^PFhO+VnK8X>aemWZd?Ko++5ZnnH8`C32 zfC(wV1<)GR}f}HaS@Awr6iod1VtaGg%|}O?Dsiu+_pr2 z)*%(R{MK17W$PFY;bQIphuZtCV^7DK=shp>7( z5Ic5Q70Zx3DZUchT6kkW)b^!2>n^Bw?7tZtwt3MV1n<`3FHtw1-BR4dJ+X@2d*#NH z&$yZ2xGKF}E0A-DnKGl3e!NM9MSwF6S=RQ2hQkO#?o@z!z;eWLB%;jzjUSI@{|2>U z62F{)yMvhl0h2dQ;2i4rzPyEH2qc7fx&b{xndIZ4MmY3u3=b3P6j|b z13+)BN0>X?>tWa)5NTlYe*k2w1&dut5emXacMo#Ny^GsBmpa=4YYhxUh5pa2yItE{ z?-xob0TCm8ePq!t^Ui0Z$tw77Afw0xIf>bg2}>=~VV6Vbs|csD8&*&(MB9ym!f?oq z{pr>{0Mi+}A~Y~C0YROzP!QW1Fv_ibegu`YDJk%V>JRu^#|E59m}E|?AKBC$rm;J5 zSlt50W;=QXC(}gp%iPUp#Ksznkfx7hagb8VXX-~;_KAnx{hZT@-8H)eWlR}*2_kQ{ z8!%>>GmFGFHLWk{&~jVDS*I356l=$Z{_kp($Wa^MTQ;*7Bh>!OKa&4sNL1MGf@O@m z`YCl|XRR?s^r|iaU`;lgbBR@(TU$@#CVjn@d7-mOEaMh^Q_<*)7hy3-0P8&Jo?ng$ z{peXA`KU+i9I0O7ytTBOF|)YX+*{wkz|fn|h<6r;@eB|9DSOyMaOkVGRqv9s_rpno z5(wg1D0Y^J%bTH?$~HLWcw5r*UofVu8IC(r10@!e(724~ddCN)i6Xhc#Kn1)vnpc) z>3$O{$PE+uPsDyVgux)O!6bZ#T^8n}@o|JF4n~fFq?DtK>dP>#_U<=(q)s!e9fjQ_ z|ANoet8XmO{a#AlX~xFi(90F4?om!$fp->jcc!Mt4a5evvJFdhHTARa>T(tS%j>5- z(F}vldS|)Q#%Q-Tmo-~y)m8c~ex|BTbG;L!J-mEqYxM6a2 zks^E96l5&2_Zw70tC4BC#STE*eSlW9Z!iut)x2&Edg6%0LLN&F<9QV3@h(|TUKM1H zBM?|Xx>KQvRDq$y9@e3Rto4X1W*hp%-+h)c+wE?zecw%SPC-!v=MLt=TWXZGkL83( zEAfjuud|I^`TVJF*1CpkB6y9@WgvaGn{gEAe59||oVj{tap7CeN*~Q~=^Jj&??#eK zO=oaxLUvByS$@VCm|Ql4gdPL9--shKRuQSGGBZm{;B4ivmygSN5FRIwq*4Kc4&SjTEs1*kNUDNh@tO zh3q(~=4R7sZ_TPnU;4Up2KWBRgGxx1WqS8W6B$lpZ}z(o>ipE0)l#Et_8c+nG=K`4hzD zrsWqhYn8D5>1V9wnLOkkblXSBy+h+2oK!Ug%erH|_%Il@7cu3{xZKcS-{Ujp_0Hpb z(Tv|q4Gy*mmXK0C#CIkR6%3;029g-kfwgzUoU~v^w1q{%`jJ&8R>?n)8Q8HFON8PfXjk5m7?ME=37l#+F4DW@O6I$&PYyJacHdfIbXD`bewMdDXqgJ2RCq|e8L<^esXV27o`8eq8Xdo&Z} zBYh9o(W{ud8iqsemrl5yckvrbonC27H%c@2&WL#bt{$@+KSKL60R`4c=hr-g7HRC4 zA$A%O1*eP@xfDofkGr5Vn4eWJjWjcu)Ih%)BC!*PKofqWSCrji-YeaduZWshqOC^s zVRFxYR?_UY%(YBGcD0(SJEFg{^Z}(_j40=Q0LYtUGRcHMKbMA1gJsB2qulkwR%7hC z7z8h94j(PKF*aZF#>QZBT~UW9cQLYqoR9~vNmm7Aep!@LMyBO4TP(TO!9$v+m1Cr%GX2d4spI3$p}~^GH1~$WgGc6e<}K9g~(#(E~l)F`B`tym(X{lgd%MMNu1~#Z;qkQ zEC3BAgONjP_Fd_-gopum2_gFu`_-H% zM+EOWXCu5Uw+#|_X+~6RG!Cb|b6lWlb*LOlD>xS3#|#r=jGj9isqLhWk3=!fDaW89 zdOe=Drn6pURrOR^ap7vQ(dt&wmkK>Y5pkm!=jJu;hBQNZNPiqsOH%E_A+9t z_t~E>TAk6pD_4)Ja}N;^h0Z;eHS|BR?^O#~2?u!Wc}ILr=|zaOR)TNHCB_qF2a4SF zFapK0HIeY{+K!l|_NK^Ea6jmTP@4nI>E?X0O=?Xd0%L|yxu=(ZjT?0$4$hOzT=n`5 z(l>_7flyORQ`A`Eb2Op2+lK}?hb15wMcztk=jT(%Nwe0m@QTayOD*l{BINFD)k7*3 zaCRv>JD+U)5%2qGb_AE0mJU({LP;p=XSe zomi4brn`3wv>0W1#rtg(m$)FIgb{rJdb#P<^g=gJIdT?%=%Qn>u9CNo zaW}-Ms0VHChx+7P^`I4RVPX^uDiDTrtk)ch9?tA^o8fN{BWg2CkGFd+IM8|Gu~hQ$ zMm9pmw%X5iM?Pf~wsXAWvU!tGw=+hyVoP#V5%mm0N}{a6%husJuQ+I{eT}O1{3}^K zyNGpDVEo;Xb|!#5{AlU>#G*1~gZ|@v(#u$i%zbr|wQA>t+lPSU*`&IQQG%JUXdiCL zb+cVu#-(-|f@rsHYv}H<;$>O9OrFs!rC7m3+lU^(>ue8IUS*^0ws50RWmOIw%&2ce);P+f2M5d=CW9t~^3eIx0om zRyj6P{ev-ud68PVv){&omLpgaN3tQ1h>)UJ{zx%yg%keDU48v&X9-%fT`3%+;uLo^%I4-PGyKcp_!;czVv#^y6x;n9S{Y{=2v&vKPf5;=)ei zlPS6fQYIMEpgfLz-z7ZGv6si)qiSicNTj4i1Z-ubK0 zT&w2TH$(^#RF!>X|72E86OHCH`qTbhN>$y^VuEQAC=DAvP(*XcIjdQ+@lP7o$J+!(-rtMmI?v0e%8-q5=Y5#dGW6gm~ z^#Y`v;@CXj_}zi(xxKo0G-`C>Ki!t!I)jZ+8;oPxGdcK9xP z-V+fXK7}S%hPyeFNS;2vP^`c5wMFT}RGtli%%Y(=#T725nYHlvR8n?x*w{Q6N$Vq6 z&LbCk-S6zlDlCE>PgZ|eb}7=fC+p)D*8Qk)*9xUD@JsS!a%dIE+$!EWxI%S>A2hbO zjl^9dcvZxa55KVPDoV~31jU`{6G7%1I?}}l)I@>1P0z$lc|lp|Qqt-M>WcxRfiO{B zMPR*c2Z^^VrRc}p%EUu4t#{cUDTNdzj#>budqRIVbdA}sYi^U&)7DeOTplR z4pqlV`9E^^(4f5-)LyIhUD*BQy!11f02<5NUAS&5t$ShcMc>yAjl5TfER1# z`=Wt3SDLS(-V=(b2NAdFBTu$e_+vvizUFRjV;R4n%3E^Yfut_us0$E_77yisEfzQg zeSiH~%qEAW4ov!I7ejig9CTm)!#b{g6pEc3^O*qhUnG5`qhqVD2$wYfsNLK%Wg``S z9qle|titFhD1`Fw}?pKcz~>F_#CsPL&fu~p}S!+R2UqT~bYBPUMj zF3g}CCnKx4#~Vw(r`uk&sDttqZu7_*GYCka{kIc3 z`>Cri)Vu`*1dVE<@LO5*%f1Y8b!MDeX3!fFJJ&ZJpABj_&683Tn z+Fsl~hSwEprg;FuGkDd(eB~ffpkKvgTep-%ax}$$f+FfwSmlszP?{q?4UYh!bkz7z zfthpY^fYfsf=Is{r~AVdSwJ{VURPTSy#sL9k1L*H=%wOQK1QC=ts=~1!XzRD$KM#e zN7DmgOD_D-Q|}R-1X7R~1LoF}hAG8sqpU|-On$p!Ob^pnFI2Zt1zu?yQ6i zrAtDEcwH!dEcN&pZre!ENX_ML^K^azHw}}$hJ;@u;SW=eUKuE<;B2{0TiTg)Fb^

    c)2ArhCxmiGTKLq@2u(+U0m*{4;nO@lCV9S-ik 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%0AYVnWllio`9SVC^;GWEPAuY(kR_l|a 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 z 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

    UH{$A0WpyO}BlFGU4y3GCl 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�iZaXNR_;)qK`TKkq>q;m`*-~g`qFFYhpHm|iT1SJM~)0;9b#A<$J>T~ zq29;5_QUAwYQ~9267b_=Wl-48LzGKbR?>dRqpRROr%dm~JM}mI6ub|)pz;SElU~CT z(uR0dr-9yT^r5@rzxqoB+yt)eb-m($Oc&D!Y*b&QKhd0M!;KqhTeod%(>dzV*Ik-N zpe-N|Ro2~g(sz=U zjbyqEVtOez?FW0hqXHr{7LDDMP}(}kz9=>pvp`0@UF*hKZ%b62GcKBvkA9hBZ9$Le;74O@g(O7LHS-1DU;YRb_Es@#f8?3Y!`#amPl?CDwi6x$kzyfxBKf9tmG z)WWZRP_f@#k)CdPf5ldRFkaoqxRpDp^z%9L&=}=Fc_&@Adq}!`d@F_Aasp{-}zDo=|l|_e$6KF{+=>7-f|OwyOtBi<##w zTeneLe!i`O*KMOrrs~|Ir`mP-k<5j?K=Xbt#<8VHe~R|EmS4K|zUQP#bJ2gro8r>_ z0?z_q7g4!;4wV68#;N|}CaV6v{?gBTgaT%)q7E0wAm-aKtp-m_Vd{6oKi#9gz4B0& ztlz3O9y+NGU;AA=M~ zhu+eJNoJiLRj5D#kLOCb!^_}T4iIHjzk!?V`5n`0=C7mQ+5dQ^%NFfT&mW9;!1p+u zJGF60&P&~5yiEtHj86IbHl|br|;qJcEN>JgW<;U9#@?HO|V0x zC9m*|`QgR<@v_LgS@O?&Evkj^$RCcTT9ym(l2@D^B*|a>hl|VcoawZYh&*_`4#*~} zl@>Rzt{33|=QLcGpq99l1eFI>0F?&i1My7kbVSf)|9@Kwq`>?<=sxf=Bv_KtU8i+NE{W^3HT)u_P~>?V7P5gMP0Zt>(Z5QI{-dPkv~^N^`9+Pjog3%x^(QXX zYb&e?AHDU~Ta8gSldO-BD|i>@dY4$A8_r%U86&PpX6(ymg^WYZ22BO$%u;>ubd6<9 zJYMtJdd0C((hlo7QrmXzrB1)GSR0;`Y@uhRO~0X<2PKLX+mtawh9r4_J>;&;d)Iyg zBuns5k`_2u8p9O(+BpXYY5Yr`L*$zOtz_UiGS7!WnSk+HzkPR&r3)D}eePDJX?vvo zj%19yE){2O(`}SIcs+G$_E}CZ;KNfNOPWnxYT28!?vLudOyDP#soPBFqk7jtJRh~4 z3+JBprRFiufwOu?OO{^KB(rC@#`Q{rJw%*~OZy(ZjCwFTZ=O7f`lg78h}Y1kUFF$* z<)E+i-kpxua*m?+Q#1Rl;<+o=9K!Qwyv={keB}vOEXLG&lc<$b3Uy843l?BEtE0eEjl7x z3XG1`>8TCbk8}%8CXOH95&Np@^!2v*QO;jO-qG&d7xCv|n8Yl|3f%PMFkB0?9jNnL zALl|fI``A@muT(gG;Wr~`{CE6nkjyi-=C0mZ31}*TU*3FV;aU!Ile+mfTQJv|CF`J zhBKN1K_{^n+Df`Yhqw#Mi}>F~$FI|P&vs=`o>|ZS>P(EZ<)85YziI{K;Ox!{P=Bvd z&$N2*zC`tpc5IKP;!<_#*+(j4|B?SuCW~?#wsbIl;88RmKGiOM z)b;zQhh@z55M$j+rmgkVa0`Z#wf*r-tMT@ScGP^sMe!asOol^$w+r4k|6dC5&qsxGpV#HnQ{*^s>tUWH1Cr#2g zO}#dpPV|3GD+bT|z=PvBKwV3QZ6@FspGDj@84#W|p>F)jcU#R_sqy-<#@rF_L%-X| zfAbNUw)#t%8?izb2L#Bp#o@O9%Lvf0jC7`B=ff)vHfSfL$~FQ`xPgC_AI8b9Nck4e`V>(n{ zPu!4rSqhAgWxEbb%$6M%+Pp&|f4r}s^FK{L#mmeSzr*&x1*t!4jcq=}JoT6`U&ihD z!A`~${nj6lODt#90lMq2UCUIjdE2x6rki_zZCj?snky1{=8C+$K|3@31=y!(6MoIez*x`ESdMG-!Nv?wNL&8Y;vHXuR=? z_yM;i^33nD{`_NEbMCPO0xMzAp4(DBCQjSD=saX(qWZ>hQ_oj%{vLhgR~b0m$5t01 z&(_*8e%{xKIFPYpzkyqgI!nxgu48~5i*w+bfnP}_$m~`QJ|J~~OV@nT66rQ*s6J;h z-Z#4*BYb7!;nUK&+b6R2+tV`KZ-S1Wd)4R%Y~}AP9l+LMyZq4{9`nPolJjuxE1Umw z=5N-tnFO!dBHNFhmhko444e#wvDn>NoQ}^BW-1VIPv?OSf^LKC>^tH9nd#7Lg+`5d zj&>Mhxl_J7#{KI4pXY#OF9E;)xuGidCiLx6QA3R67YEvnEg4X5{{-SZmc+RniG65l ze+#98OVWEGyWz%x5SHHaz&;1JZ7k}6)`)#dS@tTj;vEi(#$H8Fr&2k1;lFsfySx7f zlm?U@los?R$TpXGk))v=zQ%be<|IR~#$QvuT)Bf-haKly8teb%u-QXhpF9||pL>6y zQ1RkvvHqHZ_Qp0#89LRrM{jA<%R}09#kv9VNPG?%)U%kI4$YP`XCgV4r1I3HNs~Ol zOFhW*y4L-?r2f3EQZ?omReALlsk-(WY_(mM8j;^CuESb(w#dz4?zK8o-oiPP3e$Mr z!reU+zFVKdUA~C+f3s*u>aUylPdu zIj#{d-7ML%y@s{XZecY&tO%iBZdSZmHEbRp~XiXkSScUVd2` z4WGe&PN6KOV;-MKW{KfrUQwU#H1-RUtdUnGSHKC?phFL-H(ZpXiE>s|Cah3x zF+Zt0a-k|2a7c1ToR{XV{T1ej4}nQun&CNKu!XvZN7qG1jOGkbBL%?3OA!YrB4idN&Vs&2DeP*Vi{4<^@k0kDjOH z8}wWja$Q_s)cUBNeAK3!O1l&`J}@`TIpZtMixORjNk*SFD#Mho^x80ONStcjttZzi zmoUDwS=+9eGiKCgeXBZWt1{;KhP+SSK2xM2&a8`$jL_kick?GEw8}gIa?4iPGR6zJ z3srx}L_OX>KF03MYu?)m?o8{g}}k zzY(v9O^WLQ?hPP(o1WD`Kfg%!jrHbiP}SC5S4&REtB50)RqV!Xnxb|cQDJA|Z8ZPn zBb6`mSJljWvM>t=p;*n~tc?J$vhWmILGgI~hFM`ryHPkR?9Md2*AfQL4eZiy9km z`=zG}BnEwUQOih3<;WjZOV4q-PBJX=q@Am~%-((&a;27iHpnkcF~X;tZqlywHQKp; zLHQuAgX+#)D~(s4QXRHlmad;&m3EsiO5LT0RRh0ZY165*4wKOs?+z)v8?w z)QZpd;Vi$s!hY*1tO1k6SR65Y_?w`Xpn0Gzpk2?Rkt0Uz0(~*U+j|yp)l)pKIp*@e7j!97VJ(^u=M95Uj~8J7em?aqah{O}vcbvDuLh18 z^DgEU3mZ3X^0d*dM&5 z<&Zg-s2F-o%0~Sn#g@VrVW%GK!+gvv?9idZhmcE*&l>{!XRujTv&|<`+BaI;L!hox z!*1^SETQ<=SSdMcr*QAAH2#u2*v-V59`VA$+ zls%Ge@lV*xxFXFubrom~ZD}8v1&B zPig8gLTaqNLU~4s-h};?HR~nt*iGEWYy90(5vQdo;_g0n7Vv}@>-`IyvHA1+Wk3G- zM%7Lp+nTu#lTNF?li9}~U~eK`R-cQPiQnFn7NK8Bv(7zq|H*ax=#Uj!@2+&IQmgqr zuTFt$-{{n<_XPBnzqN4llzLv%q@L$wY1z{rkIsKifCR4Gh<(yd3hkwfahjJRUO8&H4;J z*WupQn_>Oj1{yC9ALiy|eLTX=YnaE7!8*W^9)pKL#b98mK3*e`gJwfq`!w_D<>l%% z>LUP5xOuno8q)itK7G90h7EIZsqf>VALtvGHg4|q1`ZkK*3@kjzHB_m)!nU`$1v|6 zcpdj`T}QZmT+hX&-jK$FJ-j_!2YQS~Kia|7%fofBcfBE={HARq#L(Pz;J_ihaR)y? naOvRY)q1#_*QgGz1BbgI6)ip82DkF^80_ulg}YZ*0tfydKvjE7 diff --git a/installer/MMS_Installer.res b/installer/MMS_Installer.res deleted file mode 100644 index ace3317386baf91cfcde64e0f3db13dbbe283fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171456 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

      iSEi@7TPRPDST6;k%@geks-j4Ea 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 0) then begin - eOld := eNew - eOld; - //eOld := eOld *2; // this is only used for faster updates... - Result := 'Metamod:Source - Uploading with ' + FloatToStr(RoundTo(eOld / 1024, -2)) + ' kb/s'; - end; -end; - -function GetAllFiles(Mask: String; Attr: Integer; Recursive: Boolean; ShowDirs: Boolean; ShowPath: Boolean = True): TStringList; -var eSearch: TSearchRec; -begin - Result := TStringList.Create; - - // Find all files - if FindFirst(Mask, Attr, eSearch) = 0 then - begin - repeat - if eSearch.Name[1] <> '.' then begin - if ShowPath then begin - if ((eSearch.Attr and Attr) = eSearch.Attr) and ((eSearch.Attr and faDirectory) <> eSearch.Attr) then - Result.Add(ExtractFilePath(Mask) + eSearch.Name) - else if (ShowDirs) and ((eSearch.Attr and faDirectory) = eSearch.Attr) then - Result.Add(ExtractFilePath(Mask) + eSearch.Name); - end - else begin - if ((eSearch.Attr and Attr) = eSearch.Attr) and ((eSearch.Attr and faDirectory) <> eSearch.Attr) then - Result.Add(eSearch.Name) - else if (ShowDirs) and ((eSearch.Attr and faDirectory) = eSearch.Attr) then - Result.Add(eSearch.Name); - end; - - if ((eSearch.Attr and faDirectory) = eSearch.Attr) and (Recursive) then begin - with GetAllFiles(ExtractFilePath(Mask) + eSearch.Name + '\' + ExtractFileName(Mask), Attr, True, ShowDirs, ShowPath) do begin - Result.Text := Result.Text + Text; - Free; - end; - end; - end; - until FindNext(eSearch) <> 0; - end; -end; - -function GetAllDirs: TStringList; -var eList: TStringList; - i: integer; -begin - eList := TStringList.Create; - frmMain.IdFTP.List(eList); - frmMain.IdFTP.DirectoryListing.LoadList(eList); - eList.Clear; - for i := 0 to frmMain.IdFTP.DirectoryListing.Count -1 do begin - if frmMain.IdFTP.DirectoryListing.Items[i].ItemType = ditDirectory then - eList.Add(frmMain.IdFTP.DirectoryListing.Items[i].FileName); - end; - Result := eList; -end; - -{ This is another possibility I coded because I couldn't find another bug... - -function GetAllDirs: TStringList; -var eList: TStringList; - i, eStart: integer; -begin - eList := TStringList.Create; - frmMain.IdFTP.List(eList, '', True); - eStart := 0; - - - // +----------------------------------------------------------------+ - // | drwxr-xr-x 5 web3 ftponly 2048 Jun 25 19:43 files | - // | drwxr-xr-x 2 web3 ftponly 2048 Jun 25 19:57 html | - // | drwxr-xr-x 3 root root 2048 Jun 20 05:03 log | - // | drwxrwxrwx 2 web3 ftponly 2048 Jun 19 2004 phptmp | - // +----------------------------------------------------------------+ - - - // at first remove all non-directories from the list - for i := eList.Count -1 downto 0 do begin - if Pos('d', eList[i]) <> 1 then - eList.Delete(i); - end; - // then we have to find the position where ALL filenames start... - for i := 0 to eList.Count -1 do begin - if (eStart = 0) and (Pos(':', eList[i]) <> 0) then - eStart := Pos(':', eList[i]); - end; - - if eStart = 0 then - eList.Clear - else begin - // find the position - for i := 0 to eList.Count -1 do begin - if Pos(':', eList[i]) <> 0 then begin - while (eStart <> Length(eList[i])) and (eList[i][eStart] <> #32) do - Inc(eStart, 1); - end; - end; - // remove the detail stuff... - for i := 0 to eList.Count -1 do - eList[i] := Copy(eList[i], eStart +1, Length(eList[i])); - end; - - Result := eList; -end; } - -function GetModName(const Path: String): String; -var i: integer; -begin - Result := ''; - for i := Length(Path) -1 downto 1 do begin - if (Path[i] = '\') or (Path[i] = '/') then begin - Result := Copy(Path, i +1, Length(Path) -i); - break; - end; - end; - if (Copy(Result, Length(Result), 1) = '\') or (Copy(Result, Length(Result), 1) = '/') then - Result := Copy(Result, 1, Length(Result) -1); -end; - -end. - - diff --git a/installer/UnitInstall.pas b/installer/UnitInstall.pas deleted file mode 100644 index c43835a..0000000 --- a/installer/UnitInstall.pas +++ /dev/null @@ -1,590 +0,0 @@ -unit UnitInstall; - -interface - -uses SysUtils, Classes, Windows, Graphics, Forms, ShellAPI, Controls, Messages, - TlHelp32, IdFTPCommon, ComCtrls; - -type TOS = (osWindows, osLinux); - -procedure AddStatus(Text: String; Color: TColor; ShowTime: Boolean = True); -procedure AddDone(Additional: String = ''); -procedure AddSkipped; -procedure AddNotFound; -procedure DownloadFile(eFile: String; eDestination: String); - -procedure BasicInstallation(ePath: String; SteamInstall, ListenInstall: Boolean; OS: TOS; const Source: Boolean); -procedure InstallDedicated(eModPath: String; const UseSteam, Source: Boolean); -procedure InstallListen(ePath: String; const Source: Boolean); -procedure InstallCustom(ePath: String; eOS: TOS; const Source: Boolean); -procedure InstallFTP(OS: TOS; const Source: Boolean; const ModDir: String); - -var StartTime: TDateTime; - SteamPath: String; - StandaloneServer: String; - Cancel: Boolean = False; - -implementation - -uses UnitfrmMain, UnitfrmProxy, UnitFunctions, UnitPackSystem; - -// useful stuff - -function InstallTime: String; -begin - Result := Copy(FormatDateTime('HH:MM:SS', Now - StartTime), 4, 5); -end; - -procedure AddStatus(Text: String; Color: TColor; ShowTime: Boolean = True); -begin - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - if ShowTime then begin - frmMain.rtfDetails.SelAttributes.Color := clBlack; - if frmMain.rtfDetails.Text = '' then - frmMain.rtfDetails.SelText := '[' + InstallTime + '] ' - else - frmMain.rtfDetails.SelText := #13#10 + '[' + InstallTime + '] '; - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - end - else - frmMain.rtfDetails.SelText := #13#10; - - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - frmMain.rtfDetails.SelAttributes.Color := Color; - frmMain.rtfDetails.SelText := Text; - frmMain.rtfDetails.Perform(WM_VSCROLL, SB_BOTTOM, 0); - - frmMain.Repaint; - Application.ProcessMessages; -end; - -procedure AddDone(Additional: String = ''); -begin - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - frmMain.rtfDetails.SelAttributes.Color := clGreen; - if Additional = '' then - frmMain.rtfDetails.SelText := ' Done.' - else - frmMain.rtfDetails.SelText := ' Done, ' + Additional + '.'; - frmMain.rtfDetails.Perform(WM_VSCROLL, SB_BOTTOM, 0); - - frmMain.Repaint; - Application.ProcessMessages; -end; - -procedure AddSkipped; -begin - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - frmMain.rtfDetails.SelAttributes.Color := $004080FF; // orange - frmMain.rtfDetails.SelText := ' Skipped.'; - frmMain.rtfDetails.Perform(WM_VSCROLL, SB_BOTTOM, 0); - - frmMain.Repaint; - Application.ProcessMessages; -end; - -procedure AddNotFound; -begin - frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text); - frmMain.rtfDetails.SelAttributes.Color := clRed; - frmMain.rtfDetails.SelText := ' Not found.'; - frmMain.rtfDetails.Perform(WM_VSCROLL, SB_BOTTOM, 0); - - frmMain.Repaint; - Application.ProcessMessages; -end; - -procedure FileCopy(Source, Destination: String; CopyConfig: Boolean; AddStatus: Boolean = True); -begin - if (not CopyConfig) and (Pos('config', Source) <> 0) then begin - if AddStatus then - AddSkipped; - exit; - end; - - if not FileExists(Source) then begin - if AddStatus then - AddNotFound; - exit; - end; - - try - if FileExists(Destination) then - DeleteFile(PChar(Destination)); - CopyFile(PChar(Source), PChar(Destination), False); - except - Application.ProcessMessages; - end; - - if AddStatus then - AddDone; -end; - -procedure DownloadFile(eFile: String; eDestination: String); -var TransferType: TIdFTPTransferType; -begin - // There's only one file to download and it's ASCII :] - TransferType := ftASCII; - if frmMain.IdFTP.TransferType <> TransferType then - frmMain.IdFTP.TransferType := TransferType; - // download the file - frmMain.IdFTP.Get(eFile, eDestination, True); -end; - -procedure UploadFile(eFile: String; eDestination: String; CopyConfig: Boolean = True); -var TransferType: TIdFTPTransferType; -begin - if (Pos('config', eFile) > 0) and (not CopyConfig) then begin - AddSkipped; - exit; - end; - - eDestination := StringReplace(eDestination, '\', '/', [rfReplaceAll]); - - // the same as in DownloadFile() - TransferType := ftBinary; - if ExtractFileExt(LowerCase(eFile)) = '.txt' then TransferType := ftASCII; - if frmMain.IdFTP.TransferType <> TransferType then - frmMain.IdFTP.TransferType := TransferType; - // upload the file - frmMain.IdFTP.Put(eFile, eDestination); - AddDone; -end; - -procedure FTPMakeDir(eDir: String); -begin - eDir := StringReplace(eDir, '\', '/', [rfReplaceAll]); - try - frmMain.IdFTP.MakeDir(eDir); - except - Application.ProcessMessages; - end; -end; - -function FSize(eFile: String): Cardinal; -var eRec: TSearchRec; -begin - if FindFirst(eFile, faAnyFile, eRec) = 0 then - Result := eRec.Size - else - Result := 0; -end; - -// stuff for killing processes - -function GetProcessID(sProcName: String): Integer; -var - hProcSnap: THandle; - pe32: TProcessEntry32; -begin - result := -1; - hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); - if hProcSnap = INVALID_HANDLE_VALUE then - exit; - - pe32.dwSize := SizeOf(ProcessEntry32); - if Process32First(hProcSnap, pe32) = true then begin - while Process32Next(hProcSnap, pe32) = true do begin - if pos(sProcName, pe32.szExeFile) <> 0then - result := pe32.th32ProcessID; - end; - end; - CloseHandle(hProcSnap); -end; - -procedure KillProcess(dwProcID: DWORD); -var - hProcess : Cardinal; - dw : DWORD; -begin - hProcess := OpenProcess(SYNCHRONIZE or PROCESS_TERMINATE, False, dwProcID); - TerminateProcess(hProcess, 0); - dw := WaitForSingleObject(hProcess, 5000); - case dw of - WAIT_TIMEOUT: begin - CloseHandle(hProcess); - exit; - end; - WAIT_FAILED: begin - RaiseLastOSError; - CloseHandle(hProcess); - exit; - end; - end; - CloseHandle(hProcess); -end; - -// Installation here - -{ Basic Installation } - -procedure BasicInstallation(ePath: String; SteamInstall, ListenInstall: Boolean; OS: TOS; const Source: Boolean); -var eStr: TStringList; - CopyConfig: Boolean; -begin - frmMain.ggeAll.MaxValue := 8; - frmMain.ggeAll.Progress := 0; - frmMain.ggeItem.MaxValue := 1; - frmMain.ggeItem.Progress := 0; - - {if (GetProcessID('Steam.exe') <> -1) and (SteamInstall) then begin - if MessageBox(frmMain.Handle, 'Steam is still running. It is necersarry to shut it down before you install Metamod:Source. Shut it down now?', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNO) = mrYes then begin - AddStatus('Shutting down Steam...', clBlack, False); - if GetProcessID('Steam.exe') = -1 then - AddDone - else - KillProcess(GetProcessID('Steam.exe')); - - while GetProcessID('Steam.exe') <> -1 do begin // sure is sure... - Sleep(50); - Application.ProcessMessages; - end; - AddDone; - end - else begin - Application.Terminate; - exit; - end; - end;} - frmMain.ggeAll.Progress := 1; - frmMain.ggeItem.Progress := 1; - { Unpack } - frmMain.ggeItem.Progress := 0; - AddStatus('Unpacking files...', clBlack); - if not Unpack(Source) then begin - AddStatus('No files attached!', clRed); - Screen.Cursor := crDefault; - exit; - end; - AddDone; - frmMain.ggeAll.Progress := 2; - frmMain.ggeItem.Progress := 1; - { Check for installation / Create directories } - CopyConfig := True; - AddStatus('Creating directories...', clBlack); - if DirectoryExists(ePath + 'addons\metamod\bin') then begin - case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to upgrade, No to reinstall, or Cancel to abort the installation.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: CopyConfig := False; - mrCancel: begin - Application.Terminate; - exit; - end; - end; - AddSkipped; - end - else begin - frmMain.ggeItem.Progress := 0; - ForceDirectories(ePath + 'addons\metamod\bin'); - AddDone; - end; - frmMain.ggeItem.Progress := 1; - frmMain.ggeAll.Progress := 3; - - { gameinfo.txt for check / create VDF file } - if not FileExists(ePath + 'gameinfo.txt') then begin - if MessageBox(frmMain.Handle, 'The file "gameinfo.txt" couldn''t be found. Continue installation?', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNO) = mrNo then begin - AddStatus('Installation canceled by user!', clRed, False); - Screen.Cursor := crDefault; - Cancel := True; - exit; - end; - end - else begin - eStr := TStringList.Create; - { Metaplugins.ini } - frmMain.ggeItem.Progress := 0; - AddStatus('Creating metaplugins.ini...', clBlack); - if CopyConfig then begin - eStr.SaveToFile(ePath + 'addons\metamod\metaplugins.ini'); - AddDone; - end - else - AddSkipped; - frmMain.ggeItem.Progress := 1; - frmMain.ggeAll.Progress := 4; - { CDF Plugin } - frmMain.ggeItem.Progress := 0; - AddStatus('Creating VDF Plugin...', clBlack); - if (FileExists(ePath + 'addons\metamod.vdf')) then begin - eStr.LoadFromFile(ePath + 'addons\metamod.vdf'); - if (Pos('server.dll', eStr.Text) <> 0) then - AddSkipped - else begin - eStr.Add(''); - eStr.Add('"Plugin"'); - eStr.Add('{'); - eStr.Add(' "file" "..\' + GetModName(ePath) + '\addons\metamod\bin\server.dll"'); - eStr.Add('}'); - eStr.SaveToFile(ePath + 'addons\metamod.vdf'); - AddDone; - end; - end - else begin - eStr.Add(''); - eStr.Add('"Plugin"'); - eStr.Add('{'); - eStr.Add(' "file" "..\' + GetModName(ePath) + '\addons\metamod\bin\server.dll"'); - eStr.Add('}'); - eStr.SaveToFile(ePath + 'addons\metamod.vdf'); - AddDone; - end; - eStr.Free; - frmMain.ggeItem.Progress := 1; - frmMain.ggeAll.Progress := 5; - end; - { Copy files } - frmMain.ggeItem.Progress := 0; - AddStatus('Copying server.dll...', clBlack); - CopyFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll'), PChar(ePath + 'addons\metamod\bin\server.dll'), False); - AddDone; - frmMain.ggeItem.Progress := 1; - frmMain.ggeAll.Progress := 6; - { Remove files } - frmMain.ggeItem.Progress := 0; - AddStatus('Removing temporary files...', clBlack); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll')); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server_i486.so')); - AddDone; - frmMain.ggeItem.Progress := 1; - frmMain.ggeAll.Progress := 8; - { Finish } - AddStatus('', clBlack, False); - AddStatus('Finished installation!', clBlack, False); - frmMain.cmdNext.Enabled := True; - frmMain.cmdCancel.Hide; - Screen.Cursor := crDefault; -end; - -{ Dedicated Server } - -procedure InstallDedicated(eModPath: String; const UseSteam, Source: Boolean); -begin - StartTime := Now; - Screen.Cursor := crHourGlass; - AddStatus('Starting Metamod:Source installation on dedicated server...', clBlack, False); - BasicInstallation(eModPath, UseSteam, False, osWindows, Source); -end; - -{ Listen Server } - -procedure InstallListen(ePath: String; const Source: Boolean); -begin - StartTime := Now; - Screen.Cursor := crHourGlass; - AddStatus('Starting Metamod:Source installation on the listen server...', clBlack); - BasicInstallation(ePath, True, True, osWindows, Source); -end; - -{ Custom mod } - -procedure InstallCustom(ePath: String; eOS: TOS; const Source: Boolean); -begin - StartTime := Now; - Screen.Cursor := crHourGlass; - AddStatus('Starting Metamod:Source installation...', clBlack); - BasicInstallation(ePath, False, False, eOS, Source); -end; - -{ FTP } - -procedure InstallFTP(OS: TOS; const Source: Boolean; const ModDir: String); -function DoReconnect: Boolean; -begin - Result := False; - if MessageBox(frmMain.Handle, 'You have been disconnected due to an error. Try to reconnect?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNO) = mrYes then begin - try - frmMain.IdFTP.Connect; - Result := True; - except - MessageBox(frmMain.Handle, 'Failed to reconnect. Installation aborted.', PChar(Application.Title), MB_ICONSTOP); - end; - end; -end; - - -label CreateAgain; -label UploadAgain; - -var eStr: TStringList; - CopyConfig, CommentFound: Boolean; - i: Integer; -begin - frmMain.cmdCancel.Show; - frmMain.cmdNext.Hide; - Screen.Cursor := crHourGlass; - - frmMain.ggeAll.MaxValue := 6; - frmMain.ggeAll.Progress := 0; - frmMain.ggeItem.MaxValue := 3; - frmMain.ggeItem.Progress := 0; - - StartTime := Now; - { Unpack } - AddStatus('Unpacking files...', clBlack); - if not Unpack(Source) then begin - AddStatus('No files attached!', clRed); - Screen.Cursor := crDefault; - exit; - end; - AddDone; - frmMain.ggeAll.Progress := 1; - frmMain.ggeItem.Progress := 1; - Sleep(250); - { Create directories } - frmMain.ggeAll.Progress := 2; - frmMain.ggeItem.Progress := 0; - - AddStatus('Creating directories...', clBlack); - try - FTPMakeDir('addons'); - frmMain.IdFTP.ChangeDir('addons'); - frmMain.ggeItem.Progress := 1; - FTPMakeDir('metamod'); - frmMain.IdFTP.ChangeDir('metamod'); - frmMain.ggeItem.Progress := 2; - FTPMakeDir('bin'); - frmMain.ggeItem.Progress := 3; - AddDone; - except - AddSkipped; - end; - { Check VDF Plugin } - CopyConfig := True; - - frmMain.ggeAll.Progress := 3; - frmMain.ggeItem.Progress := 0; - - AddStatus('Creating VDF Plugin...', clBlack); - eStr := TStringList.Create; - try - frmMain.IdFTP.ChangeDirUp; - - frmMain.ggeItem.Progress := 1; - DownloadFile('metamod.vdf', ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); - eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); - frmMain.ggeItem.Progress := 2; - if (((Pos('server.dll', eStr.Text) <> 0) and (OS = osWindows)) or ((Pos('server_i486.so', eStr.Text) <> 0) and (OS = osLinux))) then begin - case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to upgrade, No to reinstall, or Cancel to abort the installation.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: CopyConfig := False; - mrCancel: begin - Application.Terminate; - eStr.Free; - exit; - end; - end; - end; - except - // bacon - end; - { Create and Upload plugin here } - frmMain.ggeItem.Progress := 2; - eStr.Clear; - eStr.Add('"Plugin"'); - eStr.Add('{'); - if (OS = osWindows) then - eStr.Add(' "file" "..\' + ModDir + '\addons\metamod\bin\server.dll"') - else - eStr.Add(' "file" "../' + ModDir + '/addons/metamod/bin/server_i486.so"'); - eStr.Add('}'); - eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf', 'metamod.vdf'); - frmMain.ggeItem.Progress := 3; - { Upload metaplugins.ini } - frmMain.ggeAll.Progress := 4; - frmMain.ggeItem.MaxValue := 1; - frmMain.ggeItem.Progress := 0; - AddStatus('Uploading metaplugins.ini...', clBlack); - frmMain.IdFTP.ChangeDir('metamod'); - if (CopyConfig) then begin - eStr.Clear; - // see http://svn.alliedmods.net/viewvc.cgi/metamodsource/orangebox/addons/metamod/metaplugins.ini?revision=1099&root=Packages - eStr.Add(';List one plugin per line. Each line should contain the path to the plugin''s binary.'); - eStr.Add(';Any line starting with a '';'' character is a comment line, and is ignored.'); - eStr.Add(';'); - eStr.Add(';You do not need to include the _i486.so or .dll part of the file name. Example:'); - eStr.Add('; addons/sourcemod/bin/sourcemod_mm'); - eStr.Add(';You may also put an alias in front of the file, for example:'); - eStr.Add('; sm addons/sourcemod/bin/sourcemod_mm'); - eStr.Add(';Will allow you to use "meta load sm" from the console.'); - eStr.Add(';'); - eStr.Add(';********* LIST PLUGINS BELOW ***********'); - // end - eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini', 'metaplugins.ini'); - end - else if (frmMain.IdFTP.Size('metaplugins.ini') <> -1) then begin - DownloadFile('metaplugins.ini', ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); - eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); - CommentFound := False; - for i := 0 to eStr.Count -1 do begin - if (Pos(';', eStr[i]) = 1) then begin - CommentFound := True; - break; - end; - end; - - if (CommentFound) then - AddSkipped - else begin - // delete empty lines first - for i := eStr.Count -1 downto 0 do begin - if (Trim(eStr[i]) = '') then - eStr.Delete(i); - end; - // see http://svn.alliedmods.net/viewvc.cgi/metamodsource/orangebox/addons/metamod/metaplugins.ini?revision=1099&root=Packages - eStr.Insert(0, ';List one plugin per line. Each line should contain the path to the plugin''s binary.'); - eStr.Insert(1, ';Any line starting with a '';'' character is a comment line, and is ignored.'); - eStr.Insert(2, ';'); - eStr.Insert(3, ';You do not need to include the _i486.so or .dll part of the file name. Example:'); - eStr.Insert(4, '; addons/sourcemod/bin/sourcemod_mm'); - eStr.Insert(5, ';You may also put an alias in front of the file, for example:'); - eStr.Insert(6, '; sm addons/sourcemod/bin/sourcemod_mm'); - eStr.Insert(7, ';Will allow you to use "meta load sm" from the console.'); - eStr.Insert(8, ';'); - eStr.Insert(9, ';********* LIST PLUGINS BELOW ***********'); - // end - eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini', 'metaplugins.ini'); - end; - end; - frmMain.ggeAll.Progress := 5; - frmMain.ggeItem.Progress := 1; - { Upload server.dll / server_i486.so } - frmMain.tmrSpeed.Enabled := True; - frmMain.ggeItem.Progress := 0; - frmMain.IdFTP.ChangeDir('bin'); - if OS = osWindows then begin - AddStatus('Uploading server.dll...', clBlack); - frmMain.ggeItem.MaxValue := FSize(ExtractFilePath(ParamStr(0)) + 'server.dll'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'server.dll', 'server.dll'); - end - else begin - AddStatus('Uploading server_i486.so...', clBlack); - frmMain.ggeItem.MaxValue := FSize(ExtractFilePath(ParamStr(0)) + 'server_i486.so'); - UploadFile(ExtractFilePath(ParamStr(0)) + 'server_i486.so', 'server_i486.so'); - end; - { Remove created files } - AddStatus('Removing temporary files...', clBlack); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll')); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server_i486.so')); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metamod.vdf')); - DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini')); - AddDone; - { End } - frmMain.IdFTP.Disconnect; - frmMain.ggeAll.Progress := frmMain.ggeAll.MaxValue; - frmMain.ggeItem.Progress := frmMain.ggeItem.MaxValue; - AddStatus('', clBlack, False); - AddStatus('Finished installation!', clBlack, False); - frmMain.tmrSpeed.Enabled := False; - eStr.Free; - - Screen.Cursor := crDefault; - frmMain.cmdNext.Enabled := True; - frmMain.cmdCancel.Hide; - frmMain.cmdNext.Show; - frmMain.tmrSpeed.Enabled := False; - frmMain.Caption := Application.Title; -end; - -end. diff --git a/installer/UnitPackSystem.pas b/installer/UnitPackSystem.pas deleted file mode 100644 index 21e0b2c..0000000 --- a/installer/UnitPackSystem.pas +++ /dev/null @@ -1,221 +0,0 @@ -unit UnitPackSystem; - -interface - -uses SysUtils, Classes, Zlib; - -procedure CompressFiles(Files: TStrings; const Filename: String); -function DecompressStream(Stream: TMemoryStream; DestDirectory: String; const Source: Boolean): Boolean; -function AttachToFile(const AFileName: string; MemoryStream: TMemoryStream; Version: String): Boolean; -function LoadFromFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean; -function Unpack(const Source: Boolean): Boolean; -function GetVersion: String; - -implementation - -uses UnitfrmMain; - -procedure CompressFiles(Files : TStrings; const Filename : String); -var - infile, outfile, tmpFile : TFileStream; - compr : TCompressionStream; - i,l : Integer; - s : String; - -begin - if Files.Count > 0 then - begin - outFile := TFileStream.Create(Filename,fmCreate); - try - { the number of files } - l := Files.Count; - outfile.Write(l,SizeOf(l)); - for i := 0 to Files.Count-1 do - begin - infile := TFileStream.Create(Files[i],fmOpenRead); - try - { the original filename } - s := ExtractFilename(Files[i]); - l := Length(s); - outfile.Write(l,SizeOf(l)); - outfile.Write(s[1],l); - { the original filesize } - l := infile.Size; - outfile.Write(l,SizeOf(l)); - { compress and store the file temporary} - tmpFile := TFileStream.Create('tmp',fmCreate); - compr := TCompressionStream.Create(clMax,tmpfile); - try - compr.CopyFrom(infile,l); - finally - compr.Free; - tmpFile.Free; - end; - { append the compressed file to the destination file } - tmpFile := TFileStream.Create('tmp',fmOpenRead); - try - l := tmpFile.Size; - outfile.WriteBuffer(l, SizeOf(l)); - outfile.CopyFrom(tmpFile,0); - finally - tmpFile.Free; - end; - finally - infile.Free; - end; - end; - finally - outfile.Free; - end; - DeleteFile('tmp'); - end; -end; - -function DecompressStream(Stream : TMemoryStream; DestDirectory : String; const Source: Boolean): Boolean; -var - dest,s : String; - decompr : TDecompressionStream; - outfile : TFilestream; - i,l,lr,c : Integer; -begin - // IncludeTrailingPathDelimiter (D6/D7 only) - dest := IncludeTrailingPathDelimiter(DestDirectory); - - Result := False; - try - { number of files } - Stream.Read(c,SizeOf(c)); - for i := 1 to c do begin - { read filename } - Stream.Read(l,SizeOf(l)); - SetLength(s,l); - Stream.Read(s[1],l); - Stream.Read(l,SizeOf(l)); - Stream.Read(lr,SizeOf(lr)); - { check if this is the right file } - if ((Pos('.source', s) <> 0) and (Source)) or ((Pos('.orangebox', s) <> 0) and (not Source)) then begin - { remove extension and read filesize } - s := ChangeFileExt(s, ''); - { decompress the files and store it } - s := dest+s; //include the path - outfile := TFileStream.Create(s,fmCreate); - decompr := TDecompressionStream.Create(Stream); - try - outfile.CopyFrom(decompr,l); - finally - outfile.Free; - decompr.Free; - end; - end - else - Stream.Position := Stream.Position + lr; - end; - finally - Result := True; - end; -end; - -function AttachToFile(const AFileName: string; MemoryStream: TMemoryStream; Version: String): Boolean; -var - aStream: TFileStream; - iSize: Integer; -begin - Result := False; - if not FileExists(AFileName) then - Exit; - - try - aStream := TFileStream.Create(AFileName, fmOpenWrite or fmShareDenyWrite); - MemoryStream.Seek(0, soFromBeginning); - // seek to end of File - // ans Ende der Datei Seeken - aStream.Seek(0, soFromEnd); - // copy data from MemoryStream - // Daten vom MemoryStream kopieren - aStream.CopyFrom(MemoryStream, 0); - // save Stream-Size - // die Streamgröße speichern - iSize := MemoryStream.Size + SizeOf(Integer); - aStream.Write(iSize, SizeOf(iSize)); - // save version number+length - iSize := aStream.Position; - aStream.Write(Version[1], Length(Version)); - aStream.Write(iSize, SizeOf(iSize)); - finally - aStream.Free; - end; - Result := True; -end; - -function LoadFromFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean; -var - aStream: TMemoryStream; - iSize: Integer; - EndPos: Integer; -begin - Result := False; - if not FileExists(AFileName) then - Exit; - - try - aStream := TMemoryStream.Create; - aStream.LoadFromFile(AFileName); - // drop version part - aStream.Seek(-SizeOf(Integer), soFromEnd); - aStream.Read(EndPos, SizeOf(Integer)); - aStream.SetSize(EndPos); - // seek to position where Stream-Size is saved - // zur Position seeken wo Streamgröße gespeichert - aStream.Seek(-SizeOf(Integer), soFromEnd); - aStream.Read(iSize, SizeOf(iSize)); - if iSize > aStream.Size then - begin - aStream.Free; - Exit; - end; - // seek to position where data is saved - // zur Position seeken an der die Daten abgelegt sind - aStream.Seek(-iSize, soFromEnd); - MemoryStream.SetSize(iSize - SizeOf(Integer)); - MemoryStream.CopyFrom(aStream, iSize - SizeOf(iSize)); - MemoryStream.Seek(0, soFromBeginning); - finally - aStream.Free; - end; - Result := True; -end; - -{ Unpack function } - -function Unpack(const Source: Boolean): Boolean; -var eStream: TMemoryStream; -begin - eStream := TMemoryStream.Create; - try - // Get ZIP - LoadFromFile(ParamStr(0), eStream); - DecompressStream(eStream, ExtractFilePath(ParamStr(0)), Source); // Unpack files - - Result := True; - except - Result := False; - end; - eStream.Free; -end; - -function GetVersion: String; -var FileStream: TFileStream; - EndPos, Size: Integer; - Version: String; -begin - FileStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyWrite); - FileStream.Seek(-SizeOf(Integer), soFromEnd); - FileStream.Read(EndPos, SizeOf(EndPos)); - FileStream.Position := EndPos; - Size := FileStream.Size - EndPos - SizeOf(Integer); - SetString(Result, nil, Size); - FileStream.Read(Pointer(Result)^, Size); // YAMS - FileStream.Free; -end; - -end. diff --git a/installer/UnitSelectModPath.dfm b/installer/UnitSelectModPath.dfm deleted file mode 100644 index ef9ae6a00bf1378e8d66494971a9f5e7022a05f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1310 zcmc&!J#*7Q5IsqbWJQkS3^No|qG3`op@k}zBkYNTG}eWbaF*7V$obB5caD>PlRrYo z3=Km|P00_)&;jR@^I>MFsieKty?yWPu6}PL9FI=2qv276Pm*4Gi2LZE<7^>>)A(Qy zPsA((3b{JrMM_lJ`TL+Tgo$!KSq|oN=YWYHb9LrusD4%)}nX8I3w-c3| zO9+cfXiP4yS`n>)sXkQGQaKYVsN=J$P^I$=ZAF}N;rTi3Di)I*S}|wpc~lZ1L3z8q zqxkT2h~Gv1!%=pGx9hCA)5_^t#R|T}aH#^5sH@mFzKPzD8MrPcC7+S{qG27Nc0!9t z08x;vv^1M3m(_~C*Pin%7XU2MoI&iQ)g@4wf*7#8wBK*9O0A3RAQz{E0rlsM_CQus zW~{OsE2r$nRxR-cxohpOtnDsb08JJe+4IL2L%sw7MH7>;;b9{UIV5AC9v#yGoA4UY z-2lA41+;hWTz{HUAlh|lIvHN^g$QT7xbMPCgxWYOfl{p1y{%x`QsSa_+oXqe9{BhyOn3}-r2a1%Swh*JvO0!E@Z`~p(-J)ku-D& zY+5l0?}=HS?p~&)`v{@H@aQg-;%qCQ70IzF?OY?XJg?Wa?X&er*iY*5Z+!Xu5w(mT zG0ztgipJOPKap=vdVI-D7?`kLKQAx~la)lzf7>Mb+Q;F_%Z*%pss3&waVOe&mK<+% t}XuLVYg nil) then - chkUsesOrangebox.Checked := (chkUsesOrangebox.Checked) or (trvDirectory.Selected.Text = 'tf'); -end; - -end. diff --git a/installer/UnitfrmMain.dfm b/installer/UnitfrmMain.dfm deleted file mode 100644 index 4e2a9f9..0000000 --- a/installer/UnitfrmMain.dfm +++ /dev/null @@ -1,11618 +0,0 @@ -object frmMain: TfrmMain - Left = 333 - Top = 271 - BorderIcons = [biSystemMenu, biMinimize] - BorderStyle = bsSingle - Caption = 'Metamod:Source Installer' - ClientHeight = 355 - ClientWidth = 527 - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Tahoma' - Font.Style = [] - Icon.Data = { - 000001000C003030000001000800A80E0000C60000002020000001000800A808 - 00006E0F00001818000001000800C80600001618000010100000010008006805 - 0000DE1E0000808000000100200028080100462400006060000001002000A894 - 00006E2C010048480000010020008854000016C1010040400000010020002842 - 00009E1502003030000001002000A8250000C65702002020000001002000A810 - 00006E7D0200181800000100200088090000168E020010100000010020006804 - 00009E9702002800000030000000600000000100080000000000000900000000 - 0000000000000001000000010000000000003535360031393E003B3B3B00403E - 3E001D3642001E3C4C002A3B4400323B4100264150002C465400274C5F003E52 - 5D00214C62003A5A6B00205A7700205D7C00365E73002B627F00454343004846 - 46004647490048474800464A4D004A4848004C4A4A004D4D4D00504E4E004F4F - 50004F5050004351590053535300585656005457590055585800595858005C5B - 5B00595D5D005E5D5D00605F5F00595F600045616F005C6364005E696B004364 - 7500496A7B00596B72005B737B00636363006463630060656500666464006167 - 6B00636B6C006C6B6B00706E6E00606C70006370720068747600627479006979 - 7C007170700074737300767575007877770070777900797979007C7B7B007D7C - 7C0019668E0015699300336680002D6F91002C72970029729800337699003D7D - 9D001674A400327CA200476E820042728A005A79850051778B00567D8D005B7E - 8B00637D8500697D8200717C82001380B7002182B3002A82B000398CB7003E95 - BD005F8493006D8287006681890071808500788284007C888E00638C9B00688E - 9A0069919E0079959F00438CAE00488DAB00548CA300588FA600518FA9004B90 - AE005B91A6005594AF005993AA00408EB2004C93B2004C97B9004699BE004D99 - BA005496B100559AB7005E99B000539EBD00599DB800648FA6006397AA007098 - A8006A9CB300729EB50075A6BC007EA9BA001287C3001A8BC500118CCA00188E - CA000D95DB000D98DF001495D6001995D3001E98D5001195D800159ADD001C9B - DB00298EC2002596CD002A95CA003395C3003895C0003D9AC500329ACB00399B - CB002196D000239AD6002B9BD200239BD900319DD00024A0DF002CA1DC0032A0 - D70030A2DD000D9BE3000D9EE800119CE2001A9DE0000DA2EE001EA2E50013A4 - ED0019A5ED001DA8EF001AA7F0001CA8F00022A2E4002BA6E50021A7EB0028A7 - E80023A9ED002BABED0031A6E10034A9E50039ABE50033ACEA0039AEEA0037B0 - EE003CB2EE0024ABF0002BAEF00031AFF00033B1F1003CB4F100429AC3004C9E - C200529FC70070BADD0040B0E9004CB6EC0041B6F10047B8F2004CBAF30053BD - F3005BBEF10062BEED005BC0F40068C1EE007AC0E4007ACAEF0067C4F50069C5 - F50074C7F20078C7F00077CBF60078CBF5008281810086868600888787008B8A - 8A0086979D0090909100979B9F0099989800959DA2008FA0A60093A4AC0080AB - BE009AAEB500A5A4A400A3ADAD00AEBABA0084AFC60093B5C7009EB7C2009DBB - CA00A7BBC500AABCC30093C1D50099C2D700B1C3CA00A6C9DA00B1CAD40084CD - F1008ACFF20087D1F7008AD0F30094D5F6009ED7F5009ED8F60095D6F800A7D2 - E600B4DBED00A3DAF600ABDDF700A4DCF800AFE0F800BFE5F600B2E1F900BBE4 - F900CBE6F300CCE8F500C0E6FA00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - D13F3F3F42D10000000000000000000000000000000000000000000000000000 - 00000000000000000000000042231814141413141418181B3100000000000000 - 0000000000000000000000000000000000000000000000000000311814141414 - 141414141414141414141F420000000000000000000000000000000000000000 - 00000000000000003F14141414181F2A2F5154542F2B2218181414141F000000 - 00000000000000000000000000000000000000000000001F1314141F3969BB9C - 9CB0AFAFAF9D9471511F181414143F0000000000000000000000000000000000 - 000000000000181814183B729DAFB2B5B5B5B5C1B5B5B3B09D94531F18141331 - 000000000000000000000000000000000000000000181814236F9BAFAEB4B5B5 - B5B5B5B5B5B5B5B5B4B2AF912B18161323000000000000000000000000000000 - 000000001818182BBB9AAAAEB4B9B9B9B9B9B9B9B5B9BAB9B5B9B2AF96511818 - 183100000000000000000000000000000000002018182B929AACB7B7B7B7B7B7 - B8B8B8B8B7B9B7B9B9B8B7B7AF9A531818183F00000000000000000000000000 - 00003F14142ABBA1ABB6B6B6B6B6B6B6B6B6B7B7B7B7B7AFAFB7B7B7B69A962F - 18161800000000000000000000000000000018141F6E8BA3A84A2C2D2D8FB6B6 - B6B6A8A8B6B6B650214F5BACB6ACA38F2A161423000000000000000000000000 - 00311814558CA0A7A38804181F29A3A8A7A8A8A8B6A7A11F1F201F21508DA3A3 - 671818180000000000000000000000000014142292A0A4A7A2A710131B185AA7 - A7A7A7A7A2A74B1F1B1B1B1B1812A8A4872F1814230000000000000000000000 - 4218145F8A9FA4A2A7A28B0218180CA4A2A2A2A2A7A20C19160301130484A7A4 - A07018181800000000000000000000001F141F7286A2A2A2A2A2A24504181449 - A2A4A2A2A25916191410460506A4A2A486882A18183F00000000000000000000 - 14142A9B86A2A2A2A2A2A286071314178AA2A2A2A21116140383A2A285A2A2A2 - A28553181418000000000000000000001414568A9FA2A2A2A2A2A2A24D041314 - 47A2A2A28B1616140BA2A2A2A2A2A2A2A28670181818D10000000000000000D1 - 18186385A2A2A2A2A2A2A2A2A20913141684A7A24A1614044DA2A2A2A2A2A2A2 - A286901F14182300000000000000003F14186E86A2A2A2A2A2A2A2A2A2580114 - 160EA2A20C14140886A2A2A2A2A2A2A2A29F8F2216141800000000000000003F - 13187586A2A2A2A2A2A2A2A2A2A20D131414598413141310A2A2A2A2A2A2A2A2 - A29F952318141431000000000000003718187586A2A2A2A2A2A2A2A2A2A28401 - 13181E4814140481A2A2A2A2A2A2A2A2A29F952816141418000000000000003F - 13187785A2A2A2A2A2A2A2A2A2A2A21013181F181B180AA2A2A2A2A2A2A2A2A2 - A29F8F22141414143F000000000000D418186385A2A2A2A2A2A2A2A2A7A8B79A - 1723232723204EB6A8A2A2A2A2A2A2A2A286911F141414141B00000000000000 - 1418568786A2A2A2A2A2A7B7B8B9B9B94C2731313122B0B9B9B8A8A2A2A2A2A2 - A28667181614141414D300000000000014182A999FA2A2A2A2A7B8BABAC1C1C1 - B52B37373752C1B5C1B5BAB6A2A2A2A2A2855416141414141423000000000000 - 1F141D7586A2A2A2A2C1C3C3C3C3C3C3C37A403F37BDC3C3C3C4C3C3A8A2A2A2 - 9F952A14141414141414000000000000D118185E8B86A2A2B8C7C7C7C7C7C7C7 - C762D1D157C5C7C7C7C7C7C7C3A2A2A2866C1818141414141414330000000000 - 00141422BC86A2A2C1CCCCCCCCCCCCCCBED4D4D47ECCCCCCCCCCCCCCCCA7A286 - 893B141818181B18181418000000000000401414568986A2C7CFCFCFCFE1DBD9 - D9D8D8D6C9CFCFCFCFCFCFCFCFA7A2866B181D7D7F7F7F7F5616184000000000 - 000018141F7B869FC1EEEEEEEEE2DEDEDEDEDEDBEEEEEEEEEEEEEEEECFA28690 - 2A1618BEEE807C7C3B16141F000000000000DF1314237886A3EEF3F3F3E4DEDE - DEDEDEE8F3F3F3F3F3F3F3F3C286963B1318182ECA7F23141414141400000000 - 00000037131832BC86B4F8F8F8EAE6E6E6E6E5F6F8F8F8F8F8F8F8CDA0965518 - 181618185DEE661B1414141433000000000000001F16182A798AB0F2FBFBFBFB - FBFBFBFBFBFBFBFBFBF9CC8B8F3B181414141414187DED60181414141F000000 - 000000000018181822659B8BC6F9FFFFFFFFFFFFFFFFFFFCECB0877135181814 - 14141414181FE7F4311814141B0000000000000000001F141418397B9B8AB0CC - EDF2F6F6F3CAC08C8973551F141414141414181F1F1735FBD518141420000000 - 0000000000000034141814183564789389878B87879B736D3C1D181414141414 - 14141DF5DD182AFADA181414420000000000000000000000E018181814181C23 - 3A3C56563A2A1F181818131414141414141418E3FEDDEBFE4114141B00000000 - 00000000000000000000D1181814181818181414141414181418181414141414 - 1416181FDBE9E661181814000000000000000000000000000000000000371814 - 1414141414141414141414141414141414141418181818181823000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF - FFFFFFFF0000FFFFFFFFFFFF0000FFFFC0FFFFFF0000FFFC001FFFFF0000FFF0 - 0003FFFF0000FFC00001FFFF0000FF8000007FFF0000FF0000003FFF0000FE00 - 00001FFF0000FC0000000FFF0000F800000007FF0000F000000007FF0000F000 - 000003FF0000E000000003FF0000E000000001FF0000C000000001FF0000C000 - 000000FF0000C000000000FF0000C0000000007F000080000000007F00008000 - 0000007F000080000000003F000080000000003F000080000000001F00008000 - 0000001F0000C0000000000F0000C0000000000F0000C0000000000F0000C000 - 000000070000E000000000070000E000000000030000F000000000030000F000 - 000000030000F800000000010000FC00000000010000FE00000000010000FF00 - 000000010000FF80000000010000FFC0000000030000FFF0000000070000FFFE - 0000000F0000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF - FFFFFFFF0000FFFFFFFFFFFF0000280000002000000040000000010008000000 - 00000004000000000000000000000001000000010000000000003E3D3D003042 - 4C0034444D003D464B002A495A00384B55002C51650024536C003C5968003B5B - 6D0034637B004240400045434300474545004846460046484900454B4F004A48 - 48004C4A4A004C4B4C004D4D4D00504E4E004D4E50004F50500041515B004555 - 5E005050500054525200535455005654540055595900555B5D00565C5E005A59 - 59005D5B5B00595C5D005F5E5E00605F5F00505B6000565F6100585F62005C61 - 61005A6064005261680056676D005C65690057696F005B686B005C6A6E004068 - 7D004E6A790052687100586B71005C6D7100596F7700526D780051717E006261 - 610064636300666464006B6A6A006C6B6B006E6D6D006C75780069767C007170 - 70007473730075747400787777007E7E7E00176288001F678D001D6E98001670 - 9E003B6E890029769E00397D9F001874A3001678AA00247AA700357DA2003C7F - A1004D758700497588005B7B8600507B8E00457A9500647E8900757F82001385 - BF001F88BE002981AE003E82A2003989AF003D88AE002183B500358CB6003C8D - B3003A95BF004D839A004D849C005F82910056879B0051879E005A879E006788 - 9700688997004083A1004583A0004C87A0004D88A3004888A5004488A800468C - AC00498DAB00508EA9004892B5004093B9007699A60071A1B6001E91CB001192 - D4001297DB001698D900199ADA001A9BDD001E9EDE002491C8002999CF002E99 - CE003D97C1003798C6003A98C4003399C900369AC900379BCC003A9AC8002498 - D400239CD700269CD6002E9DD2002B9DD500239EDD0026A1DF0033A2DA000D9A - E2000D9BE4000D9DE6000D9EE900129AE000179DE200149FE600189EE1000EA2 - EE001FA2E50014A1E90010A2EE0012A4EF0015A5EE001CA4EA0019A6EE0019A7 - F0001BA8F00027A6E60029A3E1002BA4E2002BA8E70025A8EB0026ABEF002EAE - EF0033A6E00031A8E40034ABE7003CACE60037AEEB0032AFEF0035AFED003AAF - EA0039B0ED003DB3EE0022AAF00024ABF00027ACF0002AADF0002DAEF10030B0 - F10035B1F10038B2F1003DB4F000439AC300429FCB0040A2D10040A3D40069AD - D00062B0D8007EBAD5004DB0E30049B1E60045B8F20049B9F3004FBAF10058BF - F30059BFF4005EC1F4006DC2ED007DCAEE0074CAF5007FCAF0007CCDF5008281 - 810085848400879396008B94940088969E0096959500989797008F9FA80087AB - BA0088ABBE0099ACB4009EAFB6009BB0BC00A5A4A400A6B3BA00A6B4BA0080B3 - CD0091B9CD00A4BFCC00ADCBD800B1CCD800B9CFD80081CCF2008AD1F60097D4 - F4009FD9F800A3CDE100A1D6F100A1D9F500ADDEF700A0DAF800B5E2F9000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 3F1E161616162244000000000000000000000000000000000000000000001E12 - 12161216160F121212220000000000000000000000000000000000003A12161F - 5675BFC1C1BE7038161612440000000000000000000000000000001E121E7091 - ADB1B4B4B4B4B2AD8439160F3A000000000000000000000000001E123488A7B1 - BBBBBBBBBBBCBBBCB1A57116163A00000000000000000000003A162D8EA8B7B7 - B7B7B7B7BBB9B9BBB7B1A461160F4600000000000000000000121F82A0804D52 - A5B6B6B6B6B6A5395FA5A89B6D16120000000000000000001E1672989F990416 - 4BA2A2A2A2A3511E1B1E327F7E34123F0000000000000000122E7C9F9D9F490F - 16799F9F9F9F1A16010F069F9F61121600000000000000440F70939D9D9D9502 - 0F0A9D9D9D5B120F4A474A9F957B280FD20000000000001E1684959D9D9D9D4F - 0C0F609D9D0B0F039D9D9D9D9D93540F1E000000000000121E8B9D9D9D9D9A9D - 050F199593100F489D9D9D9D9D935D120F0000000000000F2A7C9D9D9A9A9A9D - 5A010F4C5012017A9D9D9A9A9A9A5E0F122200000000000F2A7C9D9D9D9A9A9A - 9A080F11090F079D9D9A9A9A9A955E0F161600000000000F1F8B9D9D9A9A9A9D - 9F8B161F221E5C9F9D9A9A9A9A945D0F0F0F3F000000001E1684959D9A9AA3BB - BBBB573A3D29B1BBB99D9A9A9A94540F0F0F1600000000441268939D9AA3C8C8 - C8C8C5444469C8C8C8C89D9D9A7A28100F0F12D200000000122A7E9A9DCACCCC - CCCCC2D2D2C3CCCCCCCCBD9A9561160F12120F1E00000000221674939FCFCFCF - E2DBD9D7D6CFCFCFCFCFCA9D7B2D276A6A6A2A1000000000000F1F8893D1E9E9 - DEDFDFDFE3E9E9E9E9E9C89264102CCE77581F0F3A00000000D50F318EB4EEF0 - E4E1E1E1EDF0F0F0F0E99871150F1066C41E11121200000000002E102A84AEEE - F1F1F1F1F1F1F1F1E88F6E150F0F0F0F78DA160F120000000000002E161D688E - C5D0EEEFEFEACDAB633716120F0F16151DEC40121200000000000000D40F121F - 5574638884766537160F0F0F0F0F41E61FE55912160000000000000000003A0F - 0F0F1616160F12121212120F0F0F16DCE7DC1B12000000000000000000000000 - D83F1E0F0F1212120F120F0F0F0F0F0F16163D00000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF - FFFFFFC03FFFFF000FFFFC0003FFF80001FFF00000FFE000007FE000007FC000 - 003FC000003F8000001F8000001F8000001F8000000F8000000F800000078000 - 000780000003C0000003C0000003E0000001E0000001F0000001F8000001FC00 - 0001FF000003FFC00007FFFFFFFFFFFFFFFFFFFFFFFF28000000180000003000 - 0000010008000000000040020000000000000000000000010000000100000000 - 00003E41430039424800384851002C5B73002B5C7600345E7300464444004846 - 460045494C004A4848004C4A4A004E4D4D00454B50004D51530041525C004656 - 5F004F595D005151510054535300535455005554540058565600525859005559 - 5A00525B5E00545A5C00525C5F005B5A5A005C5B5B00595E5F005E5D5D00605F - 5F0043576200455862004F5F6800535B6000525D6100585F62004D616A005061 - 67005461670059606300596264005262690056676D00516872004F707E006065 - 670061676A006A6969006E6D6D00706F6F006972760064747D00727171007473 - 73001D6F9A002164860033658000226A900029779F003E7894001478AC00436B - 8100466F82004A7183004C74850048758A004D7A8E005D7C8B0042779300497A - 90004F7F9400467F9900497F9800607C8B001682B9003882A8002686B800348B - B500398EB5003D8EB400318CB9006E8089004583A0004A87A2004789A800428B - AD00438EB0004590B5005499BC00729FB20075A3BB001386C1001D8AC1001192 - D4001694D5001E95D1001799DB00129ADF001D9AD9001F9FDF002D95CA003296 - C6002FA0DA0037A1D6003CA1D30031A2DB0039A6DC000F9AE0000D9CE6000D9E - E900109AE0000DA0EB000DA2EE0018A1E70010A0E90011A3EE0011A4EF0014A4 - EE001CA8EF001EA9F00022A1E10027A5E5002DA7E50023A7EA002EABEB002EAC - EC0036AAE50035AFEE0039ADE80022AAF00026ACF00029ADF0002CAEF00036B2 - F10038B3F1003FB5F20042A0CC0049A9D7006AA7C70076B2CD007AB1C80046AE - E30054B3E30056B5E5005BB8E70045B7F10046B8F2004DBAF30062C2F40066C4 - F4007FCEF60081818100868686008A8989009897970099989800989C9E009E9D - 9E009CA0A3008BA5B000A2AEAE00A7B1B600B2B1B1008DB9CC00A9BDC500A2BF - CD0085C0DE009FCDE50080CBF20086CEF20091D4F6009CD7F6009CD8F800B8E3 - F900B9E4FA000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000331F1F1F370000000000 - 00000000000000000000009C0C08122528190C08120000000000000000000000 - 0000200C2E5A6D8183816B55190833000000000000000000001F0C557D828889 - 898989826C420C320000000000000000370C5284858686868686827F867C4408 - 9B000000000000000C4B74621040797A85794E25476766270C00000000000033 - 19657676050C4F767676220A080676500A9B00000000000C4470737360011070 - 765F08053F5E7671190C00000000000851737373733A083D733B084D73737370 - 400C00000000000C68737373736E020D60090373737373733E081F0000000008 - 6873737373733908220C3C73737373703E080800000000085173737376867F23 - 201F69847673736E410A08340000000C456E737A9595955B374C949589767371 - 2508080C00000037196673969797975D9B8D9797978873500C080C089B000000 - 08496E9799A9A1A0A0ABAB99999463284C8F5C2512000000A30C5983AFAAA4A4 - A8AFAFAFAD7B420C0E8E26080800000000360C5690AEB1B1B1B1B1996B2F0808 - 0828A612089C00000000540C28598C9293928B4B190808083530A23508000000 - 0000000016080C262B190C080808080831A7A71220000000000000000000A5A0 - 9D9D9D9D9D9D9D9D9DA0A0A50000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000FFFF - FF00FFFFFF00FF07FF00F801FF00F0007F00E0003F00C0001F00C0001F008000 - 0F0080000F0080000F008000070080000700800003008000030080000100C000 - 0100C0000100E0000000F0000100FC000100FF000300FFFFFF00FFFFFF002800 - 0000100000002000000001000800000000000001000000000000000000000001 - 000000010000000000003D525D00315467002E5F79004345470048464600434A - 4E004A4949004D4D4E00514F4F004F5050004D5357004A585E004C585E005152 - 52005253540053545500555758005E5D5D00475C67004A5A6200525D62004F60 - 67004B606B0058686F00436677004D6671004A6774004B68760042667800466C - 7E00496A7900486D7D0069686800647077007171710031698600306B8A003B7C - 9B003C7C9A00187FB4002F7CA3002B7DA700437085004372880047758B004777 - 8E005E7D8C001E87BC002D8AB8002D8CBB005B8094006B899600718793007A9A - A80078A4BB001386C2001C8CC6001196DA003B97C5003295C800359BCF002199 - D500249EDC002E9FD8002AA0DB0037A0D40031A2DC000F9DE600139BE0000DA0 - EA000EA2EE0014A3EB0015A5EF0027AAEC003CADE60036AFEC0027ACF00029AD - F0002CAEF00035B1F1003AB3F0003DB5F1004E9BC10058AAD20071B8DD0040B5 - F10069C5F500818080008B8A8A008D8D8D00808E95008599A40097A9B100A6AC - AF00A9AEAF00AEB5B500A3B2BA00B4B4B40097CFEB0083CBF0008DD0F20090D4 - F70095D6F70095D6F800ABDEF800AFDFF8000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000058580000 - 000000000000000000580A1B2E2E17085900000000000000211C424C51514C3B - 14230000000000591F3F3C4A4D4E3D43410C00000000000F3E48012948491708 - 293209000000001E46462806453904383A440C00000062264647470225240346 - 47461D1200006226464747390A0B304747461D050000001F4649525233225650 - 47460B08210000113E5257555C3757574F3215180F0000601F4B68615E636868 - 410C2F3408590000351B54656A6A64530C0508360F230000005F0F1B2E2B1408 - 05055B5D11000000000000000000000000000000000000000000000000000000 - 000000000000FFFF0000FCFF0000E01F0000C00F0000800F0000800700008007 - 00000003000000030000800100008001000080000000C0000000E0010000FFFF - 0000FFFF00002800000080000000000100000100200000000000000801000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000007F7F - 7F017F7F7F017F7F7F017F7F7F017F7F7F017F7F7F017F7F7F017F7F7F017F7F - 7F01000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000100000002000000040000000500000007000000080000000A0000 - 000C0000000D0000000D0000000E0000000E0000000E0000000D0000000D0000 - 000C0000000A0000000800000007000000050000000300000002000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000100000003000000050000 - 00090000000C0000001000000014000000180000001C0000001F000000230000 - 0025000000270000002800000028000000280000002800000028000000270000 - 0025000000220000001F0000001C00000017000000130000000F0000000B0000 - 0007000000040000000200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000100000003000000070000000C00000012000000180000 - 001F000000250000002C00000032000000370000003B0000003E000000410000 - 0043000000450000004500000046000000460000004600000045000000450000 - 0043000000410000003E0000003B00000036000000310000002B000000240000 - 001D00000016000000100000000A000000060000000300000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0003000000070000000C000000130000001B000000250000002E000000360000 - 003D00000043000000480000004B0000004E0000005100000052000000540000 - 0055000000550000005500000056000000560000005600000055000000550000 - 00540000005400000052000000500000004E0000004B00000047000000420000 - 003B000000340000002B0000002200000019000000110000000A000000050000 - 0001000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001211110100000004000000090000 - 00100000001A00000025000000300000003A00000042000000490000004E0000 - 005203030357161616761F1E1E91242323A9343333BE3D3C3CD0403E3ED84543 - 43EA454343EA454343EA454343EA454343EA454343EA454343EA403E3ED83C3A - 3ACD323131BB232222A71E1D1D8C141414720000005700000056000000540000 - 00510000004C0000004700000040000000370000002C00000020000000160000 - 000E000000070000000300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000012111101000000040000000A000000130000001F0000 - 002B00000037000000410000004A000000500908085E1F1E1E902D2C2CB54240 - 40E0484646FC494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF474545F73F3D3DD5292828AC1A1A - 1A820505055D00000056000000530000004E000000470000003E000000330000 - 00260000001A0000001000000008000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000012111101000000040000000A00000014000000210000002F0000003B0000 - 00460000004E0F0F0F69262525A5403E3ED7494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF474545F7393737C8201F1F940707076000000055000000510000004B0000 - 0043000000370000002A0000001B000000100000000700000002000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00030000000800000012000000200000002F0000003D0000004805050555201F - 1F94403E3ED7494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF474545F7343232C01817177D000000570000 - 00540000004E0000004400000038000000290000001A0000000E000000061211 - 1101000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000012111101000000050000 - 000F0000001C0000002C0000003B000000480B0B0B612E2D2DB2474545F44947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF413F3FE02221 - 21970302025A000000540000004E000000440000003600000026000000160000 - 000B000000031211110100000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000300000009000000160000 - 002600000037000000460D0D0D65353333BF484646FA494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF454444EF262525A10505055C000000540000004C00000041000000310000 - 001F000000100000000712111101000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000002F3F3F01000000050000000E0000001D0000002F0000 - 0040090909572F2E2EB3484646FA494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4A4848FF4A48 - 48FF4A4949FF4A4949FF4A4949FF4A4949FF4A4848FF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF444242E7212020940000005700000052000000490000 - 003A00000028000000170000000A000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000002F3F3F0100000007000000130000002400000037000000472524 - 2497474545F4494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4A4949FF4C4B4BFF4F4F4FFF515353FF555757FF585C5CFF5B6060FF5D63 - 63FF5F6565FF606767FF606767FF5F6565FF5E6363FF5C6060FF585C5CFF5558 - 58FF525353FF4F4F4FFF4C4C4CFF4B4949FF494848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF3F3D3DDB12121277000000550000 - 004E00000042000000300000001D0000000E000000052F3F3F01000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000020000000A000000170000002A0000003E111111673F3D3DD94947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4A4949FF4D4C4CFF515252FF585B - 5BFF5F6565FF677070FF707B7BFF778787FF7D9293FF7D999EFF7B9EA7FF76A1 - ADFF72A2B1FF70A2B3FF70A2B3FF70A1B2FF73A0AEFF779EA9FF7B9AA0FF7B92 - 95FF78898AFF717E7EFF697272FF616767FF595C5CFF525353FF4D4D4DFF4B49 - 49FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF484646FC2F2E2EB30505 - 055C0000005200000048000000370000002300000011000000062F3F3F010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00030000000C0000001B0000002F000000422928289B484646F9494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4848FF4D4D4DFF535555FF5C6060FF687070FF768484FF7F97 - 9AFF74A1AEFF5DA1BCFF479FC6FF379DCDFF2899D1FF1F97D2FF1E96D4FF2098 - D5FF229AD6FF249BD7FF259BD7FF229AD6FF2199D6FF1E96D4FF1D96D3FF2197 - D1FF2D9ACFFF3C9CC8FF4F9DBEFF669EB2FF78989FFF778788FF6A7474FF5D63 - 63FF545656FF4E4E4EFF4A4949FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4341 - 41E512121277000000550000004B0000003C0000002800000014000000073F3F - 3F01000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000030000 - 000D0000001E000000330B0A0A543B3939CD494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4B4A - 4AFF505151FF595D5DFF677070FF798889FF7E9EA5FF65A4BCFF409FCAFF2498 - D1FF1E97D5FF269CD8FF2CA0DBFF2EA2DDFF30A3DEFF31A4DFFF32A5E0FF33A6 - E1FF33A6E1FF34A6E1FF34A6E1FF34A6E1FF33A6E1FF33A5E0FF32A5E0FF31A4 - DFFF30A2DDFF2DA1DCFF279DD9FF1F98D6FF1B94D2FF2C99CDFF4E9DBFFF709D - ABFF798C8EFF6A7474FF5C6060FF515252FF4C4B4BFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF484646FC2726269F000000560000004E000000400000002B000000170000 - 0008000000020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000030000000D0000 - 001F0000003513121269444242E9494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4B4BFF525353FF5E63 - 63FF707C7CFF80999CFF6BA5BAFF3A9ECCFF2097D3FF239AD7FF2BA0DBFF2EA2 - DDFF30A4DFFF32A6E1FF34A7E2FF35A9E4FF37AAE5FF37ABE6FF38ACE6FF39AC - E7FF39ADE8FF3AADE8FF3AADE8FF3AADE8FF3AACE7FF39ACE7FF38ACE6FF38AB - E6FF37AAE5FF35A9E3FF33A7E2FF32A5E0FF30A4DFFF2DA1DCFF269CD8FF1B95 - D4FF2697CFFF4D9DBFFF7599A3FF738181FF606767FF535555FF4C4C4CFF4948 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF363434C30707075E00000050000000420000002D0000 - 0018000000090000000200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000030000000D0000001F0000 - 0036201F1F80474545F7494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4B4A4AFF515252FF5F6464FF738080FF80A0 - A6FF57A4C3FF2899D1FF2198D6FF2A9FDBFF2DA2DEFF30A5E0FF32A7E3FF34A9 - E5FF36ABE7FF37ACE8FF39AEE9FF3AAEEAFF3BAFEBFF3CB1ECFF3DB1ECFF3DB1 - ECFF3DB1EDFF3EB2EDFF3EB2EDFF3EB2EDFF3EB1ECFF3EB1ECFF3DB1ECFF3DB0 - ECFF3CB0EBFF3BAEEAFF3AAEE9FF38ACE8FF37ABE6FF34A8E4FF32A6E1FF30A4 - DFFF2CA1DCFF239BD8FF1994D2FF389AC8FF6C9DADFF758587FF616868FF5355 - 55FF4C4B4BFF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF3F3D3DDD0B0B0B6700000051000000440000 - 002F000000190000000903223202000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000030000000C0000001F000000362928 - 2894484646FC494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4848FF4F4F4FFF5B6060FF717C7CFF82A0A5FF51A3C5FF2398 - D2FF249BD8FF2AA0DCFF2DA3E0FF30A6E3FF32A8E5FF35ABE7FF36ACE9FF38AE - EAFF39B0EBFF3BB0ECFF3CB1EDFF3DB2EEFF3DB3EEFF3EB3EFFF3EB3EFFF3FB4 - F0FF3FB4F0FF3FB4F0FF40B4F0FF40B4F0FF40B4F0FF40B4EFFF3FB4EFFF3FB3 - EFFF3EB2EEFF3EB2EEFF3DB2EDFF3CB1ECFF3BB0EBFF39AEEAFF37ADE9FF35AA - E6FF33A8E4FF30A5E1FF2DA2DEFF279DDAFF1A95D3FF3099CAFF6A9CAEFF7483 - 83FF5E6464FF505151FF4A4949FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF444242EA0F0E0E71000000520000 - 00440000002F00000018000000082F3F3F010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000020000000B0000001D000000352A2929974947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4C4B4BFF555858FF687171FF81989AFF5EA6C2FF2498D1FF249BD8FF29A0 - DCFF2CA4E0FF2FA6E3FF31A9E6FF34ABE9FF36AEEAFF38AFECFF39B0EDFF3AB1 - EEFF3BB2EFFF3CB3EFFF3DB3F0FF3DB4F0FF3DB4F1FF3EB5F1FF3EB5F1FF3EB5 - F1FF3EB5F1FF3FB5F1FF3FB5F2FF3FB5F1FF3FB5F2FF3FB5F2FF3FB5F1FF3FB5 - F1FF3FB5F1FF3FB4F0FF3EB4F0FF3EB3EFFF3DB3EFFF3CB2EDFF3BB1ECFF39AF - EBFF37ADEAFF35ABE8FF32A9E5FF2FA6E2FF2CA2DFFF269DDAFF1894D3FF3699 - C7FF7399A4FF6C7777FF585B5BFF4D4C4CFF494848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF454444EF121111740000 - 0052000000430000002D00000017000000072F3F3F0100000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000002F3F3F01000000090000001A000000322B292996494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4A4848FF4F4F - 4FFF5D6262FF778686FF79A8B5FF319CCEFF2098D6FF279EDBFF2AA2DFFF2DA6 - E3FF30A9E7FF32ABEAFF35ADEBFF37AFEDFF38B0EEFF39B1EFFF39B2F0FF39B3 - F0FF3AB3F0FF3BB4F1FF3BB4F1FF3CB5F2FF3CB5F2FF3CB5F2FF3CB5F2FF3CB5 - F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3EB5 - F2FF3EB5F2FF3EB5F1FF3EB5F1FF3DB4F1FF3DB4F1FF3DB3F0FF3CB3EFFF3BB2 - EFFF3AB1EDFF39AFECFF37AEEAFF34ABE8FF31A8E5FF2DA5E2FF2AA1DEFF239B - D9FF1893D1FF519DBDFF768C8FFF616767FF515252FF4A4949FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF474545F71413 - 137C00000051000000420000002B00000014000000062F3F3F01000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00002F3F3F0100000007000000160000002F2B2A2A94494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4B4949FF535454FF666E - 6EFF829A9CFF55A5C6FF1F96D3FF249CDAFF27A0DEFF2AA4E3FF2DA8E6FF30AA - E9FF32ADEBFF34AEEDFF36B0EEFF37B1EFFF38B2F0FF38B2F0FF39B2F1FF39B3 - F1FF39B3F2FF39B4F2FF39B4F2FF39B4F2FF39B4F2FF3AB4F2FF3AB4F2FF3AB4 - F2FF3AB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4 - F2FF3CB4F2FF3CB5F2FF3CB5F2FF3CB5F2FF3CB5F2FF3CB4F1FF3BB4F1FF3BB4 - F0FF3AB3F0FF39B2EFFF39B1EEFF38AFECFF35ADEBFF32AAE8FF2FA7E4FF2BA3 - E0FF289FDCFF1C97D6FF2B98CBFF6F99A7FF6A7575FF555757FF4C4B4BFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4544 - 44EF0F0E0E71000000500000003F000000270000001100000004000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000500000012000000292322227E494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4C4B4BFF565858FF6E7979FF81A5 - ADFF369DCEFF1E97D6FF249EDCFF28A2E1FF2AA5E5FF2DA9E8FF2FACEAFF31AD - ECFF33AFEEFF34B0EFFF35B1F0FF35B1F1FF36B2F1FF36B2F2FF37B2F2FF37B3 - F2FF37B3F2FF37B3F2FF37B3F2FF38B3F2FF38B3F2FF38B3F2FF38B3F2FF38B3 - F2FF38B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3 - F2FF39B4F2FF39B4F2FF39B4F2FF39B4F2FF39B4F2FF39B4F2FF39B4F2FF39B3 - F1FF39B3F1FF39B3F0FF39B2F0FF38B1EFFF37B0EEFF35AEECFF32ACEAFF2FA9 - E7FF2CA5E3FF29A1DEFF229BD9FF1A93D1FF599DB8FF728081FF595D5DFF4C4C - 4CFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF454444EF0C0C0C680000004E0000003B000000220000000D000000030000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00030000000D0000002315141465484646F9494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4C4C4CFF595D5DFF758383FF79AAB9FF2598 - D1FF209AD8FF249FDDFF27A3E2FF29A7E6FF2CAAEAFF2EACECFF30ADEEFF31AF - EFFF32AFF0FF32B0F1FF33B0F1FF33B1F1FF33B1F1FF34B1F1FF34B1F2FF34B1 - F2FF34B1F2FF35B1F2FF35B1F2FF35B1F2FF35B2F2FF35B2F2FF36B2F2FF36B2 - F2FF36B2F2FF36B2F2FF36B2F2FF36B2F2FF37B2F2FF37B2F2FF37B3F2FF37B3 - F2FF37B3F2FF37B3F2FF37B3F2FF38B3F2FF38B3F2FF38B3F2FF38B3F2FF38B3 - F2FF38B3F2FF38B3F2FF38B2F1FF37B2F0FF37B1F0FF36B0EFFF34AEEDFF32AD - EBFF2FAAE9FF2BA6E5FF28A2E0FF249DDCFF1694D3FF469CC2FF778A8DFF5C61 - 61FF4E4E4EFF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF424040E50707075D0000004B000000360000001D0000000A2F3F - 3F01000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000002F3F3F010000 - 00090000001C0D0D0D4B464444ED494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4D4C4CFF5B6060FF7A8A8AFF6BAAC1FF1D95D2FF209A - D9FF239FDEFF26A3E4FF29A7E8FF2BAAEBFF2CABEDFF2EADEEFF2FAFEFFF2FAF - F0FF30AFF0FF30B0F1FF30B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0F1FF32B0 - F1FF32B0F1FF32B1F1FF32B1F1FF32B1F1FF32B1F1FF33B1F1FF33B1F1FF33B1 - F1FF33B1F1FF33B1F1FF33B1F1FF34B1F1FF34B1F1FF34B1F2FF34B1F2FF35B1 - F2FF35B1F2FF35B1F2FF35B1F2FF35B2F2FF35B2F2FF35B2F2FF36B2F2FF36B2 - F2FF36B2F2FF36B2F2FF36B2F2FF36B2F2FF36B1F1FF35B1F0FF34B0F0FF33AF - EEFF31ADECFF2FABEAFF2BA7E7FF28A3E2FF249EDDFF1995D5FF3298C8FF7891 - 95FF5F6565FF4E4E4EFF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF3A3939D003030357000000470000002F000000160000 - 0006000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000050000 - 0015040404313F3D3DD2494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4D4C4CFF5C6161FF7D8D8EFF61A8C5FF1A95D3FF1E9ADAFF22A0 - E0FF24A4E5FF27A7E9FF29AAEBFF2AABEDFF2BADEFFF2CAEEFFF2DAEF0FF2DAF - F1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2FAFF1FF2FB0 - F1FF2FB0F1FF2FB0F1FF2FB0F1FF2FB0F1FF30B0F1FF30B0F1FF30B0F1FF30B0 - F1FF30B0F1FF30B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0 - F1FF32B0F1FF32B0F1FF32B1F1FF32B1F1FF32B1F1FF32B1F1FF33B1F1FF33B1 - F1FF33B1F1FF33B1F1FF33B1F1FF33B1F1FF33B1F1FF33B1F1FF33B0F1FF32B0 - F0FF31AFEFFF30ADEDFF2DABEAFF2AA7E7FF27A4E3FF249FDDFF1A96D7FF2996 - CBFF75939AFF606767FF4E4E4EFF4A4848FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF2E2C2CAE0000005200000041000000270000 - 0010000000030000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000030000000E0000 - 0025302F2FA2494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4C4B4BFF5B5F5FFF7C8D8EFF62AAC6FF1894D3FF1D9ADBFF209FE1FF23A4 - E6FF26A7E9FF28A9EBFF28ABEEFF29ACEFFF29ADF0FF2AADF0FF2AAEF1FF2BAE - F1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2CAEF1FF2CAFF1FF2CAF - F1FF2CAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2EAF - F1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2FAFF1FF2FB0F1FF2FB0 - F1FF2FB0F1FF2FB0F1FF2FB0F1FF2FB0F1FF30B0F1FF30B0F1FF30B0F1FF30B0 - F1FF30B0F1FF30B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0F1FF31B0F1FF31AF - F0FF30AFF0FF2FAEEFFF2EADEDFF2CAAEBFF29A8E8FF26A3E3FF229EDEFF1A97 - D7FF2895CBFF75939AFF5F6565FF4E4E4EFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF1B1B1B860000004E000000390000 - 001F0000000A1211110100000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000012111101000000080000001B1A19 - 1966494747FF494747FF494747FF494747FF494747FF494747FF494747FF4C4B - 4BFF585C5CFF798989FF67ABC4FF1894D3FF1B9ADAFF1E9EE0FF21A3E5FF24A7 - E9FF25A8ECFF27AAEEFF27ABEFFF28ACF0FF28ADF1FF28ADF1FF28ADF1FF28AD - F1FF28ADF1FF28ADF1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29AD - F1FF29ADF1FF2AADF1FF2AAEF1FF2AAEF1FF2AAEF1FF2AAEF1FF2AAEF1FF2BAE - F1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2CAEF1FF2CAF - F1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAF - F1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2EAFF1FF2FAFF1FF2FAFF1FF2EAF - F1FF2EAFF0FF2EAEF0FF2DAEEFFF2CACEDFF2AAAECFF28A7E9FF24A2E4FF219E - DEFF1997D7FF2896CBFF789195FF5C6161FF4C4C4CFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF464444F20A0A0A62000000480000 - 0030000000150000000500000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000400000012090909344543 - 43E6494747FF494747FF494747FF494747FF494747FF494747FF4B4949FF5558 - 58FF748181FF73ADC0FF1793D2FF1A99DAFF1C9EE0FF1FA2E5FF22A6E9FF23A8 - ECFF24A9EEFF25ABEFFF25ABF0FF25ACF1FF26ACF1FF26ACF1FF26ACF1FF27AC - F1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF28AD - F1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28AD - F1FF28ADF1FF28ADF1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29AD - F1FF2AADF1FF2AADF1FF2AAEF1FF2AAEF1FF2AAEF1FF2AAEF1FF2AAEF1FF2BAE - F1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2BAEF1FF2CAEF1FF2CAEF1FF2CAF - F1FF2CAFF1FF2CAEF0FF2BADF0FF2BADEFFF2AABEDFF28AAEBFF26A6E8FF23A2 - E4FF1F9DDEFF1796D6FF3298C8FF768A8DFF595D5DFF4C4B4BFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF373535C8000000510000 - 0040000000240000000D00000002000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000121111010000000A0000001F313030A64947 - 47FF494747FF494747FF494747FF494747FF494747FF4A4848FF525353FF6D78 - 78FF80ACB7FF1F96D1FF1897D9FF1A9DDFFF1CA1E5FF1FA5E9FF21A7ECFF22A9 - EEFF22AAEFFF23AAF0FF23ABF0FF23ABF0FF23ABF0FF24ABF0FF24ABF0FF24AB - F0FF24ABF0FF24ABF0FF24ABF0FF25ABF0FF25ABF0FF25ACF1FF25ACF1FF25AC - F1FF25ACF1FF25ACF1FF26ACF1FF26ACF1FF26ACF1FF26ACF1FF27ACF1FF27AC - F1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF27ACF1FF28AD - F1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF3F83 - A5FF3B8FBAFF2BA9E9FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF29AD - F1FF2AADF1FF29ADF1FF29ADF0FF29ADF0FF29ACEFFF28ABEDFF27A8EBFF24A6 - E8FF21A1E3FF1D9CDDFF1594D5FF469CC2FF728081FF555757FF4A4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF1F1E1E8D0000 - 004C000000350000001900000007000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000040000001417171754484646FC4947 - 47FF494747FF494747FF494747FF494747FF494747FF4F4F4FFF656C6CFF85A5 - AAFF299AD0FF1696D7FF189BDEFF1AA0E4FF1DA4E9FF1EA6EBFF1FA8EDFF20A9 - EEFF20A9EFFF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AA - F0FF22AAF0FF22ABF0FF22ABF0FF22ABF0FF22ABF0FF22ABF0FF23ABF0FF23AB - F0FF23ABF0FF23ABF0FF23ABF0FF23ABF0FF23ABF0FF24ABF0FF24ABF0FF24AB - F0FF24ABF0FF24ABF0FF24ABF0FF24ABF0FF25ABF0FF25ACF1FF25ACF1FF25AC - F1FF25ACF1FF25ACF1FF26ACF1FF26ACF1FF26ACF1FF26ACF1FF2AA3E1FF5658 - 5AFF5B5959FF595D60FF497790FF3596C8FF28ABEEFF27ACF1FF27ACF1FF28AD - F1FF28ADF1FF28ADF1FF28ADF1FF28ADF1FF28ACF0FF27ABEFFF26A9EDFF24A8 - EBFF21A4E7FF1FA0E2FF1B9ADBFF1292D2FF599CB8FF6A7575FF515252FF4948 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF454343EC0707 - 075B00000043000000270000000F000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000010000000B00000021413F3FCC494747FF4947 - 47FF494747FF494747FF494747FF494747FF4C4B4BFF5C6161FF839798FF46A3 - CCFF1494D5FF169ADCFF189EE2FF1BA2E7FF1CA5EAFF1DA7EDFF1DA8EEFF1DA8 - EFFF1FA5E9FF2E3B42FF3E3D3DFF4C4A4AFF535252FF565454FF565454FF5654 - 54FF565454FF565454FF555454FF3B7898FF20A9F0FF20AAF0FF20AAF0FF20AA - F0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF22AA - F0FF22AAF0FF22ABF0FF22ABF0FF22ABF0FF22ABF0FF22ABF0FF23ABF0FF23AB - F0FF23ABF0FF23ABF0FF23ABF0FF23ABF0FF23ABF0FF24ABF0FF3A81A5FF5856 - 56FF595858FF595858FF595858FF5A5858FF546169FF427E9DFF2F9CD4FF25AC - F1FF25ACF1FF25ACF1FF26ACF1FF26ACF1FF25ACF1FF25ABF0FF25AAEFFF24A9 - EDFF22A6EAFF1FA3E6FF1C9EE0FF1999DAFF1892D0FF6F99A7FF616767FF4D4C - 4CFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF2E2D - 2DB00000004D000000360000001A000000070000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000004000000141F1E1E6D494747FF494747FF4947 - 47FF494747FF494747FF494747FF4A4848FF545656FF758282FF6CADC4FF1292 - D2FF1597DAFF169DE1FF18A1E7FF1AA4EAFF1AA6EDFF1BA7EEFF1BA7EFFF1CA8 - F0FF1CA8F0FF2277A2FF343333FF434242FF4F4D4DFF535151FF545353FF5453 - 53FF545353FF545353FF545353FF515253FF249CD9FF1EA9F0FF1EA9F0FF1EA9 - F0FF1EA9F0FF1EA9F0FF1EA9F0FF1EA9F0FF1FA9F0FF1FA9F0FF1FA9F0FF1FA9 - F0FF1FA9F0FF20A9F0FF20A9F0FF20A9F0FF20AAF0FF20AAF0FF20AAF0FF20AA - F0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF21AAF0FF22A9EDFF4D5A61FF5755 - 55FF585656FF585656FF585656FF585656FF585656FF585656FF585757FF4F67 - 73FF3B86ACFF28A3E1FF23ABF0FF23ABF0FF23ABF0FF23AAF0FF23AAEFFF22A9 - EEFF22A7ECFF1FA5E9FF1CA1E5FF1A9CDEFF1696D7FF2A97CBFF768C8FFF585B - 5BFF4A4949FF494747FF494747FF494747FF494747FF494747FF494747FF4846 - 46FA0C0C0C6600000043000000270000000E0000000200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000A05050523454343DF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4E4E4EFF666E6EFF87ABB1FF2097D1FF1395 - D8FF159BDFFF169FE5FF17A3E9FF18A4ECFF19A6EEFF19A6EFFF19A7F0FF1AA7 - F0FF1AA8F0FF1AA6EDFF29414DFF393838FF474646FF504E4EFF525050FF5351 - 51FF535151FF535151FF535151FF535151FF3E6B82FF1BA8F0FF1CA8F0FF1CA8 - F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1DA8F0FF1DA9 - F0FF1DA9F0FF1DA9F0FF1DA9F0FF1DA9F0FF1DA9F0FF1EA9F0FF1EA9F0FF1EA9 - F0FF1EA9F0FF1EA9F0FF1EA9F0FF1EA9F0FF1EA9F0FF2D8DBFFF535151FF5654 - 54FF565454FF565454FF565454FF565454FF575555FF575555FF575555FF5755 - 55FF575555FF565657FF486D81FF358CB8FF23A7EBFF21AAF0FF21AAEFFF21A9 - EFFF20A8EDFF1FA6EBFF1DA3E9FF1A9FE3FF189ADCFF1292D4FF519DBDFF6C77 - 77FF505151FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF353333BF0000004C00000034000000170000000500000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000030000001127252578494747FF494747FF494747FF4947 - 47FF494747FF494747FF4B4949FF595D5DFF819494FF48A4CDFF1192D5FF1398 - DCFF149DE3FF16A1E8FF17A3EBFF17A5EEFF17A6EFFF17A7F0FF17A7F0FF17A7 - F0FF18A7F0FF18A7F0FF1C82B7FF2F2E2EFF3F3D3DFF4B4949FF504E4EFF514F - 4FFF525050FF525050FF525050FF525050FF504E4EFF2690C6FF19A7F0FF19A7 - F0FF1AA8F0FF1AA8F0FF1AA8F0FF1AA8F0FF1AA8F0FF1AA8F0FF1AA8F0FF1BA8 - F0FF1BA8F0FF1BA8F0FF1BA8F0FF1BA8F0FF1BA8F0FF1BA8F0FF1BA8F0FF1CA8 - F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF40667AFF535151FF5452 - 52FF545353FF545353FF545353FF545353FF545353FF555353FF555353FF5553 - 53FF555353FF555353FF555353FF555353FF53575AFF3F728CFF2A8FC2FF1EA9 - EFFF1EA8EEFF1EA7EDFF1DA5EAFF1AA2E6FF189DE1FF1597D9FF1391D0FF7399 - A4FF5E6464FF4C4B4BFF494747FF494747FF494747FF494747FF494747FF4947 - 47FF484646FC0E0E0E6500000040000000230000000B12111101000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000070000001B444242D8494747FF494747FF494747FF4947 - 47FF494747FF494747FF505151FF6D7878FF7CAFBEFF1090D1FF1196DAFF129B - E1FF149FE7FF15A2EAFF15A4EDFF16A5EFFF16A5EFFF16A6F0FF16A6F0FF17A6 - F0FF17A6F0FF17A6F0FF17A6F0FF23495CFF343333FF434141FF4C4A4AFF4F4D - 4DFF504E4EFF504E4EFF504E4EFF504E4EFF504E4EFF435C6AFF18A5EDFF18A7 - F0FF18A7F0FF18A7F0FF18A7F0FF18A7F0FF18A7F0FF18A7F0FF19A7F0FF19A7 - F0FF19A7F0FF19A7F0FF19A7F0FF19A7F0FF19A7F0FF19A7F0FF1AA7F0FF1AA8 - F0FF1AA8F0FF1AA8F0FF1AA8F0FF1AA8F0FF209BDAFF4E4C4CFF535151FF5351 - 51FF535151FF535151FF535151FF535151FF535151FF535151FF535252FF5452 - 52FF545252FF545252FF545252FF545252FF535252FF4F4D4DFF434141FF2E4E - 5EFF1CA7EFFF1CA7EEFF1BA6ECFF1AA3E9FF179FE4FF169ADDFF1294D6FF3699 - C8FF748383FF535555FF494848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF2F2E2EB5000000490000002F0000001300000003000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000010000000D1F1E1E64494747FF494747FF494747FF494747FF4947 - 47FF494747FF4B4A4AFF5C6161FF879D9EFF359ECFFF0F92D6FF1098DDFF119D - E4FF13A0E9FF13A2EBFF14A4EDFF14A5EEFF14A5EFFF14A5EFFF15A6EFFF15A6 - EFFF15A6EFFF15A6EFFF15A6EFFF188DC9FF2A2B2CFF3A3838FF474545FF4D4B - 4BFF4F4D4DFF4F4D4DFF4F4D4DFF4F4D4DFF4F4D4DFF4E4C4CFF2A81AEFF16A6 - F0FF17A6F0FF17A6F0FF17A6F0FF17A6F0FF17A6F0FF17A6F0FF17A6F0FF17A6 - F0FF17A6F0FF17A6F0FF17A7F0FF17A7F0FF17A7F0FF17A7F0FF17A7F0FF18A7 - F0FF18A7F0FF18A7F0FF18A7F0FF18A7F0FF337496FF504E4EFF514F4FFF5250 - 50FF525050FF525050FF525050FF525050FF525050FF525050FF525050FF5250 - 50FF525050FF525050FF525050FF525050FF504E4EFF494747FF3A3939FF246C - 91FF1AA8F0FF1AA7EFFF1AA6EEFF19A4EBFF17A1E7FF159DE1FF1397DAFF0E90 - D2FF699CAEFF616868FF4C4C4CFF494747FF494747FF494747FF494747FF4947 - 47FF494747FF474545F4070707580000003A0000001D00000008000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000400000015413F3FC3494747FF494747FF494747FF494747FF4947 - 47FF494747FF505151FF6F7A7AFF76AFC2FF0E8FD1FF0F95DAFF0F9AE1FF119E - E7FF12A1EAFF12A3EDFF13A4EEFF13A5EFFF13A5EFFF13A5EFFF13A5EFFF13A5 - EFFF13A5EFFF13A5EFFF13A5EFFF14A5EFFF1E5470FF302E2EFF3F3E3EFF4947 - 47FF4D4B4BFF4D4B4BFF4D4B4BFF4D4B4BFF4D4B4BFF4D4B4BFF465258FF189F - E4FF15A6EFFF15A6EFFF15A6EFFF15A6EFFF15A6EFFF15A6EFFF16A6F0FF16A6 - F0FF16A6F0FF16A6F0FF16A6F0FF16A6F0FF16A6F0FF16A6F0FF16A6F0FF17A6 - F0FF17A6F0FF17A6F0FF17A6F0FF18A3EAFF465158FF4F4D4DFF4F4D4DFF4F4D - 4DFF504E4EFF504E4EFF504E4EFF4F4D4DFF4E4C4CFF4E4C4CFF4E4C4CFF504E - 4EFF514F4FFF514F4FFF514F4FFF514F4FFF4D4B4BFF414040FF323334FF1A9B - DDFF19A7F0FF18A6EFFF18A6EEFF17A5EDFF17A2E9FF159EE5FF1399DFFF1093 - D6FF2F98CAFF758587FF535555FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF2423239900000044000000280000000E000000020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000815141439494747FF494747FF494747FF494747FF494747FF4947 - 47FF4B4949FF5B5F5FFF869D9DFF389FCFFF0D92D6FF0E98DEFF0F9CE4FF10A0 - E8FF10A2ECFF11A3EDFF11A3EEFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF12A4 - EFFF12A4EFFF12A4EFFF12A4EFFF12A4EFFF1398DBFF26292BFF353434FF4342 - 42FF4B4949FF4D4B4BFF4D4B4BFF4D4B4BFF4D4B4BFF4D4B4BFF4C4A4AFF3073 - 95FF13A5EFFF13A5EFFF13A5EFFF13A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5 - EFFF14A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5EFFF15A6EFFF15A6 - EFFF15A6EFFF15A6EFFF15A6EFFF2684B4FF4B4A4AFF4E4C4CFF4E4C4CFF4F4D - 4DFF4F4D4DFF4F4D4DFF4E4C4CFF4B4A4AFF474545FF444242FF454343FF4948 - 48FF4D4B4BFF4E4C4CFF4F4D4DFF4E4C4CFF484646FF393838FF25536BFF17A6 - F0FF17A6F0FF17A6F0FF17A5EFFF16A4EEFF16A3EBFF14A0E8FF129BE2FF1096 - DAFF0E90D1FF6C9DADFF606767FF4C4B4BFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF413F3FDD0000004C0000003400000017000000050000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00010000000D2F2E2E93494747FF494747FF494747FF494747FF494747FF4947 - 47FF4F4F4FFF6B7676FF7FB1BFFF0D8FD1FF0E94D9FF0E99E1FF0F9DE7FF0FA0 - EAFF10A2EDFF10A3EEFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF11A4 - EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF196187FF2C2B2BFF3B3A - 3AFF464444FF4B4949FF4B4949FF4B4949FF4B4949FF4B4949FF4B4949FF474A - 4CFF1998D9FF12A4EFFF12A4EFFF12A4EFFF12A4EFFF12A4EFFF12A4EFFF13A5 - EFFF13A5EFFF13A5EFFF13A5EFFF13A5EFFF13A5EFFF13A5EFFF13A5EFFF13A5 - EFFF13A5EFFF13A5EFFF13A5EFFF3A5D6FFF4C4A4AFF4D4B4BFF4D4B4BFF4D4B - 4BFF4D4B4BFF4D4B4BFF4C4A4AFF454343FF3B3939FF343232FF353434FF3B3A - 3AFF413F3FFF464444FF4A4848FF494747FF403F3FFF313030FF1A81B6FF15A6 - EFFF15A6EFFF15A6EFFF15A6EFFF15A5EEFF14A3ECFF13A1E9FF119DE4FF0F98 - DDFF0E92D6FF379AC8FF738081FF515252FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF1211116A00000040000000230000000B1211 - 1101000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000300000014464444E1494747FF494747FF494747FF494747FF494747FF4A48 - 48FF575A5AFF819393FF46A4CEFF0C91D5FF0D96DDFF0D9BE4FF0F9FE8FF0FA1 - ECFF0FA2EDFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF10A4EFFF10A4 - EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF109DE5FF222F36FF3231 - 31FF403F3FFF484646FF4A4848FF4A4848FF4A4848FF4A4848FF4A4848FF4A48 - 48FF34667FFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4 - EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF11A4EFFF12A4 - EFFF12A4EFFF12A4EFFF1A94D3FF484646FF4C4A4AFF4C4A4AFF4C4A4AFF4C4A - 4AFF4C4A4AFF4C4A4AFF484747FF3E3D3DFF2F2E2EFF252424FF242323FF2928 - 28FF302E2EFF363535FF3D3B3BFF3E3C3CFF363535FF273841FF14A5EFFF14A5 - EFFF14A5EFFF14A5EFFF13A5EFFF13A4EEFF12A3EDFF12A1EAFF109EE6FF0F9A - E0FF0E94D9FF0E8FD0FF7499A3FF5C6161FF4A4949FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF2E2D2DB20000004900000030000000140000 - 0004000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00061C1B1B44494747FF494747FF494747FF494747FF494747FF494747FF4C4B - 4BFF636B6BFF8AADB4FF1692D0FF0D93D8FF0D98E0FF0D9DE6FF0E9FEAFF0EA1 - EDFF0FA2EEFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF156D99FF2827 - 27FF393737FF444242FF494747FF4A4848FF4A4848FF4A4848FF4A4848FF4A48 - 48FF484646FF1C8DC6FF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4 - EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4EFFF10A4 - EFFF10A4EFFF11A4EFFF2C6E90FF494747FF4B4949FF4B4949FF4B4949FF4B49 - 49FF4B4949FF4A4848FF444242FF363434FF224558FF185A7BFF1A252AFF1D1D - 1DFF212020FF252525FF2B2A2AFF2D2B2BFF282828FF1A678EFF12A4EFFF12A4 - EFFF12A4EFFF12A4EFFF12A4EFFF12A4EFFF11A3EDFF10A1EBFF109FE8FF0E9B - E3FF0E96DCFF0C91D4FF4D9DBFFF6A7474FF4E4E4EFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF474545F4050505550000003C0000001F0000 - 0009000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000A302F2F91494747FF494747FF494747FF494747FF494747FF494747FF5152 - 52FF738080FF69ADC7FF0C90D3FF0D95DBFF0D9AE3FF0E9EE8FF0EA0EBFF0EA2 - EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0FA3EFFF0FA3EFFF0FA0EBFF1E35 - 40FF2F2E2EFF3F3D3DFF474545FF4A4848FF4A4848FF4A4848FF4A4848FF4A48 - 48FF494747FF3B5767FF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF10A4EFFF11A0E9FF404A50FF494747FF4A4848FF4A4848FF4A4848FF4A48 - 48FF4A4848FF474646FF3F3D3DFF2F2E2EFF167BAFFF10A4EFFF109FE8FF1374 - A4FF17394AFF1B1A1AFF1D1D1DFF1F1E1EFF1E2123FF1299DEFF11A4EFFF11A4 - EFFF11A4EFFF11A4EFFF10A4EFFF10A4EFFF10A3EEFF0FA2EDFF0F9FE9FF0E9C - E6FF0D98DFFF0C93D7FF2195CEFF788C8EFF545656FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF24232399000000460000002B0000 - 0011000000030000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000010000 - 000E454343CE494747FF494747FF494747FF494747FF494747FF4A4848FF585C - 5CFF85999AFF3BA1D0FF0C92D6FF0D97DEFF0D9CE5FF0E9FE9FF0EA1ECFF0EA2 - EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF127A - B0FF262424FF363434FF434141FF484646FF494747FF494747FF494747FF4947 - 47FF494747FF484646FF237FAEFF0EA3EFFF0EA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF2080B2FF474545FF4A4848FF4A4848FF4A4848FF4A4848FF4A48 - 48FF494747FF454343FF393737FF26333AFF0FA1EBFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF118BC9FF155272FF182025FF154761FF10A4EFFF10A4EFFF10A4 - EFFF10A4EFFF10A4EFFF10A4EFFF0FA3EFFF0FA3EEFF0FA2EDFF0EA0EBFF0E9E - E7FF0D99E1FF0D95DAFF0C8FD1FF709DABFF5E6363FF4B4949FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF424141E20000004E000000370000 - 001B000000070000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000030E0D - 0D21494747FF494747FF494747FF494747FF494747FF494747FF4C4A4AFF636A - 6AFF8DAFB4FF1592D0FF0D94D8FF0D99E0FF0D9DE6FF0EA0EAFF0EA2EDFF0EA2 - EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF1B4053FF2D2C2CFF3C3A3AFF454343FF484646FF494747FF494747FF4947 - 47FF494747FF484646FF404D54FF109EE6FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0FA3EFFF345D72FF494747FF4A4848FF4A4848FF4A4848FF4A4848FF4A48 - 48FF484646FF413F3FFF323030FF1A5D7FFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0FA3EFFF0F9EE8FF0F96DAFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0EA2EEFF0EA1ECFF0E9F - E8FF0D9BE4FF0D96DCFF0C91D4FF4E9DBFFF6A7474FF4D4D4DFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF1A19197E000000430000 - 00270000000E1211110200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000042120 - 205A494747FF494747FF494747FF494747FF494747FF494747FF4F4F4FFF6F7B - 7BFF72B0C4FF0C8FD2FF0D95DBFF0D9AE3FF0E9EE8FF0EA0EBFF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF1089C7FF242323FF343333FF413F3FFF474545FF494747FF494747FF4947 - 47FF494747FF494747FF484646FF297298FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF1496D8FF444242FF484646FF494747FF494747FF494747FF494747FF4947 - 47FF454343FF3B3939FF2A2828FF118ECEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1EDFF0E9F - E9FF0D9CE6FF0D98DFFF0C92D7FF2897CDFF778788FF525353FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF383636C70000004C0000 - 0033000000170000000500000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000072F2E - 2E8E494747FF494747FF494747FF494747FF494747FF494747FF545656FF7D8E - 8EFF4FA8CEFF0C91D5FF0D97DDFF0D9BE4FF0E9FE9FF0EA1ECFF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF19506CFF2B2A2AFF3B3939FF454343FF484646FF494747FF4947 - 47FF494747FF494747FF494747FF444749FF1398DCFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF286F94FF474545FF494747FF494747FF494747FF494747FF494747FF4846 - 46FF424040FF343333FF1F3F50FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EDFF0EA0 - EBFF0D9DE7FF0D99E1FF0D94D9FF0F8FD0FF78989FFF595C5CFF494848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF484646FC0E0E0E650000 - 003F000000220000000B12111101000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000094442 - 42BA494747FF494747FF494747FF494747FF494747FF4A4848FF5B5F5FFF8BA1 - A2FF2D9CD0FF0C92D7FF0D98DFFF0D9CE6FF0E9FEAFF0EA1EDFF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0F94D7FF222628FF323131FF403E3EFF474545FF494747FF4947 - 47FF494747FF494747FF494747FF484646FF316580FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - ECFF3D4C54FF484646FF494747FF494747FF494747FF494747FF494747FF4644 - 44FF3D3C3CFF2E2D2DFF16709EFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA0 - EBFF0E9EE8FF0D9AE3FF0D95DBFF0C90D3FF679EB2FF616767FF4B4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF2D2B2BAF0000 - 00490000002F0000001300000004000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000000000B4745 - 45E2494747FF494747FF494747FF494747FF494747FF4B4A4AFF626969FF8FAF - B3FF1491D0FF0D94D9FF0D99E0FF0D9DE7FF0EA0EBFF0EA2EDFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF165E83FF292828FF393838FF444242FF484646FF4947 - 47FF494747FF494747FF494747FF494747FF474545FF198DC9FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1C86 - BDFF454343FF494747FF494747FF494747FF494747FF494747FF484646FF4442 - 42FF383737FF262C30FF0E9CE5FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1 - ECFF0E9FE9FF0D9BE4FF0D96DCFF0C91D5FF4E9DBFFF697272FF4C4C4CFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF464444F20505 - 05550000003B0000001E00000009000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F010E0D0D184947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4C4CFF697272FF85B3 - BEFF0C8ED1FF0D95DAFF0D9AE2FF0E9EE7FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0E9AE1FF202B31FF302F2FFF3F3D3DFF474545FF4947 - 47FF494747FF494747FF494747FF494747FF484646FF395869FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF3160 - 79FF474545FF494747FF494747FF494747FF494747FF494747FF474545FF403F - 3FFF323131FF1B536FFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1 - EDFF0E9FE9FF0D9CE5FF0D97DEFF0C92D6FF3B9BC8FF717E7EFF4F4F4FFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF2322 - 2297000000460000002A00000010000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F011F1E1E374947 - 47FF494747FF494747FF494747FF494747FF494747FF4F4F4FFF707D7DFF71B0 - C6FF0C90D3FF0D95DBFF0D9AE3FF0E9EE8FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF146A96FF282626FF383636FF434242FF4846 - 46FF494747FF494747FF494747FF494747FF494747FF474545FF2180B0FF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF119AE1FF4245 - 47FF484646FF494747FF494747FF494747FF494747FF494747FF464444FF3C3A - 3AFF2B2A2AFF1284BEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EDFF0E9FEAFF0D9DE6FF0D98DFFF0D93D7FF2898CEFF78898AFF525353FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF413F - 3FDD0000004E000000370000001A000000070000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01222121514947 - 47FF494747FF494747FF494747FF494747FF494747FF515252FF788686FF5FAD - CCFF0C90D4FF0D97DDFF0D9BE4FF0E9FE9FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA0EBFF1E323DFF2F2E2EFF3E3C3CFF4644 - 44FF494747FF494747FF494747FF494747FF494747FF484646FF404E56FF0F9F - E9FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF2378A4FF4644 - 44FF494747FF494747FF494747FF494747FF494747FF484646FF434141FF3634 - 34FF223844FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EDFF0EA0EBFF0D9DE7FF0D99E0FF0D94D9FF1792CFFF7B9295FF555858FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1817177800000043000000260000000D1211110100000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01232222674947 - 47FF494747FF494747FF494747FF494747FF494747FF545656FF7E8F8FFF4FA9 - CFFF0C91D6FF0D97DEFF0D9CE4FF0E9FE9FF0EA1EDFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1278ADFF262525FF363434FF4240 - 40FF484646FF494747FF494747FF494747FF494747FF494747FF484646FF2874 - 9BFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF375463FF4846 - 46FF494747FF494747FF494747FF494747FF494747FF474545FF3E3D3DFF2F2E - 2EFF17668EFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA0EBFF0D9EE7FF0D9AE1FF0D94DAFF0E8FD0FF7A99A0FF585C5CFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF373636C40000004C00000033000000170000000500000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F012423237E4947 - 47FF494747FF494747FF494747FF494747FF494747FF565959FF849696FF43A5 - D1FF0C92D6FF0D97DEFF0D9CE5FF0E9FEAFF0EA1EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1B4053FF2D2C2CFF3C3B - 3BFF464444FF484646FF494747FF494747FF494747FF494747FF494747FF4349 - 4CFF1399DEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1592D2FF444242FF4846 - 46FF494747FF494747FF494747FF494747FF484646FF444343FF393838FF2829 - 2AFF0F96DBFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA0EBFF0E9EE8FF0D9AE2FF0D95DAFF0C8ED1FF769DA8FF5C6060FF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF484646FC0B0B0B620000003F000000220000000B12111101000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323854947 - 47FF494747FF494747FF494747FF494747FF494747FF585B5BFF889C9CFF38A0 - D0FF0C92D7FF0D98DFFF0D9CE6FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1187C3FF242323FF3433 - 33FF413F3FFF484646FF494747FF494747FF494747FF494747FF494747FF4846 - 46FF306783FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF276E93FF464444FF4947 - 47FF494747FF494747FF494747FF494747FF484646FF413F3FFF333232FF1E49 - 5FFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE2FF0D95DBFF0C8FD2FF6F9EADFF5E6363FF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF2C2B2BAC000000480000002E0000001300000003000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323854947 - 47FF494747FF494747FF494747FF494747FF494747FF5A5D5DFF8BA0A0FF329E - D1FF0C92D7FF0D98DFFF0D9DE6FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF194E69FF2B2A - 2AFF3B3939FF454343FF484646FF494747FF494747FF494747FF494747FF4947 - 47FF474545FF188FCBFF0EA3EFFF0EA3EFFF0EA3EFFF3A4D58FF484646FF4947 - 47FF494747FF494747FF494747FF494747FF464444FF3D3B3BFF2D2B2BFF137A - AEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE3FF0D95DBFF0C8FD2FF6B9FB1FF5F6565FF4A49 - 49FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF464444EF050505550000003A0000001D00000008000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323844947 - 47FF494747FF494747FF494747FF494747FF4A4848FF5A5E5EFF8CA2A2FF309D - D0FF0C92D7FF0D98DFFF0D9DE6FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0F92D4FF2226 - 28FF323131FF403F3FFF474545FF494747FF494747FF494747FF494747FF4947 - 47FF484646FF385A6BFF0EA3EFFF0EA3EFFF1594D6FF444242FF484646FF4947 - 47FF494747FF494747FF494747FF484646FF444242FF373535FF243138FF0EA1 - EBFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE3FF0D95DBFF0C8FD2FF6B9FB2FF606767FF4A49 - 49FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF1F1E1E91000000450000002A00000010000000020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323844947 - 47FF494747FF494747FF494747FF494747FF4A4848FF5A5E5EFF8CA1A1FF319D - D0FF0C92D7FF0D98DFFF0D9DE6FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF165C - 7FFF2A2828FF393838FF444242FF484646FF494747FF494747FF494747FF4947 - 47FF494747FF474545FF2182B3FF0EA3EFFF2677A0FF464444FF494747FF4947 - 47FF494747FF494747FF494747FF474545FF403E3EFF312F2FFF195C7EFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE3FF0D95DBFF0C8FD2FF6B9FB2FF606767FF4A49 - 49FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF403E3EDA0000004E000000360000001A000000070000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323844947 - 47FF494747FF494747FF494747FF494747FF494747FF5A5D5DFF8B9F9FFF349F - D1FF0C92D7FF0D98DFFF0D9DE6FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0E9A - E1FF20292DFF312F2FFF3F3D3DFF474545FF494747FF494747FF494747FF4947 - 47FF494747FF484646FF40535DFF0FA0E9FF395D6FFF484646FF494747FF4947 - 47FF494747FF494747FF494747FF454343FF3B3939FF2A2828FF108ECEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE3FF0D95DBFF0C8FD2FF6E9FB0FF5F6565FF4A49 - 49FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF1616167600000042000000260000000D1211 - 1101000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000007F7F7F01242323834947 - 47FF494747FF494747FF494747FF494747FF494747FF585B5BFF879B9BFF3EA3 - D1FF0C92D6FF0D98DFFF0D9CE5FF0E9FEAFF0EA2EDFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF156893FF282626FF383636FF434242FF484646FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF2C7398FF484849FF494747FF494747FF4947 - 47FF494747FF494747FF484646FF424040FF343333FF1F3F50FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA1ECFF0E9EE8FF0D9AE2FF0D95DBFF0C8ED1FF739FACFF5D6363FF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF353333C20000004B00000032000000160000 - 0005000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000002423237B4947 - 47FF494747FF494747FF494747FF494747FF494747FF565858FF839595FF49A7 - D0FF0C92D6FF0D97DEFF0D9CE5FF0E9FE9FF0EA1EDFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA0EBFF1E323DFF2F2E2EFF3E3C3CFF464444FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF464444FF3D3C3CFF2E2D2DFF16709EFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EEFF0EA0EBFF0E9EE7FF0D9AE1FF0D95DAFF0D8ED1FF7A9EA6FF5B6060FF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF484646FA0B0B0B620000003E000000210000 - 000A121111010000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000242323644947 - 47FF494747FF494747FF494747FF494747FF494747FF535555FF7D8E8EFF57AC - CFFF0C91D5FF0D97DDFF0D9CE4FF0E9FE9FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF1577AAFF2B2A2AFF3D3C3CFF4C4A4AFF525050FF545252FF5553 - 53FF565454FF565454FF575555FF565454FF555454FF555353FF545252FF5250 - 50FF514F4FFF4D4C4CFF474545FF393737FF262C30FF0E9CE5FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EDFF0EA0EBFF0D9EE7FF0D99E1FF0D94D9FF1291D0FF7D999EFF585C5CFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF2A2929A7000000480000002E0000 - 0012000000030000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000002322224C4947 - 47FF494747FF494747FF494747FF494747FF494747FF515252FF778585FF69B0 - CBFF0C90D4FF0D96DCFF0D9BE3FF0E9EE8FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0FA3EFFF15A5EFFF1CA8 - F0FF20AAF0FF23ABF0FF304F5FFF403F3FFF4E4C4CFF575555FF595757FF5957 - 57FF595757FF595757FF595757FF595757FF595757FF595757FF595757FF5957 - 57FF595757FF585656FF525050FF434242FF2B5E79FF18A6EFFF12A4EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2 - EDFF0EA0EAFF0D9DE6FF0D98E0FF0D93D8FF1F95CFFF7D9293FF555757FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF464444EF030303520000003A0000 - 001D000000080000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000222121334947 - 47FF494747FF494747FF494747FF494747FF494747FF4F4E4EFF6F7B7BFF7DB5 - C5FF0C8FD2FF0D95DBFF0D9AE2FF0E9EE8FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF15A5EFFF1FA9F0FF26ACF0FF28ACF1FF28AC - F1FF28ACF1FF28ACF1FF2A92C7FF3C3B3BFF4A4949FF565454FF5C5A5AFF5D5B - 5BFF5D5B5BFF5D5B5BFF5D5B5BFF5D5B5BFF5D5B5BFF5D5B5BFF5D5B5BFF5D5B - 5BFF5D5B5BFF5A5858FF514F4FFF424141FF2B91C5FF28ACF1FF28ACF1FF23AB - F0FF1AA7EFFF11A4EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - EDFF0E9FEAFF0D9CE6FF0D98DFFF0C92D7FF339BCDFF778787FF515353FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF1E1D1D8C000000450000 - 00290000000F0000000200000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000001010100F4947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4B4BFF677171FF8EB6 - BEFF0E8FD1FF0D94DAFF0D99E1FF0D9EE7FF0EA0EBFF0EA2EDFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0FA3EFFF1AA7EFFF27ACF0FF2CAEF1FF2CAEF1FF2CAEF1FF2CAEF1FF2CAE - F1FF2CAEF1FF2CAEF1FF2CAEF1FF366279FF464545FF545252FF5C5B5BFF5F5D - 5DFF605E5EFF605E5EFF605E5EFF605E5EFF605E5EFF605E5EFF605E5EFF605E - 5EFF5F5D5DFF5A5959FF4F4E4EFF3E515BFF2CAEF1FF2CAEF1FF2CAEF1FF2CAE - F1FF2CAEF1FF2AAEF1FF21AAF0FF14A5EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1 - ECFF0E9FE9FF0D9CE5FF0D97DDFF0C91D6FF459FC6FF707C7CFF4F4F4FFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF3F3D3DD70000004D0000 - 0036000000190000000600000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000014846 - 46E8494747FF494747FF494747FF494747FF494747FF4B4949FF606767FF93AF - B1FF1F95D0FF0D93D8FF0D98E0FF0D9DE6FF0EA0EAFF0EA2EDFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF19A7 - EFFF2AADF0FF30B0F1FF30B0F1FF30B0F1FF30B0F1FF30B0F1FF30B0F1FF30B0 - F1FF30B0F1FF30B0F1FF30B0F1FF319FD7FF414547FF4F4E4EFF5B5A5AFF615F - 5FFF626161FF626161FF626161FF626161FF626161FF626161FF626161FF6261 - 61FF615F5FFF5A5858FF4D4B4BFF387B9EFF30B0F1FF30B0F1FF30B0F1FF30B0 - F1FF30B0F1FF30B0F1FF30B0F1FF2EAFF1FF23AAF0FF12A4EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1 - ECFF0E9EE8FF0D9BE3FF0D96DCFF0C90D4FF5DA1BCFF677070FF4C4B4BFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF141414720000 - 0041000000250000000D12111101000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000004745 - 45B9494747FF494747FF494747FF494747FF494747FF494848FF595D5DFF899E - 9EFF3EA3D0FF0C92D6FF0D97DEFF0D9CE5FF0E9FE9FF0EA1ECFF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF13A5EFFF29ADF1FF35B1 - F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF35B1 - F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF3C7491FF4C4B4BFF595858FF6261 - 61FF666464FF666464FF666464FF666464FF666464FF666464FF666464FF6664 - 64FF626161FF595858FF4B4C4CFF36A7E1FF35B1F2FF35B1F2FF35B1F2FF35B1 - F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF35B1F2FF31B0F1FF1DA9F0FF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EDFF0EA0 - EBFF0D9EE7FF0D9AE2FF0D95DAFF0C8FD1FF75A1AEFF5F6565FF4A4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF343232BD0000 - 004B000000320000001600000005000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000003534 - 348D494747FF494747FF494747FF494747FF494747FF494747FF535555FF7B8B - 8BFF63B0CDFF0C90D4FF0D96DCFF0D9BE3FF0E9EE8FF0EA1ECFF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1BA8F0FF35B2F1FF39B3F2FF39B3 - F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3 - F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39ACE7FF484F53FF565555FF6261 - 61FF686666FF696868FF696868FF696868FF696868FF696868FF696868FF6967 - 67FF636161FF585656FF46697BFF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3 - F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF39B3F2FF29AD - F1FF11A4EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA2EDFF0EA0 - EAFF0D9DE6FF0D98E0FF0D93D8FF1A93CFFF7F9799FF585B5BFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF484646FA0A0A - 0A5F0000003D000000210000000A000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000002322 - 2252494747FF494747FF494747FF494747FF494747FF494747FF4E4E4EFF6D78 - 78FF88B8C3FF0C8FD1FF0D95DAFF0D99E1FF0D9EE7FF0EA0EBFF0EA2EDFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF22ABF0FF3CB4F2FF3DB5F2FF3DB5F2FF3DB5 - F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5 - F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF4485A6FF565555FF6462 - 62FF6B6969FF6D6B6BFF6D6B6BFF6D6B6BFF6D6B6BFF6D6B6BFF6D6B6BFF6B69 - 69FF636262FF565555FF4294BEFF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5 - F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5F2FF3DB5 - F2FF33B1F1FF13A5EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1ECFF0E9F - E9FF0D9CE5FF0D97DEFF0C92D6FF3D9ECAFF768484FF515252FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF2827 - 27A4000000470000002D00000012000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001111 - 1111494747FF494747FF494747FF494747FF494747FF494747FF4B4A4AFF6167 - 67FF92AEB0FF2799D0FF0C93D7FF0D98DFFF0D9CE6FF0E9FEAFF0EA1EDFF0EA2 - EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF25ACF0FF41B6F2FF42B7F2FF42B7F2FF42B7F2FF42B7 - F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7 - F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF43B3EDFF58676FFF6866 - 66FF6E6D6DFF716F6FFF716F6FFF716F6FFF716F6FFF716F6FFF706E6EFF6C6B - 6BFF636161FF545E64FF42B5F0FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7 - F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7F2FF42B7 - F2FF42B7F2FF39B3F2FF13A5EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EDFF0EA0EBFF0E9E - E8FF0D9AE3FF0D95DBFF0C90D3FF65A4BCFF687070FF4D4C4CFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4543 - 43EC03030352000000390000001C000000080000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000484646D0494747FF494747FF494747FF494747FF494747FF494848FF575A - 5AFF829595FF54ABD0FF0C91D4FF0D96DCFF0D9BE4FF0E9FE8FF0EA1ECFF0EA2 - EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF22AAF0FF45B8F2FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8 - F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8 - F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF519BC1FF6D6C - 6CFF737272FF747373FF747373FF747373FF747373FF747373FF737171FF6D6C - 6CFF616161FF50839DFF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8 - F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8F3FF47B8 - F3FF47B8F3FF47B8F3FF39B3F1FF11A4EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA2EDFF0EA0EAFF0D9D - E6FF0D99E0FF0D94D9FF1291D0FF7E9EA5FF5C6161FF4A4949FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1D1C1C8900000044000000290000000F0000000200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000036343488494747FF494747FF494747FF494747FF494747FF494747FF5050 - 50FF707C7CFF82B7C5FF0C8FD1FF0D95DAFF0D99E1FF0D9DE7FF0EA0EAFF0EA2 - EDFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF17A6EFFF47B8F2FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBA - F3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBA - F3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF50B2E4FF7472 - 72FF777676FF787676FF787676FF787676FF787676FF787676FF757474FF6E6C - 6CFF616060FF4EA9D8FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBA - F3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBAF3FF4CBA - F3FF4CBAF3FF4CBAF3FF4CBAF3FF31B0F1FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1ECFF0E9FE9FF0D9C - E5FF0D97DEFF0C92D6FF379DCCFF798889FF535555FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF3D3C3CD20000004D00000035000000190000000600000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00002322223D494747FF494747FF494747FF494747FF494747FF494747FF4C4A - 4AFF616767FF92ADAEFF2D9CD0FF0C92D7FF0D97DEFF0D9CE5FF0E9FE9FF0EA1 - ECFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF3DB5F2FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BC - F3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BC - F3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF619CBBFF7978 - 78FF7C7B7BFF7C7B7BFF7C7B7BFF7C7B7BFF7C7B7BFF7B7A7AFF777676FF6D6C - 6CFF5E7581FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BC - F3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BCF3FF51BC - F3FF51BCF3FF51BCF3FF51BCF3FF50BCF3FF1DA9F0FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA2EDFF0EA0EBFF0D9EE7FF0D9A - E2FF0D95DBFF0C8FD2FF6AA5BAFF677171FF4D4D4DFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF1413137000000041000000240000000C00000001000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000484646E3494747FF494747FF494747FF494747FF494747FF4948 - 48FF555858FF7D8D8DFF68B2CDFF0C90D3FF0D95DBFF0D9AE2FF0E9EE8FF0EA0 - EBFF0EA2EDFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF20AA - F0FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BE - F4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BE - F4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF728995FF7F7D - 7DFF807E7EFF807E7EFF807E7EFF807E7EFF807E7EFF7E7D7DFF787777FF6D6C - 6CFF5C9AB9FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BE - F4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF57BE - F4FF57BEF4FF57BEF4FF57BEF4FF57BEF4FF45B7F2FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1ECFF0E9FE9FF0D9CE6FF0D98 - DFFF0C93D7FF1F95CFFF80999CFF595D5DFF4A4848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF333131BA0000004A000000310000001500000004000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000003635358C494747FF494747FF494747FF494747FF494747FF4947 - 47FF4E4E4EFF687171FF93B6BBFF1B94D0FF0C93D8FF0D98DFFF0D9CE6FF0E9F - E9FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF44B8 - F2FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0 - F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0 - F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5FB8E7FF807F7FFF8382 - 82FF848282FF848282FF848282FF848282FF838282FF807F7FFF787878FF6C6F - 71FF5CBCEDFF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0 - F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0 - F4FF5CC0F4FF5CC0F4FF5CC0F4FF5CC0F4FF5BC0F4FF1EA9F0FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA2EDFF0EA0EBFF0E9EE8FF0D9AE3FF0D96 - DCFF0C90D3FF57A4C3FF707C7CFF505151FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF484646FA0909095C0000003D000000200000000A000000000000 - 0000000000000000000000000001000000000000000000000000000000000000 - 00000000000023222228494747FF494747FF494747FF494747FF494747FF4947 - 47FF4A4848FF595C5CFF839696FF5BAECFFF0C90D4FF0D96DCFF0D9AE3FF0E9E - E8FF0EA0EBFF0EA2EDFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF14A5EFFF5DC1 - F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2 - F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2 - F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF6FA8C5FF868484FF8887 - 87FF888787FF888787FF888787FF888787FF878686FF828181FF797878FF6A8E - A1FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2 - F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2 - F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF61C2F4FF3AB3F2FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1ECFF0E9FE9FF0D9CE6FF0D98DFFF0C93 - D8FF1893D0FF809FA6FF5E6363FF4B4A4AFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF272626A1000000470000002C00000012000000030000 - 0000000000000000000000000002000000000000000000000000000000000000 - 00000000000000000000484646C0494747FF494747FF494747FF494747FF4947 - 47FF494747FF4F4F4FFF6B7676FF90B8BEFF1692D0FF0C93D8FF0D98DFFF0D9C - E5FF0E9FE9FF0EA1ECFF0EA2EEFF0EA2EEFF0EA3EFFF0EA3EFFF25ACF0FF66C4 - F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4 - F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4 - F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF7F98A5FF8B8A8AFF8C8A - 8AFF8C8A8AFF8C8A8AFF8C8A8AFF8C8A8AFF8A8888FF838282FF797878FF69AF - D3FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4 - F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4 - F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF66C4F5FF52BCF3FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA2EEFF0EA2EDFF0EA0EBFF0D9EE7FF0D9AE2FF0D96DBFF0C90 - D3FF50A2C5FF738080FF525353FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF444242E70000004F000000390000001C000000070000 - 0000000000000000000000000003000000000000000000000000000000000000 - 0000000000000000000024232350494747FF494747FF494747FF494747FF4947 - 47FF494747FF4B4949FF595D5DFF849797FF60B0CFFF0C90D3FF0D95DBFF0D9A - E2FF0D9DE7FF0EA0EAFF0EA1EDFF0EA2EEFF0EA3EFFF0EA3EFFF34B1F1FF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6EC2EDFF8E8F8FFF8F8E8EFF908F - 8FFF908F8FFF908F8FFF908F8FFF8F8E8EFF8C8B8BFF848383FF78848BFF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6 - F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF6CC6F5FF63C3F4FF0EA3EFFF0EA3 - EFFF0EA2EEFF0EA2EDFF0EA1ECFF0E9FE9FF0D9CE5FF0D98DFFF0C93D7FF1A94 - CFFF82A0A5FF5F6464FF4C4B4BFF494747FF494747FF494747FF4A4848FF4B49 - 49FF4B4A4AFF4B4A4AFF4B4A4AFF4B4A4AFF4B4A4AFF4B4A4AFF4B4A4AFF4B4A - 4AFF4B4A4AFF4B4A4AFF4B4A4AFF4A4949FF4A4848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF1C1B1B8600000044000000280000000E0000 - 0002000000000000000000000002000000000000000000000000000000000000 - 0000000000000000000011101004484646DB494747FF494747FF494747FF4947 - 47FF494747FF494747FF4F4F4FFF697272FF92B5B9FF2297D0FF0C92D6FF0D97 - DEFF0D9BE4FF0E9FE8FF0EA0EBFF0EA2EDFF0EA2EEFF0EA3EFFF3EB5F2FF71C9 - F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9 - F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF78B7D7FF7DB3CFFF7EB5D1FF7EB5 - D1FF7EB5D1FF7EB5D1FF7EB5D1FF7EB5D1FF85AABDFF949393FF949393FF9493 - 93FF949393FF949393FF949393FF939292FF8E8D8DFF858484FF77A5BDFF71C9 - F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9 - F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9 - F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF71C9F6FF70C9F5FF0EA3EFFF0EA3 - EFFF0EA2EEFF0EA1EDFF0E9FEAFF0D9DE7FF0D99E1FF0D95DAFF0C8FD2FF5FA6 - C2FF717C7CFF515252FF494747FF494747FF4A4848FF4E4D4DFF545656FF5A5D - 5DFF5C6161FF5C6161FF5C6161FF5C6161FF5C6161FF5C6161FF5C6161FF5C61 - 61FF5C6161FF5C6161FF5B6060FF585C5CFF525353FF4C4B4BFF494747FF4947 - 47FF494747FF494747FF494747FF3D3B3BCF0000004D00000035000000180000 - 0005000000000000000000000002000000000000000000000000000000000000 - 000000000000000000000000000047454560494747FF494747FF494747FF4947 - 47FF494747FF494747FF4A4848FF575A5AFF7D8D8DFF75B6CCFF0C8FD1FF0D94 - D9FF0D99E0FF0D9CE6FF0E9FE9FF0EA1ECFF0EA2EDFF0EA2EEFF3EB5F2FF77CB - F6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CB - F6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF889CA7FF949393FF989797FF9997 - 97FF999797FF999797FF999797FF999797FF999797FF999797FF999797FF9997 - 97FF999797FF999797FF989797FF969595FF908F8FFF868787FF78C3E9FF77CB - F6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CB - F6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CB - F6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF77CBF6FF73C9F5FF0EA3EFFF0EA2 - EEFF0EA1EDFF0EA0EBFF0E9EE8FF0D9BE3FF0D96DDFF0C91D6FF2C9ACDFF8098 - 9AFF5B6060FF4B4A4AFF494747FF494747FF4C4B4BFF50626AFF6699AFFF75A4 - B8FF79A8BBFF79A9BCFF79A9BCFF79A9BCFF79A9BCFF79A9BCFF79A9BCFF79A9 - BCFF79A9BCFF79A9BCFF78A7BAFF759EAFFF6A6F6FFF515252FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF1312126D00000040000000240000 - 000C000000010000000000000002000000000000000000000000000000000000 - 000000000000000000000000000048464604494747DB494747FF494747FF4947 - 47FF494747FF494747FF494747FF4D4C4CFF626969FF90A8A9FF46A6D0FF0C90 - D4FF0D96DBFF0D9AE2FF0D9EE7FF0EA0EAFF0EA1EDFF0EA2EEFF34B1F1FF7DCD - F6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCD - F6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF8DA0AAFF999898FF9C9B9BFF9D9C - 9CFF9D9C9CFF9D9C9CFF9D9C9CFF9D9C9CFF9D9C9CFF9D9C9CFF9D9C9CFF9D9C - 9CFF9D9C9CFF9D9C9CFF9C9B9BFF999898FF919090FF859DA9FF7DCDF6FF7DCD - F6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCD - F6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCD - F6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF7DCDF6FF6BC7F5FF0EA2EEFF0EA2 - EDFF0EA1ECFF0E9FE9FF0D9CE5FF0D98DFFF0C93D8FF1391D1FF79A8B5FF6871 - 71FF4F4F4FFF494747FF494747FF494747FF4D4D4DFF537684FF70CCF6FF80D1 - F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1 - F7FF80D1F7FF80D1F7FF80D1F7FF83CAEBFF7D8383FF565858FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF302E2EB70000004A000000300000 - 0014000000040000000000000002000000000000000000000000000000000000 - 00000000000000000000000000000000000048464660494747FF494747FF4947 - 47FF494747FF494747FF494747FF4A4848FF525353FF6F7B7BFF90B8BFFF1C94 - CFFF0C92D7FF0D97DDFF0D9BE3FF0E9EE8FF0EA0EBFF0EA1EDFF22AAEFFF82CF - F7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CF - F7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF92A4AEFF9D9C9CFFA1A0A0FFA1A0 - A0FFA1A0A0FFA1A0A0FFA1A0A0FFA1A0A0FFA1A0A0FFA1A0A0FFA1A0A0FFA1A0 - A0FFA1A0A0FFA1A0A0FFA09F9FFF9B9A9AFF929191FF86B9D3FF82CFF7FF82CF - F7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CF - F7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CF - F7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF82CFF7FF5DC0F4FF0EA2EDFF0EA1 - ECFF0E9FE9FF0D9DE6FF0D99E1FF0D95DAFF0C8FD3FF54A4C6FF778686FF5558 - 58FF4A4848FF494747FF494747FF494747FF4D4D4DFF557785FF73CDF6FF80D1 - F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1F7FF80D1 - F7FF80D1F7FF80D1F7FF80D1F7FF82C9EBFF7B8181FF555757FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF474545F70909095B0000003C0000 - 001F000000090000000000000001000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000484646CB494747FF4947 - 47FF494747FF494747FF494747FF494747FF4B4A4AFF595C5CFF7E8F8FFF7AB8 - CBFF0E8FD1FF0D94D8FF0D98DFFF0D9CE5FF0E9FE8FF0EA0EBFF0FA2EDFF74C9 - F5FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1 - F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF96A8B1FFA1A0A0FFA4A3A3FFA5A4 - A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4 - A4FFA5A4A4FFA4A3A3FFA2A1A1FF9C9B9BFF93989BFF88D0F5FF88D1F7FF88D1 - F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1 - F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1 - F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF88D1F7FF38B2F0FF0EA1ECFF0E9F - EAFF0D9DE7FF0D9AE2FF0D96DBFF0C91D5FF339BCDFF829A9CFF5D6262FF4C4B - 4BFF494747FF494747FF494747FF494747FF4C4B4BFF566469FF65BEE6FF80D1 - F7FF80D1F7FF80D1F7FF8EB8CAFF8AA7ACFF7C969CFF738B91FF71888EFF7188 - 8EFF71888EFF71888EFF70878DFF6B7E84FF5F6363FF4F5050FF494848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF2423239C000000460000 - 002B000000100000000300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000083A2A238494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4D4D4DFF606767FF8BA1 - A1FF5CAECFFF0C8FD2FF0D94D9FF0D99E0FF0D9CE5FF0E9FE9FF0EA0EBFF4BB9 - F1FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3 - F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF9BACB5FFA5A4A4FFA8A7A7FFA8A7 - A7FFA8A7A7FFA8A7A7FFA8A7A7FFA8A7A7FFA8A7A7FFA8A7A7FFA8A7A7FFA8A7 - A7FFA8A7A7FFA8A7A7FFA4A3A3FF9D9D9DFF92B2C2FF8DD3F7FF8DD3F7FF8DD3 - F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3 - F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3 - F7FF8DD3F7FF8DD3F7FF8DD3F7FF8DD3F7FF82CFF6FF16A4EDFF0EA0EAFF0D9E - E7FF0D9BE3FF0D97DDFF0C92D6FF1E95CFFF81A6ADFF666E6EFF4F4F4FFF4947 - 47FF494747FF494747FF494747FF494747FF4A4848FF525353FF5D7B86FF71CB - F4FF80D1F7FF80D1F7FF81CEF2FF91A7AEFF717E7EFF5E6464FF565959FF5557 - 57FF555757FF555757FF545757FF525454FF4E4F4FFF4B4949FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF434141E50000004E0000 - 0036000000190000000600000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000004947479B4947 - 47FF494747FF494747FF494747FF494747FF494747FF4A4848FF505151FF6770 - 70FF92ADAFFF44A5D0FF0C90D4FF0D95DAFF0D99E1FF0D9CE6FF0E9FE9FF19A5 - ECFF86D0F6FF92D5F7FF92D5F7FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5 - F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF9FAEB7FFA7A6A6FFA9A8A8FFA9A8 - A8FFA9A8A8FFA9A8A8FFA9A8A8FFA9A8A8FFA9A8A8FFA9A8A8FFA9A8A8FFA9A8 - A8FFA9A8A8FFA8A7A7FFA4A4A4FF9F9E9EFF94CBE7FF92D5F8FF92D5F8FF92D5 - F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5 - F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5F8FF92D5 - F8FF92D5F8FF92D5F8FF92D5F7FF92D5F7FF50BBF1FF0EA0EAFF0D9EE7FF0D9B - E3FF0D97DEFF0C92D7FF1391D0FF79AAB9FF6E7979FF535454FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4A4AFF565959FF5E91 - A5FF79CFF6FF80D1F7FF80D1F7FF84CBEBFF879496FF616767FF505151FF4A49 - 49FF4A4848FF4A4848FF4A4848FF494848FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF1C1B1B820000 - 003F000000220000000A00000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000A0D0D0104947 - 47E3494747FF494747FF494747FF494747FF494747FF494747FF4A4848FF5354 - 54FF6E7979FF93B5B9FF319ED0FF0C91D4FF0D95DBFF0D99E1FF0D9CE6FF0E9F - E9FF47B7EFFF98D7F7FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7 - F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FFA0B0B8FFA5A5A5FFA6A6A6FFA6A6 - A6FFA6A6A6FFA6A6A6FFA6A6A6FFA6A6A6FFA6A6A6FFA6A6A6FFA6A6A6FFA6A6 - A6FFA6A6A6FFA6A5A5FFA3A3A3FF9EACB3FF98D7F8FF98D7F8FF98D7F8FF98D7 - F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7 - F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7F8FF98D7 - F8FF98D7F8FF98D7F8FF98D7F7FF83CFF5FF17A3EAFF0D9EE7FF0D9BE3FF0D97 - DEFF0C93D8FF0E90D1FF6BAAC1FF758383FF565858FF4B4949FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4D4C4CFF5A5E - 5EFF5FA5C2FF7ED0F7FF80D1F7FF80D1F7FF89C2DCFF7C8686FF5B6060FF4E4D - 4DFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF383737C70000 - 00470000002B0000001000000002000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000006674 - 744C494747FF494747FF494747FF494747FF494747FF494747FF494747FF4B49 - 49FF555858FF738080FF91B8BEFF2899CFFF0C91D5FF0D95DBFF0D99E1FF0D9C - E5FF11A0E9FF6FC6F3FF9ED9F7FF9ED9F8FF9ED9F8FF9EDAF8FF9EDAF8FF9EDA - F8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FFA3ABAFFFA4A4A4FFA5A4A4FFA5A4 - A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4 - A4FFA5A4A4FFA4A4A4FFA3A3A3FFA0C3D5FF9EDAF8FF9EDAF8FF9EDAF8FF9EDA - F8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDA - F8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9EDAF8FF9ED9 - F8FF9ED9F8FF9ED9F8FF97D6F6FF32AEECFF0D9EE7FF0D9BE3FF0D97DEFF0C93 - D8FF0D8FD1FF61A8C4FF7A8A8AFF595D5DFF4C4B4BFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4A4848FF4F4E - 4EFF5D6668FF65B9DCFF80D1F7FF80D1F7FF80D1F7FF8DB7C9FF737D7DFF575B - 5BFF4C4B4BFF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF484646F90707 - 0755000000330000001600000004000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000066757597494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4C4B4BFF575B5BFF768484FF93BAC0FF2899CFFF0C91D4FF0D95DAFF0D99 - E0FF0D9CE5FF1BA3E9FF86CFF4FFA3DBF8FFA3DBF8FFA3DBF8FFA3DCF9FFA3DC - F9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA6ADB1FFA7A7A7FFA7A7A7FFA7A7 - A7FFA7A7A7FFA7A7A7FFA7A7A7FFA7A7A7FFA7A7A7FFA7A7A7FFA7A7A7FFA7A7 - A7FFA7A7A7FFA7A7A7FFA7A8A9FFA3D9F5FFA3DCF9FFA3DCF9FFA3DCF9FFA3DC - F9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DC - F9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DCF9FFA3DB - F8FFA3DBF8FFA1DAF7FF4BB7EEFF0D9DE6FF0D9AE2FF0D97DDFF0C93D8FF0E8F - D1FF61A9C5FF7D8D8EFF5B6060FF4C4B4BFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4A48 - 48FF515252FF5E7379FF6DC5ECFF80D1F7FF80D1F7FF81D0F5FF8EA9B3FF6A74 - 74FF545656FF4B4A4AFF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF1E1D - 1D860000003A0000001B00000006000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000A0D1D108484646CF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4C4B4BFF585B5BFF768484FF92B8BEFF329ED0FF0C90D4FF0D94 - D9FF0D98DFFF0D9BE3FF1EA4E9FF8DD1F4FFA9DDF8FFA9DDF8FFA9DDF9FFA9DE - F9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DE - F9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DE - F9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DE - F9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DE - F9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DEF9FFA9DDF9FFA9DDF9FFA9DD - F8FFA5DBF7FF54BAEFFF0D9CE6FF0D99E1FF0D96DCFF0C92D7FF0F8FD0FF67AB - C4FF7C8D8EFF5C6161FF4D4C4CFF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4B4A4AFF545656FF5E8492FF75CDF5FF81D1F7FF81D1F7FF83CDF0FF8B9C - A0FF646B6BFF515252FF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF3635 - 35BD0000003E0000001F00000008000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000A0D1D124494747EF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4C4B4BFF575B5BFF738080FF93B5B9FF44A5D0FF0C8F - D2FF0D94D8FF0D97DDFF0D9AE2FF1CA2E7FF81CCF3FFAEDFF8FFAEDFF8FFAEDF - F9FFAEDFF9FFAEE0F9FFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0 - FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0 - FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0 - FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0 - FAFFAEE0FAFFAEE0FAFFAEE0FAFFAEE0F9FFAEDFF9FFAEDFF9FFAEDFF8FFA4DB - F7FF4AB6EDFF0D9BE4FF0D99E0FF0D95DBFF0C91D5FF1993D0FF73ADC0FF7989 - 89FF5B5F5FFF4D4C4CFF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4C4B4BFF575B5BFF5F99AFFF7CD0F6FF81D1F7FF81D1F7FF87C8 - E6FF838F91FF5F6565FF4F4F4FFF4A4848FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4543 - 43E900000041000000220000000A000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000066757544494747FB494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4C4B4BFF555858FF6E7979FF92ADAFFF5CAE - CFFF0E8FD1FF0C92D7FF0D96DBFF0D99E0FF159EE5FF65C1F0FFAEDFF7FFB3E1 - F9FFB3E1F9FFB3E2F9FFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2 - FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2 - FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2 - FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2FAFFB3E2 - FAFFB3E2FAFFB3E2FAFFB3E2F9FFB3E1F9FFB3E1F9FFB3E1F8FF97D5F5FF30AB - E9FF0D9AE2FF0D97DEFF0D94D9FF0C90D4FF2598CFFF80ACB7FF748181FF585C - 5CFF4C4B4BFF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4E4D4DFF5B6060FF61ACCBFF80D0F7FF81D1F7FF81D1 - F7FF8BBFD6FF7A8484FF5A5F5FFF4D4D4DFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF0A09094D000000230000000A000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000039586867494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4B4949FF535454FF677070FF8BA1 - A1FF7AB8CBFF1B94CFFF0C90D4FF0D94D9FF0D97DEFF0D9AE2FF36ADE9FF96D4 - F4FFB8E3F8FFB8E3F9FFB8E3FAFFB8E3FAFFB8E3FAFFB8E4FAFFB8E4FAFFB8E4 - FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4 - FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4 - FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E4FAFFB8E3 - FAFFB8E3FAFFB8E3FAFFB8E3F9FFB8E3F9FFAFDFF7FF68C1EFFF18A0E5FF0D99 - E0FF0D96DBFF0C92D7FF0D8FD1FF45A3CCFF85A5AAFF6D7777FF555858FF4C4B - 4BFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4A4848FF504F4FFF606B6EFF8DCCE8FFA4DEF9FFA2DD - F9FF9DDBF9FF9AB8C4FF707A7AFF565959FF4B4A4AFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1616165D000000210000000A000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000003958687F494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4A4848FF505151FF6067 - 67FF7E8F8FFF90B8BFFF46A6D0FF0C8FD1FF0C92D6FF0D95DBFF0D98DFFF149D - E3FF52B8ECFFA3DAF6FFBEE5F9FFBEE5F9FFBEE5FAFFBEE5FAFFBEE6FAFFBEE6 - FAFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6 - FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6 - FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FBFFBEE6FAFFBEE6FAFFBEE5 - FAFFBEE5F9FFBEE5F9FFB8E3F8FF80CBF2FF2AA7E7FF0D99E1FF0D96DDFF0D94 - D9FF0C90D4FF1D95D0FF6DADC4FF839798FF656C6CFF525353FF4B4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4A4949FF525353FF677C82FF9CD9F5FFAAE0 - FAFFAAE0FAFFA9DFF9FF96A8AEFF666F6FFF515252FF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1D1C1C6B0000001E00000008000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000003958688F494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4A4848FF4D4D - 4DFF595C5CFF6F7B7BFF8FA8A9FF77B7CCFF2297D0FF0C90D3FF0C93D8FF0D96 - DCFF0D98DFFF159EE3FF4DB6EBFF99D6F5FFC2E7F9FFC3E7FAFFC3E7FAFFC3E7 - FAFFC3E7FAFFC3E7FBFFC3E7FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8 - FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8FBFFC3E8 - FBFFC3E8FBFFC3E7FBFFC3E7FBFFC3E7FAFFC3E7FAFFC3E7FAFFC3E7FAFFC3E7 - F9FFB4E1F7FF76C7F0FF2CA8E7FF0D99E1FF0D97DEFF0D94DAFF0C91D5FF0E8F - D1FF48A4CDFF88ABB1FF748282FF5C6161FF4F4F4FFF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4B4A4AFF555757FF71939FFFA9E0 - FAFFAFE1FAFFAFE1FAFFACD9EFFF848F8FFF5C6060FF4C4C4CFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1B1A1A620000001900000005000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000003958688F4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4B4A4AFF525353FF626868FF7C8D8DFF93B5B9FF60B0CFFF1792D0FF0C90 - D4FF0C93D8FF0D95DBFF0D97DEFF0D99E1FF30A9E7FF6DC3EFFFA4DAF6FFC6E8 - F9FFC8E9FAFFC8E9FAFFC8E9FAFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9 - FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9FBFFC8E9 - FBFFC8E9FBFFC8E9FBFFC8E9FAFFC8E9FAFFC8E9FAFFBAE3F8FF8ED1F3FF4AB4 - EBFF189FE4FF0D98E0FF0D96DDFF0D94D9FF0C91D6FF0C8FD1FF349ECFFF7CAF - BEFF819393FF666E6EFF545656FF4C4B4BFF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4C4CFF5A5D5DFF84B2 - C4FFB3E3FAFFB4E3FAFFB4E3FAFFA1B8C1FF687171FF515252FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF1515154A0000001400000004000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000003958 - 687B494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4848FF4D4C4CFF575959FF697272FF849797FF90B7BEFF5CAE - CFFF1B94D0FF0C90D3FF0C92D7FF0D95DAFF0D96DCFF0D98DFFF0D99E1FF28A6 - E6FF4EB6EBFF82CCF2FFA3DAF5FFC0E6F8FFCDEBFAFFCDEBFAFFCDEBFAFFCDEB - FBFFCDEBFBFFCDEBFBFFCDEBFBFFCDEBFBFFCDEBFBFFCDEBFBFFCDEBFAFFCDEB - FAFFCAEAF9FFB2E0F7FF94D3F4FF68C1EFFF3BAEE9FF159EE4FF0D99E0FF0D97 - DEFF0D95DBFF0D93D8FF0C91D5FF0C8FD1FF379FCFFF76AFC2FF879D9EFF6D78 - 78FF595D5DFF4E4E4EFF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4B4949FF4D4D4DFF4F50 - 50FF4F5050FF4D4D4DFF4B4949FF494747FF494747FF4A4848FF4F4F4FFF6472 - 75FFA8DDF5FFB8E5FBFFB8E5FBFFAFD4E4FF7B8484FF565858FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4846 - 46FC0404042B0000000E00000002000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000039586860494747FB494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF4A4848FF4F4F4FFF595D5DFF6B7575FF8396 - 96FF93B6BBFF67B1CDFF2D9CD0FF0C8FD1FF0C91D4FF0C93D7FF0D95DAFF0D96 - DCFF0D97DEFF0D98E0FF0D99E1FF109BE3FF26A5E6FF3BAFE9FF4DB6EBFF5BBB - EDFF66C0EFFF6CC3EFFF6EC4EFFF69C2EFFF61BEEEFF55B9ECFF44B2EAFF31AA - E8FF1AA0E4FF0D9AE2FF0D99E0FF0D98DFFF0D97DDFF0D95DBFF0D94D8FF0C92 - D6FF0C90D3FF1692D0FF47A4CEFF7FB1BFFF869C9DFF6F7A7AFF5C6161FF5051 - 51FF4B4949FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4B4949FF515252FF5D6161FF656D - 6DFF656D6DFF5D6262FF525252FF4B4949FF494747FF494747FF4A4949FF585C - 5CFF93C0D2FFBDE7FBFFBDE7FBFFB7E0F3FF848D8DFF595D5DFF4A4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4543 - 43D80000001D0000000800000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000039586840494747E7494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4B4949FF4F4F4FFF595C - 5CFF687171FF7D8D8DFF91ADAEFF83B7C5FF54ABCFFF2799D0FF0C8FD1FF0C90 - D4FF0C92D6FF0D93D8FF0D94DAFF0D95DBFF0D96DCFF0D97DDFF0D97DEFF0D98 - DFFF0D98DFFF0D98DFFF0D98DFFF0D98DFFF0D98DFFF0D97DEFF0D97DEFF0D97 - DDFF0D95DBFF0D95DAFF0D94D9FF0C92D7FF0C91D5FF0C8FD2FF1592D0FF3BA2 - D0FF69ADC7FF8BAEB4FF819393FF6B7676FF5B5F5FFF505151FF4B4A4AFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4C4C4CFF637C87FFAEDCF0FFB8E0 - F2FFB8E0F2FF95A8AFFF5E6464FF4E4E4EFF494747FF494747FF4A4848FF5658 - 58FF8BACB7FFC2E8FBFFC2E8FBFFBCE1F3FF868F8FFF5A5E5EFF4A4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF302F - 2F9C000000120000000300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000001B7AAA1C494747C3494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4A48 - 48FF4E4E4EFF555858FF616767FF707C7CFF829595FF92AEAFFF88B7C3FF63B0 - CDFF3EA2D0FF1F96D0FF0E8FD1FF0C8FD2FF0C90D4FF0C91D5FF0C92D6FF0C92 - D6FF0C92D7FF0C92D7FF0C92D7FF0C92D7FF0C92D7FF0C92D6FF0C91D6FF0C90 - D4FF0C90D3FF0C8ED1FF1491D0FF2C9CD0FF4FA8CEFF72B0C4FF8EAFB4FF8599 - 9AFF738080FF636B6BFF575A5AFF4F4F4FFF4B4949FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4D4C4CFF677E86FFBEE8FBFFC6EA - FCFFC6EAFCFFADC1CAFF6E7979FF545656FF4A4848FF494747FF4C4A4AFF5B5F - 5FFF9DC9D9FFC6EAFCFFC6EAFCFFBFE2F3FF848D8DFF595D5DFF4A4949FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF1C1B - 1B4A000000090000000100000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000001B7AAA0439586887494747FB494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494848FF4C4A4AFF505050FF575A5AFF616767FF6D7878FF7B8B - 8BFF899E9EFF93AFB1FF8EB6BEFF7DB5C5FF69B1CBFF57ACCFFF49A7D0FF3DA2 - D1FF369FD1FF319DD0FF309DD0FF329ED1FF38A0D0FF43A5D1FF4FA9CFFF5FAD - CCFF71B0C6FF85B3BEFF8FAFB3FF8BA1A2FF7D8E8EFF6F7B7BFF626A6AFF585C - 5CFF515252FF4C4B4BFF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4C4A4AFF5D6465FFBAE5F8FFCBEC - FCFFCBECFCFFC2E1F0FF899697FF646B6BFF545555FF505151FF565959FF7083 - 87FFC1E8FAFFCBECFCFFCBECFCFFBBD8E5FF7A8484FF565858FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF454343D10000 - 0010000000030000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000083A3A338494747D74947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494848FF4B4A4AFF4E4E4EFF5355 - 55FF595D5DFF606767FF677171FF6F7B7BFF778585FF7D8E8EFF839595FF879B - 9BFF8A9F9FFF8CA1A1FF8CA2A2FF8BA0A0FF889C9CFF849696FF7E8F8FFF7886 - 86FF707D7DFF697272FF626969FF5B5F5FFF545656FF4F4F4FFF4C4A4AFF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4A4848FF555858FF9ABECDFFCFED - FCFFCFEDFCFFCFEDFCFFB8D1DCFF869596FF6E7979FF697373FF788B8FFFB8DA - E7FFCFEDFCFFCFEDFCFFCFEDFCFFA9BBC2FF687171FF505151FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF212020590000 - 0007000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000A0D1D1046675 - 757B494747F7494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494848FF4B4949FF4C4B4BFF4F4E4EFF515252FF535555FF565858FF575B - 5BFF595D5DFF5A5E5EFF5A5E5EFF5A5D5DFF585B5BFF565959FF545656FF5152 - 52FF4F4F4FFF4C4C4CFF4B4A4AFF4A4848FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4F4F4FFF68777CFFC2E5 - F4FFD4EFFCFFD4EFFCFFD4EFFCFFCEEAF8FFBCD9E4FFBCDCE8FFD0EDFBFFD4EF - FCFFD4EFFCFFD4EFFCFFC5DEEAFF7F8888FF5A5E5EFF4C4B4BFF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF424040B9000000090000 - 0001000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00006675751C4947479F494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4848FF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4B4949FF535555FF7688 - 8EFFC6E5F3FFD8F1FDFFD8F1FDFFD8F1FDFFD8F1FDFFD8F1FDFFD8F1FDFFD8F1 - FDFFD8F1FDFFC8DFEBFF869394FF606767FF505050FF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF484646EC10101025000000020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000049474730494747AF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4C4A4AFF5456 - 56FF687578FF9DB5BDFFC4E1EEFFD9F0FBFFDDF2FDFFDDF2FDFFD6EEF9FFC5DE - E9FFA3B6BBFF778283FF5F6565FF515252FF4B4949FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FB2C2B2B4600000002000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000004947472C4947479B494747F74947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4B4A - 4AFF505050FF585C5CFF626969FF697373FF6D7878FF6E7979FF6C7777FF6770 - 70FF606565FF565959FF4E4E4EFF4A4949FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FB323131580000000200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000494747144947 - 4773494747D7494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4B4A4AFF4E4D4DFF505050FF525353FF525353FF525252FF4F50 - 50FF4D4C4CFF4A4949FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF484646E732303042000000010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000004947473049474787494747DB494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF464444A82322221500000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000004947472449474768494747A74947 - 47DF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FB484646B04846 - 4634000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000049474714494747444947476C4947478F494747AF494747C7494747DF4947 - 47EB494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747F3494747D3494747A34947476448464618000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFF007FFFFFFFFFFFFFFFFFFFFFFFFFFF800001FFFFFFFFFFFFFFFFFFF - FFFFFF80000001FFFFFFFFFFFFFFFFFFFFFFFC000000003FFFFFFFFFFFFFFFFF - FFFFF00000000007FFFFFFFFFFFFFFFFFFFF800000000001FFFFFFFFFFFFFFFF - FFFE0000000000007FFFFFFFFFFFFFFFFFF80000000000001FFFFFFFFFFFFFFF - FFF000000000000007FFFFFFFFFFFFFFFFC000000000000001FFFFFFFFFFFFFF - FF8000000000000000FFFFFFFFFFFFFFFE00000000000000007FFFFFFFFFFFFF - FC00000000000000001FFFFFFFFFFFFFF800000000000000000FFFFFFFFFFFFF - F0000000000000000007FFFFFFFFFFFFE0000000000000000003FFFFFFFFFFFF - C0000000000000000001FFFFFFFFFFFF80000000000000000000FFFFFFFFFFFF - 000000000000000000007FFFFFFFFFFE000000000000000000003FFFFFFFFFFC - 000000000000000000001FFFFFFFFFF8000000000000000000001FFFFFFFFFF8 - 000000000000000000000FFFFFFFFFF00000000000000000000007FFFFFFFFE0 - 0000000000000000000007FFFFFFFFE00000000000000000000003FFFFFFFFC0 - 0000000000000000000001FFFFFFFF800000000000000000000001FFFFFFFF80 - 0000000000000000000000FFFFFFFF000000000000000000000000FFFFFFFF00 - 00000000000000000000007FFFFFFE0000000000000000000000007FFFFFFE00 - 00000000000000000000003FFFFFFE0000000000000000000000003FFFFFFC00 - 00000000000000000000001FFFFFFC0000000000000000000000001FFFFFF800 - 00000000000000000000001FFFFFF80000000000000000000000000FFFFFF800 - 00000000000000000000000FFFFFF000000000000000000000000007FFFFF000 - 000000000000000000000007FFFFF000000000000000000000000007FFFFF000 - 000000000000000000000003FFFFE000000000000000000000000003FFFFE000 - 000000000000000000000001FFFFE000000000000000000000000001FFFFE000 - 000000000000000000000000FFFFE000000000000000000000000000FFFFE000 - 000000000000000000000000FFFFC0000000000000000000000000007FFFC000 - 0000000000000000000000007FFFC0000000000000000000000000003FFFC000 - 0000000000000000000000003FFFC0000000000000000000000000001FFFC000 - 0000000000000000000000001FFFC0000000000000000000000000001FFFC000 - 0000000000000000000000000FFFC0000000000000000000000000000FFFC000 - 00000000000000000000000007FFC00000000000000000000000000007FFE000 - 00000000000000000000000003FFE00000000000000000000000000003FFE000 - 00000000000000000000000003FFE00000000000000000000000000001FFE000 - 00000000000000000000000001FFE00000000000000000000000000000FFF000 - 00000000000000000000000000FFF00000000000000000000000000000FFF000 - 000000000000000000000000007FF000000000000000000000000000007FF800 - 000000000000000000000000003FF800000000000000000000000000003FF800 - 000000000000000000000000001FFC00000000000000000000000000001FFC00 - 000000000000000000000000001EFC00000000000000000000000000000EFE00 - 000000000000000000000000000EFE000000000000000000000000000006FE00 - 0000000000000000000000000006FF000000000000000000000000000002FF00 - 0000000000000000000000000002FF800000000000000000000000000002FFC0 - 0000000000000000000000000001FFC00000000000000000000000000001FFE0 - 0000000000000000000000000001FFE00000000000000000000000000000FFF0 - 0000000000000000000000000000FFF80000000000000000000000000000FFF8 - 0000000000000000000000000000FFFC0000000000000000000000000000FFFE - 0000000000000000000000000000FFFF0000000000000000000000000000FFFF - 8000000000000000000000000000FFFFC000000000000000000000000000FFFF - E000000000000000000000000000FFFFF000000000000000000000000000FFFF - F800000000000000000000000001FFFFFC00000000000000000000000001FFFF - FE00000000000000000000000001FFFFFF00000000000000000000000003FFFF - FFC0000000000000000000000007FFFFFFE0000000000000000000000007FFFF - FFF800000000000000000000000FFFFFFFFE00000000000000000000001FFFFF - FFFF80000000000000000000003FFFFFFFFFE0000000000000000000007FFFFF - FFFFFC00000000000000000001FFFFFFFFFFFF80000000000000000007FFFFFF - FFFFFFF800000000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFF2800000060000000C0000000010020000000 - 0000809400000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000009F9F9F019F9F - 9F019F9F9F010000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000010000 - 000300000006000000080000000B0000000E0000001000000011000000120000 - 00120000001200000011000000100000000D0000000A00000007000000050000 - 0002000000010000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000100000003000000070000000D000000140000 - 001B00000021000000280000002D000000320000003500000037000000370000 - 0037000000370000003700000034000000300000002C000000250000001F0000 - 0018000000100000000A00000005000000020000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000002000000070000000F00000019000000240000002F000000390000 - 0040000000460000004B0000004E000000500000005200000052000000530000 - 0053000000530000005200000051000000500000004D00000049000000440000 - 003D000000340000002A0000001E000000130000000A00000004000000010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000025242401030303040000 - 000B0000001700000025000000330000004000000049030303530F0F0F711B1A - 1A8B292828A9302E2EC13D3B3BD4424040E1464444EF464444EF464444EF4644 - 44EF464444EF434141E53E3C3CD7323030C4292828AD1D1C1C900F0F0F750404 - 045B000000520000004C00000045000000390000002C0000001D000000100000 - 0007141313020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000050505040000000D0000001A0000 - 002B0000003B01010149090909621F1E1E92343333C4413F3FE9474545F84947 - 47FE494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE474545F94140 - 40EA353434C5201F1F960B0A0A6A010101540000004C00000041000000320000 - 0022000000130202020716161602000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000D0D0D020000000A000000190000002C0000003E0302 - 024E1D1C1C8C363535CB474545F6494747FF494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF474545F6363535CB1B1B1B8C030303590000004F0000 - 0045000000350000002100000011000000062322220100000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00001B1A1A010000000700000015000000290000003D0A0A0A5F282626A64543 - 43EE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE444242ED262525A60A0A - 0A680000005100000045000000330000001E0000000C03030303000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000606 - 06030000000D0000001F0000003608080857292828A6454343F1484646FE4846 - 46FE494747FF494747FF484646FE494747FF494747FF494747FF484646FE4947 - 47FF494747FF494747FE494747FF494747FF494747FE494747FF494747FF4947 - 47FE494747FF494747FF494747FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4442 - 42EF2A2929AB070707620000004E000000400000002A00000014030303062C31 - 3101000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000B0F0F050000 - 0013000000290000004022212192424040E9484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE494747FE494747FE4A49 - 49FE4D4C4CFE505050FE535555FE565959FE595D5DFE5B5F5FFE5B5F5FFE5A5E - 5EFE585B5BFE555757FE515353FE4E4F4FFE4C4B4BFE4A4848FE494747FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE414040E91F1E1E940101015500000048000000340000001D0000 - 0009324343020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000596B6B0100000008000000190000 - 0033101010663B3939D1494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF494747FE4A4949FF4E4E4EFF565858FF616767FE6C78 - 78FF728689FF6F909AFE6796A6FF619AB0FF5D9DB7FE5B9EBAFF5A9FBBFF5A9D - B9FE5D9BB5FF6098ADFF6692A2FE6D8C95FF6F8184FF687171FE5C6161FF5354 - 54FF4C4C4CFE4A4848FF494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE494747FF484646FE3A3838D30E0E0E6F0000004F0000003E0000 - 00240000000E1A23230300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000073737301000000090000001D0201013A2121 - 2190454343F1484646FE494747FF494747FF484646FE494747FF494747FF4947 - 47FE4A4848FF4E4D4DFF575A5AFE666F6FFF71868AFF6B98A7FF529CBCFE3B9D - CAFF2D9BD1FF299CD6FE299DD9FF2A9FDBFF2CA0DCFE2DA1DCFF2EA1DCFF2DA1 - DCFE2BA0DBFF2A9EDAFF289DD8FE289BD5FF2B99CFFF3B9AC7FE5198B6FF6890 - 9EFF6B7D80FE606666FF535555FF4C4A4AFE494747FF494747FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE444242F0201F1F95010101540000 - 00430000002A000000112B2B2B03000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000073737301000000090000001F04040442302F2FB44846 - 46FE484646FE484646FE484646FE484646FE484646FE494747FE4A4848FE4F4E - 4EFE5C6161FE717F80FE7099A6FE499DC3FE309CD1FE269BD7FE2BA0DBFE30A4 - DFFE32A6E1FE34A8E3FE36A9E4FE37AAE5FE38ABE6FE39ABE6FE39ABE6FE39AB - E6FE38ABE6FE37AAE5FE36A9E4FE34A8E2FE32A6E1FE30A3DEFE299FDBFE249A - D6FE2F99CDFE4998BAFE6C8F9AFE687272FE565959FE4C4B4BFE494747FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FC2F2D2DB80404 - 0458000000460000002D00000012070707040000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000006B6B6B010000000A000000200B0B0B503B3A3AD2484646FE4947 - 47FF494747FF484646FE494747FF494747FF494848FE4F4F4FFF5E6363FF7386 - 89FE649FB5FF389ECEFF239AD7FE2CA1DDFF2FA4E0FF32A7E3FF35AAE6FE37AC - E8FF39AEEAFF3BAFEBFE3CB1ECFF3DB1EDFF3DB1EDFE3EB2EDFF3EB2EDFF3EB2 - EDFE3EB2EDFF3EB1ECFF3DB1ECFE3CB0EBFF3BAFEAFF39ADE8FE36AAE6FF33A8 - E3FF30A5E0FE2AA0DCFF1F98D6FF399AC8FE6294A6FF6A797BFE565959FF4C4B - 4BFF494747FE494747FF494747FF484646FE494747FF494747FF484646FE3A38 - 38D209090965000000490000002F0000001301131C0400000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000090000001F0C0C0C51403F3FE0494747FE484646FE4947 - 47FF494747FF484646FE494747FF4C4B4BFF575B5BFE708081FF679DB1FF359C - CDFE259CD9FF2BA1DEFF2FA6E2FE32A9E6FF35ACE9FF38AEEBFF39B0ECFE3BB1 - EEFF3CB2EFFF3DB3EFFE3DB4F0FF3EB4F0FF3EB4F0FE3FB4F0FF3FB5F1FF3FB4 - F1FE3FB5F1FF3FB4F0FF3FB4F0FE3EB3EFFF3EB3EFFF3DB2EDFE3BB1ECFF39AF - EBFF37ACE8FE34A9E6FF30A6E2FF2AA1DDFE239AD7FF3398C8FE6591A1FF6570 - 71FF525353FE4A4848FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF3D3C3CDD0B0B0B6A000000480000002E00000012202B2B03000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000060000001B0C0C0C4F3F3E3EDD484646FE484646FE484646FE4846 - 46FE484646FE494747FE4F5050FE646B6BFE77979FFE409EC9FE239AD7FE28A0 - DDFE2CA5E3FE30A9E7FE33ACEAFE36AEECFE38B0EEFE39B1EFFE39B2F0FE3BB3 - F0FE3BB3F1FE3CB4F1FE3CB4F1FE3CB4F1FE3DB4F1FE3DB5F1FE3DB5F1FE3DB5 - F1FE3DB5F1FE3DB5F1FE3EB5F1FE3EB5F1FE3EB4F1FE3DB4F0FE3DB3F0FE3CB2 - EFFE3AB1EEFE38AFECFE36ADEAFE32A9E6FE2EA5E2FE29A0DDFE2098D4FE4297 - BEFE6E878CFE595D5DFE4C4B4BFE494747FE484646FE484646FE484646FE4846 - 46FE484646FE413F3FE60B0A0A6A000000470000002B0000000F202B2B020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000080B - 0B04000000160C0C0C4B413F3FE0484646FE494747FF494747FF484646FE4947 - 47FF4A4949FF545757FE718182FF61A1BAFF2699D3FE259EDCFF29A3E1FF2DA8 - E6FE31ABEAFF33AEECFF35AFEEFE37B1EFFF37B2F0FF38B2F1FF38B3F1FE38B3 - F2FF39B3F2FF39B3F1FE39B3F2FF3AB3F2FF3AB3F1FE3AB4F2FF3AB4F2FF3AB4 - F1FE3AB4F2FF3BB4F2FF3BB4F1FE3BB4F2FF3BB4F2FF3BB4F1FE3BB4F1FF3BB4 - F1FF3AB3F0FE39B2F0FF39B1EEFF37AFECFE34ACEAFF30A9E6FE2BA4E1FF249D - DAFF2497D0FE6094A8FF646E6EFF4F4F4FFE494747FF494747FF484646FE4947 - 47FF494747FF484646FE3F3D3DE00A0A0A6900000045000000260000000C506B - 6B01000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000002C3B3B020000 - 0011050505373D3B3BD4494747FF484646FE494747FF494747FF494747FE4B4A - 4AFF5A5E5EFF778C8FFE49A0C6FF219AD7FF259FDEFE29A5E4FF2CA9E9FF2FAC - ECFE31AEEEFF33AFEFFF33B0F0FE34B1F1FF35B1F1FF35B2F2FF35B2F1FE36B2 - F2FF36B2F2FF36B2F1FE37B2F2FF37B2F2FF37B2F1FE37B3F2FF37B3F2FF37B2 - F1FE38B3F2FF38B3F2FF38B3F1FE38B3F2FF38B3F2FF38B3F1FE38B3F2FF39B3 - F2FF38B3F1FE38B3F1FF38B2F0FF38B1EFFE36B0EEFF34AEECFE30AAE9FF2CA6 - E4FF27A0DEFE1E97D4FF4C97B8FF6A797BFE515252FF4A4848FF494747FE4947 - 47FF494747FF484646FE494747FF3C3A3AD7070707600000003F000000200000 - 0008000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000000000B0202 - 022A333131B6484646FE484646FE484646FE484646FE494747FE4B4A4AFE5D61 - 61FE79959BFE3B9DCBFE1F9AD8FE24A0E0FE28A6E6FE2AAAEAFE2DACEDFE2FAE - EFFE30AFF0FE30AFF0FE31B0F0FE31B0F0FE31B0F0FE32B0F1FE32B0F1FE32B0 - F1FE32B0F1FE33B1F1FE33B1F1FE33B1F1FE33B1F1FE34B1F1FE34B1F1FE34B1 - F1FE34B1F1FE35B1F1FE35B1F1FE35B1F1FE35B1F1FE35B2F1FE36B2F1FE36B2 - F1FE36B2F1FE36B2F1FE36B2F1FE36B2F1FE35B1F0FE34B0EFFE32AEEDFE2FAB - EAFE2BA7E6FE27A1E0FE1E98D7FE3B97C2FE6E7F81FE535555FE4A4848FE4846 - 46FE484646FE484646FE484646FE484646FE353434C801010152000000380000 - 0018040404040000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000050000001C2726 - 268E494747FF484646FE494747FF484646FE494747FF4B4A4AFF5D6363FE789B - A4FF2F9BCFFF1E9ADAFE22A1E2FF26A6E8FF28A9EBFE2AACEDFF2BADEFFF2CAE - F0FE2DAFF1FF2DAFF1FF2DAFF0FE2DAFF1FF2EAFF1FF2EAFF1FF2EAFF0FE2FAF - F1FF2FAFF1FF2FAFF0FE2FAFF1FF2FAFF1FF30AFF0FE30B0F1FF30B0F1FF30B0 - F0FE31B0F1FF31B0F1FF31B0F0FE31B0F1FF31B0F1FF32B0F0FE32B0F1FF32B0 - F1FF32B0F1FE32B0F1FF33B1F1FF33B0F1FE33B1F1FF32B0F0FE32AFF0FF30AE - EEFF2EABEBFE2AA7E7FF26A2E1FF1E99D9FE3197C7FF6C8489FF545656FE4A48 - 48FF494747FF484646FE494747FF494747FF484646FE292828A90000004D0000 - 00300000000F1312120200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000002B373702000000111616165E4644 - 44F4494747FF484646FE494747FF494747FE4B4A4AFF5C6161FF78989FFE2D9B - CFFF1C9ADAFF20A0E2FE24A6E8FF26A9EBFF27ABEEFE28ACEFFF29ADF0FF29AD - F0FE29ADF1FF2AADF1FF2AADF0FE2AAEF1FF2AAEF1FF2BAEF1FF2AAEF0FE2BAE - F1FF2BAEF1FF2BAEF0FE2CAEF1FF2CAEF1FF2CAEF0FE2CAFF1FF2DAFF1FF2DAE - F0FE2DAFF1FF2DAFF1FF2EAFF0FE2EAFF1FF2EAFF1FF2EAFF0FE2EAFF1FF2FAF - F1FF2FAFF0FE2FAFF1FF2FB0F1FF2FAFF0FE30B0F1FF30AFF0FE2FAFF0FF2FAE - F0FF2EADEEFE2BABECFF28A7E8FF24A1E2FE1C99D9FF3296C6FF6B8287FE5253 - 53FF494747FF484646FE494747FF494747FF484646FE474545F8181717830000 - 0044000000220101010800000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000008050505283F3E3EDB4846 - 46FE484646FE484646FE484646FE4A4848FE575A5AFE799397FE359CCDFE1A99 - D9FE1D9FE1FE21A4E8FE23A8ECFE25AAEEFE25ABEFFE26ACF0FE26ACF0FE26AC - F0FE27ACF0FE27ACF0FE27ACF0FE27ACF0FE27ACF0FE28ACF0FE28ACF0FE28AC - F0FE28ADF0FE28ADF0FE28ADF0FE28ADF0FE28ADF0FE29ADF0FE29ADF0FE29AD - F0FE29ADF0FE29ADF0FE2AADF0FE2AADF0FE2AAEF0FE2AAEF0FE2BAEF0FE2BAE - F0FE2BAEF0FE2BAEF0FE2CAEF0FE2CAEF0FE2CAEF0FE2CAEF0FE2CAEF0FE2CAE - F0FE2CADEFFE2BACEEFE29AAECFE26A6E8FE22A0E1FE1B98D9FE3897C4FE6C79 - 7BFE505050FE494747FE484646FE484646FE484646FE484646FE403E3EE30706 - 065D000000370000001606060603000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000A090903000000172B2A2A98494747FF4947 - 47FF494747FF484646FE494747FF525454FE778B8DFF43A0CAFF1797D8FE1A9E - E1FF1DA3E8FF20A7EBFE21A9EEFF22AAEFFF23AAEFFE23ABF0FF23ABF0FF23AB - F0FE24ABF0FF24ABF0FF24ABF0FE24ABF0FF24ABF0FF25ABF0FF25ABF0FE25AB - F0FF25ABF0FF25ABF0FE26ACF1FF26ACF1FF26ACF0FE26ACF1FF26ACF1FF27AC - F0FE27ACF1FF27ACF1FF27ACF0FE27ACF1FF27ACF1FF28ACF0FE28ACF1FF28AC - F1FF457995FE3C8CB5FF2EA4E1FF28ADF0FE29ADF1FF29ADF0FE29ADF1FF29AD - F1FF29ADF0FE29ACF0FF28ABEEFF27A9EBFE23A5E7FF1F9FE1FF1896D7FE4798 - BBFF667172FF4D4D4DFE494747FF494747FF484646FE494747FF494747FF302E - 2EB800000049000000290000000B000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000A11111148464444F2494747FF4947 - 47FF494747FF494747FE4E4E4EFF6D7878FE59A4C3FF1696D6FF189CDFFE1BA2 - E7FF1DA5EBFF1EA7EDFE1FA8EFFF238BBFFF2F7295FE377B9EFF3B7FA1FF3C7F - A2FE3C7FA2FF3C7FA2FF3C7FA2FE2A9AD3FF21AAF0FF21AAF0FF22AAEFFE22AA - F0FF22AAF0FF22AAEFFE22ABF0FF22ABF0FF23AAF0FE23ABF0FF23ABF0FF23AB - F0FE23ABF0FF24ABF0FF24ABF0FE24ABF0FF24ABF0FF24ABF0FE25ABF0FF2F98 - CEFF585757FE5A5859FF565F63FF48768DFE3692C2FF29A6E7FE26ACF1FF26AC - F1FF27ACF0FE27ACF1FF26ABF0FF25AAEEFE24A8EBFF20A3E6FF1C9DDEFE1795 - D4FF5A94ACFF5D6363FE4A4949FF494747FF484646FE494747FF494747FF4846 - 46FB121212740000003C00000019090808030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000200000016353434B6484646FE484646FE4846 - 46FE484646FE4B4949FE5F6565FE75A2AFFE1794D3FE1599DCFE179FE4FE1AA4 - EAFE1BA6EDFE1CA7EEFE1CA8EFFE1F92CDFE33393DFE474646FE525050FE5453 - 53FE545353FE545353FE545353FE44677AFE1FA6EBFE1EA9EFFE1EA9EFFE1EA9 - EFFE1FA9EFFE1FA9EFFE1FA9EFFE1FA9EFFE1FA9EFFE20A9EFFE20A9EFFE20A9 - EFFE20AAEFFE20AAEFFE21AAEFFE21AAEFFE21AAEFFE21AAEFFE22AAEFFE3F73 - 8EFE575656FE585656FE585656FE585656FE585757FE52616AFE417C9BFE2E9A - D1FE23ABF0FE23ABF0FE23ABF0FE23AAEFFE22A9EDFE21A6EAFE1DA1E5FE199A - DCFE1E94CFFE6B8B94FE535454FE494747FE484646FE484646FE484646FE4846 - 46FE383636CE0202024E0000002A0000000A0000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000819181859484646F9484646FE494747FF4947 - 47FF494747FF545656FE799295FF309CCFFE1397DAFF159DE3FF17A2E9FE18A5 - EDFF19A6EFFF19A7EFFE19A7F0FF1AA7EFFF236282FE3A3939FF4B4949FF514F - 4FFE535151FF535151FF535151FE515051FF2D88B7FF1BA8F0FF1CA8EFFE1CA8 - F0FF1CA8F0FF1CA8EFFE1CA8F0FF1CA8F0FF1DA8EFFE1DA8F0FF1DA8F0FF1DA8 - EFFE1DA8F0FF1DA8F0FF1EA8EFFE1EA9F0FF1EA9F0FF1EA8EFFE239EDDFF4E57 - 5CFF565454FE565454FF565454FF565454FE565454FF565454FE565454FF5755 - 55FF4E626EFE3A82A7FF299CD7FF21A9EFFE20A9EEFF1FA7ECFF1DA4E9FE1A9F - E2FF1697D9FF3698C6FE697576FF4D4D4DFF494747FE494747FF494747FF4846 - 46FE484646FE1A1919840000003B000000151312120200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000002000000123B3939BE494747FF484646FE494747FF4947 - 47FF4C4B4BFF6B7575FE5BA4C1FF1193D6FE139AE0FF15A0E7FF16A3ECFE16A5 - EEFF16A6EFFF16A6EFFE17A6F0FF17A6F0FF189CE0FE2C363BFF413F3FFF4D4B - 4BFE504E4EFF514F4FFF514F4FFE514F4FFF465B67FF1CA1E5FF19A7EFFE19A7 - F0FF19A7F0FF19A7EFFE19A7F0FF19A7F0FF1AA7EFFE1AA7F0FF1AA7F0FF1AA7 - EFFE1AA7F0FF1AA8F0FF1BA8EFFE1BA8F0FF1BA8F0FF1BA8EFFE317FA7FF5250 - 50FF535252FE545252FF545252FF535252FE545252FF545252FE545353FF5453 - 53FF545252FE545353FF505559FF3D5F71FE2488BBFF1DA7EEFF1CA6EBFE1AA1 - E7FF169BDFFF1293D4FE5D94AAFF5A5E5EFF4A4848FE494747FF494747FF4846 - 46FE494747FF393737D00101014A000000240101010800000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000611111142484646FC494747FF484646FE494747FF4947 - 47FF565959FF7C9CA3FE1F96D1FF1096DBFE129DE4FF13A1EAFF14A4EDFE14A5 - EEFF14A5EFFF15A5EFFE15A6EFFF15A6EFFF15A5EFFE1D6B92FF343333FF4644 - 44FE4E4C4CFF4F4D4DFF4F4D4DFE4F4D4DFF4E4D4DFF2F7BA2FF16A6EFFE17A6 - F0FF17A6F0FF17A6EFFE17A6F0FF17A6F0FF17A6EFFE17A6F0FF17A7F0FF17A6 - EFFE17A7F0FF18A7F0FF18A7EFFE18A7F0FF18A7F0FF19A4EBFE435C69FF514F - 4FFF525050FE525050FF525050FF525050FE525050FF525050FE525050FF5250 - 50FF525050FE525050FF4E4C4CFF3E3D3DFE23749DFF1AA7EFFF1AA6EDFE19A3 - EAFF169FE4FF1497DBFE2795CBFF6B7E82FF4E4E4EFE494747FF494747FF4846 - 46FE494747FF474545F914131375000000320000001022212101000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000D343232A5484646FE484646FE484646FE494747FE4D4C - 4CFE6C7777FE53A5C7FE0E93D6FE0F9AE0FE119FE7FE12A2ECFE12A3EEFE12A4 - EEFE13A4EEFE13A4EEFE13A4EEFE13A4EEFE13A4EEFE149DE4FE253C49FE3B39 - 39FE494747FE4D4B4BFE4D4B4BFE4D4B4BFE4D4B4BFE494E52FE1A9BDDFE15A5 - EFFE15A5EFFE15A5EFFE15A5EFFE15A5EFFE15A5EFFE16A5EFFE16A5EFFE16A5 - EFFE16A5EFFE16A5EFFE16A5EFFE16A6EFFE16A6EFFE248BC0FE4C4D4EFE4F4D - 4DFE4F4D4DFE4F4D4DFE4F4D4DFE4E4C4CFE4C4A4AFE4D4B4BFE4F4D4DFE504E - 4EFE514F4FFE504E4EFE464545FE32383CFE19A0E5FE18A6EFFE18A6EEFE17A4 - ECFE16A0E8FE139AE0FE0F92D5FE5696B1FE5C6161FE494747FE484646FE4846 - 46FE484646FE484646FE313030BB000000410000001C00000005000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000209090928464444EA494747FF494747FF484646FE494747FF5658 - 58FF809CA1FF1A94D1FE0E96DBFF0E9CE4FE10A0EAFF10A2EDFF10A3EEFE11A4 - EFFF11A4EFFF11A4EEFE11A4EFFF11A4EFFF11A4EEFE11A4EFFF1777A8FF2D2D - 2EFE413F3FFF4B4949FF4C4A4AFE4C4A4AFF4C4A4AFF4C4A4AFF336C89FE13A4 - EDFF13A4EFFF13A4EEFE13A5EFFF13A5EFFF13A5EEFE13A5EFFF13A5EFFF13A5 - EEFE14A5EFFF14A5EFFF14A5EFFE14A5EFFF14A5EFFF36667FFE4D4B4BFF4E4C - 4CFF4E4C4CFE4E4C4CFF4D4B4BFF474545FE3E3C3CFF3D3B3BFE434242FF4947 - 47FF4C4A4AFE4B4949FF3D3C3CFF235C79FE16A6EFFF16A6EFFF16A5EFFE15A4 - EDFF14A1EAFF129DE4FE0F96DAFF2695CBFF6C7E81FE4D4C4CFF494747FF4846 - 46FE494747FF494747FF474545F5050505520000002B0000000C000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000005201F1F68484646FE494747FF494747FF484646FE4B4A4AFF676F - 6FFF60A6C1FF0C91D6FE0D98E0FF0E9EE7FE0FA1ECFF0FA2EEFF0FA3EEFE0FA3 - EFFF0FA3EFFF0FA3EEFE10A4EFFF10A4EFFF10A3EEFE10A4EFFF109FE8FF1F42 - 54FE373535FF454343FF4A4848FE4A4848FF4A4848FF4A4848FF474A4DFE1C90 - CCFF11A4EFFF11A3EEFE11A4EFFF11A4EFFF11A4EEFE11A4EFFF11A4EFFF11A4 - EEFE11A4EFFF12A4EFFF12A4EEFE12A4EFFF169BDFFF474A4CFE4C4A4AFF4C4A - 4AFF4C4A4AFE4C4A4AFF4A4848FF3D3B3BFE2C2A2AFF272626FE2D2C2CFF3635 - 35FF3E3C3CFE3F3D3DFF313335FF1887BFFE14A5EFFF14A5EFFF14A5EEFE13A4 - EEFF12A2EBFF109EE7FE0E98DEFF0F91D4FF6094A9FE565959FF494747FF4846 - 46FE494747FF494747FF484646FE1E1D1D8E0000003B00000017121111020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000A3B3939B8484646FE484646FE484646FE494747FE515151FE7A8F - 91FE2D9BCFFE0C95DAFE0D9BE3FE0D9FE9FE0EA1EDFE0EA2EEFE0EA2EEFE0EA2 - EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE1283 - BDFE2A292AFE3D3C3CFE484646FE494747FE494747FE494747FE494747FE385E - 72FE10A1EBFE0FA3EEFE0FA3EEFE0FA3EEFE0FA3EEFE0FA3EEFE0FA3EEFE10A3 - EEFE10A3EEFE10A3EEFE10A3EEFE10A3EEFE28769EFE494747FE4A4848FE4A48 - 48FE4A4848FE4A4848FE444242FE313132FE186A93FE174A64FE1C2428FE2120 - 20FE272626FE292828FE203F50FE12A2ECFE12A4EEFE12A4EEFE12A4EEFE11A3 - EEFE10A2EDFE0F9FE9FE0E9AE2FE0D94D9FE3698C6FE666F6FFE4B4A4AFE4846 - 46FE484646FE484646FE484646FE3B3939D70202024C00000026000000080000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000C0C0C22464444EA484646FE494747FF494747FF494747FE5B5F5FFF77A4 - B1FF1092D3FF0C97DEFE0D9DE6FF0DA0EBFE0EA2EEFF0EA3EFFF0EA2EEFE0EA3 - EFFF0EA3EFFF0EA2EEFE0EA3EFFF0EA3EFFF0EA2EEFE0EA3EFFF0EA3EFFF0EA2 - EEFE1B4A62FF323131FF434141FE494747FF494747FF494747FF494747FE4748 - 49FF2183B5FF0EA2EEFE0FA3EFFF0FA3EFFF0FA3EEFE0FA3EFFF0FA3EFFF0FA3 - EEFE0FA3EFFF0FA3EFFF0FA3EEFE119FE7FF3B5461FF494747FE4A4848FF4A48 - 48FF4A4848FE484646FF3E3C3CFF254150FE109FE7FF10A3EDFE1192D4FF1461 - 88FF192F3BFE1B1C1DFF146E9CFF10A3EEFE10A4EFFF10A4EFFF10A3EEFE10A3 - EFFF0FA2EEFF0FA0EBFE0D9CE5FF0D96DCFF1291D1FE70898FFF505050FF4947 - 47FE494747FF494747FF484646FE484646FC1514147700000036000000121616 - 1602000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000219191951484646FC484646FE494747FF494747FF4A4949FE6A7373FF5AA6 - C5FF0C92D6FF0C99E1FE0D9EE8FF0DA1ECFE0EA2EEFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE108AC8FF262C30FF3A3939FE464444FF484646FF494747FF484646FE4846 - 46FF3E525DFF0FA0EAFE0EA3EFFF0EA3EFFF0EA2EEFE0EA3EFFF0EA3EFFF0EA2 - EEFE0EA3EFFF0EA3EFFF0EA2EEFE1B8AC4FF474647FF494747FE4A4848FF4A48 - 48FF494747FE454343FF363434FF196891FE0FA3EFFF0EA2EEFE0FA3EFFF0FA3 - EFFF0F9EE7FE117BB2FF0F9AE1FF0FA3EEFE0FA3EFFF0FA3EFFF0FA3EEFE0FA3 - EFFF0EA2EEFF0EA1ECFE0D9EE7FF0D98E0FF0C91D5FE5C96ACFF585C5CFF4947 - 47FE494747FF494747FF484646FE494747FF323131BF000000440000001F0505 - 0506000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00032B2A2A8B484646FE484646FE484646FE494747FE4E4E4EFE7B8D8EFE309B - CEFE0C94DAFE0D9BE4FE0D9FEAFE0DA1EDFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE18597BFE2F2E2EFE424040FE484646FE484646FE484646FE4846 - 46FE484646FE2777A0FE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE30637DFE484646FE484646FE484646FE4846 - 46FE484646FE3F3E3EFE2B2D2FFE0F97DCFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2 - EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2EEFE0EA2 - EEFE0DA2EEFE0DA1EDFE0D9FE9FE0D9AE3FE0C94D9FE3B97C2FE646D6DFE4A48 - 48FE484646FE484646FE484646FE484646FE454343F40D0C0C65000000300000 - 000F252424010000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00063F3E3EBB494747FF484646FE494747FF494747FF545656FE7E9FA6FF1994 - D2FF0D96DDFF0D9CE5FE0EA0EBFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0F93D7FF233037FE393737FF454444FF484646FF484646FE4947 - 47FF494747FF414E55FE1497DBFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF1397DBFE414B50FF484646FF484646FE494747FF4947 - 47FF464444FE393737FF1F4D65FF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA0EAFF0D9CE4FF0C95DBFE2295CDFF6C7E82FF4C4C - 4CFE494747FF494747FF484646FE494747FF494747FE282727A60000003F0000 - 001B030303040000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0008474545E4494747FF484646FE494747FF494747FF5B6060FE74A7B7FF0F92 - D4FF0D98DFFF0D9EE7FE0EA1ECFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF16658DFE2E2D2DFF403E3EFF484646FF484646FE4947 - 47FF494747FF484646FE2E6B8BFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF237AA7FE474545FF494747FF484646FE494747FF4846 - 46FF434141FE313131FF147AAEFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA1EBFF0D9DE6FF0C97DDFE1292D2FF6C8C96FF5051 - 51FE494747FF494747FF484646FE494747FF494747FF444242EB0302024E0000 - 002A0000000B0000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000D0D - 0D16484646FE484646FE484646FE484646FE4A4848FE646B6BFE64A9C3FE0C92 - D6FE0C99E1FE0D9EE8FE0DA1EDFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0E9EE7FE21333CFE363535FE454343FE484646FE4846 - 46FE484646FE484646FE45494CFE198ECAFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0EA2EEFE395463FE484646FE484646FE484646FE484646FE4745 - 45FE3D3B3BFE263944FE0E9CE5FE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA1ECFE0D9DE7FE0C98E0FE0C91D4FE6395A8FE5557 - 57FE484646FE484646FE484646FE484646FE484646FE484646FE1F1E1E8E0000 - 003A000000160D0D0D0200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001818 - 1834494747FF494747FF484646FE494747FF4B4A4AFF6C7777FE51A7CBFF0C93 - D8FF0D9AE2FF0D9FE9FE0EA1EDFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE1472A2FF2B2B2CFF3E3D3DFF474545FE4947 - 47FF494747FF484646FE484646FF365E73FF0EA2EDFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF1790CEFF454445FE484646FF494747FF484646FE484646FF4543 - 43FF363434FE1A5F83FF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA1EDFF0D9EE8FF0C99E1FE0C92D6FF5497B4FF5A5F - 5FFE494747FF494747FF484646FE494747FF494747FF484646FE3A3838D20202 - 024B000000250000000800000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001A19 - 194B494747FF494747FF484646FE494747FF4D4C4CFF748181FE40A3CFFF0C94 - D9FF0D9BE3FF0D9FE9FE0EA2EDFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE0E9EE8FF1E3D4EFF343333FF444242FE4846 - 46FF494747FF484646FE494747FF474546FF1D87BDFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF2A6C8FFF484646FE494747FF494747FF484646FE484646FF413F - 3FFF2D2F30FE118BCAFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA1EDFF0D9FE9FF0D9AE2FE0C93D8FF4798BCFF5F66 - 66FE494747FF494747FF484646FE494747FF494747FF484646FE484646FB1312 - 127300000035000000111A191901000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A60484646FE484646FE484646FE484646FE4E4E4EFE7A8A8AFE349FD1FE0C95 - DAFE0D9BE4FE0D9FEAFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE1280B9FE282A2BFE3D3B3BFE4745 - 45FE484646FE484646FE484646FE484646FE3C5563FE109DE5FE0DA2EEFE0DA2 - EEFE109DE4FE3C4F59FE484646FE484646FE484646FE484646FE464444FE3A39 - 39FE21465AFE0EA0EBFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0D9FE9FE0D9AE3FE0C94D9FE3E99C3FE646C - 6CFE494747FE484646FE484646FE484646FE484646FE484646FE484646FE312F - 2FBD000000440000001F03030306000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A64494747FF494747FF484646FE494747FF4F4F4FFF7F9090FE2A9BD2FF0C95 - DBFF0D9BE5FF0DA0EAFE0EA2EEFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA0EBFF1B4B63FF323131FE4341 - 41FF484646FF484646FE494747FF494747FF484646FE2679A4FF0EA3EFFF0DA2 - EEFE1B87BFFF454444FF484646FE494747FF494747FF484646FE434242FF3331 - 31FF1672A1FE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA2EEFF0E9FEAFF0D9BE4FE0C94D9FF3799C6FF6771 - 71FE4A4848FF494747FF484646FE494747FF494747FF484646FE494747FF4543 - 43F20C0C0C630000002F0000000E292727010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A64494747FF494747FF484646FE494747FF505050FF819393FE279AD1FF0C95 - DBFF0D9CE5FF0DA0EAFE0EA2EEFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF108CCCFF27282AFE3B39 - 39FF464444FF484646FE494747FF494747FF484646FE414E56FF1399DDFF0DA2 - EEFE2B6A8BFF474545FF484646FE494747FF494747FF484646FE3E3D3DFF2930 - 34FF0E9CE4FE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA2EEFF0E9FEAFF0D9BE4FE0C94D9FF3498C7FF6973 - 73FE4A4848FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF262525A20000003E0000001A060606040000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A64484646FE484646FE484646FE484646FE505050FE819393FE289AD1FE0C95 - DBFE0D9BE5FE0DA0EAFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE185878FE302E - 2EFE414040FE484646FE484646FE484646FE484646FE484646FE2F6B8BFE0FA0 - E9FE3E515CFE484646FE484646FE484646FE484646FE454343FE373636FE1C56 - 74FE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0D9FEAFE0D9BE4FE0C94D9FE3599C7FE6973 - 73FE4A4848FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE444242EA0202024E0000002A0000000B0000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A63494747FF494747FF484646FE494747FF4F4F4FFF7F9090FE2D9DD2FF0C95 - DBFF0D9BE4FF0DA0EAFE0EA2EEFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0EA3EFFF0F92D4FE242F - 36FF393737FF464444FE484646FF494747FF484646FE494747FF46494CFF2381 - B1FE46494BFF494747FF484646FE494747FF484646FF424040FE2F3032FF1382 - BCFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA2EEFF0E9FEAFF0D9BE3FE0C94D9FF3999C6FF6770 - 70FE4A4848FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE1B1B1B880000003A000000161312120200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001B1A - 1A5E494747FF494747FF484646FE494747FF4E4E4EFF7A8989FE38A0D1FF0C95 - DAFF0D9BE4FF0D9FEAFE0EA2EEFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0EA3EFFF0DA2EEFE1662 - 89FF2E2C2CFF413F3FFE484646FF494747FF484646FE494747FF494747FF454B - 4FFE494747FF494747FF484646FE494747FF474545FF3B3A3AFE243D4AFF0E9F - EAFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA2EDFF0E9FE9FF0D9AE3FE0C93D9FF419AC2FF646C - 6CFE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE393737CF0202024A000000240000000700000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001A1A - 1A48484646FE484646FE484646FE484646FE4C4C4CFE738080FE47A5CFFE0C94 - D9FE0C9AE3FE0D9FE9FE0DA1EDFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0FA3EFFE149B - E1FE293D48FE414040FE504E4EFE555353FE565454FE575555FE575555FE5654 - 54FE565454FE555353FE535151FE514F4FFE4B4949FE373636FE196B94FE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA1EDFE0D9FE8FE0C9AE2FE0C93D7FE4D9ABBFE5F65 - 65FE494747FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FB1212127200000035000000111D1C1C01000000000000 - 0000000000000000000000000000000000000000000000000000000000001A19 - 1931494747FF494747FF484646FE494747FF4B4A4AFF6B7575FE59A9CAFF0C93 - D7FF0D99E2FF0D9EE9FE0EA1EDFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF0EA3EFFF0EA3EEFE10A4EFFF17A6EFFF1FA9F0FF24ABF0FE25AB - F0FF2B7FAAFF413F3FFE515050FF595858FF5B5959FE5B5959FF5B5959FF5B59 - 59FE5B5959FF5B5959FF5B5959FE5A5858FF535151FF3F4549FE269BD8FF1EA9 - F0FF16A6EFFE10A3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA1ECFF0D9EE8FF0C99E1FE0C92D6FF5C9AB2FF5A5E - 5EFE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF302E2EB9000000430000001E04040405000000000000 - 0000000000000000000000000000000000000000000000000000000000000F0F - 0F0F494747FF494747FF484646FE494747FF4A4848FF626A6AFE6CACC3FF0C92 - D6FF0D98E0FF0D9EE8FE0EA1ECFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2 - EEFE0EA3EFFF12A4EFFF1FA9F0FE28ADF0FF2BAEF1FF2BAEF1FF2BAEF0FE2BAE - F1FF2BACEEFF3A525FFE4E4C4CFF5B5959FF5F5D5DFE5F5D5DFF5F5D5DFF5F5D - 5DFE5F5D5DFF5F5D5DFF5F5D5DFE5D5B5BFF525050FF3A6378FE2BADEFFF2BAE - F1FF2BAEF0FE27ACF0FF1EA9F0FF11A4EFFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA1ECFF0D9DE7FF0C98DFFE0D91D4FF6A96A5FF5456 - 56FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF444242F00A09095F0000002E0000000D222121010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0001484646E6484646FE484646FE484646FE494747FE5A5E5EFE7CA9B6FE1292 - D3FE0C97DEFE0D9DE7FE0DA0EBFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE11A4 - EFFE22AAF0FE2FAFF1FE30B0F1FE30B0F1FE30B0F1FE30B0F1FE30B0F1FE30B0 - F1FE30B0F1FE3490BFFE484A4CFE585757FE626060FE636161FE636161FE6361 - 61FE636161FE636161FE636161FE5E5C5CFE4F4E4EFE368EBCFE30B0F1FE30B0 - F1FE30B0F1FE30B0F1FE30B0F1FE2EAFF1FE20A9F0FE10A3EFFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA0EBFE0D9CE6FE0C96DDFE1793D1FE708C92FE4F50 - 50FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE252424A00000003E0000001A0A0909040000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000444242BA494747FF484646FE494747FF494747FF535454FE84A0A3FF2097 - D1FF0D96DCFF0D9CE5FE0EA0EAFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF1AA7EFFF30B0 - F1FE37B2F2FF37B2F2FF36B2F1FE37B2F2FF37B2F2FF37B2F2FF36B2F1FE37B2 - F2FF37B2F2FF37B1EFFE42687BFF555454FF636161FE676565FF676666FF6766 - 66FE676666FF676666FF666464FE5E5C5CFF4B575DFF37B0EEFE37B2F2FF37B2 - F2FF36B2F1FE37B2F2FF37B2F2FF36B2F1FE36B2F2FF2FAFF1FE17A6EFFF0EA3 - EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EDFE0E9FEAFF0D9BE4FF0C95DAFE2B97CBFF6E7D7FFF4C4B - 4BFE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF424040E70101014D000000290000000A0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00002D2B2B86484646FE484646FE484646FE494747FE4D4D4DFE7A8B8BFE40A2 - CEFE0C94D9FE0D9AE3FE0D9FE9FE0DA1EDFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE22AAF0FE3AB4F1FE3CB5 - F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5 - F1FE3CB5F1FE3CB5F1FE3F9FCFFE535759FE656363FE6B6A6AFE6C6A6AFE6C6A - 6AFE6C6A6AFE6C6A6AFE696868FE5D5C5CFE477E9AFE3CB5F1FE3CB5F1FE3CB5 - F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE3CB5F1FE39B3F1FE1EA9 - EFFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA1EDFE0D9EE8FE0D9AE2FE0C93D7FE4A9BBFFE636B6BFE4A48 - 48FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE1A19198300000038000000150000 - 0002000000000000000000000000000000000000000000000000000000000000 - 00001C1B1B46494747FD484646FE494747FF494747FF4A4949FE677070FF6BAC - C3FF0C91D5FF0C98E0FE0D9EE7FF0DA1ECFE0EA2EEFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF26ACF0FE42B7F2FF43B7F2FF43B7 - F2FE43B7F2FF43B7F2FF43B7F2FE43B7F2FF43B7F2FF43B7F2FF43B7F2FE43B7 - F2FF43B7F2FF43B7F2FE43B6F1FF528099FF6A6868FE706F6FFF716F6FFF716F - 6FFE716F6FFF716F6FFF6B6969FE5B5F61FF46A5D5FF43B7F2FE43B7F2FF43B7 - F2FF43B7F2FE43B7F2FF43B7F2FF43B7F2FE43B7F2FF43B7F2FE43B7F2FF41B6 - F2FF21AAF0FE0EA3EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA2EEFF0DA0EBFE0D9DE7FF0D97DEFF0C90D4FE6C99A9FF575959FF4947 - 47FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE383737CE02010149000000240000 - 0007000000000000000000000000000000000000000000000000000000000000 - 00000F0F0F17474545E9484646FE494747FF494747FF494747FE595D5DFF81A6 - ADFF1894D2FF0C96DCFE0D9CE5FF0DA0EAFE0EA2EEFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF21AAF0FF47B8F2FE49B9F3FF49B9F3FF49B9 - F2FE49B9F3FF49B9F3FF49B9F2FE49B9F3FF49B9F3FF49B9F3FF49B9F2FE49B9 - F3FF49B9F3FF49B9F2FE49B9F3FF4DAFE1FF717070FE757474FF767474FF7574 - 74FE767474FF747373FF6B6A6AFE597380FF4AB8F1FF49B9F2FE49B9F3FF49B9 - F3FF49B9F2FE49B9F3FF49B9F3FF49B9F2FE49B9F3FF49B9F2FE49B9F3FF49B9 - F3FF46B8F2FE1BA7EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0EA2EDFF0D9FEAFE0D9BE4FF0C95DBFF1D95D0FE75888AFF4F4F4FFF4947 - 47FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE474545F91010106E000000340000 - 0010000000010000000000000000000000000000000000000000000000000000 - 0000000000003F3D3DB8484646FE484646FE484646FE484646FE505050FE7A8C - 8DFE41A2CEFE0C93D8FE0D9AE2FE0D9EE8FE0DA1EDFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA2EEFE0DA2EEFE13A5EFFE47B8F2FE50BCF3FE50BCF3FE50BCF3FE50BC - F3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BC - F3FE50BCF3FE50BCF3FE50BCF3FE5AA7CFFE797777FE7B7979FE7B7979FE7B79 - 79FE7B7979FE777676FE6B6A6AFE5698B9FE50BCF3FE50BCF3FE50BCF3FE50BC - F3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BCF3FE50BC - F3FE50BCF3FE41B6F2FE11A4EFFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0DA1ECFE0D9EE8FE0C99E1FE0C92D7FE4B9EC2FE646C6CFE4A4949FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE2E2D2DB4000000430000 - 001D000000050000000000000000000000000000000000000000000000000000 - 00000000000024232360484646FE494747FF494747FF484646FE4A4949FF646C - 6CFF77ADBEFF0C90D4FE0D97DEFF0D9DE6FE0EA0EBFF0EA2EEFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE34B1F1FF58BEF4FF57BEF3FE58BEF4FF58BEF4FF57BE - F3FE58BEF4FF58BEF4FF57BEF3FE58BEF4FF58BEF4FF58BEF4FF57BEF3FE58BE - F4FF58BEF4FF57BEF3FE58BEF3FF6E94A8FF807E7EFE807F7FFF807F7FFF807F - 7FFE807E7EFF797878FF6A7277FE59B7E7FF58BEF4FF57BEF3FE58BEF4FF58BE - F4FF57BEF3FE58BEF4FF58BEF4FF57BEF3FE58BEF4FF57BEF3FE58BEF4FF58BE - F4FF57BEF3FE58BEF4FF2AADF0FF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA2 - EDFF0EA0EAFF0D9CE6FE0D96DDFF1392D2FF6F97A3FE545656FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF444242F00909095E0000 - 002D0000000D0000000100000000000000000000000000000000000000000000 - 0000000000000C0C0C19484646E9494747FF494747FF484646FE494747FF5456 - 56FF849A9BFF2E9CD1FE0C94DAFF0D9AE3FE0E9FE9FF0EA1EDFF0DA2EEFE0EA3 - EFFF0EA3EFFF0FA3EFFE54BDF3FF5EC1F4FF5EC1F4FE5EC1F4FF5EC1F4FF5EC1 - F4FE5EC1F4FF5EC1F4FF5EC1F4FE5EC1F4FF5EC1F4FF5EC1F4FF5EC1F4FE5EC1 - F4FF5EC1F4FF5EC1F4FE60BDECFF7E888FFF858484FE868484FF868484FF8584 - 84FE848282FF7A7A7AFF688EA1FE5EC1F3FF5EC1F4FF5EC1F4FE5EC1F4FF5EC1 - F4FF5EC1F4FE5EC1F4FF5EC1F4FF5EC1F4FE5EC1F4FF5EC1F4FE5EC1F4FF5EC1 - F4FF5EC1F4FE5EC1F4FF4BBAF2FF0FA3EFFE0EA3EFFF0EA3EFFF0DA2EEFE0EA1 - ECFF0D9EE8FF0D9AE2FE0C93D8FF3B9BC7FF6E7B7CFE4C4B4BFF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE2423239C0000 - 003D000000190000000300000000000000000000000100000000000000000000 - 000000000000020202013B39399D484646FE484646FE484646FE484646FE4C4B - 4BFE697272FE6DAEC5FE0E91D4FE0C97DEFE0D9DE6FE0DA0EBFE0DA2EDFE0DA2 - EEFE0DA2EEFE1DA8F0FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4 - F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4 - F4FE65C4F4FE65C4F4FE6EB4D8FE898889FE8B8989FE8B8989FE8B8989FE8A89 - 89FE868585FE7B7A7AFE68B0D5FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4 - F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4F4FE65C4 - F4FE65C4F4FE65C4F4FE5FC1F4FE18A6EFFE0DA2EEFE0DA2EEFE0DA1EDFE0DA0 - EAFE0D9CE5FE0C97DDFE1091D3FE6B9AAAFE595D5DFE494747FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE413F3FE30000 - 0049000000280000000A00000000000000000000000200000000000000000000 - 000000000000000000001A1A1A2E494747FD494747FF484646FE494747FF4947 - 47FF545656FF849C9DFE329DCFFF0C93D8FE0D9AE2FF0D9EE8FF0DA1ECFE0EA2 - EEFF0EA3EFFF2CAEF1FE6DC7F5FF6DC7F5FF6CC7F5FE6DC7F5FF6DC7F5FF6CC7 - F5FE6DC7F5FF6DC7F5FF6CC7F5FE6DC7F5FF6DC7F5FF6DC7F5FF6CC7F5FE6DC7 - F5FF6DC7F5FF6CC7F5FE81A5B8FF908F8FFF908F8FFE908F8FFF908F8FFF8F8E - 8EFE898787FF7A8890FF6CC7F5FE6DC7F5FF6DC7F5FF6CC7F5FE6DC7F5FF6DC7 - F5FF6CC7F5FE6DC7F5FF6DC7F5FF6CC7F5FE6DC7F5FF6CC7F5FE6DC7F5FF6DC7 - F5FF6CC7F5FE6DC7F5FF6BC6F5FF22AAF0FE0EA2EFFF0EA2EEFF0DA1ECFE0D9E - E7FF0D99E1FF0C93D8FE3E9CC6FF6E7B7CFF4D4D4DFE494747FF494848FF4B4A - 4AFE4D4D4DFF4E4D4DFF4E4D4DFE4E4D4DFF4E4D4DFF4E4D4DFE4E4D4DFF4E4D - 4DFF4D4D4DFE4C4B4BFF4A4949FF494747FE494747FF494747FF484646FE1A19 - 1982000000390000001500000002000000000000000100000000000000000000 - 0000000000000000000000000000484646B7494747FF484646FE494747FF4947 - 47FF4B4A4AFF677070FE77ADBEFF1192D3FE0D96DDFF0D9CE5FF0D9FEAFE0EA1 - EDFF0EA2EEFF32B1F1FE74CAF6FF74CAF6FF74CAF5FE74CAF6FF74CAF6FF74CA - F5FE74CAF6FF74CAF6FF74CAF5FE76C3EBFF889EAAFF8EA0AAFF8FA1AAFE8FA1 - ABFF8FA1ABFF8FA1AAFE94989AFF969595FF969595FE969595FF969595FF9492 - 92FE8A898AFF7AA8BFFF74CAF5FE74CAF6FF74CAF6FF74CAF5FE74CAF6FF74CA - F6FF74CAF5FE74CAF6FF74CAF6FF74CAF5FE74CAF6FF74CAF5FE74CAF6FF74CA - F6FF74CAF5FE74CAF6FF74CAF6FF26ACF0FE0EA2EEFF0EA1ECFF0D9FE9FE0D9B - E4FF0C95DBFF1492D1FE7498A2FF585B5BFF494747FE494747FF4D4E4FFF5A68 - 6DFE68797EFF6B7D82FF6B7D82FE6B7D82FF6B7D82FF6B7D82FE6B7D82FF6B7D - 82FF6A7C81FE647073FF545656FF4A4848FE494747FF494747FF484646FE3735 - 35CA010101480000002300000006000000000000000100000000000000000000 - 000000000000000000000000000048464640484646F8484646FE484646FE4846 - 46FE494747FE525353FE7B8E8EFE4FA7CDFE0C92D6FE0D98DFFE0D9DE7FE0DA0 - EBFE0DA1EDFE2CAEF0FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCD - F5FE7BCDF5FE7BCDF5FE7BCDF5FE7EC5E8FE93979AFE9B9A9AFE9C9B9BFE9C9B - 9BFE9C9B9BFE9C9B9BFE9C9B9BFE9C9B9BFE9C9B9BFE9C9B9BFE9B9A9AFE9796 - 96FE8C8F92FE7DC3E6FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCD - F5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCDF5FE7BCD - F5FE7BCDF5FE7BCDF5FE78CBF5FE22AAEFFE0DA1EDFE0DA0EAFE0D9DE6FE0C97 - DEFE0D92D5FE56A1C0FE677070FE4C4B4BFE494747FE494747FE515B5EFE66BB - E3FE7FD0F6FE7FD0F6FE7FD0F6FE7FD0F6FE7FD0F6FE7FD0F6FE7FD0F6FE7FD0 - F6FE7FD0F6FE86BCD6FE646969FE4C4A4AFE484646FE484646FE484646FE4745 - 45F80F0E0E6A000000330000000F000000010000000100000000000000000000 - 000000000000000000000000000048464601535858B1484646FE494747FF4947 - 47FF494747FF4A4848FE5C6161FF87A5A9FE2699D1FF0C94D9FF0C99E1FE0D9E - E8FF0EA0EBFF1AA6EEFE81CFF6FF83CFF7FF83CFF6FE83CFF7FF83CFF7FF83CF - F6FE83CFF7FF83CFF7FF83CFF6FE85C8EAFF9A9EA0FFA1A0A0FFA1A0A0FEA1A0 - A0FFA1A0A0FFA1A0A0FEA1A0A0FFA1A0A0FFA1A0A0FEA1A0A0FFA09F9FFF9998 - 98FE8CA3AFFF83CFF7FF83CFF6FE83CFF7FF83CFF7FF83CFF6FE83CFF7FF83CF - F7FF83CFF6FE83CFF7FF83CFF7FF83CFF6FE83CFF7FF83CFF6FE83CFF7FF83CF - F7FF83CFF6FE83CFF7FF76CAF6FF16A5EEFE0EA0EBFF0D9DE7FF0C99E1FE0C93 - D8FF329ACAFF75898CFE515252FF494747FF484646FE494747FF535B5FFF68BC - E2FE80D1F7FF80D1F7FF82CBEDFE82C8E7FF7FC5E5FF7EC4E4FE7EC4E4FF7EC4 - E4FF7EC4E4FE81B0C6FF616565FF4B4A4AFE494747FF494747FF484646FE4947 - 47FF2E2D2DB4000000420000001D000000050000000000000000000000000000 - 0000000000000000000000000000000000008AAEAE2F484646F2494747FF4947 - 47FF494747FF494747FE4D4D4DFF687171FE79AEBEFF1794D2FF0C95DBFE0D9B - E3FF0D9EE8FF0EA1EBFE6CC6F4FF8AD2F7FF8AD2F7FE8AD2F7FF8AD2F7FF8AD2 - F7FE8AD2F7FF8AD2F7FF8AD2F7FE8CCBEBFF9FA3A5FFA6A5A5FFA6A5A5FEA6A5 - A5FFA6A5A5FFA6A5A5FEA6A5A5FFA6A5A5FFA6A5A5FEA6A5A5FFA4A3A3FF9B9B - 9BFE8DBED8FF8AD2F7FF8AD2F7FE8AD2F7FF8AD2F7FF8AD2F7FE8AD2F7FF8AD2 - F7FF8AD2F7FE8AD2F7FF8AD2F7FF8AD2F7FE8AD2F7FF8AD2F7FE8AD2F7FF8AD2 - F7FF8AD2F7FE8AD2F7FF5DC0F3FF0EA0EBFE0D9EE8FF0D9AE2FF0C94DAFE1D95 - D0FF7298A3FF5A5F5FFE4A4848FF494747FF484646FE494747FF4F5050FF5D8E - A3FE7CCFF6FF80D1F7FF86C7E4FE899DA0FF6E7B7DFF636D6FFE626B6DFF626B - 6DFF616B6CFE5C6263FF515151FF4A4848FE494747FF494747FF484646FE4947 - 47FF434141ED0808085A0000002B0000000B0000000000000000000000000000 - 000000000000000000000000000000000000ABE2E2015E696989484646FE4846 - 46FE484646FE484646FE494747FE515252FE768484FE68ADC7FE0F91D3FE0C96 - DCFE0D9BE4FE0D9EE8FE39B1EFFE8FD4F6FE91D5F7FE91D5F7FE91D5F7FE91D5 - F7FE91D5F7FE91D5F7FE91D5F7FE93CEECFEA3A6A9FEA8A7A7FEA8A8A8FEA8A8 - A8FEA8A8A8FEA8A8A8FEA8A8A8FEA8A8A8FEA8A8A8FEA8A8A8FEA5A4A4FE9CA4 - A8FE92D1F2FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5 - F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5F7FE91D5 - F7FE91D5F7FE8DD3F6FE2AACEDFE0D9EE8FE0D9AE3FE0C95DBFE1091D2FE6CA1 - B3FE636B6BFE4C4B4BFE494747FE484646FE484646FE484646FE4A4949FE5659 - 59FE65AAC8FE7ED0F6FE7FD0F6FE89BACFFE6F7879FE535454FE4B4A4AFE4B4A - 4AFE4B4A4AFE4A4949FE494848FE494747FE484646FE484646FE484646FE4846 - 46FE484646FE2121219600000038000000140000000100000000000000000000 - 00000000000000000000000000000000000000000000ADE4E409494747D64947 - 47FF494747FF484646FE494747FF494747FE555757FF7C8E8FFF5BAACAFE0D91 - D4FF0C96DDFF0D9BE4FE11A0E9FF6DC6F3FF99D7F7FE99D7F8FF99D7F8FF99D7 - F7FE99D7F8FF99D7F8FF99D7F7FE9AD0ECFFA3A6A8FFA6A5A5FFA6A5A5FEA6A5 - A5FFA6A5A5FFA6A5A5FEA6A5A5FFA6A5A5FFA6A5A5FEA5A5A5FFA4A3A3FF9DBA - C9FE99D7F8FF99D7F8FF99D7F7FE99D7F8FF99D7F8FF99D7F7FE99D7F8FF99D7 - F8FF99D7F7FE99D7F8FF99D7F8FF99D7F7FE99D7F8FF99D7F7FE99D7F8FF99D7 - F8FF99D7F7FE5DBFF1FF0F9FE8FF0D9AE3FE0C96DBFF1092D3FF5FA2BCFE6973 - 73FF4E4E4EFF494747FE494747FF494747FF484646FE494747FF494747FF4B4A - 4AFE596467FF6BB8DAFF7FD0F6FE80D0F6FF88ABBAFF656C6CFE4E4D4DFF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF3F3D3DDD000000430000001E0000000500000000000000000000 - 000000000000000000000000000000000000000000000000000088ABAB414A49 - 49F3494747FF484646FE494747FF484646FE4A4949FF595C5CFF819597FE50A7 - CCFF0E92D4FF0C96DCFE0D9BE3FF22A6EAFF89D0F5FEA1DAF8FFA1DAF8FFA0DB - F8FEA1DBF8FFA1DBF8FFA0DBF8FEA1D1E9FFA5A6A7FFA5A5A5FFA5A5A5FEA5A5 - A5FFA5A5A5FFA5A5A5FEA5A5A5FFA5A5A5FFA5A5A5FEA5A5A5FFA5A5A5FFA1D2 - EAFEA1DBF8FFA1DBF8FFA0DBF8FEA1DBF8FFA1DBF8FFA0DBF8FEA1DBF8FFA1DB - F8FFA0DBF8FEA1DBF8FFA1DBF8FFA0DBF8FEA1DBF8FFA0DBF8FEA1DAF8FFA0DA - F8FF81CDF4FE17A2E8FF0D9AE3FF0C96DCFE1092D3FF58A1BEFF6F7C7DFE5051 - 51FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4947 - 47FE4E4D4DFF5C747CFF72C5EAFE80D1F7FF82CDF1FF849DA6FE5C6161FF4C4B - 4BFF494747FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FD0E0E0E60000000270000000800000000000000000000 - 0000000000000000000000000000000000000000000000000000000000006777 - 777C484646FE484646FE484646FE484646FE494747FE4B4A4AFE5A5E5EFE8299 - 9AFE55A9CCFE0D90D4FE0C96DBFE0D9AE2FE2AA9E9FE98D6F6FEA7DCF8FEA7DD - F8FEA7DDF8FEA7DEF8FEA7DEF8FEA8DBF5FEA8D1E5FEA8D0E4FEA8D0E4FEA8D0 - E4FEA8D0E4FEA8D0E4FEA8D0E4FEA8D0E4FEA8D0E4FEA8D0E4FEA8D1E5FEA7DE - F8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DE - F8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DEF8FEA7DDF8FEA7DDF8FEA7DCF8FE8CD1 - F4FE22A5E8FE0D99E1FE0C95DAFE0E90D3FE5DA3BFFE707E7FFE525353FE4947 - 47FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE494747FE505151FE5E8594FE7ACEF5FE80D0F6FE85C9E9FE7D8A8DFE575A - 5AFE4A4949FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE242323970000002E0000000C00000000000000000000 - 000000000000000000000000000000000000000000000000000000000000B8F6 - F6065B6363A9484646FE494747FF484646FE494747FF494747FF4B4949FE595D - 5DFF7E9091FF68ADC8FE1392D2FF0C94DAFF0C99E0FE26A6E8FF8BD0F4FFAFDF - F8FEAFDFF9FFAFE0F9FFAFE0F9FEAFE0FAFFAFE0FAFFAFE0FAFFAFE0F9FEAFE0 - FAFFAFE0FAFFAFE0F9FEAFE0FAFFAFE0FAFFAFE0F9FEAFE0FAFFAFE0FAFFAFE0 - F9FEAFE0FAFFAFE0FAFFAFE0F9FEAFE0FAFFAFE0FAFFAFE0F9FEAFE0FAFFAFE0 - FAFFAFE0F9FEAFE0FAFFAFE0FAFFAFE0F9FEAFDFF9FFAFDFF8FE7FCCF3FF1EA2 - E6FF0C98DFFE0C94D9FF1994D1FF69A4B9FE6D7878FF515252FF494747FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF4A4848FF535555FE639AB1FF7DCFF5FF80D0F6FE87C1DCFF7480 - 81FF545555FE4A4848FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE343333C5000000320000000E00000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000A2D3D311464A4DCE494747FF484646FE494747FF494747FF494747FE4B49 - 49FF565959FF768585FE74AEC1FF2398D1FF0C92D7FE0D97DDFF1AA0E4FF6BC3 - F0FEAFDFF8FFB6E2F9FFB5E2F9FEB6E3FAFFB6E3FAFFB6E3FAFFB5E3F9FEB6E3 - FAFFB6E3FAFFB5E3F9FEB6E3FAFFB6E3FAFFB5E3F9FEB6E3FAFFB6E3FAFFB5E3 - F9FEB6E3FAFFB6E3FAFFB5E3F9FEB6E3FAFFB6E3FAFFB5E3F9FEB6E3FAFFB6E3 - FAFFB5E3F9FEB6E3FAFFB6E2F9FFB5E2F8FEAADDF7FF61BFEEFE149DE3FF0C96 - DDFF0C92D6FE2998CEFF729FADFF687272FE4F5050FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF4B4949FE575E5FFF73B2CDFF91D7F8FE8FD6F7FF91B8 - C9FF6B7474FE4F5050FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE3F3E3EDB040404370000000E00000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000001B79A921464A4DDE484646FE484646FE484646FE484646FE4947 - 47FE4A4848FE525353FE6D7878FE83A9B1FE44A4CFFE0C90D4FE0C94DAFE0D98 - DFFE37ACE8FE8CD0F3FEBBE4F9FEBDE5F9FEBDE5F9FEBDE5FAFEBDE5FAFEBDE6 - FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6 - FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE6FAFEBDE5FAFEBDE5 - FAFEBDE5F9FEBDE5F9FEB9E3F8FE81CCF2FE2EA8E7FE0D98DFFE0C94D9FE0F91 - D3FE49A2C9FE7A969BFE606767FE4D4D4DFE494747FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE494747FE4C4C4CFE5F6C70FE95CDE6FEA9E0F9FEA8DE - F7FE94ABB4FE5F6565FE4C4B4BFE494747FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE444242E6060606390000000C00000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000001A7BAC29454B4FDD494747FF494747FF484646FE4947 - 47FF494747FF494747FE4E4D4DFF5E6464FF809393FE71AEC4FF2799D1FF0C91 - D5FE0C95DBFF0E99E0FF34ABE7FE80CBF1FFB3E0F7FFC4E7FAFFC3E7F9FEC4E7 - FAFFC4E7FBFFC3E8FAFEC4E8FBFFC4E8FBFFC3E8FAFEC4E8FBFFC4E8FBFFC3E8 - FAFEC4E8FBFFC4E8FBFFC3E8FAFEC4E8FBFFC4E7FBFFC3E7FAFEC4E7FAFFC4E7 - FAFFAEDEF7FE76C7F0FF2EA8E6FF0C98DFFE0C95DAFF0C91D4FE2E9ACEFF71A4 - B4FF728080FE565858FF4B4A4AFF494747FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF4E4E4EFF677B82FEA6DCF4FFB0E1 - FAFFAEDDF3FE808C8EFF555757FF494747FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE434141E1060606310000000800000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000001A7BAC29464A4DDC494747FF484646FE4947 - 47FF494747FF484646FE494747FF4B4949FF545656FE6C7777FF83A2A6FF60AB - C8FE2197D1FF0D92D5FF0C94DAFE0E98DEFF1EA1E3FF49B4EAFF83CCF2FEAADD - F6FFBEE5F9FFC8E9FAFECAEAFAFFCAEAFAFFCAEAFAFECAEAFBFFCAEAFBFFCAEA - FAFECAEAFBFFCAEAFAFFCAEAFAFEC7E9FAFFBDE5F8FFA5DBF6FE7CC9F1FF45B2 - E9FF1A9EE2FE0D97DEFF0C94D9FF0E92D5FE2798CFFF61A5BFFE7A9093FF6168 - 68FF4F5050FE4A4848FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4A49 - 49FE4B4A4AFF4B4949FF494848FE494747FF494848FF525252FE80A3B1FFB4E3 - FAFFB5E4FAFE9EB8C2FF606666FF4B4949FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE3D3C3CD3030303220000000500000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001B79A921464A4DCA484646FE4846 - 46FE484646FE484646FE484646FE494747FE494747FE4D4C4CFE595D5DFE717D - 7DFE85A5AAFE65ADC7FE2C9CD1FE0C90D3FE0C93D7FE0C95DBFE0C97DDFE119B - E1FE25A4E5FE3EAEE8FE58BAECFE6BC2EFFE79C8F0FE82CCF2FE86CDF2FE81CB - F2FE78C7F0FE69C1EEFE55B9EBFE3AADE8FE23A3E4FE0F99E0FE0C97DDFE0C95 - DAFE0C92D7FE0E91D3FE309CD0FE68A7BEFE7C9699FE677070FE535454FE4B4A - 4AFE494747FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE494747FE4D4C4CFE575A - 5AFE616767FE5D6363FE525353FE4A4848FE494747FE4A4949FE637175FEAFDE - F2FEBBE6FAFEAECDDBFE6A7171FE4C4B4BFE484646FE484646FE484646FE4846 - 46FE484646FE484646FE343333B2000000130000000200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000001A7BAC0F3F515BA14947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494848FF4D4C - 4CFE585B5BFF6B7575FF84999AFE7CACBAFF54A7CAFF2C9CD1FF1192D2FE0C91 - D5FF0C93D8FF0C94D9FE0D95DBFF0D96DCFF0C96DDFE0D97DDFF0D97DDFF0C96 - DDFE0D96DDFF0D96DCFF0C95DBFE0C94D9FF0C93D7FF0C91D5FE1492D2FF2F9C - CFFF57A5C5FE7AA4B0FF7B8C8CFF626969FE525454FF4B4A4AFE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF555C5FFFA2D0 - E4FEBBE2F5FFAECEDDFF6B7272FE4D4D4DFF494747FF494848FE5C6263FFB0D9 - EBFFC2E8FBFEB4D1DEFF6C7474FF4C4C4CFE494747FF494747FF484646FE4947 - 47FF494747FF484646FE21202070000000090000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000E87C4053859 - 6A70484849EF484646FE494747FF494747FF484646FE494747FF494747FF4947 - 47FE494747FF4C4B4BFF535555FE606666FF717E7EFF80979AFF7FA9B3FE6AAA - C2FF51A6CBFF3AA0CEFE2799D0FF1C96D2FF1894D2FE1594D3FF1593D3FF1694 - D3FE1894D2FF1D96D2FF2999CFFE3CA0CDFF52A5C8FF6BA7BDFE7CA1AAFF7A8E - 90FF6A7474FE5B5F5FFF505151FF4A4949FE494747FF494747FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF55595AFFA9CF - DFFEC8EBFCFFC3E3F3FF869395FE585C5CFF4C4C4CFF4F4F4FFE718389FFC1E6 - F7FFC8EBFBFEB3CDD8FF686F6FFF4C4B4BFE494747FF494747FF484646FE4947 - 47FF494747FF484646F20909091F000000020000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000088B0B236535858CA484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE494747FE4A4848FE4C4C4CFE525353FE5A5F5FFE656E - 6EFE707C7CFE7B8C8CFE829899FE839FA3FE81A2A9FE7FA4ADFE7EA4ADFE7EA3 - ACFE80A1A7FE829DA0FE7F9495FE778686FE6D7777FE616868FE575A5AFE5050 - 50FE4B4A4AFE494747FE494747FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE494747FE4F5050FE8FAD - B9FECEEDFBFECEECFBFEB6CED8FE7A8787FE656D6DFE6E7B7DFEB2D2DFFECEED - FBFECEEDFBFE9FB1B7FE5D6262FE4A4949FE484646FE484646FE484646FE4846 - 46FE484646FE3130309400000006000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000ADE5E502768E8E724C4C4CE6484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF494747FF494747FE4A48 - 48FF4B4A4AFF4D4D4DFE505050FF525454FF545656FE565858FF565959FF5558 - 58FE535555FF525252FF4F4F4FFE4C4B4BFF4B4949FF494747FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF4B4949FF5F68 - 6AFEBCDCEAFFD4EFFCFFD4EFFCFECEE9F6FFC2DEEAFFCEECF9FED4EFFCFFD4EF - FCFFBFD7E2FE717A7AFF515252FF494747FE494747FF494747FF484646FE4947 - 47FF444242DC0B0A0A1D00000001000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000004A49491C4846468E494747F0494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF494747FE494747FF494747FF4947 - 47FE494747FF494747FF494747FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4E4D - 4DFE697578FFB0CBD5FFD2EBF7FED9F1FCFFDAF1FDFFD9F0FCFED2EAF6FFB4CA - D2FF798385FE565858FF4A4949FF494747FE494747FF494747FF484646FE4846 - 46F31F1F1F4C0000000100000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000484646244846468A4846 - 46ED484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4947 - 47FE4D4D4DFE595C5CFE707D80FE859395FE8A979AFE869497FE768284FE6167 - 67FE525454FE4B4949FE494747FE484646FE484646FE484646FE484646FC2D2C - 2C63010101020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000004846 - 460B49474765494747BD484646F6494747FF494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF4A4848FF4C4B4BFE4E4E4EFF505050FF4F4F4FFE4D4D4DFF4B49 - 49FF494747FE494747FF494747FF484646FE494747FF464444E1302F2F4C0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000049474704484646224947476E494747B4494747E5484646F94947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FF484646FE494747FF494747FF484646FE4947 - 47FF494747FF484646FE494747FF494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FF484646FE494747FF494747FF484646FE494747FF4947 - 47FF484646FE494747FF494747FE484646EF413F3F943837371D000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000004846460F484646354846 - 46604846468B484646AE484646CD484646E4484646F3484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FE484646FE484646FE484646FE484646FE484646FE484646FE484646FE4846 - 46FC484646E2484646B24846466E484646210000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFF - FFFF80000FFFFFFFFFFFFFFFFFF8000001FFFFFFFFFFFFFFFFE00000003FFFFF - FFFFFFFFFF000000000FFFFFFFFFFFFFFE0000000003FFFFFFFFFFFFF8000000 - 0000FFFFFFFFFFFFE000000000007FFFFFFFFFFFC000000000001FFFFFFFFFFF - 8000000000000FFFFFFFFFFE00000000000007FFFFFFFFFC00000000000003FF - FFFFFFF800000000000001FFFFFFFFF000000000000000FFFFFFFFF000000000 - 0000007FFFFFFFE0000000000000003FFFFFFFC0000000000000001FFFFFFF80 - 000000000000001FFFFFFF80000000000000000FFFFFFF000000000000000007 - FFFFFE000000000000000007FFFFFE000000000000000003FFFFFC0000000000 - 00000003FFFFFC000000000000000001FFFFF8000000000000000001FFFFF800 - 0000000000000000FFFFF0000000000000000000FFFFF0000000000000000000 - 7FFFF00000000000000000007FFFE00000000000000000007FFFE00000000000 - 000000003FFFE00000000000000000003FFFE00000000000000000001FFFC000 - 00000000000000001FFFC00000000000000000000FFFC0000000000000000000 - 0FFFC00000000000000000000FFFC000000000000000000007FFC00000000000 - 0000000007FFC000000000000000000003FFC000000000000000000003FFC000 - 000000000000000001FFC000000000000000000001FFC0000000000000000000 - 01FFC000000000000000000000FFC000000000000000000000FFC00000000000 - 00000000007FC0000000000000000000007FC0000000000000000000003FC000 - 0000000000000000003FE0000000000000000000003FE0000000000000000000 - 001FE0000000000000000000001FE0000000000000000000000FF00000000000 - 00000000000FF00000000000000000000007F00000000000000000000006F000 - 00000000000000000006F80000000000000000000002FC000000000000000000 - 0002FC0000000000000000000000FC0000000000000000000001FE0000000000 - 000000000001FE0000000000000000000000FF0000000000000000000000FF80 - 00000000000000000000FFC000000000000000000000FFC00000000000000000 - 0000FFE000000000000000000000FFF000000000000000000000FFF800000000 - 000000000000FFFC00000000000000000000FFFE00000000000000000000FFFF - 00000000000000000001FFFF80000000000000000001FFFFE000000000000000 - 0003FFFFF0000000000000000003FFFFFC000000000000000007FFFFFF000000 - 00000000000FFFFFFFC0000000000000003FFFFFFFF0000000000000007FFFFF - FFFF00000000000001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28000000480000009000 - 0000010020000000000060540000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000003737370137373702373737043737370637373707373737073737 - 3707373737063737370537373703373737010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000001000000050000 - 000B000000130000001B00000023000000290000002E00000030000000310000 - 00310000002F0000002C000000260000001E000000160000000E000000070000 - 0002000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000040000000D0000001A000000290000 - 00370000004200000049030303520C0C0C64100F0F7110101073101010741010 - 10740E0D0D6B0707075B000000500000004C000000460000003B0000002F0000 - 0020000000110000000600000001000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000028272701070707060000001300000026000000390303034E121111742423 - 23A1333232C7424040E5474545F9484646FC484646FD484646FD484646FD4846 - 46FD484646FC474545FA444242EE383636D12A2929AF171616840606065F0000 - 004C0000003F0000002D000000190101010A1F1E1E0200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000D0C - 0C04000000120000002900000040121111702D2C2CB6424040E9484646FE4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF454343F23332 - 32C7181717860101015400000046000000320000001A03030308242323010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000001A1A1A020000000D0000 - 0024020202421B1A1A873C3A3AD9484646FE494747FF484646FE494747FF4846 - 46FE494747FF494747FF484646FE494747FF484646FE494747FF484646FE4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4846 - 46FE494747FF424040E92322229F0606065E000000460000002E000000140808 - 0804000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001014140500000017000000341716 - 16783C3A3AD9484646FE494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4A4949FF4C4B4BFF4D4D4DFF4E4E4EFF4E4E4EFF4D4D - 4DFF4C4B4BFF4A4949FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF424040EA1F1E1E97020202540000003D0000 - 0020010101090000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000040505080000002009090950323131BE4846 - 46FE494747FF484646FE494747FF484646FE494747FF494747FE4C4C4CFF5456 - 56FE606666FF697879FF68848CFE638C9AFF6091A4FE5E94A9FF5E93A9FE5E90 - A4FF618A9AFE66838CFF687779FF5F6565FE545656FF4C4B4BFE494747FF4947 - 47FE494747FF484646FE494747FF484646FE494747FF3B3A3AD9100F0F740000 - 00480000002B0000000F546B6B01000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000505050A0000002718171776424141EA494747FF4947 - 47FF494747FF494747FF494747FF4B4A4AFF545656FF657071FF6A8B95FF5598 - B4FF3F9DC9FF2F9DD4FF2B9FD9FF2CA0DCFF2EA2DDFF30A3DEFF30A3DEFF2EA2 - DDFF2CA0DCFF2B9ED9FF2C9CD4FF399BCAFF4C95B5FF638895FF636E70FF5355 - 55FF4B4949FF494747FF494747FF494747FF494747FF494747FF464444F62322 - 229E010101500000003300000012515151020000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000606060A0101012B25242498484646FA494747FF484646FE4947 - 47FF494747FF4B4A4AFE575A5AFF6C7F82FE5A98B1FF399ECEFE289DD9FF2EA3 - DFFE33A7E3FF35AAE5FF38ACE7FE3AAEE9FF3BAEEAFE3CAFEAFF3CAFEAFE3CAF - EAFF3BAEE9FE39ADE8FF37ABE6FF34A8E3FE30A4DFFF279DD9FE319BCFFF4F93 - B0FE667C81FF565959FE4B4949FF494747FE494747FF494747FF484646FE4846 - 46FE323030C00404045800000037000000140327390200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000404040A0101012C2E2D2DAD484646FD494747FF494747FF494747FF4948 - 48FF525454FF6A7B7EFF599AB5FF2E9DD3FF2AA0DDFF2FA6E3FF34AAE7FF37AD - EAFF39B0ECFF3BB1EEFF3DB3EFFF3EB4EFFF3EB4F0FF3FB4F0FF3FB4F0FF3FB4 - F0FF3FB4EFFF3EB3EFFF3EB2EEFF3CB1ECFF3AAFEBFF36ACE8FF32A7E4FF2BA1 - DEFF289AD4FF4B95B5FF65787CFF525454FF494848FF494747FF494747FF4947 - 47FF494747FF393737D30606065D0000003700000013526E6E01000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000D12 - 1206010101282E2D2DAC484646FE494747FF484646FE494747FF4B4A4AFE5F65 - 65FF6994A3FF349DCFFE269FDCFF2DA6E3FE31AAE8FF35AEECFE38B0EEFF39B2 - EFFE3AB3F0FF3BB4F1FF3BB4F1FE3CB4F1FF3CB4F1FE3DB5F2FF3DB5F1FE3DB5 - F2FF3DB4F1FE3EB5F1FF3DB5F1FF3DB4F1FE3CB3F0FF3BB2EEFE38B0ECFF35AC - E9FE30A7E4FF28A0DDFE2A99CFFF5A8EA3FE5D6363FF4B4A4AFF494747FE4947 - 47FF484646FE494747FF3C3B3BDB0505055B000000350000000F5E7E7E010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000263333040000 - 001E2D2C2CA6484646FE494747FF494747FF494747FF4E4E4EFF6A7778FF539D - BDFF239BD8FF28A2E1FF2DA8E7FF31ADECFF33AFEEFF35B1F0FF36B2F1FF37B2 - F1FF37B2F2FF37B3F2FF38B3F2FF38B3F2FF38B3F2FF39B3F2FF39B3F2FF39B3 - F2FF39B3F2FF39B3F2FF3AB4F2FF3AB4F2FF3AB4F2FF39B3F1FF39B3F0FF38B1 - EFFF36AFEDFF31ABE9FF2BA5E2FF229BD9FF4196BDFF647478FF4E4D4DFF4947 - 47FF494747FF494747FF494747FF393838D4050505580000002E0304040B0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000526E6E0100000014201F - 1F82484646FE494747FF494747FF494747FF505050FF6F8285FF419DC7FF219C - DBFF27A4E4FF2BA9EAFF2EADEDFF30AEEFFF31B0F0FF32B0F1FF32B0F1FF32B0 - F1FF33B1F1FF33B1F1FF33B1F1FF34B1F1FF34B1F1FF34B1F1FF34B1F1FF35B1 - F1FF35B2F2FF36B2F2FF36B2F2FF36B2F2FF36B2F2FF37B2F2FF37B2F2FF37B2 - F1FF36B1F0FF34AFEEFF31ACEBFF2BA7E6FF239EDDFF3197C8FF657D83FF4F50 - 50FF494747FF494747FF494747FF494747FF333232C40000004B000000240E11 - 1105000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000B131313584745 - 45F7484646FE494747FF494747FE505151FF70878CFE359CCDFF1F9CDDFE24A4 - E6FF28A9EBFF2AACEEFE2BADF0FF2CAEF0FE2DAFF1FF2DAFF0FE2DAFF1FF2EAF - F0FE2EAFF1FF2EAFF1FF2EAFF0FE2FAFF1FF2FAFF0FE2FB0F1FF30B0F0FE30B0 - F1FF30B0F0FE30B0F1FF31B0F1FF31B0F0FE31B0F1FF32B0F1FE32B0F1FF32B0 - F1FE32B0F1FF32B0F0FE31AFEFFF2EACECFE29A7E7FF239FDFFF2797CEFE6481 - 8AFF505050FE494747FF484646FE494747FF484646FE262525A4000000420000 - 00181B1A1A020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001315150405040428413F3FDF4947 - 47FF494747FF494747FF4E4E4EFF6F8285FF379CCCFF1C9CDDFF21A3E6FF25A8 - ECFF27ABEFFF27ACF0FF28ACF1FF28ADF1FF28ADF1FF28ADF1FF29ADF1FF29AD - F1FF29ADF1FF29ADF1FF2AADF1FF2AADF1FF2AAEF1FF2BAEF1FF2BAEF1FF2BAE - F1FF2BAEF1FF2CAEF1FF2CAEF1FF2CAEF1FF2DAEF1FF2DAFF1FF2DAFF1FF2DAF - F1FF2EAFF1FF2EAFF1FF2EAFF0FF2DAEEFFF2BABEDFF27A7E8FF219EDFFF2796 - CDFF647D83FF4D4D4DFF494747FF494747FF494747FF474545F9121212770000 - 00330000000B0000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000102D2C2CA0494747FF4947 - 47FF494747FE4B4A4AFF6B7778FE439EC7FF199ADBFE1DA2E6FF21A7EBFE22A9 - EEFF23AAF0FF23ABF0FE24ABF0FF24ABF0FE24ABF0FF24ABF0FE25ABF0FF25AB - F0FE25ACF0FF26ACF0FF26ACF0FE26ACF1FF26ACF0FE26ACF1FF27ACF0FE27AC - F1FF27ACF0FE27ACF1FF28ADF1FF28ADF0FE28ADF1FF3990BDFE3698CAFF2AAB - EDFE29ADF1FF29ADF0FE2AADF1FF29ADF0FE29ACEFFF28AAECFF24A5E7FE1E9D - DEFF2F96C8FE647376FF4B4A4AFE494747FF484646FE494747FF3E3D3DE00303 - 034F000000201211110300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000511111148474545F7494747FF4947 - 47FF494848FF5E6465FF589FBBFF1697D9FF199FE4FF1CA5EAFF1EA8EEFF1FA0 - E2FF2F6581FF3D708AFF42748EFF42748EFF42748EFF3B7D9FFF21A9EEFF21AA - F0FF21AAF0FF22AAF0FF22AAF0FF22AAF0FF22AAF0FF23ABF0FF23ABF0FF23AB - F0FF23ABF0FF24ABF0FF24ABF0FF24ABF0FF26A7EAFF535D63FF595959FF5264 - 6EFF4180A1FF2F9ED7FF26ABEFFF26ACF0FF26ACF0FF26ABEFFF24A8ECFF20A3 - E6FF199ADBFF4194BBFF5D6363FF494747FF494747FF494747FF484646FE2524 - 24A1000000390000000E00000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000001010110373636BF484646FE494747FF4947 - 47FF525454FE7096A2FF1996D5FE169CE1FF18A3E9FE1AA6EEFF1AA7EFFE1BA7 - EFFF285C77FF434242FE515050FF535252FE545252FF535152FE2B8EC1FF1DA8 - EFFE1DA8F0FF1DA8F0FF1DA8EFFE1EA9F0FF1EA9EFFE1EA9F0FF1EA9EFFE1FA9 - F0FF1FA9EFFE1FA9F0FF20A9F0FF20A9EFFE3288B4FF565454FE575555FF5755 - 55FE575555FF575657FE4B6979FF3986AEFE27A2E1FF22AAEFFF22A9EEFE20A6 - EBFF1BA0E4FE1796D7FF5B8DA1FE515252FF494747FE494747FF494747FF4442 - 42F10908085A0000002016161603000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000031615154F484646FC494747FF494747FF4B49 - 49FF6D7B7DFF359BCCFF1298DDFF15A0E7FF16A4EDFF17A6EFFF17A6F0FF17A6 - F0FF1998D9FF32373AFF494747FF504E4EFF514F4FFF514F4FFF465D6AFF1BA3 - E9FF19A7F0FF19A7F0FF19A7F0FF1AA7F0FF1AA7F0FF1AA8F0FF1AA7F0FF1AA8 - F0FF1BA8F0FF1BA8F0FF1BA8F0FF1CA7EEFF446272FF545252FF545252FF5452 - 52FF545252FF545353FF555353FF555353FF525659FF40697FFF2689BCFF1DA7 - EDFF1BA3E9FF179CDFFF2295CEFF65767AFF4B4949FF494747FF494747FF4947 - 47FF282727A8000000340202020A000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000B363434B6494747FF484646FE494747FF5658 - 58FF659EB3FE1094D7FF119CE3FE13A2EAFF14A4EEFE14A5EFFF15A5EFFE15A5 - EFFF15A5EFFF1F6487FE3B3A3AFF4C4A4AFE4E4C4CFF4E4C4CFE4E4C4DFF2D7E - A9FE16A6F0FF16A6F0FF16A6EFFE16A6F0FF17A6EFFE17A6F0FF17A6EFFE17A6 - F0FF17A6EFFE18A6F0FF18A7F0FF2294CEFE4E4F50FF514F4FFE514F4FFF514F - 4FFE514F4FFF514F4FFE525050FF525050FE514F4FFF454444FF266A8DFE1AA7 - EFFF19A5ECFE16A0E6FF1396DAFE4B92B1FF555858FE494747FF494747FF4846 - 46FE434242ED0505054D00000017252424010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000010D0D0D31484646F9494747FF494747FF4B4A4AFF707F - 7FFF2B9AD0FF0E98DEFF109FE8FF11A2EDFF11A4EEFF11A4EFFF12A4EFFF12A4 - EFFF12A4EFFF139BE0FF293841FF434141FF4C4A4AFF4C4A4AFF4D4B4BFF4751 - 57FF189DE1FF13A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5EFFF14A5 - EFFF15A5EFFF15A5EFFF15A5EFFF356D8BFF4E4C4CFF4F4D4DFF4F4D4DFF4D4B - 4BFF474545FF464545FF4C4A4AFF4F4D4DFF4C4A4AFF383A3CFF1996D7FF17A6 - F0FF16A5EEFF15A2EAFF129AE1FF1C94D0FF657A7FFF4A4949FF494747FF4947 - 47FF484646FE1D1C1C8C0000002A0A0A0A060000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000327262684494747FF494747FF494747FF535555FF6B9D - AEFF0C92D7FF0E9BE3FF0FA0EBFF0FA2EEFF0FA3EFFF0FA3EFFF10A3EFFF10A4 - EFFF10A4EFFF10A4EFFF186E9AFF353434FF474545FF4A4848FF4A4848FF4A48 - 48FF307091FF11A4EFFF11A4EFFF11A4EFFF12A4EFFF12A4EFFF12A4EFFF12A4 - EFFF12A4EFFF12A4EFFF159FE6FF464D51FF4C4A4AFF4C4A4AFF4C4A4AFF4544 - 44FF313030FF2C2A2AFF363434FF403E3EFF3F3E3EFF265065FF14A5EFFF14A5 - EFFF14A5EEFF13A2ECFF109DE5FF0E94D9FF5192ADFF525353FF494747FF4947 - 47FF494747FF373535CD0000003E000000110000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000101010A403E3ED2484646FE494747FF494747FE666F70FF3E9E - CAFF0C96DCFE0D9DE7FF0EA1EDFE0EA2EEFF0EA2EEFE0EA3EFFF0EA2EEFE0EA3 - EFFF0EA3EFFF0EA2EEFE0F9FE9FF233B48FE3E3C3CFF494747FE4A4848FF4947 - 47FE464A4DFF1993D1FF0FA3EEFE0FA3EFFF0FA3EEFE0FA3EFFF0FA3EEFE10A3 - EFFF10A3EEFE10A3EFFF257CA9FF494747FE4A4848FF4A4848FE494747FF3A39 - 39FE1B658CFF16587AFE1C2B33FF232323FE262525FF167DB2FF12A4EEFE12A4 - EFFF11A4EEFE10A2EDFF0F9FE8FE0D97DEFF2696CCFE636B6BFF494747FF4846 - 46FE494747FF484646FC0E0E0E68000000231414140300000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000C0C0C2B484646F7494747FF494747FF4C4B4BFF758E93FF1995 - D3FF0D99E1FF0D9FEAFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF1379ADFF303030FF454343FF494747FF4947 - 47FF494747FF356178FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0FA1EDFF395969FF494747FF4A4848FF494747FF454343FF2E37 - 3DFF109BE2FF0FA3EFFF0F9BE2FF1371A2FF154964FF109EE7FF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA2EEFF0EA0EBFF0D9AE3FF0D92D5FF668690FF4C4B4BFF4947 - 47FF494747FF494747FF2D2C2CB4000000370101010C00000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000201F1F63494747FF484646FE494747FF535454FE689EB2FF0C93 - D7FF0D9BE4FE0EA1EBFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0EA1ECFE1E455AFF3B3939FE474545FF4846 - 46FE494747FF484646FF1C88C0FE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE188FCCFF464647FF494747FE494747FF484646FE3E3C3CFF1E59 - 77FE0EA3EFFF0EA2EEFE0EA3EFFF0EA2EEFE0EA3EFFF0EA3EFFF0EA2EEFE0EA3 - EFFF0EA2EEFE0EA2EEFF0DA1ECFE0D9DE6FF0C94DAFE4D92B0FF525454FF4846 - 46FE494747FF484646FE444242F1070707550000001C1F1E1E02000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000067676701312F2F94494747FF494747FF494747FF5E6363FF4EA2C5FF0C95 - DBFF0D9DE7FF0EA1EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1186C2FF2C2E2FFF434141FF4846 - 46FF494747FF494747FF3B5766FF0F9FE9FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF2C6B8CFF484646FF494747FF494747FF464444FF343435FF1285 - BFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EDFF0D9EE8FF0D97DDFF3396C4FF5D6262FF4947 - 47FF494747FF494747FF494747FE222121980000003001010108000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000067676703393737BE494747FF484646FE494747FF6B7575FE349ECFFF0D97 - DEFF0D9EE8FE0EA2EDFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA2EEFF1B516CFE383737FF4745 - 45FE494747FF494747FF484646FE247CA9FF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0F9EE7FE414B52FF494747FF484646FE484646FF424040FE26404DFF0EA1 - EDFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA3EFFF0DA2EEFE0D9FE9FF0D99E0FE1E94CFFF657274FF4947 - 47FE494747FF484646FE494747FF3F3D3DE201010145000000162A2929010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000069696907464444DC494747FF494747FF4A4949FF778787FF1E97D2FF0D99 - E0FF0E9FEAFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1090D2FF292F33FF413F - 3FFF484646FF494747FF494747FF424E55FF119CE2FF0EA3EFFF0EA3EFFF0EA3 - EFFF1F81B4FF474646FF494747FF494747FF484646FF3A3838FF186B95FF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA0EAFF0D9AE2FF1393D4FF677F85FF4A48 - 48FF494747FF494747FF494747FF484646FE1717177D000000290B0B0B050000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000069696909484646F0494747FF484646FE4C4B4BFF7B9396FE1293D4FF0D9A - E2FF0DA0EAFE0EA2EEFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE185D80FF3534 - 34FE464444FF494747FF484646FE484646FF2C7093FE0EA3EFFF0DA2EEFE0EA2 - EEFF345E75FE484646FF494747FF484646FE454343FF2F3437FE1094D8FF0DA2 - EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA0EBFF0D9BE3FE0D92D6FF648793FF4B4A - 4AFE494747FF484646FE494747FF484646FE353434C90000003D000000100000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00006969690B484646FE494747FF494747FF4D4D4DFF78979FFF0F92D5FF0D9A - E3FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0F98DEFF2534 - 3BFF3F3E3EFF484646FF494747FF494747FF45494DFF1693D4FF0EA3EFFF1397 - DBFF43474AFF494747FF494747FF484646FF3F3D3DFF205069FF0EA2EEFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1ECFF0D9BE5FF0C92D7FF608C9DFF4C4B - 4BFF494747FF494747FF494747FF494747FF474545F90E0E0E67000000211414 - 1403000000000000000000000000000000000000000000000000000000000000 - 00006969690B494747FF494747FF494747FF4E4E4EFF769AA3FF0E92D5FF0D9A - E3FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF166A - 96FF333232FF454444FF494747FF494747FF484646FF34637BFF0EA3EFFF227C - AAFF474545FF494747FF494747FF474545FF363536FF147CB2FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1ECFF0D9CE5FF0C93D7FF5E8EA1FF4D4C - 4CFF494747FF494747FF494747FF494747FF494747FF2B2929B0000000350100 - 000B000000000000000000000000000000000000000000000000000000000000 - 00006969690B484646FE494747FF484646FE4E4E4EFF7799A2FE0E92D5FF0D9A - E3FF0DA0EBFE0EA2EEFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0E9F - E9FE223A46FF3D3C3CFF484646FE494747FF484646FE474748FF1D89C1FE3561 - 77FF484646FE494747FF494747FF434141FE293942FF0EA0EAFE0EA3EFFF0DA2 - EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA1ECFF0D9CE5FE0C93D7FF5E8EA0FF4D4C - 4CFE494747FF484646FE494747FF484646FE494747FF464444F30504044F0000 - 001B1F1E1E010000000000000000000000000000000000000000000000000000 - 00006969690A484646FE494747FF494747FF4D4C4CFF7A989EFF0F92D5FF0D9A - E2FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF1478ABFF302F2FFF454343FF484646FF494747FF494747FF3E5866FF454B - 4FFF494747FF494747FF484646FF3C3A3AFF1B6185FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EFFF0EA1ECFF0D9BE4FF0C92D7FF628D9CFF4C4B - 4BFF494747FF494747FF494747FF494747FF494747FF494747FF201F1F940000 - 002F050505070000000000000000000000000000000000000000000000000000 - 000069696907484646F0494747FF484646FE4C4B4BFF7C9295FE1493D4FF0D9A - E1FF0DA0EAFE0EA2EEFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3 - EEFE10A1EBFF25485BFF434141FE504F4FFF525151FE535151FF535151FE5351 - 51FF525050FE504E4EFF4B4949FF333638FE118ECDFF0DA2EEFE0EA3EFFF0DA2 - EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA0EBFF0D9BE3FE0E92D6FF678892FF4B4A - 4AFE494747FF484646FE494747FF484646FE494747FF484646FE3E3C3CDE0202 - 0246000000152928280100000000000000000000000000000000000000000000 - 000069696904484646DB494747FF494747FF4A4949FF768586FF2499D2FF0D98 - E0FF0E9FE9FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF11A4EFFF1BA7EFFF22AA - F0FF26ACF0FF2992C7FF434243FF565555FF5B5959FF5B5959FF5B5959FF5B59 - 59FF5B5959FF5B5959FF545353FF395A6BFF23A9EFFF1CA8EFFF13A4EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA0EAFF0D9AE2FF1694D3FF697E84FF4A48 - 48FF494747FF494747FF494747FF494747FF494747FF494747FF484646FE1514 - 147A000000270B0B0B0500000000000000000000000000000000000000000000 - 0000000000003A3838BC494747FF484646FE494747FF697373FE3CA1CFFF0D97 - DDFF0D9EE8FE0EA2EDFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0EA3EFFF0DA2EEFE0EA3EFFF13A5EFFE23ABF0FF2DAEF0FE2EAFF1FF2DAF - F0FE2EAFF1FF2EAFF1FF3A667DFE535151FF605E5EFE615F5FFF615F5FFE615F - 5FFF615F5FFE605E5EFF535151FF3586AFFE2EAFF1FF2DAFF0FE2DAFF0FF25AB - F0FE15A5EFFF0EA3EEFE0EA3EFFF0DA2EEFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA3EFFF0DA2EEFE0D9FE9FF0D98DFFE2496CDFF667172FF4947 - 47FE494747FF484646FE494747FF484646FE494747FF484646FE494747FF3533 - 33C60000003C0000001000000000000000000000000000000000000000000000 - 00000000000034323291494747FF494747FF494747FF5C6161FF58A5C4FF0C95 - DAFF0D9DE6FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0FA3EFFF21AAF0FF34B1F1FF36B2F2FF36B2F1FF36B2F2FF36B2 - F1FF36B2F2FF36B2F2FF38A1D8FF4D5255FF616060FF676565FF676565FF6765 - 65FF676565FF636161FF4F5559FF36ADEAFF36B2F2FF36B2F1FF36B2F2FF36B2 - F1FF35B1F1FF25ABF0FF10A3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA1EDFF0D9EE7FF0D96DDFF3C98C2FF5C6060FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4745 - 45FA0C0B0B610000002100000003000000000000000000000000000000000000 - 0000000000002120205C494747FF484646FE494747FF525353FE73A1B0FF0D92 - D6FF0D9BE3FE0EA0EBFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0EA3 - EFFF0FA3EFFF2DAFF0FE3DB5F1FF3DB5F1FE3DB5F2FF3DB5F1FE3DB5F2FF3DB5 - F1FE3DB5F2FF3DB5F2FF3DB5F1FE487D98FF636161FE6C6B6BFF6D6B6BFE6D6B - 6BFF6D6B6BFE646363FF4A7991FF3DB5F1FE3DB5F2FF3DB5F1FE3DB5F2FF3DB5 - F1FE3DB5F2FF3DB5F1FE32B0F1FF12A4EFFE0EA3EFFF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA2EEFF0DA1ECFE0D9CE5FF0C94D9FE5894ACFF515252FF4846 - 46FE494747FF484646FE494747FF484646FE494747FF484646FE494747FF4947 - 47FF2A2929AD000000350000000B000000000000000000000000000000000000 - 0000000000000E0D0D22484646F7494747FF494747FF4B4A4AFF788D8FFF2298 - D2FF0D98E0FF0D9FE9FF0EA2EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0FA3 - EFFF32B0F1FF46B8F2FF46B8F3FF46B8F2FF46B8F3FF46B8F2FF46B8F3FF46B8 - F2FF46B8F3FF46B8F3FF46B8F2FF48B1E7FF697075FF737272FF737272FF7372 - 72FF727070FF636464FF4AA2CFFF46B8F2FF46B8F3FF46B8F2FF46B8F3FF46B8 - F2FF46B8F3FF46B8F2FF46B8F3FF3AB3F1FF10A4EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA2EEFF0EA0EAFF0D99E1FF1092D4FF6E868BFF4B4A4AFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF434141ED050505500000001A000000010000000000000000000000000000 - 00000000000002010101424141D1484646FE494747FF494747FE646C6CFF4EA3 - C8FF0C95DBFE0D9DE6FF0DA1ECFE0EA2EEFF0DA2EEFE0EA3EFFF0DA2EEFE27AC - F0FF4EBBF3FF4FBBF3FE4FBBF3FF4FBBF3FE4FBBF3FF4FBBF3FE4FBBF3FF4FBB - F3FE4FBBF3FF4FBBF3FF4FBBF3FE50B9F0FF737D82FE7A7979FF7A7979FE7A79 - 79FF757474FE61737DFF4FB9F0FF4FBBF3FE4FBBF3FF4FBBF3FE4FBBF3FF4FBB - F3FE4FBBF3FF4FBBF3FE4FBBF3FF4FBBF3FE31B0F1FF0EA3EFFF0DA2EEFE0EA3 - EFFF0DA2EEFE0EA1EDFF0D9EE7FE0C96DDFF359AC9FE616868FF494747FF4846 - 46FE494747FF484646FE494747FF484646FE494747FF484646FE494747FF4947 - 47FF484646FE1F1E1E900000002E000000070000000000000000000000000000 - 000000000000000000002A29297C494747FF494747FF494747FF525353FF79A0 - AAFF0F92D5FF0D9AE2FF0E9FEAFF0EA2EEFF0EA3EFFF0EA3EFFF11A4EFFF51BC - F3FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BF - F4FF59BFF4FF59BFF4FF59BFF4FF61ADD4FF807E7EFF818080FF818080FF807F - 7FFF777676FF6098B5FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BF - F4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF55BEF3FF18A7EFFF0EA3EFFF0EA3 - EFFF0EA2EEFF0EA0EBFF0D9BE4FF0D93D7FF6094A8FF505151FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF3D3B3BDD01010143000000140000000000000000000000000000 - 0000000000000000000012111123484646F9494747FF494747FF4A4949FF6F7A - 7BFF3EA1CFFF0C96DCFF0D9DE7FF0EA1ECFF0EA2EEFF0EA3EFFF26ACF0FF61C2 - F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2 - F4FF62C2F4FF62C2F4FF62C2F4FF769EB4FF888787FF888787FF888787FF8685 - 85FF787A7BFF63BAE7FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2 - F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF62C2F4FF33B1F1FF0EA3EFFF0EA2 - EEFF0EA1EDFF0D9EE8FF0D97DEFF2797CDFF697779FF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF484646FD15141477000000260000000500000000000000010000 - 00000000000000000000010101013C3A3AAF494747FF484646FE494747FF5456 - 56FF76A2AFFE1293D5FF0D99E1FE0D9FE9FF0DA1EDFE0EA2EEFF3AB3F1FE6BC6 - F5FF6BC6F5FF6BC6F5FE6BC6F5FF6BC6F5FE6BC6F5FF6BC6F5FE6BC6F5FF6BC6 - F5FE6BC6F5FF6BC6F5FF6CC4F1FE8A959BFF8F8E8EFE8F8E8EFF8F8E8EFE8A88 - 88FF7793A2FE6BC6F4FF6BC6F5FF6BC6F5FE6BC6F5FF6BC6F5FE6BC6F5FF6BC6 - F5FE6BC6F5FF6BC6F5FE6BC6F5FF6BC6F5FE6BC6F5FF49B9F2FF0DA2EEFE0EA2 - EEFF0DA0EAFE0D9BE3FF0D92D7FE5F96ABFF545656FE494747FF4A4848FF4C4B - 4BFE4C4C4CFF4C4C4CFE4C4C4CFF4C4C4CFE4C4C4CFF4C4B4BFE4B4A4AFF4947 - 47FF484646FE494747FF323131C30000003B0000000F00000000000000010000 - 00000000000000000000000000002524243E484646FB494747FF494747FF4A49 - 49FF6C7777FF4AA3CAFF0C94DAFF0D9CE5FF0EA0EBFF0EA2EEFF43B7F2FF75CB - F6FF75CBF6FF75CAF6FF75CBF6FF75CAF6FF75CBF6FF75CAF6FF86A2B1FF919E - A6FF929FA6FF929FA6FF929EA4FF979696FF979696FF979696FF969595FF8D8C - 8CFF79B4D2FF75CBF6FF75CBF6FF75CAF6FF75CBF6FF75CAF6FF75CBF6FF75CA - F6FF75CBF6FF75CAF6FF75CBF6FF75CAF6FF75CBF6FF53BDF3FF0EA2EEFF0EA1 - ECFF0D9DE6FF0C96DCFF3299CAFF677274FF4A4949FF4A4848FF53656DFF6C8D - 9BFF70929FFF70929FFF70929FFF70929FFF70929FFF6F919EFF697B82FF4F4F - 4FFF494747FF494747FF474545F80B0B0B5F0000002000000002000000010000 - 000000000000000000000000000000000000484646B8484646FE494747FF4947 - 47FF515151FE7C979CFF2198D2FE0C97DEFF0D9DE7FE0EA1ECFF3BB3F1FE7FCE - F6FF7FCEF6FF7FCEF6FE7FCEF6FF7FCEF6FE7FCEF6FF7FCEF6FE92A1AAFF9E9D - 9DFE9F9E9EFF9F9E9EFF9E9D9DFE9F9E9EFF9E9D9DFE9F9E9EFF9C9B9BFE8E97 - 9BFF80CBF2FE7FCEF6FF7FCEF6FF7FCEF6FE7FCEF6FF7FCEF6FE7FCEF6FF7FCE - F6FE7FCEF6FF7FCEF6FE7FCEF6FF7FCEF6FE7FCEF6FF4CBAF2FF0DA1ECFE0D9E - E8FF0D98E0FE1693D3FF6C8F99FE505050FF494747FE4A4949FF5A8CA1FF7FD0 - F6FE80D1F7FF7FD0F6FE80D1F7FF7FD0F6FE80D1F7FF7FD0F6FE82ADC0FF5456 - 56FF484646FE494747FF484646FE282727A9000000340000000A000000010000 - 000000000000000000000000000000000000748A8A33484646F7494747FF4947 - 47FF494747FF5C6060FF71A5B7FF1294D5FF0D99E0FF0D9EE8FF1EA7EDFF86D0 - F6FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF9AA9B0FFA5A4 - A4FFA6A5A5FFA6A5A5FFA6A5A5FFA6A5A5FFA6A5A5FFA5A4A4FF9F9F9FFF90B1 - C3FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF89D2 - F7FF89D2F7FF89D2F7FF89D2F7FF89D2F7FF88D1F7FF2FAEEFFF0D9FE9FF0D9A - E2FF0E93D6FF5A9AB4FF5B5F5FFF494747FF494747FF4A4848FF566F79FF78CB - F1FF80D0F6FF8BB5C4FF758C92FF697C82FF687B81FF687B81FF606B6EFF4D4D - 4DFF494747FF494747FF494747FF424141EB0404044D00000018000000010000 - 00000000000000000000000000000000000000000000626F6F91494747FF4947 - 47FF484646FE4B4A4AFF687272FE5FA7C3FF0D92D7FE0D99E1FF0D9EE8FE65C3 - F3FF92D5F7FF92D5F7FE92D5F8FF92D5F7FE92D5F8FF92D5F7FEA0ADB4FFA8A7 - A7FEA8A8A8FFA8A8A8FFA8A7A7FEA8A8A8FFA8A7A7FEA8A7A7FFA1A1A2FE94CC - E9FF92D5F7FE92D5F8FF92D5F8FF92D5F7FE92D5F8FF92D5F7FE92D5F8FF92D5 - F7FE92D5F8FF92D5F7FE92D5F8FF92D5F7FE77CAF4FF11A0E9FF0D9AE3FE0C93 - D8FF479CC1FE656F6FFF4B4949FE494747FF484646FE494747FF4E4D4DFF618D - 9FFE7DCFF5FF82CCEEFE7A8C91FF535454FE4B4949FF4A4949FE4A4848FF4947 - 47FF484646FE494747FF484646FE484646FE1D1C1C8B00000027000000040000 - 00000000000000000000000000000000000000000000ABE2E20D4E4F4FDA4947 - 47FF494747FF494747FF4D4C4CFF707D7EFF52A5C8FF0D93D7FF0D99E1FF1FA5 - EAFF8DD2F6FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FFA3ACB1FFA5A4 - A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA5A4A4FFA2B0B8FF9DD9 - F7FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9F8FF9DD9 - F8FF9DD9F8FF9DD9F8FF9DD9F8FF97D6F7FF2CABEBFF0D9AE3FF0C94D9FF3B9A - C6FF6C7A7BFF4C4C4CFF494747FF494747FF494747FF494747FF494747FF5152 - 52FF66A3BDFF7FD0F6FF84C4E2FF6F7A7CFF4E4D4DFF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF383737CF000000360000000A0000 - 000000000000000000000000000000000000000000000000000092BABA3D4846 - 46F6484646FE494747FF494747FE4F4F4FFF748384FE52A5C9FF0D92D6FE0D99 - E0FF31ACEAFF9DD8F7FEA6DCF8FFA6DDF8FEA6DDF9FFA6DDF8FEA8C9D9FFA8C6 - D5FEA8C6D5FFA8C6D5FFA8C6D5FEA8C6D5FFA8C6D5FEA8C6D5FFA7D1E7FEA6DD - F9FFA6DDF8FEA6DDF9FFA6DDF9FFA6DDF8FEA6DDF9FFA6DDF8FEA6DDF9FFA6DD - F8FEA6DDF9FFA6DCF8FEA2DAF7FF45B4EDFE0D99E1FF0C93D8FF3C9BC7FE6D7F - 81FF4E4E4EFE494747FF484646FE494747FF484646FE494747FF494747FF4948 - 48FE555C5EFF6EB8D8FE80D0F6FF86B8CEFE636A6AFF4B4A4AFE494747FF4947 - 47FF484646FE494747FF484646FE494747FF474545F90707074B000000100000 - 0000000000000000000000000000000000000000000000000000000000007891 - 916A494747FE494747FF494747FF494747FF4E4E4EFF707D7DFF62A7C2FF1293 - D5FF0C97DDFF2EA9E8FF96D5F5FFB0E0F8FFB0E0F9FFB0E1FAFFB0E1FAFFB0E1 - FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1 - FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E1FAFFB0E0 - F9FFB0E0F9FFA0D9F6FF3DAFEAFF0D98DFFF0F93D6FF4C9DC1FF6C797AFF4E4D - 4DFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4A4949FF596A70FF75C5E9FF81D1F7FF84A9B8FF5C6060FF4A4848FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF17161674000000140000 - 000000000000000000000000000000000000000000000000000000000000B9F8 - F80138586992494747FE494747FF494747FF494747FF4D4C4CFF677171FF72A5 - B6FF2398D2FF0C94DAFF1A9FE2FF6FC4EFFFB2E1F8FFB9E3F9FFB9E4FAFFB9E4 - FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4 - FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB9E4FAFFB6E2 - F8FF7DCAF1FF22A3E4FF0C95DBFF1995D2FF629DB3FF656F6FFF4D4C4CFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4C4B4BFF67828DFF9CD9F6FF9FD9F5FF879AA1FF545555FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF2423238B000000120000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000E88C50638596BA1484646FE494747FF484646FE494747FF4B4949FE5B5F - 5FFF7C9599FF4EA4C9FE1293D4FF0C95DBFE28A5E4FF73C5EFFEB1DFF7FFC2E7 - FAFEC3E7FAFFC3E7FAFFC2E7FAFEC3E7FBFFC2E8FAFEC3E8FBFFC2E8FAFEC3E8 - FBFFC2E7FAFEC3E7FBFFC3E7FBFFC2E7FAFEC3E7FAFFB6E2F8FE7FCAF1FF32A9 - E6FE0D96DDFF0F93D5FE3F9DC8FF739198FE595E5EFF4A4949FF494747FE4947 - 47FF484646FE494747FF484646FE494747FF484646FE494747FF494747FF4846 - 46FE494747FF494747FE4F4F4FFF7B9EACFEADE1F9FFACD9EEFE727B7CFF4C4C - 4CFF484646FE494747FF484646FE494747FF484646FE252424890000000D0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000E88C60638596A9C494747FD494747FF494747FF494747FF4947 - 47FF505050FF6A7475FF77A1ACFF42A2CDFF1293D5FF0C95DAFF179CE0FF42B0 - E8FF75C6F0FFA0D9F5FFBCE4F8FFC5E8FAFFC9E9FAFFCBEAFAFFCBEAFAFFC9E9 - FAFFC6E8FAFFBFE5F9FFA6DBF6FF7CC9F0FF4BB4EAFF1C9FE1FF0D95DBFF0F93 - D5FF379CCCFF6B9BABFF687272FF505050FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4A4949FF4D4D - 4DFF4D4C4CFF494848FF494747FF545758FF9CC9DDFFB6E4FAFF95ACB4FF5355 - 55FF494747FF494747FF494747FF494747FF494747FF1C1B1B6E000000070000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000E88C50338596B7D484646FA494747FF484646FE4947 - 47FF494747FF4A4949FE535555FF6D7878FE789EA7FF54A4C6FE279AD2FF0E92 - D5FE0C94DAFF0D96DDFF129ADFFE22A2E3FF2EA7E5FE35AAE6FF36ABE6FE30A8 - E5FF24A3E3FE149BE0FF0D97DDFF0C94DAFE0C92D6FF2198D2FE4AA0C6FF7099 - A6FE6B7677FF535555FE4A4949FF494747FE494747FF494747FF484646FE4947 - 47FF484646FE494747FF484646FE494747FF484646FE4A4848FF64747AFF8DA5 - AFFE7F8F94FF525353FE494747FF4B4A4AFE84A1ACFFBFE7FAFEA5BEC9FF585B - 5BFF484646FE494747FF484646FE494747FF484646FE0F0E0E38000000020000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000296A8B4D47494BE7494747FF4947 - 47FF494747FF494747FF494747FF4A4848FF515252FF616868FF76888AFF769F - ABFF5CA4C0FF43A1CCFF2C9BD0FF1C96D3FF1594D4FF1394D4FF1394D4FF1594 - D4FF1A96D3FF299AD1FF3E9FCCFF56A1BFFF6F9CAAFF748689FF616767FF5151 - 51FF4A4848FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4A4848FF7B939DFFC7EA - FBFFB7D2DFFF676E6EFF4C4C4CFF505151FF98B7C3FFC7EAFBFFA5BCC5FF5759 - 59FF494747FF494747FF494747FF494747FF3F3D3DCF0101010D000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000097CDD11E5C6666AE4947 - 47FE494747FF484646FE494747FF484646FE494747FF494747FE4B4A4AFF5151 - 51FE5A5F5FFF666F6FFF728080FE798D8FFF799397FE77959CFF77959CFE7792 - 97FF788C8EFE717F80FF666F6FFF5A5E5EFE515151FF4B4A4AFE494747FF4947 - 47FE494747FF484646FE494747FF484646FE494747FF494747FF484646FE4947 - 47FF484646FE494747FF484646FE494747FF484646FE494747FF606B6FFFC7E9 - F8FECEECFAFFA4B9BFFE778588FF8CA0A6FEC9E9F8FFCFEDFBFE8B989CFF5050 - 50FF484646FE494747FF484646FE484646FD1F1E1E6100000002000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000008CB1B1015D67 - 674D494747D0494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF4A4848FF4B4949FF4B4B4BFF4C4C4CFF4C4C4CFF4C4B - 4BFF4B4949FF4A4848FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF4D4D4DFF8498 - 9FFFCFEAF7FFD7F0FCFFD6EFFBFFD7F0FCFFD4EEFAFFA7BAC1FF5D6262FF4A48 - 48FF494747FF494747FF494747FF393838B20302020600000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000494747084846465F494747D0484646FE494747FF484646FE494747FF4846 - 46FE494747FF494747FF484646FE494747FF484646FE494747FF484646FE4947 - 47FF484646FE494747FF494747FF484646FE494747FF484646FE494747FF4846 - 46FE494747FF484646FE494747FF484646FE494747FF494747FF484646FE4947 - 47FF484646FE494747FF484646FE494747FF484646FE494747FF494747FF4E4E - 4EFE6A7477FF92A2A8FE9EADB2FF98A9AEFE7C888AFF5A5E5EFE4B4A4AFF4947 - 47FF484646FE494747FF434141D00C0C0C160000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000004947473E4947479D494747E6494747FE4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4A4848FF4C4B4BFF4E4D4DFF4D4D4DFF4B4A4AFF494747FF494747FF4947 - 47FF484646FC3D3C3CA618181811000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000004947470C4947473F4947 - 477E494747B6494747E3494747F8494747FB494747FD494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FD494747F24846 - 46B2444242424442420200000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000D1D0D00DD1D1D127D1D0D036D1D1D13FD1D0D03FD1D1 - D13FD1D0D03FD1D1D13FD1D1D13FD1D0D03FD1D1D13FD1D0D03FD1D1D13FD1D0 - D03FD1D1D13FD1D0D03FD1D1D13FD1D0D03FD1D1D13FD1D1D13FD1D0D03FD1D1 - D13FD1D0D03FD1D1D13FD1D0D03FD1D1D13FD1D0D03FD1D1D13FD1D1D13FD1D0 - D03FD1D1D13FD1D0D03FD1D1D13FD1D0D03FD1D1D13FD1D0D030D1D1D10A0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000FFFF - FFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF00 - 0000FFFFFFFFFFFFFFFFFF000000FFFFFFC007FFFFFFFF000000FFFFFC00007F - FFFFFF000000FFFFF000000FFFFFFF000000FFFF80000003FFFFFF000000FFFF - 00000000FFFFFF000000FFFC000000007FFFFF000000FFF8000000003FFFFF00 - 0000FFF0000000000FFFFF000000FFE00000000007FFFF000000FFC000000000 - 03FFFF000000FF800000000001FFFF000000FF000000000000FFFF000000FE00 - 0000000000FFFF000000FC0000000000007FFF000000FC0000000000003FFF00 - 0000F80000000000003FFF000000F80000000000001FFF000000F00000000000 - 001FFF000000F00000000000000FFF000000E00000000000000FFF000000E000 - 000000000007FF000000C000000000000007FF000000C000000000000007FF00 - 0000C000000000000003FF000000C000000000000003FF000000C00000000000 - 0001FF0000008000000000000001FF0000008000000000000000FF0000008000 - 000000000000FF0000008000000000000000FF00000080000000000000007F00 - 000080000000000000007F00000080000000000000003F000000800000000000 - 00003F00000080000000000000001F00000080000000000000001F000000C000 - 0000000000001F000000C0000000000000000F000000C0000000000000000F00 - 0000C00000000000000007000000C00000000000000007000000E00000000000 - 000007000000E00000000000000002000000E00000000000000002000000F000 - 00000000000000000000F80000000000000000000000F8000000000000000000 - 0000FC0000000000000000000000FC0000000000000000000000FE0000000000 - 000000000000FF0000000000000000000000FF0000000000000000000000FF80 - 00000000000000000000FFC000000000000000000000FFE00000000000000000 - 0000FFF800000000000001000000FFFC00000000000001000000FFFE00000000 - 000003000000FFFF80000000000007000000FFFFF000000000000F000000FFFF - FC00000000001F000000FFFFFFE000000000FF000000FFFFFFFFFFFFFFFFFF00 - 0000FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF - FFFFFF000000FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF0000002800 - 0000400000008000000001002000000000000042000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000020000 - 00050000000A0000001000000015000000190000001B0000001B0000001A0000 - 0017000000120000000C00000007000000030000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000020000000900000015000000230000 - 00310000003C00000044000000490000004C0000004D0000004E0000004D0000 - 004B000000470000004000000036000000280000001A0000000C000000040000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000121111040000001000000023000000380202024A131212772322 - 22A1323030C13A3939D9444242E9474545F4474545F4474545F4464444F0403E - 3EE1343333CC292828B01A19198B0707075F0000004C0000003E0000002A0000 - 0015090808072D2C2C0100000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000001616 - 160300000010000000280101014218171780323030C3464444F5494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF484646FD3A3939D6201F1F9B0605055C0000 - 0047000000300000001709080806000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000040404090000 - 00220303034422212198414040E9494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF474545F72D2B - 2BB70A0A0A68000000460000002B0000000F1B1A1A0200000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000475F5F0200000012000000331D1C - 1C88424040EA494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4B4A4AFF4E4E4EFF515252FF545656FF555858FF545656FF525353FF4E4E - 4EFF4B4A4AFF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF474545F92A2929B10404045A0000003D0000001C232F2F05000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000272F2F040000001B0A0A0A51383737CE4947 - 47FF494747FF494747FF494747FF494747FF4A4848FF505151FF5F6565FF6A7E - 82FF5F8B9BFF5594AEFF4D99BBFF4B9DC2FF4A9EC5FF499DC3FF4B99BCFF5093 - B0FF598A9EFF667E85FF606767FF515252FF4A4949FF494747FF494747FF4947 - 47FF494747FF494747FF424040EB1616168200000048000000260B0F0F090000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000002F2F2F050000002018181876454343F2494747FF4947 - 47FF494747FF494747FF4C4B4BFF5A5E5EFF6B8389FF5497B3FF3D9FCEFF289D - D8FF2EA2DEFF32A6E1FF35A8E3FF36A9E4FF37A9E4FF37A9E4FF35A8E3FF34A7 - E2FF2FA3DFFF279DDAFF339DD0FF4A95B7FF62838EFF5C6161FF4C4C4CFF4947 - 47FF494747FF494747FF494747FF484646FE292828AD0101014F0000002C0000 - 000B000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000002F2F2F040000002024232392484646FD494747FF494747FF4947 - 47FF4A4949FF5A5E5EFF698A94FF479EC5FF289DD9FF2EA4E0FF33A9E5FF37AC - E8FF3AAFEBFF3CB1ECFF3DB2EDFF3EB2EEFF3FB3EEFF3FB3EEFF3EB2EDFF3DB1 - EDFF3CB0EBFF39AEE9FF36AAE6FF31A6E1FF269DDAFF399AC9FF5C899AFF5C61 - 62FF4B4A4AFF494747FF494747FF494747FF494747FF363434CB030303560000 - 002E00080C0B0000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00002F3F3F030000001D27262698494747FF494747FF494747FF494747FF5051 - 51FF6B7E81FF4C9CC0FF269DD9FF2CA4E2FF32AAE7FF36AEEBFF39B1EEFF3AB2 - EFFF3BB3F0FF3CB4F1FF3DB5F1FF3DB5F1FF3EB5F1FF3EB5F1FF3EB5F1FF3EB5 - F1FF3EB4F1FF3DB4F0FF3CB2EEFF39B0ECFF36ACE9FF30A7E4FF259EDBFF3998 - C5FF637F87FF525353FF494747FF494747FF494747FF494747FF3A3838D60504 - 04580000002C0B0F0F0800000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000005F7F - 7F010000001625242490494747FF494747FF494747FF494848FF585B5BFF6892 - A1FF2D9CD3FF27A1DFFF2DA8E7FF31ADECFF34B0EEFF36B1F0FF37B2F1FF38B3 - F1FF38B3F2FF38B3F2FF39B3F2FF39B3F2FF3AB4F2FF3AB4F2FF3AB4F2FF3AB4 - F2FF3BB4F2FF3BB4F2FF3AB4F1FF3AB3F1FF39B2EFFF37AFEDFF32ABE9FF2BA4 - E1FF249BD6FF538FA9FF5B6060FF4A4848FF494747FF494747FF494747FF3837 - 37D30303035100000025232F2F05000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000D1A191970484646FD494747FF494747FF4A4848FF5F6464FF5E9BB3FF229B - D8FF26A3E3FF2BA9EAFF2FADEEFF30AFF0FF31B0F1FF32B0F1FF32B1F1FF33B1 - F1FF33B1F1FF33B1F1FF34B1F1FF34B1F1FF35B1F1FF35B2F1FF35B2F2FF36B2 - F2FF36B2F2FF36B2F2FF37B2F2FF37B2F2FF37B2F1FF36B1F1FF35B0EFFF31AC - EBFF2BA7E5FF229CDBFF4295BBFF60696AFF4A4949FF494747FF494747FF4947 - 47FF333131C4000000480000001B272A2A020000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000171F1F050D0C - 0C43464444F3494747FF494747FF4A4848FF606666FF569DBBFF1D9ADAFF24A3 - E5FF28A9EBFF2AACEEFF2BAEF0FF2CAEF1FF2CAFF1FF2DAFF1FF2DAFF1FF2EAF - F1FF2EAFF1FF2EAFF1FF2EAFF1FF2FAFF1FF2FAFF1FF2FB0F1FF30B0F1FF30B0 - F1FF30B0F1FF31B0F1FF31B0F1FF31B0F1FF32B0F1FF32B0F1FF32B0F1FF31AF - EFFF2FADEDFF29A7E7FF219EDDFF3895C2FF616B6DFF4A4949FF494747FF4947 - 47FF494747FF242323A10000003C0000000F0000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000242323010202021A3C3A - 3AD2494747FF494747FF494747FF5B6060FF5B9DB8FF1A99D9FF20A2E5FF24A8 - ECFF26ABEFFF27ACF0FF27ACF1FF27ACF1FF28ACF1FF28ADF1FF28ADF1FF28AD - F1FF29ADF1FF29ADF1FF29ADF1FF29ADF1FF2AADF1FF2AAEF1FF2AAEF1FF2BAE - F1FF2BAEF1FF2BAEF1FF2CAEF1FF2CAEF1FF2DAFF1FF2DAFF1FF2DAFF1FF2DAF - F0FF2DAEF0FF2BABEDFF26A6E8FF1F9DDDFF3A95BFFF5E6565FF494848FF4947 - 47FF494747FF484646FB101010710000002A0908080500000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000004040409242323854947 - 47FF494747FF494747FF545555FF6799AAFF1998D8FF1BA0E4FF1FA6EBFF21A9 - EEFF22AAF0FF22AAF0FF22ABF0FF23ABF0FF23ABF0FF23ABF0FF24ABF0FF24AB - F0FF24ABF0FF25ABF0FF25ABF0FF25ACF0FF25ACF0FF26ACF0FF26ACF1FF26AC - F1FF26ACF1FF27ACF1FF28AAEDFF4B7185FF3D8BB2FF2CA7E6FF28ADF1FF28AD - F1FF28ADF0FF28ACF0FF27AAEDFF22A5E7FF1B9ADBFF4993B3FF565A5AFF4947 - 47FF494747FF494747FF3D3C3CDE010101470000001500000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000010707072B474545F24947 - 47FF494747FF4C4C4CFF708A8FFF2098D3FF179DE1FF1BA4EAFF1CA7EEFF1DA7 - EEFF314855FF4C4A4AFF555353FF555353FF555353FF3484ADFF1FA9F0FF1FA9 - F0FF20A9F0FF20A9F0FF20AAF0FF20AAF0FF21AAF0FF21AAF0FF21AAF0FF22AA - F0FF22AAF0FF22AAF0FF338CB9FF585656FF595757FF57595BFF487287FF3591 - C0FF25A9ECFF24ABF0FF24AAEFFF22A8ECFF1EA2E5FF1897D8FF5C899AFF4E4E - 4EFF494747FF494747FF494747FF201F1F970000002E09080806000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000072E2D2D9E494747FF4947 - 47FF494747FF646B6BFF409EC9FF1499DDFF16A1E8FF18A5EEFF18A7EFFF19A7 - F0FF1E84B8FF3C3A3AFF4F4D4DFF525050FF525050FF4D565CFF1DA2E5FF1BA8 - F0FF1BA8F0FF1BA8F0FF1BA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1CA8F0FF1DA8 - F0FF1DA8F0FF1DA8F0FF456577FF555353FF555353FF555353FF565454FF5654 - 54FF525A5FFF407794FF2B95CBFF1FA8EEFF1DA5EAFF199EE2FF2396CEFF6371 - 74FF4A4848FF494747FF494747FF434242EE0303034900000013000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000007070725474545F5494747FF4947 - 47FF505151FF6998A9FF1094D7FF129EE5FF14A3ECFF15A5EFFF15A5EFFF16A6 - EFFF16A6EFFF264D61FF444242FF4E4D4DFF4F4D4DFF4F4D4DFF357394FF17A6 - F0FF17A6F0FF17A6F0FF18A6F0FF18A7F0FF18A7F0FF18A7F0FF18A7F0FF19A7 - F0FF19A7F0FF2197D4FF504E4EFF525050FF525050FF525050FF525151FF5351 - 51FF535151FF525050FF454343FF2282B3FF1BA6EDFF18A2E8FF1498DCFF4892 - B3FF525454FF494747FF494747FF494747FF1F1E1E92000000261B1A1A030000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000327262684494747FF494747FF4947 - 47FF687272FF329CCEFF0F99DFFF11A0E9FF12A3EDFF12A4EFFF12A4EFFF12A4 - EFFF13A4EFFF168DCAFF323233FF494747FF4D4B4BFF4D4B4BFF4B4C4EFF1C97 - D6FF14A5EFFF14A5EFFF15A5EFFF15A5EFFF15A5EFFF15A5EFFF15A5EFFF16A6 - EFFF16A6EFFF347090FF4E4D4DFF4F4D4DFF4F4D4DFF4C4A4AFF494747FF4E4C - 4CFF504E4EFF4D4B4BFF343F46FF18A3EBFF17A6EFFF16A3ECFF139CE3FF1794 - D3FF65787CFF4A4848FF494747FF494747FF3D3C3CDD0000003B0000000B0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000009424040DC494747FF494747FF4E4E - 4EFF6C97A5FF0D92D7FF0E9CE5FF0FA1ECFF0FA3EEFF10A3EFFF10A3EFFF10A4 - EFFF10A4EFFF10A4EFFF1D5673FF3D3B3BFF4A4848FF4B4949FF4B4949FF3764 - 7BFF11A4EFFF11A4EFFF11A4EFFF12A4EFFF12A4EFFF12A4EFFF12A4EFFF12A4 - EFFF14A0E8FF464E52FF4C4A4AFF4D4B4BFF4B4949FF3B3939FF2C2B2BFF3534 - 34FF413F3FFF3F3E3EFF216385FF15A5EFFF14A5EFFF14A4EDFF119FE7FF0E96 - DBFF4B90AFFF505151FF494747FF494747FF494747FF100F0F690000001C2927 - 2701000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000013121239494747FF494747FF494747FF5D62 - 62FF459FC7FF0D97DDFF0D9EE9FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF1094D8FF2C3033FF454343FF4A4848FF4A4848FF4947 - 47FF1D8AC2FF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EFFF10A3EFFF10A3EFFF10A3 - EFFF247FAEFF4A4848FF4A4848FF4A4848FF454343FF27485AFF14709FFF1A3A - 4BFF222121FF242425FF1492D2FF12A4EFFF11A4EFFF11A3EEFF0FA0EAFF0E99 - E1FF2195CEFF616969FF494747FF494747FF494747FF2E2D2DB8000000330908 - 0807000000000000000000000000000000000000000000000000000000000000 - 000000000000000000003F3F3F012726267F494747FF494747FF4A4848FF7383 - 85FF1A96D3FF0D9AE2FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF186085FF383737FF484646FF494747FF4947 - 47FF3D5663FF0EA1ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF395A6CFF4A4848FF4A4848FF494747FF3C3A3AFF1775A5FF0FA3EFFF0FA3 - EFFF1189C6FF136792FF0FA3EFFF0FA3EFFF0FA3EFFF0FA3EEFF0EA1ECFF0D9C - E5FF0C92D7FF618490FF4A4949FF494747FF494747FF474545F7060606510000 - 0015000000000000000000000000000000000000000000000000000000000000 - 000000000000000000003F3F3F02383737B9494747FF494747FF4D4D4DFF6B98 - A7FF0C93D8FF0D9CE6FF0EA1EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0E9CE5FF27343BFF424040FF484646FF4947 - 47FF484646FF247DABFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1692 - D2FF474545FF494747FF494747FF464444FF2E3539FF0E9DE6FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9E - E8FF0C96DCFF4A91B1FF4F4F4FFF494747FF494747FF494747FF2422229D0000 - 002B121111040000000000000000000000000000000000000000000000000000 - 000000000000000000003F3F3F05474545E6494747FF494747FF545656FF569F - BDFF0C96DCFF0D9EE8FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF156E9CFF353434FF474545FF4947 - 47FF494747FF424E54FF109DE5FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF2B6D - 90FF484646FF494747FF484646FF403E3EFF1E5978FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0E9F - EAFF0D98DFFF3397C6FF585B5BFF494747FF494747FF494747FF413F3FE70101 - 01420000000F0000000000000000000000000000000000000000000000000000 - 000000000000000000004B4A4A14494747FF494747FF494747FF5D6262FF43A0 - CAFF0D97DFFF0E9FE9FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA0EBFF233B47FF403E3EFF4846 - 46FF494747FF484646FF2C7093FF0EA3EFFF0EA3EFFF0EA3EFFF0EA0EBFF404C - 53FF494747FF494747FF474545FF363535FF1287C2FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA0 - EBFF0D9AE2FF1F96D1FF626A6AFF494747FF494747FF494747FF494747FF1918 - 1882000000231B1A1A0200000000000000000000000000000000000000000000 - 000000000000000000005150502F494747FF494747FF494747FF676F6FFF319E - D1FF0D99E1FF0EA0EAFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF137BB1FF323131FF4644 - 44FF494747FF494747FF46484AFF1596D8FF0EA3EFFF0EA3EFFF1D84B9FF4846 - 46FF494747FF494747FF444242FF27404DFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - ECFF0D9BE4FF1092D5FF68787AFF494747FF494747FF494747FF494747FF3836 - 36CE0000003A0404040A00000000000000000000000000000000000000000000 - 0000000000000000000051515141494747FF494747FF494747FF6E7A7AFF259A - D3FF0D9AE2FF0EA0EBFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1F4559FF3E3C - 3CFF484646FF494747FF494747FF33647DFF0EA3EFFF0EA3EFFF31627BFF4846 - 46FF494747FF484646FF3C3B3BFF196B95FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - EDFF0D9CE5FF0C92D6FF678086FF494747FF494747FF494747FF494747FF4846 - 46FE0E0D0D650000001B29272701000000000000000000000000000000000000 - 0000000000000000000052515143494747FF494747FF494747FF737F7FFF1F98 - D3FF0D9AE2FF0EA0EBFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1189C6FF2F2E - 2FFF454343FF494747FF494747FF484646FF1B8BC5FF0F9FE8FF434649FF4947 - 47FF494747FF464545FF313335FF0F98DEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - EDFF0D9CE5FF0C92D6FF65828BFF494848FF494747FF494747FF494747FF4947 - 47FF2D2B2BB50000003209080807000000000000000000000000000000000000 - 0000000000000000000052515142494747FF494747FF494747FF727F7FFF1F98 - D3FF0D9AE2FF0EA0EBFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1C52 - 6EFF3B3A3AFF484646FF494747FF494747FF3C5867FF1F85BAFF484646FF4947 - 47FF494747FF424040FF215069FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - EDFF0D9CE5FF0C92D6FF66838BFF494848FF494747FF494747FF494747FF4947 - 47FF464444F50505054F00000015000000000000000000000000000000000000 - 0000000000000000000051515140494747FF494747FF494747FF6E7979FF289B - D3FF0D99E1FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0F93 - D7FF2B2F32FF444242FF494747FF494747FF494747FF41525BFF494747FF4947 - 47FF484646FF383737FF147DB3FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - EDFF0D9CE5FF0C92D6FF698085FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF2221219A0000002A121111040000000000000000000000000000 - 000000000000000000005151512C494747FF494747FF494747FF666E6EFF369F - D0FF0D99E0FF0EA0EAFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF10A3EFFF16A6 - EFFF256789FF464444FF555353FF575555FF585656FF575555FF575555FF5553 - 53FF4F4E4EFF334148FF11A2ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1 - ECFF0D9BE3FF1293D4FF6A7779FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF403E3EE5000000400000000F0000000000000000000000000000 - 000000000000000000004C4C4C10494747FF494747FF494747FF5C6161FF49A2 - C9FF0D97DEFF0D9FE9FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF17A6EFFF23ABF0FF29ADF0FF2AAD - F1FF2AA6E6FF404B50FF585757FF5E5C5CFF5E5C5CFF5E5C5CFF5E5C5CFF5E5C - 5CFF555353FF367494FF2AADF1FF25ABF0FF1BA7EFFF0FA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA0 - EBFF0D99E1FF2497D0FF626969FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF1716167D000000221B1A1A0200000000000000000000 - 0000000000000000000000000000484646E7494747FF494747FF535555FF5EA1 - BCFF0C95DBFF0D9EE7FF0EA2EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF16A6EFFF2BAEF1FF32B0F1FF32B0F1FF32B0F1FF32B0 - F1FF32B0F1FF3982A8FF545353FF636161FF646262FF646262FF646262FF6361 - 61FF525252FF34A1D8FF32B0F1FF32B0F1FF32B0F1FF2EAFF1FF1BA8F0FF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9F - E9FF0D98DFFF3A98C4FF575A5AFF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF363535CB000000390404040A00000000000000000000 - 00000000000000000000000000003A3939B7494747FF494747FF4D4C4CFF759A - A5FF0C92D6FF0D9CE5FF0EA1ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF22AAF0FF3AB4F1FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4 - F2FF3BB4F2FF3BB2EFFF4E6069FF666565FF6B6969FF6B6969FF6B6969FF6665 - 65FF4D6A79FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF3BB4F2FF2BAE - F0FF0FA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EDFF0D9E - E7FF0C95DBFF5393AEFF4F4F4FFF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF484646FD0C0C0C620000001A00000001000000000000 - 000000000000000000000000000028272778494747FF494747FF494848FF7381 - 81FF259AD3FF0D99E1FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF26ACF0FF44B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7 - F2FF45B7F2FF45B7F2FF4C9BC4FF6D6C6CFF727171FF727171FF727070FF6766 - 66FF4B93B9FF45B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7F2FF45B7 - F2FF33B1F1FF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0EA1ECFF0D9B - E4FF0E92D6FF6A858CFF4A4848FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF2B2A2AB10000003000000006000000000000 - 000000000000000000000000000016151531494747FF494747FF494747FF5B5F - 5FFF53A3C5FF0C96DCFF0D9EE8FF0EA2EDFF0EA3EFFF0EA3EFFF0EA3EFFF1CA8 - EFFF4DBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBB - F3FF4EBBF3FF4EBBF3FF53B1E1FF787777FF7A7878FF7A7878FF787676FF666B - 6EFF4FB7ECFF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBBF3FF4EBB - F3FF4EBBF3FF2BAEF0FF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9FEAFF0D98 - E0FF2E99CBFF606667FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF464444F30504044D00000014000000000000 - 000000000000000000000000000000000000444242DB494747FF494747FF4D4D - 4DFF7899A1FF1093D5FF0D9BE4FF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF46B8 - F2FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BF - F4FF59BFF4FF59BFF4FF6A9FBBFF818080FF828080FF818080FF7C7B7BFF648C - A1FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BFF4FF59BF - F4FF59BFF4FF54BDF3FF12A4EFFF0EA3EFFF0EA2EEFF0EA1ECFF0D9DE6FF0C94 - D9FF5993AAFF4F4F4FFF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF2120209600000029000000030000 - 0000000000000000000000000000000000002D2C2C79494747FF494747FF4947 - 47FF656E6EFF43A2CCFF0C97DDFF0D9EE8FF0EA1EDFF0EA2EEFF15A5EFFF63C3 - F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3 - F4FF64C3F4FF64C3F4FF80939EFF8A8888FF8A8888FF898888FF7E7D7DFF67B1 - D7FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3F4FF64C3 - F4FF64C3F4FF64C3F4FF2AADF0FF0EA3EFFF0EA2EEFF0D9FEAFF0D99E1FF2096 - D0FF697577FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF3F3D3DE10000003F0000000E0000 - 0000000000010000000000000000000000000D0D0D15484646F6494747FF4947 - 47FF4F4F4FFF789BA4FF1293D5FF0D9AE3FF0EA0EBFF0EA2EEFF23ABF0FF6EC8 - F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF70C3EDFF74BDE2FF75BE - E3FF75BEE3FF77BADCFF919091FF929191FF929191FF8F8E8EFF7E8C94FF6EC8 - F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8F5FF6EC8 - F5FF6EC8F5FF6EC8F5FF3CB4F2FF0EA2EEFF0EA1ECFF0D9CE5FF0C93D8FF5B95 - ACFF515252FF494747FF4D4D4DFF535454FF545555FF545555FF545555FF5455 - 55FF535555FF4F5050FF4A4848FF494747FF494747FF16151579000000210000 - 000200000001000000000000000000000000000000004846468F494747FF4947 - 47FF494747FF616767FF56A5C6FF0C95DAFF0D9DE6FF0EA1ECFF23AAF0FF7ACC - F6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF82B5CFFF989797FF9B99 - 99FF9B9999FF9B9999FF9B9999FF9B9999FF9A9999FF949393FF80ADC3FF7ACC - F6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACCF6FF7ACC - F6FF7ACCF6FF7ACCF6FF3EB5F2FF0EA1EDFF0D9EE8FF0C97DEFF3199CAFF656E - 6EFF494747FF4B4949FF5E8FA5FF7BBBD8FF7CBDD9FF7CBDD9FF7CBDD9FF7CBD - D9FF7CBCD9FF7896A3FF4F4F4FFF494747FF494747FF353333C8000000370000 - 00090000000100000000000000000000000000000000575D5D18484646F24947 - 47FF494747FF4C4B4BFF758889FF2C9BD0FF0D97DEFF0D9EE8FF13A3EDFF80CE - F6FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF8CBBD3FFA1A0A0FFA3A2 - A2FFA3A2A2FFA3A2A2FFA3A2A2FFA3A2A2FFA2A1A1FF979898FF86CAEDFF85D0 - F7FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF85D0F7FF85D0 - F7FF85D0F7FF85D0F7FF2CADEFFF0D9FE9FF0D99E1FF1694D4FF6B8992FF4D4C - 4CFF494747FF4B4949FF609AB3FF80D1F7FF83CAEBFF81B8CDFF79ADC3FF78AC - C2FF78ACC2FF718B95FF4E4E4EFF494747FF494747FF484646FD0B0B0B5E0000 - 0019000000010000000000000000000000000000000000000000748B8B744947 - 47FF494747FF494747FF525353FF789BA4FF1A96D4FF0D99E0FF0D9EE8FF5EC0 - F2FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF96C1D7FFA7A6A6FFA8A8 - A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA6A5A5FF98AEB9FF90D4F7FF90D4 - F7FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF90D4F7FF90D4 - F7FF90D4F7FF7CCCF5FF10A0EAFF0D9AE3FF0E93D6FF6197ABFF545656FF4947 - 47FF494747FF494747FF545C5FFF72BFE2FF80D0F5FF83A1ABFF595D5DFF4F50 - 50FF4F4F4FFF4D4C4CFF494747FF494747FF494747FF494747FF2A2929AD0000 - 002C000000040000000000000000000000000000000000000000B6F3F3045052 - 52CB494747FF494747FF494747FF585B5BFF72A3B2FF1394D5FF0D99E0FF1DA4 - E9FF8FD3F6FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8F8FF9EC3D6FFA5A4A4FFA5A5 - A5FFA5A5A5FFA5A5A5FFA5A5A5FFA5A5A5FFA4A4A4FF9DC8DEFF9BD8F8FF9BD8 - F8FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8F8FF9BD8 - F8FF99D7F7FF36AFEDFF0D9AE3FF0C93D7FF559BB8FF5C6161FF494747FF4947 - 47FF494747FF494747FF4A4848FF596E75FF78CAF0FF82CDF0FF76878BFF4E4E - 4EFF494747FF494747FF494747FF494747FF494747FF494747FF444242EF0101 - 013E0000000B000000000000000000000000000000000000000000000000A0D1 - D127484646F3494747FF494747FF494848FF5C6161FF71A4B4FF1595D5FF0D98 - DFFF33ACEAFF9FD9F7FFA6DCF8FFA6DDF9FFA6DDF9FFA7D1E7FFA8C2D0FFA8C2 - D0FFA8C2D0FFA8C2D0FFA8C2D0FFA8C2D0FFA8C3D0FFA6DCF8FFA6DDF9FFA6DD - F9FFA6DDF9FFA6DDF9FFA6DDF9FFA6DDF9FFA6DDF9FFA6DDF9FFA6DCF9FFA5DB - F8FF53BAEEFF0D9AE1FF0D93D7FF559CBAFF606667FF4A4848FF494747FF4947 - 47FF494747FF494747FF494747FF4C4B4BFF5F8493FF7DD0F6FF85C6E4FF6B74 - 75FF4C4B4BFF494747FF494747FF494747FF494747FF494747FF494747FF1514 - 146F000000120000000000000000000000000000000000000000000000000000 - 000083A3A355494747FE494747FF494747FF4A4848FF5B5F5FFF76A0ACFF2198 - D2FF0C96DCFF30A9E8FF9CD7F6FFB1E0F9FFB1E1F9FFB1E1FAFFB1E1FAFFB1E1 - FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1 - FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1FAFFB1E1F9FFB1E0F9FFAADDF7FF4BB5 - ECFF0D98DFFF1294D5FF609BB2FF5E6464FF4A4848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4E4E4EFF669DB4FF80D0F7FF85B9 - D1FF606666FF4A4949FF494747FF494747FF494747FF494747FF494747FF2625 - 259D000000160000000000000000000000000000000000000000000000000000 - 00000000000032607879494747FF494747FF494747FF494747FF555757FF7993 - 98FF3FA0CDFF0C93D7FF179DE1FF6DC3EFFFB4E1F8FFBBE4F9FFBBE5FAFFBBE5 - FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE5 - FAFFBBE5FAFFBBE5FAFFBBE5FAFFBBE4F9FFBAE3F9FF84CDF2FF26A4E4FF0C94 - DAFF2999CFFF6C939EFF575B5BFF494848FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF535656FF8DC0D6FFA4DE - F9FF92AEB9FF565959FF494747FF494747FF494747FF494747FF494747FF3130 - 30B1000000140000000000000000000000000000000000000000000000000000 - 0000000000000000000032607887494747FF494747FF494747FF494747FF4E4E - 4EFF6C7778FF6AA4B8FF2499D2FF0C94D9FF1FA0E2FF66C0EDFFA5DBF6FFC5E8 - FAFFC5E8FAFFC5E8FBFFC5E8FBFFC5E9FBFFC5E9FBFFC5E9FBFFC5E8FBFFC5E8 - FBFFC5E8FAFFC5E8FAFFB3E1F8FF76C7F0FF2FA7E5FF0C95DBFF1695D4FF549D - BCFF6D7C7DFF505050FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF5B6568FFA4D5 - ECFFB0E0F7FF7A8688FF4C4B4BFF494747FF494747FF494747FF494747FF302F - 2FAA0000000D0000000000000000000000000000000000000000000000000000 - 000000000000000000000000000032607876494747FE494747FF494747FF4947 - 47FF4A4848FF565959FF76888AFF63A3BCFF2B9CD2FF0C92D7FF0C96DCFF24A2 - E3FF50B6EAFF71C4EFFF88CEF2FF96D4F4FF9DD7F5FF99D5F4FF8CD0F3FF78C7 - F0FF58B9EBFF2FA7E5FF0F98DEFF0C93D8FF1D97D3FF529FBFFF728A8FFF585C - 5CFF4A4949FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF515252FF5A5E5EFF525353FF494747FF4B4949FF7E9B - A6FFBAE6FBFF99B1BAFF515151FF494747FF494747FF494747FF494747FF2423 - 2387000000060000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000002A698950494747F0494747FF4947 - 47FF494747FF494747FF4B4949FF565959FF717E7FFF729DA9FF53A3C5FF2E9D - D2FF1193D4FF0C92D7FF0C94D9FF0C95DAFF0C95DBFF0C95DBFF0C94DAFF0C93 - D8FF0E92D5FF2599D2FF48A0C7FF679AACFF718183FF585B5BFF4B4A4AFF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4949FF8EAFBEFFBFE5F7FF839195FF4D4D4DFF4A4848FF768B - 92FFC4E9FBFFA1B8C0FF525353FF494747FF494747FF494747FF494747FF1312 - 1240000000010000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000074B4C422575E5EC24947 - 47FF494747FF494747FF494747FF494747FF494848FF4E4E4EFF5A5E5EFF6C77 - 77FF7A8F91FF7399A4FF689DB0FF619FB7FF5E9FB9FF5F9FB7FF659DB1FF6E98 - A5FF788F93FF6E7979FF5B5F5FFF4F4F4FFF4A4848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF4A4848FF8198A0FFCDECFCFFB5CDD7FF6B7474FF626A6BFFAECC - D9FFCDECFCFF91A2A7FF4E4E4EFF494747FF494747FF494747FF3E3C3CCA0000 - 0006000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000099C5C5016675 - 7563494747E7494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF4A4848FF4C4B4BFF4F4F4FFF515151FF525353FF515252FF4F4F4FFF4C4C - 4CFF4A4949FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF55595AFFB4D0DCFFD6F0FCFFCEE9F5FFCFEAF7FFD6F0 - FCFFB9D0D9FF626767FF4A4848FF494747FF494747FF484646FA1414143A0000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00004947470C49474776494747E4494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494848FF56595AFF87979CFFA3B3B9FFA3B4B9FF8C9A - 9EFF5E6364FF4C4A4AFF494747FF494747FF494747FE2A282867000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000004947470549474752494747AD494747F6494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF4A4949FF4D4C4CFF4D4D4DFF4B4A - 4AFF494747FF494747FF494747FF484646E93533335000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000049474709494747434947 - 477C494747AB494747CF494747E9494747FA494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747F1494747C1484646704442420D0000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFF8001FFFFFFFFFFFC00003FFFFFFFFFF0000007FFFFFFFFC - 0000003FFFFFFFF80000000FFFFFFFE000000007FFFFFFC000000003FFFFFF80 - 00000001FFFFFF0000000000FFFFFE00000000007FFFFC00000000003FFFFC00 - 000000001FFFF800000000001FFFF000000000000FFFF000000000000FFFE000 - 0000000007FFE0000000000007FFE0000000000003FFC0000000000003FFC000 - 0000000001FFC0000000000001FF80000000000001FF80000000000000FF8000 - 0000000000FF800000000000007F800000000000007F800000000000003F8000 - 00000000003F800000000000003F800000000000001F800000000000001F8000 - 00000000000FC00000000000000FC000000000000007C000000000000007C000 - 000000000007E000000000000003E000000000000002E000000000000000F000 - 000000000000F000000000000000F800000000000000F800000000000000FC00 - 000000000000FE00000000000000FF00000000000000FF80000000000000FFC0 - 000000000000FFE0000000000000FFF0000000000001FFF8000000000003FFFE - 000000000007FFFF80000000000FFFFFF0000000001FFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - FFFFFFFFFFFF2800000030000000600000000100200000000000802500000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000200000008000000110000001A000000210000 - 002400000025000000230000001D000000140000000B00000004000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000A09 - 0901000000090000001B000000310404044B1110106F1B1A1A8C2221219D2322 - 22A1232222A1201F1F98161616830B0B0B640101014700000036000000210000 - 000C050404020000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000A0A0A0A0000 - 0024080707502221219B393838D5464444F7484646FE494747FF484646FE4846 - 46FE494747FF484646FE484646FE484646FD424040EB2E2D2DBD1414147E0000 - 00470000002C0606060F29282801000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000191818040000001C0C0C0C59302E - 2EBD484646FA494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF3F3D - 3DE41E1D1D950101014A000000250F0E0E070000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000202B2B0904040435292828A9474545F94846 - 46FE484646FE494747FE4A4949FF525353FE5D6566FE5E7379FF5B7B87FE5B7F - 8DFE5A7D8AFF5B757EFE5E6A6CFE565858FF4C4B4BFE494747FE494747FF4846 - 46FE484646FE3C3B3BDE12111178000000380C10100F00000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000001C1C1C0D0D0D0D533E3C3CDF484646FE494747FF4947 - 47FE4F5050FE617073FE548CA3FF439CC5FE32A0D7FE2FA3DDFF31A5E0FE33A6 - E1FE32A6E1FF30A4DFFE2FA0DAFE399DCEFF4990B0FE5A7884FE555757FF4948 - 48FE484646FE494747FF474545FB262525A7010101430A0A0A15467287010000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000001A1A1A0D16151568454343F3494747FF494747FF4D4D4DFF6174 - 79FF4C97B9FF2DA0D9FF31A7E3FF36ACE8FF3AAFEBFF3CB2EDFF3EB3EEFF3FB3 - EFFF3FB3EFFF3EB3EEFF3DB1EDFF3AAEEAFF35AAE6FF2BA2DEFF3A9AC9FF567F - 8FFF535555FF494747FF494747FF494747FF323131C50202024A000407160000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00002531310816161665464444F6484646FE494747FF585C5CFE588FA6FF2C9E - D7FE2DA6E4FE33ADEBFE37B0EEFF39B2F0FE3AB3F1FE3BB4F1FF3BB4F1FE3CB4 - F1FE3CB4F2FF3CB4F1FE3DB4F1FE3CB4F1FF3BB3EFFE38B0EDFE33ABE8FF29A1 - DEFE3E95BDFE5A6A70FF4A4949FE494747FF484646FE353333CB02020248080A - 0A11000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000004F6A - 6A030E0E0E4A464444F4494747FF494747FF5E6869FF4699BEFF24A0DFFF2BA9 - E9FF30AEEEFF32B0F0FF33B1F1FF34B1F1FF34B1F1FF35B1F1FF35B2F1FF35B2 - F1FF36B2F1FF36B2F2FF37B2F2FF37B2F2FF37B3F1FF37B2F1FF36B1F0FF33AD - ECFF2BA6E4FF2C9AD1FF597884FF4C4B4BFF494747FF494747FF302F2FBF0000 - 003A171D1D090000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000505 - 0524403E3EE0494747FF494747FE5F6A6BFE3C9AC7FF21A0E1FE27A9EBFF2AAC - EFFE2BAEF0FE2BAEF0FE2CAEF1FF2CAEF0FE2DAFF0FE2DAFF1FF2EAFF0FE2EAF - F0FE2EAFF1FF2FAFF0FE30B0F0FE30B0F1FF30B0F1FE31B0F1FE31B0F1FF31AF - F0FE2FADEEFE29A7E7FF249BD7FE577C8BFF4B4A4AFE484646FE494747FF2221 - 219C000000292221210200000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000000D0D0D092E2D - 2DA6484646FE494747FF5B6061FE4299C2FE1C9EE1FF21A7EBFE24AAEFFF24AB - F0FE25ABF0FE25ABF0FE26ACF0FF26ACF0FE26ACF0FE27ACF0FF27ACF0FE27AC - F0FE28ADF1FF28ADF0FE29ADF0FE29ADF1FF31A0DAFE30A3DEFE2AAEF1FF2AAE - F0FE2AADF0FE29ACEEFF24A5E7FE2299D5FF5A747EFE4A4848FE494747FF4644 - 44F80D0D0D650101011300000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000111111474846 - 46FB484646FE505151FF5594AFFE179BDDFE1BA4EAFF1DA8EFFE297298FF4364 - 75FE48697AFE48697AFE2C94CAFF20A9EFFE20AAEFFE21AAF0FF21AAF0FE21AA - F0FE22AAF0FF22AAF0FE23ABF0FE23ABF0FF476E82FE58595AFE4C6D7FFF398C - B7FE28A7E8FE25ABF0FF24A9EDFE1EA2E5FF2A96CBFE596365FE494747FF4846 - 46FE373535CF000000331E1D1D03000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000007393737C34947 - 47FF4A4848FF658088FF1A98D8FF16A0E8FF17A5EEFF18A7EFFF1B93D0FF3C3E - 3FFF504E4EFF525050FF45616FFF1BA6EDFF1AA7F0FF1AA7F0FF1BA8F0FF1BA8 - F0FF1BA8F0FF1CA8F0FF1CA8F0FF239BD9FF525354FF555353FF555353FF5553 - 53FF53575AFF42728AFF298EC2FF1DA6ECFF189DE0FF448DAEFF4E4E4EFF4947 - 47FF484646FE1514147605040411000000000000000000000000000000000000 - 000000000000000000000000000000000000000000001111113E484646FE4947 - 47FE565959FE3F9AC4FF109BE2FE13A3ECFE13A5EFFF14A5EFFE14A5EFFF225E - 7CFE464444FE4E4C4CFE4E4C4CFF2A82B0FE16A6EFFE16A6EFFF16A6EFFE16A6 - EFFE17A6EFFF17A6EFFE17A6EFFE337699FF504E4EFE514F4FFE504E4EFF504E - 4EFE514F4FFE4D4C4CFF2B627FFE19A6EFFF17A1E8FE1796D7FE5B7179FF4947 - 47FE484646FE353434CA000000282D2B2B010000000000000000000000000000 - 000000000000000000000000000000000000000000022E2D2D9E494747FF4947 - 47FE67828AFE1095D8FF0F9FE8FE10A3EEFE10A3EFFF10A4EEFE10A4EFFF1297 - DBFE31393EFE494747FE4B4949FF44525AFE149FE5FE12A4EFFF12A4EEFE12A4 - EEFE12A4EFFF13A4EFFE14A2EBFE465158FF4D4B4BFE4C4A4AFE3B3A3AFF3534 - 34FE424141FE3E3D3EFF198BC5FE15A5EFFF14A3ECFE109AE1FE408EB2FF4D4D - 4DFE484646FE484646FC090808510F0F0F090000000000000000000000000000 - 0000000000000000000000000000000000000303030B444242E8494747FF4F50 - 50FF4C98B9FF0D99E0FF0EA1ECFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF19668EFF3F3D3DFF494747FF494747FF2C7297FF0FA3EFFF0FA3EFFF0FA3 - EFFF0FA3EFFF0FA3EFFF2183B5FF4A4848FF4A4848FF454343FF205F7FFF1569 - 93FF1D3642FF1E3C4CFF11A3EEFF11A4EFFF10A3EEFF0E9DE7FF1895D3FF5C65 - 66FF494747FF494747FF272525A50000001E0000000000000000000000000000 - 00000000000000000000000000000000000011101038484646FE494747FF5F66 - 66FE299AD1FE0D9CE6FF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0E9CE5FE2A3B44FE464444FF484646FE46494CFE1497DAFF0EA2EEFE0EA2 - EEFE0EA3EFFF0EA2EEFE365E73FE494747FF494747FE393939FE1191D3FF0EA2 - EEFE0EA1EDFE0F97DCFF0FA3EEFE0EA3EFFF0EA2EEFE0EA0EAFE0C96DCFF557D - 8EFE494747FE494747FF424040EC0303033E1B1A1A0500000000000000000000 - 0000000000000000000000000000000000002120206B484646FE494747FF687F - 85FE1095D8FE0D9FE9FF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE1573A3FE3B3939FF484646FE484646FE336680FF0DA2EEFE0DA2 - EEFE0EA3EFFF1496D8FE464749FE494747FF464444FE274C5FFE0EA3EFFF0DA2 - EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0DA1ECFE0D99E1FF438C - AEFE4B4A4AFE494747FF484646FE1B1B1B880000001500000000000000000000 - 0000000000000000000000000000000000002E2C2C92494747FF4A4848FF618C - 9CFF0C96DCFF0EA0EBFF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA1EDFF264150FF454343FF494747FF484748FF1B8CC6FF0EA3 - EFFF0EA3EFFF297399FF484646FF494747FF403E3EFF1776A6FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EDFF0D9BE4FF3494 - C2FF505151FF494747FF494747FF3A3939D70000003024232302000000000000 - 000000000000000000000000000000000000313030AA484646FE4B4A4AFF5893 - ABFE0D98DFFE0EA1ECFF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE0DA2EEFE1380B7FF373737FE484646FE494747FF3A5A6BFE0EA1 - ECFE0EA1ECFF3E525DFE484646FE484646FF323B41FE0E9CE4FE0EA3EFFF0DA2 - EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0DA2EEFE0D9DE6FF2796 - CCFE555858FE494747FF484646FE484646FD1110106A0707070E000000000000 - 000000000000000000000000000000000000323030B1484646FE4C4B4BFF5496 - B2FE0D98E0FE0EA1ECFF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE0DA2EEFE0EA2EEFF214C62FE434141FE494747FF484646FE2281 - B1FE188ECAFF474546FE484646FE444343FF205C7BFE0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0DA2EEFE0D9DE7FF2196 - D0FE595D5DFE494747FF484646FE484646FE302E2EBD00000025302F2F010000 - 000000000000000000000000000000000000323030B1494747FF4C4B4BFF5596 - B1FF0D98E0FF0EA1ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF118CCAFF333537FF484646FF494747FF4150 - 59FF2D6F91FF484646FF484646FF3B3A3BFF1287C3FF0EA3EFFF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9DE7FF2296 - D0FF595D5DFF494747FF494747FF494747FF474545F90707074E100F0F090000 - 000000000000000000000000000000000000323030A9484646FE4B4A4AFF5B94 - AAFE0D97DEFE0EA1ECFF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE0DA2EEFE0EA3EFFF0EA3EFFE205A77FE464545FF4F4D4DFE504E - 4EFE4F4F50FF4E4C4CFE4B4949FE2C4654FF0EA2EDFE0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0DA2EEFE0D9CE6FF2A96 - CBFE555858FE494747FF484646FE484646FE494747FF252424A10000001C0000 - 0000000000000000000000000000000000002F2D2D8F484646FE494848FF658D - 9BFE0C95DBFE0DA0EAFF0DA2EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2 - EEFE0DA2EEFE13A5EFFE1FA9F0FF26ACF0FE29A1DEFE464B4FFF5B5A5AFE5D5B - 5BFE5D5B5BFF5D5B5BFE575555FE327CA2FF22AAF0FE19A7EFFE0EA3EFFF0DA2 - EEFE0DA2EEFE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0DA2EDFE0D9BE4FF3895 - C0FE505050FE494747FF484646FE484646FE494747FF413F3FE90202023B1918 - 18050000000000000000000000000000000023222268494747FF494747FF6B7F - 83FF1395D7FF0D9EE8FF0EA2EEFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF11A4 - EFFF27ACF0FF33B1F1FF34B1F1FF34B1F1FF34B1F1FF3D7D9DFF5C5B5BFF6563 - 63FF656363FF656363FF555759FF35A8E3FF34B1F1FF34B1F1FF2FAFF1FF19A7 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA1ECFF0D99E0FF488D - ABFF4B4A4AFF494747FF494747FF494747FF494747FF494747FF1A1919840202 - 02140000000000000000000000000000000012111133484646FE494747FF5E64 - 64FE319DD0FE0D9CE5FF0DA2EDFE0DA2EEFE0EA3EFFF0DA2EEFE14A5EFFF38B3 - F1FE3FB6F2FE3FB6F2FE40B6F2FF3FB6F2FE3FB6F2FE40B0E9FF5D696FFE6E6D - 6DFE6F6D6DFF6C6A6AFE51778BFE40B6F2FF3FB6F2FE3FB6F2FE40B6F2FF3FB5 - F2FE23ABF0FE0EA3EFFF0DA2EEFE0EA3EFFF0DA2EEFE0D9FEAFE0C95DBFF5C7E - 8BFE494747FE494747FF484646FE484646FE494747FF484646FE393737D40000 - 002F0000000200000000000000000000000003030305464444E8494747FF4F4F - 4FFE559AB7FE0D98DFFF0DA0EBFE0DA2EEFE0EA3EFFF0FA3EFFE40B5F2FF4DBA - F3FE4DBAF3FE4DBAF3FE4DBAF3FF4DBAF3FE4DBAF3FE4DBAF3FF648FA6FE7877 - 77FE787777FF706F6FFE529FC7FE4DBAF3FF4DBAF3FE4DBAF3FE4DBAF3FF4DBA - F3FE4CBAF3FE1EA9F0FF0DA2EEFE0EA3EFFF0DA2EDFE0D9DE6FE2097D1FF5D63 - 63FE484747FE494747FF484646FE484646FE494747FF484646FE484646FD0F0F - 0F660000000D00000000000000000000000000000000302F2F98494747FF4947 - 47FF6D8287FF1596D7FF0D9DE7FF0EA2EEFF0EA3EFFF29ADF0FF5BC0F4FF5BC0 - F4FF5BC0F4FF5BC0F4FF5BC0F4FF5BC0F4FF5BC0F4FF5BBFF2FF7C888EFF8382 - 82FF828181FF717C82FF5BBEF0FF5BC0F4FF5BC0F4FF5BC0F4FF5BC0F4FF5BC0 - F4FF5BC0F4FF4BBAF3FF0EA3EFFF0EA2EEFF0DA0EBFF0D98DFFF4B90AEFF4C4C - 4CFF494747FF494747FF494747FF494747FF494747FF494747FF494747FF2F2D - 2DBA000000240000000100000000000000000000000016151533494747FE4846 - 46FE545757FE4C9EC2FF0D98E0FE0DA0EBFE0EA2EEFF47B8F2FE69C5F5FF69C5 - F5FE69C5F5FE69C5F5FE69C5F5FF69C5F5FE69C5F5FE70B9DEFF8D8C8CFE8D8C - 8CFE8A8989FF729EB5FE69C5F5FE69C5F5FF69C5F5FE69C5F5FE69C5F5FF69C5 - F5FE69C5F5FE67C4F5FF15A5EFFE0EA2EDFF0D9DE6FE1A96D3FE607074FF4947 - 47FE4A4949FE4B4A4AFF4B4A4AFE4B4A4AFE4B4A4AFF4A4848FE494747FE4745 - 45F80606064B0000000800000000000000000000000000000000484646BB4947 - 47FF494747FF6B7F84FF1E98D5FF0D9CE5FF0EA1EDFF53BDF3FF78CBF6FF78CB - F6FF78CBF6FF78CBF6FF84AFC6FF959DA2FF959EA3FF979B9FFF999898FF9998 - 98FF909091FF7AC0E4FF78CBF6FF78CBF6FF78CBF6FF78CBF6FF78CBF6FF78CB - F6FF78CBF6FF77CBF6FF19A6EFFF0D9FEAFF0D96DDFF518FA9FF4D4D4DFF4C4E - 4FFF699BB1FF75A7BCFF75A7BCFF75A7BCFF75A6BCFF687B82FF4A4848FF4947 - 47FF2322229D0000001B000000010000000000000000000000005C6565384846 - 46FB484646FE4F4F4FFF6397AAFE0F95DAFE0D9EE8FF45B7F1FE87D1F7FF87D1 - F7FE87D1F7FE87D1F7FE93B5C7FFA3A2A2FEA4A3A3FEA4A3A3FFA4A3A3FEA3A2 - A2FE93A5AEFF87D1F7FE87D1F7FE87D1F7FF87D1F7FE87D1F7FE87D1F7FF87D1 - F7FE87D1F7FE78CBF5FF10A1EBFE0D99E1FF3396C5FE5A6061FE494747FF4D4E - 4FFE70BBDCFE82CDF0FF7EA9BAFE7098A9FE7098A8FF647278FE494848FE4947 - 47FF413F3FE80202023900000004000000000000000000000000000000006777 - 7799484646FE494747FF595D5DFE539EBDFE0D96DCFF19A3E9FE8AD1F6FF95D6 - F7FE95D6F7FE95D6F7FE9DBBCAFFA7A6A6FEA7A6A6FEA7A6A6FFA7A6A6FEA6A5 - A5FE99C2D7FF95D6F7FE95D6F7FE95D6F8FF95D6F7FE95D6F7FE95D6F8FF95D6 - F7FE95D6F7FE49B7EFFF0D9AE2FE2397CFFF627378FE494848FE494747FF4947 - 47FE586C74FE7ACAEFFF80ABBEFE545656FE4A4848FF494747FE494747FE4947 - 47FF484646FE1817177C0000000E00000000000000000000000000000000B0EA - EA10515353DB494747FF494747FF5F6667FF4D9FC2FF0D96DCFF38AEEBFFA0DA - F7FFA4DCF8FFA4DCF8FFA6C9DAFFA7BBC5FFA7BBC5FFA7BBC5FFA7BBC5FFA7BB - C5FFA4DAF5FFA4DCF8FFA4DCF8FFA4DCF9FFA4DCF8FFA4DCF8FFA4DCF9FFA4DC - F8FF74C7F2FF0F9BE2FF2297D0FF627C84FF4B4949FF494747FF494747FF4947 - 47FF4A4848FF5F8493FF7FCFF5FF79959FFF4E4D4DFF494747FF494747FF4947 - 47FF494747FF313030BD0000001A000000000000000000000000000000000000 - 00009DCBCB30484748F2484646FE494747FE5E6464FF599DB8FE1296D8FF36AB - E7FE9ED8F6FEB2E1F9FEB2E2FAFFB2E2F9FEB2E2F9FEB2E2FAFFB2E2F9FEB2E2 - F9FEB2E2FAFFB2E2F9FEB2E2F9FEB2E2FAFFB2E2F9FEB2E1F9FEAFE0F8FF69C2 - EFFE1199DEFE3098C9FF63777DFE4B4A4AFF484646FE484646FE494747FF4846 - 46FE484646FE4C4B4BFF6B9EB5FE8AD0F0FE718085FF4B4949FE484646FE4947 - 47FF484646FE413F3FE701010121000000000000000000000000000000000000 - 00000000000021729B4A484849F6484646FE494747FF555858FE69919EFF2C9B - D0FE179BDEFE62BEEDFEABDDF7FFC0E6FAFEC0E6FAFEC0E7FAFFC0E7FAFEC0E7 - FAFEC0E7FAFFC0E7FAFEC0E7FAFEC0E6FAFFBBE4F9FE86CEF2FE32A8E4FF1596 - D7FE4F96B4FE5F6869FF4A4848FE494747FF484646FE484646FE494747FF4846 - 46FE484646FE494747FF515354FE93C1D5FEA7D2E6FF606565FE494747FE4947 - 47FF484646FE464444F10303031F000000000000000000000000000000000000 - 0000000000000000000021729B49484748F1494747FF494747FF4C4B4BFF6570 - 72FF5E99B0FF2B9CD2FF1197DBFF39ABE5FF68C0EDFF8ACFF2FF9ED7F5FFA7DB - F6FFA3DAF6FF94D3F4FF78C7F0FF4FB5E9FF1E9EDFFF1696D6FF469ABFFF657E - 86FF515252FF494747FF494747FF494747FF494747FF494747FF494747FF4A48 - 48FF535555FF515252FF494747FF606C70FFB5E3F8FF86979DFF4A4848FF4947 - 47FF494747FF413F3FE00000000F000000000000000000000000000000000000 - 00000000000000000000000000001D77A52D444B50D7484646FE494747FF4947 - 47FE4D4D4DFE636B6CFE688E9AFF4F9BBCFE359DCEFE1E98D5FF1396D7FE1195 - D8FE1295D8FF1897D6FE2A9BD1FE429BC3FF5B91A6FE68787BFE525353FF4947 - 47FE484646FE494747FF484646FE494747FF484646FE484646FE494747FF4F51 - 52FEB4DBEDFE99AEB6FF4F4F4FFE595F60FEBFE5F6FF8FA0A6FE4A4949FE4947 - 47FF484646FE2F2D2DA000000003000000000000000000000000000000000000 - 000000000000000000000000000000000000A5E4E80D7084848F494848F84846 - 46FE484646FE494747FE4A4848FF4F5050FE5A5F5FFE677071FF6B7B7EFE6A7E - 83FE6A7C80FF687476FE5F6565FE535454FF4B4A4AFE494747FE494747FF4846 - 46FE484646FE494747FF484646FE494747FF484646FE484646FE494747FF4B4A - 4AFE9EB7C2FECBE6F3FF9CAFB5FEB1CAD4FECCE8F5FF707779FE494747FE4947 - 47FF474545F60F0E0E2E00000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000000000004947472A4947 - 47A7494747FA494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4947 - 47FF535656FF93A4AAFFB1C3CAFFAABCC3FF788284FF4D4C4CFF494747FF4947 - 47FE262424690000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00004846461C48464676494747C8484646F7484646FE494747FF484646FE4846 - 46FE494747FF484646FE484646FE494747FF484646FE484646FE494747FF4846 - 46FE484646FE494747FF484646FE494747FF484646FE484646FE494747FF4846 - 46FE494747FE4A4848FF4C4B4BFE4B4A4AFE494747FF484646FE474545E03C3B - 3B52000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000A3A2A211A3A2A23BA4A3A35FA3A2A276A3A2 - A27FA4A3A37FA3A2A27FA3A2A27FA4A3A37FA3A2A27FA3A2A27FA4A3A37FA3A2 - A27FA3A2A27FA4A3A37FA3A2A27FA4A3A37FA3A2A27FA3A2A27FA4A3A37FA3A2 - A27FA3A2A27FA4A3A37FA3A2A27FA3A2A27FA4A3A377A3A2A248A3A2A2080000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF - FFFFFFFF0000FFFE001FFFFF0000FFF00003FFFF0000FFE00000FFFF0000FF80 - 00007FFF0000FF0000003FFF0000FE0000000FFF0000FC0000000FFF0000F800 - 000007FF0000F000000003FF0000F000000001FF0000E000000001FF0000E000 - 000000FF0000C000000000FF0000C0000000007F000080000000007F00008000 - 0000007F000080000000003F000080000000003F000080000000001F00008000 - 0000001F000080000000000F000080000000000F000080000000000F00008000 - 000000070000800000000007000080000000000300008000000000030000C000 - 000000010000C000000000010000E000000000000000E000000000000000F000 - 000000000000F000000000000000F800000000000000FC00000000000000FE00 - 000000000000FF00000000000000FF80000000010000FFE0000000030000FFF8 - 000000070000FFFF0000000F0000FFFFFFFFFFFF0000FFFFFFFFFFFF0000FFFF - FFFFFFFF0000FFFFFFFFFFFF0000280000002000000040000000010020000000 - 0000801000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000030000 - 000E0000001F0000002D00000033000000340000002F00000022000000110000 - 0004000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000252424040404041F121212672928 - 28AD393838D8444242F0484646F9474545F8414040EB353333CE2221219F0909 - 0958020202251F1F1F0700000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000B0B0B14181818763D3B3BDF494747FF4947 - 47FF494747FF4C4B4BFF4F4F4FFF4E4D4DFF4B4949FF494747FF494747FF4846 - 46FD323030C60B0B0B5F0606061A526262010000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000BBC3C3011011112D343232C4494747FF494848FF565C5EFF507B - 8EFF4892B5FF429FCBFF40A3D4FF40A2D1FF439AC3FF4888A5FF526D78FF4E4E - 4EFF494747FF474545FA2221219D0304042A6183900300000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000151515363F3E3EE3494747FF545858FF4D88A3FF33A2DAFF34AB - E7FF39B0EDFF3DB3EFFF3EB4F0FF3EB4F0FF3DB3EEFF3AAFEBFF31A8E4FF3A9A - C8FF51717EFF4B4A4AFF494747FF2F2D2DBD0103042F7FABAB02000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00001E262625403E3EE2494747FF57696FFF379BCCFF2BA8E7FF32AFEFFF35B1 - F1FF35B2F1FF36B2F1FF37B2F1FF37B3F1FF38B3F2FF38B3F1FF38B2F1FF35AF - EDFF2BA4E2FF4488A8FF4F5050FF494747FF2E2C2CBA090C0C23000000000000 - 000000000000000000000000000000000000000000000000000000000000292E - 2E08363434C2494747FF586B71FF2B9DD5FF25A8EBFF29ACF0FF2AADF1FF2AAE - F1FF2BAEF1FF2CAEF1FF2CAEF1FF2DAFF1FF2EAFF1FF2EAFF1FF2FAFF1FF2FAF - F1FF2EAEEFFF27A6E6FF3C8DB3FF4E4F4FFF494747FF1F1E1E920F0F0F0F0000 - 0000000000000000000000000000000000000000000000000000000000001E1D - 1D6B494747FF565C5EFF2E99CEFF1CA4EAFF2491C8FF397D9FFF3C7FA1FF26A1 - DFFF22AAF0FF22AAF0FF23ABF0FF23ABF0FF24ABF0FF29A3E1FF4E6A79FF3D88 - AEFF2BA5E3FF26ABEFFF1FA2E5FF4583A0FF4A4848FF464444F6080808493230 - 30010000000000000000000000000000000000000000000000000101010B4240 - 40E44B4949FF478DADFF149FE6FF16A5EFFF189EE1FF3D464BFF514F4FFF3B6E - 89FF19A7F0FF19A7F0FF1AA7F0FF1AA7F0FF1BA8F0FF357DA2FF545252FF5452 - 52FF535455FF40687DFF1E9EDEFF1A9BDDFF526871FF494747FF2C2A2AB21413 - 130F0000000000000000000000000000000000000000000000001A19195B4947 - 47FF5B686BFF1799DAFF10A2ECFF11A4EFFF11A4EFFF1D6E98FF474545FF4B4A - 4AFF1E91CBFF13A4EFFF13A5EFFF14A5EFFF15A4EDFF45555EFF4D4B4BFF3F3D - 3DFF454343FF384B55FF16A5EEFF14A1E9FF358CB6FF4B4949FF464444F60403 - 0333000000000000000000000000000000000000000000000000333131AD4947 - 47FF4C87A0FF0D9CE5FF0EA2EEFF0EA3EFFF0EA3EFFF0E9FE9FF30424CFF4947 - 47FF3B5B6DFF0FA3EEFF0FA3EFFF0FA3EFFF1F88BEFF4A4848FF454343FF1874 - A3FF176288FF16709EFF10A3EFFF0FA2EDFF1297DBFF555F62FF494747FF1F1E - 1E8D21202007000000000000000000000000000000009F9F9F02444242E74D4C - 4CFF3798C6FF0D9FEAFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1678AAFF4240 - 40FF484646FF2183B5FF0EA3EFFF0EA3EFFF34637BFF484646FF34444DFF0EA1 - ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9BE3FF497588FF494747FF3D3C - 3CE00404042000000000000000000000000000000000A6A6A610494747FF5558 - 58FF239CD7FF0EA1ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF2A49 - 5AFF484646FF41515BFF0F9FE9FF129AE0FF464849FF474545FF1F678DFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9DE7FF3E82A2FF494747FF4947 - 47FF1413136B2B2A2A03000000000000000000000000A8A8A821494747FF5D62 - 62FF1799DBFF0EA1EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF1385 - BFFF3E3D3DFF494747FF29769EFF247AA7FF484646FF3F3E3FFF1192D4FF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0D9FE9FF3989AFFF494747FF4947 - 47FF333131C60C0C0C15000000000000000000000000A8A8A820494747FF5C61 - 61FF189ADBFF0EA1EDFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3 - EFFF24536CFF474545FF454B4FFF3C5968FF484646FF2C5165FF0EA3EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF0D9EE9FF3A89AFFF494747FF4947 - 47FF484646FC0A09094A353434010000000000000000A7A6A60F494747FF5557 - 57FF269CD6FF0DA1ECFF0EA3EFFF0EA3EFFF0EA3EFFF0EA3EFFF10A3EFFF1AA7 - EFFF2498D4FF4D4E50FF5B5959FF5A5858FF565454FF2981AEFF17A6EFFF0EA3 - EFFF0EA3EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9DE7FF4083A1FF494747FF4947 - 47FF494747FF282727A81616160D000000000000000000000000454343E74C4C - 4CFF3B99C4FF0D9FEAFF0EA3EFFF0EA3EFFF0EA3EFFF20AAF0FF35B1F1FF36B2 - F1FF36B2F1FF457A95FF666464FF676666FF5A6064FF37AEEBFF36B2F1FF30B0 - F1FF15A5EFFF0EA3EFFF0EA3EFFF0EA2EEFF0D9AE3FF4D7587FF494747FF4947 - 47FF494747FF444242F104040430000000000000000000000000343232A94947 - 47FF51879EFF0D9BE4FF0EA2EEFF0EA3EFFF27ACF0FF49B9F3FF49B9F3FF49B9 - F3FF49B9F3FF4DB0E3FF747373FF757474FF5A879EFF49B9F3FF49B9F3FF49B9 - F3FF45B8F2FF15A5EFFF0EA3EFFF0DA1ECFF1598D9FF575F60FF494747FF4947 - 47FF494747FF494747FF1D1C1C880000000600000000000000001C1B1B554947 - 47FF5D6769FF1B9AD9FF0DA1ECFF0FA3EFFF59BFF4FF5EC1F4FF5EC1F4FF5EC1 - F4FF5EC1F4FF69ADD0FF858484FF818080FF62B0D8FF5EC1F4FF5EC1F4FF5EC1 - F4FF5EC1F4FF3DB4F2FF0EA2EEFF0D9EE7FF3C8DB3FF4A4949FF494747FF4947 - 47FF494747FF494747FF3C3A3ADD0000001E0000000000000000030303054846 - 46E14A4949FF508EA9FF0D9BE3FF18A6EEFF74CAF5FF74CAF5FF74CAF5FF80B3 - CDFF88ABBEFF8F9FA8FF969595FF88969EFF74CAF5FF74CAF5FF74CAF5FF74CA - F5FF74CAF5FF58BFF3FF0DA1ECFF1698D9FF56676DFF505B60FF678897FF6889 - 97FF688997FF585F62FF494747FF121212660000000300000000000000005E69 - 695F494747FF575B5BFF3399C9FF0F9EE7FF7CCDF5FF8AD2F7FF8AD2F7FF9BB0 - BCFFA5A5A5FFA5A5A5FFA5A4A4FF91B9CDFF8AD2F7FF8AD2F7FF8AD2F7FF8AD2 - F7FF8AD2F7FF4FBAF1FF0D99E1FF4D839AFF4A4848FF526168FF7DCAEEFF7699 - A6FF647E89FF555B5DFF494747FF313030C200000012000000000000000090B7 - B701606C6CB9494747FF5C6A6EFF2999CFFF3BAFEAFF9FD9F8FFA0DBF8FFA4BF - CCFFA6B4BAFFA6B4BAFFA6B3BAFFA1D6F1FFA0DBF8FFA0DBF8FFA0DBF8FFA0DA - F8FF8BD1F5FF179DE2FF458CACFF4E4E4EFF494747FF494747FF5F8291FF7EBA - D5FF535555FF494747FF494747FF474545FB0505053200000000000000000000 - 0000AFE8E815434D53DD494747FF5C676AFF3998C5FF3CACE6FFA1D9F6FFB6E3 - F9FFB6E3FAFFB6E3FAFFB6E3FAFFB6E3FAFFB6E3FAFFB6E3FAFFB5E2F9FF81CC - F2FF239EDDFF4D87A0FF4E4E4EFF494747FF494747FF494747FF4A4949FF71A1 - B6FF87ABBAFF4C4C4CFF494747FF494747FF1515155E00000000000000000000 - 0000000000001580B621434D53DC494747FF535555FF56879BFF2E9DD2FF49B1 - E6FF7FCAF0FFA1D9F5FFAFDFF7FFACDEF7FF97D4F4FF6DC2EDFF33A6E0FF3A95 - BFFF596F77FF4A4949FF494747FF494747FF494747FF4B4A4AFF4F4F4FFF4E4F - 50FFA3CDE1FF6C7578FF494747FF494747FF1514145100000000000000000000 - 00000000000000000000409FC71457686CB5494747FF494747FF565959FF5B7B - 86FF498DABFF3D97C1FF369AC9FF3799C7FF4093B9FF4D849CFF5C6D71FF4D4D - 4DFF494747FF494747FF494747FF494747FF494747FF69767CFFB1CCD8FF595C - 5DFFADCBD8FF757F82FF494747FF464444F10404041200000000000000000000 - 00000000000000000000000000000000000050525255494747D6494747FF4947 - 47FF494747FF4B4A4AFF4D4C4CFF4C4B4BFF4A4848FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF4C4B4CFF99ACB4FFB9CF - D8FF9EAFB6FF505050FF494747FE212020670000000000000000000000000000 - 0000000000000000000000000000000000000000000049474701494747404947 - 4790494747C9494747ED494747FD494747FF494747FF494747FF494747FF4947 - 47FF494747FF494747FF494747FF494747FF494747FF494747FF494747FF4B49 - 49FF494848FB484646CC42404051000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF80 - 1FFFFE0007FFFC0001FFF00000FFF000007FE000007FC000003FC000001F8000 - 001F8000001F8000000F0000000F000000070000000700000003000000038000 - 0003800000018000000180000000C0000000C0000000E0000000F0000000F800 - 0000FE000001FF000003FFFFFFFFFFFFFFFFFFFFFFFF28000000180000003000 - 0000010020000000000060090000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000006767 - 67066767670F6767671267676710676767076767670100000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000021202002040404201616166F2928 - 28AC333232C9363434D0323030C6252424A510101064010101201D1C1C040000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000262B2B101F1E1E86424040ED494747FF5051 - 51FE535F63FF526269FF525B5EFF4D4C4CFE494747FF3B3A3ADD141313711A1D - 1D14000000000000000000000000000000000000000000000000000000000000 - 000000000000000000004A4A4A20363535C94A4848FE516872FF4590B5FF39A6 - DCFE37ABE6FF39ADE8FF36AAE5FF3CA1D3FE4583A0FF4F595DFE484646FE2827 - 27AB1521271D0000000000000000000000000000000000000000000000000000 - 0000000000004E6767153B3939D34E4F4FFE4789A8FE2DA7E5FE34AFEFFE37B2 - F1FE38B3F1FE39B3F1FE39B3F1FE39B3F1FE36AFEDFE31A2DBFE4A7183FE4948 - 48FE2C2B2BB42B39391500000000000000000000000000000000000000000000 - 0000171A1A022F2D2DAA4D4D4DFF3E8FB5FF23A7EAFE27ACF0FF29ADF0FF29AD - F0FE2AADF0FF2BAEF1FF2CAEF1FF2EABEBFE2FACECFF2DAEF0FE27A5E5FF4875 - 8AFF494747FE1D1C1C892B2A2A05000000000000000000000000000000000000 - 000012121245494747FE497F98FF18A1E7FF1E95D1FE46565FFF436B81FF1DA8 - EFFE1EA9F0FF1EA9F0FF1FA9F0FF3882A8FE535B60FF427793FE2D95CAFF1F9F - DFFF4D616AFE444242F30E0D0D2F000000000000000000000000000000000000 - 0000343333B6545A5CFE1C9ADAFE11A3EEFE12A4EFFE2B5C76FE4C4A4AFE2686 - B8FE14A5EFFE14A5EFFE15A5EEFE455862FE4A4848FE464444FE345E73FE16A4 - ECFE318CB9FE4A4848FE21202090333232020000000000000000000000007C7C - 7C11474545F9497A90FE0D9EE8FF0EA3EFFF0EA2EEFE1192D4FF3E4143FF4152 - 5CFE10A0E9FF0EA3EFFF1D8AC1FF494747FE2C5B73FF1478ACFE1386C1FF0FA3 - EEFF109AE0FE515C60FF3E3D3DE4151515180000000000000000000000008B8A - 8A3F494747FF398EB5FE0DA1ECFF0EA3EFFF0DA2EEFE0EA3EFFF216486FF4746 - 46FE29779FFF0EA3EFFF336580FF464444FE1682B9FF0DA2EEFE0EA3EFFF0EA3 - EFFF0D9EE8FE456F83FF494747FF16151569000000000000000000000000908F - 8F574A4848FF3296C7FE0EA2EDFF0EA3EFFF0DA2EEFE0EA3EFFF0F9AE0FF3942 - 48FE454B50FF1694D5FF45494CFF384851FE0EA1ECFF0DA2EEFE0EA3EFFF0EA3 - EFFF0D9FEAFE3E7894FF494747FF343333C91F1E1E0D0000000000000000908F - 8F564A4848FE3296C6FE0DA2EDFE0DA2EEFE0DA2EEFE0DA2EEFE0DA2EEFE1D6F - 9AFE494747FE435762FE4B4949FE226A90FE0DA2EEFE0DA2EEFE0DA2EEFE0DA2 - EEFE0D9FEAFE3E7894FE484646FE484646FD0F0E0E4500000000000000008C8B - 8B3E494747FF3C8EB4FE0DA1ECFF0EA3EFFF0DA2EEFE15A5EFFF26ACF0FF2EAC - ECFE4F5F68FF615F5FFF5B5B5BFF2FA0DAFE22AAF0FF10A4EFFE0EA3EFFF0EA3 - EFFF0D9DE7FE476F82FF494747FF484646FE292828AA07060606000000007D7C - 7C0E484646F94D7A8EFE0D9DE7FE0DA2EEFE1CA8EFFE44B7F2FE46B8F2FE46B8 - F2FE5499BCFE737272FE607C8BFE46B8F2FE46B8F2FE3FB5F2FE12A4EFFE0DA2 - EEFE129ADFFE525C5FFE484646FE484646FE454343F304030329000000000000 - 0000363434B2555A5BFE1F9BD8FF0DA2EDFF4DBAF3FE62C2F4FF62C2F4FF62C2 - F4FE75A3BBFF878686FF6AA7C7FF62C2F4FE62C2F4FF62C2F4FE35B2F1FF0DA0 - EBFF348BB5FE4A4949FF4A4848FF4A4848FE494747FF1F1E1E88000000020000 - 0000292B2B3D494747FE4F7F94FF0E9CE5FF66C4F4FE7FCEF6FF85C0DEFF9CA0 - A3FE9E9E9FFF989C9EFF80CBF2FF7FCEF6FE7FCEF6FF7FCEF6FE46B7F1FF1799 - DBFF506167FE5D7C8BFF7AB1C8FF729FB2FE585F62FF3D3C3CE0000000160000 - 0000000000006C7F7FA14D4C4CFE438EB0FE3AAEE9FE9CD8F8FE9FCDE5FEA7B1 - B6FEA7B1B6FEA2BFCDFE9DD9F8FE9DD9F8FE9DD9F8FE91D4F6FE22A1E1FE4C74 - 85FE494747FE4D5153FE76B2CDFE596063FE494747FE484646FE121111580000 - 000000000000B5F2F20C3E525DCC4E4E4EFF4A87A2FE46AEE3FF9CD7F6FFB9E4 - FAFEB9E4FAFFB9E4FAFFB9E4FAFFB8E3F9FE86CEF2FF37A1D6FE4F707EFF4947 - 47FF484646FE494747FF546167FF8DB9CCFE4F4F4FFF494747FF232222860000 - 000000000000000000001184BF123C5461BD494848FE56676DFF428BADFF49A9 - D7FE56B5E5FF5BB8E7FF54B3E3FF42A0CCFE467F99FF525859FE494747FF4947 - 47FF484646FE687277FF606567FF8BA5B0FE6A7275FF494747FF1C1B1B640000 - 00000000000000000000000000007B9EA1035459596C484646E8494747FE4F4F - 4FFE595E5FFE596264FE56595AFE4C4B4BFE494747FE484646FE484646FE4846 - 46FE484646FE61676AFEAABFC7FEA8BCC4FE535455FE3F3E3ED70303030B0000 - 00000000000000000000000000000000000000000000767575077675754F7675 - 7590767575B4767575BF767575BF767575BF767575BF767575BF767575BF7675 - 75BF767575BF767575BF777676BF777676BD7674748C58575714000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000FFFF - FF00FF03FF00F800FF00F0007F00E0003F00C0001F0080000F0080000F008000 - 0700000007000000070000000300000003000000010000000100800000008000 - 0000C0000000C0000000E0000000F0000000FC000100FFFFFF00FFFFFF002800 - 0000100000002000000001002000000000004004000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001B1A1A01050505221818186D2322 - 2292222121911615156802020220191818010000000000000000000000000000 - 00000000000000000000000000006C7B7B0B2827279349494AF74A6774FF4777 - 8EFF47758BFF4B606BFF444343F01F1E1E844E63660B00000000000000000000 - 0000000000000000000073959509373636BF4B6876FF37A0D4FF36AFEDFF3AB3 - F0FF3BB3F0FF37AFECFF3B97C5FF4A5A62FF292929A94E5F5F09000000000000 - 000000000000000000003131318D496A79FF249EDCFF3295C8FF27AAECFF27AC - F0FF29ADF0FF359BCFFF31A2DCFF2AA0DBFF49585FFF1F1E1E78000000000000 - 000000000000565656194C4E4FF8219AD6FF14A3EBFF3D525DFF2F7CA3FF16A6 - EFFF17A6EFFF475C67FF4B4A4AFF2B7DA7FF2D8CBBFF413F3FE9282727100000 - 0000000000006D6C6C65466C7EFF0DA0EBFF0EA3EFFF187FB4FF434A4EFF139B - E0FF1C8CC5FF434547FF1386C2FF1196DAFF0F9EE6FF4C585EFF201F1F650000 - 0000000000007877778C3B7C9BFF0EA2EDFF0EA3EFFF0EA2EEFF315467FF306B - 8AFF316986FF2E5F79FF0EA3EFFF0EA3EFFF0DA0EBFF426678FF363434CB3231 - 3106000000007877778B3C7C9AFF0DA2EDFF0EA3EFFF0EA3EFFF1C8DC7FF4D4E - 4FFF4D5357FF1E87BCFF0EA3EFFF0EA3EFFF0DA0EBFF436677FF484646FE1F1E - 1E40000000006E6D6D64486D7DFF0DA0EAFF14A5EFFF3AB3F1FF40B6F2FF5B80 - 94FF647077FF40B5F0FF35B1F1FF0FA3EFFF0F9DE6FF4D585DFF494747FF2B2A - 2AAA00000001575757164E4F50F72199D4FF3DB5F1FF69C5F5FF71B8DDFF8599 - A4FF78A4BBFF69C5F5FF69C5F5FF2CAEF0FF2D8AB8FF525D62FF58686FFF494A - 4AF60404042200000000667474864B6976FF3CADE6FF95D6F7FFA3B2BAFFA6AC - AFFF97CFEBFF95D6F8FF90D4F7FF2E9FD8FF4B585DFF5E7D8CFF6B8996FF4C4C - 4CFF1F1F1F8000000000A4D6D605395869B64C6773FF58AAD2FF8DD0F2FFAFDF - F8FFABDEF8FF83CBF0FF4E9BC1FF4C595FFF494747FF4B4A4AFF7A9AA8FF5253 - 54FF2F2E2EAB00000000000000005897AD05586263824C4B4BF44E6570FF4372 - 88FF437085FF4F6067FF4A4848FF494747FF494747FF808E95FF97A9B1FF5557 - 58FE1B1A1A5A00000000000000000000000000000000A4A3A310A4A3A356A4A3 - A37AA4A3A37FA4A3A37FA4A3A37FA4A3A37FA4A3A37FA4A3A37FA4A3A37EA2A1 - A147000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FFFF0000E01F0000C00F00008007000080070000000300000003 - 0000000100000001000000000000000000008000000080000000C0000000F001 - 0000FFFF0000} - OldCreateOrder = False - Position = poScreenCenter - OnClose = FormClose - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object bvlSpace: TBevel - Left = 0 - Top = 314 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - object jplWizard: TJvPageList - Left = 0 - Top = 0 - Width = 527 - Height = 314 - ActivePage = jspWelcome - PropagateEnable = False - Align = alClient - OnChange = jplWizardChange - object jspWelcome: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - Color = clWhite - object imgInstall: TImage - Left = 0 - Top = 0 - Width = 164 - Height = 314 - Align = alLeft - AutoSize = True - Picture.Data = { - 07544269746D6170AE5B0200424DAE5B0200000000003600000028000000A400 - 00003A0100000100180000000000785B0200C40E0000C40E0000000000000000 - 00008C00018900028400047800036E02085F06094B02043500003404022F0401 - 3100004303024D00006200007300008304068000018200008600008700008700 - 018400018000047800046700016508094D00004D01024300004400014804053E - 00004300033C00003E00004302043D00004201034403053E00004201033C0000 - 3E00004302043D00004201034403053E00004201033C00003E00004302043D00 - 004201034403053E00004201033C00003E00004302043D00004201034403053E - 00004201033C00003E00004302043D00004201034403053E00004201033C0000 - 3E00004302043D00004201034403053E00004501023F00004100004603024000 - 004502014504033F00004302013C00003E00004104023900003E030140050338 - 00003B03023300003800003F04023B00004302014D03014C00005D0302570000 - 7002027A03047C00008702058700008A00028400018200018000018000018000 - 018000018400018400018300008000017B00027101016705055D08064E03013F - 00004003003F02004100004D02005200005E00006A00007A05087B00027F0002 - 8200018200018200018000018001008001008601008700008900008700008400 - 017D01017201046604045300014300003E00003F03043D00014300064B000845 - 00014C06063C00004F0A074000008A00018700028000047500046A03085D0609 - 4903043500003303013606043000004908074C00006701027000008405078000 - 018200008600008700008700018400017D0004760104640000680B0C49000051 - 07073E00004804054501024100003F0000420103390000500F113900004E0D0F - 3E00004201033E0000420103390000500F113900004E0D0F3E00004201033E00 - 00420103390000500F113900004E0D0F3E00004201033E000042010339000050 - 0F113900004E0D0F3E00004201033E0000420103390000500F113900004E0D0F - 3E00004201033E0000420103390000500F113900004E0D0F3E00004202024100 - 004502013C000053100F3C0000510E0D3F00004302013F00004202013900004E - 110F3700004C0F0D3C00003E03013800003C03013500004E110F3A0000530E0B - 4800005300005F03025A00007002027B03047C00008702058700008A00028600 - 018200018000017F00017F00017F00017F00017F00017E00017B00027601026A - 03016206055809064904013D0000420200490401430000580704520000670102 - 6800007D06077D00028000028200018400018200018200018001008001008200 - 008401008400008200007F00017801026D02046205044E00004901013900004E - 0F11390000510B124500024B00034D01024300005609074A0000880006820004 - 7D01076D00026403074F00004301023800003403013401003A00004A00005D03 - 036E03057B02068000028301028301018600008500008500007F000079000470 - 02046200015600004F01024500004701024100004600014300004100013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000004300004200004502014100004302013F000042010041 - 00004000003E00004303023F00004404034000004303024101003E01003E0100 - 4101004300004700004C00005100005900006804046D02047402027B00028000 - 028600028700028900018700018400007F00007C000078000176000076000074 - 00007502056B00006400005600005001004200003C05003C0200480000520000 - 5A03016104036A04057103037801027C00018300038500028700028600018400 - 018100008100007F00007E03017C03017E06067903027606066900005F000051 - 00004C00014500004300033D00004300054000004700034B00005400005B0000 - 6101016303037D00047D04086B00006D06095100005006063D00003A02013802 - 013900004200004F00006202027103037E010382000183010183010184000084 - 00008100007E00007500036D02045C00005704034500004C06063C0000490506 - 3F00004501024000004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101014000004704033D000048 - 07063A00004706053D00004101003E00004404033B00004908073B0000480706 - 4000004502014300004300004800004C00005201005601005E01006400006D02 - 047201047801027D00028200028600028700028700018600008300007E000078 - 00007301016F01016E01036A0203680203670505550000570402400000440802 - 3500003F03005300005F00006602026D03027303037902037F00028100018500 - 028700028700028600018400018200018000017D01017501007708066B000073 - 0C0A6000006407065100004F00004A00004A04043C00004702054000004F0307 - 4800005801056200006A00006E00027002027602076900006E070C5200005908 - 0B3E00004405073800003D01014100004A000058000069010277020380010382 - 00018301018301018200008200007F00007A00007100036602025A0202480000 - 4F09093A00004B090A3A00004905064200004300033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004301023B00004A09083A00004B0A093900004606053E00004202013B0000 - 4A09083C00004F09093E00004C04044600004900004E00005300005700005D02 - 006403006904027004037402027801027D000280000282000284000286000286 - 00018500008100007A00007302006C02016703036302046104055F0505530000 - 5A0706470000520B083A00004309034400006102006E01007202027703027D03 - 038001028200018300008600018600018600018500028101028001027E020279 - 03026F05046200006B0C09540000630C0A4A00005106044700004C0404420000 - 5006064300005605084900005D080C6102066F00017900007D00027E02026500 - 016906085000005B080A4000004A08093700004203054100004A000055000162 - 00006E00027901028000018400018102018102018001008001007C0000740000 - 6D00026101015100005107053A00004A0D0B3700004B0B0B3B00004503043E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004707063A00004C0C0B390000480B09 - 3700004003013F00004807063C0000500A0A4000005208084300005000005500 - 005B00005E00006400006902006F03027404047A03047B00027D000280000282 - 00028400028400028400028400028301017E03017602016E03006402025D0302 - 5603025503025000005704064A00005C0A09470000590E0C4700005806016F04 - 017A02027D03037F03038202038301028400018600018600018400018200017F - 00017C02027903027703027103036200006309094C00005E0C0B430000540A08 - 3F00004904014700005105064900005F0909500000690A0E5E000172070A7B00 - 028301028402038402035C03064D00005608094000004B090A37000045060840 - 00004900005300016000036B00027500037C00018200018400008001007F0100 - 8002017D02007800007001006700005C00005202013F00004B0B0A350000480C - 0C3700004808084100004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420202370000 - 4A0A093700004A0D0B3500004308063C00004404033B00004F09094000005509 - 0A4500005505065200006302006A01006D02006F02007302007802017C010380 - 01038200028200028400028400028400028400028400048000028204037A0502 - 6F04016504005A03015102004A00004900004D00014900005E05085200006B0D - 0E5A00006A0D0C6702007B030382030282030284020286020285010184000184 - 00018100007E00007B01017802017203017003016D04016804025E04044E0000 - 57090A420000500A0A3C00004B08074600004B00004A0000630909570000760D - 106500007A090C7700018102038602028602028602024A00004E06063C000047 - 0A083500004408083900004601044D00005900016700057300037A00017F0000 - 8300008400008001007F01008002017C03017802016D00006300005700004900 - 00470703350000430C09330000460A0A3C00004604053E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023C0000440705370000460B09350000450A083600004003014000 - 004807063E00005208084500005808094D00005D03036D030274030176020179 - 01017D0101800001820002860002870002870002860002860002840002820002 - 8200047F00027A03017305006804005C03004F02004500004200004300004800 - 005702065300006F080D6500007F0C0F7300017F050584020285010187010187 - 01018701018701018500028101027E00007800007501006F0200690200660300 - 6302005E02015200005405084200004C08093A00004808073E00004B03034C00 - 005F05045D0000790C0E6D0000830B0C77000080010282030283010183010183 - 01014302013D00004206063300003E08083400004304064700015000005F0002 - 6E00067901057E00018200008500008400007F00007D02007E03017A03017602 - 016C01005E00005400004B01003C000040070530000040080736000044060642 - 02024100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00003F01013800004207053300004108 - 063400004005033D00004303024000004D05054300005606074D00005D060960 - 02037203017B02007D01018000018200018600018700018900018B0002890002 - 8700028600028400028200028000047B00027100006702005E02005301004801 - 004001003D00004000005104085400016A030A6A000085070D8000008E02098A - 0000870000860100870000860000860000840000830101800201790101750100 - 6D02006602006002005A02005700005300005000024700004D03093A00004706 - 083B00004805044900005A04045F000075070972000087080A7F00008B030584 - 00008001007F01007F01007F01003F00003F02003900003D05043701003E0504 - 4000004A00015400006300027201057C01058000018200008500008400007F00 - 007D01017A02027504026F03026302005700004C00004500003F02003800003B - 03023800003F03033F01014404044000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000013E00013D01023C00004201033E0000430003 - 4000004100014100014200023F00004201033E00004001033D00003C00013901 - 003A03003700003B04013800003E03013D00004100004600004C01004C000055 - 00005600006103046401036D05067501007A01007F0100800001840001880002 - 8A00028C00038B00028900048600048000047D00047900047800057002046100 - 005A00005600005100004B00004A00004A00014D00015C05096605096D00057B - 03087F00038A01058B00008B0000890000860000860000860000860000860001 - 8301027F03037801026F01016602025E02015302004B01004500004500004C00 - 004E00024900004C01034600004D03034E000057000068060672060576000080 - 01038000008700028700008701018001007C01007E00007C0100430000400000 - 4002023A00003C03023C00004401004A00005E04046802037301017B01018000 - 018301018501018301018301027D00027806066800015F02034F00004A000142 - 00004000013D00004001033C00004002023E00003F02003E00004000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100023E0001390100360000 - 3C03023C00004301024100004600024700014700014400004500053F00014000 - 053800013A01043501013202013000003403013200003D04023C00004502004A - 00005000005800006301016A0203730205770205790102780000770500770500 - 7A04007D020080010083000086000086000187000484000582040A7901067303 - 0A6600026000025400004C00004A00004E00005200005800005F00016700066F - 03096F01057201047402027802017B01017D0200820100840100820000850000 - 8700008800018800028800038500057F00047A04096900055A00034800004201 - 033400002F03043100004600005100005500005900005F02016703016E040374 - 04047801027B01017F00018000018200018200018200018200018000017F0001 - 8000017F00014400004703043A00004507073500004606054100004F00006004 - 036A03017301017B01018001008301018301018301018100018205076E00006C - 0A0A4E00004F05053D00003F00023B00024003073A00004706083A0000460606 - 3C00003F02003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00003D01023600003B05043300004307073900004905064100004800024600 - 004902053D000047050A3500003F06093300003402023101003606042D00003E - 09063500004906034600005200005B00006300006D01007601027E0103810003 - 8400018100007A04007705007A04007B03008001008200018400028400028000 - 0580040A6E000172060C5C00005F03084E00004C00034300034400044E000558 - 00026200026D00037600057C00067B00047B00027901017902007902007B0300 - 7F02008002008401008600008701018500028500038000027C00047600036D00 - 056402084C00004C040A34000039070B2800003200004A00005700005E000064 - 01006B02007203017A02027F0303800001820001820001820001800001800001 - 7F00017F00018000018000018000018000014701023D0000490909370000480B - 093900004D06034E00006104036A03017402027B010180010082000083010183 - 0101820104760000790B0D5A00005E0A0C4000004605073B00003E0105360000 - 49080A3900004B090A3900004606053C00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073C00003B0302330000430A093500004A0A - 0A3A00004904074100004500033D00004A070A390000460A0B3300003F060735 - 0000390302340000430A083700004D0A09420000560403530000610101690200 - 7202027A02038102038301028600018300007F02007D02007F01008002018101 - 028101028100037E01037D03096C000070060C5500005F050A47000051040846 - 00024200024801045200055E00056700047100047A00047E00057D00027D0002 - 7D01017D02007F01007F02008201008401008802028801038402038001027901 - 027200006A00026200015E00044D00005506094000004F0A0D3A000045050A40 - 00005601006002006502006902006F02007602017C0202800102800001820001 - 8200018200018000018000017F00017F00018000018000018000018000014300 - 004A06073900004A0C0C3700004B0A094200005200006404046D03027601027D - 01018001008200008200008001007D00007F08096500006D0D0D490000510909 - 3A00004004053A000145050A3900004C0B0D3A00004A0A0A3900004003013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004001033A00 - 00410807350000480C0C370000480A0A3900004201033E00004706083900004A - 0B0D370000460A0B3500003E02023C00004707033C0000540D0A4500005C0B08 - 5300006203006904027103037803047D03038202038500028700018600008400 - 008201008200008001008001027E02027A02037702056C00026C07095200005C - 080A4300004E08093B00004503044502014D03035804066403076F0105770004 - 7D00048100038000028000027F00018000018001008200008600008600008902 - 048502057F02047702036C02016000005700004F000049000050060642000055 - 080B4500005D090D4E00005C03066303036804006C0300700301740301790101 - 7E02028101028200018200018200018200018000017F00017D01017D01018000 - 018000018000018000014501023C00004A0A0A3900004C0C0B3C00005106044F - 00006604046F03027801027D01018001008200008001007F01007F02046F0000 - 760B0D5300005B0B0C3E00004807093C00013E01053700004A090B3A00004D0B - 0C3900004707063C00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E0000400202370000480A0A350000480C0C35000041080738 - 00003C0302350000460A0A3700004A0C0C390000470707410000490000450000 - 5809064A0000650E0C5500006C0B086801007205037804037D03038103028402 - 028701018700008700008600008500008400018000017D00027801027002046B - 030460000150000059090A4000004D0B0C3700004007063B00004A0300560502 - 6206056B05067502057B00028000028301028200018200018000018000018200 - 018400018700018600018400067C01057502056A02035C02015101004401003F - 00004205013B000050090647000062070A59000074060C6F0004700403700502 - 7304027703027A02027E02028000018200018200018400018200018200018000 - 017F00017D01017D01018000018000018000018000014100004705063900004A - 0A0A3900004E08084600005700006905057103037901027F0001800100820000 - 7F00007C01007600007707075E0000640A094500004D07073B00004105063A00 - 014404093900004B080B3A00004909093A00004003013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033F000046060639000048 - 0A0A330000420A093300003B03023700003F0706350000480A0A3A00004C0809 - 3F00004C00015000005D04005300006A0C075C0000740D0A6B00007708067804 - 037A02028002018102018501018701018800018800018600008300008100007C - 00007400006D01006501015E02014C00004F04023E00004C0C0B350000420A09 - 3000003E01005204006105006B07037205037A02028000018400018500028400 - 018200017F00017F00018000018200018400028000027700037000036600025E - 01024F02004502003A02003602003901004809054200006009075A0000780508 - 79000085050A7902037504027903027A02027E02028101028200018400018400 - 018400018200018000018000017F00017D01017D01017F000180000180000180 - 00014200013D00004606063900004807064100005402015800006C0405750303 - 7C01038000018200008100007F00007A01007601026A00006907075100005004 - 053C00004304063E02033F00043A00004605073A00004806073A00004404033D - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A000044030540 - 00004400023F00004605073700004108073300003B0504360000380300350000 - 4207053900004C06064300004E02035000006102006200007007046700007609 - 076F00007B08057A03017D02007F010080010082000084000084000087010185 - 01018200017E00017700007100006700005F00005500004E01004700003C0000 - 4407053400004209083400003C04034100005E03006C04007504017A03018001 - 008600008700008802028200017F00017B00027901027901027901027B000478 - 00046600005D00005700015000014701013F02003902003801003C0200410000 - 5B0A075C00007606067500008B02068800037F00017B01017D01017F00018000 - 018200018500028700028600018400018200018000018000017F00017D01017D - 01017F00018000018000018000014100004200013E00004301024100004B0101 - 5000005C00007003057902038001038200018200008100007E00007A01007000 - 006B04025D00005502004600004201003E00014004053E00034100043F000043 - 00033F00004202023D00003E01004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004100014300014400023F00004001033800003B0302 - 3600003701003902003B02003E00004502014700005000005000005900006D03 - 027605037401007B06037700007D04027C01008002018001007F00007F00007F - 00007F00008001008102017F03037801027301016D00026600015C0000520000 - 4A00004500003F00003D03003700003C03013700003E02023E00004C01006703 - 007804007C04008103008500008800008700008602027F000179010174020270 - 02027002047002047002046B02055500004E00004900004700004201003F0200 - 3E01004001004000005103005F0400710A077802018402038700008900018100 - 007F00007F000082000184000186000187000287000286000184000182000180 - 00018000017F00017D01017D01017F0001800001800001800001420202410101 - 4404044000004701014A00005901016300027002047901028000028400018400 - 008200007F01007902007103036400005B01004E00004A02023F00003D01023A - 00003E00033F00024300034100004301023E00003F02003E01004000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E0000410002410001440002420000 - 4300033E00003E02023800003B02003900004005034202014400004700004E00 - 005600005E01026804047403017B02007D02007D02007F010080010080010082 - 00008001007F00007E00007C01007B02007A03017A02027605036D0506640202 - 6103045400005000004500004502003F02003C01003900003C03013A00004202 - 013F00004400015100006F03007D010080000084000087000088000088000281 - 01027901027101016F07086503036706085F00005F00005600004C0103430102 - 4400014300004200004500004700004D00005D06046405026D03027403017B01 - 0182000086000087000084000184000184000186000186000186000186000186 - 00018400018400018200018000018000017F00017D01017D01017F0001800001 - 8000018000014000004606063C00004907084000005404055600006801047401 - 047D00028200028400018400008200007F01007803006C02016506034F000053 - 06033F00004707063800003B01023D00024402073B00004A05083A0000460606 - 3A00003D02003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004200024200004702053B00004805083900004305053900004000004502 - 014801004C00005000005A00006000006703037004037B010180010080010082 - 00008200008200008400008200007E00007C01007C03017A0502750402720301 - 6E01006601005F02035B08074B00005207053E00004607033B00003D05003900 - 003E05033600004707063C00004D050545000056000074060281040085020087 - 01018700008600008100007A00017202026E08095C0000620A0A5100005A0608 - 5100004E00014100003C00004000004600004B00005200005900006000006B04 - 027002027602017B01017F010080010082010084000086000186000186000186 - 00018700018600018600018400018400018200018200018000017F00017F0001 - 7D01017F00018000018000018000018000014103033A00004B0B0B3C00005309 - 094900006305066900017800047F00028400028600018400008200007D020076 - 03006B06045800005B08064300004E0B0A3700004206073800004000053A0000 - 4A070A3C00004B090A3900004407053A00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004401063C00004A070A3A00004C08 - 093C00004903034500004D00005200005800005F00006600016C020171030379 - 05047F01008200008200008400008400008400008200018000017D0000790101 - 7804037205036E04036702006000005700005404034400004F09093A00004909 - 083500004108063A01003C0301360000470A083A000051090943000052040553 - 00006F04017A03018103028303048402038201047B00027300036F07085C0000 - 610B0B47000057090A4300005104074700003E00003C00004300004C00015700 - 036201036D02057502057901027D00027F00018000017F01007F01007D02007F - 0100840001870001870001870001860001860001860001840001840001820001 - 8200018000017F00017F00017F00017F00018000018000018000018000013C00 - 00460808390000500C0D4300005C080A5900007002067B000482000286000287 - 00018600008200007D0200740300650100600905470000550C083A0000480D0B - 3400003C02033C000147050A3A00004F0A0D3A00004A0A0A3700003E03013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 0147050A3A00004F0A0D3E00005207094500005200005900005D00006501016B - 01007202027703027903027D0303800100840000840000840000840000820001 - 8000017F00017B01017702036F03026903046101015A00005300004C00004400 - 00480706390000490C0A350000460B093400003E05033A00004508063900004F - 0C0B4000005309094300005300006100006A00007000007702037B0307790407 - 7204066D04075F0102600A0A450000560C0C42000051080A4200004A01034400 - 004700004E000159010165020470030579040781030880000284000284000182 - 00018001007F01007B02007D0200840001870001870001860001860001840001 - 8400018200018200018200018000018000017F00017F00017F00017F00018000 - 018000018000018000013E02023800004C0C0C3C0000560A0B4C00006906086D - 00027D00048400028700028900018600008200007D0200720400670603500000 - 570A074000004D0D0C3500004208093800004000053900004B080B3C00004D0B - 0C3900004508063A00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083C00004101063700004A090B3C0000550A0C4700005C030658 - 00006601036C01037201047702037A02037E02027F00017F0000820001820001 - 8200018200018200018000027F00027B00027803046F02046501015C00005300 - 004E0000480000450000430201390000470909370000490B0B3700004507073D - 00004202013900004B0A093C0000510B0B3E00004C06064800004F0000570000 - 5D00006402026803056803056502046002065801044A0000560B0D400000560B - 0D4200005104074B00005600005B01006100026701027002047702037F020483 - 02058400028600028600018400018200017F00017D01017F0001840001860001 - 8600018400018400018400018400018200018200018000018000018000018000 - 018000018000018000018000018000018000018000013A000044060639000050 - 0A0B4300005D06095F00007403077D0004860002890002890001860000800100 - 7D02007204006001005A08034300004F0B06370000450C0A3500003D03043C00 - 014604093C00004D080B3A00004909093800003E03013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A000040010338000140050939000050 - 090C4500005F080C5A00006900037001057702057C0103800102810102820001 - 8100008100008200018200018200018200018000027F00027B00027801027002 - 046701025C00005000004800004300004000004002023D00004505053900004A - 0A0A3A00004A08093C00004301023F00004706053C00004B0A093A00004A0908 - 3A00004302014401004800004D01025101025600025500015400015100004A00 - 004F0406400000530A0C42000057080B4C00005A00026802036E020171000374 - 02027801027C0103800103830003840002840002840001840001820001800001 - 8000018000018400018400018400018400018400018200018200018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00013D01013A00004707073F00005305065100006A03067300047F0004870002 - 8B00028B00018600008001007D02007204006104014F00004F06023C00004609 - 073600003F06073A00013F00043C00004904073C00004806073A00004205033B - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053D - 000039000335000045060841000059080B5700006C050A6E00037800057D0004 - 8200028400018600018600008701018501018200018000018000028000027F00 - 027D00027900047401046800006000005500004B00004300003D00003A02013C - 02034201033E00004A05083D00004D07084000004B02044300004600013F0000 - 4706053900004508063600003E05033601003704023903023E02024200014800 - 014900004900004900004A00024300004C03054200005405084D00005C050963 - 00047800047F00017F00027F00017F00017F00017F0002800002800002800002 - 8200028200028400028400028400028400028400018400018400018200018200 - 018000018000017F00017F00017F00017F00017F000180000180000180000180 - 00018000018000018000018000013E00003F01013F0000460203480000590003 - 6700017901068400048900028900028700018400008001007D02007203015C03 - 004E04004500004303003D00004005033B02013E02034000014200023F000043 - 01023F00004202023D00003E01004000004101013E00004202023E0000420202 - 3F00004000004000014101013E00004202023E00004202023F00004000004100 - 014200013E00004202023E00004001033D00003C00013E00013F00023C000042 - 01033F00004300034200004100013E00004200014600005404055A0002690406 - 7201057B02067E00028200008500008800008900008800018901028703037F00 - 017B00027B00047900047601047201046F02046902055800005200004D000047 - 00004200013D01013A02013900013F0002430204410001470205420000480203 - 4500004700004700004600014100004202023C00003E02023800003502003002 - 013002013301013900014000014400024900024D00034B00014D00014B000052 - 00005300006100026702047406087E0001850000840001820001800001800001 - 8001038001037F00027F00028000028200028400028400028600028600028400 - 018200018200018200018000018000017F00017F00017F00017F00017F00017F - 00018000018000018000018000017F00017F00017F00017F0001460001400000 - 3F03033B00004701015200006E00047F00058900048D00028700028200017F01 - 007D02008001007403015100004200004303003F00004202013E000041010040 - 00004100004000004301023E00004202013C00003F02003E01004000003F0000 - 4301023F00004301023F00004200014100004100004000004301023F00004202 - 023E00003F01014000004300004200004301023E00004002023800003A020137 - 01003C03043A01023F03043E00004500034500004B00054A00004D0000540000 - 5E02016703017004037902037F00028500008900018D00008C00008A00008800 - 008700008502008203027800047100047304086C01046805075B00005400004B - 00004A00004400004502013E00004003013C00003D02003A0100390100380000 - 3C03023A00004202023F00004600024700014700014600004700034100004300 - 033E00004100023A00013503053001033604043800004103034200004C000150 - 00005600005D00006600016E02017503037903027B01017E0000800001820001 - 8200018000018000018000018000018000018000018000018000018000018200 - 0182000182000182000182000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017D00027B0002 - 7B00027B00024600004703043500004108073C00005804066C00008400078D00 - 048F00028600028000017B02007B02008200007602014F00004404033A000047 - 07063A00004706053D00004201004000004504033A0000470706370000440705 - 3A00003F02003F00004404033B00004807063A00004706053F00004201004000 - 004504033B00004707063900004407053A00004101004200004903033B000047 - 07063500004007053300003802013701013E0405380000480508400000530308 - 4C00005700045B00006100006902007203017A02028101028600008A00008D00 - 008F00008D00008900008600008302008102017C020272010571050B62000067 - 060A510000570406460000470101400000420503360000430806370000440705 - 3C00003F02003900003D05043400004307073700004606063F00004400024400 - 004902053F00004A040A3A00004704093C00003D00043700033B060933000042 - 08093A00004D05054A00005600005E0000660000700000790101800201830101 - 8601008500008200018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000017F00027D00027F00027D00024900023E0000430A093300004D0A - 094A00007504088100048D00048F00028600028000017B02007B020082000076 - 02015200003B00004A09083A00004B0A093A00004706053F00004302013B0000 - 490908390000480B093700004407053C00004202013B00004A09083A00004B0A - 093A00004706053F00004302013A0000490908370000480B093500004207053C - 00004301023D00004A0809390000460A0A3300004007063800003D0101390000 - 4B070842000059080B4B00005F050A5D00006501006B03007004007704017F04 - 028301018700008800008B00018900018901038602028102037C030179010173 - 01017305096300016A060B5200005B0407450000500606440100420201380000 - 450A08350000480B093900004706053F00004301023A00004A08093900004B09 - 0A3A00004704073F00004201033A000049080A37000048090B3500004206073A - 00003D030437000048090B3A000052090B4500005805045900006501016B0100 - 7402027A02028103028301018401008300008200018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018200018600028600028700028600024500 - 004A0607330000460D0C3C00005D090B6700008501088D00048D000286000280 - 00017B02007D02008200007602014F00004807063A00004D0C0B3A00004B0A09 - 3A00004302013F00004807063900004C0C0B370000480B093700004202013F00 - 004807063A00004D0C0B3A00004B0A093A00004202013E000045080637000048 - 0D0B350000460B093500004003013F00004806073900004C0C0C370000480A0A - 3700004202023C00004C04044300005C090B4E0000690B0C5E00006B05066F04 - 017504017A05027D040282030285010186000087000087000185000284020380 - 03057B04057303036E00006A000165000268070B5200005F0609490000520607 - 3F00004605043E0000450806350000480D0B3900004A0A093A00004502014500 - 004E05073E00004F0B0C3C00004B090A3900004001033A000043070833000046 - 0C0D330000440A0B3300004001033D00004B0407420000570A0D470000610A0D - 5700006604046B03047103037804037B03038103028102018401008400008200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018200018900 - 018B00018B00028B00014A01033D0000450C0B3300004C0B0A4A00007305097E - 00038B00048D00028600027F00017B02007D02008200007802015500003C0000 - 4D0A093C00004F0C0B3C00004807063F00004202013900004A0A093900004C0C - 0B3900004707063E00004302013C00004D0A093C00004D0C0B3A00004707063C - 0000400301350000460B09350000480D0B3300004108063A0000420103390000 - 4A090B3900004C0C0C3A00004A07064300004C00014700005E0808520000700B - 0D5F000076090B7301017B04027F040081040082040086020285010186000184 - 00018200028001037B03047704076F04066802036000005D00005E0004500000 - 5E070A49000055090A4000004906053E0000400301350000460B093500004C0C - 0B3900004807064300004C000245000054070A4000004F0B0C39000045070738 - 00003B0302300000410B0A300000450D0C3300004108073F00004B00004A0000 - 5D060A4E00006A0C10590000700B0D6B03047204067604047A04037D03037F04 - 0281020182000082000080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018200018900018B00008B00018B000045000049050633000044 - 0B0A3A00005A07096700008201088900048B00028400027F00017B02007D0200 - 8200007802015100004B05053E00004D0A093C00004C09083B00004302013E00 - 004606053900004A0A093900004909083A00004302014100004906053C00004D - 0A093A00004909083800003E03013A0000420705350000460B09330000430A08 - 3400003E02023C00004604093900004B080B3C00004E08094300004E00015200 - 00600605570000700B096400007C0A0A73000081050582040085020085020085 - 02008701018501018301028101027D00027901057103056A03066302045C0104 - 5500015100004E0000560305450000560A0B4000004C09083A00003F02003A00 - 00420705350000480B093900004909083B00004701014A000054030643000051 - 080A3C00004709093400003B03023500003B0806300000430B0A350000470909 - 3A00004B00025200006400055800006F090E5E0000750C0F6D000278070A7604 - 047902037A02027C02027E030180020181020181020180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000182000186000086000087000086 - 00004B00024000004007063200004606054A00006E03067C0004870004890002 - 8200027D01017B02007D02008200007802015600004300004D05053E00004A07 - 063D00004504034000004101003C00004407053700004707063A000044040340 - 00004401004100004906053C00004807063A00004205033B00003D0200360000 - 4007053300004308063600004005033B00003F00023C00004704093C00004E05 - 074400005401035400006305066400007408076C00007E080777000085060584 - 01008700008701008700008700008600008200008001027C0103770205700305 - 6702045F01055700034E00024A00014700004A00004500004D05053F00004B08 - 073B00004306043B00003D02003800004407053700004707063A000045040344 - 00004B00014800004F03073C00004707073600003D0504360000380300330000 - 4007053700004A07064100004D03035000006801066A00007405096B00007908 - 0C7000007C070A7901057901027901027B01017D01017F00017F000180020181 - 0201800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00017F01007D02007F01007D02004900004501023900003B03023D0000510102 - 6700017C00068700048900028200027D01017B02007D02008200007901015700 - 004A00004700004901014300004502014000004000004000004101003C000040 - 03013E00004202013F00004100004300004600004100004302013F0000400301 - 3D00003C01003A01003B02003800003E03013A00004003013D00004000004100 - 014400044300014B00034A00005300015600005C00006C06077406067602017E - 05037D00008403008500008902008901008800008800008500008100007F0001 - 7A02037603067104066803055D02055400044C00024600024100014000014400 - 014701014100004302013E00004104023D02004005033C01003D02003C000040 - 03013E00004202014000004300004700014800024100004201033A00003C0302 - 3600003701003902003D02003F00004901014A00005300005400005E00007403 - 077D03097900057D04087800037D02067A00037B00027D00027C00017C00007C - 00007E00007F0001800201810302800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017B0200790200790200790200490000430000 - 3E05043800004205034D00006902057A00068600048700028000027D01017B02 - 007D02008400007B01015F02034E00014C00014600004701014100004302013F - 00004000003D00004003013C00004202013E0000420100410000430000440000 - 4502013F00004302013C00003F02003C01003D02003B00003F04023D00004404 - 034000004403024400014801044900034900004C00005300005C00026502046D - 05066F01037500017A00008001008400008702008A01008A0200890000860000 - 8500008100007F00017A02027503036F04065E00005600005200014700004500 - 033E00013D00043C00014000004000004202013C00004003013A00003D02003C - 01003C01003B00004003013C00004202013E00004201004100004100023D0000 - 3F03043900003D05043800003C05023B02004303024701014B00005100005900 - 006100006A01047403067B000480000480000480000480000480000280000280 - 00027F00027F00017F00017F00017F00017F00017F00017F0001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017F04027D0402 - 7C03017B02004800004804053600004109083800005406076300007A02078400 - 048600027F00027B01017902007D02008400007B010161000255050646000050 - 04054000004906053D00004101003D0000420503380000450806390000460605 - 3D00004401004400004903033D00004807063900004407053800003D02003B00 - 004205033B00004807063D00004C06064400004B01014B00004E000052000158 - 00025F00046601036D02047303037700017A00007E0000820000860100880100 - 8A02008801008400008100008101027F03037903027202026901026300025600 - 005401034400004A06073900004205093500003A01023B000042050338000045 - 08063500004207053800003D02003B0000400503380000450806390000460605 - 3D00004101013900003B05053400004007083300004108073B00004302014600 - 004E00005800006100006A00017000027601047C010382000484000284000484 - 00028400028200028200028200028200018000018000017F00017F00017F0001 - 7F00017F00018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000017D00007E00007F00018002014C0002400000440B0A320000490C - 0A4400006B06087400038200048400027F00027B01017902007D02008400007D - 01016603054F00005707084500005309093E00004706053E0000400301360000 - 450A083700004A0A093900004706054100004701013F00004C09083A00004A0A - 093700004207053A00004104023B00004A09083E00005309094300005404054E - 00004F00005400005C00026302046B04077104067502057901027C00017E0000 - 8200008400008401008601008702008502007D00007901017A03047404047004 - 036701025C00005500005200014400004E0809390000460A0B3300003F060937 - 00003E0202360000450A08350000460B093500004407053C0000400301380000 - 4909083900004A0A093900004706053C00003A04042E00003E0A0A300000440B - 0A3900004B05054800004D00005800006400006F01037803067D020480010382 - 0001860002860001860002860001860001840001840001820001820001800001 - 8000018000018000018000017F00017F00018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018200018300008500008500018500004800 - 004D0708330000440E0D350000550B0B5C00007802078000048200027D000279 - 01017902007D02008400007D01016400015E070A490000580A0B420000500A0A - 3B00004104023C0000430806350000480D0B3900004A0A093C00004502014300 - 004A07063A00004C0C0B390000480B093500004003013E00004807063E000055 - 0B0B4500005B080A4D00005A00025A00006000006701026E0305750407780304 - 7C01037F00018000018200018400008200008201008201008002007D02007601 - 027103056D02046902056100025A00005100004A00004700004A07063A00004A - 0C0C350000440A0B3200003C02033A0000430806350000480D0B370000480B09 - 3700004003013C00004508063900004C0C0B3900004A0A093A00004002023300 - 003A080A300000460C0D39000052090B4800005800025C000065000070000279 - 0203800305820203830102840001860001860001860001840001860001840001 - 8400018400018200018200018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018200018400 - 028400028500038300014D00033F0000460D0C300000480D0B42000068050770 - 00017F00048200027D00027901017902007B02008400007D0101690406530000 - 5D090B470000560C0C3E00004908073C0000400301350000460B093500004C0C - 0B3900004A07064100004502013C00004B0A093900004C0C0B3700004508063C - 00004403023F0000540A0A4700005F0B0D4E00006204085E00006802036C0201 - 7002027402027901027D01018000018400018400018400008400008001007F01 - 007D02007B02007602016D05066403055F01025A00025100004E000048000045 - 0000430102390000480A0A350000480C0C3500004307073A0000400301370000 - 480B093700004C0C0B3900004707063E00004202013900004A0A093900004C0C - 0B3900004707063C00003C0304310000470B0C3A0000570C0E4A000062040861 - 00006E00047300037900047D00027F0002800001800001820000820000840000 - 8400008200008400008200008200018200018200018200018200018200018200 - 0182000182000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000017F00027A00017900027C00047C01054900004C060733000041 - 0B0A3500005008085900007300047F00048000027B00027901017803007B0200 - 8400007D010166000260070A4A000059090A430000500A0A3D00004104023A00 - 00420705350000460B093900004909083D00004502014100004906053A00004A - 0A09390000470A083800004202014100004D05054500005D090B50000067080C - 5E00006B02057305057605027802017900007D00008000008500008700018701 - 018701018200008001007B02007902007502006E02016204055902065300024D - 00004700004300004100004202023C0000420606350000460A0A350000470909 - 3A00004202023C00004407053900004A0A093900004909083A00004202013E00 - 004606053900004A0A093900004909083A00004002023A00004205093A000055 - 090D4A000067070D6300007201057B03087D02067F00027D00007D00007D0000 - 7C01007F01008001008001008001008001008200008200008200018200018200 - 0182000182000182000182000182000182000182000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000017B00027100046C01046D00056A - 00024C00024200004108073000004007054100006201036D00007D0004800002 - 7B00027901017803007B02008400007F00016C03065800005B04074800005206 - 074400004706053E01003D02003600004207053500004707063A000047040342 - 00004401003F0000470605390000470706380000440403400000450000450000 - 5505064F000065070B5F000070060C6F01057703027903007C01007E00008200 - 008400008800008900008800018701018301027F000179010175010071020068 - 03015600034E00034A00014600004100003F00003D01023C02033B0201360000 - 4207053500004508063A00004504034000004101003C00004706053A00004807 - 063B00004504034000004201003D00004706053A00004707063A00004205033D - 00004000013F00005004084C000065070C62000177050C7900057E0006800004 - 7F00017E00007B00007700007702007902007D02007F02007F01007F01008001 - 0080010080010080010080000180000182000182000182000182000182000282 - 0002800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000178 - 01026201035602045600035200004A00004802033B00003B0401380000460100 - 5A00006C00017900047F00027D01017B01017B02007D02008200007D01016F01 - 036502045900005400024800004805043F02003C03013A01003B02003A000040 - 02023E00004301024000004100004000004101013E00004202013F0000430201 - 4400004900004C00005200005600006201036500017204087302067A05087800 - 007B00007F01008100008601008700008900008700018700028101027C010376 - 01026F03026802036503035C04044800004400004200004100004100023F0101 - 3D01023C00003C00003D01013C00004202013F00004502014400004300003E01 - 003D02003C00004202013F000043020142000045000045000044010043000045 - 02014100004303003F00004300004A000052000156000062010567000375030A - 7901068103097C00017E00007F00007F00007D02007902007803007902007D02 - 007F01007F01007F01007F01007F010080010080010080000180000182000182 - 0001820001820001820002820002820001800001800001800001800001800001 - 8000018000018000017F00018000018000018000018000018000018001007F01 - 007F01007F01008001008001008001008000018000017F00017F00017D01017D - 00027B00027901027901026F02044F00004600004800014A01034B0002450000 - 4303023C00004104024400005401005F00007302057D02048202038301027E00 - 007C01007C03017C04047800037502056B04075100004600003A000039060333 - 03003701003900004201033F00004300033F00004100043C0003380000360000 - 3E04054000004802024600005000005500006605026B04027002027402027900 - 047B00047F00047F000481020382030284020285010186000086000085000081 - 000183030879010672040A6200035902054B00004800013F00004100003F0000 - 4202023E00004202023F00004200014100004300004200004502014300004701 - 014300004800004100003901003500003C04033B00004404044300004802024A - 00004900004A00004B00004A00004700004400004200004A0000680404720104 - 7401047402027801027901027B00027B00027D00027F00017F00017F00017F00 - 017F00017D01017F00017F000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001820001820002820002 - 8200018200018000018000017F00017F00017F01007D02007F01007F01007F01 - 007F01007F01007F02007E04007C04007D03007F03008002007F01007F00007E - 00007D01017B00027D06077502057305076800006300005600004D0003430003 - 4100013E00004700004A04053C00004707063900004906034B00005C00006F03 - 027B03048202038500028200007C01007904017A04037C000081060A6700005E - 04033E00004008033101003405013401003E05043A00004A040A3C0000470409 - 3C00003D00053600023C06063800004806074300005603015600006502006F04 - 017602017901017F000180000282000284000484000282020381020182000081 - 000083000083000182000480000578000774060C5F00015F080C460000480508 - 3600003900013B00004205033800004707063A00004706053F00004600004400 - 004903033F00004C06063E00004B05054100004201003A00003D050435000044 - 08083800004707073E00004701014902004A00004900004A00004D0000500000 - 5201005D00007601027F00017F00017D01017D01017D01017D01017D01017D01 - 017D01017F00017F000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200028400028200018200018000018000017F00017F00017F01 - 007F01007F01007F01007F01007F01008002007F02008004008004007F030080 - 02008002008002007F01007D01017901027B06076A00007008095C0000620405 - 5400005200024000003D00003F00004302044903043F0000490909370000480B - 093C00005306045700006C02017902038102038301028001007E00007A03017B - 0303800103760000770A0C5000005208063500003C0906320200390302340000 - 49080A3A00004D070D3A000046030A3C00024003073B00004E0A0B4200005A08 - 075000006908056B02007403017902007D010180000182000284000286000284 - 00028101027F01007E00007D00007E00017F00027F01067B0307720007610000 - 66080D4A000055090D3A00004005093800004002023A00004909083900004B0A - 093A00004706054100004502013D00004C09083C00004D0A093C000047060541 - 00004701024000004C0809390000460B093300003E0704370000400300410100 - 4700004E00005600006000006901027202027B00028000018000017F00017F00 - 017F00017F00017F00017F00017F00017F00017F000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018200018200018200018000 - 0180000180000180000180000180000180010080010080010080010082000082 - 01008402008601008702008502008302008102017E03017A0202780606690000 - 6E070A5500006106094A00005703074B00014702054201034000013D00004000 - 004907083700004A0C0C3700004C0B0A4500005901016701027402027E010381 - 01028000017E00007B02007D04027D00008207096400006A0D0C4300004A0B07 - 3300003B06033700004307073900004D0A0D3C00004B080D3900004200054100 - 00500709450000610E0D5200006D0C096600007807047902007D020080000182 - 00018400028400028600028200027F00017B02007B0101790101790102760102 - 7300036E00046100006304084C00005A0B0E4000004B0A0C3600003F03043C00 - 004707063900004C0C0B3A00004B0A093A00004202013E00004707063900004C - 0C0B3900004A0A093700004302014900005304074200004E0A0B370000430A08 - 3200003B04013C02004200004C00005700006400006F00017900047F02048000 - 018000018000018000018000017F00018000017F00018000017F00017F00017F - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0182000182000182000180000180000180000180000182000182000182000082 - 00008400008400008400008600008900008900008800018701018301017E0202 - 7903027303036A00016A07095200005E070A4700005306094100004903043E00 - 003E0000400001430204440404390000470B0B3500004A0D0B3A000051070552 - 00006400006E00007A02038001028000018000017F0100800201830205760000 - 7A0C0C5600005F0E0B3E00004508063A01003C03023500004A090B3A00004D0A - 0F3A000047050A4100014C00004C0000650C0F56000075100E6400007B0A0877 - 00007F01008201008400008400008600018600018400028200027A0000780201 - 7803047604047103056B00026200005C00005A00024B000057080B4200004F0A - 0D39000045050A3C00004202023A00004B0A093A00004C0C0B3900004707063C - 0000400301370000460B09350000480D0B3500004308063E00004E0104480000 - 5408093E00004C0B0A3900004508043F00004300004C00005A00006501017201 - 047B000483000384000282000182000182000182000182000180000182000180 - 00018200018000018000018000018000018000017F00017F0001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000182000182000182000182 - 00018400018400018400018400018600018600018600018700018C00018C0001 - 8700018400017F00017700016F01036801045E00014E000059090A420000510B - 0C3A00004605073B00004302044201034000013D00003C000043070733000044 - 0B0A3500004A09084500005502015F00006A00017601027F0204810102820001 - 8001008101028100008205076A0000720E0C4D00005208043D00004306043C00 - 004406063900004B080B3A00004A070C3A00004900034E00006204055D000078 - 10116800007F0C09740000810201840100860100860000860000840001840001 - 8200027F00027700017402027103036E04036703035D00005400004D00004A00 - 004F05053E00004D090A3A000049080A3B00004302043F00004706053A00004B - 0A09390000470A083800003E03013A0000400705330000440B09330000430A08 - 3400004003014500005005074200005008084200005309094900005604035500 - 005E00006901027302057B020681010684000282000084000182000182000182 - 0001820001820001820001820001820001820001820001800001800001800001 - 7F00017F00018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000017F00017F000180000180 - 0001820001820001840001840001840001840001860001860001860001860001 - 8600028700028800038700038200027C00037400026C00016400015A00004C00 - 004E04043E00004C0C0C37000045090A3300003A00013A00003E000040000143 - 02043D03043700003F06073300004307073B00004C04044E00005B0000660001 - 7202027B03048001028200018400018400018503047800007B0607650000660A - 094A00004C02004502004101003C00004606063900004706083A000045020748 - 00005A00006200007407096C00007F0908770000830403820000870000870000 - 8600008400008200018000017F00027B00027301016B00026600015F00005900 - 005200004C00004600004502013D00004707073800004706083B000044030540 - 00004200013F00004706053A00004707063800004005033900003B0200350000 - 3F08053200004009063300003E05033900003F04023D00004906054200005906 - 055600006A05076D00037100017600027B00047E00058102048001037E00017D - 0000820001820001820001820001840001840001840001840001840001820001 - 8200018200018000018000017F00017F00018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00017F00017D01017F0001800001820001820001840001840001860002860002 - 8600028600028400028400028400048200048101067A01057601046E00036500 - 015C00005300004C00004500003B000042060734000041080B3400003C030638 - 00014304064302044100023D00003A01023C03043800003D03043A0000430303 - 4500004E00015400006000006D02047604047C01038000018400018600018301 - 027D01017500007307066400005800004B00004B04014300004101003E000042 - 02023E00004201034000024A00015E00006D00026E0000790302760000800100 - 8200008702008700008700008400008200017F00017D00027901027601046C01 - 036501015D00005300004E00004900004502014404033D02003D040239000040 - 04043D00004302044000004200014300004401003F00004202013E00003E0301 - 3B00003A01003902003A03003800003C03013800003E03013B00003C01003B02 - 004003014300005000015800006A01047400037F010784000687000587000584 - 00027F00017E00017C00017D00027F0001800001800001820001820001840001 - 8600018600018400018400018400018200018200018000017F00017F00018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017F00017D01017F00017F0001800001820001 - 8400018400018400028400028400028200028200048000047F00047900047203 - 076A03066502045E00045500014E00004500003E00003B00003A020136000039 - 03033400003B02053900033C01053B00003E0000400001430204370003380002 - 3B02033800003E02023E00004401004900005100005A00006301016F03027902 - 038001038500008400008200017F00017A02027403016B010061000054000049 - 00004901014100004303033C00004302043F00004401044B00016502046F0103 - 7200007600007B00007F00008401008601008802028300008202037B00007C04 - 057601047605087005086000005800005700014E00004C00014100003F02003A - 01003901003600003B03023800003E02033E0000420002430000430000420000 - 4302013E00004202013A00003D02003A01003B02003A01004005033E01004205 - 033F00004201004000004101004300004B00005800006500027200037C000384 - 00048A00058C00058C00038700028400027F00007C00007A00008004047F0303 - 8001028000018200018400018700028700028600018400018400018200018200 - 018000017F00017F000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017E00007C0100 - 7E00007F00018000018101028300038300038300057E00028100057B00007C00 - 067700037B03087203075A00004F00004E00014700004701023F00003F010139 - 00003C03043802023B05053500003B02033700003B0002390000430204420103 - 4000013D00003600023D04073400004307083700004606063F00004800004B00 - 005300005E02016802037503037D00028500008600008200017F00017E020279 - 03027101016700005B00005000004A00004805043B0000450707390000460507 - 3E00004D00036201036D00027000027500017B01017F01008200008200008200 - 008505067500007C07086A000072070A6500016504085800005700034A000051 - 05063E00004606053600003A03003600003B0504310000400807350000460507 - 3D00004400014200004504033B00004707063700004407053800003D02003C01 - 004306043B00004908073F00004D05054600004C00015101005401005B010163 - 00026D00037600057D0004850005870004890002880001860001830000810000 - 7F00007C00007B03037A02027C02027D01018000018200018500028700028600 - 018600018600018400018400018200018000017F000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000017E00007C01007E00007F00018000018101028100038100037D00 - 0281030876000080080D6E000075060A6A00006302064900004504033A000045 - 07073500003F06053400003901003700003D0405340000410708350000440507 - 3C00004100023B00003D00003F00004302043B020533000045080C3700004A09 - 0B3A00004705064100004800004E01005702006303037002027B000284000286 - 00008100008001008001027E02027801027000006500005A0000500301410000 - 490908350000480A0A3900004806074A00005C00006500006B00027202027702 - 037A02027E02027D01017F05057400007C0A0A6300006F0A0C57000060040954 - 00015200024600005207093E00004B090A370000400706370000390302310000 - 420A09330000480A0A3900004705064100004302013B00004A0908390000480B - 093700004407053C00004303023E00004E08084200005608094900005A030659 - 00006702046C01046E00047001057201047502057901057A01057B00007D0000 - 8100018100008300008500008500008100007802017203017602017901017D01 - 0180000183010287000286000186000186000184000184000182000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000017E00007E00008001008001008000 - 018000018001037E01037C01057200007E0A0F660000730C115B00006203074F - 0000430303320000400A09320000420A093300004004043800003F0000390000 - 4806073A00004D090A3E00004D07084500014502054201034000013D00003700 - 0141060A3700004C0A0F3A00004B080B3A00004301024300004800005202015D - 03026C01037901028400028600018100008001008200018101027E0103780102 - 6E01036303034F00004F0805390000480D0B3700004B0B0B3C00004D02045400 - 005D00006601036C040571040674040477020376010273010177090B5F00006E - 0B0D5000005C070B4500004C00034700004E05073E00004D0B0C390000460A0A - 3300003C0302370000410807330000480C0C3900004B090A3A00004301023F00 - 004707063900004C0C0B370000480B093700004202014200004E06064500005C - 090B4E000066070B5800006900057701067C00067A00067A0006790105780004 - 7601047800047800017800017C00007E00008000018400018600018000016F00 - 006B02006F02007403017901017D010180000184000186000187000186000186 - 0001860001840001820001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018001 - 008001008001008001008000017F00017D00027901027500037A090D61000071 - 0D125200005F080C4900004800013800003A0907300000450D0C350000490909 - 3C0000460001460000500306430000560A0B430000540A0A4500004B02043E00 - 003E00004000014302043C00063500004A080D3A00004F0A0D3C00004806073E - 00004000004201004B01005702006701027601048200028700028100007F0000 - 8400008501018301027E02027303036905055502014200004B0B0A350000480C - 0C3700004B07084600004D00005200005B01016104036905056C04056F02046E - 01036F0406610000690A0E4C000058080D4000004603083B00004300033A0000 - 4A090B3900004A0B0D3700004307083A0000400103370000480A0A3900004C0C - 0C3A00004806073F0000420201370000480B093700004A0D0B37000047070641 - 00004A02024600005C080A5200006C080D5D000074040B7100027F0005820004 - 8000048000047E00037C00037A00017A00017901027901027901017A02027C03 - 017C03017E03017904016800006401006902006F02007602017A02027F000182 - 0001860001860001870001860001860001840001820001820001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018001008002008001008001007F00017D01017B000276 - 010475060A6500006B0A0E4E00005A090C4200004A05083C00003C0403320000 - 460B09390000530B0B4300005704065100005D020554000062090C4C00005D0A - 0C4700005204054600004602034201034000013D00003A000242040A3A00004D - 070D3E00004E070A3B00004002023C01003E0100470200510100630101730003 - 8100038700037F00007F00008300008600008600018101027902036C05035300 - 00500604390000460B093500004709093F00004B02044800004B000051010258 - 02025F02036202026501016501016100006305094D000057070C3E000046060C - 3200003A000538000142060735000048090B37000047080A3A00004201033F00 - 004704073A00004B090A3A00004A08093B00004202023C000044070537000048 - 0B093700004909083B00004701014800005703055300006F090E6300007B070E - 7200007E00067E00048100038100038300038300038300038400008200008300 - 038001037C02027802017403006F03006E03006804005C00005E00006401006C - 03007203017903027D0101800001840001860001870001870001860001860001 - 8400018200018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180010083010183020082000080 - 01007F00017D01017800037300036C01046A07094E00005405083E0000450608 - 3400003E05063A00004606053C000055090A4A000063080B5A00006600056700 - 056E070A5C0000690B0C4E00005A07064700004900003F00003E000040000143 - 02043F00053A00004903093E00004E040A3F00004503043D00003900003A0100 - 4202004F02006101017100038000058601047F00007F00008500008600008600 - 008200017901026E040358010046000046070333000043080639000048040545 - 00004300004600004A00005000005500005A00005D00005D00005B0003510000 - 5504073E000045050B31000036030A3200063801043500004005093500004505 - 0A3A00004502054200004600024100004905063C00004806073B00004404043F - 00003F02003800004207053500004508063A00004704034600004E0000520000 - 67060A6600007D091077000385020C7D00037800047800037E00038300038A00 - 018E00019400029400029100028900018200017600006802005E030056030054 - 03005200005800006002006804006F04017504027B0101800001840001860001 - 8700018700018600018600018400018200018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 01008301018302008301018001007F00017C00007700036F0103660002570000 - 5603054000004203053000003706083602024000004500005505065100006706 - 0863000073040872000378040970000373080B5F00006408074F000052030047 - 00004804054302044100023D0000400003410004410000470003430000470003 - 4000003E00003900003C01004101004C01005901016802037501067D02067C00 - 007F00008200008500008700008500007C00017202025F000054010048000044 - 04003E00004303024100004301023F01014101014300004700004C0000510000 - 5500015500015100005000024700004300033A00013802073300073503073900 - 033D01023A00014001033E000143000344000045000147000146000243000045 - 01024100004301024000003E00003C00003B02003A00004003013F0000470101 - 49000050000055000061000069000177060A7A020783050B8000058100067C00 - 037C00017F00018600028900028E00039000038E000389000281000176000068 - 01005C01004F01004501004501004A00005100005D00006902007403017C0202 - 8000018300008400018400018400018400018400018400018600018400017F00 - 027B00027D00027D00027F00027F000180000180000182000182000182000180 - 00018000018001008000018001008301018301018001027B01017601026F0101 - 6802036104035200004C00004400004301023900003B02033501013C02034700 - 005400005900006700036B00007702057800047B02067E03077D040877000374 - 03066400005F03025100004B01014000003E0000400001430204410000400000 - 4301023F00004301023F00004101004000004101004000004603024500005000 - 015000005D02056803057801027F00008300008400008500008500008300017C - 00017705056C05035F03025201004900004000003C00003900003B0203390001 - 3F03043C00004601044400004C01034B00014900004600004701023F00003E02 - 0337000038020239000140000142000045000341000047000343000046000245 - 00014600024400004700034100004500054100004400043D00003D0504390302 - 3B00004000004800005200005F01026902057001057401047800047900047B00 - 027B00027B00027F00028600018800008600008500008200018001037A020374 - 03066D04076201035C03064D00004901013F00004002023F01014502014E0100 - 5D00006D00018000028B00038E00028D00008700008200007F01007D02007F00 - 018200018700028400027800047201057401047800047B00047D000280000282 - 00028702048601038501018200007F00007E00007D00007E00008202037F0002 - 7901056A00006202025000004A00003E00003A01003A03003A03003B02003E00 - 003F00004200004800005C04046802037101017901027F00018001027C02027C - 02027D01017E00008300018000047901056A0104540002460000440104420103 - 4000013D00004200004504033B00004707063900004606053C00004101004000 - 004605043E00004C06064200005105064B000060060675030380000182000183 - 00008600008600008500018100017F02047601026901025D0100520100470000 - 3F01003800003900013E050834000043060A3700004704094000004601044200 - 004702053B00004707073700004206063600003D01014200004B02043F00004C - 06073E00004B05063F00004400024200004702053D00004A040A3C0000480208 - 3E00004100013C03023D01014100004900005400006000016C01047702057B00 - 047D00027F00027F00027D01017B01017901017F00018700008C000088000184 - 02027C02027402026901026101015B02055808094600004B0708370000420607 - 3700003D03043E02034901015B00016D00018400049100039300028F00008700 - 008001007902007803007D010180000187000286000478000572010574000578 - 00057B00047F00048200028400028500028500028400018200007F01007D0200 - 7D02007B02007700027703086500006507084C00004C07043800003503003405 - 013404003601003A00004200004A00005200025A00026503036F01017A000082 - 00018600008301017E03017C03017D02008100008800018700028000066E0004 - 5600034600003C00003D00003F00004302044302013B00004A09083900004A0A - 093700004407053C00004202013C00004D0A093E000051090942000053070859 - 01017103037E02028001028200018600028500018500018300017F0002780102 - 6E02016403005902004E010047000040000042040438000045090A3700004A09 - 0B3900004805084100014300033A0000490909370000480A0A3500004206063A - 00004202023B00004A08093A00004A0A0A3900004605073E00004401043C0000 - 4A070A3A00004C070A3C00004902054100004600014A00004F00005800026300 - 046C01047701067E03078000048200028200028200018000017F00017B02007D - 02008200008400008202037D03037702036D0100620000590000570305490000 - 51080A3C000049080A35000043060A3A00013C02034201005500016800017F00 - 048B00038E00028B00008400007D02007803007603007B01017F000186000286 - 00027F00047B00047D00047F0004800004820004840002840002830001810000 - 8000018001027C02027A03017903027203016B00035C000065070B4A00005509 - 0A3C00004407053800003C04003C02003F00004700004F000057000060010568 - 03056A02037101017D01018400018600008400007E03017C03017D0200810000 - 8600018600027E00066C01045400034400004502054201034000013D00003F00 - 004707063900004A0D0B370000480B093700004003013B00004808073A000050 - 0D0C3E00005109094500005805046E04037903027C0202800102830003840002 - 8500018300017F00017B00027402026B04026202025902005201004A00004400 - 004906093A00004C0B0D3900004B0A0C3900004203053C000045060835000048 - 0C0C370000480A0A3700004002023C00004507073700004A0C0C350000460A0A - 3500004001033C00004706083A00004F0A0D3E00004E070A4000004B00015300 - 015A00006100046700037001057901057E000584010484000286000286000184 - 00018200017F00017D02007B02007D02007C03017802017403016C0000640000 - 5A00005300004F00005105064000004E0A0B39000048090B3800003E04053802 - 023F02005000016200007800048500028800028600008200007B020078030076 - 03007901017D0101840002860002840002840002840004840004860004860004 - 8600028400027F00017F00027C01037A02027702037203016F01016702005500 - 00570406450000550B0B3E00004B0A093900004303024300004600004E000055 - 00005F00006600016F02047204066F03027402027F0001860001870000840000 - 7D02007B02007D02007F00008600018600027E00066C01045400034400003E00 - 003E00004000014302044202013900004A0A093700004A0D0B3500004308063A - 00003E03013800004C0C0B3A00004F0C0B3E00004D07074F0000670303710101 - 7601027A02037E01038000028400028300018100017F00027A02037303036D03 - 026602005E010057000052020344000052090B3E00004D0B0C37000044080839 - 00003B0302320000440B0A330000480C0C3700004707073E00003E0202350000 - 440B0A330000460D0C3300004108073A00004103033900004D090A3E0000530A - 0C4300005304075100006601036E01037201057702057E000581000386000286 - 00018900028900018700018600018200007F01007D02007902007605036F0401 - 6A00006400005E00005900005200005000004C00014000004E08093C00004B0A - 0C39000047050A3B00003602023B02004A00005D01007100037E020284000183 - 00008001007B02007803007603007901017D01018200028600028B00028B0001 - 8B00028B00028900028700028400028000027F02047902037503037002026B00 - 026601006100005900004A00013900004909093900004C0C0C3A00004C060647 - 00004C00005300005D00006601007002047801027C01037B0002760102780102 - 8200018700018700008600007D02007B02007D02007F00008600018400027C00 - 066A01045300034200004401044201034000013D00003E000046060537000048 - 0B09350000450A083600003E03013900004207053700004B0B0A3A00004B0807 - 3E00005003015D00006700006D01007202027902037E01038000028100018500 - 038100038001037A02037601026F01016B010066020257000058030747000053 - 080A3C00004909093600003D05043500003D0706300000440B0A350000490909 - 3B00004202023C0000400706330000430B0A320000420A093400003E02023C00 - 004705063E000054090B4700005C080C5100006201057401047C010380000581 - 00038500038700028800018A00018900018700018600018200017F01007B0200 - 7902007403006905016203005C00005600005100004E00004C00004B01004400 - 004A04043C00004B090A3A000049080A3B00003E02033802013902004800005B - 01006E01037901018000018100008001007D02007902007902007B01017D0101 - 8200028700028D00019000018F00018D00018900028400028000027B00027904 - 057103036A02036301015D00005800005600004D00003A00003B050533000045 - 09093900004E08094500005401005900006200006D01007503037D0204820203 - 8400017E00007A02037A02038400018900018900008600007C01007801007B02 - 007E00008500018400027C00066A01045300034200003D00003E000040000143 - 02044101003C00004407053700004308063600003E05033900003A0100380000 - 4409073900004707063A00004403024800005200005B00006400006C01037302 - 057A01057F00028200028601048601048301028000017D010179010178020171 - 03036300005600005B02054700004E06063C0000410604370200360301310000 - 3D07063200004506083A00004702054000004100023800004206073300004108 - 073400004004043D00004000004100005105064C000060070A59000067060A6B - 00037D00028600018600028700018900018900018A00028A0002870001840001 - 8000017D01017902007603007403006B04015C01005300005000004D00004800 - 004800004600004502014302013E00004806073B00004906093C00004502053C - 00003901003A01004800005801006C0103790101800001820000820000800100 - 7D02007D02007F00018000018200028700028F00019000008D00008900008600 - 017F00017901027202026E03056503035D00015400004F00004A00004A000043 - 01023900013000003E05063700004A06074400005501035900006600016E0002 - 7801027E02028202038501018600008200007E02027E01038800028B00018B00 - 008500007C01007801007B02007E00008500018200027A00066A010453000342 - 00004603064302044100023D00004000004101003E00004003013A00003E0301 - 3900003A01003800003C03013C01004005033B00004101003F00004500004B00 - 005200005C00006402026D02047502057B000280000287020586010487000283 - 00008100008000018102037C04056900006300005900005600024A0000480202 - 3E01003B04013701003603013500003B03023C00004300034200004300014100 - 014100023E00004001033A00003E02023D00004000004100004A00004F00005D - 02056100026C03066F01077A0207820000870000870000880000890001880002 - 8801038702048000017D01017901017602017003016D05006B04016406014E00 - 0048000048000047000044010042020041010040000041010043030240000045 - 03044000004401044100004000013A01003E01004A00005A00006B0002780201 - 7F00008200008400008400008200008200008200018200018400028600018B00 - 018B00008700008400007D01017802017002026904026205045803014F000047 - 00004200004000004202024004043800003A01043C0000450003480000530001 - 5900006200007403067902037E02028001008300008500008500008400007E02 - 028001038A00028D00018D00008600007E00007801007B02007E000083000182 - 00027A00066A01045300034400003E00003E0000400001430204430201400000 - 4303023C00003F04023B00003D04023B02003A01003900003E03013A00004003 - 013C00004101004300004A00004B00005300005500006501016B00007A050681 - 04068100038500038700028600018600008500008300007F00007B0307700305 - 6700035C00005100004900004100003D00003B04013702003C04033800004102 - 044000004601044600024500014400004500033F00004202023E000042010043 - 00004900004F00005800006300026B00037401047900057F0004870002890001 - 8900018700018500008100007D00007800007C05067303037206056500006403 - 005900005A00004F00004900004000004302013E00004202013C00003D02003C - 01003C00003D00004202023F00004300034100004600024100014002023F0000 - 4C00005500006C01037500008000018300008800018800018800018600008600 - 018300008300018300008500028301018405067A02027606066700005F000053 - 00005200004A00004701013E00004002023900003B02013B00003D0000410000 - 4900015000035A00056302066C03067403077800047B00027F00018001008200 - 008201008201008002007D01018000028900018D00018D00008700007F010079 - 02007C03017F0100830001820002790005690003540003450000440104420103 - 4000013D00004300004605043C00004707063700004207053900003D04023900 - 003E05033600004308063700004407053C00004201004200004B040144000058 - 05045500006D07086D00017D06077E0103830102870002870000870000860000 - 8600008300007D02047601046D00026400005B00005000004800004100003E01 - 004106043500004307073700004704074000004801044800004D01054100004C - 05083C00004705063F00004600004A00005200005D00016701027201047B0004 - 8000048400028700028600008400008200007E00007A00007802017303036D03 - 026E09075D0000630A064F00005805034A00004A000042000042050338000043 - 08063500004207053600003B02003B00004004043A00004707073C0000490407 - 4100004400024100004603024500005E04036100007C08077C00008701018900 - 008B00008800008800008500008300008100017F00017C00007D070670000077 - 0B0A6000006308044F00004D00004500004603003B0000440907340000400706 - 3500004000004900005000005500035D00046600056D02057501067A02067D00 - 027F00027F00018001007F01007F02007D02007D02007D01018000028B00018F - 00018D00008700007F01007902007C03017F01008500018400027B00056B0003 - 5600034700003C00003D00003F00004302044903033F00004C09083A00004A0A - 093700004308063C01003E0301360000450A08350000480B093700004606053E - 00004202013B00004D0707450000600A0A59000071090A7202027A0203800102 - 8200018600008600008601008600008300007F00017901027500016D01006400 - 005B00005000004900004903033D00004909093700004A090B39000048050A43 - 00034C000546000052060A4000004D090A3C0000490605430000490000530000 - 6100026D02047702058001038700038700028600028300017E00007B00007700 - 007402026F05046B07076205045700005E0B09470000560B094000004D060341 - 0000420201380000470909350000460A0A3300004007063800003E0202360000 - 4909093900004D090A3C00004B05064300004501023F0000560607500000700A - 0B6A00008408088300008700008900008A00008800008500008100007E000178 - 00017404046500006F0B09550000630C0A480000500604410000410100370000 - 470A083500004A0D0B3700004505044300005A00026200036600056B00057100 - 067600057A00067E00057F00027F00027F00017F01007D02007B030079030079 - 02007D01018000028B00018F00018D00008600007D02007803007A03017F0100 - 8500018600027F00056F00045B00044A00014702054201034000013D00004600 - 004D07073E00004F0C0B3A00004B0B0A3900004005033A000043080635000048 - 0D0B370000480B093900004003013900004308063A0000540C0C490000650B0B - 5F00007105047601027B01018001008200008401008401008601008401007F00 - 007D01017901027402026D00026400005B00005100004B00004F07073C00004D - 0B0C3900004B0A0C39000045020747000153030A420000510A0D3C00004B090A - 3A00004502014800005201005F02016D03027803048102038700028700018200 - 027F00027D00027801027202026D020465030360030453000057070643000055 - 0D0D3C00004C0B0A3A00004303033E0000450707370000480C0C350000440B0A - 3300003C03023A00004307073700004C0C0C3A00004D090A3E00004501024000 - 004B0505450000610C0A570000790E0B74000085060585000088000088000085 - 00008000017D01017801027002026400006508094E00005E0D0A430000520B08 - 3B00004405013B00004407033900004D0C0B3C0000520B084400005502016801 - 047100047300047600057900057D00048000058000058000028000027F00017F - 00017D01017B02007902007902007B01018000028900018D00018B0000860000 - 7B02007803007A03017F01008600018700028100067100045D00044E00024000 - 003E00004000014302044D0303440000520A0A3E00004F0C0B3A00004808073D - 0000400301370000480B093700004C0C0B3900004807063C00003B0302320000 - 460B093A0000580D0B4A00006508076300007002027602017B02007F01008002 - 008201008402008201008100008001007E02027A02027402026D01006400005C - 000057000349000054090B3E00004C0B0D37000044070B3D0002490005430000 - 51070B3C00004A0C0C3500004308063C00004300004B01005902006703017503 - 037E02028500028600018000027C01057A02067704076E03056601035B000051 - 00004F0102430000500A0B3A00004C0C0C3700004506083C00004300033A0000 - 4B080B3900004A0B0D3500004307083A00003E0203350000480A0A3900004D0B - 0C3A00004A06074100004200013C0000540A0A490000670D0C5C00007A0B097B - 02008001008400008400008102017C02027504027004036905055E04044D0000 - 57090A4000004E0B0A3900004609073B00004205013B00004E09064200005909 - 084C00006309096501017502057C01057C01057E000580000580010380000280 - 00028000028000028000027F00027F00027D01017D01017D01017B0002800002 - 8700018B00018900008400007B02007803007A03017F01008700028900028300 - 067600056100055100034801044201034000013D00004A000051050642000051 - 09093E00004C09083D00004404033E0000440705370000480B09390000490908 - 3B00004003013400003A07053300004B0B0A4000005808075300006201006C02 - 017102007803007B02007D02007F02008103008103008301018301018001027E - 02027901027500016D00026701025A00005C030647000051080A3A000045090A - 3500004003074300014D03093C00004A090B330000400A093100003B04003E01 - 004801005402006103006E01007800008200008200017D000279010578030672 - 04066801045D00005200004A00004700004B05063A000048090B35000045080C - 3700004101064100014904073C00004B080B39000047080A3800003E02033A00 - 004206073700004A0A0A3A00004A08093D00004301023D00004606053E000056 - 0C084A0000660A056600007706037E03018002018002017B02007403016C0300 - 6703015E04034F00005106083E00004A09083700004409073700004005034102 - 004C07044300005B08065200006B09096500007606067C010381010281000381 - 0003810003810003800002800002800002800002800002800002800002800002 - 8000028000027D00027F00028700018900018700008200007902007803007902 - 008001008900028A00038400077901066400065400044100003E000040000143 - 02044F01024700005004054200004C06063E00004605044000004101003C0000 - 4606053900004807063B00004704033D00003701002F00003F07063800004D08 - 054700005902005B00006803016E03007302007803007903007C04007E040080 - 04008402028402028301018001007D0101790102760104700305630002560000 - 5702064200004805083700003E05083A00034200044100004605073500003E08 - 072D00003707033402003B03004202004D01005901006600007401007F010081 - 01027C01057600057200036C00026300025A00005100004B0000490003400000 - 47050A38000043060A3700004002083F00024600044300004B03093C00004805 - 0A3A00004403053D00003F00023A00004606063900004806073B000047030440 - 00003E00003B00004808074000005306035000006704006C0100790401790200 - 7902007401006C01006401005C01005401004B00024000004704073700004307 - 073700004106043E01004502004600005906045700007008096C00007D06077D - 0002820001840000840001820001800001800001810102810102800002800002 - 8200028400028400048600048600048400027D00027D00028600018900018700 - 008200007902007603007902008001008900028C00038600077A000667000755 - 00044A03064302044100023D00005600005600005000005101004800004A0300 - 4300004202013E01003F02003C00004202023F00004301024200004000003700 - 003603013500003D04033E00004702004A00005100006005016504016A030070 - 03017603007A04007C0400800300830403840202830101810000810000800001 - 7F02047B03076B00006600005900005400024800004602033E00014001034300 - 014400023E00003E02033500003704023202003502003A030040020048000050 - 00005B00006501007101017303037103076A01046300005C00005300004F0000 - 4C00024A01034200024302043D00024003073D00024101073D00034200044900 - 014D00024A00004E00034A00005000024D00005000005000005100004C00004E - 00014800004901014400004100003E0000400301410000490401460000520000 - 5700006103006904026804006702006302005D00005800005100004A00004100 - 004001033D00004103033D00004404034300004901014900005500005D00006E - 06077302057D06077D0004800002830000830000830000820000800001800001 - 8101028101028000028000028200028400028600028600028700048400027F00 - 027F00028400018600018400008001007902007902007D02008200018900018A - 00038400067A02076801045801044400003E00004000014302047207046E0502 - 6602005B00005100004900004100003D00003E03013A01003F03033C00004302 - 044200004800064400043C00033800003902053700003B02033800003F010141 - 00004B01005000005E02016200007002027600007F02048001028001007F0000 - 8100008200008500008500008500008300017F00027900047302056903045F03 - 025401004B00004600004A01034400014703043F00004103033A00003B020139 - 00003E03014000004603024700004F01024F00005800025400005000004B0000 - 4C00014700004701013F00003F01013C00003C02033A00013D03043B00004102 - 043F00024200054500014D00005600005C02026103046905056E040374020277 - 00017B03047901027301016B00025F02015300004700003E0000430000440000 - 4901014700004E01004A00004D00004C00004A00004700004C02024600004D03 - 034A00004F00034800013D04023904013B02003E01004400004800004E000054 - 00006603056B02057001057400057800057900047B00057D0004800001820001 - 8200018000018000018000018000018000018000018000018000018200018200 - 018200018200028200018000018000018000017F00017F00017D01017D01017F - 00018100008700028700028300007D00027503036902005800004A0103420103 - 4000013D00007B04027603006E01006501005B00005000004600003E00003C01 - 003F06053500004307083900004903094200014800073F000240030734000040 - 070A3000003D07073500003B02014100004D05054D00006306075F0000740608 - 7300007A02037C02027D02008000018300008600008800008800008800008600 - 028000027C01037303036A03016001005800005000004900004B02044000004A - 06073B00004707073B00004103033E00004305053B00004806073E00004B0506 - 4400004A01034200004404033A00004508063500004007053500003A02013900 - 014006073800004607093B00004904074100004B00015700015F00006602026B - 04027503037C02028200008600008C00018900008100007800006A02035C0201 - 4C01004400004400004903034100005006064300004F05054100004200013C00 - 003E05043500004408083A00004A05084400004701023C01003902003E010044 - 01004D00005700005E00006500007201057600057900057B00057D00057D0005 - 7D00057D00047F00028000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302047F00017B01017501006B02006001 - 005501004A000042000044040338000045090A3500004A080D3A00004A040A43 - 00034300053A000047080A350000440A0B3300004206063C0000450403430000 - 570A084A0000660A095900006B05066900007504027A02027E02027F00018400 - 018500008600018600018500018200027E01037702036F03026702006200005A - 00005100004300005106084000004E0A0B3A00004808083F0101400404380000 - 4709093700004B090A3A00004A06074300004301023A0000490909370000460A - 0A3500004206063A00004103033B00004D090A3E000054090B43000053040751 - 00006300026900036D02047103037803047C0202820000850000890000860000 - 8100007901016E03056105045303024902004502013B00004C09083C00004F09 - 093C00004706053C00003C0302340000420A09330000480A0A3A00004A040544 - 00004100004100004900005001005902006202026B03047302057800047B0004 - 7D00047F00048000048000047F00047F00048000028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00008300 - 008000017B01017203016902005D02005300004900004200004808073700004A - 0B0D3900004B090E3C00004701074100014A040A3A00004C0B0D39000048090B - 3900004202024000004D0707400000570C0A4700005C09074D00005D00006E04 - 037504027703027C02028001028200018500018500018500018400027F00027C - 01037702037002026E0103670303530000580408470000570A0D420000510B0C - 3C00004404043D0000460808350000480C0C370000490B0B3B00004404043E00 - 004707073700004A0C0C370000480A0A3900004301023F00004D050543000059 - 0B0C490000610B0B5300006204056F01057501067603067803047B03047E0202 - 8001008400008700008500007F00007901016F02046303035701014B00003F00 - 004508063900004C0C0B3A00004A0A093700003E030139000041080733000047 - 0B0B3900004C08093E00004B01014B00005000005700005E0100670303700305 - 7704077D04087D00048000048200048200048200048200048200048000028000 - 0280000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302048800008600018101027A02027202026602005D010052 - 00004E02034000004E0A0B3A00004C0B0D3900004807094000004500033E0000 - 4D080B3C00004F0B0C3C00004806073F00004504033B00004E0B0A3C00004F0C - 093E00004C07044900006304016C02017002027503037A02037F000282000283 - 00018500018300018200028100037E01037A0203790203710305650106550000 - 630A0D4A00005C0C0D4300004E06064300004504033B0000490C0A350000480D - 0B3500004209073B00004001033700004A090B3900004C0C0C3A00004C060645 - 00004900004700005B08075000006B0D0E5B0000700C0C6F02047B01077F0107 - 7F01067D02047D02047E02028001008200008501018400007E00007800006F01 - 036501015B00004D0000430201350000460B09350000480D0B35000043080638 - 0000400503360000480B093900004C0B0A3E00004E06064D00005C0000640000 - 6600016D00027401047901057F01068302078400048600048600048600048600 - 0484000484000482000280000280000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00008E00028C000287000281 - 01027801026E02016602025D03025100005305064000004F090A3A00004A070A - 3C00004502053F00004904073C00004D080B3E00004E08093D00004501024200 - 00470605390000490C0A350000450B063600004502005601006201006701026D - 03027303037902037D00027F0001830001830001830001840002820002810003 - 8001037A01056D00036D070C5C0000690A0E5000005E070A4B00004E00014700 - 004A07063A0000480B09370000450A083600004004043C00004604093900004B - 080B3C00005007094400005000014E00005D03025400006F0B09600000790D0C - 7000007E07088400068700068300058100038001038001028002018102018301 - 018200007E00007800007100036800015D00004F000041000042070533000044 - 0B09330000430A083400003E03013E01004707063C00004E0808420000540809 - 4700005903036802037100037300037800047B00048000058300058500058600 - 0487000487000486000486000484000484000482000280000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02049200039100038A00038400027D00027601026F02046905055C00004E0000 - 5204054200004C06063E00004604054000003F01013A00004606063A00004A06 - 073D00004903034200004502013D00004606053600004209073400003C07043E - 01004D00005800005D00016503036C04057302057800047D00047F0003810003 - 8300018500018500018600028400028100057A02076F000275060A6700006D06 - 095D00006104055700005301004900004D06033E00004808043B00004306023E - 01004100023D00004903093E0000500507460000540103540000610304620000 - 7107066900007B0A087400008108068101028900048B00058700048400028000 - 027F00018002018002018102018001007E00007B01017702056E010365000159 - 00004800003A00004207053300004108063400004005033F0000460300440000 - 5205034900005906054E00005B08076002037201047B00027D00027F00028200 - 0284000286000286000287000287000286000286000284000282000282000280 - 0002800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00009300049100038C00038500018100017B0002 - 7803067205076100005C00005200005101024800004A02024500004301023C00 - 003A02013A00004002023E00004501024200004500004200004401003E000041 - 04023900003B06033803003F04024600004F00005600005D03036403056C0405 - 7002047601047A00037E00038000008200008400008600018600018600027F00 - 037E00067900037A02077100027102066800026702045B00005800005000004F - 02004800004A03004700004701014500014600044500014C00034C0000530001 - 5600005C00006B05067307067403017C07047C01008104008100008600008D00 - 048C00048800038300017F00017D01017E03017F04027E00007F00007E00007E - 02027B03077403066D02055F01024A00004200013C00003E03013800003E0301 - 3F00004300004B00005300005500005C00005B00006303036002036B05067700 - 017F000180000282000284000286000287000387000386000286000284000282 - 00028200028000027F00027F0002800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302048D00028A0001 - 8A00018500008200007E00007A00037300037003056804046104035A02025301 - 004D00004900004100003D04023603003D06033900004104023E000044010042 - 00004500004200004501023E00004002023800003B02013C0000460001490000 - 5202035200005E03066100026A03066F01057502057B02068102048401048601 - 048800038700018600018800058700058500058200047F00047A000375000371 - 00036C01036602026101015D01005700005100005000004D00004D00014E0003 - 5000035300035900045E00046401036901026F01037500017800007D02008200 - 008502008702008A00018F00068C00068600038000007B00007A00007C03017D - 04027F01007F01008000018001027B02067601046C0001610000500000440000 - 4301023E00004003013E00004401004A00005200005D00006800016E01037003 - 057004036D02046F01017B000282000282000282000284000284000284000284 - 00028200028200028000027F00027F00027D00027B00027B00027F0001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00008800038700028700028500018300018100017E00037800037702 - 056F02046802036202025D01005500005100004A00003C02003C070434000042 - 09073600004606053D00004502014400004903033D00004A06073A0000460606 - 3A00004101014100004B02044400005406074C00005F06095B00006601036D02 - 047201047902037E01038100038500038600018700018A00038A00038A000587 - 00028600048100017E00037A00017601047101016E01036902006400005F0000 - 5F00005B00005700015600035800035D00036100046700036C01037101017500 - 017800007C010080010084010087020088020088000188000587000683000580 - 01037901027802017801007A01007F01008001008000018001027F0106780004 - 7100026300005200004D02043D00004707073700004606054300005100005E00 - 006800007400027901027A02037A02037601027700017F000282000282000282 - 00028200028200028200028200028000027F00027F00027D00027B0002790102 - 7801027901027F00018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302048001038100038100038200028200 - 028100017F00017E00017B00027801027101016C02016602006102005E020154 - 0300430300360000450B06350000490C0A3900004706054000004501023D0000 - 4E08093E00004D080B3C00004904074100004400023C00004D06094200005607 - 0A4900005A03065800006301016901026E00007301017901017D010180010283 - 01028800028A00028900028900018700028600018300017F00008001037C0202 - 7801027403017101016E03006D01006902006200016100046300046700036C01 - 046F01037401047801027A00017C000080010082000084010086010087020085 - 01018000047E00067B02067A0304780304760201760100780000800201820000 - 8200018101028101067900047300026600005700024400004E0809390000480B - 093900004D06035100006600017400027F00048300038401048101027D01017C - 00007F00018000018000018000018000018000017F00017F00017F00017D0101 - 7D01017B01017B01017901017802017901017F00018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00007702 - 037902037A02037E01038001038000028100018100018000027D000279010276 - 01027002026B04026804026106024900004C07043E00004F0C093C00004E0B0A - 3B00004504033F00004806073C00004F0B0C3C00004D080B3E00004500033E00 - 004704073C000050090C4000005306094500005300015800005D00006400006A - 00006E01007403017903027D0303820001860001860001860001870001860001 - 8600018400018200018000017F00017D01017901017903027703027304026D00 - 026C01036E01036F01037401047801027C01037E02027F000180000182000082 - 00008201008201008201007F01007901057302067002046F03026F0302710200 - 7502007A01008102018400008400018400018000057C01057400036900035300 - 005104073C00004A0C0C350000480B094000005500006D02047A02038601048B - 00038B00038701018200007F01008000018000018000018000017F00017F0001 - 7D01017D01017D01017D01017D01017D01017B01017B01017B01017B01017F00 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302046A02036C01037002027702037C01037F000282000283 - 00018500018400028000017D01017903027504027205036B06045C00004D0000 - 5C0907470000570C0A4000004D070740000042020239000048090B3900004C0B - 0D3A00004A040A4100014502073B00004C090E3C00004F0A0D3E00004D050547 - 00004F00005200005800005E00006401006902006F04017304027902007F0100 - 7F01008001008200008200008400008400008300008300008100008001007F01 - 007D02007E03017A02027602017601027801027901027C010380010281010283 - 01028200018200008200008001008001007F01007F01007802016D0506660305 - 6301016100006400006A01007403007D04028402028600008600008600018100 - 057C01057600056900055500024200004A0A0A330000430E0B3300004C070451 - 00006F04067D02048900048F00038D00038A0001820000800100800001800001 - 7F00017F00017F00017F00017F00017F00017F00017F00017F00017F00017F00 - 017F00017F000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00005D000062000067020070 - 02027902037E01038400028600018800018700028600018200018001027A0202 - 7A04037405036700006B0506590000660A094A0000570A084300004504033C00 - 00420606330000440A0B35000047080A3A000043000541000348050A3A00004C - 090E3A00004B080B3C00004603024801004A00005000005300005B0000600200 - 6403006B04017103007502007803007B02007D02007F01008301018501018300 - 008300008300008300008200008001008001007F01007D02007D020080010281 - 02018301028500028500028700028501018501018001007F01007D02007B0200 - 7A01007102006205045802025600005600005C00006501007305017F06048402 - 028800018800008700018300057D02067701066A00064F00004B040735000041 - 0B0A2C0000400B083B00005201006D05067C01038800028E00018E00018A0100 - 8302008103008001008000018000017F00018000017F00018000018000018000 - 0180000182000182000182000182000184000184000182000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02045400005800006201006C02017503037E01038400028900028B00018B0001 - 8900018700018400018001027E03017A02027A02037100007605085F00006306 - 074D00004D05054000003D01013500003D070730000040070A3400004003073D - 00024300063E00014704093A0000480709390000430505400000420200450100 - 4800004D00005100005701005E04006204006A04006E03006F03007403007803 - 007C030180020181020183010184000084000084000084000082000082000082 - 0000820000840100840000860100860000870000870000870000870101850101 - 8101027D01017B01017701007701006C02015500004B00004B00005000005700 - 006401007004007E05038602028A00018800008700018300057D020678020769 - 02074F00013D00003F07062B0000350B062C00004205014D0000690304790102 - 8700018D00008D00008700008103008003008001008200008200008001008200 - 0080010082000082000082000084000086000086000087000087000089000087 - 0000820001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004700004D00005600006003026D0204750205 - 7D00048400028900028B00018B00018900018600018400018001008000018100 - 038102047700027401046500006100025300004E00014700004200013E000040 - 01033A00003E02033B00023C00033C00013E00033B00003E02033A00003F0304 - 3C00003E02023F02004001004200004500004900004F01005302005804005E05 - 016105006504016B04017003017703027A02027C02027F030381020382020383 - 0101850101840000840000860000870000870000870000890000890000870000 - 8700008600018301028001027C01037601027202026E01036C01036104034700 - 004100004500004C00005501006001006E03007901018503048800028A000086 - 00008300037F02047A02066C03065000004200013700003505012E0100350501 - 3D00004E00006903047800018500008A00008A00008700008103008104008001 - 0082000082000082000082000082000082000082000082000084000086000086 - 0000870000870000870000860000820001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302043E02033F0000 - 4701024A00005B00036200017102067A00067D00018200008600008600008700 - 008800018802028602028200018000017F00027D00027B00027800047201046D - 02056200005B00015500015000024B00024400014200023F00023B0203370101 - 3A04043500003B03023600003901003800003B02013B00004202013E00004401 - 004100004600004400004A00004A000055010357000067020469000171030575 - 02057400007600007B00027B00008402038400008B00038B00008A00008A0000 - 8A00008900008900008700028300038101067D02067600057002086400026001 - 055600005400014A00004400013F000046030244000050000056000068020374 - 01047F00028600028900018900018400018000017B01016F0302530000450000 - 4102003700003D06033A01004701014F00006A03067A02078600068A00038800 - 0085000083010183040380010080000180000180000180000180000180000180 - 0001800001820001820001820001820001820001820001820001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003700033E05083800004B04074800006004096300017102067800 - 057D000482000284000186000186000087010187010182000182000182000182 - 00018200028200027F00047B00047400036C00026500035D00025300024D0001 - 4A00014300003B00003E05043400004108073500004206063800003D01013B00 - 004004043800004507073700004505053C00004101013D000045030443000058 - 04085200006504086200006A01046F01057507096F00007F0809760000850506 - 8100008700018600008600008500008500008300008000027D00047800047000 - 0570040A5E000062060B4C00005104084500004300013D00004204043B00004C - 06074300005A03066200007403077D0004840002890002890001860000820000 - 7D02007203015600004D03003C00004508043700004808074300005300006B01 - 077A020784000788000387000285000083010182030280000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302043D04073500004807093E00005607 - 0A4C00006504086500007102067702057C01037F000180000182000181000081 - 00008200008001008200018200018400018200018000027D00027A0105740104 - 6E00046601035E00035700015200004D00004B00024100005007094000005108 - 0A3E00004905064200004301023A0000490909370000490B0B3500004307073B - 00003E02033700004B07084200005A060A4E00006002065C0000680507620000 - 730B0C6400007C0B0E6F00007E06077800007E03017D02007D01017B01017901 - 027801027300036E01036700055A000063070C49000055080C3E00004903093E - 00004001033900004909093E00005408094C00006906086F00047B0004820002 - 8700028700018600008200007D02007203015D02004700004D0805390000490C - 0A3900004D05054E000068010677010682000787000387000285000083010182 - 0302800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003B00 - 0246060B3900004E090C42000058070A4F00005D00026702046C010371000376 - 01027901027D01017F00017F01007F0100800100800001820001840001840001 - 8200028000028000057A01057601046F00046900036300026000035D00035700 - 005E04094E000060090D4A00005A060A4500004C00024600004B05063C00004D - 0B0C370000470B0B3600003D04033800004307083900004E0A0B420000570609 - 4900005500015400005F05055200006D0D0D5A0000750D0E6A00007406067205 - 037206027205037104026F03026D03026802036502045700005A030647000055 - 0A0C3E00004A090B3700003F03043A00004507073900004F0B0C4300005F080B - 5D00007304087B00048200028700028700018600008200007D02007203015B00 - 005607044000004D0D093700004C0C0B41000053000166000576000581000687 - 0003870002850000820000820302800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044301063A00004B080B3C0000500A0B4200005204054E - 00005A00005D00006400006B01007101017703027A04037B03037D02007F0100 - 8001008200008400018400018400018400018300017F00017C00017900047601 - 047201047001056F010570020864000072080E5A00006C080D5300005D02054F - 00005200014500005309093E00004D0C0B3900004508063900003E0405350000 - 490A0C3900004C090C3E00004E05074700004A00004500005808094A0000640B - 0E52000066090A5F02016304016305006304016003005F02015E02015B010157 - 01015100004300005007093A00004A0B0D33000040070A3700003F0304380000 - 4B0B0B3C000055090A4A00006807096D00037900048200028700028700018600 - 008200007D02007403016304014C00005309073A00004B0E0C3900004D07074D - 0000620003720003800006850003860002840001820000810201800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00004100014704093A00004B - 080B3C00004B07083F00004A00004C00005100005900006000006701026D0302 - 7103037605037902007B02007D02007F01008200018400018600018600018400 - 008500018300018200028001037E01037D02067B02067800047E050D6C00007C - 080F62000070040A5D00005F00025900005A030649000057090A4200004D0707 - 3F000042000140000146060B370000490A0C37000049080A3B00004503044200 - 004B0506400000540A0A43000055070848000052000052000054000052000052 - 00005100004E00004E00004A0000430000470403390000450909330000400A0A - 3200003A04043A00004406063900004D090A4200005B07095C00007204087900 - 048000028600028700018600008200007D02007403016201005C07054300004D - 0A073700004A0A094000005000016100026F00027D0005860104870003840001 - 8200008102018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044600023F00004704073B00004808083900004306043F0000420000470000 - 4D00005300005D01006101016602026C02017403017803007902007B02007F00 - 0182000184000186000187000187000189000187000187000187000287000383 - 00038100067B000182040A7300007F050B6D00007203076A00026801045E0000 - 6306075200005C06064C00005402014B00004A00044000004704093900004306 - 0A3700004105063D01024302043F00004A05083D00004C05083F000048010444 - 00004800004900004900004900004900004700004700004300004100003B0000 - 4105053300004007083100003B05053600003E02023B00004606063C00004F05 - 054C00006305066C01047800048000028600028700018600008200007F010076 - 02016A05035800005505043E00004707063900004805044B00005E00016D0002 - 7B00058401048500038400018200008001008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004400004400024000004403053C00003E0504 - 3A01003C03013C01004000004601004B00005200005801005C00006100006D04 - 017004007403017602017901017D01018000018400018800028A00028A00028B - 00018B00018A00008A00008600018100018000057D00028100077B00037D0309 - 7701067504087102066F04076900036803056000006100025C00005900015000 - 004D00044400004400043B00003C01053900013D03043B00004100023F000044 - 0104400000450205410002440203450000470000480100470200470200460300 - 4403024403023F00003F02003A00003E02023800003C02033800003A01023C00 - 004002023F00004301024400005101025D00016C03067601047F000284000286 - 00018400008200007F01007802016B04026003024F00004B01003E0000410402 - 4100004B00005A00006900017900058201048500038400018200008001008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E0000400001430204450001420000 - 4300033C00003C03023700003802013701003902003900004202014100004B01 - 014C00005200005700006605026703006E04036B00007402027400007A00017D - 00008300008500008800008A00008A00008C00008C00008700008200047F0004 - 7F00047D00047D00047B00047900047800047800047601047401047401047201 - 047201047201046D02056400065800025000014500004302043A00013B020339 - 00003E00013F00004500054100014300053E00013F0004400001430000440000 - 4701014300004701014100004201004100004000003F00004002023C00004001 - 033C00003F00023E00013F01014000004303033F00004901014D00005F020369 - 02057401047D00028200028400018400008200007F01007802016C00005E0000 - 5400004500004201003C00004201004700005C01046A01047A02078102048300 - 0384000182000080010080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00004200004702053A00004506083300003F07063300003802013601 - 003D06033600004707063E00004F05054600005100005600005F02015900006B - 07056200007408077100007C04057D00028000018400018600018900018B0001 - 8B00018700028000027B00027B00047D00027D00047D00027D00047D00027D00 - 047D00027D00047D00027D00047D00027D00047900046E000668010851000052 - 03063D00004307083700003B01023D00004502053F00004C040A3C0000470409 - 3A00003F00024200004903033F00004C06063C00004906053D00004201003F00 - 004404043A00004806073A00004704073D00004200023F00004505053B000048 - 06074000005305065800006904067401047B0002800002840001840000820000 - 7F01007901016F00006802035200005205033A00004508063D00004800005900 - 036801047501067F020481000382000182000080010080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044301023A0000490909370000440B - 0A3200003F07063700003B03023300004509093700004B090A3C00004B050647 - 00004D00004A00005E0606500000690B0C5C000071090A6E0103750205790203 - 7C01038001038300038500038700038500037D00027901017901027B01017B00 - 027D01017D00027F000180000280000182000282000184000284000186000282 - 00027F020B6B00006A060C4A0000500A0B3700004007063700004202023F0000 - 52060A42000051070B3C00004404093E00004701024100005007093E00004D09 - 0A3C00004705063F00004301023B00004A08093C00004D090A3C00004B050641 - 00004301023B00004A0A0A3A00004F09094500005E0606620001720104790102 - 8000028200018400008200008001007B01017803046400006306074500004D0C - 0B3500004508064400005501036401037302067D020481000382000182000082 - 0000800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003C00 - 00450707370000480C0C350000460A0A3300003C03023800004307073500004A - 0C0C3700004A0A0A3900004501024500005206074500005B0B0C4A0000610909 - 5400006300026B02056F02047201047702037A02037C01038102047F02047B01 - 017901017901017B01017B01017D01017F00017F000180000182000184000186 - 000186000186000187000186000283000580080D5D0000620C0C400000470C0A - 3300003C03023E00004C060743000056090D4200004D080B3700004001034300 - 00500507400000510B0C3C00004B090A3A00004202023F00004806073A00004F - 0B0C3C00004F090A4000004701023E00004808083900004E0C0D3E0000540809 - 4F00006502047002047901027F00028200018400008200008001007D01017600 - 007306085300005B0B0A3A0000480D0B3800004502015300026100027001057A - 02037F0002820001820000830101800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302043C0302330000460A0A3500004A0C0C3700004706083E - 00004201033900004A090B3700004A0B0D3500004307083A00004504063C0000 - 4F0A0D3E0000550A0C4500005501054E00005F01056302046801046C01036F02 - 047002047502057702037901017B02007B02007D02007D02007F01007F01007F - 01008001008200008200008400008400008400008600008400018A0508760000 - 770C0E4E0000520D0A3300004009043700004202013E000054070A450000550A - 0C3C00004307083C000047000342000051070B3E00004F0A0D3A00004706083C - 00004201033900004A0A0A3A00004F0B0C3C00004C06074300004301023B0000 - 4C0C0C3A00004F0C0B4300005B05055D00006F02047801027F00028200018200 - 008200008001007D01017B03046800006807094900004F0C0B3500004207053F - 00005000015E00016F00047A02037F0002810000820000830101800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003500003F070633000046 - 0A0A3900004A08093D00004500034100004904073A00004A090B35000043090A - 3300003B020338000142050935000048090B3A00004B06094100004C00025300 - 035700035D00036100026401036602026A02036F01017901017F01007F01007F - 01007F01007F01007F01007F01007F0100800100800100800100800100800100 - 80010082000084000185080A640000630C0A3C0000400A032F00003A06003C00 - 004B050543000056070A4200004C08093600003E02034100004D03073E00004D - 080B3A000049080A3800003E02033A00004206073700004A0A0A3A00004C0809 - 3D00004501023E00004705063900004C0A0B3C00005107074C00006000016F02 - 047801027F00028200018200008001008001007D01017900007704075700005A - 08073C00004409073500004100004F00005D00016E00047801027F0002810000 - 8200008301018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02043603013300003F07063500004707073D0000490205460000480002410000 - 49030939000043060A3300003B04073400023500043200003C04093200004306 - 0A3900004603064500004900004C00005100005500005A00005D000160000168 - 00017B01018400008400008200008200008001008001007F01007F01007D0200 - 7D02007D02007B02007B02007B02007D02008301027A00007009065000004708 - 003000003608003405003D03003F00005004054300004E05073B00003E050439 - 00004200024100004B03093C000047050A3800004004053900003B0102360000 - 4206063500004507073A00004503044000004100003D00004808083C00004A07 - 064200005401005900006D02047601027D00028000018200008001008001007F - 00018003057100006904064B00004D07073700004005033D00004C00005C0000 - 6D00037801027F00027F00008200008301018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00003701003802013800004002023F0000450102 - 4400004700014700014600024100014300053C00013C01053800023700033900 - 043B01063700023D02063800013E01053C00004100014300004700004B000051 - 00005600005B00005F00006800007D0101860000860001840000820001820000 - 8000018001007F00017D02007D01017B02007901017803007901017802017600 - 007103035F02005206003D00003703003102003606003A020041020041000047 - 01013F00003E02023600003901004000014600044100014300053F0001420005 - 3D00003C00013C00013D01023A00004002023E00004202024000004100003F00 - 004202023E00004205033D00004600004C00005700006903047201047B00027F - 00018200018200008000017F0001800305780306630000560302450000420503 - 3A01003E01004A00005800026900037601047D00028100008400018501018200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302043C00013B0000 - 4001033E00004201033F00004200024100014100014000004300033E00004201 - 033C00003F00023E00014100034200024300053E00014000053C00003F000240 - 00014501024900025000015400005A00006200016800047302067F0002840001 - 8400028400018200028200018000028000017F00027D01017D00027B01017B00 - 027901017B00027202025D01005202014C02004502003F02003A020039020036 - 01003B04013B04013A03003A03003803003303003203003502003F0000420000 - 4200004200004200004200004200004000004300034100014401044200004601 - 044100004400024200004000003B00003C03013600003C03013C00004601004F - 00006205046D02047601047D00028000028200018200028000017C0001720000 - 6804025400004A03003B00003B02003C01004400005300026502047302057D00 - 028500008A000089000184000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004200024400024B01073F00004A - 05083900004405073A00004101014501024C02025300025A0002600001680002 - 6E00057800058000048400028400028200028200028200028000028000027F00 - 027F00027D00027D00027B00027B00027B00027002045700004C00014B000049 - 00004800004500004300004000004302014202013F02003D02003B02003A0100 - 3A01003C01004101014200014200024200014400024400014400024400014500 - 034A06074000004C08093E00004A060740000043010240000043060437000042 - 09073400004508044200005000006205046D02047601047D0004800002820002 - 8400028000027B00007706046200006009054100004306023600003C03014200 - 005101026302047103057D00048500018C00008D000184000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073F - 00004700033F00004C070A3A00004A0A0A390000460606410000480000500203 - 5B02056201036900036F00027700047B00058000048200028200028200028200 - 028000028000028000027F00027F00027D00027D00027B00027B00027B000276 - 01046600006000006000005D00005C00005A0000580000560000580000560000 - 5300005200005200004F00004F00004B00004200003F00003F00003F00003F00 - 003F00003F00003F00004204043A0000480A0A370000490B0B3700004406063F - 00004701014100004C09083A00004B0B073E00005005035100006604046F0204 - 7801027F0002820002840002820002800002800102720000740A09510000540A - 083900004007053B00004200005101026103047103057D00048500018C00008B - 0001840001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004300034100004A06073A00004D0B0C3900004A0A09 - 3A00004701014B00005502016104056A03067302067700037E00048000048200 - 028200018200028200018200028000018000028000018000027F00017F00027D - 01017D00027B01017D00027901027500037300037300047200026F00026F0001 - 6D00026B00006B00036901026600026501016400016400006400015E00015100 - 004B00004B00004A00004B00004A00004A00004A00004600004F080540000053 - 0C09400000510A074000004B01014D000056030545000055090A430000550806 - 4A00005B00006B03047401047B00028000028200028400028200028200027D00 - 008208086400006B0E0B4500004B0B0736000040050342000051010261030470 - 03057B00048300018A00008B0001840001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E00004301023A0000 - 4A0A093900004C0C0B3A00004A07044700005100005C02016905057305077B02 - 0680010386000486000284000184000084000182000082000182000082000180 - 01008000017F01007F00017F01007F00017D02007F00017F0001810204810003 - 8000058001038000057D00027B00047901027A01057902037800047601027500 - 037301017300037100036D020469030469020568040469020568040468030566 - 0404630204590000680A0B530000690B0C5300006305065A0000610002570000 - 6508094E0000630B0B5000006306056100007002047800047F00028200028400 - 028400028200018200018601037900007C0C0C5500005C0C0B3E00004609073E - 01004400005101026103047003057B0004830001880000890001840001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023C00004407053700004A0B073900004A0A063F00004E01005500 - 005F02016C04057604048102048400028B00028C000287000084000086000084 - 0000840000840000840000820000820000820000800100800100800100800100 - 8001008001008400018400028200028200028200028200028000027F00028102 - 047F02047F02047E01037C01037B00027B00027B00027E01037E01037E00057C - 01037C01057C01037C01057A02037700037D08096E00007F0D0D6A00007C0A0A - 6C00007302056D000274060A620000710C0E5B0000700B0D6400007103057800 - 047D00028200028600028400028400028000018200018400008707086B000070 - 0C0A4A00005009063B0000440403440000510102610304700305790004810001 - 8600008700018200018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003D02003800004208033700004708 - 043D00004B04004D00005801006302006F03027903028200018700018F000190 - 0002890000860000870000860000860000860000860000840000840000840000 - 8400008400008400008400008400008200008100007F00007F00007F00007E00 - 007E00007E00007C00007E02027C02027C02027B01017B01017B01017A00007F - 00008800008C00008C00018A00008A00018800008800018600008A0206820000 - 8C070A7F00008A070A7D00008603067F00017D02067500027A060B6C00007609 - 0B6A00007605087700037D000282000286000287000186000184000180000182 - 00018901038100007E07086000005C0606440000460504410100440000510102 - 6103046E03057800047F00018500008600018200018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003C01 - 003B03003A00004003003E00004503004800004E00005A01006302006F020079 - 01018100008600008D00018E0002890000870000870000870000870000870000 - 8600008600008600008600008600008600008600008600008600008400008000 - 017F00017F00017F00017D01017D01017D01017E02027D01017D01017D01017C - 00007C00007B00007B00008000008C00029100029000029000028E00028E0002 - 8C00028C00028900018800028500008801038300008500028300008300018000 - 027F00057900017A00067200007601047600017C000182000286000289000189 - 00018700018400018000018200018900018902047700006B04025300004C0200 - 4100004303024400005101026103046E03057800047E00018300008600018200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003901003E04003C00004204004100004A01004E - 00005A0300620100710603770100830405830000890001860000870000850000 - 8500008400008400008500008500008600008600008600008600008600008700 - 008700008700008400008000017D01017D01017D01017D01017D01017F00017F - 00017F00017F00017F00017F00017F00017F00017F0001800001860103870002 - 8400018300008100008100008100007F00008000017F00017F00017D01017D01 - 017B01017D01017F00028200028200028000027E00037A00037A00037D000280 - 00028600028900018B00018B00018700008400007F0100800100890001850000 - 7C04056700005802024700004100003E00004701014E00015C00006800017601 - 047F020483010284000182000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900003E060136000045 - 08043900004907024300004D00005400006205026400007A0B09730000840808 - 7F00008301028301028001008100008100008100008100008200018301018100 - 008100008100008100008300008300008300008100007E00007E00007E00007E - 00007D00007D00007E00007E00007F00007F0000810000810000810000810000 - 8300008100008101028001027F00017E00007B00007B00007C00007C00007C02 - 027C02027C02027A02027A02027A02027A02027E020284000486000482000480 - 00047D00047E01038001038300038700018B00018D00018B0001870000820000 - 7F01008001008600008B0406740000710A084F00004D06033C00004101004502 - 014E00015900006600017401047D020481010282000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003E0301340000450A083700004A0B073A00004B0603470000520100510000 - 6909095E00007A0E0D6A00007D08097600007801027802017800017800007800 - 017800007901027901017B00027B01017B00027B01017D00027D01017D00027D - 00027E00017F00017F00017F0001810001810001830001830001860002860002 - 8700028700028700028700028900028600028101027E02027D01017C00007C00 - 007C00007C00007C00007E02027E02027E02027C02027C02027C02027C020280 - 01028200048400048000027F00027D00027D00027F00028200018700018B0001 - 8D00008B00008600008200007F01007F0100890204800000800B0C5D00005F0C - 0B3E00004606053D00004502014B00005700006501017201047D020481010282 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004001033A00004308063500004A0D0B3700004A0B07 - 3C00004702004700005607044C0000670D0C5300006D0C095F00006A03016B00 - 026B01006A00016A00006C00016C00006D00026D010071030571030371030573 - 03037302057303037302057702037A01057C01037C01057E01037E0005810204 - 8201068201048200048200028400048400028600048600028600048400028001 - 037E02027D00027C00007C00017D01017D00027E02027E00017E00007E00017E - 00007E00017E00007E00017F00017F00017F00037C00017A0001790000790000 - 7D00008000008700018B00018B00008900008600008001007D02007F01008300 - 008808096B000071100D4900004E0B083700004106044201004B000057000064 - 00007201047A0203810102810000800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000400103370000 - 480A0A3700004A0C0C3900004707063F0000480202410000550A084500005D0B - 0A4A00005A04045200005A00005A00005B00005B00005B00005B00005D00005D - 00006201036202026201036402026401036402026401036701026B00036D0002 - 6E00046F01037201057201047501067702057800057800047900057B00047D00 - 057D00047D00057D00047C01057B00027B00047A00017D00047D000280000580 - 01037F00037F00018100038100018300038300018300038100017F00027B0002 - 7901027801027700017800017C00007F00008600008900008B00008900008601 - 008002007D02007D02008503047700007A0C0C5300005A0D0B3A0000430A083B - 02004101004A00005400006200007100037A0203800001810000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E0000440507370000480A0A3700004709093800004202013F00 - 004706053C00004E09063E00004D06034200004800004B00004B00004C00004C - 00004C00004C00004F00004F0000510000510000520000520000520000520000 - 5400005600005800005A00005A00005B00005D00006000016000016200016601 - 036700036900036B00036D00036D00036E00036E00036E00036E00026E00026F - 00017000027300037300037601047901057A01057C01057C01057E00057E0005 - 7E00057E00057901027601027503037503037503037803047B03038102038400 - 008700008900008900008401008002007B03007B03007D000080060665000067 - 0C08430000490A063500003E07043F0200470000540000620000710003790102 - 7F00018100008000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100043C00004604093700004506 - 083600004004053B00003E02023900004407053700004407053700004303023E - 00004101004101004000003F0000400000410000440001440100450000450000 - 4700004700004900004900004900004700004200004200004300004600004700 - 004A00004B00004E000151010253000254000256000258000258000258000258 - 00005700005700005700005900005900005C00005E0001610002640103660103 - 6700036900036B00036B00036B00036D00026E00006F00006D00006E00007003 - 017304027903027F03038400008700008900008700008401008002007B03007B - 03007D01017200006E07055200004F05033700003C07043904013E0100470000 - 5400006100006F01037901027F00018000008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 034100043F00014300033E00004201033D00003E00003C00003B02003800003B - 04013800003E05033B02003E05033E03013D02003B02003A01003A01003D0101 - 3D01014002024202024301024500034501024501024501024301024202023900 - 003800003A00003B00003E01003F020042020143020143000045000045000047 - 00004900004900004A00004900004800004800004700004700004900004A0000 - 4D00005000005200015300005500015700005700015900005900015B00005B00 - 005D00005C00005E00005F00006302006901026E020174020278010278010278 - 01027602017203016F04016F04016D00006C01035E00005401004300003E0100 - 3801003C05023E01004700005200006100007000007B01018300008400008200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000013E00013F000043000343000049000345000046000143 - 00004000003B00003B04013501003B04003700003B03003C02004004003E0200 - 3F05003800003B03023600003A00013A00004100014200004700054300004701 - 023F00004101003E01003D01013C00003F03033B00004204043D000041030341 - 0101410101400000430102410000460203410000470102430000460203440100 - 4703044200004602034200004701024500004700004600004B00024700004B00 - 024800004B00014A00004900004600004900024500004B00024700004B00014C - 00004E00004F00005200014E00005200014C00004F0000500000510000500000 - 5200024800004900033F00003F00023E00004301024600005300005D00007302 - 007D00008C00018C000084000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F00023D00004203053D00004E - 04084300005003064500004600013F00004005033300003E0A043000003F0803 - 3800003F0300410100450700370000420A053300003F07063600003E02033F00 - 024701073F00004C05083C00004705063A00003F02003E00004305053A000046 - 08083900004507073C00004103033D00004303033900004606063A0000460405 - 3C00004000003F00004204043800004507073700004305053B00004101013F00 - 004404043B00004806073A00004705063D00004101013D000040040536000043 - 07083500004206073A00003F00023D0000420305380000450608370000440507 - 3C00004200024400004B01054100004C05083C00004704093C00003F00024000 - 004903034A00006405026800008506058900008E000086000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00004001033800004A070A3E000053080A4300004F0406430000420201360000 - 420B06300000430C073300004407033F00004404003C0000480C06350000450E - 0B3200004108093A00014000053A00004A070A3A00004A0A0A3700004207053A - 00004303033C00004A0A0A3900004B0B0B3900004707073F00004101013A0000 - 4808083900004A0A0A3900004505053D00003E0202360000440808350000460A - 0A3500004206063A00003E0202360000450909350000460A0A3500004206063A - 00003C020334000043090A330000440A0B3300004206073A00003E0203360000 - 45090A350000460A0B3500004206073C00004202023B00004A070A3A00004A09 - 0B3700004206073800004004043C0000530806500000740B087000008C070485 - 0000840001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004001033C00004506083A0000510A0D42000053080A - 4000004501023E0000430806320000450E09330000480B073A00004503004300 - 004C08013A00004D0F09350000460D0B3500003E04053A000145050A3700004A - 0B0D370000460A0A3500004003013F00004C06073E0000510B0C3E00004D090A - 3C00004301024000004907083A00004E0C0D3A00004C0A0B3B00004404043C00 - 00440808350000490D0D350000460D0C3500003F060538000041080733000045 - 0D0C320000430B0A3200003B0302380000430708350000480C0D350000440A0B - 3300003C0203380000410708330000460C0D330000430A0B3300003C03023A00 - 004507073700004A0B0D370000460A0B3200003B02033800004508063E00005F - 0D085700007C0E0A780000840300820001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C0000400103370000 - 4B080B3E0000530A0C4200004E0507410000420201350000440C073300004A0D - 093A00004C07044700004D0300440000520B073E00004E0D0C3700004607093A - 00003E0203350000460A0B350000480C0C3500004308063E00004A0202440000 - 54080943000055090A4200004E04044300004A0202410000500A0A3E0000500D - 0C3C00004B08073F0000430302370000490C0A3700004B0E0C3500004409073A - 00003C0301330000430C09320000450E0B3000003E09063700003E0202370000 - 480A0A3700004A0C0C3500004307073A00003C0302330000430B0A320000450D - 0C3000004008073700003C0302330000460A0A330000460C0D3200003E080835 - 00003B05043400004B0B074500006A0F0A6200007F0A057A0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004001033C00004405073A00004F080B4000005007093F00004301023C00 - 00420705350000480B073A00004E09064400005001005200005907024A000058 - 0B084200004E08083E00004201033C0000420607350000460A0A370000470A08 - 3A00004701015100005B04074C00005F080B4A00005A06084A00004F00004B00 - 005103044500005408094300005107074300004A00004500004B05053E00004E - 08083E00004A07063A00004100003E0000460605370000460B09350000450A08 - 3600004003013F00004905063E00004D090A3C00004A08093B00004202023C00 - 00440606350000440B0A330000430A093400003C030138000040070535000046 - 0A0A35000043090A3300003903023702004008033A0000560C06520000710D08 - 6E00007D05007F00018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003F00023A00004704073E00004E05 - 074100004703044000003F02003800004208033900004C070444000054020154 - 00006205025F01006508055500005D07074D00004F02054500004200023A0000 - 4406063700004707073D00004B03034D00006204056300006A07095C00006706 - 085900006002035A00005C00005500005D05054E00005C06064D000057040352 - 00005603025100005906054B00005705044800004E01004900004B0000460000 - 4F05034000004E07043F00004904014600004B00004800005404054500005105 - 064300004D03034600004600004100004906053A00004807063A00004404033F - 00004101003C00004707033A00004807063A00004204043B00003F04023B0000 - 4B0603470000650A066300007608047701007F00018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000013E00 - 013F00023F00004500034300004701024000004000003E01003D02003C000043 - 03004700005000005400005C00006D06047007046C02016A05036100005F0203 - 5200014F00034500014200023E00004301024300004C00014F00005700006E03 - 067504086F00047203076C00026F010569000168000267000368030564000167 - 04066000016403055F01026302046904066A0507660103670406600000610002 - 5B00005B00005900005800005300005500005100005300005000005100005500 - 005800005500005900015300005500015000005100005000004F00004A00004C - 00014800004B01014800004700004700004801004700004B01004700004B0101 - 4600004500004401004702004800005503005E00006E05027302007902007F00 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000013E00013D00004300034100004501024100004200013E - 00003D02003B0000420300430000510402560000630506690304730200790302 - 7902037500017201056C03066200065400014B00014400004501024500005103 - 045600006205066902057800047D00047B00047B000479000479000478000476 - 01047401047201047201047002046F02046F02046D0204700204760104780004 - 7800047601047601047401047201047002046F02046D02046D02046B03046903 - 046903046903046903046C05086D04076902056700036400015F00005C00005B - 00005C00005B0000590000570000570000550000550000530000550200550200 - 5601005500005600005300005000004F00004F00005100005400005B00006500 - 007001007902007E03017F000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023D00004203053B000048 - 05083C00004705063C00003F01013B00004005033A00004E07044B0000610707 - 6300007204067800008002018101027E00017B00047501066900055A00014D00 - 004D02044100005006064C00006406076400007603067F000484000284000482 - 00028200048000028000047F00027D00047B0002790004790102780004780102 - 7601047901028000048400028200048200028000048000027F00047D00027B00 - 0479010279000478010276010476010276010476010475020575020574000571 - 00037000036D00016C00026900006B0003690102670003670102660103660202 - 6401036202026104016003006203006301016400006300006100025E00015D00 - 025D00005F00006400006D00007600007F010080010080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004001033800004A070A3A00004B090A3A00004406063A00003C0301360000 - 4A0A064200005F090958000072070A7500037E00008501018700028300018200 - 047C00066E00055D00005300024400005008084300006109095C00007706097A - 0003840002870001870002870001870002860001860002840001820002800001 - 8000027F00017F00027F00017D00028000018700028B00018900028900018900 - 028700018700028600018400028200018200028000018000028000017F00027F - 00027D00027B00027C01057C01037C01057B03047B02067A0304770205750303 - 7502057303037302057303037103057004036F06036F06037005027002027201 - 047100036E00036D00036B00036900036A00016D00007600007C000084000086 - 0000820001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033C00004706083900004D0A0D3A00004A0A0A - 3700003E02023800004508063C0000570C0A5000006F0A0C6800007C03077F00 - 008701018800028600008600047E00057000055F00004E000050050740000057 - 0B0C50000070090C6E0000830205860001890001870001870001870001870001 - 8700018600018400018400018200018200018200018200018000018400018900 - 018D00018B00018B00018B00018B000189000189000187000186000186000186 - 0001860001860001840001840001820002800002810003800103820104810204 - 8203058003057C00017A00017A00017800017A00017800017800017701007706 - 037706037A04037B03037C01037C01057B000578000577010674000574010477 - 00037A00017F0000870001870000820001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0C0C3700004307073800003D04023700004D0A07450000670A - 0B5E00007A060B7900027F00008501018700028500008400047E00056E00055B - 00004F01023E00004D0A09420000630B0B5E00007E060A7E0000840001860000 - 8600008600008600008600008600008400008400008400008400008400008200 - 0082000082000084000086000087000087000087000087000087000086000086 - 0000860000840000840000840000840000840000840000840001830003830003 - 8300038100038300038000028000028000027F00017F00017F00017E00017F00 - 017E00017E00017C00007B04027B05007E03018101028300038300058200057F - 00057D01077B01077A01057B00047F0002840001870001880002820001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B3900004709093600003C03023800 - 004407053C000059090853000072070A7100008002077E000081030085000283 - 00008200047C01056D00035A0000470000460605390000520B084C00006E0809 - 7200008302058200018200008200008200008200008200008200008200008200 - 0082000082000082000082000080010082000082000082000082000082000082 - 0000820000820000800100800100800100800100820000820000820000820000 - 8200008200008402038300038300038200028100018100018000008000008300 - 038300038300038300038300038300038300038101027D02007D020082000084 - 00008700028700028600048200058200077E00067E00057D0004800002840002 - 8A00028800028200018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004507 - 073600003E05043800003B04013800004B06034800006504066600007C02087E - 00037C01007E03008101027F00007F0004790105690003560000470101380000 - 4208033B00005A07055F00007B04057E00017F00017D02007D02007D02007D02 - 007D02007F01007F01007F01007F01008001008001008001007F01008001007F - 01007B02007902007902007902007B02007B02007B02007B02007B02007B0200 - 7D02007D02007D02007D02007D02007F01008001028101028101028000018000 - 0180000181000081000083010283010285000285000285000285000285000283 - 01027E00007E01008300008600008900028900028700048400048300067F0005 - 7D00047E00038000028400028800028901038200018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004002023900003A01003A01003F020043000053 - 01005C00006E00047700037E01037A01007C03018001027F00007F0004790105 - 6700035400004300003B02003800004404005000006703037600028001037D01 - 017D02007D02007D02007D02007D02007D02007D02007F01007F01007F01007F - 01007F01007F01007F01007D0200790200780300790200790200790200790200 - 7902007902007B02007B02007B02007B02007D02007D02007D02007D02007F00 - 017F000181010281010281010281010283010284020382000182000182000182 - 00018400018200018400018200017F00007F0000840000860001870001870002 - 8600028400048200047F00037E00037E00017F00018200028700028801038200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000003F00004301023F00004300033E00003F00023C - 00013B00003E00004802024B00005D00006900007A02067A00017A01007E0301 - 8101028100008000047A01056900035600004400003C01003F04024000005600 - 006700007D02068100018000017F00017F00017F00017F00017F00017F00017F - 00018000018000018000018000018000018000018000017F00017F00017D0101 - 7F00017F00017F00017F00017F00017F00017F00017F00017F00017F00017F00 - 017F00017F00017F000180000180000180000180000180000180000180000180 - 0001800001800001800001800001820001800001820001800001800001800001 - 8200018200018200018200018200018200028000028000028000028000018000 - 0180000182000182000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013F00004404033B000048 - 06073A00004605073C00003F00043A0000460606410000540403540000710608 - 7300007C02027A00007E03018301028100008200047A01056B00055600004500 - 004407053800004906054F00006F06097A000183000382000280000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004202023A00004A08093A00004B080B3900004604093C00013D01023C0000 - 4F090A4700006507086300007C07087800007A00007E03018301028100008200 - 047A01056B00055600004800003A0000460B093C000060080861000083050A7F - 0000820002800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004707063A00004D0B0C3A00004A090B - 3900004000053900004808083E0000590908530000750A0C7000007D03037A00 - 007E03018301028100008200047A01056B00055600004400004609073500004E - 0B0A4E0000730A0D770000840104820002800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420202390000 - 4B090A3A00004D0A0D39000047050A3C00013D01023B0000510B0C4700006709 - 0A6100007E090A7800007A00007E03018301028100008200047A01056B000556 - 0000480000390000480D0B3C0000620A0A5F000085070C7F0000820002800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023E00004606053A00004B090A3A000049080A3A00004000053900 - 004707073E000057070653000074090B7100007C02027A00007E030183010281 - 00008200047A01056B00055600004400004508063500004C09084E000072090C - 7800008300038200028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004101013C00004705063A00004805 - 083A00004402073D00023C00013E00004C06074700006103046500007B060779 - 00007A00007E03018301028100008200047A01056B00055600004700003C0000 - 4308063C00005C04046300008204098000008200028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101003F00004301023F00004201033F00023E00033A00004303034400004F - 00005800006D02047500017B01017A00007E03018301028100008200047A0105 - 6B00055600004500004104023B00004401005300006B02057C00038200028200 - 0280000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017B01017D01017F00018200018500008700028700027F - 00007901017304026B02005A00004600003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000004000003F00004301023F00004300033E00004100043E - 00033B00004000004802034B00005D00006900007803047A00007A00007E0301 - 8301028100008200047A01056B00055600004600003E01003F04024000005800 - 006700017F010681000182000280000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018000017F00017D01017B01017D01017F000182 - 00018500008700028700027F00007901017304026B02005A00004C0103420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013F00004404033B000048 - 06073A00004605073C00003F00043A0000460606410000540403540000710608 - 7300007C02027A00007E03018301028100008200047A01056B00055600004500 - 004407053800004906054F00006F06097A000183000382000280000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018200018000017F00017D - 01017B01017D01017F00018200018500008700028700027F0000790101730402 - 6B02005A00004400003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004202023A00004A08093A00004B080B3900004604093C00013D01023C0000 - 4F090A4700006507086300007C07087800007A00007E03018301028100008200 - 047A01056B00055600004800003A0000460B093C000060080861000083050A7F - 0000820002800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018200018000017F00017D01017B01017D01017F0001820001850000870002 - 8700027F00007901017304026B02005A00004D02044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004707063A00004D0B0C3A00004A090B - 3900004000053900004808083E0000590908530000750A0C7000007D03037A00 - 007E03018301028100008200047A01056B00055600004400004609073500004E - 0B0A4E0000730A0D770000840104820002800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018200018000017F00017D01017B01017D0101 - 7F00018200018500008700028700027F00007901017304026B02005A00004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420202390000 - 4B090A3A00004D0A0D39000047050A3C00013D01023B0000510B0C4700006709 - 0A6100007E090A7800007A00007E03018301028100008200047A01056B000556 - 0000480000390000480D0B3C0000620A0A5F000085070C7F0000820002800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001800001 - 7F00017D01017B01017D01017F00018200018500008700028700027F00007901 - 017304026B02005A00004C01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023E00004606053A00004B090A3A000049080A3A00004000053900 - 004707073E000057070653000074090B7100007C02027A00007E030183010281 - 00008200047A01056B00055600004400004508063500004C09084E000072090C - 7800008300038200028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018000017F00017D01017B01017D01017F00018200018500 - 008700028700027F00007901017304026B02005A00004500003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004101013C00004705063A00004805 - 083A00004402073D00023C00013E00004C06074700006103046500007B060779 - 00007A00007E03018301028100008200047A01056B00055600004700003C0000 - 4308063C00005C04046300008204098000008200028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018000017F00017D01017B01 - 017D01017F00018200018500008700028700027F00007901017304026B02005A - 00004E03054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101003F00004301023F00004201033F00023E00033A00004303034400004F - 00005800006D02047500017B01017A00007E03018301028100008200047A0105 - 6B00055800004500004104023B00004401005100006B02057A00038200028000 - 0280000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 018000017F00017D01017D01017D01017F00018000018300008500028301027E - 00007B01017703026E01005D00004700003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000004000003F00004301023F00004300033E00004100043E - 00033B00004000004802034B00005D00006900007803047A00007800007C0100 - 8100008200018300057800036800025700004600003E01003F04024000005600 - 006700017D020681000180000280000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000017F00017F00017D01017F00017F - 00017F00017F00017F00017D01017D01017B01017901016D03024F0003420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013F00004404033B000048 - 06073A00004605073C00003F00043A0000460606410000540403540000710608 - 7300007C02027800007A01008100008400018300057A00036B00035A00004700 - 004606053A00004906054D00006D060976000183000380000280000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00017F00017F00017D01017D01017D01017D01017D01017D01017D01017F0001 - 7F00017002024900003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004202023A00004A08093A00004B080B3900004604093C00013D01023C0000 - 4F090A4700006507086300007C07087800007901017A01008100008400018300 - 057A00036B00035B00014A00003C0000480B093C00005C09085F00007F060A7D - 0000800002800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000017F00017F00017F00017F00017F00017F0001 - 7F00017F00017F00018000018000017202025201044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004707063A00004D0B0C3A00004A090B - 3900004000053900004808083E0000590908530000750A0C7000007D03037901 - 017A01008100008300008200047B00046C00045C00024600004808073700004E - 0B0A4A0000700B0D720000820104800002800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000017F00017F0001 - 7F00017F00018000017F00018000018000018000018000018000017202024B00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420202390000 - 4B090A3A00004D0A0D39000047050A3C00013D01023B0000510B0C4700006709 - 0A6100007E090A7800007A02027A01008000008300008400047D00046F00065E - 00044A00003B00004A0D0B3C00005D0B0A5C00007E090C7C0000800002800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000017F00017F0001 - 8000018000018000018000018000018000018200018000018200018200018200 - 018200018200017402025100034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023E00004606053A00004B090A3A000049080A3A00004000053900 - 004707073E000057070653000074090B7100007C02027A02027D020080000083 - 00008400047E00057000076001054700004707063700004C09084900006D0A0C - 6F00007E01037F00028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000017F00017F00018000018000018000018000018200018200018200 - 018200018200018200018200018200018200017402024A00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004101013C00004705063A00004805 - 083A00004402073D00023C00013E00004C06074700006103046500007B060779 - 00007A02027D02008000008500008600048000057301086102064A00003F0000 - 4508063C00005705045C00007706097900007F00028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000017F00017F00018000018000018200 - 0182000184000184000184000184000184000184000182000182000182000174 - 02025302054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101003F00004301023F00004201033F00023E00033A00004303034400004F - 00005800006D02047500017B01017B03037D0200800000840000860004810005 - 7301086403074A00004403023D00004201004C00006403057100037B00027F00 - 0280000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000017F00 - 017F000180000180000182000182000184000184000186000186000184000182 - 00018200018000018000017202024B00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000004000003F00004301023F00004300033E00004100043E - 00033B00004000004802034B00005D00006900007803047A00007901017D0200 - 8200018600018700048000047400076602074D00004200004104023E00005000 - 005900006F01037901027F000280000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000017F00017F000180000182000184000184000186000186 - 00018500008600018500028402038202038102037E0202700403510003420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013F00004404033B000048 - 06073A00004605073C00003F00043A0000460606410000540403540000710608 - 7300007C02027901017D02008200018600018700048200047600076602074D00 - 004704033900004807064500006003046900007A03047D000280000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000017F000180000182000182 - 00018400018400018600018600018700028500028200018000017D01017C0202 - 7A02026C05034700003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004202023A00004A08093A00004B080B3900004604093C00013D01023C0000 - 4F090A4700006507086300007C07087800007901017D02008200018600018700 - 048200047600076802075200013E0000470A083A000056090750000070050775 - 00017D0002800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001820001840001860001860001870001860001880103830102 - 8000017C00007800007602017203016905034E01044201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004707063A00004D0B0C3A00004A090B - 3900004000053900004808083E0000590908530000750A0C7000007D03037901 - 017D02008200018700018900048400047800076802074E00004C06063900004D - 0C0B4300006109096200007904057D0002800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001820001840001840001860001860001 - 8700018600018400018000017E02027A02027403016F02006B02005F02004600 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420202390000 - 4B090A3A00004D0A0D39000047050A3C00013D01023B0000510B0C4700006709 - 0A6100007E090A7800007901017D020084000187000189000484000478000769 - 02075400023F00004B0B0A3A0000550A084E00006F07087200007D0002800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001820001 - 8400018600018700018700018600018600017F00007E00007B03037905047205 - 036A03006300005700004A01034201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023E00004606053A00004B090A3A000049080A3A00004000053900 - 004707073E000057070653000074090B7100007C02027901017D020084000187 - 00018900048400047900076902074F00004B05053900004A0A094300005F0707 - 6100007705057D00028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018400018600018600018700018700018600018400017E00 - 007C00007A04037506046E05026502005D00005100004300003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004101013C00004705063A00004805 - 083A00004402073D00023C00013E00004C06074700006103046500007B060779 - 00007901017D02008400018700018900048400047900076B0107530001420000 - 4606053900005005035100006A04057301017D00028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018400018600018600018700 - 018700018600018400018101027C02027403016E03006602005F010058000050 - 00004A04054302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101003F00004301023F00004201033F00023E00033A00004303034600004F - 00005800006D02047700017B00027B01017F0001840001860001860002820004 - 7D00056F01075100004701023F00004202014400005401006700007702037D01 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001820001820001820001820001800001800001 - 7F00017F00017F00017F00017F00017F00017F00017F00017F00018000018200 - 018200018400018400018600018600018400018000018006067803046D010063 - 00005A00005200004E02004C03004000003F00004100014401044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000003E00003F00004301023F00004300033E00004100043E - 00033D00004000004A01034D00005F00006900007A03047C00017F0002800002 - 8400018200007B02007B01018200027800055400014200004301063B00004202 - 014D00006E03007D02007F000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001820001860002870002 - 8600018400018200017F00017D01017B01017B02007902007902007B02007B02 - 007D02007D02007F01007D00007F00008200008301018301028101028001037B - 00027604046B00026303035200004B01003F00003E04003D0200440203450102 - 4300004000003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013D00004205033B000048 - 06073A00004605073C00003F00043C0000470506430000560403560000730608 - 7500007E01037F00048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018200018600028600028400018200018000017F00017D01017B01017B02 - 007B02007B02007B02007D02007F01007F020080020082000082000081020180 - 01027E02027802017301016D01006602026307064D00005107053A0000420705 - 3600003C05023B00003E00004000004402034201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004002023800004A08093A00004B080B3900004604093C00013F00023D0000 - 51080A4900006706086500007E07087A00007F00048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000017F00017F00017F00 - 017F00017F00017F00017F000180000180010082000082000084000084000086 - 00008B00038901038402037E01037402026902005F0201570200520503440000 - 4F09093C00004A09083A00004806074100004204043E02023C00003900003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023C00004508063A00004D0B0C3A00004A090B - 3700004000053B00004808084000005B0908550000750A0C7000007F02047F00 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000017F00017B01 - 017B01017B01017D01017F000180000182000184000184000186000186000086 - 00008600008600008600008700018C01048901058102047702036A02035D0100 - 5001004601003F0000430904350000490C0A3A00004D0A094100004703043900 - 003500003701003A04034201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000400202370000 - 4B090A3A00004D0A0D39000045050A3A00013D01023B0000530A0C4700006709 - 0A6100007E090A7800007F00048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000017D01017802017602017802017B01017F000182000186000187 - 00018900018B00018B00018900018900018700018700018600018400067E0005 - 7702056C01035F01025301004601003D00003B0401300000420A09330000490B - 0B3A00004C05084200003C04033704013502003200003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023C00004606053A00004B090A3A000049080A3800003E01053900 - 004507073E0000570706520000720A0B6F00007C01037F00048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000017D01017802017602017802017B - 01018000018400018700018B00018D00018D00018B0001890001870001860001 - 8400027D00027200036B00036500045E01025400024C00014300003D00003700 - 003E0704320000440B0A3500004709093B00004002023600003500003702003A - 05024100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004101013C00004705063A00004805 - 083A00004202073B00023A00013C00004C06074500005E040461000079070777 - 00007F00048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018000018000018000017F - 00017901017802017B01017F00018400018700018B00018D00018D00028B0002 - 8900028600028000027D00027B00047002045800004F00005000024E00014E00 - 024B00014900004600004701023E00004706083600004208093400003B050537 - 00004106044304004102003D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101003F00004301023F00004201033D00023C00033800003F03034200004D - 00005500006804047101017901027F00048000028400017F0100760400780300 - 8400017B00045300014300053F00034000053900004D03006E00008103008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017D01017D0101800001840001870001890001 - 8B00018B00018900028600028200027D00027800047201046F02046204054700 - 003E00004000004300004800014A00014A00004A00004A00014A010343000144 - 03053B00003C03043300003901004200004800004C00004F02004000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000004000003F00004301023F00004300033E00003F00043C - 00033C02033C00004503044800005800006000007002027902037D0004800002 - 8400017F01007604007803008400017B00045400024000024300073B00003E03 - 0149000071030080020080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001820001840000860000 - 8700018900018800008800008700008400008200047C00037B03076F01036B04 - 075E00005800004B00004000003900003E02033C000043000343000048000149 - 00004900024700004701024000004202023B00003C00004000005000005B0000 - 6101016303033F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004101013F00004404033B000048 - 06073A00004605073A00003B00043900013F06053C00005107054D0000660404 - 6A00007904057D00048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018200018900008A00008900008900008700008600008400028100037900 - 047605086600006706085100005705044700004901013F000040040538000045 - 06083700004406063C00004101014200014804053E00004B03034200004F0505 - 4800005602046200006A00006E00027002024201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004301023B00004C08093C00004B080B3900004205093800013C0304360000 - 4A0A0A4000005C09085600007107067601027D00048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018400018B00008C00008B00008700008400 - 008000017D02047904057306086000006508094A00005206073E000048070642 - 00014900034100004E0809390000440B0A3000003B08063101003A0704350000 - 4A07064300005B04075300006C060B6E00047500007900007D00027E02023E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023F00004807063C00004F0B0C3A00004A090B - 3500003C0105380000420908390000540D0A4A0000670A096300007806067D00 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018400018B00 - 008D00008900008400007F00017802016F01016803015F02015F090947000051 - 09093C00004608083600004505054800005504074200004D0B0C3300003D0D09 - 2900003205013101004109043E00005D0A0857000077090B7300008404098000 - 018301028402038402034201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E00004301023A0000 - 4D090A3C00004D0A0D39000043060A3800013D04053400004A0C0C3E00005C0A - 095300007009077301017D00048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018200018600008702008402027E05037504026B02005E000055 - 0000530302440000500A0A3A0000490B0B3500004206073F00004E0002490000 - 53080A3C0000480D0B3000003A0A063101003A0300390000580B085200007A0D - 0F6F00008A070A8500008601038602028602028602023E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004202023F00004706053C00004D090A3A000049080A3600003B02053800 - 00400807370000500B084900006408076400007606067D00048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018001008200008003007B040274 - 06026A03005D0100500000460000430000460703370000480C0C35000047080A - 3800004200024700005003064000004D0A09390000450B063600004004004300 - 00540802520000720E0C6B0000870B0B80000088000286020283010183010183 - 01014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004200013D00004905063C00004805 - 083A00004003073800023C03043700004507073F00005705045600006D060472 - 02027D00048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018000018000018000017F - 01007C03017803006E02006602005C01005101004700004000003D0300360000 - 4007053400004607093B00004603084000004200013D00004706053C00004C07 - 044300005003014F00005E04035F00007009076A0000800A097800008305047E - 00007F01007F01007F01007F01004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000004000 - 004101004100004501023F00004001033B00023C00033D01023F03033C000044 - 04004800005902006A00007A03047D00048000028400017F0100760400780300 - 8400017B00045300014300053F00034000053900004D03006E00008103008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000017F00017F00017F00017F00017F00017F00017F00017F00018000018200 - 018200018200018000018000017F00017F00017F00017F00017F000180000180 - 00018200018200018400017F00017405036A03006100005700004E0000480000 - 4303003F05003A03003904013700003C03023C00004302044200044702054100 - 004202004300004B01004E00005700005900006000006F05047505057400007A - 02027700007E03017B00007E03017D02007C01007E00007C01004000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003C00003D00004501024100004001033A00003F000441 - 00034800024400003D04033600004003004D0000710101800002800004800002 - 8400017F01007604007803008400017B00045400024000024300073B00003E03 - 0149000071030080020080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001820001820001 - 8200018200018000018000017F00017D01017D01017D01017D01017D01017D01 - 017D01017D01017F00018602028701018400008100007E00007C01007A000079 - 01017C02027B00008001037C00008500038500008C0105810106600000520000 - 5200004A00004902004100003F02003C01003B03023901003C02033700003E02 - 033B00004100044200004700004E00005300005900006302006A030171030378 - 04037901017D01017F00017F00017F00017F00017F00017F00017F00017F0001 - 8000017F00013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008800048200048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018200018400018200018200018000018000017F00017D01017D01 - 017D01017D01017D01017D01017D01017D01017F000183010185010184000082 - 00008001008001007F00017D01017B000081050578000085080A770000840507 - 7A00007100045400004D03034100004C06063A00004606053A00003D01013800 - 003D03043700004607093800004605073B00004700005000005700005E000064 - 01006B02007203017A02027F0303800001820001820001820001800001800001 - 7F00017F00018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058500018200048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018200018200018200018000 - 018000018000017F00017F00017F00017F00017F00017F00017F00017F00017F - 00017E03018002018102018501018700028800028A00028B00038700037A0000 - 850A0C6B0000770C0E5D00006404045100004C00013F00004C08093A00004A0A - 0A3700004406063C00003C00003700004909093A00004F0B0C3E00004C030548 - 00005801006002006502006902006F02007602017C0202800102800001820001 - 8200018200018000018000017F00017F00018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008901058200 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018200 - 0182000182000182000180000180000180000182000182000182000182000182 - 00018200018200018200018000017D02007D02008102018802028B00038D0003 - 8F00038D000385000187080A6A0000740F0D5000005A0B084000004202003F00 - 004707073900004C0C0C370000480A0A3700004202023D00004706053E000055 - 0B0B430000570A084900005702006104016804006C0300700301740301790101 - 7E02028101028200018200018200018200018000017F00017D01017D01018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008200048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000182000182000182000184 - 0001840001840001860001860001860001860001860001840001820001800001 - 8500028801038B00048B00048800038400028204096E0000700A0B4E0000550B - 093700003E0A043300003B0203350000460A0B350000480C0C3700004707063F - 00004903034300005508064900005E08084E00006309085F02006A0602700502 - 7304027703027A02027E02028000018200018200018400018200018200018000 - 017F00017D01017D01018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008901058200048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001820001840001840001860001860001870001870001870001870001870001 - 8700018700018500008600018700028601038300038000027900007300006E01 - 036A08084C00005107053900003E0A042D00003708043300003F060932000044 - 0A0B3500004909093B00004701014B00005506034C00006108045300006B0A07 - 6200006F08057104027504027903027A02027E02028101028200018400018400 - 018400018200018000018000017F00017D01017D01017F000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020385 - 00018200048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00017F00017F0001800001800001820001840001860001870001870001890001 - 8900018900018700018700018700018900018A00018B00028700038001037800 - 046E00026300005900005503024700004906033900004005033300003E07043A - 02013802023300003F06093300004507073B00004B0303490000520000520000 - 6205025E00007009066900007709057403007802017B01017D01017F00018000 - 018200018500028700028600018400018200018000018000017F00017D01017D - 01017F00018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008700038200048000028400017F0100760400780300 - 8400017B00045300014300053F00034000053900004D03006E00008103008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000017F00017F0001800001800001840001840001 - 8600018700018700018700018700018700018600018600018600018600018600 - 018600028001037702056A02035F02015100004800004000003C02003700003C - 03013900004003014000004002023A00013A01043800014001033F0000490101 - 4B00005100005400005E00006600007207037504017B09037903007B03007E00 - 007F00007F000082000184000186000187000287000286000184000182000180 - 00018000017F00017D01017D01017F00018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D0403320000390500490000750001860002820004800002 - 8400017F01007604007803008400017B00045400024000024300073B00003E03 - 0149000071030080020080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000017F00017F0001 - 8000018000018400018400018600018600018801038700028600018300008100 - 007F00007F00007F00017E03057601047204066300005C02024D00004801003E - 00003C01003700003D04033B00004404044300004802034600014102043E0203 - 4100024300004600004A00004E00005600006604046B04027203017603007902 - 007D02007F020080020082000084000184000186000186000186000186000186 - 00018400018400018200018000018000017F00017D01017D01017F0001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008800048200048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000017F00017F00018000018200018400018400018600018600018400 - 018400018200017F00017D01017A02027903027303036400006205045500005C - 06064900004F05034100004201003C00004205033900004808083B00004C0607 - 4400004900024300004300004700004B00004F00005500005C00006200006D03 - 027203017803007B02007F020080020082020084010086000086000186000186 - 00018700018600018600018400018400018200018200018000017F00017F0001 - 7D01017F00018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058500018200048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018200018200018400 - 018400018400018400018000007D00007D01017A020275040272050370050265 - 06034B01003C00004B08073E00005109094200005003064900004C0002450000 - 52060A4000004F080B3C00004603064000004800004C00005000005500005D00 - 016402026903047004037402027802017D02007F010082010084010084010086 - 0100860000870001870001870001860001860001860001840001840001820001 - 8200018000017F00017F00017F00017F00018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008901058200 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018200018200018200018400018400018200018000017E000078000076020171 - 04026E05026805016305005605003A00003A0802320000490C0A3C0000510909 - 4600005300034F000057030747000055080C4000004C070A3900004700035000 - 005700005C00006000006802037004037505057A06057901017D010180010082 - 0000840100840100860100860000870001870001870001860001860001840001 - 8400018200018200018200018000018000017F00017F00017F00017F00018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008200048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018200018400018400018400018400018200018000017F - 00017B03037605037005026905016004005C04005403004903003C05002C0000 - 400D0B3300004C0C0C3E00005104084A000052000548000056060D4300005208 - 0E3E000048050A4800005C00006500006A00006D01007202027903027D030380 - 0404800001820000840000840000860000860000860000860000860001860001 - 8600018400018400018400018400018200018200018000018000018000018000 - 018000018000018000018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008901058200048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000182000184000184000184000184 - 00018400018200018000017B01017A06057205036905015F03005602004F0100 - 4901004302003B03003F0A07330000460D0C3700004909093B00004400024500 - 014E040842000052050C42000053060D46000057020668030171030075010078 - 03007B0101800102810102850002860000860000860000860000860000860000 - 8600008600008600018400018400018400018400018200018200018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020385 - 00018200048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000182 - 00018400018600018600018600018400018200017F00017901017706046D0401 - 6002005600004D00004601004103004203004802024300004A06073A00004307 - 073400003905053400003A03063700004604093E000052030C4D00015D040E62 - 00067202027903007D02007F0200800100840000860000870000890000890000 - 8900018700018600018600018400018400018400018400018400018200018200 - 018000018000017F00017F00017F00017F00017F000180000180000180000180 - 00018000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008700038200048000028400017F0100760400780300 - 8400017B00045300014300053F00034000053900004D03006E00008103008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018001 - 0080010080010080010082000182000182000182000182000182000182000180 - 00018000018000018000018000018400018400018200018000017D0101790101 - 7403016F03026905035F04005501004C00004600004100004103004305004400 - 004800014100004202023800003B03023600003802013B010242010345000050 - 00025600006300086700077202097800007E0100800100820100840000860000 - 8701018800018700008700008700018600018600018400018200018200018200 - 018200018200018200018000018000017F00017F00017F00017F00017F00017F - 00018000018000018000018000018000018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D0403320000390500490000750001860002820004800002 - 8400017F01007604007803008400017B00045400024000024300073B00003E03 - 0149000071030080020080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018001007F020080020080020082010084000084000086000086 - 00008701018701018500028200018000017F00007E00017E0001830102810102 - 8205077702037307066400005A01004F00004A00004600004702004100004302 - 013F00004201004000003C02033900013C03043900003F03033F00004701014A - 00004F00005800006301016C01037503037902037D00027E00007F0001800100 - 8000018001008200018200018200018200018200018200018200018200018200 - 0182000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008800048200048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018001007F02007F030080020082 - 0100840100860100860000870000880001870101850002840001820001800001 - 7F00027F00027E0000800606720000770B0A5C00005D09044A00004602003F00 - 004006013600004308063700004606063D00004100023701013B060933000042 - 08093A00004D05054A00005600005E0000660000700000790101800201830101 - 8601008500008200018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058500018200048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018000018000018000017F - 01007D02007B03007D02007F0200800100820000840000860000860001860001 - 8400018500028300038100038100037E01037B03046E000076090B5B0000670B - 0A4A00005006043F0000400301340000430A0935000048090B3900004704073F - 00003F030437000048090B3A000052090B4500005805045900006501016B0100 - 7402027A02028103028301018401008300008200018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008901058200 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017B02007903007B03007D02007F0100800100 - 8200008200008400018400018200018200018100038001038001037A02036E00 - 006F0708590000670B0A4A0000550A083F00004404033A000041080633000048 - 0C0C3700004A090B3C00004500033F00004B0407420000570A0D470000610A0D - 5700006604046B03047103037804037B03038103028102018401008400008200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008200048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017B0200790200 - 7B02007D02007D02007F01007F00018000017F00017F00017F00027F00027D00 - 047B00047B000474010468020356000060080849000055090A3E00004808073B - 00003C0302320000440A0B3500004A0B0D3900004A05084500004D00004A0000 - 5D060A4E00006A0C10590000700B0D6B03047204067604047A04037D03037F04 - 0281020182000082000080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008901058200048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000017F00017D02007D02007D02007D02007D02007D01017D01017D01017A00 - 017A00017800017700017200027000026F000168000258000056060745000050 - 08083C00004808073700003E050438000040070635000048090B3900004C070A - 3F00004E00035400006400055800006F090E5E0000750C0F6D000278070A7604 - 047902037A02027C02027E030180020181020181020180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020385 - 00018200048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018200018200018200018000017F00 - 017D00027B00027901027601047100036E00026A000165000163000060000059 - 00004C00014200004905063900004507073700003F06053A01003B0102380000 - 4405073A00004A05084100004D01055000006701066A00007405096B00007908 - 0C7000007C070A7901057901027901027B01017D01017F00017F000180020181 - 0201800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008700038200048000028400017F0100760400780300 - 8400017B00045300014300053F00034000053900004D03006E00008103008000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018200018600 - 018700018600018400018000027D00027901027402026F02046802036402025F - 01025800005400005100004A00004100004002023B00003F03033B00003E0504 - 3A01003E02023E00014100024100004700034700004C00024B00005700007203 - 077D03097900057D04087800037D02067A00037B00027D00027C00017C00007C - 00007E00007F0001800201810302800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D0403320000390500490000750001860002820004800002 - 8400017F01007604007803008400017B00045400024000024300073B00003E03 - 0149000071030080020080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018400018B00028C00018A00018500018200047C010575020571 - 04066500025B00005802024D00004C02024200004300003D00003B0201380000 - 3D04033900004004043B00004103034101014703044701024800004A00004E00 - 0052000058010563020678000580000480000480000480000480000280000280 - 00027F00027F00017F00017F00017F00017F00017F00017F0001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008800048200048000028400017F01007604007803008400017B00045200 - 004502073B000045050A3500005107036C000082040080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018400018900008C00018A000386 - 00068000057800046E00026500025900005704034600004D07073A0000420705 - 3500003904013600003D05043400004108073800004707074000004901014900 - 004E00005200005500015A00025E01026001056A01047D000484000284000484 - 00028400028200028200028200028200018000018000017F00017F00017F0001 - 7F00017F00018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058500018200048000028400017F01007604 - 007803008400017B00045500033C000049060D370000460B094300007507037F - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000182 - 00018500008700048600068100077A00066E00036300005A0000530001440000 - 4C0809370000440C0B2E00003B0A083302003A0403340000450A083700004B0A - 094000005004054E00004F00005600005D00006502046A03066C04056B020571 - 0003800002860001860002860001860001840001840001820001820001800001 - 8000018000018000018000017F00017F00018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008901058200 - 048000028400017F01007604007803008400017B000451000048050A3900004A - 0A0F350000560C08690000830501800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000028000047E00057900057400056C0002630000 - 5A00005100004A00004C0606390000470E0D300000410E0C2E00003906043700 - 004308063900004F0C0B4200005909084D00005C00005C00006300006B000270 - 0403740404740404740202780001820001860001860001840001860001840001 - 8400018400018200018200018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008200048000028400017F01007604007803008400017B - 00045600043B00004B080F370000470C0A4300007608047E0000800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017D00027603066F0105 - 6800026300005A00005500004F00004A00004B02043C00004C0B0D350000470D - 0E3300004007083800004104023B0000500B084200005C0C0B4E000063060560 - 00006E01037101017601027802017901017B01017D01017F0001820000840000 - 8400008200008400008200008200018200018200018200018200018200018200 - 0182000182000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008901058200048000028400017F - 01007604007803008400017B000451000047040939000048080D350000540A06 - 6A00008305018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000017901026903045F02035700005000004E00004800004900004701014100 - 004808083900004B0A0C39000049080A3A00004301024100004B06034200005A - 0B084E0000670A096100006F03027904057B03037D01017E00007E0000810000 - 8200008301018200008001008001008001008200008200008200018200018200 - 0182000182000182000182000182000182000182000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020385 - 00018200048000028400017F01007604007803008400017B00045500033E0000 - 46030A3700004207054600007305017F01008000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000017601025A00004C00014900004600004300 - 004200004200014202024201033C00004704073D00004D050B4300004F020949 - 00014700004500005506034F00006609086100007408077602017C02027F0100 - 8100008500008500008701008801008603008002007F02007F01007F01008001 - 0080010080010080010080000180000182000182000182000182000182000282 - 0002800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D0300720000870003840004820002840001800100760300780300 - 8600027B00045300004300033F00024001033900004D03006E00008102018000 - 0180010080000182000182000182000182000182000182000182000182000182 - 0001820001820001800001800001820001820000820000820000820000820001 - 8000018000017F00017D01017B01017901017802017602017601026B03044F00 - 004600004200004100004101013D01013D01013A01003900003C00013D000046 - 01044600004F0206500003550105510000580000590000640300670000730505 - 7703027F05057C00008000008300008601008801008902008902008603008002 - 007F01007F01007F01007F01007F010080010080010080000180000182000182 - 0001820001820001820002820002800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D0403320000390500490000750001870002860002860002 - 8700028200017802017901028600027D00045400004000004303023B00003E04 - 0049000071000480000282000182010082000084000086000086000087000087 - 0000870001870001860001860001840002840002820002820001880202890200 - 8902008801008601008300008000007C00007F05057703027305056700006403 - 005900005800005100005000004800004A000442000042030539000138040434 - 02023302003603013B02014101014500004900004D00005500006D0204760201 - 7601027802017901017B01017D01017F00018000018000018200018200008200 - 0082000082000082000080010080000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008900048700028700028700028400027901027901028700047D00045200 - 004505003B00004508043700005306046C000182010680000180020082010084 - 0100860000860000870000870000870001870001870001860001860002840002 - 8200028200018803008802008700008500008500008100007F01007C02027602 - 017408076100006609064F00005506034500004900004800004D000740000049 - 060B3600003E08083200003504023704023802013B0000410000480000500000 - 5500016300007801028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058600018600028600028700028200027901 - 027901028700047D00045700003E00004A0A06370000480B0745000075030A7F - 00037F00017F0200800200800200820000840000860000860000860001860001 - 8600028400028200028000028000028000018301018201008100007E00007E00 - 007D01017B03037904056F0302610000670A094E00005A0A094200004B060341 - 00004301023B000047080A350000440A0B3200003E0605370000400202410000 - 4500004C00005400005C00006401036F02047B00028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008901058400 - 028400028600028200027801027901028600047D00045300004A08033A00004C - 0D093900005A0A096B00008301087D01017D02007D02007F0200800100820000 - 8200008400008400018400018400028200028000027F00027F00027D00027D01 - 017B01017B01017901017802017601027101016E01036000006306054E00005C - 0C0B420000500B083B0000410402390000400708320000440B0C330000450909 - 3900004501024900004D00005300005A00006300006A00027001057803067D00 - 0280000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008200028000028400028000027801027901028600047D - 00045801003D00004C0C083900004B0C0847000078040B7E00037D01017B0200 - 7B02007D02007F01008001008200018200018200018200018200028000028000 - 027F00027F00047B00047700017402027604047404047004036B00026300005C - 00005C00004D00005909084200004F0C0B3900004308063700003906042D0000 - 3F0C0A320000490B0B3A00005005074D00005300005C00006400006C00027400 - 057900057C01057D000480000280000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008901058000027F00028200027F - 00027601027901028600047D00045300004B07023C00004B0B07390000580807 - 6C00008301087D01017B02007B02007D02007F01008001008200018200018200 - 018200018200028000027F00027F00027D00047900046F01036B03046C030669 - 04066502045D00005600004F00004E00005004054000004B0A09370000450A08 - 3400003A04033302003A09073000004509093C00005408094E00005F01056100 - 006A00007400037A00067F010782010682000480000080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020383 - 00017F00027D00028000027D00027601027801028700047F0004590000420000 - 4906033A00004607034A00007501087F00047D01017D02007F01008001008000 - 018200018200018400018400028200028200048000047F00047F00047D000476 - 01046801046002035E00045A00025700015200004E0000490000490002400000 - 4707073800004108073400003D05043600003A05023600004407053C00005406 - 075200006605096B00037100027700027F000481000584000685000383000180 - 0000800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008500037F00027D00027F00027D0002740202780102 - 8700047F00045700004703004200004203003B00004F02006E00038100067F00 - 017F010080010082000082000184000184000184000184000284000282000480 - 00047F00047D00047D00047400056302065801045200014C00004A0000480000 - 4701024703044101014103033B00003E05043900003D04033800003B02013F02 - 004302014500005000015600006702046D00037803067F010681000583000584 - 0002830001830001810001800002800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D04033200003905004900007500018400027D00027B0002 - 7F00027D00027601027901028700047F00045A00004501004404003F00004006 - 014C01006E00067E00047F000181000083000083000083000085000085000185 - 00018400048300038400067F00038103097B00057D03097203075700004B0000 - 4C00034700004900034100004100023E00013E02023A01003E05043900003F03 - 033B00004002024100004A00005000005600005D00006800027000027800037F - 00048200048400028400028200028200027F00017D01017D01017F0001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008601047D00027B00027F00027D00027601027901028700047F00045700 - 004A06013C0000450804350000510A076700017E000683000385000285000285 - 000285000285000285000383000383000586050A79000082070B7100007A0409 - 6E00006A00065000004D01054100004A05083A00004405073800003B01023A01 - 003F06053700004507073A00004905064200004C00015A00006100006500016C - 00017200027900047F00048300038400028400028400028200017F00017B0101 - 7901017901017F00018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058300017F00027D00028000027F00027801 - 027B00028900048000045A0000400000490A06350000450E094000006C060B77 - 000381000383010283000383000383000381000381000580000581060A770002 - 800A0F67000076080C5F00006900035900005000023F00004C070A3900004809 - 0B3500004007063800003E05043700004808073C000052080845000056060758 - 00006A01047100037300037800047B0004800103830003850003840002840001 - 8200018001007D02007902007803007803007D01018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008702057F00 - 027D00028200027F00027901027B00028900048000045500004A080337000046 - 0E092E00004F0F0B5B00007701067B00027F00017F00027F00027D00027B0002 - 790004780004740104780A0C620000710C0E5500006406075200005000004700 - 004A05083A00004A0B0D350000440B0A3200003C03023B00004808073E000055 - 0A084900006008085600006703037502057C01057C01057E0103800103800002 - 8200028200018200018200018001007F01007D02007902007803007902007F00 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068400008000027F00028400028000027B00027D00028B000480 - 00045B01003D0000480B0732000040100A37000064060A6B0000760104790102 - 7901027801027601027402027002046D02046902055C0000670A0B4C00005D0A - 0C4500005004054300004701023A00004A090B370000480C0C3300004108073A - 00004404033F0000550A084A0000670A0B5900006F07086E00007B00027F0002 - 7F00027F00027F00017F00007F00007F00008000018001007F01007F01007F02 - 007D02007D02007D02007F000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E000089010582000280000284000282 - 00027B00027F00028D00048200045A00004B0904350000410D072B0000450B06 - 5300006A00027103057303037303037303037103036E04036A04056505055900 - 005A0404470000540A083C00004A0A093900004104023F000047040739000048 - 0A0A350000430A083400004003003F00005007034A0000670B0A5B0000760A09 - 6E00007B03047E00017F00017F00017E00017E00007E00007D00007D00007F01 - 007F01007F01007F010080020080020082010082010080010080000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020385 - 00018200028200028600028400027D00027F00028D00048200045F0302430100 - 4309042E0000340A033300005700036000006B00026B01006B01006902006701 - 026402025F03025B0402510000460000490603380000410A0731000039090535 - 02004101013D00004606063700004307073600004005033F00004601004A0000 - 5D08065C0000770B0A7200008005077E00007E00017E00017E00007C00007A00 - 007A00007B02007B02007B02007D02007F020080020084010086010087010086 - 0100820000800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008700038200028200018400028400027F0002800002 - 8900047F00046003024D06024001003B04002E00003902004900005900005A00 - 005A00005A00005900005500005100004E00004A00004700004502013D00003D - 04023601003805023303003704013E01004101003E00004202013F0000450200 - 4400004A00004E00005801006001007107067503037E06078001028101027F00 - 007E00007C01007F01008600018301027A02027703027901017B010180000182 - 0000860001870000870000860000820001800001820001820001820001820001 - 8400018400018400018400018200018200018200018200018000018000018200 - 0182000182000182000182000182000182000182000182000182000182000182 - 0001820001820001820001820001820001800001820001800001820001800001 - 8200018000018200018000018200018000018200018000018200017F00027901 - 027900048000048400028600028600028200018000017F00017F00017F000180 - 00018000018000017F00017F00018000018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D04033200003905004900007500018400028000017F0100 - 8200018200018200018000028000047800046603055100004800003E00004005 - 033900004100004700004A00014900004B00034500004700034100004100023E - 00013F01013B00003E02023A00004002023C00003F01013D00004006003E0500 - 3F01004000004700005100005A03006405026904026F04017203017602017901 - 017B01017D01017F0100810300780000860A047C00009F00049E040970000071 - 060878050874000085030A8100018500068B050B7F0001820004820002820002 - 8400028600028600028700028900028900028900028900028700028600028600 - 0284000282000282000284000284000284000284000286000286000287000287 - 0002870002870002860002860002840002840002840002840002840002820002 - 8400028200028400028200028400028200028904077700008F0A0D7B00008300 - 017E00008400027A000374080E62000074000090030E8D000296020A84000088 - 070A7901017901017D01018000018200018000017D00027B00027F0001800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008601037F00017D02008001008200008400018000017D00047401046601 - 035B03034500004C06063A00004305053700004001034200024701083B000047 - 040B3700004205093600003A01043900003E0405360000450707390000460405 - 3E00004300004204004104004502004900005201005E02006804007104027602 - 017901017D01017D01017F00017F00017F00017F01007F03008007007B060080 - 0000A00105830000720E0E4D0000530000640307690308740D12620001620003 - 66050966070B6103046104036303036503036703036802036A02036A02036C01 - 036A020368020367030365030363030361040361040363030365030365030365 - 0303670303670303670303670303680203670303670303650303650303650303 - 6503036503036703036703036703036703036703036703036703036703036400 - 006300006D09095D00006A06066000006B07077113145300045F020B921C2777 - 00008A00019000048400017900007802017802017D0101800001840001820001 - 7D00027B00027F00018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058300007F00017D02008001008200008400 - 018000017D00047401046904065100005305063E00004B0B0B3700004004043F - 00004700054100004E060C3C00004B080D3900004206073800003F0304370000 - 4509093700004909093A00004504033F00004802004B02005101005802006103 - 006804007104027905047B01017F00018000018200018200018200018000017F - 01007C04008211076300006600008A04048C1615FFEDE7FFFDF5FFFCF7FFFBF8 - FFEBE8FFFBF8FFF4F0FFFDF8FFFDF8FFFDF7FFFFF8FFFFF8FFFFF8FFFEF8FFFE - F8FFFEF8FFFDF8FFFDF8FFFDF8FFFDF8FFFEF8FFFEF8FFFEF8FFFFF8FFFFF8FF - FFF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8 - FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFEF8FFFDF8FFFCF8FFFCF8FFFCF8FFFC - F8FFFCF8FFFCF8FFFCF8FFFCF8FFFCF8FFF8F4FFF8F4FFFCF8FFFCF8FFF6F2FF - E8E5FFF9F9FFECF2FFDDE5850E178B040E8600038504097D0204760201780201 - 7F00018400018700018400017F00027D00027F00018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008702047F00 - 017D02008001008200008400018000017D00047401046500025D050545000052 - 0C0C3900004709093500004303034300014E040A40000051090F3C00004B080B - 3900004001033C00004507073700004C0C0C3A00004A09083C00004A00005301 - 005A02005F03006603006D04017504027A02027F030380000184000184000186 - 00018600018400018400018001007100007D0902740D04740A037F0303610000 - FFF5EEFFFFF7FFFFF6FFFDF6FBF5EEFFFFF9FFFFF9FBFFF8F8FFF9E7F5EAF3FF - FAF2FFFAF3FFFBF5FFFAF7FFFBF7FFFAF9FFFBFAFFFAFAFFFBF9FFFAF7FFFBF7 - FFFAF5FFFBF3FFFAF3FFFBF3FFFAF5FFFBF5FFFAF5FFFBF5FFFAF7FFFBF7FFFA - F7FFFBF7FFFAF7FFFBF7FFFAF7FFFBF7FFFAF5FFFBF5FFFAF5FFFBF7FFFAFCFF - FBFEFFFAFEFFFBFEFFFAFEFFFBFEFFFAFEFFFBFEFFFAFCFDF9FFFFFBFFFFFCFF - FFFBF8F9F5F7F9F3FFFFFCFFFFFBFFFDFBFFF9FBFFF5F9600000770005810106 - 7F01067E06077602017901018200018700018900018700018000027F00028000 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068200007F00017D02008001008200008400018000017D000474 - 01046A05075000005507083E00004D0D0D3700004105053E0000470005400000 - 51070B3E00004F0A0D3C00004805083F00004402033A00004D090A3C0000510B - 0B3E00004E06064E00006203006C03007003017504027A02027E020282000183 - 000087000187000187000187000187000186000186000186000097100E7E0000 - 7502006B00007D00006D0909FFFDF7FFFFF8FCFFF8FBFFFBFAFFFBF1FCF4F0FF - F7E5F9EDEDFFF9F1FFFBF3FFFEF7FFFEF9FEFFF9FFFEFAFEFFFAFFFEFCFEFFFC - FEFEFCFEFFFCFEFEFAFEFFFAFFFEF9FEFFF7FFFEF7FFFFF7FFFEF9FEFFFAFFFE - FAFEFFFAFFFEF9FEFFF9FFFEF9FEFFF9FFFEF9FEFFF9FFFEF9FEFFF9FFFEFAFE - FFFAFFFEFAFEFFF9FFFEF3FFFFF2FFFEF2FFFFF2FFFEF2FFFFF2FFFEF2FFFFF2 - FFFEF3FFFFEBF9F7EFFDFCF3FFFFECFAF9F3FFFFF3FFFFDFE7E6F5F4F0FFFCFA - FFF8F95500046F01077F070B6A00006F00007802017D01018600018900018B00 - 018900018200027F00028000018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008702047F00017D020080010082 - 00008400018000017D00047401046500025C0404450000500A0A390000460808 - 3500004103033F00004904073E00004D080B3C00004C08093F00004701024500 - 004D050542000055090A4500005A0A094E00005F03026F03027903027A02027E - 02028101028400018600008800008B00018B0001890001870001870001860001 - 8600018700019102047C00008408087A0203850107730E10FFF6F2F8F9F0F6FA - F4FBFFFCF0F6F1F1F7F2FBFFFCFBFFFBF3FAF5F9FEFCFFFEFFFFFDFFFFFDFFFF - FDFFFFFDFFFFFCFFFFFCFFFFFCFFFFFCFFFFFCFFFFFCFFFFFDFFFFFDFFFFFDFF - FFFDFFFFFDFFFFFDFFFFFCFFFFFCFFFFFDFFFFFDFFFFFDFFFFFDFFFFFDFFFFFD - FFFFFDFFFFFDFFFFFDFFFFFDFFFFFCFFFFFCFFFFFDFFFDFEFFFAFFFFFBFEFFFA - FFFFFBFEFFFAFFFFFBFEFFFAFFFFFBFEFFEEF3F6F4F7FBFAFFFFFBFEFFFAFFFF - F8FBFFFAFFFFF8FFFCFFFFFBFFF7F54B00026300027D080B740000850D0E7B01 - 017F00018700018D00018D00018900018000027F000280000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020383 - 00007F00017D02008001008200008400018000017D0004740104690406530000 - 5002033F00004808083700003F03033C00003F01013A00004606063900004806 - 073D00004B02044800004C00004C00005804065100006407085A000067060869 - 01027901028000018200018400018600018700018A00028C00028B00018B0001 - 8900018700018400018200018200018600018B00008B00008405067F04067B00 - 00690005FFFAF8FFFFFBFFFFFCFCF0F03020211400011C04061B00001E000221 - 02051B01071901091B00091B00091B00091D00091D00091D00091D00091D0009 - 1D00091B00091B00091B00091B00091B00091D00091D00091D00091B00091B00 - 091901091901091901091901091901091901091B00091B00091D00091D00091D - 00091D00091B00091D00091B00091D00091B00091D00091B00091B0007220710 - 2A0D161B00091700031500033C1F28F8E9EDF4FBF6FDFDF7FFF9F74F090A6D07 - 0C7200007600017700007F00018200018900018D00018D00018700017F00027D - 00027F00018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02004100004501023C00003E02033D00024300034C00014B000239000037 - 05003400004D03007200008500027F00017D0200800100820000840001800001 - 7D00047401046702045800004900004802023F00003F01013900003B02013901 - 003A02013800004002023E00004502014800004E00005100005800005B000066 - 01036800007003057002047A03047E00008200008400008500008700018A0002 - 8B00038C01048900018700018600018400018000017F00017F00018200018A00 - 009106097000007E060A7F00066A030AFFFBFBFFFDFAFFF7F7FFFDFE13000020 - 01042400012700003000042900002200011E00011E00011E00011E00011E0001 - 1E00011E00011E00011E00011E00011E00011E00011E00011E00011E00012000 - 012000012000011E00011C00011C00011B00011B00011B00011B00011C00011C - 00011E0001200001200001220001230001230001250001230001250001230001 - 250001230001250001270005250001230001390C15230001250001FFFBFFFAFE - F9FEFEF8FFFBF94C030570060C6B0000890B107E00008000018600018B00018F - 00018D00018600017D00027901027F00018000018000018000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003A01003B00004501024100004001033A00003F000443 - 00034D00024800003D04033200003905004900007500018400017F00017D0200 - 8001008200008400018000017D00047401046803055500004D00004300004404 - 043B00003C00003A01003704013303003904013700004202014200004C000052 - 00006103046703036E01037401047900047E0103800103830003840001860001 - 8600018600018600018700018700018600018600018400018000017F00017D01 - 017B01017B01017D01018100007D01016F03026A02037501085D0308FFFDFBFB - FFFCFFFFFEFFFEFF1E0B0E1C01052F060D2900023D09102E00022E050A1E0000 - 39161A2200032A070B1F00002D0A0E2200033C191D1E00002D0A0E2704082C09 - 0D1E000027040823000231090E2A0207310C101E00002D0C101E00013112151B - 00002B0C0F1B00002B0A0E1F00022F0C102400032D050A25000132060C250000 - 43151B25000035070D2500003F111725000032040A2C000634060C2700013608 - 0E27000135070DFFFBFCFFFEFBFFFFFBFFFAF957060971000680000483000385 - 00038400018700018D00018D00018B00018400017801027601027D0101800001 - 8000018000013F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013900004005033D00004A - 06073700004206073A00004400044B00004D02043500003C0A04300000510703 - 7000008601037F00017D02008001008200008400018000017D00047401046601 - 035B03034500004C06063A00004305053700003C030236030038080432000040 - 05033C00005005034F00005E02016802036F01037700037D0002820002870003 - 8A00038A00038600018600018600018400018400018400018400018400018200 - 018000017D01017B01017901017802017802017901017F00007B01016D030268 - 0203710108590408FFFEFBF8FFFCF6FBF9FCFAFA100305130000200004230000 - 2F01072700002300002501012000001F00002604042200002402021E00001E00 - 002A08083715151E00001E00002301012000002200002300002300002200002F - 0B0B1E00001C00001B00002C0E0D1C00002608071C00001E0000200000220000 - 2300002B0304280001230000230000391112240000320A0B2300002300002400 - 00230000270000230000290102230000270000FFF8F7FFFEFAFFFEFBFFF8F95E - 04097700068400048600038800038600018700018B00018D0001890001820001 - 7601027402027D01018000018000018000014201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003C03023600004C08093C000048090B3500004404094100014E0003440000 - 430A092E0000410D074300007904058300007F00017D02008001008200008400 - 018000017D00047401046904065100005305063E00004B0B0B37000040040439 - 00003E07043400004508043A00005107054900006509086703036F0103770001 - 7D00028400028700028B00019000028E00028700018400018400018200018200 - 018200018000018000017F00017D01017B01017901017901017802017802017B - 01018500008400017402026F01037900085D0308FFFDFBFAFFFCFAFFFEFDFFFE - 140E0F110305210B0D1B00012E0D112100002B070729060334110E200000300F - 0C2403001D00002809063314112203002706031E000045221F20000039131122 - 00003A13112400003812102805022E0D0A1C0000270A061900002005011B0000 - 341512270603401D1A22000038110F220000300F0C1B00002E110D1B00002A0D - 091C000030130F1B0000270A06230602290C081D00002B0E0A1D0000290C08FF - FDF9FFFDFAFFFCFBFFF7F96303097A0006870004860003880003860001860001 - 8900018B00018700018000017601027402027D01018000018000018000013E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023800004308063C00004F0B0C370000460A0B - 3700004500054A0000500507330000410F09300000560C086D00008702047F00 - 017D02008001008200008400018000017D00047401046500025D050545000052 - 0C0C3900004709093500004104023E00004A0704400000580B084A0000680C0B - 6200007408077601027D00028200028600018900018D00018F00018D00018600 - 018400018200018200018000018000017F00017F00017D01017D01017B01017B - 01017901017901017802017F00018A00008B00007B0101770001800006660207 - FFFCF9FFFFFBFAFBF7FCFAF90C04040C00001601031500001F04071900001B00 - 002A0D081B00001900001E05011A02001500001500001500009A847E8A716DD9 - C1BBD9BEBAFFFDF8FFFDF91C00001E00002D0D081C0000190000170000150000 - 1D09049E8C85FFFEF998857E1903001700001B000032140F2B0A071E00002003 - 001900002106021E04001C01001900001E03002B110B1A00001900001D020019 - 00001F04001900001D0200FFFAF5FFFDFAFFFCFBFFF6F9650309780006860004 - 8500038500038200018400018700018900018700018000017801027601027D01 - 018000018000018000014201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003C0302350000 - 4D090A3C00004A0B0D35000045050A4100014F0004430000450C0B2E0000420E - 084300007A05068200007F00017D02008001008200008400018000017D000474 - 01046A05075000005507083E00004D0D0D3700004105053F00004D00004C0000 - 610A08520000710F0F610000780A0A7500017B00028000018200018400018700 - 018700008900008700008400018200018200018200018000018000017F00017F - 00017F00017F00017D01017D01017D01017D01017D0101840001910000920000 - 8400017F00018800066F0107FFFAF9FFFFFBFFFFFCFFFEFC1F0D0C180302250B - 0B1B00002D0E0F1C00002613100E00000C0000110700180F0B090100A39D98CE - C8C1FFFFFBFFFBF4FFFFFBCBC3BCB8ADA9FFFFF9BFB0AD1F0F09271411120000 - 251613100400180D099A948DFFFDF8F3F1E9FFFEF9FFFFF9FFFAF58B837C1F13 - 0F0E00001502001E0803280C0B1B00002D0F0E1B0000381A191B00002A0C0B1B - 0000260807230602290B0A1D00002B0D0C1D0000290B0AFFFDFBFFFDFAFFFCFB - FFF7F96204097500067F00047E00038001037D01017F00018600018700018700 - 018200017901027801027F00018000018000018000013E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023800004207053C00004D090A37000045090A3800004500054A00 - 004F04063300003F0D07300000540A066E00008702047F00017D020080010082 - 00008400018000017D00047401046500025C0404450000500A0A390000460808 - 350000480202550000690304600000790C0E690000800B0C7300007E01038001 - 0281010282000182000182000082000081000081000082000182000182000182 - 00018200018000018000017F0001800001800001800001800001800001800001 - 8000018600008E00008D00007F01007C00008700056F0105FFFBF8FFFFF9FFF9 - F6FFF7F61803021700001E00001C00002604051B00001200000F0200160A0809 - 0000918A87FAF5F2FFFFFCAFACA87A7773787571787370FFFFFCD9D0CD8B7F7D - 1306040E00001000001001001B0E0C090000D6CFCCBAB7B3878682848581F7F8 - F40C0B0784817DC4BDBAFFFFFCC1B4B2A492911300001A00001C00001E00001E - 00001C00001C00002000012303041D00001C00002000011C00002202031C0000 - 200001FFF7F7FFFDFAFFFDFBFFF8F95C05096E00067900047700037902037802 - 017B01018200018700018700018600017D00027B00027F000180000180000180 - 00014100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003B02013800004905063C00004506 - 083600004202074200024E00034600004007062E00003D090346000077020383 - 00007F00017D02008001008200008400018000017D0004740104690406530000 - 5002033F00004808083700003F03034900006801047100007D06077300008508 - 0A7A00008404057E00008301028101028002017D02007D02007A01007801007A - 0100800001840001840001820001820001820001820001800001820001820001 - 8200018200018400018400018600018400008100007B03006F04006E03007C01 - 05660305FFFCF8FFFFF9FFFFFBFFFEFB240D0B1E02012A0B0A220000340E0E21 - 0000290C0F291216715C5FFFFCFFFFF7FAFFFDFF8C7F81180B0D180B0D241719 - 1507091302051C090C1200001600031B02062E1317170000967D81FFFBFE8F7E - 81140709090000867E7FFFFEFF090000180B0D120104180306957E82FFF9FDFF - F4F991717629090E1B00001B000046262B1B000023030823030826060B230308 - 29090E1D00022B0B101D000229090EFFFCFEFFFEFBFFFEFBFFF9F95506096701 - 067201047100037303037203017602018000018600018900018700018200027F - 00028000018000018000018000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003A01 - 003D02003F00004501023C00004001033D00004100014700014701023900003B - 04013900004F02006C00007E01037F00017F01008001008200008000017F0001 - 7901027201046802035D00005000005101004B00004B00004700005600007403 - 068203057D00008100037C00008300038000008301028301028101028002017D - 02007B0200780100770200780100800001820001840001820001820001820001 - 8200018200018200018200018200018400018400018400018600018200007C01 - 007404006B05006C03007A0105640305FFFDF8FFFFF9FFFBF6FFFAF61A03011B - 00002400012000002804041C0000190002FFEDF19D868A917A7EFFF6F9190407 - 120000120000190407120000160003170004150000150000250A0E1700009C80 - 86FFEEF4D6BCC2998287847075FFF1F59E8F93897B7DFFFCFF1406080E000012 - 000020090D1500001A00039C7E83DFBFC4FFF7FCE3C2C99A7C8119000125070C - 1900011900001B00031900001F00051B00002100071B0000210006FFF7FBFFFE - FBFFFEFBFFF9F95506096801067201047100037103037003017403017F000186 - 00018900018900018400018000017F00017F00017F00017F00014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003C00003B00004202013F00004302013E00004101013E - 00004002023F02004106043D00004802024E00006302046F01037D0002820001 - 8200017F00017D01017901017403017002026B01006500006100006300006A03 - 016D06046F03026E00007B000280000180000180000180000180000180000180 - 00018000018000018000017F00017F00017F00017D01017F0001800001800001 - 8200018000018000018000018000018000018000018000018000018200018200 - 018200018200018000017C0100790200760201770001850006690207FFFCF9FD - FFFBFEFFFAFFFFFC260E0E1C00002E060B300B0D1C0000170201FFFBFC938384 - 180607D6C4C598838513000021090B1F04072B101317000024090C22070A2409 - 0C150000331B1D887274FFF2F59C8B8E958487C0AFB2FFFCFF7D6F712413168D - 7D7EFFFCFF857576322021100000210F101402031F0B0A19040323080B1B0001 - 927479FFFAFDFFFBFF8D727523080C190001290E1217000034161B1B00002C0C - 111C00003E1A20FFF2F5FFFEFBFFFEFBFFF8F95C05096F000679000477000377 - 02037203017403007D02008200008700008700008600008000017A0000790101 - 7901017A02023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013B000040050338000047 - 07063C00004706053C00003D02003A0100400705390000490807430000580507 - 5600006A03067D00028400018200017F00017B01017602017203017003016E01 - 006B00006B00006F00007802017B03037D01017C000080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000017F00017E00007B02007B00027E - 00038800066B0108FFFCF9FAFFFBF3F9F4FFFFFC1500001E0000340C111E0000 - 170000D7C5C49285830B00009A8B89FFFCFB1300001F07071900001900001F00 - 011900001A00001700002A10109D8585FFF2F1D1BFBE180B0D73686AFFF7F992 - 87890B0000887B7DFFFDFEFFFDFEFFF1F2FFFDFEF1E2E09182800C00000D0000 - 271B171000001800022005081500001D0507957D7FA48E90FFFCFEC5AFB1907A - 7C2810121700001900001F00032605091F0000FFFAFDFFFEFBFFFEFBFFF7FB5E - 04097300067F00047C00037A02027403017603007D0200820100870000870000 - 8400008001007B00007A00007D01017E02024201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003E0202360000470A083900004D0A093A00004606053A00003D0402360000 - 470C0A3A0000540A0A49000060070A6600027D00028600018400017F00017B01 - 017802017403017203017102006F00006F00007300007A02027E04047E02027D - 0000800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018000018000018000017F - 00017E00007B02007B00027E00038800066B0108FFFCF9FAFFFBFBFFFCFFFEFA - 1C0406300D112800052300043A2020FFEEED0F00001D0E0CC2B3B19D8B8A220D - 0C1500002A1010200606280C0C2004042206062B1111C2AAAAFFFBFA9B86850E - 0000877F80C3BEBF251F20827C7DD5CDCEFFFEFFFFF7F7FBF1F1FFFEFEFFFEFE - FFFEFCFFF6F4FFFEFCBFB3B1877C780C00001702041B05071500011200001B06 - 081200002D181A988385CCB7B9FFFCFED0B5B81C00023011141C0000351216FF - F5F8FFFEFBFFFEFBFFF8FB5E04097500068000047E00037E0202780201790200 - 7F01008400008700018700018400018200018800048900048800038700023E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023A00004308063700004C0C0B3C00004B0A09 - 3900003E03013800004209073500004E0D0C4200005C090B5300006A03067F00 - 028600018400018000017D010179010176020174030174030172010073000077 - 01007C0202800404800102800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017E00007B02007B00027E00038800066B0108 - FFFCF9FAFFFBF9FFFAF7F4F01C04062000012200002200038A70709B87861A08 - 07190706FFF5F4998584150000190101210707170000190000170000907676FF - F2F2A89392120000200C0B0C00000500000202027D7B7BF6F4F4FDF8F9F2EDEE - FFFFFEFFFFFEFFFCFBF2EDECFFF9F6FFFBF8FFFFFCFFF9F6FFFFFBFFFFFB9484 - 851000002210110E000019090A1404050E00000F0000160405150002D0B8BAD5 - BABD1B00001C00001C0000FFFCFEFFFEFBFFFEFBFFF9F95E0409750006840004 - 8300038100037D01017D02008001008400008700018600018000018000018A01 - 058D00048C00038B00024201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003E0202350000 - 480B093900004F0C0B3A00004707063A00003D0402340000470C0A3A0000550B - 0B49000060070A6500017F00028600018400018200017F00017B010179010178 - 02017802017802017800007B01017E0202810203810102800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017E00007B0200 - 7B00027E00038800066B0108FFFCF9FAFFFBF9FFFAFFFFFC20080A1E0000370F - 14240105FEE4E49D8988180403120000FFFDFC8A7272371F1F170000290F0F17 - 00002E1414D8BEBEFFFCFC8B76751803021200001F0D0C1C100E9A9898EFF1F1 - FDFFFFFDFFFFFFFFFFFFFFFFEFEDECFDFBFAFFFCFB888483DCD7D4FFFFFCFFFC - F9FFFFFCFFFFFBFDF4F0F9EDEDFFFEFEB9ADAD867C7C180E0E1107071C10100C - 0000100001100000978183C7AFB133161927080B27060AFFFCFEFFFFFBFFFFFB - FFF9F95C05097700068700048600038700038000018000018400018600018600 - 028200027B00027B00028200028500018600028700033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023A00004207053700004A0A093C00004A09083A00003E03013800 - 004007053500004B0A094200005906085300006902057F000286000186000182 - 00017F00017D01017B01017901017901017901017B01017D01017F0001800001 - 8200018200018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000017F00017E00007B02007B00027E00038800066B0108FFFCF9FAFFFBF6FC - F7FFFFFB1500001E00002A02071E0000FFFCFC897574200B0A1C0404D7BFBF99 - 7F7F170000240A0A170000967C7CFFFCFC856D6D130000210D0C170302100000 - 948583BCB0AEF7F5F5FBFFFFFBFFFFFBFFFFF7F9F9F1F3F39C9D9B7F7D7CFFFF - FE110D0C040100050000CCC5C2FFFFFCFFF8F4FFFFFBFFFEFEFFF7F7FFFFFEFF - FFFEF5F0EF7F77779189890900001D0F100E0000120000FFFCFE170000190000 - 240508F7E2E1FEFFFBFFFFFBFFF9F95C05097800068900048A00038A00038400 - 018200018400018400018200027F00027601027402027A02067A020378000375 - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003D01013800004407053900004A07 - 063B00004404033B00003B02003600004207053A00004F05054A00005C030666 - 00027F00028600018600018200018000017F00017D01017B01017A00007D0101 - 7D01017F00017F00008100008300008400018200018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000017F00017E00007B02007B00027E00038800 - 066B0108FFFCF9FAFFFBFBFFFCFFFFFC1F07092C090D220000280509FFF1F190 - 7B7A240C0C170000907676FFFCFC2F1515170000FFF6F6DFC7C7200808130000 - 220D0C120000210D0C9C8A89FFFEFCFFF6F4FEFCFCFDFFFFFDFFFFFBFDFDC5C7 - C70000000D0E0C807E7DFAF6F5070201140D0A1B120F160A08998C8AFFF3F0FF - FCF8FEF6F6FFFFFEFBF7F6FFFBFAFFFFFEFFFEFDFFFEFDFFFEFE7C70701D0F10 - 8A7879FFFCFE1700001F02053A1B1EFFFDFCFCFFFBFFFFFBFFFAF95C05097800 - 068900048C00038C00038400028200028200028200027F00047900047002046B - 03046C07096806066300025F00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00003C00 - 003D02003C00004202014100004302013F00003C01003900003C03013A000043 - 02014600005200015700016700037D0002860001840001820001800001800001 - 7F00017D01017D00007E00007F00018000018000008200008400008300008200 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000017F00017E00 - 007B02007B00027E00038800066B0108FFFCF9FAFFFBF0F6F1FFFFFC1500001E - 00002700041E00009A8080D0BBBA170000220606200404FFEDEDA187871E0404 - 977F7F1300001300001C0807120000968281FFFDFC837170796A68FFFEFCFFFE - FFF8F8F8FEFEFE8A8A8A0000008E8E8E020000040000FFFFFE0D03030C00000C - 00001200001200009D8684FFFEFBFFFAFAFFFFFEFEFCFBFCFAF9FFFFFEFFFFFE - F3EEEDFFFEFEFFFEFEFEF0F1FFFDFED0BABC1800021900001B0000FFFCFBFAFF - FBFFFFFBFFFAF95A05097800068900058A00038A00038400028000028000027D - 00027900047201046902056204055805045404035202015101004000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00003C00003B00004003013E00004502013F00004101003C - 01003B02003700003D02004000004C02024D00005800026801047B0002840001 - 8400018200018000018000018000017F00018000018000018000018200018200 - 0184000186000184000182000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000017F00017E00007B02007B00027E00038800066B0108FFFCF9FA - FFFBF9FFFAFFFFFC250D0F1E0000340C111E00002D1313FFFDFC2105051B0000 - 270B0B1F0303FFF6F69B8181240C0C130000230E0D120000FFF1F0FFF9F8A795 - 94100000251312FFF7F5FFFEFF8D8788040000140F10B6B1B2FFFEFF807B7A07 - 0000FFFCFC0F0102210F0E1300002F15151900002F100FFFFDFB918787777574 - C5C3C2FCFAF9FFFFFEFFFFFEFFFEFDFFFEFEFFFEFEFFF3F4FFFDFE8973753119 - 1B19000026070AFFFCFBFAFFFCFFFFFBFFFAF95A050977000686000487000286 - 00048001037C01038005097901057605096700015D00024F00004C0202450201 - 4300004000003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00003F01013B000040050338000047 - 07063C00004706053C00003D02003A01003D0402350000490807430000540103 - 5300006A03067901028200018200018200018000018000018000018000018000 - 0180000182000182000184000184000186000184000182000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000017F00017E00007B02007B00027E - 00038800066B0108FFFCF9FAFFFBFBFFFCFDFAF61800021E00002E060B1E0000 - 1B0101907B7AE2C6C61C0000190000170000907676FFFCFC846F6E220E0D1200 - 009A86859E8C8B100000100000120000170302998A880B00000700008D8586FF - FEFFFFFEFFFFFAFB948C8C0B0101FFFDFE1000001803021700002E0E0F200000 - 240000997B7ABEB2B21915140400000E0A097F7B7AF0ECEBFFFFFEFEF6F6FFF5 - F5A89A9B816F701701031700001900002C0D10FFF9F8FBFFFBFFFFF9FFFBF859 - 060875000684000583000381000577000179070770000078090D630000660509 - 5100004B00003E00003D00003F00004303024201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073C - 00003E0202360000470A083900004D0A093A00004606053A00003D0402330000 - 4409073A0000540A0A4900005C03066500027801028000018000018000018000 - 0180000180000180000182000182000182000182000184000184000184000184 - 0001820001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018000018000018000017F - 00017E00007B02007B00027E00038800066B0108FFFCF9FAFFFBFBFFFCFEFBF7 - 1800022100022800052502061B01011E0908D2B8B8DBBFBF270B0B170000331B - 1B897473FFFDFCD2BEBD210D0C1000001804038F7B7AFFFCFB8D7877200B0A12 - 00009B8E90CCC4C5FFFAFBFFFEFFF3EBECFFFAFB9187870B0000FFFDFE120000 - 1901011B00002D080A2800022800002C0808FFFDFE847C7C1914130500001813 - 12CDC5C5FFFEFE8B81811608090E000029141617010323080B1B0001250609FF - FDFCFDFFFBFFFFF9FFFBF85906087200078000067D00047A0206710406630000 - 70090C5B000068090D4F00005304074500004B02044701024500004200003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004002023A00004308063700004C0C0B3C00004B0A09 - 3900003E03013800003F06043500004E0D0C4200005906085000006A05077601 - 027F00017F00017F00017F000180000180000180000182000182000182000182 - 0001840001840001840001820001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000017F00017E00007B02007B00027E00038800066B0108 - FFFCF9FAFFFBFAFFFBFFFFFC1E0608250206230000230004280E0E1300001900 - 00DAC0C0FFFAFA937B7B1300002E1A19120000907C7BFFFDFCCEBCBBD5C1C0FF - FDFC927D7CFFF8F8230B0B8F7A79F3E6E8FFFEFFFFFEFFFBF5F6FFFEFFFFFEFF - 756D6D160C0CFFFCFD1604051F07071E000027020428000037080A2200009781 - 83C4B8B8140808090000110707FFFCFC7F73730C00001F0F101000001B050715 - 00001C00021B00001C0000FFFAF9FEFFFAFFFFF9FFFAF85707086F01077A0006 - 760104710406620000650908500000630A0D4C000057080B3F00004502054400 - 004700004700004A01034201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003E0202350000 - 480B093900004F0C0B3A00004707063A00003D0402330000450A083A0000560C - 0C4900005D04076500027601027D01017D01017D01017D01017F000180000180 - 0001800001800001820001820001820001820001820001820001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018000018000018000017F00017E00007B0200 - 7B00027E00038800066B0108FFFCF9FAFFFBF0F6F1FFFFFC1A02041F00002200 - 001E0000260C0C1500001F07071B0101917979FFFDFCDEC9C88B777628141312 - 00001C0A098B79788B7776170201281010FFEDED2C1010917C7BFFFDFFFFFEFF - FFFEFFFFFEFFFAF8F8F2F0F07D79780B0605FDF3F31B0B0C1A05041900002702 - 04230000330708260000190103FFFDFE1000000E0000958586FFFDFE16060718 - 08091B090A1200001901031700002D0E112D0C102C0B0FFFFCFCFFFFFAFFFFF9 - FFF9F75406076A00067400056C01036705055A04044B000057090A4500005508 - 0B3E000046060B3D00004801044B00034900014600003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023A00004207053700004A0A093C00004A09083A00003E03013900 - 003E05033500004C0B0A4200005704065100006904067402027B01017B01017B - 01017D01017D01017F0001800001800001800001820001820001820001820001 - 8200018200018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000017F00017E00007B02007B00027E00038800066B0108FFFCF9FAFFFBF5FB - F6FFFFFC1600001E00002A02071E00001C02021601001500001B030313000012 - 0000988483D2C0BFFFEEEDD1BFBE1000001200002C1716150000170000FFFCFC - 1E0000897171FFFEFFF8F8F8FFFFFFFDFFFFF3F5F5FDFFFF979896020000FFFA - F9160A0A1200001700002A0A0B2200002700002600001A00008F797B97818312 - 00008F7A7C8671732D181A1200001601031F090B250A0D1900001B00001C0000 - 200001FFFCFCFFFFFAFFFFF9FFF9F75305066500046D00036400005B04024B00 - 004D08053C00004C08093C00004807093400003D04073D000043000045000148 - 01044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003D01013800004407053900004A07 - 063B00004404033B00003C03013500004106043B00005006064900005B020564 - 01037202027901017901017B01017D01017D01017F00017F0001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000017F00017E00007B02007B00027E00038800 - 066B0108FFFCF9FAFFFBFBFFFCFFFFFC1B03052603072800052100021D030312 - 000025100F130000341F1E150100100000DCCDCBFFFEFCD7C8C6877574A69291 - 130000150000391D1DFFFBFC240405A89090FFFEFFFAFFFEF6FBFAFAFFFFFAFF - FFECF4F36C7370050A08FFFFFE0700001306041702012509091F000026000022 - 00002D0E111B0003FFFCFE150000DAC2C48973751600022C1618130000190103 - 1800002104072F101328070B260307FFFAFAFFFEFAFFFFF9FFF8F65204056100 - 026600005B00005301004502003B00004407053700004506083500003A040935 - 00033F05063F03043D01023900004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00013C00 - 003D02003C00004202013F00004302013F00003E01003C00003C01003B000045 - 04034500004D00005000006104056F02047602017801027901017B01017D0101 - 7D01017F00018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000017E00 - 007D02007B00027E00038800066B0108FFFDF9FAFFFBFBFFFCF5F2EE21090B2A - 070B220000210000230909130000170000260C0C1500001702011D0908837170 - FFFEFCFFF1EFFFFEFCFFEEEDFFFDFCFFFDFCFFF0F3FFFCFC230407846E70FAF6 - F5FAFFFFFAFFFFF2FAF9F7FFFEF8FFFF818885000100FFFFFE070000190C0A1A - 06051700001C00002904062000001B0000170000D2BABCA08A8CC8B2B4250F11 - 1300001500001700011F04071900001C00001E00011C00001C0000FFFCFCFFFE - FAFFFFF9FFF8F74604055300015900015000004B00004101003E04003B00003F - 03033B00003E03073700033702053600003800003A00013D03044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000013E00013D00004201033E00004201033E000041000240 - 00003E00013D00004201033E0000430003410000460002500000670003700000 - 7300037601027A02037C01037E01038001038000018000018000018000018001 - 008001007F01007F010080000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000017F00008001007D00027F00038A00066B0108FFFDF9FA - FFFBFBFFFCFFFFFC230B0D23000430070C2400012C0D0E1C00002E0F0E1E0000 - 200001270B0B2208081300001F0D0E1202031D0D0E1303041303041F0D0E1B06 - 091300003922267D6D6EFFFFFEFBFFFEF8FDFBF9FEFCFBFFFEF9FCFA7A7B790B - 0706FFFEFE11050519090A18020426090C2000032C070B240203270B0B150000 - 857170FFFDFCFFFEFC0E00002C1A1913000022080822030429090A2000002B0B - 0C1D0000270B0BFFFDFCFFFDFBFFFEFCFFFBFC2F00023C000143000049010144 - 00004300003F00004003013C00004002023A00003D01023C0001410204400103 - 3E00013B00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004A00015F00006B00006E00027401047801027901027D00027E00018000 - 018200018200018200018001008001008001007F010080000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018100008001007F00027F - 00038A00066B0108FFFDF9F8FFFBF6FCF7FEFBF71A02041E0000290003230000 - 2304051B00002000002F09092803051C00001E0202947F7E7967680F0102897B - 7C867A7A86787A8E8082938285857477867376978A8CFFFDFCF9FEFCF3F8F6F4 - F9F7FDFFFEFFFFFE888483050000FFF9F90C00001100001300001C00021C0000 - 2000011C0000190000200B0A210F0EFBECEAC7BAB81205030E00001804031A00 - 001C00002200011E00002202031900001B0101FFF9F8FFFBFBFFFEFEFFF4F42D - 0B0B2B00004108073D00004401004200004505013A0000450806370000440606 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605074500005700006300006800016F01037401 - 047800037B00007C000082000284000284000184000182000080010080010080 - 0100800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018100008001007F00027F00038A00066B0108FFFDF9F8FFFBFBFFFCFFFFFC - 240C0E23000433070D2500012D0E0F1E00002500002B03042000001C00001C02 - 02DFCAC99A88890E0001FFFEFEFFFEFEFFFDFFFFFBFDFFFDFFFFFDFFFFF9FCFF - F4F6FFFDFCFDFFFEFDFFFEFDFFFEF4F5F3F5F6F48682810E0606FFFEFE120405 - 1D080A1B0305270A0D2000032A070B230206280C0C190101120000E3D4D2C3B6 - B41508061C0D0B1804032509092404052C0A0B2000002C0C0D1D0000250B0BFF - FDFCFFFEFEFFFAFAFFFCFC1E00003A090B3300004707074100004502003B0000 - 490908370000480A0A3700004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004701025000 - 005A00006200006A02037002047700037B00007D000084000286000286000186 - 0001840000820000800100800100800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018100008001007F00027F00038A00066B0108 - FFFDF9F8FFFBF6FCF7FEFBF71A02041E00002900032300002304051B0000350F - 0F230000200000270708170000D9C5C48676770B0000FFFAFAFFFEFEFFFEFFFA - F2F3FFF7F9FFFDFFFFFDFFFFFEFFFFFFFEF7FAF8FFFFFEFFFFFEFFFFFEFFFFFE - 85807F070000FFF9F90C00001300001500001C00021B00001E00011C00001900 - 001F0707120000948583FFF8F60C00001000001300001A00001C000024000120 - 00002402031B00001B0101FFF9F8FFFAFAFFFEFEFFF0F03210102B0000460D0C - 3A00004502014100004808043900004A0D0B370000480A0A3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706084100004A00005100005901016302046D02047401047C000381 - 0003860002870002870001870001860001840001820001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001810000800100 - 7F00027F00038A00066B0108FFFDF9F8FFFBFBFFFCFFFFFC240C0E2300043307 - 0D2500012D0E0F1E00002B0505230000351012220203170000D8C4C38F7F8009 - 0000FDF5F5FFFFFEFFFEFFFFFDFEFFFEFFFFFAFBFEF6F7FFFDFEFFFFFEFEFFFD - FCFAF9F8F6F5FBF9F8FFFFFE928D8C110909FFFEFE1404051D080A1B03052409 - 0C1F000328070B2302062B0F0F1600001E0A09897A78FFFCFA0D00002D1B1A13 - 00002408082404052E090B2200002E0C0D1D0000250B0BFFFDFCFFFEFEFFF9F9 - FFFCFC1E00003C0B0D3300004808084100004502003A00004A0A093700004A0C - 0C3700004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004301024300004A00005101005C - 02026602027002047B0004820004860002890002890002870001860001840001 - 8200018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018100008001007F00027F00038A00066B0108FFFDF9F8FFFBF6FC - F7FDFAF61A02041E00002800022300002304051B00002D0707230000330E101D - 00001C0202D6C2C1928485070000FFFFFEFFFFFEFEFCFCFFFFFFFFFFFFFFFFFF - FDF8F9FFFDFEFFFBFAFFFFFEFFFFFEFFFEFDFFFFFEFEF9F87D7575090000FFF9 - F90E00001300001300001A00021900001E00011C00001900001B030312000027 - 1514FFFDFB0E00001000001601001C00001E00002400012000002402031B0000 - 1B0101FFF8F7FFFBFBFFFEFEFFF1F1310F0F2B0000440B0A3B00004502014100 - 00470703390000480B093700004709093A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00003E01004001004801005100005D00006A0002780004800005860004870002 - 8900028700028600018400018200018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018100008001007F00027F00038A00 - 066B0108FFFDF9F8FFFBFBFFFCFFFFFC240C0E23000433070D2500012D0E0F1E - 0000300A0A230000220000220304220808CAB8B7877B7B070201FFFFFEFFFFFE - F8F8F8F5F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFDFCFFFEFDFFFDFCFFFFFEFFFF - FEBAB5B4312929090000FFFEFE1204051B090A19030524090C1D000327080B22 - 0306290D0D170000230E0D100000FFFEFC0E0000231110170201260708260405 - 2E090B2200002E0C0D1E0000270B0BFFFDFCFFFEFEFFFCFCFFFCFC2000003706 - 083600004505054200004401003D00004606053700004507073800004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00003E00003902003901003F0000480000550000630000 - 7100037C01058000048600048600028600028400028200018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018100 - 008001007F00027F00038A00066B0108FFFDF9F8FFFBF6FCF7FEFBF71A02041E - 00002900032300002304051B00002200002901022400011E0000150000D0BEBD - 8D8181050000F6F4F3FFFFFEFDFFFFFCFEFEFBFDFDFBFDFDF9FBFBFCFCFCFFFF - FEFFFFFEFFFFFEFAF5F48C87860803020700008A8282FFFAFA0C000010000112 - 00001901031700001C00021900001900001C0202190403100000FFFCFA1F100E - 1200001500001D00001E00002600012200002601031C00001E0202FFF9F8FFFC - FCFFFEFEFFF8F82907072E00003E05043F00004300004300004202003E000040 - 03013C00004002023F00004000013D00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100023C0000390401370200 - 3F04024300005301005900006600006D00007D02067F00048100037F00007D00 - 007D00007E00017F000280000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018100008001007F00027F00038A00066B0108FFFDF9F8 - FFFBFBFFFCFFFFFC230B0D23000432060C2500012C0D0E1E00002C0808240000 - 2E0C0D1D0000230B0BD5C3C28E82820B0605FFFFFEFFFFFEFDFFFFFBFFFFFBFF - FFF9FEFDFDFFFFFEFEFEFFFFFEFFFEFECDC5C50700001D1817080302C1BCBBFF - FEFEFFF9F9897D7D1F11121505061F0A0C1300002D1517160000270B0B250B0B - 261110867473FFFEFC0E00002E1A191500002607082503042F080A2400002F0A - 0C1E0000270B0BFFFDFCFFFDFDFFFEFEFFFCFC2402023201033A010042020242 - 00004300004000004202013C00004002023C0000410002400001430204420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00003D01023701003A07043500004807064300005903035900006600007201 - 047700037A00037B00027C00017C00017D00027D00027F000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 018000018000018000018000018000018000018000018100008001007F00027F - 00038A00066B0108FFFDF9F8FFFBF6FCF7FEFBF71A02041E0000290003230000 - 2304051B0000230000220000240203190000180302C9BAB8857979050000FEFC - FBF4F5F3FDFFFFE5EAE9FBFFFFFDFFFFFCFEFEFAF8F8FDF8F7847C7C0700000D - 0807898483FCF7F6FFFEFDFFFFFEFFFCFCFFFEFEFFFBFB7B6D6E908081B09E9F - 8570728F797B8E7474947A7A968180FFFAF99B89881000001200001500001D00 - 002000002600012200002601031C00001D0101FFF9F8FFFBFBFFFEFEFFF4F42D - 0B0B2B00004108073D00004401004200004505013A0000450806370000440606 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073C00003D0504330000430A083900005109 - 094500005A04045A00006500026A00026E00027401047800047A01057A02037B - 00027F0001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018100008001007F00027F00038A00066B0108FFFDF9F8FFFBFBFFFCFFFFFC - 240C0E23000433070D2500012D0E0F1E00002D09092300002C0C0D1C0000220D - 0CD3C4C28F83830B0605FFFFFEF3F4F2FAFCFCFDFFFFFBFDFDFFFFFFFFFFFF81 - 7F7F211C1B150D0D8F8A89FFFDFCFAF5F4FFFFFEFFFFFEFFFCFBFDF9F8FFFFFE - FFF9F9FFFBFBFFFEFEEDDFE0FFFDFEFFFCFEFFFCFCFFFCFCFFF2F2A28E8D200E - 0D1000003D292815000028080928030530090B240000300B0D200000290A0BFF - FDFCFFFEFEFFFAFAFFFCFC1E00003A090B3300004707074100004502003B0000 - 490908370000480A0A3700004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004001033900 - 004209083500004A0D0B3A0000520A0A4500005402015700005D00006602026D - 02047103057502057902037901027F0001800001800001800001800001800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 00018000018000018000018000018100008001007F00027F00038A00066B0108 - FFFDF9F8FFFBF6FCF7FEFBF71A02041E00002900032300002304051900002100 - 00200000220203190000180302C9BAB8857979050000EBE9E8FFFFFEFBFBFBFE - FEFEFFFFFFBEBCBC04000004000005000075706FFFFFFEFAF6F5FFFDFCFDFBFA - FFFFFEFFFDFCFFFFFEFDF9F8FFFFFEFFFEFDFAF0F0FFFBFBFFFEFEFFF3F4FFF9 - F98C70702109091200001000001000001500002107071D000020000027000123 - 00002801031E00001F0001FFF9F8FFF9FAFFFEFEFFF0F03210102B0000460D0C - 3A00004502014100004808043900004A0D0B370000480A0A3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E0000420404390000490B0B3700004A0D0B39000049080744 - 00004A00005100005B01016201036B03047002047401047801027D0101800001 - 8000018000018000018000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001810000800100 - 7F00027F00038A00066B0108FFFDF9F8FFFBFBFFFCFFFFFC240C0E2300043307 - 0D2500012D0E0F1C00002B09092100002C0C0D1B0000210C0BD3C4C28F83830D - 0505FFFFFEFFFFFEECEAEAFFFFFF817C7D0500001C1415847C7DFFFFFEFCF7F6 - F8F3F2FFFFFEFFFFFEF7F8F6FFFFFEF6F7F5EDEEECF8F9F7F7F5F4FFFFFEFFFC - FBFFFFFEF4ECECDACCCD170000240808260E0E1200002E1C1B1000001D080717 - 000027070828030531090B250000320B0D200000290A0BFFFDFCFFFDFEFFF9F9 - FFFCFC1E00003C0B0D3300004808084100004502003A00004A0A093700004A0C - 0C3700004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A000042010341000048060739000048 - 0A0A350000430A08360000400503400000470000500000590101630101690102 - 6E00027500017D00028000018000018000018000018000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018100008001007F00027F00038A00066B0108FFFDF9F8FFFBF6FC - F7FDFAF61A02041E00002800022300002304051900002100001E000022020317 - 0000160201C9BAB8857979070000FDF8F7F8F4F39C97980500000B0506857D7E - D2C7C9FFFDFFE4DFDEFFFFFEFFFEFDF7F5F4FFFFFEFCFFFDF6F9F7FDFFFEFDFF - FEF8FBF9FDFFFEFFFFFEF9F7F6FFFFFE807C7B0C00001E06062307071500001D - 08071200001501001A05041700001F00002200002700012300002801031E0000 - 1F0001FFF7F7FFFAFBFFFEFEFFF1F1310F0F2B0000440B0A3B00004502014100 - 00470703390000480B093700004709093A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A000044030540 - 00004802034200004705063700004108073200003A07043702003A0200400100 - 4900005100005B00006400006B00007300007D00028000018000018000018000 - 0180000180000180000180000180000180000180000180000180000180000180 - 0001800001800001800001800001800001800001800001800001800001800001 - 8000018000018000018000018000018000018100008001007F00027F00038A00 - 066B0108FFFDF9F8FFFBFBFFFCFFFFFC240C0E23000433070D2500012D0E0F1C - 0000290A091F00002B0C0D190000200C0BD3C4C28F83830D0505C9C4C38E8988 - 0E08090E0607CDC2C4FFFDFFFFFDFFFFF4F6FFFFFEFEFAF9FFFFFEF7F5F4FFFF - FEEDF0EEFDFFFEFBFFFEE8EDEBF9FEFCFAFFFDF6F9F7898A8802000017151409 - 00001D05051900002F151519040324100F1200002914131700002907082A0305 - 31090B250000320B0D2200002A0A0BFFFCFCFFFDFEFFFCFCFFFCFC2000003706 - 083600004505054200004401003D00004606053700004507073800004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004100014600014802034000004103033800003C0403 - 3701003904013A03003E01004200004900005000005800005F00006500007202 - 027601027601027601027801027801027901027901027B00027B00027D00027D - 00027F00027F00027F00027F00027F00017F00017F00017F00017F00017F0001 - 7F00017F00017F00017F00017F00017F00017F00017F00017F00018000018100 - 008000017D00027C0003830008660208FFFCFBFDFFFBF8FCF7FFFAF71C010420 - 00002600032000002304051B00002300002000002503041900001A0202CCBAB9 - 8678790900000904030702017F797AFFFBFCFFFDFFFCF1F3FFF7F9FFFEFEFFFF - FEF3F4F2FFFFFEFFFFFEFDFFFEFDFFFEF4F7F5FFFFFEFFFFFEFFFFFEC4C2C104 - 00000904030700000900001002031800001C00001800001500001300001F0A09 - 1500001F03031E00002000002600012200002601031E0000210102FFF8F8FFFB - FCFFFEFEFFF8F82907072E00003E05043F00004300004300004202003E000040 - 03013C00004002023F00004000013D00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E0000410002400001410001400000 - 4201033E00004001033C00003D01023C00003E00003F00004301024100004701 - 024500004A00014E00005500005A00005E02015C00006505056602026B05066E - 03057305077302057A05087700037D04087A00037F01067D00047C00017A0000 - 7D00027900007E01037900007D00027B00007C00017A00007D00027900007E01 - 037900007D00027D00007E00007D00017A020771000474010B580008FFFBFBFF - FFFCFFFFFEFFFEFE290A0B27000229090A1D00002C0E0D2100003A0D10290000 - 2D04092B060A331619C2ACAED8C8C9090000837E7DBFBBBAFBF7F6FFFFFEFFFF - FEFFFDFCFFFCFCFFFBFAF5FAF8F8FFFCFAFFFCF6FCF7FDFFFCF3F4F0FFFFFCFE - F9F6FFFDFA8A7E7C2A1B191000001F0A091C04042309091A0000270809210203 - 2509091C0000270B0B1E020224080820010226070823030429090A1E00002B0B - 0C1E0000290A0BFFFCFCFFFCFDFFFEFEFFFCFC2402023201033A010042020242 - 00004300004000004202013C00004002023C0000410002400001430204420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004200014400004C010046000055 - 05044C00005B05055700005F01026500026D040768000076070B6D00007C060B - 7500027A02077700037A05067100007D08097000007C07087300007803047500 - 017A05067100007D08097000007C07087300007B02067B00018002086E000372 - 080F6300035A0A11FFF6F8FFFEFCFCFAF9FFF9F92101022200001F0100170000 - 2306022000002500002800002500021C0000170000E7D2D4C4B8B8837E7DFFFF - FEFFFFFEF9FCFAF5F8F6F9FAF8FFFFFEFFFFFEFFFFFEFAFFFCF4FEF8F6FDF8FB - FFFCF2F6F1FFFFFCFFF8F59185831809071000001300001700002405061C0000 - 2100001C00001E00001B00001E00001B00002001021B00001C00001B00001C00 - 001B00001F00011B00002102031B00001F0001FFF8F8FFFAFBFFFEFEFFF4F42D - 0B0B2B00004108073D00004401004200004505013A0000450806370000440606 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073F - 00004300003E00004C07044000005308064700005604035100005A0000560000 - 6906085A000070090C61000072070A6B00036E0305660000750A0C620000760B - 0D6400007207096A00016E0305660000750A0C620000760B0D6400007207096D - 00017500026E000075090F5900006D0A12460000FFFBFCFFFFFCFFFFFEFFFEFE - 2B0B0C270002290B0A1900002E0F0C21000024040528090C2005081400011709 - 0A817979FFFFFEF5FAF8F1FAF7F4FFFCF6FFFEF6FFFEF8FFFEEFF8F5F5FCF9FA - FFFEF0F6F1F4FAF5FDFFFCFDFEFAFFFFFCC0BBB88A817E0D0000100000120000 - 2810101C02022001021D00002F0D0E22020328080922030428090A1E00002A0B - 0C200102270809210203270809230405290A0B1D00002B0C0D1D0000290A0BFF - FCFCFFFDFEFFFAFAFFFCFC1E00003A090B3300004707074100004502003B0000 - 490908370000480A0A3700004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004202023E00004809053900004E0E0A3C0000520B08 - 4200004F02004B00005704034C0000620A0A50000066090A5700006002035A00 - 00630605530000680B0A5300006609085500005F02015A000063060553000068 - 0B0A5300006609085500006300026400006D020555000064080D5000004F090F - FFF0F1FFFFFCF8FBF9FFFAF92101022200001F01001700002405021C00001F03 - 031500001200000E0000201616040000F3F6F4F9FFFDF6FFFEF0FEFAEEF9F6F3 - FEFBF6FFFEF8FFFEF6FDFAF2F7F5FFFFFCF0EFEBFFFEFAFFFFFC7B7471170E0B - 0E01001000001F0B0A1601001E04041900001B00001C00002301021E00001E00 - 001B00001E00001B00002001021B00001C00001B00001C00001B00001F00011B - 00002102031B00001F0001FFF8F8FFF9FAFFFEFEFFF0F03210102B0000460D0C - 3A00004502014100004808043900004A0D0B370000480A0A3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083C00003F0604350000 - 460D0B3500004B0E0C390000490807410000470101400000530909430000580A - 0B4700005505064B000050000147000057070847000059090A4700005404054B - 000050000147000057070847000059090A4700005404054E00005B0000530000 - 5C080A4700005C080D370000FFFCFCFEFDF9FBFFFEFFFFFE2B0B0C270002290B - 0A1900002E0F0C1F00002E14141701031A05070E00002418180F0A09939190FD - FFFEF7FCFAFAFFFEFBFFFEF8FDFBFBFEFCFDFFFEFFFFFEFFFFFEFFFFFCFFFFFC - BFB3B11205031407050E0000210F0E1300001B03031700002105051E00002606 - 071F00002C0A0B22000128080923030429090A1F00002B0B0C21010227070822 - 02032707082404052A0A0B1E00002C0C0D1E00002A0A0BFFFCFCFFFDFEFFF9F9 - FFFCFC1E00003C0B0D3300004808084100004502003A00004A0A093700004A0C - 0C3700004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004002023700003D0805320000430C093200004209073600004003013D00 - 004606053A00004D0A093C00004B08073E00004600004300004B05053E00004F - 09093E00004E08083F00004701014300004B05053E00004F09093E00004E0808 - 3F00004B01014E00005705044200004F090A420000440B0EFFF5F4FDFFFCF5FC - F9FDF9F82001022200001E00001700002405021C00001B00001900002E131619 - 03051402030E00000B00000900008C8484B4ACACD2CACACCC4C4C0B6B6C4B8B8 - CBBDBECCBEBFCABBB982706F1A08071200001200001C07061C0404170000280E - 0E1900001B00001B00001E00001C00002100001E00001E00001C00001F00001C - 00002101021C00001D00001C00001D00001C00002000011C00002202031C0000 - 200001FFF7F7FFFAFBFFFEFEFFF1F1310F0F2B0000440B0A3B00004502014100 - 00470703390000480B093700004709093A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053D00003A02013200003C07043000003E09 - 063300003D06033900003B02003800004207053700004508063900004306043E - 01004202023D00004706083A00004807093B00004504063F00004201033D0000 - 4706083A00004807093B00004504064000004800004400004707063700004906 - 09300000FFFEFCFBFFFCF8FFFEFFFFFE2A0B0C270002290B0A1900002D100C21 - 00003D161823000030080D2400031C00001B000045282B170000260B0E22070A - 1C01041B00012506092D0E1129080C1B0000250B0B230B0B220A0A1C02023F25 - 251700001900002408082307071B00002102032505063313142606072707081C - 000028080923030429090A1F00002B0B0C210102270708220203270708240405 - 2A0A0B1E00002C0C0D1E00002A0A0BFFFCFCFFFDFEFFFCFCFFFCFC2000003706 - 083600004505054200004401003D00004606053700004507073800004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00003E00013A01 - 003B04013801003C05023801003D06033A03003C05023800003A01003700003D - 04023900003F06043C03013E05043B00003D01023A00003E02033900003E0203 - 3B00003C00013B00003D01023A00003E02033900003E02033B00003E00003F00 - 00410200360000390100390000330406FFF9F7FAFFFCF3FCF9FEFAF920010222 - 00001D01001700002306021E00002500002F0107270000280002260002220000 - 2100002000002200012000002200002200002300002500002500002500011C00 - 001900001B00001900001B00001B00003213141B00002001021B00002303041C - 00001C00001C00002404051E00001F00001C00001F00001C00002101021C0000 - 1E00001C00001E00001C00002000011C00002202031C0000210102FFF8F8FFFB - FCFFFEFEFFF8F82907072E00003E05043F00004300004300004202003E000040 - 03013C00004002023F00004000013D00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100023E00013E00003B00003E02023A00003E02023A00003D01013A - 01003C00003B00003E02023A00003C03023800003B02013A01003C00013D0002 - 4000053C00014000053C00013F00043E00033E00033D00024000053C00014000 - 053C00013F00043C00013F040232000045120F2E000043090A290000FFFEFCF5 - FBF6F4FBF8FFFFFE1F00012B0406311514150000280D0922030230080A2A0004 - 31050B250000330A0F2600032D050A2500022F070C2700042F060B2500003509 - 0F2B000332040A2800022B090A2001022808091B00002C0C0D2000012707081F - 000028090A2001022708091B00002B0C0D1F00012607081E000028090A200102 - 2708091B00002B0C0D1F00012607081E0000240506270809290A0B1B00001C00 - 002A0B0C1B0000FFFCFCFFFDFEFFFDFDFFF8F82100004211133600004A0A0A3C - 00004300004000004202013C00004002023C0000410002400001430204420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004404043A000047 - 07073900004406063A00003F01013D0000420404380000430707350000420606 - 3800003D01013D00004202073A000045050A3900004404093C00003F00043F00 - 024202073A000045050A3900004404093C00003F00023900003F0B052B00003C - 0B09330000491A1CFFF0EEFDFFFCFAFFFEFCF7F6200001220000230A08130000 - 1C03001900002000011E00002100021E00002401051E00001E00011C00002200 - 031E00002300022000002601052200002400012200002200011C00001F00001C - 00002202031B00001E00001B00001F00011B00001E0000190000210203190000 - 1D00001900001F00011900001E00001900002102031900001D00001900001B00 - 001900002506072509092B0C0D1900001B0000FFF4F4FFFDFEFFFEFEFFE9E930 - 0E0E2B0000370000390000520F0E4200004505013A0000450806370000440606 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004301023B00004A08093A00004B090A3A00004705063E00004202023A0000 - 490909370000480A0A3700004406063E00004201033A00004A070A3900004B08 - 0B3900004704073E00004300033A00004A070A3900004B080B3900004704073C - 00003400003300004919152E00004E12132F0000FFEFEEFFFFFCFBFFFEEDE5E5 - 4222232200001C030112000028140F230E0C1B07061601031B06081400011D08 - 0A1601031A05071500021B06081601031C06081500011E080A1901031D05071A - 00022405061F00012405061D00002607081D01012304051C00002206061D0101 - 2206061900002408081B01012105051A00002206061B01012206061900002408 - 081B01012105051A00002C10101700001900001700001F0303190000472B2BFF - F5F4FFFBFBFFF8F8FFFCFC1E00004211133300004707073C00004502003B0000 - 490908370000480A0A3700004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033F00004A06073C00004F0B0C3C00004D090A - 3A00004301023F00004806073900004C0C0C3900004A0A0A3900004202023F00 - 004805083A00004D0A0D3A00004B080B3A00004300033F00004805083A00004D - 0A0D3A00004B080B3A00004202023D02003D06013906033200003F0000370205 - FFFDFCFFFFFCFAFBF9FFFEFEFFE9EAFFF6F8FFFDFBFFFCF9FFFCF7FFEFECFFFE - FCFFFEFEFFFEFEFFFEFEFFFEFEFFFEFEFFFDFEFFFEFEFFFDFEFFFDFEFFFDFEFF - FDFEFFFDFEFFFDFEFFFDFEFFFDFEFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFC - FFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFC - FCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFFCFCFFF7F7FFFCFCFFFCFCFF - FCFCFFFCFCFFEDEDF7DFDFFFFDFCFFFEFEFFFEFEFFF5F52000002B00004A1110 - 3F00004704034100004808043900004A0D0B370000480A0A3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E00004300033A0000 - 4B080B3A00004D0A0D3A00004805083F00004300033A00004B080B3A00004D0A - 0D3A00004805083F00004301023A00004B090A3A00004D0B0C3A00004806073F - 00004301023A00004B090A3A00004D0B0C3A00004806073E0000430302350000 - 3B0401370000510C0F320000FFFCFCEDE6E3FDFBFAFFFEFEFFFAFCFFF9FBFFFD - FBFFF8F5FFFFF9FFFEFBFFF9F7FFFAFAFFF9F9FFFBFBFFF8F8FFFBFBFFF9F9FF - FBFBFFF9F9FFFAFAFFF9F9FFFBFBFFF8F8FFFBFBFFF9F9FFFAFBFFF8F7FFF8F8 - FFF7F7FFF9F9FFF6F6FFF9F9FFF7F7FFF9F9FFF7F7FFF8F8FFF7F7FFFAF9FFF6 - F6FFFAF9FFF7F7FFFAF9FFF8F7FFF9F8FFF8F7FFFAF9FFF7F6FFFAF9FFF8F7FF - FAF9FFF6F5FFFDFCFFFAF9FFF1F0FFFDFCFFFDFCFFFDFCFFF9F8FFFEFEFFFBFB - FFFCFC2B09093F0E103500003C00004906054502003A00004A0A093700004A0C - 0C3700004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3B00004201033F00 - 004605073A00004B080B3A00004A070A3B00004300033F00004705063A00004B - 090A3A00004A08093B00004301023F00004705063A00004B090A3A00004A0809 - 3B00004302013B00004203003A00004F1111410000420509FFFBFCFFFFFCFFFC - FBFFF9FAFFFAFCFFF8FAFFFBF9FFFBF8FFFBF5FFFEFAFFFEFCFFFDFEFFFDFEFF - FDFEFFFCFDFFFDFEFFFDFEFFFDFEFFFDFEFFFDFEFFFDFEFFFDFEFFFCFDFFFDFE - FFFDFEFFFDFEFFFDFCFFFDFCFFFDFCFFFDFCFFFCFBFFFDFCFFFDFCFFFDFCFFFD - FCFFFDFCFFFDFCFFFDFCFFFCFBFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFF - FDFCFFFCFBFFFDFCFFFDFCFFFDFCFFFAF9FFFDFCFFFBFAFFFDFCFFFBFAFFFDFC - FFFCFBFFF7F5F9EFEFFFFEFEFFFBFB2A08083100023500004808084401004100 - 00470703390000480B093700004709093A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00003F00023A00004405073700004506 - 083800004403053D00004100023A00004605073900004706083A00004403053F - 00004101013C00004606053900004707063A00004404033F00004101003C0000 - 4606053900004707063A00004404034000004D0A073F00005212113A00005407 - 0B400003FFE2E3FFFEFCFFFEFEFFFDFEFFFAFCFFFAFCFFFDFBFFFFFBFFF7F1FF - F9F6FFF5F4FFFBFDFFF4F7FFFBFEFFF1F4FFFBFEFFF5F8FFFBFEFFF3F6FFFAFD - FFF4F7FFFBFEFFF2F4FFFCFEFFF6F8FFFCFEFFF5F4FFFCFBFFF6F5FFFDFCFFF3 - F2FFFDFCFFF7F6FFFDFCFFF5F4FFFCFBFFF6F5FFFDFCFFF3F2FFFDFCFFF7F6FF - FDFCFFF5F4FFFDFBFFF6F5FFFEFCFFF3F2FFFEFCFFF7F6FFFEFCFFFDFCFFFEFC - FFF9F8FFFEFCFFF5F4FFFEFCFFF8F7FFFEFCFFFEFEFFFEFEFFFCFC1E00004918 - 1A3300005313133C00004401003D00004606053700004507073800004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000013E00 - 013D01023C00004001033C00004001033D00003E00013E00013F00023C000040 - 01033E00004201033F00004000014000004101003E00004202013E0000420201 - 3F00004000004000004101003E00004202013E00004202013F00004100003C00 - 004A07063A00004C0809480000470409300607290D0D1300002408082A000031 - 02041D00002108061C03002C100F2300002D0608270001330B0D2300002F0709 - 2A000232070A2600002E0608270001330B0D2200002C07092700022B090A1E00 - 002408071D0101290D0C190000250908200102280A091E00002608071F00012B - 0D0C1B0000270908210102280A091C00002408071D0101290D0C190000250908 - 1E0202260A091D01012105041900002A0E0D1900002D11101900002208081500 - 002B11111E00002500003703034D1112390000500F0E4300004201003E000040 - 02023C00004002023F00004000013D00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013D00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000004000013F00004201033E00004201 - 033E00004100024000004100004000004202023F00004500033E00003A010235 - 00033301033400023C0105380000390303330000360202350101370003380002 - 3B02053700013B02053700013A01043900033900033800023B02053700013B02 - 053500013A010437000335000334000037020533000037020533000036010435 - 0101350003340000370205330000370205330000380104350101350003340000 - 3702053300003702053300003601043501013500033400003702053300003702 - 053300003601043500033301033400023902053700003E02033C000041000240 - 00004100003F00004202023E00004201033E0000410002400001430204420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000013D00003E00004000014302044000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E00004100024000014000013F0000 - 4201033E00004201033E00004100024000014000013F00004201033E00004201 - 033E00004100024000014000013F00004201033E00004201033E000041000240 - 00014000013F00004201033E00004201033E0000410002400001430204420103 - 4000013D00003F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023F00004403053A00004706083900004605073C00004100023F00 - 004403053A00004706083900004605073C00004100023F00004403053A000047 - 06083900004605073C00004100023F00004403053A0000470608390000460507 - 3C00004100023B00003D00003F00004302044201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004201033A000049080A3900004A09 - 0B3900004605073E00004201033A000049080A3900004A090B3900004605073E - 00004201033A000049080A3900004A090B3900004605073E00004201033A0000 - 49080A3900004A090B3900004605073E00004403054201034000013D00003E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033E00 - 004706083900004C0B0D3900004A090B3900004201033E00004706083900004C - 0B0D3900004A090B3900004201033E00004706083900004C0B0D3900004A090B - 3900004201033E00004706083900004C0B0D3900004A090B3900004201033D00 - 003E00004000014302044201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004201033900004A090B3900004C0B0D3900004706083E - 00004201033900004A090B3900004C0B0D3900004706083E0000420103390000 - 4A090B3900004C0B0D3900004706083E00004201033900004A090B3900004C0B - 0D3900004706083E00004302044201034000013D00003E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033E00004605073900004A - 090B39000049080A3A00004201033E00004605073900004A090B39000049080A - 3A00004201033E00004605073900004A090B39000049080A3A00004201033E00 - 004605073900004A090B39000049080A3A00004201033C00003E000040000143 - 02044100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004100023C00004605073900004706083A00004403053F00004100023C0000 - 4605073900004706083A00004403053F00004100023C00004605073900004706 - 083A00004403053F00004100023C00004605073900004706083A00004403053F - 00004504064302044100023D00004000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000014000014100023E00004201033E0000420103 - 3F00004000014000014100023E00004201033E00004201033F00004000014000 - 014100023E00004201033E00004201033F00004000014000014100023E000042 - 01033E00004201033F00004000013D00003E0000400001430204} - end - object lblWelcome: TLabel - Left = 172 - Top = 10 - Width = 318 - Height = 50 - Caption = 'Welcome to the Metamod:Source (version) Setup Wizard' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -21 - Font.Name = 'Tahoma' - Font.Style = [] - ParentFont = False - WordWrap = True - end - object lblInfo1: TLabel - Left = 172 - Top = 82 - Width = 331 - Height = 26 - Caption = - 'This wizard will guide you through the installation of Metamod:S' + - 'ource (version).' - WordWrap = True - end - object lblInfo2: TLabel - Left = 172 - Top = 120 - Width = 335 - Height = 39 - Caption = - 'It is recommended that you close all other applications before s' + - 'tarting a setup for e.g. Half-Life 2 or other games. Otherwise y' + - 'ou should restart your system after this installation.' - WordWrap = True - end - object lblInfo3: TLabel - Left = 172 - Top = 176 - Width = 108 - Height = 13 - Caption = 'Click Next to continue.' - end - end - object jspLicense: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - object pnlLicense: TPanel - Left = 0 - Top = 0 - Width = 527 - Height = 49 - Align = alTop - BevelOuter = bvNone - Color = clWhite - TabOrder = 0 - object imgIcon1: TImage - Left = 486 - Top = 8 - Width = 32 - Height = 32 - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000002000 - 0000200806000000737A7AF40000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C000008ED4944415478DAD556096C54D7153D7FE6CFFC59BC321EE3F1162F60 - 833DB6C10B019C60410007D43649518480B64924BAD0D00401A58AD456EA42A4 - 268A4848216D43054A55910588484A020D2EE09D181BDB78C106DB638FEDB1F1 - 18DBE3F12C7FFED2FBBFC1402090B46AAB3EE96966DEBCE5DC7BCF3DF732AB57 - 3F8EFFE6D06AB5686C6C80CBE5527F33FF8F00CC34B9AF7340969529836120B1 - 2C3BDED07001C3C3C35F19004B7339CDB5744911DD9328430E67C02817D264EE - 7B58926408A20893914320C08B3A1DDBD9D3D3BDB7B3B3E3FDAF02600341DF29 - 8872BE286BC1EA39707AFA6419D5A2202F83E74380C883D5021A0D73D7E346A3 - 1E3F78E69B489D930247B71307DEF9580182CB97DBB7381C3D7FF832007134F7 - 0BA2F494ACE1101F6B4656BC0F732CE3B09A791875324472ABC7CF6060C288F6 - E128740C6AE1F54E41AF9566BC120886B0A2380BDF5B5F8ADFED3B8A977EB20E - 474FD4E2A393B5049819AFACACB0DF0B400645EC3819362F26D68255760F8A13 - 5D88B725C2146B87C69C044617465B44C8C1318426AEC0E36A419B730A7FBFFA - 102E748A80E023B269542F994D9C1227F294803FEEDE80831F36A0ACBC590D49 - 7D7DDDFA2F02502C3FC70B4CC6FC0C2B36E5B6213BD10073E626B0519960345A - C892A0D00A924C618086EE26DF0B531086CEC1DD7E0CA77A5270AC2E0281A949 - C54A8ABF043E24E1575B164267B6E2B7FBCB2189210A234B002E6CBE1D8086E6 - DFC8F235F6F9B3F1C385E7911C1B0EA3FD456828759A1D22AE793420C354F215 - A6F230734A9C152611109D19D24407BC4D7B503698834395B3C0FB271122BC1B - 4B6D5856908C1D7B9BE0A330190D3A088218AAAAAA58C19496AE515D45F35951 - 940FC6C55BB1BDA41369BA361873B781E1ACD02288CFDA67C1311E01032B4224 - 721526B8919B14002FDE229E863523D47F0ABEDE933836B00A7F39A34141860E - AF6F5F884FEAFCE8EC19414B970703435E0C0D0D5636355D5CCBE4E717107B35 - E6A8A8E866B0E6B4CDAB24AC8CFA94DC351BBAF4F58A79D03012DA5D61180B18 - 31EC35C0E531C0C28DE3E9FC6BE40D8AF50C021DE4C93EF08E0F302E5AF04A4D - 31A6A6043C5A10A7440D1CC7A2B27114DDCE71345EACFBB1DBED7E8BD1EBF588 - 8B8B5B3F37D3FE6E669A053B1757221A2E30FA30B0B615605813794702AB91C1 - E944B40E46E2484B32B990C7A6050EA4C70AAA17981B00C4894E88A3F5F4A084 - F29102BC713A1641BF173733D4C8E9303939DE535B5B53425E77AACB0B16E4BF - 1F13F7D0D31B96C978D2F6992A9732B15C634E80262243BD4C3141A79531E4D1 - 615F7506A67816453627BEF3F02802218DCA03884188D79B2841FCAAFC8DF251 - 78B972097A9C93D0B1D308585687E6E6C657FBFB9DBB542122361A962C296E8B - B6C6A5EE5CD98B1C632318AD7EDAADF4B0C6685179408B30E9451CA88C468533 - 0D0612244E1EC32F4ABB1161A444080520FB06200B816952D2F11089C581D665 - 38D940DE632525D42442018F42BE502854AF02309BCDC9458B96B627265A4D2F - 9534205ED74BABBADB845C525D6B301AD03164C42F4FCE87DE14AD7A64CA17C2 - F78B9AF18D6C377D0F4E8BBEE2094C678A4CE9F651DF221CAC88849EE1A1D3E9 - 70F5EA950F3A3A2E6FA42D82BA2F2C2C2CBBA070496366BA95DDB5B41A167644 - B5F6F6A1643C47ECFFD9311BCE0F6722D512443817428B2B02B931DD78EDDB0E - 08127B8B8CEA1905630865AE3CEC3F1307AD1C5016C4EAEAAA755EAFF7F8CC3E - 05402101C8488FB901C07D1700935E467927879F7F9A05D61085AD4BDB616405 - BC7ACE0E569AC09E275A30CF16425060EE02F00F572EF69DB141AF1194D43B7F - F162C36AFAC733B38F42904221684D4A8CA110D4C3A673DE118269F64AD8FA5E - 323A3D69C8B47AF1C6130D18F3EBF1E2F185182652AEB7B7E285E56E7883B780 - DF0CC1C7BD853848BC51F4A3AEEEFC0B947A6FDEE15D62BC69C9D2475A2DD6B8 - 949D8F75C16E6EA130EA67DC19669070B4DE88D7CA73603499F0D3925694660C - 931831D85D361FA7AFC623DE3088031B3A10499D829F57C8379D968A0CFFB9B5 - 18279BF4084E5DEFABA9A95652CF716778D5345C782CC696FAD4A64702F856FC - 594AC3E9782AB2EB0BCAF8D1BBE918E293B138D98DDF3CDEA23EAE5854E9B010 - 885C88C4FC67165CC2D098041BF173D3121EFEA084EB41135EAE5A8ADE411E1D - 979BF7F4F5F56DFF62E55301D86CF1DFCDCEC97F675E6A38763C5C812876420D - 8362FD818A701C6AB0233A9CC5AF57372327DE4379AF55C185A8F0ED3A9107E7 - 7818BC93E3F0F21C526679F1F6C6AB30698328776560EFD964F0BE715F7575E5 - 63C160B0F69E00480BA2480B9A4C1131C99B974F6265ECE7249B7A38DC1A3C7F - 641E021A1B9ECCEEC3B647AFC02F686F1E839974E17063320E5D9843592223DA - 2460EE2C379E2BEC22D594F14A55212E39240C3ABB4EB4B5B5AEA323C17B0250 - 466242E2D6ACECBC3767CF8EC08E920E6484F7E3D250241A5C5698382D4A5287 - 610DE311923433C754659C34128054E42578A8405D872D22A0880D8E74CCC3E1 - 9A704A046FB0A6A66A9DCFE73B817B8C1900D4C57054984E455BE24BEC734CD8 - B2A81D49E113D4824D133240960B92A270CCF42995E6D37D2129377542B21A92 - 50C087B37D09F853790C756A3CDADA2EBDD5D7D7BB8D4EF0F705A00C83C19051 - 54B4E834678C4A9A9F66C2B3454ECC891CA5326B80ACD1DDD87E03C08DEF37B1 - 2875C017E471BA2B0E876B23C0533BD6EFEC296B6D6D798EFE75E24BC65D2D2D - E9C262F2C47B9C3132D932CB88B5797E14278F20C6A474315AA57ADC925BF28D - D221F979115D6E033EA19EA1B6430B860468A0BFF72C3DFE3CA55D1BEE33EED9 - 53731C97939565FFBD35366E9944D9906065919714C2DCD800628907D4D0A81D - AF27C0A07F5C8F9601035AFBB5540F04305250E8EABAF2576ABD77D35557F080 - 71BFA63ED266B36D494949DB6C0E8B4C97C972C5039C9E514BAB4C0002216ACB - 69529347BF7969D47DEDF3EEEEAEB73D1ECF87747EEC418F3F08C04D72A6582C - 96353131D695111111597ABDC14A65D500E55951F005027ED7D8D858D3C8C8B5 - B2C9C9C9725AEF03EEA84BFF1E80DB23433396A47B360130290BA2284E499244 - E51354C1E0FB1A77FD4B00FE23E37F0EE09F19A8E321D9E34DB9000000004945 - 4E44AE426082} - Stretch = True - Transparent = True - end - object lblTitle1: TLabel - Left = 12 - Top = 8 - Width = 116 - Height = 14 - Caption = 'License Agreement' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object lblSubTitle1: TLabel - Left = 22 - Top = 28 - Width = 408 - Height = 13 - Caption = - 'Please review the following license terms before installing Meta' + - 'mod:Source (version).' - end - object bvlSpacer1: TBevel - Left = 0 - Top = 46 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - end - object freLicense: TmxFlatRichEdit - Left = 10 - Top = 62 - Width = 507 - Height = 207 - Lines.Strings = ( - 'The zlib/libpng License' - '' - 'Copyright (c) 2006-2008, AlliedModders' - '' - - 'This software is provided '#39'as-is'#39', without any express or implie' + - 'd warranty. In no event will the ' - - 'authors be held liable for any damages arising from the use of t' + - 'his software.' - '' - - 'Permission is granted to anyone to use this software for any pur' + - 'pose, including commercial ' - - 'applications, and to alter it and redistribute it freely, subjec' + - 't to the following restrictions:' - '' - - ' 1. The origin of this software must not be misrepresented; y' + - 'ou must not claim that you wrote the ' - - 'original software. If you use this software in a product, an ack' + - 'nowledgment in the product ' - 'documentation would be appreciated but is not required.' - '' - - ' 2. Altered source versions must be plainly marked as such, a' + - 'nd must not be misrepresented as ' - 'being the original software.' - '' - - ' 3. This notice may not be removed or altered from any source' + - ' distribution.' - '') - ReadOnly = True - ScrollBars = ssVertical - TabOrder = 1 - Activate = True - BorderColor = clBtnShadow - Flat = True - ShowBorder = True - Version = '1.26' - end - object frbAgree: TFlatRadioButton - Left = 10 - Top = 274 - Width = 231 - Height = 17 - Caption = 'I accept the terms in the License Agreement' - TabOrder = 2 - OnClick = CheckNext - end - object ftbDontAgree: TFlatRadioButton - Left = 10 - Top = 290 - Width = 265 - Height = 17 - Caption = 'I do not accept the terms in the License Agreement' - Checked = True - TabOrder = 3 - TabStop = True - OnClick = CheckNext - end - end - object jspInstallMethod: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - object lblInstallMethod: TLabel - Left = 124 - Top = 124 - Width = 144 - Height = 13 - Caption = 'Please select a install method:' - end - object pnlHeader2: TPanel - Left = 0 - Top = 0 - Width = 527 - Height = 49 - Align = alTop - BevelOuter = bvNone - Color = clWhite - TabOrder = 0 - object imgIcon2: TImage - Left = 486 - Top = 8 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000002000 - 0000200806000000737A7AF40000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C000008ED4944415478DAD556096C54D7153D7FE6CFFC59BC321EE3F1162F60 - 833DB6C10B019C60410007D43649518480B64924BAD0D00401A58AD456EA42A4 - 268A4848216D43054A55910588484A020D2EE09D181BDB78C106DB638FEDB1F1 - 18DBE3F12C7FFED2FBBFC1402090B46AAB3EE96966DEBCE5DC7BCF3DF732AB57 - 3F8EFFE6D06AB5686C6C80CBE5527F33FF8F00CC34B9AF7340969529836120B1 - 2C3BDED07001C3C3C35F19004B7339CDB5744911DD9328430E67C02817D264EE - 7B58926408A20893914320C08B3A1DDBD9D3D3BDB7B3B3E3FDAF02600341DF29 - 8872BE286BC1EA39707AFA6419D5A2202F83E74380C883D5021A0D73D7E346A3 - 1E3F78E69B489D930247B71307DEF9580182CB97DBB7381C3D7FF832007134F7 - 0BA2F494ACE1101F6B4656BC0F732CE3B09A791875324472ABC7CF6060C288F6 - E128740C6AE1F54E41AF9566BC120886B0A2380BDF5B5F8ADFED3B8A977EB20E - 474FD4E2A393B5049819AFACACB0DF0B400645EC3819362F26D68255760F8A13 - 5D88B725C2146B87C69C044617465B44C8C1318426AEC0E36A419B730A7FBFFA - 102E748A80E023B269542F994D9C1227F294803FEEDE80831F36A0ACBC590D49 - 7D7DDDFA2F02502C3FC70B4CC6FC0C2B36E5B6213BD10073E626B0519960345A - C892A0D00A924C618086EE26DF0B531086CEC1DD7E0CA77A5270AC2E0281A949 - C54A8ABF043E24E1575B164267B6E2B7FBCB2189210A234B002E6CBE1D8086E6 - DFC8F235F6F9B3F1C385E7911C1B0EA3FD456828759A1D22AE793420C354F215 - A6F230734A9C152611109D19D24407BC4D7B503698834395B3C0FB271122BC1B - 4B6D5856908C1D7B9BE0A330190D3A088218AAAAAA58C19496AE515D45F35951 - 940FC6C55BB1BDA41369BA361873B781E1ACD02288CFDA67C1311E01032B4224 - 721526B8919B14002FDE229E863523D47F0ABEDE933836B00A7F39A34141860E - AF6F5F884FEAFCE8EC19414B970703435E0C0D0D5636355D5CCBE4E717107B35 - E6A8A8E866B0E6B4CDAB24AC8CFA94DC351BBAF4F58A79D03012DA5D61180B18 - 31EC35C0E531C0C28DE3E9FC6BE40D8AF50C021DE4C93EF08E0F302E5AF04A4D - 31A6A6043C5A10A7440D1CC7A2B27114DDCE71345EACFBB1DBED7E8BD1EBF588 - 8B8B5B3F37D3FE6E669A053B1757221A2E30FA30B0B615605813794702AB91C1 - E944B40E46E2484B32B990C7A6050EA4C70AAA17981B00C4894E88A3F5F4A084 - F29102BC713A1641BF173733D4C8E9303939DE535B5B53425E77AACB0B16E4BF - 1F13F7D0D31B96C978D2F6992A9732B15C634E80262243BD4C3141A79531E4D1 - 615F7506A67816453627BEF3F02802218DCA03884188D79B2841FCAAFC8DF251 - 78B972097A9C93D0B1D308585687E6E6C657FBFB9DBB542122361A962C296E8B - B6C6A5EE5CD98B1C632318AD7EDAADF4B0C6685179408B30E9451CA88C468533 - 0D0612244E1EC32F4ABB1161A444080520FB06200B816952D2F11089C581D665 - 38D940DE632525D42442018F42BE502854AF02309BCDC9458B96B627265A4D2F - 9534205ED74BABBADB845C525D6B301AD03164C42F4FCE87DE14AD7A64CA17C2 - F78B9AF18D6C377D0F4E8BBEE2094C678A4CE9F651DF221CAC88849EE1A1D3E9 - 70F5EA950F3A3A2E6FA42D82BA2F2C2C2CBBA070496366BA95DDB5B41A167644 - B5F6F6A1643C47ECFFD9311BCE0F6722D512443817428B2B02B931DD78EDDB0E - 08127B8B8CEA1905630865AE3CEC3F1307AD1C5016C4EAEAAA755EAFF7F8CC3E - 05402101C8488FB901C07D1700935E467927879F7F9A05D61085AD4BDB616405 - BC7ACE0E569AC09E275A30CF16425060EE02F00F572EF69DB141AF1194D43B7F - F162C36AFAC733B38F42904221684D4A8CA110D4C3A673DE118269F64AD8FA5E - 323A3D69C8B47AF1C6130D18F3EBF1E2F185182652AEB7B7E285E56E7883B780 - DF0CC1C7BD853848BC51F4A3AEEEFC0B947A6FDEE15D62BC69C9D2475A2DD6B8 - 949D8F75C16E6EA130EA67DC19669070B4DE88D7CA73603499F0D3925694660C - 931831D85D361FA7AFC623DE3088031B3A10499D829F57C8379D968A0CFFB9B5 - 18279BF4084E5DEFABA9A95652CF716778D5345C782CC696FAD4A64702F856FC - 594AC3E9782AB2EB0BCAF8D1BBE918E293B138D98DDF3CDEA23EAE5854E9B010 - 885C88C4FC67165CC2D098041BF173D3121EFEA084EB41135EAE5A8ADE411E1D - 979BF7F4F5F56DFF62E55301D86CF1DFCDCEC97F675E6A38763C5C812876420D - 8362FD818A701C6AB0233A9CC5AF57372327DE4379AF55C185A8F0ED3A9107E7 - 7818BC93E3F0F21C526679F1F6C6AB30698328776560EFD964F0BE715F7575E5 - 63C160B0F69E00480BA2480B9A4C1131C99B974F6265ECE7249B7A38DC1A3C7F - 641E021A1B9ECCEEC3B647AFC02F686F1E839974E17063320E5D9843592223DA - 2460EE2C379E2BEC22D594F14A55212E39240C3ABB4EB4B5B5AEA323C17B0250 - 466242E2D6ACECBC3767CF8EC08E920E6484F7E3D250241A5C5698382D4A5287 - 610DE311923433C754659C34128054E42578A8405D872D22A0880D8E74CCC3E1 - 9A704A046FB0A6A66A9DCFE73B817B8C1900D4C57054984E455BE24BEC734CD8 - B2A81D49E113D4824D133240960B92A270CCF42995E6D37D2129377542B21A92 - 50C087B37D09F853790C756A3CDADA2EBDD5D7D7BB8D4EF0F705A00C83C19051 - 54B4E834678C4A9A9F66C2B3454ECC891CA5326B80ACD1DDD87E03C08DEF37B1 - 2875C017E471BA2B0E876B23C0533BD6EFEC296B6D6D798EFE75E24BC65D2D2D - E9C262F2C47B9C3132D932CB88B5797E14278F20C6A474315AA57ADC925BF28D - D221F979115D6E033EA19EA1B6430B860468A0BFF72C3DFE3CA55D1BEE33EED9 - 53731C97939565FFBD35366E9944D9906065919714C2DCD800628907D4D0A81D - AF27C0A07F5C8F9601035AFBB5540F04305250E8EABAF2576ABD77D35557F080 - 71BFA63ED266B36D494949DB6C0E8B4C97C972C5039C9E514BAB4C0002216ACB - 69529347BF7969D47DEDF3EEEEAEB73D1ECF87747EEC418F3F08C04D72A6582C - 96353131D695111111597ABDC14A65D500E55951F005027ED7D8D858D3C8C8B5 - B2C9C9C9725AEF03EEA84BFF1E80DB23433396A47B360130290BA2284E499244 - E51354C1E0FB1A77FD4B00FE23E37F0EE09F19A8E321D9E34DB9000000004945 - 4E44AE426082} - Transparent = True - end - object lblTitle2: TLabel - Left = 12 - Top = 8 - Width = 137 - Height = 14 - Caption = 'Choose install method' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object lblSubTitle2: TLabel - Left = 22 - Top = 28 - Width = 263 - Height = 13 - Caption = 'Choose a install method for installing Metamod:Source.' - end - object bvlSpacer2: TBevel - Left = 0 - Top = 46 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - end - object pnlInstallMethod: TPanel - Left = 122 - Top = 142 - Width = 267 - Height = 97 - BevelOuter = bvLowered - TabOrder = 1 - object frbDedicatedServer: TFlatRadioButton - Left = 4 - Top = 4 - Width = 135 - Height = 17 - Caption = 'Steam Dedicated Server' - Checked = True - TabOrder = 0 - TabStop = True - end - object frbListenServer: TFlatRadioButton - Left = 4 - Top = 22 - Width = 115 - Height = 17 - Caption = 'Steam Listen Server' - TabOrder = 1 - end - object frbSelectMod: TFlatRadioButton - Left = 4 - Top = 58 - Width = 117 - Height = 17 - Caption = 'Select mod directory' - TabOrder = 3 - end - object frbFTP: TFlatRadioButton - Left = 4 - Top = 76 - Width = 35 - Height = 17 - Caption = 'FTP' - TabOrder = 4 - end - object frbStandaloneServer: TFlatRadioButton - Left = 4 - Top = 40 - Width = 107 - Height = 17 - Caption = 'Standalone Server' - TabOrder = 2 - end - end - end - object jspSelectMod: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - object lblInfo: TLabel - Left = 138 - Top = 114 - Width = 255 - Height = 26 - Caption = - 'The following mods were detected. Please select the mod you want' + - ' to install Metamod:Source to:' - WordWrap = True - end - object shpMods: TShape - Left = 136 - Top = 142 - Width = 255 - Height = 104 - Pen.Color = clBtnShadow - end - object pnlSelectMod: TPanel - Left = 0 - Top = 0 - Width = 527 - Height = 49 - Align = alTop - BevelOuter = bvNone - Color = clWhite - TabOrder = 0 - object imgIcon5: TImage - Left = 486 - Top = 8 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000002000 - 0000200806000000737A7AF40000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C000008ED4944415478DAD556096C54D7153D7FE6CFFC59BC321EE3F1162F60 - 833DB6C10B019C60410007D43649518480B64924BAD0D00401A58AD456EA42A4 - 268A4848216D43054A55910588484A020D2EE09D181BDB78C106DB638FEDB1F1 - 18DBE3F12C7FFED2FBBFC1402090B46AAB3EE96966DEBCE5DC7BCF3DF732AB57 - 3F8EFFE6D06AB5686C6C80CBE5527F33FF8F00CC34B9AF7340969529836120B1 - 2C3BDED07001C3C3C35F19004B7339CDB5744911DD9328430E67C02817D264EE - 7B58926408A20893914320C08B3A1DDBD9D3D3BDB7B3B3E3FDAF02600341DF29 - 8872BE286BC1EA39707AFA6419D5A2202F83E74380C883D5021A0D73D7E346A3 - 1E3F78E69B489D930247B71307DEF9580182CB97DBB7381C3D7FF832007134F7 - 0BA2F494ACE1101F6B4656BC0F732CE3B09A791875324472ABC7CF6060C288F6 - E128740C6AE1F54E41AF9566BC120886B0A2380BDF5B5F8ADFED3B8A977EB20E - 474FD4E2A393B5049819AFACACB0DF0B400645EC3819362F26D68255760F8A13 - 5D88B725C2146B87C69C044617465B44C8C1318426AEC0E36A419B730A7FBFFA - 102E748A80E023B269542F994D9C1227F294803FEEDE80831F36A0ACBC590D49 - 7D7DDDFA2F02502C3FC70B4CC6FC0C2B36E5B6213BD10073E626B0519960345A - C892A0D00A924C618086EE26DF0B531086CEC1DD7E0CA77A5270AC2E0281A949 - C54A8ABF043E24E1575B164267B6E2B7FBCB2189210A234B002E6CBE1D8086E6 - DFC8F235F6F9B3F1C385E7911C1B0EA3FD456828759A1D22AE793420C354F215 - A6F230734A9C152611109D19D24407BC4D7B503698834395B3C0FB271122BC1B - 4B6D5856908C1D7B9BE0A330190D3A088218AAAAAA58C19496AE515D45F35951 - 940FC6C55BB1BDA41369BA361873B781E1ACD02288CFDA67C1311E01032B4224 - 721526B8919B14002FDE229E863523D47F0ABEDE933836B00A7F39A34141860E - AF6F5F884FEAFCE8EC19414B970703435E0C0D0D5636355D5CCBE4E717107B35 - E6A8A8E866B0E6B4CDAB24AC8CFA94DC351BBAF4F58A79D03012DA5D61180B18 - 31EC35C0E531C0C28DE3E9FC6BE40D8AF50C021DE4C93EF08E0F302E5AF04A4D - 31A6A6043C5A10A7440D1CC7A2B27114DDCE71345EACFBB1DBED7E8BD1EBF588 - 8B8B5B3F37D3FE6E669A053B1757221A2E30FA30B0B615605813794702AB91C1 - E944B40E46E2484B32B990C7A6050EA4C70AAA17981B00C4894E88A3F5F4A084 - F29102BC713A1641BF173733D4C8E9303939DE535B5B53425E77AACB0B16E4BF - 1F13F7D0D31B96C978D2F6992A9732B15C634E80262243BD4C3141A79531E4D1 - 615F7506A67816453627BEF3F02802218DCA03884188D79B2841FCAAFC8DF251 - 78B972097A9C93D0B1D308585687E6E6C657FBFB9DBB542122361A962C296E8B - B6C6A5EE5CD98B1C632318AD7EDAADF4B0C6685179408B30E9451CA88C468533 - 0D0612244E1EC32F4ABB1161A444080520FB06200B816952D2F11089C581D665 - 38D940DE632525D42442018F42BE502854AF02309BCDC9458B96B627265A4D2F - 9534205ED74BABBADB845C525D6B301AD03164C42F4FCE87DE14AD7A64CA17C2 - F78B9AF18D6C377D0F4E8BBEE2094C678A4CE9F651DF221CAC88849EE1A1D3E9 - 70F5EA950F3A3A2E6FA42D82BA2F2C2C2CBBA070496366BA95DDB5B41A167644 - B5F6F6A1643C47ECFFD9311BCE0F6722D512443817428B2B02B931DD78EDDB0E - 08127B8B8CEA1905630865AE3CEC3F1307AD1C5016C4EAEAAA755EAFF7F8CC3E - 05402101C8488FB901C07D1700935E467927879F7F9A05D61085AD4BDB616405 - BC7ACE0E569AC09E275A30CF16425060EE02F00F572EF69DB141AF1194D43B7F - F162C36AFAC733B38F42904221684D4A8CA110D4C3A673DE118269F64AD8FA5E - 323A3D69C8B47AF1C6130D18F3EBF1E2F185182652AEB7B7E285E56E7883B780 - DF0CC1C7BD853848BC51F4A3AEEEFC0B947A6FDEE15D62BC69C9D2475A2DD6B8 - 949D8F75C16E6EA130EA67DC19669070B4DE88D7CA73603499F0D3925694660C - 931831D85D361FA7AFC623DE3088031B3A10499D829F57C8379D968A0CFFB9B5 - 18279BF4084E5DEFABA9A95652CF716778D5345C782CC696FAD4A64702F856FC - 594AC3E9782AB2EB0BCAF8D1BBE918E293B138D98DDF3CDEA23EAE5854E9B010 - 885C88C4FC67165CC2D098041BF173D3121EFEA084EB41135EAE5A8ADE411E1D - 979BF7F4F5F56DFF62E55301D86CF1DFCDCEC97F675E6A38763C5C812876420D - 8362FD818A701C6AB0233A9CC5AF57372327DE4379AF55C185A8F0ED3A9107E7 - 7818BC93E3F0F21C526679F1F6C6AB30698328776560EFD964F0BE715F7575E5 - 63C160B0F69E00480BA2480B9A4C1131C99B974F6265ECE7249B7A38DC1A3C7F - 641E021A1B9ECCEEC3B647AFC02F686F1E839974E17063320E5D9843592223DA - 2460EE2C379E2BEC22D594F14A55212E39240C3ABB4EB4B5B5AEA323C17B0250 - 466242E2D6ACECBC3767CF8EC08E920E6484F7E3D250241A5C5698382D4A5287 - 610DE311923433C754659C34128054E42578A8405D872D22A0880D8E74CCC3E1 - 9A704A046FB0A6A66A9DCFE73B817B8C1900D4C57054984E455BE24BEC734CD8 - B2A81D49E113D4824D133240960B92A270CCF42995E6D37D2129377542B21A92 - 50C087B37D09F853790C756A3CDADA2EBDD5D7D7BB8D4EF0F705A00C83C19051 - 54B4E834678C4A9A9F66C2B3454ECC891CA5326B80ACD1DDD87E03C08DEF37B1 - 2875C017E471BA2B0E876B23C0533BD6EFEC296B6D6D798EFE75E24BC65D2D2D - E9C262F2C47B9C3132D932CB88B5797E14278F20C6A474315AA57ADC925BF28D - D221F979115D6E033EA19EA1B6430B860468A0BFF72C3DFE3CA55D1BEE33EED9 - 53731C97939565FFBD35366E9944D9906065919714C2DCD800628907D4D0A81D - AF27C0A07F5C8F9601035AFBB5540F04305250E8EABAF2576ABD77D35557F080 - 71BFA63ED266B36D494949DB6C0E8B4C97C972C5039C9E514BAB4C0002216ACB - 69529347BF7969D47DEDF3EEEEAEB73D1ECF87747EEC418F3F08C04D72A6582C - 96353131D695111111597ABDC14A65D500E55951F005027ED7D8D858D3C8C8B5 - B2C9C9C9725AEF03EEA84BFF1E80DB23433396A47B360130290BA2284E499244 - E51354C1E0FB1A77FD4B00FE23E37F0EE09F19A8E321D9E34DB9000000004945 - 4E44AE426082} - Stretch = True - Transparent = True - end - object lblSelectMod: TLabel - Left = 12 - Top = 8 - Width = 68 - Height = 14 - Caption = 'Select Mod' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object lblSelectModInfo: TLabel - Left = 22 - Top = 28 - Width = 332 - Height = 13 - Caption = - 'Please select the mod Metamod:Source (version) shall be installe' + - 'd to.' - end - object bvlSelectMod: TBevel - Left = 0 - Top = 46 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - end - object trvMods: TTreeView - Left = 137 - Top = 143 - Width = 253 - Height = 102 - BorderStyle = bsNone - Indent = 19 - MultiSelectStyle = [] - ReadOnly = True - RightClickSelect = True - RowSelect = True - TabOrder = 1 - OnClick = trvModsClick - end - end - object jspFTP: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - object lblStep1: TLabel - Left = 44 - Top = 56 - Width = 100 - Height = 13 - Caption = '1. Set your FTP data' - end - object lblStep2: TLabel - Left = 44 - Top = 146 - Width = 244 - Height = 13 - Caption = '2. Connect to server and select the mod directory:' - end - object lblStep5: TLabel - Left = 44 - Top = 338 - Width = 64 - Height = 13 - Caption = '5. Click Next.' - end - object lblStep3: TLabel - Left = 44 - Top = 252 - Width = 223 - Height = 13 - Caption = '3. Select the operating system of your server:' - end - object lblStep4: TLabel - Left = 44 - Top = 296 - Width = 125 - Height = 13 - Caption = '4. Select the engine type:' - end - object pnlHeader3: TPanel - Left = 0 - Top = 0 - Width = 527 - Height = 49 - Align = alTop - BevelOuter = bvNone - Color = clWhite - TabOrder = 0 - object imgIcon3: TImage - Left = 486 - Top = 8 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000002000 - 0000200806000000737A7AF40000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C000008ED4944415478DAD556096C54D7153D7FE6CFFC59BC321EE3F1162F60 - 833DB6C10B019C60410007D43649518480B64924BAD0D00401A58AD456EA42A4 - 268A4848216D43054A55910588484A020D2EE09D181BDB78C106DB638FEDB1F1 - 18DBE3F12C7FFED2FBBFC1402090B46AAB3EE96966DEBCE5DC7BCF3DF732AB57 - 3F8EFFE6D06AB5686C6C80CBE5527F33FF8F00CC34B9AF7340969529836120B1 - 2C3BDED07001C3C3C35F19004B7339CDB5744911DD9328430E67C02817D264EE - 7B58926408A20893914320C08B3A1DDBD9D3D3BDB7B3B3E3FDAF02600341DF29 - 8872BE286BC1EA39707AFA6419D5A2202F83E74380C883D5021A0D73D7E346A3 - 1E3F78E69B489D930247B71307DEF9580182CB97DBB7381C3D7FF832007134F7 - 0BA2F494ACE1101F6B4656BC0F732CE3B09A791875324472ABC7CF6060C288F6 - E128740C6AE1F54E41AF9566BC120886B0A2380BDF5B5F8ADFED3B8A977EB20E - 474FD4E2A393B5049819AFACACB0DF0B400645EC3819362F26D68255760F8A13 - 5D88B725C2146B87C69C044617465B44C8C1318426AEC0E36A419B730A7FBFFA - 102E748A80E023B269542F994D9C1227F294803FEEDE80831F36A0ACBC590D49 - 7D7DDDFA2F02502C3FC70B4CC6FC0C2B36E5B6213BD10073E626B0519960345A - C892A0D00A924C618086EE26DF0B531086CEC1DD7E0CA77A5270AC2E0281A949 - C54A8ABF043E24E1575B164267B6E2B7FBCB2189210A234B002E6CBE1D8086E6 - DFC8F235F6F9B3F1C385E7911C1B0EA3FD456828759A1D22AE793420C354F215 - A6F230734A9C152611109D19D24407BC4D7B503698834395B3C0FB271122BC1B - 4B6D5856908C1D7B9BE0A330190D3A088218AAAAAA58C19496AE515D45F35951 - 940FC6C55BB1BDA41369BA361873B781E1ACD02288CFDA67C1311E01032B4224 - 721526B8919B14002FDE229E863523D47F0ABEDE933836B00A7F39A34141860E - AF6F5F884FEAFCE8EC19414B970703435E0C0D0D5636355D5CCBE4E717107B35 - E6A8A8E866B0E6B4CDAB24AC8CFA94DC351BBAF4F58A79D03012DA5D61180B18 - 31EC35C0E531C0C28DE3E9FC6BE40D8AF50C021DE4C93EF08E0F302E5AF04A4D - 31A6A6043C5A10A7440D1CC7A2B27114DDCE71345EACFBB1DBED7E8BD1EBF588 - 8B8B5B3F37D3FE6E669A053B1757221A2E30FA30B0B615605813794702AB91C1 - E944B40E46E2484B32B990C7A6050EA4C70AAA17981B00C4894E88A3F5F4A084 - F29102BC713A1641BF173733D4C8E9303939DE535B5B53425E77AACB0B16E4BF - 1F13F7D0D31B96C978D2F6992A9732B15C634E80262243BD4C3141A79531E4D1 - 615F7506A67816453627BEF3F02802218DCA03884188D79B2841FCAAFC8DF251 - 78B972097A9C93D0B1D308585687E6E6C657FBFB9DBB542122361A962C296E8B - B6C6A5EE5CD98B1C632318AD7EDAADF4B0C6685179408B30E9451CA88C468533 - 0D0612244E1EC32F4ABB1161A444080520FB06200B816952D2F11089C581D665 - 38D940DE632525D42442018F42BE502854AF02309BCDC9458B96B627265A4D2F - 9534205ED74BABBADB845C525D6B301AD03164C42F4FCE87DE14AD7A64CA17C2 - F78B9AF18D6C377D0F4E8BBEE2094C678A4CE9F651DF221CAC88849EE1A1D3E9 - 70F5EA950F3A3A2E6FA42D82BA2F2C2C2CBBA070496366BA95DDB5B41A167644 - B5F6F6A1643C47ECFFD9311BCE0F6722D512443817428B2B02B931DD78EDDB0E - 08127B8B8CEA1905630865AE3CEC3F1307AD1C5016C4EAEAAA755EAFF7F8CC3E - 05402101C8488FB901C07D1700935E467927879F7F9A05D61085AD4BDB616405 - BC7ACE0E569AC09E275A30CF16425060EE02F00F572EF69DB141AF1194D43B7F - F162C36AFAC733B38F42904221684D4A8CA110D4C3A673DE118269F64AD8FA5E - 323A3D69C8B47AF1C6130D18F3EBF1E2F185182652AEB7B7E285E56E7883B780 - DF0CC1C7BD853848BC51F4A3AEEEFC0B947A6FDEE15D62BC69C9D2475A2DD6B8 - 949D8F75C16E6EA130EA67DC19669070B4DE88D7CA73603499F0D3925694660C - 931831D85D361FA7AFC623DE3088031B3A10499D829F57C8379D968A0CFFB9B5 - 18279BF4084E5DEFABA9A95652CF716778D5345C782CC696FAD4A64702F856FC - 594AC3E9782AB2EB0BCAF8D1BBE918E293B138D98DDF3CDEA23EAE5854E9B010 - 885C88C4FC67165CC2D098041BF173D3121EFEA084EB41135EAE5A8ADE411E1D - 979BF7F4F5F56DFF62E55301D86CF1DFCDCEC97F675E6A38763C5C812876420D - 8362FD818A701C6AB0233A9CC5AF57372327DE4379AF55C185A8F0ED3A9107E7 - 7818BC93E3F0F21C526679F1F6C6AB30698328776560EFD964F0BE715F7575E5 - 63C160B0F69E00480BA2480B9A4C1131C99B974F6265ECE7249B7A38DC1A3C7F - 641E021A1B9ECCEEC3B647AFC02F686F1E839974E17063320E5D9843592223DA - 2460EE2C379E2BEC22D594F14A55212E39240C3ABB4EB4B5B5AEA323C17B0250 - 466242E2D6ACECBC3767CF8EC08E920E6484F7E3D250241A5C5698382D4A5287 - 610DE311923433C754659C34128054E42578A8405D872D22A0880D8E74CCC3E1 - 9A704A046FB0A6A66A9DCFE73B817B8C1900D4C57054984E455BE24BEC734CD8 - B2A81D49E113D4824D133240960B92A270CCF42995E6D37D2129377542B21A92 - 50C087B37D09F853790C756A3CDADA2EBDD5D7D7BB8D4EF0F705A00C83C19051 - 54B4E834678C4A9A9F66C2B3454ECC891CA5326B80ACD1DDD87E03C08DEF37B1 - 2875C017E471BA2B0E876B23C0533BD6EFEC296B6D6D798EFE75E24BC65D2D2D - E9C262F2C47B9C3132D932CB88B5797E14278F20C6A474315AA57ADC925BF28D - D221F979115D6E033EA19EA1B6430B860468A0BFF72C3DFE3CA55D1BEE33EED9 - 53731C97939565FFBD35366E9944D9906065919714C2DCD800628907D4D0A81D - AF27C0A07F5C8F9601035AFBB5540F04305250E8EABAF2576ABD77D35557F080 - 71BFA63ED266B36D494949DB6C0E8B4C97C972C5039C9E514BAB4C0002216ACB - 69529347BF7969D47DEDF3EEEEAEB73D1ECF87747EEC418F3F08C04D72A6582C - 96353131D695111111597ABDC14A65D500E55951F005027ED7D8D858D3C8C8B5 - B2C9C9C9725AEF03EEA84BFF1E80DB23433396A47B360130290BA2284E499244 - E51354C1E0FB1A77FD4B00FE23E37F0EE09F19A8E321D9E34DB9000000004945 - 4E44AE426082} - Transparent = True - end - object lblTitle3: TLabel - Left = 12 - Top = 8 - Width = 269 - Height = 14 - Caption = 'Installing Metamod:Source (version) via FTP' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object lblSubTitle3: TLabel - Left = 22 - Top = 28 - Width = 189 - Height = 13 - Caption = 'Do the following steps and press Next. ' - end - object bvlSpacer3: TBevel - Left = 0 - Top = 46 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - end - object pnlFTPData: TPanel - Left = 44 - Top = 72 - Width = 441 - Height = 64 - BevelOuter = bvLowered - TabOrder = 1 - object lblHost: TLabel - Left = 4 - Top = 4 - Width = 26 - Height = 13 - Caption = 'Host:' - end - object lblUserName: TLabel - Left = 180 - Top = 6 - Width = 52 - Height = 13 - Caption = 'Username:' - end - object lblPassword: TLabel - Left = 308 - Top = 4 - Width = 50 - Height = 13 - Caption = 'Password:' - end - object lblPort: TLabel - Left = 132 - Top = 4 - Width = 24 - Height = 13 - Caption = 'Port:' - end - object txtHost: TFlatEdit - Left = 4 - Top = 20 - Width = 121 - Height = 19 - ColorFlat = clBtnFace - ParentColor = True - TabOrder = 0 - end - object txtUserName: TFlatEdit - Left = 180 - Top = 20 - Width = 121 - Height = 19 - ColorFlat = clBtnFace - ParentColor = True - TabOrder = 2 - end - object txtPassword: TFlatEdit - Left = 308 - Top = 20 - Width = 127 - Height = 19 - ColorFlat = clBtnFace - ParentColor = True - PasswordChar = '*' - TabOrder = 3 - end - object txtPort: TFlatEdit - Left = 132 - Top = 20 - Width = 43 - Height = 19 - ColorFlat = clBtnFace - ParentColor = True - MaxLength = 5 - TabOrder = 1 - Text = '21' - OnChange = txtPortChange - end - object chkPassive: TFlatCheckBox - Left = 4 - Top = 44 - Width = 139 - Height = 16 - Caption = 'Use PASV (Passive) Mode' - Checked = True - TabOrder = 4 - TabStop = True - end - object cmdProxySettings: TFlatButton - Left = 350 - Top = 42 - Width = 83 - Height = 18 - ColorFocused = 16245198 - ColorDown = 16245198 - ColorHighLight = 8623776 - ColorShadow = 8623776 - Caption = 'Proxy-Settings' - TabOrder = 5 - OnClick = cmdProxySettingsClick - end - end - object cmdConnect: TFlatButton - Left = 416 - Top = 161 - Width = 71 - Height = 20 - ColorFocused = 16245198 - ColorDown = 16245198 - ColorBorder = clBtnShadow - ColorHighLight = clBtnShadow - ColorShadow = clBtnShadow - Caption = 'Connect' - TabOrder = 3 - OnClick = cmdConnectClick - end - object pnlDirectory: TPanel - Left = 44 - Top = 162 - Width = 367 - Height = 83 - BevelOuter = bvLowered - TabOrder = 2 - object trvDirectories: TTreeView - Left = 1 - Top = 1 - Width = 365 - Height = 81 - Align = alClient - BorderStyle = bsNone - Images = ilImages - Indent = 19 - TabOrder = 0 - OnChange = trvDirectoriesChange - OnCollapsing = trvDirectoriesCollapsing - OnExpanding = trvDirectoriesExpanding - OnExpanded = trvDirectoriesExpanded - OnMouseDown = trvDirectoriesMouseDown - end - end - object pnlOS: TPanel - Left = 44 - Top = 268 - Width = 441 - Height = 21 - BevelOuter = bvLowered - TabOrder = 4 - object optWindows: TFlatRadioButton - Left = 1 - Top = 3 - Width = 62 - Height = 14 - Caption = 'Windows' - Checked = True - TabOrder = 0 - TabStop = True - end - object optLinux: TFlatRadioButton - Left = 183 - Top = 3 - Width = 82 - Height = 14 - Caption = 'Linux (32-bit)' - TabOrder = 1 - end - object FlatRadioButton1: TFlatRadioButton - Left = 319 - Top = 3 - Width = 82 - Height = 14 - Caption = 'Linux (64-bit)' - Enabled = False - TabOrder = 2 - end - end - object pnlEngineType: TPanel - Left = 44 - Top = 312 - Width = 441 - Height = 21 - BevelOuter = bvLowered - TabOrder = 5 - object optAutoDetect: TFlatRadioButton - Left = 1 - Top = 3 - Width = 154 - Height = 14 - Caption = 'Auto-Detect (recommended)' - Checked = True - TabOrder = 0 - TabStop = True - end - object optSource: TFlatRadioButton - Left = 183 - Top = 3 - Width = 96 - Height = 15 - Caption = 'Source'#8482' Engine' - TabOrder = 1 - end - object optOrangeBox: TFlatRadioButton - Left = 319 - Top = 3 - Width = 118 - Height = 15 - Caption = 'OrangeBox'#8482' Engine' - TabOrder = 2 - end - end - end - object jspInstallProgress: TJvStandardPage - Left = 0 - Top = 0 - Width = 527 - Height = 314 - Caption = 'jspInstallProgress' - object ggeAll: TFlatGauge - Left = 8 - Top = 84 - Width = 509 - Height = 24 - AdvColorBorder = 0 - Color = clBtnFace - ColorBorder = 8623776 - MaxValue = 8 - Progress = 0 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - ParentColor = False - ParentFont = False - end - object lblProgress: TLabel - Left = 8 - Top = 66 - Width = 46 - Height = 13 - Caption = 'Progress:' - end - object ggeItem: TFlatGauge - Left = 8 - Top = 112 - Width = 509 - Height = 24 - AdvColorBorder = 0 - Color = clBtnFace - ColorBorder = 8623776 - Progress = 0 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -9 - Font.Name = 'Tahoma' - Font.Style = [] - ParentColor = False - ParentFont = False - end - object lblDetails: TLabel - Left = 10 - Top = 152 - Width = 36 - Height = 13 - Caption = 'Details:' - end - object bvlSpace2: TBevel - Left = 4 - Top = 142 - Width = 519 - Height = 3 - Shape = bsTopLine - end - object pnlHeader5: TPanel - Left = 0 - Top = 0 - Width = 527 - Height = 49 - Align = alTop - BevelOuter = bvNone - Color = clWhite - TabOrder = 0 - object imgIcon4: TImage - Left = 486 - Top = 8 - Width = 32 - Height = 32 - AutoSize = True - Picture.Data = { - 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000002000 - 0000200806000000737A7AF40000000467414D410000AFC837058AE900000019 - 74455874536F6674776172650041646F626520496D616765526561647971C965 - 3C000008ED4944415478DAD556096C54D7153D7FE6CFFC59BC321EE3F1162F60 - 833DB6C10B019C60410007D43649518480B64924BAD0D00401A58AD456EA42A4 - 268A4848216D43054A55910588484A020D2EE09D181BDB78C106DB638FEDB1F1 - 18DBE3F12C7FFED2FBBFC1402090B46AAB3EE96966DEBCE5DC7BCF3DF732AB57 - 3F8EFFE6D06AB5686C6C80CBE5527F33FF8F00CC34B9AF7340969529836120B1 - 2C3BDED07001C3C3C35F19004B7339CDB5744911DD9328430E67C02817D264EE - 7B58926408A20893914320C08B3A1DDBD9D3D3BDB7B3B3E3FDAF02600341DF29 - 8872BE286BC1EA39707AFA6419D5A2202F83E74380C883D5021A0D73D7E346A3 - 1E3F78E69B489D930247B71307DEF9580182CB97DBB7381C3D7FF832007134F7 - 0BA2F494ACE1101F6B4656BC0F732CE3B09A791875324472ABC7CF6060C288F6 - E128740C6AE1F54E41AF9566BC120886B0A2380BDF5B5F8ADFED3B8A977EB20E - 474FD4E2A393B5049819AFACACB0DF0B400645EC3819362F26D68255760F8A13 - 5D88B725C2146B87C69C044617465B44C8C1318426AEC0E36A419B730A7FBFFA - 102E748A80E023B269542F994D9C1227F294803FEEDE80831F36A0ACBC590D49 - 7D7DDDFA2F02502C3FC70B4CC6FC0C2B36E5B6213BD10073E626B0519960345A - C892A0D00A924C618086EE26DF0B531086CEC1DD7E0CA77A5270AC2E0281A949 - C54A8ABF043E24E1575B164267B6E2B7FBCB2189210A234B002E6CBE1D8086E6 - DFC8F235F6F9B3F1C385E7911C1B0EA3FD456828759A1D22AE793420C354F215 - A6F230734A9C152611109D19D24407BC4D7B503698834395B3C0FB271122BC1B - 4B6D5856908C1D7B9BE0A330190D3A088218AAAAAA58C19496AE515D45F35951 - 940FC6C55BB1BDA41369BA361873B781E1ACD02288CFDA67C1311E01032B4224 - 721526B8919B14002FDE229E863523D47F0ABEDE933836B00A7F39A34141860E - AF6F5F884FEAFCE8EC19414B970703435E0C0D0D5636355D5CCBE4E717107B35 - E6A8A8E866B0E6B4CDAB24AC8CFA94DC351BBAF4F58A79D03012DA5D61180B18 - 31EC35C0E531C0C28DE3E9FC6BE40D8AF50C021DE4C93EF08E0F302E5AF04A4D - 31A6A6043C5A10A7440D1CC7A2B27114DDCE71345EACFBB1DBED7E8BD1EBF588 - 8B8B5B3F37D3FE6E669A053B1757221A2E30FA30B0B615605813794702AB91C1 - E944B40E46E2484B32B990C7A6050EA4C70AAA17981B00C4894E88A3F5F4A084 - F29102BC713A1641BF173733D4C8E9303939DE535B5B53425E77AACB0B16E4BF - 1F13F7D0D31B96C978D2F6992A9732B15C634E80262243BD4C3141A79531E4D1 - 615F7506A67816453627BEF3F02802218DCA03884188D79B2841FCAAFC8DF251 - 78B972097A9C93D0B1D308585687E6E6C657FBFB9DBB542122361A962C296E8B - B6C6A5EE5CD98B1C632318AD7EDAADF4B0C6685179408B30E9451CA88C468533 - 0D0612244E1EC32F4ABB1161A444080520FB06200B816952D2F11089C581D665 - 38D940DE632525D42442018F42BE502854AF02309BCDC9458B96B627265A4D2F - 9534205ED74BABBADB845C525D6B301AD03164C42F4FCE87DE14AD7A64CA17C2 - F78B9AF18D6C377D0F4E8BBEE2094C678A4CE9F651DF221CAC88849EE1A1D3E9 - 70F5EA950F3A3A2E6FA42D82BA2F2C2C2CBBA070496366BA95DDB5B41A167644 - B5F6F6A1643C47ECFFD9311BCE0F6722D512443817428B2B02B931DD78EDDB0E - 08127B8B8CEA1905630865AE3CEC3F1307AD1C5016C4EAEAAA755EAFF7F8CC3E - 05402101C8488FB901C07D1700935E467927879F7F9A05D61085AD4BDB616405 - BC7ACE0E569AC09E275A30CF16425060EE02F00F572EF69DB141AF1194D43B7F - F162C36AFAC733B38F42904221684D4A8CA110D4C3A673DE118269F64AD8FA5E - 323A3D69C8B47AF1C6130D18F3EBF1E2F185182652AEB7B7E285E56E7883B780 - DF0CC1C7BD853848BC51F4A3AEEEFC0B947A6FDEE15D62BC69C9D2475A2DD6B8 - 949D8F75C16E6EA130EA67DC19669070B4DE88D7CA73603499F0D3925694660C - 931831D85D361FA7AFC623DE3088031B3A10499D829F57C8379D968A0CFFB9B5 - 18279BF4084E5DEFABA9A95652CF716778D5345C782CC696FAD4A64702F856FC - 594AC3E9782AB2EB0BCAF8D1BBE918E293B138D98DDF3CDEA23EAE5854E9B010 - 885C88C4FC67165CC2D098041BF173D3121EFEA084EB41135EAE5A8ADE411E1D - 979BF7F4F5F56DFF62E55301D86CF1DFCDCEC97F675E6A38763C5C812876420D - 8362FD818A701C6AB0233A9CC5AF57372327DE4379AF55C185A8F0ED3A9107E7 - 7818BC93E3F0F21C526679F1F6C6AB30698328776560EFD964F0BE715F7575E5 - 63C160B0F69E00480BA2480B9A4C1131C99B974F6265ECE7249B7A38DC1A3C7F - 641E021A1B9ECCEEC3B647AFC02F686F1E839974E17063320E5D9843592223DA - 2460EE2C379E2BEC22D594F14A55212E39240C3ABB4EB4B5B5AEA323C17B0250 - 466242E2D6ACECBC3767CF8EC08E920E6484F7E3D250241A5C5698382D4A5287 - 610DE311923433C754659C34128054E42578A8405D872D22A0880D8E74CCC3E1 - 9A704A046FB0A6A66A9DCFE73B817B8C1900D4C57054984E455BE24BEC734CD8 - B2A81D49E113D4824D133240960B92A270CCF42995E6D37D2129377542B21A92 - 50C087B37D09F853790C756A3CDADA2EBDD5D7D7BB8D4EF0F705A00C83C19051 - 54B4E834678C4A9A9F66C2B3454ECC891CA5326B80ACD1DDD87E03C08DEF37B1 - 2875C017E471BA2B0E876B23C0533BD6EFEC296B6D6D798EFE75E24BC65D2D2D - E9C262F2C47B9C3132D932CB88B5797E14278F20C6A474315AA57ADC925BF28D - D221F979115D6E033EA19EA1B6430B860468A0BFF72C3DFE3CA55D1BEE33EED9 - 53731C97939565FFBD35366E9944D9906065919714C2DCD800628907D4D0A81D - AF27C0A07F5C8F9601035AFBB5540F04305250E8EABAF2576ABD77D35557F080 - 71BFA63ED266B36D494949DB6C0E8B4C97C972C5039C9E514BAB4C0002216ACB - 69529347BF7969D47DEDF3EEEEAEB73D1ECF87747EEC418F3F08C04D72A6582C - 96353131D695111111597ABDC14A65D500E55951F005027ED7D8D858D3C8C8B5 - B2C9C9C9725AEF03EEA84BFF1E80DB23433396A47B360130290BA2284E499244 - E51354C1E0FB1A77FD4B00FE23E37F0EE09F19A8E321D9E34DB9000000004945 - 4E44AE426082} - Transparent = True - end - object lblTitle5: TLabel - Left = 12 - Top = 8 - Width = 223 - Height = 14 - Caption = 'Installing Metamod:Source (version)' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [fsBold] - ParentFont = False - end - object lblSubTitle5: TLabel - Left = 22 - Top = 28 - Width = 296 - Height = 13 - Caption = 'Please wait while Metamod:Source (version) is being installed.' - end - object bvlSpacer5: TBevel - Left = 0 - Top = 46 - Width = 527 - Height = 3 - Align = alBottom - Shape = bsBottomLine - end - end - object rtfDetails: TmxFlatRichEdit - Left = 8 - Top = 166 - Width = 509 - Height = 139 - ReadOnly = True - ScrollBars = ssVertical - TabOrder = 1 - Activate = True - BorderColor = clBtnShadow - Flat = True - ShowBorder = True - Version = '1.26' - end - end - end - object pnlButtons: TPanel - Left = 0 - Top = 317 - Width = 527 - Height = 38 - Align = alBottom - BevelOuter = bvNone - TabOrder = 1 - object cmdNext: TFlatButton - Left = 438 - Top = 7 - Width = 85 - Height = 25 - ColorFocused = 16245198 - ColorDown = 16245198 - ColorBorder = clBtnShadow - ColorHighLight = clBtnShadow - ColorShadow = clBtnShadow - Caption = '&Next >' - TabOrder = 0 - OnClick = cmdNextClick - end - object cmdCancel: TFlatButton - Left = 4 - Top = 7 - Width = 85 - Height = 25 - Color = clBtnFace - ColorFocused = 16245198 - ColorDown = 16245198 - ColorBorder = clBtnShadow - ColorHighLight = clBtnShadow - ColorShadow = clBtnShadow - Caption = '&Cancel' - ParentColor = False - TabOrder = 1 - OnClick = cmdCancelClick - end - object cmdBack: TFlatButton - Left = 348 - Top = 7 - Width = 85 - Height = 25 - ColorFocused = 16245198 - ColorDown = 16245198 - ColorBorder = clBtnShadow - ColorHighLight = clBtnShadow - ColorShadow = clBtnShadow - Caption = '< &Back' - TabOrder = 2 - Visible = False - OnClick = cmdBackClick - end - end - object ilImages: TImageList - Left = 334 - Top = 8 - Bitmap = { - 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000400000001000000001002000000000000010 - 00000000000000000000000000000000000000000000008CBD00008CBD00008C - BD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD00008CBD00008CBD00000000000000000000000000008CBD00008CBD00008C - BD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD00008CBD000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD0063CEF700008CBD00A5F7 - FF0063CEF70063CEF70063CEF70063CEF70063CEF70063CEF70063CEF70063CE - F70039ADDE00ADF7FF00008CBD0000000000008CBD0021A5CE005ACEEF0084E7 - FF0063CEF70063CEF70063CEF70063CEF70063CEF70063CEF70063CEF70063CE - F70039ADDE001094C60000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD006BD6F700008CBD00ADF7 - FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6 - FF0039ADDE00BDEFF700008CBD0000000000008CBD004ABDE70031ADD60094EF - FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6FF006BD6 - FF0039B5DE00CEF7FF00008CBD00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD0073D6FF00008CBD00ADF7 - FF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDE - FF0042B5DE00BDEFF700008CBD0000000000008CBD0073D6FF00008CBD00ADFF - FF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDEFF007BDE - FF0042B5DE00CEF7FF00008CBD00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD007BDEFF00008CBD00B5F7 - FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7 - FF0042B5DE00C6F7F700008CBD0000000000008CBD007BDEFF001094C60094EF - FF0094EFFF0084E7FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7FF0084E7 - FF004ABDE700CEF7FF001094C600000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD0084E7FF00008CBD00BDF7 - FF008CEFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEF - FF004ABDE700BDF7FF00008CBD0000000000008CBD0084E7FF0042B5DE005AC6 - EF00ADFFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEFFF008CEF - FF004ABDE700CEF7FF00CEF7FF00008CBD000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD008CEFFF00008CBD00D6F7 - FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7 - FF00BDDEDE00D6F7FF00008CBD0000000000008CBD008CE7FF007BDEFF0021A5 - CE00E7FFFF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7FF00CEF7 - FF0094EFFF00E7FFFF00CEF7FF00008CBD000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD0094F7FF00008CBD00008C - BD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD00008CBD00008CBD00008CBD0000000000008CBD0094F7FF0094F7FF001094 - C600008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD00008CBD00008CBD00008CBD00008CBD000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD009CF7FF009CF7FF009CF7 - FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7 - FF00008CBD00000000000000000000000000008CBD009CF7FF009CF7FF009CF7 - FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7FF009CF7 - FF00088CBD000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000008CBD00D6F7FF00A5F7FF00A5F7 - FF00A5F7FF00A5F7FF00A5F7FF00A5F7FF00A5F7FF00A5F7FF00A5F7FF00A5F7 - FF00008CBD00000000000000000000000000008CBD00E7FFFF00A5FFFF00A5FF - FF00A5FFFF00A5FFFF00A5FFFF00A5FFFF00A5FFFF00A5FFFF00A5FFFF00A5FF - FF00088CBD000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000008CBD00D6F7FF00A5F7 - FF00A5F7FF00A5F7FF00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD000000000000000000000000000000000000000000008CBD00E7FFFF00A5FF - FF00A5FFFF00A5FFFF00008CBD00008CBD00008CBD00008CBD00008CBD00008C - BD00000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000008CBD00008C - BD00008CBD00008CBD0000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000008CBD00008C - BD00008CBD00008CBD0000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000424D3E000000000000003E000000 - 2800000040000000100000000100010000000000800000000000000000000000 - 000000000000000000000000FFFFFF0080038007000000000001000300000000 - 0001000100000000000100010000000000010001000000000001000000000000 - 0001000000000000000100000000000000070007000000000007000700000000 - 800F800F00000000C3FFC3FF00000000FFFFFFFF00000000FFFFFFFF00000000 - FFFFFFFF00000000FFFFFFFF0000000000000000000000000000000000000000 - 000000000000} - end - object IdFTP: TIdFTP - Intercept = IdLogFile - MaxLineAction = maException - ReadTimeout = 0 - RecvBufferSize = 1024 - SendBufferSize = 1024 - OnWork = IdFTPWork - ProxySettings.ProxyType = fpcmNone - ProxySettings.Port = 0 - Left = 454 - Top = 8 - end - object IdAntiFreeze: TIdAntiFreeze - IdleTimeOut = 150 - Left = 424 - Top = 8 - end - object tmrSpeed: TTimer - Enabled = False - OnTimer = tmrSpeedTimer - Left = 394 - Top = 8 - end - object IdLogFile: TIdLogFile - LogTime = False - Left = 364 - Top = 8 - end -end diff --git a/installer/UnitfrmMain.pas b/installer/UnitfrmMain.pas deleted file mode 100644 index 2f810dc..0000000 --- a/installer/UnitfrmMain.pas +++ /dev/null @@ -1,803 +0,0 @@ -unit UnitfrmMain; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, TFlatRadioButtonUnit, StdCtrls, ComCtrls, mxFlatControls, JvPageList, - ExtCtrls, JvExControls, JvComponent, TFlatButtonUnit, jpeg, TFlatEditUnit, - TFlatGaugeUnit, ImgList, FileCtrl, Registry, CheckLst, TFlatComboBoxUnit, - TFlatCheckBoxUnit, IdBaseComponent, IdComponent, IdTCPConnection, - IdTCPClient, IdFTP, IdException, IdAntiFreezeBase, IdAntiFreeze, - IdIntercept, IdLogBase, IdLogFile, pngimage; - -type - TfrmMain = class(TForm) - jplWizard: TJvPageList; - jspWelcome: TJvStandardPage; - pnlButtons: TPanel; - bvlSpace: TBevel; - cmdNext: TFlatButton; - cmdCancel: TFlatButton; - imgInstall: TImage; - lblWelcome: TLabel; - lblInfo1: TLabel; - lblInfo2: TLabel; - lblInfo3: TLabel; - jspLicense: TJvStandardPage; - pnlLicense: TPanel; - imgIcon1: TImage; - lblTitle1: TLabel; - lblSubTitle1: TLabel; - freLicense: TmxFlatRichEdit; - frbAgree: TFlatRadioButton; - ftbDontAgree: TFlatRadioButton; - jspInstallMethod: TJvStandardPage; - pnlHeader2: TPanel; - imgIcon2: TImage; - lblTitle2: TLabel; - lblSubTitle2: TLabel; - lblInstallMethod: TLabel; - pnlInstallMethod: TPanel; - frbDedicatedServer: TFlatRadioButton; - frbListenServer: TFlatRadioButton; - frbSelectMod: TFlatRadioButton; - frbFTP: TFlatRadioButton; - cmdBack: TFlatButton; - jspFTP: TJvStandardPage; - pnlHeader3: TPanel; - imgIcon3: TImage; - lblTitle3: TLabel; - lblSubTitle3: TLabel; - lblStep1: TLabel; - pnlFTPData: TPanel; - lblHost: TLabel; - txtHost: TFlatEdit; - lblUserName: TLabel; - txtUserName: TFlatEdit; - txtPassword: TFlatEdit; - lblPassword: TLabel; - txtPort: TFlatEdit; - lblPort: TLabel; - lblStep2: TLabel; - cmdConnect: TFlatButton; - pnlDirectory: TPanel; - trvDirectories: TTreeView; - lblStep5: TLabel; - jspInstallProgress: TJvStandardPage; - pnlHeader5: TPanel; - imgIcon4: TImage; - lblTitle5: TLabel; - lblSubTitle5: TLabel; - ggeAll: TFlatGauge; - lblProgress: TLabel; - ggeItem: TFlatGauge; - rtfDetails: TmxFlatRichEdit; - lblDetails: TLabel; - bvlSpace2: TBevel; - ilImages: TImageList; - bvlSpacer1: TBevel; - bvlSpacer2: TBevel; - bvlSpacer3: TBevel; - bvlSpacer5: TBevel; - jspSelectMod: TJvStandardPage; - pnlSelectMod: TPanel; - imgIcon5: TImage; - lblSelectMod: TLabel; - lblSelectModInfo: TLabel; - bvlSelectMod: TBevel; - lblInfo: TLabel; - chkPassive: TFlatCheckBox; - lblStep3: TLabel; - pnlOS: TPanel; - optWindows: TFlatRadioButton; - optLinux: TFlatRadioButton; - IdFTP: TIdFTP; - cmdProxySettings: TFlatButton; - IdAntiFreeze: TIdAntiFreeze; - frbStandaloneServer: TFlatRadioButton; - tmrSpeed: TTimer; - IdLogFile: TIdLogFile; - shpMods: TShape; - trvMods: TTreeView; - FlatRadioButton1: TFlatRadioButton; - pnlEngineType: TPanel; - optAutoDetect: TFlatRadioButton; - optSource: TFlatRadioButton; - optOrangeBox: TFlatRadioButton; - lblStep4: TLabel; - procedure jvwStepsCancelButtonClick(Sender: TObject); - procedure cmdCancelClick(Sender: TObject); - procedure cmdNextClick(Sender: TObject); - procedure CheckNext(Sender: TObject); - procedure cmdBackClick(Sender: TObject); - procedure cmdConnectClick(Sender: TObject); - procedure jplWizardChange(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure cmdProxySettingsClick(Sender: TObject); - procedure txtPortChange(Sender: TObject); - procedure trvDirectoriesExpanded(Sender: TObject; Node: TTreeNode); - procedure trvDirectoriesChange(Sender: TObject; Node: TTreeNode); - procedure IdFTPWork(Sender: TObject; AWorkMode: TWorkMode; - const AWorkCount: Integer); - procedure FormClose(Sender: TObject; var Action: TCloseAction); - procedure tmrSpeedTimer(Sender: TObject); - procedure trvDirectoriesExpanding(Sender: TObject; Node: TTreeNode; - var AllowExpansion: Boolean); - procedure trvDirectoriesCollapsing(Sender: TObject; Node: TTreeNode; - var AllowCollapse: Boolean); - procedure trvModsClick(Sender: TObject); - procedure trvDirectoriesMouseDown(Sender: TObject; - Button: TMouseButton; Shift: TShiftState; X, Y: Integer); - private - OldProgress: Integer; - CurrProgress: Integer; - public - procedure ExceptionHandler(Sender: TObject; E: Exception); - end; - -var - frmMain: TfrmMain; - -var VERSION: String = ''; - -const NormalHeight = 382; - FTPHeight = 422; - -implementation - -uses UnitFunctions, UnitfrmProxy, UnitInstall, UnitSelectModPath; - -{$R *.dfm} - -procedure TfrmMain.jvwStepsCancelButtonClick(Sender: TObject); -begin - Close; -end; - -procedure TfrmMain.cmdCancelClick(Sender: TObject); -begin - Close; -end; - -procedure TfrmMain.cmdNextClick(Sender: TObject); -var ePath: String; - eRegistry: TRegistry; - eStr: TStringList; - CurNode: TTreeNode; - eOS: TOS; - i: integer; - Source: Boolean; -begin - { FTP } - if (jplWizard.ActivePage = jspFTP) then begin - if (not IdFTP.Connected) then - IdFTP.Connect; - eStr := TStringList.Create; - ePath := '/'; - CurNode := trvDirectories.Selected; - if (Assigned(CurNode)) then begin - repeat - ePath := '/' + CurNode.Text + ePath; - CurNode := CurNode.Parent; - until (not Assigned(CurNode)); - end; - IdFTP.ChangeDir(ePath); - IdFTP.List(eStr, '', False); - eStr.CaseSensitive := False; - // check if gameinfo.txt is in the directory -> valid installation - if (eStr.IndexOf('gameinfo.txt') = -1) then begin - MessageBox(Handle, 'Invalid directory. Please select your mod directory and try again.', PChar(Application.Title), MB_ICONWARNING); - eStr.Free; - exit; - end - else - eStr.Free; - // check for orangebox directory (!! OrangeBox Check !!) - if (optAutoDetect.Checked) then - Source := not ((AnsiSameText(trvDirectories.Selected.Text, 'tf')) or (Pos('orangebox', LowerCase(ePath)) <> 0)) - else if (optSource.Checked) then - Source := True - else - Source := False; - // design stuff - trvDirectories.Enabled := False; - cmdConnect.Enabled := False; - optWindows.Enabled := False; - optLinux.Enabled := False; - Screen.Cursor := crHourGlass; - - if (optWindows.Checked) then begin - eOS := osWindows; - if (Source) then - rtfDetails.Lines.Text := '* Installing Source binaries for Windows' + #13#10 + #13#10 - else - rtfDetails.Lines.Text := '* Installing OrangeBox binaries for Windows' + #13#10 + #13#10 - end - else begin - eOS := osLinux; - if (Source) then - rtfDetails.Lines.Text := '* Installing Source binaries for Linux' + #13#10 + #13#10 - else - rtfDetails.Lines.Text := '* Installing OrangeBox binaries for Linux' + #13#10 + #13#10 - end; - jspInstallProgress.Show; - // installation - Screen.Cursor := crAppStart; - InstallFTP(eOS, Source, trvDirectories.Selected.Text); - end - else if (jplWizard.ActivePage = jspInstallProgress) then - Close - else if (jplWizard.ActivePage = jspSelectMod) then begin - { Dedicated Server } - if frbDedicatedServer.Checked then begin - Source := True; - ePath := trvMods.Selected.Text; - if (ePath = 'Counter-Strike:Source') then - ePath := trvMods.Selected.Parent.Text + '\source dedicated server\cstrike' - else if (ePath = 'Day of Defeat:Source') then - ePath := trvMods.Selected.Parent.Text + '\source dedicated server\dod' - else if (ePath = 'Half-Life 2 Deathmatch') then - ePath := trvMods.Selected.Parent.Text + '\source dedicated server\hl2mp' - else begin - { get games } - if (ePath = 'Team Fortress 2') then - ePath := trvMods.Selected.Parent.Text + '\source 2007 dedicated server\tf'; - { ask user, just in case } - case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: Source := False; - mrNo: Source := True; - mrCancel: exit; - end; - end; - SteamPath := IncludeTrailingPathDelimiter(SteamPath) + 'steamapps\'; - // install it - if (DirectoryExists(SteamPath + ePath)) then begin - jspInstallProgress.Show; - InstallDedicated(IncludeTrailingPathDelimiter(SteamPath + ePath), True, Source); - end - else begin - MessageBox(Handle, 'Error: The directory of the mod you selected doesn''t exist any more. Run Dedicated Server with the chosen mod and try again.', PChar(Application.Title), MB_ICONERROR); - jspSelectMod.Show; - exit; - end; - end; - { Standalone Server } - if (frbStandaloneServer.Checked) then begin - Source := True; - ePath := trvMods.Selected.Text; - if ePath = 'Counter-Strike:Source' then - ePath := 'cstrike' - else if ePath = 'Day of Defeat:Source' then - ePath := 'dod' - else if ePath = 'Half-Life 2 Deathmatch' then - ePath := 'hl2mp' - else begin - { get games } - if (ePath = 'Team Fortress 2') then - ePath := 'orangebox\tf'; - { ask user, just in case } - case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: Source := False; - mrNo: Source := True; - mrCancel: exit; - end; - end; - // install it - if (DirectoryExists(StandaloneServer + ePath)) then begin - jspInstallProgress.Show; - InstallDedicated(IncludeTrailingPathDelimiter(StandaloneServer + ePath), False, Source) - end - else begin - MessageBox(Handle, 'Error: The directory of the mod you selected doesn''t exist (any more). Run Half-Life Dedicated Server with the chosen mod again and restart.', PChar(Application.Title), MB_ICONERROR); - jspSelectMod.Show; - exit; - end; - end; - { Listen Server } - if (frbListenServer.Checked) then begin - Source := True; - ePath := trvMods.Selected.Text; - if (ePath = 'Counter-Strike:Source') then - ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\counter-strike source\cstrike' - else if (ePath = 'Half-Life 2 Deathmatch') then - ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\half-life 2 deathmatch\hl2mp' - else if ePath = 'Day of Defeat:Source' then - ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\day of defeat source\dod' - else begin - { get games } - if (ePath = 'Team Fortress 2') then - ePath := SteamPath + 'SteamApps\' + trvMods.Selected.Parent.Text + '\team fortress 2\tf'; - { ask user, just in case } - case MessageBox(Handle, 'It looks like your server is using the OrangeBox engine. Would you like to install the appropriate binaries for it?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrYes: Source := False; - mrNo: Source := True; - mrCancel: exit; - end; - end; - - if (Pos(SteamPath, ePath) = 0) then - MessageBox(Handle, 'An error occured. Please report this bug to the Metamod:Source team and post a new thread on the forums of www.amxmodx.org.', PChar(Application.Title), MB_ICONSTOP) - else begin - if (not FileExists(ePath + '\gameinfo.txt')) then begin - MessageBox(Handle, 'You have to play this game once before installing Metamod:Source. Do that and try again.', PChar(Application.Title), MB_ICONWARNING); - exit; - end; - - jspInstallProgress.Show; - InstallListen(IncludeTrailingPathDelimiter(ePath), Source); - end; - end; - { Custom mod below } - end - else if (jplWizard.ActivePage = jspInstallMethod) then begin - if (frbDedicatedServer.Checked) then begin // Dedicated Server - eRegistry := TRegistry.Create(KEY_READ); - try - eRegistry.RootKey := HKEY_CURRENT_USER; - if eRegistry.OpenKey('Software\Valve\Steam', False) then begin - ePath := eRegistry.ReadString('SteamPath'); - ePath := IncludeTrailingPathDelimiter(StringReplace(ePath, '/', '\', [rfReplaceAll])); - SteamPath := ePath; - - ePath := ePath + 'SteamApps\'; - if (DirectoryExists(ePath)) then begin - trvMods.Items.Clear; - // Check Mods - eStr := GetAllFiles(ePath + '*.*', faDirectory, False, True, False); - for i := 0 to eStr.Count -1 do begin - CurNode := trvMods.Items.Add(nil, eStr[i]); - - if (DirectoryExists(ePath + eStr[i] + '\source dedicated server\cstrike')) then - trvMods.Items.AddChild(CurNode, 'Counter-Strike:Source'); - if (DirectoryExists(ePath + eStr[i] + '\source dedicated server\dod')) then - trvMods.Items.AddChild(CurNode, 'Day of Defeat:Source'); - if (DirectoryExists(ePath + eStr[i] + '\source dedicated server\hl2mp')) then - trvMods.Items.AddChild(CurNode, 'Half-Life 2 Deatmatch'); - if (DirectoryExists(ePath + eStr[i] + '\source 2007 dedicated server\tf')) then - trvMods.Items.AddChild(CurNode, 'Team Fortress 2'); - - if CurNode.Count = 0 then - CurNode.Free - else - CurNode.Expand(False); - end; - // Misc - jspSelectMod.Show; - trvMods.Selected := nil; - cmdNext.Enabled := False; - end - else - MessageBox(Handle, 'You have to run Dedicated Server once before installing Metamod:Source!', 'Error', MB_ICONWARNING); - end - else - MessageBox(Handle, 'You haven''t installed Steam yet! Download it at www.steampowered.com, install Dedicated Server and try again.', 'Error', MB_ICONWARNING); - finally - eRegistry.Free; - end; - end - else if (frbListenServer.Checked) then begin // Listen Server - eRegistry := TRegistry.Create(KEY_READ); - try - eRegistry.RootKey := HKEY_CURRENT_USER; - if (eRegistry.OpenKey('Software\Valve\Steam', False)) then begin - ePath := eRegistry.ReadString('SteamPath'); - ePath := IncludeTrailingPathDelimiter(StringReplace(ePath, '/', '\', [rfReplaceAll])); - SteamPath := ePath; - - ePath := ePath + 'SteamApps\'; - if DirectoryExists(ePath) then begin - trvMods.Items.Clear; - // Check Mods - eStr := GetAllFiles(ePath + '*.*', faDirectory, False, True, False); - for i := 0 to eStr.Count -1 do begin - CurNode := trvMods.Items.Add(nil, eStr[i]); - - if DirectoryExists(ePath + eStr[i] + '\counter-strike source') then - trvMods.Items.AddChild(CurNode, 'Counter-Strike:Source'); - if DirectoryExists(ePath + eStr[i] + '\day of defeat source') then - trvMods.Items.AddChild(CurNode, 'Day of Defeat:Source'); - if DirectoryExists(ePath + eStr[i] + '\half-life 2 deathmatch') then - trvMods.Items.AddChild(CurNode, 'Half-Life 2 Deatmatch'); - if DirectoryExists(ePath + eStr[i] + '\team fortress 2') then - trvMods.Items.AddChild(CurNode, 'Team Fortress 2'); - - if CurNode.Count = 0 then - CurNode.Free - else - CurNode.Expand(False); - end; - // Misc - jspSelectMod.Show; - trvMods.Selected := nil; - cmdNext.Enabled := False; - end - else - MessageBox(Handle, 'You haven''t installed Steam yet! Download it at www.steampowered.com, install Dedicated Server and try again.', 'Error', MB_ICONWARNING); - end - else - MessageBox(Handle, 'You haven''t installed Steam yet! Download it at www.steampowered.com, install Dedicated Server and try again.', 'Error', MB_ICONWARNING); - finally - eRegistry.Free; - end; - end - else if (frbStandaloneServer.Checked) then begin // Standalone Server - eRegistry := TRegistry.Create; - try - eRegistry.RootKey := HKEY_CURRENT_USER; - if eRegistry.OpenKey('Software\Valve\HLServer', False) then begin - StandaloneServer := IncludeTrailingPathDelimiter(eRegistry.ReadString('InstallPath')); - if DirectoryExists(StandaloneServer + 'cstrike') then - trvMods.Items.Add(nil, 'Counter-Strike:Source'); - if DirectoryExists(StandaloneServer + 'dod') then - trvMods.Items.Add(nil, 'Day of Defeat:Source'); - if DirectoryExists(StandaloneServer + 'hl2mp') then - trvMods.Items.Add(nil, 'Half-Life 2 Deatmatch'); - if DirectoryExists(StandaloneServer + 'orangebox\tf') then - trvMods.Items.Add(nil, 'Team Fortress 2'); - jspSelectMod.Show; - cmdNext.Enabled := False; - end - else - MessageBox(Handle, 'You haven''t installed Half-Life Dedicated Server yet!', 'Error', MB_ICONWARNING); - finally - eRegistry.Free; - end; - end - else if (frbSelectMod.Checked) then begin - { Custom mod } - if frmSelectModPath.ShowModal = mrOk then begin - ePath := frmSelectModPath.trvDirectory.SelectedFolder.PathName; - { install now } - jspInstallProgress.Show; - InstallCustom(IncludeTrailingPathDelimiter(ePath), osWindows, not frmSelectModPath.chkUsesOrangebox.Checked); - end; - end - else if (frbFTP.Checked) then begin // FTP - Height := FTPHeight; - jspFTP.Show; - end; - end - else - jplWizard.NextPage -end; - -procedure TfrmMain.CheckNext(Sender: TObject); -begin - cmdNext.Enabled := frbAgree.Checked; -end; - -procedure TfrmMain.cmdBackClick(Sender: TObject); -begin - if jplWizard.ActivePage = jspFTP then begin - Height := NormalHeight; - jspInstallMethod.Show; - end - else begin - jplWizard.PrevPage; - cmdBack.Visible := jplWizard.ActivePageIndex <> 0; - end; -end; - -procedure TfrmMain.cmdConnectClick(Sender: TObject); -var i, k: integer; - eStr: TStringList; - CurNode, CurNode2: TTreeNode; - Path: String; -begin - if (Trim(txtHost.Text) = '') or (Trim(txtUsername.Text) = '') then - MessageBox(Handle, 'Please fill in each field!', PChar(Application.Title), MB_ICONWARNING) - else if cmdConnect.Caption = 'Connect' then begin - // ... design stuff ... - Screen.Cursor := crHourGlass; - cmdConnect.Enabled := False; - cmdProxySettings.Enabled := False; - txtHost.Enabled := False; - txtPort.Enabled := False; - txtUsername.Enabled := False; - txtPassword.Enabled := False; - chkPassive.Enabled := False; - cmdConnect.Caption := 'Connecting...'; - // ... set values ... - IdFTP.Host := txtHost.Text; - IdFTP.Port := StrToInt(txtPort.Text); - IdFTP.Username := txtUsername.Text; - IdFTP.Passive := chkPassive.Checked; - IdFTP.Password := txtPassword.Text; - // ... connect and check values etc ... - try - IdFTP.Connect(True, 15000); - // ... get initial directory ... - Path := IdFTP.RetrieveCurrentDir; - // ... "fix" path ... - eStr := TStringList.Create; - eStr.Text := StringReplace(Path, '/', #13, [rfReplaceAll]); - for i := eStr.Count -1 downto 0 do begin - if (eStr[i] = '') then - eStr.Delete(i); - end; - if (Copy(Path, Length(Path) -1, 1) <> '/') then - Path := Path + '/'; - // ... connect successful, change captions ... - trvDirectories.Enabled := True; - cmdConnect.Enabled := True; - cmdConnect.Caption := 'Disconnect'; - // ... find directories in start path ... - CurNode := nil; - CurNode2 := nil; - if (eStr.Count <> 0) then begin - IdFTP.ChangeDir('/'); - for i := 0 to eStr.Count do begin - try - with GetAllDirs do begin - for k := 0 to Count -1 do begin - if (i = eStr.Count) or (Strings[k] <> eStr[i]) then - trvDirectories.Items.AddChild(trvDirectories.Items.AddChild(CurNode, Strings[k]), 'Scanning...') - else - CurNode2 := trvDirectories.Items.AddChild(CurNode, Strings[k]); - end; - Free; - - CurNode := CurNode2; - trvDirectories.Selected := CurNode; - Repaint; - Application.ProcessMessages; - end; - - if (i <> eStr.Count) then - IdFTP.ChangeDir(eStr[i]); - except - IdFTP.CheckForDisconnect(False); - if (not IdFTP.Connected) then - IdFTP.Disconnect; - CurNode := trvDirectories.Items.AddChild(CurNode, eStr.Strings[i]) - end; - end; - end; - eStr.Free; - - if Assigned(CurNode) then - CurNode.Expand(False); - except - on E: Exception do begin - // reset button properties - cmdConnect.Enabled := True; - txtHost.Enabled := True; - txtPort.Enabled := True; - txtUsername.Enabled := True; - txtPassword.Enabled := True; - chkPassive.Enabled := True; - cmdProxySettings.Enabled := True; - cmdNext.Enabled := False; - cmdConnect.Caption := 'Connect'; - // analyze messages - if Pos('Login incorrect.', E.Message) <> 0 then begin // login failed - MessageBox(Handle, 'Login incorrect. Check your FTP settings and try again.', PChar(Application.Title), MB_ICONWARNING); - txtUsername.SetFocus; - txtUsername.SelectAll; - end - else if Pos('Host not found.', E.Message) <> 0 then begin // host not found - MessageBox(Handle, 'The entered host couldn''t be found. Check your settings and try again.', PChar(Application.Title), MB_ICONWARNING); - txtHost.SetFocus; - txtHost.SelectAll; - end - else if Pos('Connection refused.', E.Message) <> 0 then begin // wrong port (?) - MessageBox(Handle, 'The host refused the connection. Check your port and try again.', PChar(Application.Title), MB_ICONWARNING); - txtPort.SetFocus; - txtPort.SelectAll; - end - else if E is EIdProtocolReplyError then begin // wrong port - MessageBox(Handle, 'The port you entered is definitely wrong. Check it and try again.', PChar(Application.Title), MB_ICONWARNING); - txtPort.SetFocus; - txtPort.SelectAll; - end - else - MessageBox(Handle, PChar(E.Message), PChar(Application.Title), MB_ICONWARNING); // unknown error - // ... connect failed, leave procedure ... - Screen.Cursor := crDefault; - exit; - end; - end; - - Screen.Cursor := crDefault; - end - else begin - Screen.Cursor := crHourGlass; - IdFTP.Quit; - trvDirectories.Items.Clear; - trvDirectories.Enabled := False; - cmdConnect.Enabled := True; - cmdProxySettings.Enabled := True; - txtHost.Enabled := True; - txtPort.Enabled := True; - txtUsername.Enabled := True; - txtPassword.Enabled := True; - chkPassive.Enabled := True; - cmdConnect.Caption := 'Connect'; - cmdNext.Enabled := False; - Screen.Cursor := crDefault; - end; -end; - -procedure TfrmMain.jplWizardChange(Sender: TObject); -begin - if (jplWizard.ActivePage = jspInstallProgress) then begin - cmdNext.Caption := '&Finish'; - cmdNext.Enabled := False; - cmdBack.Visible := False; - end - else begin - cmdNext.Caption := '&Next >'; - cmdNext.Enabled := True; - cmdBack.Visible := jplWizard.ActivePageIndex <> 0; - end; - - if (jplWizard.ActivePage = jspLicense) then - cmdNext.Enabled := frbAgree.Checked; - - if (jplWizard.ActivePage = jspFTP) then - cmdNext.Enabled := False; -end; - -procedure TfrmMain.FormCreate(Sender: TObject); -begin - if LowerCase(ParamStr(1)) = '-logftp' then begin - MessageBox(Handle, 'FTP installation will be logged to FTP.log!', PChar(Application.Title), MB_ICONINFORMATION); - IdLogFile.Filename := ExtractFilePath(ParamStr(0)) + 'FTP.log'; - IdLogFile.Active := True; - end; - - rtfDetails.Clear; -end; - -procedure TfrmMain.cmdProxySettingsClick(Sender: TObject); -begin - frmProxy.ShowModal; - // Apply Proxy Settings - case frmProxy.cboProxy.ItemIndex of - 0: IdFTP.ProxySettings.ProxyType := fpcmNone; // none - 1: IdFTP.ProxySettings.ProxyType := fpcmHttpProxyWithFtp; // HTTP Proxy with FTP - 2: IdFTP.ProxySettings.ProxyType := fpcmOpen; // Open - 3: IdFTP.ProxySettings.ProxyType := fpcmSite; // Site - 4: IdFTP.ProxySettings.ProxyType := fpcmTransparent; // Transparent - 5: IdFTP.ProxySettings.ProxyType := fpcmUserPass; // User (Password) - 6: IdFTP.ProxySettings.ProxyType := fpcmUserSite; // User (Site) - end; - - IdFTP.ProxySettings.Host := frmProxy.txtHost.Text; - IdFTP.ProxySettings.UserName := frmProxy.txtPort.Text; - IdFTP.ProxySettings.Password := frmProxy.txtPassword.Text; - IdFTP.ProxySettings.Port := StrToInt(frmProxy.txtPort.Text); -end; - -procedure TfrmMain.txtPortChange(Sender: TObject); -var i: integer; -begin - if txtPort.Text = '' then - txtPort.Text := '21' - else begin - // check if value is numeric... - for i := Length(txtPort.Text) downto 1 do begin - if Pos(txtPort.Text[i], '0123456789') = 0 then begin - txtPort.Text := '21'; - txtPort.SelStart := 4; - exit; - end; - end; - end; -end; - -procedure TfrmMain.trvDirectoriesExpanded(Sender: TObject; - Node: TTreeNode); -var ePath: String; - CurNode: TTreeNode; - i: integer; -begin - if Node.Item[0].Text = 'Scanning...' then begin // no directories added yet - Screen.Cursor := crHourGlass; - // get complete path - ePath := '/'; - CurNode := Node; - repeat - ePath := '/' + CurNode.Text + ePath; - CurNode := CurNode.Parent; - until (not Assigned(CurNode)); - // change dir and add directories in it - try - Repaint; - IdFTP.ChangeDir(ePath); - with GetAllDirs do begin - Node.Item[0].Free; - for i := 0 to Count -1 do begin - trvDirectories.Items.AddChild(trvDirectories.Items.AddChild(Node, Strings[i]), 'Scanning...'); - end; - Free; - end; - finally - Application.ProcessMessages; - end; - Screen.Cursor := crDefault; - end; -end; - -procedure TfrmMain.trvDirectoriesChange(Sender: TObject; Node: TTreeNode); -begin - cmdNext.Enabled := Assigned(trvDirectories.Selected); -end; - -procedure TfrmMain.IdFTPWork(Sender: TObject; AWorkMode: TWorkMode; - const AWorkCount: Integer); -begin - if AWorkCount > 15 then begin - ggeItem.Progress := AWorkCount; - CurrProgress := AWorkCount; - end; - - if Cancel then - IdFTP.Abort; - - Application.ProcessMessages; -end; - -procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction); -begin - if (jplWizard.ActivePage = jspFTP) and (IdFTP.Connected) then - IdFTP.Quit; - if (jplWizard.ActivePage = jspInstallProgress) and (ggeAll.Progress <> ggeAll.MaxValue) and (not Cancel) then begin - if MessageBox(Handle, 'Do you really want to cancel the installation?', PChar(Application.Title), MB_ICONQUESTION + MB_YESNO) = mrYes then begin - Screen.Cursor := crDefault; - Application.OnException := ExceptionHandler; - Cancel := True; - if IdFTP.Connected then - IdFTP.Quit; - end - else - Action := caNone; - end; -end; - -procedure TfrmMain.ExceptionHandler(Sender: TObject; E: Exception); -begin - // IF any exceptions were raised after close, nobody would want them so leave this empty -end; - -procedure TfrmMain.tmrSpeedTimer(Sender: TObject); -begin - Caption := CalcSpeed(OldProgress, CurrProgress); - OldProgress := CurrProgress; -end; - -procedure TfrmMain.trvDirectoriesExpanding(Sender: TObject; - Node: TTreeNode; var AllowExpansion: Boolean); -begin - Node.ImageIndex := 1; - Node.SelectedIndex := 1; -end; - -procedure TfrmMain.trvDirectoriesCollapsing(Sender: TObject; - Node: TTreeNode; var AllowCollapse: Boolean); -begin - Node.ImageIndex := 0; - Node.SelectedIndex := 0; -end; - -procedure TfrmMain.trvModsClick(Sender: TObject); -begin - if Assigned(trvMods.Selected) then - cmdNext.Enabled := Assigned(trvMods.Selected.Parent) - else - cmdNext.Enabled := False; -end; - -procedure TfrmMain.trvDirectoriesMouseDown(Sender: TObject; - Button: TMouseButton; Shift: TShiftState; X, Y: Integer); -var Node: TTreeNode; -begin - Node := trvDirectories.GetNodeAt(X, Y); - if (Assigned(Node)) then begin - if (Node.DisplayRect(True).Right < X) then - trvDirectories.Selected := nil; - end; -end; - -end. diff --git a/installer/UnitfrmProxy.dfm b/installer/UnitfrmProxy.dfm deleted file mode 100644 index 7ba9c06c5cae79c3827a3d1d98e81d212d147e8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1584 zcmb7EO>fgc5Z&00KjI`*DjSGp8wQ9=#K`$X!!aK*xPz!0uToNo)ez2 zS-|M>!Y+RpeRRh4&lNqSbN#F4wkeAd8}kc{EPIl5Qi$o)^5C4Ol$cG~{B(>sPsuc^ zdpJde_fR@bxc&vWDn3nPp6EY7)uWg)%ZYHC6CXyX?o+~dy#%rhaqCW}>mQ!8@$ zSt`g|TXQ;qDe)!JzfDT73QEtfLpf#rKi~qGWs6)k3T`f$m2l5)fGg`a;oQ*2khjk{ zr^JqCv4?3^@Ovqx`5qJmPfEo5btx~OM&}udjc-4H14sVTp$j5ISB6T_mMc{_PGByo zrcCs5)%JyQFXdE|s=Jg}y>L~Ma|bkrc!aWZ%(aRg!im(IRt3P3%XH(ETRa!kmB)Xf z7STU|a+7VvTU@}ha^WW_M=J%akt+Z+B(g_m6WXRrJDSi9X=?KFcMJIMEBJd=W#?v; zbr_wC^Yqh<7w)u6r`3))nw4^Hh#=b?b0&OVF^ywNkh$Fp!=NQcwiYQ*T7DRq#&C{^ zX^eByrW-OyvN>eAzf4!?ruA4n_f8pzsvWT22^hk23f>Vjk4TJ`8nA~X|4fi6vYO?R zD!zK%wI@C*PZa0X4sUf`X8@OdM5a8^s%utS!D@eRe{apCkw2ywcb$lvXG)W7n(D03 lY;-Fw>-qZTmIA!Ai~=X}q5luOUP6ekuUUDr9%cXl{sJ)8?-l?6 diff --git a/installer/UnitfrmProxy.pas b/installer/UnitfrmProxy.pas deleted file mode 100644 index 1556226..0000000 --- a/installer/UnitfrmProxy.pas +++ /dev/null @@ -1,72 +0,0 @@ -unit UnitfrmProxy; - -interface - -uses - SysUtils, Windows, Messages, Classes, Graphics, Controls, - StdCtrls, ExtCtrls, Forms, TFlatButtonUnit, TFlatComboBoxUnit, - TFlatEditUnit; - -type - TfrmProxy = class(TForm) - cmdClose: TFlatButton; - lblProxy: TLabel; - txtHost: TFlatEdit; - cboProxy: TFlatComboBox; - lblHost: TLabel; - txtPort: TFlatEdit; - lblPort: TLabel; - lblUsername: TLabel; - txtUsername: TFlatEdit; - txtPassword: TFlatEdit; - lblPassword: TLabel; - procedure cboProxyChange(Sender: TObject); - procedure txtPortChange(Sender: TObject); - public - procedure EnableControls(Enable: Boolean); - end; - -var - frmProxy: TfrmProxy; - -implementation - -{$R *.DFM} - -{ TfrmProxy } - -procedure TfrmProxy.EnableControls(Enable: Boolean); -begin - lblHost.Enabled := Enable; - lblPassword.Enabled := Enable; - lblPort.Enabled := Enable; - lblUsername.Enabled := Enable; - txtHost.Enabled := Enable; - txtPassword.Enabled := Enable; - txtPort.Enabled := Enable; - txtUsername.Enabled := Enable; -end; - -procedure TfrmProxy.cboProxyChange(Sender: TObject); -begin - EnableControls(cboProxy.ItemIndex <> 0); // 0 = None -end; - -procedure TfrmProxy.txtPortChange(Sender: TObject); -var i: integer; -begin - if txtPort.Text = '' then - txtPort.Text := '8080' - else begin - // check if value is numeric... - for i := Length(txtPort.Text) downto 1 do begin - if Pos(txtPort.Text[i], '0123456789') = 0 then begin - txtPort.Text := '8080'; - txtPort.SelStart := 4; - exit; - end; - end; - end; -end; - -end. diff --git a/installer/del.bat b/installer/del.bat deleted file mode 100644 index 74a143b..0000000 --- a/installer/del.bat +++ /dev/null @@ -1,15 +0,0 @@ -del .\*.~pas -del .\*.dcu -del .\*.~ddp -del .\*.ddp -del .\*.~dpr -del .\*.~dfm -del .\*.~dpr -del .\*.map -del .\*.drc -del .\*.~xfm -del .\*.log -del .\*.dof -upx MMS_Installer.exe -upx Attach.exe -upx hl2launch.exe \ No newline at end of file diff --git a/installer/files/Readme.txt b/installer/files/Readme.txt deleted file mode 100644 index 4f858b5..0000000 --- a/installer/files/Readme.txt +++ /dev/null @@ -1,8 +0,0 @@ -Every MM:S library should be located in this directory. - -How to prepare a release: -1) Copy the latest MM:S dlls into this folder -2) Append .source to the Source binaries and .orangebox to the OrangeBox binaries -3) Run Attach.exe -4) Test MMS_Installer.exe once (recommended) -5) Release it or e-Mail me if you find a bug \ No newline at end of file diff --git a/installer/install.bmp b/installer/install.bmp deleted file mode 100644 index 39b905be4507286639395912964881258552398f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154542 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 diff --git a/installer/upx.exe b/installer/upx.exe deleted file mode 100644 index d47856823e48792f97d19f20ed08d40bc7cb0d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126464 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 z 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,<=,>= comparison operators to allow storage in ordered containers. -// * Substantial reduction of code size, especially the 'Closure' class. -// * Standardised all the compiler-specific workarounds. -// * MFP conversion now works for CodePlay (but not yet supported in the full code). -// * Now compiles without warnings on _any_ supported compiler, including BCC 5.5.1 -// * New syntax: FastDelegate< int (char *, double) >. -// 14-Feb-05 1.4.1* Now treats =0 as equivalent to .clear(), ==0 as equivalent to .empty(). (Thanks elfric). -// * Now tested on Intel ICL for AMD64, VS2005 Beta for AMD64 and Itanium. -// 30-Mar-05 1.5 * Safebool idiom: "if (dg)" is now equivalent to "if (!dg.empty())" -// * Fully supported by CodePlay VectorC -// * Bugfix for Metrowerks: empty() was buggy because a valid MFP can be 0 on MWCC! -// * More optimal assignment,== and != operators for static function pointers. - -#ifndef FASTDELEGATE_H -#define FASTDELEGATE_H - -#ifdef _MSC_VER -# if _MSC_VER > 1000 -# pragma once -# endif // _MSC_VER > 1000 -#endif // #ifdef _MSC_VER - -#include // to allow <,> comparisons - -//////////////////////////////////////////////////////////////////////////////// -// Configuration options -// -//////////////////////////////////////////////////////////////////////////////// - -// Uncomment the following #define for optimally-sized delegates. -// In this case, the generated asm code is almost identical to the code you'd get -// if the compiler had native support for delegates. -// It will not work on systems where sizeof(dataptr) < sizeof(codeptr). -// Thus, it will not work for DOS compilers using the medium model. -// It will also probably fail on some DSP systems. -#define FASTDELEGATE_USESTATICFUNCTIONHACK - -// Uncomment the next line to allow function declarator syntax. -// It is automatically enabled for those compilers where it is known to work. -//#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Compiler identification for workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Compiler identification. It's not easy to identify Visual C++ because -// many vendors fraudulently define Microsoft's identifiers. -#if defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__VECTOR_C) && !defined(__ICL) && !defined(__BORLANDC__) -#define FASTDLGT_ISMSVC - -#if (_MSC_VER <1300) // Many workarounds are required for VC6. -#define FASTDLGT_VC6 -#pragma warning(disable:4786) // disable this ridiculous warning -#endif - -#endif - -// Does the compiler uses Microsoft's member function pointer structure? -// If so, it needs special treatment. -// Metrowerks CodeWarrior, Intel, and CodePlay fraudulently define Microsoft's -// identifier, _MSC_VER. We need to filter Metrowerks out. -#if defined(_MSC_VER) && !defined(__MWERKS__) -#define FASTDLGT_MICROSOFT_MFP - -#if !defined(__VECTOR_C) -// CodePlay doesn't have the __single/multi/virtual_inheritance keywords -#define FASTDLGT_HASINHERITANCE_KEYWORDS -#endif -#endif - -// Does it allow function declarator syntax? The following compilers are known to work: -#if defined(FASTDLGT_ISMSVC) && (_MSC_VER >=1310) // VC 7.1 -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// Gcc(2.95+), and versions of Digital Mars, Intel and Comeau in common use. -#if defined (__DMC__) || defined(__GNUC__) || defined(__ICL) || defined(__COMO__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// It works on Metrowerks MWCC 3.2.2. From boost.Config it should work on earlier ones too. -#if defined (__MWERKS__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -#ifdef __GNUC__ // Workaround GCC bug #8271 - // At present, GCC doesn't recognize constness of MFPs in templates -#define FASTDELEGATE_GCC_BUG_8271 -#endif - - - -//////////////////////////////////////////////////////////////////////////////// -// General tricks used in this code -// -// (a) Error messages are generated by typdefing an array of negative size to -// generate compile-time errors. -// (b) Warning messages on MSVC are generated by declaring unused variables, and -// enabling the "variable XXX is never used" warning. -// (c) Unions are used in a few compiler-specific cases to perform illegal casts. -// (d) For Microsoft and Intel, when adjusting the 'this' pointer, it's cast to -// (char *) first to ensure that the correct number of *bytes* are added. -// -//////////////////////////////////////////////////////////////////////////////// -// Helper templates -// -//////////////////////////////////////////////////////////////////////////////// - - -namespace fastdelegate { -namespace detail { // we'll hide the implementation details in a nested namespace. - -// implicit_cast< > -// I believe this was originally going to be in the C++ standard but -// was left out by accident. It's even milder than static_cast. -// I use it instead of static_cast<> to emphasize that I'm not doing -// anything nasty. -// Usage is identical to static_cast<> -template -inline OutputClass implicit_cast(InputClass input){ - return input; -} - -// horrible_cast< > -// This is truly evil. It completely subverts C++'s type system, allowing you -// to cast from any class to any other class. Technically, using a union -// to perform the cast is undefined behaviour (even in C). But we can see if -// it is OK by checking that the union is the same size as each of its members. -// horrible_cast<> should only be used for compiler-specific workarounds. -// Usage is identical to reinterpret_cast<>. - -// This union is declared outside the horrible_cast because BCC 5.5.1 -// can't inline a function with a nested class, and gives a warning. -template -union horrible_union{ - OutputClass out; - InputClass in; -}; - -template -inline OutputClass horrible_cast(const InputClass input){ - horrible_union u; - // Cause a compile-time error if in, out and u are not the same size. - // If the compile fails here, it means the compiler has peculiar - // unions which would prevent the cast from working. - typedef int ERROR_CantUseHorrible_cast[sizeof(InputClass)==sizeof(u) - && sizeof(InputClass)==sizeof(OutputClass) ? 1 : -1]; - u.in = input; - return u.out; -} - -//////////////////////////////////////////////////////////////////////////////// -// Workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Backwards compatibility: This macro used to be necessary in the virtual inheritance -// case for Intel and Microsoft. Now it just forward-declares the class. -#define FASTDELEGATEDECLARE(CLASSNAME) class CLASSNAME; - -// Prevent use of the static function hack with the DOS medium model. -#ifdef __MEDIUM__ -#undef FASTDELEGATE_USESTATICFUNCTIONHACK -#endif - -// DefaultVoid - a workaround for 'void' templates in VC6. -// -// (1) VC6 and earlier do not allow 'void' as a default template argument. -// (2) They also doesn't allow you to return 'void' from a function. -// -// Workaround for (1): Declare a dummy type 'DefaultVoid' which we use -// when we'd like to use 'void'. We convert it into 'void' and back -// using the templates DefaultVoidToVoid<> and VoidToDefaultVoid<>. -// Workaround for (2): On VC6, the code for calling a void function is -// identical to the code for calling a non-void function in which the -// return value is never used, provided the return value is returned -// in the EAX register, rather than on the stack. -// This is true for most fundamental types such as int, enum, void *. -// Const void * is the safest option since it doesn't participate -// in any automatic conversions. But on a 16-bit compiler it might -// cause extra code to be generated, so we disable it for all compilers -// except for VC6 (and VC5). -#ifdef FASTDLGT_VC6 -// VC6 workaround -typedef const void * DefaultVoid; -#else -// On any other compiler, just use a normal void. -typedef void DefaultVoid; -#endif - -// Translate from 'DefaultVoid' to 'void'. -// Everything else is unchanged -template -struct DefaultVoidToVoid { typedef T type; }; - -template <> -struct DefaultVoidToVoid { typedef void type; }; - -// Translate from 'void' into 'DefaultVoid' -// Everything else is unchanged -template -struct VoidToDefaultVoid { typedef T type; }; - -template <> -struct VoidToDefaultVoid { typedef DefaultVoid type; }; - - - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1: -// -// Conversion of member function pointer to a standard form -// -//////////////////////////////////////////////////////////////////////////////// - -// GenericClass is a fake class, ONLY used to provide a type. -// It is vitally important that it is never defined, so that the compiler doesn't -// think it can optimize the invocation. For example, Borland generates simpler -// code if it knows the class only uses single inheritance. - -// Compilers using Microsoft's structure need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -#ifdef FASTDLGT_HASINHERITANCE_KEYWORDS - // For Microsoft and Intel, we want to ensure that it's the most efficient type of MFP - // (4 bytes), even when the /vmg option is used. Declaring an empty class - // would give 16 byte pointers in this case.... - class __single_inheritance GenericClass; -#endif - // ...but for Codeplay, an empty class *always* gives 4 byte pointers. - // If compiled with the /clr option ("managed C++"), the JIT compiler thinks - // it needs to load GenericClass before it can call any of its functions, - // (compiles OK but crashes at runtime!), so we need to declare an - // empty class to make it happy. - // Codeplay and VC4 can't cope with the unknown_inheritance case either. - class GenericClass {}; -#else - class GenericClass; -#endif - -// The size of a single inheritance member function pointer. -const int SINGLE_MEMFUNCPTR_SIZE = sizeof(void (GenericClass::*)()); - -// SimplifyMemFunc< >::Convert() -// -// A template function that converts an arbitrary member function pointer into the -// simplest possible form of member function pointer, using a supplied 'this' pointer. -// According to the standard, this can be done legally with reinterpret_cast<>. -// For (non-standard) compilers which use member function pointers which vary in size -// depending on the class, we need to use knowledge of the internal structure of a -// member function pointer, as used by the compiler. Template specialization is used -// to distinguish between the sizes. Because some compilers don't support partial -// template specialisation, I use full specialisation of a wrapper struct. - -// general case -- don't know how to convert it. Force a compile failure -template -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // Unsupported member function type -- force a compile failure. - // (it's illegal to have a array with negative size). - typedef char ERROR_Unsupported_member_function_pointer_on_this_compiler[N-100]; - return 0; - } -}; - -// For compilers where all member func ptrs are the same size, everything goes here. -// For non-standard compilers, only single_inheritance classes go here. -template <> -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { -#if defined __DMC__ - // Digital Mars doesn't allow you to cast between abitrary PMF's, - // even though the standard says you can. The 32-bit compiler lets you - // static_cast through an int, but the DOS compiler doesn't. - bound_func = horrible_cast(function_to_bind); -#else - bound_func = reinterpret_cast(function_to_bind); -#endif - return reinterpret_cast(pthis); - } -}; - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1b: -// -// Workarounds for Microsoft and Intel -// -//////////////////////////////////////////////////////////////////////////////// - - -// Compilers with member function pointers which violate the standard (MSVC, Intel, Codeplay), -// need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -// We use unions to perform horrible_casts. I would like to use #pragma pack(push, 1) -// at the start of each function for extra safety, but VC6 seems to ICE -// intermittently if you do this inside a template. - -// __multiple_inheritance classes go here -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -template<> -struct SimplifyMemFunc< SINGLE_MEMFUNCPTR_SIZE + sizeof(int) > { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // We need to use a horrible_cast to do this conversion. - // In MSVC, a multiple inheritance member pointer is internally defined as: - union { - XFuncType func; - struct { - GenericMemFuncType funcaddress; // points to the actual member function - int delta; // #BYTES to be added to the 'this' pointer - }s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - return reinterpret_cast(reinterpret_cast(pthis) + u.s.delta); - } -}; - -// virtual inheritance is a real nuisance. It's inefficient and complicated. -// On MSVC and Intel, there isn't enough information in the pointer itself to -// enable conversion to a closure pointer. Earlier versions of this code didn't -// work for all cases, and generated a compile-time error instead. -// But a very clever hack invented by John M. Dlugosz solves this problem. -// My code is somewhat different to his: I have no asm code, and I make no -// assumptions about the calling convention that is used. - -// In VC++ and ICL, a virtual_inheritance member pointer -// is internally defined as: -struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance -}; -// The CRUCIAL feature of Microsoft/Intel MFPs which we exploit is that the -// m_codeptr member is *always* called, regardless of the values of the other -// members. (This is *not* true for other compilers, eg GCC, which obtain the -// function address from the vtable if a virtual function is being called). -// Dlugosz's trick is to make the codeptr point to a probe function which -// returns the 'this' pointer that was used. - -// Define a generic class that uses virtual inheritance. -// It has a trival member function that returns the value of the 'this' pointer. -struct GenericVirtualClass : virtual public GenericClass -{ - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } -}; - -// __virtual_inheritance classes go here -template <> -struct SimplifyMemFunc -{ - - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - union { - XFuncType func; - GenericClass* (X::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = function_to_bind; - bound_func = reinterpret_cast(u.s.codeptr); - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s) - && sizeof(function_to_bind)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - return (pthis->*u.ProbeFunc)(); - } -}; - -#if (_MSC_VER <1300) - -// Nasty hack for Microsoft Visual C++ 6.0 -// unknown_inheritance classes go here -// There is a compiler bug in MSVC6 which generates incorrect code in this case!! -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // There is an apalling but obscure compiler bug in MSVC6 and earlier: - // vtable_index and 'vtordisp' are always set to 0 in the - // unknown_inheritance case! - // This means that an incorrect function could be called!!! - // Compiling with the /vmg option leads to potentially incorrect code. - // This is probably the reason that the IDE has a user interface for specifying - // the /vmg option, but it is disabled - you can only specify /vmg on - // the command line. In VC1.5 and earlier, the compiler would ICE if it ever - // encountered this situation. - // It is OK to use the /vmg option if /vmm or /vms is specified. - - // Fortunately, the wrong function is only called in very obscure cases. - // It only occurs when a derived class overrides a virtual function declared - // in a virtual base class, and the member function - // points to the *Derived* version of that function. The problem can be - // completely averted in 100% of cases by using the *Base class* for the - // member fpointer. Ie, if you use the base class as an interface, you'll - // stay out of trouble. - // Occasionally, you might want to point directly to a derived class function - // that isn't an override of a base class. In this case, both vtable_index - // and 'vtordisp' are zero, but a virtual_inheritance pointer will be generated. - // We can generate correct code in this case. To prevent an incorrect call from - // ever being made, on MSVC6 we generate a warning, and call a function to - // make the program crash instantly. - typedef char ERROR_VC6CompilerBug[-100]; - return 0; - } -}; - - -#else - -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -// unknown_inheritance classes go here -// This is probably the ugliest bit of code I've ever written. Look at the casts! -// There is a compiler bug in MSVC6 which prevents it from using this code. -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - XFuncType func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - GenericMemFuncType m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(XFuncType)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - const int * vtable = *reinterpret_cast( - reinterpret_cast(pthis) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - } - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - return reinterpret_cast( - reinterpret_cast(pthis) + u.s.delta + virtual_delta); - }; -}; -#endif // MSVC 7 and greater - -#endif // MS/Intel hacks - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 2: -// -// Define the delegate storage, and cope with static functions -// -//////////////////////////////////////////////////////////////////////////////// - -// DelegateMemento -- an opaque structure which can hold an arbitary delegate. -// It knows nothing about the calling convention or number of arguments used by -// the function pointed to. -// It supplies comparison operators so that it can be stored in STL collections. -// It cannot be set to anything other than null, nor invoked directly: -// it must be converted to a specific delegate. - -// Implementation: -// There are two possible implementations: the Safe method and the Evil method. -// DelegateMemento - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// A static function pointer is stored inside the class. -// Here are the valid values: -// +-- Static pointer --+--pThis --+-- pMemFunc-+-- Meaning------+ -// | 0 | 0 | 0 | Empty | -// | !=0 |(dontcare)| Invoker | Static function| -// | 0 | !=0 | !=0* | Method call | -// +--------------------+----------+------------+----------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// When stored stored inside a specific delegate, the 'dontcare' entries are replaced -// with a reference to the delegate itself. This complicates the = and == operators -// for the delegate class. - -// DelegateMemento - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. In this case the DelegateMemento implementation is simple: -// +--pThis --+-- pMemFunc-+-- Meaning---------------------+ -// | 0 | 0 | Empty | -// | !=0 | !=0* | Static function or method call| -// +----------+------------+-------------------------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - -class DelegateMemento { -protected: - // the data is protected, not private, because many - // compilers have problems with template friends. - typedef void (detail::GenericClass::*GenericMemFuncType)(); // arbitrary MFP. - detail::GenericClass *m_pthis; - GenericMemFuncType m_pFunction; - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - typedef void (*GenericFuncPtr)(); // arbitrary code pointer - GenericFuncPtr m_pStaticFunction; -#endif - -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - DelegateMemento() : m_pthis(0), m_pFunction(0), m_pStaticFunction(0) {}; - void clear() { - m_pthis=0; m_pFunction=0; m_pStaticFunction=0; - } -#else - DelegateMemento() : m_pthis(0), m_pFunction(0) {}; - void clear() { m_pthis=0; m_pFunction=0; } -#endif -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - inline bool IsEqual (const DelegateMemento &x) const{ - // We have to cope with the static function pointers as a special case - if (m_pFunction!=x.m_pFunction) return false; - // the static function ptrs must either both be equal, or both be 0. - if (m_pStaticFunction!=x.m_pStaticFunction) return false; - if (m_pStaticFunction!=0) return m_pthis==x.m_pthis; - else return true; - } -#else // Evil Method - inline bool IsEqual (const DelegateMemento &x) const{ - return m_pthis==x.m_pthis && m_pFunction==x.m_pFunction; - } -#endif - // Provide a strict weak ordering for DelegateMementos. - inline bool IsLess(const DelegateMemento &right) const { - // deal with static function pointers first -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - if (m_pStaticFunction !=0 || right.m_pStaticFunction!=0) - return m_pStaticFunction < right.m_pStaticFunction; -#endif - if (m_pthis !=right.m_pthis) return m_pthis < right.m_pthis; - // There are no ordering operators for member function pointers, - // but we can fake one by comparing each byte. The resulting ordering is - // arbitrary (and compiler-dependent), but it permits storage in ordered STL containers. - return memcmp(&m_pFunction, &right.m_pFunction, sizeof(m_pFunction)) < 0; - - } - // BUGFIX (Mar 2005): - // We can't just compare m_pFunction because on Metrowerks, - // m_pFunction can be zero even if the delegate is not empty! - inline bool operator ! () const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } - inline bool empty() const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } -public: - DelegateMemento & operator = (const DelegateMemento &right) { - SetMementoFrom(right); - return *this; - } - inline bool operator <(const DelegateMemento &right) { - return IsLess(right); - } - inline bool operator >(const DelegateMemento &right) { - return right.IsLess(*this); - } - DelegateMemento (const DelegateMemento &right) : - m_pthis(right.m_pthis), m_pFunction(right.m_pFunction) -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - , m_pStaticFunction (right.m_pStaticFunction) -#endif - {} -protected: - void SetMementoFrom(const DelegateMemento &right) { - m_pFunction = right.m_pFunction; - m_pthis = right.m_pthis; -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = right.m_pStaticFunction; -#endif - } -}; - - -// ClosurePtr<> -// -// A private wrapper class that adds function signatures to DelegateMemento. -// It's the class that does most of the actual work. -// The signatures are specified by: -// GenericMemFunc: must be a type of GenericClass member function pointer. -// StaticFuncPtr: must be a type of function pointer with the same signature -// as GenericMemFunc. -// UnvoidStaticFuncPtr: is the same as StaticFuncPtr, except on VC6 -// where it never returns void (returns DefaultVoid instead). - -// An outer class, FastDelegateN<>, handles the invoking and creates the -// necessary typedefs. -// This class does everything else. - -namespace detail { - -template < class GenericMemFunc, class StaticFuncPtr, class UnvoidStaticFuncPtr> -class ClosurePtr : public DelegateMemento { -public: - // These functions are for setting the delegate to a member function. - - // Here's the clever bit: we convert an arbitrary member function into a - // standard form. XMemFunc should be a member function of class X, but I can't - // enforce that here. It needs to be enforced by the wrapper class. - template < class X, class XMemFunc > - inline void bindmemfunc(X *pthis, XMemFunc function_to_bind ) { - m_pthis = SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(pthis, function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } - // For const member functions, we only need a const class pointer. - // Since we know that the member function is const, it's safe to - // remove the const qualifier from the 'this' pointer with a const_cast. - // VC6 has problems if we just overload 'bindmemfunc', so we give it a different name. - template < class X, class XMemFunc> - inline void bindconstmemfunc(const X *pthis, XMemFunc function_to_bind) { - m_pthis= SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(const_cast(pthis), function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#ifdef FASTDELEGATE_GCC_BUG_8271 // At present, GCC doesn't recognize constness of MFPs in templates - template < class X, class XMemFunc> - inline void bindmemfunc(const X *pthis, XMemFunc function_to_bind) { - bindconstmemfunc(pthis, function_to_bind); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#endif - // These functions are required for invoking the stored function - inline GenericClass *GetClosureThis() const { return m_pthis; } - inline GenericMemFunc GetClosureMemPtr() const { return reinterpret_cast(m_pFunction); } - -// There are a few ways of dealing with static function pointers. -// There's a standard-compliant, but tricky method. -// There's also a straightforward hack, that won't work on DOS compilers using the -// medium memory model. It's so evil that I can't recommend it, but I've -// implemented it anyway because it produces very nice asm code. - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - -// ClosurePtr<> - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// I store the function pointer inside the class, and the delegate then -// points to itself. Whenever the delegate is copied, these self-references -// must be transformed, and this complicates the = and == operators. -public: - // The next two functions are for operator ==, =, and the copy constructor. - // We may need to convert the m_pthis pointers, so that - // they remain as self-references. - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &x) { - SetMementoFrom(x); - if (m_pStaticFunction!=0) { - // transform self references... - m_pthis=reinterpret_cast(pParent); - } - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - template < class DerivedClass, class ParentInvokerSig > - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind ) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - bindmemfunc(pParent, static_function_invoker); - } - m_pStaticFunction=reinterpret_cast(function_to_bind); - } - inline UnvoidStaticFuncPtr GetStaticFunction() const { - return reinterpret_cast(m_pStaticFunction); - } -#else - -// ClosurePtr<> - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. Invocation isn't any faster, but it saves 4 bytes, and -// speeds up comparison and assignment. If C++ provided direct language support -// for delegates, they would produce asm code that was almost identical to this. -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &right) { - SetMementoFrom(right); - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - // ******** EVIL, EVIL CODE! ******* - template < class DerivedClass, class ParentInvokerSig> - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - // We'll be ignoring the 'this' pointer, but we need to make sure we pass - // a valid value to bindmemfunc(). - bindmemfunc(pParent, static_function_invoker); - } - - // WARNING! Evil hack. We store the function in the 'this' pointer! - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(GenericClass *)==sizeof(function_to_bind) ? 1 : -1]; - m_pthis = horrible_cast(function_to_bind); - // MSVC, SunC++ and DMC accept the following (non-standard) code: -// m_pthis = static_cast(static_cast(function_to_bind)); - // BCC32, Comeau and DMC accept this method. MSVC7.1 needs __int64 instead of long -// m_pthis = reinterpret_cast(reinterpret_cast(function_to_bind)); - } - // ******** EVIL, EVIL CODE! ******* - // This function will be called with an invalid 'this' pointer!! - // We're just returning the 'this' pointer, converted into - // a function pointer! - inline UnvoidStaticFuncPtr GetStaticFunction() const { - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(UnvoidStaticFuncPtr)==sizeof(this) ? 1 : -1]; - return horrible_cast(this); - } -#endif // !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - - // Does the closure contain this static function? - inline bool IsEqualToStaticFuncPtr(StaticFuncPtr funcptr){ - if (funcptr==0) return empty(); - // For the Evil method, if it doesn't actually contain a static function, this will return an arbitrary - // value that is not equal to any valid function pointer. - else return funcptr==reinterpret_cast(GetStaticFunction()); - } -}; - - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 3: -// -// Wrapper classes to ensure type safety -// -//////////////////////////////////////////////////////////////////////////////// - - -// Once we have the member function conversion templates, it's easy to make the -// wrapper classes. So that they will work with as many compilers as possible, -// the classes are of the form -// FastDelegate3 -// They can cope with any combination of parameters. The max number of parameters -// allowed is 8, but it is trivial to increase this limit. -// Note that we need to treat const member functions seperately. -// All this class does is to enforce type safety, and invoke the delegate with -// the correct list of parameters. - -// Because of the weird rule about the class of derived member function pointers, -// you sometimes need to apply a downcast to the 'this' pointer. -// This is the reason for the use of "implicit_cast(pthis)" in the code below. -// If CDerivedClass is derived from CBaseClass, but doesn't override SimpleVirtualFunction, -// without this trick you'd need to write: -// MyDelegate(static_cast(&d), &CDerivedClass::SimpleVirtualFunction); -// but with the trick you can write -// MyDelegate(&d, &CDerivedClass::SimpleVirtualFunction); - -// RetType is the type the compiler uses in compiling the template. For VC6, -// it cannot be void. DesiredRetType is the real type which is returned from -// all of the functions. It can be void. - -// Implicit conversion to "bool" is achieved using the safe_bool idiom, -// using member data pointers (MDP). This allows "if (dg)..." syntax -// Because some compilers (eg codeplay) don't have a unique value for a zero -// MDP, an extra padding member is added to the SafeBool struct. -// Some compilers (eg VC6) won't implicitly convert from 0 to an MDP, so -// in that case the static function constructor is not made explicit; this -// allows "if (dg==0) ..." to compile. - -//N=0 -template -class FastDelegate0 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(); - typedef RetType (*UnvoidStaticFunctionPtr)(); - typedef RetType (detail::GenericClass::*GenericMemFn)(); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate0 type; - - // Construction and comparison functions - FastDelegate0() { clear(); } - FastDelegate0(const FastDelegate0 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate0 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate0 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate0 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate0 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate0 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate0(Y *pthis, DesiredRetType (X::* function_to_bind)() ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)()) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate0(const Y *pthis, DesiredRetType (X::* function_to_bind)() const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)() const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate0(DesiredRetType (*function_to_bind)() ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)() ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)()) { - m_Closure.bindstaticfunc(this, &FastDelegate0::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() () const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction() const { - return (*(m_Closure.GetStaticFunction()))(); } -}; - -//N=1 -template -class FastDelegate1 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate1 type; - - // Construction and comparison functions - FastDelegate1() { clear(); } - FastDelegate1(const FastDelegate1 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate1 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate1 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate1 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate1 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate1 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate1(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate1(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate1(DesiredRetType (*function_to_bind)(Param1 p1) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1)) { - m_Closure.bindstaticfunc(this, &FastDelegate1::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1) const { - return (*(m_Closure.GetStaticFunction()))(p1); } -}; - -//N=2 -template -class FastDelegate2 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate2 type; - - // Construction and comparison functions - FastDelegate2() { clear(); } - FastDelegate2(const FastDelegate2 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate2 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate2 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate2 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate2 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate2 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate2(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate2(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate2(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2)) { - m_Closure.bindstaticfunc(this, &FastDelegate2::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2); } -}; - -//N=3 -template -class FastDelegate3 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate3 type; - - // Construction and comparison functions - FastDelegate3() { clear(); } - FastDelegate3(const FastDelegate3 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate3 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate3 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate3 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate3 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate3 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate3(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate3(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate3(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3)) { - m_Closure.bindstaticfunc(this, &FastDelegate3::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3); } -}; - -//N=4 -template -class FastDelegate4 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate4 type; - - // Construction and comparison functions - FastDelegate4() { clear(); } - FastDelegate4(const FastDelegate4 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate4 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate4 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate4 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate4 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate4 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate4(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate4(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate4(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - m_Closure.bindstaticfunc(this, &FastDelegate4::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4); } -}; - -//N=5 -template -class FastDelegate5 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate5 type; - - // Construction and comparison functions - FastDelegate5() { clear(); } - FastDelegate5(const FastDelegate5 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate5 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate5 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate5 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate5 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate5 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate5(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate5(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate5(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - m_Closure.bindstaticfunc(this, &FastDelegate5::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5); } -}; - -//N=6 -template -class FastDelegate6 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate6 type; - - // Construction and comparison functions - FastDelegate6() { clear(); } - FastDelegate6(const FastDelegate6 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate6 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate6 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate6 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate6 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate6 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate6(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate6(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate6(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - m_Closure.bindstaticfunc(this, &FastDelegate6::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6); } -}; - -//N=7 -template -class FastDelegate7 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate7 type; - - // Construction and comparison functions - FastDelegate7() { clear(); } - FastDelegate7(const FastDelegate7 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate7 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate7 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate7 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate7 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate7 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate7(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate7(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate7(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - m_Closure.bindstaticfunc(this, &FastDelegate7::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7); } -}; - -//N=8 -template -class FastDelegate8 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate8 type; - - // Construction and comparison functions - FastDelegate8() { clear(); } - FastDelegate8(const FastDelegate8 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate8 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate8 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate8 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate8 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate8 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate8(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate8(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate8(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - m_Closure.bindstaticfunc(this, &FastDelegate8::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8); } -}; - -//N=9 -template -class FastDelegate9 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate9 type; - - // Construction and comparison functions - FastDelegate9() { clear(); } - FastDelegate9(const FastDelegate9 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate9 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate9 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate9 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate9 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate9 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate9(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate9(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate9(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - m_Closure.bindstaticfunc(this, &FastDelegate9::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9); } -}; - -//N=10 -template -class FastDelegate10 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate10 type; - - // Construction and comparison functions - FastDelegate10() { clear(); } - FastDelegate10(const FastDelegate10 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate10 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate10 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate10 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate10 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate10 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate10(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate10(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate10(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - m_Closure.bindstaticfunc(this, &FastDelegate10::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } -}; - -//N=11 -template -class FastDelegate11 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate11 type; - - // Construction and comparison functions - FastDelegate11() { clear(); } - FastDelegate11(const FastDelegate11 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate11 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate11 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate11 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate11 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate11 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate11(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate11(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate11(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - m_Closure.bindstaticfunc(this, &FastDelegate11::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } -}; - -//N=12 -template -class FastDelegate12 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate12 type; - - // Construction and comparison functions - FastDelegate12() { clear(); } - FastDelegate12(const FastDelegate12 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate12 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate12 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate12 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate12 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate12 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate12(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate12(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate12(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - m_Closure.bindstaticfunc(this, &FastDelegate12::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } -}; - -//N=13 -template -class FastDelegate13 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate13 type; - - // Construction and comparison functions - FastDelegate13() { clear(); } - FastDelegate13(const FastDelegate13 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate13 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate13 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate13 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate13 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate13 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate13(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate13(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate13(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - m_Closure.bindstaticfunc(this, &FastDelegate13::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } -}; - -//N=14 -template -class FastDelegate14 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate14 type; - - // Construction and comparison functions - FastDelegate14() { clear(); } - FastDelegate14(const FastDelegate14 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate14 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate14 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate14 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate14 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate14 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate14(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate14(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate14(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - m_Closure.bindstaticfunc(this, &FastDelegate14::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); } -}; - -//N=15 -template -class FastDelegate15 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate15 type; - - // Construction and comparison functions - FastDelegate15() { clear(); } - FastDelegate15(const FastDelegate15 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate15 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate15 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate15 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate15 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate15 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate15(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate15(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate15(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - m_Closure.bindstaticfunc(this, &FastDelegate15::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15); } -}; - -//N=16 -template -class FastDelegate16 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate16 type; - - // Construction and comparison functions - FastDelegate16() { clear(); } - FastDelegate16(const FastDelegate16 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate16 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate16 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate16 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate16 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate16 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate16(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate16(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate16(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - m_Closure.bindstaticfunc(this, &FastDelegate16::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16); } -}; - -//N=17 -template -class FastDelegate17 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate17 type; - - // Construction and comparison functions - FastDelegate17() { clear(); } - FastDelegate17(const FastDelegate17 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate17 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate17 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate17 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate17 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate17 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate17(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate17(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate17(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - m_Closure.bindstaticfunc(this, &FastDelegate17::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17); } -}; - -//N=18 -template -class FastDelegate18 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate18 type; - - // Construction and comparison functions - FastDelegate18() { clear(); } - FastDelegate18(const FastDelegate18 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate18 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate18 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate18 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate18 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate18 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate18(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate18(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate18(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - m_Closure.bindstaticfunc(this, &FastDelegate18::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18); } -}; - -//N=19 -template -class FastDelegate19 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate19 type; - - // Construction and comparison functions - FastDelegate19() { clear(); } - FastDelegate19(const FastDelegate19 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate19 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate19 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate19 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate19 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate19 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate19(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate19(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate19(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - m_Closure.bindstaticfunc(this, &FastDelegate19::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19); } -}; - -//N=20 -template -class FastDelegate20 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate20 type; - - // Construction and comparison functions - FastDelegate20() { clear(); } - FastDelegate20(const FastDelegate20 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate20 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate20 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate20 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate20 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate20 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate20(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate20(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate20(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - m_Closure.bindstaticfunc(this, &FastDelegate20::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20); } -}; - - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 4: -// -// FastDelegate<> class (Original author: Jody Hagins) -// Allows boost::function style syntax like: -// FastDelegate< double (int, long) > -// instead of: -// FastDelegate2< int, long, double > -// -//////////////////////////////////////////////////////////////////////////////// - -#ifdef FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -// Declare FastDelegate as a class template. It will be specialized -// later for all number of arguments. -template -class FastDelegate; - -//N=0 -// Specialization to allow use of -// FastDelegate< R ( ) > -// instead of -// FastDelegate0 < R > -template -class FastDelegate< R ( ) > - // Inherit from FastDelegate0 so that it can be treated just like a FastDelegate0 - : public FastDelegate0 < R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate0 < R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=1 -// Specialization to allow use of -// FastDelegate< R ( Param1 ) > -// instead of -// FastDelegate1 < Param1, R > -template -class FastDelegate< R ( Param1 ) > - // Inherit from FastDelegate1 so that it can be treated just like a FastDelegate1 - : public FastDelegate1 < Param1, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate1 < Param1, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=2 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2 ) > -// instead of -// FastDelegate2 < Param1, Param2, R > -template -class FastDelegate< R ( Param1, Param2 ) > - // Inherit from FastDelegate2 so that it can be treated just like a FastDelegate2 - : public FastDelegate2 < Param1, Param2, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate2 < Param1, Param2, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=3 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3 ) > -// instead of -// FastDelegate3 < Param1, Param2, Param3, R > -template -class FastDelegate< R ( Param1, Param2, Param3 ) > - // Inherit from FastDelegate3 so that it can be treated just like a FastDelegate3 - : public FastDelegate3 < Param1, Param2, Param3, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate3 < Param1, Param2, Param3, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=4 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4 ) > -// instead of -// FastDelegate4 < Param1, Param2, Param3, Param4, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4 ) > - // Inherit from FastDelegate4 so that it can be treated just like a FastDelegate4 - : public FastDelegate4 < Param1, Param2, Param3, Param4, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate4 < Param1, Param2, Param3, Param4, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=5 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5 ) > -// instead of -// FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5 ) > - // Inherit from FastDelegate5 so that it can be treated just like a FastDelegate5 - : public FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=6 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6 ) > -// instead of -// FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6 ) > - // Inherit from FastDelegate6 so that it can be treated just like a FastDelegate6 - : public FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=7 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7 ) > -// instead of -// FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7 ) > - // Inherit from FastDelegate7 so that it can be treated just like a FastDelegate7 - : public FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=8 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8 ) > -// instead of -// FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8 ) > - // Inherit from FastDelegate8 so that it can be treated just like a FastDelegate8 - : public FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=9 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9 ) > -// instead of -// FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9 ) > - // Inherit from FastDelegate9 so that it can be treated just like a FastDelegate9 - : public FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=10 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10 ) > -// instead of -// FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10 ) > - // Inherit from FastDelegate10 so that it can be treated just like a FastDelegate10 - : public FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=11 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11 ) > -// instead of -// FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11 ) > - // Inherit from FastDelegate11 so that it can be treated just like a FastDelegate11 - : public FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=12 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12 ) > -// instead of -// FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12 ) > - // Inherit from FastDelegate12 so that it can be treated just like a FastDelegate12 - : public FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=13 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13 ) > -// instead of -// FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13 ) > - // Inherit from FastDelegate13 so that it can be treated just like a FastDelegate13 - : public FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=14 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14 ) > -// instead of -// FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14 ) > - // Inherit from FastDelegate14 so that it can be treated just like a FastDelegate14 - : public FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=15 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15 ) > -// instead of -// FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15 ) > - // Inherit from FastDelegate15 so that it can be treated just like a FastDelegate15 - : public FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=16 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16 ) > -// instead of -// FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16 ) > - // Inherit from FastDelegate16 so that it can be treated just like a FastDelegate16 - : public FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=17 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17 ) > -// instead of -// FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17 ) > - // Inherit from FastDelegate17 so that it can be treated just like a FastDelegate17 - : public FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=18 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18 ) > -// instead of -// FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18 ) > - // Inherit from FastDelegate18 so that it can be treated just like a FastDelegate18 - : public FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=19 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19 ) > -// instead of -// FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19 ) > - // Inherit from FastDelegate19 so that it can be treated just like a FastDelegate19 - : public FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=20 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20 ) > -// instead of -// FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20 ) > - // Inherit from FastDelegate20 so that it can be treated just like a FastDelegate20 - : public FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - - -#endif //FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 5: -// -// MakeDelegate() helper function -// -// MakeDelegate(&x, &X::func) returns a fastdelegate of the type -// necessary for calling x.func() with the correct number of arguments. -// This makes it possible to eliminate many typedefs from user code. -// -//////////////////////////////////////////////////////////////////////////////// - -// Also declare overloads of a MakeDelegate() global function to -// reduce the need for typedefs. -// We need seperate overloads for const and non-const member functions. -// Also, because of the weird rule about the class of derived member function pointers, -// implicit downcasts may need to be applied later to the 'this' pointer. -// That's why two classes (X and Y) appear in the definitions. Y must be implicitly -// castable to X. - -// Workaround for VC6. VC6 needs void return types converted into DefaultVoid. -// GCC 3.2 and later won't compile this unless it's preceded by 'typename', -// but VC6 doesn't allow 'typename' in this context. -// So, I have to use a macro. - -#ifdef FASTDLGT_VC6 -#define FASTDLGT_RETTYPE detail::VoidToDefaultVoid::type -#else -#define FASTDLGT_RETTYPE RetType -#endif - -//N=0 -template -FastDelegate0 MakeDelegate(Y* x, RetType (X::*func)()) { - return FastDelegate0(x, func); -} - -template -FastDelegate0 MakeDelegate(Y* x, RetType (X::*func)() const) { - return FastDelegate0(x, func); -} - -template -FastDelegate0 MakeDelegate(RetType (*func)()) { - return FastDelegate0(func); -} - -//N=1 -template -FastDelegate1 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1)) { - return FastDelegate1(x, func); -} - -template -FastDelegate1 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1) const) { - return FastDelegate1(x, func); -} - -template -FastDelegate1 MakeDelegate(RetType (*func)(Param1 p1)) { - return FastDelegate1(func); -} - -//N=2 -template -FastDelegate2 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2)) { - return FastDelegate2(x, func); -} - -template -FastDelegate2 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2) const) { - return FastDelegate2(x, func); -} - -template -FastDelegate2 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2)) { - return FastDelegate2(func); -} - -//N=3 -template -FastDelegate3 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3)) { - return FastDelegate3(x, func); -} - -template -FastDelegate3 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3) const) { - return FastDelegate3(x, func); -} - -template -FastDelegate3 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3)) { - return FastDelegate3(func); -} - -//N=4 -template -FastDelegate4 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - return FastDelegate4(x, func); -} - -template -FastDelegate4 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - return FastDelegate4(x, func); -} - -template -FastDelegate4 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - return FastDelegate4(func); -} - -//N=5 -template -FastDelegate5 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - return FastDelegate5(x, func); -} - -template -FastDelegate5 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - return FastDelegate5(x, func); -} - -template -FastDelegate5 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - return FastDelegate5(func); -} - -//N=6 -template -FastDelegate6 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - return FastDelegate6(x, func); -} - -template -FastDelegate6 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - return FastDelegate6(x, func); -} - -template -FastDelegate6 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - return FastDelegate6(func); -} - -//N=7 -template -FastDelegate7 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - return FastDelegate7(x, func); -} - -template -FastDelegate7 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - return FastDelegate7(x, func); -} - -template -FastDelegate7 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - return FastDelegate7(func); -} - -//N=8 -template -FastDelegate8 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - return FastDelegate8(x, func); -} - -template -FastDelegate8 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - return FastDelegate8(x, func); -} - -template -FastDelegate8 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - return FastDelegate8(func); -} - -//N=9 -template -FastDelegate9 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - return FastDelegate9(x, func); -} - -template -FastDelegate9 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - return FastDelegate9(x, func); -} - -template -FastDelegate9 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - return FastDelegate9(func); -} - -//N=10 -template -FastDelegate10 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - return FastDelegate10(x, func); -} - -template -FastDelegate10 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - return FastDelegate10(x, func); -} - -template -FastDelegate10 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - return FastDelegate10(func); -} - -//N=11 -template -FastDelegate11 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - return FastDelegate11(x, func); -} - -template -FastDelegate11 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - return FastDelegate11(x, func); -} - -template -FastDelegate11 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - return FastDelegate11(func); -} - -//N=12 -template -FastDelegate12 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - return FastDelegate12(x, func); -} - -template -FastDelegate12 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - return FastDelegate12(x, func); -} - -template -FastDelegate12 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - return FastDelegate12(func); -} - -//N=13 -template -FastDelegate13 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - return FastDelegate13(x, func); -} - -template -FastDelegate13 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - return FastDelegate13(x, func); -} - -template -FastDelegate13 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - return FastDelegate13(func); -} - -//N=14 -template -FastDelegate14 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - return FastDelegate14(x, func); -} - -template -FastDelegate14 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - return FastDelegate14(x, func); -} - -template -FastDelegate14 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - return FastDelegate14(func); -} - -//N=15 -template -FastDelegate15 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - return FastDelegate15(x, func); -} - -template -FastDelegate15 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - return FastDelegate15(x, func); -} - -template -FastDelegate15 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - return FastDelegate15(func); -} - -//N=16 -template -FastDelegate16 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - return FastDelegate16(x, func); -} - -template -FastDelegate16 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - return FastDelegate16(x, func); -} - -template -FastDelegate16 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - return FastDelegate16(func); -} - -//N=17 -template -FastDelegate17 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - return FastDelegate17(x, func); -} - -template -FastDelegate17 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - return FastDelegate17(x, func); -} - -template -FastDelegate17 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - return FastDelegate17(func); -} - -//N=18 -template -FastDelegate18 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - return FastDelegate18(x, func); -} - -template -FastDelegate18 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - return FastDelegate18(x, func); -} - -template -FastDelegate18 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - return FastDelegate18(func); -} - -//N=19 -template -FastDelegate19 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - return FastDelegate19(x, func); -} - -template -FastDelegate19 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - return FastDelegate19(x, func); -} - -template -FastDelegate19 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - return FastDelegate19(func); -} - -//N=20 -template -FastDelegate20 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - return FastDelegate20(x, func); -} - -template -FastDelegate20 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - return FastDelegate20(x, func); -} - -template -FastDelegate20 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - return FastDelegate20(func); -} - - - // clean up after ourselves... -#undef FASTDLGT_RETTYPE - -} // namespace fastdelegate - -#endif // !defined(FASTDELEGATE_H) diff --git a/sourcehook/generate/FastDelegate.h b/sourcehook/generate/FastDelegate.h deleted file mode 100644 index a17bb1a..0000000 --- a/sourcehook/generate/FastDelegate.h +++ /dev/null @@ -1,3811 +0,0 @@ -// FastDelegate.h -// Efficient delegates in C++ that generate only two lines of asm code! -// Documentation is found at http://www.codeproject.com/cpp/FastDelegate.asp -// -// - Don Clugston, Mar 2004. -// Major contributions were made by Jody Hagins. -// History: -// 24-Apr-04 1.0 * Submitted to CodeProject. -// 28-Apr-04 1.1 * Prevent most unsafe uses of evil static function hack. -// * Improved syntax for horrible_cast (thanks Paul Bludov). -// * Tested on Metrowerks MWCC and Intel ICL (IA32) -// * Compiled, but not run, on Comeau C++ and Intel Itanium ICL. -// 27-Jun-04 1.2 * Now works on Borland C++ Builder 5.5 -// * Now works on /clr "managed C++" code on VC7, VC7.1 -// * Comeau C++ now compiles without warnings. -// * Prevent the virtual inheritance case from being used on -// VC6 and earlier, which generate incorrect code. -// * Improved warning and error messages. Non-standard hacks -// now have compile-time checks to make them safer. -// * implicit_cast used instead of static_cast in many cases. -// * If calling a const member function, a const class pointer can be used. -// * MakeDelegate() global helper function added to simplify pass-by-value. -// * Added fastdelegate.clear() -// 16-Jul-04 1.2.1* Workaround for gcc bug (const member function pointers in templates) -// 30-Oct-04 1.3 * Support for (non-void) return values. -// * No more workarounds in client code! -// MSVC and Intel now use a clever hack invented by John Dlugosz: -// - The FASTDELEGATEDECLARE workaround is no longer necessary. -// - No more warning messages for VC6 -// * Less use of macros. Error messages should be more comprehensible. -// * Added include guards -// * Added FastDelegate::empty() to test if invocation is safe (Thanks Neville Franks). -// * Now tested on VS 2005 Express Beta, PGI C++ -// 24-Dec-04 1.4 * Added DelegateMemento, to allow collections of disparate delegates. -// * <,>,<=,>= comparison operators to allow storage in ordered containers. -// * Substantial reduction of code size, especially the 'Closure' class. -// * Standardised all the compiler-specific workarounds. -// * MFP conversion now works for CodePlay (but not yet supported in the full code). -// * Now compiles without warnings on _any_ supported compiler, including BCC 5.5.1 -// * New syntax: FastDelegate< int (char *, double) >. -// 14-Feb-05 1.4.1* Now treats =0 as equivalent to .clear(), ==0 as equivalent to .empty(). (Thanks elfric). -// * Now tested on Intel ICL for AMD64, VS2005 Beta for AMD64 and Itanium. -// 30-Mar-05 1.5 * Safebool idiom: "if (dg)" is now equivalent to "if (!dg.empty())" -// * Fully supported by CodePlay VectorC -// * Bugfix for Metrowerks: empty() was buggy because a valid MFP can be 0 on MWCC! -// * More optimal assignment,== and != operators for static function pointers. - -#ifndef FASTDELEGATE_H -#define FASTDELEGATE_H - -#ifdef _MSC_VER -# if _MSC_VER > 1000 -# pragma once -# endif // _MSC_VER > 1000 -#endif // #ifdef _MSC_VER - -#include // to allow <,> comparisons - -//////////////////////////////////////////////////////////////////////////////// -// Configuration options -// -//////////////////////////////////////////////////////////////////////////////// - -// Uncomment the following #define for optimally-sized delegates. -// In this case, the generated asm code is almost identical to the code you'd get -// if the compiler had native support for delegates. -// It will not work on systems where sizeof(dataptr) < sizeof(codeptr). -// Thus, it will not work for DOS compilers using the medium model. -// It will also probably fail on some DSP systems. -#define FASTDELEGATE_USESTATICFUNCTIONHACK - -// Uncomment the next line to allow function declarator syntax. -// It is automatically enabled for those compilers where it is known to work. -//#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Compiler identification for workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Compiler identification. It's not easy to identify Visual C++ because -// many vendors fraudulently define Microsoft's identifiers. -#if defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__VECTOR_C) && !defined(__ICL) && !defined(__BORLANDC__) -#define FASTDLGT_ISMSVC - -#if (_MSC_VER <1300) // Many workarounds are required for VC6. -#define FASTDLGT_VC6 -#pragma warning(disable:4786) // disable this ridiculous warning -#endif - -#endif - -// Does the compiler uses Microsoft's member function pointer structure? -// If so, it needs special treatment. -// Metrowerks CodeWarrior, Intel, and CodePlay fraudulently define Microsoft's -// identifier, _MSC_VER. We need to filter Metrowerks out. -#if defined(_MSC_VER) && !defined(__MWERKS__) -#define FASTDLGT_MICROSOFT_MFP - -#if !defined(__VECTOR_C) -// CodePlay doesn't have the __single/multi/virtual_inheritance keywords -#define FASTDLGT_HASINHERITANCE_KEYWORDS -#endif -#endif - -// Does it allow function declarator syntax? The following compilers are known to work: -#if defined(FASTDLGT_ISMSVC) && (_MSC_VER >=1310) // VC 7.1 -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// Gcc(2.95+), and versions of Digital Mars, Intel and Comeau in common use. -#if defined (__DMC__) || defined(__GNUC__) || defined(__ICL) || defined(__COMO__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// It works on Metrowerks MWCC 3.2.2. From boost.Config it should work on earlier ones too. -#if defined (__MWERKS__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -#ifdef __GNUC__ // Workaround GCC bug #8271 - // At present, GCC doesn't recognize constness of MFPs in templates -#define FASTDELEGATE_GCC_BUG_8271 -#endif - - - -//////////////////////////////////////////////////////////////////////////////// -// General tricks used in this code -// -// (a) Error messages are generated by typdefing an array of negative size to -// generate compile-time errors. -// (b) Warning messages on MSVC are generated by declaring unused variables, and -// enabling the "variable XXX is never used" warning. -// (c) Unions are used in a few compiler-specific cases to perform illegal casts. -// (d) For Microsoft and Intel, when adjusting the 'this' pointer, it's cast to -// (char *) first to ensure that the correct number of *bytes* are added. -// -//////////////////////////////////////////////////////////////////////////////// -// Helper templates -// -//////////////////////////////////////////////////////////////////////////////// - - -namespace fastdelegate { -namespace detail { // we'll hide the implementation details in a nested namespace. - -// implicit_cast< > -// I believe this was originally going to be in the C++ standard but -// was left out by accident. It's even milder than static_cast. -// I use it instead of static_cast<> to emphasize that I'm not doing -// anything nasty. -// Usage is identical to static_cast<> -template -inline OutputClass implicit_cast(InputClass input){ - return input; -} - -// horrible_cast< > -// This is truly evil. It completely subverts C++'s type system, allowing you -// to cast from any class to any other class. Technically, using a union -// to perform the cast is undefined behaviour (even in C). But we can see if -// it is OK by checking that the union is the same size as each of its members. -// horrible_cast<> should only be used for compiler-specific workarounds. -// Usage is identical to reinterpret_cast<>. - -// This union is declared outside the horrible_cast because BCC 5.5.1 -// can't inline a function with a nested class, and gives a warning. -template -union horrible_union{ - OutputClass out; - InputClass in; -}; - -template -inline OutputClass horrible_cast(const InputClass input){ - horrible_union u; - // Cause a compile-time error if in, out and u are not the same size. - // If the compile fails here, it means the compiler has peculiar - // unions which would prevent the cast from working. - typedef int ERROR_CantUseHorrible_cast[sizeof(InputClass)==sizeof(u) - && sizeof(InputClass)==sizeof(OutputClass) ? 1 : -1]; - u.in = input; - return u.out; -} - -//////////////////////////////////////////////////////////////////////////////// -// Workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Backwards compatibility: This macro used to be necessary in the virtual inheritance -// case for Intel and Microsoft. Now it just forward-declares the class. -#define FASTDELEGATEDECLARE(CLASSNAME) class CLASSNAME; - -// Prevent use of the static function hack with the DOS medium model. -#ifdef __MEDIUM__ -#undef FASTDELEGATE_USESTATICFUNCTIONHACK -#endif - -// DefaultVoid - a workaround for 'void' templates in VC6. -// -// (1) VC6 and earlier do not allow 'void' as a default template argument. -// (2) They also doesn't allow you to return 'void' from a function. -// -// Workaround for (1): Declare a dummy type 'DefaultVoid' which we use -// when we'd like to use 'void'. We convert it into 'void' and back -// using the templates DefaultVoidToVoid<> and VoidToDefaultVoid<>. -// Workaround for (2): On VC6, the code for calling a void function is -// identical to the code for calling a non-void function in which the -// return value is never used, provided the return value is returned -// in the EAX register, rather than on the stack. -// This is true for most fundamental types such as int, enum, void *. -// Const void * is the safest option since it doesn't participate -// in any automatic conversions. But on a 16-bit compiler it might -// cause extra code to be generated, so we disable it for all compilers -// except for VC6 (and VC5). -#ifdef FASTDLGT_VC6 -// VC6 workaround -typedef const void * DefaultVoid; -#else -// On any other compiler, just use a normal void. -typedef void DefaultVoid; -#endif - -// Translate from 'DefaultVoid' to 'void'. -// Everything else is unchanged -template -struct DefaultVoidToVoid { typedef T type; }; - -template <> -struct DefaultVoidToVoid { typedef void type; }; - -// Translate from 'void' into 'DefaultVoid' -// Everything else is unchanged -template -struct VoidToDefaultVoid { typedef T type; }; - -template <> -struct VoidToDefaultVoid { typedef DefaultVoid type; }; - - - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1: -// -// Conversion of member function pointer to a standard form -// -//////////////////////////////////////////////////////////////////////////////// - -// GenericClass is a fake class, ONLY used to provide a type. -// It is vitally important that it is never defined, so that the compiler doesn't -// think it can optimize the invocation. For example, Borland generates simpler -// code if it knows the class only uses single inheritance. - -// Compilers using Microsoft's structure need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -#ifdef FASTDLGT_HASINHERITANCE_KEYWORDS - // For Microsoft and Intel, we want to ensure that it's the most efficient type of MFP - // (4 bytes), even when the /vmg option is used. Declaring an empty class - // would give 16 byte pointers in this case.... - class __single_inheritance GenericClass; -#endif - // ...but for Codeplay, an empty class *always* gives 4 byte pointers. - // If compiled with the /clr option ("managed C++"), the JIT compiler thinks - // it needs to load GenericClass before it can call any of its functions, - // (compiles OK but crashes at runtime!), so we need to declare an - // empty class to make it happy. - // Codeplay and VC4 can't cope with the unknown_inheritance case either. - class GenericClass {}; -#else - class GenericClass; -#endif - -// The size of a single inheritance member function pointer. -const int SINGLE_MEMFUNCPTR_SIZE = sizeof(void (GenericClass::*)()); - -// SimplifyMemFunc< >::Convert() -// -// A template function that converts an arbitrary member function pointer into the -// simplest possible form of member function pointer, using a supplied 'this' pointer. -// According to the standard, this can be done legally with reinterpret_cast<>. -// For (non-standard) compilers which use member function pointers which vary in size -// depending on the class, we need to use knowledge of the internal structure of a -// member function pointer, as used by the compiler. Template specialization is used -// to distinguish between the sizes. Because some compilers don't support partial -// template specialisation, I use full specialisation of a wrapper struct. - -// general case -- don't know how to convert it. Force a compile failure -template -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // Unsupported member function type -- force a compile failure. - // (it's illegal to have a array with negative size). - typedef char ERROR_Unsupported_member_function_pointer_on_this_compiler[N-100]; - return 0; - } -}; - -// For compilers where all member func ptrs are the same size, everything goes here. -// For non-standard compilers, only single_inheritance classes go here. -template <> -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { -#if defined __DMC__ - // Digital Mars doesn't allow you to cast between abitrary PMF's, - // even though the standard says you can. The 32-bit compiler lets you - // static_cast through an int, but the DOS compiler doesn't. - bound_func = horrible_cast(function_to_bind); -#else - bound_func = reinterpret_cast(function_to_bind); -#endif - return reinterpret_cast(pthis); - } -}; - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1b: -// -// Workarounds for Microsoft and Intel -// -//////////////////////////////////////////////////////////////////////////////// - - -// Compilers with member function pointers which violate the standard (MSVC, Intel, Codeplay), -// need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -// We use unions to perform horrible_casts. I would like to use #pragma pack(push, 1) -// at the start of each function for extra safety, but VC6 seems to ICE -// intermittently if you do this inside a template. - -// __multiple_inheritance classes go here -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -template<> -struct SimplifyMemFunc< SINGLE_MEMFUNCPTR_SIZE + sizeof(int) > { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // We need to use a horrible_cast to do this conversion. - // In MSVC, a multiple inheritance member pointer is internally defined as: - union { - XFuncType func; - struct { - GenericMemFuncType funcaddress; // points to the actual member function - int delta; // #BYTES to be added to the 'this' pointer - }s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - return reinterpret_cast(reinterpret_cast(pthis) + u.s.delta); - } -}; - -// virtual inheritance is a real nuisance. It's inefficient and complicated. -// On MSVC and Intel, there isn't enough information in the pointer itself to -// enable conversion to a closure pointer. Earlier versions of this code didn't -// work for all cases, and generated a compile-time error instead. -// But a very clever hack invented by John M. Dlugosz solves this problem. -// My code is somewhat different to his: I have no asm code, and I make no -// assumptions about the calling convention that is used. - -// In VC++ and ICL, a virtual_inheritance member pointer -// is internally defined as: -struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance -}; -// The CRUCIAL feature of Microsoft/Intel MFPs which we exploit is that the -// m_codeptr member is *always* called, regardless of the values of the other -// members. (This is *not* true for other compilers, eg GCC, which obtain the -// function address from the vtable if a virtual function is being called). -// Dlugosz's trick is to make the codeptr point to a probe function which -// returns the 'this' pointer that was used. - -// Define a generic class that uses virtual inheritance. -// It has a trival member function that returns the value of the 'this' pointer. -struct GenericVirtualClass : virtual public GenericClass -{ - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } -}; - -// __virtual_inheritance classes go here -template <> -struct SimplifyMemFunc -{ - - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - union { - XFuncType func; - GenericClass* (X::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = function_to_bind; - bound_func = reinterpret_cast(u.s.codeptr); - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s) - && sizeof(function_to_bind)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - return (pthis->*u.ProbeFunc)(); - } -}; - -#if (_MSC_VER <1300) - -// Nasty hack for Microsoft Visual C++ 6.0 -// unknown_inheritance classes go here -// There is a compiler bug in MSVC6 which generates incorrect code in this case!! -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // There is an apalling but obscure compiler bug in MSVC6 and earlier: - // vtable_index and 'vtordisp' are always set to 0 in the - // unknown_inheritance case! - // This means that an incorrect function could be called!!! - // Compiling with the /vmg option leads to potentially incorrect code. - // This is probably the reason that the IDE has a user interface for specifying - // the /vmg option, but it is disabled - you can only specify /vmg on - // the command line. In VC1.5 and earlier, the compiler would ICE if it ever - // encountered this situation. - // It is OK to use the /vmg option if /vmm or /vms is specified. - - // Fortunately, the wrong function is only called in very obscure cases. - // It only occurs when a derived class overrides a virtual function declared - // in a virtual base class, and the member function - // points to the *Derived* version of that function. The problem can be - // completely averted in 100% of cases by using the *Base class* for the - // member fpointer. Ie, if you use the base class as an interface, you'll - // stay out of trouble. - // Occasionally, you might want to point directly to a derived class function - // that isn't an override of a base class. In this case, both vtable_index - // and 'vtordisp' are zero, but a virtual_inheritance pointer will be generated. - // We can generate correct code in this case. To prevent an incorrect call from - // ever being made, on MSVC6 we generate a warning, and call a function to - // make the program crash instantly. - typedef char ERROR_VC6CompilerBug[-100]; - return 0; - } -}; - - -#else - -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -// unknown_inheritance classes go here -// This is probably the ugliest bit of code I've ever written. Look at the casts! -// There is a compiler bug in MSVC6 which prevents it from using this code. -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - XFuncType func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - GenericMemFuncType m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(XFuncType)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - const int * vtable = *reinterpret_cast( - reinterpret_cast(pthis) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - } - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - return reinterpret_cast( - reinterpret_cast(pthis) + u.s.delta + virtual_delta); - }; -}; -#endif // MSVC 7 and greater - -#endif // MS/Intel hacks - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 2: -// -// Define the delegate storage, and cope with static functions -// -//////////////////////////////////////////////////////////////////////////////// - -// DelegateMemento -- an opaque structure which can hold an arbitary delegate. -// It knows nothing about the calling convention or number of arguments used by -// the function pointed to. -// It supplies comparison operators so that it can be stored in STL collections. -// It cannot be set to anything other than null, nor invoked directly: -// it must be converted to a specific delegate. - -// Implementation: -// There are two possible implementations: the Safe method and the Evil method. -// DelegateMemento - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// A static function pointer is stored inside the class. -// Here are the valid values: -// +-- Static pointer --+--pThis --+-- pMemFunc-+-- Meaning------+ -// | 0 | 0 | 0 | Empty | -// | !=0 |(dontcare)| Invoker | Static function| -// | 0 | !=0 | !=0* | Method call | -// +--------------------+----------+------------+----------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// When stored stored inside a specific delegate, the 'dontcare' entries are replaced -// with a reference to the delegate itself. This complicates the = and == operators -// for the delegate class. - -// DelegateMemento - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. In this case the DelegateMemento implementation is simple: -// +--pThis --+-- pMemFunc-+-- Meaning---------------------+ -// | 0 | 0 | Empty | -// | !=0 | !=0* | Static function or method call| -// +----------+------------+-------------------------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - -class DelegateMemento { -protected: - // the data is protected, not private, because many - // compilers have problems with template friends. - typedef void (detail::GenericClass::*GenericMemFuncType)(); // arbitrary MFP. - detail::GenericClass *m_pthis; - GenericMemFuncType m_pFunction; - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - typedef void (*GenericFuncPtr)(); // arbitrary code pointer - GenericFuncPtr m_pStaticFunction; -#endif - -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - DelegateMemento() : m_pthis(0), m_pFunction(0), m_pStaticFunction(0) {}; - void clear() { - m_pthis=0; m_pFunction=0; m_pStaticFunction=0; - } -#else - DelegateMemento() : m_pthis(0), m_pFunction(0) {}; - void clear() { m_pthis=0; m_pFunction=0; } -#endif -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - inline bool IsEqual (const DelegateMemento &x) const{ - // We have to cope with the static function pointers as a special case - if (m_pFunction!=x.m_pFunction) return false; - // the static function ptrs must either both be equal, or both be 0. - if (m_pStaticFunction!=x.m_pStaticFunction) return false; - if (m_pStaticFunction!=0) return m_pthis==x.m_pthis; - else return true; - } -#else // Evil Method - inline bool IsEqual (const DelegateMemento &x) const{ - return m_pthis==x.m_pthis && m_pFunction==x.m_pFunction; - } -#endif - // Provide a strict weak ordering for DelegateMementos. - inline bool IsLess(const DelegateMemento &right) const { - // deal with static function pointers first -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - if (m_pStaticFunction !=0 || right.m_pStaticFunction!=0) - return m_pStaticFunction < right.m_pStaticFunction; -#endif - if (m_pthis !=right.m_pthis) return m_pthis < right.m_pthis; - // There are no ordering operators for member function pointers, - // but we can fake one by comparing each byte. The resulting ordering is - // arbitrary (and compiler-dependent), but it permits storage in ordered STL containers. - return memcmp(&m_pFunction, &right.m_pFunction, sizeof(m_pFunction)) < 0; - - } - // BUGFIX (Mar 2005): - // We can't just compare m_pFunction because on Metrowerks, - // m_pFunction can be zero even if the delegate is not empty! - inline bool operator ! () const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } - inline bool empty() const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } -public: - DelegateMemento & operator = (const DelegateMemento &right) { - SetMementoFrom(right); - return *this; - } - inline bool operator <(const DelegateMemento &right) { - return IsLess(right); - } - inline bool operator >(const DelegateMemento &right) { - return right.IsLess(*this); - } - DelegateMemento (const DelegateMemento &right) : - m_pthis(right.m_pthis), m_pFunction(right.m_pFunction) -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - , m_pStaticFunction (right.m_pStaticFunction) -#endif - {} -protected: - void SetMementoFrom(const DelegateMemento &right) { - m_pFunction = right.m_pFunction; - m_pthis = right.m_pthis; -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = right.m_pStaticFunction; -#endif - } -}; - - -// ClosurePtr<> -// -// A private wrapper class that adds function signatures to DelegateMemento. -// It's the class that does most of the actual work. -// The signatures are specified by: -// GenericMemFunc: must be a type of GenericClass member function pointer. -// StaticFuncPtr: must be a type of function pointer with the same signature -// as GenericMemFunc. -// UnvoidStaticFuncPtr: is the same as StaticFuncPtr, except on VC6 -// where it never returns void (returns DefaultVoid instead). - -// An outer class, FastDelegateN<>, handles the invoking and creates the -// necessary typedefs. -// This class does everything else. - -namespace detail { - -template < class GenericMemFunc, class StaticFuncPtr, class UnvoidStaticFuncPtr> -class ClosurePtr : public DelegateMemento { -public: - // These functions are for setting the delegate to a member function. - - // Here's the clever bit: we convert an arbitrary member function into a - // standard form. XMemFunc should be a member function of class X, but I can't - // enforce that here. It needs to be enforced by the wrapper class. - template < class X, class XMemFunc > - inline void bindmemfunc(X *pthis, XMemFunc function_to_bind ) { - m_pthis = SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(pthis, function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } - // For const member functions, we only need a const class pointer. - // Since we know that the member function is const, it's safe to - // remove the const qualifier from the 'this' pointer with a const_cast. - // VC6 has problems if we just overload 'bindmemfunc', so we give it a different name. - template < class X, class XMemFunc> - inline void bindconstmemfunc(const X *pthis, XMemFunc function_to_bind) { - m_pthis= SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(const_cast(pthis), function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#ifdef FASTDELEGATE_GCC_BUG_8271 // At present, GCC doesn't recognize constness of MFPs in templates - template < class X, class XMemFunc> - inline void bindmemfunc(const X *pthis, XMemFunc function_to_bind) { - bindconstmemfunc(pthis, function_to_bind); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#endif - // These functions are required for invoking the stored function - inline GenericClass *GetClosureThis() const { return m_pthis; } - inline GenericMemFunc GetClosureMemPtr() const { return reinterpret_cast(m_pFunction); } - -// There are a few ways of dealing with static function pointers. -// There's a standard-compliant, but tricky method. -// There's also a straightforward hack, that won't work on DOS compilers using the -// medium memory model. It's so evil that I can't recommend it, but I've -// implemented it anyway because it produces very nice asm code. - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - -// ClosurePtr<> - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// I store the function pointer inside the class, and the delegate then -// points to itself. Whenever the delegate is copied, these self-references -// must be transformed, and this complicates the = and == operators. -public: - // The next two functions are for operator ==, =, and the copy constructor. - // We may need to convert the m_pthis pointers, so that - // they remain as self-references. - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &x) { - SetMementoFrom(x); - if (m_pStaticFunction!=0) { - // transform self references... - m_pthis=reinterpret_cast(pParent); - } - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - template < class DerivedClass, class ParentInvokerSig > - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind ) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - bindmemfunc(pParent, static_function_invoker); - } - m_pStaticFunction=reinterpret_cast(function_to_bind); - } - inline UnvoidStaticFuncPtr GetStaticFunction() const { - return reinterpret_cast(m_pStaticFunction); - } -#else - -// ClosurePtr<> - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. Invocation isn't any faster, but it saves 4 bytes, and -// speeds up comparison and assignment. If C++ provided direct language support -// for delegates, they would produce asm code that was almost identical to this. -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &right) { - SetMementoFrom(right); - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - // ******** EVIL, EVIL CODE! ******* - template < class DerivedClass, class ParentInvokerSig> - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - // We'll be ignoring the 'this' pointer, but we need to make sure we pass - // a valid value to bindmemfunc(). - bindmemfunc(pParent, static_function_invoker); - } - - // WARNING! Evil hack. We store the function in the 'this' pointer! - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(GenericClass *)==sizeof(function_to_bind) ? 1 : -1]; - m_pthis = horrible_cast(function_to_bind); - // MSVC, SunC++ and DMC accept the following (non-standard) code: -// m_pthis = static_cast(static_cast(function_to_bind)); - // BCC32, Comeau and DMC accept this method. MSVC7.1 needs __int64 instead of long -// m_pthis = reinterpret_cast(reinterpret_cast(function_to_bind)); - } - // ******** EVIL, EVIL CODE! ******* - // This function will be called with an invalid 'this' pointer!! - // We're just returning the 'this' pointer, converted into - // a function pointer! - inline UnvoidStaticFuncPtr GetStaticFunction() const { - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(UnvoidStaticFuncPtr)==sizeof(this) ? 1 : -1]; - return horrible_cast(this); - } -#endif // !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - - // Does the closure contain this static function? - inline bool IsEqualToStaticFuncPtr(StaticFuncPtr funcptr){ - if (funcptr==0) return empty(); - // For the Evil method, if it doesn't actually contain a static function, this will return an arbitrary - // value that is not equal to any valid function pointer. - else return funcptr==reinterpret_cast(GetStaticFunction()); - } -}; - - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 3: -// -// Wrapper classes to ensure type safety -// -//////////////////////////////////////////////////////////////////////////////// - - -// Once we have the member function conversion templates, it's easy to make the -// wrapper classes. So that they will work with as many compilers as possible, -// the classes are of the form -// FastDelegate3 -// They can cope with any combination of parameters. The max number of parameters -// allowed is 8, but it is trivial to increase this limit. -// Note that we need to treat const member functions seperately. -// All this class does is to enforce type safety, and invoke the delegate with -// the correct list of parameters. - -// Because of the weird rule about the class of derived member function pointers, -// you sometimes need to apply a downcast to the 'this' pointer. -// This is the reason for the use of "implicit_cast(pthis)" in the code below. -// If CDerivedClass is derived from CBaseClass, but doesn't override SimpleVirtualFunction, -// without this trick you'd need to write: -// MyDelegate(static_cast(&d), &CDerivedClass::SimpleVirtualFunction); -// but with the trick you can write -// MyDelegate(&d, &CDerivedClass::SimpleVirtualFunction); - -// RetType is the type the compiler uses in compiling the template. For VC6, -// it cannot be void. DesiredRetType is the real type which is returned from -// all of the functions. It can be void. - -// Implicit conversion to "bool" is achieved using the safe_bool idiom, -// using member data pointers (MDP). This allows "if (dg)..." syntax -// Because some compilers (eg codeplay) don't have a unique value for a zero -// MDP, an extra padding member is added to the SafeBool struct. -// Some compilers (eg VC6) won't implicitly convert from 0 to an MDP, so -// in that case the static function constructor is not made explicit; this -// allows "if (dg==0) ..." to compile. - -//N=0 -template -class FastDelegate0 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(); - typedef RetType (*UnvoidStaticFunctionPtr)(); - typedef RetType (detail::GenericClass::*GenericMemFn)(); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate0 type; - - // Construction and comparison functions - FastDelegate0() { clear(); } - FastDelegate0(const FastDelegate0 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate0 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate0 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate0 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate0 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate0 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate0(Y *pthis, DesiredRetType (X::* function_to_bind)() ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)()) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate0(const Y *pthis, DesiredRetType (X::* function_to_bind)() const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)() const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate0(DesiredRetType (*function_to_bind)() ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)() ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)()) { - m_Closure.bindstaticfunc(this, &FastDelegate0::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() () const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction() const { - return (*(m_Closure.GetStaticFunction()))(); } -}; - -//N=1 -template -class FastDelegate1 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate1 type; - - // Construction and comparison functions - FastDelegate1() { clear(); } - FastDelegate1(const FastDelegate1 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate1 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate1 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate1 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate1 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate1 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate1(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate1(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate1(DesiredRetType (*function_to_bind)(Param1 p1) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1)) { - m_Closure.bindstaticfunc(this, &FastDelegate1::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1) const { - return (*(m_Closure.GetStaticFunction()))(p1); } -}; - -//N=2 -template -class FastDelegate2 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate2 type; - - // Construction and comparison functions - FastDelegate2() { clear(); } - FastDelegate2(const FastDelegate2 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate2 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate2 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate2 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate2 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate2 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate2(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate2(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate2(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2)) { - m_Closure.bindstaticfunc(this, &FastDelegate2::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2); } -}; - -//N=3 -template -class FastDelegate3 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate3 type; - - // Construction and comparison functions - FastDelegate3() { clear(); } - FastDelegate3(const FastDelegate3 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate3 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate3 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate3 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate3 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate3 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate3(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate3(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate3(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3)) { - m_Closure.bindstaticfunc(this, &FastDelegate3::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3); } -}; - -//N=4 -template -class FastDelegate4 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate4 type; - - // Construction and comparison functions - FastDelegate4() { clear(); } - FastDelegate4(const FastDelegate4 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate4 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate4 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate4 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate4 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate4 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate4(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate4(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate4(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - m_Closure.bindstaticfunc(this, &FastDelegate4::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4); } -}; - -//N=5 -template -class FastDelegate5 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate5 type; - - // Construction and comparison functions - FastDelegate5() { clear(); } - FastDelegate5(const FastDelegate5 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate5 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate5 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate5 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate5 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate5 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate5(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate5(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate5(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - m_Closure.bindstaticfunc(this, &FastDelegate5::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5); } -}; - -//N=6 -template -class FastDelegate6 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate6 type; - - // Construction and comparison functions - FastDelegate6() { clear(); } - FastDelegate6(const FastDelegate6 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate6 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate6 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate6 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate6 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate6 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate6(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate6(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate6(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - m_Closure.bindstaticfunc(this, &FastDelegate6::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6); } -}; - -//N=7 -template -class FastDelegate7 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate7 type; - - // Construction and comparison functions - FastDelegate7() { clear(); } - FastDelegate7(const FastDelegate7 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate7 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate7 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate7 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate7 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate7 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate7(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate7(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate7(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - m_Closure.bindstaticfunc(this, &FastDelegate7::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7); } -}; - -//N=8 -template -class FastDelegate8 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate8 type; - - // Construction and comparison functions - FastDelegate8() { clear(); } - FastDelegate8(const FastDelegate8 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate8 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate8 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate8 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate8 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate8 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate8(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate8(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate8(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - m_Closure.bindstaticfunc(this, &FastDelegate8::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8); } -}; - -//N=9 -template -class FastDelegate9 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate9 type; - - // Construction and comparison functions - FastDelegate9() { clear(); } - FastDelegate9(const FastDelegate9 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate9 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate9 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate9 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate9 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate9 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate9(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate9(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate9(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - m_Closure.bindstaticfunc(this, &FastDelegate9::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9); } -}; - -//N=10 -template -class FastDelegate10 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate10 type; - - // Construction and comparison functions - FastDelegate10() { clear(); } - FastDelegate10(const FastDelegate10 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate10 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate10 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate10 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate10 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate10 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate10(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate10(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate10(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - m_Closure.bindstaticfunc(this, &FastDelegate10::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } -}; - -//N=11 -template -class FastDelegate11 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate11 type; - - // Construction and comparison functions - FastDelegate11() { clear(); } - FastDelegate11(const FastDelegate11 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate11 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate11 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate11 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate11 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate11 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate11(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate11(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate11(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - m_Closure.bindstaticfunc(this, &FastDelegate11::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } -}; - -//N=12 -template -class FastDelegate12 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate12 type; - - // Construction and comparison functions - FastDelegate12() { clear(); } - FastDelegate12(const FastDelegate12 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate12 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate12 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate12 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate12 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate12 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate12(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate12(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate12(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - m_Closure.bindstaticfunc(this, &FastDelegate12::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } -}; - -//N=13 -template -class FastDelegate13 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate13 type; - - // Construction and comparison functions - FastDelegate13() { clear(); } - FastDelegate13(const FastDelegate13 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate13 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate13 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate13 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate13 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate13 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate13(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate13(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate13(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - m_Closure.bindstaticfunc(this, &FastDelegate13::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } -}; - -//N=14 -template -class FastDelegate14 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate14 type; - - // Construction and comparison functions - FastDelegate14() { clear(); } - FastDelegate14(const FastDelegate14 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate14 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate14 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate14 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate14 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate14 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate14(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate14(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate14(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - m_Closure.bindstaticfunc(this, &FastDelegate14::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14); } -}; - -//N=15 -template -class FastDelegate15 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate15 type; - - // Construction and comparison functions - FastDelegate15() { clear(); } - FastDelegate15(const FastDelegate15 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate15 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate15 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate15 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate15 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate15 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate15(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate15(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate15(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - m_Closure.bindstaticfunc(this, &FastDelegate15::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15); } -}; - -//N=16 -template -class FastDelegate16 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate16 type; - - // Construction and comparison functions - FastDelegate16() { clear(); } - FastDelegate16(const FastDelegate16 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate16 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate16 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate16 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate16 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate16 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate16(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate16(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate16(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - m_Closure.bindstaticfunc(this, &FastDelegate16::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16); } -}; - -//N=17 -template -class FastDelegate17 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate17 type; - - // Construction and comparison functions - FastDelegate17() { clear(); } - FastDelegate17(const FastDelegate17 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate17 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate17 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate17 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate17 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate17 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate17(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate17(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate17(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - m_Closure.bindstaticfunc(this, &FastDelegate17::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17); } -}; - -//N=18 -template -class FastDelegate18 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate18 type; - - // Construction and comparison functions - FastDelegate18() { clear(); } - FastDelegate18(const FastDelegate18 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate18 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate18 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate18 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate18 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate18 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate18(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate18(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate18(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - m_Closure.bindstaticfunc(this, &FastDelegate18::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18); } -}; - -//N=19 -template -class FastDelegate19 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate19 type; - - // Construction and comparison functions - FastDelegate19() { clear(); } - FastDelegate19(const FastDelegate19 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate19 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate19 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate19 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate19 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate19 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate19(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate19(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate19(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - m_Closure.bindstaticfunc(this, &FastDelegate19::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19); } -}; - -//N=20 -template -class FastDelegate20 { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef RetType (*UnvoidStaticFunctionPtr)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef RetType (detail::GenericClass::*GenericMemFn)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate20 type; - - // Construction and comparison functions - FastDelegate20() { clear(); } - FastDelegate20(const FastDelegate20 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate20 &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate20 &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate20 &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate20 &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate20 &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate20(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate20(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate20(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - m_Closure.bindstaticfunc(this, &FastDelegate20::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const { - return (*(m_Closure.GetStaticFunction()))(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20); } -}; - - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 4: -// -// FastDelegate<> class (Original author: Jody Hagins) -// Allows boost::function style syntax like: -// FastDelegate< double (int, long) > -// instead of: -// FastDelegate2< int, long, double > -// -//////////////////////////////////////////////////////////////////////////////// - -#ifdef FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -// Declare FastDelegate as a class template. It will be specialized -// later for all number of arguments. -template -class FastDelegate; - -//N=0 -// Specialization to allow use of -// FastDelegate< R ( ) > -// instead of -// FastDelegate0 < R > -template -class FastDelegate< R ( ) > - // Inherit from FastDelegate0 so that it can be treated just like a FastDelegate0 - : public FastDelegate0 < R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate0 < R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=1 -// Specialization to allow use of -// FastDelegate< R ( Param1 ) > -// instead of -// FastDelegate1 < Param1, R > -template -class FastDelegate< R ( Param1 ) > - // Inherit from FastDelegate1 so that it can be treated just like a FastDelegate1 - : public FastDelegate1 < Param1, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate1 < Param1, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=2 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2 ) > -// instead of -// FastDelegate2 < Param1, Param2, R > -template -class FastDelegate< R ( Param1, Param2 ) > - // Inherit from FastDelegate2 so that it can be treated just like a FastDelegate2 - : public FastDelegate2 < Param1, Param2, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate2 < Param1, Param2, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=3 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3 ) > -// instead of -// FastDelegate3 < Param1, Param2, Param3, R > -template -class FastDelegate< R ( Param1, Param2, Param3 ) > - // Inherit from FastDelegate3 so that it can be treated just like a FastDelegate3 - : public FastDelegate3 < Param1, Param2, Param3, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate3 < Param1, Param2, Param3, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=4 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4 ) > -// instead of -// FastDelegate4 < Param1, Param2, Param3, Param4, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4 ) > - // Inherit from FastDelegate4 so that it can be treated just like a FastDelegate4 - : public FastDelegate4 < Param1, Param2, Param3, Param4, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate4 < Param1, Param2, Param3, Param4, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=5 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5 ) > -// instead of -// FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5 ) > - // Inherit from FastDelegate5 so that it can be treated just like a FastDelegate5 - : public FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate5 < Param1, Param2, Param3, Param4, Param5, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=6 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6 ) > -// instead of -// FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6 ) > - // Inherit from FastDelegate6 so that it can be treated just like a FastDelegate6 - : public FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate6 < Param1, Param2, Param3, Param4, Param5, Param6, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=7 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7 ) > -// instead of -// FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7 ) > - // Inherit from FastDelegate7 so that it can be treated just like a FastDelegate7 - : public FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate7 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=8 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8 ) > -// instead of -// FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8 ) > - // Inherit from FastDelegate8 so that it can be treated just like a FastDelegate8 - : public FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate8 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=9 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9 ) > -// instead of -// FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9 ) > - // Inherit from FastDelegate9 so that it can be treated just like a FastDelegate9 - : public FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate9 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=10 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10 ) > -// instead of -// FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10 ) > - // Inherit from FastDelegate10 so that it can be treated just like a FastDelegate10 - : public FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate10 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=11 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11 ) > -// instead of -// FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11 ) > - // Inherit from FastDelegate11 so that it can be treated just like a FastDelegate11 - : public FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate11 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=12 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12 ) > -// instead of -// FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12 ) > - // Inherit from FastDelegate12 so that it can be treated just like a FastDelegate12 - : public FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate12 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=13 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13 ) > -// instead of -// FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13 ) > - // Inherit from FastDelegate13 so that it can be treated just like a FastDelegate13 - : public FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate13 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=14 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14 ) > -// instead of -// FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14 ) > - // Inherit from FastDelegate14 so that it can be treated just like a FastDelegate14 - : public FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate14 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=15 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15 ) > -// instead of -// FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15 ) > - // Inherit from FastDelegate15 so that it can be treated just like a FastDelegate15 - : public FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate15 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=16 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16 ) > -// instead of -// FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16 ) > - // Inherit from FastDelegate16 so that it can be treated just like a FastDelegate16 - : public FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate16 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=17 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17 ) > -// instead of -// FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17 ) > - // Inherit from FastDelegate17 so that it can be treated just like a FastDelegate17 - : public FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate17 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=18 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18 ) > -// instead of -// FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18 ) > - // Inherit from FastDelegate18 so that it can be treated just like a FastDelegate18 - : public FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate18 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=19 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19 ) > -// instead of -// FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19 ) > - // Inherit from FastDelegate19 so that it can be treated just like a FastDelegate19 - : public FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate19 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -//N=20 -// Specialization to allow use of -// FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20 ) > -// instead of -// FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > -template -class FastDelegate< R ( Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20 ) > - // Inherit from FastDelegate20 so that it can be treated just like a FastDelegate20 - : public FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate20 < Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20 )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - - -#endif //FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 5: -// -// MakeDelegate() helper function -// -// MakeDelegate(&x, &X::func) returns a fastdelegate of the type -// necessary for calling x.func() with the correct number of arguments. -// This makes it possible to eliminate many typedefs from user code. -// -//////////////////////////////////////////////////////////////////////////////// - -// Also declare overloads of a MakeDelegate() global function to -// reduce the need for typedefs. -// We need seperate overloads for const and non-const member functions. -// Also, because of the weird rule about the class of derived member function pointers, -// implicit downcasts may need to be applied later to the 'this' pointer. -// That's why two classes (X and Y) appear in the definitions. Y must be implicitly -// castable to X. - -// Workaround for VC6. VC6 needs void return types converted into DefaultVoid. -// GCC 3.2 and later won't compile this unless it's preceded by 'typename', -// but VC6 doesn't allow 'typename' in this context. -// So, I have to use a macro. - -#ifdef FASTDLGT_VC6 -#define FASTDLGT_RETTYPE detail::VoidToDefaultVoid::type -#else -#define FASTDLGT_RETTYPE RetType -#endif - -//N=0 -template -FastDelegate0 MakeDelegate(Y* x, RetType (X::*func)()) { - return FastDelegate0(x, func); -} - -template -FastDelegate0 MakeDelegate(Y* x, RetType (X::*func)() const) { - return FastDelegate0(x, func); -} - -template -FastDelegate0 MakeDelegate(RetType (*func)()) { - return FastDelegate0(func); -} - -//N=1 -template -FastDelegate1 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1)) { - return FastDelegate1(x, func); -} - -template -FastDelegate1 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1) const) { - return FastDelegate1(x, func); -} - -template -FastDelegate1 MakeDelegate(RetType (*func)(Param1 p1)) { - return FastDelegate1(func); -} - -//N=2 -template -FastDelegate2 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2)) { - return FastDelegate2(x, func); -} - -template -FastDelegate2 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2) const) { - return FastDelegate2(x, func); -} - -template -FastDelegate2 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2)) { - return FastDelegate2(func); -} - -//N=3 -template -FastDelegate3 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3)) { - return FastDelegate3(x, func); -} - -template -FastDelegate3 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3) const) { - return FastDelegate3(x, func); -} - -template -FastDelegate3 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3)) { - return FastDelegate3(func); -} - -//N=4 -template -FastDelegate4 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - return FastDelegate4(x, func); -} - -template -FastDelegate4 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const) { - return FastDelegate4(x, func); -} - -template -FastDelegate4 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4)) { - return FastDelegate4(func); -} - -//N=5 -template -FastDelegate5 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - return FastDelegate5(x, func); -} - -template -FastDelegate5 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const) { - return FastDelegate5(x, func); -} - -template -FastDelegate5 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5)) { - return FastDelegate5(func); -} - -//N=6 -template -FastDelegate6 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - return FastDelegate6(x, func); -} - -template -FastDelegate6 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const) { - return FastDelegate6(x, func); -} - -template -FastDelegate6 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6)) { - return FastDelegate6(func); -} - -//N=7 -template -FastDelegate7 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - return FastDelegate7(x, func); -} - -template -FastDelegate7 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const) { - return FastDelegate7(x, func); -} - -template -FastDelegate7 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7)) { - return FastDelegate7(func); -} - -//N=8 -template -FastDelegate8 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - return FastDelegate8(x, func); -} - -template -FastDelegate8 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const) { - return FastDelegate8(x, func); -} - -template -FastDelegate8 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8)) { - return FastDelegate8(func); -} - -//N=9 -template -FastDelegate9 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - return FastDelegate9(x, func); -} - -template -FastDelegate9 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const) { - return FastDelegate9(x, func); -} - -template -FastDelegate9 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9)) { - return FastDelegate9(func); -} - -//N=10 -template -FastDelegate10 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - return FastDelegate10(x, func); -} - -template -FastDelegate10 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const) { - return FastDelegate10(x, func); -} - -template -FastDelegate10 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10)) { - return FastDelegate10(func); -} - -//N=11 -template -FastDelegate11 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - return FastDelegate11(x, func); -} - -template -FastDelegate11 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const) { - return FastDelegate11(x, func); -} - -template -FastDelegate11 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11)) { - return FastDelegate11(func); -} - -//N=12 -template -FastDelegate12 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - return FastDelegate12(x, func); -} - -template -FastDelegate12 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const) { - return FastDelegate12(x, func); -} - -template -FastDelegate12 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12)) { - return FastDelegate12(func); -} - -//N=13 -template -FastDelegate13 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - return FastDelegate13(x, func); -} - -template -FastDelegate13 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const) { - return FastDelegate13(x, func); -} - -template -FastDelegate13 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13)) { - return FastDelegate13(func); -} - -//N=14 -template -FastDelegate14 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - return FastDelegate14(x, func); -} - -template -FastDelegate14 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const) { - return FastDelegate14(x, func); -} - -template -FastDelegate14 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14)) { - return FastDelegate14(func); -} - -//N=15 -template -FastDelegate15 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - return FastDelegate15(x, func); -} - -template -FastDelegate15 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const) { - return FastDelegate15(x, func); -} - -template -FastDelegate15 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15)) { - return FastDelegate15(func); -} - -//N=16 -template -FastDelegate16 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - return FastDelegate16(x, func); -} - -template -FastDelegate16 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const) { - return FastDelegate16(x, func); -} - -template -FastDelegate16 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16)) { - return FastDelegate16(func); -} - -//N=17 -template -FastDelegate17 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - return FastDelegate17(x, func); -} - -template -FastDelegate17 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const) { - return FastDelegate17(x, func); -} - -template -FastDelegate17 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17)) { - return FastDelegate17(func); -} - -//N=18 -template -FastDelegate18 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - return FastDelegate18(x, func); -} - -template -FastDelegate18 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const) { - return FastDelegate18(x, func); -} - -template -FastDelegate18 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18)) { - return FastDelegate18(func); -} - -//N=19 -template -FastDelegate19 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - return FastDelegate19(x, func); -} - -template -FastDelegate19 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const) { - return FastDelegate19(x, func); -} - -template -FastDelegate19 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19)) { - return FastDelegate19(func); -} - -//N=20 -template -FastDelegate20 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - return FastDelegate20(x, func); -} - -template -FastDelegate20 MakeDelegate(Y* x, RetType (X::*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const) { - return FastDelegate20(x, func); -} - -template -FastDelegate20 MakeDelegate(RetType (*func)(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20)) { - return FastDelegate20(func); -} - - - // clean up after ourselves... -#undef FASTDLGT_RETTYPE - -} // namespace fastdelegate - -#endif // !defined(FASTDELEGATE_H) diff --git a/sourcehook/generate/FastDelegate.hxx b/sourcehook/generate/FastDelegate.hxx deleted file mode 100644 index 6f2fe49..0000000 --- a/sourcehook/generate/FastDelegate.hxx +++ /dev/null @@ -1,1054 +0,0 @@ -// FastDelegate.h -// Efficient delegates in C++ that generate only two lines of asm code! -// Documentation is found at http://www.codeproject.com/cpp/FastDelegate.asp -// -// - Don Clugston, Mar 2004. -// Major contributions were made by Jody Hagins. -// History: -// 24-Apr-04 1.0 * Submitted to CodeProject. -// 28-Apr-04 1.1 * Prevent most unsafe uses of evil static function hack. -// * Improved syntax for horrible_cast (thanks Paul Bludov). -// * Tested on Metrowerks MWCC and Intel ICL (IA32) -// * Compiled, but not run, on Comeau C++ and Intel Itanium ICL. -// 27-Jun-04 1.2 * Now works on Borland C++ Builder 5.5 -// * Now works on /clr "managed C++" code on VC7, VC7.1 -// * Comeau C++ now compiles without warnings. -// * Prevent the virtual inheritance case from being used on -// VC6 and earlier, which generate incorrect code. -// * Improved warning and error messages. Non-standard hacks -// now have compile-time checks to make them safer. -// * implicit_cast used instead of static_cast in many cases. -// * If calling a const member function, a const class pointer can be used. -// * MakeDelegate() global helper function added to simplify pass-by-value. -// * Added fastdelegate.clear() -// 16-Jul-04 1.2.1* Workaround for gcc bug (const member function pointers in templates) -// 30-Oct-04 1.3 * Support for (non-void) return values. -// * No more workarounds in client code! -// MSVC and Intel now use a clever hack invented by John Dlugosz: -// - The FASTDELEGATEDECLARE workaround is no longer necessary. -// - No more warning messages for VC6 -// * Less use of macros. Error messages should be more comprehensible. -// * Added include guards -// * Added FastDelegate::empty() to test if invocation is safe (Thanks Neville Franks). -// * Now tested on VS 2005 Express Beta, PGI C++ -// 24-Dec-04 1.4 * Added DelegateMemento, to allow collections of disparate delegates. -// * <,>,<=,>= comparison operators to allow storage in ordered containers. -// * Substantial reduction of code size, especially the 'Closure' class. -// * Standardised all the compiler-specific workarounds. -// * MFP conversion now works for CodePlay (but not yet supported in the full code). -// * Now compiles without warnings on _any_ supported compiler, including BCC 5.5.1 -// * New syntax: FastDelegate< int (char *, double) >. -// 14-Feb-05 1.4.1* Now treats =0 as equivalent to .clear(), ==0 as equivalent to .empty(). (Thanks elfric). -// * Now tested on Intel ICL for AMD64, VS2005 Beta for AMD64 and Itanium. -// 30-Mar-05 1.5 * Safebool idiom: "if (dg)" is now equivalent to "if (!dg.empty())" -// * Fully supported by CodePlay VectorC -// * Bugfix for Metrowerks: empty() was buggy because a valid MFP can be 0 on MWCC! -// * More optimal assignment,== and != operators for static function pointers. - -#ifndef FASTDELEGATE_H -#define FASTDELEGATE_H - -#ifdef _MSC_VER -# if _MSC_VER > 1000 -# pragma once -# endif // _MSC_VER > 1000 -#endif // #ifdef _MSC_VER - -#include // to allow <,> comparisons - -//////////////////////////////////////////////////////////////////////////////// -// Configuration options -// -//////////////////////////////////////////////////////////////////////////////// - -// Uncomment the following #define for optimally-sized delegates. -// In this case, the generated asm code is almost identical to the code you'd get -// if the compiler had native support for delegates. -// It will not work on systems where sizeof(dataptr) < sizeof(codeptr). -// Thus, it will not work for DOS compilers using the medium model. -// It will also probably fail on some DSP systems. -#define FASTDELEGATE_USESTATICFUNCTIONHACK - -// Uncomment the next line to allow function declarator syntax. -// It is automatically enabled for those compilers where it is known to work. -//#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Compiler identification for workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Compiler identification. It's not easy to identify Visual C++ because -// many vendors fraudulently define Microsoft's identifiers. -#if defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__VECTOR_C) && !defined(__ICL) && !defined(__BORLANDC__) -#define FASTDLGT_ISMSVC - -#if (_MSC_VER <1300) // Many workarounds are required for VC6. -#define FASTDLGT_VC6 -#pragma warning(disable:4786) // disable this ridiculous warning -#endif - -#endif - -// Does the compiler uses Microsoft's member function pointer structure? -// If so, it needs special treatment. -// Metrowerks CodeWarrior, Intel, and CodePlay fraudulently define Microsoft's -// identifier, _MSC_VER. We need to filter Metrowerks out. -#if defined(_MSC_VER) && !defined(__MWERKS__) -#define FASTDLGT_MICROSOFT_MFP - -#if !defined(__VECTOR_C) -// CodePlay doesn't have the __single/multi/virtual_inheritance keywords -#define FASTDLGT_HASINHERITANCE_KEYWORDS -#endif -#endif - -// Does it allow function declarator syntax? The following compilers are known to work: -#if defined(FASTDLGT_ISMSVC) && (_MSC_VER >=1310) // VC 7.1 -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// Gcc(2.95+), and versions of Digital Mars, Intel and Comeau in common use. -#if defined (__DMC__) || defined(__GNUC__) || defined(__ICL) || defined(__COMO__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -// It works on Metrowerks MWCC 3.2.2. From boost.Config it should work on earlier ones too. -#if defined (__MWERKS__) -#define FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX -#endif - -#ifdef __GNUC__ // Workaround GCC bug #8271 - // At present, GCC doesn't recognize constness of MFPs in templates -#define FASTDELEGATE_GCC_BUG_8271 -#endif - - - -//////////////////////////////////////////////////////////////////////////////// -// General tricks used in this code -// -// (a) Error messages are generated by typdefing an array of negative size to -// generate compile-time errors. -// (b) Warning messages on MSVC are generated by declaring unused variables, and -// enabling the "variable XXX is never used" warning. -// (c) Unions are used in a few compiler-specific cases to perform illegal casts. -// (d) For Microsoft and Intel, when adjusting the 'this' pointer, it's cast to -// (char *) first to ensure that the correct number of *bytes* are added. -// -//////////////////////////////////////////////////////////////////////////////// -// Helper templates -// -//////////////////////////////////////////////////////////////////////////////// - - -namespace fastdelegate { -namespace detail { // we'll hide the implementation details in a nested namespace. - -// implicit_cast< > -// I believe this was originally going to be in the C++ standard but -// was left out by accident. It's even milder than static_cast. -// I use it instead of static_cast<> to emphasize that I'm not doing -// anything nasty. -// Usage is identical to static_cast<> -template -inline OutputClass implicit_cast(InputClass input){ - return input; -} - -// horrible_cast< > -// This is truly evil. It completely subverts C++'s type system, allowing you -// to cast from any class to any other class. Technically, using a union -// to perform the cast is undefined behaviour (even in C). But we can see if -// it is OK by checking that the union is the same size as each of its members. -// horrible_cast<> should only be used for compiler-specific workarounds. -// Usage is identical to reinterpret_cast<>. - -// This union is declared outside the horrible_cast because BCC 5.5.1 -// can't inline a function with a nested class, and gives a warning. -template -union horrible_union{ - OutputClass out; - InputClass in; -}; - -template -inline OutputClass horrible_cast(const InputClass input){ - horrible_union u; - // Cause a compile-time error if in, out and u are not the same size. - // If the compile fails here, it means the compiler has peculiar - // unions which would prevent the cast from working. - typedef int ERROR_CantUseHorrible_cast[sizeof(InputClass)==sizeof(u) - && sizeof(InputClass)==sizeof(OutputClass) ? 1 : -1]; - u.in = input; - return u.out; -} - -//////////////////////////////////////////////////////////////////////////////// -// Workarounds -// -//////////////////////////////////////////////////////////////////////////////// - -// Backwards compatibility: This macro used to be necessary in the virtual inheritance -// case for Intel and Microsoft. Now it just forward-declares the class. -#define FASTDELEGATEDECLARE(CLASSNAME) class CLASSNAME; - -// Prevent use of the static function hack with the DOS medium model. -#ifdef __MEDIUM__ -#undef FASTDELEGATE_USESTATICFUNCTIONHACK -#endif - -// DefaultVoid - a workaround for 'void' templates in VC6. -// -// (1) VC6 and earlier do not allow 'void' as a default template argument. -// (2) They also doesn't allow you to return 'void' from a function. -// -// Workaround for (1): Declare a dummy type 'DefaultVoid' which we use -// when we'd like to use 'void'. We convert it into 'void' and back -// using the templates DefaultVoidToVoid<> and VoidToDefaultVoid<>. -// Workaround for (2): On VC6, the code for calling a void function is -// identical to the code for calling a non-void function in which the -// return value is never used, provided the return value is returned -// in the EAX register, rather than on the stack. -// This is true for most fundamental types such as int, enum, void *. -// Const void * is the safest option since it doesn't participate -// in any automatic conversions. But on a 16-bit compiler it might -// cause extra code to be generated, so we disable it for all compilers -// except for VC6 (and VC5). -#ifdef FASTDLGT_VC6 -// VC6 workaround -typedef const void * DefaultVoid; -#else -// On any other compiler, just use a normal void. -typedef void DefaultVoid; -#endif - -// Translate from 'DefaultVoid' to 'void'. -// Everything else is unchanged -template -struct DefaultVoidToVoid { typedef T type; }; - -template <> -struct DefaultVoidToVoid { typedef void type; }; - -// Translate from 'void' into 'DefaultVoid' -// Everything else is unchanged -template -struct VoidToDefaultVoid { typedef T type; }; - -template <> -struct VoidToDefaultVoid { typedef DefaultVoid type; }; - - - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1: -// -// Conversion of member function pointer to a standard form -// -//////////////////////////////////////////////////////////////////////////////// - -// GenericClass is a fake class, ONLY used to provide a type. -// It is vitally important that it is never defined, so that the compiler doesn't -// think it can optimize the invocation. For example, Borland generates simpler -// code if it knows the class only uses single inheritance. - -// Compilers using Microsoft's structure need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -#ifdef FASTDLGT_HASINHERITANCE_KEYWORDS - // For Microsoft and Intel, we want to ensure that it's the most efficient type of MFP - // (4 bytes), even when the /vmg option is used. Declaring an empty class - // would give 16 byte pointers in this case.... - class __single_inheritance GenericClass; -#endif - // ...but for Codeplay, an empty class *always* gives 4 byte pointers. - // If compiled with the /clr option ("managed C++"), the JIT compiler thinks - // it needs to load GenericClass before it can call any of its functions, - // (compiles OK but crashes at runtime!), so we need to declare an - // empty class to make it happy. - // Codeplay and VC4 can't cope with the unknown_inheritance case either. - class GenericClass {}; -#else - class GenericClass; -#endif - -// The size of a single inheritance member function pointer. -const int SINGLE_MEMFUNCPTR_SIZE = sizeof(void (GenericClass::*)()); - -// SimplifyMemFunc< >::Convert() -// -// A template function that converts an arbitrary member function pointer into the -// simplest possible form of member function pointer, using a supplied 'this' pointer. -// According to the standard, this can be done legally with reinterpret_cast<>. -// For (non-standard) compilers which use member function pointers which vary in size -// depending on the class, we need to use knowledge of the internal structure of a -// member function pointer, as used by the compiler. Template specialization is used -// to distinguish between the sizes. Because some compilers don't support partial -// template specialisation, I use full specialisation of a wrapper struct. - -// general case -- don't know how to convert it. Force a compile failure -template -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // Unsupported member function type -- force a compile failure. - // (it's illegal to have a array with negative size). - typedef char ERROR_Unsupported_member_function_pointer_on_this_compiler[N-100]; - return 0; - } -}; - -// For compilers where all member func ptrs are the same size, everything goes here. -// For non-standard compilers, only single_inheritance classes go here. -template <> -struct SimplifyMemFunc { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { -#if defined __DMC__ - // Digital Mars doesn't allow you to cast between abitrary PMF's, - // even though the standard says you can. The 32-bit compiler lets you - // static_cast through an int, but the DOS compiler doesn't. - bound_func = horrible_cast(function_to_bind); -#else - bound_func = reinterpret_cast(function_to_bind); -#endif - return reinterpret_cast(pthis); - } -}; - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 1b: -// -// Workarounds for Microsoft and Intel -// -//////////////////////////////////////////////////////////////////////////////// - - -// Compilers with member function pointers which violate the standard (MSVC, Intel, Codeplay), -// need to be treated as a special case. -#ifdef FASTDLGT_MICROSOFT_MFP - -// We use unions to perform horrible_casts. I would like to use #pragma pack(push, 1) -// at the start of each function for extra safety, but VC6 seems to ICE -// intermittently if you do this inside a template. - -// __multiple_inheritance classes go here -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -template<> -struct SimplifyMemFunc< SINGLE_MEMFUNCPTR_SIZE + sizeof(int) > { - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // We need to use a horrible_cast to do this conversion. - // In MSVC, a multiple inheritance member pointer is internally defined as: - union { - XFuncType func; - struct { - GenericMemFuncType funcaddress; // points to the actual member function - int delta; // #BYTES to be added to the 'this' pointer - }s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - return reinterpret_cast(reinterpret_cast(pthis) + u.s.delta); - } -}; - -// virtual inheritance is a real nuisance. It's inefficient and complicated. -// On MSVC and Intel, there isn't enough information in the pointer itself to -// enable conversion to a closure pointer. Earlier versions of this code didn't -// work for all cases, and generated a compile-time error instead. -// But a very clever hack invented by John M. Dlugosz solves this problem. -// My code is somewhat different to his: I have no asm code, and I make no -// assumptions about the calling convention that is used. - -// In VC++ and ICL, a virtual_inheritance member pointer -// is internally defined as: -struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance -}; -// The CRUCIAL feature of Microsoft/Intel MFPs which we exploit is that the -// m_codeptr member is *always* called, regardless of the values of the other -// members. (This is *not* true for other compilers, eg GCC, which obtain the -// function address from the vtable if a virtual function is being called). -// Dlugosz's trick is to make the codeptr point to a probe function which -// returns the 'this' pointer that was used. - -// Define a generic class that uses virtual inheritance. -// It has a trival member function that returns the value of the 'this' pointer. -struct GenericVirtualClass : virtual public GenericClass -{ - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } -}; - -// __virtual_inheritance classes go here -template <> -struct SimplifyMemFunc -{ - - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - union { - XFuncType func; - GenericClass* (X::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = function_to_bind; - bound_func = reinterpret_cast(u.s.codeptr); - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(function_to_bind)==sizeof(u.s) - && sizeof(function_to_bind)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - return (pthis->*u.ProbeFunc)(); - } -}; - -#if (_MSC_VER <1300) - -// Nasty hack for Microsoft Visual C++ 6.0 -// unknown_inheritance classes go here -// There is a compiler bug in MSVC6 which generates incorrect code in this case!! -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // There is an apalling but obscure compiler bug in MSVC6 and earlier: - // vtable_index and 'vtordisp' are always set to 0 in the - // unknown_inheritance case! - // This means that an incorrect function could be called!!! - // Compiling with the /vmg option leads to potentially incorrect code. - // This is probably the reason that the IDE has a user interface for specifying - // the /vmg option, but it is disabled - you can only specify /vmg on - // the command line. In VC1.5 and earlier, the compiler would ICE if it ever - // encountered this situation. - // It is OK to use the /vmg option if /vmm or /vms is specified. - - // Fortunately, the wrong function is only called in very obscure cases. - // It only occurs when a derived class overrides a virtual function declared - // in a virtual base class, and the member function - // points to the *Derived* version of that function. The problem can be - // completely averted in 100% of cases by using the *Base class* for the - // member fpointer. Ie, if you use the base class as an interface, you'll - // stay out of trouble. - // Occasionally, you might want to point directly to a derived class function - // that isn't an override of a base class. In this case, both vtable_index - // and 'vtordisp' are zero, but a virtual_inheritance pointer will be generated. - // We can generate correct code in this case. To prevent an incorrect call from - // ever being made, on MSVC6 we generate a warning, and call a function to - // make the program crash instantly. - typedef char ERROR_VC6CompilerBug[-100]; - return 0; - } -}; - - -#else - -// Nasty hack for Microsoft and Intel (IA32 and Itanium) -// unknown_inheritance classes go here -// This is probably the ugliest bit of code I've ever written. Look at the casts! -// There is a compiler bug in MSVC6 which prevents it from using this code. -template <> -struct SimplifyMemFunc -{ - template - inline static GenericClass *Convert(X *pthis, XFuncType function_to_bind, - GenericMemFuncType &bound_func) { - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - XFuncType func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - GenericMemFuncType m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(XFuncType)==sizeof(u.s)? 1 : -1]; - u.func = function_to_bind; - bound_func = u.s.funcaddress; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - const int * vtable = *reinterpret_cast( - reinterpret_cast(pthis) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - } - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - return reinterpret_cast( - reinterpret_cast(pthis) + u.s.delta + virtual_delta); - }; -}; -#endif // MSVC 7 and greater - -#endif // MS/Intel hacks - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 2: -// -// Define the delegate storage, and cope with static functions -// -//////////////////////////////////////////////////////////////////////////////// - -// DelegateMemento -- an opaque structure which can hold an arbitary delegate. -// It knows nothing about the calling convention or number of arguments used by -// the function pointed to. -// It supplies comparison operators so that it can be stored in STL collections. -// It cannot be set to anything other than null, nor invoked directly: -// it must be converted to a specific delegate. - -// Implementation: -// There are two possible implementations: the Safe method and the Evil method. -// DelegateMemento - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// A static function pointer is stored inside the class. -// Here are the valid values: -// +-- Static pointer --+--pThis --+-- pMemFunc-+-- Meaning------+ -// | 0 | 0 | 0 | Empty | -// | !=0 |(dontcare)| Invoker | Static function| -// | 0 | !=0 | !=0* | Method call | -// +--------------------+----------+------------+----------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// When stored stored inside a specific delegate, the 'dontcare' entries are replaced -// with a reference to the delegate itself. This complicates the = and == operators -// for the delegate class. - -// DelegateMemento - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. In this case the DelegateMemento implementation is simple: -// +--pThis --+-- pMemFunc-+-- Meaning---------------------+ -// | 0 | 0 | Empty | -// | !=0 | !=0* | Static function or method call| -// +----------+------------+-------------------------------+ -// * For Metrowerks, this can be 0. (first virtual function in a -// single_inheritance class). -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - -class DelegateMemento { -protected: - // the data is protected, not private, because many - // compilers have problems with template friends. - typedef void (detail::GenericClass::*GenericMemFuncType)(); // arbitrary MFP. - detail::GenericClass *m_pthis; - GenericMemFuncType m_pFunction; - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - typedef void (*GenericFuncPtr)(); // arbitrary code pointer - GenericFuncPtr m_pStaticFunction; -#endif - -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - DelegateMemento() : m_pthis(0), m_pFunction(0), m_pStaticFunction(0) {}; - void clear() { - m_pthis=0; m_pFunction=0; m_pStaticFunction=0; - } -#else - DelegateMemento() : m_pthis(0), m_pFunction(0) {}; - void clear() { m_pthis=0; m_pFunction=0; } -#endif -public: -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - inline bool IsEqual (const DelegateMemento &x) const{ - // We have to cope with the static function pointers as a special case - if (m_pFunction!=x.m_pFunction) return false; - // the static function ptrs must either both be equal, or both be 0. - if (m_pStaticFunction!=x.m_pStaticFunction) return false; - if (m_pStaticFunction!=0) return m_pthis==x.m_pthis; - else return true; - } -#else // Evil Method - inline bool IsEqual (const DelegateMemento &x) const{ - return m_pthis==x.m_pthis && m_pFunction==x.m_pFunction; - } -#endif - // Provide a strict weak ordering for DelegateMementos. - inline bool IsLess(const DelegateMemento &right) const { - // deal with static function pointers first -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - if (m_pStaticFunction !=0 || right.m_pStaticFunction!=0) - return m_pStaticFunction < right.m_pStaticFunction; -#endif - if (m_pthis !=right.m_pthis) return m_pthis < right.m_pthis; - // There are no ordering operators for member function pointers, - // but we can fake one by comparing each byte. The resulting ordering is - // arbitrary (and compiler-dependent), but it permits storage in ordered STL containers. - return memcmp(&m_pFunction, &right.m_pFunction, sizeof(m_pFunction)) < 0; - - } - // BUGFIX (Mar 2005): - // We can't just compare m_pFunction because on Metrowerks, - // m_pFunction can be zero even if the delegate is not empty! - inline bool operator ! () const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } - inline bool empty() const // Is it bound to anything? - { return m_pthis==0 && m_pFunction==0; } -public: - DelegateMemento & operator = (const DelegateMemento &right) { - SetMementoFrom(right); - return *this; - } - inline bool operator <(const DelegateMemento &right) { - return IsLess(right); - } - inline bool operator >(const DelegateMemento &right) { - return right.IsLess(*this); - } - DelegateMemento (const DelegateMemento &right) : - m_pthis(right.m_pthis), m_pFunction(right.m_pFunction) -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - , m_pStaticFunction (right.m_pStaticFunction) -#endif - {} -protected: - void SetMementoFrom(const DelegateMemento &right) { - m_pFunction = right.m_pFunction; - m_pthis = right.m_pthis; -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = right.m_pStaticFunction; -#endif - } -}; - - -// ClosurePtr<> -// -// A private wrapper class that adds function signatures to DelegateMemento. -// It's the class that does most of the actual work. -// The signatures are specified by: -// GenericMemFunc: must be a type of GenericClass member function pointer. -// StaticFuncPtr: must be a type of function pointer with the same signature -// as GenericMemFunc. -// UnvoidStaticFuncPtr: is the same as StaticFuncPtr, except on VC6 -// where it never returns void (returns DefaultVoid instead). - -// An outer class, FastDelegateN<>, handles the invoking and creates the -// necessary typedefs. -// This class does everything else. - -namespace detail { - -template < class GenericMemFunc, class StaticFuncPtr, class UnvoidStaticFuncPtr> -class ClosurePtr : public DelegateMemento { -public: - // These functions are for setting the delegate to a member function. - - // Here's the clever bit: we convert an arbitrary member function into a - // standard form. XMemFunc should be a member function of class X, but I can't - // enforce that here. It needs to be enforced by the wrapper class. - template < class X, class XMemFunc > - inline void bindmemfunc(X *pthis, XMemFunc function_to_bind ) { - m_pthis = SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(pthis, function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } - // For const member functions, we only need a const class pointer. - // Since we know that the member function is const, it's safe to - // remove the const qualifier from the 'this' pointer with a const_cast. - // VC6 has problems if we just overload 'bindmemfunc', so we give it a different name. - template < class X, class XMemFunc> - inline void bindconstmemfunc(const X *pthis, XMemFunc function_to_bind) { - m_pthis= SimplifyMemFunc< sizeof(function_to_bind) > - ::Convert(const_cast(pthis), function_to_bind, m_pFunction); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#ifdef FASTDELEGATE_GCC_BUG_8271 // At present, GCC doesn't recognize constness of MFPs in templates - template < class X, class XMemFunc> - inline void bindmemfunc(const X *pthis, XMemFunc function_to_bind) { - bindconstmemfunc(pthis, function_to_bind); -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - m_pStaticFunction = 0; -#endif - } -#endif - // These functions are required for invoking the stored function - inline GenericClass *GetClosureThis() const { return m_pthis; } - inline GenericMemFunc GetClosureMemPtr() const { return reinterpret_cast(m_pFunction); } - -// There are a few ways of dealing with static function pointers. -// There's a standard-compliant, but tricky method. -// There's also a straightforward hack, that won't work on DOS compilers using the -// medium memory model. It's so evil that I can't recommend it, but I've -// implemented it anyway because it produces very nice asm code. - -#if !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - -// ClosurePtr<> - Safe version -// -// This implementation is standard-compliant, but a bit tricky. -// I store the function pointer inside the class, and the delegate then -// points to itself. Whenever the delegate is copied, these self-references -// must be transformed, and this complicates the = and == operators. -public: - // The next two functions are for operator ==, =, and the copy constructor. - // We may need to convert the m_pthis pointers, so that - // they remain as self-references. - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &x) { - SetMementoFrom(x); - if (m_pStaticFunction!=0) { - // transform self references... - m_pthis=reinterpret_cast(pParent); - } - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - template < class DerivedClass, class ParentInvokerSig > - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind ) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - bindmemfunc(pParent, static_function_invoker); - } - m_pStaticFunction=reinterpret_cast(function_to_bind); - } - inline UnvoidStaticFuncPtr GetStaticFunction() const { - return reinterpret_cast(m_pStaticFunction); - } -#else - -// ClosurePtr<> - Evil version -// -// For compilers where data pointers are at least as big as code pointers, it is -// possible to store the function pointer in the this pointer, using another -// horrible_cast. Invocation isn't any faster, but it saves 4 bytes, and -// speeds up comparison and assignment. If C++ provided direct language support -// for delegates, they would produce asm code that was almost identical to this. -// Note that the Sun C++ and MSVC documentation explicitly state that they -// support static_cast between void * and function pointers. - - template< class DerivedClass > - inline void CopyFrom (DerivedClass *pParent, const DelegateMemento &right) { - SetMementoFrom(right); - } - // For static functions, the 'static_function_invoker' class in the parent - // will be called. The parent then needs to call GetStaticFunction() to find out - // the actual function to invoke. - // ******** EVIL, EVIL CODE! ******* - template < class DerivedClass, class ParentInvokerSig> - inline void bindstaticfunc(DerivedClass *pParent, ParentInvokerSig static_function_invoker, - StaticFuncPtr function_to_bind) { - if (function_to_bind==0) { // cope with assignment to 0 - m_pFunction=0; - } else { - // We'll be ignoring the 'this' pointer, but we need to make sure we pass - // a valid value to bindmemfunc(). - bindmemfunc(pParent, static_function_invoker); - } - - // WARNING! Evil hack. We store the function in the 'this' pointer! - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(GenericClass *)==sizeof(function_to_bind) ? 1 : -1]; - m_pthis = horrible_cast(function_to_bind); - // MSVC, SunC++ and DMC accept the following (non-standard) code: -// m_pthis = static_cast(static_cast(function_to_bind)); - // BCC32, Comeau and DMC accept this method. MSVC7.1 needs __int64 instead of long -// m_pthis = reinterpret_cast(reinterpret_cast(function_to_bind)); - } - // ******** EVIL, EVIL CODE! ******* - // This function will be called with an invalid 'this' pointer!! - // We're just returning the 'this' pointer, converted into - // a function pointer! - inline UnvoidStaticFuncPtr GetStaticFunction() const { - // Ensure that there's a compilation failure if function pointers - // and data pointers have different sizes. - // If you get this error, you need to #undef FASTDELEGATE_USESTATICFUNCTIONHACK. - typedef int ERROR_CantUseEvilMethod[sizeof(UnvoidStaticFuncPtr)==sizeof(this) ? 1 : -1]; - return horrible_cast(this); - } -#endif // !defined(FASTDELEGATE_USESTATICFUNCTIONHACK) - - // Does the closure contain this static function? - inline bool IsEqualToStaticFuncPtr(StaticFuncPtr funcptr){ - if (funcptr==0) return empty(); - // For the Evil method, if it doesn't actually contain a static function, this will return an arbitrary - // value that is not equal to any valid function pointer. - else return funcptr==reinterpret_cast(GetStaticFunction()); - } -}; - - -} // namespace detail - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 3: -// -// Wrapper classes to ensure type safety -// -//////////////////////////////////////////////////////////////////////////////// - - -// Once we have the member function conversion templates, it's easy to make the -// wrapper classes. So that they will work with as many compilers as possible, -// the classes are of the form -// FastDelegate3 -// They can cope with any combination of parameters. The max number of parameters -// allowed is 8, but it is trivial to increase this limit. -// Note that we need to treat const member functions seperately. -// All this class does is to enforce type safety, and invoke the delegate with -// the correct list of parameters. - -// Because of the weird rule about the class of derived member function pointers, -// you sometimes need to apply a downcast to the 'this' pointer. -// This is the reason for the use of "implicit_cast(pthis)" in the code below. -// If CDerivedClass is derived from CBaseClass, but doesn't override SimpleVirtualFunction, -// without this trick you'd need to write: -// MyDelegate(static_cast(&d), &CDerivedClass::SimpleVirtualFunction); -// but with the trick you can write -// MyDelegate(&d, &CDerivedClass::SimpleVirtualFunction); - -// RetType is the type the compiler uses in compiling the template. For VC6, -// it cannot be void. DesiredRetType is the real type which is returned from -// all of the functions. It can be void. - -// Implicit conversion to "bool" is achieved using the safe_bool idiom, -// using member data pointers (MDP). This allows "if (dg)..." syntax -// Because some compilers (eg codeplay) don't have a unique value for a zero -// MDP, an extra padding member is added to the SafeBool struct. -// Some compilers (eg VC6) won't implicitly convert from 0 to an MDP, so -// in that case the static function constructor is not made explicit; this -// allows "if (dg==0) ..." to compile. - -@VARARGS -template<@CLASSARGS, class RetType=detail::DefaultVoid> -class FastDelegate@NUM { -private: - typedef typename detail::DefaultVoidToVoid::type DesiredRetType; - typedef DesiredRetType (*StaticFunctionPtr)(@FUNCARGS); - typedef RetType (*UnvoidStaticFunctionPtr)(@FUNCARGS); - typedef RetType (detail::GenericClass::*GenericMemFn)(@FUNCARGS); - typedef detail::ClosurePtr ClosureType; - ClosureType m_Closure; -public: - // Typedefs to aid generic programming - typedef FastDelegate@NUM type; - - // Construction and comparison functions - FastDelegate@NUM() { clear(); } - FastDelegate@NUM(const FastDelegate@NUM &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - void operator = (const FastDelegate@NUM &x) { - m_Closure.CopyFrom(this, x.m_Closure); } - bool operator ==(const FastDelegate@NUM &x) const { - return m_Closure.IsEqual(x.m_Closure); } - bool operator !=(const FastDelegate@NUM &x) const { - return !m_Closure.IsEqual(x.m_Closure); } - bool operator <(const FastDelegate@NUM &x) const { - return m_Closure.IsLess(x.m_Closure); } - bool operator >(const FastDelegate@NUM &x) const { - return x.m_Closure.IsLess(m_Closure); } - // Binding to non-const member functions - template < class X, class Y > - FastDelegate@NUM(Y *pthis, DesiredRetType (X::* function_to_bind)(@FUNCARGS) ) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(Y *pthis, DesiredRetType (X::* function_to_bind)(@FUNCARGS)) { - m_Closure.bindmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Binding to const member functions. - template < class X, class Y > - FastDelegate@NUM(const Y *pthis, DesiredRetType (X::* function_to_bind)(@FUNCARGS) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - template < class X, class Y > - inline void bind(const Y *pthis, DesiredRetType (X::* function_to_bind)(@FUNCARGS) const) { - m_Closure.bindconstmemfunc(detail::implicit_cast(pthis), function_to_bind); } - // Static functions. We convert them into a member function call. - // This constructor also provides implicit conversion - FastDelegate@NUM(DesiredRetType (*function_to_bind)(@FUNCARGS) ) { - bind(function_to_bind); } - // for efficiency, prevent creation of a temporary - void operator = (DesiredRetType (*function_to_bind)(@FUNCARGS) ) { - bind(function_to_bind); } - inline void bind(DesiredRetType (*function_to_bind)(@FUNCARGS)) { - m_Closure.bindstaticfunc(this, &FastDelegate@NUM::InvokeStaticFunction, - function_to_bind); } - // Invoke the delegate - RetType operator() (@FUNCARGS) const { - return (m_Closure.GetClosureThis()->*(m_Closure.GetClosureMemPtr()))(@INVOKEARGS); } - // Implicit conversion to "bool" using the safe_bool idiom -private: - typedef struct SafeBoolStruct { - int a_data_pointer_to_this_is_0_on_buggy_compilers; - StaticFunctionPtr m_nonzero; - } UselessTypedef; - typedef StaticFunctionPtr SafeBoolStruct::*unspecified_bool_type; -public: - operator unspecified_bool_type() const { - return empty()? 0: &SafeBoolStruct::m_nonzero; - } - // necessary to allow ==0 to work despite the safe_bool idiom - inline bool operator==(StaticFunctionPtr funcptr) { - return m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator!=(StaticFunctionPtr funcptr) { - return !m_Closure.IsEqualToStaticFuncPtr(funcptr); } - inline bool operator ! () const { // Is it bound to anything? - return !m_Closure; } - inline bool empty() const { - return !m_Closure; } - void clear() { m_Closure.clear();} - // Conversion to and from the DelegateMemento storage class - const DelegateMemento & GetMemento() { return m_Closure; } - void SetMemento(const DelegateMemento &any) { m_Closure.CopyFrom(this, any); } - -private: // Invoker for static functions - RetType InvokeStaticFunction(@FUNCARGS) const { - return (*(m_Closure.GetStaticFunction()))(@INVOKEARGS); } -}; - -@ENDVAR - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 4: -// -// FastDelegate<> class (Original author: Jody Hagins) -// Allows boost::function style syntax like: -// FastDelegate< double (int, long) > -// instead of: -// FastDelegate2< int, long, double > -// -//////////////////////////////////////////////////////////////////////////////// - -#ifdef FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -// Declare FastDelegate as a class template. It will be specialized -// later for all number of arguments. -template -class FastDelegate; - -@VARARGS -// Specialization to allow use of -// FastDelegate< R ( @SELARGS ) > -// instead of -// FastDelegate@NUM < @SELARGS, R > -template -class FastDelegate< R ( @SELARGS ) > - // Inherit from FastDelegate@NUM so that it can be treated just like a FastDelegate@NUM - : public FastDelegate@NUM < @SELARGS, R > -{ -public: - // Make using the base type a bit easier via typedef. - typedef FastDelegate@NUM < @SELARGS, R > BaseType; - - // Allow users access to the specific type of this delegate. - typedef FastDelegate SelfType; - - // Mimic the base class constructors. - FastDelegate() : BaseType() { } - - template < class X, class Y > - FastDelegate(Y * pthis, - R (X::* function_to_bind)( @FUNCARGS )) - : BaseType(pthis, function_to_bind) { } - - template < class X, class Y > - FastDelegate(const Y *pthis, - R (X::* function_to_bind)( @FUNCARGS ) const) - : BaseType(pthis, function_to_bind) - { } - - FastDelegate(R (*function_to_bind)( @FUNCARGS )) - : BaseType(function_to_bind) { } - void operator = (const BaseType &x) { - *static_cast(this) = x; } -}; - -@ENDVAR - -#endif //FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX - -//////////////////////////////////////////////////////////////////////////////// -// Fast Delegates, part 5: -// -// MakeDelegate() helper function -// -// MakeDelegate(&x, &X::func) returns a fastdelegate of the type -// necessary for calling x.func() with the correct number of arguments. -// This makes it possible to eliminate many typedefs from user code. -// -//////////////////////////////////////////////////////////////////////////////// - -// Also declare overloads of a MakeDelegate() global function to -// reduce the need for typedefs. -// We need seperate overloads for const and non-const member functions. -// Also, because of the weird rule about the class of derived member function pointers, -// implicit downcasts may need to be applied later to the 'this' pointer. -// That's why two classes (X and Y) appear in the definitions. Y must be implicitly -// castable to X. - -// Workaround for VC6. VC6 needs void return types converted into DefaultVoid. -// GCC 3.2 and later won't compile this unless it's preceded by 'typename', -// but VC6 doesn't allow 'typename' in this context. -// So, I have to use a macro. - -#ifdef FASTDLGT_VC6 -#define FASTDLGT_RETTYPE detail::VoidToDefaultVoid::type -#else -#define FASTDLGT_RETTYPE RetType -#endif - -@VARARGS -template -FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE> MakeDelegate(Y* x, RetType (X::*func)(@FUNCARGS)) { - return FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE>(x, func); -} - -template -FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE> MakeDelegate(Y* x, RetType (X::*func)(@FUNCARGS) const) { - return FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE>(x, func); -} - -template <@CLASSARGS, class RetType> -FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE> MakeDelegate(RetType (*func)(@FUNCARGS)) { - return FastDelegate@NUM<@SELARGS, FASTDLGT_RETTYPE>(func); -} - -@ENDVAR - - // clean up after ourselves... -#undef FASTDLGT_RETTYPE - -} // namespace fastdelegate - -#endif // !defined(FASTDELEGATE_H) diff --git a/sourcehook/generate/generate b/sourcehook/generate/generate deleted file mode 100755 index f537ff3..0000000 --- a/sourcehook/generate/generate +++ /dev/null @@ -1,7 +0,0 @@ -#/bin/sh - -./shworker.bin iter sourcehook.hxx sourcehook.h $1 -./shworker.bin iter sh_memfuncinfo.hxx sh_memfuncinfo.h $1 -./shworker.bin hopter FastDelegate.hxx FastDelegate.h $1 - -cp *.h .. diff --git a/sourcehook/generate/generate.bat b/sourcehook/generate/generate.bat deleted file mode 100644 index 53c863a..0000000 --- a/sourcehook/generate/generate.bat +++ /dev/null @@ -1,10 +0,0 @@ -:: Generates everything -:: Usage: -:: generate.bat - - -shworker iter sourcehook.hxx sourcehook.h %1 -shworker iter sh_memfuncinfo.hxx sh_memfuncinfo.h %1 -shworker hopter FastDelegate.hxx FastDelegate.h %1 - -copy *.h .. \ No newline at end of file diff --git a/sourcehook/generate/sh_memfuncinfo.h b/sourcehook/generate/sh_memfuncinfo.h deleted file mode 100644 index a2f2d8c..0000000 --- a/sourcehook/generate/sh_memfuncinfo.h +++ /dev/null @@ -1,912 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** - * @brief This file provides a way for getting information about a member function. - * @file sh_memfuncinfo.h - */ - -#ifndef __SHINT_MEMFUNC_INFO_H__ -#define __SHINT_MEMFUNC_INFO_H__ - -namespace SourceHook -{ - - // Don Clugston: - // implicit_cast< > - // I believe this was originally going to be in the C++ standard but - // was left out by accident. It's even milder than static_cast. - // I use it instead of static_cast<> to emphasize that I'm not doing - // anything nasty. - // Usage is identical to static_cast<> - template - inline OutputClass implicit_cast(InputClass input){ - return input; - } - - - struct MemFuncInfo - { - bool isVirtual; // Is the function virtual? - int thisptroffs; // The this pointer the function expects to be called with - // If -1, you need to call the GetFuncInfo_GetThisPtr function - int vtblindex; // The function's index in the vtable (0-based, 1=second entry, 2=third entry, ...) - int vtbloffs; // The vtable pointer - }; - - // Ideas by Don Clugston. - // Check out his excellent paper: http://www.codeproject.com/cpp/FastDelegate.asp - - template struct MFI_Impl - { - template static inline void GetFuncInfo(MFP *mfp, MemFuncInfo &out) - { - static char weird_memfunc_pointer_exclamation_mark_arrow_error[N-1000]; - } - }; - -# if SH_COMP == SH_COMP_GCC - - template<> struct MFI_Impl<2*SH_PTRSIZE> // All of these have size==8/16 - { - struct GCC_MemFunPtr - { - union - { - void *funcadr; // always even - intptr_t vtable_index_plus1; // = vindex+1, always odd - }; - intptr_t delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - GCC_MemFunPtr *mfp_detail = (GCC_MemFunPtr*)&mfp; - out.thisptroffs = mfp_detail->delta; - if (mfp_detail->vtable_index_plus1 & 1) - { - out.vtblindex = (mfp_detail->vtable_index_plus1 - 1) / SH_PTRSIZE; - out.vtbloffs = 0; - out.isVirtual = true; - } - else - out.isVirtual = false; - } - }; - -# elif SH_COMP == SH_COMP_MSVC - - namespace - { - int MFI_GetVtblOffset(void *mfp) - { - unsigned char *addr = (unsigned char*)mfp; - if (*addr == 0xE9) // Jmp - { - // May or may not be! - // Check where it'd jump - addr += 5 /*size of the instruction*/ + *(unsigned long*)(addr + 1); - } - - // Check whether it's a virtual function call - // They look like this: - // 004125A0 8B 01 mov eax,dword ptr [ecx] - // 004125A2 FF 60 04 jmp dword ptr [eax+4] - // ==OR== - // 00411B80 8B 01 mov eax,dword ptr [ecx] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // However, for vararg functions, they look like this: - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 0048F0B6 FF 60 08 jmp dword ptr [eax+8] - // ==OR== - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // With varargs, the this pointer is passed as if it was the first argument - - bool ok = false; - if (addr[0] == 0x8B && addr[1] == 0x44 && addr[2] == 0x24 && addr[3] == 0x04 && - addr[4] == 0x8B && addr[5] == 0x00) - { - addr += 6; - ok = true; - } - else if (addr[0] == 0x8B && addr[1] == 0x01) - { - addr += 2; - ok = true; - } - if (!ok) - return -1; - - if (*addr++ == 0xFF) - { - if (*addr == 0x60) - { - return *++addr / 4; - } - else if (*addr == 0xA0) - { - return *((unsigned int*)++addr) / 4; - } - else if (*addr == 0x20) - return 0; - else - return -1; - } - return -1; - } - } - - template<> struct MFI_Impl<1*SH_PTRSIZE> // simple ones - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = 0; - out.vtbloffs = 0; - } - }; - - template<> struct MFI_Impl<2*SH_PTRSIZE> // more complicated ones! - { - struct MSVC_MemFunPtr2 - { - void *funcadr; - int delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = reinterpret_cast(&mfp)->delta; - out.vtbloffs = 0; - } - }; - - // By Don Clugston, adapted - template<> struct MFI_Impl<3*SH_PTRSIZE> // WOW IT"S GETTING BIGGER OMGOMOGMG - { - class __single_inheritance GenericClass; - class GenericClass {}; - - struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance - }; - - struct GenericVirtualClass : virtual public GenericClass - { - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } - }; - - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - // This pointer - /* - union { - MFP func; - GenericClass* (T::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = mfp; - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(mfp)==sizeof(u.s) - && sizeof(mfp)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - out.thisptroffs = (reinterpret_cast(NULL)->*u.ProbeFunc)(); - */ - out.thisptroffs = -1; - out.vtbloffs = 0; - } - }; - - // Don: Nasty hack for Microsoft and Intel (IA32 and Itanium) - // unknown_inheritance classes go here - // This is probably the ugliest bit of code I've ever written. Look at the casts! - // There is a compiler bug in MSVC6 which prevents it from using this code. - template<> struct MFI_Impl<4*SH_PTRSIZE> // THE BIGGEST ONE!!!1GABEN - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - MFP func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - void *m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(u.func)==sizeof(u.s)? 1 : -1]; - u.func = mfp; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - /* - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - int * vtable = *reinterpret_cast( - reinterpret_cast(thisptr) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - out.thisptr = reinterpret_cast( - reinterpret_cast(thisptr) + u.s.delta + virtual_delta); - */ - out.vtbloffs = u.s.vtordisp; - out.thisptroffs = -1; - } - else - { - out.vtbloffs = out.vtblindex < 0 ? 0 : u.s.delta; - out.thisptroffs = u.s.delta; - } - }; - }; -# else -# error Unsupported compiler -# endif - - // This version does not take a this pointer - // Useful for hookdecls, as they ensure that mfp is correct through a static_cast - template inline void GetFuncInfo(X mfp, MemFuncInfo &out) - { - MFI_Impl::GetFuncInfo(mfp, out); - } - - // Versions which do take a this - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(), MemFuncInfo &out) - { - RetType(Y::*mfp2)() = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)() const, MemFuncInfo &out) - { - RetType(Y::*mfp2)() const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - // GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - -#endif - -} - -#endif diff --git a/sourcehook/generate/sh_memfuncinfo.hxx b/sourcehook/generate/sh_memfuncinfo.hxx deleted file mode 100644 index 19e6e1e..0000000 --- a/sourcehook/generate/sh_memfuncinfo.hxx +++ /dev/null @@ -1,332 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** - * @brief This file provides a way for getting information about a member function. - * @file sh_memfuncinfo.h - */ - -#ifndef __SHINT_MEMFUNC_INFO_H__ -#define __SHINT_MEMFUNC_INFO_H__ - -namespace SourceHook -{ - - // Don Clugston: - // implicit_cast< > - // I believe this was originally going to be in the C++ standard but - // was left out by accident. It's even milder than static_cast. - // I use it instead of static_cast<> to emphasize that I'm not doing - // anything nasty. - // Usage is identical to static_cast<> - template - inline OutputClass implicit_cast(InputClass input){ - return input; - } - - - struct MemFuncInfo - { - bool isVirtual; // Is the function virtual? - int thisptroffs; // The this pointer the function expects to be called with - // If -1, you need to call the GetFuncInfo_GetThisPtr function - int vtblindex; // The function's index in the vtable (0-based, 1=second entry, 2=third entry, ...) - int vtbloffs; // The vtable pointer - }; - - // Ideas by Don Clugston. - // Check out his excellent paper: http://www.codeproject.com/cpp/FastDelegate.asp - - template struct MFI_Impl - { - template static inline void GetFuncInfo(MFP *mfp, MemFuncInfo &out) - { - static char weird_memfunc_pointer_exclamation_mark_arrow_error[N-1000]; - } - }; - -# if SH_COMP == SH_COMP_GCC - - template<> struct MFI_Impl<2*SH_PTRSIZE> // All of these have size==8/16 - { - struct GCC_MemFunPtr - { - union - { - void *funcadr; // always even - intptr_t vtable_index_plus1; // = vindex+1, always odd - }; - intptr_t delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - GCC_MemFunPtr *mfp_detail = (GCC_MemFunPtr*)&mfp; - out.thisptroffs = mfp_detail->delta; - if (mfp_detail->vtable_index_plus1 & 1) - { - out.vtblindex = (mfp_detail->vtable_index_plus1 - 1) / SH_PTRSIZE; - out.vtbloffs = 0; - out.isVirtual = true; - } - else - out.isVirtual = false; - } - }; - -# elif SH_COMP == SH_COMP_MSVC - - namespace - { - int MFI_GetVtblOffset(void *mfp) - { - unsigned char *addr = (unsigned char*)mfp; - if (*addr == 0xE9) // Jmp - { - // May or may not be! - // Check where it'd jump - addr += 5 /*size of the instruction*/ + *(unsigned long*)(addr + 1); - } - - // Check whether it's a virtual function call - // They look like this: - // 004125A0 8B 01 mov eax,dword ptr [ecx] - // 004125A2 FF 60 04 jmp dword ptr [eax+4] - // ==OR== - // 00411B80 8B 01 mov eax,dword ptr [ecx] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // However, for vararg functions, they look like this: - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 0048F0B6 FF 60 08 jmp dword ptr [eax+8] - // ==OR== - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // With varargs, the this pointer is passed as if it was the first argument - - bool ok = false; - if (addr[0] == 0x8B && addr[1] == 0x44 && addr[2] == 0x24 && addr[3] == 0x04 && - addr[4] == 0x8B && addr[5] == 0x00) - { - addr += 6; - ok = true; - } - else if (addr[0] == 0x8B && addr[1] == 0x01) - { - addr += 2; - ok = true; - } - if (!ok) - return -1; - - if (*addr++ == 0xFF) - { - if (*addr == 0x60) - { - return *++addr / 4; - } - else if (*addr == 0xA0) - { - return *((unsigned int*)++addr) / 4; - } - else if (*addr == 0x20) - return 0; - else - return -1; - } - return -1; - } - } - - template<> struct MFI_Impl<1*SH_PTRSIZE> // simple ones - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = 0; - out.vtbloffs = 0; - } - }; - - template<> struct MFI_Impl<2*SH_PTRSIZE> // more complicated ones! - { - struct MSVC_MemFunPtr2 - { - void *funcadr; - int delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = reinterpret_cast(&mfp)->delta; - out.vtbloffs = 0; - } - }; - - // By Don Clugston, adapted - template<> struct MFI_Impl<3*SH_PTRSIZE> // WOW IT"S GETTING BIGGER OMGOMOGMG - { - class __single_inheritance GenericClass; - class GenericClass {}; - - struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance - }; - - struct GenericVirtualClass : virtual public GenericClass - { - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } - }; - - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - // This pointer - /* - union { - MFP func; - GenericClass* (T::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = mfp; - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(mfp)==sizeof(u.s) - && sizeof(mfp)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - out.thisptroffs = (reinterpret_cast(NULL)->*u.ProbeFunc)(); - */ - out.thisptroffs = -1; - out.vtbloffs = 0; - } - }; - - // Don: Nasty hack for Microsoft and Intel (IA32 and Itanium) - // unknown_inheritance classes go here - // This is probably the ugliest bit of code I've ever written. Look at the casts! - // There is a compiler bug in MSVC6 which prevents it from using this code. - template<> struct MFI_Impl<4*SH_PTRSIZE> // THE BIGGEST ONE!!!1GABEN - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - MFP func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - void *m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(u.func)==sizeof(u.s)? 1 : -1]; - u.func = mfp; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - /* - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - int * vtable = *reinterpret_cast( - reinterpret_cast(thisptr) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - out.thisptr = reinterpret_cast( - reinterpret_cast(thisptr) + u.s.delta + virtual_delta); - */ - out.vtbloffs = u.s.vtordisp; - out.thisptroffs = -1; - } - else - { - out.vtbloffs = out.vtblindex < 0 ? 0 : u.s.delta; - out.thisptroffs = u.s.delta; - } - }; - }; -# else -# error Unsupported compiler -# endif - - // This version does not take a this pointer - // Useful for hookdecls, as they ensure that mfp is correct through a static_cast - template inline void GetFuncInfo(X mfp, MemFuncInfo &out) - { - MFI_Impl::GetFuncInfo(mfp, out); - } - - // Versions which do take a this -@[$1,0,$a: - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(@[$2,1,$1|, :Param$2@]), MemFuncInfo &out) - { - RetType(Y::*mfp2)(@[$2,1,$1|, :Param$2@]) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(@[$2,1,$1|, :Param$2@]) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(@[$2,1,$1|, :Param$2@]) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } -@] - - // GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 - -@[$1,0,$a: - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - -@] - -#endif - -} - -#endif diff --git a/sourcehook/generate/shworker.bin b/sourcehook/generate/shworker.bin deleted file mode 100755 index 18d35bd2ec92e780d2384dbf192640497b82ae37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54998 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 XRI!`2;db_HgI+>5lKQxTZw>zg{q0Ax diff --git a/sourcehook/generate/shworker.exe b/sourcehook/generate/shworker.exe deleted file mode 100644 index a251da14479b56dd75dd15f925de69e066c036c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352256 zcmeFa33yZ0+BTfhA^{2wQluzg5fHSfD5zi=$`GhZH7$cEC?JCc5tO!o10sefA#B8< zii(1WBdB!-1uTQK2p&;UK~byXag|g>_q0% zUdg&_i7nn{vnAkvWu?uw7JvCKL&E5RLUGd*Uu$Z6so~r0*2WEayWOzd$$6>Q&X|7H zjB(ebjvqH|+VuR?D<`JTD43Qyd0Ohgi-)FOGkwCu)0;GD)WHOuv$f+h$31r8Ve5bW zXHGhtjCAv-1|GJ_-?YO`Z&n2u# z%3V&IZAe^w+t%ij23lohwxqbmaSa;TmVo;*oqN~m^=vi=;`~o3m~qO7|E#~ZB@N6v zHj$qsqzwZ38~mdi-qOIMaS4$N3Ri9S~{te7qr@L!QT}@sURUz%Q#(E zv-N`9ZCxR&uK1f;pT)s{88%z->63NErHzmc83|5T^?JcZM*loyr z#*Lsy5t7YW<)Wo1y*~v2CiF*g?k8yRz@LasoPwY@9YJ~y@@C$T7X2PL`^7s#tcXM|Hd#53J65*YJ&4%(D3XrV-1A-MBQM%(y z1S?qDZx3RvUq+RZTM+w^pp5!RmR^dOn+&$4Anrd4rH8&lFufSTYwJP5n^z*{I1a(6 zml15c20=4IX`PAScD6k!fY>tu#MDy=?tT!-i%J2{dmNAt^dt62SHuqdiP9ENq15p) zf=`}C!EyH@Xhtj9_b_7Lj6{`VOHg`w9%A;b$Q%DHN~hV8_td2bl1aw$pAj4wg<#@z z)LTOH*+E2;_9B)&9>Mw>ki0#c@URtCzM%+Ep1co1w_N1iyaajPUl7Z`9hH|KK*4JR z5i9JCAfpJugGmSmjYh$y_Yj-?f@ly(T(Q<94}BetES4Z9EZ+K}G| zI-$VR3VFq+BN&wgP>(M_-t)I3_~SF=4fY^-frh?;c2(LIvAZh}+?#9)VzQ zKLiPsP~X;wy;g{rhg6My49N#q0q8~oeS~7_^(B(8jzMtJFeK+JN4*8KoB>}VX!{Wg z8g574s`&`sFsR?_koQ}L2;O7=eR~=T)>69TE0Fwb z4T7F`1IqsXi1qD&(x=}<>6>36wq!SAt8YbcGIl=8<32%b8Led2qex!48iCOlLGFpD z{M8`@R~&=V?Rm(%=TRi*QYjxdMeIH@=r{?n6Mg`;SH4G(-2i!sMW}pkA_|(a%0n3_ z7`Y$G_B{|>(G$T_w9^h`ddyphT}BGNZirwPAvY$_ZFB{3Z4g`E7*Gc1AXcv(f(;}s z@igRp^*myqQG-371CD{jkwowPTNjkRNpe$Z**jJuc!k}$*$h-3!e*~hoVU^l|9l9s zC+SAqi;?V8f#mfM0p2PCc;{W@jU=`#1_x=`{#gj_9f5)`9zigO1)Vr_IEdFc20`b} zC>VM>f}832*R>#hYtiiDZb;rhA$~9$!L?(NT>Tb;L7$=WyH6tM@&gJ=dZNV(^AR)H z%Tmrk&}{(nzRN|G-b8fhW8{sYdTzJ^0M4dK9b{*Ew;__}e2-+aNr;W6$Nc6#B>U5z z+nh#htnwlOJlhAs`PZV#O=$qS{C5=mb~%FjBav53=P}BTSQOk^ zh`h^>164ilMqW3H?%@+qrIiA#}h^_1E`^7egW#2S5$(wFHhQ#ovpdL6;f zf1tEoXCNB#AWH9>1}H1PN9?q>QMzXeV$CxUyNGW1d=E;y)2p1Ajb^=0L9_a!P^F0d z?MBW}j=2QEIQqn$pCfi3UEd2N?c46i>oE~Y_jO2K!7-&3N!!m6`@~_0{q{4eyv)JB zE0L$s{ZIM`u^%|;SpPIiKVm<6;a^Dp`7H_-+=b+etnw@e*XubEng2eLW2PW>nGcA* zrs9h^{@&OCl_$}S%%cO{NhkP(7eP({$=*v4vvcU^HW*b-r(Mxe2jL&O_d@SEB7RtTKBY3fhlB@(LSD_i`Y8i9KNXNhmm; zHnffu+`<-De}&`?OrCiRO80R9Kby%Px1gX6!DsG6y#Y5Ob_EOWC(~Q~sQetg;{nd$ z-t2~;nAkp{E?;4{%BC|~wgL67dJcIjsrW2<{*{C>v>OUGrXaXJemwk=o z2OUtQh!*BQ1;L;!1n(Y?V9f`BGMMw6FP}iL;Vk5-4QR225!>G`{V-Z}y z&OY%W1jR2Q`QUH_KVO98BYn}f3#V_hRw8(T!^wtiC|yer(v7mZVklw{lH3W;qF_14 zsDHCN52x~OnT#s0v)Kst{Wd3~Uh8MkVlX9sEA6lMEL0guBHt&G57T>l;}8t|9l`gs z$+s4x-ozAC8M_+E)ej)K?KLzzld`YKNAL|NHk`lyCv%VK?YmW1kQQ^!9&~7Y^?(YdEX)VF#Y(Y zqY&Fl7yb?ow#qLXgIN6=P^BxU=QonvpVuIEC;dwzX?~Tns$8=FDSNGWfe_wfKEzvk5R+MfW*KLN=R9O%!aGaADAU&(kR&pH=v=g^9mE=KGp zcEsa|qu~ftNno#dgLePGMTot8E@H)3<$y*tkvzdNl)%mYiuVBerj!L}`x; z5WN2!04%-(K{auwLM}D=;3}`ir|^o z5ad$!FD4-Pj$Q3~%3wa#vxUtbpaT9=iDbrZ#5&YN>7X(svo|8>LM~sOhTxF2!N9ioQ{=VkfgpJ`l5;s-eL5S#V;uKwlTdK=ok-54dB<_WH~MY__w7OQ)*BH# zGatzX%p1?x;&ljGEkLmKMU*Ceis0#NKrZ+du@wyve8OJ)04cccHzb!)-Is8bT)7X) zPuTi3Fq+u@k95Mey`?8n)wg^EX$sNloKb(ZNCm)BrFK$Axh}L;K^?Mhc z$A(paH~V_T+S8EwyoluW|3;Pl0*^NSu@k}B^y5X>qI3sA&7=>z?tA1dB1a#wr<|0F zJmXYU$;?6QYvNs;jHH(?GJ*Yk?x(2t8b`GcD8D5fyLV&&z-=76<32-P#UTV&aTfF* zj>XHLxdsIbDE6;DL2NMHCQ^QTlb!Z;1O!!5B9-J zsLL5N(PwDwcG}u_&ci-?15nm|hrHx2$V)mM$@Az-I&wnVm7ewW5(LMvOFl9f!A;am zgE^@3LQe#L{)9krBK#BcuAm#a{s3b0|3GjDnSOxX)N?5cT%6ISyAj;>BoN)nd0p!c zD0r3AkNzCquUU^|=Vqu9KL*Lgq`BuWNcL(6a>o$cTfZQ$K27wNHV7`f3BfTN(Cqmf z1nVC|Fsl@K{plOIAzBMSu&vP(YR4Z*w) zC`hCb8(fU!S!sxEcn5iV9z(Ku9|ZH+Z0~!>OJ0s3iS~DV9D>Kl(Jgd5X+I#DOO@S8 zSGtqE@m!8pXHjpTl9oUp#NOvPxcGAA| z(d^v|khh4F_mZEHy!A?yo<XOPEwKh{I631^H8I0O!*R`;`D6oajFTAz zA4cg9-y%7BJCdDxA-R&{;HT+`&0deZEqxLD>|9i7NO5*AK~T8?!SOSY_of?xg9Fv? zmm}}rB=?K92u5?k_G&W}eEATPZ+igcNfH!KEgW_s?-Widceh2}b0qS-Vg&!mM2myu z?f2i29JC3v#I;7=)T@#A4IR{#3=EF!ojH*kPl4UM1(h$Q-yK$p$|v4~;A1Ze3h7FV zxb#>}nvW?(@HJ7k=4|+*76?vqquJ#g4HP}dqg)t&cM_75-$6n0$B6Z%tUkT~!OI^b z@7^}3awEIn%+|=uW^z$S)cdG2f-hO6cNPlzu%JC>8Et8VJ^w`Bsa-(x7?N=r=ZP(d zsQ6jL(zqu6`5pw%vo9>#jo>4?g1gAVx7VXt54z3fy%D=;DVptl63JD)5sV?{Qw#(J z=b)g7&S*84GXK5-mD|y?4!IezC&nSTl|x(BbTrFthGcWf;8_l6*R%V*MAF9Ggo5Mm zMnMbCmX;_4H`2^rq36GI4PrZs5Nq%u>ixJ1u?_1Hu)?uv|(Cwl+sW(mTjI zwG)!V>F|nIAn89A!M)cZFPp~Di+$!@LV1BZy_c^*K`FZkI31u5LuJ&tN0>_BgLZwmJW> zv1RF3D013!d~dsq7H417-=y6600kSpX=OaF2VqU@2{J*^&4|&Y1*a?_mJ=@sOoxJ1l(c=A5Z&m>Gf~|nsv!ApF zgg~|cfd{`30yihrO2-kvKk#8S_)Go~_@MpuvdYR(!q3%!w^TDuZ67y`t!^LoMy7pK z{0B0+wO&w0umng$)Z6QW%1Wp@&d4fKU3I*kk+n#5(D8V~$c2Da3!O|bjDbuZqm%Uw zBbCWtpk@F$#^>zp%H8$CAVSVo2j77?ZB2B~>1->wIQJdNE>iD-4>Peyy%|hsG%r`B z1@L24X~A2FbU99eZMi#5aBkKpmc$}8lZmxVXmFF5ep1rXd<4_0BrV_vA#E6c90m*B zH46<&JO`14sBHcupTyn8abAh&WV*9+(jB;yV$(@i?lOT#Ald5Ae+kQmhe`CZBDI(% zBF$YsgP^l>7qLMhYvib%(!ddHut;5A)gbql5YQ{bL2CxPhE$#!Qn?_avTz@d%H^G* zFRIF9`@rXr$OLI={~2P~0!M&iI~{{zFe}^0N>m^3vsy{5m(WVoI!$VMZ zGXOz#fMl+Kyj_EAsI$~KfYfvetQ;iEarelUJ5Ye-6WGZbSYs1G!Y{}> zR_7(=_KoXX7 zjYGOgQ=^c$b9^3VfPpfkvego+$w4+LWauqqHv zP!n}B(J+Mk5jxpew^xI85*iaB^guF9_MIt)#$Xw!9l5PV3`3ar%ZHNJ%RB(9$s2T)Bd%1yw(y{^NPNwk0e+UZZXmiF&G_{sBDKhWhv*Y623} zzwZ&$tqgeOFR+(Dym6N&l{LH#=nkwbivZ3^rA3_6mO>g~-)II@!)Jg!IKanF>N#Iv2^@wZd6|>5=bA zWUe&q7HlXLo3P|}U2r>W|$87RzARAX({(>Z881SHl|qD9fkFxXr@qKyeO3#z-2%v~g?*Rc3%jrx>G z)C&Z4|0t+W4WcF>K|MsHKE*KD+!_{vT2Qql>YD`hAr>FpC0wTk`wW>!ciknZOCYk^ zxb6}}O+bSBUEKlG41>+pYHj*JEvS|unR~6E?)5v03pDD}B2lNHFh>oEg8K9zY623} zBQ)yM41>*8*C1*^)sCnq253=}tjrXiDygLPN z`zUz31@RJ!;5|*_Jqu2VfExty3Z4Lf<#rdmJ^n!PyO=6MP~9yZWi5hjB%>rpt%js( zGwS*$n-k}loGz>OZlY`bMcrGK}KoN)e?th}Vo5q_ShS!0T9MvQW z-d;hxgd%ubYP{)&!RG1*Z6x4V@O+76t`fXAvH10!VimoE+9`rnj1;_u5O;0-_6g!8 z6v4Y(`+(kt!RG4vAYQ>Ug?RS}-mNSipz-z%!@EN8wuyo_BZ!w!1aBvex36Kaxrz(o z6+AxzSZ=A{RV?1IL-_5d<;*OxiZ6Aigp{P#dbHwH?Gn^>ag#v}*hXR4_3T-O$fc-* zq_s5m>ZG-BzCkCgW%boMDJ$+VIxZ{mp*k)r^udT@!49V_xO*U}H)A%B!Dh_jk{UK+ zlCki|UPl5{&dnG*<{59HGHgpWW2TJlZ!0q6V-R0t#z!E|!GRk#7b4Di9pn8F=TwjJ z9*A@4%6NCg$ur}pBAz#K>bMzK<>k+?@&EYg*IYABB2&lZ7C0GDZ#j6GdwIn9lJUgFF%X!z`hUv}ZGOCNjOwGGwLK-;G_Q{H{EnA!l?d)}s z3}zWqkQwhRlNJ@+g?3i>AN4sagkur}j@xb5>afQ?YQ|!}AohJ2Qt0`^tEGaedgq7{ z-bGu(;awF49?rW)jEg+aSi2_~M)ll!)2Leep@(zo2lasI*rQ`d47TNFyf{dXz0^kZ zaLmmhHuszgTfqqwc5Vlhs&Bv>O4ee38J}q(%uSU>4wv#;jmq3}%A}FQZ1h5Cqm5_; zRk(5&G>3^At_n;T)%UN;%-B<0P`@1C?AfN+bCUtr@UYmW9tX#mID3kdJeeppj4sGl zufHzSJ24z*g)cMF{e>gHd+s6Fhw3XR6G}WCz$}`;!t^{)H$9Cal(O>EYoce2re{in zT*W<0lZ+EBG79SXdzqPr(G?ifo9I!PyT<8cwn^a**dcO3uvB^#GtTmC^nwykDi|Q) zJSt&aj!GEO$@KbE$lMEb%9XnhRQR&WvQ-oC3`v;z?uypFo!-ZWfdZqDGRaYXRPcJJ zV)h@^`!&|@;J-hDe^BC2F-CQr9RHGxntgkPRGHzMYj*T8wz|Keh;V^>ygD&gr zdE$%JXvmL=h8X-Q@Wm1L6~Gtjqnm34)qS+Z8~?@t-{N5~Iz}k`7daoOONd7Rzuybt z@Q41x@Rz<64*#c3{|xg<80R+eB}VfIvB(R$-h^2}s4hBb*wu9% z3p{7Qmyrx;HTBF`+GEOc8gzx(jh?@B0CAYe1k_E~4+*7m9z6mqCd&LI7JPq`-YR`* z|L_L-Y$%nVu;12Z*D=r+3IEcFetBb^@T2=%P7yailIhOGJUhkQgdH83Pa-qTnTRP4 zZuO))EAns!!y&0ay3=0JQ4@yAWPDbI%q@3dN$FIo<$OAvRdRnRpDZ?nx>$TGs`FJczN8P)7VT~gGz$iG;RN5+PXN(@I` ztA-=qX5#w6H{6b`SUvKKYS{wgk4@83y_*Da#-Lvrd`^Kgac@oFd|gC&3LJc>5#5Vv zQmsZ5#Afil3=aVW+)pbF)qhlXAQA40!*6%6;G928J5fDak3p&wsna(b41 zMiXC_L(PCp(w)iLls3bJba`5qJv}Qi51M6dq`X;)tUdtM)11j-Ru$>a6dGBD*O?;5 zmF7%=<@mCb(}pLeZ=NOA`JZR1Kqd;DG7U36D&PGKlVwvt?T66gop#FtKd_Q1F4fJl!xXf3s7ItISs*>DtGQI*6|vRwdt`c?g8nlL zpxGdxyde$dSPec~YZ^CKZ2>h==UeDUSV^FNN!KjLhy36m8QqPbb+gm0di0I~b)uC- zvpE(5O+tfDPg6$69n35^k>qG&XGpjDKN~#)|21FwePU?8&w!Of3^nw7 zi{Tjhzk80uR?wWCE-NuTGa0?qnOMF?tjo+waxXQL?D^=T6~5t)^x+jrx8EZ94!6RL zvm&jOB{1o3&&#mjb?){b58Fs{?#9|LSYddXdvlz3IJ!CSVPfPNz8hEFw92ua!IgD> zn)clArNhf|)Vtbnv2<=m@Vjw5ft6xfsc)0Nf&XFgG@-_EDysieBg_%#=LGatbeT~7 zh|{WDKgEz@E&iT;#gVkJnam{{qukf==%M0UKSB_`hkqjTtgo~!2$d{eqEo3D>2QGJUg4e^8 zPeRZXMRFRo;ER5r*f95VS3NGw3#aCN;uTzy);4t%1Tnw|;k8qGB<*Wj-b(xE_JJvl zx*RGC&M%)~|3YRaGU3gwq2FN+{SI1B6E3>bIIVE#VgK-Buo-xonZsC|iDAb9`@;Bc znojX^oLv@siu1dfeP30;+O4tVSHz*u_igt(!!7CgajNbx0X0CVwx^Y{>qrk7jbYB;o6{QIH?}`(HR`Cd^z^Y28oJaaC=^C@ z-K){oV$?LSzRdcIU8&0c>d?RF3-d!gC47#(SF$j9t2QMRhmjd9$7mtb;qz99&D7F# z(xnzzs??K88CuMx!yGLCEpAP z9fGy`9cXGRXav&+&|>t3ZpEPBgyLWJh?Gb(CT@#S@OM-g3;*UQ_CMwSW&Jk=&fi*; znSJw7*mj+)3P1a_JzzZR083kkw>iVcGsv?!^a($Uql&m$iP-T+HSYLxRI9+`%PTq9 z?MJ>yn-C%GR82zk`613zuB~>Sl06TrV{4b!PO8oerE20qZtY^QJ zS4s+n7_Rpq*G{%6RgCo|tQ{a~@7i;3lt{YDb{R!u> zuxCt0Dr_?wbF)IajlWSc%OA|DpTZy(+7>u> zByDu=a0gQJPu7u!`E7KhaelInG|F$RBTe$_`628wIxASFXPuV)vMJ_)^Y``dB@a%~>d3A@S$pJpdD47OHJgGYU6_xf!(v@2Xu!=YVwND%$5 zG5DeI+2gmM@@^PI0^;u=K4WtJU%CcBP5h;QTHl*$(Dz77-^;+?Iy@L_>05fobn!t6 zhUX=eio(8v1YCykB+??I`yK$BrD_2@rdC}NrWWevCn_t?DlT6Q;INyKrrpe4E_TB% zk>tVioMI`HsrNwK%pM%l?dp>I0cfMm9XO-lWDfgw<*dp{hBIu$ynV1D^ESdDraPEG zdTJoYRyFCQf!M5^Qw!jmbBCD}m4j?|aXlEbxqTjI7{wNAo#BeTo)t*?3K@C}DI?2F zJWOaC23tWhVQb|E`xFD6c~M+Bp0I?oslef&HX{+-Td?jLq0?Y|7W725^WhNaVuT$5 z-P%;AU31(NyPj1AQpolS6p+S)W1m5S1@-lzAlX{ICxk`}AQM0d47opL>B-_?9J|uBfAQDgU+`YK9#8n)>AHT9 zlR2JP>rg|!^j6Kqb`PPFuaKd)kPWQPCSR?p`<5bKK5GqjH?iIx_n?*JM_4d^DT8Xc zWz`We1FO{hG`=$O{?ELSkG{pq!aw@vkO=$mVs?tZi84`>j7%)JD%_ir)hna&% z^)4yPs_^zpM5s=JT20ObK-kCaris1usPJ-xyIP_4h53J^f${#BTtvdXp!t77M`9~H zW(v4B+12W0*6u;0wKj;f{A1}&=KXlHQY#SeD^-`H&m?Wcu?<%dsrknsY>2B!j|x!S zgE@Ggm@5%2WS++GCEPP`mSi}P7lHk4w9p$K!_C^i7Rnfb?S2bb{&{Ha%XD15y%DxR zycamkn(yeENcplI#z4m|#Jv5i(kw{df7e>P)NS)Og2esx@np5Rv@!dElZ)Ee`@vsz zXriCG*V`-60ZcvR<0u9kC+c;wTec|E@*C^OY58saJ*K3ASv40T;@_*#lz(qThxfle z`jx8t%3roLzNH{m6Pc2fIDCCfa>}?k!ADB z7oNGhj~$HBGZp#SsucDpRGLa!LDP$EVPGmq=!?ES$z3ILgn;Ty%1l3Rt`N@92y36T z#{i%FYgb|JyGC2r#AqM$?h4vR()?R=Pl~XSj`>5hjht#3%Na11OQxJkCFG#H@NZAR z;os|E82)FcoWb}xW?37vYy!p||6Nl$vg~-XEY2*O36YiOL06%+^xMOtrP_rSrSk~? zRXYVK03E(l!1p$EcVL-&1H;bwP3K939XvnP-*-x95_=6t3;cZvGuJ7nFg6M~`dFfv z2l?=M$*K}8<+33woW}~5S$??~?Q1g2GXYQ-CZQO18vb>Lh2Mh!gQZw)=jocx1gHqq zaJ&(^r`|2xk%e-0Zxof8McFKJmc?@|nhg2i8##oS&`86kU|6UpT2Ox>^c!>6kDcCO zCQ%l>>$S;{-kuTkKEfiN>(xl_70^j2y$`}E{1@n5#W`Szd=sna^_oSNe1D+7a+W1M zS2MxSK>VQuAAq-wmEhRrdx%{zgx=94N^5wpS!B`MPt$w8%#TbVP6AO_uI5|b z;H!neVtIp<=2e4Kds>GU{8*T(Pd`y)j#%Guz7r#Dbc;e?9plwjbG({OzQf0>xpkq7 z0X}$9zgiy790xnq1~)c%?DXC5Fs;l4xtsp1PRWGAum1cJmuSa=)Sk}784YBm?9btk(VOsC*n#2eUm^ zcIN^C(o~muakF7IT&wgRldnJM-0I}3wjogX?Sauqw&qGPNnLjl+_bedC;KD;_!sP) zfHl44p>*1eZN+~B_MMapg$GI zmH!Kb_}!u`{_>X%aT>TM2xQA(zn4JxHIzws_aJN1jG*`zTS-ginweP{!i}~ z)@FrO`C^YLmOU!k;~-FP+T)~0O5uwp!4elXc?+=xS-+Jyx1!wUhn;K{JK2f|j{4_d z=LH$#7C3*M(#UY`f~dFR){ie?p-U};+2LH8xkgq%P7>8Yx?fxvTWdJiqHeOf3-&{! zU8@2pGCUPpU&(4W{4d(ARnNi0==Ea;lMZOiXLA>K4WeZ3Zvcb4DA|fGEfVRCCer)0 zO4lrdN*{oUn<}Lopwi>%<)KoZLA``30jQDjuMppbcq-zbBEHsC?;gZOvops{EtqJV zIc~lT%Kj=JG-1IkJDT^P zA|{c^DuD6X>sf@PuaKd)kT9&>4i6JhnIl`>j*%KLf}1#mpf2XbDtMyMpj&bI*Nts9 z=}BnCea^M0hJDUtbw?EKBs{r7DBKCTVvogT2{cdvhGRjR6hH!=h$M_JoUV{pF28s8f&`uo( zo~Gc7{q<@vT$JpccP_X=-!R2?CC=aJI+YV%(Y@7Sc)FsIII&id_$25IMwJv{T%}^UU|mLC!sk%$<}t68MMn^AzN*i?V#}z&uj>a z^lPIK&~e((fCUdWtXDsB%_{ZE@34a|>#eXQXbJn1r)5}g`z@mKlR4AI$4oFWz7vBQ z%kW1m_z7JjLDw)Dd1yZMMZ_-E3#cGgv&4sb?m)eQvv~F)l&#cr1L~stfxr-{qLWA$=_^jv7?0-m?{R4T@r5ozHlUNr$n~&}I3grPGy#L5b z>OSxT+wpov2U)7d_<1x1?!Lvs_*4i}8{<8Qm3a8>PJ}V$Q(sk#Pejru^~&poGR`M@ zz<3wo2^93Y8TCrl{ge||SjZ1DE|2u!t4rhw;|^VyA|~SlS+|fa;H#K$sfWRjFzy25 z=y5lZ$$Ma)UQZX~h&$GMjXudRk5bailxQcfjZTTg*h(u+H}f|(VN?}JJ=zX&-2&R& zs-C&`;>jmfzN{4W415CAo{MVWK38Z)_ET_A;Qj{;RQkf=HQEiNphNid<6*h>VCVR^ z9+uJIaX1y1`Y@P2j97_>&k#ju63cpQ!x|uiGk=#F#NRE4)TN@MszaW zLs2H(!Ox7%C$7lPj zk3_9Kb+vn0&7N%@!oLWP;OemA3h}Ob9iYa*6T!i<$U18s?!c{PUTw5zs{w%L-kKb$ z;iUP`!F7glG#@|oiJVl>1SotH38a#+ z6Mj8?%8@x1UE&Rhm3a8(6KjST-DRN6Ck5sBVNuXGMSRbni%1-g(lv3=0$+%Nlsk)* zLH~(2h!$=F_jC@eknK|5UX0?dZ{+ttd@a%pTWv_vyh1#bsM`S9U`wd_yj4? z@nI;yxt3KZt|ASmi3w){@`-K@tHHyfDP~T5VI~{hs2lAelcnli{&8SZjAEaM z5U6n0RrM?yc&);{K{Qa%6hjx1=^ke0x768j1#`l(rxOn?B26fFt9X~@0euyuthGoP z4R2DT;Wenu@KQj$Hazf2IO-W_(cf2VnVU^o%TuMtQOoxrR^r)*su5bwM?;?!_>)7F ze>t+tANvWSlXtzFJdI`5fH^hXsF{s52^LuE2nGu*q--rvc|AHFKYgEq_)^5Vex8Up zZJzm;Bc5yKk3gK=h56ZtkDoq4FS!b?39h_kF_wqNq5fyqU{$N>qp_nB_o= znAW`tfaZn#76&9=*kk%lS&8an<<2cv&oNMq2=$v-$Icplt!J{o}u!I!nhJJ49`{}(RWq&wH-x7A+p$>4l!#9SFw;1zF1Y)V}2D;(b9c&W}X62ZT^ z2kgQb60uc`TgCXL1mjxxDfJbKF@(qYJgkkaDPvI+Y4_x8P6&BPa=J#k3P=ezcR>*Q zo|^@`OTA-7w&@7y`3|uX887LjfdUIN!B{j?2m-cBlf*gHh*T}d&s$?g#Cn<(Y0;); zQt-k}6)9O31p}=}x{iR9@radpIHX6A(yXPK16g`gXz7r{$oVMGni=(AG84825yay^E;%v_O<9p+KmK6rgxieRvuZd)hC|HW z0oYf_&|5eRA(~=<6lke)w9YgLHD|6QE%~|%BIVmgm?9AWSloFaL1*4fk&HzaMY8tK zBHR=Y!LShwA&F(PaC1U9hVL-)S>vk~#_QNf@d-FR#$NY4#@Nq6NVTVCD$q^P(}n{g zdm7edw(C)OZ6(gp5&sl%n%`2y_aaW=;Mc@$yAdZT99Q2$oN`D+{7uBk5Xa4|1MX8d}iAq}z6v$YlM=Fx_SSk6!7+;4(Pg^11QyVr%Ik;Q1uXky?; zfR0rKlq`=J$Exch;P2&%@$bM_FGSeK?X^J^dQ;(IWMnKuM_rc*>oZ42d}5U_=Vm>+ zta%v|ec2aZ#hC1iUk|^pHSq{yE;Turz7sKBdt|Wog~8IiV5uWmdRnk_IAVH_{R@zS zp-{dJ4&>TV7k1!M-^)^%9})MKQeHBY2)^ellL-9uR5&mU(D*2vyYxIbkPpAFn#JtI z^4kD9*JeR{CJ%6_v@1h$=%YtFriFLa z#jqs^wAR;OV!;Qd4uC1(!Z!$00neP1nl3WUL{a0{NHM~{&VpZ$9xNRG4j2kq_&e}V z1$-!npEHw-xmQ=iGBFyKD%*>ZpGUOwwD5JI`w8djKbYCo%2fnD-gwsIVP}qq5%0g@ z*L;u*z5?oEGQlsJ?P@3%{1!^{#`LW*pcMXM#`ow|L402^YO-kJJ2qB)b&U7C&&c<3 z^oQ-s*`L7cC9rfn&=NZQJ%agM9Wsqkf4^N*4fw#ifkSOE!kmWWx`23o$ zAuL?`2Yu*9iCq&hTbN;DjP@=>4E%60$KSQnU((wnkTi*oBnJ4fDwpaBKO4!<9TC26 zC6+XlV4eI#x9<|^Pv~+OY^~?4_?UoQH69NHQtB?n5gEH(gvp<1k`VJ_Te0weh=YFR za69-?~O~G z`?M4kw7XNitCwxeVzU1P^E@VL{qK_yM%Rx3AceG+;-s}Sd^ z&1W!{tqgz!S6*i^ao=O|kN_VbxV>izQNvkBfSHN)|J1hN)* zo&CTw z4G}|o$}pq02Rx*G?EW6w=pfUli_kxOh4k?5x8l4KiE#DZsgc^Ir9s)oNPm{y*UXE< zS}gL_rI!P6__gIycHug45orwkYJ1$wg-e7PZZge~2KNfewW-~;6{hyml|fT8XLsE- zO=4;fpo(Q`k0TztsexXMPn~NTpIXCkb+6hDhqi7o%sA@!bS65ixsS~8X(hxc_XTi% zX!+Li)c_&`P}um=U<~~-7yk<}*YFvPsW@@=^rb$7q1RB%{#^#OJ;p^AVCsuN3kR_Nk*g`LjXA+OOY??&KY)Bu?H2(+qL)i)gPNW@@Dk z-3Fyqj;+DTcY#>pDGI3nppzek>Xwtg3i1CnColF}3@yoiOa}M~Js&|A#4R$PEiH~a zbs14Thwg&W;kipWm4X;*@jfy2C-e6Pr1Qd!>nTgzD9idfg%>VjKG!U$h9Q4j>OAnYY#2 z|EvRH4Dk6*QGUuoxp{(5En%pQ*~@_JbU2kzWM6O%37d>EfsX+n<(<*F7QIUQ=;MLt z3p;8CK1BXEIx@7i1FI?Bua<8|zj^|S8L7uzQ!kw~<>CyVK$Qv@E_eK2M10J!Yp#uX z*o}ohNbVxi6+T9+q6etcG-8Cm;?i)<46Y4$Ebut0;Y$)uaqw|*l*jdA8^0|5=v8Nh zEHk)RuoJrZ)99Hype7q^Ib2P*V8WygjFTc4Dp`sejrb8M%Ish<^3QLcYE({)?f)zC zgB=Z{Ug=aT_^G}rJkL%DZ_8zo!W+Q#h4fAe&p;(hc=sb7qwr$pS5Jv!vzI#k8`gy! zG_(?G-bg$$eQJ0igHUZiW8znP!;4_9n6OwtgD!Xnyd>rRclJO3C3@CRbeNt!UxTf6 z(3v5UI>*&#gc|O zA4&|)%sJg%HvsM+I5X$>=eXLz<0kMi>k{6F51^Ld+#xjZfe#>;jgNwk9A+QBn2YeM z5y~E)sjy_1St-9KZc~E?;K4ozhMgI$Ut5&9iB8s1Po)KbDM%nmUEkl_?Sy_C(igszDSD2ULm(JS48L^>Du*Q zhyMe-UuciGUW`r5D`lG~Y~Osch912q#O@C;-gD~F!&F}0RIqFtXGzaFran4k*sFFO6+%97FSua4Qj}C8&6SHj!FPyI7QVnc7+2$ z2LQ=|;FlxF@;+^B@4OFVyMAcU*oYX$_A5NSmI1$}`G}R!oEvP15Z{M5=Z@baKIS4^ z%ltdmC-z30*8JMYZw7#e@yp$N-Cs*UYp{m})Cq7yEK@UvS^c#uliyv){`xvX>973J z6&TrsAu@pBSh_JPc?}}-w+J~b-3h7T=hKm`m#U#JOJdc7eOzpTn3Ir3A3!R7a)P2G z4-nl(tg9$GyY$mzQOWA3Z4v)FlB)7?p|KeIYlDlz`)f;0X7#}}MtG+~-j;JV$Lp=o zMU5^Xl-!ucE7QF`4B^%^-x#G4)$9#GKlW>8SKF_dS5dX7YE2^xKcuX{&yyh+hKKK& zlWqB@qUV&@cJulHpMx5!?v{=wmjLxPr<|~`4X(m-Wef)n_f?^mz}sWrgI*fBnD^s^ z0I(7qy8sL|2`)i>3~=1~H&1Zf+v}m<^8H;YeH?ZOD?JXNQG-B+SLkK?^O_8xh4}F@ zN7%zt<|vs?rv?*r#Js2r(@=OK7JHz-`$PB)lniwIF$_y}J(I0&UerJIv$_WTR1FfH z!Cl0qDtWIfbA>6)fsPfFrn#9$p_PwTWtqVZCo|`HOnM?jWG;tOIQ-T$T?=QvhLoni z^smrgV#~z0*A~&vilkREhv8&}iyQSZtcD8B%*9fSP2&8f$o7p26*Vw^hfftCF?4J7f;B_mm z)tY0P52)M-dLF>+t~TKbe+te+kB2Gj3SloT>-Uo!zC#$%Dsvn-aJ>-V^oMQgFlMCs z+}HX^bbaqf#fu8fH(Q&i52YS~`&)8kd>n4YrED-J=-KOGfloqF3(3LI_7#18EIJSE zHo{M_=BLK@&68fK-B|#Tw5QwE^5BGeU0)EQ=a?=ia3*<*dZgydZCf!*!2cLA|M+?gIH8kuwaPq+UyZQ#Brp%)7t2$*~ zY(qGAO9VI864RK22^O!e1=JsC zKiN%PnK}f`KnFm-02@+v`DGO1mD}#bD-Y%-mN%t}oV)cj?%q!^7kT0Q;9P|A zg2K)MdMM1Ci#&`<)?DOi#K&Y!%pdnp3=yH~t`@IT{|lq4KQ{fBfnQVq2N0t|5}j50 zKLwJ}`u`c0K>f>ayqfy2F!j$NM%2#cZ=<41eIvaFN{0UN8&=SRyvapVf&P($BDM*r z)&rpbsi^2uuR-e6;2{>sUU_8>??tSF7tltaE@f1CJD80zgTs#~>B35bE0> zhJBO7+9oGQ1m9U5ejgKlYAu!>1AINNtwoM8wEw%~g&u8c9R0)}V*aFRn13t_E}}+a zJ7e8d=m=F#65bo$#_Ji2BK|%N-gH1LTlvvVftOh1^HDoy%IKS@})hb8o}3vh$LUVa53U}ijfBz^}%T?qopFSN3H*$M`t z%$GSb+u)D!(Sf4ZxKz^&lOq1~OJi7(*C0Rs#;Togz=Y4ku>3GM#v4gomkJqcHH-z$ zj~*$*^iY1{wZeCPraBh%VJmi7#6a?RfnAsPQOVwP=MtldEF&kCm z4~{SjXQK)}E?ugI>MEmA#bw}Lv5~b0IR;-vT1ao1w_?%tt+dTdEHB5h{LVSI%0WhIgPA<&Q8Wg$u{Gp4X+TDF9x~pIg4;t$r9!{=xzQ2le&cvgt{0Mi9uCU-<3iU<>4!2 z=q=<&vmuy%f%^0(v;I!1yVNcYuknG@U?v`b?Snt&nb&>{e=majY8Qr{glsVoosh}NBnl<8^IoI#Lumc3_OeiO`Ie0W2FRs0S$ z0R?h$pmXpp4f17RATa32gWe4t)v#m?6NBI{w(!GOM4Z1Tx{@|>>UQuvvBPff;Sf8i zaPz{=f{P7-t5xl|1b+1SCdd1(;uMqSF91NMbAe7zF^)qC9ODc%10K?v^wHtkL2I_U z!E$f-F0i0Gn|{q473Wg(wEHqA2I8dktYA<`oBUR6lLsFyF0Z%r`Gj&ZhH;Co7M=eW z%wF`0fR(Jrcq{vwU6Y?AHd61QQn}F2cJRmD1!5i)1xLI8t>8W!Eo{@mO`#U{DkK$yHJj_3 z{m`CX-?XMdN8Hb&h>QEkAS{pIzJ$28wWa5Zt;vtFJd9kI>W!%`wC5ikxfD4W1aT>{ z4+dkI2A3kKVwL-QhnNNwTj4(e3rsz?HK(w4OkuxZ?{?y+{oZyNEgBwx*X@mlBg1a^ zZD1YrV|v$Ss8Rt0^sa3X{|A;FqMxdp!D}!Ggx?H?#X??7Ko{l@T^OH_xRzJ$IU=v) znERs0s|oB3@+$8p^AhPln5w)AyDU$&vd}d$w>iIO|MJOn<@+2}Pujr{ILsyEK3cZg zES&?ZXVQe}$_xO}37=$@zXOpF2K$uD>&mE_qy#ugxke_lf&z7j{^_77fhwtyoFmwbnfS06ix;dw@&Rkf}OqI1d7ji;Sx6 z()sY>;8!knzV+ynUwpxUin9BG+6f9rKOgX`ysP6A8^A8v3(>Sh_bjtB1n|^oWdVP0iWg}XVr;R8|L#;j7*!o!SMYI@D9ZjCyh9)0)IMWS zPx=g8iAL^uh~uvebOrdq1V#6yx8he7+2CpM~+I-(-!~R5zfKY7nn`ok>N$(Bu;WLh$PlU;mLVH3ppsyID9`XlXc=bS;eS%0QQgnZu7YuUfhLyAhw=e?H+4=n=wp z8=@{A$mS8F`Q4O`j2SqagjeZL7h+c~D#bcA%Q%RxVh15+SD_}*RTiK-Lvh#@URhGidVEiPuigo18y+`n3P$Id=^9W8n9MKBd#dw+_Q`z@Mm2>Pi8sv`w%D zOLLk48WedF4H=5e6TF$W zd_1j~s4A#l{)U4q!p;=EB?xoTd0LiUyUJJ4FIQLjZua1waON}UJM0H!zW*^JnvnZ#s1Nm9^3u0kiJw4&TRt$A)7gS}e( zT&3P%M~~dMtbj?F#|z6*UgPn?D%g{?jZ|q{6^oOq$X4VvIcEbiE0Sp3K47vVgH7XL}Ax>p)CS6@L@l$ z$Arl5*Z$IZv$D>cC#d#Vaal)&ax@)w-fW&Y)1oTWG4K|sO3#VD7;@sgzv{%;HaKM+jEO`FBjIy=#qtBnmo*LZEf>wAUy&2slLSW|k z^HL6#f62^alZU&Qo9;DXh^;-wZLhssF&$jeJ;mrF3;I#I8fMgf5es~bE9D7lEyRqj z=q`)P=VxYk!NH}v!`RR(buzR|UPV#H(j{ZVua=({M2<5YJX!JD=@#Ztv8=xGaj^jAXqC4sk57C}ofWdt*heVP^nJ;32>vipTW zwzQB}Cf?|P{tNd!a|nwwljGsBv-pjc{ElQm&4V@Ql|@=8&70|j@C{ghysUpmN4fxX z4}FB)hO~!^_6IH=j))yS|0>2*M9v4W4yb8=-XT*DH3ZfG0>o0;1XHiM8e>hCr1dEB zO2%AA&(ABc3A4_LwjuL#Lw;aVW_FLZ2LpUw8`ba%jaPnw6%TA9>C!JBXRGfa63kuo zuXO6ocf2E~zih_yao_;o&Zpv!OKsIvIqQnOCP~Dyr`U8^J)A62om=GDJ0O5R>}oA_O=p9qLAJNy{4SM zhoQ{}ub1GL+R@?*-N9f{X<7F4ti(LJPo45+CCaGXv4k?{G>aRt1x^GdkVqup_K%N?iz!Z3(OCkzN(8|Do(TtKJ`_e7UFjF zrzjLW6j;ul4h8-f=C>iLt}z;u{;{W=n4X!OcRBgm)`>djQ$qT;=G4o`fYfori9hNR zyhl=&?ySgzrI2g0LtY}&5pFCrBcz)IQdwH5Z^=_7~S8!gORodf0v17mcLt$P8{Ozc7*8J97^I$hGKW$+TTSVPa=BQTzUhmPgUz- zV*Q!Ha#+6@>n&}=O#3>Wbg9wsJi?RN^`zhF{^qYfJhekFI6{9OX_TVBs-+UVMdVUR z&R=%5k3*ZW*~R^1}!x8lCb74l;+VwdvrBjK$u$nS&lslED))Thc2|?wXn(>tiMp z(gU`^(*PpO3Y^!nQI(1@pSJba2l80t5C37^0`7uS^VP5&F>uTO(Uzjx%RaEG`xj>U zmFvz$GGue3Z zV-7P0ea_ozF3u)k`4+8b9+5wb{vKNe(ChIxnf#<988ZIzauWG;83vCpWfJ=!H=0V- zKH3MKjz&sICm;-yPn{SG>B4~Mr>^}TtWW59lR~%SPY$~q@ zW9WH-eO4p6E2iEcc^o4Wksp77LoX9I;Wy6sEerCo)l)W0wtBM4(lW7qqq7sR>*DTp zr>&qBUVP+rfH?IqHAt_Ij52S+Ld-I`z2iF{r#2Pc-rFeT{ETe{U*bF?`A+WHu-Ou7 zkC;H8e#MP1;?3JiRw1F=xlH_96A8;fM*NLMp0LYN4s-jU;3iF_3bN{p&>OY$>P5elk1ycTKJ7f zf?Ij+ITf~<=R?18e+hGIecD>#?scmz|9CzI3dO=!Dtrld(io`lzL01z-_ZGL@Nt0q zJhJ(QWd3m)0rw_-{q<424Rjzk)GN@Sc%B<{1fytywauTa380P)kxwx&pugAneIo9k zHI>OSeyXpzM1&SLf!)4yLLIckAb*^HaA#Ki*aEQ3?b-JmF&kXqy8)6)SBF3=uA(NYuaBiMaU&WZuHY^Bhmpo=L&}DMF_&tGkU4DjFU0jzEBOAz zA(hTxC3-HsSN$G2#`i>Rfwz31AT6_ywgTbO=Gq|A%Lw&pcy2r>qF!xiVZu)iv@i)_ zg-Zl2Z{c?|nN>5{#-7c+W_{XpsfqY8*kJh%*(?V;?=-7o#{=*#l@mk~P?d-aJ4v2Z zkTW!kZCHv}L9`efhDwXnU<;6Svk8!76-#rHHJOb%O6_OSm$-NbKYg*-LlhTOAzo8p z73#2^0>fUC7T6Qzn9OSfpFZNL1H_BTY7ujwRAQf;54%2Wop1y1XELLHsX~ z;#32&zd8iP=P(bLrK&i_qyY`@2M+z)QbFrotE*L6?}O~q5Xd($-10XOke%HC;!=-T zpopu|^lv1npTMP_=T})T&j-|AvlhkLh8?9;Ef844Em&w?FG!YH?^ROaAO;gtk@GMO zL^Q&BGgz%kkzaAH2)fTOI~>VwBUOTmEHW>$)S{2jZ(L3OtCVntQn{Jwv2RZ(iS&qAyC^z7VHR*dfKwv5n`ZUdB zCk(KuM;ixkT+;nxtZL8k1#_%KxpDanDpddqhu3w8kGW{#?4!S@SjTMPf4*4e57ECz zGvp_K#T2ij(a;F5g!aYa^LvCmmsA0ZN3lZ<2o}rdWDjUhAs|i%2pZx5LkuxdwUW+2 z*VGX&GwYLZqPV{vD%!L0GtjUiIhw5x59BXJV;o1ybB!`nGQa403}dghzP}|zk;hKh ztX`jW2kwZgdbpp5gUyLtK|n(xj%&Lk7XOKZuY0uG;rmz-N9) zMYPFq-FWUT5ns(wGD3=j!#GLlK+kECLZ~2R5&bs0Wu2sm++yONv+->835FT?olv$@ zHLi#~)KG;8{DVP$=_1$lLNau|XuWV3P!Ga3#0GdjLTuoBT1D9J4PA$URVMl%DN~a~ znYcIAQ+5oVR?!<(9+gGkVkEJOo>zYlE6W z9q;H=sG9*OIGW>|5co5%{?S?a4N}T$o*sDt?3C|7 zfVOx9#AbMwp(-YaMQWOcJd4P)cBhqkvsUF_OfH}d7~}9&nAz|>5UJcxSH6H`r~`je zQ+R=7ResxTo>z(6vNynO3G-bjx&GMzXG#qfx1eHNNX74<-G!3tzu1!1PRPpNYn$ht zh`O7lE_40uw|PE^K)FgvnTrQQmg0~8VE130u|T@@@L_zC7Ge7H^-?K7`-1<)YTfoB zD(^-Q=FH+J#ETGbjreznhdc{X&9eS)WN7=ITZ4V`iz{v4a0`)-%)uqt)t@jVeWwl| zEWoXD9%w7~AfPp1N|D)%ZfV)C;zZoDGi?P|=e`RG<~nfEBX`Z~c<{2dGPF_XPsmJj zcW>Z?k-u>y4-lyK*oM)rjGu>*9-`8}sI9N$n&ts~`cAGlJ2OIchtL9Et2b8Tf5nm4 zqOMr{7aY=A>;~c2f?i_xuX7BK1wQ);F*iFzbSv*E95^~DRxePZMefkMJF4A=O4RY6aD;~+K;lof;CJ(+(_kz8`Yda zjPlLk#|H5=U+D_#FMx;j!IL$NUsXhQ=J*x4J`khE%K~tY=AgrkDgF$Leo6TWd<3Eg zw==>EoEVER{cIJUdj@hbBfA%aS$M%1z`>}54<~zKtF)nY> zwjm>f=|78@1(m17{Axuk^f&|COlJY_5VF#)$qU5>ul7e+V`&fhq+$eV4f&)%Cj9h> zAC%zHee-TeGjw+SR`GJEKU6?>&>SG3*0BocAEbvb^d?2nQ;GS{KTZ$&`Myu% zsooW1;m>JLug~uR3+P1E%Q%F^s@NRFy+5=6$!>k{GXYe33uC)WJ@l zv{rH+3w=c2vT-Ma-t_6P`_ahVl75 zVcw&Y-+o>M58^JX$7lTUb3zf*&>~LRqpksC#Fx zf&Oh%Qb~0l+yeeC=+_k`^63sAc;$sZ)en|rnxb3`n+iMP>s!`IOQvNy>ANZy34xGwGe(wNm@_PhRTIS{kHx?39ckyNp{gH!vLl^oO?kF&#=7G@vkG*$+ zkE*)%$0y04BMxNHL8FZ}*3hEyfkG`9X#p9HNNgq&MXRDM))C(_L25yXLo}0dlvb&< zdRtN3+Ul*eS_DN6N=bawVx<);YE-H_&Rk73Em5QSf4^(*GjnD#j{{ooy}$qE^C7d( zIs38pdhNB>UVCq|y#XEtR?Gep1#vz^>n5^$ui;iyypvuK2nfW-AYm>0OOtEvpBe-&FNAXt_e$G!Z;Q$gy*>)9cJm7zbme5<jhaeqs+3G4FxKw}ri8AMx>9iWTj?rSt^VMTVw zz1IZQ{qIq4`l12k#|~l76$>)TG3Yn$ZxhRxYs^bi**jae(fKNn_cz4jeBzi^!+qO0 zmr^Z5Cs1>z?7mOu!@$dY%(NNfu+Eei(yGVa>PX$HhHSI$Q6^+)m@%hn+dr)Cbjqm! z>2{&E1wIYj`_NqgPS*&`c#y&(x&$yw3J^+#z37*A73B+Ios1kTUB6iy=b)|$&Yz*# zmD~bFb2C7ry3A#@=TSEQ4X=g23+p%d4`lgM@hv*1nTK$-F zW@lY@Ca=ixiLxxT~yjUL`)erpqLI&Fmd+K=(Va2HEwEm;PJX!dkZ|W~-nmVojawx>C`uB7U ze+S3~e^}1=@JPq#{M={!)rHCzDhzp-{uL?@8@f;x4$6~Z@<@-P_H+6HEmh@&KF}FU zUIj0?Fcx`KrPyQ{Tzo!ePenORx9FrjDCa5pIxXeTPL1ccW0Y7s8|2R#&%Z~xa>D0-f+8+o(EiqqoIble^T0`AGe_g-Dkv4oAlW&MRNwkjd2p_$%^&Y$|iOY{P!*R7e z@B)ToeJC_A-3sso&*RwzgxPLK?-*eaukTW~Lkns!uzWHn-r9lskhxz~yo^%Ju^Zqv zfrVx(P(v5k~9G}eyBSj|hYA*r|2HM&Pq_r$-^Niht6(Q|3`cS!5j zzP7OyMc6t1q*~LR(>4Uayc^RMeDkPNbbE>YHnzg)Ip~VZ4_guI`)m5MUJc%S99DzF z-CPZZB(!WG^`V^mpiQ;<$FplIGIe3%z*S&{^k;vQqa`t)?ic(Ee|aK@|2BPSI$0;{ z&~!PbcFh*z|796Pz`rgqK?{fSSh7YmVoR$M5Ec0elGEz4!6R$mgKi zgfX8nqTfY11hX)?Tu_cXv)19r?FRMrt%j3>>O!kQ24?LkUmr2tkIhG$8D@n7zqVcl zRqfCM?`qlNmAab~m25BZ0-M&2U2K)bS5$^Ozsg$=1y#xR>Nq{}uqbR^*q~eWP@x4F z`<(IWOD0c!7vfss#l8}J7IUGV=5jt>z(?47p2XM0)IG<72D|E-(IZ&DCz)503zg#4 zmRB?i_=>eG0<-H%r%0o-Y;fQvoTe_L3ign%3n2#(lW40b0u-Oj;-VIGb$7p(S>3RL z)&1w&S=F7-;-)$|d0vopofb|;&5aaG7`wjK@m5qI@&fa%7x&f#)tTmLFZ1v2 z`gOG)9(%hEQ;eP^kS3w-daVxAL^xG<&rXE@FnNRsMBs-n+7L(xt~G6F2o{&(1I?gt~G7?YMZ*b;}We7OMeZSudFwL=`_B+ zWvOgjCuev*g|Vm2Hx2J2=E;J0Kb;-=4CwTk2Q@=@8S@j={gGxWASv=eNqOsy*vpg9 z411Z?Dw!G`d=kV5ht_(^m!2-0g22>|WR{*L?}64kA+$m%W^cVku!0eg<1~@>nzGKTFp_`lskA}WX#d7k+Ezc9_2qVNPjtsDZqd@isC!;eU-WU?R zP~`m0SS>Zy$thIN#U`hp&XoAS(*FxE;Ap<1m-`kyM}C7ZeWJeGSBzcbiP#mRilZ5p zwl6*3-I;jpTJWr~AHnXOF0a5r;BW+*SIyR+VPsP*ve@2uj^@B-as;PEIw$zyW)!b_ z2};F|l0KLVXsXC6q_g@}^RvXg91ct`c7vLMZPOfCGM8VM=r#-Z1U3H0?l}G}gj)pA zIFDdZ#~Z;p6xnM~T)7edCNdVshVd5^_2(NN#Ek8XKW1Y6sv_+;#P?>X>kNGV?a#UJ zO{=OfJ2`Cce98~~7yW80Srosg@ReTiq+i)O(g0s>A~RTD@capZHP3bqyc~vv6P#PT z&R-|+n*DLV1+f9KNBtV3Es$kzdOHSoBBr44&1rk+;#s=OQ8`9lcBd`SRuV^1d_PDd zjmyJ6K3@v9uu#J1mmn^w=M*yS5C=5GMa0#PDoJa3Ix&YlO@xu7gW%S2zI+mFle7~E z>M5!2WET|RPu5~h=IGEinJUv6p^ktcr>4q$)1a^0Qdc~QsdA`-Q)N0=g6iiWK0U;Y zno07!1s!0dlW0UeBU5N&AMorHZ65#vUu~Vc8CSw3)!XD_9LFN_$O$Nsdboo|MpHMY zBXi9Q%h;Ip8TZHU~Y|6}jBCAbjKSmx|6>r7H z92-W^J86sQ0;OEX6ToL!~yD;z;)=PHia*dHfN_xKBB*h9f!=nu|1-R!_yh7(@jLJOu7fd z)0qa1Lia_RHuu~nhAe97F>hh1_UNLqrp?&@g>66h`n2^`{1ThV0qRJSk{^F#eGIBS ztyW=+;>*qHFHw^O(%yl{h*_#ZyCj`yZYmQSh(X$W0v0Cg(%B}bvZ>pj(&SEI@&~$d zJ0?e_OU}2N27JKeT-zhS{X3Y0tOgwX%_ITtH>^w=+>Ugn-&>h7F!{4|hEfBa4U;X_ zR~shp0C5CgbFGg-^`vGep*cXCk^b@xlLTmYS(!9wW73)SO=Th`=?v-deGGF259h&r z-~k=yS%rZM+WsDOqS#&8cKmcu0A5DUE2wC9{zS?lD((O27mmg^ZSP*ck@SbXJFvz& zTQ#*)Y;Q1c;ep>^(NTL=8yKjr-;im~{01CTXbg8!KdPOLVI#wy8E#}C(|(+yTPtio zwj{SfJ?Wt>=YDpyH-l^m=}!WIdVK=}P=i{p`CqGnnE;3?3+}YXMZ)obNH?VQ$s}-m zqR4xIT%;cX4hihMK-@yNd^iT=NqtxeVUf|Cpg}CIfVt*~KH1DJ`0UXA%eh|Hpq}_c zN+110TZJ+((NXKc5{vaUTJK5x$uf&rBf#pWC>NX)IH9MYG^n<82^@AKW{I=<9jwP= zY2^+X!*x8!2hd6ky#$3K>&w)2{A5_i%&dm#ri)p8Me&R76vB`*{OC$@v9Y7_AmiJb zyX?q45H<{Xs-R8lw0=M29NcTK{|T5MMR`{0AJF`XcsB&c53cL z%>tdcL6fp|B;^d3euQVN!RW#DnWPGT71t>mij! zeFunEL8uDCV&Un=H6tO}+0tN3PeIyj{gciTc1XfsVUiR@X0~wVcy@wsK)Qg6BY<+Jhg!K1nH_8Q&;Z`Wn@;}A#vu<+*u9*!YyH4Dwz)!znKB>zM3CHuVO zFkCM<4#(oounCgyib==Bk_8rD#>nq z4K*6|$cZCHo!%9KI=u_rY2rCpdu>uxYY;H}Q=Q(+Oi-r`wOxa>Lv`wiKg?E~gQ&+i z|H$EQzlF*TJdq#KMj(M7#B+pl_@~lJx6uB_>oBZXE?>(9EJgxtL2%W` z8G7GAHzo%;+1TD+&}+#MdIejO=>r!$wEB)F=ds-T_na0zw-?+^x^$KEj%e`rAJ=fl z&{o{a1^y0fO&l8wDC`(|t_L?k(HY0n-W1lqZ`%t#ilZ!og?#T>;r%Y zRH=mz>Rkb9GuR#t5uI!Hyzp4p6A6U0%L;?sZG?TbWId(+^Y`L@-V{_zP%mPtt(p!) zO$5DulLSyBu{By(VHNXJax#}h`_U8x{8*UeWYWS4K1Hd|CZXl?)*?dITz>)2ii-FN$j)n5Qy2Z324F4j0?`>!f|!TP5lyNQoV#vp9S^ zu}`6o9?rp^Rgh54pYVlcZ(2!)24pdVtgGfiu#D=6>$4_JK;W-er4}==mW0KOEm$ha z63#==421I+91M#>J5(ke;Kw>2WABI1M5aA6PPbZMm~~LUt}_q!Iw)`A|IZW0QpPIV z4?xm9^;(#a`a85L$?4CEbmY6LOsa4IA7q9;p)Ub_cK+()a9osPQh%}eFZ~mV)Se|c z1-~a6-z?0`5O?5HTEStJfb-;A#5P6Fy`a-9FChjc=s6LFE)bT%G^rOez>10g5ctjX zd4h(&0PQUt+kc(l3)0WMPv8HofM&;82dB{mapnwP4eDX&^>n|1h!MIq29aSQzK zVg>Q_U36cv2i1P)Hgv0jkjhm;>| zJoYfowO>W#5v~iyMWXEPCN}`O*fi1P!Ri*`BJuUV)}~-;u)ZdBTqM5!DgE_N_Zyh- zRp33qWY=B;WWK{>&ORrxf%;~r>{2_;3#El#h2*b6`3(5L!b-rC!oBtY+@O!!WZ1MYT z<|}Z1DEgSfx#st)(qBU`t}^)jRP#df`w8aB@cSK<-!#A9B#&u+|ANVlR=;4Hu<`rH zt4$Yz>f@pO{%ZQ`wEr|PS^WNNHoyPQWX|UIvmpnc1HTtvA3B(fHFSMwrIypw`Vi=N z)ZNnA2C6OUkXP}n*M~3@NG%2(ey_nDSBYTOq2Sv4Y_GD{hfW1A?i3;*&#;F!4Y7wX zKjUHY+929SgXmZcx|#Dcnds0ITl{Oz9x9$&4@pe1OPr}_oJ2;guEf3>lsOWu3S}lkVWlaPg?o?2eF5?cnyo@EUn$_gLTBTP|zpnsDAhy`7bqb$+PxA5<005TDy&|h0M9tX1*$D>pHEU zvuV9Pr0H46WOo9uIGFTklO#?v;jYwh=OLt{`aRpXK=bvh#gG>}1=mBy$RhSymy@Q_GrsNeP^+Qv#Cg>5*xO{>`JQ?#|qYo?? zDj+0Efq%~WuUA!g4h;Mt?W5Xu=)CWiWMTQ7cWS8OL34hrOe7w;lbX{U^b(U>6$I-> zGEao{R0Qkk4om+EuQ%WT4(QTv$fal4h?LAcMh2P^2h-AF>&Vkw}sD&K&?~9*X|BU}*|DVeEXP1{BPy;)Vmty*q4rSQnH;J*4;bA%4w2)V8 z3%&~Tqexj${Q*^3^NcVyFhSUY%KvkDNw1$PTH15F*1G(1=1Tnq@q{s}BqBCamkLZy ze?P*^CFD|pvrWzSX_E^Zz|Exs0jrkur2-$^uG@fm7;>oqEa*M$C1m+Mdp_X<#z24q z<3n03(LycPX0-rC@eW{}S4^oZ-&gmMOtRyDcC6)E2Vwu5Cl)ITV}LI=e9LpDNB9y8nmvy8y9;*75PE%~;2{HK_hw^&V_u zGgDf5A)|}}-D}t2OkMRenz%Y<9Pp`QAW_&F99i7u3YRA4@*V`7t;VqOuEZ&E?s~ly z1t5r#{=w!0LKkABh{w00Np%HU2(8!`q4lkNMs%-OaV&}Qcd}8bXC1a-s+)g;ZsPX{ zh!8@gqH-#cv5yJvsi-U_FLjJg$#qyS{w6XHIWm5%ww?d*D~&fE8NVAczl#xqW5rmc zyOCzx&H+fzX_$Y`f^%JSW?u503qCtDJFjpGe-zbkk%_M6BQ>37=s|~XDpsxnfiOS4 zlfN`VMl%r|MFbtC^Tk{mKYOUbmi^yVOr3UGpLV@PLZ|2}X zGpNTO!DUt%XUK^VECj!^PnU*X03|{TEdv7+v!o16#=I~rY8@xH59dyh9(}0X<4~8; zR@ToM7=O_%SOZL@&bLRJ(~8(~9&sNXwT29lHQnM$FhuQ#MB%5@z8W8q9QbI^@`xbA zyC{&e&}M47N*^1Ku}!KI(0S8mm^z)Vg%82<+9W~+vuaSSSivrXijW5WjkdBjPG4hj zrr^_o&H&vx_l(D-%s*~{fHF++i~RUo40JR}WeJUYPkg!`SZ$T>&l3YVnM%yB9#o9v~b-E3~ifzF9 zOzOwXTkDdQz5fkzM|dQk^bZ|h@F-foCEOt!8>-uUkoNIBqL7h zN3}DCI6S=uW+e=~RFaWK38M`)HSRvy@KqZq@4Gea9ZQJgO~ z#T%VU=SS)a?4_9H6lXDMpKc}XiK5qMZC3oSXSr|?wS!nb~7CDbzo7QX{+H3P2PTmXOgpUsSZRK1H)p9elIo5|os#{c8NL0 zG(Xh#&87vP9l&E6*ZuuZ2vSympQZ`*Z|(0y-DvLq&NR(`X8lDp3-FnzM~?8tNEDfp z;v$Dewcl+-8Pu>AcMc8^pXJm@#m6=W?WN((fdU8R0azMdf1|ochKg)>{|-Ze@D|yq z=A=F7<4!6@`}lM;2H&Cj_)^no{$UaAVLozq4*MrP2#}$LvZ0luW0zXhQNpQChh=~2@}@72G<7D_8H>uIs>#3VTHg?{mM;( z8pZ`eBcyMz7z-S>c3d?f^X(pZi@3q7pfl{5KLUPh0$Zc4>(CgjSN=*9lEMlU@*}Xe zL$yPm3{v>`(G6U$>wxD1?nV{qLI|4bISfXv*nk;rv_SLd24Yg_m=5$X(m$nq>4RvA zYHbs?OQR{SES2AIhjh>m@7v{TLoCh*^$Apdv=u8?IH`(% zqwx)V-47cg+DcP2ww!;X%QxX~ypx^^A-Z>X;Q1>Qo}F38fgH{!MET0kngmcM8Yo&u(9x^{mI zwKiRQV>E}Z{bf#FJNh=tHLKH=7S^@b4%M|cq3O0({K?X_x3;rlC|2lNeub{(gZiQ9 zJoF5@mVfmLr0RO8(P-=Se7&51qsuv(#pP5&=vqGD#H_f{FQ6)QEr0Uq+VWPO0@fLL zfC%H5@qn1Z4_Rm3Y;C(zqbOrdVDC7IhCaYPh(f`|zyjPU*vP>4PX~ z)dlru`XD`t%19BHF(w#a&S9fbtw--*__np`KFAMtuVsuE-!$VzZY7_C2qU4oauH## zR2MRdFe2RnLxfELPVJiRfFS~Pf4r3+K?FVol`FFYd5Ms%t|{1YJ9LYsl|Mo2EvR%BL{#+ty} zq3N4vy=N~-Fnmu3Mc5ibP2Sa0EAbJqB#={~n;kOxr`xeoXb@On>$p8pJ4@3{_W&sgs{9X0EfBChwa(e!%HT}$u{>pfG! zCb`yo&O>GP^`3v+4uv!anTIGOv)=O;5))3>*GjLjEkL0hC^kycgDDVg8&2VS?*o2!Fl>&d%V^hh#9c z)+5a3}clF=WoipI?QhviS4I$ZYZF8lq$E!G@mp?x|3LJTr@b*nRg z^T-BnuSuO7^eV|vNEC{-ul<7R6)k*it%ce@20AON{W+hueG@8kR?ha*H(RP*A%R(H z;0*{y!M;-i6qbKb7U66SYPk&KdaDAN0Yg%&liE%F47(Qo83($poq#7ZlOyNMbE_A> zFVu~;PQ>@fBmC>aITLXva4%)7G>X+rKIpsi=ni8|sE7ONTQ;zMfb<^awGgp0Ri8W+ z?mueJs&J?B7vOJCyQi)GBj7;?<{?7G+g|@soAGE59q>O*`&e4e9$-$3B1%9kL-aG( zGFsvGEdFQ~$;;r6bD@W`aF+x94%ag@9d;bPJoGd4__yHWf{uy?buNShLyRzIhi1+u z+Tg{RQ}A6(UVgRkGm)3aX zIKfY!<)&lUBZHF%8|41urJ3#Bk7pvM;FJ*UVSX_uhy7MKo+nIhKs?Wdp?z=^LTF1W zp2w#uMf>ND=fQCWCYI+GK)1uOJZ`XA){>Bk<=IHPZ3lVZj(01q@$s`yfsa!$BeBId zd6f4`vTiYagy-)BJ~;WwjgQsWe3tllJ_kOE#W&H?N~+S!Q)a%zH;uztkoNedHPY?7 z;fN{_-&7sWh;JH&GRBvcH*{%rOEJx0QM~Z4=7)XGA3FbDs@>TbbS?$-YtI2G?D1Xo ze)SIs{2131m#g`!h`Xwc_2s$5Jjuw=q`t)b6V8))D->#vw?gUhh-kms1`I@7@dw^t z{*A`jsF^>-mh+)el>#pqrR--^umbfJ&>)Vv&0LK))a)WW@SXbgY*x&IciDdl%pyPQO~6dV40`*7QbyPh8M^5v`Em;wWO7n|z&tRjiK?`~xJx%IrEd35u=3nykl{ccV?z zgh1~_Xf(3HUYsrwXpE)#8(;rs?kI3Kc(w@?Fr~pTC`x_ zR*Fpg5DeQ8Is*zNUVl4q+TW;7yG&GVLmaeL=K(>8`vB=y1>2h{hRiQ9a0b+S^a;2{fENH>OT~Tt^dfB>Oaz{{v-W)^uG%9 zuSDdlU)@0249z7Dnr;V$5oy_UiNOKLuD%1f1tCqVa1mbx`39V#6@ZpRaLqdxX5!%7 z-vbA4fR!?F@EwRhaZu?Z4_t&y77p5xCJwmj-HP<5#DQIG9PvXMA6G$_HiSZUd<2BU z!4t&C$=Wt+h!?`gD;H$qqj@#(@jO^76CWo-fu-@W7?~`5`~+zWAIp*ctnon&sPzK} zzO{3KcDsH6UyNVCvE=G6kVoc04~%hDVHn0qV=O>XO^oCxFS14DT}=K)TSFjYO%g~iHIPod@}QPS_*v@QkKaa^IyF8b3ZM{+iTiQ@jQo+L=jF=kn4nFx`36X8 z1GYfK!ziV-`5)&Q;SDTpP(PMAGCYKFR*UWQY`#%<9K5|Wzl!g{AR5_lNJ_;|Uki42 zLn;hAoAGoh2kVr0&qSuBXyHPj|9qqg6~%il(w`wa+eQ6zNsB%yJb#52jZMjSsF9Q} zE`Rr91hM4rZRm+S@^?M5eQxsiZGq$e{Qpk3u{JCL7r{(V%WU}P12Wd4@hi#kD*(M>AHQJVhVF%? zl@WWTOzL386&kS*nM)L>t=O+T3KSo3ehS5G5LWC;P=YAdQ-;Hl$r`b1k=`kz)rmfV z|M0XBTDJQSpTdiw@y0F#V8M9fmSj==)#;+2fdK<=05f(c+)rWF0R=-Hdq(?8e^Rcm zYH0nnUrUn*^TsH&BQ~45#-MhbMI-)pf26xAj4K53x+e3r&%8d+_8Pek%X~aI^;rIB zz=xroTQAz{eQi8EIr4Z(R1Q8A+W{xJwJc83fN0)rW9wG{-**#!zVX4NSl$tz?mD+k zUZcwP<^0~p$|QzM1CB*c2ErFY!VZi?z!&_7C+6^vEQFOTi$se)1`>aoMk0I;c!NQ| zLX7}*qOD8t7>o07G|tQ^w+0^?Rn51BRnT*5t{i6ts^J{Qe{`Xuq?!N|9$#rV@$oWP zux)|I;`J-kB`7UU3~(QIjlelOPQ4?Bg|{tmV=PdG!;&H&)P(nrH6d9V=|40KD~!OP zF0sOxmWnlq^-I)?WFi+4WLcA z)4BYH6?hd3j050RL4tS=xgO8+&gC2R#&_6XuiX}PHT&j`ivr{3BofzZkY)j-XrQVyKyx1PjbruC zA^ai8yJOlI4X~?afw5(QL&^f&NAU=YbSF+DOO^51BfH7d;SJVeLamqDT1GRlf9HK&_7zsnM;s zR^dZ?;4v^AQ-A|~uSz*^5E6>!@rW>mr=kXhU7Z?qwAa|+noL94W*j=8y1 zlT?R-QyZ-KgZT1osp>BoQh;KTS$$us`l&f`SCvU`zXg_jmhPwXTY@BokL@LPKhtZkR?Y30n0~l2;{$7PN zMUlL2W3FmcteIN6H*;|Q)(*Qq3Nj(J&Zvmi^v!h zD%4wGz8uVqg?f#Mh%U!{HB<-+ShNNlXu220g7NBb*&91yU#$n>hD84?#i$2M>uX?3 zj<7r?{1#;HLZ|7P-GuZClYRo}Fw)HPFw%1Z7tcNS^7*bg$6tO)^QH5{m!E&}dFFws z9T=4VFYEtW41C7+rzeN~>61ZtW_UF0LY%9D)mi zu8}SrCL&fTmS-)i^peCRTBUHAgt2eU*IrlB7XLDsJ+T)CwaDx4?SI?%&r4qKUh??D zw&i@^-paq9tLd7PN3=aVKZiZL1f#RqvzVt2u00z_ww$SG(>j`U--LN*8L)Ta zBj45PcdZ@eH!L%+#^O~JYi)t*Xy7iauNmtOu>nlN7@Mb4v8KCfn%2RnJ3amUT(k*A zs$p!@1nvUzs>C| zq|fVQkgTq$Ul*-MpR?P)H&y;=F|+OEP5ZQL&I53;Y+%1B z{{J%KiN5au8bq~Bfeu^?52dAA68mDYQ}*mu#_N4*FbK5OSBMx?L>5=N7T`k13hb}q zN7}Zye(Fk~J@F(+!6UQaKk&=dJbLRp+X41}0+KtO{uhA{z6Be6a{!-!HJWQ}1ZsB; z)Zd}<5}OMGHOv`M0#D)nk)3ivA-d|~O;HR(v2Moj;q0ydkO`yAKe{kQWCEGQMPzoD zf1f$vCCl%GvW*;{3LZb;8Br9T1Vs3=gva1S&Hom6J9f1`8HVGKamoGaK+p*j!io6!-Ya;|hg$bdQrqiVFq5C_{ACE7s82$B@TNn2 zzY2q)>|77yjvO8L%-4@$m_zMl)BFu;7i19~pOohJWlzn%CPR#O&^|j~Fo?}YkL;ua z`e^8D>pi&Z2k^}iO_rm-&zxlXyC8ReZ-C_K{x<0hH4ODYjel(VWUx##qFS%hWk87f zB2+AT-)?RHK-N1PXltc(71Q-6K~PsTJ$ z>;e5K7D5Fg2E?C%6Y47)=E0h%2&(Tj2$JE_jV$gLL$$vK*U7Z98f<;7uhhpn$CmSj zIR}yj)1$Z-AG8&42B@Do>qOIKJYk(p*WkRZ`pV|g#3XoltKi{<7ppzPDN~7>AOvvA zd;}g~P3d`a&r$f88-eUPRC*^z>jG}=G{SZ;CHUQ@@rzJ5Lb-NQ8o?&sJhIU33QxAK zAv(dWwl&fart?O0OO%5#8#AesHY% zq-O$e(e;7+{_oGHJZReo%`n*L#t5)GI%!{`_z0YomzK`pOV#f|{r8|gd;PZ-t$%07 zS1($d%-V&*kv!w;7j*lM$5*T`tjIARD{|gtDTWy{@mjgi>@Qo&{blz-9ohDm%_OH5 zJn!;jS~WTLmt6#y**{){2|Wjy zhj^H*{f`_*A@Q8weSpl?{<4a{rT3SOLi&Hy{<73jNqIFr_#5qPo2c*# zYHJdSxpUfB_y7GI{cpfz34Uw(!VT&&=Si*%q&%T{bQ9(+717c)bfD}0BQ~=DZ}HRrfcow54mo!~;M;@_ zX;B|XU1!^1sqHOaO~5-T;Ge%c*7VF4N_hT!HBC5Ak|koYozkFWND~`4B`_bT z+FCAdnWsvkk^sMQW;mY^?H@5j-R^A z+uZFxk?Ikz%e=Znkjbpp$N8I`>P!OT-x zBu{02+~9``zW)H4@vJ2EIE3BERa|Z{lV(=qEyA^MyLW67)xome07{Z@H-yJ4_+`p zR05M?@)s*=j0;ohui)dvngn*O>*rfx{fS6jf`kz%ji5UdK+t^{BZl~Ek^mVb7z3%M zNO)zt<~_*16%f#e@F3E2j=iM$;$pbl8Br1X7W3cg#TnzCrPciv0_$ps%K`7OPx{r1 zU&R~jn?rK?WW!v>NqZt~38xDYh54;L@R3I6i%FpKY|v}==|+;sW3S<@#c%(Gv}1l- zl8fKcvn=|lGiO%<^}iPdRVYJhbktW>RM9H=4N+UZ8);G6`eK*aA(-3nP4-zoV%;T_<+cVZU4 zgLrG<`%I*r;kzZ-0l;(WCymPCkSa?iYr#x<1px8$zL*DV+nC8lhbR6j8ksc#1q$Lu zrBhr23img~Uz6TNe_h%Aor!hi=nrj#V5g7EfWN3g)r)k&XUlOQ7S}wrvE1G0GgT2AhZl+-BIiTVHEh%Q>_U^c;-|KyFPUD zBY}5m%S>Nxa?+Ng`uodQ*STAtY?k%&m#MDkA{b_G?8~~bq7v++J&Zw%CP*Xp7B+yr zi_=!>FE$?bVA0HsXD)ZqSuieB|FH`Ceo~1E= zAEw7+KyOfSkOi_B6^9|CjrvndhYU`+6c(TUmU1bkPG_5iZ^iMQhFqtd7_#pYbhT84Y1az;<#+@s}Z47+|1`eX&tdUt%k|mzU6m>lb?B zp!ceAKuW!@Ol-4KK^Oas5%nYtDtRjhDt@R>DKYStfs2w=PFxqQU zG4ePGB3dpR+3%+}Y|uye%du#lR|F5B4$H@ZA~nz!`o?xG>C--dr2D{nL#AgQNICj( zEenW|O{t%O>|K!hN~BLgdQRi{=Y@7^dR7>})_na?NPr!y{g}1p#;Vjum~E(=1}M|6 zRgU-O%6hDl$<<@FncXNN%w3L<&odA8E*A3VVK;PnTe0g#9wCmk!0%6%*01#;x98@hD><@ zvonz`4R~=hi|lI0tmY7QjhoLs(P@Y1s>e7-4xjPa=vMd*SD#A zQdI@o8q`IoD)fMq;nInEOqXFeR$LZSg7Nrteh8oXA)G?Z{iU8fr&AN=vCXnQ%3M(f!lu)0nNX^OQZL;AbgC}Y2gIjJ8Ass$L3Xzu6eRti13f3tJ< z&+3rXLEWcUVK!KO0tO}%COi4^SZNAzBp2Oq4YS3PlXn&$Proh3qZ`dqNxN26#z%%Ln4?HJk7-$)Ys2C!43 zuNI^1(*J@00ln&5`w?d>rqU^)dz#@@_9&A>`>&W-KuJB@UF)9TG!c0lPp-Kx<<4kOdclEfas6hl6_i z)YHN|fRCu_Qx6G=`-Vtiid}a&Vet>(1{!>|qrzWdA3W+IK+&L{1S!cvRO=o&haIWi z)GkDJA+brpk*Z%*c>Mq_(G}EbcDv~y)RV1JQe~Mi<+1K)ICKx9HGh$Gd%)#@I)d%3mV+y#@1gelmprg(=mAh2%N0wb{PZDANYOL{OdrTn(Z zqX@6N{LyRp4JXQ$CSctSsNMDf+9}u7*n|5;EeCnDaGGV&zRe!0f@+1pqb+#!wJzCL zw+2l1gG1@t9~f-(z_Fj$lAr4`>IXe{y)fHeiX?HvU-!z}(E|ikHrK>PNb<>&s3Z&v z(lT0mJ@TmAFg6%+F&=ucA9q6HP~Tre!K`71o-R_gsXI2UGKyhN^EGu>FLhUMWO1)6 zJf1^#og40JOltzYJ50dLqegzCcK|jNq^KKA z8=ZzzfV*Q;@z*Xnj_isw#&;}b_)lWYv8iXMz)4;XOEF;UaYRaz57v`mrymH1W83i=z62er^{ja$`B1W!mJ4Ew83>D=I!i zkS*|IyzdW10I-cuuxAKrQM8p7EQFQ}sH34+qk%qhMW03y=CXa!x@vSOg*9~FR|3Nu zAa+jm^K?)7T44$p8$iBR@g0L+`qf)s+L;ar{C==LD@m%44kZ4QvARmA%fv2d*Ak|^ zC`>YuYU*uN&mtej-NY-%oPsAA3s%7-L9sxerA~09kQgekhXxwdQF^#WvHE1^Q~`bm zaZY%l4{$O7I9AQY=maoq3#pmkr|0~h#A(n^gtMV?5=NT!U&(6>6V+m*}JeR`Qq2NB5C9y#rAdYTF_dE`P6>8U3Opzk{KOfet@cO_TdA} z=@Ru9X6aJ%N8v{XgbacrzX~Dmng?t^+aSPq*b|d-*b@+9ZclQlgHU|lg`o!^N7_)F zpw8dhuoKNxW|CpOoF*-9hLVxlW*Y{!i3y=cW@GD~NN}5!*t)P5GmYDf9@v1*ku>;V z&$Z7o%SD0jktFml=Zi7kgk2l-&fil%(3teZyw^|_W5D2=KZLi}%=(%~NUrkLL4WI? zDa8Yc!&FG@UO2eGcb?ih@BC5J4buR=C+2U1+0Kg093Tn8Wjaf8z@Pm})8p10^jH+F zzu7vdBXBbt#B8m6=^X$%9@q@UbhCQd&(UvLtbSRv{(3{1SknqY@`}&~D#H5f)dbK7 zn(gd(;5Mo=^-C$$7OQWI)-N?Cmy{}vHm!&U)=1UYNTwyR`XxAX5xN@r=(>`8I0|k> z3}-IK5f%<%xm*e4 z2&GSyb_S#!+LbvNRQKoW7Y&_X9HTCPR)i#Tq$_Xrp#xN0@2W10hNd-DXV3Bqx*ocL zf9$&BP-`gK#*@>;wlAk~v`x(fc+tQ*iqJZu4Ts=F1B&=SY$g4Pw2Us1!3a*fURZJ5 zy03TJU=42p+D2yBxm}n}!@XFco`tw-e0Hh$2x^?(=;(W)31cJpSA89{2vIZ6bE{eS zF6Kc8N|Z$wceuiPu4FEtu0!35oYBA$j z2b?~GUUvW87${~v3gpo|S^3{3QuH(;H*0BrSd@bw=sz%{ar21KPsUAisdGR9jJ=_s zkt}JNd(c1H;Fg3>+ zz3?yOnM>*ZuNcyQ`nNgU^{R&5QtVHrbUh<#wl_6f>rKr&$g!GtdfS^kZ9%_L$-=5@ zU>l~pn!!eSNSTvGtp347pcw@r*Ly7K@4mKN$m4+CPY>y@_HTh;x`Tj}3XBTiebu>_ z7CcBP9F-UZX$>rxfT@dw8YJaC#@b}$m}^{NI6#n%j~IH@$$QY!`Zj8y(Y8^4Yg7rD z+qof$I9u_3^*!AJ^#H~CagB045GZx{?&#>JV~Z3nHNE{857mEAs=d@xz3K%Fa6o_| zC88+Q(ZdA;-cN?}4LG(P4I!3X&tIG`KBfc_y=PiqIy zxRst9L&Bm1%YiJYRq9mJ|HtqKj}~@T=|>B9EA^wU)vbPrM@uY#`b%Mkd@53>Ts?GCqm%N&#h9=Hz0 zq?M>teX3Cu>PSpme@(zs8}QC&;BhSIuW9l`o4kw}YTnJv@)HPS_10p0F_;sc8gXm* zp}3(9ff{a?>{qWrwev_LwGjlwycm;kOp~qk6)1xNIGqzXBi&nD@1KvF6@?qq<|gm> zj@l+ajw**K0PzR&Q*)q;h4(3Ev2p6r;A3U??~ii{wLm)H=6X&??0B;Z2!0@PwD(oK zjAsOTHHOaPP>Yuf@v?^JykjKs)dmLU!`F$ik?Y{KO`hg4x+(Om3_6&&m>^RhZ=c^_%749QD5~Zt3vXP_9r+vR3 z^;60mal5bRal0o?w{C0i0gvQOkJo>NDgZqU_<8L!ZU1rIQ4ND4X;6MM&gY_l)t*Ml z&^qxQO9>+1qt)&lSf{{amQ)*t(f;k@PC+kM03d~4w1|l{2m9vz(CMj*%JKK~tKqxD zS}#16oL=|1VJEa;=)%wZGo{|ik;#Y5INnuq)t)-kUEP9?i{-5nqi9pX!&V1c>Q|A) zicwRj=^>0Y2sy@m&@$gHf6QMOdA&q`<8=Y*>wpoZ*MHz?d5!bV^3~6kKj>~4<5~jW z;g{@R+HlzcEU=~zHU>V#?#^CLWfP-t+DscFuLB?Om6$gGrY|_JEKWv*HjCp1xDb0H zmjK>@VFQCg01fIk`m>iWf?}F8!UI{B|oPK=a!yX{#W=og@5q zrRKM{9r0T!Ktq`KE*5iv-vB@OZHvo#RfOM4ZT$AE=!Abezkyc5Z%2w|`ya_~k;Q&j z^Jw)F5G(ZSS2vfCR|cpr{1WZJQ&^}k;AQQ1H6L95V3W7yLrUpY<(ZBMz@R%*id#ZLrl~8)IVNm2KApjf11RTIdYc%aXf@BR{Lw zGVrQnrnCvA@TW(Wq#!aepzL z`sbG>j-l#_b5=u1{h>%IW7Ppf`J+K>nrt2oY^3(f0O0ua;e!cZ&s5lp#1k|S^b$

      5S#k(PQQ8@zAZtkdmG!Vl3doVe^0FgGxo%umTQ^*o3$ z+jNG#JFQya+etzFw93&gCVG(Rnl|>BmWwBs?Oj2(pS|7hjv!k$Ia-Unfx6WO3c+rF zim@6qY7m76??r<{JwE3H#6p|(p_AhI*_w0NnrS%Mo({5IcWAb3o8M&fE^mXR0e2Io zBgj_cXS224wHjGLf6Cm?8a(8o3dT?!e#ARZi`36(gF_ZjH_!0Vpic{`FzkdVdyCy5FIMRM3 zkRO?+&`JJU-LG>uxI+#dxTZCreSc!ctj@%l%^g~AL(T7kN%SYK_tlxg1>ZUYTY-;@ zfs}TL4hlk%yJqM;S}t!3-YT|}@i5=h;uEvCnn`9h|Hh1!`$9>QnkeDyghI#*Fh2zY z3w8`3${a)#8RprHdaS{9`mH3yK`G}OA_2kz=CfN_ z1>3ts$8fiQ&z`Grp2IveXX`a`zm(_KG3}Mvke3j`j27-T{1wTIUEyD_JvN1Qg=!=KpxX(@Bn#P~k)bou9gw8W~=ce+xTe*xD$GS8172|3(7 zehT?}lr(8x_H=v>fq`6XauTg_1OlufG3rhBHKG!;s_!)HMyS7~S8<*K^QT#x6Qk z@BM@!Re#97tKt7Shan62@47X>f0AOR{7{4rc~|8ndyyKsldD5cf z`CHPSPP$$`p_7jMS5RniMaBG-*yDtgCY}^NZqj6zr?l+&h&`2`bkdZQPCCJbo>);i z`A?XQ`7c{F)=Q8oIXi^OTP`=5KkD<1im;?R_My}#>ZPLNqr8N_w6M-(pB#sg^Lq^V zfqsLyx%f!|aR)qC2AM;wvRT|JA;>GO3omP7@))s^BVk|tL^KEz%w4@GRDF`o&E!^& zbC?XI>A>XUXoRkP1vebnQ7TQ5&L7HCTm{GfPpw`mu!;rvif&*ri^o%}ILZ-s{DyUy z9dnc?FDba48%X&T9cx0*&0Vd^TB1i2QgIZ`LU$UUc1gkVZ}~t`BPfN*)Je~<$&;!7 zFe78Wz2IitAmyS4*F<0GAT1VsVEV{B2nqh(E$h)f{4L%3(h>YE-RJx)(Tr5|p=9er zlGnCAR1h!EvZk?Kt*3iAAeSi{R<=!gi|v!1X;u0&+9T;`Ay$=q{9&F8BCG$-76Dvk z;E(Wt^st*YXTuwMO(T1=twa@VTW?{h;k4!n_0M9l(j2KgMJFwVRp4xCE9sWP6Od#Z zNtSY)M}jU(fQDyuJBLYVODjy8b+EnBNk7#?m|>|BGu`Rif89% zSU+i^oB`7xo-dzF56UN#yn8)N0@Mmdveia`zn%W5=Y8uf^1q~}DZ65mtq+G1)0?-m zgycjFyXw6&&hVuR4=X{O!_P-3ndR_dD)BiLi&90p>0vmdeVi#jVLp}UK~=ckRX80( z>W)ImE}J}7|2r=R!YKC>ByN8VQPR~Zfa~!wmyO$saEKR>%D8v zRqevouD)kkIMcCxMkpeyyYyy-a4(qWuIP_xst!i@>D3QusTY%tgC&W#duak&Db8^? z{LP)_)NMg#&au(~+m~=Us{+hr+9sUbAuLa}ZfcBtRyuhRPYvGPcdybk^`@HECR^89nze_dS={%@ps2f(t#@0RyAMed>x%_tbtGFm zEKSEDX|C>j3u&5{FpD|8YxI_%Wg`kZ#fjOzWG6b82ePL(-=uh^gm+yoo^jik+=_98 z1629eKJhHfDPvmM2QtCMta50WsSUgO*^E=L)%`(D{;vKC>m98EO+Ahb z=50WFj0E;jhq2or(4V7~HD-^LtfcW5huq28n2k%{4^{CPHREP!WVJQP;k#=RF^^6; zR9p8G)@n707C&XX_ZhZ(_nUOpm?jO|)E^a8d`dm6eH3}enXb7rqA}Cet%FD11AXU0 zh@_mGYn<|55y0U0x3 ze&6jIr|&>y2oO|eOyBjLD4Go`u&+oHdS73S?hif{`!Sb?-yvsohwg{h#D3i1{ms8Y z%1yAN?Rb}Z$o1zx>Jb8WIGW$=qdC4)=>|jdw-}oH-SCw$-Qc|`uN$(>{s`|I2gm&p z7!Svfw#)ivaL>@Fd*-Vvgd4GeB`GP{g?zK#Crn%vdZl<#=<|G@DO!YY<3*vH`FxYl zkNGSpSrl5#@6_<3P-xPT{t8?~p?-?SNkn`x!6k~CVDS^f`Z?~`6gkA_RX)WOGlS18 zJ{R-3l+RIeYX6<=zk49KZ|L9mz;B#UF-suSFsD+;RJbwMW`79B})Er6hq{H?cgn(h;xy|- zmh>L;%vy#0AbDmLPseRqCs@Qpk9@td>8#>Tz8`JgYsKZ0)BD7kssp2cKtrDS==Q^w zfulu%KWI9KUk|@7esvrfzZ5kNeks`Dmp#RgOU`vb#zC}AAZwq_n_L>0-Py;6U&8jW z`1ML2e&rnhe&X!c#jtB3T;pKaOfYPHfMI*~H+tVH&%-e>E_YGrYoM8%k!;Ks8JeA8 zXr}q

      rlYHRn>|K=w?VK>6qfKPhzcljNb>h_QNq^5~}f)tjf6V=btdIqIu@_h#CA z;Q&#n3rIpNTvsM@#mn9Vc^*>wAG*Y3KPc?Vika@o_ zg5d88L?02nHF!5zDEGwrxjZ-$KLyKMFrJ9f76uX0oE=G+D%(O35|U9HJ>XyOi+oOE z?q*p*6FjfMyTxT|4y_Uc3!D#?84W-~Lf218xT3VXeIHHLv$*8Jl)a`i3Ph|uCRxvD zGK_uRtJie9zM;|bVh;H0P7rwNKg4n3NaD1l83-#8aStqHBN^98g`8j3#)jO%T`2PT zkK2}I02;{Y`?pH1mf3n8J+@x1#+14O=C}eZ)z?l@s$wv-pSh;{8V7q8J0+}6Lx(5H8J^ zF;c_Ei%@$GBZqY9=P?^$Nd?uZe+*<5Be%VS*ylsXq&7yr^@ZH!}@VlVcW__yL+sft|f~gxV ze=*n83#1?J>Y+m+QzmEgox4pWKGT}L=Y?FCNX7hxpiEz-oOi3#Yq|=tjSS z{>pi5N`Rremn@&1&gcOl_E+c8;dd)sy;G2dclVBAD9syJ(a8r<$Vt{?V1j zLxw&ud~mYd#z!CEM!U~QwBG{UY^8!@4>Wim4vSFW9bUo7C-ohQpPy{qd&;sJtnwKi z?X~{*W+IhGcd2Qe1+EjqN}U?kB)duj6M3rAx_;+q*MCSkQ|44Kosnz7WM6H{Jv^z` zOP0SaeXkzS|M`V=efx8+>-`=NI`*(0&kcMfW9)YW(@-5nc#_1D>Ml+GHV|P$D z)&{aaA(=b6dq4=U?e}nA*EK!R=zZF8H>vg|)YNsIdi0!$e%C2D`J}!vkz-wl!o*$! zM%OXFUYMDVu9M5Ibr!gen;3@V1KH2G4w4VYbVlFSLH6*ZzO94wKnIFtuKdsy+?hj)^^^T3Tu%|BND-SbCOG+|B13Tz2F<7348;SykC4$#tdf0c z3NosJ=J2L*CxNUyjnb8-HBAq6-1}aDuX7rmN7_{ee0U&10C(xSljd+Ok`_GuHRx@HyQ4`8jya4yQ8aUA*MrKA1VLuasC+9 zt21mq3n~Aqcua8eNkw9=C>>jM^A5R-cp$TI%I;KjRa@(-`U<=lLR?lg@W9olyGaBG zbTnmuEGYYmys}RU%2sglNqy_8;5XZl-Z>4*l zPQF~SBD^O0bTNjQpJtJ-Vl;Axk(#zTuNV-8iQKhEanW_gn28z&XO>V%JE+0xK2$(- zW^XQM_SsByHGK454!Iv}^rpkgu>DH5ZV$Dx@g9;JKM zx3~rw7h#_x%*&p_>U_Y~Xb(K+lD513WcyW&<4nzuj(LdK5LFqReHee@xF&nGdN@9f zl-|fnCk9#N^OG*O&Zu@kBlcyd>r6j>RzA=%Wm-!5kFzgqDn$=0mBs}dnZZ;8=iqEk zdQyug_*co-Pu@)&_cqZf;rwZv_nVPdMzlj|J!Mhov{M&_cJrw_jiZt3MWK(pi8Bg5 z|9JYM(A9j3&%pU=&7#n6`2Am``x`#%`Fx8{s3=raR8VyIUt!_lVPiuI3s0k{6Zo9V z2SHZhxPJu&;|Avf3kv2?(^-73z@JAC*nYVx-@e1xgN6(i{k5Z+H=pf%cJSHx3Rd8U?DvP~MFN#&{U?q6xmLQJ?n3G~f}=?s0S>K%I%V zTJ5Gbdt-8+IW~8RpIZ(wT-iaEUS)|@W5KDx`&GylXsya+IjgxxX`U$D1nt|>S4B_D9>69=MZU3{7Cgb@`p7r77wzHY9$q%v zOKsDAsit)-{aap=Ok)ti#Q-q>i8Uw{{fBgHZ7TNvfhFkGwG?33VDR8`ti=zqcPO!i zA6Wm?_L6KJtf(gI;8OStvJYmWohX$(*x>z}F$gSqL`Mg0{i~8ww|5Fy5lWLN^Kjs_ z@)*Wi9+b#ac_%t;6_qwVP5;#P!mCt*yKGeUpTv%`{KHb%oDtvbVc;R$dc4(Xz{aXL z`*Sf>t!SI~AABxwbK0RS9mWz#^(l0x%knX%8j|1a&mFd~eU%D|0Q+{~#3h;7^3D&L z?%u9+^dW9?n+n}tW0gMbO10kmg#T=IjbNi91|F9;^lYPxV|V+_l#URJh^b`%HCZIHQ@%6OIw`-DppE$*wYN+N8x#g)7*jPr<&g5sKP-_L^sOB(c zQLHWis@+OOs71&8BEnE@DdMGTA=VmDEP`qBdR{y_%J+Jd@&Cj^u{K}|8UhtIyWyJU_a^4DE5qXC;1{NXm9r&L)D-_7+e zFA910o5%q+n=Qxy>Yz{?rxVuxPR;7M^8_P)8t2Dldc@CPkrB!65{m(P^IFbSId0|v z2EQ$l)v{Ud%GP3(u2l5R&&)|xHgnA(@>t1_c*o3BWxDKuVs^|aDpO3#z9WxSzLjEF zkEY{G(#pmj^ew~-*an5vmRP>dIU8>!I9uVOiKSG9=r3b#fLkt2SK8eQl$-CNERKG- z$LEeJsR5o_heCMUgCXlH!rWf3mfLoDfgZcL&nqg}k+2u`?Jn#s)z86}WrJ20}pdK!}5A zXn#t3#3;tOsLaSs2^&*n|Gq>{*B`wP7*ACEvCi`2L!pftHis|Cp<2Yr@DdU-&s>2X zi-UAA7FB~SZdRs@4E`mNcCF&M7{cqlkOO^l=bWMv0d~+|2jtIkAQSWR!TqBxhsDPN zODB!-(hVy7V9%K1Q#uYv-+ zLz4wcaUs9;L|wpd1K~3j-Xa<@!;d-7j}gsadZ|QiQnnO$FHnQzwi(%Xy&gD#35X`U zY9T<#H&j^#6?hvQAfon)Zn+BX=TQ~xC5pRKx+UDOfO+Nwx4O=<-B}f6uWP*kYPuRinf1jhsT}+ z@#k3B2}sd!UCDIS-!G;LP{`4S>&h+^WIxn*?egb2A8q}wxb`}ZaM4nVF_LTnr_meE zxbpBkRvUc4lm~Yn+16oYxV%J{Z0>(tM;r%VV#(!vzXCf_x6&<$=P;*=&UHm*j$XA8 zI3v7tFFt4&eQbwr+w0O5hqqn<_JWIwwx$QRyowmj0-j#Nupb<$WmPFJsU_|GPg_AF zMHuKf|2Mh2q`H2IK120N*xl+{$ttUmaNfLQBCw0LGn@=oQ+2J5JV-_E$Tb0BEvJZmS_MKf~XPRCMDRQVs~P`PctD+L3{ z!wcxXqc6qvW`9tM>&<>y;*c7^a8ay=GPn~~fE!%w;@Lb(N2h8Xj83=j86WEuW*0?g zZWJEth}WoU-xqBWC68v?5%UPk@khhrK49(j${P z;}@)%knAd0b563mVD`57uV&1jbLy!(Ry|)+xTSdhUA=j)vwP#;Kee-(8wH&o_~4B@ zj>6WsUtX+y@{V{c&EBuI^s)KheE*|0nRkcQym``rH523KP=~Xrfyy7gZNlt*%L@yC zF?)!o9-g{pZ%a&Onk4qj+ClY>dtA)@ZG{J)O>a4xDrmiihWZZAU(*}QA?j?MhH~R; zzqRdOMJzk9YU8;=n?0l87&m;Rq(D!lG?Ams!pgiEk zIWN!Ih*SHL+g6O%arhJ+cB(g>BO@iM*Bj558U4M&m**Wo;DIJ_PM@QPitr|}6Fccg`#jb><9Pi{|`T^D+|qRj(#wLX*V_p+!AfJm=kA^G5M+D5Nk4u zW7xGgUj5KLkCVK8G|S{V9*p=S(#A9F-n$c)#LpKtphN+A~fJ|NSfLbnxXGcx#Nz-HQf zNwL!Jb{A!SW$G}$`v2Se7Wk-&d;b9<#27UyR#dbH1c{o2@KBM5=B*;l~p{q**+ll=BKkKg=e<~Q%hnZZsDK9S(#%E)7!_QPiMwfgVjWeVzGKp9v8jaUI;VgpZ_bu-E=s1?2=zKezu?|Lm#$t6a z$m;>{y)0v^Y90rQ;ELND<|5iSzT5YfQ6;C999w)1ocL)h)_T*yeriIom> z`i{OUTOBman7>43eBiU*H)()1FXY&&Uc`P|3kI&yr(izS=V~LHQf-V0eb`u_VI)?J=$GGb$q1Zz`|04XhDhpb7uE)Tzs0AFaJv~#`M@ZjJi4P^LnDGi zDDP2{5T5Z}1gjOly+)m%R;dML=5>Z|S7JM$p=R~c5AI9q;n5PgW_2O_FjG6_B|f~# zsuvlqRrkGO((aevZ7~D++Qub^WCkKMPC(@+{#p3^>JEG%FE3zFT&zDJ9){Djml0$= z%tjRE44U?g86-~;BS^`-2fwn7Ft0R25E`}#j4$x^%0pKaBdNn5b?l9N|Mm9A_`+}# zzc4J>gdrtJ&T^M4_bL4!AP}R);}vQnsuyAqY!axkE2wx> z4N(DS%w~3m)AHaUre!13!hP(03DR;W>Qi`fq|$=pwRui11e<9g%j&*Ezf)=1Cr{uG zK6oRJVaWrpyVl}H7d!!ur11W=5%QxI4ONUXM>dXHiwjgRjs=aGT;o^5u;v_1!gnMTQ*);>Nd<*vL0OnO|GEqwg)mO?^85kGW|04-{)- ze1%CL`elqIVxSAH47kL-6wpXUIEpk7BGRyTKmW z=%eX6G_AhJ7=8Q|Z4$Q6d3gw@<%JyBp3AY|v~&CL8#+f0D69K!M9+i{?jbs@n!#VR z?mJ`*GZB(Gu>4%#MZb{)OF6XRgu4GONrY!M*b4A4welXC;@ku$m7IlXeXHP;yNQ+{ zj5szhj&gu%Jieg<1A~X67!)Z69E+JWG9KrW!MU_HRtn5PGWyUfj2wDI_^G zJ9FIwV9nf}f&;d4h=%6(2nVlxNAG*GJH|)=$+Dv{x7>k6KYaWTr9qP8YS7TpwYD#( z;o-4^zj3n3Qb`8E)2|PnV~879<;d~$a5d`V*YQWCC=P}>9pc+%SodIiC*;B_BY>O# z`E??46~}O}M(*sl1W|INGxK&XD1?K_iVDUM@PC5T=CA>mFK@wI6fz4FAcMaPI)21;=IT43bDqlP)F`l6ZLaQn^!N0E-D6x@d(S?Z z-^M8%5o|O*iR{D0m68Yo=((cg&=5Wz!9{9pXk&&U`;TLj(6980GwyjV0QbIjZ0vW0A#V7hl(5 zvU?26U_tD%WuhPBtU?ZGOQno5(HZke;I$ZwWS;qC=HOKy&IsZ=PfTYpsXp_`;py0h zzzW(ioQFW|div<#gINc+Sj`{oKT*49rb@PdI6rdCC~6qBqb8#DW3yrG@f~3_)Psj; zZ~48L?1zsX{FC!rmV#D)tTXLi7TxN;@xM}K>@Ye`HN6dGEIhUEud-aEq3Eh@CCqHU z=-g`Ig6fM|u8_UIaopjJmnAcD!uLXlDYoIPHvEwEFeZ3?6D2WDQDLDBvPJ#Jp$5!u z4)%7Ngx)xE+0e7Y|SR_DU%0IY_>YTv>8Zfr8*T=WV2J==F5URQ?{5zXI*z@v&+0H(mZ_ z%HJ&cJ6!&bkiR44uO@%T$lq-FnKlfOavyHx(JkiQ-BceVUoBY)S)-}Ul$gZ$kne>chB&GL7P z{M{;lx5?k_@^^>)?UKJc#03eYTeX+0$Fu-?x*&Bsog;>zB7ca_93*dN$oM({z__Xw0%x$_fRA|rPfK? zN2PWhwU0>cc51&Nwfm@DFSSRhyy_F9Y8_I$joRy_b`7;vQhS8j zVyWFr?G&k+Z3nf#klIFSpOV@w)b5blL)3mpYIjq6ztm3t7}|TJHjCOdQoDlM zTcma#wSKAHMQxkZZl<Uf6ro{h!8#_C54k1AuNJeL8J}v<0 z4?){C@+_q7(wE}X*0qH$nPHdC&R&+i@4X05`|0!^be1G{c6QT!Eo>EOht#sU=nv6X z*4gm&M6|C6gU(J#>3tHE(@FW&Xi6++u6lZS|FECI-9h)8qTM??H?Ulu2HVcgE@}m} zl{@>7zCbI%g7&u5@)n=|H>6gk>9$HyqxUCH6-8 z4$yaXk*F??XzlH6S!FwZwrs~~L^}?tF6i%n22Hutr}gjqIU0Rhr}e+}Q}8=Nera+1 zqGP*f554p^_TLBJUD~(#P?{`W6V?GD}|DMc0J`E`uqE|PpTnuPwp!NPTjj=^Y075>e1A3g%^b#d;UorlT)Agjn~ zl1zvuA^&Ogzm1N=qaDG&Yx4Q9KL+oH0F=D9JOM9GI=votk_4(fyP4swr~A{F;)psc zyZd|SzMk$o61sQO{V?4(ByfMX|H9|sK5``7g9+U~V*c6aUKi)?JRj@b&i%3Sm!GC6z46RKquewikIgI)Bgtge+>}~`-s+1KI2hXRC|8u`Kb@T`SYBC9AhqWrC8XS|6-y&yMT47{*1Uf2xWXiVs5dz2r_XBi`F^mjuM zkFFymyCaG$90=+E7@_~ok3m1?V$ffooc;%(@2Vitt2>Ar{VTN1io3){|4H{10|QkzX}HhsA@ z`0~X0GDBy3e7JuRx|Obtq_o9R()~KRchh}LLia1^-beSeIQLHY|MrjIo;3>Yy{Ng7 zu&G;E?#xC%Vss|lt9}P0GV`atEZ?e|<`%LZh{?|ASHp61X2=6NgySGlmt=|NJ$_ifs_PN68QU)0M56sJk*Uf9(*9& z`O^X{BtD)GQx{|T{`VG&$5%9ziM|UTl3&2B+(pW1hx%qciWQWEcix?lUkCa9^1*0+ zN4Niv`K>0un`8KG9f;rKz4Y?k?_fc!;BMTDdHN$<3`hG)0rDBtkKuQ8B38W;Dl0ZrVDG8(`kdi=30x1ck zB#@FoN&?C4rO#QW8i>ASHp61X2=6NgySGlmt=|NJ$_i zf&Xg>;OtIHr6iD&KuQ8B38W;Dl0ZrVDG8(`kdi=30{_qwn0RKZjS1lM8LfcckB5rh zx6`Bf`SaeCNIyOz|`O*d(R8FmH56@|66W=K}E z5%Gw-5pjeU)21nVZPcilGYv}6g3y%WlAsVJe!tg`$lE>Rf|}Q-d$h3ulhzOS zK`h?@?bOpUPKWmL@j}>}TO4|8o71&$k-OdF_1)wT1Vf9LEM2y|u&CHpQaY>r3)fXt zR?V)SQ&U@4-!OOH_4AwZCrq3)`O2%Vo^p+hX85OenI~vps_Be|=JIIzQlDQB1YBN^ zK{B_lRE*JtDE4|Bt{|-KZVQdJ#1(XULo()md(i72#d>6_Q8R>?0cf!MUG`?Tu8lEV z>~6nqcP!I__C>m9lwnuyS!{Q^9NJ=&)?;ti6(iHl71R+3;-Cd&tj%yrYHDWJOx0@j z7U}5m22mKi0o|c^7kfi)hem5D;8qu+GFo{aohQWH!kVh`sut?N_<Pshu$1ALWxAT+3r9i5V(Pc$q9`vSiqrkaCLR0`(08^d0{OFG#zW2LR43qrT znl=v(d%CUiIlsMV5*}`gS7UubFv%r=X;&7BZ=xLUL3#f#=&v4MB;Ep0wc6bQ(gpn? zDIpXdHuX`ty#F}9dCM&l-y382$r5GaysIK+vs@{^K5sy_tdhSIv>Oq&>32WOy-4>X zNdLQt%hw^FTl0#<>A)Mt6^TCrUypeH8R2~b_jhuNMB(Ick|oc~L1p3v#6JTt6Yk{k zA!wfgm^^NSpGPk#5;nwh1?>MkF`7qSV{|pivsA~t#z>KbK3se@A>3(bAMQdtzYX5Y z!E*`B{fNUKVK;qjB#eEa^&?y>EhC>kxJ=v$TB zKw55spH*-l1X;Za`TPKBKQ+Hd?1cSl$jVeXX=UOpWoCQk@&=lk?E!u2RNdR!>|H`P!pq_#Abx?9O8W`WJ|Rl<|!x}rWtouyAIGlhV*SzWvJEb$CyYPHAAba zuc$C+T79TD!B)uzB`eBN)r%4uxOP%yb+7mHa!RlO2$^I%iFyUot&HMvd1;% zkGsqWTA0>mY%Z50f_S=C4i^+(lf?AnXl`@p?y#6dQ&Gk2;_I5~uCFd>Dz9y7D6A;A zW&37foRfR4rwH;{R3FgI2p}FUf%YEeovD~l+9~&(Z<OfFwMno7e-7%l(%`jezcOsHFctjWxy>&sb81vrX2T9)!OxT zuYZ}P1WnagqLg(r<)#If`Sd(MUD z)w)01htlr1*@Jd#9O|69X2cTW%wIazr!BDu%v{0nxtRsQ)#icLk1;S}7|78=0bOfS z)=e1yv8@S9)Qp7?h2b{H=!-FK)-_CNJbD{irp1X12fSPJ-LL0bid0+?IWg^tiwW{L zrVOx&P|1kRe~XidZAzFc;dVv&H))dPE&1hMdvf_|E37OmE19a27ZzEG*<*3arb?nK5NSQ+DBhAb z(yM}D_%NG-Y{uW=1T%6B7%(g3LXppCS|a2^(c4_Dt-4?Lw4jm?NI$!I zA(jXEOi8W8IEhG^|HC11y1>x!`a~DOWaR&w7c~!G;8LlH!%=4`{j98ihz>13gun zJ~nV|c-3ia-o$xeEo_iY3oD4~iru<>Q9u>GI&TokjWm@3_PlJqqk3M<%h(8`1Hojk z8I1^9az{eSuxBnn(ZC8PJBmn0o;}*zig8R(YY%~Avo320$l39a&e8JCekOag>?^or z6DGBz>|n^s3OR9fPMB2K?Cn_m05jQS86A?-)#5y1w`8e<5S3s%WwefFYr=kw>rIhX z1AUv>i^X(q$@{d=#y4@>XB|d!zVpysHt{5Y%IndWx`M_)v59S*8Z(ma?E7qD1b~WW z;*Y;+m|p;XRq3tng%23+w`{hFI{~Jm|FVZ|q7q=zdmgcgWdPHhxy>fd2bkusL;r{} zYa;s3DYDgHw0&aJEbIXc^tW2X|3%ZU92EJ(9|6!{xG=;Z!P{~81`Xz-A< zQ-%&pKQ-gD%+t>}GwZCg&l!I1=gu2({sk9~yy)W3YokVAGG^?hK84&$xDGfw4+lmSCCqi;Xwj*t8(|`tr>yZn^bKGEe@uekzKa>dGriBs=J_nqN{= zUTkoOxpH<@NnK&h^`?6nN0wD6ISj_M}tI`>qSr6#7zK}(UILYF&aSq)TeEt0FY7<3B=bgvmR#0)X;cJ z+WarnM6ojbH%Oe^pIMWLZ?pUj#yZN${F(l>h#>xDb@BQ7uhkaEr~lL0oTvt{tPRJX zS>|Yp=(G5A`=?N`^e5NzM5wYvL~rN@S(mW>C2N5z&?48T*v({zJOR0UaaneYc7-XJh6NpWqy}6!O6Y>OI?Ybr>R>u55?j@6^5VI3>laYN_4qZ7?H;2Vo0;d(@ z?!wR-+niy)^j{maV~I{p5=e;X`$O38w2&3bohi(THMB%mG zv?DUu!^b$C&UuQsusGyFGw4LJYwJ-jKfqi$3(D z8$oh=TAJ)W>^x#^m=j5?&eIRrmtuiPUux$}aH^(doPKJH)9%+=v>95qOS=?H9Hpg~ zP0KjF*lG8)$z2}u<(e`k9x7hTFcHCyu^jAU8j9&91HTEInXce6GcMRs54o|Pg((=; zRomrWG5O?0iIU>{REqNhxhTMJN@}a6m>3hLRrkA>X#x9Uu2^uF6-yXeYsh14kt4_5 zNPit=i~kTeUqNoyjF^%iNf={`FNcnk5`Hk0V#RDBOw{7_EH*O7aI<()({?S|vt4tj zSv&UXRY(yg{{y+8jOW%x3VErqzN=xiO3TIMHcGCnKaag+6ORL^Xl~nU6N>;;8K+lz z9U+v7Q>77RuBaI%bM4to7E311ofxZ@_F%^8oP(Pl;eDLUlyIexTj@rfv15%Bs~{{c z;X@DOi~#Xl7_meKHS5d@Sx3wh7lswifgoxQbBEsWK8|_%DZCivNS)D8Q78}CxXaw8 z`>RnVkhdyk*Xe$b?w&N!Y@jNlTaT!g!)!7vTSJmdRGXnhV{RT5V+EWoh1pKX6&N-T z6o9pLQ1Kx$_?bBp!w~MSNmH(B#M+u3Fq+^M<91tMl{cRu6+&lSe+%7dRI{ zVdKHK6e=AQVwgxz2TI2ujd3blctl9J@n@{)WP3txH?-If!0wmPb7F-iZnLfsCv*Jr z_z$bT?jU2i5(Yfi?)RYh$gr?a9n#j^ zR-^m8{vggFMIQ;^E=2ikquZ5HkUu!AgcDWhlI>Wx)FPaX*iY5uQr=kXf5^pr^Q4*K ze~DVeDTEOf&L63bLR5y2)HE1JYKpJ8LX%Y)oSOZ1|FTFN4C}F2*2};cgy(XwJQqmx zmywapW+0%|=s|4Pp?=CUC}!8{b{X5h<|14q2$7+hQVn()vTdXedfB8ZJp^A8K6hqH z6*L*_pj{p;&td32tWRJ!XCNIW@ z0ghl$7>cl&sJk5jELf_5$HV~k9jTHOJ&&Ngw0&om&ST(dKc zO)-1dGRl@{8Q~iBsR{eXrax@=px?i0vN=YTW@V83$QCz4HixZ8{(st&C5 zNppDsMU3a?y#7+%j{OWhre7(ksVb?M#A6FWzal?BA2<+n=$^$!n+-iylNZaF*qdOj z;^e}vfVpPLe!QcpM0^=QMYFb`L|h7>@~d&MaoAB>iPKT`>MCZ})*443X%w|M3}`V5 z+w981@+zy1;kV|h{E63`o{?*eqcFrY>jBE6hvP5=h)$b57YiUy2QEfuulsqt(i|H` zDr_E>x->Ob3UOhd>ck7%N5M~3DzMNP9JDnKs?y4YfJ7fX|Nhi{ax~2#)TBJGB)<`xwu&bgF{KwjDdZ?Jf_eN{|btI%roz9yv$A zV0KyF-=u6pKKWAi3CkMlzsv9SaF@rDPWq9uPv{5DhjEhE;zO3n{D~|ht!^)hEUKy; zN6I1&8;9X_!SQE_=fI_AE5 z3(i@fF|uPU!kx7Y8~{Slks=Ut%tggM8Wlyy-i-7pld2GXa7)O~39-@iVtQ%rZ5uuJ z013_r&z+(ZjDm@BdQu4ni=+ugMt}MQBVp#+N;qX|yb;c_aO#bI=!&)yF#$luHj)c6 zW*dfARUfLvrKlW$O+*TrX1E@06@EOeHd^`2){;O1A2|%n?cnZem zR1+p%Df`sZ4BBSeEd@ToJh2nsu zt&OA2Flc4Ib(6NXDrwp>4O&Zli$xdw6c<*-^UXqj=Ue4aCbogLtgbSSHq)TB@U0b_ z$ahwJUStdhUscWw`4)?Hq^&8B=WEbf_*RG&pslEn&x?!^;2V{1g(3*r>I7*!btGt8 z@-6bM6%NqOFDw<4CmC5}mh}vSR?63iuT4~d7UQ_M_-1H0D;p)V22lXohLQyG9Ru1Z zIm{N5L5q#Zc)r=7jY?aM$N_D2NliR$4rp7f`Bp15(BeCxcv@8JNm21F6~jSWQd}QT zI~lZ5@vRVT2bu8N&*B?(h{;e)b}HWI3B}}i3PP<_sg#sigCQUz1bzpZiDX8mxpvW z4K^=^WSC}qFa`I8nlaNbq*{xG5vNwz>W3R`s_mHRL01u4s<$^|o@^|8;QK9%3$z+V zg*gt^5tn0)7#+W4R2IUh0c-PQQVbprXli|Sk1OEBv=ozg^tDd4La!}?TzS*GK?eb9wCZ!cbiLn@KK4uc8fR6Tly)o2XNAqandp2GqB08yanl3 zaa4Ml^in?;PULxFPYZ%Bb$P;c&@-`2;&Xikt+v{TqRfLMHmS?yy_bru4lO%n3Ph2L_x0ZIlb<%eH$W$b7B~D8u_oIjGBI0mg_7s!ektw!nu%k z-He_%@IL$Tda+yK9SU!exKL~auBs>!>!i6@tO1@sYnE6oak*FuTs#Z?l(Mf-=E=%^ zq%_xwOknak`e!4&K8Xv(K8Y*DE{Ti9Hi?VGCW*_%8i~IkmP$NdG)i16rb}EWawIMj zBPFgEnF=3$k7K$b(JOJW*duX;*eP+X*b2LF%P(;s$9$hF0Vs) zz&J%NvK7vfxJn#3jB;I9Bn|+V)YgjK5*LXsi7UhwiD!#-5*G`%#5OTc;!;r{af!&5 zxJ(R}c$N?nSBgU@=Nvojlek=TOI#?nNjzU{lDI~!mbhN{B)(qElej_HfNL8{#dKg> z3C3x(uPT%Ehxwi_&GoWu|1Ew(0Xx=nQ3p{c0!v&0*2e(aM6_kO*yahBU#z*Xeapp` zTeyE<{7n0hrQb2_j5?-;>sZ)c^*dp+rT>c98GVX14E9B`r=um5Ny~3*{A_Toc5L(6 z5m@X{Zyh1OU2e>oe$iQm`yeZ=j!CWEy*S)&n)H}d#@V6KQvIYqs-HCdw8(xiT*brj zZn5;cVOrH^o91S(+qGErZKfTMxSD-92(j*TK^FnC?a&6X{c|yxCt^%?mLyG6z7We-}Scf-=o0)vo4d-Hf)y-pEFi4vE7y zzVsTVfdHd;slG&dbl}r1XKq9!?0Z;9f|1dP^lRF4)!2^0q=Jxr73l*moK|pQ`@k5s zh3(l7s&3Gn6xIxi!~*@DIgV4M)Qq#Gc$s}7J`4*Nxv(7rsS20hs;F{3ySQ2u z0c#=)?-v^ z)z85&Vi~uUmvV$^%u=2ZR7fvbDhHRaqbxyU zSQO$GjOudiMyiZ!o!YoKaCLrj$c4SG#!2~CUybki8}X$@v)e(`81T0=S`VbF2%MC^ z*bhRLU*wGv|6G^H;a!5W0bJmeu5jZfo$(onCGTWnKmm7tfLAE@X{x=xkk4QWd&ACP zDJ|7bUy;`kh42Q@L$`Y6YTc|^Q`_68%I;e@pmMZID2L}G#v`j(eR7^FNEBZ=@+n((aez+)};S zA5uHNU$A>jEyF|IT`a(#d@-kMBQJmlewUFCc?kFy@F!}yZ|5-Pwxxc|2oP$WGvp5_ zyScgpmCrELp$k;js81fLt;Km4`T-vS|MV;1M}U?z0`A!J^S4^pMzcqoCvGZ>ifc6< z(87Kg*2)9iz2M%tkDIsH!@!vl<=6U+2j!7HdcN+*-3(~HFjqEC5|~TwC-zPMCm9DU zNhgoR$?!2gjKY?SJd}rX0hQI2OcpwW*hC>+_VGTn!{dEwnkLtWn+KN)CxB{66WGM8 zAM0n7ibVh_djj|8vP#7Z0IC)zzpgPDP$&1JVL#!LIaOGq11_&3C9zH7T4|4bM0O%q zk-5lYWHoaf<<#y$Q9_AA!9w{$F+*uXp+nh25kyI3fs9eXf)i%U$mhqbrg`Fw854M{#WcfxLX10B)#4TVspm=|4*>P|l$DCF z1E>(Ia4bp-D{76NES^WoCMAJ?W(m~P+G=0R-E&~i_Ge~oe`4;k4Zm}}bOjQOJ7Rd+ zC(wxAn8$Q5D{E`SU>zrP+uN0fALTb<`ovqE^hWb)q(*rxDQwL1Ipn6*KeG`3hiN-D zvn=eB?NitQ&4_|B9@&#B*3AL8!AaaU;_jLifCT`n8Un+P7(2R?*DhtB$REQwoWLLB zcTCw&A0R&2qAY2AY;cQJj03#_OoEpHi4Sjtk(HERJj7mMjk&ahFa3U<|;jn1@Sa?C4HjYm|K=e+*|w0)LEO zx3Z57i}5~`zz@@VMA>hLo+?fLMlg;0;AWw{DW%AA&8e;Q2 zi2H-)0j2{qfK`$IdW)SI9{Fui_SX2u^0vk|*3BBVmBEp?UnrI*(=`S5v5I_b%6-HblYlRI9Zp~`nWuhI5;zG7%*S0|gp^82ASD4M0oI39ok$f2B?0!+OK&jd zuRdT6_bRdvUwTIT_<>$Xzg^LH0dow|4NO0~f#vuXm~(>P1D^u?7VuEu_Y^*+@UR<8 z#i_7A8<_4F0iOn(4UD6lViNG_z}Etw0bCADx;kLaVVabAA@JEShk(xk?f@PRycYOe z;QN5-?*ZWRfVV00kAcsJ`59$?0r*0g_bcji9cBJd;j|{m3HE0Kj{?2`cr@@> z;7fq>mHRY>OBJ32JPz)S%G?IbPnP`3d=NyQFsS17h#`L=3fBw z;PS7Pxd(VM%mor} z{q$JEn0)pC@@Y2YDASjOjyyN3bu#j%*__)`PqlLZcgkc7c&|>tf0xDXzzKNtCE<~N zj*&jbO+$K!uTc0ZV1|FK!sWn>dmS*_peAL%5SaPM1B*F|AG8S-`ELe2)%SoYyB{e& zPXjZ5s7y>f<(Kmb_UyM8$?zEmhEKn{5FW#3TeJas+U-jc2ZnuEg?&_EkSA2VPsNwv z{Na)Engu<>DgaKT7?##zq%)B_?VkS`?uP~@P|m~~R2WSE3Khnd1YwYWf#Tl`Ouy~G zlm-1BNZ<$7Qqk{bMN5Ap&P|?%ZVO$(0CYVTI_Cg%!ePi{G%&-?1vcZnK8Zg@nsHvB zXz6cH5?a!ASm=%nK-X=d8~M59G7x&Cp4$eX(=2rE0q6=WbQ=bsTVSEvIRM>e3tjI3 zbln!Z%<~ebm$Ek3^(jl5Ic~Vna%VZ$&Z$iIZ0M(``?+b)HE=4c`#YnHq#es<5MkE= zCR^grq{h!1lpX!{SmL|WLMs`m9~nk#B!7AbpwldLnIn>?pL+^a*7(1RJKU)l|H<$h z8~^`@`_-xH6kqx+u!OfFNqD4NV4>SG03G?0o|tuj%EX4r_-7(m)F0y^y13l?8&rdEV#$~-F?hBI8l5V?&Zp{F62r`^T>P__@%OYuF{0ZIQ z!}v0u+o7l3-UPfEKAfcLK|HKx(|*;>27mG(KVt0ygFoey4n6JiffFgN15%m1S!c%K zzJDt6bHbmsyf0PnIjm9q=r5}+QjWJJ35Rs~7P@@{(D^_|wN%kF9>)ft-)!NVb7A6i zGW>4ES29oV^ZvcXQdU-3y1~zE=j))S+lmBXkbln!`0xKlJpVlw{yP-^14;M`XGG4! zM34zhyGZ$Ad>u*rFpTwzj&a>E0Nr*A-Od5%dO%0j zX9>S|0Q#(j2K@+Nv;7!;apE*Gz6FYo@wE*=$2gFl*s6y0#kXB6z{d>R4Ly0UOTgRY zXJRYghJ*2Z_gVPvQha+qCEo|$j^~^6`AB?6LeKb42aZ*Y=X#60f(dBohjiO5bejgC z+iRiQm4uEwxfe!7-ozZ2jK{k#rs5tOmDT-P^+pKGd8UTFQ1G|5)BDx9CI@b&-@}Lx zc^p-E$ReX0kw=}Plf*GU^pme>DZlkeXh~OXq3are&S#J9?+5g9YxPNKW_kf%^hiT*9<^c4LT|pFlBU`@<-WjPvVdCjLUB2w_EvPoDL=N zLweC}gq5!F7=?3y&31F-=)|%z!(5KIQj)V9MYVVERARW2B37=R+spl@D5~DZq?JF)(>m0h8DDz?2brO}QkwjNmM| z_e&*Z4$QGpsT%)~=W6)3*11RUb`RB-6Y!Npsh^YtQW8i>ASHp61X2=6NgySGlmt=| zNJ$_i0Vx3w-pTw|SNR?Io&>NS&<#kY_O686ZOPq}`TJ+IFZdGV1?T|?$R!_84e$Zh z1GWQFDkXuG1R@f65$jfyuwH!s=v13asf@sT>M50yKuQ8Q!=~1|Q?f`&;9p$==UkEM z7yi}D0MkF~r^Xy2Z)RbASvDOwL?v~s?8M)6xfU?#6~1043iI@WZ@GnpMpzN zzBIJrd5vI!aUD=>kk)wfIk}d_!6v>NGY}opVo(;?Y_nnrt^8(=X)5;ynhOS^ad`uA z;YIT>WC^;HPJbf*xU!L%and|kge`pP(Q~=Kc*Z>89>3}JK$$(g84YR4j+k&eB6P6S! z9m_u6+w-=>tVlJ*opMVG6wd%Yt>@UwT z#M;rk4r4ZJ+?hd5yk#vxJHm9)-4$ssrRLE!m_ zk6(M?r^BDbw_1R7fB+m-?IcJhA$~~1oT$b zm~DKMKs!x0+=!!IS~V}buy`B{J=2g((VdV|DGB_eNTBMif+yGp6srgiRKBfgGU=^$ z{}=kdmw0^Ew7Y*{^gVO1zSao+tXXB^*H~k#R{ELaibR3Z|1zgYBpm8 zi&Z_pEER9OVDM(%vi-E?u?9Z`D%x9N!7FH=e^n}aUoI6}0385RIe&xx5-rs8hqQA?cUvJTW)uO-KqQA$Y=efXP0QTeS00Swew?lRKl*N`F$P?HH%wwRKc_c8uOFr@kF%L~Q@}*zmGXdnwvOqh^g)$+~eiVTAS1NO%GP6CPdo_T5 zY5=6;#k<6F0px!@fML4vI=ZLMlHB)*=?f~<468z zXdZajz$?Gi!=fPyZtakGE9jqo=+%cb!#VDEWx{}Je4da(Dw3&fib z_C5H;C=2f;H#W8(-B#)2j<#ofuF5%Kks}e29BeZ#82UM{;5dG$MnJ9Y4-8 z#k?p097jAmfLEd}vwTyS8sJL+t6D$1Od9i#mWmueHed`u1B?WW0AvBu0mnWl6^8-6 zfCGTNfIWcSfL(xYz)nCHUjg7U<+U~U;|(cpaZZJKzbj*30MHA1Iz+U2jl~C z0NH?%fHc6-zn~3bdaa2VK;MCiLE6Lb8Q&dL*VYX{ePX9-+h_B?w7N`m0ZydY2Aeci zz18kw7$`6&j(Zi+5zN4KT`p0N0tEY1MC320{Al^3v}ZF zl>j&3glhBPf-ueQQzH7mrib+fn=-@t>Sxak>&F~9+thd5xAAkPUfcQP`G!92spl{J z%4F&vcze%_7e4b!Re^T+{>OY*Z2ga)ebZI2_lA$hzInk{W}km>Rl!a7{r2ACGfwHe z><9N3eE8I6+uJM8zH8-ej~6^O{nwAYbiDlYOP_hA!29!_b^RUBm;L0Pt%W;pUsONt zn$8b=Ju8ZKzV?+reE7|e4&M6RImHjWwfIka{(RZ^)hjQxWoMoD-J{>n`qR&L{nd8x z+xy=C;Na_DSbpzICHkJ{zIw(Z-`{-xpB^ebT|X}~wDQZL#m~>GoLAKQ?R&17c4gNO z->$9v_M11%_}LB9*4}^j{Npz~a`*wQyYAt2SKD9yc6n`e^1&GctbrkdHq{XU=y_`{V4+uX)a1 z_1`m}eI-Xf|BZR){rKhgX6`-nlGSAwmTmjlx8Ipr@W_u`?jM};)2qLHaOR{LJByaT z`Rff&{pLSsKJ)R%FWOh1wPertdS{NW_~Pr8yPn)|?_1B$yn9#ew2?%U7( z$ToA#%!m80d3fA^eQE3EGjG}UK<`e+iqgHW)nD6k^Uyt))Gb+c{HrTxeD$wW&tKj$ zws=DKw&|npczMcgWnb$OAOCjRfi?5eFMPD`PhWmy$h4oYE-4!Jqpydq{(aumNjHuB z)g`~5_)huy`PV%1Z%=m5ef8nn9(nMwiElW6c-FUTzGb`q$5}aJ%X@RLnmoJq`!6mU zd)M`8Te|=7%q<`F{ruwl|8vd!xnG_BRQ0OSBdV^`n?GK4*AIqnxaF+g+&_Hl#b51C zd+m|^><&{ZC4rO#QW8i>ASHp61X2=6NgySGlmz~U63Fhrf{{{xT{BGVUKuf)_QcLr z!^EwCI{}*j+W8N&z%Ky50lWi9 zyM34#377~d0Ne;z2v`AF57-3wE}#qWbHF}8FF<^Gn79Bi5l{hW1uO-88L$!XL%=hD z{eX7>>HjuNi~w8?m=34_+z9Xiz6{s|_&(rCz>9#l07n5sA)C(uMg#HzQvs!bMt}#< z0k|9RAYdopML-YWZ>3WC^Y@)U|2AZ<%b^$Jj7puiGUN`rik1a+@r%JVL3h1p37$a{ z-xyqDcLnfnn>vVtdjbcS2a4>Dxp*K~uMYafWrn#1Z_d#uJ~tT8&-u(}@vycy2(O?O zd)x8Qq=Rql6^cL7ra|`yaIlB(zb&EJc=K)+h}<9%KM*BLUFL&qV$tAm?CQK`l*QD+ z6~&cyU#)!Q3VvMV!*|%^i6X3iS>5O21|`1JR$R^Z+r;c4b$I&{PX!|pes7D;H`k`h zn1=j#z%m^2M%s~r?*K}w0A4?94z(5GV96q!1Q}f6wIf}4veUl|ad?#UwLyoG5Zsb8 zL<)*8+K7t>mwWI48IDja(j9oQ%CEO0B&@;?o*fGMLP5zloSM;A>T*w*I>ZnRX_0Fc z-d#kvc|tzAr-Gd}1TXW|dz@05j&SCI9^s2jnM0+1T^HgEQj$-#7jKa91-UmxsXG*K z(yl1f+KOz#eu4B+$kQJpOX_QM!;~RSHXR3TyvszoG#RfH3bA-dg9~q(+TAj!fN3&3 z;;o6K5fpFZl{a0tyiRCHB~XZ!N2EU9LA;a1$6PTxu@97o^O$x+V)FGbA#NlsQ(lJy zA>s!#;Tb@r!N)>VD84pWK4pj}*IT`OIkiQX9wD}0leW&)vPf~dmgZukEY&$tRvhIH zlt_!MDt55OODG6u8J<;bufr*!!hnncbmCH@ZWZI;m8@Gol$5f(Glt0b$D(bJs;l8g z);^r;v7^*oX__S$ybp<$TZCu08p#q5%hxB3C>Rb9wfG(B`0k-iZ?&U!s3$z9FYDILCWRE15U&r0oQu7lfY+@T2mNkC!Zz)+iAV@i9m2SjcpS4^jqvxIT;_W{I#W$v^0~;#I0e=2!)c~)O};YP w2Hb`k+!nk1UJu)V2D}|>Z)QruFLXNG+{8<%lmt=|NJ$_ifs_RPg(UF*0TGwV1ONa4 diff --git a/sourcehook/generate/shworker/Makefile b/sourcehook/generate/shworker/Makefile deleted file mode 100644 index 86ac5bf..0000000 --- a/sourcehook/generate/shworker/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -default: shworker - -bin: - mkdir bin - -fd_hopter.o: fd_hopter.cpp bin - gcc -fPIC -O2 -o bin/$@ -c $< - -main.o: shworker.cpp bin - gcc -fPIC -O2 -o bin/$@ -c $< - -shworker: fd_hopter.o main.o bin - gcc -ldl -lstdc++ bin/fd_hopter.o bin/main.o -o bin/shworker.bin diff --git a/sourcehook/generate/shworker/fd_hopter.cpp b/sourcehook/generate/shworker/fd_hopter.cpp deleted file mode 100644 index 7fc149d..0000000 --- a/sourcehook/generate/shworker/fd_hopter.cpp +++ /dev/null @@ -1,370 +0,0 @@ -// From fastdelegate -// http://www.codeproject.com/cpp/FastDelegate.asp - -// Modified to be run from shworker by PM - - -// HOPTER.EXE -- A simple header generator for vararg templates -/* MOTIVATION - C++ doesn't have a vararg feature for templates. This can be a - nuisance when writing class libraries. There are a few options: - (a) manually repeat code. This is tedious and error prone. - (b) Use macros. Messy, can't cope with template - arguments, and users get hard-to-interpret error messages. - (c) Use the boost preprocessor library. This slows compilation, - and introduces a dependency on boost. - (d) Write a program to automatically generate the code. - I've never seen a general program to do this job, so this is - a very simple command-line program to do it. - - Why is it called Hopter? - I wanted a word that started with h, to be reminiscent of header - files. At the time, my 2yo son kept talking about 'Hopter Copters' - (he couldn't pronounce 'helicopter'). - It also reflects the level of sophistication of this program -- - it was named by a two year old. - - IMPLEMENTATION - - When you analyze the problem, you find that the requirements - are very simple. - Varargs are needed in two places: templates and functions. - You want to use them in two ways: when declaring the template - or function, and when invoking the function / selecting the - template. - - It's a brain-dead implementation, which just does a search-and-replace - of specific strings. It could be done with a few lines using sed on - a *NIX platform. Because I use Windows, I've done a quick and dirty - implementation using CString. - -In a file, @VARARGS at the start of a line indicates the start of the code -to be expanded. @ENDVAR at the start of a line marks the end of the -expansion. - - declare template -- template <@CLASSARGS> class SomeClass - template - class SomeClass - - declare function -- somefunc(@FUNCARGS) - somefunc(Param1 p1, Param2 p2) - - select template -- SomeClass<@SELARGS> - SomeClass - - invoke function -- somefunc(@INVOKEARGS) - somefunc(p1, p2) - - I also provide @NUM which is the number of arguments. - The case where @NUM is zero is a special case: for template declarations, - the entire template<> bit needs to disappear. When other arguments are - involved, either at the beginning or end of the list, there a commas - which might need to be removed. - - I've used .hxx as the extension for these files. This enables C++ - I wanted to use an unusual file extension (.HOH) for these files, because they - aren't real header files. But I also like to use the C++ syntax highlighting - in Visual Studio. I chose .hxx because MSVC treats it as C++, but it - seems to very rarely used. - - Installation (for VC6, if you want to use .HOH as the extension instead): - Go into the registry and change - HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Text Editor\Tabs/Language Settings\C/C++\FileExtensions from cpp;cxx;c;h;hxx;hpp;inl;tlh;tli;rc;rc2 - to cpp;cxx;c;h;hxx;hpp;inl;tlh;tli;rc;rc2;hoh by adding “;hoh” to the end. - Then add this as a custom build step to the main file of your project: - hopter $(InputDir)\*.hoh $(InputDir)\*.h - -*/ - -#include -#include -#include - -// This is a quick-n-dirty implementation of a CString replacement. -// It promises nothing more than to provide enough functionality to get -// this program to run. -// Note that I have really never used CString, so the information to -// implement the members that are used in this program come from -// online documentation at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cstring.asp -// Also, I have only used VC++ a few times, a long time ago, so -// I really do not know what all their alphabet soup is suppoed to -// mean, so I just made a guess... - - -class CString -{ -public: - enum { MAX_FORMAT_STRING_SIZE = 8 * 1044 }; - CString() - : str_() - { - } - - CString( - CString const & rhs) - : str_(rhs.str_) - { - } - - CString( - char ch, - int repeat = 1) - : str_(repeat, ch) - { - } - - CString( - char const * s) - : str_(s) - { - } - - CString & operator=( - CString const & rhs) - { - str_ = rhs.str_; - return *this; - } - - CString & operator=( - char const * s) - { - str_ = s; - return *this; - } - - CString & operator=( - char ch) - { - str_ = ch; - return *this; - } - - void Format( - char const * fmt, - ...) - { - char buffer[ MAX_FORMAT_STRING_SIZE ]; - va_list ap; - va_start(ap, fmt); - vsprintf(buffer, fmt, ap); - va_end(ap); - str_ = buffer; - } - - char operator[]( - int x) const - { - return str_[x]; - } - - CString & operator+=( - CString const & x) - { - str_ += x.str_; return *this; - } - - int Replace( - CString const & lhs, - CString const & rhs) - { - int rval = 0; - std::string::size_type pos = 0; - while (pos < str_.length()) - { - pos = str_.find(lhs.str_, pos); - if (pos != std::string::npos) - { - str_.replace(pos, lhs.GetLength(), rhs.str_); - pos += rhs.GetLength(); - ++rval; - } - } - return rval; - } - - int GetLength() const - { - return str_.length(); - } - - operator char const * () const - { - return str_.c_str(); - } - -private: - std::string str_; -}; - - -CString operator+( - CString const & x, - CString const & y) -{ - CString result(x); - result += y; - return result; -} - - -/* Example: This is an excerpt from boost::function_template.hpp - -#define BOOST_FUNCTION_FUNCTION_INVOKER \ - BOOST_JOIN(function_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER \ - BOOST_JOIN(void_function_invoker,BOOST_FUNCTION_NUM_ARGS) - - template< - typename FunctionPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_GET_FUNCTION_INVOKER - { - typedef typename ct_if<(is_void::value), - BOOST_FUNCTION_VOID_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >, - BOOST_FUNCTION_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - > - >::type type; - }; - -Using HOPTER, this can be written as: - - template< typename FunctionPtr, typename R, @CLASSARGS> - struct get_function_invoker@NUM - { - typedef typename ct_if<(is_void::value), - void_function_invoker@NUM, - function_invoker@NUM - >::type type; - }; -*/ - -int MaxNumArgs; - -/// Makes the necessary subsititutions in 'bigblock', and writes to fout. -void PrintVarArgs(FILE *fout, CString bigblock, int num) { - CString numstr; - CString invokelist; - CString funclist; - CString selectlist; - CString classlist; - CString commastr; - numstr.Format("%d", num); - if (num==0) { - invokelist=""; - funclist=""; - selectlist=""; - commastr=""; - classlist=""; - }else { - invokelist="p1"; - funclist="Param1 p1"; - selectlist = "Param1"; - classlist = "class Param1"; - commastr=", "; - CString str; - for (int k=2; k<=num; k++) { - str.Format(", p%d", k); - invokelist+=str; - str.Format(", Param%d p%d", k, k); - funclist+=str; - str.Format(", Param%d", k); - selectlist += str; - str.Format(", class Param%d", k); - classlist += str; - } - } - - // Simple replacement of number of arguments - bigblock.Replace("@NUM", numstr); - - // Template declarations - if (num==0) bigblock.Replace("template<@CLASSARGS>", ""); - else bigblock.Replace("template<@CLASSARGS>", - (CString)"template<" + classlist+">"); - if (num==0) bigblock.Replace("template <@CLASSARGS>", ""); - else bigblock.Replace("template <@CLASSARGS>", - (CString)"template<" + classlist+">"); - bigblock.Replace(",@CLASSARGS", commastr + classlist); - bigblock.Replace(", @CLASSARGS", commastr + classlist); - bigblock.Replace("@CLASSARGS, ", classlist + commastr); - bigblock.Replace("@CLASSARGS,", classlist + commastr); - bigblock.Replace("@CLASSARGS", classlist); - - // Template selections - CString selargstr; - if (num==0) selargstr = ""; - else selargstr = (CString)"<"+selectlist+">"; - - bigblock.Replace("<@SELARGS>", selargstr); - bigblock.Replace("< @SELARGS >", selargstr); - bigblock.Replace(",@SELARGS", commastr + selectlist); - bigblock.Replace(", @SELARGS", commastr + selectlist); - bigblock.Replace("@SELARGS, ", selectlist + commastr); - bigblock.Replace("@SELARGS,", selectlist + commastr); - bigblock.Replace("@SELARGS", selectlist); - - // Function declarations - bigblock.Replace(",@FUNCARGS", commastr + funclist); - bigblock.Replace(", @FUNCARGS", commastr + funclist); - bigblock.Replace("@FUNCARGS, ", funclist + commastr); - bigblock.Replace("@FUNCARGS,", funclist + commastr); - bigblock.Replace("@FUNCARGS", funclist); - - // Function invocation - bigblock.Replace(",@INVOKEARGS", commastr + invokelist); - bigblock.Replace(", @INVOKEARGS", commastr + invokelist); - bigblock.Replace("@INVOKEARGS, ", invokelist + commastr); - bigblock.Replace("@INVOKEARGS,", invokelist + commastr); - bigblock.Replace("@INVOKEARGS", invokelist); - - fprintf(fout, bigblock); -} - -int action_hopter(int numargs, const char *filenamein, const char *filenameout) -{ - - MaxNumArgs = numargs; - - FILE * fin; - FILE *fout; - - fin =fopen(filenamein,"rt"); - if (!fin) { printf("Error, can't open %s\n", filenamein); return 1; }; - fout = fopen (filenameout, "wt"); - if (!fout) { printf("Error, can't open %s\n", filenameout); return 1; }; - char buf[5000]; - for (;;) { - if (!fgets(buf, 5000, fin)) break; - if (!strncmp(buf, "@VARARGS", 8)) { - // found a match... - CString bigblock; - for (;;) { - if (feof(fin)) { printf("No matching @ENDVAR !!??\n"); return 1; }; - fgets(buf, 5000, fin); - if (!strncmp(buf, "@ENDVAR", 7)) break; - bigblock+=buf; - } -// fprintf(fout, "// Auto-generated code [[[\n"); - for (int k=0; k<=MaxNumArgs; k++) { - fprintf(fout, "//N=%d\n", k); - PrintVarArgs(fout, bigblock, k); - } -// fprintf(fout, "// ]]] End auto-generated code\n"); - } else { - fprintf(fout, "%s", buf); - } - } - fclose(fin); - fclose(fout); - return 0; -} diff --git a/sourcehook/generate/shworker/msvc7/shworker.vcproj b/sourcehook/generate/shworker/msvc7/shworker.vcproj deleted file mode 100644 index 159bd19..0000000 --- a/sourcehook/generate/shworker/msvc7/shworker.vcproj +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcehook/generate/shworker/msvc8/shworker.vcproj b/sourcehook/generate/shworker/msvc8/shworker.vcproj deleted file mode 100644 index 997949d..0000000 --- a/sourcehook/generate/shworker/msvc8/shworker.vcproj +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcehook/generate/shworker/shworker.cpp b/sourcehook/generate/shworker/shworker.cpp deleted file mode 100644 index 5e0047c..0000000 --- a/sourcehook/generate/shworker/shworker.cpp +++ /dev/null @@ -1,767 +0,0 @@ -// SHWorker -// Inspired by "Hopter" that comes with FastDelegate (http://www.codeproject.com/cpp/FastDelegate.asp) -// Much more powerful (and ugly) though - -/* - - INPUT FILE DIRECTIVES - - $a is the first additional argument, $b the second, ... - - --- - ITERATION - - @[variable,min,max:code|separator@] - - variable: this will be replaced in code by its current value. - vars are always $ and a number. - min: first value to be used for variable - max: last value to be used for variable - code: the code that will be inserted on each iteration. - separator: optional. this will be inserted between iterations. - If you don't use a separator, you may leave out the | - IMPORTANT: iterations will only be performed if max >= min - - --- ARITHMETIC EXPRESSION - - @(expr) - - expr may contain: - variables - constants - operators (currently only + and * are supported) - - --- CONDITION - - @[expr operator expr:code@] - - Example: @[$1!=0:hello@] - - Currently only != and == are supported operators. - - - Yes, error handling in here is weird, some stuff uses return values, other code uses exceptions. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include "stdio.h" - -#ifdef __linux__ -# define stricmp strcasecmp -#endif - -// Ensure that the template version is being used! -#ifdef min -#undef min -#endif - -using namespace std; - -extern int action_hopter(int numargs, const char *filenamein, const char *filenameout); - -typedef map varmap; - -struct MyError -{ - const char *m_desc; - - MyError(const char *desc) : m_desc(desc) - { - } - - void Print() - { - cout << m_desc << endl; - } -}; - -struct SyntaxError : MyError -{ - SyntaxError() : MyError("Syntax error in expression") - { - } -}; -struct OtherError : MyError -{ - OtherError() : MyError("WTF") - { - } -}; - -void trim_string(std::string &str) -{ - size_t first = str.find_first_not_of(" \t\v\n\r"); - if (first == std::string::npos) - { - str.clear(); - return; - } - - size_t last = str.length(); - for (std::string::reverse_iterator riter = str.rbegin(); riter != str.rend(); ++riter) - { - char ch = *riter; - if (ch != ' ' && - ch != '\t' && - ch != '\v' && - ch != '\n' && - ch != '\r') - break; - --last; - } - str = str.substr(first, last - first); -} - -// unused -bool ExtractToken(std::string &strin, std::string &strout) -{ - trim_string(strin); - if (strin.begin() == strin.end()) - { - strout.clear(); - return false; - } - size_t first = strin.find_first_not_of("abcdefghijklmnopqrstuvwxyzABCDEFHIJKLMNOPQRSTUVWXYZ_0123456789"); - if (first == 0) - { - if (strin.size() > 1 && strin.at(0) == '/' && strin.at(1) == '/') - { - // One-line comment, find its end - first = strin.find('\n') + 1; - } - else if (strin.size() > 1 && strin.at(0) == '/' && strin.at(1) == '*') - { - // Multi-line comment, find its end - first = strin.find("*/") + 2; - } - strin = strin.substr(1); - strout.clear(); - return true; - } - strout = strin.substr(0, first); - strin = strin.substr(first); - return true; -} - -// Returns the number of occurencies replaced -int DoReplace(string &str, const string &what, const string &with) -{ - int cnt=0; - size_t where = str.find(what); - - while (where != string::npos) - { - str.replace(where, what.size(), with); - ++cnt; - where = str.find(what, where); - } - return cnt; -} - -int DoReplace(string &str, const char *what, const char *with) -{ - int cnt=0; - size_t where = str.find(what); - size_t whatsize = strlen(what); - while (where != string::npos) - { - str.replace(where, whatsize, with); - ++cnt; - where = str.find(what, where); - } - return cnt; -} - - -class ExprParser -{ - // grammar: - /* - expr -> expr + term { do_add } - | expr - term { do_sub } - | term - - term -> term * factor { do_mul } - | term / factor { do_div } - | term % factor { do_mod } - - factor -> (expr) - | numeric constant { push } - - - equivalent to: - - expr -> term moreterms - moreterms -> + term { do_add } moreterms - moreterms -> - term { do_sub } moreterms - moreterms -> epsilon - - term -> factor morefactors - morefactors -> * factor { do_mul } morefactors - morefactors -> / factor { do_div } morefactors - morefactors -> % factor { do_mod } morefactors - morefactors -> epsilon - - factor -> (expr) - factor -> numeric constant { push } - - */ - - string::const_iterator m_begin; - string::const_iterator m_end; - string::const_iterator m_iter; - - int m_lookahead; - int m_tokenval; - - stack m_stack; - static const int DONE = 256; - static const int NUM = 257; - - int lexan() - { - while (1) - { - if (m_iter == m_end) - return DONE; - - int t = *m_iter++; - - if (t == ' ' || t == '\t') - ; // Remove whitespace - else if (isdigit(t)) - { - --m_iter; - - m_tokenval = 0; - while (m_iter != m_end && isdigit(*m_iter)) - { - m_tokenval *= 10; - m_tokenval += *m_iter - '0'; - ++m_iter; - } - return NUM; - } - else - return t; - } - } - - void match(int t) - { - if (m_lookahead == t) - m_lookahead = lexan(); - else - throw SyntaxError(); - } - void factor() - { - switch (m_lookahead) - { - case '(': - match('('); expr(); match(')'); - break; - case NUM: - m_stack.push(m_tokenval); match(NUM); - break; - default: - throw SyntaxError(); - } - } - void term() - { - factor(); - while (1) - { - switch (m_lookahead) - { - case '*': - match('*'); factor(); do_mul(); - continue; - case '/': - match('/'); factor(); do_div(); - continue; - case '%': - match('%'); factor(); do_mod(); - continue; - default: - return; - } - - } - } - - void expr() - { - term(); - while (1) - { - switch (m_lookahead) - { - case '+': - match('+'); term(); do_add(); - continue; - case '-': - match('-'); term(); do_sub(); - continue; - default: - return; - } - } - } - - void do_add() - { - int a2 = m_stack.top(); m_stack.pop(); - int a1 = m_stack.top(); m_stack.pop(); - m_stack.push(a1 + a2); - } - - void do_sub() - { - int a2 = m_stack.top(); m_stack.pop(); - int a1 = m_stack.top(); m_stack.pop(); - m_stack.push(a1 - a2); - } - - void do_mul() - { - int a2 = m_stack.top(); m_stack.pop(); - int a1 = m_stack.top(); m_stack.pop(); - m_stack.push(a1 * a2); - } - - void do_div() - { - int a2 = m_stack.top(); m_stack.pop(); - int a1 = m_stack.top(); m_stack.pop(); - m_stack.push(a1 / a2); - } - - void do_mod() - { - int a2 = m_stack.top(); m_stack.pop(); - int a1 = m_stack.top(); m_stack.pop(); - m_stack.push(a1 % a2); - } - -public: - ExprParser(string::const_iterator begin, string::const_iterator end) : - m_begin(begin), m_end(end), m_iter(begin) - { - m_lookahead = lexan(); - expr(); - } - - operator int() - { - if (m_stack.size() != 1) - throw OtherError(); - - return m_stack.top(); - } -}; - -int parse_expr(string::const_iterator begin, string::const_iterator end) -{ - return ExprParser(begin, end); -} - -size_t find_first_directive(const string &buf, size_t begin=0) -{ - for (;;) - { - if (begin >= buf.size()) - return string::npos; - - size_t firstdirpos = buf.find('@', begin); - if (firstdirpos == string::npos) - return firstdirpos; - - if (buf.size() > firstdirpos+1) - { - if (buf[firstdirpos+1] == '[' || buf[firstdirpos+1] == '(') - return firstdirpos; - } - begin = firstdirpos+1; - } -} - -// buf begins with a section. Find its end! -size_t find_section_end(const string &buf) -{ - int starttype = buf[1]; - int endtype = (buf[1] == '(') ? ')' : ']'; - - int nestlevel = 0; - - if (starttype == '(') - { - for (string::const_iterator iter = buf.begin(); iter != buf.end(); ++iter) - { - if (*iter == starttype) - ++nestlevel; - if (*iter == endtype) - { - if (--nestlevel == 0) - return iter - buf.begin() + 1; - } - } - return string::npos; - } - else if (starttype == '[') - { - int lastchar = 0; - for (string::const_iterator iter = buf.begin(); iter != buf.end(); ++iter) - { - if (lastchar == '@' && *iter == starttype) - ++nestlevel; - if (lastchar == '@' && *iter == endtype) - { - if (--nestlevel == 0) - return iter - buf.begin() + 1; - } - lastchar = *iter; - } - return string::npos; - } - - return string::npos; -} - -// replaces variables and additional arguments -void replace_vars(string &buf, int argc, int *argv, const varmap &vars) -{ - char varname[] = "$ "; - char value[32]; - - for (int i = 0; i < argc; ++i) - { - varname[1] = 'a' + i; - sprintf(value, "%d", argv[i]); - DoReplace(buf, varname, value); - } - - for (varmap::const_iterator iter = vars.begin(); iter != vars.end(); ++iter) - { - varname[1] = '0' + iter->first; - sprintf(value, "%d", iter->second); - DoReplace(buf, varname, value); - } -} - -// do_input -// params: -// argc: number of additional arguments -// argv: additional arguments -// outfile: output file -// buf: string to be processed. IMPORTANT: buf is modified! -// curvars: variables buffer. -// retval: -// 0 on success, non-zero on error - -int do_input(int argc, int *argv, ofstream &outfile, string &buf, varmap &curvars) -{ - for (;;) - { - // Find the next directive. - size_t firstdirpos = find_first_directive(buf); - - // Output everything that came before, and remove it from buf - outfile << buf.substr(0, firstdirpos); - if (firstdirpos == string::npos) - return 0; - buf = buf.substr(firstdirpos); - - // Now find the matching end. - size_t sectionend = find_section_end(buf); - if (sectionend == string::npos) - { - cout << "ERROR: Section not closed!" << endl; - return 1; - } - - // Place the section in its own buffer and remove it from the input string. - string sect(buf.begin(), buf.begin() + sectionend); - buf = buf.substr(sectionend); - - // CASE1: Arithmetic expression - if (sect[1] == '(') - { - replace_vars(sect, argc, argv, curvars); - outfile << parse_expr(sect.begin()+1, sect.end()); - } - else if (sect[1] == '[') - { - int is_iter = 0; // 0 -> no; 1 -> maybe (only used in check); 2 -> yes - char lastchar = 0; - // This could be an iteration OR a conditional thing. - // Pretty braindead check: iterations begin with a variable, then a comma. - for (string::iterator iter = sect.begin() + 2; iter != sect.end(); ++iter) - { - if (*iter == ' ' || *iter == '\t') - ; - else if (is_iter == 0 && lastchar == '$' && isdigit(*iter)) - is_iter = 1; - else if (is_iter == 1 && *iter == ',') - { - is_iter = 2; - break; - } - else if (*iter == '$') - ; - else - break; - lastchar = *iter; - } - if (is_iter == 2) - { - // CASE2: iteration - // Looks like: @[var,min,max:code|sep@] - // Replace known variables / additional arguments - replace_vars(sect, argc, argv, curvars); - - // get the parts! - string varname; - int varnum; - int expr_min; - int expr_max; - - // varname - size_t comma = sect.find(','); - if (comma == string::npos) - { - cout << "Invalid iteration syntax" << endl; - return 1; - } - varname.assign(sect.begin() + 2, sect.begin() + comma); - trim_string(varname); - if (varname.size() != 2 || varname[0] != '$' || !isdigit(varname[1])) - { - cout << "Invalid variable name" << endl; - return 1; - } - varnum = varname[1] - '0'; - - // min - ++comma; - size_t nextcomma = sect.find(',', comma); - if (nextcomma == string::npos) - { - cout << "Invalid iteration syntax" << endl; - return 1; - } - expr_min = parse_expr(sect.begin() + comma, sect.begin() + nextcomma); - - // max - comma = nextcomma + 1; - nextcomma = sect.find(':', comma); - if (nextcomma == string::npos) - { - cout << "Invalid iteration syntax" << endl; - return 1; - } - - expr_max = parse_expr(sect.begin() + comma, sect.begin() + nextcomma); - - // separator - size_t sepbegin = sect.find('|'); - size_t sepend = string::npos; - if (sepbegin != string::npos && sepbegin < nextcomma) - { - // There's a separator! - ++sepbegin; - sepend = nextcomma; - } - else - sepbegin = string::npos; - - - ++nextcomma; // nextcomma is now where code begins! - - size_t codeend = sect.size() - 2; - - // Check whether the var is already taken - if (curvars.find(varnum) != curvars.end()) - { - cout << "Variable $" << varnum << "already taken!" << endl; - return 1; - } - - // Do iterations!! - for (int i = expr_min; i <= expr_max; ++i) - { - curvars[varnum] = i; - - string code(sect.begin() + nextcomma, sect.begin() + codeend); - replace_vars(code, argc, argv, curvars); - - // Feed it through the input routine (RECURSE!!!!!! YEAH!) - do_input(argc, argv, outfile, code, curvars); - - // Add separator if required - if (sepbegin != string::npos && i != expr_max) - { - string tmp(sect.begin() + sepbegin, sect.begin() + sepend); - do_input(argc, argv, outfile, tmp, curvars); - } - } - // Remove the var! - curvars.erase(varnum); - } - else - { - // CASE3: conditional thing. - // Looks like: @[expr1 operator expr2:code@] - - // Find the operator position - - enum OP_TYPE - { - OP_EQ, - OP_NEQ - }; - - OP_TYPE op; - size_t oppos = sect.find("=="); - if (oppos != string::npos) - op = OP_EQ; - else - { - oppos = sect.find("!="); - if (oppos != string::npos) - op = OP_NEQ; - else - { - cout << "Conditional expression without operator!?" << endl; - return 1; - } - } - size_t colon = sect.find(':'); - - // Now we've got everything. Parse first expr: - int expr1 = parse_expr(sect.begin() + 2, sect.begin() + oppos); - int expr2 = parse_expr(sect.begin() + oppos + 2, sect.begin() + colon); - if ((op == OP_EQ && expr1 == expr2) || - (op == OP_NEQ && expr1 != expr2)) - { - // Condition is true, process it! - // The text may still contain arithmetic exprs or other cond. exprs - // so send it through do_input - string tmp(sect.substr(colon+1, sect.size() - colon - 3)); - do_input(argc, argv, outfile, tmp, curvars); - } - } - } - else - { - cout << "WTF" << endl; - return 1; - } - } - - return 0; -} - - - -// action_iter -// params: -// filenamein: input file name -// filenameout: output file name -// argc: number of additional arguments -// argv: additional arguments -// retval: 0 on success, non-zero on error - -// Convert additional arguments -// Read whole input file to memory and open output file -// Pass to do_input() -int action_iter(const char *filenamein, const char *filenameout, int argc, const char *argv[]) -{ - // Convert additional arguments - const int MAX_ARGC = 10; - int converted_argv[MAX_ARGC]; - - int i; - for (i = 0; i < argc && i < MAX_ARGC; ++i) - converted_argv[i] = atoi(argv[i]); - - if (argc != i) - cout << "WARNING: Not all additional arguments processed!" << endl; - - - // Read whole input file to memory and open output file - ifstream fin(filenamein); - ofstream fout(filenameout); - - if (!fin) - { - cout << "Could not open file \"" << filenamein << "\"." << endl; - return 1; - } - if (!fout) - { - cout << "Could not open file \"" << filenameout << "\"." << endl; - return 1; - } - string input_str( - istreambuf_iterator (fin.rdbuf()), - istreambuf_iterator ()); - - - // Begin processing input - varmap vars; - try - { - return do_input(argc, converted_argv, fout, input_str, vars); - } - catch (MyError err) - { - err.Print(); - return 1; - } -} - -// MAIN -// Prints usage if required -// Calls action_hopter OR action_iter -int main(int argc, const char **argv) -{ - if (argc < 4) - { - cout << "Usage:" << endl << " shworker [iter/hopter] ..." << endl; - cout << " shworker iter filename.in filename.out [param1, param2, ...]" << endl; - cout << " shworker hopter filename.in filename.out [num-of-args]" << endl; - return 1; - } - - const char *action = argv[1]; - - if (stricmp(action, "hopter") == 0) - { - const char *filenamein = argv[2]; - const char *filenameout = argv[3]; - int argsnum = atoi(argv[4]); - - return action_hopter(argsnum, filenamein, filenameout); - } - else if (stricmp(action, "iter") == 0) - { - const char *filenamein = argv[2]; - const char *filenameout = argv[3]; - int additional_argc = argc - 4; - const char ** additional_argv = argv + 4; - return action_iter(filenamein, filenameout, additional_argc, additional_argv); - } - else - { - cout << "Unrecognized action: " << argv[1] << endl; - return 1; - } -} diff --git a/sourcehook/generate/sourcehook.h b/sourcehook/generate/sourcehook.h deleted file mode 100644 index 92ff0c0..0000000 --- a/sourcehook/generate/sourcehook.h +++ /dev/null @@ -1,6104 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** -* @file sourcehook.h -* @brief Contains the public SourceHook API -*/ - -#ifndef __SOURCEHOOK_H__ -#define __SOURCEHOOK_H__ - -// Interface revisions: -// 1 - Initial revision -// 2 - Changed to virtual functions for iterators and all queries -// 3 - Added "hook loop status variable" -// 4 - Reentrant -#define SH_IFACE_VERSION 4 -#define SH_IMPL_VERSION 3 - -// Hookman version: -// 1 - Support for recalls, performance optimisations -#define SH_HOOKMAN_VERSION 1 - -// The value of SH_GLOB_SHPTR has to be a pointer to SourceHook::ISourceHook -// It's used in various macros -#ifndef SH_GLOB_SHPTR -#define SH_GLOB_SHPTR g_SHPtr -#endif - -// Used to identify the current plugin -#ifndef SH_GLOB_PLUGPTR -#define SH_GLOB_PLUGPTR g_PLID -#endif - -#ifdef SH_DEBUG -# include -# include - -# define SH_ASSERT(x, info) \ - do { \ - if (!(x)) \ - { \ - printf("SOURCEHOOK DEBUG ASSERTION FAILED: %s:%u(%s): %s: ", __FILE__, __LINE__, __FUNCTION__, #x); \ - printf info; \ - putchar('\n'); \ - abort(); \ - } \ - } while(0) - -#else -# define SH_ASSERT(x, info) -#endif - -// System -#define SH_SYS_WIN32 1 -#define SH_SYS_LINUX 2 - -#ifdef _WIN32 -# define SH_SYS SH_SYS_WIN32 -#elif defined __linux__ -# define SH_SYS SH_SYS_LINUX -#else -# error Unsupported system -#endif - -// Compiler -#define SH_COMP_GCC 1 -#define SH_COMP_MSVC 2 - -#ifdef _MSC_VER -# define SH_COMP SH_COMP_MSVC -#elif defined __GNUC__ -# define SH_COMP SH_COMP_GCC -#else -# error Unsupported compiler -#endif - -#if SH_COMP==SH_COMP_MSVC -# define vsnprintf _vsnprintf -#endif - -#if SH_SYS != SH_SYS_WIN32 -# include -#endif - -#define SH_PTRSIZE sizeof(void*) - -#include "FastDelegate.h" -#include "sh_memfuncinfo.h" - -// Good old metamod! - -// Flags returned by a plugin's api function. -// NOTE: order is crucial, as greater/less comparisons are made. -enum META_RES -{ - MRES_IGNORED=0, // plugin didn't take any action - MRES_HANDLED, // plugin did something, but real function should still be called - MRES_OVERRIDE, // call real function, but use my return value - MRES_SUPERCEDE // skip real function; use my return value -}; - - -namespace SourceHook -{ - /** - * @brief Specifies the size (in bytes) for the internal buffer of vafmt(printf-like) function handlers - */ - const int STRBUF_LEN=4096; - - /** - * @brief An empty class. No inheritance used. Used for original-function-call hacks - */ - class EmptyClass - { - }; - - /** - * @brief Implicit cast. - */ - template - inline Out implicit_cast(In input) - { - return input; - } - - /** - * @brief A plugin typedef - * - * SourceHook doesn't really care what this is. As long as the ==, != and = operators work on it and every - * plugin has a unique identifier, everything is ok. - * It should also be possible to set it to 0. - */ - typedef int Plugin; - - struct ProtoInfo - { - ProtoInfo(int rtsz, int nop, const int *p) : beginningNull(0), retTypeSize(rtsz), numOfParams(nop), params(p) - { - } - int beginningNull; //!< To distinguish from old protos (which never begin with 0) - int retTypeSize; //!< 0 if void - int numOfParams; //!< number of parameters - const int *params; //!< params[0]=0 (or -1 for vararg), params[1]=size of first param, ... - }; - - /** - * @brief Specifies the actions for hook managers - */ - enum HookManagerAction - { - HA_GetInfo = 0, //!< Store info about the hook manager - HA_Register, //!< Save the IHookManagerInfo pointer for future reference - HA_Unregister //!< Clear the saved pointer - }; - - struct IHookManagerInfo; - - /** - * @brief Pointer to hook manager interface function - * - * A "hook manager" is a the only thing that knows the actual protoype of the function at compile time. - * - * @param ha What the hook manager should do - * @param hi A pointer to IHookManagerInfo - */ - typedef int (*HookManagerPubFunc)(HookManagerAction ha, IHookManagerInfo *hi); - - class ISHDelegate - { - public: - virtual void DeleteThis() = 0; // Ugly, I know - virtual bool IsEqual(ISHDelegate *other) = 0; - }; - - template class CSHDelegate : public ISHDelegate - { - T m_Deleg; - public: - CSHDelegate(T deleg) : m_Deleg(deleg) - { - } - - CSHDelegate(const CSHDelegate &other) : m_Deleg(other.m_Deleg) - { - } - - void DeleteThis() - { - delete this; - } - - bool IsEqual(ISHDelegate *other) - { - return static_cast* >(other)->GetDeleg() == GetDeleg(); - } - - T &GetDeleg() - { - return m_Deleg; - } - }; - - struct IHookList - { - struct IIter - { - virtual bool End() = 0; - virtual void Next() = 0; - virtual ISHDelegate *Handler() = 0; - virtual int ThisPtrOffs() = 0; - }; - virtual IIter *GetIter() = 0; - virtual void ReleaseIter(IIter *pIter) = 0; - }; - - struct IIface - { - virtual void *GetPtr() = 0; - virtual IHookList *GetPreHooks() = 0; - virtual IHookList *GetPostHooks() = 0; - }; - - struct IVfnPtr - { - virtual void *GetVfnPtr() = 0; - virtual void *GetOrigEntry() = 0; - - virtual IIface *FindIface(void *ptr) = 0; - }; - - struct IHookManagerInfo - { - virtual IVfnPtr *FindVfnPtr(void *vfnptr) = 0; - - virtual void SetInfo(int vtbloffs, int vtblidx, const char *proto) = 0; - virtual void SetHookfuncVfnptr(void *hookfunc_vfnptr) = 0; - - // Added 23.12.2005 (yup! I'm coding RIGHT BEFORE CHRISTMAS!) - // If the hookman doesn't set this, it defaults 0 - // SourceHook prefers hookmans with higher version numbers - virtual void SetVersion(int version) = 0; - }; - - class AutoHookIter - { - IHookList *m_pList; - IHookList::IIter *m_pIter; - public: - AutoHookIter(IHookList *pList) - : m_pList(pList), m_pIter(pList->GetIter()) - { - } - - ~AutoHookIter() - { - if (m_pList) - m_pList->ReleaseIter(m_pIter); - } - - bool End() - { - return m_pIter->End(); - } - - void Next() - { - m_pIter->Next(); - } - - ISHDelegate *Handler() - { - return m_pIter->Handler(); - } - - int ThisPtrOffs() - { - return m_pIter->ThisPtrOffs(); - } - - void SetToZero() - { - m_pList = 0; - } - }; - - template struct CallClass - { - virtual B *GetThisPtr() = 0; - virtual void *GetOrigFunc(int vtbloffs, int vtblidx) = 0; - }; - - typedef CallClass GenericCallClass; - typedef CallClass ManualCallClass; - - // 09.08.2008 (6 AM, I just woke up, the others are still sleeping so i finally can use this notebook !!) - // - Today is an important day. - // I'm adding support for functions which return references. - - // How it works: - // SH_SETUPCALLS doesn't use plain rettype to store the temporary return values (plugin ret, orig ret, - // override ret) anymore; instead, it uses SourceHook::ReferenceCarrier::type - // this is typedefed to the original rettype normally, but if the rettype is a reference, it's a special class - // which stores the reference as a pointer, and implements constructors, operator= and a conversion operator. - // special cases were needed for getoverrideret / getorigret; these are implemented through the - // SourceHook::MacroRefHelpers structs. - // Furthermore, SetOverrideRet had to be changed a bit; see SourceHook::OverrideFunctor somewhere down in this file. - template struct ReferenceCarrier - { - typedef T type; - }; - - template struct ReferenceCarrier - { - class type - { - T *m_StoredRef; - public: - type() : m_StoredRef(NULL) - { - } - type(T& ref) : m_StoredRef(&ref) - { - } - - T& operator= (T& ref) - { - m_StoredRef = &ref; - return ref; - } - - operator T& () const - { - return *m_StoredRef; - } - }; - }; - - /** - * @brief The main SourceHook interface - */ - class ISourceHook - { - public: - /** - * @brief Return interface version - */ - virtual int GetIfaceVersion() = 0; - - /** - * @brief Return implementation version - */ - virtual int GetImplVersion() = 0; - - /** - * @brief Add a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param ifacesize The size of the class iface points to - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool AddHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Removes a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool RemoveHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Checks whether a plugin has (a) hook manager(s) that is/are currently used by other plugins - * - * @param plug The unique identifier of the plugin in question - */ - virtual bool IsPluginInUse(Plugin plug) = 0; - - /** - * @brief Return a pointer to a callclass. Generate a new one if required. - * - * @param iface The interface pointer - * @param size Size of the class instance - */ - virtual GenericCallClass *GetCallClass(void *iface, size_t size) = 0; - - /** - * @brief Release a callclass - * - * @param ptr Pointer to the callclass - */ - virtual void ReleaseCallClass(GenericCallClass *ptr) = 0; - - virtual void SetRes(META_RES res) = 0; //!< Sets the meta result - virtual META_RES GetPrevRes() = 0; //!< Gets the meta result of the - //!< previously calledhandler - virtual META_RES GetStatus() = 0; //!< Gets the highest meta result - virtual const void *GetOrigRet() = 0; //!< Gets the original result. - //!< If not in post function, undefined - virtual const void *GetOverrideRet() = 0; //!< Gets the override result. - //!< If none is specified, NULL - virtual void *GetIfacePtr() = 0; //!< Gets the interface pointer - ////////////////////////////////////////////////////////////////////////// - // For hook managers - virtual void HookLoopBegin(IIface *pIface) = 0; //!< Should be called when a hook loop begins - virtual void HookLoopEnd() = 0; //!< Should be called when a hook loop exits - virtual void SetCurResPtr(META_RES *mres) = 0; //!< Sets pointer to the current meta result - virtual void SetPrevResPtr(META_RES *mres) = 0; //!< Sets pointer to previous meta result - virtual void SetStatusPtr(META_RES *mres) = 0; //!< Sets pointer to the status variable - virtual void SetIfacePtrPtr(void **pp) = 0; //!< Sets pointer to the interface this pointer - virtual void SetOrigRetPtr(const void *ptr) = 0; //!< Sets the original return pointer - virtual void SetOverrideRetPtr(void *ptr) = 0; //!< Sets the override result pointer - virtual bool ShouldContinue() = 0; //!< Returns false if the hook loop should exit - - /** - * @brief Remove a hook manager. Auto-removes all hooks attached to it from plugin plug. - * - * @param plug The owner of the hook manager - * @param pubFunc The hook manager's info function - */ - virtual void RemoveHookManager(Plugin plug, HookManagerPubFunc pubFunc) = 0; - - virtual void DoRecall() = 0; //!< Initiates a recall sequence - /* - HOW RECALLS WORK: - - The problem: - Users want the ability to change parameters of the called function - from inside their handler. - The solution: - 1) Mark as "recall" - 2) Recall the function - 3) => SH's hook func gets called: - 4) The first iterator points at the first hook the last hookfunc didn't execute yet - 5) does all iteration and returns normally - 6) The user's handler returns immediately - 7) The hook func returns immediately as well - - Also note that the recalled hookfunc starts with the status the recalling hookfunc - ended with. The last handler (doing the recall) is also able to specify its own - META_RES. - */ - - virtual void *GetOverrideRetPtr() = 0; //!< Returns the pointer set by SetOverrideRetPtr - - /** - * @brief Set up the hook loop. Equivalent to calling: - * SetStatusPtr, SetPrevResPtr, SetCurResPtr, SetIfacePtrPtr, SetOrigRetPtr, Get/SetOverrideRetPtr - * - * @param statusPtr pointer to status variable - * @param prevResPtr pointer to previous result variable - * @param curResPtr pointer to current result variable - * @param ifacePtrPtr pointer to interface this pointer variable - * @param origRetPr pointer to original return value variable. NULL for void funcs - * @param overrideRetPtr pointer to override return value variable. NULL for void funcs - * - * @return Override Return Pointer the hookfunc should use (may differ from overrideRetPtr - * when the hook func is being called as part of a recall - */ - virtual void *SetupHookLoop(META_RES *statusPtr, META_RES *prevResPtr, META_RES *curResPtr, - void **ifacePtrPtr, const void *origRetPtr, void *overrideRetPtr) = 0; - - //!< - }; - - // For META_RESULT_ORIG_RET and META_RESULT_OVERRIDE_RET: - // These have to be able to return references. If T is a reference, the pointers returned - // from the SH_GLOB_SHPTR are pointers to instances of ReferenceCarrier::type. - template struct MacroRefHelpers - { - inline static const T* GetOrigRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOrigRet()); - } - inline static const T* GetOverrideRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOverrideRet()); - } - }; - - template struct MacroRefHelpers - { - inline static T* GetOrigRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOrigRet()); - return &ref; - } - inline static T* GetOverrideRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOverrideRet()); - return &ref; - } - }; -} - -/************************************************************************/ -/* High level interface */ -/************************************************************************/ -#define META_RESULT_STATUS SH_GLOB_SHPTR->GetStatus() -#define META_RESULT_PREVIOUS SH_GLOB_SHPTR->GetPrevRes() -#define META_RESULT_ORIG_RET(type) *SourceHook::MacroRefHelpers::GetOrigRet(SH_GLOB_SHPTR) -#define META_RESULT_OVERRIDE_RET(type) *SourceHook::MacroRefHelpers::GetOverrideRet(SH_GLOB_SHPTR) -#define META_IFACEPTR(type) reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()) - -#define SET_META_RESULT(result) SH_GLOB_SHPTR->SetRes(result) -#define RETURN_META(result) do { SET_META_RESULT(result); return; } while(0) -#define RETURN_META_VALUE(result, value) do { SET_META_RESULT(result); return (value); } while(0) - -// If a hook on a function which returns a reference does not want to specify a return value, -// it can use this macro. -// ONLY USE THIS WITH MRES_IGNORED AND MRES_HANDLED !!! -#define RETURN_META_NOREF(result, rettype) do { SET_META_RESULT(result); return reinterpret_cast(*SH_GLOB_SHPTR); } while(0) - -// only call these from the hook handlers directly! -// :TODO: enforce it ? - -// Why take a memfuncptr instead of iface and func when we have to deduce the iface anyway now? -// Well, without it, there'd be no way to specify which overloaded version we want in _VALUE - -// SourceHook::SetOverrideRet is defined later. -#define RETURN_META_NEWPARAMS(result, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_NEWPARAMS(result, value, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* meh, set the override result here because we don't get a chance to return */ \ - /* before continuing the hook loop through the recall */ \ - SourceHook::SetOverrideResult(memfuncptr)(SH_GLOB_SHPTR, value); \ - } \ - RETURN_META_VALUE(MRES_SUPERCEDE, \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams); \ - } while (0) - -// :TODO: thisptroffs in MNEWPARAMS ?? - -#if SH_COMP == SH_COMP_MSVC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - void *addr; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; - -#elif SH_COMP == SH_COMP_GCC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.s.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; \ - u.s.adjustor = 0; - -#endif - -#define RETURN_META_MNEWPARAMS(result, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - (thisptr->*(u.mfp)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_MNEWPARAMS(result, value, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* see RETURN_META_VALUE_NEWPARAMS */ \ - SourceHook::SetOverrideResult(SH_GLOB_SHPTR, value); \ - } \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - RETURN_META_VALUE(MRES_SUPERCEDE, (thisptr->*(u.mfp)) newparams); \ - } while (0) - -/** -* @brief Get/generate callclass for an interface pointer -* -* @param ifaceptr The interface pointer -*/ -template -inline SourceHook::CallClass *SH_GET_CALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), sizeof(ifacetype))); -} - -template -inline SourceHook::CallClass *SH_GET_MCALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr, int ifacesize) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), ifacesize)); -} - -template -inline void SH_RELEASE_CALLCLASS_R(SourceHook::ISourceHook *shptr, SourceHook::CallClass *ptr) -{ - shptr->ReleaseCallClass(reinterpret_cast(ptr)); -} - -#define SH_MANUALHOOK_RECONFIGURE(hookname, pvtblindex, pvtbloffs, pthisptroffs) \ - do { \ - SH_GLOB_SHPTR->RemoveHookManager(SH_GLOB_PLUGPTR, SH_MFHCls(hookname)::HookManPubFunc); \ - SH_MFHCls(hookname)::ms_MFI.thisptroffs = pthisptroffs; \ - SH_MFHCls(hookname)::ms_MFI.vtblindex = pvtblindex; \ - SH_MFHCls(hookname)::ms_MFI.vtbloffs = pvtbloffs; \ - } while (0) - -#define SH_GET_CALLCLASS(ptr) SH_GET_CALLCLASS_R(SH_GLOB_SHPTR, ptr) -#define SH_GET_MCALLCLASS(ptr, size) SH_GET_MCALLCLASS_R(SH_GLOB_SHPTR, reinterpret_cast(ptr), size) -#define SH_RELEASE_CALLCLASS(ptr) SH_RELEASE_CALLCLASS_R(SH_GLOB_SHPTR, ptr) - -#define SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHAdd##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_ADD_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHRemove##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_REMOVE_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_ADD_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMAdd##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_ADD_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMRemove##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_REMOVE_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_NOATTRIB - - - - -#if SH_COMP == SH_COMP_MSVC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; -#elif SH_COMP == SH_COMP_GCC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; \ - reinterpret_cast(&mfp)[1] = 0; -#else -# error Not supported yet. -#endif - -////////////////////////////////////////////////////////////////////////// -#define SH_FHCls(ift, iff, ov) __SourceHook_FHCls_##ift##iff##ov -#define SH_MFHCls(hookname) __SourceHook_MFHCls_##hookname - -#define SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) \ - SH_FHCls(ifacetype,ifacefunc,overload)() \ - { \ - GetFuncInfo(funcptr, ms_MFI); \ - } \ - \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - GetFuncInfo(funcptr, ms_MFI); \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_FHCls(ifacetype,ifacefunc,overload)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -// It has to be possible to use the macros in namespaces -// -> So we need to access and extend the global SourceHook namespace -// We use a namespace alias for this -#define SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, funcptr) \ - struct SH_FHCls(ifacetype,ifacefunc,overload) \ - { \ - static SH_FHCls(ifacetype,ifacefunc,overload) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) - -#define SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, funcptr) \ - }; \ - SH_FHCls(ifacetype,ifacefunc,overload) SH_FHCls(ifacetype,ifacefunc,overload)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_FHCls(ifacetype,ifacefunc,overload)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_FHCls(ifacetype,ifacefunc,overload)::ms_HI; \ - bool __SourceHook_FHAdd##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0 || !mfi.isVirtual) \ - return false; /* No non-virtual functions / virtual inheritance supported */ \ - \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, \ - new CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHRemove##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0) \ - return false; /* No virtual inheritance supported */ \ - \ - CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, &tmp, post); \ - } \ - -#define SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - struct SH_MFHCls(hookname) \ - { \ - static SH_MFHCls(hookname) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - \ - SH_MFHCls(hookname)() \ - { \ - ms_MFI.isVirtual = true; \ - ms_MFI.thisptroffs = pthisptroffs; \ - ms_MFI.vtblindex = pvtblidx; \ - ms_MFI.vtbloffs = pvtbloffs; \ - } \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - /* we don't set ms_MFI here because manual hookmans can be reconfigured */ \ - /* :FIXME: possible problem: someone adding a hook from a constructor of a global entity */ \ - /* which is construced before SH_MFHCls(hookname)() gets called? */ \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_MFHCls(hookname)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -#define SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - }; \ - SH_MFHCls(hookname) SH_MFHCls(hookname)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_MFHCls(hookname)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_MFHCls(hookname)::ms_HI; \ - bool __SourceHook_FHMAdd##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, \ - new ::SourceHook::CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHMRemove##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - ::SourceHook::CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, &tmp, post); \ - } \ - - -#define SH_SETUPCALLS(rettype, paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - return (reinterpret_cast(this)->*mfp)params; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - typedef ReferenceCarrier::type my_rettype; \ - my_rettype orig_ret; \ - my_rettype override_ret; \ - my_rettype plugin_ret; \ - void* ifptr; \ - my_rettype *pOverrideRet = reinterpret_cast(SH_GLOB_SHPTR->SetupHookLoop( \ - &status, &prev_res, &cur_res, &ifptr, &orig_ret, &override_ret)); - -#define SH_CALL_HOOKS(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - plugin_ret = reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (cur_res >= MRES_OVERRIDE) \ - *pOverrideRet = plugin_ret; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG(rettype, paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - orig_ret = (reinterpret_cast(this)->*mfp)params; \ - } \ - else \ - orig_ret = override_ret; \ - -#define SH_RETURN() \ - SH_GLOB_SHPTR->HookLoopEnd(); \ - return status >= MRES_OVERRIDE ? *pOverrideRet : orig_ret; - -#define SH_HANDLEFUNC(paramtypes, params, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params) \ - SH_CALL_HOOKS(pre, params) \ - SH_CALL_ORIG(rettype, paramtypes, params) \ - SH_CALL_HOOKS(post, params) \ - SH_RETURN() - -////////////////////////////////////////////////////////////////////////// -#define SH_SETUPCALLS_void(paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - return; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - void* ifptr; \ - SH_GLOB_SHPTR->SetupHookLoop(&status, &prev_res, &cur_res, &ifptr, NULL, NULL); \ - -#define SH_CALL_HOOKS_void(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG_void(paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - } - -#define SH_RETURN_void() \ - SH_GLOB_SHPTR->HookLoopEnd(); - -#define SH_HANDLEFUNC_void(paramtypes, params) \ - SH_SETUPCALLS_void(paramtypes, params) \ - SH_CALL_HOOKS_void(pre, params) \ - SH_CALL_ORIG_void(paramtypes, params) \ - SH_CALL_HOOKS_void(post, params) \ - SH_RETURN_void() - - -// Special vafmt handlers -// :TODO: what -#define SH_HANDLEFUNC_vafmt(paramtypes, params_orig, params_plug, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(pre, params_plug) \ - SH_CALL_ORIG(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(post, params_plug) \ - SH_RETURN() - -#define SH_HANDLEFUNC_void_vafmt(paramtypes, params_orig, params_plug) \ - SH_SETUPCALLS_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(pre, params_plug) \ - SH_CALL_ORIG_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(post, params_plug) \ - SH_RETURN_void() - -////////////////////////////////////////////////////////////////////////// - -// :FIXME: -// sizeof on references returns the size of the datatype, NOT the pointer size or something -// -> one should probably flag references in __SourceHook_ParamSizes_* ! -// or simply assume that their size is sizeof(void*)=SH_PTRSIZE... could be doable through a simple template - - -// ********* Support for 0 arguments ********* -#define SH_DECL_HOOK0(ifacetype, ifacefunc, attr, overload, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate0 FD; \ - virtual rettype Func() \ - { SH_HANDLEFUNC((), (), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_void(ifacetype, ifacefunc, attr, overload) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate0<> FD; \ - virtual void Func() \ - { SH_HANDLEFUNC_void((), ()); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_vafmt(ifacetype, ifacefunc, attr, overload, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((...), ("%s", buf), (buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_void_vafmt(ifacetype, ifacefunc, attr, overload) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((...), ("%s", buf), (buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK0(hookname, vtblidx, vtbloffs, thisptroffs, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate0 FD; \ - virtual rettype Func() \ - { SH_HANDLEFUNC((), (), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK0_void(hookname, vtblidx, vtbloffs, thisptroffs) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate0<> FD; \ - virtual void Func() \ - { SH_HANDLEFUNC_void((), ()); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 0, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 1 arguments ********* -#define SH_DECL_HOOK1(ifacetype, ifacefunc, attr, overload, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(param1 p1) \ - { SH_HANDLEFUNC((param1), (p1), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_void(ifacetype, ifacefunc, attr, overload, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(param1 p1) \ - { SH_HANDLEFUNC_void((param1), (p1)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, ...), (p1, "%s", buf), (p1, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_void_vafmt(ifacetype, ifacefunc, attr, overload, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, ...), (p1, "%s", buf), (p1, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK1(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(param1 p1) \ - { SH_HANDLEFUNC((param1), (p1), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK1_void(hookname, vtblidx, vtbloffs, thisptroffs, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(param1 p1) \ - { SH_HANDLEFUNC_void((param1), (p1)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 1, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 2 arguments ********* -#define SH_DECL_HOOK2(ifacetype, ifacefunc, attr, overload, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC((param1, param2), (p1, p2), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_void(ifacetype, ifacefunc, attr, overload, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC_void((param1, param2), (p1, p2)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, ...), (p1, p2, "%s", buf), (p1, p2, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, ...), (p1, p2, "%s", buf), (p1, p2, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK2(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC((param1, param2), (p1, p2), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK2_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC_void((param1, param2), (p1, p2)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 2, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 3 arguments ********* -#define SH_DECL_HOOK3(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC((param1, param2, param3), (p1, p2, p3), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC_void((param1, param2, param3), (p1, p2, p3)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, ...), (p1, p2, p3, "%s", buf), (p1, p2, p3, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, ...), (p1, p2, p3, "%s", buf), (p1, p2, p3, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK3(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC((param1, param2, param3), (p1, p2, p3), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK3_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC_void((param1, param2, param3), (p1, p2, p3)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 3, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 4 arguments ********* -#define SH_DECL_HOOK4(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC((param1, param2, param3, param4), (p1, p2, p3, p4), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4), (p1, p2, p3, p4)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, ...), (p1, p2, p3, p4, "%s", buf), (p1, p2, p3, p4, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, ...), (p1, p2, p3, p4, "%s", buf), (p1, p2, p3, p4, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK4(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC((param1, param2, param3, param4), (p1, p2, p3, p4), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK4_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4), (p1, p2, p3, p4)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 4, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 5 arguments ********* -#define SH_DECL_HOOK5(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, ...), (p1, p2, p3, p4, p5, "%s", buf), (p1, p2, p3, p4, p5, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, ...), (p1, p2, p3, p4, p5, "%s", buf), (p1, p2, p3, p4, p5, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK5(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK5_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 5, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 6 arguments ********* -#define SH_DECL_HOOK6(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, ...), (p1, p2, p3, p4, p5, p6, "%s", buf), (p1, p2, p3, p4, p5, p6, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, ...), (p1, p2, p3, p4, p5, p6, "%s", buf), (p1, p2, p3, p4, p5, p6, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK6(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK6_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 6, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 7 arguments ********* -#define SH_DECL_HOOK7(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, ...), (p1, p2, p3, p4, p5, p6, p7, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, ...), (p1, p2, p3, p4, p5, p6, p7, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK7(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK7_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 7, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 8 arguments ********* -#define SH_DECL_HOOK8(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, ...), (p1, p2, p3, p4, p5, p6, p7, p8, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, ...), (p1, p2, p3, p4, p5, p6, p7, p8, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK8(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK8_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 8, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 9 arguments ********* -#define SH_DECL_HOOK9(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK9(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK9_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 9, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 10 arguments ********* -#define SH_DECL_HOOK10(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK10(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK10_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 10, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 11 arguments ********* -#define SH_DECL_HOOK11(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK11(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK11_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 11, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 12 arguments ********* -#define SH_DECL_HOOK12(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK12(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK12_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 12, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 13 arguments ********* -#define SH_DECL_HOOK13(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK13(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK13_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 13, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 14 arguments ********* -#define SH_DECL_HOOK14(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK14(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK14_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 14, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 15 arguments ********* -#define SH_DECL_HOOK15(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK15(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK15_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 15, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 16 arguments ********* -#define SH_DECL_HOOK16(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK16(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK16_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 16, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 17 arguments ********* -#define SH_DECL_HOOK17(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK17(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK17_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 17, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 18 arguments ********* -#define SH_DECL_HOOK18(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK18(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK18_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 18, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 19 arguments ********* -#define SH_DECL_HOOK19(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK19(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK19_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 19, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 20 arguments ********* -#define SH_DECL_HOOK20(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate21 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate21 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK20(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK20_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 20, __SourceHook_ParamSizesM_##hookname); \ - - - - -////////////////////////////////////////////////////////////////////////// -// SH_CALL - -#if SH_COMP == SH_COMP_MSVC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = origfunc; \ - \ - void *adjustedthisptr = reinterpret_cast(reinterpret_cast(m_CC->GetThisPtr()) + mfi.thisptroffs); \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *adjustedthisptr = reinterpret_cast(m_CC->GetThisPtr()) + m_ThisPtrOffs; \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.addr) \ - u.addr = (*reinterpret_cast(adjustedthisptr + m_VtblOffs))[m_VtblIdx]; \ - \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -#elif SH_COMP == SH_COMP_GCC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = origfunc; \ - u.s.adjustor = mfi.thisptroffs; \ - \ - return (reinterpret_cast(m_CC->GetThisPtr())->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *thisptr = reinterpret_cast(m_CC->GetThisPtr()); \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.s.addr) \ - u.s.addr = (*reinterpret_cast(thisptr + m_ThisPtrOffs + m_VtblOffs))[m_VtblIdx]; \ - \ - u.s.adjustor = m_ThisPtrOffs; \ - return (reinterpret_cast(thisptr)->*u.mfpnew)call; \ -} - -#endif - -namespace SourceHook -{ - - // Support for 0 arguments - template class ExecutableClass0 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass0(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()() const - SH_MAKE_EXECUTABLECLASS_OB((), ()) - - - template RetType operator()(Param1 p1) const - SH_MAKE_EXECUTABLECLASS_OB((p1), (Param1)) - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass0 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass0(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()() const - SH_MAKE_MEXECUTABLECLASS_OB((), ()) - - - template RetType operator()(Param1 p1) const - SH_MAKE_MEXECUTABLECLASS_OB((p1), (Param1)) - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 1 arguments - template class ExecutableClass1 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass1(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1) const - SH_MAKE_EXECUTABLECLASS_OB((p1), (Param1)) - - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass1 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass1(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1) const - SH_MAKE_MEXECUTABLECLASS_OB((p1), (Param1)) - - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 2 arguments - template class ExecutableClass2 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass2(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass2 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass2(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 3 arguments - template class ExecutableClass3 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass3(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass3 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass3(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 4 arguments - template class ExecutableClass4 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass4(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass4 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass4(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 5 arguments - template class ExecutableClass5 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass5(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass5 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass5(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 6 arguments - template class ExecutableClass6 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass6(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass6 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass6(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 7 arguments - template class ExecutableClass7 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass7(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass7 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass7(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 8 arguments - template class ExecutableClass8 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass8(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass8 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass8(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 9 arguments - template class ExecutableClass9 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass9(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass9 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass9(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 10 arguments - template class ExecutableClass10 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass10(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass10 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass10(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 11 arguments - template class ExecutableClass11 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass11(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass11 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass11(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 12 arguments - template class ExecutableClass12 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass12(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass12 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass12(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 13 arguments - template class ExecutableClass13 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass13(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass13 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass13(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 14 arguments - template class ExecutableClass14 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass14(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass14 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass14(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 15 arguments - template class ExecutableClass15 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass15(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass15 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass15(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 16 arguments - template class ExecutableClass16 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass16(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass16 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass16(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 17 arguments - template class ExecutableClass17 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass17(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass17 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass17(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 18 arguments - template class ExecutableClass18 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass18(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass18 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass18(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 19 arguments - template class ExecutableClass19 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass19(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass19 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass19(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 20 arguments - template class ExecutableClass20 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass20(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - - }; - - template class MExecutableClass20 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass20(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - - }; - - -} - -// SH_CALL needs to deduce the return type -> it uses templates and function overloading -// That's why SH_CALL takes two parameters: "mfp2" of type RetType(X::*mfp)(params), and "mfp" of type MFP -// The only purpose of the mfp2 parameter is to extract the return type - - -// Support for 0 arguments -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)()) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)()const) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::MExecutableClass0 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass0(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 1 arguments -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1)) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1)const) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::MExecutableClass1 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass1(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 2 arguments -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2)) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2)const) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::MExecutableClass2 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass2(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 3 arguments -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3)) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3)const) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::MExecutableClass3 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass3(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 4 arguments -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4)) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4)const) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::MExecutableClass4 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass4(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 5 arguments -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5)) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5)const) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::MExecutableClass5 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass5(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 6 arguments -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6)) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6)const) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::MExecutableClass6 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass6(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 7 arguments -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)const) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::MExecutableClass7 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass7(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 8 arguments -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)const) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::MExecutableClass8 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass8(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 9 arguments -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)const) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::MExecutableClass9 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass9(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 10 arguments -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)const) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::MExecutableClass10 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass10(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 11 arguments -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)const) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::MExecutableClass11 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass11(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 12 arguments -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)const) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::MExecutableClass12 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass12(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 13 arguments -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)const) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::MExecutableClass13 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass13(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 14 arguments -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)const) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::MExecutableClass14 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass14(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 15 arguments -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)const) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::MExecutableClass15 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass15(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 16 arguments -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)const) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::MExecutableClass16 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass16(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 17 arguments -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)const) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::MExecutableClass17 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass17(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 18 arguments -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)const) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::MExecutableClass18 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass18(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 19 arguments -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)const) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::MExecutableClass19 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass19(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 20 arguments -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)const) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::MExecutableClass20 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass20(ptr, vtbloffs, vtblidx, thisptroffs); -} - - -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 -// GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it - - -// Support for 0 arguments -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(...)) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(...)const) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - - -// Support for 1 arguments -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, ...)) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, ...)const) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - - -// Support for 2 arguments -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, ...)) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, ...)const) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - - -// Support for 3 arguments -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, ...)) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, ...)const) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - - -// Support for 4 arguments -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, ...)) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, ...)const) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - - -// Support for 5 arguments -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...)) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...)const) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - - -// Support for 6 arguments -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...)) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...)const) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - - -// Support for 7 arguments -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...)) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...)const) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - - -// Support for 8 arguments -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...)) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...)const) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - - -// Support for 9 arguments -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...)) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...)const) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - - -// Support for 10 arguments -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...)) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...)const) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - - -// Support for 11 arguments -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...)) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...)const) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - - -// Support for 12 arguments -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...)) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...)const) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - - -// Support for 13 arguments -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...)) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...)const) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - - -// Support for 14 arguments -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...)) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...)const) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - - -// Support for 15 arguments -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...)) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...)const) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - - -// Support for 16 arguments -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...)) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...)const) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - - -// Support for 17 arguments -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...)) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...)const) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - - -// Support for 18 arguments -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...)) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...)const) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - - -// Support for 19 arguments -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...)) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...)const) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - - -// Support for 20 arguments -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...)) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...)const) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - - - -#endif - -#define SH_CALL(ptr, mfp) SH_CALL2((ptr), (mfp), (mfp)) -#define SH_MCALL(ptr, mhookname) SH_MCALL2((ptr), SH_MFHCls(mhookname)::ECMFP(), SH_MFHCls(mhookname)::ms_MFI.vtblindex, \ - SH_MFHCls(mhookname)::ms_MFI.vtbloffs, SH_MFHCls(mhookname)::ms_MFI.thisptroffs) - -#undef SH_MAKE_EXECUTABLECLASS_OB - -////////////////////////////////////////////////////////////////////////// -// SetOverrideRet and RecallGetIface for recalls -// These take a ISourceHook pointer instead of using SH_GLOB_SHPTR directly -// The reason is that the user may want to redefine SH_GLOB_SHPTR - then the macros -// (META_RETURN_VALUE_NEWPARAMS) should obey the new pointer. - -namespace SourceHook -{ - template - void SetOverrideResult(ISourceHook *shptr, const RetType res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - - // SetOverrideResult used to be implemented like this: - // SetOverrideResult(shptr, memfuncptr, return); - // normally the compiler can deduce the return type from memfuncptr, but (at least msvc8) failed when it was a reference - // (it thought it was ambigous - the ref and non-ref type) - // so now SetOverrideResult(memfuncptr) deduces the ret type, and returns a functor which does the work - // new syntax: SetOverrideResult(memfuncptr)(shptr, return) - // This also allows us to create a special version for references which respects ReferenceCarrier. - - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - }; - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T &res) - { - // overrideretptr points to ReferenceCarrier - *reinterpret_cast::type *>(shptr->GetOverrideRetPtr()) = res; - } - }; - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)()) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)()) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - -} - -#endif - // The pope is dead. -> :( diff --git a/sourcehook/generate/sourcehook.hxx b/sourcehook/generate/sourcehook.hxx deleted file mode 100755 index 0c767a0..0000000 --- a/sourcehook/generate/sourcehook.hxx +++ /dev/null @@ -1,1370 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** -* @file sourcehook.h -* @brief Contains the public SourceHook API -*/ - -#ifndef __SOURCEHOOK_H__ -#define __SOURCEHOOK_H__ - -// Interface revisions: -// 1 - Initial revision -// 2 - Changed to virtual functions for iterators and all queries -// 3 - Added "hook loop status variable" -// 4 - Reentrant -#define SH_IFACE_VERSION 4 -#define SH_IMPL_VERSION 3 - -// Hookman version: -// 1 - Support for recalls, performance optimisations -#define SH_HOOKMAN_VERSION 1 - -// The value of SH_GLOB_SHPTR has to be a pointer to SourceHook::ISourceHook -// It's used in various macros -#ifndef SH_GLOB_SHPTR -#define SH_GLOB_SHPTR g_SHPtr -#endif - -// Used to identify the current plugin -#ifndef SH_GLOB_PLUGPTR -#define SH_GLOB_PLUGPTR g_PLID -#endif - -#ifdef SH_DEBUG -# include -# include - -# define SH_ASSERT(x, info) \ - do { \ - if (!(x)) \ - { \ - printf("SOURCEHOOK DEBUG ASSERTION FAILED: %s:%u(%s): %s: ", __FILE__, __LINE__, __FUNCTION__, #x); \ - printf info; \ - putchar('\n'); \ - abort(); \ - } \ - } while(0) - -#else -# define SH_ASSERT(x, info) -#endif - -// System -#define SH_SYS_WIN32 1 -#define SH_SYS_LINUX 2 - -#ifdef _WIN32 -# define SH_SYS SH_SYS_WIN32 -#elif defined __linux__ -# define SH_SYS SH_SYS_LINUX -#else -# error Unsupported system -#endif - -// Compiler -#define SH_COMP_GCC 1 -#define SH_COMP_MSVC 2 - -#ifdef _MSC_VER -# define SH_COMP SH_COMP_MSVC -#elif defined __GNUC__ -# define SH_COMP SH_COMP_GCC -#else -# error Unsupported compiler -#endif - -#if SH_COMP==SH_COMP_MSVC -# define vsnprintf _vsnprintf -#endif - -#if SH_SYS != SH_SYS_WIN32 -# include -#endif - -#define SH_PTRSIZE sizeof(void*) - -#include "FastDelegate.h" -#include "sh_memfuncinfo.h" - -// Good old metamod! - -// Flags returned by a plugin's api function. -// NOTE: order is crucial, as greater/less comparisons are made. -enum META_RES -{ - MRES_IGNORED=0, // plugin didn't take any action - MRES_HANDLED, // plugin did something, but real function should still be called - MRES_OVERRIDE, // call real function, but use my return value - MRES_SUPERCEDE // skip real function; use my return value -}; - - -namespace SourceHook -{ - /** - * @brief Specifies the size (in bytes) for the internal buffer of vafmt(printf-like) function handlers - */ - const int STRBUF_LEN=4096; - - /** - * @brief An empty class. No inheritance used. Used for original-function-call hacks - */ - class EmptyClass - { - }; - - /** - * @brief Implicit cast. - */ - template - inline Out implicit_cast(In input) - { - return input; - } - - /** - * @brief A plugin typedef - * - * SourceHook doesn't really care what this is. As long as the ==, != and = operators work on it and every - * plugin has a unique identifier, everything is ok. - * It should also be possible to set it to 0. - */ - typedef int Plugin; - - struct ProtoInfo - { - ProtoInfo(int rtsz, int nop, const int *p) : beginningNull(0), retTypeSize(rtsz), numOfParams(nop), params(p) - { - } - int beginningNull; //!< To distinguish from old protos (which never begin with 0) - int retTypeSize; //!< 0 if void - int numOfParams; //!< number of parameters - const int *params; //!< params[0]=0 (or -1 for vararg), params[1]=size of first param, ... - }; - - /** - * @brief Specifies the actions for hook managers - */ - enum HookManagerAction - { - HA_GetInfo = 0, //!< Store info about the hook manager - HA_Register, //!< Save the IHookManagerInfo pointer for future reference - HA_Unregister //!< Clear the saved pointer - }; - - struct IHookManagerInfo; - - /** - * @brief Pointer to hook manager interface function - * - * A "hook manager" is a the only thing that knows the actual protoype of the function at compile time. - * - * @param ha What the hook manager should do - * @param hi A pointer to IHookManagerInfo - */ - typedef int (*HookManagerPubFunc)(HookManagerAction ha, IHookManagerInfo *hi); - - class ISHDelegate - { - public: - virtual void DeleteThis() = 0; // Ugly, I know - virtual bool IsEqual(ISHDelegate *other) = 0; - }; - - template class CSHDelegate : public ISHDelegate - { - T m_Deleg; - public: - CSHDelegate(T deleg) : m_Deleg(deleg) - { - } - - CSHDelegate(const CSHDelegate &other) : m_Deleg(other.m_Deleg) - { - } - - void DeleteThis() - { - delete this; - } - - bool IsEqual(ISHDelegate *other) - { - return static_cast* >(other)->GetDeleg() == GetDeleg(); - } - - T &GetDeleg() - { - return m_Deleg; - } - }; - - struct IHookList - { - struct IIter - { - virtual bool End() = 0; - virtual void Next() = 0; - virtual ISHDelegate *Handler() = 0; - virtual int ThisPtrOffs() = 0; - }; - virtual IIter *GetIter() = 0; - virtual void ReleaseIter(IIter *pIter) = 0; - }; - - struct IIface - { - virtual void *GetPtr() = 0; - virtual IHookList *GetPreHooks() = 0; - virtual IHookList *GetPostHooks() = 0; - }; - - struct IVfnPtr - { - virtual void *GetVfnPtr() = 0; - virtual void *GetOrigEntry() = 0; - - virtual IIface *FindIface(void *ptr) = 0; - }; - - struct IHookManagerInfo - { - virtual IVfnPtr *FindVfnPtr(void *vfnptr) = 0; - - virtual void SetInfo(int vtbloffs, int vtblidx, const char *proto) = 0; - virtual void SetHookfuncVfnptr(void *hookfunc_vfnptr) = 0; - - // Added 23.12.2005 (yup! I'm coding RIGHT BEFORE CHRISTMAS!) - // If the hookman doesn't set this, it defaults 0 - // SourceHook prefers hookmans with higher version numbers - virtual void SetVersion(int version) = 0; - }; - - class AutoHookIter - { - IHookList *m_pList; - IHookList::IIter *m_pIter; - public: - AutoHookIter(IHookList *pList) - : m_pList(pList), m_pIter(pList->GetIter()) - { - } - - ~AutoHookIter() - { - if (m_pList) - m_pList->ReleaseIter(m_pIter); - } - - bool End() - { - return m_pIter->End(); - } - - void Next() - { - m_pIter->Next(); - } - - ISHDelegate *Handler() - { - return m_pIter->Handler(); - } - - int ThisPtrOffs() - { - return m_pIter->ThisPtrOffs(); - } - - void SetToZero() - { - m_pList = 0; - } - }; - - template struct CallClass - { - virtual B *GetThisPtr() = 0; - virtual void *GetOrigFunc(int vtbloffs, int vtblidx) = 0; - }; - - typedef CallClass GenericCallClass; - typedef CallClass ManualCallClass; - - // 09.08.2008 (6 AM, I just woke up, the others are still sleeping so i finally can use this notebook !!) - // - Today is an important day. - // I'm adding support for functions which return references. - - // How it works: - // SH_SETUPCALLS doesn't use plain rettype to store the temporary return values (plugin ret, orig ret, - // override ret) anymore; instead, it uses SourceHook::ReferenceCarrier::type - // this is typedefed to the original rettype normally, but if the rettype is a reference, it's a special class - // which stores the reference as a pointer, and implements constructors, operator= and a conversion operator. - // special cases were needed for getoverrideret / getorigret; these are implemented through the - // SourceHook::MacroRefHelpers structs. - // Furthermore, SetOverrideRet had to be changed a bit; see SourceHook::OverrideFunctor somewhere down in this file. - template struct ReferenceCarrier - { - typedef T type; - }; - - template struct ReferenceCarrier - { - class type - { - T *m_StoredRef; - public: - type() : m_StoredRef(NULL) - { - } - type(T& ref) : m_StoredRef(&ref) - { - } - - T& operator= (T& ref) - { - m_StoredRef = &ref; - return ref; - } - - operator T& () const - { - return *m_StoredRef; - } - }; - }; - - /** - * @brief The main SourceHook interface - */ - class ISourceHook - { - public: - /** - * @brief Return interface version - */ - virtual int GetIfaceVersion() = 0; - - /** - * @brief Return implementation version - */ - virtual int GetImplVersion() = 0; - - /** - * @brief Add a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param ifacesize The size of the class iface points to - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool AddHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Removes a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool RemoveHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Checks whether a plugin has (a) hook manager(s) that is/are currently used by other plugins - * - * @param plug The unique identifier of the plugin in question - */ - virtual bool IsPluginInUse(Plugin plug) = 0; - - /** - * @brief Return a pointer to a callclass. Generate a new one if required. - * - * @param iface The interface pointer - * @param size Size of the class instance - */ - virtual GenericCallClass *GetCallClass(void *iface, size_t size) = 0; - - /** - * @brief Release a callclass - * - * @param ptr Pointer to the callclass - */ - virtual void ReleaseCallClass(GenericCallClass *ptr) = 0; - - virtual void SetRes(META_RES res) = 0; //!< Sets the meta result - virtual META_RES GetPrevRes() = 0; //!< Gets the meta result of the - //!< previously calledhandler - virtual META_RES GetStatus() = 0; //!< Gets the highest meta result - virtual const void *GetOrigRet() = 0; //!< Gets the original result. - //!< If not in post function, undefined - virtual const void *GetOverrideRet() = 0; //!< Gets the override result. - //!< If none is specified, NULL - virtual void *GetIfacePtr() = 0; //!< Gets the interface pointer - ////////////////////////////////////////////////////////////////////////// - // For hook managers - virtual void HookLoopBegin(IIface *pIface) = 0; //!< Should be called when a hook loop begins - virtual void HookLoopEnd() = 0; //!< Should be called when a hook loop exits - virtual void SetCurResPtr(META_RES *mres) = 0; //!< Sets pointer to the current meta result - virtual void SetPrevResPtr(META_RES *mres) = 0; //!< Sets pointer to previous meta result - virtual void SetStatusPtr(META_RES *mres) = 0; //!< Sets pointer to the status variable - virtual void SetIfacePtrPtr(void **pp) = 0; //!< Sets pointer to the interface this pointer - virtual void SetOrigRetPtr(const void *ptr) = 0; //!< Sets the original return pointer - virtual void SetOverrideRetPtr(void *ptr) = 0; //!< Sets the override result pointer - virtual bool ShouldContinue() = 0; //!< Returns false if the hook loop should exit - - /** - * @brief Remove a hook manager. Auto-removes all hooks attached to it from plugin plug. - * - * @param plug The owner of the hook manager - * @param pubFunc The hook manager's info function - */ - virtual void RemoveHookManager(Plugin plug, HookManagerPubFunc pubFunc) = 0; - - virtual void DoRecall() = 0; //!< Initiates a recall sequence - /* - HOW RECALLS WORK: - - The problem: - Users want the ability to change parameters of the called function - from inside their handler. - The solution: - 1) Mark as "recall" - 2) Recall the function - 3) => SH's hook func gets called: - 4) The first iterator points at the first hook the last hookfunc didn't execute yet - 5) does all iteration and returns normally - 6) The user's handler returns immediately - 7) The hook func returns immediately as well - - Also note that the recalled hookfunc starts with the status the recalling hookfunc - ended with. The last handler (doing the recall) is also able to specify its own - META_RES. - */ - - virtual void *GetOverrideRetPtr() = 0; //!< Returns the pointer set by SetOverrideRetPtr - - /** - * @brief Set up the hook loop. Equivalent to calling: - * SetStatusPtr, SetPrevResPtr, SetCurResPtr, SetIfacePtrPtr, SetOrigRetPtr, Get/SetOverrideRetPtr - * - * @param statusPtr pointer to status variable - * @param prevResPtr pointer to previous result variable - * @param curResPtr pointer to current result variable - * @param ifacePtrPtr pointer to interface this pointer variable - * @param origRetPr pointer to original return value variable. NULL for void funcs - * @param overrideRetPtr pointer to override return value variable. NULL for void funcs - * - * @return Override Return Pointer the hookfunc should use (may differ from overrideRetPtr - * when the hook func is being called as part of a recall - */ - virtual void *SetupHookLoop(META_RES *statusPtr, META_RES *prevResPtr, META_RES *curResPtr, - void **ifacePtrPtr, const void *origRetPtr, void *overrideRetPtr) = 0; - - //!< - }; - - // For META_RESULT_ORIG_RET and META_RESULT_OVERRIDE_RET: - // These have to be able to return references. If T is a reference, the pointers returned - // from the SH_GLOB_SHPTR are pointers to instances of ReferenceCarrier::type. - template struct MacroRefHelpers - { - inline static const T* GetOrigRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOrigRet()); - } - inline static const T* GetOverrideRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOverrideRet()); - } - }; - - template struct MacroRefHelpers - { - inline static T* GetOrigRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOrigRet()); - return &ref; - } - inline static T* GetOverrideRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOverrideRet()); - return &ref; - } - }; -} - -/************************************************************************/ -/* High level interface */ -/************************************************************************/ -#define META_RESULT_STATUS SH_GLOB_SHPTR->GetStatus() -#define META_RESULT_PREVIOUS SH_GLOB_SHPTR->GetPrevRes() -#define META_RESULT_ORIG_RET(type) *SourceHook::MacroRefHelpers::GetOrigRet(SH_GLOB_SHPTR) -#define META_RESULT_OVERRIDE_RET(type) *SourceHook::MacroRefHelpers::GetOverrideRet(SH_GLOB_SHPTR) -#define META_IFACEPTR(type) reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()) - -#define SET_META_RESULT(result) SH_GLOB_SHPTR->SetRes(result) -#define RETURN_META(result) do { SET_META_RESULT(result); return; } while(0) -#define RETURN_META_VALUE(result, value) do { SET_META_RESULT(result); return (value); } while(0) - -// If a hook on a function which returns a reference does not want to specify a return value, -// it can use this macro. -// ONLY USE THIS WITH MRES_IGNORED AND MRES_HANDLED !!! -#define RETURN_META_NOREF(result, rettype) do { SET_META_RESULT(result); return reinterpret_cast(*SH_GLOB_SHPTR); } while(0) - -// only call these from the hook handlers directly! -// :TODO: enforce it ? - -// Why take a memfuncptr instead of iface and func when we have to deduce the iface anyway now? -// Well, without it, there'd be no way to specify which overloaded version we want in _VALUE - -// SourceHook::SetOverrideRet is defined later. -#define RETURN_META_NEWPARAMS(result, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_NEWPARAMS(result, value, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* meh, set the override result here because we don't get a chance to return */ \ - /* before continuing the hook loop through the recall */ \ - SourceHook::SetOverrideResult(memfuncptr)(SH_GLOB_SHPTR, value); \ - } \ - RETURN_META_VALUE(MRES_SUPERCEDE, \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams); \ - } while (0) - -// :TODO: thisptroffs in MNEWPARAMS ?? - -#if SH_COMP == SH_COMP_MSVC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - void *addr; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; - -#elif SH_COMP == SH_COMP_GCC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.s.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; \ - u.s.adjustor = 0; - -#endif - -#define RETURN_META_MNEWPARAMS(result, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - (thisptr->*(u.mfp)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_MNEWPARAMS(result, value, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* see RETURN_META_VALUE_NEWPARAMS */ \ - SourceHook::SetOverrideResult(SH_GLOB_SHPTR, value); \ - } \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - RETURN_META_VALUE(MRES_SUPERCEDE, (thisptr->*(u.mfp)) newparams); \ - } while (0) - -/** -* @brief Get/generate callclass for an interface pointer -* -* @param ifaceptr The interface pointer -*/ -template -inline SourceHook::CallClass *SH_GET_CALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), sizeof(ifacetype))); -} - -template -inline SourceHook::CallClass *SH_GET_MCALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr, int ifacesize) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), ifacesize)); -} - -template -inline void SH_RELEASE_CALLCLASS_R(SourceHook::ISourceHook *shptr, SourceHook::CallClass *ptr) -{ - shptr->ReleaseCallClass(reinterpret_cast(ptr)); -} - -#define SH_MANUALHOOK_RECONFIGURE(hookname, pvtblindex, pvtbloffs, pthisptroffs) \ - do { \ - SH_GLOB_SHPTR->RemoveHookManager(SH_GLOB_PLUGPTR, SH_MFHCls(hookname)::HookManPubFunc); \ - SH_MFHCls(hookname)::ms_MFI.thisptroffs = pthisptroffs; \ - SH_MFHCls(hookname)::ms_MFI.vtblindex = pvtblindex; \ - SH_MFHCls(hookname)::ms_MFI.vtbloffs = pvtbloffs; \ - } while (0) - -#define SH_GET_CALLCLASS(ptr) SH_GET_CALLCLASS_R(SH_GLOB_SHPTR, ptr) -#define SH_GET_MCALLCLASS(ptr, size) SH_GET_MCALLCLASS_R(SH_GLOB_SHPTR, reinterpret_cast(ptr), size) -#define SH_RELEASE_CALLCLASS(ptr) SH_RELEASE_CALLCLASS_R(SH_GLOB_SHPTR, ptr) - -#define SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHAdd##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_ADD_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHRemove##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_REMOVE_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_ADD_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMAdd##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_ADD_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMRemove##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_REMOVE_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_NOATTRIB - - - - -#if SH_COMP == SH_COMP_MSVC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; -#elif SH_COMP == SH_COMP_GCC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; \ - reinterpret_cast(&mfp)[1] = 0; -#else -# error Not supported yet. -#endif - -////////////////////////////////////////////////////////////////////////// -#define SH_FHCls(ift, iff, ov) __SourceHook_FHCls_##ift##iff##ov -#define SH_MFHCls(hookname) __SourceHook_MFHCls_##hookname - -#define SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) \ - SH_FHCls(ifacetype,ifacefunc,overload)() \ - { \ - GetFuncInfo(funcptr, ms_MFI); \ - } \ - \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - GetFuncInfo(funcptr, ms_MFI); \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_FHCls(ifacetype,ifacefunc,overload)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -// It has to be possible to use the macros in namespaces -// -> So we need to access and extend the global SourceHook namespace -// We use a namespace alias for this -#define SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, funcptr) \ - struct SH_FHCls(ifacetype,ifacefunc,overload) \ - { \ - static SH_FHCls(ifacetype,ifacefunc,overload) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) - -#define SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, funcptr) \ - }; \ - SH_FHCls(ifacetype,ifacefunc,overload) SH_FHCls(ifacetype,ifacefunc,overload)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_FHCls(ifacetype,ifacefunc,overload)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_FHCls(ifacetype,ifacefunc,overload)::ms_HI; \ - bool __SourceHook_FHAdd##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0 || !mfi.isVirtual) \ - return false; /* No non-virtual functions / virtual inheritance supported */ \ - \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, \ - new CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHRemove##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0) \ - return false; /* No virtual inheritance supported */ \ - \ - CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, &tmp, post); \ - } \ - -#define SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - struct SH_MFHCls(hookname) \ - { \ - static SH_MFHCls(hookname) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - \ - SH_MFHCls(hookname)() \ - { \ - ms_MFI.isVirtual = true; \ - ms_MFI.thisptroffs = pthisptroffs; \ - ms_MFI.vtblindex = pvtblidx; \ - ms_MFI.vtbloffs = pvtbloffs; \ - } \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - /* we don't set ms_MFI here because manual hookmans can be reconfigured */ \ - /* :FIXME: possible problem: someone adding a hook from a constructor of a global entity */ \ - /* which is construced before SH_MFHCls(hookname)() gets called? */ \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_MFHCls(hookname)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -#define SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - }; \ - SH_MFHCls(hookname) SH_MFHCls(hookname)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_MFHCls(hookname)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_MFHCls(hookname)::ms_HI; \ - bool __SourceHook_FHMAdd##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, \ - new ::SourceHook::CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHMRemove##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - ::SourceHook::CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, &tmp, post); \ - } \ - - -#define SH_SETUPCALLS(rettype, paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - return (reinterpret_cast(this)->*mfp)params; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - typedef ReferenceCarrier::type my_rettype; \ - my_rettype orig_ret; \ - my_rettype override_ret; \ - my_rettype plugin_ret; \ - void* ifptr; \ - my_rettype *pOverrideRet = reinterpret_cast(SH_GLOB_SHPTR->SetupHookLoop( \ - &status, &prev_res, &cur_res, &ifptr, &orig_ret, &override_ret)); - -#define SH_CALL_HOOKS(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - plugin_ret = reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (cur_res >= MRES_OVERRIDE) \ - *pOverrideRet = plugin_ret; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG(rettype, paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - orig_ret = (reinterpret_cast(this)->*mfp)params; \ - } \ - else \ - orig_ret = override_ret; \ - -#define SH_RETURN() \ - SH_GLOB_SHPTR->HookLoopEnd(); \ - return status >= MRES_OVERRIDE ? *pOverrideRet : orig_ret; - -#define SH_HANDLEFUNC(paramtypes, params, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params) \ - SH_CALL_HOOKS(pre, params) \ - SH_CALL_ORIG(rettype, paramtypes, params) \ - SH_CALL_HOOKS(post, params) \ - SH_RETURN() - -////////////////////////////////////////////////////////////////////////// -#define SH_SETUPCALLS_void(paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - return; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - void* ifptr; \ - SH_GLOB_SHPTR->SetupHookLoop(&status, &prev_res, &cur_res, &ifptr, NULL, NULL); \ - -#define SH_CALL_HOOKS_void(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG_void(paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - } - -#define SH_RETURN_void() \ - SH_GLOB_SHPTR->HookLoopEnd(); - -#define SH_HANDLEFUNC_void(paramtypes, params) \ - SH_SETUPCALLS_void(paramtypes, params) \ - SH_CALL_HOOKS_void(pre, params) \ - SH_CALL_ORIG_void(paramtypes, params) \ - SH_CALL_HOOKS_void(post, params) \ - SH_RETURN_void() - - -// Special vafmt handlers -// :TODO: what -#define SH_HANDLEFUNC_vafmt(paramtypes, params_orig, params_plug, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(pre, params_plug) \ - SH_CALL_ORIG(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(post, params_plug) \ - SH_RETURN() - -#define SH_HANDLEFUNC_void_vafmt(paramtypes, params_orig, params_plug) \ - SH_SETUPCALLS_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(pre, params_plug) \ - SH_CALL_ORIG_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(post, params_plug) \ - SH_RETURN_void() - -////////////////////////////////////////////////////////////////////////// - -// :FIXME: -// sizeof on references returns the size of the datatype, NOT the pointer size or something -// -> one should probably flag references in __SourceHook_ParamSizes_* ! -// or simply assume that their size is sizeof(void*)=SH_PTRSIZE... could be doable through a simple template - -@[$1,0,$a: -// ********* Support for $1 arguments ********* -#define SH_DECL_HOOK$1(ifacetype, ifacefunc, attr, overload, rettype@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]@[$1!=0:, @]rettype> FD; \ - virtual rettype Func(@[$2,1,$1|, :param$2 p$2@]) \ - { SH_HANDLEFUNC((@[$2,1,$1|, :param$2@]), (@[$2,1,$1|, :p$2@]), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - $1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK$1_void(ifacetype, ifacefunc, attr, overload@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]> FD; \ - virtual void Func(@[$2,1,$1|, :param$2 p$2@]) \ - { SH_HANDLEFUNC_void((@[$2,1,$1|, :param$2@]), (@[$2,1,$1|, :p$2@])); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - $1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK$1_vafmt(ifacetype, ifacefunc, attr, overload, rettype@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate@($1+1)<@[$2,1,$1|, :param$2@]@[$1!=0:, @]const char *, rettype> FD; \ - virtual rettype Func(@[$2,1,$1|, :param$2 p$2@]@[$1!=0:, @]const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((@[$2,1,$1|, :param$2@]@[$1!=0:, @]...), (@[$2,1,$1|, :p$2@]@[$1!=0:, @]"%s", buf), (@[$2,1,$1|, :p$2@]@[$1!=0:, @]buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - $1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK$1_void_vafmt(ifacetype, ifacefunc, attr, overload@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate@($1+1)<@[$2,1,$1|, :param$2@]@[$1!=0:, @]const char *> FD; \ - virtual void Func(@[$2,1,$1|, :param$2 p$2@]@[$1!=0:, @]const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((@[$2,1,$1|, :param$2@]@[$1!=0:, @]...), (@[$2,1,$1|, :p$2@]@[$1!=0:, @]"%s", buf), (@[$2,1,$1|, :p$2@]@[$1!=0:, @]buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - $1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK$1(hookname, vtblidx, vtbloffs, thisptroffs, rettype@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]@[$1!=0:, @]rettype> FD; \ - virtual rettype Func(@[$2,1,$1|, :param$2 p$2@]) \ - { SH_HANDLEFUNC((@[$2,1,$1|, :param$2@]), (@[$2,1,$1|, :p$2@]), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(@[$2,1,$1|, :param$2@]); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - $1, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK$1_void(hookname, vtblidx, vtbloffs, thisptroffs@[$2,1,$1:, param$2@]) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate$1<@[$2,1,$1|, :param$2@]> FD; \ - virtual void Func(@[$2,1,$1|, :param$2 p$2@]) \ - { SH_HANDLEFUNC_void((@[$2,1,$1|, :param$2@]), (@[$2,1,$1|, :p$2@])); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(@[$2,1,$1|, :param$2@]); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0@[$2,1,$1:, sizeof(param$2)@] }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - $1, __SourceHook_ParamSizesM_##hookname); \ - -@] - - -////////////////////////////////////////////////////////////////////////// -// SH_CALL - -#if SH_COMP == SH_COMP_MSVC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = origfunc; \ - \ - void *adjustedthisptr = reinterpret_cast(reinterpret_cast(m_CC->GetThisPtr()) + mfi.thisptroffs); \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *adjustedthisptr = reinterpret_cast(m_CC->GetThisPtr()) + m_ThisPtrOffs; \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.addr) \ - u.addr = (*reinterpret_cast(adjustedthisptr + m_VtblOffs))[m_VtblIdx]; \ - \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -#elif SH_COMP == SH_COMP_GCC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = origfunc; \ - u.s.adjustor = mfi.thisptroffs; \ - \ - return (reinterpret_cast(m_CC->GetThisPtr())->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *thisptr = reinterpret_cast(m_CC->GetThisPtr()); \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.s.addr) \ - u.s.addr = (*reinterpret_cast(thisptr + m_ThisPtrOffs + m_VtblOffs))[m_VtblIdx]; \ - \ - u.s.adjustor = m_ThisPtrOffs; \ - return (reinterpret_cast(thisptr)->*u.mfpnew)call; \ -} - -#endif - -namespace SourceHook -{ -@[$1,0,$a: - // Support for $1 arguments - template class ExecutableClass$1 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass$1(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(@[$2,1,$1|, :Param$2 p$2@]) const - SH_MAKE_EXECUTABLECLASS_OB((@[$2,1,$1|, :p$2@]), (@[$2,1,$1|, :Param$2@])) - - @[$2,$1+1,$a: - template <@[$3,$1+1,$2|, :class Param$3@]> RetType operator()(@[$3,1,$2|, :Param$3 p$3@]) const - SH_MAKE_EXECUTABLECLASS_OB((@[$3,1,$2|, :p$3@]), (@[$3,1,$2|, :Param$3@])) - @] - }; - - template class MExecutableClass$1 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass$1(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(@[$2,1,$1|, :Param$2 p$2@]) const - SH_MAKE_MEXECUTABLECLASS_OB((@[$2,1,$1|, :p$2@]), (@[$2,1,$1|, :Param$2@])) - - @[$2,$1+1,$a: - template <@[$3,$1+1,$2|, :class Param$3@]> RetType operator()(@[$3,1,$2|, :Param$3 p$3@]) const - SH_MAKE_MEXECUTABLECLASS_OB((@[$3,1,$2|, :p$3@]), (@[$3,1,$2|, :Param$3@])) - @] - }; -@] - -} - -// SH_CALL needs to deduce the return type -> it uses templates and function overloading -// That's why SH_CALL takes two parameters: "mfp2" of type RetType(X::*mfp)(params), and "mfp" of type MFP -// The only purpose of the mfp2 parameter is to extract the return type - -@[$1,0,$a: -// Support for $1 arguments -template -SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(@[$2,1,$1|, :Param$2@])) -{ - return SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]>(ptr, mfp); -} - -template -SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(@[$2,1,$1|, :Param$2@])const) -{ - return SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]>(ptr, mfp); -} - -template -SourceHook::MExecutableClass$1 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(@[$2,1,$1|, :Param$2@]), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass$1(ptr, vtbloffs, vtblidx, thisptroffs); -} -@] - -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 -// GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it - -@[$1,0,$a: -// Support for $1 arguments -template -SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...)) -{ - return SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]>(ptr, mfp); -} - -template -SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(@[$2,1,$1|, :Param$2@]@[$1!=0:, @]...)const) -{ - return SourceHook::ExecutableClass$1, MFP, RetType@[$2,1,$1:, Param$2@]>(ptr, mfp); -} - -@] - -#endif - -#define SH_CALL(ptr, mfp) SH_CALL2((ptr), (mfp), (mfp)) -#define SH_MCALL(ptr, mhookname) SH_MCALL2((ptr), SH_MFHCls(mhookname)::ECMFP(), SH_MFHCls(mhookname)::ms_MFI.vtblindex, \ - SH_MFHCls(mhookname)::ms_MFI.vtbloffs, SH_MFHCls(mhookname)::ms_MFI.thisptroffs) - -#undef SH_MAKE_EXECUTABLECLASS_OB - -////////////////////////////////////////////////////////////////////////// -// SetOverrideRet and RecallGetIface for recalls -// These take a ISourceHook pointer instead of using SH_GLOB_SHPTR directly -// The reason is that the user may want to redefine SH_GLOB_SHPTR - then the macros -// (META_RETURN_VALUE_NEWPARAMS) should obey the new pointer. - -namespace SourceHook -{ - template - void SetOverrideResult(ISourceHook *shptr, const RetType res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - - // SetOverrideResult used to be implemented like this: - // SetOverrideResult(shptr, memfuncptr, return); - // normally the compiler can deduce the return type from memfuncptr, but (at least msvc8) failed when it was a reference - // (it thought it was ambigous - the ref and non-ref type) - // so now SetOverrideResult(memfuncptr) deduces the ret type, and returns a functor which does the work - // new syntax: SetOverrideResult(memfuncptr)(shptr, return) - // This also allows us to create a special version for references which respects ReferenceCarrier. - - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - }; - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T &res) - { - // overrideretptr points to ReferenceCarrier - *reinterpret_cast::type *>(shptr->GetOverrideRetPtr()) = res; - } - }; -@[$1,0,$a: - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(@[$2,1,$1|, :Param$2@])) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(@[$2,1,$1|, :Param$2@])) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } -@] -} - -#endif - // The pope is dead. -> :( diff --git a/sourcehook/sh_list.h b/sourcehook/sh_list.h deleted file mode 100644 index b672361..0000000 --- a/sourcehook/sh_list.h +++ /dev/null @@ -1,291 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_SMM_LIST_H -#define _INCLUDE_SMM_LIST_H - -#include -#include - -namespace SourceHook -{ - - //This class is from CSDM for AMX Mod X - /* - A circular, doubly-linked list with one sentinel node - - Empty: - m_Head = sentinel - m_Head->next = m_Head; - m_Head->prev = m_Head; - One element: - m_Head = sentinel - m_Head->next = node1 - m_Head->prev = node1 - node1->next = m_Head - node1->prev = m_Head - Two elements: - m_Head = sentinel - m_Head->next = node1 - m_Head->prev = node2 - node1->next = node2 - node1->prev = m_Head - node2->next = m_Head - node2->prev = node1 - */ - template - class List - { - public: - class iterator; - friend class iterator; - class ListNode - { - public: - ListNode(const T & o) : obj(o) { }; - ListNode() { }; - T obj; - ListNode *next; - ListNode *prev; - }; - private: - // Initializes the sentinel node. - // BAIL used malloc instead of new in order to bypass the need for a constructor. - ListNode *_Initialize() - { - ListNode *n = (ListNode *)malloc(sizeof(ListNode)); - n->next = n; - n->prev = n; - return n; - } - public: - List() : m_Head(_Initialize()), m_Size(0) - { - } - List(const List &src) : m_Head(_Initialize()), m_Size(0) - { - iterator iter; - for (iter=src.begin(); iter!=src.end(); iter++) - push_back( (*iter) ); - } - ~List() - { - clear(); - - // Don't forget to free the sentinel - if (m_Head) - { - free(m_Head); - m_Head = NULL; - } - } - void push_back(const T &obj) - { - ListNode *node = new ListNode(obj); - - node->prev = m_Head->prev; - node->next = m_Head; - m_Head->prev->next = node; - m_Head->prev = node; - - m_Size++; - } - size_t size() const - { - return m_Size; - } - - void clear() - { - ListNode *node = m_Head->next; - ListNode *temp; - m_Head->next = m_Head; - m_Head->prev = m_Head; - - // Iterate through the nodes until we find g_Head (the sentinel) again - while (node != m_Head) - { - temp = node->next; - delete node; - node = temp; - } - m_Size = 0; - } - bool empty() const - { - return (m_Size == 0); - } - T & back() - { - return m_Head->prev->obj; - } - private: - ListNode *m_Head; - size_t m_Size; - public: - class iterator - { - friend class List; - public: - iterator() - { - m_This = NULL; - } - iterator(const List &src) - { - m_This = src.m_Head; - } - iterator(ListNode *n) : m_This(n) - { - } - iterator(const iterator &where) - { - m_This = where.m_This; - } - //pre decrement - iterator & operator--() - { - if (m_This) - m_This = m_This->prev; - return *this; - } - //post decrement - iterator operator--(int) - { - iterator old(*this); - if (m_This) - m_This = m_This->prev; - return old; - } - - //pre increment - iterator & operator++() - { - if (m_This) - m_This = m_This->next; - return *this; - } - //post increment - iterator operator++(int) - { - iterator old(*this); - if (m_This) - m_This = m_This->next; - return old; - } - - const T & operator * () const - { - return m_This->obj; - } - T & operator * () - { - return m_This->obj; - } - - T * operator -> () - { - return &(m_This->obj); - } - const T * operator -> () const - { - return &(m_This->obj); - } - - bool operator != (const iterator &where) const - { - return (m_This != where.m_This); - } - bool operator ==(const iterator &where) const - { - return (m_This == where.m_This); - } - private: - ListNode *m_This; - }; - public: - iterator begin() const - { - return iterator(m_Head->next); - } - iterator end() const - { - return iterator(m_Head); - } - iterator erase(iterator &where) - { - ListNode *pNode = where.m_This; - iterator iter(where); - iter++; - - - // Works for all cases: empty list, erasing first element, erasing tail, erasing in the middle... - pNode->prev->next = pNode->next; - pNode->next->prev = pNode->prev; - - delete pNode; - m_Size--; - - return iter; - } - - iterator insert(iterator where, const T &obj) - { - // Insert obj right before where - - ListNode *node = new ListNode(obj); - ListNode *pWhereNode = where.m_This; - - pWhereNode->prev->next = node; - node->prev = pWhereNode->prev; - pWhereNode->prev = node; - node->next = pWhereNode; - - m_Size++; - - return iterator(node); - } - - public: - void remove(const T & obj) - { - iterator b; - for (b=begin(); b!=end(); b++) - { - if ( (*b) == obj ) - { - erase( b ); - break; - } - } - } - template - iterator find(const U & equ) const - { - iterator iter; - for (iter=begin(); iter!=end(); iter++) - { - if ( (*iter) == equ ) - return iter; - } - return end(); - } - List & operator =(const List &src) - { - clear(); - iterator iter; - for (iter=src.begin(); iter!=src.end(); iter++) - push_back( (*iter) ); - return *this; - } - }; -}; //NAMESPACE - -#endif //_INCLUDE_CSDM_LIST_H diff --git a/sourcehook/sh_memfuncinfo.h b/sourcehook/sh_memfuncinfo.h deleted file mode 100644 index a2f2d8c..0000000 --- a/sourcehook/sh_memfuncinfo.h +++ /dev/null @@ -1,912 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** - * @brief This file provides a way for getting information about a member function. - * @file sh_memfuncinfo.h - */ - -#ifndef __SHINT_MEMFUNC_INFO_H__ -#define __SHINT_MEMFUNC_INFO_H__ - -namespace SourceHook -{ - - // Don Clugston: - // implicit_cast< > - // I believe this was originally going to be in the C++ standard but - // was left out by accident. It's even milder than static_cast. - // I use it instead of static_cast<> to emphasize that I'm not doing - // anything nasty. - // Usage is identical to static_cast<> - template - inline OutputClass implicit_cast(InputClass input){ - return input; - } - - - struct MemFuncInfo - { - bool isVirtual; // Is the function virtual? - int thisptroffs; // The this pointer the function expects to be called with - // If -1, you need to call the GetFuncInfo_GetThisPtr function - int vtblindex; // The function's index in the vtable (0-based, 1=second entry, 2=third entry, ...) - int vtbloffs; // The vtable pointer - }; - - // Ideas by Don Clugston. - // Check out his excellent paper: http://www.codeproject.com/cpp/FastDelegate.asp - - template struct MFI_Impl - { - template static inline void GetFuncInfo(MFP *mfp, MemFuncInfo &out) - { - static char weird_memfunc_pointer_exclamation_mark_arrow_error[N-1000]; - } - }; - -# if SH_COMP == SH_COMP_GCC - - template<> struct MFI_Impl<2*SH_PTRSIZE> // All of these have size==8/16 - { - struct GCC_MemFunPtr - { - union - { - void *funcadr; // always even - intptr_t vtable_index_plus1; // = vindex+1, always odd - }; - intptr_t delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - GCC_MemFunPtr *mfp_detail = (GCC_MemFunPtr*)&mfp; - out.thisptroffs = mfp_detail->delta; - if (mfp_detail->vtable_index_plus1 & 1) - { - out.vtblindex = (mfp_detail->vtable_index_plus1 - 1) / SH_PTRSIZE; - out.vtbloffs = 0; - out.isVirtual = true; - } - else - out.isVirtual = false; - } - }; - -# elif SH_COMP == SH_COMP_MSVC - - namespace - { - int MFI_GetVtblOffset(void *mfp) - { - unsigned char *addr = (unsigned char*)mfp; - if (*addr == 0xE9) // Jmp - { - // May or may not be! - // Check where it'd jump - addr += 5 /*size of the instruction*/ + *(unsigned long*)(addr + 1); - } - - // Check whether it's a virtual function call - // They look like this: - // 004125A0 8B 01 mov eax,dword ptr [ecx] - // 004125A2 FF 60 04 jmp dword ptr [eax+4] - // ==OR== - // 00411B80 8B 01 mov eax,dword ptr [ecx] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // However, for vararg functions, they look like this: - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 0048F0B6 FF 60 08 jmp dword ptr [eax+8] - // ==OR== - // 0048F0B0 8B 44 24 04 mov eax,dword ptr [esp+4] - // 0048F0B4 8B 00 mov eax,dword ptr [eax] - // 00411B82 FF A0 18 03 00 00 jmp dword ptr [eax+318h] - - // With varargs, the this pointer is passed as if it was the first argument - - bool ok = false; - if (addr[0] == 0x8B && addr[1] == 0x44 && addr[2] == 0x24 && addr[3] == 0x04 && - addr[4] == 0x8B && addr[5] == 0x00) - { - addr += 6; - ok = true; - } - else if (addr[0] == 0x8B && addr[1] == 0x01) - { - addr += 2; - ok = true; - } - if (!ok) - return -1; - - if (*addr++ == 0xFF) - { - if (*addr == 0x60) - { - return *++addr / 4; - } - else if (*addr == 0xA0) - { - return *((unsigned int*)++addr) / 4; - } - else if (*addr == 0x20) - return 0; - else - return -1; - } - return -1; - } - } - - template<> struct MFI_Impl<1*SH_PTRSIZE> // simple ones - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = 0; - out.vtbloffs = 0; - } - }; - - template<> struct MFI_Impl<2*SH_PTRSIZE> // more complicated ones! - { - struct MSVC_MemFunPtr2 - { - void *funcadr; - int delta; - }; - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - out.thisptroffs = reinterpret_cast(&mfp)->delta; - out.vtbloffs = 0; - } - }; - - // By Don Clugston, adapted - template<> struct MFI_Impl<3*SH_PTRSIZE> // WOW IT"S GETTING BIGGER OMGOMOGMG - { - class __single_inheritance GenericClass; - class GenericClass {}; - - struct MicrosoftVirtualMFP { - void (GenericClass::*codeptr)(); // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtable_index; // or 0 if no virtual inheritance - }; - - struct GenericVirtualClass : virtual public GenericClass - { - typedef GenericVirtualClass * (GenericVirtualClass::*ProbePtrType)(); - GenericVirtualClass * GetThis() { return this; } - }; - - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - // This pointer - /* - union { - MFP func; - GenericClass* (T::*ProbeFunc)(); - MicrosoftVirtualMFP s; - } u; - u.func = mfp; - union { - GenericVirtualClass::ProbePtrType virtfunc; - MicrosoftVirtualMFP s; - } u2; - - // Check that the horrible_cast<>s will work - typedef int ERROR_CantUsehorrible_cast[sizeof(mfp)==sizeof(u.s) - && sizeof(mfp)==sizeof(u.ProbeFunc) - && sizeof(u2.virtfunc)==sizeof(u2.s) ? 1 : -1]; - // Unfortunately, taking the address of a MF prevents it from being inlined, so - // this next line can't be completely optimised away by the compiler. - u2.virtfunc = &GenericVirtualClass::GetThis; - u.s.codeptr = u2.s.codeptr; - out.thisptroffs = (reinterpret_cast(NULL)->*u.ProbeFunc)(); - */ - out.thisptroffs = -1; - out.vtbloffs = 0; - } - }; - - // Don: Nasty hack for Microsoft and Intel (IA32 and Itanium) - // unknown_inheritance classes go here - // This is probably the ugliest bit of code I've ever written. Look at the casts! - // There is a compiler bug in MSVC6 which prevents it from using this code. - template<> struct MFI_Impl<4*SH_PTRSIZE> // THE BIGGEST ONE!!!1GABEN - { - template static inline void GetFuncInfo(MFP mfp, MemFuncInfo &out) - { - out.vtblindex = MFI_GetVtblOffset(*(void**)&mfp); - out.isVirtual = out.vtblindex >= 0 ? true : false; - - // The member function pointer is 16 bytes long. We can't use a normal cast, but - // we can use a union to do the conversion. - union { - MFP func; - // In VC++ and ICL, an unknown_inheritance member pointer - // is internally defined as: - struct { - void *m_funcaddress; // points to the actual member function - int delta; // #bytes to be added to the 'this' pointer - int vtordisp; // #bytes to add to 'this' to find the vtable - int vtable_index; // or 0 if no virtual inheritance - } s; - } u; - // Check that the horrible_cast will work - typedef int ERROR_CantUsehorrible_cast[sizeof(u.func)==sizeof(u.s)? 1 : -1]; - u.func = mfp; - int virtual_delta = 0; - if (u.s.vtable_index) { // Virtual inheritance is used - /* - // First, get to the vtable. - // It is 'vtordisp' bytes from the start of the class. - int * vtable = *reinterpret_cast( - reinterpret_cast(thisptr) + u.s.vtordisp ); - - // 'vtable_index' tells us where in the table we should be looking. - virtual_delta = u.s.vtordisp + *reinterpret_cast( - reinterpret_cast(vtable) + u.s.vtable_index); - // The int at 'virtual_delta' gives us the amount to add to 'this'. - // Finally we can add the three components together. Phew! - out.thisptr = reinterpret_cast( - reinterpret_cast(thisptr) + u.s.delta + virtual_delta); - */ - out.vtbloffs = u.s.vtordisp; - out.thisptroffs = -1; - } - else - { - out.vtbloffs = out.vtblindex < 0 ? 0 : u.s.delta; - out.thisptroffs = u.s.delta; - } - }; - }; -# else -# error Unsupported compiler -# endif - - // This version does not take a this pointer - // Useful for hookdecls, as they ensure that mfp is correct through a static_cast - template inline void GetFuncInfo(X mfp, MemFuncInfo &out) - { - MFI_Impl::GetFuncInfo(mfp, out); - } - - // Versions which do take a this - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(), MemFuncInfo &out) - { - RetType(Y::*mfp2)() = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)() const, MemFuncInfo &out) - { - RetType(Y::*mfp2)() const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - // GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...), MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - template - inline void GetFuncInfo(Y *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) const, MemFuncInfo &out) - { - RetType(Y::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...) const = mfp; - MFI_Impl::GetFuncInfo(mfp2, out); - } - - - -#endif - -} - -#endif diff --git a/sourcehook/sh_memory.h b/sourcehook/sh_memory.h deleted file mode 100644 index d2d3531..0000000 --- a/sourcehook/sh_memory.h +++ /dev/null @@ -1,186 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko, Scott "Damaged Soul" Ehlert -* Contributors: lancevorgin, XAD, theqizmo -* ============================ -*/ - -#ifndef __SHINT_MEMORY_H__ -#define __SHINT_MEMORY_H__ - -// Feb 17 / 2005: -// Unprotect now sets to readwrite -// The vtable doesn't need to be executable anyway - -# if /********/ defined _WIN32 -# include -# define SH_MEM_READ 1 -# define SH_MEM_WRITE 2 -# define SH_MEM_EXEC 4 -# elif /******/ defined __linux__ -# include -# include -# include -# include -// http://www.die.net/doc/linux/man/man2/mprotect.2.html -# include -# ifndef PAGESIZE -# define PAGESIZE 4096 -# endif -# define SH_MEM_READ PROT_READ -# define SH_MEM_WRITE PROT_WRITE -# define SH_MEM_EXEC PROT_EXEC - -// We need to align addr down to pagesize on linux -// We assume PAGESIZE is a power of two -# define SH_LALIGN(x) (void*)((intptr_t)(x) & ~(PAGESIZE-1)) -# define SH_LALDIF(x) ((intptr_t)(x) & (PAGESIZE-1)) -# else -# error Unsupported OS/Compiler -# endif - - -namespace SourceHook -{ - inline bool SetMemAccess(void *addr, size_t len, int access) - { -# ifdef __linux__ - return mprotect(SH_LALIGN(addr), len + SH_LALDIF(addr), access)==0 ? true : false; -# else - DWORD tmp; - DWORD prot; - switch (access) - { - case SH_MEM_READ: - prot = PAGE_READONLY; break; - case SH_MEM_READ | SH_MEM_WRITE: - prot = PAGE_READWRITE; break; - case SH_MEM_READ | SH_MEM_EXEC: - prot = PAGE_EXECUTE_READ; break; - default: - case SH_MEM_READ | SH_MEM_WRITE | SH_MEM_EXEC: - prot = PAGE_EXECUTE_READWRITE; break; - } - return VirtualProtect(addr, len, prot, &tmp) ? true : false; -# endif - } - -#ifdef __linux__ - namespace - { - bool g_BadReadCalled; - jmp_buf g_BadReadJmpBuf; - - static void BadReadHandler(int sig) - { - if (g_BadReadCalled) - longjmp(g_BadReadJmpBuf, 1); - } - } -#endif - - /** - * @brief Checks whether the specified memory region is (still) accessible - * - * @param addr The lower boundary - * @param len Length of the region to be checked - */ - namespace - { - bool ModuleInMemory(char *addr, size_t len) - { -#ifdef __linux__ - // On linux, first check /proc/self/maps - long lower = reinterpret_cast(addr); - long upper = lower + len; - - FILE *pF = fopen("/proc/self/maps", "r"); - if (pF) - { - // Linux /proc/self/maps -> parse - // Format: - // lower upper prot stuff path - // 08048000-0804c000 r-xp 00000000 03:03 1010107 /bin/cat - long rlower, rupper; - while (fscanf(pF, "%lx-%lx", &rlower, &rupper) != EOF) - { - // Check whether we're IN THERE! - if (lower >= rlower && upper <= rupper) - { - fclose(pF); - return true; - } - // Read to end of line - int c; - while ((c = fgetc(pF)) != '\n') - { - if (c == EOF) - break; - } - if (c == EOF) - break; - } - fclose(pF); - return false; - } - pF = fopen("/proc/curproc/map", "r"); - if (pF) - { - // FreeBSD /proc/curproc/map -> parse - // 0x804800 0x805500 13 15 0xc6e18960 r-x 21 0x0 COW NC vnode - long rlower, rupper; - while (fscanf(pF, "0x%lx 0x%lx", &rlower, &rupper) != EOF) - { - // Check whether we're IN THERE! - if (lower >= rlower && upper <= rupper) - { - fclose(pF); - return true; - } - // Read to end of line - int c; - while ((c = fgetc(pF)) != '\n') - { - if (c == EOF) - break; - } - if (c == EOF) - break; - } - fclose(pF); - return false; - } - - // Both of the above failed, try to actually read and trap sigsegv (implemented by Damaged Soul) - void(*prevHandler)(int sig); - g_BadReadCalled = true; - - if (setjmp(g_BadReadJmpBuf)) - return true; - - prevHandler = signal(SIGSEGV, BadReadHandler); - - volatile const char *p = reinterpret_cast(addr); - char dummy; - - for (size_t i = 0; i < len; i++) - dummy = p[i]; - - g_BadReadCalled = false; - - signal(SIGSEGV, prevHandler); - - return false; -#else - // On Win32, simply use IsBadReadPtr - return !IsBadReadPtr(addr, len); -#endif - } - } -} - -#endif diff --git a/sourcehook/sh_stack.h b/sourcehook/sh_stack.h deleted file mode 100644 index 8ab9168..0000000 --- a/sourcehook/sh_stack.h +++ /dev/null @@ -1,237 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -#ifndef __SH_STACK_H__ -#define __SH_STACK_H__ - -#include - -#define SH_STACK_DEFAULT_SIZE 4 - -namespace SourceHook -{ - // Vector - template class CStack - { - T *m_Elements; - size_t m_AllocatedSize; - size_t m_UsedSize; - public: - friend class iterator; - class iterator - { - CStack *m_pParent; - size_t m_Index; - public: - iterator(CStack *pParent, size_t id) : m_pParent(pParent), m_Index(id) - { - } - - iterator(CStack *pParent) : m_pParent(pParent), m_Index(0) - { - } - - iterator() : m_pParent(NULL), m_Index(0) - { - } - - T &operator *() - { - return m_pParent->m_Elements[m_Index]; - } - const T &operator *() const - { - return m_pParent->m_Elements[m_Index]; - } - - T * operator->() - { - return m_pParent->m_Elements + m_Index; - } - - const T * operator->() const - { - return m_pParent->m_Elements + m_Index; - } - - iterator & operator++() // preincrement - { - ++m_Index; - return (*this); - } - - iterator operator++(int) // postincrement - { - iterator tmp = *this; - ++m_Index; - return tmp; - } - - iterator & operator--() // predecrement - { - --m_Index; - return (*this); - } - - iterator operator--(int) // postdecrememnt - { - iterator tmp = *this; - --m_Index; - return tmp; - } - - bool operator==(const iterator & right) const - { - return (m_pParent == right.m_pParent && m_Index == right.m_Index); - } - - bool operator!=(const iterator & right) const - { - return !(*this == right); - } - }; - CStack() : m_Elements(new T[SH_STACK_DEFAULT_SIZE]), - m_AllocatedSize(SH_STACK_DEFAULT_SIZE), - m_UsedSize(0) - { - } - CStack(size_t size) : m_Elements(new T[size]), - m_AllocatedSize(size), - m_UsedSize(0) - { - } - - CStack(const CStack &other) : m_Elements(NULL), - m_AllocatedSize(0), - m_UsedSize(0) - { - reserve(other.m_AllocatedSize); - m_UsedSize = other.m_UsedSize; - for (size_t i = 0; i < m_UsedSize; ++i) - m_Elements[i] = other.m_Elements[i]; - } - - ~CStack() - { - if (m_Elements) - delete [] m_Elements; - } - - void operator=(const CStack &other) - { - if (m_AllocatedSize < other.m_AllocatedSize) - { - if (m_Elements) - delete [] m_Elements; - m_Elements = new T[other.m_AllocatedSize]; - m_AllocatedSize = other.m_AllocatedSize; - } - m_UsedSize = other.m_UsedSize; - for (size_t i = 0; i < m_UsedSize; ++i) - m_Elements[i] = other.m_Elements[i]; - } - - bool push(const T &val) - { - if (m_UsedSize + 1 == m_AllocatedSize) - { - // zOHNOES! REALLOCATE! - m_AllocatedSize *= 2; - T *newElements = new T[m_AllocatedSize]; - if (!newElements) - { - m_AllocatedSize /= 2; - return false; - } - if (m_Elements) - { - for (size_t i = 0; i < m_UsedSize; ++i) - newElements[i] = m_Elements[i]; - delete [] m_Elements; - } - m_Elements = newElements; - } - m_Elements[m_UsedSize++] = val; - return true; - } - - void pop() - { - --m_UsedSize; - } - - void popall() - { - m_UsedSize = 0; - } - - T &front() - { - return m_Elements[m_UsedSize - 1]; - } - - const T &front() const - { - return m_Elements[m_UsedSize - 1]; - } - - T &second() - { - return m_Elements[m_UsedSize - 2]; - } - - const T &second() const - { - return m_Elements[m_UsedSize - 2]; - } - - iterator begin() - { - return iterator(this, 0); - } - iterator end() - { - return iterator(this, m_UsedSize); - } - - size_t size() - { - return m_UsedSize; - } - size_t capacity() - { - return m_AllocatedSize; - } - bool empty() - { - return m_UsedSize == 0 ? true : false; - } - bool reserve(size_t size) - { - if (size > m_AllocatedSize) - { - T *newElements = new T[size]; - if (!newElements) - return false; - if (m_Elements) - { - for (size_t i = 0; i < m_UsedSize; ++i) - newElements[i] = m_Elements[i]; - delete [] m_Elements; - } - m_Elements = newElements; - m_AllocatedSize = size; - } - return true; - } - }; -}; //namespace SourceHook - -#endif diff --git a/sourcehook/sh_string.h b/sourcehook/sh_string.h deleted file mode 100755 index 79f96b8..0000000 --- a/sourcehook/sh_string.h +++ /dev/null @@ -1,401 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -/* AMX Mod X - * - * by the AMX Mod X Development Team - */ - -#ifndef _INCLUDE_CSTRING_H -#define _INCLUDE_CSTRING_H - -#include -#include - -namespace SourceHook -{ -class String -{ -public: - String() - { - v = NULL; - a_size = 0; - //assign(""); - } - - ~String() - { - if (v) - delete [] v; - } - - String(const char *src) - { - v = NULL; - a_size = 0; - assign(src); - } - - String(const String &src) - { - v = NULL; - a_size = 0; - assign(src.c_str()); - } - - bool operator ==(const String &other) - { - return (compare(other.c_str()) == 0); - } - - bool operator ==(const char *other) - { - return (compare(other) == 0); - } - - const char *c_str() { return v?v:""; } - - const char *c_str() const { return v?v:""; } - - void append(const char *t) - { - Grow(size() + strlen(t) + 1); - strcat(v, t); - } - - void append(const char c) - { - size_t len = size(); - Grow(len + 2); - v[len] = c; - v[len + 1] = '\0'; - } - - void append(String &d) - { - append(d.c_str()); - } - - void assign(const String &src) - { - assign(src.c_str()); - } - - void assign(const char *d) - { - if (!d) - { - clear(); - } else { - Grow(strlen(d) + 1, false); - strcpy(v, d); - } - } - - void clear() - { - if (v) - v[0] = '\0'; - } - - int compare (const char *d) const - { - if (!v) - return strcmp("", d); - else - return strcmp(v, d); - } - - //Added this for amxx inclusion - bool empty() const - { - if (!v) - return true; - - if (v[0] == '\0') - return true; - - return false; - } - - size_t size() const - { - if (v) - return strlen(v); - else - return 0; - } - - int find(const char c, int index = 0) const - { - int len = static_cast(size()); - if (len < 1) - return npos; - if (index >= len || index < 0) - return npos; - int i = 0; - for (i=index; i(size()); - if (len < 1) - return npos; - if (index >= len || index < npos) - return npos; - int i; - if (index == npos) - i = len - 1; - else - i = index; - - for (; i>=0; i--) - { - if (v[i] == c) - { - return i; - } - } - - return npos; - } - - bool is_space(int c) const - { - if (c == '\f' || c == '\n' || - c == '\t' || c == '\r' || - c == '\v' || c == ' ') - { - return true; - } - - return false; - } - - void trim() - { - if (!v) - return; - - unsigned int i = 0; - unsigned int j = 0; - size_t len = strlen(v); - - if (len == 1) - { - if (is_space(v[i])) - { - clear(); - return; - } - } - - unsigned char c0 = v[0]; - - if (is_space(c0)) - { - for (i=0; i=0; i--) - { - if (!is_space(v[i]) - || (is_space(v[i]) && i==0)) - { - erase(i+1, j); - break; - } - j++; - } - } - - if (len == 1) - { - if (is_space(v[0])) - { - clear(); - return; - } - } - } - - void erase(unsigned int start, int num = npos) - { - if (!v) - return; - unsigned int i = 0; - size_t len = size(); - //check for bounds - if (num == npos || start+num > len-start) - num = len - start; - //do the erasing - bool copyflag = false; - for (i=0; i=start && i= len || !v) - return ns; - - if (num == npos) - { - num = len - index; - } else if (index+num >= len) { - num = len - index; - } - - unsigned int i = 0; - unsigned int nslen = num + 2; - - ns.Grow(nslen); - - for (i=index; i= 65 && v[i] <= 90) - v[i] &= ~(1<<5); - } - } - - String & operator = (const String &src) - { - assign(src); - return *this; - } - - String & operator = (const char *src) - { - assign(src); - return *this; - - } - - char operator [] (unsigned int index) const - { - if (index > size() || !v) - { - return -1; - } else { - return v[index]; - } - } - - int at(int a) const - { - if (a < 0 || a >= (int)size() || !v) - return -1; - - return v[a]; - } - - bool at(int at, char c) - { - if (at < 0 || at >= (int)size() || !v) - return false; - - v[at] = c; - - return true; - } - -private: - void Grow(unsigned int d, bool copy=true) - { - if (d <= a_size) - return; - char *n = new char[d + 1]; - if (copy && v) - strcpy(n, v); - if (v) - delete [] v; - else - strcpy(n, ""); - v = n; - a_size = d + 1; - } - - char *v; - unsigned int a_size; -public: - static const int npos = -1; -}; - -}; //NAMESPACE - -#endif //_INCLUDE_CSTRING_H diff --git a/sourcehook/sh_tinyhash.h b/sourcehook/sh_tinyhash.h deleted file mode 100644 index 70e2ee8..0000000 --- a/sourcehook/sh_tinyhash.h +++ /dev/null @@ -1,534 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_SH_TINYHASH_H_ -#define _INCLUDE_SH_TINYHASH_H_ - -#include "sh_list.h" - -#define _T_INIT_HASH_SIZE 32 - -namespace SourceHook -{ - template - int HashFunction(const K & k); - - template - int HashAlt(const U &u); - - template - int CompareAlt(const U &k1, const K &k2); - - template - int Compare(const K & k1, const K & k2); - - /** - * This is a tiny, growable hash class. - * Meant for quick and dirty dictionaries only! - */ - template - class THash - { - public: - struct THashNode - { - THashNode(const K & k, const V & v) : - key(k), val(v) - { - }; - THashNode & operator =(const THashNode &other) - { - key = other.key; - val = other.val; - } - K key; - V val; - }; - typedef List * NodePtr; - public: - class const_iterator; - THash() : m_Buckets(NULL), m_numBuckets(0), m_percentUsed(0.0f) - { - _Refactor(); - } - THash(const THash &other) : m_Buckets(new NodePtr[other.m_numBuckets]), - m_numBuckets(other.m_numBuckets), m_percentUsed(other.m_percentUsed) - { - for (size_t i=0; ikey)->val = iter->val; - } - void operator=(const THash &other) - { - clear(); - for (const_iterator iter = other.begin(); iter != other.end(); ++iter) - _FindOrInsert(iter->key)->val = iter->val; - } - - ~THash() - { - _Clear(); - } - void clear() - { - _Clear(); - _Refactor(); - } - size_t GetBuckets() - { - return m_numBuckets; - } - float PercentUsed() - { - return m_percentUsed; - } - V & operator [](const K & key) - { - THashNode *pNode = _FindOrInsert(key); - return pNode->val; - } - private: - void _Clear() - { - typename List::iterator iter, end; - for (size_t i=0; iend(); - iter = m_Buckets[i]->begin(); - while (iter != end) - { - delete (*iter); - iter++; - } - delete m_Buckets[i]; - m_Buckets[i] = NULL; - } - } - if (m_Buckets) - delete [] m_Buckets; - m_Buckets = NULL; - m_numBuckets = 0; - } - public: - template - V & AltFindOrInsert(const U & ukey) - { - size_t place = HashAlt(ukey) % m_numBuckets; - THashNode *pNode = NULL; - if (!m_Buckets[place]) - { - m_Buckets[place] = new List; - pNode = new THashNode(ukey, V()); - m_Buckets[place]->push_back(pNode); - m_percentUsed += (1.0f / (float)m_numBuckets); - } else { - typename List::iterator iter; - for (iter=m_Buckets[place]->begin(); iter!=m_Buckets[place]->end(); iter++) - { - if (CompareAlt(ukey, (*iter)->key) == 0) - { - return (*iter)->val; - } - } - //node does not exist - pNode = new THashNode(ukey, V()); - m_Buckets[place]->push_back(pNode); - } - if (PercentUsed() > 0.75f) - { - _Refactor(); - } - return pNode->val; - } - private: - THashNode *_FindOrInsert(const K & key) - { - size_t place = HashFunction(key) % m_numBuckets; - THashNode *pNode = NULL; - if (!m_Buckets[place]) - { - m_Buckets[place] = new List; - pNode = new THashNode(key, V()); - m_Buckets[place]->push_back(pNode); - m_percentUsed += (1.0f / (float)m_numBuckets); - } else { - typename List::iterator iter; - for (iter=m_Buckets[place]->begin(); iter!=m_Buckets[place]->end(); iter++) - { - if (Compare((*iter)->key, key) == 0) - return (*iter); - } - //node does not exist - pNode = new THashNode(key, V()); - m_Buckets[place]->push_back(pNode); - } - if (PercentUsed() > 0.75f) - { - _Refactor(); - } - return pNode; - } - void _Refactor() - { - m_percentUsed = 0.0f; - if (!m_numBuckets) - { - m_numBuckets = _T_INIT_HASH_SIZE; - m_Buckets = new NodePtr[m_numBuckets]; - for (size_t i=0; i::iterator iter; - size_t place; - THashNode *pHashNode; - NodePtr *temp = new NodePtr[m_numBuckets]; - for (size_t i=0; ibegin(); iter != m_Buckets[i]->end(); iter++) - { - pHashNode = (*iter); - //rehash it with the new bucket filter - place = HashFunction(pHashNode->key) % m_numBuckets; - //add it to the new hash table - if (!temp[place]) - { - temp[place] = new List; - m_percentUsed += (1.0f / (float)m_numBuckets); - } - temp[place]->push_back(pHashNode); - } - //delete that bucket! - delete m_Buckets[i]; - m_Buckets[i] = NULL; - } - } - //reassign bucket table - delete [] m_Buckets; - m_Buckets = temp; - } - } - public: - friend class iterator; - friend class const_iterator; - class iterator - { - friend class THash; - public: - iterator() : curbucket(-1), hash(NULL), end(true) - { - }; - iterator(THash *h) : curbucket(-1), hash(h), end(false) - { - if (!h->m_Buckets) - end = true; - else - _Inc(); - }; - //pre increment - iterator & operator++() - { - _Inc(); - return *this; - } - //post increment - iterator operator++(int) - { - iterator old(*this); - _Inc(); - return old; - } - const THashNode & operator * () const - { - return *(*iter); - } - THashNode & operator * () - { - return *(*iter); - } - const THashNode * operator ->() const - { - return (*iter); - } - THashNode * operator ->() - { - return (*iter); - } - bool operator ==(const iterator &where) const - { - if (where.hash == this->hash - && where.end == this->end - && - (this->end || - ((where.curbucket == this->curbucket) - && (where.iter == iter)) - )) - return true; - return false; - } - bool operator !=(const iterator &where) const - { - return !( (*this) == where ); - } - - void erase() - { - if (end || !hash || curbucket < 0 || curbucket >= static_cast(hash->m_numBuckets)) - return; - - // Remove this element and move to the next one - iterator tmp = *this; - ++tmp; - delete (*iter); - hash->m_Buckets[curbucket]->erase(iter); - *this = tmp; - - // :TODO: Maybe refactor to a lower size if required - } - private: - void _Inc() - { - if (end || !hash || curbucket >= static_cast(hash->m_numBuckets)) - return; - if (curbucket < 0) - { - for (int i=0; i<(int)hash->m_numBuckets; i++) - { - if (hash->m_Buckets[i]) - { - iter = hash->m_Buckets[i]->begin(); - if (iter == hash->m_Buckets[i]->end()) - continue; - curbucket = i; - break; - } - } - if (curbucket < 0) - end = true; - } else { - if (iter != hash->m_Buckets[curbucket]->end()) - iter++; - if (iter == hash->m_Buckets[curbucket]->end()) - { - int oldbucket = curbucket; - for (int i=curbucket+1; i<(int)hash->m_numBuckets; i++) - { - if (hash->m_Buckets[i]) - { - iter = hash->m_Buckets[i]->begin(); - if (iter == hash->m_Buckets[i]->end()) - continue; - curbucket = i; - break; - } - } - if (curbucket == oldbucket) - end = true; - } - } - } - private: - int curbucket; - typename SourceHook::List::iterator iter; - THash *hash; - bool end; - }; - class const_iterator - { - friend class THash; - public: - const_iterator() : curbucket(-1), hash(NULL), end(true) - { - }; - const_iterator(const THash *h) : curbucket(-1), hash(h), end(false) - { - if (!h->m_Buckets) - end = true; - else - _Inc(); - }; - //pre increment - const_iterator & operator++() - { - _Inc(); - return *this; - } - //post increment - const_iterator operator++(int) - { - iterator old(*this); - _Inc(); - return old; - } - const THashNode & operator * () const - { - return *(*iter); - } - const THashNode * operator ->() const - { - return (*iter); - } - bool operator ==(const const_iterator &where) const - { - if (where.hash == this->hash - && where.end == this->end - && - (this->end || - ((where.curbucket == this->curbucket) - && (where.iter == iter)) - )) - return true; - return false; - } - bool operator !=(const const_iterator &where) const - { - return !( (*this) == where ); - } - private: - void _Inc() - { - if (end || !hash || curbucket >= static_cast(hash->m_numBuckets)) - return; - if (curbucket < 0) - { - for (int i=0; i<(int)hash->m_numBuckets; i++) - { - if (hash->m_Buckets[i]) - { - iter = hash->m_Buckets[i]->begin(); - if (iter == hash->m_Buckets[i]->end()) - continue; - curbucket = i; - break; - } - } - if (curbucket < 0) - end = true; - } else { - if (iter != hash->m_Buckets[curbucket]->end()) - iter++; - if (iter == hash->m_Buckets[curbucket]->end()) - { - int oldbucket = curbucket; - for (int i=curbucket+1; i<(int)hash->m_numBuckets; i++) - { - if (hash->m_Buckets[i]) - { - iter = hash->m_Buckets[i]->begin(); - if (iter == hash->m_Buckets[i]->end()) - continue; - curbucket = i; - break; - } - } - if (curbucket == oldbucket) - end = true; - } - } - } - private: - int curbucket; - typename SourceHook::List::iterator iter; - const THash *hash; - bool end; - }; - public: - iterator begin() - { - return iterator(this); - } - iterator end() - { - iterator iter; - iter.hash = this; - return iter; - } - - const_iterator begin() const - { - return const_iterator(this); - } - const_iterator end() const - { - const_iterator iter; - iter.hash = this; - return iter; - } - - template - iterator find(const U & u) const - { - iterator b = begin(); - iterator e = end(); - for (iterator iter = b; iter != e; iter++) - { - if ( (*iter).key == u ) - return iter; - } - return end(); - } - template - iterator find(const U & u) - { - iterator b = begin(); - iterator e = end(); - for (iterator iter = b; iter != e; iter++) - { - if ( (*iter).key == u ) - return iter; - } - return end(); - } - template - iterator FindAlt(const U & u) - { - iterator b = begin(); - iterator e = end(); - for (iterator iter = b; iter != e; iter++) - { - if (CompareAlt(u, (*iter).key) == 0) - { - return iter; - } - } - return e; - } - iterator erase(iterator where) - { - where.erase(); - return where; - } - template - void erase(const U & u) - { - iterator iter = find(u); - if (iter == end()) - return; - iter.erase(); - } - private: - NodePtr *m_Buckets; - size_t m_numBuckets; - float m_percentUsed; - }; -}; - -#endif //_INCLUDE_SH_TINYHASH_H_ diff --git a/sourcehook/sh_vector.h b/sourcehook/sh_vector.h deleted file mode 100755 index 03a3896..0000000 --- a/sourcehook/sh_vector.h +++ /dev/null @@ -1,519 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -#ifndef __CVECTOR_H__ -#define __CVECTOR_H__ - -#include - -//This file originally from AMX Mod X -namespace SourceHook -{ -// Vector -template class CVector -{ - bool Grow(size_t amount) - { - // automatic grow - size_t newSize = m_Size * 2; - - if (newSize == 0) - { - newSize = 8; - } - - while (m_CurrentUsedSize + amount > newSize) - { - newSize *= 2; - } - - T *newData = new T[newSize]; - - if (m_Data) - { - for (size_t i=0; i= m_Size) - { - return Grow(amount); - } - else - { - return true; - } - } - - bool ChangeSize(size_t size) - { - // change size - if (size == m_Size) - { - return true; - } - - if (!size) - { - if (m_Data) - { - delete [] m_Data; - m_Data = NULL; - m_Size = 0; - } - return true; - } - - T *newData = new T[size]; - - if (m_Data) - { - size_t end = (m_CurrentUsedSize < size) ? (m_CurrentUsedSize) : size; - for (size_t i=0; i m_Size) - { - m_CurrentUsedSize = m_Size; - } - - return true; - } - - void FreeMemIfPossible() - { - if (!m_Data) - { - return; - } - - if (!m_CurrentUsedSize) - { - ChangeSize(0); - return; - } - - size_t newSize = m_Size; - while (m_CurrentUsedSize <= newSize / 2) - { - newSize /= 2; - } - - if (newSize != m_Size) - { - ChangeSize(newSize); - } - } -protected: - T *m_Data; - size_t m_Size; - size_t m_CurrentUsedSize; -public: - class iterator - { - protected: - T *m_Ptr; - public: - // constructors / destructors - iterator() - { - m_Ptr = NULL; - } - - iterator(T * ptr) - { - m_Ptr = ptr; - } - - // member functions - T * base() - { - return m_Ptr; - } - - const T * base() const - { - return m_Ptr; - } - - // operators - T & operator*() - { - return *m_Ptr; - } - - T * operator->() - { - return m_Ptr; - } - - iterator & operator++() // preincrement - { - ++m_Ptr; - return (*this); - } - - iterator operator++(int) // postincrement - { - iterator tmp = *this; - ++m_Ptr; - return tmp; - } - - iterator & operator--() // predecrement - { - --m_Ptr; - return (*this); - } - - iterator operator--(int) // postdecrememnt - { - iterator tmp = *this; - --m_Ptr; - return tmp; - } - - bool operator==(T * right) const - { - return (m_Ptr == right); - } - - bool operator==(const iterator & right) const - { - return (m_Ptr == right.m_Ptr); - } - - bool operator!=(T * right) const - { - return (m_Ptr != right); - } - - bool operator!=(const iterator & right) const - { - return (m_Ptr != right.m_Ptr); - } - - iterator & operator+=(size_t offset) - { - m_Ptr += offset; - return (*this); - } - - iterator & operator-=(size_t offset) - { - m_Ptr -= offset; - return (*this); - } - - iterator operator+(size_t offset) const - { - iterator tmp(*this); - tmp.m_Ptr += offset; - return tmp; - } - - iterator operator-(size_t offset) const - { - iterator tmp(*this); - tmp.m_Ptr -= offset; - return tmp; - } - - T & operator[](size_t offset) - { - return (*(*this + offset)); - } - - const T & operator[](size_t offset) const - { - return (*(*this + offset)); - } - - bool operator<(const iterator & right) const - { - return m_Ptr < right.m_Ptr; - } - - bool operator>(const iterator & right) const - { - return m_Ptr > right.m_Ptr; - } - - bool operator<=(const iterator & right) const - { - return m_Ptr <= right.m_Ptr; - } - - bool operator>=(const iterator & right) const - { - return m_Ptr >= right.m_Ptr; - } - - size_t operator-(const iterator & right) const - { - return m_Ptr - right.m_Ptr; - } - }; - - // constructors / destructors - CVector() - { - m_Size = 0; - m_CurrentUsedSize = 0; - m_Data = NULL; - } - - CVector(const CVector & other) - { - // copy data - m_Data = new T [other.m_CurrentUsedSize]; - m_Size = other.m_CurrentUsedSize; - m_CurrentUsedSize = other.m_CurrentUsedSize; - for (size_t i=0; i() - { - clear(); - } - - CVector & operator =(const CVector & other) - { - clear(); - ChangeSize(other.size()); - m_CurrentUsedSize = other.size(); - for (size_t i=0; i m_CurrentUsedSize) - assert(0); - return iterator(m_Data + pos); - } - - bool reserve(size_t newSize) - { - if (newSize > m_Size) - return ChangeSize(newSize); - return true; - } - - bool push_back(const T & elem) - { - if (!GrowIfNeeded(1)) - { - return false; - } - - m_Data[m_CurrentUsedSize++] = elem; - - return true; - } - - void pop_back() - { - --m_CurrentUsedSize; - if (m_CurrentUsedSize < 0) - m_CurrentUsedSize = 0; - - FreeMemIfPossible(); - } - - bool resize(size_t newSize) - { - return resize(newSize, T()); - } - - bool resize(size_t newSize, T defval) - { - if (!ChangeSize(newSize)) - return false; - for (size_t i = m_CurrentUsedSize; i < newSize; ++i) - m_Data[i] = defval; - m_CurrentUsedSize = newSize; - return true; - } - - bool empty() const - { - return (m_CurrentUsedSize == 0); - } - - T & at(size_t pos) - { - if (pos > m_CurrentUsedSize) - { - assert(0); - } - return m_Data[pos]; - } - - const T & at(size_t pos) const - { - if (pos > m_CurrentUsedSize) - { - assert(0); - } - return m_Data[pos]; - } - - T & operator[](size_t pos) - { - return at(pos); - } - - const T & operator[](size_t pos) const - { - return at(pos); - } - - T & front() - { - if (m_CurrentUsedSize < 1) - { - assert(0); - } - return m_Data[0]; - } - - const T & front() const - { - if (m_CurrentUsedSize < 1) - { - assert(0); - } - return m_Data[0]; - } - - T & back() - { - if (m_CurrentUsedSize < 1) - { - assert(0); - } - return m_Data[m_CurrentUsedSize - 1]; - } - - const T & back() const - { - if (m_CurrentUsedSize < 1) - { - assert(0); - } - return m_Data[m_CurrentUsedSize - 1]; - } - - iterator insert(iterator where, const T & value) - { - // validate iter - if (where < m_Data || where > (m_Data + m_CurrentUsedSize)) - return iterator(0); - - size_t ofs = where - begin(); - - if (!GrowIfNeeded(1)) - { - return false; - } - - ++m_CurrentUsedSize; - - where = begin() + ofs; - - // Move subsequent entries - for (T *ptr = m_Data + m_CurrentUsedSize - 2; ptr >= where.base(); --ptr) - *(ptr + 1) = *ptr; - - *where.base() = value; - - return where; - } - - iterator erase(iterator where) - { - // validate iter - if (where < m_Data || where >= (m_Data + m_CurrentUsedSize)) - return iterator(0); - - size_t ofs = where - begin(); - - if (m_CurrentUsedSize > 1) - { - // move - T *theend = m_Data + m_CurrentUsedSize; - for (T *ptr = where.base() + 1; ptr < theend; ++ptr) - *(ptr - 1) = *ptr; - } - - --m_CurrentUsedSize; - - FreeMemIfPossible(); - - return begin() + ofs; - } - - void clear() - { - m_Size = 0; - m_CurrentUsedSize = 0; - if (m_Data) - { - delete [] m_Data; - m_Data = NULL; - } - } -}; -}; //namespace SourceHook - -#endif // __CVECTOR_H__ diff --git a/sourcehook/sourcehook.cpp b/sourcehook/sourcehook.cpp deleted file mode 100644 index f945296..0000000 --- a/sourcehook/sourcehook.cpp +++ /dev/null @@ -1,1231 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* Contributors: Scott "Damaged Soul" Ehlert -* ============================ -*/ - -/** - * @file sourcehook.cpp - * @brief Contains the implementation of the SourceHook API -*/ - -#if defined __GNUC__ -#include -#endif - -#include "sourcehook_impl.h" -#include "sh_memory.h" - -namespace SourceHook -{ - template<> - int HashFunction(const int & k) - { - return k; - } - template<> - int Compare(const int & k1, const int & k2) - { - if (k1 == k2) - return 0; - if (k1 > k2) - return 1; - if (k1 < k2) - return -1; - return 0; - } - CSourceHookImpl::CSourceHookImpl() - { - } - CSourceHookImpl::~CSourceHookImpl() - { - } - - int CSourceHookImpl::GetIfaceVersion() - { - return SH_IFACE_VERSION; - } - - int CSourceHookImpl::GetImplVersion() - { - return SH_IMPL_VERSION; - } - - bool CSourceHookImpl::IsPluginInUse(Plugin plug) - { - // Iterate through all hook managers which are in this plugin - // Iterate through their vfnptrs, ifaces, hooks - // If a hook from an other plugin is found, return true - // Return false otherwise -#define TMP_CHECK_LIST(name) \ - for (hook_iter = iface_iter->name.m_List.begin(); hook_iter != iface_iter->name.m_List.end(); ++hook_iter) \ - if (hook_iter->plug == plug) \ - return true; - - for (HookManContList::iterator hmcl_iter = m_HookMans.begin(); - hmcl_iter != m_HookMans.end(); ++hmcl_iter) - { - for (CHookManagerContainer::iterator hmil_iter = hmcl_iter->begin(); - hmil_iter != hmcl_iter->end(); ++hmil_iter) - { - if (hmil_iter->m_Plug != plug) - continue; - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hmil_iter->m_VfnPtrs.begin(); - vfnptr_iter != hmil_iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end(); ++iface_iter) - { - List::iterator hook_iter; - TMP_CHECK_LIST(m_PreHooks); - TMP_CHECK_LIST(m_PostHooks); - } - } - } - } - -#undef TMP_CHECK_LIST - return false; - } - - void CSourceHookImpl::UnloadPlugin(Plugin plug) - { - // 1) Manually remove all hooks by this plugin - // 2) Manually remove all hook mans by this plugin - - List hookstoremove; - List hookmanstoremove; - HookManInfoList::iterator hmil_iter; - -#define TMP_CHECK_LIST(name, ispost) \ - for (hook_iter = iface_iter->name.m_List.begin(); hook_iter != iface_iter->name.m_List.end(); ++hook_iter) \ - if (hook_iter->plug == plug) \ - hookstoremove.push_back(RemoveHookInfo(hook_iter->plug, iface_iter->m_Ptr, \ - hook_iter->thisptr_offs, hmil_iter->m_Func, hook_iter->handler, ispost)); \ - - for (HookManContList::iterator hmcl_iter = m_HookMans.begin(); - hmcl_iter != m_HookMans.end(); ++hmcl_iter) - { - for (CHookManagerContainer::iterator hmil_iter = hmcl_iter->begin(); - hmil_iter != hmcl_iter->end(); ++hmil_iter) - { - if (hmil_iter->m_Plug == plug) - hookmanstoremove.push_back(RemoveHookManInfo(plug, hmil_iter->m_Func)); - - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hmil_iter->m_VfnPtrs.begin(); - vfnptr_iter != hmil_iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end(); ++iface_iter) - { - List::iterator hook_iter; - TMP_CHECK_LIST(m_PreHooks, false); - TMP_CHECK_LIST(m_PostHooks, true); - } - } - } - } -#undef TMP_CHECK_LIST - - for (List::iterator rmiter = hookstoremove.begin(); rmiter != hookstoremove.end(); ++rmiter) - RemoveHook(*rmiter); - - for (List::iterator rmiter = hookmanstoremove.begin(); rmiter != hookmanstoremove.end(); ++rmiter) - RemoveHookManager(*rmiter); - } - - void CSourceHookImpl::RemoveHookManager(Plugin plug, HookManagerPubFunc pubFunc) - { - // Moo! - - CHookManagerInfo tmp; - if (pubFunc(HA_GetInfo, &tmp) != 0) - return; - - - HookManContList::iterator hmcl_iter = m_HookMans.find( - CHookManagerContainer::HMCI(tmp.m_Proto, tmp.m_VtblOffs, tmp.m_VtblIdx)); - - if (hmcl_iter == m_HookMans.end()) - { - // Moo? - return; - } - - CHookManagerContainer::iterator hmil_iter = hmcl_iter->find( - CHookManagerInfo::Descriptor(plug, pubFunc)); - - if (hmil_iter == hmcl_iter->end()) - { - // Moo? - return; - } - - bool stillInUse = false; - List hookstoremove; - - // Iterate through all of the hook manager's hooks. Remove all hooks from the hookman's plugin. -#define TMP_CHECK_LIST(name, ispost) \ - for (hook_iter = iface_iter->name.m_List.begin(); hook_iter != iface_iter->name.m_List.end(); ++hook_iter) \ - if (hook_iter->plug == plug) \ - hookstoremove.push_back(RemoveHookInfo(hook_iter->plug, iface_iter->m_Ptr, \ - hook_iter->thisptr_offs, hmil_iter->m_Func, hook_iter->handler, ispost)); \ - else \ - stillInUse = true; \ - - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hmil_iter->m_VfnPtrs.begin(); - vfnptr_iter != hmil_iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end(); ++iface_iter) - { - List::iterator hook_iter; - TMP_CHECK_LIST(m_PreHooks, false); - TMP_CHECK_LIST(m_PostHooks, true); - } - } -#undef TMP_CHECK_LIST - - for (List::iterator rmiter = hookstoremove.begin(); rmiter != hookstoremove.end(); ++rmiter) - RemoveHook(*rmiter); - - CHookManagerInfo info = *hmil_iter; - - // Unlink the hook manager from the list - hmcl_iter->erase(hmil_iter); - - // If there were any hooks from other plugins, find a new suitable hook manager. - if (stillInUse) - { - // Find a suitable hook manager in an other plugin - hmil_iter = hmcl_iter->begin(); - - // This should _never_ happen. - // If there is a hook from an other plugin, the plugin must have provided a hook manager as well. - SH_ASSERT(hmil_iter != hmcl_iter->end(), - ("Could not find a suitable hook manager in an other plugin!")); - - // AddHook should make sure that every plugin only has _one_ hook manager for _one_ proto/vi/vo - SH_ASSERT(hmil_iter->m_Plug != plug, ("New hook manager from same plugin!")); - - // The first hook manager should be always used - so the new hook manager has to be empty - SH_ASSERT(hmil_iter->m_VfnPtrs.empty(), ("New hook manager not empty!")); - - // Move the vfnptrs from the old hook manager to the new one - hmil_iter->m_VfnPtrs = info.m_VfnPtrs; - - // Unregister the old one, register the new one - info.m_Func(HA_Unregister, NULL); - hmil_iter->m_Func(HA_Register, &(*hmil_iter)); - - // Go through all vfnptrs in this hookman and patch them to point to the new manager's handler! - // or whatever - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hmil_iter->m_VfnPtrs.begin(); - vfnptr_iter != hmil_iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - // And DEREFERENCE newHookMan->m_HookfuncVfnptr! - // otherwise it will be executing the vtable... had to find out the hard way - *reinterpret_cast(vfnptr_iter->m_Ptr) = *reinterpret_cast(hmil_iter->m_HookfuncVfnptr); - } - } - } - - void CSourceHookImpl::RemoveHookManager(RemoveHookManInfo info) - { - RemoveHookManager(info.plug, info.hookman); - } - - void CSourceHookImpl::CompleteShutdown() - { - // Remove all hooks - - List hookstoremove; - -#define TMP_CHECK_LIST(name, ispost) \ - for (hook_iter = iface_iter->name.m_List.begin(); hook_iter != iface_iter->name.m_List.end(); ++hook_iter) \ - hookstoremove.push_back(RemoveHookInfo(hook_iter->plug, iface_iter->m_Ptr, \ - hook_iter->thisptr_offs, hmil_iter->m_Func, hook_iter->handler, ispost)) - for (HookManContList::iterator hmcl_iter = m_HookMans.begin(); - hmcl_iter != m_HookMans.end(); ++hmcl_iter) - { - for (CHookManagerContainer::iterator hmil_iter = hmcl_iter->begin(); - hmil_iter != hmcl_iter->end(); ++hmil_iter) - { - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hmil_iter->m_VfnPtrs.begin(); - vfnptr_iter != hmil_iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end(); ++iface_iter) - { - List::iterator hook_iter; - TMP_CHECK_LIST(m_PreHooks, false); - TMP_CHECK_LIST(m_PostHooks, true); - } - } - } - } -#undef TMP_CHECK_LIST - - for (List::iterator rmiter = hookstoremove.begin(); rmiter != hookstoremove.end(); ++rmiter) - RemoveHook(*rmiter); - - m_HookMans.clear(); - } - - bool CSourceHookImpl::AddHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, ISHDelegate *handler, bool post) - { - void *adjustediface = reinterpret_cast(reinterpret_cast(iface) + thisptr_offs); - - // 1) Get info about the hook manager - CHookManagerInfo tmp; - if (myHookMan(HA_GetInfo, &tmp) != 0) - return false; - - tmp.m_Func = myHookMan; - tmp.m_Plug = plug; - - CHookManagerContainer::HMCI hmci(tmp.m_Proto, tmp.m_VtblOffs, tmp.m_VtblIdx); - - void **cur_vtptr = *reinterpret_cast( - reinterpret_cast(adjustediface) + tmp.m_VtblOffs); - void *cur_vfnptr = reinterpret_cast(cur_vtptr + tmp.m_VtblIdx); - - // Add the container if not already added - HookManContList::iterator hmcl_iter = m_HookMans.find(hmci); - if (hmcl_iter == m_HookMans.end()) - { - m_HookMans.push_back(CHookManagerContainer(hmci)); - hmcl_iter = m_HookMans.end(); - --hmcl_iter; - } - - hmcl_iter->AddHookManager(plug, tmp); - - CHookManagerContainer::iterator hookman = hmcl_iter->begin(); - SH_ASSERT(hookman != hmcl_iter->end(), ("No hookman found - but we've just added one!")); - - // Check whether any other container holds a hook manager which holds this vfnptr - // If yes, it means that the two are incompatible, so return false. - for (HookManContList::iterator hmcl_iter2 = m_HookMans.begin(); - hmcl_iter2 != m_HookMans.end(); ++hmcl_iter2) - { - if (hmcl_iter2 != hmcl_iter) - { - for (CHookManagerContainer::iterator hmil_iter = hmcl_iter2->begin(); - hmil_iter != hmcl_iter2->end(); ++hmil_iter) - { - if (hmil_iter->m_VfnPtrs.find(cur_vfnptr) != hmil_iter->m_VfnPtrs.end()) - return false; - } - } - } - - // Tell it to store the pointer if it's not already active - if (hookman->m_VfnPtrs.empty()) - hookman->m_Func(HA_Register, &(*hookman)); - - CHookManagerInfo::VfnPtrListIter vfnptr_iter = hookman->m_VfnPtrs.find(cur_vfnptr); - - if (vfnptr_iter == hookman->m_VfnPtrs.end()) - { - // Add a new one - CVfnPtr vfp(cur_vfnptr); - - // Alter vtable entry - if (!SetMemAccess(cur_vtptr, sizeof(void*) * (tmp.m_VtblIdx + 1), SH_MEM_READ | SH_MEM_WRITE)) - return false; - - *reinterpret_cast(cur_vfnptr) = *reinterpret_cast(hookman->m_HookfuncVfnptr); - - hookman->m_VfnPtrs.push_back(vfp); - - // Make vfnptr_iter point to the new element - vfnptr_iter = hookman->m_VfnPtrs.end(); - --vfnptr_iter; - - // Now that it is done, check whether we have to update any callclasses - ApplyCallClassPatches(adjustediface, tmp.m_VtblOffs, tmp.m_VtblIdx, vfp.m_OrigEntry); - } - - CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.find(adjustediface); - if (iface_iter == vfnptr_iter->m_Ifaces.end()) - { - // Add a new one - vfnptr_iter->m_Ifaces.push_back(CIface(adjustediface)); - - // Make iface_iter point to the new element - iface_iter = vfnptr_iter->m_Ifaces.end(); - --iface_iter; - } - - // Add the hook - HookInfo hookinfo; - hookinfo.handler = handler; - hookinfo.plug = plug; - hookinfo.paused = false; - hookinfo.thisptr_offs = thisptr_offs; - if (post) - iface_iter->m_PostHooks.m_List.push_back(hookinfo); - else - iface_iter->m_PreHooks.m_List.push_back(hookinfo); - - return true; - } - - bool CSourceHookImpl::RemoveHook(RemoveHookInfo info) - { - return RemoveHook(info.plug, info.iface, info.thisptr_offs, info.hookman, info.handler, info.post); - } - - bool CSourceHookImpl::RemoveHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, ISHDelegate *handler, bool post) - { - void *adjustediface = reinterpret_cast(reinterpret_cast(iface)+thisptr_offs); - CHookManagerInfo tmp; - if (myHookMan(HA_GetInfo, &tmp) != 0) - return false; - - // Find the hook manager and the hook - - HookManContList::iterator hmcl_iter = m_HookMans.find( - CHookManagerContainer::HMCI(tmp.m_Proto, tmp.m_VtblOffs, tmp.m_VtblIdx)); - if (hmcl_iter == m_HookMans.end() || hmcl_iter->empty()) - return false; - - CHookManagerContainer::iterator hookman = hmcl_iter->begin(); - - if (!ModuleInMemory(reinterpret_cast(adjustediface) + tmp.m_VtblOffs, - sizeof(void*) * (tmp.m_VtblIdx + 1))) - { - // The module the vtable was in is already unloaded. - hookman->m_VfnPtrs.clear(); - hookman->m_Func(HA_Unregister, NULL); - return true; - } - - void **cur_vtptr = *reinterpret_cast( - reinterpret_cast(adjustediface) + tmp.m_VtblOffs); - void *cur_vfnptr = reinterpret_cast(cur_vtptr + tmp.m_VtblIdx); - - CHookManagerInfo::VfnPtrListIter vfnptr_iter = hookman->m_VfnPtrs.find(cur_vfnptr); - - if (vfnptr_iter == hookman->m_VfnPtrs.end()) - return false; - - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end();) - { - if (iface_iter->m_Ptr != adjustediface) - { - iface_iter++; - continue; - } - List &hooks = - post ? iface_iter->m_PostHooks.m_List : iface_iter->m_PreHooks.m_List; - - bool erase; - for (List::iterator hookiter = hooks.begin(); - hookiter != hooks.end(); ) - { - erase = hookiter->plug == plug && hookiter->handler->IsEqual(handler) && - hookiter->thisptr_offs == thisptr_offs; - if (erase) - { - hookiter->handler->DeleteThis(); // Make the _plugin_ delete the handler object - - // Move all iterators pointing at this - List::iterator oldhookiter = hookiter; - hookiter = hooks.erase(hookiter); - List::iterator newhookiter = hookiter; - --newhookiter; // The hook loop will ++ it then - CHookList::CIter *pItIter; - for (pItIter = iface_iter->m_PreHooks.m_UsedIters; pItIter; pItIter = pItIter->m_pNext) - if (pItIter->m_Iter == oldhookiter) - pItIter->m_Iter = newhookiter; - } - else - ++hookiter; - } - if (iface_iter->m_PostHooks.m_List.empty() && iface_iter->m_PreHooks.m_List.empty()) - { - // There are no hooks on this iface anymore... - for (HookLoopInfoStack::iterator hli_iter = m_HLIStack.begin(); - hli_iter != m_HLIStack.end(); ++hli_iter) - { - if (hli_iter->pCurIface == static_cast(&(*iface_iter))) - hli_iter->shouldContinue = false; - } - - iface_iter = vfnptr_iter->m_Ifaces.erase(iface_iter); - if (vfnptr_iter->m_Ifaces.empty()) - { - // No ifaces at all -> Deactivate the hook - *reinterpret_cast(vfnptr_iter->m_Ptr) = vfnptr_iter->m_OrigEntry; - - hookman->m_VfnPtrs.erase(vfnptr_iter); - - // Remove callclass patch - for (Impl_CallClassList::iterator cciter = m_CallClasses.begin(); cciter != m_CallClasses.end(); ++cciter) - if (cciter->m_Ptr == adjustediface) - cciter->RemoveCallClassPatch(tmp.m_VtblOffs, tmp.m_VtblIdx); - - if (hookman->m_VfnPtrs.empty()) - { - // Unregister the hook manager - hookman->m_Func(HA_Unregister, NULL); - } - - // Don't try to continue looping through ifaces - // - the list is already invalid - return true; - } - } - else - ++iface_iter; - } - return true; - } - - GenericCallClass *CSourceHookImpl::GetCallClass(void *iface, size_t size) - { - for (Impl_CallClassList::iterator cciter = m_CallClasses.begin(); cciter != m_CallClasses.end(); ++cciter) - { - if (cciter->m_Ptr == iface && cciter->m_ObjSize == size) - { - ++cciter->m_RefCounter; - return &(*cciter); - } - } - - // Make a new one - - CCallClassImpl tmp(iface, size); - ApplyCallClassPatches(tmp); - m_CallClasses.push_back(tmp); - return &m_CallClasses.back(); - } - - void CSourceHookImpl::ReleaseCallClass(GenericCallClass *ptr) - { - Impl_CallClassList::iterator iter = m_CallClasses.find(ptr); - if (iter == m_CallClasses.end()) - return; - --iter->m_RefCounter; - if (iter->m_RefCounter < 1) - m_CallClasses.erase(iter); - } - - void CSourceHookImpl::ApplyCallClassPatches(CCallClassImpl &cc) - { - for (HookManContList::iterator hmcl_iter = m_HookMans.begin(); - hmcl_iter != m_HookMans.end(); ++hmcl_iter) - { - for (CHookManagerContainer::iterator hookman = hmcl_iter->begin(); - hookman != hmcl_iter->end(); ++hookman) - { - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hookman->m_VfnPtrs.begin(); - vfnptr_iter != hookman->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter iface_iter = vfnptr_iter->m_Ifaces.begin(); - iface_iter != vfnptr_iter->m_Ifaces.end(); ++iface_iter) - { - if (iface_iter->m_Ptr >= cc.m_Ptr && - iface_iter->m_Ptr < (reinterpret_cast(cc.m_Ptr) + cc.m_ObjSize)) - { - cc.ApplyCallClassPatch(static_cast(reinterpret_cast(iface_iter->m_Ptr) - - reinterpret_cast(cc.m_Ptr)) + hookman->m_VtblOffs, - hookman->m_VtblIdx, vfnptr_iter->m_OrigEntry); - } - } - } - } - } - } - - void CSourceHookImpl::ApplyCallClassPatches(void *ifaceptr, int vtbl_offs, int vtbl_idx, void *orig_entry) - { - for (Impl_CallClassList::iterator cc_iter = m_CallClasses.begin(); cc_iter != m_CallClasses.end(); - ++cc_iter) - { - if (ifaceptr >= cc_iter->m_Ptr && - ifaceptr < (reinterpret_cast(cc_iter->m_Ptr) + cc_iter->m_ObjSize)) - { - cc_iter->ApplyCallClassPatch(static_cast(reinterpret_cast(ifaceptr) - - reinterpret_cast(cc_iter->m_Ptr)) + vtbl_offs, vtbl_idx, orig_entry); - } - } - } - - void CSourceHookImpl::RemoveCallClassPatches(void *ifaceptr, int vtbl_offs, int vtbl_idx) - { - for (Impl_CallClassList::iterator cc_iter = m_CallClasses.begin(); cc_iter != m_CallClasses.end(); - ++cc_iter) - { - if (ifaceptr >= cc_iter->m_Ptr && - ifaceptr < (reinterpret_cast(cc_iter->m_Ptr) + cc_iter->m_ObjSize)) - { - cc_iter->RemoveCallClassPatch(vtbl_offs, vtbl_idx); - } - } - } - - void CSourceHookImpl::SetPluginPaused(Plugin plug, bool paused) - { - // Go through all hook managers, all interfaces, and set the status of all hooks of this plugin to paused - for (HookManContList::iterator hmcl_iter = m_HookMans.begin(); - hmcl_iter != m_HookMans.end(); ++hmcl_iter) - { - for (CHookManagerContainer::iterator hookmaniter = hmcl_iter->begin(); - hookmaniter != hmcl_iter->end(); ++hookmaniter) - { - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = hookmaniter->m_VfnPtrs.begin(); - vfnptr_iter != hookmaniter->m_VfnPtrs.end(); ++vfnptr_iter) - { - for (CVfnPtr::IfaceListIter ifaceiter = vfnptr_iter->m_Ifaces.begin(); - ifaceiter != vfnptr_iter->m_Ifaces.end(); ++ifaceiter) - { - for (List::iterator hookiter = ifaceiter->m_PreHooks.m_List.begin(); - hookiter != ifaceiter->m_PreHooks.m_List.end(); ++hookiter) - if (plug == hookiter->plug) - hookiter->paused = paused; - - for (List::iterator hookiter = ifaceiter->m_PostHooks.m_List.begin(); - hookiter != ifaceiter->m_PostHooks.m_List.end(); ++hookiter) - if (plug == hookiter->plug) - hookiter->paused = paused; - } - } - } - } - } - void CSourceHookImpl::PausePlugin(Plugin plug) - { - SetPluginPaused(plug, true); - } - - void CSourceHookImpl::UnpausePlugin(Plugin plug) - { - SetPluginPaused(plug, false); - } - - void CSourceHookImpl::HookLoopBegin(IIface *pIface) - { - HookLoopInfo hli; - hli.pCurIface = pIface; - hli.shouldContinue = true; - hli.recall = HookLoopInfo::Recall_No; - - static_cast(pIface)->m_PreHooks.RQFlagReset(); - static_cast(pIface)->m_PostHooks.RQFlagReset(); - - m_HLIStack.push(hli); - } - - void CSourceHookImpl::HookLoopEnd() - { - // When in a post recall... make sure status is high enough so that it returns the orig ret. - if (m_HLIStack.size() > 1 && m_HLIStack.second().recall == HookLoopInfo::Recall_Post2) - *m_HLIStack.front().pStatus = MRES_SUPERCEDE; // THAT'LL TEACH THEM! - m_HLIStack.pop(); - } - - void CSourceHookImpl::SetRes(META_RES res) - { - *m_HLIStack.front().pCurRes = res; - } - - META_RES CSourceHookImpl::GetPrevRes() - { - return *m_HLIStack.front().pPrevRes; - } - - META_RES CSourceHookImpl::GetStatus() - { - return *m_HLIStack.front().pStatus; - } - - const void *CSourceHookImpl::GetOrigRet() - { - // When in a post recall... return the orig ret of the previous hookloop. - if (m_HLIStack.size() > 1 && m_HLIStack.second().recall == HookLoopInfo::Recall_Post2) - return m_HLIStack.second().pOrigRet; - - return m_HLIStack.front().pOrigRet; - } - - const void *CSourceHookImpl::GetOverrideRet() - { - // pOverrideRet is always set since recalls were introduced - // GetOverrideRetPtr was added; a function which always returns pOverrideRet - // so that RETURN_META_VALUE_NEWPARAMS can provide an override result - - // This means that we have to filter GetOverrideRet: - // If the status variable is < MRES_OVERRIDE, return NULL. - - return (*m_HLIStack.front().pStatus < MRES_OVERRIDE) ? - NULL : m_HLIStack.front().pOverrideRet; - } - - void *CSourceHookImpl::GetOverrideRetPtr() - { - // As described in the comment above: always return pOverrideRet - return m_HLIStack.front().pOverrideRet; - } - - void *CSourceHookImpl::GetIfacePtr() - { - return *m_HLIStack.front().pIfacePtrPtr; - } - - void CSourceHookImpl::SetCurResPtr(META_RES *mres) - { - m_HLIStack.front().pCurRes = mres; - } - - void CSourceHookImpl::SetPrevResPtr(META_RES *mres) - { - m_HLIStack.front().pPrevRes = mres; - - // If we're recalling, drag the previous mres value to the new hookfunc - if (m_HLIStack.size() > 1 && m_HLIStack.second().recall) - *mres = *m_HLIStack.second().pPrevRes; - } - - void CSourceHookImpl::SetStatusPtr(META_RES *mres) - { - m_HLIStack.front().pStatus = mres; - - // If we're recalling, drag the previous mres value to the new hookfunc - if (m_HLIStack.size() > 1 && m_HLIStack.second().recall) - *mres = *m_HLIStack.second().pStatus; - } - - void CSourceHookImpl::SetIfacePtrPtr(void **pp) - { - m_HLIStack.front().pIfacePtrPtr = pp; - } - - void CSourceHookImpl::SetOrigRetPtr(const void *ptr) - { - m_HLIStack.front().pOrigRet = ptr; - } - void CSourceHookImpl::SetOverrideRetPtr(void *ptr) - { - m_HLIStack.front().pOverrideRet = ptr; - } - - // New function which does all of the above + more :) - void *CSourceHookImpl::SetupHookLoop(META_RES *statusPtr, META_RES *prevResPtr, META_RES *curResPtr, - void **ifacePtrPtr, const void *origRetPtr, void *overrideRetPtr) - { - HookLoopInfo &hli = m_HLIStack.front(); - hli.pStatus = statusPtr; - hli.pPrevRes = prevResPtr; - hli.pCurRes = curResPtr; - hli.pIfacePtrPtr = ifacePtrPtr; - hli.pOrigRet = origRetPtr; - - // Handle some recall stuff - if (m_HLIStack.size() > 1 && m_HLIStack.second().recall) - { - HookLoopInfo &other = m_HLIStack.second(); - *statusPtr = *other.pStatus; - *prevResPtr = *other.pStatus; - - // When the status is low so there's no override return value and we're in a post recall, - // give it the orig return value as override return value. - if (*statusPtr < MRES_OVERRIDE && other.recall == HookLoopInfo::Recall_Post1) - hli.pOverrideRet = const_cast(other.pOrigRet); - else // Otherwise, transfer override ret normally - hli.pOverrideRet = other.pOverrideRet; - } - else - hli.pOverrideRet = overrideRetPtr; - - // Tell the hook func which override ret ptr to use - return hli.pOverrideRet; - } - - bool CSourceHookImpl::ShouldContinue() - { - // Post-recalls: - // The second element on the stack has recall set to Recall_Post1. - // This means that we want to skip this part and the original function calling thing, so - // we store the status mres value, set status to MRES_SUPERCEDE, and return false. - // We also set the recall flag to Recall_Post2, so the next time the thing calls us, we - // can return true (so that the thing goes into post hooks). - if (m_HLIStack.size() > 1) - { - if (m_HLIStack.second().recall == HookLoopInfo::Recall_Post1) - { - m_HLIStack.front().temporaryStatus = *m_HLIStack.front().pStatus; - *m_HLIStack.front().pStatus = MRES_SUPERCEDE; - m_HLIStack.second().recall = HookLoopInfo::Recall_Post2; - return false; - } - else if (m_HLIStack.second().recall == HookLoopInfo::Recall_Post2) - { - *m_HLIStack.front().pStatus = m_HLIStack.front().temporaryStatus; - return m_HLIStack.front().shouldContinue; - } - } - - // 16.01.2008: We used to return false for recalls here. - // This caused the hook funcs to think that the whole iface has been destroyed - // (the original purpose of shouldcontinue was to notify the hookfuncs that everything has been - // invalidated by RemoveHook) so they did not release their iterator. -> Leaks - // Now, GetIter sets the iterator to END so it still gets released but the hooks don't continue. - - // But: we have to return false in the post phase of pre recalls (ie. a pre hook made a recall). - if (m_HLIStack.front().recall == HookLoopInfo::Recall_Pre && - static_cast(m_HLIStack.front().pCurIface)->m_PreHooks.RelFlagGet()) - { - return false; - } - - return m_HLIStack.front().shouldContinue; - } - - void CSourceHookImpl::DoRecall() - { - if (!m_HLIStack.empty()) - { - // Also watch out for post recalls! Described at the beginning of sourcehook_impl.h - m_HLIStack.front().recall = - static_cast(m_HLIStack.front().pCurIface)->m_PostHooks.RQFlagGet() ? - HookLoopInfo::Recall_Post1 : HookLoopInfo::Recall_Pre; - - CHookList *mlist = static_cast(m_HLIStack.front().recall == HookLoopInfo::Recall_Pre ? - m_HLIStack.front().pCurIface->GetPreHooks() : m_HLIStack.front().pCurIface->GetPostHooks()); - mlist->m_Recall = true; - - // The hookfunc usually does this, but it won't have a chance to see it, - // so for recalls, we update status here if it's required - if (*m_HLIStack.front().pCurRes > *m_HLIStack.front().pStatus) - *m_HLIStack.front().pStatus = *m_HLIStack.front().pCurRes; - - } - } - - //////////////////////////// - // CCallClassImpl - //////////////////////////// - CSourceHookImpl::CCallClassImpl::CCallClassImpl(void *ptr, size_t size) - : m_Ptr(ptr), m_ObjSize(size), m_RefCounter(1) - { - } - CSourceHookImpl::CCallClassImpl::~CCallClassImpl() - { - } - - void *CSourceHookImpl::CCallClassImpl::GetThisPtr() - { - return m_Ptr; - } - void *CSourceHookImpl::CCallClassImpl::GetOrigFunc(int vtbloffs, int vtblidx) - { - OrigVTables::iterator iter = m_VT.find(vtbloffs); - if (iter != m_VT.end() && iter->val.size() > (size_t)vtblidx) - { - return iter->val[vtblidx]; - } - return NULL; - } - - void CSourceHookImpl::CCallClassImpl::ApplyCallClassPatch(int vtbl_offs, int vtbl_idx, void *orig_entry) - { - OrigFuncs &tmpvec = m_VT[vtbl_offs]; - if (tmpvec.size() <= (size_t)vtbl_idx) - tmpvec.resize(vtbl_idx+1, NULL); - tmpvec[vtbl_idx] = orig_entry; - } - void CSourceHookImpl::CCallClassImpl::RemoveCallClassPatch(int vtbl_offs, int vtbl_idx) - { - OrigVTables::iterator iter = m_VT.find(vtbl_offs); - if (iter != m_VT.end()) - { - if (iter->val.size() > (size_t)vtbl_idx) - { - iter->val[vtbl_idx] = 0; - - OrigFuncs &of = iter->val; - OrigFuncs::iterator lastused = of.end(); - for (OrigFuncs::iterator viter = of.begin(); viter != of.end(); ++viter) - { - if (*viter) - lastused = viter; - } - if (lastused == of.end()) - { - // No used element => Remove the whole vector - m_VT.erase(iter); - return; - } - of.resize(lastused - of.begin() + 1); - } - } - } - - //////////////////////////// - // CHookManagerInfo - //////////////////////////// - CSourceHookImpl::CHookManagerInfo::CHookManagerInfo() : m_HookManVersion(0) - { - } - CSourceHookImpl::CHookManagerInfo::~CHookManagerInfo() - { - } - - IVfnPtr *CSourceHookImpl::CHookManagerInfo::FindVfnPtr(void *vfnptr) - { - VfnPtrListIter iter = m_VfnPtrs.find(vfnptr); - return iter == m_VfnPtrs.end() ? NULL : &(*iter); - } - void CSourceHookImpl::CHookManagerInfo::SetInfo(int vtbl_offs, int vtbl_idx, const char *proto) - { - m_VtblOffs = vtbl_offs; - m_VtblIdx = vtbl_idx; - m_Proto = proto; - } - void CSourceHookImpl::CHookManagerInfo::SetHookfuncVfnptr(void *hookfunc_vfnptr) - { - m_HookfuncVfnptr = hookfunc_vfnptr; - } - void CSourceHookImpl::CHookManagerInfo::SetVersion(int version) - { - m_HookManVersion = version; - } - //////////////////////////// - // CVfnPtr - //////////////////////////// - - - // If you get a crash here, the ptr passed is invalid - // This usually means a SH_DECL_MANUALHOOK* with wrong thisptroffs/vtbloffs/vtblidx - CSourceHookImpl::CVfnPtr::CVfnPtr(void *ptr) : m_Ptr(ptr), m_OrigEntry(*reinterpret_cast(ptr)) - { - } - CSourceHookImpl::CVfnPtr::~CVfnPtr() - { - } - - void *CSourceHookImpl::CVfnPtr::GetVfnPtr() - { - return m_Ptr; - } - - void *CSourceHookImpl::CVfnPtr::GetOrigEntry() - { - return m_OrigEntry; - } - - IIface *CSourceHookImpl::CVfnPtr::FindIface(void *ptr) - { - IfaceListIter iter = m_Ifaces.find(ptr); - return iter == m_Ifaces.end() ? NULL : &(*iter); - } - - //////////////////////////// - // CIface - //////////////////////////// - CSourceHookImpl::CIface::CIface(void *ptr) : m_Ptr(ptr) - { - } - CSourceHookImpl::CIface::~CIface() - { - } - - void *CSourceHookImpl::CIface::GetPtr() - { - return m_Ptr; - } - - IHookList *CSourceHookImpl::CIface::GetPreHooks() - { - return &m_PreHooks; - } - IHookList *CSourceHookImpl::CIface::GetPostHooks() - { - return &m_PostHooks; - } - - //////////////////////////// - // CHookList - //////////////////////////// - - CSourceHookImpl::CHookList::CHookList() : m_FreeIters(NULL), m_UsedIters(NULL), - m_Recall(false) - { - } - CSourceHookImpl::CHookList::CHookList(const CHookList &other) : m_List(other.m_List), - m_FreeIters(NULL), m_UsedIters(NULL), m_Recall(false) - { - } - - CSourceHookImpl::CHookList::~CHookList() - { - while (m_FreeIters) - { - CIter *iter = m_FreeIters->m_pNext; - delete m_FreeIters; - m_FreeIters = iter; - } - while (m_UsedIters) - { - CIter *iter = m_UsedIters->m_pNext; - delete m_UsedIters; - m_UsedIters = iter; - } - } - IHookList::IIter *CSourceHookImpl::CHookList::GetIter() - { - m_RQFlag = true; - - CIter *ret; - if (m_FreeIters) - { - ret = m_FreeIters; - m_FreeIters = ret->m_pNext; - ret->GoToBegin(); - } - else - { - ret = new CIter(this); - } - - // Muuuh, if we're recalling, it shall be a copy of the last iterator, incremented by one - if (m_Recall && m_UsedIters) - { - ret->Set(m_UsedIters); // m_UsedIters is the last returned and not released iterator - ret->Next(); // Use next instead of directly incrementing its m_Iter: - // skips paused plugins - - // Set the last iterator to END! - m_UsedIters->GoToEnd(); - } - - ret->m_pNext = m_UsedIters; - ret->m_pPrev = NULL; - if (m_UsedIters) - m_UsedIters->m_pPrev = ret; - m_UsedIters = ret; - - m_Recall = false; - - return ret; - } - void CSourceHookImpl::CHookList::ReleaseIter(IIter *pIter) - { - m_RelFlag = true; - - CIter *pIter2 = static_cast(pIter); - - // Unlink from m_UsedIters - - if (pIter2->m_pNext) - pIter2->m_pNext->m_pPrev = pIter2->m_pPrev; - if (pIter2->m_pPrev) - pIter2->m_pPrev->m_pNext = pIter2->m_pNext; - if (pIter2 == m_UsedIters) - m_UsedIters = m_UsedIters->m_pNext; - - // Link to m_FreeIters - - pIter2->m_pNext = m_FreeIters; - - m_FreeIters = pIter2; - - // Reset recall state. - m_Recall = false; - } - - CSourceHookImpl::CHookList::CIter::CIter(CHookList *pList) : m_pList(pList), m_pNext(NULL) - { - GoToBegin(); - } - CSourceHookImpl::CHookList::CIter::~CIter() - { - } - - void CSourceHookImpl::CHookList::CIter::Set(CIter *pOther) - { - m_Iter = pOther->m_Iter; - } - - void CSourceHookImpl::CHookList::CIter::GoToBegin() - { - m_Iter = m_pList->m_List.begin(); - SkipPaused(); - } - - void CSourceHookImpl::CHookList::CIter::GoToEnd() - { - m_Iter = m_pList->m_List.end(); - } - - bool CSourceHookImpl::CHookList::CIter::End() - { - if (!m_pList) - return false; - return m_Iter == m_pList->m_List.end(); - } - void CSourceHookImpl::CHookList::CIter::Next() - { - if (!m_pList || m_Iter == m_pList->m_List.end()) - return; - ++m_Iter; - SkipPaused(); - } - void CSourceHookImpl::CHookList::CIter::Clear() - { - m_pList = NULL; - } - void CSourceHookImpl::CHookList::CIter::SkipPaused() - { - while (m_Iter != m_pList->m_List.end() && m_Iter->paused) - ++m_Iter; - } - - ISHDelegate *CSourceHookImpl::CHookList::CIter::Handler() - { - return m_Iter->handler; - } - int CSourceHookImpl::CHookList::CIter::ThisPtrOffs() - { - return m_Iter->thisptr_offs; - } - - ////////////////////////////////////////////////////////////////////////// - // CProto - ////////////////////////////////////////////////////////////////////////// - char *CSourceHookImpl::CProto::DupProto(const char *p) - { - char *newproto; - if (*p) - { - size_t len = strlen(p); - newproto = new char[len+1]; - memcpy(newproto, p, len+1); - } else { - const ProtoInfo *pi1 = reinterpret_cast(p); - int *ar_copy = new int[pi1->numOfParams + 1]; - for (int i = 0; i <= pi1->numOfParams; i++) - ar_copy[i] = pi1->params[i]; - ProtoInfo *copy = new ProtoInfo(pi1->retTypeSize, pi1->numOfParams, ar_copy); - newproto = reinterpret_cast(copy); - } - - return newproto; - } - - void CSourceHookImpl::CProto::FreeProto(char *prot) - { - if (*prot) - { - delete [] prot; - } else { - ProtoInfo *pi = reinterpret_cast(prot); - delete [] pi->params; - delete pi; - } - } - - bool CSourceHookImpl::CProto::Equal(const char *p1, const char *p2) - { - if (*p1 && *p2) // Case1: Both old - { - // As in old versions - return strcmp(p1, p2) == 0; - } - else if (!*p1 && !*p2) // Case2: Both new - { - const ProtoInfo *pi1 = reinterpret_cast(p1); - const ProtoInfo *pi2 = reinterpret_cast(p2); - - if (pi1->retTypeSize == pi2->retTypeSize && - pi1->numOfParams == pi2->numOfParams) - { - // params[0] is 0 for "normal" functions and -1 for vararg functions - // params[1] is size of first parameter - // params[2] is size of second parameter ... - for (int i = 0; i <= pi1->numOfParams; ++i) - { - if (pi1->params[i] != pi2->params[i]) - return false; - } - return true; - } - else - { - return false; - } - } - else // Case3: Mixed old/new - { - // Trust the user - return true; - } - } - - - ////////////////////////////////////////////////////////////////////////// - // CHookManagerContainer - ////////////////////////////////////////////////////////////////////////// - void CSourceHookImpl::CHookManagerContainer::AddHookManager(Plugin plug, const CHookManagerInfo &hookman) - { - iterator iter; - // Check whether such a hook manager already exists; if yes, ignore. - for (iter = begin(); iter != end(); ++iter) - { - if (iter->m_Plug == plug && iter->m_Func == hookman.m_Func) - return; - } - - // It doesn't -> add it. Add it to the end of its version group. - for (iter = begin(); iter != end(); ++iter) - { - if (iter->m_HookManVersion < hookman.m_HookManVersion) - break; - } - - bool isBeginning = iter == begin(); - - insert(iter, hookman); - - // If we inserted it at the beginning and if the dam breaks open many years too soon - // and if there is more than one hookman and if the second one isn't empty, transfer - // hooks from second to first - - if (isBeginning && size() > 1) - { - iter = begin(); - iterator second = iter; - ++second; - - if (!second->m_VfnPtrs.empty()) - { - // Move the vfnptrs from the old hook manager to the new one - iter->m_VfnPtrs = second->m_VfnPtrs; - second->m_VfnPtrs.clear(); - - // Unregister the old one, register the new one - second->m_Func(HA_Unregister, NULL); - iter->m_Func(HA_Register, &(*iter)); - - // Go through all vfnptrs in this hookman and patch them to point to the new manager's handler! - // or whatever - for (CHookManagerInfo::VfnPtrListIter vfnptr_iter = iter->m_VfnPtrs.begin(); - vfnptr_iter != iter->m_VfnPtrs.end(); ++vfnptr_iter) - { - // And DEREFERENCE newHookMan->m_HookfuncVfnptr! - // otherwise it will be executing the vtable... had to find out the hard way - *reinterpret_cast(vfnptr_iter->m_Ptr) = *reinterpret_cast(iter->m_HookfuncVfnptr); - } - } - } - } -} diff --git a/sourcehook/sourcehook.h b/sourcehook/sourcehook.h deleted file mode 100644 index 92ff0c0..0000000 --- a/sourcehook/sourcehook.h +++ /dev/null @@ -1,6104 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -/** -* @file sourcehook.h -* @brief Contains the public SourceHook API -*/ - -#ifndef __SOURCEHOOK_H__ -#define __SOURCEHOOK_H__ - -// Interface revisions: -// 1 - Initial revision -// 2 - Changed to virtual functions for iterators and all queries -// 3 - Added "hook loop status variable" -// 4 - Reentrant -#define SH_IFACE_VERSION 4 -#define SH_IMPL_VERSION 3 - -// Hookman version: -// 1 - Support for recalls, performance optimisations -#define SH_HOOKMAN_VERSION 1 - -// The value of SH_GLOB_SHPTR has to be a pointer to SourceHook::ISourceHook -// It's used in various macros -#ifndef SH_GLOB_SHPTR -#define SH_GLOB_SHPTR g_SHPtr -#endif - -// Used to identify the current plugin -#ifndef SH_GLOB_PLUGPTR -#define SH_GLOB_PLUGPTR g_PLID -#endif - -#ifdef SH_DEBUG -# include -# include - -# define SH_ASSERT(x, info) \ - do { \ - if (!(x)) \ - { \ - printf("SOURCEHOOK DEBUG ASSERTION FAILED: %s:%u(%s): %s: ", __FILE__, __LINE__, __FUNCTION__, #x); \ - printf info; \ - putchar('\n'); \ - abort(); \ - } \ - } while(0) - -#else -# define SH_ASSERT(x, info) -#endif - -// System -#define SH_SYS_WIN32 1 -#define SH_SYS_LINUX 2 - -#ifdef _WIN32 -# define SH_SYS SH_SYS_WIN32 -#elif defined __linux__ -# define SH_SYS SH_SYS_LINUX -#else -# error Unsupported system -#endif - -// Compiler -#define SH_COMP_GCC 1 -#define SH_COMP_MSVC 2 - -#ifdef _MSC_VER -# define SH_COMP SH_COMP_MSVC -#elif defined __GNUC__ -# define SH_COMP SH_COMP_GCC -#else -# error Unsupported compiler -#endif - -#if SH_COMP==SH_COMP_MSVC -# define vsnprintf _vsnprintf -#endif - -#if SH_SYS != SH_SYS_WIN32 -# include -#endif - -#define SH_PTRSIZE sizeof(void*) - -#include "FastDelegate.h" -#include "sh_memfuncinfo.h" - -// Good old metamod! - -// Flags returned by a plugin's api function. -// NOTE: order is crucial, as greater/less comparisons are made. -enum META_RES -{ - MRES_IGNORED=0, // plugin didn't take any action - MRES_HANDLED, // plugin did something, but real function should still be called - MRES_OVERRIDE, // call real function, but use my return value - MRES_SUPERCEDE // skip real function; use my return value -}; - - -namespace SourceHook -{ - /** - * @brief Specifies the size (in bytes) for the internal buffer of vafmt(printf-like) function handlers - */ - const int STRBUF_LEN=4096; - - /** - * @brief An empty class. No inheritance used. Used for original-function-call hacks - */ - class EmptyClass - { - }; - - /** - * @brief Implicit cast. - */ - template - inline Out implicit_cast(In input) - { - return input; - } - - /** - * @brief A plugin typedef - * - * SourceHook doesn't really care what this is. As long as the ==, != and = operators work on it and every - * plugin has a unique identifier, everything is ok. - * It should also be possible to set it to 0. - */ - typedef int Plugin; - - struct ProtoInfo - { - ProtoInfo(int rtsz, int nop, const int *p) : beginningNull(0), retTypeSize(rtsz), numOfParams(nop), params(p) - { - } - int beginningNull; //!< To distinguish from old protos (which never begin with 0) - int retTypeSize; //!< 0 if void - int numOfParams; //!< number of parameters - const int *params; //!< params[0]=0 (or -1 for vararg), params[1]=size of first param, ... - }; - - /** - * @brief Specifies the actions for hook managers - */ - enum HookManagerAction - { - HA_GetInfo = 0, //!< Store info about the hook manager - HA_Register, //!< Save the IHookManagerInfo pointer for future reference - HA_Unregister //!< Clear the saved pointer - }; - - struct IHookManagerInfo; - - /** - * @brief Pointer to hook manager interface function - * - * A "hook manager" is a the only thing that knows the actual protoype of the function at compile time. - * - * @param ha What the hook manager should do - * @param hi A pointer to IHookManagerInfo - */ - typedef int (*HookManagerPubFunc)(HookManagerAction ha, IHookManagerInfo *hi); - - class ISHDelegate - { - public: - virtual void DeleteThis() = 0; // Ugly, I know - virtual bool IsEqual(ISHDelegate *other) = 0; - }; - - template class CSHDelegate : public ISHDelegate - { - T m_Deleg; - public: - CSHDelegate(T deleg) : m_Deleg(deleg) - { - } - - CSHDelegate(const CSHDelegate &other) : m_Deleg(other.m_Deleg) - { - } - - void DeleteThis() - { - delete this; - } - - bool IsEqual(ISHDelegate *other) - { - return static_cast* >(other)->GetDeleg() == GetDeleg(); - } - - T &GetDeleg() - { - return m_Deleg; - } - }; - - struct IHookList - { - struct IIter - { - virtual bool End() = 0; - virtual void Next() = 0; - virtual ISHDelegate *Handler() = 0; - virtual int ThisPtrOffs() = 0; - }; - virtual IIter *GetIter() = 0; - virtual void ReleaseIter(IIter *pIter) = 0; - }; - - struct IIface - { - virtual void *GetPtr() = 0; - virtual IHookList *GetPreHooks() = 0; - virtual IHookList *GetPostHooks() = 0; - }; - - struct IVfnPtr - { - virtual void *GetVfnPtr() = 0; - virtual void *GetOrigEntry() = 0; - - virtual IIface *FindIface(void *ptr) = 0; - }; - - struct IHookManagerInfo - { - virtual IVfnPtr *FindVfnPtr(void *vfnptr) = 0; - - virtual void SetInfo(int vtbloffs, int vtblidx, const char *proto) = 0; - virtual void SetHookfuncVfnptr(void *hookfunc_vfnptr) = 0; - - // Added 23.12.2005 (yup! I'm coding RIGHT BEFORE CHRISTMAS!) - // If the hookman doesn't set this, it defaults 0 - // SourceHook prefers hookmans with higher version numbers - virtual void SetVersion(int version) = 0; - }; - - class AutoHookIter - { - IHookList *m_pList; - IHookList::IIter *m_pIter; - public: - AutoHookIter(IHookList *pList) - : m_pList(pList), m_pIter(pList->GetIter()) - { - } - - ~AutoHookIter() - { - if (m_pList) - m_pList->ReleaseIter(m_pIter); - } - - bool End() - { - return m_pIter->End(); - } - - void Next() - { - m_pIter->Next(); - } - - ISHDelegate *Handler() - { - return m_pIter->Handler(); - } - - int ThisPtrOffs() - { - return m_pIter->ThisPtrOffs(); - } - - void SetToZero() - { - m_pList = 0; - } - }; - - template struct CallClass - { - virtual B *GetThisPtr() = 0; - virtual void *GetOrigFunc(int vtbloffs, int vtblidx) = 0; - }; - - typedef CallClass GenericCallClass; - typedef CallClass ManualCallClass; - - // 09.08.2008 (6 AM, I just woke up, the others are still sleeping so i finally can use this notebook !!) - // - Today is an important day. - // I'm adding support for functions which return references. - - // How it works: - // SH_SETUPCALLS doesn't use plain rettype to store the temporary return values (plugin ret, orig ret, - // override ret) anymore; instead, it uses SourceHook::ReferenceCarrier::type - // this is typedefed to the original rettype normally, but if the rettype is a reference, it's a special class - // which stores the reference as a pointer, and implements constructors, operator= and a conversion operator. - // special cases were needed for getoverrideret / getorigret; these are implemented through the - // SourceHook::MacroRefHelpers structs. - // Furthermore, SetOverrideRet had to be changed a bit; see SourceHook::OverrideFunctor somewhere down in this file. - template struct ReferenceCarrier - { - typedef T type; - }; - - template struct ReferenceCarrier - { - class type - { - T *m_StoredRef; - public: - type() : m_StoredRef(NULL) - { - } - type(T& ref) : m_StoredRef(&ref) - { - } - - T& operator= (T& ref) - { - m_StoredRef = &ref; - return ref; - } - - operator T& () const - { - return *m_StoredRef; - } - }; - }; - - /** - * @brief The main SourceHook interface - */ - class ISourceHook - { - public: - /** - * @brief Return interface version - */ - virtual int GetIfaceVersion() = 0; - - /** - * @brief Return implementation version - */ - virtual int GetImplVersion() = 0; - - /** - * @brief Add a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param ifacesize The size of the class iface points to - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool AddHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Removes a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - virtual bool RemoveHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, - ISHDelegate *handler, bool post) = 0; - - /** - * @brief Checks whether a plugin has (a) hook manager(s) that is/are currently used by other plugins - * - * @param plug The unique identifier of the plugin in question - */ - virtual bool IsPluginInUse(Plugin plug) = 0; - - /** - * @brief Return a pointer to a callclass. Generate a new one if required. - * - * @param iface The interface pointer - * @param size Size of the class instance - */ - virtual GenericCallClass *GetCallClass(void *iface, size_t size) = 0; - - /** - * @brief Release a callclass - * - * @param ptr Pointer to the callclass - */ - virtual void ReleaseCallClass(GenericCallClass *ptr) = 0; - - virtual void SetRes(META_RES res) = 0; //!< Sets the meta result - virtual META_RES GetPrevRes() = 0; //!< Gets the meta result of the - //!< previously calledhandler - virtual META_RES GetStatus() = 0; //!< Gets the highest meta result - virtual const void *GetOrigRet() = 0; //!< Gets the original result. - //!< If not in post function, undefined - virtual const void *GetOverrideRet() = 0; //!< Gets the override result. - //!< If none is specified, NULL - virtual void *GetIfacePtr() = 0; //!< Gets the interface pointer - ////////////////////////////////////////////////////////////////////////// - // For hook managers - virtual void HookLoopBegin(IIface *pIface) = 0; //!< Should be called when a hook loop begins - virtual void HookLoopEnd() = 0; //!< Should be called when a hook loop exits - virtual void SetCurResPtr(META_RES *mres) = 0; //!< Sets pointer to the current meta result - virtual void SetPrevResPtr(META_RES *mres) = 0; //!< Sets pointer to previous meta result - virtual void SetStatusPtr(META_RES *mres) = 0; //!< Sets pointer to the status variable - virtual void SetIfacePtrPtr(void **pp) = 0; //!< Sets pointer to the interface this pointer - virtual void SetOrigRetPtr(const void *ptr) = 0; //!< Sets the original return pointer - virtual void SetOverrideRetPtr(void *ptr) = 0; //!< Sets the override result pointer - virtual bool ShouldContinue() = 0; //!< Returns false if the hook loop should exit - - /** - * @brief Remove a hook manager. Auto-removes all hooks attached to it from plugin plug. - * - * @param plug The owner of the hook manager - * @param pubFunc The hook manager's info function - */ - virtual void RemoveHookManager(Plugin plug, HookManagerPubFunc pubFunc) = 0; - - virtual void DoRecall() = 0; //!< Initiates a recall sequence - /* - HOW RECALLS WORK: - - The problem: - Users want the ability to change parameters of the called function - from inside their handler. - The solution: - 1) Mark as "recall" - 2) Recall the function - 3) => SH's hook func gets called: - 4) The first iterator points at the first hook the last hookfunc didn't execute yet - 5) does all iteration and returns normally - 6) The user's handler returns immediately - 7) The hook func returns immediately as well - - Also note that the recalled hookfunc starts with the status the recalling hookfunc - ended with. The last handler (doing the recall) is also able to specify its own - META_RES. - */ - - virtual void *GetOverrideRetPtr() = 0; //!< Returns the pointer set by SetOverrideRetPtr - - /** - * @brief Set up the hook loop. Equivalent to calling: - * SetStatusPtr, SetPrevResPtr, SetCurResPtr, SetIfacePtrPtr, SetOrigRetPtr, Get/SetOverrideRetPtr - * - * @param statusPtr pointer to status variable - * @param prevResPtr pointer to previous result variable - * @param curResPtr pointer to current result variable - * @param ifacePtrPtr pointer to interface this pointer variable - * @param origRetPr pointer to original return value variable. NULL for void funcs - * @param overrideRetPtr pointer to override return value variable. NULL for void funcs - * - * @return Override Return Pointer the hookfunc should use (may differ from overrideRetPtr - * when the hook func is being called as part of a recall - */ - virtual void *SetupHookLoop(META_RES *statusPtr, META_RES *prevResPtr, META_RES *curResPtr, - void **ifacePtrPtr, const void *origRetPtr, void *overrideRetPtr) = 0; - - //!< - }; - - // For META_RESULT_ORIG_RET and META_RESULT_OVERRIDE_RET: - // These have to be able to return references. If T is a reference, the pointers returned - // from the SH_GLOB_SHPTR are pointers to instances of ReferenceCarrier::type. - template struct MacroRefHelpers - { - inline static const T* GetOrigRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOrigRet()); - } - inline static const T* GetOverrideRet(ISourceHook *shptr) - { - return reinterpret_cast(shptr->GetOverrideRet()); - } - }; - - template struct MacroRefHelpers - { - inline static T* GetOrigRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOrigRet()); - return &ref; - } - inline static T* GetOverrideRet(ISourceHook *shptr) - { - T &ref = *reinterpret_cast::type *>(shptr->GetOverrideRet()); - return &ref; - } - }; -} - -/************************************************************************/ -/* High level interface */ -/************************************************************************/ -#define META_RESULT_STATUS SH_GLOB_SHPTR->GetStatus() -#define META_RESULT_PREVIOUS SH_GLOB_SHPTR->GetPrevRes() -#define META_RESULT_ORIG_RET(type) *SourceHook::MacroRefHelpers::GetOrigRet(SH_GLOB_SHPTR) -#define META_RESULT_OVERRIDE_RET(type) *SourceHook::MacroRefHelpers::GetOverrideRet(SH_GLOB_SHPTR) -#define META_IFACEPTR(type) reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()) - -#define SET_META_RESULT(result) SH_GLOB_SHPTR->SetRes(result) -#define RETURN_META(result) do { SET_META_RESULT(result); return; } while(0) -#define RETURN_META_VALUE(result, value) do { SET_META_RESULT(result); return (value); } while(0) - -// If a hook on a function which returns a reference does not want to specify a return value, -// it can use this macro. -// ONLY USE THIS WITH MRES_IGNORED AND MRES_HANDLED !!! -#define RETURN_META_NOREF(result, rettype) do { SET_META_RESULT(result); return reinterpret_cast(*SH_GLOB_SHPTR); } while(0) - -// only call these from the hook handlers directly! -// :TODO: enforce it ? - -// Why take a memfuncptr instead of iface and func when we have to deduce the iface anyway now? -// Well, without it, there'd be no way to specify which overloaded version we want in _VALUE - -// SourceHook::SetOverrideRet is defined later. -#define RETURN_META_NEWPARAMS(result, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_NEWPARAMS(result, value, memfuncptr, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* meh, set the override result here because we don't get a chance to return */ \ - /* before continuing the hook loop through the recall */ \ - SourceHook::SetOverrideResult(memfuncptr)(SH_GLOB_SHPTR, value); \ - } \ - RETURN_META_VALUE(MRES_SUPERCEDE, \ - (SourceHook::RecallGetIface(SH_GLOB_SHPTR, memfuncptr)->*(memfuncptr)) newparams); \ - } while (0) - -// :TODO: thisptroffs in MNEWPARAMS ?? - -#if SH_COMP == SH_COMP_MSVC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - void *addr; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; - -#elif SH_COMP == SH_COMP_GCC - -#define SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname) \ - union \ - { \ - SH_MFHCls(hookname)::ECMFP mfp; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - SourceHook::EmptyClass *thisptr = reinterpret_cast(SH_GLOB_SHPTR->GetIfacePtr()); \ - u.s.addr = (*reinterpret_cast(reinterpret_cast(thisptr) + SH_MFHCls(hookname)::ms_MFI.vtbloffs))[ \ - SH_MFHCls(hookname)::ms_MFI.vtblindex]; \ - u.s.adjustor = 0; - -#endif - -#define RETURN_META_MNEWPARAMS(result, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - (thisptr->*(u.mfp)) newparams; \ - RETURN_META(MRES_SUPERCEDE); \ - } while (0) - -#define RETURN_META_VALUE_MNEWPARAMS(result, value, hookname, newparams) \ - do { \ - SET_META_RESULT(result); \ - SH_GLOB_SHPTR->DoRecall(); \ - if ((result) >= MRES_OVERRIDE) \ - { \ - /* see RETURN_META_VALUE_NEWPARAMS */ \ - SourceHook::SetOverrideResult(SH_GLOB_SHPTR, value); \ - } \ - SOUREHOOK__MNEWPARAMS_PREPAREMFP(hookname); \ - RETURN_META_VALUE(MRES_SUPERCEDE, (thisptr->*(u.mfp)) newparams); \ - } while (0) - -/** -* @brief Get/generate callclass for an interface pointer -* -* @param ifaceptr The interface pointer -*/ -template -inline SourceHook::CallClass *SH_GET_CALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), sizeof(ifacetype))); -} - -template -inline SourceHook::CallClass *SH_GET_MCALLCLASS_R(SourceHook::ISourceHook *shptr, ifacetype *ptr, int ifacesize) -{ - return reinterpret_cast*>( - shptr->GetCallClass(reinterpret_cast(ptr), ifacesize)); -} - -template -inline void SH_RELEASE_CALLCLASS_R(SourceHook::ISourceHook *shptr, SourceHook::CallClass *ptr) -{ - shptr->ReleaseCallClass(reinterpret_cast(ptr)); -} - -#define SH_MANUALHOOK_RECONFIGURE(hookname, pvtblindex, pvtbloffs, pthisptroffs) \ - do { \ - SH_GLOB_SHPTR->RemoveHookManager(SH_GLOB_PLUGPTR, SH_MFHCls(hookname)::HookManPubFunc); \ - SH_MFHCls(hookname)::ms_MFI.thisptroffs = pthisptroffs; \ - SH_MFHCls(hookname)::ms_MFI.vtblindex = pvtblindex; \ - SH_MFHCls(hookname)::ms_MFI.vtbloffs = pvtbloffs; \ - } while (0) - -#define SH_GET_CALLCLASS(ptr) SH_GET_CALLCLASS_R(SH_GLOB_SHPTR, ptr) -#define SH_GET_MCALLCLASS(ptr, size) SH_GET_MCALLCLASS_R(SH_GLOB_SHPTR, reinterpret_cast(ptr), size) -#define SH_RELEASE_CALLCLASS(ptr) SH_RELEASE_CALLCLASS_R(SH_GLOB_SHPTR, ptr) - -#define SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHAdd##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_ADD_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, handler, post) \ - __SourceHook_FHRemove##ifacetype##ifacefunc((void*)SourceHook::implicit_cast(ifaceptr), \ - post, handler) -#define SH_REMOVE_HOOK_STATICFUNC(ifacetype, ifacefunc, ifaceptr, handler, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_HOOK_MEMFUNC(ifacetype, ifacefunc, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_HOOK(ifacetype, ifacefunc, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_ADD_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMAdd##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_ADD_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_ADD_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_ADD_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - -#define SH_REMOVE_MANUALHOOK(hookname, ifaceptr, handler, post) \ - __SourceHook_FHMRemove##hookname(reinterpret_cast(ifaceptr), post, handler) -#define SH_REMOVE_MANUALHOOK_STATICFUNC(hookname, ifaceptr, handler, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler), post) -#define SH_REMOVE_MANUALHOOK_MEMFUNC(hookname, ifaceptr, handler_inst, handler_func, post) \ - SH_REMOVE_MANUALHOOK(hookname, ifaceptr, fastdelegate::MakeDelegate(handler_inst, handler_func), post) - - -#define SH_NOATTRIB - - - - -#if SH_COMP == SH_COMP_MSVC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; -#elif SH_COMP == SH_COMP_GCC -# define SH_SETUP_MFP(mfp) \ - reinterpret_cast(&mfp)[0] = vfnptr_origentry; \ - reinterpret_cast(&mfp)[1] = 0; -#else -# error Not supported yet. -#endif - -////////////////////////////////////////////////////////////////////////// -#define SH_FHCls(ift, iff, ov) __SourceHook_FHCls_##ift##iff##ov -#define SH_MFHCls(hookname) __SourceHook_MFHCls_##hookname - -#define SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) \ - SH_FHCls(ifacetype,ifacefunc,overload)() \ - { \ - GetFuncInfo(funcptr, ms_MFI); \ - } \ - \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - GetFuncInfo(funcptr, ms_MFI); \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_FHCls(ifacetype,ifacefunc,overload)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -// It has to be possible to use the macros in namespaces -// -> So we need to access and extend the global SourceHook namespace -// We use a namespace alias for this -#define SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, funcptr) \ - struct SH_FHCls(ifacetype,ifacefunc,overload) \ - { \ - static SH_FHCls(ifacetype,ifacefunc,overload) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - SHINT_MAKE_HOOKMANPUBFUNC(ifacetype, ifacefunc, overload, funcptr) - -#define SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, funcptr) \ - }; \ - SH_FHCls(ifacetype,ifacefunc,overload) SH_FHCls(ifacetype,ifacefunc,overload)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_FHCls(ifacetype,ifacefunc,overload)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_FHCls(ifacetype,ifacefunc,overload)::ms_HI; \ - bool __SourceHook_FHAdd##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0 || !mfi.isVirtual) \ - return false; /* No non-virtual functions / virtual inheritance supported */ \ - \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, \ - new CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHRemove##ifacetype##ifacefunc(void *iface, bool post, \ - SH_FHCls(ifacetype,ifacefunc,overload)::FD handler) \ - { \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(funcptr, mfi); \ - if (mfi.thisptroffs < 0) \ - return false; /* No virtual inheritance supported */ \ - \ - CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, mfi.thisptroffs, \ - SH_FHCls(ifacetype,ifacefunc,overload)::HookManPubFunc, &tmp, post); \ - } \ - -#define SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - struct SH_MFHCls(hookname) \ - { \ - static SH_MFHCls(hookname) ms_Inst; \ - static ::SourceHook::MemFuncInfo ms_MFI; \ - static ::SourceHook::IHookManagerInfo *ms_HI; \ - static ::SourceHook::ProtoInfo ms_Proto; \ - \ - SH_MFHCls(hookname)() \ - { \ - ms_MFI.isVirtual = true; \ - ms_MFI.thisptroffs = pthisptroffs; \ - ms_MFI.vtblindex = pvtblidx; \ - ms_MFI.vtbloffs = pvtbloffs; \ - } \ - static int HookManPubFunc(::SourceHook::HookManagerAction action, ::SourceHook::IHookManagerInfo *param) \ - { \ - using namespace ::SourceHook; \ - /* we don't set ms_MFI here because manual hookmans can be reconfigured */ \ - /* :FIXME: possible problem: someone adding a hook from a constructor of a global entity */ \ - /* which is construced before SH_MFHCls(hookname)() gets called? */ \ - /* Verify interface version */ \ - if (SH_GLOB_SHPTR->GetIfaceVersion() != SH_IFACE_VERSION) \ - return 1; \ - \ - if (action == HA_GetInfo) \ - { \ - param->SetVersion(SH_HOOKMAN_VERSION); \ - param->SetInfo(ms_MFI.vtbloffs, ms_MFI.vtblindex, \ - reinterpret_cast(&ms_Proto)); \ - \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(&SH_MFHCls(hookname)::Func, mfi); \ - param->SetHookfuncVfnptr( \ - reinterpret_cast(reinterpret_cast(&ms_Inst) + mfi.vtbloffs)[mfi.vtblindex]); \ - return 0; \ - } \ - else if (action == HA_Register) \ - { \ - ms_HI = param; \ - return 0; \ - } \ - else if (action == HA_Unregister) \ - { \ - ms_HI = NULL; \ - return 0; \ - } \ - else \ - return 1; \ - } - -#define SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, pvtbloffs, pvtblidx, pthisptroffs) \ - }; \ - SH_MFHCls(hookname) SH_MFHCls(hookname)::ms_Inst; \ - ::SourceHook::MemFuncInfo SH_MFHCls(hookname)::ms_MFI; \ - ::SourceHook::IHookManagerInfo *SH_MFHCls(hookname)::ms_HI; \ - bool __SourceHook_FHMAdd##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - return SH_GLOB_SHPTR->AddHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, \ - new ::SourceHook::CSHDelegate(handler), post); \ - } \ - bool __SourceHook_FHMRemove##hookname(void *iface, bool post, \ - SH_MFHCls(hookname)::FD handler) \ - { \ - ::SourceHook::CSHDelegate tmp(handler); \ - return SH_GLOB_SHPTR->RemoveHook(SH_GLOB_PLUGPTR, iface, pthisptroffs, \ - SH_MFHCls(hookname)::HookManPubFunc, &tmp, post); \ - } \ - - -#define SH_SETUPCALLS(rettype, paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - return (reinterpret_cast(this)->*mfp)params; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - typedef ReferenceCarrier::type my_rettype; \ - my_rettype orig_ret; \ - my_rettype override_ret; \ - my_rettype plugin_ret; \ - void* ifptr; \ - my_rettype *pOverrideRet = reinterpret_cast(SH_GLOB_SHPTR->SetupHookLoop( \ - &status, &prev_res, &cur_res, &ifptr, &orig_ret, &override_ret)); - -#define SH_CALL_HOOKS(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - plugin_ret = reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (cur_res >= MRES_OVERRIDE) \ - *pOverrideRet = plugin_ret; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG(rettype, paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - rettype (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - orig_ret = (reinterpret_cast(this)->*mfp)params; \ - } \ - else \ - orig_ret = override_ret; \ - -#define SH_RETURN() \ - SH_GLOB_SHPTR->HookLoopEnd(); \ - return status >= MRES_OVERRIDE ? *pOverrideRet : orig_ret; - -#define SH_HANDLEFUNC(paramtypes, params, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params) \ - SH_CALL_HOOKS(pre, params) \ - SH_CALL_ORIG(rettype, paramtypes, params) \ - SH_CALL_HOOKS(post, params) \ - SH_RETURN() - -////////////////////////////////////////////////////////////////////////// -#define SH_SETUPCALLS_void(paramtypes, params) \ - /* 1) Find the vfnptr */ \ - using namespace ::SourceHook; \ - void *ourvfnptr = reinterpret_cast( \ - *reinterpret_cast(reinterpret_cast(this) + ms_MFI.vtbloffs) + ms_MFI.vtblindex); \ - IVfnPtr *vfnptr = ms_HI->FindVfnPtr(ourvfnptr); \ - SH_ASSERT(vfnptr, ("Called with vfnptr 0x%p which couldn't be found in the list", ourvfnptr)); \ - \ - void *vfnptr_origentry = vfnptr->GetOrigEntry(); \ - /* ... and the iface */ \ - IIface *ifinfo = vfnptr->FindIface(reinterpret_cast(this)); \ - if (!ifinfo) \ - { \ - /* The iface info was not found. Redirect the call to the original function. */ \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - return; \ - } \ - /* 2) Declare some vars and set it up */ \ - SH_GLOB_SHPTR->HookLoopBegin(ifinfo); \ - IHookList *prelist = ifinfo->GetPreHooks(); \ - IHookList *postlist = ifinfo->GetPostHooks(); \ - META_RES status = MRES_IGNORED; \ - META_RES prev_res; \ - META_RES cur_res; \ - void* ifptr; \ - SH_GLOB_SHPTR->SetupHookLoop(&status, &prev_res, &cur_res, &ifptr, NULL, NULL); \ - -#define SH_CALL_HOOKS_void(post, params) \ - if (SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - prev_res = MRES_IGNORED; \ - for (AutoHookIter iter(post##list); !iter.End(); iter.Next()) \ - { \ - cur_res = MRES_IGNORED; \ - ifptr = reinterpret_cast(reinterpret_cast(this) - iter.ThisPtrOffs()); \ - reinterpret_cast*>(iter.Handler())->GetDeleg() params; \ - prev_res = cur_res; \ - if (cur_res > status) \ - status = cur_res; \ - if (!SH_GLOB_SHPTR->ShouldContinue()) \ - { \ - iter.SetToZero(); \ - break; \ - } \ - } \ - } - -#define SH_CALL_ORIG_void(paramtypes, params) \ - if (status != MRES_SUPERCEDE) \ - { \ - void (EmptyClass::*mfp)paramtypes; \ - SH_SETUP_MFP(mfp); \ - (reinterpret_cast(this)->*mfp)params; \ - } - -#define SH_RETURN_void() \ - SH_GLOB_SHPTR->HookLoopEnd(); - -#define SH_HANDLEFUNC_void(paramtypes, params) \ - SH_SETUPCALLS_void(paramtypes, params) \ - SH_CALL_HOOKS_void(pre, params) \ - SH_CALL_ORIG_void(paramtypes, params) \ - SH_CALL_HOOKS_void(post, params) \ - SH_RETURN_void() - - -// Special vafmt handlers -// :TODO: what -#define SH_HANDLEFUNC_vafmt(paramtypes, params_orig, params_plug, rettype) \ - SH_SETUPCALLS(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(pre, params_plug) \ - SH_CALL_ORIG(rettype, paramtypes, params_orig) \ - SH_CALL_HOOKS(post, params_plug) \ - SH_RETURN() - -#define SH_HANDLEFUNC_void_vafmt(paramtypes, params_orig, params_plug) \ - SH_SETUPCALLS_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(pre, params_plug) \ - SH_CALL_ORIG_void(paramtypes, params_orig) \ - SH_CALL_HOOKS_void(post, params_plug) \ - SH_RETURN_void() - -////////////////////////////////////////////////////////////////////////// - -// :FIXME: -// sizeof on references returns the size of the datatype, NOT the pointer size or something -// -> one should probably flag references in __SourceHook_ParamSizes_* ! -// or simply assume that their size is sizeof(void*)=SH_PTRSIZE... could be doable through a simple template - - -// ********* Support for 0 arguments ********* -#define SH_DECL_HOOK0(ifacetype, ifacefunc, attr, overload, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate0 FD; \ - virtual rettype Func() \ - { SH_HANDLEFUNC((), (), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_void(ifacetype, ifacefunc, attr, overload) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate0<> FD; \ - virtual void Func() \ - { SH_HANDLEFUNC_void((), ()); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_vafmt(ifacetype, ifacefunc, attr, overload, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((...), ("%s", buf), (buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK0_void_vafmt(ifacetype, ifacefunc, attr, overload) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((...), ("%s", buf), (buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1 }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 0, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK0(hookname, vtblidx, vtbloffs, thisptroffs, rettype) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate0 FD; \ - virtual rettype Func() \ - { SH_HANDLEFUNC((), (), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 0, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK0_void(hookname, vtblidx, vtbloffs, thisptroffs) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate0<> FD; \ - virtual void Func() \ - { SH_HANDLEFUNC_void((), ()); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0 }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 0, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 1 arguments ********* -#define SH_DECL_HOOK1(ifacetype, ifacefunc, attr, overload, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(param1 p1) \ - { SH_HANDLEFUNC((param1), (p1), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_void(ifacetype, ifacefunc, attr, overload, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(param1 p1) \ - { SH_HANDLEFUNC_void((param1), (p1)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, ...), (p1, "%s", buf), (p1, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK1_void_vafmt(ifacetype, ifacefunc, attr, overload, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, ...), (p1, "%s", buf), (p1, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 1, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK1(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual rettype Func(param1 p1) \ - { SH_HANDLEFUNC((param1), (p1), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 1, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK1_void(hookname, vtblidx, vtbloffs, thisptroffs, param1) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate1 FD; \ - virtual void Func(param1 p1) \ - { SH_HANDLEFUNC_void((param1), (p1)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 1, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 2 arguments ********* -#define SH_DECL_HOOK2(ifacetype, ifacefunc, attr, overload, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC((param1, param2), (p1, p2), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_void(ifacetype, ifacefunc, attr, overload, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC_void((param1, param2), (p1, p2)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, ...), (p1, p2, "%s", buf), (p1, p2, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK2_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, ...), (p1, p2, "%s", buf), (p1, p2, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 2, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK2(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual rettype Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC((param1, param2), (p1, p2), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 2, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK2_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate2 FD; \ - virtual void Func(param1 p1, param2 p2) \ - { SH_HANDLEFUNC_void((param1, param2), (p1, p2)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 2, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 3 arguments ********* -#define SH_DECL_HOOK3(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC((param1, param2, param3), (p1, p2, p3), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC_void((param1, param2, param3), (p1, p2, p3)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, ...), (p1, p2, p3, "%s", buf), (p1, p2, p3, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK3_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, ...), (p1, p2, p3, "%s", buf), (p1, p2, p3, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 3, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK3(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC((param1, param2, param3), (p1, p2, p3), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 3, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK3_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate3 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3) \ - { SH_HANDLEFUNC_void((param1, param2, param3), (p1, p2, p3)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 3, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 4 arguments ********* -#define SH_DECL_HOOK4(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC((param1, param2, param3, param4), (p1, p2, p3, p4), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4), (p1, p2, p3, p4)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, ...), (p1, p2, p3, p4, "%s", buf), (p1, p2, p3, p4, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK4_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, ...), (p1, p2, p3, p4, "%s", buf), (p1, p2, p3, p4, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 4, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK4(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC((param1, param2, param3, param4), (p1, p2, p3, p4), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 4, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK4_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate4 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4), (p1, p2, p3, p4)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 4, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 5 arguments ********* -#define SH_DECL_HOOK5(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, ...), (p1, p2, p3, p4, p5, "%s", buf), (p1, p2, p3, p4, p5, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK5_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, ...), (p1, p2, p3, p4, p5, "%s", buf), (p1, p2, p3, p4, p5, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 5, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK5(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 5, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK5_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate5 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5), (p1, p2, p3, p4, p5)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 5, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 6 arguments ********* -#define SH_DECL_HOOK6(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, ...), (p1, p2, p3, p4, p5, p6, "%s", buf), (p1, p2, p3, p4, p5, p6, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK6_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, ...), (p1, p2, p3, p4, p5, p6, "%s", buf), (p1, p2, p3, p4, p5, p6, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 6, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK6(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 6, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK6_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate6 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6), (p1, p2, p3, p4, p5, p6)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 6, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 7 arguments ********* -#define SH_DECL_HOOK7(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, ...), (p1, p2, p3, p4, p5, p6, p7, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK7_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, ...), (p1, p2, p3, p4, p5, p6, p7, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 7, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK7(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 7, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK7_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate7 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7), (p1, p2, p3, p4, p5, p6, p7)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 7, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 8 arguments ********* -#define SH_DECL_HOOK8(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, ...), (p1, p2, p3, p4, p5, p6, p7, p8, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK8_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, ...), (p1, p2, p3, p4, p5, p6, p7, p8, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 8, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK8(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 8, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK8_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate8 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8), (p1, p2, p3, p4, p5, p6, p7, p8)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 8, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 9 arguments ********* -#define SH_DECL_HOOK9(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK9_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 9, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK9(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 9, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK9_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate9 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9), (p1, p2, p3, p4, p5, p6, p7, p8, p9)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 9, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 10 arguments ********* -#define SH_DECL_HOOK10(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK10_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 10, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK10(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 10, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK10_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate10 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 10, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 11 arguments ********* -#define SH_DECL_HOOK11(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK11_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 11, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK11(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 11, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK11_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate11 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 11, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 12 arguments ********* -#define SH_DECL_HOOK12(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK12_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 12, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK12(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 12, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK12_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate12 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 12, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 13 arguments ********* -#define SH_DECL_HOOK13(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK13_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 13, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK13(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 13, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK13_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate13 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 13, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 14 arguments ********* -#define SH_DECL_HOOK14(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK14_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 14, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK14(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 14, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK14_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate14 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 14, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 15 arguments ********* -#define SH_DECL_HOOK15(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK15_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 15, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK15(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 15, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK15_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate15 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 15, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 16 arguments ********* -#define SH_DECL_HOOK16(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK16_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 16, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK16(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 16, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK16_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate16 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 16, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 17 arguments ********* -#define SH_DECL_HOOK17(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK17_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 17, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK17(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 17, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK17_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate17 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 17, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 18 arguments ********* -#define SH_DECL_HOOK18(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK18_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 18, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK18(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 18, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK18_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate18 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 18, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 19 arguments ********* -#define SH_DECL_HOOK19(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK19_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 19, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK19(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 19, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK19_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate19 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 19, __SourceHook_ParamSizesM_##hookname); \ - - -// ********* Support for 20 arguments ********* -#define SH_DECL_HOOK20(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), rettype); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_void(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)); } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_vafmt(ifacetype, ifacefunc, attr, overload, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate21 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, buf), rettype); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_HOOK20_void_vafmt(ifacetype, ifacefunc, attr, overload, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN(ifacetype, ifacefunc, overload, (static_cast \ - (&ifacetype::ifacefunc))) \ - typedef fastdelegate::FastDelegate21 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20, const char *fmt, ...) \ - { \ - char buf[::SourceHook::STRBUF_LEN]; \ - va_list ap; \ - va_start(ap, fmt); \ - vsnprintf(buf, sizeof(buf), fmt, ap); \ - va_end(ap); \ - SH_HANDLEFUNC_void_vafmt((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20, ...), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, "%s", buf), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, buf)); \ - } \ - SHINT_MAKE_GENERICSTUFF_END(ifacetype, ifacefunc, overload, \ - (static_cast(&ifacetype::ifacefunc))) \ - \ - const int __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload[] = { -1, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_FHCls(ifacetype, ifacefunc, overload)::ms_Proto(0, \ - 20, __SourceHook_ParamSizes_##ifacetype##ifacefunc##overload); - -#define SH_DECL_MANUALHOOK20(hookname, vtblidx, vtbloffs, thisptroffs, rettype, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual rettype Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), rettype); } \ - typedef rettype(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20); \ - typedef rettype RetType; \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(sizeof(rettype), \ - 20, __SourceHook_ParamSizesM_##hookname); \ - -#define SH_DECL_MANUALHOOK20_void(hookname, vtblidx, vtbloffs, thisptroffs, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20) \ - SHINT_MAKE_GENERICSTUFF_BEGIN_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - typedef fastdelegate::FastDelegate20 FD; \ - virtual void Func(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7, param8 p8, param9 p9, param10 p10, param11 p11, param12 p12, param13 p13, param14 p14, param15 p15, param16 p16, param17 p17, param18 p18, param19 p19, param20 p20) \ - { SH_HANDLEFUNC_void((param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20), (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)); } \ - typedef void(::SourceHook::EmptyClass::*ECMFP)(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19, param20); \ - SHINT_MAKE_GENERICSTUFF_END_MANUAL(hookname, vtbloffs, vtblidx, thisptroffs) \ - \ - const int __SourceHook_ParamSizesM_##hookname[] = { 0, sizeof(param1), sizeof(param2), sizeof(param3), sizeof(param4), sizeof(param5), sizeof(param6), sizeof(param7), sizeof(param8), sizeof(param9), sizeof(param10), sizeof(param11), sizeof(param12), sizeof(param13), sizeof(param14), sizeof(param15), sizeof(param16), sizeof(param17), sizeof(param18), sizeof(param19), sizeof(param20) }; \ - ::SourceHook::ProtoInfo SH_MFHCls(hookname)::ms_Proto(0, \ - 20, __SourceHook_ParamSizesM_##hookname); \ - - - - -////////////////////////////////////////////////////////////////////////// -// SH_CALL - -#if SH_COMP == SH_COMP_MSVC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = origfunc; \ - \ - void *adjustedthisptr = reinterpret_cast(reinterpret_cast(m_CC->GetThisPtr()) + mfi.thisptroffs); \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *adjustedthisptr = reinterpret_cast(m_CC->GetThisPtr()) + m_ThisPtrOffs; \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - void *addr; \ - } u; \ - u.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.addr) \ - u.addr = (*reinterpret_cast(adjustedthisptr + m_VtblOffs))[m_VtblIdx]; \ - \ - return (reinterpret_cast(adjustedthisptr)->*u.mfpnew)call; \ -} - -#elif SH_COMP == SH_COMP_GCC - -# define SH_MAKE_EXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - MemFuncInfo mfi = {true, -1, 0, 0}; \ - GetFuncInfo(m_CC->GetThisPtr(), m_MFP, mfi); \ - void *origfunc = m_CC->GetOrigFunc(mfi.thisptroffs + mfi.vtbloffs, mfi.vtblindex); \ - if (!origfunc) \ - return (m_CC->GetThisPtr()->*m_MFP)call; \ - \ - /* It's hooked. Call the original function. */ \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct \ - { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = origfunc; \ - u.s.adjustor = mfi.thisptroffs; \ - \ - return (reinterpret_cast(m_CC->GetThisPtr())->*u.mfpnew)call; \ -} - -# define SH_MAKE_MEXECUTABLECLASS_OB(call, prms) \ -{ \ - using namespace ::SourceHook; \ - char *thisptr = reinterpret_cast(m_CC->GetThisPtr()); \ - union \ - { \ - RetType(EmptyClass::*mfpnew)prms; \ - struct { \ - void *addr; \ - intptr_t adjustor; \ - } s; \ - } u; \ - u.s.addr = m_CC->GetOrigFunc(m_ThisPtrOffs + m_VtblOffs, m_VtblIdx); \ - if (!u.s.addr) \ - u.s.addr = (*reinterpret_cast(thisptr + m_ThisPtrOffs + m_VtblOffs))[m_VtblIdx]; \ - \ - u.s.adjustor = m_ThisPtrOffs; \ - return (reinterpret_cast(thisptr)->*u.mfpnew)call; \ -} - -#endif - -namespace SourceHook -{ - - // Support for 0 arguments - template class ExecutableClass0 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass0(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()() const - SH_MAKE_EXECUTABLECLASS_OB((), ()) - - - template RetType operator()(Param1 p1) const - SH_MAKE_EXECUTABLECLASS_OB((p1), (Param1)) - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass0 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass0(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()() const - SH_MAKE_MEXECUTABLECLASS_OB((), ()) - - - template RetType operator()(Param1 p1) const - SH_MAKE_MEXECUTABLECLASS_OB((p1), (Param1)) - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 1 arguments - template class ExecutableClass1 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass1(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1) const - SH_MAKE_EXECUTABLECLASS_OB((p1), (Param1)) - - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass1 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass1(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1) const - SH_MAKE_MEXECUTABLECLASS_OB((p1), (Param1)) - - - template RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 2 arguments - template class ExecutableClass2 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass2(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass2 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass2(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2), (Param1, Param2)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 3 arguments - template class ExecutableClass3 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass3(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass3 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass3(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3), (Param1, Param2, Param3)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 4 arguments - template class ExecutableClass4 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass4(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass4 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass4(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4), (Param1, Param2, Param3, Param4)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 5 arguments - template class ExecutableClass5 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass5(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass5 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass5(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5), (Param1, Param2, Param3, Param4, Param5)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 6 arguments - template class ExecutableClass6 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass6(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass6 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass6(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6), (Param1, Param2, Param3, Param4, Param5, Param6)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 7 arguments - template class ExecutableClass7 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass7(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass7 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass7(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7), (Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 8 arguments - template class ExecutableClass8 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass8(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass8 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass8(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 9 arguments - template class ExecutableClass9 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass9(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass9 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass9(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 10 arguments - template class ExecutableClass10 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass10(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass10 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass10(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 11 arguments - template class ExecutableClass11 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass11(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass11 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass11(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 12 arguments - template class ExecutableClass12 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass12(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass12 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass12(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 13 arguments - template class ExecutableClass13 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass13(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass13 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass13(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 14 arguments - template class ExecutableClass14 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass14(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass14 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass14(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 15 arguments - template class ExecutableClass15 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass15(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass15 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass15(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 16 arguments - template class ExecutableClass16 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass16(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass16 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass16(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 17 arguments - template class ExecutableClass17 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass17(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass17 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass17(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 18 arguments - template class ExecutableClass18 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass18(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass18 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass18(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 19 arguments - template class ExecutableClass19 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass19(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - template class MExecutableClass19 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass19(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - - - template RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - }; - - // Support for 20 arguments - template class ExecutableClass20 - { - CCType *m_CC; - MFPType m_MFP; - public: - ExecutableClass20(CCType *cc, MFPType mfp) : m_CC(cc), m_MFP(mfp) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_EXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - - }; - - template class MExecutableClass20 - { - ManualCallClass *m_CC; - int m_ThisPtrOffs; - int m_VtblIdx; - int m_VtblOffs; - public: - MExecutableClass20(ManualCallClass *cc, int vtbloffs, int vtblidx, int thisptroffs) : m_CC(cc), - m_ThisPtrOffs(thisptroffs), m_VtblIdx(vtblidx), m_VtblOffs(vtbloffs) { } - - RetType operator()(Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8, Param9 p9, Param10 p10, Param11 p11, Param12 p12, Param13 p13, Param14 p14, Param15 p15, Param16 p16, Param17 p17, Param18 p18, Param19 p19, Param20 p20) const - SH_MAKE_MEXECUTABLECLASS_OB((p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20), (Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - - - }; - - -} - -// SH_CALL needs to deduce the return type -> it uses templates and function overloading -// That's why SH_CALL takes two parameters: "mfp2" of type RetType(X::*mfp)(params), and "mfp" of type MFP -// The only purpose of the mfp2 parameter is to extract the return type - - -// Support for 0 arguments -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)()) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)()const) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::MExecutableClass0 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass0(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 1 arguments -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1)) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1)const) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::MExecutableClass1 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass1(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 2 arguments -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2)) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2)const) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::MExecutableClass2 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass2(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 3 arguments -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3)) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3)const) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::MExecutableClass3 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass3(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 4 arguments -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4)) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4)const) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::MExecutableClass4 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass4(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 5 arguments -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5)) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5)const) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::MExecutableClass5 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass5(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 6 arguments -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6)) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6)const) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::MExecutableClass6 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass6(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 7 arguments -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)const) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::MExecutableClass7 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass7(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 8 arguments -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)const) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::MExecutableClass8 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass8(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 9 arguments -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)const) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::MExecutableClass9 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass9(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 10 arguments -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)const) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::MExecutableClass10 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass10(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 11 arguments -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)const) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::MExecutableClass11 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass11(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 12 arguments -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)const) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::MExecutableClass12 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass12(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 13 arguments -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)const) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::MExecutableClass13 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass13(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 14 arguments -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)const) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::MExecutableClass14 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass14(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 15 arguments -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)const) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::MExecutableClass15 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass15(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 16 arguments -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)const) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::MExecutableClass16 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass16(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 17 arguments -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)const) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::MExecutableClass17 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass17(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 18 arguments -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)const) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::MExecutableClass18 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass18(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 19 arguments -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)const) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::MExecutableClass19 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass19(ptr, vtbloffs, vtblidx, thisptroffs); -} - -// Support for 20 arguments -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)const) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::MExecutableClass20 -SH_MCALL2(SourceHook::ManualCallClass *ptr, RetType(X::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20), int vtblidx, int vtbloffs, int thisptroffs) -{ - return SourceHook::MExecutableClass20(ptr, vtbloffs, vtblidx, thisptroffs); -} - - -#if SH_COMP != SH_COMP_MSVC || _MSC_VER > 1300 -// GCC & MSVC 7.1 need this, MSVC 7.0 doesn't like it - - -// Support for 0 arguments -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(...)) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - -template -SourceHook::ExecutableClass0, MFP, RetType> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(...)const) -{ - return SourceHook::ExecutableClass0, MFP, RetType>(ptr, mfp); -} - - -// Support for 1 arguments -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, ...)) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - -template -SourceHook::ExecutableClass1, MFP, RetType, Param1> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, ...)const) -{ - return SourceHook::ExecutableClass1, MFP, RetType, Param1>(ptr, mfp); -} - - -// Support for 2 arguments -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, ...)) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - -template -SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, ...)const) -{ - return SourceHook::ExecutableClass2, MFP, RetType, Param1, Param2>(ptr, mfp); -} - - -// Support for 3 arguments -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, ...)) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - -template -SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, ...)const) -{ - return SourceHook::ExecutableClass3, MFP, RetType, Param1, Param2, Param3>(ptr, mfp); -} - - -// Support for 4 arguments -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, ...)) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - -template -SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, ...)const) -{ - return SourceHook::ExecutableClass4, MFP, RetType, Param1, Param2, Param3, Param4>(ptr, mfp); -} - - -// Support for 5 arguments -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...)) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - -template -SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, ...)const) -{ - return SourceHook::ExecutableClass5, MFP, RetType, Param1, Param2, Param3, Param4, Param5>(ptr, mfp); -} - - -// Support for 6 arguments -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...)) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - -template -SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, ...)const) -{ - return SourceHook::ExecutableClass6, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6>(ptr, mfp); -} - - -// Support for 7 arguments -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...)) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - -template -SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, ...)const) -{ - return SourceHook::ExecutableClass7, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7>(ptr, mfp); -} - - -// Support for 8 arguments -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...)) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - -template -SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, ...)const) -{ - return SourceHook::ExecutableClass8, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8>(ptr, mfp); -} - - -// Support for 9 arguments -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...)) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - -template -SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, ...)const) -{ - return SourceHook::ExecutableClass9, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9>(ptr, mfp); -} - - -// Support for 10 arguments -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...)) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - -template -SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, ...)const) -{ - return SourceHook::ExecutableClass10, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10>(ptr, mfp); -} - - -// Support for 11 arguments -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...)) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - -template -SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, ...)const) -{ - return SourceHook::ExecutableClass11, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11>(ptr, mfp); -} - - -// Support for 12 arguments -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...)) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - -template -SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, ...)const) -{ - return SourceHook::ExecutableClass12, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12>(ptr, mfp); -} - - -// Support for 13 arguments -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...)) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - -template -SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, ...)const) -{ - return SourceHook::ExecutableClass13, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13>(ptr, mfp); -} - - -// Support for 14 arguments -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...)) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - -template -SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, ...)const) -{ - return SourceHook::ExecutableClass14, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14>(ptr, mfp); -} - - -// Support for 15 arguments -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...)) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - -template -SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, ...)const) -{ - return SourceHook::ExecutableClass15, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15>(ptr, mfp); -} - - -// Support for 16 arguments -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...)) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - -template -SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, ...)const) -{ - return SourceHook::ExecutableClass16, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16>(ptr, mfp); -} - - -// Support for 17 arguments -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...)) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - -template -SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, ...)const) -{ - return SourceHook::ExecutableClass17, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17>(ptr, mfp); -} - - -// Support for 18 arguments -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...)) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - -template -SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, ...)const) -{ - return SourceHook::ExecutableClass18, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18>(ptr, mfp); -} - - -// Support for 19 arguments -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...)) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - -template -SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, ...)const) -{ - return SourceHook::ExecutableClass19, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19>(ptr, mfp); -} - - -// Support for 20 arguments -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...)) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - -template -SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20> -SH_CALL2(SourceHook::CallClass *ptr, MFP mfp, RetType(X::*mfp2)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20, ...)const) -{ - return SourceHook::ExecutableClass20, MFP, RetType, Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20>(ptr, mfp); -} - - - -#endif - -#define SH_CALL(ptr, mfp) SH_CALL2((ptr), (mfp), (mfp)) -#define SH_MCALL(ptr, mhookname) SH_MCALL2((ptr), SH_MFHCls(mhookname)::ECMFP(), SH_MFHCls(mhookname)::ms_MFI.vtblindex, \ - SH_MFHCls(mhookname)::ms_MFI.vtbloffs, SH_MFHCls(mhookname)::ms_MFI.thisptroffs) - -#undef SH_MAKE_EXECUTABLECLASS_OB - -////////////////////////////////////////////////////////////////////////// -// SetOverrideRet and RecallGetIface for recalls -// These take a ISourceHook pointer instead of using SH_GLOB_SHPTR directly -// The reason is that the user may want to redefine SH_GLOB_SHPTR - then the macros -// (META_RETURN_VALUE_NEWPARAMS) should obey the new pointer. - -namespace SourceHook -{ - template - void SetOverrideResult(ISourceHook *shptr, const RetType res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - - // SetOverrideResult used to be implemented like this: - // SetOverrideResult(shptr, memfuncptr, return); - // normally the compiler can deduce the return type from memfuncptr, but (at least msvc8) failed when it was a reference - // (it thought it was ambigous - the ref and non-ref type) - // so now SetOverrideResult(memfuncptr) deduces the ret type, and returns a functor which does the work - // new syntax: SetOverrideResult(memfuncptr)(shptr, return) - // This also allows us to create a special version for references which respects ReferenceCarrier. - - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T res) - { - *reinterpret_cast(shptr->GetOverrideRetPtr()) = res; - } - }; - template struct OverrideFunctor - { - void operator()(ISourceHook *shptr, T &res) - { - // overrideretptr points to ReferenceCarrier - *reinterpret_cast::type *>(shptr->GetOverrideRetPtr()) = res; - } - }; - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)()) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)()) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - - template - OverrideFunctor SetOverrideResult(RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - { - return OverrideFunctor(); - } - - template - Iface *RecallGetIface(ISourceHook *shptr, RetType (Iface::*mfp)(Param1, Param2, Param3, Param4, Param5, Param6, Param7, Param8, Param9, Param10, Param11, Param12, Param13, Param14, Param15, Param16, Param17, Param18, Param19, Param20)) - { - return reinterpret_cast(shptr->GetIfacePtr()); - } - -} - -#endif - // The pope is dead. -> :( diff --git a/sourcehook/sourcehook_impl.h b/sourcehook/sourcehook_impl.h deleted file mode 100644 index 92d6a5f..0000000 --- a/sourcehook/sourcehook_impl.h +++ /dev/null @@ -1,659 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -#ifndef __SOURCEHOOK_IMPL_H__ -#define __SOURCEHOOK_IMPL_H__ - -#include "sourcehook.h" -#include "sh_list.h" -#include "sh_vector.h" -#include "sh_tinyhash.h" -#include "sh_stack.h" - -/* - -IMPLEMENTATION INFO - ---------------------------------------- -Protos ("Prototypes") - The purpose of protos is to provide the amount of type information about a function - which is required to be able to execute a function call without corrupting the stack. - Our protos do not fully do this, but they provide the size of the return value, the number of - parameters, and the size of each parameter, which is enough for most situations. - - There are two version of protos: - OLD: - C-Style strings. - - 0_void: - "attrib" - 1_void: - "attrib|param1_type" - 2_void: - "attrib|param1_type|param2_type - 0: - "attrib|ret_type" - 1: - "attrib|ret_type|param1_type" - 2: - "attrib|ret_type|param2_type" - - Old protos are deprecated. - - NEW: - New protos are in fact pointers to the ProtoInfo structure (see sourcehook.h) - - Old protos begin with a non-zero byte, new protos begin with a zero byte. - - Protos are usually stored in a CProto instance. - ---------------------------------------- -Hook managers and hook manager containers - Each hookman container is tied to _one_ proto/vtable index/vtable offset info. - Hookman containers then contain a list of hook managers provided by plugins, sorted by version. - (higher versions come first) - - Duplicate hook managers are ignored (ie. hook managers where proto, vtable index, vtable offset, - plugin, version are the same as in an already exisiting hook manager) - - A new hook manager is always added to the end of the version group in the corresponding - hook container. - - If the new hook manager was added to the beginning of the container (which only happens if - it is the first one or if it has a higher version than the previously first hook manager), - the now second hook manager is shut down and the new hook manager takes its job. - - A "hook manager container id" (HMCI) consits of three values: proto, vtbl index, vtbl offset. ---------------------------------------- -Hooks - When adding a hook, first the proposed hook manager is added to the corresponding - hook manager container as described above. - - Then the first hook manager in the the manhook container is chosen to handle the function. - - Removing a hook does not neccessarily unreigster the plugin's hook manager. In order to do this, - use RemoveHookManager or UnloadPlugin/ - - Hooks can be paused - they remain in memory but they are not called. In SH, the hook iterator - classes handle pausing transparently. - - The hook loop is supposed to call ShouldContinue before each iteration. This makes hook handlers - able to remove themselves. - ---------------------------------------- -Call classes - Call classes are identified by a this pointer and an instance size - - We use the instance size because a derived class instance and a base class instance could - have the same this pointers, and we want to avoid that the derived class - (which could be bigger) gets the same callclass as the base class (mainly if the - base class' callclass was requested first). - - Call classes are reference counted. - - The original function pointers are stored in a vector (in order to allow fast random access). - These vectors are stored as the value type of a hash. The key type is int and represents the - vtable offset. - - If the hash key doesn't exist or the vtblidx is out of range or the corresponding element in the - vector is NULL, there is no hook on that function. - ---------------------------------------- -Recalls - Recalls are used for the META_RETURN_(VALUE_)NEWPARAMS macros, ie. to change the parameters - in the hook loop on the fly. - - First, the macro calls DoRecall(), then it calls the function the hook is attached to -> it - calls the hookfunc. SourceHook makes sure that the newly invoked hook loop starts where the last - one left off and that status variables like status, previous result, override return are kept. - When this recurisvely called hookfunc returns, the macro returns what it returned - (using MRES_SUPERCEDE). CSourceHookImpl returns false from ShouldContinue so the original hook loop - is abandonned. - -Post Recalls - People wanted to be able to use META_RETURN_(VALUE_)NEWPARAMS from post hooks as well. Crazy people! - Anyway, for this, we have to know where a hook handler is. Is it executing pre or post hooks at the moment? - The only way we can know this is watching when it calls CHookList::GetIter(). So CHookList gets a new variable: - m_RequestedFlag. It also gets two new functions: RQFlagReset() and RQFlagGet(). - HookLoopBegin() calls RQFlagReset on both hooklists of the iface; then DoRecall() checks whether the postlist's - RQ flag is set. if yes, the hook loop is in post mode. - - So, what a about a recall in post mode? The first ShouldContinue returns false and sets Status to supercede. - This way the pre hooks and the function call will be skipped. Then, then next ShouldContinue returns true, so we get - into the post hooks. HA! - -Return Values in Post Recalls - The easy case is when we already have an override return value. In this case, the status register gets transferred, - and so does the override return pointer. So, basically, everything is ok. - - However, what happens if we don't? ie. the status register is on MRES_IGNORED? In this case we'd have to transfer the - orig ret value. But we can't: There's no way to tell the hookfunc: "Use this as orig ret pointer". It uses its own. - So, we emulate it. GetOrigRet will return the orig ret pointer from the old hook loop. If still no one overrides it, - we'd have to return it. BUT! HOW TO DO THIS? Check out SH_RETURN(). First calls HookLoopEnd(), then decides whether - to return the override retval or the orig retval. But it doesn't ask for a new override return. So we give the function - the last orig return value as its new override return value; but leave status where it is so everything works, and in - HookLoopEnd we make sure that status is high enough so that the override return will be returned. crazy. - - All this stuff could be much less complicated if I didn't try to preserve binary compatibility :) -*/ - -namespace SourceHook -{ - /** - * @brief The SourceHook implementation class - */ - class CSourceHookImpl : public ISourceHook - { - private: - class CProto - { - char *m_Proto; - - static bool Equal(const char *p1, const char *p2); - char *DupProto(const char *src); - void FreeProto(char *prot); - public: - CProto(const char *szProto) : m_Proto(DupProto(szProto)) - { - } - - CProto(const CProto &other) : m_Proto(DupProto(other.m_Proto)) - { - } - - ~CProto() - { - FreeProto(m_Proto); - m_Proto = NULL; - } - - void operator = (const char *szProto) - { - m_Proto = DupProto(szProto); - } - - void operator = (const CProto &other) - { - m_Proto = DupProto(other.m_Proto); - } - - bool operator == (const char *szProto) const - { - return Equal(szProto, m_Proto); - } - bool operator == (const CProto &other) const - { - return Equal(other.m_Proto, m_Proto); - } - }; - - - /** - * @brief A hook can be removed if you have this information - */ - struct RemoveHookInfo - { - RemoveHookInfo(Plugin pplug, void *piface, int tpo, HookManagerPubFunc phookman, - ISHDelegate *phandler, bool ppost) - : plug(pplug), iface(piface), thisptr_offs(tpo), - hookman(phookman), handler(phandler), post(ppost) - { - } - - Plugin plug; - void *iface; - int thisptr_offs; - HookManagerPubFunc hookman; - ISHDelegate *handler; - bool post; - }; - - struct RemoveHookManInfo - { - RemoveHookManInfo(Plugin pplug, HookManagerPubFunc phookman) - : plug(pplug), hookman(phookman) - { - } - - Plugin plug; - HookManagerPubFunc hookman; - }; - - struct HookInfo - { - ISHDelegate *handler; //!< Pointer to the handler - bool paused; //!< If true, the hook should not be executed - Plugin plug; //!< The owner plugin - int thisptr_offs; //!< This pointer offset - }; - - class CHookList : public IHookList - { - public: - List m_List; - - friend class CIter; - - class CIter : public IHookList::IIter - { - friend class CHookList; - - CHookList *m_pList; - - void SkipPaused(); - public: - - List::iterator m_Iter; - - CIter(CHookList *pList); - - virtual ~CIter(); - - void GoToBegin(); - void GoToEnd(); - void Set(CIter *pOther); - - bool End(); - void Next(); - ISHDelegate *Handler(); - int ThisPtrOffs(); - - void Clear(); - - CIter *m_pNext; // When stored in m_FreeIters and m_UsedIters - CIter *m_pPrev; // Only used when stored in m_UsedIters - }; - - CIter *m_FreeIters; - CIter *m_UsedIters; // The last returned and not-yet-released iter is always m_UsedIters - - // For recalls - bool m_Recall; - bool m_RQFlag; - bool m_RelFlag; - - void SetRecallState(); // Sets the list into a state where the next returned - // iterator (from GetIter) will be a copy of the last - // returned iterator, incremented by one. This is used in Recalls. - // The hook resets this state automatically on: - // GetIter, ReleaseIter - - void RQFlagReset() { m_RQFlag = false; m_RelFlag = false; } - bool RQFlagGet() { return m_RQFlag; } - bool RelFlagGet() { return m_RelFlag; } - CHookList(); - CHookList(const CHookList &other); - virtual ~CHookList(); - - void operator=(const CHookList &other); - - IIter *GetIter(); - void ReleaseIter(IIter *pIter); - }; - - // I know, data hiding... But I'm a lazy bastard! - - class CIface : public IIface - { - public: - void *m_Ptr; - CHookList m_PreHooks; - CHookList m_PostHooks; - public: - CIface(void *ptr); - virtual ~CIface(); - - void *GetPtr(); - IHookList *GetPreHooks(); - IHookList *GetPostHooks(); - - bool operator==(void *ptr) - { - return m_Ptr == ptr; - } - }; - - class CVfnPtr : public IVfnPtr - { - public: - typedef List IfaceList; - typedef IfaceList::iterator IfaceListIter; - - void *m_Ptr; - void *m_OrigEntry; - - IfaceList m_Ifaces; - - public: - CVfnPtr(void *ptr); - virtual ~CVfnPtr(); - - void *GetVfnPtr(); - void *GetOrigEntry(); - - virtual IIface *FindIface(void *ptr); - - bool operator==(void *ptr) - { - return m_Ptr == ptr; - } - }; - - class CHookManagerInfo : public IHookManagerInfo - { - public: - typedef List VfnPtrList; - typedef VfnPtrList::iterator VfnPtrListIter; - - Plugin m_Plug; - HookManagerPubFunc m_Func; - - int m_VtblOffs; - int m_VtblIdx; - const char *m_Proto; - void *m_HookfuncVfnptr; - - VfnPtrList m_VfnPtrs; - - int m_HookManVersion; - public: - CHookManagerInfo(); - virtual ~CHookManagerInfo(); - - IVfnPtr *FindVfnPtr(void *vfnptr); - - void SetInfo(int vtbl_offs, int vtbl_idx, const char *proto); - void SetHookfuncVfnptr(void *hookfunc_vfnptr); - - void SetVersion(int version); - - bool operator < (const CHookManagerInfo &other) - { - return m_HookManVersion < other.m_HookManVersion; - } - - struct Descriptor - { - Descriptor(Plugin pplug, HookManagerPubFunc ppubFunc) : plug(pplug), pubFunc(ppubFunc) - { - } - - Plugin plug; - HookManagerPubFunc pubFunc; - }; - - bool operator == (const Descriptor desc) - { - return m_Func == desc.pubFunc && m_Plug == desc.plug; - } - }; - - typedef List HookManInfoList; - - class CHookManagerContainer : public HookManInfoList - { - public: - // HMCI (Hook Manager Container Identification) - class HMCI - { - CProto m_Proto; - int m_VtableOffset; - int m_VtableIndex; - public: - HMCI(const char *proto, int vtbloffs, int vtblidx) : - m_Proto(proto), m_VtableOffset(vtbloffs), m_VtableIndex(vtblidx) - { - } - ~HMCI() - { - } - - bool operator==(const HMCI &other) const - { - return - other.m_VtableIndex == m_VtableIndex && - other.m_Proto == m_Proto && - other.m_VtableOffset == m_VtableOffset; - } - - const CProto &GetProto() const - { - return m_Proto; - } - int GetVtableOffset() const - { - return m_VtableOffset; - } - int GetVtableIndex() const - { - return m_VtableIndex; - } - }; - HMCI m_HCMI; - - public: - CHookManagerContainer(const HMCI &hmci) : m_HCMI(hmci) - { - } - bool operator == (const HMCI &other) const - { - return m_HCMI == other; - } - void AddHookManager(Plugin plug, const CHookManagerInfo &hookman); - }; - - class CCallClassImpl : public GenericCallClass - { - public: - - typedef SourceHook::CVector OrigFuncs; - typedef SourceHook::THash OrigVTables; - - void *m_Ptr; //!< Pointer to the actual object - size_t m_ObjSize; //!< Size of the instance - OrigVTables m_VT; //!< Info about vtables & functions - - int m_RefCounter; - - CCallClassImpl(void *ptr, size_t size); - virtual ~CCallClassImpl(); - - bool operator==(void *other) - { - return m_Ptr == other; - } - - void *GetThisPtr(); - void *GetOrigFunc(int vtbloffs, int vtblidx); - - void ApplyCallClassPatch(int vtbl_offs, int vtbl_idx, void *orig_entry); - void RemoveCallClassPatch(int vtbl_offs, int vtbl_idx); - }; - - /** - * @brief A list of CallClass structures - */ - typedef List Impl_CallClassList; - - Impl_CallClassList m_CallClasses; //!< A list of already generated callclasses - - /** - * @brief A list of CHookManagerContainers - */ - typedef List HookManContList; - - HookManContList m_HookMans; //!< A list of hook managers - - struct HookLoopInfo - { - enum RecallType - { - Recall_No=0, - Recall_Pre, - Recall_Post1, - Recall_Post2 - }; - - META_RES *pStatus; - META_RES *pPrevRes; - META_RES *pCurRes; - - META_RES temporaryStatus; //!< Stored during Post1 recall phase - bool shouldContinue; - RecallType recall; //!< Specifies which kind of recall we're in. - - IIface *pCurIface; - const void *pOrigRet; - void *pOverrideRet; - void **pIfacePtrPtr; - }; - typedef CStack HookLoopInfoStack; - - void ApplyCallClassPatches(CCallClassImpl &cc); - void ApplyCallClassPatches(void *ifaceptr, int vtbl_offs, int vtbl_idx, void *orig_entry); - void RemoveCallClassPatches(void *ifaceptr, int vtbl_offs, int vtbl_idx); - - void SetPluginPaused(Plugin plug, bool paused); - - HookLoopInfoStack m_HLIStack; - public: - CSourceHookImpl(); - virtual ~CSourceHookImpl(); - - /** - * @brief Returns the interface version - */ - int GetIfaceVersion(); - - /** - * @brief Returns the implemnetation version - */ - int GetImplVersion(); - - /** - * @brief Make sure that a plugin is not used by any other plugins anymore, and unregister all its hook managers - */ - void UnloadPlugin(Plugin plug); - - /** - * @brief Shut down the whole system, unregister all hook managers - */ - void CompleteShutdown(); - - /** - * @brief Add a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param ifacesize The size of the class iface points to - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - bool AddHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, ISHDelegate *handler, bool post); - - /** - * @brief Removes a hook. - * - * @return True if the function succeeded, false otherwise - * - * @param plug The unique identifier of the plugin that calls this function - * @param iface The interface pointer - * @param thisptr_offs This pointer adjuster - * @param myHookMan A hook manager function that should be capable of handling the function - * @param handler A pointer to a FastDelegate containing the hook handler - * @param post Set to true if you want a post handler - */ - bool RemoveHook(Plugin plug, void *iface, int thisptr_offs, HookManagerPubFunc myHookMan, ISHDelegate *handler, bool post); - - /** - * @brief Removes a hook. - * - * @ return True if the function succeeded, false otherwise - * - * @param info A RemoveHookInfo structure, describing the hook - */ - bool RemoveHook(RemoveHookInfo info); - - /** - * @brief Checks whether a plugin has (a) hook manager(s) that is/are currently used by other plugins - * - * @param plug The unique identifier of the plugin in question - */ - bool IsPluginInUse(Plugin plug); - - /** - * @brief Pauses all hooks of a plugin - * - * @param plug The unique identifier of the plugin - */ - void PausePlugin(Plugin plug); - - /** - * @brief Unpauses all hooks of a plugin - * - * @param plug The unique identifier of the plugin - */ - void UnpausePlugin(Plugin plug); - - /** - * @brief Return a pointer to a callclass. Generate a new one if required. - * - * @param iface The interface pointer - * @param size Size of the class instance - */ - GenericCallClass *GetCallClass(void *iface, size_t size); - - /** - * @brief Release a callclass - * - * @param ptr Pointer to the callclass - */ - virtual void ReleaseCallClass(GenericCallClass *ptr); - - virtual void SetRes(META_RES res); //!< Sets the meta result - virtual META_RES GetPrevRes(); //!< Gets the meta result of the previously called handler - virtual META_RES GetStatus(); //!< Gets the highest meta result - virtual const void *GetOrigRet(); //!< Gets the original result. If not in post function, undefined - virtual const void *GetOverrideRet(); //!< Gets the override result. If none is specified, NULL - virtual void *GetIfacePtr(); //!< Gets the interface pointer - - ////////////////////////////////////////////////////////////////////////// - // For hook managers - void HookLoopBegin(IIface *pIface); //!< Should be called when a hook loop begins - void HookLoopEnd(); //!< Should be called when a hook loop exits - void SetCurResPtr(META_RES *mres); //!< Sets pointer to the current meta result - void SetPrevResPtr(META_RES *mres); //!< Sets pointer to previous meta result - void SetStatusPtr(META_RES *mres); //!< Sets pointer to the status variable - void SetIfacePtrPtr(void **pp); //!< Sets pointer to the interface this pointer - void SetOrigRetPtr(const void *ptr); //!< Sets the original return pointer - void SetOverrideRetPtr(void *ptr); //!< Sets the override result pointer - bool ShouldContinue(); //!< Returns false if the hook loop should exit - - /** - * @brief Remove a hook manager. Auto-removes all hooks attached to it from plugin plug. - * - * @param plug The owner of the hook manager - * @param pubFunc The hook manager's info function - */ - virtual void RemoveHookManager(Plugin plug, HookManagerPubFunc pubFunc); - virtual void RemoveHookManager(RemoveHookManInfo info); - - virtual void DoRecall(); //!< Initiates a recall sequence - virtual void *GetOverrideRetPtr(); //!< Returns the pointer set by SetOverrideRetPtr - - virtual void *SetupHookLoop(META_RES *statusPtr, META_RES *prevResPtr, META_RES *curResPtr, - void **ifacePtrPtr, const void *origRetPtr, void *overrideRetPtr); - }; -} - -#endif diff --git a/sourcehook/test/Makefile b/sourcehook/test/Makefile deleted file mode 100644 index 323625a..0000000 --- a/sourcehook/test/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -#(C)2004-2008 SourceMM Development Team -# Makefile written by David "BAILOPAN" Anderson and Pavol Marko - -OPT_FLAGS = -O3 -funroll-loops -s -pipe -DEBUG_FLAGS = -g -ggdb3 -CPP = gcc -LINK = -lstdc++ -INCLUDE = -I. -I.. -MAX_PARAMS=20 - -BINARY = sourcehook_test -OBJECTS = main.cpp sourcehook.cpp $(shell ls -t test*.cpp) -HEADERS = ../sh_list.h ../sh_tinyhash.h ../sh_memory.h ../sh_string.h ../sh_vector.h ../sourcehook_impl.h ../FastDelegate.h ../sourcehook.h ../sh_memfuncinfo.h - -ifeq "$(DEBUG)" "true" - BIN_DIR = Debug - CFLAGS = $(DEBUG_FLAGS) -else - BIN_DIR = Release - CFLAGS = $(OPT_FLAGS) -endif - -CFLAGS += -Wall -# Also, enable SH_ASSERT -CFLAGS += -DSH_DEBUG - -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) - - -default: all - -$(BIN_DIR)/%.o: %.cpp $(HEADERS) - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< - -../sourcehook.h: ../generate/sourcehook.hxx - (cd ../generate; ./shworker.bin iter sourcehook.hxx sourcehook.h $(MAX_PARAMS); cp sourcehook.h ..) - -../sourcehook.hxx: ../generate/sh_memfuncinfo.hxx - (cd ../generate; ./shworker.bin iter sh_memfuncinfo.hxx sh_memfuncinfo.h $(MAX_PARAMS); cp sh_memfuncino.h ..) - -../FastDelegate.hxx: ../generate/FastDelegate.hxx - (cd ../generate; ./shworker.bin iter FastDelegate.hxx FastDelegate.h $(MAX_PARAMS); cp FastDelegate.h ..) - -debug: - $(MAKE) all DEBUG=true - -all: - mkdir -p $(BIN_DIR) - ln -sf ../sourcehook.cpp sourcehook.cpp - $(MAKE) $(BINARY) - rm -f $(BINARY) - rm -f sourcehook.cpp - ln -sf $(BIN_DIR)/$(BINARY) $(BINARY) - - -$(BINARY): $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -o$(BIN_DIR)/$(BINARY) - -clean: - rm -rf Release/*.o - rm -rf Release/$(BINARY) - rm -rf Debug/*.o - rm -rf Debug/$(BINARY) diff --git a/sourcehook/test/main.cpp b/sourcehook/test/main.cpp deleted file mode 100644 index 12a4706..0000000 --- a/sourcehook/test/main.cpp +++ /dev/null @@ -1,131 +0,0 @@ -// Hello BAIL! -// hello pm how are you -// I'm fine, what about you? -// not bad, just looking for mem leaks -// mem leaks in my code!? never! I have to preserve binary compatibility :( -// This is a test file - -#include -#include -#include -#include -#include -#include "sh_tinyhash.h" -#include "sh_list.h" -#include "sourcehook_impl.h" -#include "sourcehook.h" - -using namespace std; - -bool g_Verbose; - -class Test -{ - typedef bool (*TestProto)(std::string&); - TestProto m_Func; - std::string m_Name; - - static SourceHook::List ms_Tests; -public: - Test(TestProto func, const char *name) : m_Func(func), m_Name(name) - { - ms_Tests.push_back(this); - } - - bool operator()() - { - std::string error; - if (!m_Func(error)) - { - cout << "Test" << m_Name << " FAILED: " << error << endl; - return false; - } - else - { - cout << "Test" << m_Name << " passed" << endl; - return true; - } - } - - static void DoTests() - { - int passed=0, failed=0; - for (SourceHook::List::iterator iter = ms_Tests.begin(); iter != ms_Tests.end(); ++iter) - { - if ((**iter)()) - ++passed; - else - ++failed; - } - cout << endl << "----" << endl << "Passed: " << passed << endl << "Failed: " << failed << endl; - cout << "Total: " << passed + failed << endl; - } -}; - -SourceHook::List Test::ms_Tests; - -#define DO_TEST(x) \ - bool Test##x(std::string &error); \ - Test g_Test##x(Test##x, #x); - -DO_TEST(List); -DO_TEST(Basic); -DO_TEST(VafmtAndOverload); -DO_TEST(ThisPtrOffs); -DO_TEST(PlugSys); -DO_TEST(Bail); -DO_TEST(Reentr); -DO_TEST(Manual); -DO_TEST(Recall); -DO_TEST(Multi); -DO_TEST(Ref); -DO_TEST(RefRet); - -int main(int argc, char *argv[]) -{ - std::string error; - - g_Verbose = argc > 1 && strcmp(argv[1], "-v") == 0; - - Test::DoTests(); - - cout << "Press enter to continue" << endl; - - char x; - cin.read(&x, 1); -} - -SourceHook::ISourceHook *Test_Factory() -{ - return new SourceHook::CSourceHookImpl(); -} - -void Test_Delete(SourceHook::ISourceHook *shptr) -{ - delete static_cast(shptr); -} - -void Test_CompleteShutdown(SourceHook::ISourceHook *shptr) -{ - static_cast(shptr)->CompleteShutdown(); -} - -bool Test_IsPluginInUse(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug) -{ - return static_cast(shptr)->IsPluginInUse(plug); -} - -void Test_UnloadPlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug) -{ - static_cast(shptr)->UnloadPlugin(plug); -} - -void Test_PausePlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug) -{ - static_cast(shptr)->PausePlugin(plug); -} - -void Test_UnpausePlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug) -{ - static_cast(shptr)->UnpausePlugin(plug); -} diff --git a/sourcehook/test/msvc7/test.vcproj b/sourcehook/test/msvc7/test.vcproj deleted file mode 100644 index 364a956..0000000 --- a/sourcehook/test/msvc7/test.vcproj +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcehook/test/msvc8/test.vcproj b/sourcehook/test/msvc8/test.vcproj deleted file mode 100644 index ae768e5..0000000 --- a/sourcehook/test/msvc8/test.vcproj +++ /dev/null @@ -1,513 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcehook/test/sourcehook_test.h b/sourcehook/test/sourcehook_test.h deleted file mode 100644 index 9d914b4..0000000 --- a/sourcehook/test/sourcehook_test.h +++ /dev/null @@ -1,27 +0,0 @@ -// This file is used for backwards compatibility testing -// It allows us to test binary backwards compatibility by using an older include file HERE: -#include "sourcehook.h" // <-- here -// There. main.cpp which implements all of the following function is always usign sourcehook.h -// and the up-to-date sourcehook_impl.h/sourcehook.cpp. The tests use this file however. -// If the test needs an up-to-date version (like the recall test), it can simply -// #include "sourcehook.h" before including this, thus overriding our decision. - - -SourceHook::ISourceHook *Test_Factory(); -void Test_Delete(SourceHook::ISourceHook *shptr); - -struct CSHPtrAutoDestruction -{ - SourceHook::ISourceHook *m_SHPtr; - CSHPtrAutoDestruction(SourceHook::ISourceHook *shptr) : m_SHPtr(shptr) {} - ~CSHPtrAutoDestruction() { Test_Delete(m_SHPtr); } -}; - -#define GET_SHPTR(var) var = Test_Factory(); CSHPtrAutoDestruction ___autodestruction(var); - -// Access to CSourceHookImpl functions -void Test_CompleteShutdown(SourceHook::ISourceHook *shptr); -bool Test_IsPluginInUse(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug); -void Test_UnloadPlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug); -void Test_PausePlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug); -void Test_UnpausePlugin(SourceHook::ISourceHook *shptr, SourceHook::Plugin plug); diff --git a/sourcehook/test/test1.cpp b/sourcehook/test/test1.cpp deleted file mode 100644 index 6b99ea4..0000000 --- a/sourcehook/test/test1.cpp +++ /dev/null @@ -1,700 +0,0 @@ -#include -#include "sourcehook_test.h" -#include "testevents.h" - -#include "sh_memory.h" - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - // TEST1 - // Basic tests - // Hooking and callclass - - MAKE_STATE_1(State_ModuleInMemory, bool); - MAKE_STATE(State_F1_Called); - MAKE_STATE_1(State_F1_PreHandler_Called, void*); - MAKE_STATE_1(State_F1_PostHandler_Called, void*); - MAKE_STATE_1(State_F1_HookAdded, bool); - MAKE_STATE(State_F1_HookRemoved); - MAKE_STATE(State_F1_CallClassGenerated); - MAKE_STATE(State_F1_CallClassReleased); - MAKE_STATE_1(State_F299_Called, std::string); - MAKE_STATE_1(State_F299_PreHandlerCalled, std::string); - MAKE_STATE_1(State_F299_PostHandlerCalled, std::string); - MAKE_STATE_1(State_F299Ret, bool); - - class Test - { - public: - virtual void F1() - { - ADD_STATE(State_F1_Called); - } - virtual void F2(){} - virtual void F3(){} - virtual void F4(){} - virtual void F5(){} - virtual void F6(){} - virtual void F7(){} - virtual void F8(){} - virtual void F9(){} - virtual void F10(){} - virtual void F11(){} - virtual void F12(){} - virtual void F13(){} - virtual void F14(){} - virtual void F15(){} - virtual void F16(){} - virtual void F17(){} - virtual void F18(){} - virtual void F19(){} - virtual float F20() const { return 1.0f; } // Look! F20 is const-ed and returns a float - virtual void F21(){} - virtual void F22(){} - virtual void F23(){} - virtual void F24(){} - virtual void F25(){} - virtual void F26(){} - virtual void F27(){} - virtual void F28(){} - virtual void F29(){} - virtual void F30(){} - virtual void F31(){} - virtual void F32(){} - virtual void F33(){} - virtual void F34(){} - virtual void F35(){} - virtual void F36(){} - virtual void F37(){} - virtual void F38(){} - virtual void F39(){} - virtual void F40(){} - virtual void F41(){} - virtual void F42(){} - virtual void F43(){} - virtual void F44(){} - virtual void F45(){} - virtual void F46(){} - virtual void F47(){} - virtual void F48(){} - virtual void F49(){} - virtual void F50(){} - virtual void F51(){} - virtual void F52(){} - virtual void F53(){} - virtual void F54(){} - virtual void F55(){} - virtual void F56(){} - virtual void F57(){} - virtual void F58(){} - virtual void F59(){} - virtual void F60(int &hello){} - virtual void F61(){} - virtual void F62(){} - virtual void F63(){} - virtual void F64(){} - virtual void F65(){} - virtual void F66(){} - virtual void F67(){} - virtual void F68(){} - virtual void F69(){} - virtual void F70(){} - virtual void F71(){} - virtual void F72(){} - virtual void F73(){} - virtual void F74(){} - virtual void F75(){} - virtual void F76(){} - virtual void F77(){} - virtual void F78(){} - virtual void F79(){} - virtual void F80(){} - virtual void F81(){} - virtual void F82(){} - virtual void F83(){} - virtual void F84(){} - virtual void F85(){} - virtual void F86(){} - virtual void F87(){} - virtual void F88(){} - virtual void F89(){} - virtual void F90(){} - virtual void F91(){} - virtual void F92(){} - virtual void F93(){} - virtual void F94(){} - virtual void F95(){} - virtual void F96(){} - virtual void F97(){} - virtual void F98(){} - virtual void F99(){} - virtual void F100(){} - virtual void F101(){} - virtual void F102(){} - virtual void F103(){} - virtual void F104(){} - virtual void F105(){} - virtual void F106(){} - virtual void F107(){} - virtual void F108(){} - virtual void F109(){} - virtual void F110(){} - virtual void F111(){} - virtual void F112(){} - virtual void F113(){} - virtual void F114(){} - virtual void F115(){} - virtual void F116(){} - virtual void F117(){} - virtual void F118(){} - virtual void F119(){} - virtual void F120(){} - virtual void F121(){} - virtual void F122(){} - virtual void F123(){} - virtual void F124(){} - virtual void F125(){} - virtual void F126(){} - virtual void F127(){} - virtual void F128(){} - virtual void F129(){} - virtual void F130(){} - virtual void F131(){} - virtual void F132(){} - virtual void F133(){} - virtual void F134(){} - virtual void F135(){} - virtual void F136(){} - virtual void F137(){} - virtual void F138(){} - virtual void F139(){} - virtual void F140(){} - virtual void F141(){} - virtual void F142(){} - virtual void F143(){} - virtual void F144(){} - virtual void F145(){} - virtual void F146(){} - virtual void F147(){} - virtual void F148(){} - virtual void F149(){} - virtual void F150(){} - virtual void F151(){} - virtual void F152(){} - virtual void F153(){} - virtual void F154(){} - virtual void F155(){} - virtual void F156(){} - virtual void F157(){} - virtual void F158(){} - virtual void F159(){} - virtual void F160(){} - virtual void F161(){} - virtual void F162(){} - virtual void F163(){} - virtual void F164(){} - virtual void F165(){} - virtual void F166(){} - virtual void F167(){} - virtual void F168(){} - virtual void F169(){} - virtual void F170(){} - virtual void F171(){} - virtual void F172(){} - virtual void F173(){} - virtual void F174(){} - virtual void F175(){} - virtual void F176(){} - virtual void F177(){} - virtual void F178(){} - virtual void F179(){} - virtual void F180(){} - virtual void F181(){} - virtual void F182(){} - virtual void F183(){} - virtual void F184(){} - virtual void F185(){} - virtual void F186(){} - virtual void F187(){} - virtual void F188(){} - virtual void F189(){} - virtual void F190(){} - virtual void F191(){} - virtual void F192(){} - virtual void F193(){} - virtual void F194(){} - virtual void F195(){} - virtual void F196(){} - virtual void F197(){} - virtual void F198(){} - virtual void F199(){} - virtual void F200(){} - virtual void F201(){} - virtual void F202(){} - virtual void F203(){} - virtual void F204(){} - virtual void F205(){} - virtual void F206(){} - virtual void F207(){} - virtual void F208(){} - virtual void F209(){} - virtual void F210(){} - virtual void F211(){} - virtual void F212(){} - virtual void F213(){} - virtual void F214(){} - virtual void F215(){} - virtual void F216(){} - virtual void F217(){} - virtual void F218(){} - virtual void F219(){} - virtual void F220(){} - virtual void F221(){} - virtual void F222(){} - virtual void F223(){} - virtual void F224(){} - virtual void F225(){} - virtual void F226(){} - virtual void F227(){} - virtual void F228(){} - virtual void F229(){} - virtual void F230(){} - virtual void F231(){} - virtual void F232(){} - virtual void F233(){} - virtual void F234(){} - virtual void F235(){} - virtual void F236(){} - virtual void F237(){} - virtual void F238(){} - virtual void F239(){} - virtual void F240(){} - virtual void F241(){} - virtual void F242(){} - virtual void F243(){} - virtual void F244(){} - virtual void F245(){} - virtual void F246(){} - virtual void F247(){} - virtual void F248(){} - virtual void F249(){} - virtual void F250(){} - virtual void F251(){} - virtual void F252(){} - virtual void F253(){} - virtual void F254(){} - virtual void F255(){} - virtual void F256(){} - virtual void F257(){} - virtual void F258(){} - virtual void F259(){} - virtual void F260(){} - virtual void F261(){} - virtual void F262(){} - virtual void F263(){} - virtual void F264(){} - virtual void F265(){} - virtual void F266(){} - virtual void F267(){} - virtual void F268(){} - virtual void F269(){} - virtual void F270(){} - virtual void F271(){} - virtual void F272(){} - virtual void F273(){} - virtual void F274(){} - virtual void F275(){} - virtual void F276(){} - virtual void F277(){} - virtual void F278(){} - virtual void F279(){} - virtual void F280(){} - virtual void F281(){} - virtual void F282(){} - virtual void F283(){} - virtual void F284(){} - virtual void F285(){} - virtual void F286(){} - virtual void F287(){} - virtual void F288(){} - virtual void F289(){} - virtual void F290(){} - virtual void F291(){} - virtual void F292(){} - virtual void F293(){} - virtual void F294(){} - virtual void F295(){} - virtual void F296(){} - virtual void F297(){} - virtual void F298(){} - virtual bool F299(const char *mwah) - { - ADD_STATE(State_F299_Called(mwah)); - return true; - } - }; - - SH_DECL_HOOK1(Test, F299, SH_NOATTRIB, 0, bool, const char *); - SH_DECL_HOOK0_void(Test, F1, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F2, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F3, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F4, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F5, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F6, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F7, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F8, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F9, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, F10, SH_NOATTRIB, 0); - - SH_DECL_HOOK0(Test, F20, const, 0, float); - SH_DECL_HOOK1_void(Test, F60, SH_NOATTRIB, 0, int&); - - META_RES g_F1Pre_WhatToDo; - META_RES g_F1Post_WhatToDo; - - struct HandlersF1 - { - void Pre() - { - ADD_STATE(State_F1_PreHandler_Called(reinterpret_cast(this))); - RETURN_META(g_F1Pre_WhatToDo); - } - - void Post() - { - ADD_STATE(State_F1_PostHandler_Called(reinterpret_cast(this))); - RETURN_META(g_F1Post_WhatToDo); - } - }; - - META_RES g_F299Pre_WhatToDo; - bool g_F299Pre_WhatToRet; - - bool F299_Pre(const char *mwah) - { - ADD_STATE(State_F299_PreHandlerCalled(mwah)); - RETURN_META_VALUE(g_F299Pre_WhatToDo, g_F299Pre_WhatToRet); - } - - bool F299_Post(const char *mwah) - { - ADD_STATE(State_F299_PostHandlerCalled(mwah)); - RETURN_META_VALUE(MRES_OVERRIDE, META_RESULT_STATUS >= MRES_OVERRIDE ? !META_RESULT_OVERRIDE_RET(bool) : - !META_RESULT_ORIG_RET(bool)); - } - - void F60_Pre(int &hello) - { - hello = 10; - } -} - -template T func(T a) -{ - return a; -} - - -bool TestBasic(std::string &error) -{ - // Simple test for ModuleInMemory - // 1) &error should on the stack - // 2) 0 should not be mapped - ADD_STATE(State_ModuleInMemory(SourceHook::ModuleInMemory(reinterpret_cast(&error), sizeof(error)))); - ADD_STATE(State_ModuleInMemory(SourceHook::ModuleInMemory(0, 1))); - - CHECK_STATES((&g_States, - new State_ModuleInMemory(true), - new State_ModuleInMemory(false), - NULL), "ModuleInMemory"); - - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - HandlersF1 f1_handlers; - Test test; - Test *pTest = &test; - - // 1) Get a call class and call the member through it and normally - SourceHook::CallClass *cc = SH_GET_CALLCLASS(pTest); - - ADD_STATE(State_F1_CallClassGenerated); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_CallClassGenerated, - new State_F1_Called, - new State_F1_Called, - NULL), "Part 1"); - - // 2) Request a call class again - SourceHook::CallClass *cc2 = SH_GET_CALLCLASS(pTest); - ADD_STATE(State_F1_CallClassGenerated); - - SH_CALL(cc, &Test::F1)(); - SH_CALL(cc2, &Test::F1)(); - pTest->F1(); - - SH_RELEASE_CALLCLASS(cc2); - ADD_STATE(State_F1_CallClassReleased); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_CallClassGenerated, - new State_F1_Called, - new State_F1_Called, - new State_F1_Called, - new State_F1_CallClassReleased, - new State_F1_Called, - new State_F1_Called, - NULL), "Part 2"); - - // 3) Add a pre hook - g_F1Pre_WhatToDo = MRES_SUPERCEDE; - ADD_STATE(State_F1_HookAdded(SH_ADD_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, false))); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_HookAdded(true), - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - NULL), "Part 3"); - - // 4) Rerequest the callclass - SH_RELEASE_CALLCLASS(cc); - - ADD_STATE(State_F1_CallClassReleased); - cc2 = SH_GET_CALLCLASS(pTest); - ADD_STATE(State_F1_CallClassGenerated); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_CallClassReleased, - new State_F1_CallClassGenerated, - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - NULL), "Part 4"); - - // 5) Check ignore / supercede - g_F1Pre_WhatToDo = MRES_SUPERCEDE; - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - g_F1Pre_WhatToDo = MRES_IGNORED; - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - new State_F1_Called, - NULL), "Part 5"); - - // 6) remove the hook again - SH_REMOVE_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, false); - ADD_STATE(State_F1_HookRemoved); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_HookRemoved, - new State_F1_Called, - new State_F1_Called, - NULL), "Part 6"); - - // 7) add a post hook now - g_F1Post_WhatToDo = MRES_IGNORED; - ADD_STATE(State_F1_HookAdded(SH_ADD_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Post, true))); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_HookAdded(true), - new State_F1_Called, - new State_F1_Called, - new State_F1_PostHandler_Called(&f1_handlers), - NULL), "Part 7"); - - // 8) And a pre hook again - g_F1Pre_WhatToDo = MRES_IGNORED; - ADD_STATE(State_F1_HookAdded(SH_ADD_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, false))); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - g_F1Pre_WhatToDo = MRES_SUPERCEDE; - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_HookAdded(true), - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - new State_F1_Called, - new State_F1_PostHandler_Called(&f1_handlers), - new State_F1_Called, - new State_F1_PreHandler_Called(&f1_handlers), - new State_F1_PostHandler_Called(&f1_handlers), - NULL), "Part 8"); - - // 9) Remove all hooks - SH_REMOVE_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, false); - ADD_STATE(State_F1_HookRemoved); - SH_REMOVE_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Post, true); - ADD_STATE(State_F1_HookRemoved); - - SH_CALL(cc, &Test::F1)(); - pTest->F1(); - - CHECK_STATES((&g_States, - new State_F1_HookRemoved, - new State_F1_HookRemoved, - new State_F1_Called, - new State_F1_Called, - NULL), "Part 9"); - - // 10) Some checks on F299 - g_F299Pre_WhatToDo = MRES_IGNORED; - g_F299Pre_WhatToRet = false; - - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_Called("hi"), - new State_F299Ret(true), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.1"); - - SH_ADD_HOOK_STATICFUNC(Test, F299, pTest, F299_Pre, false); - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_PreHandlerCalled("hi"), - new State_F299_Called("hi"), - new State_F299Ret(true), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.2"); - - SH_ADD_HOOK_STATICFUNC(Test, F299, pTest, F299_Post, true); - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_PreHandlerCalled("hi"), - new State_F299_Called("hi"), - new State_F299_PostHandlerCalled("hi"), - new State_F299Ret(false), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.3"); - - g_F299Pre_WhatToDo = MRES_OVERRIDE; - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_PreHandlerCalled("hi"), - new State_F299_Called("hi"), - new State_F299_PostHandlerCalled("hi"), - new State_F299Ret(true), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.4"); - - g_F299Pre_WhatToDo = MRES_SUPERCEDE; - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_PreHandlerCalled("hi"), - new State_F299_PostHandlerCalled("hi"), - new State_F299Ret(true), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.5"); - - SH_REMOVE_HOOK_STATICFUNC(Test, F299, pTest, F299_Pre, false); - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_Called("hi"), - new State_F299_PostHandlerCalled("hi"), - new State_F299Ret(false), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.6"); - - SH_REMOVE_HOOK_STATICFUNC(Test, F299, pTest, F299_Post, true); - ADD_STATE(State_F299Ret(pTest->F299("hi"))); - ADD_STATE(State_F299Ret(SH_CALL(cc, &Test::F299)("hi"))); - - CHECK_STATES((&g_States, - new State_F299_Called("hi"), - new State_F299Ret(true), - new State_F299_Called("hi"), - new State_F299Ret(true), - NULL), "Part 10.7"); - - // 11) Release callclass - SH_RELEASE_CALLCLASS(cc); - ADD_STATE(State_F1_CallClassReleased); - - - CHECK_STATES((&g_States, - new State_F1_CallClassReleased, - NULL), "Part 11"); - - // 12) Test? Test. - SH_ADD_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_ADD_HOOK_MEMFUNC(Test, F2, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_ADD_HOOK_MEMFUNC(Test, F3, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_ADD_HOOK_MEMFUNC(Test, F4, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_ADD_HOOK_MEMFUNC(Test, F5, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_ADD_HOOK_MEMFUNC(Test, F6, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_ADD_HOOK_MEMFUNC(Test, F7, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_ADD_HOOK_MEMFUNC(Test, F8, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_ADD_HOOK_MEMFUNC(Test, F9, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_ADD_HOOK_MEMFUNC(Test, F10, pTest, &f1_handlers, &HandlersF1::Pre, false); - - SH_REMOVE_HOOK_MEMFUNC(Test, F1, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_REMOVE_HOOK_MEMFUNC(Test, F2, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_REMOVE_HOOK_MEMFUNC(Test, F3, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_REMOVE_HOOK_MEMFUNC(Test, F4, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_REMOVE_HOOK_MEMFUNC(Test, F5, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_REMOVE_HOOK_MEMFUNC(Test, F6, pTest, &f1_handlers, &HandlersF1::Pre, true); - SH_REMOVE_HOOK_MEMFUNC(Test, F7, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_REMOVE_HOOK_MEMFUNC(Test, F8, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_REMOVE_HOOK_MEMFUNC(Test, F9, pTest, &f1_handlers, &HandlersF1::Pre, false); - SH_REMOVE_HOOK_MEMFUNC(Test, F10, pTest, &f1_handlers, &HandlersF1::Pre, false); - - SH_ADD_HOOK_STATICFUNC(Test, F60, pTest, F60_Pre, false); - - int a = 0; - pTest->F60(a); - Test_CompleteShutdown(g_SHPtr); - - CHECK_COND(a == 10, "Part12.a"); - - return true; -} diff --git a/sourcehook/test/test2.cpp b/sourcehook/test/test2.cpp deleted file mode 100644 index 1164e0f..0000000 --- a/sourcehook/test/test2.cpp +++ /dev/null @@ -1,171 +0,0 @@ -#include -#include "sourcehook_test.h" -#include "testevents.h" -#include - -// TEST2 -// Vafmt and Overloaded functions -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_EatYams_Called, int); - MAKE_STATE_1(State_EatYams_Handler_Called, int); - MAKE_STATE_2(State_Vafmt_Called, int, std::string); - MAKE_STATE_2(State_Vafmt_PreHandler_Called, int, std::string); - MAKE_STATE_2(State_Vafmt_PostHandler_Called, int, std::string); - - class IGaben - { - public: - virtual void EatYams() - { - ADD_STATE(State_EatYams_Called(0)); - } - virtual bool EatYams(const char *location) const - { - ADD_STATE(State_EatYams_Called(1)); - return true; - } - virtual void Vafmt1(bool param1, int x, const char *fmt, ...) - { - va_list ap; - va_start(ap, fmt); - char buffer[512]; - vsprintf(buffer, fmt, ap); - va_end(ap); - ADD_STATE(State_Vafmt_Called(1, std::string(buffer))); - } - virtual float Vafmt2(const char *fmt, ...) - { - va_list ap; - va_start(ap, fmt); - char buffer[512]; - vsprintf(buffer, fmt, ap); - va_end(ap); - ADD_STATE(State_Vafmt_Called(2, std::string(buffer))); - return 0.0f; - } - }; - - SH_DECL_HOOK0_void(IGaben, EatYams, SH_NOATTRIB, 0); - SH_DECL_HOOK1(IGaben, EatYams, const, 1, bool, const char *); - SH_DECL_HOOK2_void_vafmt(IGaben, Vafmt1, SH_NOATTRIB, 0, bool, int); - SH_DECL_HOOK0_vafmt(IGaben, Vafmt2, SH_NOATTRIB, 0, float); - - void EatYams0_Handler() - { - ADD_STATE(State_EatYams_Handler_Called(0)); - } - - bool EatYams1_Handler(const char *loc) - { - ADD_STATE(State_EatYams_Handler_Called(1)); - return true; - } - - void Vafmt1_PreHandler(bool param1, int x, const char *in) - { - ADD_STATE(State_Vafmt_PreHandler_Called(1, std::string(in))); - } - void Vafmt1_PostHandler(bool param1, int x, const char *in) - { - ADD_STATE(State_Vafmt_PostHandler_Called(1, std::string(in))); - } - float Vafmt2_PreHandler(const char *in) - { - ADD_STATE(State_Vafmt_PreHandler_Called(2, std::string(in))); - return 0.0f; - } - float Vafmt2_PostHandler(const char *in) - { - ADD_STATE(State_Vafmt_PostHandler_Called(2, std::string(in))); - return 0.0f; - } -} - - -bool TestVafmtAndOverload(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - IGaben gabgab; - IGaben *pGab = &gabgab; - - SourceHook::CallClass *cc = SH_GET_CALLCLASS(pGab); - - // Part 1 - SH_CALL(cc, static_cast(&IGaben::EatYams))(); - SH_CALL(cc, static_cast(&IGaben::EatYams))("Here!"); - - SH_ADD_HOOK(IGaben, EatYams, pGab, EatYams0_Handler, false); - SH_ADD_HOOK(IGaben, EatYams, pGab, EatYams1_Handler, false); - - pGab->EatYams(); - pGab->EatYams("Here!"); - - SH_REMOVE_HOOK(IGaben, EatYams, pGab, EatYams0_Handler, false); - SH_REMOVE_HOOK(IGaben, EatYams, pGab, EatYams1_Handler, false); - - CHECK_STATES((&g_States, - new State_EatYams_Called(0), - new State_EatYams_Called(1), - new State_EatYams_Handler_Called(0), - new State_EatYams_Called(0), - new State_EatYams_Handler_Called(1), - new State_EatYams_Called(1), - NULL),"Part 1"); - - // Part 2 - pGab->Vafmt1(true, 55, "Hello %s%d%s", "BA", 1, "L"); - SH_CALL(cc, &IGaben::Vafmt1)(true, 55, "Hello %s%d%s", "BA", 1, "L"); - pGab->Vafmt2("Hello %s%d%s", "BA", 1, "LOPAN"); - SH_CALL(cc, &IGaben::Vafmt2)("Hello %s%d%s", "BA", 1, "LOPAN"); - - CHECK_STATES((&g_States, - new State_Vafmt_Called(1, "Hello BA1L"), - new State_Vafmt_Called(1, "Hello BA1L"), - new State_Vafmt_Called(2, "Hello BA1LOPAN"), - new State_Vafmt_Called(2, "Hello BA1LOPAN"), - NULL), "Part 2"); - - // Part 3 - SH_ADD_HOOK(IGaben, Vafmt1, pGab, Vafmt1_PreHandler, false); - SH_ADD_HOOK(IGaben, Vafmt1, pGab, Vafmt1_PostHandler, true); - SH_ADD_HOOK(IGaben, Vafmt2, pGab, Vafmt2_PreHandler, false); - SH_ADD_HOOK(IGaben, Vafmt2, pGab, Vafmt2_PostHandler, true); - - pGab->Vafmt1(true, 55, "Hello %s%d%s", "BA", 1, "L"); - pGab->Vafmt2("Hello %s%d%s", "BA", 1, "LOPAN"); - - CHECK_STATES((&g_States, - new State_Vafmt_PreHandler_Called(1, std::string("Hello BA1L")), - new State_Vafmt_Called(1, std::string("Hello BA1L")), - new State_Vafmt_PostHandler_Called(1, std::string("Hello BA1L")), - - new State_Vafmt_PreHandler_Called(2, std::string("Hello BA1LOPAN")), - new State_Vafmt_Called(2, std::string("Hello BA1LOPAN")), - new State_Vafmt_PostHandler_Called(2, std::string("Hello BA1LOPAN")), - NULL), "Part 3"); - - // Part 4 - SH_REMOVE_HOOK(IGaben, Vafmt1, pGab, Vafmt1_PreHandler, false); - SH_REMOVE_HOOK(IGaben, Vafmt1, pGab, Vafmt1_PostHandler, true); - SH_REMOVE_HOOK(IGaben, Vafmt2, pGab, Vafmt2_PreHandler, false); - SH_REMOVE_HOOK(IGaben, Vafmt2, pGab, Vafmt2_PostHandler, true); - - pGab->Vafmt1(true, 55, "Hello %s%d%s", "BA", 1, "L"); - pGab->Vafmt2("Hello %s%d%s", "BA", 1, "LOPAN"); - - CHECK_STATES((&g_States, - new State_Vafmt_Called(1, "Hello BA1L"), - new State_Vafmt_Called(2, "Hello BA1LOPAN"), - NULL), "Part 4"); - - SH_RELEASE_CALLCLASS(cc); - - return true; -} diff --git a/sourcehook/test/test3.cpp b/sourcehook/test/test3.cpp deleted file mode 100644 index 97d04c2..0000000 --- a/sourcehook/test/test3.cpp +++ /dev/null @@ -1,238 +0,0 @@ -#include -#include "sourcehook_test.h" -#include "testevents.h" - -// TEST3 -// Tests with inheritance / thisptroffsets - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_Func1_Called, void*); // param1: This pointer - MAKE_STATE_1(State_Func2_Called, void*); // param1: This pointer - MAKE_STATE_1(State_Func3_Called, void*); // param1: This pointer - - MAKE_STATE_1(State_Func1H_Called, void*); - MAKE_STATE_1(State_Func2H_Called, void*); - MAKE_STATE_1(State_Func3H_Called, void*); - - class Base1 - { - int a; - public: - virtual void Func1() - { - ADD_STATE(State_Func1_Called(reinterpret_cast(this))); - } - }; - class Base2 - { - int b; - public: - virtual void Func2() - { - ADD_STATE(State_Func2_Called(reinterpret_cast(this))); - } - }; - class Derived : public Base1, public Base2 - { - int c; - public: - virtual void Func3() - { - ADD_STATE(State_Func3_Called(reinterpret_cast(this))); - } - }; - - SH_DECL_HOOK0_void(Derived, Func1, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Derived, Func2, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Derived, Func3, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Base1, Func1, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Base2, Func2, SH_NOATTRIB, 0); - - void Handler_Func1() - { - ADD_STATE(State_Func1H_Called(META_IFACEPTR(void))); - } - void Handler_Func2() - { - ADD_STATE(State_Func2H_Called(META_IFACEPTR(void))); - } - void Handler_Func3() - { - ADD_STATE(State_Func3H_Called(META_IFACEPTR(void))); - } -} - -bool TestThisPtrOffs(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - Derived inst; - Derived *pD = &inst; - Base1 *pB1 = pD; - Base2 *pB2 = pD; - - // It should be: - // pB1 = pD - // pB2 > pB1 - - // 1) - // Get a callclass for pD - // Verify whether the this pointers are correct - // Also call them normally to make sure that we aren't messing it up ;) - SourceHook::CallClass *pD_CC = SH_GET_CALLCLASS(pD); - - SH_CALL(pD_CC, &Derived::Func1)(); - SH_CALL(pD_CC, &Derived::Func2)(); - SH_CALL(pD_CC, &Derived::Func3)(); - pD->Func1(); - pD->Func2(); - pD->Func3(); - - CHECK_STATES((&g_States, - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - new State_Func3_Called(pD), - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - new State_Func3_Called(pD), - NULL), "Part 1"); - - SH_CALL(pD_CC, &Base1::Func1)(); - SH_CALL(pD_CC, &Base2::Func2)(); - - CHECK_STATES((&g_States, - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - NULL), "Part 1.1"); - - // 2) - // Get callclasses for the other ones and verify it as well - - SourceHook::CallClass *pB1_CC = SH_GET_CALLCLASS(pB1); - SourceHook::CallClass *pB2_CC = SH_GET_CALLCLASS(pB2); - - SH_CALL(pB1_CC, &Base1::Func1)(); - SH_CALL(pB2_CC, &Base2::Func2)(); - - CHECK_STATES((&g_States, - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - NULL), "Part 2"); - - - // 3) Add hooks on them (referring to them through pD1 / Derived) - // Check whether the hooks are called with the correct this pointer - - SH_ADD_HOOK_STATICFUNC(Derived, Func1, pD, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Derived, Func2, pD, Handler_Func2, false); - SH_ADD_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - pD->Func1(); - pD->Func2(); - pD->Func3(); - pB1->Func1(); - pB2->Func2(); - - // The handlers should always be called with the pointer to Derived - CHECK_STATES((&g_States, - new State_Func1H_Called(pD), - new State_Func1_Called(pB1), - new State_Func2H_Called(pD), - new State_Func2_Called(pB2), - new State_Func3H_Called(pD), - new State_Func3_Called(pD), - new State_Func1H_Called(pD), - new State_Func1_Called(pB1), - new State_Func2H_Called(pD), - new State_Func2_Called(pB2), - NULL), "Part 3"); - - SH_REMOVE_HOOK_STATICFUNC(Derived, Func1, pD, Handler_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(Derived, Func2, pD, Handler_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - // 4) - // Now add the hooks on Base1 and Base2 and check again - - // Note that the new implicit_cast should convert the pD to Base1*/Base2* :) - SH_ADD_HOOK_STATICFUNC(Base1, Func1, pD, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Base2, Func2, pD, Handler_Func2, false); - SH_ADD_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - pD->Func1(); - pD->Func2(); - pD->Func3(); - pB1->Func1(); - pB2->Func2(); - - // This time, the handlers for Func1 should be called with pB1 and the handlers - // for Func2 should be called with pB2 - CHECK_STATES((&g_States, - new State_Func1H_Called(pB1), - new State_Func1_Called(pB1), - new State_Func2H_Called(pB2), - new State_Func2_Called(pB2), - new State_Func3H_Called(pD), - new State_Func3_Called(pD), - new State_Func1H_Called(pB1), - new State_Func1_Called(pB1), - new State_Func2H_Called(pB2), - new State_Func2_Called(pB2), - NULL), "Part 4"); - - SH_REMOVE_HOOK_STATICFUNC(Base1, Func1, pD, Handler_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(Base2, Func2, pD, Handler_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - - // 5) - // Add some hooks, and use callclasses - - // 5.1) First off, add all of them on pD - SH_ADD_HOOK_STATICFUNC(Derived, Func1, pD, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Derived, Func2, pD, Handler_Func2, false); - SH_ADD_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - pD->Func1(); - pD->Func2(); - pD->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called(pD), - new State_Func1_Called(pB1), - new State_Func2H_Called(pD), - new State_Func2_Called(pB2), - new State_Func3H_Called(pD), - new State_Func3_Called(pD), - NULL), "Part 5.1"); - - SH_CALL(pD_CC, &Derived::Func1)(); - SH_CALL(pD_CC, &Derived::Func2)(); - SH_CALL(pD_CC, &Derived::Func3)(); - SH_CALL(pB1_CC, &Base1::Func1)(); - SH_CALL(pB2_CC, &Base2::Func2)(); - - CHECK_STATES((&g_States, - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - new State_Func3_Called(pD), - new State_Func1_Called(pB1), - new State_Func2_Called(pB2), - NULL), "Part 5.2"); - - SH_REMOVE_HOOK_STATICFUNC(Derived, Func1, pD, Handler_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(Derived, Func2, pD, Handler_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(Derived, Func3, pD, Handler_Func3, false); - - SH_RELEASE_CALLCLASS(pB1_CC); - SH_RELEASE_CALLCLASS(pB2_CC); - SH_RELEASE_CALLCLASS(pD_CC); - - return true; -} diff --git a/sourcehook/test/test4.cpp b/sourcehook/test/test4.cpp deleted file mode 100644 index f2b0a88..0000000 --- a/sourcehook/test/test4.cpp +++ /dev/null @@ -1,420 +0,0 @@ -#include -#include "sourcehook_test.h" -#include "testevents.h" - -// TEST4 -// Tests of plugin management system - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE(State_Func1_Called); - MAKE_STATE(State_Func2_Called); - MAKE_STATE(State_Func3_Called); - - MAKE_STATE(State_Func1H_Called); - MAKE_STATE(State_Func2H_Called); - MAKE_STATE(State_Func3H_Called); - - MAKE_STATE_2(State_PluginInUse, int, bool); - - class Test - { - public: - virtual void Func1() - { - ADD_STATE(State_Func1_Called); - } - - virtual void Func2() - { - ADD_STATE(State_Func2_Called); - } - - virtual void Func3() - { - ADD_STATE(State_Func3_Called); - } - }; - - SH_DECL_HOOK0_void(Test, Func1, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, Func2, SH_NOATTRIB, 0); - SH_DECL_HOOK0_void(Test, Func3, SH_NOATTRIB, 0); - - void Handler_Func1() - { - ADD_STATE(State_Func1H_Called); - } - void Handler_Func2() - { - ADD_STATE(State_Func2H_Called); - } - void Handler_Func3() - { - ADD_STATE(State_Func3H_Called); - } -} - -bool TestPlugSys(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1; - - Test inst; - Test *pInst = &inst; - - // 1) - // Add hooks, then issue a complete shutdown - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 1.1"); - - Test_CompleteShutdown(g_SHPtr); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1_Called, - new State_Func2_Called, - new State_Func3_Called, - NULL), "Part 1.2"); - - // 2) - // Add hooks from "different plugins", then shutdown the plugins - - g_PLID = 1; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - g_PLID = 2; - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - g_PLID = 3; - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 1; - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 2; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 3; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 2.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 2.2"); - - // Unload plugins one by one - Test_UnloadPlugin(g_SHPtr, 3); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 2.3.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, false), - new State_PluginInUse(4, false), - NULL), "Part 2.3.2"); - - Test_UnloadPlugin(g_SHPtr, 2); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 2.4.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, false), - new State_PluginInUse(3, false), - new State_PluginInUse(4, false), - NULL), "Part 2.4.2"); - - Test_UnloadPlugin(g_SHPtr, 1); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1_Called, - new State_Func2_Called, - new State_Func3_Called, - NULL), "Part 2.5.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, false), - new State_PluginInUse(2, false), - new State_PluginInUse(3, false), - new State_PluginInUse(4, false), - NULL), "Part 2.5.2"); - - - // 3) - // Add hooks from "different plugins", then pause the plugins - - g_PLID = 1; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - g_PLID = 2; - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - g_PLID = 3; - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 1; - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 2; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func3, pInst, Handler_Func3, false); - - g_PLID = 3; - SH_ADD_HOOK_STATICFUNC(Test, Func1, pInst, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, pInst, Handler_Func2, true); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 3.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 3.2"); - - // Unload plugins one by one - Test_PausePlugin(g_SHPtr, 3); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 3.3.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 3.3.2"); - - Test_PausePlugin(g_SHPtr, 2); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 3.4.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 3.4.2"); - - Test_PausePlugin(g_SHPtr, 1); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1_Called, - new State_Func2_Called, - new State_Func3_Called, - NULL), "Part 3.5.1"); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 3.5.2"); - - Test_UnpausePlugin(g_SHPtr, 1); - Test_UnpausePlugin(g_SHPtr, 2); - Test_UnpausePlugin(g_SHPtr, 3); - - ADD_STATE(State_PluginInUse(1, Test_IsPluginInUse(g_SHPtr, 1))); - ADD_STATE(State_PluginInUse(2, Test_IsPluginInUse(g_SHPtr, 2))); - ADD_STATE(State_PluginInUse(3, Test_IsPluginInUse(g_SHPtr, 3))); - ADD_STATE(State_PluginInUse(4, Test_IsPluginInUse(g_SHPtr, 4))); - - CHECK_STATES((&g_States, - new State_PluginInUse(1, true), - new State_PluginInUse(2, true), - new State_PluginInUse(3, true), - new State_PluginInUse(4, false), - NULL), "Part 3.6"); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1H_Called, - new State_Func1_Called, - new State_Func2_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func2H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3H_Called, - new State_Func3_Called, - NULL), "Part 3.7"); - - // 4) Shutdown :) - Test_CompleteShutdown(g_SHPtr); - - pInst->Func1(); - pInst->Func2(); - pInst->Func3(); - - CHECK_STATES((&g_States, - new State_Func1_Called, - new State_Func2_Called, - new State_Func3_Called, - NULL), "Part 4"); - - return true; -} diff --git a/sourcehook/test/testbail.cpp b/sourcehook/test/testbail.cpp deleted file mode 100644 index ebb6d92..0000000 --- a/sourcehook/test/testbail.cpp +++ /dev/null @@ -1,119 +0,0 @@ -// TESTBAIL -// This test used to be a test for a bug BAIL found. -// That bug is now fixed so I've granted BAIL the pleasure of being a test for -// the correct priority ordering of hook managers based on their version. - -/* - THE PROBLEM: - Old hook funcs don't work right when you combine override returns and recalls. - THE SOLUTION: - Always use a new hook func when possible. For this, hook funcs have to be able to say - " HELLO I'M NEW! " - - This file tests that functionality. - - How it works: - testbail.cpp compiles with old version of sourcehook.h. - It sets everything up, adds a hook on a function - Then testbail2.cpp which has the new version adds a hook on the same function and - does a recall and overrides the value in it. -*/ -#include "sourcehook_test.h" -#include "testbail.h" - -namespace N_TestBail -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - IGaben *g_Gabgab; -} - -namespace -{ - int EatYams_Handler1(int a) - { - ADD_STATE(State_EatYams_Handler1_Called(a)); - RETURN_META_VALUE(MRES_IGNORED, 0); - } -} - -bool TestBail(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1; - - g_Gabgab = new IGaben; - - SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler1, false); - - ADD_STATE(State_EatYams_Return(g_Gabgab->EatYams(0xDEAD))); - - CHECK_STATES((&g_States, - new State_EatYams_Handler1_Called(0xDEAD), - new State_EatYams_Called(0xDEAD), - new State_EatYams_Return(5), - NULL), "Part 1"); - - if (!TestBail2(error)) - return false; - - CHECK_STATES((&g_States, - new State_EatYams_Handler1_Called(0xDEAD), - new State_EatYams_Handler2_Called(0xDEAD), - new State_EatYams_Handler3_Called(0xBEEF), - new State_EatYams_Called(0xBEEF), - NULL), "Part 2.1"); - - // WHAT IF NOW SOMEONE UNLOADS PLUGIN 2 !?!?!?!? - Test_UnloadPlugin(g_SHPtr, 2); - - ADD_STATE(State_EatYams_Return(g_Gabgab->EatYams(0xDEAD))); - - CHECK_STATES((&g_States, - new State_EatYams_Handler1_Called(0xDEAD), - new State_EatYams_Called(0xDEAD), - new State_EatYams_Return(5), - NULL), "Part 3"); - - SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler1, false); - - ADD_STATE(State_EatYams_Return(g_Gabgab->EatYams(0xDEAD))); - - CHECK_STATES((&g_States, - new State_EatYams_Called(0xDEAD), - new State_EatYams_Return(5), - NULL), "Part 4"); - - // Now, heh, try it the other way round. - - Test_CompleteShutdown(g_SHPtr); - - if (!TestBail2(error)) - return false; - - CHECK_STATES((&g_States, - new State_EatYams_Handler2_Called(0xDEAD), - new State_EatYams_Handler3_Called(0xBEEF), - new State_EatYams_Called(0xBEEF), - NULL), "Part 5"); - - SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler1, false); - - ADD_STATE(State_EatYams_Return(g_Gabgab->EatYams(0xDEAD))); - - CHECK_STATES((&g_States, - new State_EatYams_Handler2_Called(0xDEAD), - new State_EatYams_Handler3_Called(0xBEEF), - new State_EatYams_Handler1_Called(0xBEEF), - new State_EatYams_Called(0xBEEF), - new State_EatYams_Return(6), - NULL), "Part 6"); - - SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler1, false); - - UntestBail2(); - - delete g_Gabgab; - - return true; -} diff --git a/sourcehook/test/testbail.h b/sourcehook/test/testbail.h deleted file mode 100644 index f0eed7c..0000000 --- a/sourcehook/test/testbail.h +++ /dev/null @@ -1,40 +0,0 @@ -////////////////////////////////////////////////////////////////////////// -// Shared data for testbail - -#include -#include "testevents.h" - -namespace N_TestBail -{ - extern StateList g_States; - extern SourceHook::ISourceHook *g_SHPtr; - - MAKE_STATE_1(State_EatYams_Called, int); - MAKE_STATE_1(State_EatYams_Handler1_Called, int); - MAKE_STATE_1(State_EatYams_Handler2_Called, int); - MAKE_STATE_1(State_EatYams_Handler3_Called, int); - MAKE_STATE_1(State_EatYams_Return, int); - - class IGaben - { - public: - virtual int EatYams(int a) - { - ADD_STATE(State_EatYams_Called(a)); - return 5; - } - }; - - extern IGaben *g_Gabgab; - - bool TestBail2(std::string &error); - void UntestBail2(); -} - -using namespace N_TestBail; - -namespace -{ - SourceHook::Plugin g_PLID; - SH_DECL_HOOK1(IGaben, EatYams, SH_NOATTRIB, 0, int, int); -} diff --git a/sourcehook/test/testbail2.cpp b/sourcehook/test/testbail2.cpp deleted file mode 100644 index d1d6d3c..0000000 --- a/sourcehook/test/testbail2.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// TESTBAIL -// Different compilation unit - -#include "sourcehook.h" -#include "sourcehook_test.h" -#include "testbail.h" - -static unsigned int n_calls = 0; - -int EatYams_Handler2(int a) -{ - ADD_STATE(State_EatYams_Handler2_Called(a)); - RETURN_META_VALUE_NEWPARAMS(MRES_OVERRIDE, 6, &IGaben::EatYams, (0xBEEF)); -} - -int EatYams_Handler3(int a) -{ - ADD_STATE(State_EatYams_Handler3_Called(a)); - RETURN_META_VALUE(MRES_IGNORED, 0); -} - -namespace N_TestBail -{ - bool TestBail2(std::string &error) - { - g_PLID = 2; - - SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler2, false); - SH_ADD_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler3, false); - - int ret = g_Gabgab->EatYams(0xDEAD); - - CHECK_COND(ret == 6, "Part 2.1"); - - n_calls++; - - return true; - } - - void UntestBail2() - { - while (n_calls) - { - SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler3, false); - SH_REMOVE_HOOK_STATICFUNC(IGaben, EatYams, g_Gabgab, EatYams_Handler2, false); - n_calls--; - } - } -} diff --git a/sourcehook/test/testevents.h b/sourcehook/test/testevents.h deleted file mode 100644 index e555a49..0000000 --- a/sourcehook/test/testevents.h +++ /dev/null @@ -1,153 +0,0 @@ -/* ======== SourceHook ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): Pavol "PM OnoTo" Marko -* ============================ -*/ - -#ifndef __TESTEVENTS_H__ -#define __TESTEVENTS_H__ - -#include -#include -#include -#include -#include - -extern bool g_Verbose; - -struct State -{ - virtual ~State() - { - - } - - virtual bool IsEqual(State *other) - { - return (typeid(other) == typeid(this)) ? true : false; - } - - virtual void Dump() = 0; -}; - -typedef std::list StateList; -namespace -{ - void DumpStates(StateList *sl) - { - for (StateList::iterator iter = sl->begin(); iter != sl->end(); ++iter) - (*iter)->Dump(); - } - - bool StatesOk(StateList *sl, ...) - { - StateList requiredstates; - va_list argptr; - va_start(argptr, sl); - while (true) - { - State *cs = va_arg(argptr, State*); - if (!cs) - break; - requiredstates.push_back(cs); - } - va_end(argptr); - - if (requiredstates.size() != sl->size()) - { - if (g_Verbose) - { - std::cout << std::endl << "FAIL: Should be:" << std::endl; - DumpStates(&requiredstates); - std::cout << std::endl << "FAIL: Is:" << std::endl; - DumpStates(sl); - } - - for (StateList::iterator iter = requiredstates.begin(); iter != requiredstates.end(); ++iter) - delete *iter; - for (StateList::iterator iter = sl->begin(); iter != sl->end(); ++iter) - delete *iter; - sl->clear(); - return false; - } - - bool ok = true; - StateList::iterator req_iter = requiredstates.begin(); - for (StateList::iterator o_iter = sl->begin(); o_iter != sl->end(); ++o_iter, ++req_iter) - { - if (!(*o_iter)->IsEqual(*req_iter)) - { - ok = false; - break; - } - } - - for (StateList::iterator iter = requiredstates.begin(); iter != requiredstates.end(); ++iter) - delete *iter; - for (StateList::iterator iter = sl->begin(); iter != sl->end(); ++iter) - delete *iter; - sl->clear(); - - return ok; - } -} - -#define ADD_STATE(name) g_States.push_back(new name) -#define ADD_STATE_PTR(statesptr, name) statesptr->push_back(new name) - -#define CHECK_STATES(mwah, myerr) if (!StatesOk mwah) { error=myerr; return false; } else if (g_Verbose) { std::cout << "No error: " << myerr << std::endl; } - -#define MAKE_STATE(name) struct name : State { \ - virtual void Dump() { \ - std::cout << " " << #name << std::endl; } \ - }; - -#define MAKE_STATE_1(name, p1_type) struct name : State { \ - p1_type m_Param1; \ - name(p1_type param1) : m_Param1(param1) {} \ - virtual bool IsEqual(State *other) { \ - name *other2 = dynamic_cast(other); \ - if (!other2) \ - return false; \ - return other2->m_Param1 == m_Param1;\ - } \ - virtual void Dump() { \ - std::cout << " " << #name << "; Param1=" << m_Param1 << std::endl; } \ - } - -#define MAKE_STATE_2(name, p1_type, p2_type) struct name : State { \ - p1_type m_Param1; \ - p2_type m_Param2; \ - name(p1_type param1, p2_type param2) : m_Param1(param1), m_Param2(param2) {} \ - virtual bool IsEqual(State *other) { \ - name *other2 = dynamic_cast(other); \ - if (!other2) \ - return false; \ - return other2->m_Param1 == m_Param1 && other2->m_Param2 == m_Param2;\ - } \ - virtual void Dump() { \ - std::cout << " " << #name << "; Param1=" << m_Param1 << "; Param2=" << m_Param2 << std::endl; } \ - } - -#define MAKE_STATE_3(name, p1_type, p2_type, p3_type) struct name : State { \ - p1_type m_Param1; \ - p2_type m_Param2; \ - p3_type m_Param3; \ - name(p1_type param1, p2_type param2, p3_type param3) : m_Param1(param1), m_Param2(param2), m_Param3(param3) {} \ - virtual bool IsEqual(State *other) { \ - name *other2 = dynamic_cast(other); \ - if (!other2) \ - return false; \ - return other2->m_Param1 == m_Param1 && other2->m_Param2 == m_Param2 && other2->m_Param3 == m_Param3;\ - } \ - virtual void Dump() { \ - std::cout << " " << #name << "; Param1=" << m_Param1 << "; Param2=" << m_Param2 << "; Param3=" << m_Param3 << std::endl; } \ - } - -#define CHECK_COND(c, err) if (!(c)) { error = err; return false; } - -#endif diff --git a/sourcehook/test/testlist.cpp b/sourcehook/test/testlist.cpp deleted file mode 100644 index bbaa4d3..0000000 --- a/sourcehook/test/testlist.cpp +++ /dev/null @@ -1,282 +0,0 @@ -#include -#include "sh_list.h" -#include "sh_stack.h" -#include "sh_tinyhash.h" -#include "sh_vector.h" -#include "testevents.h" - -// TEST LIST -// Tests sh_list, sh_tinyhash, sh_vector - -// :TODO: vector test, list insert test - -namespace -{ - struct Hmm - { - Hmm *m_This; - int m_Int; - Hmm(const Hmm &other) : m_Int(other.m_Int) - { - m_This = this; - } - Hmm(int i) : m_Int(i) - { - m_This = this; - } - Hmm() : m_Int(0) - { - m_This = this; - } - void operator = (const Hmm &other) - { - m_Int = other.m_Int; - } - operator int () const - { - return m_Int; - } - }; - - #define LIST_THIS_CHECK(lst, err) \ - for (ListType::iterator iter = lst.begin(); iter != lst.end(); ++iter) \ - CHECK_COND(&(*iter) == iter->m_This, err); - - bool DoTestList(std::string &error) - { - typedef SourceHook::List ListType; - ListType lst; - - CHECK_COND(lst.empty(), "Part1"); - - for (int i = 1; i <= 100; ++i) - lst.push_back(i); - - LIST_THIS_CHECK(lst, "PartA1"); - - CHECK_COND(!lst.empty(), "Part2"); - - lst.clear(); - - CHECK_COND(lst.empty(), "Part3"); - - for (int i = 1; i <= 100; ++i) - lst.push_back(i); - - CHECK_COND(lst.back() == 100, "Part4"); - LIST_THIS_CHECK(lst, "PartA2"); - - int ver = 1; - for (ListType::iterator iter = lst.begin(); iter != lst.end(); ++iter) - CHECK_COND(*iter == ver++, "Part5"); - - CHECK_COND(ver == 101, "Part 6"); - - ListType::iterator iter50 = lst.find(50); - CHECK_COND(*iter50 == 50, "Part7"); - - iter50 = lst.erase(iter50); - CHECK_COND(*iter50 == 51, "Part8"); - CHECK_COND(*--iter50 == 49, "Part8.2"); - - lst.remove(80); - - ver = 1; - for (ListType::iterator iter = lst.begin(); iter != lst.end(); ++iter) - { - CHECK_COND(*iter == ver++, "Part9"); - if (ver == 50 || ver == 80) - ++ver; - } - CHECK_COND(ver == 101, "Part10"); - LIST_THIS_CHECK(lst, "PartA3"); - - ListType lst2; - lst = lst2; - CHECK_COND(lst.empty(), "Part11"); - - for (int i = 1; i <= 100; ++i) - lst.push_back(i); - lst2 = lst; - CHECK_COND(lst2.size() == 100, "Part11.2"); - - LIST_THIS_CHECK(lst, "PartA4"); - LIST_THIS_CHECK(lst2, "PartA5"); - - ver = 1; - for (ListType::iterator iter = lst2.begin(); iter != lst2.end(); ++iter) - CHECK_COND(*iter == ver++, "Part12"); - - lst.clear(); - for (int i = 401; i <= 500; ++i) - lst.push_back(i); - lst = lst2; - CHECK_COND(lst2.size() == 100, "Part13"); - - ver = 1; - for (ListType::iterator iter = lst.begin(); iter != lst.end(); ++iter) - CHECK_COND(*iter == ver++, "Part14"); - - LIST_THIS_CHECK(lst, "PartA6"); - LIST_THIS_CHECK(lst2, "PartA7"); - - return true; - } - - bool DoTestTinyHash(std::string &error) - { - const int mymax = 5000; - - typedef SourceHook::THash HashType; - HashType hash; - - for (int i = 1; i <= mymax; ++i) - hash[i] = i + 5000; - - for (int i = 1; i <= mymax; ++i) - CHECK_COND(hash[i] == i + 5000, "Part1"); - - // Find - int ver = 1; - HashType::iterator iter; - for (iter = hash.begin(); iter != hash.end(); ++iter) - CHECK_COND(iter->key == ver && iter->val == (ver++) + 5000, "Part2"); - - CHECK_COND(ver == mymax+1, "Part2.1"); - - iter = hash.find(300); - CHECK_COND(iter != hash.end() && iter->val == 300+5000, "Part3.1"); - iter = hash.find(mymax+200); - CHECK_COND(iter == hash.end(), "Part3.2"); - - HashType hash2; - for (int i = 1; i <= mymax; ++i) - hash2[i] = i + 5000; - - hash2.erase(mymax - 100); - CHECK_COND(hash2.find(mymax - 101) != hash2.end(), "Part 4.1"); - CHECK_COND(hash2.find(mymax - 99) != hash2.end(), "Part 4.2"); - CHECK_COND(hash2.find(mymax - 100) == hash2.end(), "Part 4.3"); - hash2.erase(mymax - 99); - CHECK_COND(hash2.find(mymax - 101) != hash2.end(), "Part 4.4"); - CHECK_COND(hash2.find(mymax - 99) == hash2.end(), "Part 4.5"); - CHECK_COND(hash2.find(mymax - 100) == hash2.end(), "Part 4.6"); - - return true; - } - - bool DoTestStack(std::string &error) - { - typedef SourceHook::CStack IntStack; - IntStack stk; - int i; - - CHECK_COND(stk.size() == 0 && stk.empty(), "A0"); - - for (i = 0; i < 5000; ++i) - stk.push(i); - - CHECK_COND(stk.front() == 4999, "1"); - CHECK_COND(stk.size() == 5000 && !stk.empty(), "A1"); - - IntStack::iterator iter; - i = 0; - for (iter = stk.begin(); iter != stk.end(); ++iter, ++i) - CHECK_COND(*iter == i, "2"); - - i = 0; - for (iter = stk.begin(); iter != stk.end(); iter++, ++i) - CHECK_COND(*iter == i, "3"); - - --iter; - iter--; - *iter = 'g'+'a'+'b'+'e'+'n'; - stk.pop(); - - CHECK_COND(stk.size() == 4999 && !stk.empty(), "A2"); - CHECK_COND(stk.front() == 'g'+'a'+'b'+'e'+'n', "4"); - - IntStack stk2(stk); - CHECK_COND(stk2.size() == 4999 && !stk2.empty(), "A3"); - - IntStack::iterator iter2 = stk2.begin(); - for (iter = stk.begin(); iter != stk.end(); ++iter, iter2++) - CHECK_COND(*iter == *iter2, "5"); - - while (!stk2.empty()) - stk2.pop(); - CHECK_COND(stk2.size() == 0 && stk2.empty(), "A4"); - stk = stk2; - CHECK_COND(stk.size() == 0 && stk.empty(), "A5"); - - return true; - } - - bool DoTestVec(std::string &error) - { - typedef SourceHook::CVector IntVector; - IntVector vec1; - IntVector::iterator iter; - int i; - - CHECK_COND(vec1.size() == 0 && vec1.empty(), "V1"); - for (i = 0; i < 500; ++i) - vec1.push_back(i); - - CHECK_COND(vec1.size() == 500 && !vec1.empty(), "V2"); - - for (i = 0; i < 500; ++i) - CHECK_COND(vec1[i] == i, "V3"); - - for (i = 0, iter = vec1.begin(); iter != vec1.end(); ++iter, ++i) - CHECK_COND(*iter == i, "V4"); - - vec1.resize(1000); - for (i = 0; i < 500; ++i) - CHECK_COND(vec1[i] == i, "V5.1"); - for (i = 500; i < 1000; ++i) - CHECK_COND(vec1[i] == 0, "V5.2"); - - vec1.resize(200); - for (i = 0; i < 200; ++i) - CHECK_COND(vec1[i] == i, "V6"); - - vec1.resize(500, 0x12345678); - for (i = 0; i < 200; ++i) - CHECK_COND(vec1[i] == i, "V7.1"); - for (i = 200; i < 500; ++i) - CHECK_COND(vec1[i] == 0x12345678, "V7.2"); - - IntVector vec2(vec1); - CHECK_COND(vec2.size() == vec1.size() && vec2.empty() == vec1.empty(), "V8.0"); - for (i = 0; i < 200; ++i) - CHECK_COND(vec2[i] == i, "V8.1"); - for (i = 200; i < 500; ++i) - CHECK_COND(vec2[i] == 0x12345678, "V8.2"); - - - vec1.clear(); - CHECK_COND(vec1.size() == 0 && vec1.empty() && vec1.begin() == vec1.end(), "V9"); - vec2 = vec1; - CHECK_COND(vec2.size() == 0 && vec2.empty() && vec2.begin() == vec2.end(), "V9"); - - return true; - } -} - -bool TestList(std::string &error) -{ - if (!DoTestList(error)) - return false; - - if (!DoTestTinyHash(error)) - return false; - - if (!DoTestStack(error)) - return false; - - if (!DoTestVec(error)) - return false; - - return true; -} diff --git a/sourcehook/test/testmanual.cpp b/sourcehook/test/testmanual.cpp deleted file mode 100644 index 0d1013a..0000000 --- a/sourcehook/test/testmanual.cpp +++ /dev/null @@ -1,355 +0,0 @@ -#include -#include "sourcehook.h" -#include "sourcehook_test.h" -#include "testevents.h" - -// TESTMANUAL -// Test manual hooks -// :TODO: test more extensively - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_Func1_Called, void*); // param1: This pointer - MAKE_STATE_2(State_Func2_Called, void*, int); // param1: This pointer; param2: parameter - MAKE_STATE_1(State_Func3_Called, void*); // param1: This pointer - MAKE_STATE_2(State_Func4_Called, void*, int); // param1: This pointer; param2: parameter - MAKE_STATE_1(State_Func5_Called, void*); // param1: This pointer - - MAKE_STATE_1(State_Func1H_Called, void*); - MAKE_STATE_2(State_Func2H_Called, void*, int); - MAKE_STATE_1(State_Func3H_Called, void*); - MAKE_STATE_2(State_Func4H_Called, void*, int); - - MAKE_STATE_1(State_Return, short); - - class TheWall - { - public: - virtual void Func1() - { - ADD_STATE(State_Func1_Called(reinterpret_cast(this))); - } - virtual void Func2(int x) - { - ADD_STATE(State_Func2_Called(reinterpret_cast(this), x)); - } - - virtual short Func3() - { - ADD_STATE(State_Func3_Called(reinterpret_cast(this))); - return 3; - } - virtual short Func4(int x) - { - ADD_STATE(State_Func4_Called(reinterpret_cast(this), x)); - return 4; - } - virtual void Func5() - { - ADD_STATE(State_Func5_Called(reinterpret_cast(this))); - } - }; - - SH_DECL_HOOK0_void(TheWall, Func1, SH_NOATTRIB, 0); - SH_DECL_HOOK1_void(TheWall, Func2, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0(TheWall, Func3, SH_NOATTRIB, 0, short); - SH_DECL_HOOK1(TheWall, Func4, SH_NOATTRIB, 0, short, int); - - SH_DECL_MANUALHOOK0_void(TheWall_Func1, 0, 0, 0); - SH_DECL_MANUALHOOK1_void(TheWall_Func2, 1, 0, 0, int); - SH_DECL_MANUALHOOK0(TheWall_Func3, 2, 0, 0, short); - SH_DECL_MANUALHOOK1(TheWall_Func4, 3, 0, 0, short, int); - - typedef void (SourceHook::EmptyClass::*MFP_Func1)(); - typedef void (SourceHook::EmptyClass::*MFP_Func2)(int); - typedef short (SourceHook::EmptyClass::*MFP_Func3)(); - typedef short (SourceHook::EmptyClass::*MFP_Func4)(int); - - void Handler_Func1() - { - ADD_STATE(State_Func1H_Called(META_IFACEPTR(void))); - } - void Handler_Func2(int x) - { - ADD_STATE(State_Func2H_Called(META_IFACEPTR(void), x)); - RETURN_META_MNEWPARAMS(MRES_IGNORED, TheWall_Func2, (0x87654321)); - } - short Handler_Func3() - { - ADD_STATE(State_Func3H_Called(META_IFACEPTR(void))); - return 0; - } - short Handler_Func4(int x) - { - ADD_STATE(State_Func4H_Called(META_IFACEPTR(void), x)); - - // newparams (recall) using the manual hook declaration! - RETURN_META_VALUE_MNEWPARAMS(MRES_IGNORED, 0, TheWall_Func4, (0x12345678)); - } - - struct AnotherBrick - { - void Handler_Func1() - { - ADD_STATE(State_Func1H_Called(META_IFACEPTR(void))); - RETURN_META(MRES_SUPERCEDE); - } - }; -} - -bool TestManual(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - TheWall inst; - TheWall *p = &inst; - - SourceHook::ManualCallClass *cc = SH_GET_MCALLCLASS(p, sizeof(void*)); - - // 1) - // Call each function - p->Func1(); - p->Func2(200); - ADD_STATE(State_Return(p->Func3())); - ADD_STATE(State_Return(p->Func4(400))); - - CHECK_STATES((&g_States, - new State_Func1_Called(p), - new State_Func2_Called(p, 200), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4_Called(p, 400), - new State_Return(4), - NULL), "Part 1"); - - // 1.1) - // Now call each function through the manual call class, using the hook decl and manually - SH_MCALL(cc, TheWall_Func1)(); - SH_MCALL2(cc, MFP_Func1(), 0, 0, 0)(); - SH_MCALL(cc, TheWall_Func2)(200); - SH_MCALL2(cc, MFP_Func2(), 1, 0, 0)(200); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func3)())); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func3(), 2, 0, 0)())); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func4)(400))); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func4(), 3, 0, 0)(400))); - - CHECK_STATES((&g_States, - new State_Func1_Called(p), - new State_Func1_Called(p), - new State_Func2_Called(p, 200), - new State_Func2_Called(p, 200), - new State_Func3_Called(p), - new State_Return(3), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4_Called(p, 400), - new State_Return(4), - new State_Func4_Called(p, 400), - new State_Return(4), - NULL), "Part 1.1"); - - // 2) - // Hook each function normally, call them - SH_ADD_HOOK_STATICFUNC(TheWall, Func1, p, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func2, p, Handler_Func2, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func3, p, Handler_Func3, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func4, p, Handler_Func4, false); - - p->Func1(); - p->Func2(200); - ADD_STATE(State_Return(p->Func3())); - ADD_STATE(State_Return(p->Func4(400))); - - CHECK_STATES((&g_States, - new State_Func1H_Called(p), - new State_Func1_Called(p), - new State_Func2H_Called(p, 200), - new State_Func2_Called(p, 0x87654321), - new State_Func3H_Called(p), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4H_Called(p, 400), - new State_Func4_Called(p, 0x12345678), - new State_Return(4), - NULL), "Part 2"); - - // Call them through the mcallclass - // 2.1) - // Now call each function through the manual call class, using the hook decl and manually - SH_MCALL(cc, TheWall_Func1)(); - SH_MCALL2(cc, MFP_Func1(), 0, 0, 0)(); - SH_MCALL(cc, TheWall_Func2)(200); - SH_MCALL2(cc, MFP_Func2(), 1, 0, 0)(200); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func3)())); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func3(), 2, 0, 0)())); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func4)(400))); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func4(), 3, 0, 0)(400))); - - CHECK_STATES((&g_States, - new State_Func1_Called(p), - new State_Func1_Called(p), - new State_Func2_Called(p, 200), - new State_Func2_Called(p, 200), - new State_Func3_Called(p), - new State_Return(3), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4_Called(p, 400), - new State_Return(4), - new State_Func4_Called(p, 400), - new State_Return(4), - NULL), "Part 2.1"); - - // Unhook them - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func1, p, Handler_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func2, p, Handler_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func3, p, Handler_Func3, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func4, p, Handler_Func4, false); - - // 3) - // Hook each function manually, call them - - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func1, p, Handler_Func1, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func2, p, Handler_Func2, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func3, p, Handler_Func3, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func4, p, Handler_Func4, false); - - p->Func1(); - p->Func2(200); - ADD_STATE(State_Return(p->Func3())); - ADD_STATE(State_Return(p->Func4(400))); - - CHECK_STATES((&g_States, - new State_Func1H_Called(p), - new State_Func1_Called(p), - new State_Func2H_Called(p, 200), - new State_Func2_Called(p, 0x87654321), - new State_Func3H_Called(p), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4H_Called(p, 400), - new State_Func4_Called(p, 0x12345678), - new State_Return(4), - NULL), "Part 3"); - - // Now through the mcallclass - - // Call them through the mcallclass - // 3.1) - // Now call each function through the manual call class, using the hook decl and manually - SH_MCALL(cc, TheWall_Func1)(); - SH_MCALL2(cc, MFP_Func1(), 0, 0, 0)(); - SH_MCALL(cc, TheWall_Func2)(200); - SH_MCALL2(cc, MFP_Func2(), 1, 0, 0)(200); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func3)())); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func3(), 2, 0, 0)())); - ADD_STATE(State_Return(SH_MCALL(cc, TheWall_Func4)(400))); - ADD_STATE(State_Return(SH_MCALL2(cc, MFP_Func4(), 3, 0, 0)(400))); - - CHECK_STATES((&g_States, - new State_Func1_Called(p), - new State_Func1_Called(p), - new State_Func2_Called(p, 200), - new State_Func2_Called(p, 200), - new State_Func3_Called(p), - new State_Return(3), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4_Called(p, 400), - new State_Return(4), - new State_Func4_Called(p, 400), - new State_Return(4), - NULL), "Part 3.1"); - - // Unhook them - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func1, p, Handler_Func1, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func2, p, Handler_Func2, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func3, p, Handler_Func3, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func4, p, Handler_Func4, false); - - // 4) - // Hook each function manually, then normally, call, unhook - - AnotherBrick handler_inst; - - // Why this? - // 1) tests sh_add_manualhook_memfunc - // 2) in my tests, the proto of the manual hook was not equal to the proto of the auto hook - // (because there are no attribs for manual hooks). - // sourcehook.cpp did a !strcmp(..), so it assigned a new hook manager even though there - // already was one for this vfnptr. This hook manager stored the pointer of the original - // hook manager's hookfunc as the orig pointer - everything seemingly worked. - // The problem with this is that returning MRES_SUPERCEDE (as AnotherBrick::Handler_Func1 - // does) will supercede the second hook func from being called - thus bypassing the call - // of the auto hook here. - SH_ADD_MANUALHOOK_MEMFUNC(TheWall_Func1, p, &handler_inst, &AnotherBrick::Handler_Func1, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func2, p, Handler_Func2, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func3, p, Handler_Func3, false); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func4, p, Handler_Func4, false); - - SH_ADD_HOOK_STATICFUNC(TheWall, Func1, p, Handler_Func1, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func2, p, Handler_Func2, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func3, p, Handler_Func3, false); - SH_ADD_HOOK_STATICFUNC(TheWall, Func4, p, Handler_Func4, false); - - p->Func1(); - p->Func2(200); - ADD_STATE(State_Return(p->Func3())); - ADD_STATE(State_Return(p->Func4(400))); - - CHECK_STATES((&g_States, - new State_Func1H_Called(p), - new State_Func1H_Called(p), - //new State_Func1_Called(p), - new State_Func2H_Called(p, 200), - new State_Func2H_Called(p, 0x87654321), - new State_Func2_Called(p, 0x87654321), - new State_Func3H_Called(p), - new State_Func3H_Called(p), - new State_Func3_Called(p), - new State_Return(3), - new State_Func4H_Called(p, 400), - new State_Func4H_Called(p, 0x12345678), - new State_Func4_Called(p, 0x12345678), - new State_Return(4), - NULL), "Part 4"); - - SH_REMOVE_MANUALHOOK_MEMFUNC(TheWall_Func1, p, &handler_inst, &AnotherBrick::Handler_Func1, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func2, p, Handler_Func2, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func3, p, Handler_Func3, false); - SH_REMOVE_MANUALHOOK_STATICFUNC(TheWall_Func4, p, Handler_Func4, false); - - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func1, p, Handler_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func2, p, Handler_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func3, p, Handler_Func3, false); - SH_REMOVE_HOOK_STATICFUNC(TheWall, Func4, p, Handler_Func4, false); - - // 5) Reconfigure TheWall_Func1 to actually hook Func5: - SH_MANUALHOOK_RECONFIGURE(TheWall_Func1, 4, 0, 0); - SH_ADD_MANUALHOOK_STATICFUNC(TheWall_Func1, p, Handler_Func1, false); - - p->Func5(); - - CHECK_STATES((&g_States, - new State_Func1H_Called(p), - new State_Func5_Called(p), - NULL), "Part 5"); - - // 6) Test auto-remove on reconfig - SH_MANUALHOOK_RECONFIGURE(TheWall_Func1, 0, 0, 0); - - p->Func1(); - p->Func5(); - - CHECK_STATES((&g_States, - new State_Func1_Called(p), - new State_Func5_Called(p), - NULL), "Part 6"); - - return true; -} diff --git a/sourcehook/test/testmulti.cpp b/sourcehook/test/testmulti.cpp deleted file mode 100644 index 95e7490..0000000 --- a/sourcehook/test/testmulti.cpp +++ /dev/null @@ -1,107 +0,0 @@ -#include -#include "sourcehook.h" -#include "sourcehook_test.h" -#include "testevents.h" - -// This should probably be done the other way round! -#ifdef __linux__ -#define _snprintf snprintf -#endif - -namespace -{ - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - unsigned int g_callcount[10]; - - class VMultiTest - { - public: - VMultiTest(unsigned int index) : m_idx(index) - { - } - public: - virtual void HookTarget() - { - } - virtual void Notify() - { - g_callcount[this->m_idx]++; - } - private: - unsigned int m_idx; - }; - - void HookFunction() - { - VMultiTest *pv = META_IFACEPTR(VMultiTest); - pv->Notify(); - } - - SH_DECL_HOOK0_void(VMultiTest, HookTarget, SH_NOATTRIB, false); -}; - -bool TestMulti(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - VMultiTest **pv = new VMultiTest *[10]; - for (unsigned int i=0; i<10; i++) - pv[i] = new VMultiTest(i); - - - for (unsigned int i=0; i<10; i++) - SH_ADD_HOOK_STATICFUNC(VMultiTest, HookTarget, pv[i], HookFunction, false); - - pv[0]->HookTarget(); - - if (g_callcount[0] != 1) - { - error.assign("g_callcount[0] != 0"); - return false; - } - - for (unsigned int i=1; i<10; i++) - { - if (g_callcount[i]) - { - error.assign("g_callcount[n] != 0"); - return false; - } - } - - SH_REMOVE_HOOK_STATICFUNC(VMultiTest, HookTarget, pv[0], HookFunction, false); - - for (unsigned int i=1; i<10; i++) - pv[i]->HookTarget(); - - if (g_callcount[0] != 1) - { - error.assign("g_callcount[0] != 0"); - return false; - } - - for (unsigned int i=1; i<10; i++) - { - if (g_callcount[i] != 1) - { - char err[256]; - _snprintf(err, sizeof(err)-1, "g_callcount[%d] != 1", i); - error.assign(err); - return false; - } - } - - for (unsigned int i=0; i<10; i++) - { - SH_REMOVE_HOOK_STATICFUNC(VMultiTest, HookTarget, pv[i], HookFunction, false); - delete pv[i]; - } - - delete [] pv; - - return true; -} - diff --git a/sourcehook/test/testrecall.cpp b/sourcehook/test/testrecall.cpp deleted file mode 100644 index 25eede5..0000000 --- a/sourcehook/test/testrecall.cpp +++ /dev/null @@ -1,232 +0,0 @@ -#include -#include "sourcehook.h" -#include "sourcehook_test.h" -#include "testevents.h" - -// TESTRECALL -// Test modifying parameters from hook handlers - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_Func1, int); - MAKE_STATE_1(State_H1_Func1, int); - MAKE_STATE_1(State_H2_Func1, int); - MAKE_STATE_2(State_HP_Func1, int, void*); - - MAKE_STATE_1(State_Func2, int); - MAKE_STATE_1(State_H1_Func2, int); - MAKE_STATE_1(State_H2_Func2, int); - MAKE_STATE_2(State_HP_Func2, int, int); - - MAKE_STATE_2(State_Func22, int, int); - MAKE_STATE_2(State_H1_Func22, int, int); - MAKE_STATE_2(State_HP1_Func22, int, int); - MAKE_STATE_2(State_HP2_Func22, int, int); - - struct Test - { - virtual void Func1(int a) - { - ADD_STATE(State_Func1(a)); - } - - virtual int Func2(int a) - { - ADD_STATE(State_Func2(a)); - return 1000; - } - - // Overloaded version - virtual int Func2(int a, int b) - { - ADD_STATE(State_Func22(a, b)); - return 0xDEADFC; - } - }; - - void Handler1_Func1(int a) - { - ADD_STATE(State_H1_Func1(a)); - RETURN_META_NEWPARAMS(MRES_IGNORED, &Test::Func1, (5)); - } - void Handler2_Func1(int a) - { - ADD_STATE(State_H2_Func1(a)); - RETURN_META_NEWPARAMS(MRES_IGNORED, &Test::Func1, (a - 5)); - } - void HandlerPost_Func1(int a) - { - ADD_STATE(State_HP_Func1(a, META_IFACEPTR(void))); - } - - - int Handler1_Func2(int a) - { - ADD_STATE(State_H1_Func2(a)); - // Pfeeehhh, ugly, I know, but I had to test it :) - RETURN_META_VALUE_NEWPARAMS(MRES_OVERRIDE, 500, - static_cast(&Test::Func2), (a - 10)); - } - - int Handler2_Func2(int a) - { - ADD_STATE(State_H2_Func2(a)); - RETURN_META_VALUE_NEWPARAMS(MRES_IGNORED, 0, - static_cast(&Test::Func2), (a - 10)); - } - - int HandlerPost_Func2(int a) - { - ADD_STATE(State_HP_Func2(a, META_RESULT_ORIG_RET(int))); - RETURN_META_VALUE(MRES_IGNORED, 0); - } - - int Handler1_Func22(int a, int b) - { - ADD_STATE(State_H1_Func22(a, b)); - RETURN_META_VALUE(MRES_IGNORED, 0); - } - - int HandlerPost1_Func22(int a, int b) - { - ADD_STATE(State_HP1_Func22(a, b)); - RETURN_META_VALUE_NEWPARAMS(MRES_IGNORED, 0, static_cast(&Test::Func2), (1, 2)); - } - - int HandlerPost1A_Func22(int a, int b) - { - ADD_STATE(State_HP1_Func22(a, b)); - RETURN_META_VALUE_NEWPARAMS(MRES_OVERRIDE, 0, static_cast(&Test::Func2), (1, 2)); - } - - int HandlerPost2_Func22(int a, int b) - { - ADD_STATE(State_HP2_Func22(a, b)); - RETURN_META_VALUE(MRES_IGNORED, 0); - } - - SH_DECL_HOOK1_void(Test, Func1, SH_NOATTRIB, 0, int); - SH_DECL_HOOK1(Test, Func2, SH_NOATTRIB, 0, int, int); - SH_DECL_HOOK2(Test, Func2, SH_NOATTRIB, 1, int, int, int); -} - -bool TestRecall(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - Test inst; - Test *ptr = &inst; - - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, Handler1_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, Handler2_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, HandlerPost_Func1, true); - - ptr->Func1(77); - - CHECK_STATES((&g_States, - new State_H1_Func1(77), - new State_H2_Func1(5), - new State_Func1(0), - new State_HP_Func1(0, ptr), - NULL), "Part 1"); - - SH_REMOVE_HOOK_STATICFUNC(Test, Func1, ptr, Handler1_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, Handler2_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, Handler2_Func1, false); - SH_ADD_HOOK_STATICFUNC(Test, Func1, ptr, Handler2_Func1, false); - - ptr->Func1(77); - - CHECK_STATES((&g_States, - new State_H2_Func1(77), - new State_H2_Func1(72), - new State_H2_Func1(67), - new State_H2_Func1(62), - new State_Func1(57), - new State_HP_Func1(57, ptr), - NULL), "Part 2"); - - SH_REMOVE_HOOK_STATICFUNC(Test, Func1, ptr, Handler2_Func1, false); - SH_REMOVE_HOOK_STATICFUNC(Test, Func1, ptr, HandlerPost_Func1, true); - - ptr->Func1(77); - - CHECK_STATES((&g_States, - new State_Func1(77), - NULL), "Part 3"); - - // Func2 - - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, Handler1_Func2, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost_Func2, true); - - int a = ptr->Func2(77); - CHECK_STATES((&g_States, - new State_H1_Func2(77), - new State_Func2(67), - new State_HP_Func2(67, 1000), // 1000 because it's the ORIG_RET - NULL), "Part 4"); - - CHECK_COND(a == 500, "Part 4.1"); - - // Func2, with other handler - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, Handler1_Func2, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, Handler2_Func2, false); - - a = ptr->Func2(77); - CHECK_STATES((&g_States, - new State_H2_Func2(77), - new State_Func2(67), - new State_HP_Func2(67, 1000), // 1000 because it's the ORIG_RET - NULL), "Part 4.2"); - - CHECK_COND(a == 1000, "Part 4.2.1"); // Should return 1000 as well. - - // Func22 -> post recalls - - // 1) WITH OVERRIDE - - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, Handler1_Func22, false); - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost1A_Func22, true); - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost2_Func22, true); - - a = ptr->Func2(10, 11); - CHECK_STATES((&g_States, - new State_H1_Func22(10, 11), - new State_Func22(10, 11), - new State_HP1_Func22(10, 11), - new State_HP2_Func22(1, 2), - NULL), "Part 5"); - - CHECK_COND(a == 0, "Part 5.1"); - - // 2) WITH IGNORE - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost1A_Func22, true); - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost2_Func22, true); - - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost1_Func22, true); - SH_ADD_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost2_Func22, true); - - a = ptr->Func2(10, 11); - CHECK_STATES((&g_States, - new State_H1_Func22(10, 11), - new State_Func22(10, 11), - new State_HP1_Func22(10, 11), - new State_HP2_Func22(1, 2), - NULL), "Part 5"); - - CHECK_COND(a == 0xDEADFC, "Part 5.1"); - - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost_Func2, true); - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, Handler2_Func2, false); - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, Handler1_Func22, false); - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost1_Func22, true); - SH_REMOVE_HOOK_STATICFUNC(Test, Func2, ptr, HandlerPost2_Func22, true); - - return true; -} diff --git a/sourcehook/test/testreentr.cpp b/sourcehook/test/testreentr.cpp deleted file mode 100644 index b4f0ec5..0000000 --- a/sourcehook/test/testreentr.cpp +++ /dev/null @@ -1,599 +0,0 @@ -// Reentrancy test -// = calling hooks from hook handlers, etc - -#include -#include "sourcehook_test.h" -#include "testevents.h" - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - struct C1; - struct C2; - struct C3; - struct C4; - struct C5; - struct C6; - struct C7; - struct C8; - - C1 *g_pC1; - C2 *g_pC2; - C3 *g_pC3; - C4 *g_pC4; - C5 *g_pC5; - C6 *g_pC6; - C7 *g_pC7; - C8 *g_pC8; - - // param1: This pointer - MAKE_STATE_1(State_C1_F, C1*); - MAKE_STATE_1(State_C2_F, C2*); - MAKE_STATE_1(State_C3_F, C3*); - MAKE_STATE_1(State_C4_F, C4*); - MAKE_STATE_1(State_C5_F, C5*); - MAKE_STATE_1(State_C6_F, C6*); - MAKE_STATE_1(State_C7_F, C7*); - MAKE_STATE_1(State_C8_F, C8*); - - MAKE_STATE_1(State_C1_G, C1*); - MAKE_STATE_1(State_C2_G, C2*); - MAKE_STATE_1(State_C3_G, C3*); - MAKE_STATE_1(State_C4_G, C4*); - MAKE_STATE_1(State_C5_G, C5*); - MAKE_STATE_1(State_C6_G, C6*); - MAKE_STATE_1(State_C7_G, C7*); - MAKE_STATE_1(State_C8_G, C8*); - - MAKE_STATE_1(State_H_C1_F, C1*); - MAKE_STATE_1(State_H_C2_F, C2*); - MAKE_STATE_1(State_H_C3_F, C3*); - MAKE_STATE_1(State_H_C4_F, C4*); - MAKE_STATE_1(State_H_C5_F, C5*); - MAKE_STATE_1(State_H_C6_F, C6*); - MAKE_STATE_1(State_H_C7_F, C7*); - MAKE_STATE_1(State_H_C8_F, C8*); - - MAKE_STATE_1(State_H_C1_G, C1*); - MAKE_STATE_1(State_H_C2_G, C2*); - MAKE_STATE_1(State_H_C3_G, C3*); - MAKE_STATE_1(State_H_C4_G, C4*); - MAKE_STATE_1(State_H_C5_G, C5*); - MAKE_STATE_1(State_H_C6_G, C6*); - MAKE_STATE_1(State_H_C7_G, C7*); - MAKE_STATE_1(State_H_C8_G, C8*); - - MAKE_STATE_1(State_H2_C4_G, C4*); - - int g_TestID; - - struct C1 - { - virtual void F() - { - ADD_STATE(State_C1_F(this)); - } - virtual int G() - { - ADD_STATE(State_C1_G(this)); - return 1; - } - }; - struct C2 - { - virtual void F() - { - ADD_STATE(State_C2_F(this)); - } - virtual int G() - { - ADD_STATE(State_C2_G(this)); - return 2; - } - }; - struct C3 - { - virtual void F() - { - ADD_STATE(State_C3_F(this)); - } - virtual int G() - { - ADD_STATE(State_C3_G(this)); - return 3; - } - }; - struct C4 - { - virtual void F() - { - ADD_STATE(State_C4_F(this)); - } - virtual int G() - { - ADD_STATE(State_C4_G(this)); - return 4; - } - }; - struct C5 - { - virtual void F() - { - ADD_STATE(State_C5_F(this)); - } - virtual int G() - { - ADD_STATE(State_C5_G(this)); - return 5; - } - }; - struct C6 - { - virtual void F() - { - ADD_STATE(State_C6_F(this)); - } - virtual int G() - { - ADD_STATE(State_C6_G(this)); - return 6; - } - }; - struct C7 - { - virtual void F() - { - ADD_STATE(State_C7_F(this)); - } - virtual int G() - { - ADD_STATE(State_C7_G(this)); - return 7; - } - }; - struct C8 - { - virtual void F() - { - ADD_STATE(State_C8_F(this)); - } - virtual int G() - { - ADD_STATE(State_C8_G(this)); - return 8; - } - }; - - SH_DECL_HOOK0_void(C1, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C1, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C2, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C2, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C3, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C3, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C4, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C4, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C5, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C5, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C6, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C6, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C7, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C7, G, SH_NOATTRIB, 0, int); - SH_DECL_HOOK0_void(C8, F, SH_NOATTRIB, 0); - SH_DECL_HOOK0(C8, G, SH_NOATTRIB, 0, int); - - void Handler_C1_F() - { - ADD_STATE(State_H_C1_F(META_IFACEPTR(C1))); - g_pC1->G(); - } - int Handler_C1_G() - { - ADD_STATE(State_H_C1_G(META_IFACEPTR(C1))); - g_pC2->F(); - return 1; - } - void Handler_C2_F() - { - ADD_STATE(State_H_C2_F(META_IFACEPTR(C2))); - g_pC2->G(); - } - int Handler_C2_G() - { - ADD_STATE(State_H_C2_G(META_IFACEPTR(C2))); - g_pC3->F(); - return 2; - } - void Handler_C3_F() - { - ADD_STATE(State_H_C3_F(META_IFACEPTR(C3))); - g_pC3->G(); - } - int Handler_C3_G() - { - ADD_STATE(State_H_C3_G(META_IFACEPTR(C3))); - g_pC4->F(); - return 3; - } - void Handler_C4_F() - { - ADD_STATE(State_H_C4_F(META_IFACEPTR(C4))); - g_pC4->G(); - } - int Handler_C4_G() - { - ADD_STATE(State_H_C4_G(META_IFACEPTR(C4))); - g_pC5->F(); - return 4; - } - int Handler2_C4_G() - { - ADD_STATE(State_H2_C4_G(META_IFACEPTR(C4))); - return 4; - } - void Handler_C5_F() - { - ADD_STATE(State_H_C5_F(META_IFACEPTR(C5))); - g_pC5->G(); - } - int Handler_C5_G() - { - ADD_STATE(State_H_C5_G(META_IFACEPTR(C5))); - g_pC6->F(); - return 5; - } - void Handler_C6_F() - { - ADD_STATE(State_H_C6_F(META_IFACEPTR(C6))); - g_pC6->G(); - } - int Handler_C6_G() - { - ADD_STATE(State_H_C6_G(META_IFACEPTR(C6))); - g_pC7->F(); - return 6; - } - void Handler_C7_F() - { - if (g_TestID == 1 || g_TestID == 2) - SH_REMOVE_HOOK_STATICFUNC(C4, G, g_pC4, Handler2_C4_G, false); - if (g_TestID == 2) - SH_REMOVE_HOOK_STATICFUNC(C4, G, g_pC4, Handler_C4_G, false); - - ADD_STATE(State_H_C7_F(META_IFACEPTR(C7))); - g_pC7->G(); - } - int Handler_C7_G() - { - ADD_STATE(State_H_C7_G(META_IFACEPTR(C7))); - g_pC8->F(); - return 7; - } - void Handler_C8_F() - { - ADD_STATE(State_H_C8_F(META_IFACEPTR(C8))); - g_pC8->G(); - } - int Handler_C8_G() - { - ADD_STATE(State_H_C8_G(META_IFACEPTR(C8))); - return 8; - } - - C1 g_C1; - C2 g_C2; - C3 g_C3; - C4 g_C4; - C5 g_C5; - C6 g_C6; - C7 g_C7; - C8 g_C8; -} - -bool TestReentr(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1337; - - g_pC1 = &g_C1; - g_pC2 = &g_C2; - g_pC3 = &g_C3; - g_pC4 = &g_C4; - g_pC5 = &g_C5; - g_pC6 = &g_C6; - g_pC7 = &g_C7; - g_pC8 = &g_C8; - - SH_ADD_HOOK_STATICFUNC(C1, F, g_pC1, Handler_C1_F, false); - SH_ADD_HOOK_STATICFUNC(C1, G, g_pC1, Handler_C1_G, false); - SH_ADD_HOOK_STATICFUNC(C2, F, g_pC2, Handler_C2_F, false); - SH_ADD_HOOK_STATICFUNC(C2, G, g_pC2, Handler_C2_G, false); - SH_ADD_HOOK_STATICFUNC(C3, F, g_pC3, Handler_C3_F, false); - SH_ADD_HOOK_STATICFUNC(C3, G, g_pC3, Handler_C3_G, false); - SH_ADD_HOOK_STATICFUNC(C4, F, g_pC4, Handler_C4_F, false); - SH_ADD_HOOK_STATICFUNC(C4, G, g_pC4, Handler_C4_G, false); - SH_ADD_HOOK_STATICFUNC(C5, F, g_pC5, Handler_C5_F, false); - SH_ADD_HOOK_STATICFUNC(C5, G, g_pC5, Handler_C5_G, false); - SH_ADD_HOOK_STATICFUNC(C6, F, g_pC6, Handler_C6_F, false); - SH_ADD_HOOK_STATICFUNC(C6, G, g_pC6, Handler_C6_G, false); - SH_ADD_HOOK_STATICFUNC(C7, F, g_pC7, Handler_C7_F, false); - SH_ADD_HOOK_STATICFUNC(C7, G, g_pC7, Handler_C7_G, false); - SH_ADD_HOOK_STATICFUNC(C8, F, g_pC8, Handler_C8_F, false); - SH_ADD_HOOK_STATICFUNC(C8, G, g_pC8, Handler_C8_G, false); - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "1"); - - - SH_ADD_HOOK_STATICFUNC(C4, G, g_pC4, Handler2_C4_G, false); - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_H2_C4_G(g_pC4), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "2"); - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_H2_C4_G(g_pC4), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "3"); - - g_TestID = 1; - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "4"); - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "5"); - - - - SH_ADD_HOOK_STATICFUNC(C4, G, g_pC4, Handler2_C4_G, false); - - g_TestID = 2; - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_H_C4_G(g_pC4), - new State_H_C5_F(g_pC5), - new State_H_C5_G(g_pC5), - new State_H_C6_F(g_pC6), - new State_H_C6_G(g_pC6), - new State_H_C7_F(g_pC7), - new State_H_C7_G(g_pC7), - new State_H_C8_F(g_pC8), - new State_H_C8_G(g_pC8), - new State_C8_G(g_pC8), - new State_C8_F(g_pC8), - new State_C7_G(g_pC7), - new State_C7_F(g_pC7), - new State_C6_G(g_pC6), - new State_C6_F(g_pC6), - new State_C5_G(g_pC5), - new State_C5_F(g_pC5), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "6"); - - g_pC1->F(); - - CHECK_STATES((&g_States, - new State_H_C1_F(g_pC1), - new State_H_C1_G(g_pC1), - new State_H_C2_F(g_pC2), - new State_H_C2_G(g_pC2), - new State_H_C3_F(g_pC3), - new State_H_C3_G(g_pC3), - new State_H_C4_F(g_pC4), - new State_C4_G(g_pC4), - new State_C4_F(g_pC4), - new State_C3_G(g_pC3), - new State_C3_F(g_pC3), - new State_C2_G(g_pC2), - new State_C2_F(g_pC2), - new State_C1_G(g_pC1), - new State_C1_F(g_pC1), - NULL), "7"); - - SH_REMOVE_HOOK_STATICFUNC(C1, F, g_pC1, Handler_C1_F, false); - SH_REMOVE_HOOK_STATICFUNC(C1, G, g_pC1, Handler_C1_G, false); - SH_REMOVE_HOOK_STATICFUNC(C2, F, g_pC2, Handler_C2_F, false); - SH_REMOVE_HOOK_STATICFUNC(C2, G, g_pC2, Handler_C2_G, false); - SH_REMOVE_HOOK_STATICFUNC(C3, F, g_pC3, Handler_C3_F, false); - SH_REMOVE_HOOK_STATICFUNC(C3, G, g_pC3, Handler_C3_G, false); - SH_REMOVE_HOOK_STATICFUNC(C4, F, g_pC4, Handler_C4_F, false); - SH_REMOVE_HOOK_STATICFUNC(C4, G, g_pC4, Handler_C4_G, false); - SH_REMOVE_HOOK_STATICFUNC(C5, F, g_pC5, Handler_C5_F, false); - SH_REMOVE_HOOK_STATICFUNC(C5, G, g_pC5, Handler_C5_G, false); - SH_REMOVE_HOOK_STATICFUNC(C6, F, g_pC6, Handler_C6_F, false); - SH_REMOVE_HOOK_STATICFUNC(C6, G, g_pC6, Handler_C6_G, false); - SH_REMOVE_HOOK_STATICFUNC(C7, F, g_pC7, Handler_C7_F, false); - SH_REMOVE_HOOK_STATICFUNC(C7, G, g_pC7, Handler_C7_G, false); - SH_REMOVE_HOOK_STATICFUNC(C8, F, g_pC8, Handler_C8_F, false); - SH_REMOVE_HOOK_STATICFUNC(C8, G, g_pC8, Handler_C8_G, false); - - return true; -} diff --git a/sourcehook/test/testref.cpp b/sourcehook/test/testref.cpp deleted file mode 100644 index 1727bf5..0000000 --- a/sourcehook/test/testref.cpp +++ /dev/null @@ -1,165 +0,0 @@ -#include "testevents.h" -#include "sourcehook_test.h" - -// References and private copy constructors and stuff like that! - -/* -BAILOPAN, 29.04.2006 21:51 : -onoto-san, interesting error from VS -we have this function: -void GabHaben(ISomething &sth); - -SomethingDerived sth; -and SH_CALL(cc, &WHAT::GabHaben)(sth); -"No copy constructor available for class 'SomethingDerived'" -*/ - - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_Result, int); - MAKE_STATE_1(State_Result_InHook, int); - - class CBase - { - // Private copy constructor! - CBase(CBase &other) - { - } - public: - CBase() - { - } - - virtual int Func() - { - return 0; - } - }; - - class CDerived : public CBase - { - virtual int Func() - { - return 10; - } - }; - - // Complicated derived shit ! - class COtherWeirdBase - { - int member; - }; - class CDerived2 : private COtherWeirdBase, public CBase - { - int m_Return; - public: - CDerived2(int a) : m_Return(a) - { - } - - virtual int Func() - { - return m_Return; - } - }; - - class CHello - { - public: - virtual int Func(CBase &sth) - { - return sth.Func(); - } - }; - - class CHook - { - public: - virtual int Func(CBase &sth) - { - ADD_STATE(State_Result_InHook(sth.Func())); - RETURN_META_VALUE(MRES_SUPERCEDE, 20); - } - }; - SH_DECL_HOOK1(CHello, Func, SH_NOATTRIB, 0, int, CBase&); -} - - -bool TestRef(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1; - - CBase base; - CDerived der; - CDerived2 der2(11); - CDerived2 der3(12); - CHello hello; - CHello *pHello = &hello; - CHook hook; - - SourceHook::CallClass *cc = SH_GET_CALLCLASS(&hello); - - ADD_STATE(State_Result(pHello->Func(base))); - ADD_STATE(State_Result(pHello->Func(der))); - ADD_STATE(State_Result(pHello->Func(der2))); - ADD_STATE(State_Result(pHello->Func(der3))); - - CHECK_STATES((&g_States, - new State_Result(0), - new State_Result(10), - new State_Result(11), - new State_Result(12), - NULL), "Part 1"); - - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(base))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der2))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der3))); - - CHECK_STATES((&g_States, - new State_Result(0), - new State_Result(10), - new State_Result(11), - new State_Result(12), - NULL), "Part 2"); - - SH_ADD_HOOK_MEMFUNC(CHello, Func, &hello, &hook, &CHook::Func, false); - - ADD_STATE(State_Result(pHello->Func(base))); - ADD_STATE(State_Result(pHello->Func(der))); - ADD_STATE(State_Result(pHello->Func(der2))); - ADD_STATE(State_Result(pHello->Func(der3))); - - CHECK_STATES((&g_States, - new State_Result_InHook(0), - new State_Result(20), - new State_Result_InHook(10), - new State_Result(20), - new State_Result_InHook(11), - new State_Result(20), - new State_Result_InHook(12), - new State_Result(20), - NULL), "Part 3"); - - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(base))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der2))); - ADD_STATE(State_Result(SH_CALL(cc, &CHello::Func)(der3))); - - CHECK_STATES((&g_States, - new State_Result(0), - new State_Result(10), - new State_Result(11), - new State_Result(12), - NULL), "Part 4"); - - SH_REMOVE_HOOK_MEMFUNC(CHello, Func, &hello, &hook, &CHook::Func, false); - - return true; -} diff --git a/sourcehook/test/testrefret.cpp b/sourcehook/test/testrefret.cpp deleted file mode 100644 index b2f9291..0000000 --- a/sourcehook/test/testrefret.cpp +++ /dev/null @@ -1,208 +0,0 @@ -#include "testevents.h" -#include "sourcehook_test.h" - -// Tests support for functions which return references - -namespace -{ - StateList g_States; - SourceHook::ISourceHook *g_SHPtr; - SourceHook::Plugin g_PLID; - - MAKE_STATE_1(State_Func1_Pre1, int*); // p1: the ref Func1_Pre1 is going to return - MAKE_STATE_3(State_Func1_Pre2, META_RES, int*, int*); // p1: current status - // p2: override ret - // p3: what this handler is going to supercede with - MAKE_STATE_1(State_Func1, int*); // p1: the ref Func1 is going to return - MAKE_STATE_2(State_Func1_Post1, int*, int*); // p1: orig_ret; p2: override_ret - MAKE_STATE_1(State_Func1_Post2, int*); // p1: what it's going to return - MAKE_STATE_1(State_Func1_Ret, int*); // p1: the ref it returned - - - MAKE_STATE_2(State_Func2_Pre1, int, const int*); // p1: func's p1; p2: what it's going to ret - MAKE_STATE_2(State_Func2, int, const int*); // p1: func's p1; p2: what it's going to ret - MAKE_STATE_3(State_Func2_Post1, int, const int*, const int*); // p1: func's p1; p2: orig ret; p3: override ret - MAKE_STATE_1(State_Func2_Ret, const int*); // p1: ret - - int g_Var; - - class Test - { - public: - int m_Var1; - int m_Var2; - - Test() : m_Var1(87) - { - } - - virtual int& Func1() - { - ADD_STATE(State_Func1(&m_Var1)); - return m_Var1; - } - virtual const int& Func2(int p1) - { - ADD_STATE(State_Func2(p1, &m_Var2)); - m_Var2 = p1; - return m_Var2; - } - }; - - class CHook - { - public: - int m_Var; - virtual int& Func1_Pre1() - { - ADD_STATE(State_Func1_Pre1(&m_Var)); - RETURN_META_VALUE(MRES_OVERRIDE, m_Var); - } - virtual int &Func1_Pre2() - { - int &overrideret = META_RESULT_OVERRIDE_RET(int&); - overrideret = 1337; - ADD_STATE(State_Func1_Pre2(META_RESULT_STATUS, &overrideret, &g_Var)); - RETURN_META_VALUE(MRES_SUPERCEDE, g_Var); - } - virtual int& Func1_Post1() - { - ADD_STATE(State_Func1_Post1(&META_RESULT_ORIG_RET(int&), &META_RESULT_OVERRIDE_RET(int&))); - RETURN_META_NOREF(MRES_IGNORED, int&); - } - virtual int& Func1_Post2() - { - ADD_STATE(State_Func1_Post2(&m_Var)); - RETURN_META_VALUE(MRES_OVERRIDE, m_Var); - } - - virtual const int& Func2_Pre1(int p1) - { - ADD_STATE(State_Func2_Pre1(p1, &m_Var)); - RETURN_META_VALUE_NEWPARAMS(MRES_OVERRIDE, m_Var, static_cast(&Test::Func2), (1337)); - } - - virtual const int& Func2_Post1(int p1) - { - ADD_STATE(State_Func2_Post1(p1, &META_RESULT_ORIG_RET(int&), &META_RESULT_OVERRIDE_RET(int&))); - RETURN_META_NOREF(MRES_IGNORED, const int&); - } - }; - - SH_DECL_HOOK0(Test, Func1, SH_NOATTRIB, 0, int&); - SH_DECL_HOOK1(Test, Func2, SH_NOATTRIB, 0, const int&, int); -} - -bool TestRefRet(std::string &error) -{ - GET_SHPTR(g_SHPtr); - g_PLID = 1; - - Test test; - Test *pTest = &test; - CHook hook; - - int &ret1 = pTest->Func1(); - ADD_STATE(State_Func1_Ret(&ret1)); - - CHECK_STATES((&g_States, - new State_Func1(&test.m_Var1), - new State_Func1_Ret(&test.m_Var1), - NULL), "Part 1"); - - // Now add Func1_Pre1, which supercedes and returns hook.m_Var - SH_ADD_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Pre1, false); - - int &ret2 = pTest->Func1(); - ADD_STATE(State_Func1_Ret(&ret2)); - - CHECK_STATES((&g_States, - new State_Func1_Pre1(&hook.m_Var), // Pre1 says that it's going to override with hook.m_Var - new State_Func1(&test.m_Var1), // Function says that it's going to return test.m_Var1 - new State_Func1_Ret(&hook.m_Var), // hook.m_Var is returned - NULL), "Part 2"); - - // Now add Func1_Post1, which only reports orig ret and override ret - SH_ADD_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Post1, true); - - int &ret3 = pTest->Func1(); - ADD_STATE(State_Func1_Ret(&ret3)); - - CHECK_STATES((&g_States, - new State_Func1_Pre1(&hook.m_Var), // Pre1 says that it's going to override with hook.m_Var - new State_Func1(&test.m_Var1), // Function says that it's going to return test.m_Var1 - new State_Func1_Post1(&test.m_Var1, &hook.m_Var), // origret(=p1) is what it wanted to - // return, overrideret(=p2) is pre1's var - new State_Func1_Ret(&hook.m_Var), // hook.m_Var is returned - NULL), "Part 3"); - - // Now add Func1_Pre2, which supercedes and returns g_Var (it also sets the override ret from pre1 to 1337) - // and add Func1_Post2, which overrides and returns hook.m_Var again. - - SH_ADD_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Pre2, false); - SH_ADD_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Post2, true); - - int &ret4 = pTest->Func1(); - ADD_STATE(State_Func1_Ret(&ret4)); - - CHECK_STATES((&g_States, - new State_Func1_Pre1(&hook.m_Var), // Pre1 says that it's going to override with hook.m_Var - new State_Func1_Pre2(MRES_OVERRIDE, // current status - &hook.m_Var, // override ret (which it set to 1337) - &g_Var), // what it's going to ret, AND supercede with - - new State_Func1_Post1(&g_Var, &g_Var), // origret(=p1) is what pre2 superceded with, - // so overrideret(=p2) has to be the same - new State_Func1_Post2(&hook.m_Var), // post2 is going to override with hook.m_Var again - new State_Func1_Ret(&hook.m_Var), // ==>>> hook.m_Var is returned - NULL), "Part 4"); - - CHECK_COND(hook.m_Var == 1337, "Part 4.1"); - - // Through a callclass - SourceHook::CallClass *cc1 = SH_GET_CALLCLASS(&test); - int &ret5 = SH_CALL(cc1, &Test::Func1)(); - ADD_STATE(State_Func1_Ret(&ret5)); - - CHECK_STATES((&g_States, - new State_Func1(&test.m_Var1), - new State_Func1_Ret(&test.m_Var1), - NULL), "Part 5"); - - SH_RELEASE_CALLCLASS(cc1); - - //////////////////////////////////////////////////////////////////////////////////////// - // Func2 tests - const int &ret21 = pTest->Func2(500); - ADD_STATE(State_Func2_Ret(&ret21)); - - CHECK_STATES((&g_States, - new State_Func2(500, &test.m_Var2), - new State_Func2_Ret(&test.m_Var2), - NULL), "Part 6"); - - SH_ADD_HOOK_MEMFUNC(Test, Func2, &test, &hook, &CHook::Func2_Pre1, false); - SH_ADD_HOOK_MEMFUNC(Test, Func2, &test, &hook, &CHook::Func2_Post1, true); - - const int &ret22 = pTest->Func2(500); - ADD_STATE(State_Func2_Ret(&ret22)); - - CHECK_STATES((&g_States, - new State_Func2_Pre1(500, &hook.m_Var), // p1 was 500; it's going to override with hook.m_Var; and also change p1 to 1337 - new State_Func2(1337, &test.m_Var2), // p1 was 1337; it's going to ret test.m_Var2 - new State_Func2_Post1(1337, // p1 was 1337 - &test.m_Var2, // orig ret was test.m_Var2 - &hook.m_Var), // override ret was hook.m_Var - new State_Func2_Ret(&hook.m_Var), // really returned hook.m_Var - NULL), "Part 7"); - - SH_REMOVE_HOOK_MEMFUNC(Test, Func2, &test, &hook, &CHook::Func2_Post1, true); - SH_REMOVE_HOOK_MEMFUNC(Test, Func2, &test, &hook, &CHook::Func2_Pre1, false); - SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Pre1, false); - SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Post1, true); - SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Pre2, false); - SH_REMOVE_HOOK_MEMFUNC(Test, Func1, &test, &hook, &CHook::Func1_Post2, true); - - return true; -} - diff --git a/sourcemm/CPlugin.cpp b/sourcemm/CPlugin.cpp deleted file mode 100644 index 8df7a6f..0000000 --- a/sourcemm/CPlugin.cpp +++ /dev/null @@ -1,698 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include "CPlugin.h" -#include "CSmmAPI.h" -#include "sourcemm.h" -#include "concommands.h" -#include "vsp_listener.h" - -/** - * @brief Implements functions from CPlugin.h - * @file CPlugin.cpp - */ - -using namespace SourceMM; - -#define ITER_PLEVENT(evn, plid) \ - CPluginManager::CPlugin *_Xpl; \ - SourceHook::List::iterator event; \ - IMetamodListener *api; \ - for (PluginIter iter = g_PluginMngr._begin(); iter != g_PluginMngr._end(); iter++) { \ - _Xpl = (*iter); \ - if (_Xpl->m_Id == plid) \ - continue; \ - for (event=_Xpl->m_Events.begin(); event!=_Xpl->m_Events.end(); event++) { \ - api = (*event).event; \ - api->evn(plid); \ - } \ - } - -CPluginManager g_PluginMngr; - -CPluginManager::CPluginManager() -{ - m_LastId = Pl_MinId; - m_AllLoaded = false; -} - -CPluginManager::~CPluginManager() -{ - SourceHook::List::iterator iter; - - for (iter=m_Aliases.begin(); iter!=m_Aliases.end(); iter++) - { - delete (*iter); - } - - m_Aliases.clear(); -} - -const char *CPluginManager::LookupAlias(const char *alias) -{ - SourceHook::List::iterator iter; - CNameAlias *p; - - for (iter=m_Aliases.begin(); iter!=m_Aliases.end(); iter++) - { - p = (*iter); - if (p->alias.compare(alias) == 0) - { - return p->value.c_str(); - } - } - - return NULL; -} - -SourceHook::List::iterator CPluginManager::_alias_begin() -{ - return m_Aliases.begin(); -} - -SourceHook::List::iterator CPluginManager::_alias_end() -{ - return m_Aliases.end(); -} - -void CPluginManager::SetAlias(const char *alias, const char *value) -{ - SourceHook::List::iterator iter; - CNameAlias *p; - - for (iter=m_Aliases.begin(); iter!=m_Aliases.end(); iter++) - { - p = (*iter); - if (p->alias.compare(alias) == 0) - { - if (value[0] == '\0') - { - iter = m_Aliases.erase(iter); - return; - } else { - p->value.assign(value); - return; - } - } - } - - if (value[0] != '\0') - { - p = new CNameAlias; - - p->alias.assign(alias); - p->value.assign(value); - - m_Aliases.push_back(p); - } -} - -CPluginManager::CPlugin::CPlugin() : m_Id(0), m_Source(0), m_API(NULL), m_Lib(NULL) -{ - -} - -PluginId CPluginManager::Load(const char *file, PluginId source, bool &already, char *error, size_t maxlen) -{ - already = false; - //Check if we're about to reload an old plugin - PluginIter i = m_Plugins.begin(); - while (i != m_Plugins.end()) - { - if ( (*i) && UTIL_PathCmp(file, (*i)->m_File.c_str()) ) - { - if ( (*i)->m_Status < Pl_Paused ) - { - //Attempt to load the plugin again - already = true; - i = m_Plugins.erase(i); - continue; - } else { - //No need to load it - already = true; - return (*i)->m_Id; - } - } - i++; - } - - CPlugin *pl = _Load(file, source, error, maxlen); - - if (!pl) - return Pl_BadLoad; - - ITER_PLEVENT(OnPluginLoad, pl->m_Id); - - return pl->m_Id; -} - -CPluginManager::CPlugin *CPluginManager::FindById(PluginId id) -{ - PluginIter i; - - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i)->m_Id == id ) - return (*i); - } - - return NULL; -} - -void CPluginManager::SetAllLoaded() -{ - m_AllLoaded = true; - PluginIter i; - - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i) && (*i)->m_Status == Pl_Running && (*i)->m_API ) - { - //API 4 is when we added this callback - //Min version is now 5, so we ignore this check - //if ( (*i)->m_API->GetApiVersion() >= 004 ) - (*i)->m_API->AllPluginsLoaded(); - } - } -} - -void CPluginManager::SetVSPAsLoaded() -{ - PluginIter i; - CPlugin *pPlugin; - SourceHook::List::iterator event; - - for (i = m_Plugins.begin(); i != m_Plugins.end(); i++) - { - pPlugin = (*i); - if (pPlugin->m_Status < Pl_Paused) - { - continue; - } - /* Only valid for plugins >= 10 (v1:5, SourceMM 1.4) */ - if (pPlugin->m_API->GetApiVersion() < 10) - { - continue; - } - for (event = pPlugin->m_Events.begin(); - event != pPlugin->m_Events.end(); - event++) - { - if ((*event).got_vsp) - { - continue; - } - (*event).got_vsp = true; - (*event).event->OnVSPListening(&g_VspListener); - } - } -} - -bool CPluginManager::Pause(PluginId id, char *error, size_t maxlen) -{ - CPlugin *pl = FindById(id); - - if (!pl) - { - UTIL_Format(error, maxlen, "Plugin id not found"); - return false; - } - - bool ret; - - if ( (ret=_Pause(pl, error, maxlen)) == true ) - { - ITER_PLEVENT(OnPluginPause, pl->m_Id); - } - - return ret; -} - -bool CPluginManager::Unpause(PluginId id, char *error, size_t maxlen) -{ - CPlugin *pl = FindById(id); - - if (!pl) - { - UTIL_Format(error, maxlen, "Plugin id not found"); - return false; - } - - bool ret; - - if ( (ret=_Unpause(pl, error, maxlen)) == true ) - { - ITER_PLEVENT(OnPluginUnpause, pl->m_Id); - } - - return ret; -} - -bool CPluginManager::Unload(PluginId id, bool force, char *error, size_t maxlen) -{ - CPlugin *pl = FindById(id); - - if (!pl) - { - UTIL_Format(error, maxlen, "Plugin %d not found", id); - return false; - } - - bool ret; - PluginId old_id = pl->m_Id; - if ( (ret=_Unload(pl, force, error, maxlen)) == true ) - { - ITER_PLEVENT(OnPluginUnload, old_id); - } - - return ret; -} - -bool CPluginManager::Retry(PluginId id, char *error, size_t len) -{ - PluginIter i; - char buffer[64]; - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i) && (*i)->m_Id == id ) - { - if ( (*i)->m_Status >= Pl_Paused) - { - UTIL_Format(error, len, "Plugin %d is already running.", id); - return false; - } - CPlugin *pl = _Load((*i)->m_File.c_str(), Pl_Console, error, len); - if (!pl) - return false; - if (pl->m_Status >= Pl_Paused) - { - //Now it gets crazy... unload the original copy. - _Unload( (*i), true, buffer, sizeof(buffer)-1 ); - - //Set the new copy's id - pl->m_Id = id; - - //We just wasted an id... reclaim it - m_LastId--; - - return true; - } else { - //don't really care about the buffer here - _Unload(pl, true, buffer, sizeof(buffer)-1); - - //We just wasted an id... reclaim it - m_LastId--; - return false; - } - } - } - - UTIL_Format(error, len, "Plugin %d not found,", id); - return false; -} - -CPluginManager::CPlugin *CPluginManager::FindByAPI(ISmmPlugin *api) -{ - PluginIter i; - - //don't find bad plugins! - if (!api) - return NULL; - - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i)->m_API == api ) - return (*i); - } - - return NULL; -} - -CPluginManager::CPlugin *CPluginManager::_Load(const char *file, PluginId source, char *error, size_t maxlen) -{ - FILE *fp; - CPlugin *pl; - - pl = new CPlugin(); - *error = '\0'; - - //Add plugin to list - pl->m_Id = m_LastId; - pl->m_File.assign(file); - m_Plugins.push_back(pl); - m_LastId++; - - //Check if the file even exists - fp = fopen(file, "r"); - if (!fp) - { - if (error) - UTIL_Format(error, maxlen, "File not found: %s", file); - pl->m_Status = Pl_NotFound; - } - - if (fp) - { - fclose(fp); - fp = NULL; - - //Load the file - pl->m_Lib = dlmount(file); - if (!pl->m_Lib) - { - if (error) - UTIL_Format(error, maxlen, "[%d]", GetLastError()); - pl->m_Status = Pl_Error; - } else { - CreateInterfaceFn pfn = (CreateInterfaceFn)(dlsym(pl->m_Lib, PL_EXPOSURE_C)); - if (!pfn) - { - if (error) - UTIL_Format(error, maxlen, "Function %s not found", PL_EXPOSURE_C); - pl->m_Status = Pl_Error; - } else { - pl->m_API = static_cast((pfn)(PLAPI_NAME, NULL)); - if (!pl->m_API) - { - if (error) - UTIL_Format(error, maxlen, "Failed to get API"); - pl->m_Status = Pl_Error; - } else { - int api = pl->m_API->GetApiVersion(); - if (api < PLAPI_MIN_VERSION) - { - if (error) - UTIL_Format(error, maxlen, "Plugin API %d is out of date with required minimum (%d)", api, PLAPI_MIN_VERSION); - pl->m_Status = Pl_Error; - } else if (api > PLAPI_VERSION) { - if (error) - UTIL_Format(error, maxlen, "Plugin API %d is newer than internal version (%d)", api, PLAPI_VERSION); - pl->m_Status = Pl_Error; - } else { - if (pl->m_API->Load(pl->m_Id, static_cast(&g_SmmAPI), error, maxlen, m_AllLoaded)) - { - pl->m_Status = Pl_Running; - if (m_AllLoaded) - { - //API 4 is when we added this callback - //Removing this code as the min version is now 5 - //if (pl->m_API->GetApiVersion() >= 4) - pl->m_API->AllPluginsLoaded(); - } - if (g_VspListener.IsRootLoadMethod() - || (g_VspListener.IsLoaded() && g_SmmAPI.VSPEnabled())) - { - SourceHook::List::iterator event; - for (event = pl->m_Events.begin(); - event != pl->m_Events.end(); - event++) - { - if (pl->m_API->GetApiVersion() < 10 || (*event).got_vsp) - { - continue; - } - (*event).got_vsp = true; - (*event).event->OnVSPListening(&g_VspListener); - } - } - } else { - pl->m_Status = Pl_Refused; - } - } - } - } - } - } - - if (pl->m_Lib && (pl->m_Status < Pl_Paused)) - { - pl->m_Events.clear(); - g_SourceHook.UnloadPlugin(pl->m_Id); - UnregAllConCmds(pl); - - dlclose(pl->m_Lib); - pl->m_Lib = NULL; - pl->m_API = NULL; - } - - return pl; -} - -bool CPluginManager::_Unload(CPluginManager::CPlugin *pl, bool force, char *error, size_t maxlen) -{ - if (error) - *error = '\0'; - if (pl->m_API && pl->m_Lib) - { - //Note, we'll always tell the plugin it will be unloading... - if (pl->m_API->Unload(error, maxlen) || force) - { - //Make sure to detach it from sourcehook! - g_SourceHook.UnloadPlugin(pl->m_Id); - - UnregAllConCmds(pl); - - //Clean up the DLL - dlclose(pl->m_Lib); - pl->m_Lib = NULL; - pl->m_API = NULL; - - //Remove the plugin from the list - PluginIter i; - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i)->m_Id == pl->m_Id ) - { - i = m_Plugins.erase(i); - break; - } - } - //Free its memory - delete pl; - - return true; - } - } else { - //The plugin is not valid, and let's just remove it from the list anyway - PluginIter i; - for (i=m_Plugins.begin(); i!=m_Plugins.end(); i++) - { - if ( (*i)->m_Id == pl->m_Id ) - { - i = m_Plugins.erase(i); - break; - } - } - delete pl; - - return true; - } - - return false; -} - -bool CPluginManager::_Pause(CPluginManager::CPlugin *pl, char *error, size_t maxlen) -{ - if (error) - *error = '\0'; - if (pl->m_Status != Pl_Running || !pl->m_API) - { - if (error) - UTIL_Format(error, maxlen, "Plugin cannot be paused"); - } else { - if (pl->m_API->Pause(error, maxlen)) - { - g_SourceHook.PausePlugin(pl->m_Id); - pl->m_Status = Pl_Paused; - - return true; - } - } - - return false; -} - -bool CPluginManager::_Unpause(CPluginManager::CPlugin *pl, char *error, size_t maxlen) -{ - if (error) - *error = '\0'; - - if (pl->m_Status != Pl_Paused || !pl->m_API) - { - if (error) - UTIL_Format(error, maxlen, "Plugin cannot be unpaused"); - } else { - if (pl->m_API->Unpause(error, maxlen)) - { - g_SourceHook.UnpausePlugin(pl->m_Id); - pl->m_Status = Pl_Running; - - return true; - } - } - - return false; -} - -bool CPluginManager::UnloadAll() -{ - PluginIter i; - - char error[128]; - bool status = true; - - while ((i = m_Plugins.begin()) != m_Plugins.end()) - { - if ( !_Unload( (*i), true, error, sizeof(error)) ) - { - status = false; - } - } - - return status; -} - -bool CPluginManager::Query(PluginId id, const char *&file, Pl_Status &status, PluginId &source) -{ - CPlugin *pl = FindById(id); - - if (!pl) - return false; - - file = pl->m_File.c_str(); - status = pl->m_Status; - source = pl->m_Source; - - return true; -} - -bool CPluginManager::QueryRunning(PluginId id, char *error, size_t maxlength) -{ - CPlugin *pl = FindById(id); - - if (!pl || !pl->m_API) - { - if (error) - UTIL_Format(error, maxlength, "Plugin not valid"); - return false; - } - - return pl->m_API->QueryRunning(error, maxlength); -} - -bool CPluginManager::QueryHandle(PluginId id, void *&handle) -{ - CPlugin *pl = FindById(id); - - if (!pl) - { - return false; - } - - handle = static_cast(pl->m_Lib); - - return true; -} - -PluginIter CPluginManager::_begin() -{ - return m_Plugins.begin(); -} - -PluginIter CPluginManager::_end() -{ - return m_Plugins.end(); -} - -void CPluginManager::AddPluginCvar(ISmmPlugin *api, ConCommandBase *pCvar) -{ - CPlugin *pl = FindByAPI(api); - - if (!pl) - return; - - pl->m_Cvars.push_back(pCvar); -} - -void CPluginManager::AddPluginCmd(ISmmPlugin *api, ConCommandBase *pCmd) -{ - CPlugin *pl = FindByAPI(api); - - if (!pl) - return; - - pl->m_Cmds.push_back(pCmd); -} - -void CPluginManager::RemovePluginCvar(ISmmPlugin *api, ConCommandBase *pCvar) -{ - CPlugin *pl = FindByAPI(api); - - if (!pl) - return; - - pl->m_Cvars.remove(pCvar); -} - -void CPluginManager::RemovePluginCmd(ISmmPlugin *api, ConCommandBase *pCmd) -{ - CPlugin *pl = FindByAPI(api); - - if (!pl) - return; - - pl->m_Cmds.remove(pCmd); -} - -void CPluginManager::UnregAllConCmds(CPlugin *pl) -{ - SourceHook::List::iterator i; - - for (i=pl->m_Cvars.begin(); i!=pl->m_Cvars.end(); i++) - g_SMConVarAccessor.Unregister( (*i) ); - - pl->m_Cvars.clear(); - - for (i=pl->m_Cmds.begin(); i!=pl->m_Cmds.end(); i++) - g_SMConVarAccessor.Unregister( (*i) ); - - pl->m_Cmds.clear(); -} - -const char *CPluginManager::GetStatusText(CPlugin *pl) -{ - switch (pl->m_Status) - { - case Pl_NotFound: - return "NOFILE"; - case Pl_Error: - return "ERROR"; - case Pl_Refused: - return "FAILED"; - case Pl_Paused: - return "PAUSED"; - case Pl_Running: - { - if (pl->m_API && pl->m_API->QueryRunning(NULL, 0)) - { - return "STOPPED"; - } else { - return "RUNNING"; - } - } - default: - return "-"; - } -} - -unsigned int CPluginManager::GetPluginCount() -{ - return (unsigned int)m_Plugins.size(); -} diff --git a/sourcemm/CPlugin.h b/sourcemm/CPlugin.h deleted file mode 100644 index 12f810b..0000000 --- a/sourcemm/CPlugin.h +++ /dev/null @@ -1,157 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_CPLUGIN_H -#define _INCLUDE_CPLUGIN_H - -/** - * @brief Implementation of Plugin API and Management routines - * @file CPlugin.cpp - */ - -#include -#include -#include "convar_smm.h" -#include "IPluginManager.h" -#include "oslink.h" -#include "sh_list.h" -#include "sh_string.h" - -/** - * History of plugin versions: (M=min, C=current) - * 1: Initial interface - * 2: Added GetLogTag() - * 3: Moved GetApiVersion() to top (2005-04-16) - * 4: Added AllPluginsLoaded() callback (2005-04-18) - * 5: Bumped version for SourceHook V4 (2005-05-01) - * 6: Added functions for console printing (2005-05-26) - * M 7: Changed template libraries (2005-08-11) - * New loading structure mechanism - * New SourceHook version - * 8: New SourceHook version (2005-12-23) - * New ISmmAPI additions - * 9: New ISmmPluginManager additions - * C 10: Added VSP listen functions to ISmmAPI and IMetamodListener (2007-02-09) - */ - -#define PLAPI_MIN_VERSION 7 - -namespace SourceMM -{ - struct CNameAlias - { - SourceHook::String alias; - SourceHook::String value; - }; - - struct CPluginEventHandler - { - bool got_vsp; - IMetamodListener *event; - }; - - /** - * @brief Implements Plugin Manager API - */ - class CPluginManager : public ISmmPluginManager - { - public: - /** - * @brief Internal structure for holding plugin data - */ - class CPlugin - { - public: - CPlugin(); - public: - PluginId m_Id; - SourceHook::String m_File; - Pl_Status m_Status; - PluginId m_Source; - ISmmPlugin *m_API; - HINSTANCE m_Lib; - SourceHook::List m_Cvars; - SourceHook::List m_Cmds; - SourceHook::List m_Events; - }; - public: - CPluginManager(); - ~CPluginManager(); - void SetAllLoaded(); - public: - PluginId Load(const char *file, PluginId source, bool &already, char *error, size_t maxlen); - bool Unload(PluginId id, bool force, char *error, size_t maxlen); - bool Pause(PluginId id, char *error, size_t maxlen); - bool Unpause(PluginId id, char *error, size_t maxlen); - bool UnloadAll(); - void SetAlias(const char *alias, const char *value); - public: - bool Query(PluginId id, const char *&file, Pl_Status &status, PluginId &source); - bool QueryRunning(PluginId id, char *error, size_t maxlength); - bool QueryHandle(PluginId id, void *&handle); - - void AddPluginCvar(ISmmPlugin *api, ConCommandBase *pCvar); - void AddPluginCmd(ISmmPlugin *api, ConCommandBase *pCmd); - void RemovePluginCvar(ISmmPlugin *api, ConCommandBase *pCvar); - void RemovePluginCmd(ISmmPlugin *api, ConCommandBase *pCmd); - - /** - * @brief Finds a plugin by Id - * - * @param id Id of plugin - * @return CPlugin on success, NULL otherwise - */ - CPlugin *FindById(PluginId id); - - CPlugin *FindByAPI(ISmmPlugin *api); - - /** - * @brief Attempts to reload a failed plugin - * - * @param id Id of plugin - * @param error Error message buffer - * @param len Maximum length of buffer - * @return True on success, false otherwise - */ - bool Retry(PluginId id, char *error, size_t len); - - //get alias info - const char *LookupAlias(const char *alias); - SourceHook::List::iterator _alias_begin(); - SourceHook::List::iterator _alias_end(); - - //Internal iterators - SourceHook::List::iterator _begin(); - SourceHook::List::iterator _end(); - - void SetVSPAsLoaded(); - unsigned int GetPluginCount(); - const char *GetStatusText(CPlugin *pl); - private: - //These are identical internal functions for the wrappers above. - CPlugin *_Load(const char *file, PluginId source, char *error, size_t maxlen); - bool _Unload(CPlugin *pl, bool force, char *error, size_t maxlen); - bool _Pause(CPlugin *pl, char *error, size_t maxlen); - bool _Unpause(CPlugin *pl, char *error, size_t maxlen); - void UnregAllConCmds(CPlugin *pl); - private: - PluginId m_LastId; - SourceHook::List m_Plugins; - SourceHook::List m_Aliases; - bool m_AllLoaded; - }; -}; - -typedef SourceHook::List::iterator PluginIter; - -/** @brief Singleton for plugin manager */ -extern SourceMM::CPluginManager g_PluginMngr; - -#endif //_INCLUDE_CPLUGIN_H diff --git a/sourcemm/CSmmAPI.cpp b/sourcemm/CSmmAPI.cpp deleted file mode 100644 index 16b5894..0000000 --- a/sourcemm/CSmmAPI.cpp +++ /dev/null @@ -1,633 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include "convar_smm.h" -#include "CSmmAPI.h" -#include "sourcemm.h" -#include "concommands.h" -#include "CPlugin.h" -#include "vsp_listener.h" - -/** - * @brief Implementation of main API interface - * @file CSmmAPI.cpp - */ - -using namespace SourceMM; - -CSmmAPI g_SmmAPI; - -CSmmAPI::CSmmAPI() -{ - m_ConPrintf = NULL; - m_CmdCache = false; - m_MsgCount = -1; - m_VSP = false; -} - -CSmmAPI::~CSmmAPI() -{ - m_UserMessages.RemoveAll(); -} - -void CSmmAPI::LogMsg(ISmmPlugin *pl, const char *msg, ...) -{ - va_list ap; - static char buffer[2048]; - - va_start(ap, msg); - UTIL_FormatArgs(buffer, sizeof(buffer), msg, ap); - va_end(ap); - - LogMessage("[%s] %s", pl->GetLogTag(), buffer); -} - -CreateInterfaceFn CSmmAPI::engineFactory(bool syn) -{ - if (syn) - return EngineFactory; - return g_Engine.engineFactory; -} - -CreateInterfaceFn CSmmAPI::physicsFactory(bool syn) -{ - if (syn) - return PhysicsFactory; - return g_Engine.physicsFactory; -} - -CreateInterfaceFn CSmmAPI::fileSystemFactory(bool syn) -{ - if (syn) - return FileSystemFactory; - return g_Engine.fileSystemFactory; -} - -CreateInterfaceFn CSmmAPI::serverFactory(bool syn) -{ - if (syn) - return CreateInterface; - return g_GameDll.factory; -} - -CGlobalVars *CSmmAPI::pGlobals() -{ - return g_Engine.pGlobals; -} - -void CSmmAPI::SetLastMetaReturn(META_RES res) -{ - m_Res = res; -} - -META_RES CSmmAPI::GetLastMetaReturn() -{ - return m_Res; -} - -IConCommandBaseAccessor *CSmmAPI::GetCvarBaseAccessor() -{ - return static_cast(&g_SMConVarAccessor); -} - -bool CSmmAPI::RegisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand) -{ - if (pCommand->IsCommand()) - { - g_PluginMngr.AddPluginCmd(plugin, pCommand); - } else { - g_PluginMngr.AddPluginCvar(plugin, pCommand); - } - - return g_SMConVarAccessor.Register(pCommand); -} - -void CSmmAPI::UnregisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand) -{ - if (pCommand->IsCommand()) - { - g_PluginMngr.RemovePluginCmd(plugin, pCommand); - } else { - g_PluginMngr.RemovePluginCvar(plugin, pCommand); - } - - g_SMConVarAccessor.Unregister(pCommand); -} - -void CSmmAPI::ConPrint(const char *fmt) -{ - (m_ConPrintf)("%s", fmt); -} - -void CSmmAPI::ConPrintf(const char *fmt, ...) -{ - va_list ap; - static char buffer[4096]; - - va_start(ap, fmt); - UTIL_FormatArgs(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - (m_ConPrintf)("%s", buffer); -} - -void CSmmAPI::AddListener(ISmmPlugin *plugin, IMetamodListener *pListener) -{ - CPluginManager::CPlugin *pl = g_PluginMngr.FindByAPI(plugin); - CPluginEventHandler cpeh; - - cpeh.event = pListener; - cpeh.got_vsp = false; - - pl->m_Events.push_back(cpeh); -} - -void *CSmmAPI::MetaFactory(const char *iface, int *_ret, PluginId *id) -{ - if (id) - { - *id = 0; - } - - if (!iface) - { - return NULL; - } - - //first check ours... we get first chance! - if (strcmp(iface, MMIFACE_SOURCEHOOK) == 0) - { - if (_ret) - { - *_ret = IFACE_OK; - } - return static_cast(static_cast(&g_SourceHook)); - } else if (strcmp(iface, MMIFACE_PLMANAGER) == 0) { - if (_ret) - { - *_ret = IFACE_OK; - } - return static_cast(static_cast(&g_PluginMngr)); - } - - CPluginManager::CPlugin *pl; - SourceHook::List::iterator event; - IMetamodListener *api; - int ret = 0; - void *val = NULL; - - for (PluginIter iter = g_PluginMngr._begin(); iter != g_PluginMngr._end(); iter++) - { - pl = (*iter); - for (event=pl->m_Events.begin(); event!=pl->m_Events.end(); event++) - { - api = (*event).event; - ret = IFACE_FAILED; - if ( (val=api->OnMetamodQuery(iface, &ret)) != NULL ) - { - if (_ret) - *_ret = ret; - if (id) - *id = pl->m_Id; - return val; - } - } - } - - if (_ret) - *_ret = IFACE_FAILED; - - return NULL; -} - -////////////////////////////////////////////////////////////////////////// -//THERE BE HAX HERE!!!! DON'T TELL ALFRED, BUT GABE WANTED IT THAT WAY. // -// (note: you can find the offset by looking for the text // -// "Echo text to console", you'll find the callback cmd pushed on the // -// stack.) // -////////////////////////////////////////////////////////////////////////// - -#define SIGLEN 8 -#define ENGINE486_SIG "\x55\x89\xE5\x53\x83\xEC\x14\xBB" -#define ENGINE486_OFFS 40 -#define ENGINE686_SIG "\x53\x83\xEC\x08\xBB\x01\x00\x00" -#define ENGINE686_OFFS 50 -#define ENGINEAMD_SIG "\x53\x51\xBB\x01\x00\x00\x00\x51" -#define ENGINEAMD_OFFS 47 -#define ENGINEW32_SIG "\xA1\x2A\x2A\x2A\x2A\x56\xBE\x01" -#define ENGINEW32_OFFS 38 -#define IA32_CALL 0xE8 - -//Thanks to fysh for the idea of extracting info from "echo" and for -// having the original offsets at hand! -bool CSmmAPI::CacheCmds() -{ - ICvar *pCvar = g_Engine.icvar; - - ConCommandBase *pBase = pCvar->GetCommands(); - unsigned char *ptr = NULL; - FnCommandCallback callback = NULL; - int offs = 0; - - while (pBase) - { - if ( strcmp(pBase->GetName(), "echo") == 0 ) - { - //callback = //*((FnCommandCallback *)((char *)pBase + offsetof(ConCommand, m_fnCommandCallback))); - callback = ((ConCommand *)pBase)->GetCallback(); - ptr = (unsigned char *)callback; - #ifdef OS_LINUX - if (UTIL_VerifySignature(ptr, ENGINE486_SIG, SIGLEN)) - { - offs = ENGINE486_OFFS; - } - else if (UTIL_VerifySignature(ptr, ENGINE686_SIG, SIGLEN)) - { - offs = ENGINE686_OFFS; - } - else if (UTIL_VerifySignature(ptr, ENGINEAMD_SIG, SIGLEN)) - { - offs = ENGINEAMD_OFFS; - } - #elif defined OS_WIN32 // Only one Windows engine binary so far... - if (UTIL_VerifySignature(ptr, ENGINEW32_SIG, SIGLEN)) - { - offs = ENGINEW32_OFFS; - } - #endif - - if (!offs || ptr[offs - 1] != IA32_CALL) - { - m_ConPrintf = (CONPRINTF_FUNC)Msg; - return false; - } - //get the relative offset - m_ConPrintf = *((CONPRINTF_FUNC *)(ptr + offs)); - //add the base offset, to the ip (which is the address+offset + 4 bytes for next instruction) - m_ConPrintf = (CONPRINTF_FUNC)((unsigned long)m_ConPrintf + (unsigned long)(ptr + offs) + 4); - - m_CmdCache = true; - - return true; - } - pBase = const_cast(pBase->GetNext()); - } - - m_ConPrintf = (CONPRINTF_FUNC)Msg; - - return false; -} - -bool CSmmAPI::CmdCacheSuccessful() -{ - return m_CmdCache; -} - -void CSmmAPI::GetApiVersions(int &major, int &minor, int &plvers, int &plmin) -{ - major = SM_VERS_API_MAJOR; - minor = SM_VERS_API_MINOR; - plvers = PLAPI_VERSION; - plmin = PLAPI_MIN_VERSION; -} - -void CSmmAPI::GetShVersions(int &shvers, int &shimpl) -{ - shvers = SH_IFACE_VERSION; - shimpl = SH_IMPL_VERSION; -} - -int CSmmAPI::FormatIface(char iface[], unsigned int maxlength) -{ - int length = (int)strlen(iface); - int i; - int num = 0; - - for (i = length - 1; i >= 0; i--) - { - if (!isdigit(iface[i])) - { - if (i != length - 1) - { - num = 1; - } - break; - } - } - - if ( (num && ((int)maxlength <= length)) || (!num && ((int)maxlength <= length + 3)) ) - { - return -1; - } - - if (i != length - 1) - num = atoi(&(iface[++i])); - - num++; - - snprintf(&(iface[i]), 4, "%03d", num); - - return num; -} - -void *CSmmAPI::InterfaceSearch(CreateInterfaceFn fn, const char *iface, int max, int *ret) -{ - char _if[256]; /* assume no interface goes beyond this */ - size_t len = strlen(iface); - int num = 0; - void *pf = NULL; - - if (max > 999) - max = 999; - - if (len + 4 > sizeof(_if)) - { - if (ret) - { - *ret = IFACE_FAILED; - } - return NULL; - } - - strcpy(_if, iface); - - do - { - if ( (pf = (fn)(_if, ret)) != NULL ) - break; - if (num > max) - break; - } while (( num = FormatIface(_if, len+1) )); - - return pf; -} - -void *CSmmAPI::VInterfaceMatch(CreateInterfaceFn fn, const char *iface, int min) -{ - char buffer[256]; /* assume no interface will go beyond this */ - size_t len = strlen(iface); - int ret; /* just in case something doesn't handle NULL properly */ - - if (len > sizeof(buffer) - 4) - { - return NULL; - } - - strcpy(buffer, iface); - - if (min != -1) - { - char *ptr = &buffer[len - 1]; - int digits = 0; - while (isdigit(*ptr) && digits <=3) - { - *ptr = '\0'; - digits++; - ptr--; - } - if (digits != 3) - { - /* for now, assume this is an error */ - strcpy(buffer, iface); - } else { - char num[4]; - min = (min == 0) ? 1 : min; - snprintf(num, sizeof(num), "%03d", min); - strcat(buffer, num); - } - } - - return InterfaceSearch(fn, buffer, IFACE_MAXNUM, &ret); -} - -const char *CSmmAPI::GetBaseDir() -{ - return g_ModPath.c_str(); -} - -void CSmmAPI::PathFormat(char *buffer, size_t len, const char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - size_t mylen = UTIL_FormatArgs(buffer, len, fmt, ap); - va_end(ap); - - for (size_t i = 0; i < mylen; i++) - { - if (buffer[i] == ALT_SEP_CHAR) - { - buffer[i] = PATH_SEP_CHAR; - } - } -} - -void CSmmAPI::ClientConPrintf(edict_t *client, const char *fmt, ...) -{ - va_list ap; - static char buffer[4096]; - - va_start(ap, fmt); - UTIL_FormatArgs(buffer, sizeof(buffer), fmt, ap); - va_end(ap); - - g_Engine.engine->ClientPrintf(client, buffer); -} - -void CSmmAPI::LoadAsVSP() -{ - size_t len; - char engine_file[PATH_SIZE]; - char rel_path[PATH_SIZE * 2]; - - GetFileOfAddress(g_Engine.engine, engine_file, sizeof(engine_file)); - - /* Chop off the "engine" file part */ - len = strlen(engine_file); - for (size_t i = len - 1; i >= 0 && i < len; i--) - { - if (engine_file[i] == '/' - || engine_file[i] == '\\') - { - engine_file[i] = '\0'; - break; - } - } - - const char *usepath = g_SmmPath.c_str(); - if (UTIL_Relatize(rel_path, sizeof(rel_path), engine_file, g_SmmPath.c_str())) - { - usepath = rel_path; - } - - char command[PATH_SIZE * 2]; - g_VspListener.SetLoadable(true); - UTIL_Format(command, sizeof(command), "plugin_load \"%s\"\n", usepath); - g_Engine.engine->ServerCommand(command); -} - -void CSmmAPI::EnableVSPListener() -{ - /* If GameInit already passed and we're not already enabled or loaded, go ahead and LoadAsVSP load */ - if (bGameInit && !m_VSP && !g_VspListener.IsLoaded() && !g_VspListener.IsRootLoadMethod()) - { - LoadAsVSP(); - } - m_VSP = true; -} - -int CSmmAPI::GetGameDLLVersion() -{ - return g_GameDllVersion; -} - -////////////////////////////////////////////////////////////////////// -// EVEN MORE HACKS HERE! YOU HAVE BEEN WARNED! // -// Signatures necessary in finding the pointer to the CUtlDict that // -// stores user message information. // -// IServerGameDLL::GetUserMessageInfo() normally crashes with bad // -// message indices. This is our answer to it. Yuck! <:-( // -////////////////////////////////////////////////////////////////////// -#ifdef OS_WIN32 - /* General Windows sig */ - #define MSGCLASS_SIGLEN 7 - #define MSGCLASS_SIG "\x8B\x0D\x2A\x2A\x2A\x2A\x56" - #define MSGCLASS_OFFS 2 - - /* Dystopia Wimdows hack */ - #define MSGCLASS2_SIGLEN 16 - #define MSGCLASS2_SIG "\x56\x8B\x74\x24\x2A\x85\xF6\x7C\x2A\x3B\x35\x2A\x2A\x2A\x2A\x7D" - #define MSGCLASS2_OFFS 11 - - /* Windows frame pointer sig */ - #define MSGCLASS3_SIGLEN 18 - #define MSGCLASS3_SIG "\x55\x8B\xEC\x51\x89\x2A\x2A\x8B\x2A\x2A\x50\x8B\x0D\x2A\x2A\x2A\x2A\xE8" - #define MSGCLASS3_OFFS 13 -#elif defined OS_LINUX - /* No frame pointer sig */ - #define MSGCLASS_SIGLEN 14 - #define MSGCLASS_SIG "\x53\x83\xEC\x2A\x8B\x2A\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x89" - #define MSGCLASS_OFFS 9 - - /* Frame pointer sig */ - #define MSGCLASS2_SIGLEN 16 - #define MSGCLASS2_SIG "\x55\x89\xE5\x53\x83\xEC\x2A\x8B\x2A\x2A\xA1\x2A\x2A\x2A\x2A\x89" - #define MSGCLASS2_OFFS 11 -#endif - -/* This is the ugliest function in all of SourceMM */ -/* :TODO: Make this prettier */ -bool CSmmAPI::CacheUserMessages() -{ - UserMsgDict *dict = NULL; - char *vfunc = UTIL_GetOrigFunction(&IServerGameDLL::GetUserMessageInfo, g_GameDll.pGameDLL, g_GameDllPatch); - - if (!vfunc) - { - return false; - } - - if (UTIL_VerifySignature(vfunc, MSGCLASS_SIG, MSGCLASS_SIGLEN)) - { - /* Get address of CUserMessages instance */ - char **userMsgClass = *reinterpret_cast(vfunc + MSGCLASS_OFFS); - - /* Get address of CUserMessages::m_UserMessages */ - dict = reinterpret_cast(*userMsgClass); - } else if (UTIL_VerifySignature(vfunc, MSGCLASS2_SIG, MSGCLASS2_SIGLEN)) { - #ifdef OS_WIN32 - /* If we get here, the code is possibly inlined like in Dystopia */ - - /* Get the address of the CUtlRBTree */ - char *rbtree = *reinterpret_cast(vfunc + MSGCLASS2_OFFS); - - /* CUtlDict should be 8 bytes before the CUtlRBTree (hacktacular!) */ - dict = reinterpret_cast(rbtree - 8); - #elif defined OS_LINUX - /* Get address of CUserMessages instance */ - char **userMsgClass = *reinterpret_cast(vfunc + MSGCLASS2_OFFS); - - /* Get address of CUserMessages::m_UserMessages */ - dict = reinterpret_cast(*userMsgClass); - #endif - #ifdef OS_WIN32 - } else if (UTIL_VerifySignature(vfunc, MSGCLASS3_SIG, MSGCLASS3_SIGLEN)) { - /* Get address of CUserMessages instance */ - char **userMsgClass = *reinterpret_cast(vfunc + MSGCLASS3_OFFS); - - /* Get address of CUserMessages::m_UserMessages */ - dict = reinterpret_cast(*userMsgClass); - #endif - } - - if (dict) - { - m_MsgCount = dict->Count(); - - /* Ensure that count is within bounds of an unsigned byte, because that's what engine supports */ - if (m_MsgCount < 0 || m_MsgCount > 255) - { - m_MsgCount = -1; - return false; - } - - UserMessage *msg; - - /* Cache messages in our CUtlDict */ - for (int i = 0; i < m_MsgCount; i++) - { - msg = dict->Element(i); - m_UserMessages.Insert(msg->name, msg); - } - - return true; - } - - return false; -} - -bool CSmmAPI::MsgCacheSuccessful() -{ - return m_MsgCount > -1; -} - -int CSmmAPI::GetUserMessageCount() -{ - return m_MsgCount; -} - -int CSmmAPI::FindUserMessage(const char *name, int *size) -{ - int index = m_UserMessages.Find(name); - - if (size && index > -1) - { - UserMessage *msg = m_UserMessages.Element(index); - *size = msg->size; - } - - return index; -} - -const char *CSmmAPI::GetUserMessage(int index, int *size) -{ - if (m_MsgCount <= 0 || index < 0 || index >= m_MsgCount) - { - return NULL; - } - - UserMessage *msg = m_UserMessages.Element(index); - - if (size) - { - *size = msg->size; - } - - return msg->name; -} diff --git a/sourcemm/CSmmAPI.h b/sourcemm/CSmmAPI.h deleted file mode 100644 index 1a2d29e..0000000 --- a/sourcemm/CSmmAPI.h +++ /dev/null @@ -1,98 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_CSMM_API_H -#define _INCLUDE_CSMM_API_H - -/** - * @brief Header for CSmmAPI implementation - * @file CSmmAPI.h - */ - -#include "ISmmAPI.h" -#include - -struct UserMessage -{ - int size; - const char *name; -}; - -typedef CUtlDict UserMsgDict; - -typedef void (*CONPRINTF_FUNC)(const char *, ...); - -namespace SourceMM -{ - class CSmmAPI : public ISmmAPI - { - public: - CSmmAPI(); - ~CSmmAPI(); - public: - void LogMsg(ISmmPlugin *pl, const char *msg, ...); - public: - CreateInterfaceFn engineFactory(bool syn=true); - CreateInterfaceFn physicsFactory(bool syn=true); - CreateInterfaceFn fileSystemFactory(bool syn=true); - CreateInterfaceFn serverFactory(bool syn=true); - CGlobalVars *pGlobals(); - void SetLastMetaReturn(META_RES res); - META_RES GetLastMetaReturn(); - IConCommandBaseAccessor *GetCvarBaseAccessor(); - bool RegisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand); - void UnregisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand); - void ConPrint(const char *fmt); - void ConPrintf(const char *fmt, ...); - bool RemotePrintingAvailable() - { - return CmdCacheSuccessful(); - } - virtual void GetApiVersions(int &major, int &minor, int &plvers, int &plmin); - virtual void GetShVersions(int &shvers, int &shimpl); - virtual void AddListener(ISmmPlugin *plugin, IMetamodListener *pListener); - virtual void *MetaFactory(const char *iface, int *ret, PluginId *id); - virtual int FormatIface(char buffer[], unsigned int maxlength); - virtual void *InterfaceSearch(CreateInterfaceFn fn, const char *iface, int max, int *ret); - virtual const char *GetBaseDir(); - virtual void PathFormat(char *buffer, size_t len, const char *fmt, ...); - void ClientConPrintf(edict_t *client, const char *fmt, ...); - void *VInterfaceMatch(CreateInterfaceFn fn, const char *iface, int min=-1); - void EnableVSPListener(); - int GetGameDLLVersion(); - int GetUserMessageCount(); - int FindUserMessage(const char *name, int *size=NULL); - const char *GetUserMessage(int index, int *size=NULL); - public: - bool CacheCmds(); - bool CmdCacheSuccessful(); - void LoadAsVSP(); - bool VSPEnabled() - { - return m_VSP; - } - bool CacheUserMessages(); - bool MsgCacheSuccessful(); - private: - META_RES m_Res; - CONPRINTF_FUNC m_ConPrintf; - bool m_CmdCache; - bool m_VSP; - int m_MsgCount; - UserMsgDict m_UserMessages; - }; -}; - -extern SourceMM::CSmmAPI g_SmmAPI; - -#define CONMSG g_SmmAPI.ConPrintf -#define CLIENT_CONMSG g_SmmAPI.ClientConPrintf - -#endif //_INCLUDE_CSMM_API_H diff --git a/sourcemm/IPluginManager.h b/sourcemm/IPluginManager.h deleted file mode 100644 index 226ad61..0000000 --- a/sourcemm/IPluginManager.h +++ /dev/null @@ -1,137 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_PLUGINMANAGER_H -#define _INCLUDE_PLUGINMANAGER_H - -/** - * @brief Plugin Manager interface - * @file IPluginManager.h - */ - -typedef int PluginId; - -#include "ISmmPlugin.h" - -/** - * @brief Load sources - */ -enum -{ - Pl_BadLoad=0, - Pl_Console=-1, - Pl_File=-2, - Pl_MinId=1, -}; - -/** - * @brief Status of a plugin at runtime - */ -enum Pl_Status -{ - Pl_NotFound=-4, - Pl_Error=-3, - Pl_Refused=-2, - Pl_Paused=-1, - Pl_Running=0, -}; - -typedef int PluginId; -struct factories; - -class ISmmPluginManager -{ -public: - /** - * @brief Loads a plugin and returns its id. If this is called before DLLInit(), - * then the plugin is considered to be "hot" - it might refuse its own load later! - * Also, a hot plugin might not have an error message. - * - * @param file String containing file name - * @param source Specifies who loaded the plugin - * @param status Status of the plugin - * @param ismm Pointer to Smm API - * @param error String buffer for error messages - * @param maxlen Maximum length of buffer - * @return Id of plugin - */ - virtual PluginId Load(const char *file, PluginId source, bool &already, char *error, size_t maxlen) =0; - - /** - * @brief Unloads a plugin - * - * @param id Id of plugin - * @param error String buffer for error messages - * @param maxlen Maximum length of buffer - * @return True on success, false otherwise - */ - virtual bool Unload(PluginId id, bool force, char *error, size_t maxlen) =0; - - /** - * @brief Pauses a plugin - * - * @param id Id of plugin - * @param error String buffer for error messages - * @param maxlen Maximum length of buffer - * @return True on success, false otherwise - */ - virtual bool Pause(PluginId id, char *error, size_t maxlen) =0; - - /** - * @brief Unpauses a plugin - * - * @param id Id of plugin - * @param force If true, forces the plugin to unload - * @param error String buffer for error messages - * @param maxlen Maximum length of buffer - * @return True on success, false otherwise - */ - virtual bool Unpause(PluginId id, char *error, size_t maxlen) =0; - - /** - * @brief Unloads all plugins forcefully - * - * @return True on success, false otherwise - */ - virtual bool UnloadAll() =0; - - /** - * @brief Returns information about a plugin - * - * @param id Id of plugin - * @param file Pointer to file string by reference - * @param list Pointer to factories by reference - * @param status By reference status of plugin - * @param source By reference source of plugin - * @return True on success, false if not found - */ - virtual bool Query(PluginId id, const char *&file, Pl_Status &status, PluginId &source) =0; - - /** - * @brief Checks another plugin's QueryRunning() status. - * - * @param id Id of plugin - * @param error Message buffer - * @param maxlen Size of error buffer - * @return Status value - */ - virtual bool QueryRunning(PluginId id, char *error, size_t maxlength) =0; - - /** - * @brief Returns the handle of a plugin (OS dependent meaning) - * - * @param id Id of plugin - * @param handle By reference handle of plugin, if any - * @return True if plugin id is valid, false otherwise - */ - virtual bool QueryHandle(PluginId id, void *&handle) =0; -}; - -#endif //_INCLUDE_PLUGINMANAGER_H diff --git a/sourcemm/ISmmAPI.h b/sourcemm/ISmmAPI.h deleted file mode 100644 index fa616ef..0000000 --- a/sourcemm/ISmmAPI.h +++ /dev/null @@ -1,320 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_ISMM_API_H -#define _INCLUDE_ISMM_API_H - -/** - * @brief External API interface - * @file ISmmAPI.h - */ - -#include -#include -#include -#include "IPluginManager.h" - -#if defined __GNUC__ -#if ((__GNUC__ == 3) && (__GNUC_MINOR__ < 4)) || (__GNUC__ < 3) -#error "You must compile with at least GCC 3.4! If you know what you are doing, you can remove this message." -#endif //version check -#endif //__GNUC__ - -class IMetamodListener; -class ISmmPluginManager; -class ISmmPlugin; - -#define MMIFACE_SOURCEHOOK "ISourceHook" /**< ISourceHook Pointer */ -#define MMIFACE_PLMANAGER "IPluginManager" /**< SourceMM Plugin Functions */ -#define IFACE_MAXNUM 999 - -class ISmmAPI -{ -public: - /** - * @brief Logs a message through the HL2 log system. - * Note: Newlines are appended automatically. - * - * @param pl Plugin API pointer (used for tagging message) - * @param msg Formatted string. - */ - virtual void LogMsg(ISmmPlugin *pl, const char *msg, ...) =0; -public: - /** - * @brief Returns an interface factory for the HL2 engine. - * - * @param syn If syn is true, the synthetic wrapper is returned. - * If syn is false, the true function is returned. - * @return CreateInterfaceFn function pointer. - */ - virtual CreateInterfaceFn engineFactory(bool syn=true) =0; - - /** - * @brief Returns an interface factory for the HL2 physics engine. - * - * @param syn If syn is true, the synthetic wrapper is returned. - * If syn is false, the true function is returned. - * @return CreateInterfaceFn function pointer. - */ - virtual CreateInterfaceFn physicsFactory(bool syn=true) =0; - - /** - * @brief Returns an interface factory for the HL2 file system. - * - * @param syn If syn is true, the synthetic wrapper is returned. - * If syn is false, the true function is returned. - * @return CreateInterfaceFn function pointer. - */ - virtual CreateInterfaceFn fileSystemFactory(bool syn=true) =0; - - /** - * @brief Returns an interface factory for the GameDLL. - * - * @param syn If syn is true, the synthetic wrapper is returned. - * If syn is false, the true function is returned. - * @return CreateInterfaceFn function pointer. - */ - virtual CreateInterfaceFn serverFactory(bool syn=true) =0; - - /** - * @brief Returns a CGlobalVars pointer from the HL2 Engine. - * - * @return CGlobalVars pointer. - */ - virtual CGlobalVars *pGlobals() =0; - - /** - * @brief Used with SourceHook, sets teh last meta return value. - * Note: Do not call this directly, use the Metamod macros. - * - * @param res META_RETURN value to set. - */ - virtual void SetLastMetaReturn(META_RES res) =0; - - /** - * @brief Used with SourceHook, returns the last meta return value. - * Note: This is only valid inside a hook function. - * - * @return Last META_RETURN value set by a plugin. - */ - virtual META_RES GetLastMetaReturn() =0; - -public: // Added in 1.00-RC2 (0:0) - /** - * @brief Allows access to Metamod's ConCommandBaseAccessor. - * - * @return Returns IConCommandBaseAccessor pointer. - */ - virtual IConCommandBaseAccessor *GetCvarBaseAccessor() =0; - - /** - * @brief Registers a ConCommandBase. - * - * @param plugin Parent plugin API pointer. - * @param pCommand ConCommandBase to register. - * @return True if successful, false otherwise. Does not return false yet. - */ - virtual bool RegisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand) =0; - - /** - * @brief Unregisters a ConCommandBase. - * - * @param plugin Parent plugin API pointer. - * @param pCommand ConCommandBase to unlink. - */ - virtual void UnregisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand) =0; - - /** - * @brief Prints an unformatted string to the remote server console. - * Note: Newlines are not added automatically. - * - * @param str Message string. - */ - virtual void ConPrint(const char *str) =0; - - /** - * @brief Prints a formatted message to the remote server console. - * Note: Newlines are not added automatically. - * - * @param fmt Formatted message. - */ - virtual void ConPrintf(const char *fmt, ...) =0; - -public: // Added in 1.1.0 (1:0) - /** - * @brief Checks if ConPrint/ConPrintf will mirror to rcon. - * - * @return True if remote printing available, false otherwise. - */ - virtual bool RemotePrintingAvailable() =0; - - /** - * @brief Returns the Metamod Version numbers as major version and minor (API) version. - * Changes to minor version are guaranteed to be backwards compatible. - * Changes to major version are not. - * - * @param major Filled with the major API version number. - * @param minor Filled with the minor API version number. - * @param plvers Filled with the current plugin API version number. - * @param plmin Filled with the minimum plugin API version number supported. - */ - virtual void GetApiVersions(int &major, int &minor, int &plvers, int &plmin) =0; - - /** - * @brief Returns sourcehook API version and implementation version. - * - * @param shvers Filled with the SourceHook API version number. - * @param shimpl Filled with the SourceHook implementation number. - */ - virtual void GetShVersions(int &shvers, int &shimpl) =0; - - /** - * @brief Adds a Metamod listener. - * - * @param plugin Plugin interface pointer. - * @param pListener Listener interface pointer to add. - */ - virtual void AddListener(ISmmPlugin *plugin, IMetamodListener *pListener) =0; - - /** - * @brief Queries the metamod factory - * - * @param iface String containing interface name - * @param ret Optional pointer to store return status - * @param id Optional pointer to store id of plugin that overrode interface, 0 if none - * @return Returned pointer - */ - virtual void *MetaFactory(const char *iface, int *ret, PluginId *id) =0; - -public: // Added in 1.1.2 (1:1) - /** - * @brief Given a base interface name, such as ServerGameDLL or ServerGameDLL003, - * reformats the string to increase the number, then returns the new number. - * This is the base function to InterfaceSearch() and VInterfaceMatch(). - * - * @param iface Input/output interface name. Must be writable. - * @param maxlength Maximum length of iface buffer. Must be at least strlen(iface)+4 chars. - * @return The newly incremented iface version number. - */ - virtual int FormatIface(char iface[], unsigned int maxlength) =0; - -public: // Added in 1.2 (1:2) - /** - * @brief Searches for an interface for you. - * - * @param fn InterfaceFactory function. - * @param iface Interface string name. - * @param max Maximum version to look up. - * @param ret Last return code from interface factory function. - * @return Interface pointer, or NULL if not found. - */ - virtual void *InterfaceSearch(CreateInterfaceFn fn, const char *iface, int max, int *ret) =0; - - /** - * @brief Returns the base directory of the game/server, equivalent to - * IVEngineServer::GetGameDir(), except the path is absolute. - * - * @return Static pointer to game's absolute basedir. - */ - virtual const char *GetBaseDir() =0; - - /** - * @brief Formats a file path to the local OS. Does not include any base directories. - * Note that all slashes and black slashes are reverted to the local OS's expectancy. - * - * @param buffer Destination buffer to store path. - * @param len Maximum length of buffer, including null terminator. - * @param fmt Formatted string. - */ - virtual void PathFormat(char *buffer, size_t len, const char *fmt, ...) =0; - -public: // Added in 1.2.2 (1:3) - /** - * @brief Prints text in the specified client's console. Same as IVEngineServer::ClientPrintf - * except that it allows for string formatting. - * - * @param client Client edict pointer. - * @param fmt Formatted string to print to the client. - */ - virtual void ClientConPrintf(edict_t *client, const char *fmt, ...) =0; - -public: // Added in 1.3 (1:4) - /** - * @brief Wrapper around InterfaceSearch(). Assumes no maximum. - * This is designed to replace the fact that searches only went upwards. - * The "V" is intended to convey that this is for Valve formatted interface strings. - * - * @param fn Interface factory function. - * @param iface Interface string. - * @param min Minimum value to search from. If zero, searching begins from the - * first available version regardless of the interface. - * Note that this can return interfaces EARLIER than the version specified. - * A value of -1 (default) specifies the string version as the minimum. - * Any other value specifices the minimum value to search from. - * @return Interface pointer, or NULL if not found. - */ - virtual void *VInterfaceMatch(CreateInterfaceFn fn, const char *iface, int min=-1) =0; - -public: // Added in 1.4 (1:5) - /** - * @brief Tells SourceMM to add VSP hooking capability to plugins. - * - * Since this potentially uses more resources than it would otherwise, plugins have to - * explicitly enable the feature. Whether requested or not, if it is enabled, all plugins - * will get a pointer to the VSP listener through IMetamodListener. - */ - virtual void EnableVSPListener() =0; - - /** - * @brief Returns the interface version of the GameDLL's IServerGameDLL implementation. - * - * @return Interface version of the loaded IServerGameDLL. - */ - virtual int GetGameDLLVersion() =0; - - /** - * @brief Returns the number of user messages in the GameDLL. - * - * @return Number of user messages, or -1 if SourceMM has failed to get user message list. - */ - virtual int GetUserMessageCount() =0; - - /** - * @brief Returns the index of the specified user message. - * - * @param name User message name. - * @param size Optional pointer to store size of user message. - * @return Message index, or -1 on failure. - */ - virtual int FindUserMessage(const char *name, int *size=NULL) =0; - - /** - * @brief Returns the name of the specified user message. - * - * @param index User message index. - * @param size Optional pointer to store size of user message. - * @return Message name, or NULL on failure. - */ - virtual const char *GetUserMessage(int index, int *size=NULL) =0; -}; - - -/** - * Version History - * - * 1.1.0 Bumped API to 1:0. The breaking changes occurred in SourceHook and the plugin API. - * 1.1.2 Added API call for generating iface names. - * 1.2 Added API more helper functions and new SourceHook version. - * 1.2.2 Added API for printing to client console (with string formatting). - * 1.3 Added new interface search API. - * 1.4 Added VSP listener and user message API. - */ - -#endif //_INCLUDE_ISMM_API_H diff --git a/sourcemm/ISmmPlugin.h b/sourcemm/ISmmPlugin.h deleted file mode 100644 index 7665f9a..0000000 --- a/sourcemm/ISmmPlugin.h +++ /dev/null @@ -1,409 +0,0 @@ -/* ======== SourceMM ======== -* Copyright (C) 2004-2008 Metamod:Source Development Team -* No warranties of any kind -* -* License: zlib/libpng -* -* Author(s): David "BAILOPAN" Anderson -* ============================ -*/ - -#ifndef _INCLUDE_ISMM_PLUGIN_H -#define _INCLUDE_ISMM_PLUGIN_H - -/** - * @brief Plugin API interface - * @file ISmmPlugin.h - */ - -#include -#include -#include "ISmmAPI.h" - -#define PLAPI_VERSION 10 -#define PLAPI_NAME "ISmmPlugin" - -class ISmmAPI; - -class ISmmPlugin -{ -public: - virtual int GetApiVersion() { return PLAPI_VERSION; } - virtual ~ISmmPlugin() { } -public: - /** - * @brief Called on plugin load. - * NOTE - As of API 7, this is called as DLLInit() executes - after the parameters are known, but before - * the original GameDLL function is called. Therefore, you cannot hook it, but you don't need to - - * Load() is basically your hook. - * NOTE - As of API 7, you can override factories before the engine and gamedll exchange them. - * However, take care to note that if your plugin is unloaded, and the gamedll/engine have cached - * an interface you've passed, something will definitely crash. Be careful. - * - * @param id Internal id of plugin. Saved globally by PLUGIN_SAVEVARS() - * @param ismm External API for SourceMM. Saved globally by PLUGIN_SAVEVARS() - * @param list Contains a list of factories. Hook a factory call by setting one equal to your own function. - * @param late Set to true if your plugin was loaded late (not at server load). - * @param error Error message buffer - * @param maxlen Size of error message buffer - * @return True if successful, return false to reject the load. - */ - virtual bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlength, bool late) =0; - - /** - * @brief Called when your plugin is "queried". This is useful for rejecting a loaded - * state. For example, if your plugin wants to stop operating, it can simply return - * false and copy an error message. This will notify other plugins or MM:S of something - * bad that happened. NOTE - MM:S will not cache the return state, so if you return false, - * your plugin will not actually be paused or unloaded. This callback will be called when: - * - Another plugin requests it - * - Someone types "meta list", it will show up as "REFUSED" - * - When Metamod need to re-check the plugin's status - * - If the plugin does something like overload a factory, Metamod will make sure the Query() returns true - * before calling it. - * Also note that this query will only override Metamod when the plugin is running and not paused. - * - * @param error Buffer for error message. This can be NULL! - * @param maxlen Maximum length of error buffer. - * @return Status code - true for okay, false for badness. - */ - virtual bool QueryRunning(char *error, size_t maxlen) - { - return true; - } - - /** - * @brief Called on plugin unload. You can return false if you know your plugin - * is not capable of restoring critical states it modifies. - * - * @param error Error message buffer - * @param maxlen Size of error message buffer - * @return True on success, return false to request no unload. - */ - virtual bool Unload(char *error, size_t maxlen) - { - return true; - } - - /** @brief Called on plugin pause. - * - * @param error Error message buffer - * @param maxlen Size of error message buffer - * @return True on success, return false to request no pause. - */ - virtual bool Pause(char *error, size_t maxlen) - { - return true; - } - - /** @brief Called on plugin unpause. - * - * @param error Error message buffer - * @param maxlen Size of error message buffer - * @return True on success, return false to request no unpause. - */ - virtual bool Unpause(char *error, size_t maxlen) - { - return true; - } -public: - /** @brief Return author as string */ - virtual const char *GetAuthor() =0; - - /** @brief Return plugin name as string */ - virtual const char *GetName() =0; - - /** @brief Return a description as string */ - virtual const char *GetDescription() =0; - - /** @brief Return a URL as string */ - virtual const char *GetURL() =0; - - /** @brief Return quick license code as string */ - virtual const char *GetLicense() =0; - - /** @brief Return version as string */ - virtual const char *GetVersion() =0; - - /** @brief Return author as string */ - virtual const char *GetDate() =0; - - /** @brief Return author as string */ - virtual const char *GetLogTag() =0; -public: - /** - * @brief Called when all plugins have been loaded - API version 4 - * - * This is useful for knowing when it's safe to request things another plugin might have. - * NOTE for API 7 - This is called after DLLInit(). - */ - virtual void AllPluginsLoaded() - { - } -}; - -/** - * @brief Added in 1.1 so plugins could listen to specific events - */ -class IMetamodListener -{ -public: - virtual ~IMetamodListener() { } -public: - /** - * @brief Called when a plugin is loaded. - * - * @param id Id of the plugin. - */ - virtual void OnPluginLoad(PluginId id) { } - - /** - * @brief Called when a plugin is unloaded. - * - * @param id Id of the plugin. - */ - virtual void OnPluginUnload(PluginId id) { } - - /** - * @brief Called when a plugin is paused. - * - * @param id Id of the plugin. - */ - virtual void OnPluginPause(PluginId id) { } - - /** - * @brief Called when a plugin is unpaused. - * - * @param id Id of the plugin. - */ - virtual void OnPluginUnpause(PluginId id) { } - - /** - * @brief Called when the level is loaded (after GameInit, before ServerActivate). - * - * To override this, hook IServerGameDLL::LevelInit(). - * - * @param pMapName Name of the map. - * @param pMapEntities Lump string of the map entities, in KeyValue format. - * @param pOldLevel Unknown. - * @param pLandmarkName Unknown. - * @param loadGame Unknown. - * @param background Unknown. - */ - virtual void OnLevelInit(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background) { } - - /** - * @brief Called when the level is shut down. May be called more than once. - */ - virtual void OnLevelShutdown() { } - - /** - * @brief Called when engineFactory() is used through Metamod:Source's wrapper. - * This can be used to provide interfaces to other plugins or the GameDLL. - * - * If ret is passed, you should fill it with IFACE_OK or IFACE_FAILED. - * - * @param iface Interface string. - * @param ret Optional pointer to store return code. - * @return Generic pointer to the interface, or NULL if not found. - */ - virtual void *OnEngineQuery(const char *iface, int *ret) - { - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /** - * @brief Called when the physics factory is used through Metamod:Source's wrapper. - * This can be used to provide interfaces to other plugins. - * - * If ret is passed, you should fill it with IFACE_OK or IFACE_FAILED. - * - * @param iface Interface string. - * @param ret Optional pointer to store return code. - * @return Generic pointer to the interface, or NULL if not found. - */ - virtual void *OnPhysicsQuery(const char *iface, int *ret) - { - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /** - * @brief Called when the filesystem factory is used through Metamod:Source's wrapper. - * This can be used to provide interfaces to other plugins. - * - * If ret is passed, you should fill it with IFACE_OK or IFACE_FAILED. - * - * @param iface Interface string. - * @param ret Optional pointer to store return code. - * @return Generic pointer to the interface, or NULL if not found. - */ - virtual void *OnFileSystemQuery(const char *iface, int *ret) - { - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /** - * @brief Called when the server DLL's factory is used through Metamod:Source's wrapper. - * This can be used to provide interfaces to other plugins. - * - * If ret is passed, you should fill it with IFACE_OK or IFACE_FAILED. - * - * @param iface Interface string. - * @param ret Optional pointer to store return code. - * @return Generic pointer to the interface, or NULL if not found. - */ - virtual void *OnGameDLLQuery(const char *iface, int *ret) - { - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /** - * @brief Called when Metamod's own factory is invoked. - * This can be used to provide interfaces to other plugins. - * - * If ret is passed, you should fill it with IFACE_OK or IFACE_FAILED. - * - * @param iface Interface string. - * @param ret Optional pointer to store return code. - * @return Generic pointer to the interface, or NULL if not found. - */ - virtual void *OnMetamodQuery(const char *iface, int *ret) - { - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /** - * @brief Called when Metamod:Source acquires a valid IServerPluginCallbacks - * pointer to be used for hooking by plugins. - * - * This will only be called after a call to ISmmAPI::EnableVSPListener(). - * If called before GameInit, this callback will occur before LevelInit. - * Otherwise, it will be called on the first call after that. - * - * This callback is provided to all plugins regardless of which (or how many) - * called EnableVSPListener(), but only if at least one did in fact enable it. - * - * This callback is only available for plugins using API v1:5 (SourceMM 1.4+). - * - * @param iface Interface pointer. If NULL, then the VSP listening construct - * failed to initialize and is not available. - */ - virtual void OnVSPListening(IServerPluginCallbacks *iface) - { - } -}; - -#define PL_EXPOSURE CreateInterface -#define PL_EXPOSURE_C "CreateInterface" - -#define PLUGIN_EXPOSE(name, var) \ - ISmmAPI *g_SMAPI = NULL; \ - ISmmPlugin *g_PLAPI = NULL; \ - PluginId g_PLID = (PluginId)0; \ - SourceHook::ISourceHook *g_SHPtr = NULL; \ - SMM_API void *PL_EXPOSURE(const char *name, int *code) { \ - if (name && !strcmp(name, PLAPI_NAME)) { \ - return static_cast(&var); \ - } \ - return NULL; \ - } - -#define PLUGIN_GLOBALVARS() \ - extern SourceHook::ISourceHook *g_SHPtr; \ - extern ISmmAPI *g_SMAPI; \ - extern ISmmPlugin *g_PLAPI; \ - extern PluginId g_PLID; - -#define PLUGIN_SAVEVARS() \ - g_SMAPI = ismm; \ - g_SHPtr = static_cast(ismm->MetaFactory(MMIFACE_SOURCEHOOK, NULL, NULL)); \ - g_PLAPI = static_cast(this); \ - g_PLID = id; - -#define META_LOG g_SMAPI->LogMsg -#define META_REGCMD(name) g_SMAPI->RegisterConCmdBase(g_PLAPI, name##_command) -#define META_REGCVAR(var) g_SMAPI->RegisterConCmdBase(g_PLAPI, var) -#define META_UNREGCMD(name) g_SMAPI->UnregisterConCmdBase(g_PLAPI, name##_command) -#define META_UNREGCVAR(var) g_SMAPI->UnregisterConCmdBase(g_PLAPI, var) -#define META_CONPRINT g_SMAPI->ConPrint -#define META_CONPRINTF g_SMAPI->ConPrintf - -/* Probably should use this up above someday */ -#define CONCMD_VARNAME(name) name##_command - -#if !defined SMM_API -#if defined __WIN32__ || defined _WIN32 || defined WIN32 - #define SMM_API extern "C" __declspec(dllexport) -#elif defined __GNUC__ - #if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 1) - #define SMM_API extern "C" __attribute__ ((visibility("default"))) - #else - #define SMM_API extern "C" - #endif -#endif -#endif //!defined SMM_API - -/** - * @brief Macro for automatically getting a current or newer Valve interface. - * - * @param v_factory Factory method to use from ISmmAPI (such as engineFactory). - * @param v_var Variable name to store into. - * @param v_type Interface type (do not include the pointer/asterisk). - * @param v_name Interface name. - */ -#define GET_V_IFACE_CURRENT(v_factory, v_var, v_type, v_name) \ - v_var = (v_type *)ismm->VInterfaceMatch(ismm->v_factory(), v_name); \ - if (!v_var) \ - { \ - if (error && maxlen) \ - { \ - snprintf(error, maxlen, "Could not find interface: %s", v_name); \ - } \ - return false; \ - } - - /** - * @brief Same as GET_V_IFACE, except searches for any. - * - * @param v_factory Factory method to use from ISmmAPI (such as engineFactory). - * @param v_var Variable name to store into. - * @param v_type Interface type (do not include the pointer/asterisk). - * @param v_name Interface name. - */ -#define GET_V_IFACE_ANY(v_factory, v_var, v_type, v_name) \ - v_var = (v_type *)ismm->VInterfaceMatch(ismm->v_factory(), v_name, 0); \ - if (!v_var) \ - { \ - if (error && maxlen) \ - { \ - snprintf(error, maxlen, "Could not find interface: %s", v_name); \ - } \ - return false; \ - } - -#endif //_INCLUDE_ISMM_PLUGIN_H diff --git a/sourcemm/LICENSE.txt b/sourcemm/LICENSE.txt deleted file mode 100644 index 2618fa4..0000000 --- a/sourcemm/LICENSE.txt +++ /dev/null @@ -1,29 +0,0 @@ -The software is Copyright (C) 2004-2008, Metamod:Source Development Team. - -Metamod:Source is distributed under the "zLib/libpng" license, which is reproduced -below: - ------------------------------------------------------------------------------ - -This software is provided "as-is", without any express or implied warranty. -In no event will the authors be held liable for any damages arising from -the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software in - a product, an acknowledgment in the product documentation would be - appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. - ------------------------------------------------------------------------------ - -The zLib/libpng license has been approved by the "Open Source Initiative" -organization. diff --git a/sourcemm/Makefile b/sourcemm/Makefile deleted file mode 100644 index d97b384..0000000 --- a/sourcemm/Makefile +++ /dev/null @@ -1,72 +0,0 @@ -#(C)2004-2008 SourceMM Development Team -# Makefile written by David "BAILOPAN" Anderson - -HL2SDK = ../../hl2sdk -SMM_ROOT = .. -SRCDS = ~/srcds - -### EDIT BELOW FOR OTHER PROJECTS ### - -OPT_FLAGS = -O2 -funroll-loops -s -pipe -GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden -DEBUG_FLAGS = -g -ggdb3 -CPP = gcc-4.1 -BINARY = server_i486.so - -HL2PUB = $(HL2SDK)/public -HL2LIB = $(HL2SDK)/linux_sdk - -OBJECTS = oslink.cpp util.cpp concommands.cpp CSmmAPI.cpp \ - sourcemm.cpp CPlugin.cpp sourcehook.cpp vsp_listener.cpp - -LINK = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so -static-libgcc - -INCLUDE = -I. -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ - -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_ROOT) -I$(SMM_ROOT)/sourcehook - -ifeq "$(DEBUG)" "true" - BIN_DIR = Debug - CFLAGS = $(DEBUG_FLAGS) -else - BIN_DIR = Release - CFLAGS = $(OPT_FLAGS) -endif - -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) - -CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp \ - -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca \ - -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Wno-uninitialized -Werror -fPIC \ - -fno-exceptions -fno-rtti -msse -m32 - -ifeq "$(GCC_VERSION)" "4" - CFLAGS += $(GCC4_FLAGS) -endif - -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) - -$(BIN_DIR)/%.o: %.cpp - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< - -all: - mkdir -p $(BIN_DIR) - ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so - ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so - ln -sf $(SMM_ROOT)/sourcehook/sourcehook.cpp sourcehook.cpp - $(MAKE) sourcemm - rm -rf $(BINARY) - ln -sf $(BIN_DIR)/$(BINARY) $(BINARY) - -sourcemm: $(OBJ_LINUX) - $(CPP) $(INCLUDE) -m32 $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) - -debug: - $(MAKE) all DEBUG=true - -default: all - -clean: - rm -rf Release/*.o - rm -rf Release/$(BINARY) - rm -rf Debug/*.o - rm -rf Debug/$(BINARY) diff --git a/sourcemm/SourceMM.Doxyfile b/sourcemm/SourceMM.Doxyfile deleted file mode 100644 index b7f2df7..0000000 --- a/sourcemm/SourceMM.Doxyfile +++ /dev/null @@ -1,257 +0,0 @@ -# Doxyfile 1.4.2 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = SourceMM -PROJECT_NUMBER = 1.00 -OUTPUT_DIRECTORY = c:\temp\smm-dox -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = YES -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = "C:/Documents and Settings/dvander.WHITENIGHT/Desktop/code/" -STRIP_FROM_INC_PATH = -SHORT_NAMES = YES -JAVADOC_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = NO -INHERIT_DOCS = YES -DISTRIBUTE_GROUP_DOC = NO -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = YES -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = NO -CASE_SENSE_NAMES = NO -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 38 -SHOW_USED_FILES = YES -SHOW_DIRECTORIES = YES -FILE_VERSION_FILTER = -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = "C:/Documents and Settings/dvander.WHITENIGHT/Desktop/code/sourcemm" -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.d \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.idl \ - *.odl \ - *.cs \ - *.php \ - *.php3 \ - *.inc \ - *.m \ - *.mm \ - *.dox -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = test \ - sample_mm -EXAMPLE_PATH = -EXAMPLE_PATTERNS = * -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = NO -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -VERBATIM_HEADERS = NO -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = NO -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = NO -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 1024 -MAX_DOT_GRAPH_HEIGHT = 1024 -MAX_DOT_GRAPH_DEPTH = 1000 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = YES diff --git a/sourcemm/changelog.txt b/sourcemm/changelog.txt deleted file mode 100644 index 93e8a76..0000000 --- a/sourcemm/changelog.txt +++ /dev/null @@ -1,144 +0,0 @@ -2008/07/26 1.4.4: - - Fixed a bug where loading plugins built for MM:S 1.3 or older (API ver <= 9) - would cause a crash. - - Fixed a bug where loading plugins using VDF files caused Metamod:Source - to crash on The Ship. (bug 1523) - - Fixed a class of crashes caused by improper cvar removal handling. (bug 1416) - - Fixed a bug where VDF files were opened by MM:S even if the .vdf extension - was not at the very end of the filename. For example, "plugin.vdf.disabled" - would have been opened in previous versions. (bug 1534) - - Removed FCVAR_REPLICATED from MM:S convars. (bug 1479) - -2008/01/23 1.4.3: - - Metamod:Source can now be loaded via a .vdf instead of gameinfo.txt. - - Added new plugin loading mechanism via .vdf files in the metamod folder. - - Changed "meta list" output to look similar to Metamod:Source 1.6. - - Plugins which need a VSP pointer can now receive it on late load. - - Fixed a small memory leak when using recalls (RETURN_META_NEWPARAMS). - - Fixed a rare memory corruption bug in the CVector class. - -2007/06/26 1.4.2: - - Fixed a bug where unloading all plugins could crash if one plugin had child plugins. - -2007/05/16 1.4.1: - - The client version of the "meta" command should now work with games using the latest - Source beta (srcds0407). - - Fixed amb233 (VSP listener didn't work with Steam dedicated version). - - Fixed amb277 (failed to get user message list in Kreedz Climbing). - -2007/04/05 1.4.0: - - Added API functions for retrieving User Message info without potentially crashing. - - Added API functions for letting SourceMM plugins use Valve Server Plugin callbacks. - - Added plugin status to client version of "meta list" command. Previously, it did not - differentiate between running and paused plugins. - - An experimental automatic gameinfo.txt fixer is now available. - - Changed version numbering to include the build number (SVN revision). - - Fixed amb93 (improved mod path detection). - - Fixed various rare string inconsistencies. - -2006/11/29 1.3d: - - Updated Metamod:Source to recognize the latest Source Engine version (ServerGameDLL006) - -2006/09/06 1.3a: - - Fixed a building issue on Linux which caused unresolved symbol errors when trying to - load Metamod:Source on a game using an older set of engine libraries. This fix should - now allow Metamod:Source to run with The Ship on Linux. - -2006/08/16 1.3: - - Added SourceHook support for functions that return references. - - Added some extra information to the "meta game" command: Description and Interface. For - example, CS:S would display "Counter-Strike: Source" and "ServerGameDLL004." - - Added some extra functionality to ISmmPluginManager. - - Added compiling support for MSVC 8.0 (Visual Studio 2005) and GCC 4.x - - Added another API helper function for formatting and searching for interfaces. - - Updated project files and source tree to use the latest HL2SDK. - - Updated the sample plugins to be a bit cleaner and use newer API. - - Fixed bug where Metamod:Source could load the wrong GameDLL and/or load more than one - GameDLL. This issue occured in HL2 CTF, SourceForts, or any other mod that relied on - files from another mod directory. - - Fixed bug where ISmmAPI::MetaFactory() would return the wrong interface when trying to - retrieve ISmmPluginManager. - - Fixed bug where returning false in Load() after adding a Metamod event listener or - hooking a function could cause a crash instead of rejecting the plugin. - - Fixed bug where trying to load Metamod:Source a second time as a SourceMM or Valve - server plugin could cause a crash. - - Fixed a bug in FormatIface() that caused InterfaceSearch() to infinite loop. - -2006/06/14 1.2.3: - - Added SourceHook API for manual recalls: RETURN_META_(VALUE_)MNEWPARAMS - - Added support for ServerGameDLL005 (latest HL2DM update) - -2006/05/25 1.2.2: - - Added the ability to "alias" plugin names in metaplugins.ini. - - Added "meta alias" command. - - Added SourceHook API for manual callclasses. - - Added support for the latest Source engine (ServerGameDLL005). - - Added API for printing text in a client's console with ClientConPrintf. This does the - same thing as IVEngineServer::ClientPrintf except that it allows string formatting. - - Added client version of "meta" command in order to allow clients to view version - information and a list of loaded plugins. - - Fixed a bug causing old mods on newer engines to fail loading. - - Fixed issues with SourceHook's SH_CALL and reference parameters. - - Fixed a bug where the mm_pluginsfile cvar was being ignored. - - Fixed a memory leak when using ISmmAPI::InterfaceSearch. - -2006/02/15 1.2.1: - - Fixed bug where returning newparams in a post hook would cause infinite recursion. - - Fixed bug where "meta load" could load the same plugin multiple times. - - Fixed bug where unloading a plugin could crash internal hook states. - - Fixed bug where unhooking a single hook would clear the hook chain. - -2006/01/07 1.2: - - Added SourceHook API for modifying parameters in the hook chain. - - Added SourceHook API for declaring and hooking manual vtable hooks. - - Added better API for querying an interface factory. - - Added API for formatting an OS-independent path. - - Added Listen Server Launcher to the graphical installer. - - Fixed bug where failed plugins could crash the plugin list. - - NOTE: SourceHook changes may require plugins to be recompiled against - the new API. - -2005/12/06 1.1.2: - - Added interface overriding/sharing examples to sample plugins. - - Added API to help guessing at Valve interface versions. - - Fixed various memory leaks. - - Fixed memory corruption bug on vector copying. - - Fixed other various template bugs. - -2005/10/21 1.1.1: - - Fixed a bug where AllPluginsLoaded() was not called after DLLInit(). - -2005/10/21 1.1: - - Rewrote GameDLL loading code to be API version generic. - As such, SourceMM will now easily support new API releases without - an SDK release, such as the case with Day of Defeat:Source - - Added more flexibility to plugin control by supplying an event system. - - Removed dependency on libstdc++.so by supplying a small template library. - - SourceHook internal API is now interface-based, meaning that future - updates to the API will not break older plugins. This update, however, - breaks older plugins. - - SourceHook is now re-entrant. - - Added a basic automated installer (by Basic-Master). - - Fixed a bug where games with changing game names would not work. - - Fixed various bugs, including a cvarlist corruption bug on unloading plugins. - -2005/07/07 1.00-RC2: - - Added API for dealing with ConCommandBase registration (cvars/concmds). - This is to fix the fact that Valve API provides no way to unlist a cvar/cmd. - - Added two new commands - "meta cmds" and "meta cvars". - - Added API calls for correctly printing to the console such that rcon - will also receive messages that a plugin prints. - This problem was mentioned on hlcoders and Valve offered no reply. - - Added event hooking and cvar samples to sample_mm. - - Added new cvar, mm_pluginsfile, which defaults to "addons/metamod/metaplugins.ini". - - Fixed a bug where multiple vtable patches on the same hook were not re-patched when removed. - This caused a crash when two hooks were declared on one function, the first was removed, and - the original function was then called. - - Fixed "meta clear" not unloading all plugins. - - Fixed Metamod:Source loading plugins with a higher current API version. - - Fixed whitespace being parsed in metaplugins.ini. - - Fixed bug where SourceHook tried to patch already destroyed/unavailable memory. - - Bumped Plugin API version to 6. - -2005/05/06 1.00-RC1: - - Initial release. diff --git a/sourcemm/concommands.cpp b/sourcemm/concommands.cpp deleted file mode 100644 index 72aed0b..0000000 --- a/sourcemm/concommands.cpp +++ /dev/null @@ -1,803 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include -#include "convar_smm.h" -#include "CSmmAPI.h" -#include "concommands.h" -#include "CPlugin.h" -#include "sh_string.h" -#include "sh_list.h" -#include "vsp_listener.h" - -/** - * @brief Console Command Implementations - * @file concommands.cpp - */ - -SMConVarAccessor g_SMConVarAccessor; - -SMConVarAccessor::SMConVarAccessor() -{ - m_TopConCommandBase = NULL; -} - -bool SMConVarAccessor::RegisterConCommandBase(ConCommandBase *pCommand) -{ - /* Add the FCVAR_GAMEDLL flag - * => No crash on exit! - * UPDATE: Do _not_ add the FCVAR_GAMEDLL flag here, as it - * causes the command to be unusable on listen servers until you load a map - * We will set the FCVAR_GAMEDLL flag on all commands we have registered once we are being unloaded - */ - // pCommand->AddFlags(FCVAR_GAMEDLL); - m_RegisteredCommands.push_back(pCommand); - - pCommand->SetNext(NULL); - g_Engine.icvar->RegisterConCommandBase(pCommand); - - return true; -} - -bool SMConVarAccessor::Register(ConCommandBase *pCommand) -{ - /* Simple, don't mark as part of sourcemm! */ - pCommand->SetNext(NULL); - g_Engine.icvar->RegisterConCommandBase(pCommand); - - return true; -} - -void SMConVarAccessor::MarkCommandsAsGameDLL() -{ - for (SourceHook::List::iterator iter = m_RegisteredCommands.begin(); - iter != m_RegisteredCommands.end(); ++iter) - { - (*iter)->AddFlags(FCVAR_GAMEDLL); - } -} - -void SMConVarAccessor::Unregister(ConCommandBase *pCommand) -{ - ConCommandBase *pCur = NULL; - ConCommandBase *pPrev = NULL; - - if (!pCommand || !pCommand->IsRegistered()) - { - return; - } - - pCur = g_Engine.icvar->GetCommands(); - pCommand->SetRegistered(false); - - if (!m_TopConCommandBase || !pCur) - { - return; - } - - if (pCur == pCommand) - { - *m_TopConCommandBase = const_cast(pCommand->GetNext()); - pCommand->SetNext(NULL); - return; - } - - pPrev = pCur; - pCur = const_cast(pCur->GetNext()); - - while (pCur) - { - if (pCur == pCommand) - { - pPrev->SetNext(const_cast(pCommand->GetNext())); - pCommand->SetNext(NULL); - } - - pPrev = pCur; - pCur = const_cast(pCur->GetNext()); - } -} - -ConVar metamod_version("metamod_version", SOURCEMM_VERSION, FCVAR_SPONLY | FCVAR_NOTIFY, "Metamod:Source Version"); -#ifdef OS_WIN32 -ConVar mm_pluginsfile("mm_pluginsfile", "addons\\metamod\\metaplugins.ini", FCVAR_SPONLY, "Metamod:Source Plugins File"); -ConVar mm_basedir("mm_basedir", "addons\\metamod", FCVAR_SPONLY, "Metamod:Source base folder"); -#else -ConVar mm_pluginsfile("mm_pluginsfile", "addons/metamod/metaplugins.ini", FCVAR_SPONLY, "Metamod:Source Plugins File"); -ConVar mm_basedir("mm_basedir", "addons/metamod", FCVAR_SPONLY, "Metamod:Source base folder"); -#endif - -CON_COMMAND(meta, "Metamod:Source Menu") -{ - IVEngineServer *e = g_Engine.engine; - - int args = e->Cmd_Argc(); - - if (g_VspListener.IsRootLoadMethod() && !g_bLevelChanged) - { - CONMSG("WARNING: You must change the map to activate Metamod:Source.\n"); - return; - } - - if (args >= 2) - { - const char *command = e->Cmd_Argv(1); - if (strcmp(command, "credits") == 0) - { - CONMSG("Metamod:Source was developed by:\n"); - CONMSG(" SourceHook: Pavol \"PM OnoTo\" Marko\n"); - CONMSG(" GameDLL/Plugins: David \"BAILOPAN\" Anderson\n"); - CONMSG(" GameDLL: Scott \"Damaged Soul\" Ehlert\n"); - CONMSG("For more information, see the official website\n"); - CONMSG("http://www.metamodsource.net/\n"); - - return; - } else if (strcmp(command, "version") == 0) { - CONMSG("Metamod:Source version %s\n", SOURCEMM_VERSION); - if (g_VspListener.IsRootLoadMethod()) - { - CONMSG("Loaded As: Valve Server Plugin\n"); - } - else - { - CONMSG("Loaded As: GameDLL (gameinfo.txt)\n"); - } - CONMSG("Compiled on: %s\n", SOURCEMM_DATE); - CONMSG("Plugin interface version: %d:%d\n", PLAPI_VERSION, PLAPI_MIN_VERSION); - CONMSG("SourceHook version: %d:%d\n", g_SourceHook.GetIfaceVersion(), g_SourceHook.GetImplVersion()); - CONMSG("http://www.metamodsource.net/\n"); - - return; - } else if (strcmp(command, "game") == 0) { - CONMSG("GameDLL Information\n"); - CONMSG(" Description: %s\n", g_GameDll.pGameDLL->GetGameDescription()); - CONMSG(" Mod Path: %s\n", g_ModPath.c_str()); - CONMSG(" DLL Path: %s\n", g_BinPath.c_str()); - CONMSG(" Interface: ServerGameDLL%03d\n", g_GameDllVersion); - - // Display user messages - if (g_SmmAPI.MsgCacheSuccessful()) - { - const char *msgname; - int msgsize; - int msgcount = g_SmmAPI.GetUserMessageCount(); - - if (msgcount > 0) - { - CONMSG(" User Messages: %-32.31s %-5s %-5s\n", "Name", "Index", "Size"); - - for (int i = 0; i < msgcount; i++) - { - msgname = g_SmmAPI.GetUserMessage(i, &msgsize); - - CONMSG(" %-32.31s %-5d %-5d\n", msgname, i, msgsize); - } - - CONMSG(" %d user message%s in total\n", msgcount, (msgcount > 1) ? "s" : ""); - } else { - CONMSG(" User Messages: None\n"); - } - } else { - CONMSG(" User Messages: Failed to get list of user messages\n"); - } - - return; - } else if (strcmp(command, "refresh") == 0) { - char full_path[255]; - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), GetPluginsFile()); - - LoadPluginsFromFile(full_path); - - return; - } else if (strcmp(command, "list") == 0) { - size_t len; - PluginIter i; - char buffer[255]; - ISmmPlugin *plapi; - const char *plname; - SourceMM::CPluginManager::CPlugin *pl; - unsigned int plnum = g_PluginMngr.GetPluginCount(); - -#define IS_STR_FILLED(var) (var != NULL && var[0] != '\0') - - if (!plnum) - { - CONMSG("No plugins loaded.\n"); - return; - } - else - { - CONMSG("Listing %d plugin%s:\n", plnum, (plnum > 1) ? "s" : ""); - } - - for (i=g_PluginMngr._begin(); i!=g_PluginMngr._end(); i++) - { - pl = (*i); - if (!pl) - { - break; - } - - len = 0; - - if (pl->m_Status != Pl_Running) - { - len += UTIL_Format(buffer, sizeof(buffer), " [%02d] <%s>", pl->m_Id, g_PluginMngr.GetStatusText(pl)); - } - else - { - len += UTIL_Format(buffer, sizeof(buffer), " [%02d]", pl->m_Id); - } - - if ((plapi = pl->m_API)) - { - plname = IS_STR_FILLED(plapi->GetName()) ? plapi->GetName() : pl->m_File.c_str(); - len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " %s", plname); - - if (IS_STR_FILLED(plapi->GetVersion())) - { - len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " (%s)", plapi->GetVersion()); - } - if (IS_STR_FILLED(plapi->GetAuthor())) - { - UTIL_Format(&buffer[len], sizeof(buffer)-len, " by %s", plapi->GetAuthor()); - } - } - - CONMSG("%s\n", buffer); - } - - return; - } else if (strcmp(command, "cmds") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - SourceMM::CPluginManager::CPlugin *pl = g_PluginMngr.FindById(id); - - if (!pl) - { - CONMSG("Plugin %d not found.\n", id); - return; - } - - if (!pl->m_API) - { - CONMSG("Plugin %d is not loaded.\n", id); - } else { - CONMSG("Console commands for %s:\n", pl->m_API->GetName()); - SourceHook::List::iterator ci; - size_t count = 0; - - for (ci=pl->m_Cmds.begin(); ci!=pl->m_Cmds.end(); ci++) - { - count++; - CONMSG(" [%5d] %-s\n", count, (*ci)->GetName()); - } - } - } else { - CONMSG("Usage: meta cmds \n"); - } - - return; - } else if (strcmp(command, "cvars") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - SourceMM::CPluginManager::CPlugin *pl = g_PluginMngr.FindById(id); - - if (!pl) - { - CONMSG("Plugin %d not found.\n", id); - return; - } - - if (!pl->m_API) - { - CONMSG("Plugin %d is not loaded.\n", id); - } else { - CONMSG("Registered cvars for %s:\n", pl->m_API->GetName()); - SourceHook::List::iterator ci; - size_t count = 0; - - for (ci=pl->m_Cvars.begin(); ci!=pl->m_Cvars.end(); ci++) - { - count++; - CONMSG(" [%5d] %-s\n", count, (*ci)->GetName()); - } - } - } else { - CONMSG("Usage: meta cvars \n"); - } - - return; - } else if (strcmp(command, "info") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - SourceMM::CPluginManager::CPlugin *pl = g_PluginMngr.FindById(id); - if (!pl) - { - CONMSG("Plugin %d not found.\n", id); - return; - } - - if (!pl->m_API) - { - CONMSG("Plugin %d is not loaded.\n", id); - } else { - if (pl->m_Status == Pl_Paused) - { - CONMSG("Plugin %d is paused.\n", id); - } else if (pl->m_Status == Pl_Running) { - char run_msg[255]; - bool run = false; - if (pl->m_API && pl->m_API->QueryRunning(run_msg, sizeof(run_msg)-1)) - run = true; - if (run) - { - CONMSG("Plugin %d is running.\n", id); - } else { - CONMSG("Plugin %d is stopped: %s\n", id, run_msg); - } - } - CONMSG(" Name: \"%s\" by %s\n", pl->m_API->GetName(), pl->m_API->GetAuthor()); - CONMSG(" Version: %s\n", pl->m_API->GetVersion()); - CONMSG(" Description: %s\n", pl->m_API->GetDescription()); - CONMSG(" License: %s\n", pl->m_API->GetLicense()); - CONMSG(" URL: %s\n", pl->m_API->GetURL()); - CONMSG(" Details: API %03d, Date: %s\n", pl->m_API->GetApiVersion(), pl->m_API->GetDate()); - } - CONMSG("File: %s\n\n", pl->m_File.c_str()); - - return; - } else { - CONMSG("Usage: meta info \n"); - - return; - } - } else if (strcmp(command, "pause") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - - char error[255]; - - if (!g_PluginMngr.Pause(id, error, sizeof(error))) - { - CONMSG("Pause failed: %s\n", error); - return; - } - - CONMSG("Plugin %d has been paused.\n", id); - - return; - } else { - CONMSG("Usage: meta pause \n"); - - return; - } - } else if (strcmp(command, "unpause") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - char error[255]; - - if (!g_PluginMngr.Unpause(id, error, sizeof(error))) - { - CONMSG("Unpause failed: %s\n", error); - return; - } - - CONMSG("Plugin %d has been unpaused.\n", id); - - return; - } else { - CONMSG("Usage: meta unpause \n"); - - return; - } - } else if (strcmp(command, "load") == 0) { - if (args >= 3) - { - const char *file = e->Cmd_Argv(2); - char full_path[255]; - - const char *alias = g_PluginMngr.LookupAlias(file); - if (alias) - { - file = alias; - } - - if (file[0] == '/' || strcmp(&(file[1]), ":\\") == 0) - { - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s", file); - } else { - const char *ext = UTIL_GetExtension(file); -#if defined WIN32 || defined _WIN32 - ext = ext ? "" : ".dll"; -#else - ext = ext ? "" : "_i486.so"; -#endif - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s%s", g_ModPath.c_str(), file, ext); - } - - char error[255]={0}; - bool already; - SourceMM::CPluginManager::CPlugin *pl; - - PluginId id = g_PluginMngr.Load(full_path, Pl_Console, already, error, sizeof(error)); - pl = g_PluginMngr.FindById(id); - if (!pl || id < Pl_MinId || (pl->m_Status < Pl_Paused)) - { - CONMSG("Failed to load plugin %s (%s).\n", file, error); - return; - } - - if (!already) - { - CONMSG("Plugin \"%s\" loaded with id %d.\n", pl->m_API->GetName(), pl->m_Id); - } else { - CONMSG("Plugin \"%s\" is already loaded as %d.\n", pl->m_API->GetName(), pl->m_Id); - } - - return; - } else { - CONMSG("Usage: meta load \n"); - - return; - } - } else if ( (strcmp(command, "alias") == 0) || - (strcmp(command, "aliases") == 0) ) { - if (args >= 4) - { - const char *alias = e->Cmd_Argv(2); - const char *value = e->Cmd_Argv(3); - - g_PluginMngr.SetAlias(alias, value); - if (value[0] == '\0') - { - CONMSG("Deleted alias: %s.\n", alias); - } else { - CONMSG("Set alias \"%s\" to: %s\n", alias, value); - } - } else if (args >= 3) { - const char *alias = e->Cmd_Argv(2); - const char *value = g_PluginMngr.LookupAlias(alias); - if (value) - { - CONMSG("Alias \"%s\" is set to: %s\n", alias, value); - } else { - CONMSG("Alias \"%s\" was not found.\n", alias); - } - } else { - SourceHook::List::iterator iter, end; - SourceMM::CNameAlias *p; - - iter = g_PluginMngr._alias_begin(); - end = g_PluginMngr._alias_end(); - size_t total = 0; - if (iter != end) - { - CONMSG("%-10.9s %s\n", "Alias", "File"); - CONMSG(" --- \n"); - for (; iter!=end; iter++) - { - p = (*iter); - CONMSG("%-10.9s %s\n", p->alias.c_str(), p->value.c_str()); - total++; - } - CONMSG(" --- \n"); - CONMSG("%d aliases total.\n", total); - } else { - CONMSG("No aliases found.\n"); - } - } - return; - } else if (strcmp(command, "unload") == 0) { - if (args >= 3) - { - const char *file = e->Cmd_Argv(2); - int id = atoi(file); - char error[255]={0}; - - if (id == 0 && isalpha(file[0])) - { - char full_path[255]; - const char *alias = g_PluginMngr.LookupAlias(file); - - if (alias) - { - file = alias; - } - - /* first check if it's a known filename */ - if (file[0] == '/' || strcmp(&(file[1]), ":\\") == 0) - { - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s", file); - } else { - const char *ext = UTIL_GetExtension(file); -#if defined WIN32 || defined _WIN32 - ext = ext ? "" : ".dll"; -#else - ext = ext ? "" : "_i486.so"; -#endif - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s%s", g_ModPath.c_str(), file, ext); - } - - SourceHook::List::iterator iter, end; - SourceMM::CPluginManager::CPlugin *pl; - iter = g_PluginMngr._begin(); - end = g_PluginMngr._end(); - for (; iter!=end; iter++) - { - pl = (*iter); - if (strcmp(pl->m_File.c_str(), full_path) == 0) - { - id = pl->m_Id; - break; - } - } - if (id == 0) - { - CONMSG("Plugin \"%s\" not found.\n", full_path); - return; - } - } - - if (!g_PluginMngr.Unload(id, false, error, sizeof(error))) - { - CONMSG("Unload failed: %s\n", error); - return; - } - - CONMSG("Plugin %d unloaded.\n", id); - } else { - CONMSG("Usage: meta unload \n"); - } - return; - } else if (strcmp(command, "force_unload") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - char error[255]={0}; - - if (!g_PluginMngr.Unload(id, false, error, sizeof(error))) - { - CONMSG("Force unload failed: %s\n", error); - return; - } - - CONMSG("Plugin %d force unloaded.\n", id); - - return; - } else { - CONMSG("Usage: meta force_unload \n"); - - return; - } - } else if (strcmp(command, "clear") == 0) { - if (!g_PluginMngr.UnloadAll()) - { - CONMSG("One or more plugins resisted removal (cleaned anyway).\n"); - return; - } - - CONMSG("All plugins unloaded.\n"); - - return; - } else if (strcmp(command, "retry") == 0) { - if (args >= 3) - { - int id = atoi(e->Cmd_Argv(2)); - char error[255]; - - if (!g_PluginMngr.Retry(id, error, sizeof(error))) - { - CONMSG("Error reloading plugin: %s\n", error); - return; - } - - CONMSG("Plugin %d successfully reloaded.\n", id); - - return; - } else { - CONMSG("Usage: meta retry \n"); - - return; - } - } - } - - CONMSG("Metamod:Source Menu\n"); - CONMSG("usage: meta [arguments]\n"); - CONMSG(" alias - List or set an alias\n"); - CONMSG(" clear - Unload all plugins forcefully\n"); - CONMSG(" cmds - Show plugin commands\n"); - CONMSG(" cvars - Show plugin cvars\n"); - CONMSG(" credits - About Metamod:Source\n"); - CONMSG(" force_unload - Forcefully unload a plugin\n"); - CONMSG(" game - Information about GameDLL\n"); - CONMSG(" info - Information about a plugin\n"); - CONMSG(" list - List plugins\n"); - CONMSG(" load - Load a plugin\n"); - CONMSG(" pause - Pause a running plugin\n"); - CONMSG(" refresh - Reparse plugins file\n"); - CONMSG(" retry - Attempt to reload a plugin\n"); - CONMSG(" unload - Unload a loaded plugin\n"); - CONMSG(" unpause - Unpause a paused plugin\n"); - CONMSG(" version - Version information\n"); -} - -void ClientCommand_handler(edict_t *client) -{ - IVEngineServer *e = g_Engine.engine; - const char *cmd = e->Cmd_Argv(0); - - if (strcmp(cmd, "meta") == 0) - { - int args = e->Cmd_Argc(); - if (args == 2) - { - const char *subcmd = e->Cmd_Argv(1); - - if (strcmp(subcmd, "credits") == 0) - { - CLIENT_CONMSG(client, "Metamod:Source was developed by:\n"); - CLIENT_CONMSG(client, " SourceHook: Pavol \"PM OnoTo\" Marko\n"); - CLIENT_CONMSG(client, " Core: David \"BAILOPAN\" Anderson\n"); - CLIENT_CONMSG(client, " Core: Scott \"Damaged Soul\" Ehlert\n"); - CLIENT_CONMSG(client, "For more information, see the official website\n"); - CLIENT_CONMSG(client, "http://www.metamodsource.net/\n"); - - RETURN_META(MRES_SUPERCEDE); - } else if(strcmp(subcmd, "version") == 0) { - CLIENT_CONMSG(client, "Metamod:Source version %s\n", SOURCEMM_VERSION); - CLIENT_CONMSG(client, "Compiled on: %s\n", SOURCEMM_DATE); - CLIENT_CONMSG(client, "Plugin interface version: %d:%d\n", PLAPI_VERSION, PLAPI_MIN_VERSION); - CLIENT_CONMSG(client, "SourceHook version: %d:%d\n", g_SourceHook.GetIfaceVersion(), g_SourceHook.GetImplVersion()); - CLIENT_CONMSG(client, "http://www.metamodsource.net/\n"); - - RETURN_META(MRES_SUPERCEDE); - } else if(strcmp(subcmd, "list") == 0) { - SourceMM::CPluginManager::CPlugin *pl; - ISmmPlugin *plapi; - const char *plname; - PluginIter i; - char buffer[256]; - int len = 0; - int plnum = 0; - - for (i = g_PluginMngr._begin(); i != g_PluginMngr._end(); i++, len=0) - { - pl = (*i); - if (pl && pl->m_Status == Pl_Running) - { - plapi = pl->m_API; - if (!plapi || !plapi->QueryRunning(NULL, 0)) - { - continue; - } - plnum++; - - len += UTIL_Format(buffer, sizeof(buffer), " [%02d]", plnum); - - plname = IS_STR_FILLED(plapi->GetName()) ? plapi->GetName() : pl->m_File.c_str(); - len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " %s", plname); - - if (IS_STR_FILLED(plapi->GetVersion())) - { - len += UTIL_Format(&buffer[len], sizeof(buffer)-len, " (%s)", plapi->GetVersion()); - } - if (IS_STR_FILLED(plapi->GetAuthor())) - { - UTIL_Format(&buffer[len], sizeof(buffer)-len, " by %s", plapi->GetAuthor()); - } - - CLIENT_CONMSG(client, "%s\n", buffer); - } - } - - if (!plnum) - { - CLIENT_CONMSG(client, "No active plugins loaded.\n"); - } - - RETURN_META(MRES_SUPERCEDE); - } - } - - CLIENT_CONMSG(client, "Metamod:Source Menu\n"); - CLIENT_CONMSG(client, "usage: meta \n"); - CLIENT_CONMSG(client, " credits - About Metamod:Source\n"); - CLIENT_CONMSG(client, " list - List plugins\n"); - CLIENT_CONMSG(client, " version - Version information\n"); - - RETURN_META(MRES_SUPERCEDE); - } - - RETURN_META(MRES_IGNORED); -} - -void SMConVarAccessor::UnloadMetamodCommands() -{ - Unregister(&metamod_version); - Unregister(&mm_pluginsfile); - Unregister(&mm_basedir); - Unregister(&meta_command); -} - -const char *GetPluginsFile() -{ - return mm_pluginsfile.GetString(); -} - -const char *GetMetamodBaseDir() -{ - return mm_basedir.GetString(); -} - -/* Signature for ICvar::GetCommands() in vstdlib for Win32 and Linux. - * - * 20226EE0 A1 50 5C 5A 20 mov eax,dword ptr ds:[205A5C50h] <-- What we want - * 20226EE5 C3 ret - */ -#define CMDLIST_SIG "\xA1\x2A\x2A\x2A\x2A\xC3" -#define CMDLIST_SIGLEN 6 - -/* Linux symbol name of ConCommandBase list in vstdlib */ -#define CMDLIST_SYMBOL "_ZN14ConCommandBase18s_pConCommandBasesE" - -/* This function retrieves the address of the var that holds the top of the ConCommandBase list. - * Having this allows us to change the beginning of this list with ease. - * - * This craziness eliminates the need for the eternal command/cvar used previously which - * could have caused a crash as a result of registering commands/cvars more than once. - */ -bool SMConVarAccessor::InitConCommandBaseList() -{ - char *vfunc = UTIL_GetOrigFunction(&ICvar::GetCommands, g_Engine.icvar, g_CvarPatch); - - if (!vfunc) - { - return false; - } - -#ifdef OS_WIN32 - if (UTIL_VerifySignature(vfunc, CMDLIST_SIG, CMDLIST_SIGLEN)) - { - /* Skip past 0xA1 and get addr of ConCommandBase list var */ - m_TopConCommandBase = *reinterpret_cast(vfunc + 1); - return true; - } -#elif defined OS_LINUX - /* Try dlsym first */ - char path[PATH_SIZE]; - if (GetFileOfAddress((void *)g_Engine.icvar, path, sizeof(path))) - { - void *handle = dlopen(path, RTLD_NOW); - if (handle) - { - m_TopConCommandBase = reinterpret_cast(dlsym(handle, CMDLIST_SYMBOL)); - dlclose(handle); - return true; - } - } - - /* If dlsym failed, then verify signature of function */ - if (!m_TopConCommandBase && UTIL_VerifySignature(vfunc, CMDLIST_SIG, CMDLIST_SIGLEN)) - { - /* Skip past 0xA1 and get addr of ConCommandBase list var */ - m_TopConCommandBase = *reinterpret_cast(vfunc + 1); - return true; - } -#endif - - return false; -} diff --git a/sourcemm/concommands.h b/sourcemm/concommands.h deleted file mode 100644 index 0ecf594..0000000 --- a/sourcemm/concommands.h +++ /dev/null @@ -1,44 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_CONCOMMANDS_H -#define _INCLUDE_CONCOMMANDS_H - -/** - * @brief Header for console commands - * @file concommands.h - */ - -#include "convar_smm.h" -#include "sourcemm.h" -#include "sh_list.h" - -class SMConVarAccessor : public IConCommandBaseAccessor -{ - SourceHook::List m_RegisteredCommands; - ConCommandBase **m_TopConCommandBase; -public: - SMConVarAccessor(); - virtual bool RegisterConCommandBase(ConCommandBase *pCommand); - bool Register(ConCommandBase *pCommand); - void MarkCommandsAsGameDLL(); - bool InitConCommandBaseList(); - void Unregister(ConCommandBase *pCommand); - void UnloadMetamodCommands(); -}; - -void ClientCommand_handler(edict_t *client); - -const char *GetPluginsFile(); -const char *GetMetamodBaseDir(); - -extern SMConVarAccessor g_SMConVarAccessor; - -#endif //_INCLUDE_CONCOMMANDS_H diff --git a/sourcemm/convar_smm.h b/sourcemm/convar_smm.h deleted file mode 100644 index dd4d9e3..0000000 --- a/sourcemm/convar_smm.h +++ /dev/null @@ -1,528 +0,0 @@ -//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// -// -// Purpose: -// -// $Workfile: $ -// $Date$ -// -//----------------------------------------------------------------------------- -// $NoKeywords: $ -//=============================================================================// - -#ifndef CONVAR_H -#define CONVAR_H -#if _WIN32 -#pragma once -#endif - -#include "tier0/dbg.h" - -#ifdef _WIN32 -#define FORCEINLINE_CVAR FORCEINLINE -#elif _LINUX -#define FORCEINLINE_CVAR __inline__ FORCEINLINE -#else -#error "implement me" -#endif - -// The default, no flags at all -#define FCVAR_NONE 0 - -// Command to ConVars and ConCommands -// ConVar Systems -#define FCVAR_UNREGISTERED (1<<0) // If this is set, don't add to linked list, etc. -#define FCVAR_LAUNCHER (1<<1) // defined by launcher -#define FCVAR_GAMEDLL (1<<2) // defined by the game DLL -#define FCVAR_CLIENTDLL (1<<3) // defined by the client DLL -#define FCVAR_MATERIAL_SYSTEM (1<<4) // Defined by the material system. -#define FCVAR_DATACACHE (1<<19) // Defined by the datacache system. -#define FCVAR_STUDIORENDER (1<<15) // Defined by the studiorender system. -#define FCVAR_FILESYSTEM (1<<21) // Defined by the file system. -#define FCVAR_PLUGIN (1<<18) // Defined by a 3rd party plugin. -#define FCVAR_TOOLSYSTEM (1<<20) // Defined by an IToolSystem library -#define FCVAR_SOUNDSYSTEM (1<<23) // Defined by the soundsystem library -#define FCVAR_INPUTSYSTEM (1<<25) // Defined by the inputsystem dll -#define FCVAR_NETWORKSYSTEM (1<<26) // Defined by the network system -// NOTE!! if you add a cvar system, add it here too!!!! -// the engine lacks a cvar flag, but needs it for xbox -// an engine cvar is thus a cvar not marked with any other system -#define FCVAR_NON_ENGINE ((FCVAR_LAUNCHER|FCVAR_GAMEDLL|FCVAR_CLIENTDLL|FCVAR_MATERIAL_SYSTEM|FCVAR_DATACACHE|FCVAR_STUDIORENDER|FCVAR_FILESYSTEM|FCVAR_PLUGIN|FCVAR_TOOLSYSTEM|FCVAR_SOUNDSYSTEM|FCVAR_INPUTSYSTEM|FCVAR_NETWORKSYSTEM)) - -// ConVar only -#define FCVAR_PROTECTED (1<<5) // It's a server cvar, but we don't send the data since it's a password, etc. Sends 1 if it's not bland/zero, 0 otherwise as value -#define FCVAR_SPONLY (1<<6) // This cvar cannot be changed by clients connected to a multiplayer server. -#define FCVAR_ARCHIVE (1<<7) // set to cause it to be saved to vars.rc -#define FCVAR_NOTIFY (1<<8) // notifies players when changed -#define FCVAR_USERINFO (1<<9) // changes the client's info string -#define FCVAR_CHEAT (1<<14) // Only useable in singleplayer / debug / multiplayer & sv_cheats - -#define FCVAR_PRINTABLEONLY (1<<10) // This cvar's string cannot contain unprintable characters ( e.g., used for player name etc ). -#define FCVAR_UNLOGGED (1<<11) // If this is a FCVAR_SERVER, don't log changes to the log file / console if we are creating a log -#define FCVAR_NEVER_AS_STRING (1<<12) // never try to print that cvar - -// It's a ConVar that's shared between the client and the server. -// At signon, the values of all such ConVars are sent from the server to the client (skipped for local -// client, of course ) -// If a change is requested it must come from the console (i.e., no remote client changes) -// If a value is changed while a server is active, it's replicated to all connected clients -#define FCVAR_REPLICATED (1<<13) // server setting enforced on clients, TODO rename to FCAR_SERVER at some time -#define FCVAR_DEMO (1<<16) // record this cvar when starting a demo file -#define FCVAR_DONTRECORD (1<<17) // don't record these command in demofiles - -#define FCVAR_NOT_CONNECTED (1<<22) // cvar cannot be changed by a client that is connected to a server - -#define FCVAR_ARCHIVE_XBOX (1<<24) // cvar written to config.cfg on the Xbox - - -// #define FCVAR_AVAILABLE (1<<27) -// #define FCVAR_AVAILABLE (1<<28) -// #define FCVAR_AVAILABLE (1<<29) -// #define FCVAR_AVAILABLE (1<<30) -// #define FCVAR_AVAILABLE (1<<31) - - -class ConVar; -class ConCommand; -class ConCommandBase; - -// Any executable that wants to use ConVars need to implement one of -// these to hook up access to console variables. -class IConCommandBaseAccessor -{ -public: - // Flags is a combination of FCVAR flags in cvar.h. - // hOut is filled in with a handle to the variable. - virtual bool RegisterConCommandBase( ConCommandBase *pVar )=0; -}; - - -// You don't have to instantiate one of these, just call its -// OneTimeInit function when your executable is initializing. -class ConCommandBaseMgr -{ -public: - // Call this ONCE when the executable starts up. - static void OneTimeInit( IConCommandBaseAccessor *pAccessor ); -#ifdef _XBOX - static bool Fixup( ConCommandBase* pConCommandBase ); -#ifndef _RETAIL - static void PublishCommands( bool bForce ); -#endif -#endif -}; - -// Called when a ConVar changes value -typedef void ( *FnChangeCallback )( ConVar *var, char const *pOldString ); - -// Called when a ConCommand needs to execute -typedef void ( *FnCommandCallback )( void ); - -#define COMMAND_COMPLETION_MAXITEMS 64 -#define COMMAND_COMPLETION_ITEM_LENGTH 64 - -// Returns 0 to COMMAND_COMPLETION_MAXITEMS worth of completion strings -typedef int ( *FnCommandCompletionCallback )( char const *partial, char commands[ COMMAND_COMPLETION_MAXITEMS ][ COMMAND_COMPLETION_ITEM_LENGTH ] ); - -//----------------------------------------------------------------------------- -// Purpose: The base console invoked command/cvar interface -//----------------------------------------------------------------------------- -class ConCommandBase -{ - friend class ConCommandBaseMgr; - friend class CCvar; - friend class ConVar; - friend class ConCommand; - -public: - ConCommandBase( void ); - ConCommandBase( char const *pName, char const *pHelpString = 0, - int flags = 0 ); - - virtual ~ConCommandBase( void ); - - virtual bool IsCommand( void ) const; - - // Check flag - virtual bool IsBitSet( int flag ) const; - // Set flag - virtual void AddFlags( int flags ); - - // Return name of cvar - virtual char const *GetName( void ) const; - - // Return help text for cvar - virtual char const *GetHelpText( void ) const; - - // Deal with next pointer - const ConCommandBase *GetNext( void ) const; - void SetNext( ConCommandBase *next ); - - virtual bool IsRegistered( void ) const; - - // Global methods - static ConCommandBase const *GetCommands( void ); - static void AddToList( ConCommandBase *var ); - static void RemoveFlaggedCommands( int flag ); - static void RevertFlaggedCvars( int flag ); - static ConCommandBase const *FindCommand( char const *name ); - -protected: - virtual void Create( char const *pName, char const *pHelpString = 0, - int flags = 0 ); - - // Used internally by OneTimeInit to initialize. - virtual void Init(); - - // Internal copy routine ( uses new operator from correct module ) - char *CopyString( char const *from ); - - // Next ConVar in chain - ConCommandBase *m_pNext; - -private: - // Has the cvar been added to the global list? - bool m_bRegistered; - - // Static data - char const *m_pszName; - char const *m_pszHelpString; - - // ConVar flags - int m_nFlags; - -protected: - - // ConVars add themselves to this list for the executable. Then ConVarMgr::Init() runs through - // all the console variables and registers them. - static ConCommandBase *s_pConCommandBases; - - // ConVars in this executable use this 'global' to access values. - static IConCommandBaseAccessor *s_pAccessor; -public: - inline void SetRegistered(bool registered) - { - m_bRegistered = registered; - } -}; - -//----------------------------------------------------------------------------- -// Purpose: The console invoked command -//----------------------------------------------------------------------------- -class ConCommand : public ConCommandBase -{ -friend class ConCommandBaseMgr; -friend class CCvar; -#ifdef _STATIC_LINKED -friend class G_ConCommand; -friend class C_ConCommand; -friend class M_ConCommand; -friend class S_ConCommand; -friend class D_ConCommand; -#endif - -public: - typedef ConCommandBase BaseClass; - - ConCommand( void ); - ConCommand( char const *pName, FnCommandCallback callback, - char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ); - - virtual ~ConCommand( void ); - - virtual bool IsCommand( void ) const; - - virtual int AutoCompleteSuggest( char const *partial, char commands[ COMMAND_COMPLETION_MAXITEMS ][ COMMAND_COMPLETION_ITEM_LENGTH ] ); - - virtual bool CanAutoComplete( void ); - - // Invoke the function - virtual void Dispatch( void ); -private: - virtual void Create( char const *pName, FnCommandCallback callback, - char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ); - - // Call this function when executing the command - FnCommandCallback m_fnCommandCallback; - - FnCommandCompletionCallback m_fnCompletionCallback; - bool m_bHasCompletionCallback; -public: - inline FnCommandCallback GetCallback() { return m_fnCommandCallback; } -}; - -//----------------------------------------------------------------------------- -// Purpose: A console variable -//----------------------------------------------------------------------------- -class ConVar : public ConCommandBase -{ -friend class ConCommandBaseMgr; -friend class CCvar; -friend class CDefaultCvar; -#ifdef _STATIC_LINKED -friend class G_ConVar; -friend class C_ConVar; -friend class M_ConVar; -friend class S_ConVar; -friend class D_ConVar; -#endif - -public: - typedef ConCommandBase BaseClass; - - ConVar( char const *pName, char const *pDefaultValue, int flags = 0); - - ConVar( char const *pName, char const *pDefaultValue, int flags, - char const *pHelpString ); - ConVar( char const *pName, char const *pDefaultValue, int flags, - char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ); - ConVar( char const *pName, char const *pDefaultValue, int flags, - char const *pHelpString, FnChangeCallback callback ); - ConVar( char const *pName, char const *pDefaultValue, int flags, - char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, - FnChangeCallback callback ); - - virtual ~ConVar( void ); - - virtual bool IsBitSet( int flag ) const; - virtual char const* GetHelpText( void ) const; - virtual bool IsRegistered( void ) const; - virtual char const *GetName( void ) const; - virtual void AddFlags( int flags ); - virtual bool IsCommand( void ) const; - - // Install a change callback (there shouldn't already be one....) - void InstallChangeCallback( FnChangeCallback callback ); - - // Retrieve value - FORCEINLINE_CVAR float GetFloat( void ) const; - FORCEINLINE_CVAR int GetInt( void ) const; - FORCEINLINE_CVAR bool GetBool() const { return !!GetInt(); } - FORCEINLINE_CVAR char const *GetString( void ) const; - - // Any function that allocates/frees memory needs to be virtual or else you'll have crashes - // from alloc/free across dll/exe boundaries. - - // These just call into the IConCommandBaseAccessor to check flags and set the var (which ends up calling InternalSetValue). - virtual void SetValue( char const *value ); - virtual void SetValue( float value ); - virtual void SetValue( int value ); - - // Reset to default value - void Revert( void ); - - // True if it has a min/max setting - bool GetMin( float& minVal ) const; - bool GetMax( float& maxVal ) const; - char const *GetDefault( void ) const; - - static void RevertAll( void ); -private: - // Called by CCvar when the value of a var is changing. - virtual void InternalSetValue(char const *value); - // For CVARs marked FCVAR_NEVER_AS_STRING - virtual void InternalSetFloatValue( float fNewValue ); - virtual void InternalSetIntValue( int nValue ); - - virtual bool ClampValue( float& value ); - virtual void ChangeStringValue( char const *tempVal ); - - virtual void Create( char const *pName, char const *pDefaultValue, int flags = 0, - char const *pHelpString = 0, bool bMin = false, float fMin = 0.0, - bool bMax = false, float fMax = false, FnChangeCallback callback = 0 ); - - // Used internally by OneTimeInit to initialize. - virtual void Init(); - -private: - - // This either points to "this" or it points to the original declaration of a ConVar. - // This allows ConVars to exist in separate modules, and they all use the first one to be declared. - // m_pParent->m_pParent must equal m_pParent (ie: m_pParent must be the root, or original, ConVar). - ConVar *m_pParent; - - // Static data - char const *m_pszDefaultValue; - - // Value - // Dynamically allocated - char *m_pszString; - int m_StringLength; - - // Values - float m_fValue; - int m_nValue; - - // Min/Max values - bool m_bHasMin; - float m_fMinVal; - bool m_bHasMax; - float m_fMaxVal; - - // Call this function when ConVar changes - FnChangeCallback m_fnChangeCallback; -}; - - -//----------------------------------------------------------------------------- -// Purpose: Return ConVar value as a float -// Output : float -//----------------------------------------------------------------------------- -FORCEINLINE_CVAR float ConVar::GetFloat( void ) const -{ - return m_pParent->m_fValue; -} - -//----------------------------------------------------------------------------- -// Purpose: Return ConVar value as an int -// Output : int -//----------------------------------------------------------------------------- -FORCEINLINE_CVAR int ConVar::GetInt( void ) const -{ - return m_pParent->m_nValue; -} - - -//----------------------------------------------------------------------------- -// Purpose: Return ConVar value as a string, return "" for bogus string pointer, etc. -// Output : char const * -//----------------------------------------------------------------------------- -FORCEINLINE_CVAR char const *ConVar::GetString( void ) const -{ - if ( m_nFlags & FCVAR_NEVER_AS_STRING ) - { - return "FCVAR_NEVER_AS_STRING"; - } - - return ( m_pParent->m_pszString ) ? m_pParent->m_pszString : ""; -} - - -#ifdef _STATIC_LINKED -// identifies subsystem via piggybacking constructors with flags -class G_ConCommand : public ConCommand -{ -public: - G_ConCommand(char const *pName, FnCommandCallback callback, char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ) : ConCommand(pName, callback, pHelpString, flags|FCVAR_GAMEDLL, completionFunc) {} -}; - -class C_ConCommand : public ConCommand -{ -public: - C_ConCommand(char const *pName, FnCommandCallback callback, char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ) : ConCommand(pName, callback, pHelpString, flags|FCVAR_CLIENTDLL, completionFunc) {} -}; - -class M_ConCommand : public ConCommand -{ -public: - M_ConCommand(char const *pName, FnCommandCallback callback, char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ) : ConCommand(pName, callback, pHelpString, flags|FCVAR_MATERIAL_SYSTEM, completionFunc) {} -}; - -class S_ConCommand : public ConCommand -{ -public: - S_ConCommand(char const *pName, FnCommandCallback callback, char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ) : ConCommand(pName, callback, pHelpString, flags|FCVAR_STUDIORENDER, completionFunc) {} -}; - -class D_ConCommand : public ConCommand -{ -public: - D_ConCommand(char const *pName, FnCommandCallback callback, char const *pHelpString = 0, int flags = 0, FnCommandCompletionCallback completionFunc = 0 ) : ConCommand(pName, callback, pHelpString, flags|FCVAR_DATACACHE, completionFunc) {} -}; - -typedef void ( *G_FnChangeCallback )( G_ConVar *var, char const *pOldString ); -typedef void ( *C_FnChangeCallback )( C_ConVar *var, char const *pOldString ); -typedef void ( *M_FnChangeCallback )( M_ConVar *var, char const *pOldString ); -typedef void ( *S_FnChangeCallback )( S_ConVar *var, char const *pOldString ); -typedef void ( *D_FnChangeCallback )( D_ConVar *var, char const *pOldString ); - -class G_ConVar : public ConVar -{ -public: - G_ConVar( char const *pName, char const *pDefaultValue, int flags = 0) : ConVar(pName, pDefaultValue, flags|FCVAR_GAMEDLL) {} - G_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString ) : ConVar(pName, pDefaultValue, flags|FCVAR_GAMEDLL, pHelpString ) {} - G_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ) : ConVar(pName, pDefaultValue, flags|FCVAR_GAMEDLL, pHelpString, bMin, fMin, bMax, fMax) {} - G_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, G_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_GAMEDLL, pHelpString, (FnChangeCallback)callback ) {} - G_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, G_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_GAMEDLL, pHelpString, bMin, fMin, bMax, fMax, (FnChangeCallback)callback ) {} -}; - -class C_ConVar : public ConVar -{ -public: - C_ConVar( char const *pName, char const *pDefaultValue, int flags = 0) : ConVar(pName, pDefaultValue, flags|FCVAR_CLIENTDLL) {} - C_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString ) : ConVar(pName, pDefaultValue, flags|FCVAR_CLIENTDLL, pHelpString ) {} - C_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ) : ConVar(pName, pDefaultValue, flags|FCVAR_CLIENTDLL, pHelpString, bMin, fMin, bMax, fMax) {} - C_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, C_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_CLIENTDLL, pHelpString, (FnChangeCallback)callback ) {} - C_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, C_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_CLIENTDLL, pHelpString, bMin, fMin, bMax, fMax, (FnChangeCallback)callback ) {} -}; - -class M_ConVar : public ConVar -{ -public: - M_ConVar( char const *pName, char const *pDefaultValue, int flags = 0) : ConVar(pName, pDefaultValue, flags|FCVAR_MATERIAL_SYSTEM) {} - M_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString ) : ConVar(pName, pDefaultValue, flags|FCVAR_MATERIAL_SYSTEM, pHelpString ) {} - M_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ) : ConVar(pName, pDefaultValue, flags|FCVAR_MATERIAL_SYSTEM, pHelpString, bMin, fMin, bMax, fMax) {} - M_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, M_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_MATERIAL_SYSTEM, pHelpString, (FnChangeCallback)callback ) {} - M_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, M_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_MATERIAL_SYSTEM, pHelpString, bMin, fMin, bMax, fMax, (FnChangeCallback)callback ) {} -}; - -class S_ConVar : public ConVar -{ -public: - S_ConVar( char const *pName, char const *pDefaultValue, int flags = 0) : ConVar(pName, pDefaultValue, flags|FCVAR_STUDIORENDER) {} - S_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString ) : ConVar(pName, pDefaultValue, flags|FCVAR_STUDIORENDER, pHelpString ) {} - S_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ) : ConVar(pName, pDefaultValue, flags|FCVAR_STUDIORENDER, pHelpString, bMin, fMin, bMax, fMax) {} - S_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, M_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_STUDIORENDER, pHelpString, (FnChangeCallback)callback ) {} - S_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, S_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_STUDIORENDER, pHelpString, bMin, fMin, bMax, fMax, (FnChangeCallback)callback ) {} -}; - -class D_ConVar : public ConVar -{ -public: - D_ConVar( char const *pName, char const *pDefaultValue, int flags = 0) : ConVar(pName, pDefaultValue, flags|FCVAR_DATACACHE) {} - D_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString ) : ConVar(pName, pDefaultValue, flags|FCVAR_DATACACHE, pHelpString ) {} - D_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax ) : ConVar(pName, pDefaultValue, flags|FCVAR_DATACACHE, pHelpString, bMin, fMin, bMax, fMax) {} - D_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, M_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_DATACACHE, pHelpString, (FnChangeCallback)callback ) {} - D_ConVar( char const *pName, char const *pDefaultValue, int flags, char const *pHelpString, bool bMin, float fMin, bool bMax, float fMax, D_FnChangeCallback callback ) : ConVar(pName, pDefaultValue, flags|FCVAR_DATACACHE, pHelpString, bMin, fMin, bMax, fMax, (FnChangeCallback)callback ) {} -}; - -// redirect these declarations to their specific subsystem -#ifdef GAME_DLL -#define ConCommand G_ConCommand -#define ConVar G_ConVar -#endif -#ifdef CLIENT_DLL -#define ConCommand C_ConCommand -#define ConVar C_ConVar -#endif -#ifdef MATERIALSYSTEM_DLL -#define ConCommand M_ConCommand -#define ConVar M_ConVar -#endif -#ifdef STUDIORENDER_DLL -#define ConCommand S_ConCommand -#define ConVar S_ConVar -#endif -#ifdef DATACACHE_DLL -#define ConCommand D_ConCommand -#define ConVar D_ConVar -#endif -#endif // _STATIC_LINKED - -//----------------------------------------------------------------------------- -// Purpose: Utility to quicky generate a simple console command -//----------------------------------------------------------------------------- -#define CON_COMMAND( name, description ) \ - static void name(); \ - static ConCommand name##_command( #name, name, description ); \ - static void name() - -//----------------------------------------------------------------------------- -// Purpose: Utility to quicky generate a simple console command -//----------------------------------------------------------------------------- -#define CON_COMMAND_F( name, description, flags ) \ - static void name(); \ - static ConCommand name##_command( #name, name, description, flags ); \ - static void name() - - -#endif // CONVAR_H diff --git a/sourcemm/msvc7/sourcemm.sln b/sourcemm/msvc7/sourcemm.sln deleted file mode 100644 index fa8eb75..0000000 --- a/sourcemm/msvc7/sourcemm.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sourcemm", "sourcemm.vcproj", "{F7D47743-73B3-49B5-9D76-2333C5DFD565}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug.ActiveCfg = Debug|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug.Build.0 = Debug|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release.ActiveCfg = Release|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/sourcemm/msvc7/sourcemm.vcproj b/sourcemm/msvc7/sourcemm.vcproj deleted file mode 100644 index 556c859..0000000 --- a/sourcemm/msvc7/sourcemm.vcproj +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/msvc8/sourcemm.sln b/sourcemm/msvc8/sourcemm.sln deleted file mode 100644 index b338452..0000000 --- a/sourcemm/msvc8/sourcemm.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sourcemm", "sourcemm.vcproj", "{F7D47743-73B3-49B5-9D76-2333C5DFD565}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug|Win32.ActiveCfg = Debug|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug|Win32.Build.0 = Debug|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release|Win32.ActiveCfg = Release|Win32 - {F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/sourcemm/msvc8/sourcemm.vcproj b/sourcemm/msvc8/sourcemm.vcproj deleted file mode 100644 index 6430d55..0000000 --- a/sourcemm/msvc8/sourcemm.vcproj +++ /dev/null @@ -1,366 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/oslink.cpp b/sourcemm/oslink.cpp deleted file mode 100644 index 049b743..0000000 --- a/sourcemm/oslink.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -/** - * @brief Implements OS-dependant functions from oslink.h - * @file oslink.cpp - */ - -#include "oslink.h" -#ifdef __linux -#include -#endif -#include - -#if defined __WIN32__ || defined _WIN32 || defined WIN32 -const char *dlerror() -{ - static char buf[1024]; - DWORD num; - - num = GetLastError(); - - if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - num, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - buf, - sizeof(buf), - NULL) - == 0) - { - _snprintf(buf, sizeof(buf), "unknown error %x", num); - } - - return buf; -} -#endif - -#if defined __linux__ -int GetLastError() -{ - return errno; -} - -extern "C" void __cxa_guard_acquire(void) -{ -} - -extern "C" void __cxa_guard_release(void) -{ -} -#endif - -bool GetFileOfAddress(void *pAddr, char *buffer, size_t maxlength) -{ -#if defined WIN32 || defined _WIN32 - MEMORY_BASIC_INFORMATION mem; - if (!VirtualQuery(pAddr, &mem, sizeof(mem))) - return false; - if (mem.AllocationBase == NULL) - return false; - HMODULE dll = (HMODULE)mem.AllocationBase; - GetModuleFileName(dll, (LPTSTR)buffer, maxlength); -#elif defined __linux__ - Dl_info info; - if (!dladdr(pAddr, &info)) - return false; - if (!info.dli_fbase || !info.dli_fname) - return false; - const char *dllpath = info.dli_fname; - snprintf(buffer, maxlength, "%s", dllpath); -#endif - return true; -} diff --git a/sourcemm/oslink.h b/sourcemm/oslink.h deleted file mode 100644 index 3529456..0000000 --- a/sourcemm/oslink.h +++ /dev/null @@ -1,91 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_OSLINK_H -#define _INCLUDE_OSLINK_H - -/** - * @brief Defines OS-independent information - * @file oslink.h - */ - -#if defined __WIN32__ || defined _WIN32 || defined WIN32 - #define WIN32_LEAN_AND_MEAN - #define OS_WIN32 - #if defined _MSC_VER && _MSC_VER >= 1400 - #undef ARRAYSIZE - #else - #define mkdir(a) _mkdir(a) - #endif - #include - #include - #include - #define dlmount(x) LoadLibrary(x) - #define dlsym(x, s) GetProcAddress(x, s) - #define dlclose(x) FreeLibrary(x) - const char* dlerror(); - #define abspath(x, s) _fullpath(x, s, sizeof(x)) - #define PATH_SEP_STR "\\" - #define PATH_SEP_CHAR '\\' - #define ALT_SEP_CHAR '/' - #define PATH_SIZE MAX_PATH - #define SERVER_DLL "server.dll" -#elif defined __linux__ - #define OS_LINUX - #include - #include - #include - #include - typedef void* HINSTANCE; - #define dlmount(x) dlopen(x,RTLD_NOW) - #define abspath(x, s) realpath(s, x) - #define PATH_SEP_STR "/" - #define PATH_SEP_CHAR '/' - #define ALT_SEP_CHAR '\\' - #define PATH_SIZE PATH_MAX - #define stricmp strcasecmp - #define strnicmp strncasecmp - #define SERVER_DLL "server_i486.so" -#endif - -#if defined __linux__ - #include - int GetLastError(); -#endif - -bool GetFileOfAddress(void *pAddr, char *buffer, size_t maxlength); - -#if defined __WIN32__ || defined _WIN32 || defined WIN32 - #define SMM_API extern "C" __declspec(dllexport) -#elif defined __GNUC__ - #if (__GNUC__ == 4) - #define SMM_API extern "C" __attribute__ ((visibility("default"))) - #else - #define SMM_API extern "C" - #endif -#endif - -#if defined __WIN32__ || defined _WIN32 || defined WIN32 - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; -#elif defined __GNUC__ -#include -#if !__GLIBC_HAVE_LONG_LONG - typedef long long int64_t; - typedef unsigned long long uint64_t; -#endif -#endif - -#ifndef __linux__ - #define snprintf _snprintf - #define vsnprintf _vsnprintf -#endif - -#endif //_INCLUDE_OSLINK_H diff --git a/sourcemm/sample_mm/LICENSE.txt b/sourcemm/sample_mm/LICENSE.txt deleted file mode 100644 index 2618fa4..0000000 --- a/sourcemm/sample_mm/LICENSE.txt +++ /dev/null @@ -1,29 +0,0 @@ -The software is Copyright (C) 2004-2008, Metamod:Source Development Team. - -Metamod:Source is distributed under the "zLib/libpng" license, which is reproduced -below: - ------------------------------------------------------------------------------ - -This software is provided "as-is", without any express or implied warranty. -In no event will the authors be held liable for any damages arising from -the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software in - a product, an acknowledgment in the product documentation would be - appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. - ------------------------------------------------------------------------------ - -The zLib/libpng license has been approved by the "Open Source Initiative" -organization. diff --git a/sourcemm/sample_mm/Makefile b/sourcemm/sample_mm/Makefile deleted file mode 100644 index fb828ac..0000000 --- a/sourcemm/sample_mm/Makefile +++ /dev/null @@ -1,67 +0,0 @@ -#(C)2004-2008 SourceMM Development Team -# Makefile written by David "BAILOPAN" Anderson - -HL2SDK = ../../../hl2sdk -SMM_ROOT = ../.. -SRCDS = ~/srcds - -### EDIT BELOW FOR OTHER PROJECTS ### - -OPT_FLAGS = -O3 -funroll-loops -s -pipe -GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden -DEBUG_FLAGS = -g -ggdb3 -CPP = gcc-4.1 -BINARY = sample_mm_i486.so - -HL2PUB = $(HL2SDK)/public -HL2LIB = $(HL2SDK)/linux_sdk - -OBJECTS = SamplePlugin.cpp cvars.cpp - -LINK = $(HL2LIB)/tier1_i486.a vstdlib_i486.so tier0_i486.so -static-libgcc - -INCLUDE = -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ - -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_ROOT) -I$(SMM_ROOT)/sourcehook -I$(SMM_ROOT)/sourcemm - -ifeq "$(DEBUG)" "true" - BIN_DIR = Debug - CFLAGS = $(DEBUG_FLAGS) -else - BIN_DIR = Release - CFLAGS = $(OPT_FLAGS) -endif - -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) - -CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse - -ifeq "$(GCC_VERSION)" "4" - CFLAGS += $(GCC4_FLAGS) -endif - -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) - -$(BIN_DIR)/%.o: %.cpp - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< - -all: - mkdir -p $(BIN_DIR) - ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so - ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so - $(MAKE) sourcemm - rm -rf $(BINARY) - ln -sf $(BIN_DIR)/$(BINARY) $(BINARY) - -sourcemm: $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) - -debug: - $(MAKE) all DEBUG=true - -default: all - -clean: - rm -rf Release/*.o - rm -rf Release/$(BINARY) - rm -rf Debug/*.o - rm -rf Debug/$(BINARY) diff --git a/sourcemm/sample_mm/SamplePlugin.cpp b/sourcemm/sample_mm/SamplePlugin.cpp deleted file mode 100644 index 3535159..0000000 --- a/sourcemm/sample_mm/SamplePlugin.cpp +++ /dev/null @@ -1,237 +0,0 @@ -/* ======== sample_mm ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include -#include "SamplePlugin.h" -#include "cvars.h" - -//Declare the hooks we will be using in this file. Hooking will not compile without these. -//The macro naming scheme is SH_DECL_HOOKn[_void]. -//If you have 5 parameters, it would be HOOK5. If the function is void, add _void. -//It stands for "SourceHook, Declare Hook". -SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, 0, bool, char const *, char const *, char const *, char const *, bool, bool); -SH_DECL_HOOK3_void(IServerGameDLL, ServerActivate, SH_NOATTRIB, 0, edict_t *, int, int); -SH_DECL_HOOK1_void(IServerGameDLL, GameFrame, SH_NOATTRIB, 0, bool); -SH_DECL_HOOK0_void(IServerGameDLL, LevelShutdown, SH_NOATTRIB, 0); -SH_DECL_HOOK2_void(IServerGameClients, ClientActive, SH_NOATTRIB, 0, edict_t *, bool); -SH_DECL_HOOK1_void(IServerGameClients, ClientDisconnect, SH_NOATTRIB, 0, edict_t *); -SH_DECL_HOOK2_void(IServerGameClients, ClientPutInServer, SH_NOATTRIB, 0, edict_t *, char const *); -SH_DECL_HOOK1_void(IServerGameClients, SetCommandClient, SH_NOATTRIB, 0, int); -SH_DECL_HOOK1_void(IServerGameClients, ClientSettingsChanged, SH_NOATTRIB, 0, edict_t *); -SH_DECL_HOOK5(IServerGameClients, ClientConnect, SH_NOATTRIB, 0, bool, edict_t *, const char*, const char *, char *, int); -SH_DECL_HOOK1_void(IServerGameClients, ClientCommand, SH_NOATTRIB, 0, edict_t *); -SH_DECL_HOOK2(IGameEventManager2, FireEvent, SH_NOATTRIB, 0, bool, IGameEvent *, bool); - -SamplePlugin g_SamplePlugin; -MyListener g_Listener; - -PLUGIN_EXPOSE(SamplePlugin, g_SamplePlugin); - -bool SamplePlugin::LevelInit(const char *pMapName, const char *pMapEntities, const char *pOldLevel, const char *pLandmarkName, bool loadGame, bool background) -{ - META_LOG(g_PLAPI, "LevelInit() called: pMapName=%s", pMapName); - RETURN_META_VALUE(MRES_IGNORED, true); -} - -void SamplePlugin::OnLevelShutdown() -{ - META_LOG(g_PLAPI, "OnLevelShutdown() called from listener"); -} - -void SamplePlugin::ServerActivate(edict_t *pEdictList, int edictCount, int clientMax) -{ - META_LOG(g_PLAPI, "ServerActivate() called: edictCount=%d, clientMax=%d", edictCount, clientMax); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::GameFrame(bool simulating) -{ - //don't log this, it just pumps stuff to the screen ;] - //META_LOG(g_PLAPI, "GameFrame() called: simulating=%d", simulating); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::LevelShutdown( void ) -{ - META_LOG(g_PLAPI, "LevelShutdown() called"); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::ClientActive(edict_t *pEntity, bool bLoadGame) -{ - META_LOG(g_PLAPI, "ClientActive called: pEntity=%d", pEntity ? m_Engine->IndexOfEdict(pEntity) : 0); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::ClientDisconnect(edict_t *pEntity) -{ - META_LOG(g_PLAPI, "ClientDisconnect called: pEntity=%d", pEntity ? m_Engine->IndexOfEdict(pEntity) : 0); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::ClientPutInServer(edict_t *pEntity, char const *playername) -{ - META_LOG(g_PLAPI, "ClientPutInServer called: pEntity=%d, playername=%s", pEntity ? m_Engine->IndexOfEdict(pEntity) : 0, playername); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::SetCommandClient(int index) -{ - META_LOG(g_PLAPI, "SetCommandClient() called: index=%d", index); - RETURN_META(MRES_IGNORED); -} - -void SamplePlugin::ClientSettingsChanged(edict_t *pEdict) -{ - META_LOG(g_PLAPI, "ClientSettingsChanged called: pEdict=%d", pEdict ? m_Engine->IndexOfEdict(pEdict) : 0); - RETURN_META(MRES_IGNORED); -} - -bool SamplePlugin::ClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen) -{ - META_LOG(g_PLAPI, "ClientConnect called: pEntity=%d, pszName=%s, pszAddress=%s", pEntity ? m_Engine->IndexOfEdict(pEntity) : 0, pszName, pszAddress); - RETURN_META_VALUE(MRES_IGNORED, true); -} - -void SamplePlugin::ClientCommand(edict_t *pEntity) -{ - META_LOG(g_PLAPI, "ClientCommand called: pEntity=%d (commandString=%s)", pEntity ? m_Engine->IndexOfEdict(pEntity) : 0, m_Engine->Cmd_Args() ? m_Engine->Cmd_Args() : ""); - RETURN_META(MRES_IGNORED); -} - -bool FireEvent_Handler(IGameEvent *event, bool bDontBroadcast) -{ - if (!event || !event->GetName()) - RETURN_META_VALUE(MRES_IGNORED, false); - - /** - * Note that this will only fire on game events that are already being listened to. - * For events that are not firing (such as item_pickup), you must actually - * register an event listener in the event manager. This hook is provided - * as an example for non-eiface hooks only. - */ - - const char *name = event->GetName(); - - META_LOG(g_PLAPI, "FireGameEvent called: name=%s", name); - - RETURN_META_VALUE(MRES_IGNORED, true); -} - -bool SamplePlugin::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late) -{ - PLUGIN_SAVEVARS(); - - GET_V_IFACE_ANY(serverFactory, m_ServerDll, IServerGameDLL, INTERFACEVERSION_SERVERGAMEDLL); - GET_V_IFACE_CURRENT(engineFactory, m_Engine, IVEngineServer, INTERFACEVERSION_VENGINESERVER); - GET_V_IFACE_ANY(serverFactory, m_ServerClients, IServerGameClients, INTERFACEVERSION_SERVERGAMECLIENTS); - GET_V_IFACE_CURRENT(engineFactory, m_GameEventManager, IGameEventManager2, INTERFACEVERSION_GAMEEVENTSMANAGER2); - - META_LOG(g_PLAPI, "Starting plugin.\n"); - - ismm->AddListener(this, &g_Listener); - - //Init our cvars/concmds - ConCommandBaseMgr::OneTimeInit(&g_Accessor); - - //We're hooking the following things as POST, in order to seem like Server Plugins. - //However, I don't actually know if Valve has done server plugins as POST or not. - //Change the last parameter to 'false' in order to change this to PRE. - //SH_ADD_HOOK_MEMFUNC means "SourceHook, Add Hook, Member Function". - - //Hook LevelInit to our function - SH_ADD_HOOK_MEMFUNC(IServerGameDLL, LevelInit, m_ServerDll, &g_SamplePlugin, &SamplePlugin::LevelInit, true); - //Hook ServerActivate to our function - SH_ADD_HOOK_MEMFUNC(IServerGameDLL, ServerActivate, m_ServerDll, &g_SamplePlugin, &SamplePlugin::ServerActivate, true); - //Hook GameFrame to our function - SH_ADD_HOOK_MEMFUNC(IServerGameDLL, GameFrame, m_ServerDll, &g_SamplePlugin, &SamplePlugin::GameFrame, true); - //Hook LevelShutdown to our function -- this makes more sense as pre I guess - SH_ADD_HOOK_MEMFUNC(IServerGameDLL, LevelShutdown, m_ServerDll, &g_SamplePlugin, &SamplePlugin::LevelShutdown, false); - //Hook ClientActivate to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientActive, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientActive, true); - //Hook ClientDisconnect to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientDisconnect, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientDisconnect, true); - //Hook ClientPutInServer to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientPutInServer, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientPutInServer, true); - //Hook SetCommandClient to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, SetCommandClient, m_ServerClients, &g_SamplePlugin, &SamplePlugin::SetCommandClient, true); - //Hook ClientSettingsChanged to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientSettingsChanged, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientSettingsChanged, true); - - //The following functions are pre handled, because that's how they are in IServerPluginCallbacks - - //Hook ClientConnect to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientConnect, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientConnect, false); - //Hook ClientCommand to our function - SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientCommand, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientCommand, false); - - //This hook is a static hook, no member function - SH_ADD_HOOK_STATICFUNC(IGameEventManager2, FireEvent, m_GameEventManager, FireEvent_Handler, false); - - //Get the call class for IVServerEngine so we can safely call functions without - // invoking their hooks (when needed). - m_Engine_CC = SH_GET_CALLCLASS(m_Engine); - - SH_CALL(m_Engine_CC, &IVEngineServer::LogPrint)("All hooks started!\n"); - - return true; -} - -bool SamplePlugin::Unload(char *error, size_t maxlen) -{ - //IT IS CRUCIAL THAT YOU REMOVE CVARS. - //As of Metamod:Source 1.00-RC2, it will automatically remove them for you. - //But this is only if you've registered them correctly! - - //Make sure we remove any hooks we did... this may not be necessary since - //SourceHook is capable of unloading plugins' hooks itself, but just to be safe. - - SH_REMOVE_HOOK_STATICFUNC(IGameEventManager2, FireEvent, m_GameEventManager, FireEvent_Handler, false); - SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, LevelInit, m_ServerDll, &g_SamplePlugin, &SamplePlugin::LevelInit, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, ServerActivate, m_ServerDll, &g_SamplePlugin, &SamplePlugin::ServerActivate, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, GameFrame, m_ServerDll, &g_SamplePlugin, &SamplePlugin::GameFrame, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, LevelShutdown, m_ServerDll, &g_SamplePlugin, &SamplePlugin::LevelShutdown, false); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientActive, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientActive, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientDisconnect, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientDisconnect, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientPutInServer, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientPutInServer, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, SetCommandClient, m_ServerClients, &g_SamplePlugin, &SamplePlugin::SetCommandClient, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientSettingsChanged, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientSettingsChanged, true); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientConnect, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientConnect, false); - SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientCommand, m_ServerClients, &g_SamplePlugin, &SamplePlugin::ClientCommand, false); - - //this, sourcehook does not keep track of. we must do this. - SH_RELEASE_CALLCLASS(m_Engine_CC); - - return true; -} - -void SamplePlugin::AllPluginsLoaded() -{ - //we don't really need this for anything other than interplugin communication - //and that's not used in this plugin. - //If we really wanted, we could override the factories so other plugins can request - // interfaces we make. In this callback, the plugin could be assured that either - // the interfaces it requires were either loaded in another plugin or not. -} - -void *MyListener::OnMetamodQuery(const char *iface, int *ret) -{ - if (strcmp(iface, "SamplePlugin")==0) - { - if (ret) - *ret = IFACE_OK; - return static_cast(&g_SamplePlugin); - } - - if (ret) - *ret = IFACE_FAILED; - - return NULL; -} diff --git a/sourcemm/sample_mm/SamplePlugin.h b/sourcemm/sample_mm/SamplePlugin.h deleted file mode 100644 index 96c480d..0000000 --- a/sourcemm/sample_mm/SamplePlugin.h +++ /dev/null @@ -1,132 +0,0 @@ -/* ======== sample_mm ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_SAMPLEPLUGIN_H -#define _INCLUDE_SAMPLEPLUGIN_H - -#include -#include -#include - -#define SAMPLE_VERSION "1.10" - -class SamplePlugin : public ISmmPlugin, public IMetamodListener -{ -public: - bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late); - bool Unload(char *error, size_t maxlen); - void AllPluginsLoaded(); - bool Pause(char *error, size_t maxlen) - { - return true; - } - bool Unpause(char *error, size_t maxlen) - { - return true; - } -public: - int GetApiVersion() { return PLAPI_VERSION; } -public: - const char *GetAuthor() - { - return "BAILOPAN"; - } - const char *GetName() - { - return "Sample Plugin"; - } - const char *GetDescription() - { - return "Sample plugin that hooks basic things"; - } - const char *GetURL() - { - return "http://www.sourcemm.net/"; - } - const char *GetLicense() - { - return "zlib/libpng"; - } - const char *GetVersion() - { - return SAMPLE_VERSION; - } - const char *GetDate() - { - return __DATE__; - } - const char *GetLogTag() - { - return "SAMPLE"; - } -public: - //These functions are from IServerPluginCallbacks - //Note, the parameters might be a little different to match the actual calls! - - //Called on LevelInit. Server plugins only have pMapName - bool LevelInit(const char *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background); - - //Called on ServerActivate. Same definition as server plugins - void ServerActivate(edict_t *pEdictList, int edictCount, int clientMax); - - //Called on a game tick. Same definition as server plugins - void GameFrame(bool simulating); - - //Called on level shutdown. Same definition as server plugins - void LevelShutdown(void); - - //Client is activate (whatever that means). We get an extra parameter... - // "If bLoadGame is true, don't spawn the player because its state is already setup." - void ClientActive(edict_t *pEntity, bool bLoadGame); - - //Client disconnects - same as server plugins - void ClientDisconnect(edict_t *pEntity); - - //Client is put in server - same as server plugins - void ClientPutInServer(edict_t *pEntity, char const *playername); - - //Sets the client index - same as server plugins - void SetCommandClient(int index); - - //Called on client settings changed (duh) - same as server plugins - void ClientSettingsChanged(edict_t *pEdict); - - //Called on client connect. Unlike server plugins, we return whether the - // connection is allowed rather than set it through a pointer in the first parameter. - // You can still supercede the GameDLL through RETURN_META_VALUE(MRES_SUPERCEDE, true/false) - bool ClientConnect(edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen); - - //Called when a client uses a command. Unlike server plugins, it's void. - // You can still supercede the gamedll through RETURN_META(MRES_SUPERCEDE). - void ClientCommand(edict_t *pEntity); - - //From IMetamodListener - virtual void OnLevelShutdown(); - -private: - IGameEventManager2 *m_GameEventManager; - IVEngineServer *m_Engine; - IServerGameDLL *m_ServerDll; - IServerGameClients *m_ServerClients; - SourceHook::CallClass *m_Engine_CC; -}; - -class MyListener : public IMetamodListener -{ -public: - virtual void *OnMetamodQuery(const char *iface, int *ret); -}; - -extern SamplePlugin g_SamplePlugin; -PLUGIN_GLOBALVARS(); - -bool FireEvent_Handler(IGameEvent *event, bool bDontBroadcast); - -#endif //_INCLUDE_SAMPLEPLUGIN_H diff --git a/sourcemm/sample_mm/cvars.cpp b/sourcemm/sample_mm/cvars.cpp deleted file mode 100644 index f887bdf..0000000 --- a/sourcemm/sample_mm/cvars.cpp +++ /dev/null @@ -1,27 +0,0 @@ -/* ======== sample_mm ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include "SamplePlugin.h" -#include "cvars.h" - -SampleAccessor g_Accessor; - -ConVar g_MyConVar("sample_version", SAMPLE_VERSION, FCVAR_SPONLY, "Sample Plugin version"); - -bool SampleAccessor::RegisterConCommandBase(ConCommandBase *pVar) -{ - //this will work on any type of concmd! - return META_REGCVAR(pVar); -} - -CON_COMMAND(sample_cmd, "Sample Plugin command") -{ - META_LOG(g_PLAPI, "This sentence is in Spanish when you're not looking."); -} diff --git a/sourcemm/sample_mm/cvars.h b/sourcemm/sample_mm/cvars.h deleted file mode 100644 index dc036ab..0000000 --- a/sourcemm/sample_mm/cvars.h +++ /dev/null @@ -1,24 +0,0 @@ -/* ======== sample_mm ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_CVARS_H -#define _INCLUDE_CVARS_H - -#include - -class SampleAccessor : public IConCommandBaseAccessor -{ -public: - virtual bool RegisterConCommandBase(ConCommandBase *pVar); -}; - -extern SampleAccessor g_Accessor; - -#endif //_INCLUDE_CVARS_H diff --git a/sourcemm/sample_mm/msvc7/sample_mm.sln b/sourcemm/sample_mm/msvc7/sample_mm.sln deleted file mode 100644 index b885d6b..0000000 --- a/sourcemm/sample_mm/msvc7/sample_mm.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sample_mm", "sample_mm.vcproj", "{FAFF34FB-FE14-47B5-81BD-70D237392FB2}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Debug.ActiveCfg = Debug|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Debug.Build.0 = Debug|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Release.ActiveCfg = Release|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/sourcemm/sample_mm/msvc7/sample_mm.vcproj b/sourcemm/sample_mm/msvc7/sample_mm.vcproj deleted file mode 100644 index 57c68a7..0000000 --- a/sourcemm/sample_mm/msvc7/sample_mm.vcproj +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/sample_mm/msvc8/sample_mm.sln b/sourcemm/sample_mm/msvc8/sample_mm.sln deleted file mode 100644 index df4b2fb..0000000 --- a/sourcemm/sample_mm/msvc8/sample_mm.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sample_mm", "sample_mm.vcproj", "{FAFF34FB-FE14-47B5-81BD-70D237392FB2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Debug|Win32.ActiveCfg = Debug|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Debug|Win32.Build.0 = Debug|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Release|Win32.ActiveCfg = Release|Win32 - {FAFF34FB-FE14-47B5-81BD-70D237392FB2}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/sourcemm/sample_mm/msvc8/sample_mm.vcproj b/sourcemm/sample_mm/msvc8/sample_mm.vcproj deleted file mode 100644 index 0e10bef..0000000 --- a/sourcemm/sample_mm/msvc8/sample_mm.vcproj +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp deleted file mode 100644 index 5fa436d..0000000 --- a/sourcemm/sourcemm.cpp +++ /dev/null @@ -1,1037 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * Contributor(s): Scott "Damaged Soul" Ehlert - * : Pavol "PM OnoTo" Marko - * ============================ - */ - -#include -#include -#include -#include "sourcemm.h" -#include "concommands.h" -#include "CSmmAPI.h" -#include "CPlugin.h" -#include "util.h" -#include "vsp_listener.h" -#include "iplayerinfo.h" -#include - -using namespace SourceMM; - -/** - * @brief Implementation of main SourceMM GameDLL functionality - * @file sourcemm.cpp - */ - -#undef CommandLine -DLL_IMPORT ICommandLine *CommandLine(); - -SH_DECL_HOOK4(IServerGameDLL, DLLInit, SH_NOATTRIB, false, bool, CreateInterfaceFn, CreateInterfaceFn, CreateInterfaceFn, CGlobalVars *); -SH_DECL_HOOK0_void(IServerGameDLL, DLLShutdown, SH_NOATTRIB, false); -SH_DECL_HOOK0_void(IServerGameDLL, LevelShutdown, SH_NOATTRIB, false); -SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, false, bool, const char *, const char *, const char *, const char *, bool, bool); -SH_DECL_HOOK1_void(IServerGameClients, ClientCommand, SH_NOATTRIB, 0, edict_t *); -SH_DECL_HOOK0(IServerGameDLL, GameInit, SH_NOATTRIB, false, bool); - -bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, CreateInterfaceFn filesystemFactory, CGlobalVars *pGlobals); -bool DLLInit_Post(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, CreateInterfaceFn filesystemFactory, CGlobalVars *pGlobals); -void DLLShutdown_handler(); -void LevelShutdown_handler(); -bool LevelInit_handler(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background); -bool GameInit_handler(); -void LookForVDFs(const char *dir); -bool KVLoadFromFile(KeyValues *kv, IBaseFileSystem *filesystem, const char *resourceName, const char *pathID = NULL); - -GameDllInfo g_GameDll = {false, NULL, NULL, NULL, NULL}; -EngineInfo g_Engine; -SourceHook::CSourceHookImpl g_SourceHook; -SourceHook::ISourceHook *g_SHPtr = &g_SourceHook; -SourceHook::String g_ModPath; -SourceHook::String g_BinPath; -SourceHook::String g_SmmPath; -PluginId g_PLID = Pl_Console; /* Technically, SourceMM is the "Console" plugin... :p */ -bool bInFirstLevel = true; -bool gParsedGameInfo = false; -bool bGameInit = false; -SourceHook::List gamedll_list; -SourceHook::CallClass *g_GameDllPatch; -SourceHook::CallClass *g_CvarPatch; -int g_GameDllVersion = 0; -const char VSPIFACE_001[] = "ISERVERPLUGINCALLBACKS001"; -const char VSPIFACE_002[] = "ISERVERPLUGINCALLBACKS002"; -const char GAMEINFO_PATH[] = "|gameinfo_path|"; -IFileSystem *baseFs = NULL; -bool g_bLevelChanged = false; - - -void ClearGamedllList(); - -/* Helper Macro */ -#define IFACE_MACRO(orig,nam) \ - CPluginManager::CPlugin *pl; \ - SourceHook::List::iterator event; \ - IMetamodListener *api; \ - int mret = 0; \ - void *val = NULL; \ - for (PluginIter iter = g_PluginMngr._begin(); iter != g_PluginMngr._end(); iter++) { \ - pl = (*iter); \ - for (event=pl->m_Events.begin(); event!=pl->m_Events.end(); event++) { \ - api = (*event).event; \ - mret = IFACE_FAILED; \ - if ( (val=api->On##nam##Query(iface, &mret)) != NULL ) { \ - if (ret) *ret = mret; \ - return val; \ - } \ - } \ - } \ - return (orig)(iface, ret); - -#define ITER_EVENT(evn, args) \ - CPluginManager::CPlugin *pl; \ - SourceHook::List::iterator event; \ - IMetamodListener *api; \ - for (PluginIter iter = g_PluginMngr._begin(); iter != g_PluginMngr._end(); iter++) { \ - pl = (*iter); \ - for (event=pl->m_Events.begin(); event!=pl->m_Events.end(); event++) { \ - api = (*event).event; \ - api->evn args; \ - } \ - } - -/////////////////////////////////// -// Main code for HL2 Interaction // -/////////////////////////////////// - -/* Initialize everything here */ -void InitMainStates() -{ - char full_path[PATH_SIZE] = {0}; - GetFileOfAddress((void *)g_GameDll.factory, full_path, sizeof(full_path)); - g_BinPath.assign(full_path); - - /* Like Metamod, reload plugins at the end of the map. - * This is so plugins can hook everything on load, BUT, new plugins will be reloaded - * if the server is shut down (silly, but rare case). - */ - bInFirstLevel = true; - - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, DLLInit, g_GameDll.pGameDLL, DLLInit, false); - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, DLLInit, g_GameDll.pGameDLL, DLLInit_Post, true); - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, DLLShutdown, g_GameDll.pGameDLL, DLLShutdown_handler, false); - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, LevelShutdown, g_GameDll.pGameDLL, LevelShutdown_handler, true); - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, LevelInit, g_GameDll.pGameDLL, LevelInit_handler, true); - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, GameInit, g_GameDll.pGameDLL, GameInit_handler, false); -} - -void DoInitialPluginLoads() -{ - const char *pluginFile = g_Engine.icvar->GetCommandLineValue("mm_pluginsfile"); - const char *mmBaseDir = g_Engine.icvar->GetCommandLineValue("mm_basedir"); - - if (!pluginFile) - { - pluginFile = GetPluginsFile(); - } - if (!mmBaseDir) - { - mmBaseDir = GetMetamodBaseDir(); - } - - char full_path[260]; - - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), pluginFile); - LoadPluginsFromFile(full_path); - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), mmBaseDir); - LookForVDFs(full_path); -} - -bool StartupMetamod(CreateInterfaceFn engineFactory, bool bWaitForGameInit) -{ - g_Engine.engine = (IVEngineServer *)((engineFactory)(INTERFACEVERSION_VENGINESERVER, NULL)); - - if (!g_Engine.engine) - { - Error("Could not find IVEngineServer! Metamod cannot load."); - return false; - } - g_Engine.icvar = (ICvar *)((engineFactory)(VENGINE_CVAR_INTERFACE_VERSION , NULL)); - if (!g_Engine.icvar) - { - Error("Could not find ICvar! Metamod cannot load."); - return false; - } - - g_Engine.loaded = true; - - /* The Ship is the only game known at this time that uses the pre-Episode One engine */ - g_Engine.original = strcmp(CommandLine()->ParmValue("-game", "hl2"), "ship") == 0; - - ConCommandBaseMgr::OneTimeInit(static_cast(&g_SMConVarAccessor)); - - g_GameDllPatch = SH_GET_CALLCLASS(g_GameDll.pGameDLL); - g_CvarPatch = SH_GET_CALLCLASS(g_Engine.icvar); - - if (g_GameDll.pGameClients) - { - SH_ADD_HOOK_STATICFUNC(IServerGameClients, ClientCommand, g_GameDll.pGameClients, ClientCommand_handler, false); - } - else - { - /* If IServerGameClients isn't found, this really isn't a fatal error so... */ - LogMessage("[META] Warning: Could not find IServerGameClients!"); - LogMessage("[META] Warning: The 'meta' command will not be available to clients."); - } - - if (!g_SmmAPI.CacheCmds()) - { - LogMessage("[META] Warning: Failed to initialize Con_Printf. Defaulting to Msg()."); - LogMessage("[META] Warning: Console messages will not be redirected to rcon console."); - } - - if (!g_SmmAPI.CacheUserMessages()) - { - /* Don't know of a mod that has stripped out user messages completely, - * but perhaps should do something different here? - */ - LogMessage("[META] Warning: Failed to get list of user messages."); - LogMessage("[META] Warning: The 'meta game' command will not display user messages."); - } - - baseFs = (IFileSystem *)((engineFactory)(FILESYSTEM_INTERFACE_VERSION, NULL)); - if (baseFs == NULL) - { - LogMessage("[META] Failed to find filesystem interface, .vdf files will not be parsed."); - } - - if (!g_SMConVarAccessor.InitConCommandBaseList()) - { - /* This is very unlikely considering it's old engine */ - LogMessage("[META] Warning: Failed to find ConCommandBase list!"); - LogMessage("[META] Warning: ConVars and ConCommands cannot be unregistered properly! Please file a bug report."); - } - - if (!bWaitForGameInit) - { - DoInitialPluginLoads(); - bInFirstLevel = true; - } - - return true; -} - -bool DLLInit(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, CreateInterfaceFn filesystemFactory, CGlobalVars *pGlobals) -{ - g_Engine.engineFactory = engineFactory; - g_Engine.fileSystemFactory = filesystemFactory; - g_Engine.physicsFactory = physicsFactory; - g_Engine.pGlobals = pGlobals; - - StartupMetamod(engineFactory, false); - - RETURN_META_VALUE(MRES_IGNORED, true); -} - -bool AlternatelyLoadMetamod(CreateInterfaceFn ifaceFactory, CreateInterfaceFn serverFactory) -{ - g_Engine.engineFactory = ifaceFactory; - g_Engine.fileSystemFactory = ifaceFactory; - g_Engine.physicsFactory = ifaceFactory; - - IPlayerInfoManager *playerInfoManager = (IPlayerInfoManager *)serverFactory("PlayerInfoManager002", NULL); - if (playerInfoManager == NULL) - { - Error("Metamod:Source requires gameinfo.txt modification to load on this game."); - return false; - } - - g_Engine.pGlobals = playerInfoManager->GetGlobalVars(); - - /* Now find the server */ - g_GameDll.factory = serverFactory; - g_GameDll.lib = NULL; - - char gamedll_iface[] = "ServerGameDLL000"; - for (unsigned int i = 3; i <= 50; i++) - { - gamedll_iface[15] = '0' + i; - g_GameDll.pGameDLL = (IServerGameDLL *)serverFactory(gamedll_iface, NULL); - if (g_GameDll.pGameDLL != NULL) - { - g_GameDllVersion = i; - break; - } - } - - if (g_GameDll.pGameDLL == NULL) - { - Error("Metamod:Source requires gameinfo.txt modification to load on this game."); - return false; - } - - char gameclients_iface[] = "ServerGameClients000"; - for (unsigned int i = 3; i <= 4; i++) - { - gameclients_iface[19] = '0' + i; - g_GameDll.pGameClients = (IServerGameClients *)serverFactory(gameclients_iface, NULL); - if (g_GameDll.pGameClients != NULL) - { - break; - } - } - - char smm_path[PATH_SIZE]; - const char *game_dir; - GetFileOfAddress((void *)AlternatelyLoadMetamod, smm_path, sizeof(smm_path)); - g_SmmPath.assign(smm_path); - - game_dir = CommandLine()->ParmValue("-game", "hl2"); - abspath(smm_path, game_dir); - g_ModPath.assign(smm_path); - - InitMainStates(); - - if (!StartupMetamod(ifaceFactory, true)) - { - return false; - } - - g_PluginMngr.SetAllLoaded(); - - return true; -} - -bool GameInit_handler() -{ - if (bGameInit) - { - RETURN_META_VALUE(MRES_IGNORED, true); - } - - if (g_SmmAPI.VSPEnabled() && !g_VspListener.IsRootLoadMethod()) - { - g_SmmAPI.LoadAsVSP(); - } - - if (g_VspListener.IsRootLoadMethod()) - { - DoInitialPluginLoads(); - //gaben - } - - bGameInit = true; - - RETURN_META_VALUE(MRES_IGNORED, true); -} - -bool DLLInit_Post(CreateInterfaceFn engineFactory, CreateInterfaceFn physicsFactory, CreateInterfaceFn filesystemFactory, CGlobalVars *pGlobals) -{ - g_PluginMngr.SetAllLoaded(); - RETURN_META_VALUE(MRES_IGNORED, true); -} - -/* This is where the magic happens */ -SMM_API void *CreateInterface(const char *iface, int *ret) -{ - /* Prevent loading of self as a SourceMM plugin or Valve server plugin :x */ - if (strcmp(iface, PLAPI_NAME) == 0) - { - Warning("Do not try loading Metamod:Source as a Metamod:Source plugin"); - - if (ret) - { - *ret = IFACE_FAILED; - } - - return NULL; - } - - /* We check these separately because we can't reply - * unless our interface version really matches. - */ - if ((strcmp(iface, VSPIFACE_002) == 0) - || strcmp(iface, VSPIFACE_001) == 0) - { - if (ret) - { - *ret = IFACE_OK; - } - return &g_VspListener; - } - - /* If we're a VSP, bypass this by default */ - if (g_VspListener.IsRootLoadMethod()) - { - IFACE_MACRO(g_GameDll.factory, GameDLL); - } - - if (!gParsedGameInfo) - { - gParsedGameInfo = true; - const char *gameDir = NULL; - char gamePath[PATH_SIZE]; - char smmPath[PATH_SIZE]; - - /* Get path to SourceMM DLL */ - if (!GetFileOfAddress((void *)CreateInterface, smmPath, sizeof(smmPath))) - { - Error("GetFileOfAddress() failed! Metamod cannot load.\n"); - return NULL; - } - - g_SmmPath.assign(smmPath); - - /* Get value of -game from command line, defaulting to hl2 as engine seems to do */ - gameDir = CommandLine()->ParmValue("-game", "hl2"); - - /* Get absolute path */ - abspath(gamePath, gameDir); - g_ModPath.assign(gamePath); - - char tempPath[PATH_SIZE]; - - /* Path to gameinfo.txt */ - g_SmmAPI.PathFormat(tempPath, PATH_SIZE, "%s/%s", g_ModPath.c_str(), "gameinfo.txt"); - - FILE *fp = fopen(tempPath, "rt"); - - if (!fp) - { - Error("Unable to open gameinfo.txt! Metamod cannot load.\n"); - return NULL; - } - - char buffer[255]; - char key[128], val[128]; - size_t len = 0; - bool search = false; - bool gamebin = false; - char *ptr; - const char *lptr; - char curPath[PATH_SIZE]; - - getcwd(curPath, PATH_SIZE); - - while (!feof(fp)) - { - buffer[0] = '\0'; - fgets(buffer, sizeof(buffer), fp); - len = strlen(buffer); - if (buffer[len-1] == '\n') - buffer[--len] = '\0'; - UTIL_TrimComments(buffer); - UTIL_TrimLeft(buffer); - UTIL_TrimRight(buffer); - if (stricmp(buffer, "SearchPaths") == 0) - search = true; - if (!search) - continue; - UTIL_KeySplit(buffer, key, sizeof(key) - 1, val, sizeof(val) - 1); - if (stricmp(key, "Game") == 0 || stricmp(key, "GameBin") == 0) - { - if (stricmp(key, "Game") == 0) - gamebin = false; - else - gamebin = true; - - if (strncmp(val, GAMEINFO_PATH, sizeof(GAMEINFO_PATH) - 1) == 0) - { - ptr = &(val[sizeof(GAMEINFO_PATH) - 1]); - if (ptr[0] == '.') - ptr++; - lptr = g_ModPath.c_str(); - } else { - ptr = val; - lptr = curPath; - } - - size_t ptr_len = strlen(ptr); - if (ptr[ptr_len] == '/' || ptr[ptr_len] == '\\') - ptr[--ptr_len] = '\0'; - - /* No need to append "bin" if key is GameBin */ - if (gamebin) - { - g_SmmAPI.PathFormat(tempPath, PATH_SIZE, "%s/%s/%s", lptr, ptr, SERVER_DLL); - } else if (!ptr[0]) { - g_SmmAPI.PathFormat(tempPath, PATH_SIZE, "%s/%s/%s", lptr, "bin", SERVER_DLL); - } else { - g_SmmAPI.PathFormat(tempPath, PATH_SIZE, "%s/%s/%s/%s", lptr, ptr, "bin", SERVER_DLL); - } - - /* If not path to SourceMM... */ - if (!UTIL_PathCmp(smmPath, tempPath)) - { - FILE *fp = fopen(tempPath, "rb"); - if (!fp) - continue; - //:TODO: Optimize this a bit! - SourceHook::List::iterator iter; - GameDllInfo *pCheck; - bool found = false; - for (iter=gamedll_list.begin(); iter!=gamedll_list.end(); iter++) - { - pCheck = (*iter); - if (GetFileOfAddress((void *)pCheck->factory, buffer, sizeof(buffer))) - { - if (UTIL_PathCmp(tempPath, buffer)) - { - found = true; - break; - } - } - } - if (found) - continue; - fclose(fp); - HINSTANCE gamedll = dlmount(tempPath); - if (gamedll == NULL) - continue; - CreateInterfaceFn fn = (CreateInterfaceFn)dlsym(gamedll, "CreateInterface"); - if (fn == NULL) - { - dlclose(gamedll); - continue; - } - GameDllInfo *pInfo = new GameDllInfo; - pInfo->factory = fn; - pInfo->lib = gamedll; - pInfo->loaded = true; - pInfo->pGameDLL = NULL; - gamedll_list.push_back(pInfo); - break; - } - } - } - fclose(fp); - } - - if (!g_GameDll.loaded) - { - const char *str = "ServerGameDLL"; - size_t len = strlen(str); - - if (strncmp(iface, str, len) == 0) - { - /* This is the interface we want! Right now we support versions 3 through 8 */ - g_GameDllVersion = atoi(&(iface[len])); - int sizeTooBig = 0; //rename this to sizeWrong in the future! - if (g_GameDllVersion < MIN_GAMEDLL_VERSION || g_GameDllVersion > MAX_GAMEDLL_VERSION) - { - /* Maybe this will get used in the future */ - sizeTooBig = g_GameDllVersion; - if (ret) - { - *ret = IFACE_FAILED; - } - } - SourceHook::List::iterator iter; - GameDllInfo *pInfo = NULL; - void *ptr; - for (iter=gamedll_list.begin(); iter!=gamedll_list.end(); iter++) - { - pInfo = (*iter); - ptr = (pInfo->factory)(iface, ret); - if (ptr) - { - /* This is our GameDLL. Unload the others. */ - gamedll_list.erase(iter); - ClearGamedllList(); - pInfo->pGameDLL = static_cast(ptr); - g_GameDll = *pInfo; - delete pInfo; - break; - } - } - if (g_GameDll.loaded) - { - if (sizeTooBig) - { - Error("This mod version requires a SourceMM update (ServerGameDLL%03d)!\n", sizeTooBig); - if (ret) - { - *ret = IFACE_FAILED; - } - return NULL; - } else { - InitMainStates(); - } - } else { - sizeTooBig = 0; - if (ret) - *ret = IFACE_FAILED; - return NULL; - } - } else { - /* wtf do we do... */ - /* :TODO: .. something a bit more intelligent? */ - Error("Engine requested unknown interface before GameDLL was known!\n"); - return NULL; - } - } - - /* We use this interface for responding to the meta client command */ - if (strncmp(iface, "ServerGameClients", 17) == 0) - { - void *ptr = (g_GameDll.factory)(iface, ret); - g_GameDll.pGameClients = static_cast(ptr); - - return ptr; - } - - /* If we got here, there's definitely a GameDLL */ - IFACE_MACRO(g_GameDll.factory, GameDLL); -} - -void ClearGamedllList() -{ - SourceHook::List::iterator iter; - - GameDllInfo *pInfo; - for (iter=gamedll_list.begin(); iter!=gamedll_list.end(); iter++) - { - pInfo = (*iter); - dlclose(pInfo->lib); - delete pInfo; - } - - gamedll_list.clear(); -} - -void UnloadMetamod(bool shutting_down) -{ - /* Unload plugins */ - g_PluginMngr.UnloadAll(); - - if (shutting_down) - { - /* Add the FCVAR_GAMEDLL flag to our cvars so the engine removes them properly */ - g_SMConVarAccessor.MarkCommandsAsGameDLL(); - g_Engine.icvar->UnlinkVariables(FCVAR_GAMEDLL); - - SH_CALL(g_GameDllPatch, &IServerGameDLL::DLLShutdown)(); - } - - SH_RELEASE_CALLCLASS(g_GameDllPatch); - SH_RELEASE_CALLCLASS(g_CvarPatch); - g_GameDllPatch = NULL; - g_CvarPatch = NULL; - - g_SourceHook.CompleteShutdown(); - - if (g_GameDll.lib && g_GameDll.loaded) - { - dlclose(g_GameDll.lib); - } - memset(&g_GameDll, 0, sizeof(GameDllInfo)); -} - -void DLLShutdown_handler() -{ - UnloadMetamod(true); - RETURN_META(MRES_SUPERCEDE); -} - -void LoadFromVDF(const char *file) -{ - PluginId id; - bool already, kvfileLoaded; - KeyValues *pValues; - const char *plugin_file, *alias; - char full_path[256], error[256]; - - pValues = new KeyValues("Metamod Plugin"); - - if (g_Engine.original) - { - /* The Ship must use a special version of this function */ - kvfileLoaded = KVLoadFromFile(pValues, baseFs, file); - } - else - { - kvfileLoaded = pValues->LoadFromFile(baseFs, file); - } - - if (!kvfileLoaded) - { - pValues->deleteThis(); - return; - } - - if ((plugin_file = pValues->GetString("file", NULL)) == NULL) - { - pValues->deleteThis(); - return; - } - - if ((alias = pValues->GetString("alias", NULL)) != NULL) - { - g_PluginMngr.SetAlias(alias, plugin_file); - } - - /* Attempt to find a file extension */ - if (UTIL_GetExtension(plugin_file) == NULL) - { - g_SmmAPI.PathFormat(full_path, - sizeof(full_path), - "%s/%s%s", - g_ModPath.c_str(), - plugin_file, -#if defined WIN32 || defined _WIN32 - ".dll" -#else - "_i486.so" -#endif - ); - } - else - { - g_SmmAPI.PathFormat(full_path, - sizeof(full_path), - "%s/%s", - g_ModPath.c_str(), - plugin_file); - } - - id = g_PluginMngr.Load(full_path, Pl_File, already, error, sizeof(error)); - if (id < Pl_MinId || g_PluginMngr.FindById(id)->m_Status < Pl_Paused) - { - LogMessage("[META] Failed to load plugin %s: %s", plugin_file, error); - } - - pValues->deleteThis(); -} - -void LookForVDFs(const char *dir) -{ - char path[MAX_PATH]; - int extidx; - -#if defined _MSC_VER - HANDLE hFind; - WIN32_FIND_DATA fd; - char error[255]; - - g_SmmAPI.PathFormat(path, sizeof(path), "%s\\*.*", dir); - if ((hFind = FindFirstFile(path, &fd)) == INVALID_HANDLE_VALUE) - { - DWORD dw = GetLastError(); - FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - dw, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - error, - sizeof(error), - NULL); - LogMessage("[META] Could not open folder \"%s\" (%s)", dir, error); - return; - } - - do - { - if (strcmp(fd.cFileName, ".") == 0 - || strcmp(fd.cFileName, "..") == 0) - { - continue; - } - extidx = strlen(fd.cFileName) - 4; - if (extidx < 0 || stricmp(&fd.cFileName[extidx], ".vdf")) - { - continue; - } - g_SmmAPI.PathFormat(path, sizeof(path), "%s\\%s", dir, fd.cFileName); - LoadFromVDF(path); - } while (FindNextFile(hFind, &fd)); - - FindClose(hFind); -#else - DIR *pDir; - struct dirent *pEnt; - - if ((pDir = opendir(dir)) == NULL) - { - LogMessage("[META] Could not open folder \"%s\" (%s)", dir, strerror(errno)); - return; - } - - while ((pEnt = readdir(pDir)) != NULL) - { - if (strcmp(pEnt->d_name, ".") == 0 - || strcmp(pEnt->d_name, "..") == 0) - { - continue; - } - extidx = strlen(pEnt->d_name) - 4; - if (extidx < 0 || stricmp(&pEnt->d_name[extidx], ".vdf")) - { - continue; - } - g_SmmAPI.PathFormat(path, sizeof(path), "%s/%s", dir, pEnt->d_name); - LoadFromVDF(path); - } - - closedir(pDir); -#endif -} - -bool KVLoadFromFile(KeyValues *kv, IBaseFileSystem *filesystem, const char *resourceName, const char *pathID) -{ - Assert(filesystem); -#ifdef _MSC_VER - Assert(_heapchk() == _HEAPOK); -#endif - - FileHandle_t f = filesystem->Open(resourceName, "rb", pathID); - if (!f) - return false; - - // load file into a null-terminated buffer - int fileSize = filesystem->Size(f); - char *buffer = (char *)MemAllocScratch(fileSize + 1); - - Assert(buffer); - - filesystem->Read(buffer, fileSize, f); // read into local buffer - - buffer[fileSize] = 0; // null terminate file as EOF - - filesystem->Close( f ); // close file after reading - - bool retOK = kv->LoadFromBuffer( resourceName, buffer, filesystem ); - - MemFreeScratch(); - - return retOK; -} - -int LoadPluginsFromFile(const char *_file) -{ - FILE *fp; - int total = 0, skipped=0; - PluginId id; - bool already; - - fp = fopen(_file, "rt"); - if (!fp) - { - LogMessage("[META] Could not open plugins file %s\n", _file); - return -1; - } - - char buffer[255], error[255], full_path[255]; - const char *ptr, *ext, *file; - size_t length; - while (!feof(fp)) - { - buffer[0] = '\0'; - fgets(buffer, sizeof(buffer), fp); - length = strlen(buffer); - if (!length) - continue; - if (buffer[length-1] == '\n') - buffer[--length] = '\0'; - - UTIL_TrimLeft(buffer); - UTIL_TrimRight(buffer); - - if (buffer[0] == '\0' || buffer[0] == ';' || strncmp(buffer, "//", 2) == 0) - continue; - file = buffer; - if (buffer[0] == '"') - { - char *cptr = buffer; - file = ++cptr; - - while (*cptr) - { - if (*cptr == '"') - { - *cptr = '\0'; - break; - } - cptr++; - } - } else { - char *cptr = buffer; - while (*cptr) - { - if (isspace(*cptr)) - { - char *optr = cptr; - while (*cptr && isspace(*cptr)) - cptr++; - *optr = '\0'; - UTIL_TrimRight(cptr); - if (*cptr && isalpha(*cptr)) - { - g_PluginMngr.SetAlias(buffer, cptr); - file = cptr; - } - break; - } - cptr++; - } - } - if (!file[0]) - { - continue; - } - /* First find if it's an absolute path or not... */ - if (file[0] == '/' || strncmp(&(file[1]), ":\\", 2) == 0) - { - /* If we're in an absolute path, ignore our normal heuristics */ - id = g_PluginMngr.Load(file, Pl_File, already, error, sizeof(error)); - if (id < Pl_MinId || g_PluginMngr.FindById(id)->m_Status < Pl_Paused) - { - LogMessage("[META] Failed to load plugin %s. %s", buffer, error); - } else { - if (already) - skipped++; - else - total++; - } - } else { - /* Attempt to find a file extension */ - ptr = UTIL_GetExtension(file); - /* Add an extension if there's none there */ - if (!ptr) - { -#if defined WIN32 || defined _WIN32 - ext = ".dll"; -#else - ext = "_i486.so"; -#endif - } else { - ext = ""; - } - /* Format the new path */ - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s%s", g_ModPath.c_str(), file, ext); - id = g_PluginMngr.Load(full_path, Pl_File, already, error, sizeof(error)); - if (id < Pl_MinId || g_PluginMngr.FindById(id)->m_Status < Pl_Paused) - { - LogMessage("[META] Failed to load plugin %s. %s", buffer, error); - } else { - if (already) - skipped++; - else - total++; - } - } - } - fclose(fp); - - if (skipped) - { - LogMessage("[META] Loaded %d plugins from file (%d already loaded)", total, skipped); - } else { - LogMessage("[META] Loaded %d plugins from file.", total); - } - - return total; -} - -/* Wrapper function. This is called when the GameDLL thinks it's using - * the engine's real engineFactory. - */ -void *EngineFactory(const char *iface, int *ret) -{ - IFACE_MACRO(g_Engine.engineFactory, Engine); -} - -/* Wrapper function. This is called when the GameDLL thinks it's using - * the engine's real physicsFactory. - */ -void *PhysicsFactory(const char *iface, int *ret) -{ - IFACE_MACRO(g_Engine.physicsFactory, Physics); -} - -/* Wrapper function. This is called when the GameDLL thinks it's using - * the engine's real fileSystemFactory. - */ -void *FileSystemFactory(const char *iface, int *ret) -{ - IFACE_MACRO(g_Engine.fileSystemFactory, FileSystem); -} - -void LogMessage(const char *msg, ...) -{ - va_list ap; - static char buffer[2048]; - - va_start(ap, msg); - size_t len = vsnprintf(buffer, sizeof(buffer) - 2, msg, ap); - va_end(ap); - - buffer[len++] = '\n'; - buffer[len] = '\0'; - - if (!g_Engine.engine) - { - fprintf(stdout, "%s", buffer); - } else { - g_Engine.engine->LogPrint(buffer); - } -} - -void LevelShutdown_handler(void) -{ - if (!bInFirstLevel) - { - char full_path[255]; - - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), GetPluginsFile()); - LoadPluginsFromFile(full_path); - - g_SmmAPI.PathFormat(full_path, sizeof(full_path), "%s/%s", g_ModPath.c_str(), GetMetamodBaseDir()); - LookForVDFs(full_path); - } - else - { - bInFirstLevel = false; - } - - g_bLevelChanged = true; - - ITER_EVENT(OnLevelShutdown, ()); - - RETURN_META(MRES_IGNORED); -} - -bool LevelInit_handler(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background) -{ - if (!g_SmmAPI.CmdCacheSuccessful()) - { - LogMessage("[META] Warning: Failed to initialize Con_Printf. Defaulting to Msg()."); - LogMessage("[META] Warning: Console messages will not be redirected to rcon console."); - } - - ITER_EVENT(OnLevelInit, (pMapName, pMapEntities, pOldLevel, pLandmarkName, loadGame, background)); - - RETURN_META_VALUE(MRES_IGNORED, false); -} - -#if defined __GNUC__ && (__GNUC__ == 3 || __GNUC__ == 4) -void * operator new(size_t size) { - return(calloc(1, size)); -} - -void * operator new[](size_t size) { - return(calloc(1, size)); -} - -void operator delete(void * ptr) { - if(ptr) - free(ptr); -} - -void operator delete[](void * ptr) { - if(ptr) - free(ptr); -} -#endif diff --git a/sourcemm/sourcemm.h b/sourcemm/sourcemm.h deleted file mode 100644 index 6b8ab2a..0000000 --- a/sourcemm/sourcemm.h +++ /dev/null @@ -1,131 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_SOURCEMM_H -#define _INCLUDE_SOURCEMM_H - -/** - * @brief SourceMM main functionality for GameDLL interception - * @file sourcemm.h - */ - -#include -#include -#include -#include -#include -#include "ISmmAPI.h" -#include "CPlugin.h" -#include "oslink.h" -#include "util.h" -#include "svn_version.h" - -/** - * Versioning - * increase api_major when API breaks - * increase api_minor when new functions are added (non-breaking) - */ -#define SOURCEMM_VERSION SVN_FILE_VERSION_STRING -#define SOURCEMM_DATE __DATE__ -#define SM_VERS_API_MAJOR 1 //increase this on a breaking change -#define SM_VERS_API_MINOR 5 //increase this on a non-breaking API change - -//We need a good CServerGameDLL version to work properly. We support these inclusively. -#define MIN_GAMEDLL_VERSION 3 -#define MAX_GAMEDLL_VERSION 8 - -/** - * @brief Entry point for HL2 Engine - */ -SMM_API void *CreateInterface(const char *name, int *code); - -/** @brief Wrapper to catch GameDLL calls */ -void *EngineFactory(const char *name, int *code); - -/** @brief Wrapper to catch GameDLL calls */ -void *PhysicsFactory(const char *name, int *code); - -/** @brief Wrapper to catch GameDLL calls */ -void *FileSystemFactory(const char *name, int *code); - -/** @brief Loads all plugins found in a file */ -int LoadPluginsFromFile(const char *file); - -/** @brief Logs a message to the standard log file */ -void LogMessage(const char *msg, ...); - -/** @brief Stores information about the GameDLL */ -struct GameDllInfo -{ - bool loaded; - HINSTANCE lib; - CreateInterfaceFn factory; - IServerGameDLL *pGameDLL; - IServerGameClients *pGameClients; -}; - -/** @brief Stores information about the HL2 Engine pointers */ -struct EngineInfo -{ - EngineInfo() : loaded(false), original(false), - engineFactory(NULL), physicsFactory(NULL), fileSystemFactory(NULL), - pGlobals(NULL), icvar(NULL), engine(NULL) - { }; - bool loaded; - bool original; - CreateInterfaceFn engineFactory; - CreateInterfaceFn physicsFactory; - CreateInterfaceFn fileSystemFactory; - CGlobalVars *pGlobals; - ICvar *icvar; - IVEngineServer *engine; -}; - -bool AlternatelyLoadMetamod(CreateInterfaceFn ifaceFactory, CreateInterfaceFn serverFactory); - -/** @brief Global variable for GameDLL info */ -extern GameDllInfo g_GameDll; - -/** @brief Global variable for Engine info */ -extern EngineInfo g_Engine; - -/** @brief Global singleton for SourceHook */ -extern SourceHook::CSourceHookImpl g_SourceHook; - -/** @brief Mod path (important!)*/ -extern SourceHook::String g_ModPath; - -/** @brief Path to server binary */ -extern SourceHook::String g_BinPath; - -/** @brief Path to SourceMM binary */ -extern SourceHook::String g_SmmPath; - -/** @brief Global variable for SourceHook macros */ -extern SourceHook::ISourceHook *g_SHPtr; - -/** @brief We have our own internal plugin id... */ -extern PluginId g_PLID; - -/** @brief ServerGameDLL version that is currently loaded */ -extern int g_GameDllVersion; - -extern bool bGameInit; -extern bool g_bLevelChanged; - -void UnloadMetamod(bool shutting_down); - -/** @brief Global CallClass for IServerGameDLL */ -extern SourceHook::CallClass *g_GameDllPatch; - -/** @brief Global CallClass for ICvar */ -extern SourceHook::CallClass *g_CvarPatch; - -#endif //_INCLUDE_SOURCEMM_H diff --git a/sourcemm/stub_mm/LICENSE.txt b/sourcemm/stub_mm/LICENSE.txt deleted file mode 100644 index 2618fa4..0000000 --- a/sourcemm/stub_mm/LICENSE.txt +++ /dev/null @@ -1,29 +0,0 @@ -The software is Copyright (C) 2004-2008, Metamod:Source Development Team. - -Metamod:Source is distributed under the "zLib/libpng" license, which is reproduced -below: - ------------------------------------------------------------------------------ - -This software is provided "as-is", without any express or implied warranty. -In no event will the authors be held liable for any damages arising from -the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software in - a product, an acknowledgment in the product documentation would be - appreciated but is not required. - -2. Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. - ------------------------------------------------------------------------------ - -The zLib/libpng license has been approved by the "Open Source Initiative" -organization. diff --git a/sourcemm/stub_mm/Makefile b/sourcemm/stub_mm/Makefile deleted file mode 100644 index 3b9c67e..0000000 --- a/sourcemm/stub_mm/Makefile +++ /dev/null @@ -1,66 +0,0 @@ -#(C)2004-2008 SourceMM Development Team -# Makefile written by David "BAILOPAN" Anderson - -HL2SDK = ../../../hl2sdk -SMM_ROOT = ../.. -SRCDS = ~/srcds - -### EDIT BELOW FOR OTHER PROJECTS ### - -OPT_FLAGS = -O3 -funroll-loops -s -pipe -GCC4_FLAGS = -fvisibility=hidden -fvisibility-inlines-hidden -DEBUG_FLAGS = -g -ggdb3 -CPP = gcc-4.1 -BINARY = stub_mm_i486.so - -HL2PUB = $(HL2SDK)/public - -OBJECTS = stub_mm.cpp - -LINK = vstdlib_i486.so tier0_i486.so -static-libgcc - -INCLUDE = -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/dlls -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ - -I$(HL2PUB)/vstdlib -I$(HL2SDK)/tier1 -I$(SMM_ROOT) -I$(SMM_ROOT)/sourcehook -I$(SMM_ROOT)/sourcemm - -ifeq "$(DEBUG)" "true" - BIN_DIR = Debug - CFLAGS = $(DEBUG_FLAGS) -else - BIN_DIR = Release - CFLAGS = $(OPT_FLAGS) -endif - -GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) - -CFLAGS += -D_LINUX -DNDEBUG -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Wno-non-virtual-dtor -Werror -fPIC -fno-exceptions -fno-rtti -msse - -ifeq "$(GCC_VERSION)" "4" - CFLAGS += $(GCC4_FLAGS) -endif - -OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) - -$(BIN_DIR)/%.o: %.cpp - $(CPP) $(INCLUDE) $(CFLAGS) -o $@ -c $< - -all: - mkdir -p $(BIN_DIR) - ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so - ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so - $(MAKE) sourcemm - rm -rf $(BINARY) - ln -sf $(BIN_DIR)/$(BINARY) $(BINARY) - -sourcemm: $(OBJ_LINUX) - $(CPP) $(INCLUDE) $(CFLAGS) $(OBJ_LINUX) $(LINK) -shared -ldl -lm -o$(BIN_DIR)/$(BINARY) - -debug: - $(MAKE) all DEBUG=true - -default: all - -clean: - rm -rf Release/*.o - rm -rf Release/$(BINARY) - rm -rf Debug/*.o - rm -rf Debug/$(BINARY) diff --git a/sourcemm/stub_mm/msvc7/stub_mm.sln b/sourcemm/stub_mm/msvc7/stub_mm.sln deleted file mode 100644 index 0567903..0000000 --- a/sourcemm/stub_mm/msvc7/stub_mm.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stub_mm", "stub_mm.vcproj", "{836E726E-AB80-43AB-9A8F-0E6EE680B0F6}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Debug.ActiveCfg = Debug|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Debug.Build.0 = Debug|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Release.ActiveCfg = Release|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/sourcemm/stub_mm/msvc7/stub_mm.vcproj b/sourcemm/stub_mm/msvc7/stub_mm.vcproj deleted file mode 100644 index aaed89b..0000000 --- a/sourcemm/stub_mm/msvc7/stub_mm.vcproj +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/stub_mm/msvc8/stub_mm.sln b/sourcemm/stub_mm/msvc8/stub_mm.sln deleted file mode 100644 index 4e0655b..0000000 --- a/sourcemm/stub_mm/msvc8/stub_mm.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stub_mm", "stub_mm.vcproj", "{836E726E-AB80-43AB-9A8F-0E6EE680B0F6}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Debug|Win32.ActiveCfg = Debug|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Debug|Win32.Build.0 = Debug|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Release|Win32.ActiveCfg = Release|Win32 - {836E726E-AB80-43AB-9A8F-0E6EE680B0F6}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/sourcemm/stub_mm/msvc8/stub_mm.vcproj b/sourcemm/stub_mm/msvc8/stub_mm.vcproj deleted file mode 100644 index ed30615..0000000 --- a/sourcemm/stub_mm/msvc8/stub_mm.vcproj +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sourcemm/stub_mm/stub_mm.cpp b/sourcemm/stub_mm/stub_mm.cpp deleted file mode 100644 index 0143a76..0000000 --- a/sourcemm/stub_mm/stub_mm.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* ======== stub_mm ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include -#include "stub_mm.h" - -SH_DECL_HOOK3_void(IServerGameDLL, ServerActivate, SH_NOATTRIB, 0, edict_t *, int, int); - -StubPlugin g_StubPlugin; - -PLUGIN_EXPOSE(SamplePlugin, g_StubPlugin); - -void ServerActivate_handler(edict_t *pEdictList, int edictCount, int clientMax) -{ - META_LOG(g_PLAPI, "ServerActivate() called: edictCount=%d, clientMax=%d", edictCount, clientMax); - RETURN_META(MRES_IGNORED); -} - -bool StubPlugin::Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late) -{ - PLUGIN_SAVEVARS(); - - GET_V_IFACE_ANY(serverFactory, m_ServerDll, IServerGameDLL, INTERFACEVERSION_SERVERGAMEDLL); - - SH_ADD_HOOK_STATICFUNC(IServerGameDLL, ServerActivate, m_ServerDll, ServerActivate_handler, true); - - return true; -} - -bool StubPlugin::Unload(char *error, size_t maxlen) -{ - SH_REMOVE_HOOK_STATICFUNC(IServerGameDLL, ServerActivate, m_ServerDll, ServerActivate_handler, true); - - return true; -} - -bool StubPlugin::Pause(char *error, size_t maxlen) -{ - return true; -} - -bool StubPlugin::Unpause(char *error, size_t maxlen) -{ - return true; -} - -void StubPlugin::AllPluginsLoaded() -{ - //This is an example of inter-plugin communication - PluginId id; - void *ptr = g_SMAPI->MetaFactory("SamplePlugin", NULL, &id); - if (ptr) - { - META_LOG(g_PLAPI, "Found Sample Plugin[%d] at (%p)!", id, ptr); - } else { - META_LOG(g_PLAPI, "Did not find Sample Plugin!"); - } -} - -const char *StubPlugin::GetAuthor() -{ - return "AUTHOR"; -} - -const char *StubPlugin::GetName() -{ - return "Stub Plugin"; -} - -const char *StubPlugin::GetDescription() -{ - return "Stub Plugin"; -} - -const char *StubPlugin::GetURL() -{ - return "http://www.mysite.com/"; -} - -const char *StubPlugin::GetLicense() -{ - return "zlib/libpng"; -} - -const char *StubPlugin::GetVersion() -{ - return "1.00"; -} - -const char *StubPlugin::GetDate() -{ - return __DATE__; -} - -const char *StubPlugin::GetLogTag() -{ - return "STUB"; -} diff --git a/sourcemm/stub_mm/stub_mm.h b/sourcemm/stub_mm/stub_mm.h deleted file mode 100644 index a5436dd..0000000 --- a/sourcemm/stub_mm/stub_mm.h +++ /dev/null @@ -1,45 +0,0 @@ -/* ======== stub_mm ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_SAMPLEPLUGIN_H -#define _INCLUDE_SAMPLEPLUGIN_H - -#include - -class StubPlugin : public ISmmPlugin -{ -public: - bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late); - bool Unload(char *error, size_t maxlen); - bool Pause(char *error, size_t maxlen); - bool Unpause(char *error, size_t maxlen); - void AllPluginsLoaded(); -public: - const char *GetAuthor(); - const char *GetName(); - const char *GetDescription(); - const char *GetURL(); - const char *GetLicense(); - const char *GetVersion(); - const char *GetDate(); - const char *GetLogTag(); -private: - IServerGameDLL *m_ServerDll; - IServerGameDLL *m_ServerDll_CC; -}; - -extern StubPlugin g_StubPlugin; - -PLUGIN_GLOBALVARS(); - -//Called on ServerActivate. Same definition as server plugins -void ServerActivate_handler(edict_t *pEdictList, int edictCount, int clientMax); - -#endif //_INCLUDE_SAMPLEPLUGIN_H diff --git a/sourcemm/svn_version.h b/sourcemm/svn_version.h deleted file mode 100644 index 972dec2..0000000 --- a/sourcemm/svn_version.h +++ /dev/null @@ -1,13 +0,0 @@ -/** This file is autogenerated by build scripts */ - -#ifndef _INCLUDE_SVN_VERSION_H_ -#define _INCLUDE_SVN_VERSION_H_ - -#define SVN_PRODUCT_VERSION "1.4.4" - -#define SVN_REVISION 705 -#define SVN_REVISION_STRING "705" -#define SVN_FILE_VERSION 1,4,4,705 -#define SVN_FILE_VERSION_STRING "1.4.4.705" - -#endif //_INCLUDE_SVN_VERSION_H_ diff --git a/sourcemm/svn_version.tpl b/sourcemm/svn_version.tpl deleted file mode 100644 index 9b93d57..0000000 --- a/sourcemm/svn_version.tpl +++ /dev/null @@ -1,13 +0,0 @@ -/** This file is autogenerated by build scripts */ - -#ifndef _INCLUDE_SVN_VERSION_H_ -#define _INCLUDE_SVN_VERSION_H_ - -#define SVN_PRODUCT_VERSION "$PMAJOR$.$PMINOR$.$PREVISION$" - -#define SVN_REVISION $GLOBAL_BUILD$ -#define SVN_REVISION_STRING "$GLOBAL_BUILD$" -#define SVN_FILE_VERSION $PMAJOR$,$PMINOR$,$PREVISION$,$GLOBAL_BUILD$ -#define SVN_FILE_VERSION_STRING "$PMAJOR$.$PMINOR$.$PREVISION$.$GLOBAL_BUILD$" - -#endif //_INCLUDE_SVN_VERSION_H_ diff --git a/sourcemm/util.cpp b/sourcemm/util.cpp deleted file mode 100644 index 035298b..0000000 --- a/sourcemm/util.cpp +++ /dev/null @@ -1,424 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include -#include -#include -#include "util.h" -#include "oslink.h" - -/** - * @brief Utility functions - * @file util.cpp - */ - -const char *UTIL_GetExtension(const char *file) -{ - int len = strlen(file); - int i = 0; - - for (i = len - 1; i >= 0; i--) - { - if (file[i] == '/' || file[i] == '\\') - { - return NULL; - } - - if ((file[i] == '.') && (i != len - 1)) - { - return (const char *)&(file[i + 1]); - } - } - - return NULL; -} - -void UTIL_TrimLeft(char *buffer) -{ - /* Let's think of this as our iterator */ - char *i = buffer; - - /* Make sure the buffer isn't null */ - if (i && *i) - { - /* Add up number of whitespace characters */ - while(isspace((unsigned char) *i)) - { - i++; - } - - /* If whitespace chars in buffer then adjust string so first non-whitespace char is at start of buffer */ - if (i != buffer) - { - memmove(buffer, i, (strlen(i) + 1) * sizeof(char)); - } - } -} - -void UTIL_TrimRight(char *buffer) -{ - /* Make sure buffer isn't null */ - if (buffer) - { - size_t len = strlen(buffer); - - /* Loop through buffer backwards while replacing whitespace chars with null chars */ - for (size_t i = len - 1; i >= 0; i--) - { - if (isspace((unsigned char) buffer[i])) - { - buffer[i] = '\0'; - } else { - break; - } - } - } -} - -/* :TODO: this should skip string literals */ -void UTIL_TrimComments(char *buffer) -{ - int num_sc = 0; - size_t len = strlen(buffer); - if (buffer) - { - for (int i = len - 1; i >= 0; i--) - { - if (buffer[i] == '/') - { - if (++num_sc >= 2 && i==0) - { - buffer[i] = '\0'; - return; - } - } else { - if (num_sc >= 2) - { - buffer[i] = '\0'; - return; - } - num_sc = 0; - } - /* size_t won't go below 0, manually break out */ - if (i == 0) - { - break; - } - } - } -} - -void UTIL_KeySplit(const char *str, char *buf1, size_t len1, char *buf2, size_t len2) -{ - size_t start; - size_t len = strlen(str); - - for (start = 0; start < len; start++) - { - if (!isspace(str[start])) - { - break; - } - } - - size_t end; - for (end = start; end < len; end++) - { - if (isspace(str[end])) - { - break; - } - } - - size_t i, c = 0; - for (i = start; i < end; i++, c++) - { - if (c >= len1) - { - break; - } - buf1[c] = str[i]; - } - buf1[c] = '\0'; - - for (start = end; start < len; start++) - { - if (!isspace(str[start])) - { - break; - } - } - - for (c = 0; start < len; start++, c++) - { - if (c >= len2) - { - break; - } - buf2[c] = str[start]; - } - buf2[c] = '\0'; -} - -bool UTIL_PathCmp(const char *path1, const char *path2) -{ - size_t pos1 = 0, pos2 = 0; - - while (true) - { - if (path1[pos1] == '\0' || path2[pos2] == '\0') - { - return (path1[pos1] == path2[pos2]); - } - - if (path1[pos1] == PATH_SEP_CHAR) - { - if (path2[pos2] != PATH_SEP_CHAR) - { - return false; - } - - /* Look for extra path chars */ - while (path1[++pos1]) - { - if (path1[pos1] != PATH_SEP_CHAR) - { - break; - } - } - while (path2[++pos2]) - { - if (path2[pos2] != PATH_SEP_CHAR) - { - break; - } - } - continue; - } - - /* If we're at a different non-alphanumeric, the next character MUST match */ - if (!isalpha(path1[pos1]) && (path1[pos1] != path2[pos2])) - { - return false; - } - - #ifdef WIN32 - if (toupper(path1[pos1]) != toupper(path2[pos2])) - #else - if (path1[pos1] != path2[pos2]) - #endif - { - return false; - } - - pos1++; - pos2++; - } -} - -size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - size_t len = vsnprintf(buffer, maxlength, fmt, ap); - va_end(ap); - - if (len >= maxlength) - { - len = maxlength - 1; - buffer[len] = '\0'; - } - - return len; -} - -inline bool pathchar_isalpha(char a) -{ - return (((a & 1<<7) == 0) && isalpha(a)); -} - -inline bool pathchar_sep(char a) -{ -#if defined WIN32 - return (a == '/' || a == '\\'); -#elif defined __linux__ - return (a == '/'); -#endif -} - -inline bool pathstr_isabsolute(const char *str) -{ -#if defined WIN32 - return (pathchar_isalpha(str[0]) - && str[1] == ':' - && pathchar_sep(str[2])); -#elif defined __linux__ - return (str[0] == '/'); -#endif -} - -inline bool pathchar_cmp(char a, char b) -{ -#if defined WIN32 - if (pathchar_isalpha(a) && pathchar_isalpha(b)) - { - return (tolower(a) == tolower(b)); - } - /* Either path separator is acceptable */ - if (pathchar_sep(a)) - { - return pathchar_sep(b); - } -#endif - return (a == b); -} - -/** - * @brief Forms a relative path given two absolute paths. - * - * @param buffer Buffer to store relative path in. - * @param maxlength Maximum length of the output buffer. - * @param relTo Destination folder to use as a working directory. - * Final folder name should not be pathchar-terminated. - * @param relFrom Source file or folder to use as a target. - * @return True on success, false on failure. - */ -bool UTIL_Relatize(char buffer[], - size_t maxlength, - const char *relTo, - const char *relFrom) -{ - /* We don't allow relative paths in here, force - * the user to resolve these himself! - */ - if (!pathstr_isabsolute(relTo) - || !pathstr_isabsolute(relFrom)) - { - return false; - } - -#if defined WIN32 - /* Relative paths across drives are not possible */ - if (!pathchar_cmp(relTo[0], relFrom[0])) - { - return false; - } - /* Get rid of the drive and semicolon part */ - relTo = &relTo[2]; - relFrom = &relFrom[2]; -#endif - - /* Eliminate the common root between the paths */ - const char *rootTo = NULL; - const char *rootFrom = NULL; - while (*relTo != '\0' && *relFrom != '\0') - { - /* If we get to a new path sequence, start over */ - if (pathchar_sep(*relTo) - && pathchar_sep(*relFrom)) - { - rootTo = relTo; - rootFrom = relFrom; - /* If the paths don't compare, stop looking for a common root */ - } else if (!pathchar_cmp(*relTo, *relFrom)) { - break; - } - relTo++; - relFrom++; - } - - /* NULLs shouldn't happen! */ - if (rootTo == NULL - || rootFrom == NULL) - { - return false; - } - - size_t numLevels = 0; - - /* The root case is special! - * Don't count anything from it. - */ - if (*(rootTo + 1) != '\0') - { - /* Search for how many levels we need to go up. - * Since the root pointer points to a '/', we increment - * the initial pointer by one. - */ - while (*rootTo != '\0') - { - if (pathchar_sep(*rootTo)) - { - /* Check for an improper trailing slash, - * just to be nice even though the user - * should NOT have done this! - */ - if (*(rootTo + 1) == '\0') - { - break; - } - numLevels++; - } - rootTo++; - } - } - - /* Now build the new relative path. */ - size_t len, total = 0; - while (numLevels--) - { - len = _snprintf(&buffer[total], maxlength - total, ".." PATH_SEP_STR); - if (len >= maxlength - total) - { - /* Not enough space in the buffer */ - return false; - } - total += len; - } - - /* Add the absolute path. */ - len = _snprintf(&buffer[total], maxlength - total, "%s", &rootFrom[1]); - if (len >= maxlength - total) - { - return false; - } - - return true; -} - -size_t UTIL_FormatArgs(char *buffer, size_t maxlength, const char *fmt, va_list params) -{ - size_t len = vsnprintf(buffer, maxlength, fmt, params); - - if (len >= maxlength) - { - len = maxlength - 1; - buffer[len] = '\0'; - } - - return len; -} - -bool UTIL_VerifySignature(const void *addr, const char *sig, size_t len) -{ - unsigned char *addr1 = (unsigned char *) addr; - unsigned char *addr2 = (unsigned char *) sig; - - for (size_t i = 0; i < len; i++) - { - if (addr2[i] == '*') - continue; - if (addr1[i] != addr2[i]) - return false; - } - - return true; -} diff --git a/sourcemm/util.h b/sourcemm/util.h deleted file mode 100644 index d8c8260..0000000 --- a/sourcemm/util.h +++ /dev/null @@ -1,130 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_UTIL_H -#define _INCLUDE_UTIL_H - -#include -#include - -/** - * @brief Utility functions - * @file util.h - */ - -#define IA32_JMP_IMM32 '\xE9' - -/** - * @brief Returns a pointer to the extension in a file name. - */ -const char *UTIL_GetExtension(const char *file); - -/** - * @brief Removes C-style comments from string. - */ -void UTIL_TrimComments(char *buffer); - -/** - * @brief Removes whitespace characters from left side of string. - */ -void UTIL_TrimLeft(char *buffer); - -/** - * @brief Removes whitespace characters from right side of string. - */ -void UTIL_TrimRight(char *buffer); - -/** - * @brief Breaks a string at the first space until it reaches a non-space. - */ -void UTIL_KeySplit(const char *str, char *buf1, size_t len1, char *buf2, size_t len2); - -/** - * @brief Compares two file paths. - */ -bool UTIL_PathCmp(const char *path1, const char *path2); - -/** - * @brief Same as snprintf except that it ensures the string buffer is null terminated. - */ -size_t UTIL_Format(char *buffer, size_t maxlength, const char *fmt, ...); - -/** - * @brief Same as vsnprintf except that it ensures the string buffer is null terminated. - */ -size_t UTIL_FormatArgs(char *buffer, size_t maxlength, const char *fmt, va_list params); - -/** - * @brief Forms a relative path given two absolute paths. - * - * @param buffer Buffer to store relative path in. - * @param maxlength Maximum length of the output buffer. - * @param relTo Destination folder to use as a working directory. - * Final folder name should not be pathchar-terminated. - * @param relFrom Source file or folder to use as a target. - * @return True on success, false on failure. - */ -bool UTIL_Relatize(char buffer[], - size_t maxlength, - const char *relTo, - const char *relFrom); - -/** - * @brief Compares memory address against a signature. - * - * @param addr Memory address to check. - * @param sig Signature used to check against memory address. Accept 0x2A as wildcard. - * @param len Length of signature. - * @return True if signature was verified, false otherwise. - */ -bool UTIL_VerifySignature(const void *addr, const char *sig, size_t len); - -/** - * @brief Returns the original function address of a given virtual function. - * - * @param mfp Member function pointer to virtual function. - * @param ptr Pointer to interface in which the virtual function belongs. - * @param cls A CallClass for the interface in which the virtual function belongs. - * @return Address of function originally pointed to by the virtual function. - */ -template -char *UTIL_GetOrigFunction(MFP vfunc, Iface *ptr, SourceHook::CallClass *cls) -{ - SourceHook::MemFuncInfo info = {true, -1, 0, 0}; - SourceHook::GetFuncInfo(vfunc, info); - - /* Get address of original GetUserMessageInfo() */ - char *func = reinterpret_cast(cls->GetOrigFunc(info.vtbloffs, info.vtblindex)); - - /* If we can't get original function, that means there's no hook */ - if (func == NULL) - { - /* Get virtual function address 'manually' then */ - char *adjustedptr = reinterpret_cast(ptr) + info.vtbloffs + info.vtbloffs; - char **vtable = *reinterpret_cast(adjustedptr); - - func = vtable[info.vtblindex]; - } - - /* Check for relative jumps */ - if (func[0] == IA32_JMP_IMM32) - { - /* Get address from displacement... - * - * Add 5 because it's relative to next instruction: - * Opcode <1 byte> + 32-bit displacement <4 bytes> - */ - func += *reinterpret_cast(func + 1) + 5; - } - - return func; -} - -#endif //_INCLUDE_UTIL_H diff --git a/sourcemm/version.rc b/sourcemm/version.rc deleted file mode 100755 index 4ce03de..0000000 --- a/sourcemm/version.rc +++ /dev/null @@ -1,102 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "winres.h" -#include "svn_version.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION SVN_FILE_VERSION - PRODUCTVERSION SVN_FILE_VERSION - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "000004b0" - BEGIN - VALUE "Comments", "Metamod: Source" - VALUE "FileDescription", "Metamod: Source" - VALUE "FileVersion", SVN_FILE_VERSION_STRING - VALUE "InternalName", "sourcemm" - VALUE "LegalCopyright", "Copyright (c) 2004-2008, Metamod: Source Development Team" - VALUE "OriginalFilename", "server.dll" - VALUE "ProductName", "Metamod: Source" - VALUE "ProductVersion", SVN_PRODUCT_VERSION - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0, 1200 - END -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""winres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/sourcemm/vsp_listener.cpp b/sourcemm/vsp_listener.cpp deleted file mode 100644 index 947fb49..0000000 --- a/sourcemm/vsp_listener.cpp +++ /dev/null @@ -1,194 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#include "vsp_listener.h" -#include "CPlugin.h" -#include "concommands.h" - -SH_DECL_HOOK0_void(ConCommand, Dispatch, SH_NOATTRIB, false); - -using namespace SourceMM; - -VSPListener g_VspListener; -ConCommand *g_plugin_unload = NULL; -bool g_bIsTryingToUnload; - -void InterceptPluginUnloads() -{ - g_bIsTryingToUnload = true; -} - -void InterceptPluginUnloads_Post() -{ - g_bIsTryingToUnload = false; -} - -VSPListener::VSPListener() -{ - m_Loaded = false; - m_Loadable = false; - m_bIsRootLoadMethod = false; -} - -void VSPListener::ClientActive(edict_t *pEntity) -{ -} - -PLUGIN_RESULT VSPListener::ClientCommand(edict_t *pEntity) -{ - return PLUGIN_CONTINUE; -} - -PLUGIN_RESULT VSPListener::ClientConnect(bool *bAllowConnect, edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen) -{ - return PLUGIN_CONTINUE; -} - -void VSPListener::ClientDisconnect(edict_t *pEntity) -{ -} - -void VSPListener::ClientPutInServer(edict_t *pEntity, char const *playername) -{ -} - -void VSPListener::ClientSettingsChanged(edict_t *pEdict) -{ -} - -void VSPListener::SetCommandClient(int index) -{ -} - -void VSPListener::GameFrame(bool simulating) -{ -} - -const char *VSPListener::GetPluginDescription() -{ - return "Metamod:Source Interface v" SOURCEMM_VERSION; -} - -bool VSPListener::IsLoaded() -{ - return m_Loaded; -} - -void VSPListener::LevelInit(char const *pMapName) -{ -} - -void VSPListener::LevelShutdown() -{ -} - -PLUGIN_RESULT VSPListener::NetworkIDValidated(const char *pszUserName, const char *pszNetworkID) -{ - return PLUGIN_CONTINUE; -} - -void VSPListener::Pause() -{ -} - -void VSPListener::UnPause() -{ -} - -void VSPListener::ServerActivate(edict_t *pEdictList, int edictCount, int clientMax) -{ -} - -void VSPListener::Unload() -{ - if (g_bIsTryingToUnload) - { - Error("Metamod:Source cannot be unloaded from VSP mode. Use \"meta unload\" to unload specific plugins.\n"); - return; - } - if (IsRootLoadMethod()) - { - if (g_plugin_unload != NULL) - { - SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads, false); - SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads_Post, true); - g_plugin_unload = NULL; - } - g_SMConVarAccessor.UnloadMetamodCommands(); - UnloadMetamod(false); - } - m_Loadable = true; - m_Loaded = false; - m_bIsRootLoadMethod = false; -} - -void VSPListener::SetLoadable(bool set) -{ - m_Loadable = set; -} - -bool VSPListener::IsRootLoadMethod() -{ - return m_bIsRootLoadMethod; -} - -bool VSPListener::Load(CreateInterfaceFn interfaceFactory, CreateInterfaceFn gameServerFactory) -{ - if (m_Loaded) - { - return false; - } - - if (!m_Loadable && !g_GameDll.loaded) - { - /* New loading mechanism, do a bunch o' stuff! */ - m_bIsRootLoadMethod = true; - m_Loaded = true; - SetLoadable(false); - if (!AlternatelyLoadMetamod(interfaceFactory, gameServerFactory)) - { - return false; - } - - ConCommandBase *pBase = g_Engine.icvar->GetCommands(); - while (pBase != NULL) - { - if (pBase->IsCommand() && strcmp(pBase->GetName(), "plugin_unload") == 0) - { - g_plugin_unload = (ConCommand *)pBase; - break; - } - pBase = const_cast(pBase->GetNext()); - } - - if (g_plugin_unload != NULL) - { - SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads, false); - SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, g_plugin_unload, InterceptPluginUnloads_Post, true); - } - - /* Ho ho ho... if we get here, set a new cvar version. */ - extern ConVar metamod_version; - char buffer[255]; - - UTIL_Format(buffer, sizeof(buffer), "%sV", metamod_version.GetString()); - metamod_version.SetValue(buffer); - } - - m_Loaded = true; - SetLoadable(false); - - if (!m_bIsRootLoadMethod) - { - g_PluginMngr.SetVSPAsLoaded(); - } - - return true; -} diff --git a/sourcemm/vsp_listener.h b/sourcemm/vsp_listener.h deleted file mode 100644 index 8c9a0b8..0000000 --- a/sourcemm/vsp_listener.h +++ /dev/null @@ -1,51 +0,0 @@ -/* ======== SourceMM ======== - * Copyright (C) 2004-2008 Metamod:Source Development Team - * No warranties of any kind - * - * License: zlib/libpng - * - * Author(s): David "BAILOPAN" Anderson - * ============================ - */ - -#ifndef _INCLUDE_SOURCEMM_VSPLISTENER_H_ -#define _INCLUDE_SOURCEMM_VSPLISTENER_H_ - -#include "sourcemm.h" -#include "iserverplugin.h" - -class VSPListener : public IServerPluginCallbacks -{ -public: - VSPListener(); -public: - virtual bool Load(CreateInterfaceFn interfaceFactory, CreateInterfaceFn gameServerFactory); - virtual void Unload(); - virtual void Pause(); - virtual void UnPause(); - virtual const char *GetPluginDescription(); - virtual void LevelInit(char const *pMapName); - virtual void ServerActivate(edict_t *pEdictList, int edictCount, int clientMax); - virtual void GameFrame(bool simulating); - virtual void LevelShutdown(void); - virtual void ClientActive(edict_t *pEntity); - virtual void ClientDisconnect(edict_t *pEntity); - virtual void ClientPutInServer(edict_t *pEntity, char const *playername); - virtual void SetCommandClient(int index); - virtual void ClientSettingsChanged(edict_t *pEdict); - virtual PLUGIN_RESULT ClientConnect(bool *bAllowConnect, edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen); - virtual PLUGIN_RESULT ClientCommand(edict_t *pEntity); - virtual PLUGIN_RESULT NetworkIDValidated(const char *pszUserName, const char *pszNetworkID); -public: - bool IsLoaded(); - void SetLoadable(bool loadable); - bool IsRootLoadMethod(); -private: - bool m_Loaded; - bool m_Loadable; - bool m_bIsRootLoadMethod; -}; - -extern VSPListener g_VspListener; - -#endif //_INCLUDE_SOURCEMM_VSPLISTENER_H_ From 3a7197038daf5b48ae71eea22876cae9bfff3012 Mon Sep 17 00:00:00 2001 From: Scott Ehlert Date: Sun, 24 Aug 2008 04:24:53 +0000 Subject: [PATCH 52/52] Fixed amb1952: Crash when first plugin listed in metaplugins.ini had an alias and was not on the first line of the file. --HG-- branch : sourcemm-1.4.x extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.x%40708 --- sourcemm/changelog.txt | 4 +++ sourcemm/sourcemm.cpp | 66 ++++++++++++++++++++++++++++-------------- 2 files changed, 49 insertions(+), 21 deletions(-) diff --git a/sourcemm/changelog.txt b/sourcemm/changelog.txt index 93e8a76..a630813 100644 --- a/sourcemm/changelog.txt +++ b/sourcemm/changelog.txt @@ -1,3 +1,7 @@ +2008/??/?? 1.4.5: + - Fixed amb1952: Crash when first plugin listed in metaplugins.ini had an alias + and was not on the first line of the file. + 2008/07/26 1.4.4: - Fixed a bug where loading plugins built for MM:S 1.3 or older (API ver <= 9) would cause a crash. diff --git a/sourcemm/sourcemm.cpp b/sourcemm/sourcemm.cpp index 5fa436d..53c1e53 100644 --- a/sourcemm/sourcemm.cpp +++ b/sourcemm/sourcemm.cpp @@ -826,21 +826,22 @@ int LoadPluginsFromFile(const char *_file) char buffer[255], error[255], full_path[255]; const char *ptr, *ext, *file; size_t length; - while (!feof(fp)) + while (!feof(fp) && fgets(buffer, sizeof(buffer), fp) != NULL) { - buffer[0] = '\0'; - fgets(buffer, sizeof(buffer), fp); - length = strlen(buffer); - if (!length) - continue; - if (buffer[length-1] == '\n') - buffer[--length] = '\0'; - UTIL_TrimLeft(buffer); UTIL_TrimRight(buffer); - if (buffer[0] == '\0' || buffer[0] == ';' || strncmp(buffer, "//", 2) == 0) + length = strlen(buffer); + if (!length) + { continue; + } + + if (buffer[0] == '\0' || buffer[0] == ';' || strncmp(buffer, "//", 2) == 0) + { + continue; + } + file = buffer; if (buffer[0] == '"') { @@ -856,7 +857,9 @@ int LoadPluginsFromFile(const char *_file) } cptr++; } - } else { + } + else + { char *cptr = buffer; while (*cptr) { @@ -864,7 +867,9 @@ int LoadPluginsFromFile(const char *_file) { char *optr = cptr; while (*cptr && isspace(*cptr)) + { cptr++; + } *optr = '\0'; UTIL_TrimRight(cptr); if (*cptr && isalpha(*cptr)) @@ -889,13 +894,21 @@ int LoadPluginsFromFile(const char *_file) if (id < Pl_MinId || g_PluginMngr.FindById(id)->m_Status < Pl_Paused) { LogMessage("[META] Failed to load plugin %s. %s", buffer, error); - } else { - if (already) - skipped++; - else - total++; } - } else { + else + { + if (already) + { + skipped++; + } + else + { + total++; + } + } + } + else + { /* Attempt to find a file extension */ ptr = UTIL_GetExtension(file); /* Add an extension if there's none there */ @@ -906,7 +919,9 @@ int LoadPluginsFromFile(const char *_file) #else ext = "_i486.so"; #endif - } else { + } + else + { ext = ""; } /* Format the new path */ @@ -915,11 +930,17 @@ int LoadPluginsFromFile(const char *_file) if (id < Pl_MinId || g_PluginMngr.FindById(id)->m_Status < Pl_Paused) { LogMessage("[META] Failed to load plugin %s. %s", buffer, error); - } else { + } + else + { if (already) + { skipped++; + } else + { total++; + } } } } @@ -928,13 +949,16 @@ int LoadPluginsFromFile(const char *_file) if (skipped) { LogMessage("[META] Loaded %d plugins from file (%d already loaded)", total, skipped); - } else { + } + else + { LogMessage("[META] Loaded %d plugins from file.", total); } - + return total; } + /* Wrapper function. This is called when the GameDLL thinks it's using * the engine's real engineFactory. */

      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%0DRK ziwCroHO}0}2sj_78Hdq*@P&E|;}?qkfnTre^uyqxIO~r~9{L>e;=}Jtm`Ik2VH>f$ zt3do|P=zrl+&6%aLmO2wLBZ4+Z&?4h)b0%-na2dg=tq@5L;T|vy!?p1CT5OQ-eQtE zC&7b1Qn;`@TRD0k5*|ju!eEz?yEJk=VwiMN9thJ>{u=;53Z1Q4=h66dW9fYJvliqV zJW>z>rPyF?Y-rC*hPqsLbpIeZ%NpkXjQnrsFwI}<*^egm7fFU2aEP9prq_ zwA)z=Hl>?36*WDWYPzqj^+CBJM@$iYFcrN=r1~BOq+|D_Vh?sl9|4Z)q%$r^<0BhX z&${S?k<4c`ppWTmY(u~OoxFy!c~=HNu^DN4ga+WCO|5d_$t^W0OP~_gCAY!^tV>59 zNtc>MMl=@H@|aq#meTU*x^Ac87+cphpO)|F`!Fl2f5?~RM&v_Q&4<#_O@^48(y{w& z^}CO#x~2zPKa`H%$Hjv9HR;$UEvg)!zMI72te+3d!0mnMLb@_eSF*mGmySJT2GJfG zHHele-JOc9qe4JRo9%U;Ho<~iUfj20Ol4@1Um4EaiXxe3=_=0R5TDR|Q@|nLI_eT> zH;JTLRNSWXISG*0>Zp-3DPX)%AUS7p>wl!0)~2Itsa+MdOGVcwTi1`oKah^CXIiMj zoV_Jm9}eLWLzP>vrT^i!=XFS$e5p{!XX~U=g9&I52(7&=rXU`6_DYj4V`r7x=(e7j z(pyJsbRy=5%pw}^VhRV3Rw?TXn87rPX6SN7@GCs>r%GSYl2l%sjmn-_$Z zY#?8#eo1PYev|#BS6_Qw>Z9IM*MwnFe=w3t9B6y>rb*oMIgd@PlB6f-P-A3ws&zQo zRh<2)sWg2%{ZUV;TZb_NsNilW^O97VGTivV54?V@^7@1Nt$MxsHBTO`U%c#(P`_(0 zyI|&fFPk~j=x>-_VlZxi{|z6US3H4cM%w?LZwWPFiKD~po>G?$r0g z%S))j zD^+gG$kpCcMo+^xSnv)0XfCcfX(LsLe``4(RJVsXyngX6IKB zKfyi7I?UYJIJqfEyro$<=RIw$E>6zfEH*4YVWd(I&7wQrMi)1pXwOOpep~-ksJw6g zxBprnk@IKUiOW#Z*HK_y#rGaWMuS2{Au1FIUSi?8((fpU5e5vxLe(k$RvuIV9Wyd5 z|Mx?rFxCs^sla>j+Zr_A4(DO*TM)GGV(ie`Sws$k_oDT*P9=uZ72gxo#=!X~)KAuE z`_vl08j;mfVe5(>@Ewx1_rmT|jYA!hWfb1v4Y^^=+^bhpWq|ov?Mh@dOAgJseMZJl z`*9bH=0j#-;dfxl0*7J}yKJx>KN~)b#Vqs_4yd42b+g`bppnY_f&3v^-rN#QaX$1UEDagg{?F4G_NqrZ@PsN!Y5Bv5nLUz*|wx0ugg(cX)R*d(& z#Z0%K1CJBK1)KWj9$e?Sji~6K&A_VUP(h+#R~HvrO*WaiS1NbhZ$FegwJW^dd*2pA zicChY+@J8%d;5L7>YVH-l%M>&E*L#W#L_=N8#16!(Vlv5WQWlJA~B-nCu}+ZDJ%8q z(a*mtdh~=!`ly#~w+C!3WYk26(7r}*r)3NKL}*{V_x-1>e$CZ19UU~Rg1G>0DX@bA$Nt~l^pLwx3|4^xFv1`16-ZwV=mk&!xVX8d6S zM87r&(_ng7D^q29evKI{{MHJ2kzvSK%`8_x;_YzlmyfDXiVs`YRUY`usz)jAxNfAf z$7v2T`TQwxWCAj7eqZzWnDfi!###shEb)=@s=VafeVU??)f}sZTB6NW%n6dOpdfY2O3ZKn`DY@1BmJh%;IJQ1P3F&p`h8=^RoeS@ zQXq;kxwMrEX!PFaud}360EbKO=q^!?wPSKkIW*VVE?0Mn^62jk+^gioZsf6& z6U=edP~@?)3O%s{lIc`CtvXM)%}~tRTHM%jzDc?Yy!I!BCgqcja)W=!H5ytjkR*zp zZO)67-dAaT%PdHL1Cj5^ixgOtBQEs8o|hLXuoVq0Z}-7Y$%_=&s`{39_+SU07+WD3 zGQ7x#`CML%VAeFWyw!*KWL~6TPOWdL^MQ6KG-|+A_ew}hL(5xU_X=> zDX{hREtmUX7v@C@>@|%o@A1K&lNTwl?`>$g!UsDkFH&HyuWyO@VE^@B4()`S8e6XP z!S2qB6xbyVEgVZ4(ta~9Qed0wTW0%UznB-P+TPOG!X0QEvQOnj3hb>7EtmLUug{AV z*m!+Qoe%cXyhwq)qp@X<5B99QNP%6^&@$HtTap(U4VSEfJk+<~Slb5e7q+qm(-Y@4 zTctM8*m9{4yDKj~7H-?pL3~3C;vnmcujR!9UP9jbmia#T&*nu7yeMpA%K{(#U*yFL z{5=L9{R9L5uDp1_-)G>b`{1YNMGO2o1OFBud^j&&;MW`YGhlv2f4t3OkpS?U41A5~ zIMF-uq6J>k@y6yN?k7OW<+tZ+c}Y~l!z!WqI3-abAupMiL|UoCsg8$81xI?U%;z75 zMffibRqK~lsFJ={khW`^qdVmd-oM!*5!N#8+=>1)7ohvv=ox-57oaTV4c-&E0A;DD z_x?T?pe$7!Y2*UPg8IUm+`Dqr)O(-G1t`bVMt=!ZHB`v-2JgCD3T2s5?=8v&D9g-7 z@9nt&Ww{Uo$GHGysm4)FEb>4vfU+#afq5=KSr(&V zn+s4WSHMi?0+gk`(OZ`bP?l>NymT%=S>9XkeL5GQEY~-BAIk+O%S{d5dvgKGvZUU7 zS1v$Vnj5`$3@^onu;%5q18=a#^r`77$Z=WVS}09n4U zO4Ho?UM`GW9iod3-s8D2%KD6GVZHa&T$u8T05*DG$b~7dh+c!&nhR525jxBb=fad% z)UDBL%7rPfC>pA$xiIBjZ+Xwng(Qb^Zx( za&C`!-UKI@d-V`mJ(I0R%g39i8xP+y6Czz~n>rZyLFoc;;Yyp6zU%l-zkMol%*RW4 zPqz;K=Bqxm$Z9m^I7llw-k4qXO@j?B$NP)MH~-0BG&m7Pn2c&)aea#%8*0h;VqT=Q zmSid0Uo1W~HWJZ{L}5R*!Li)}Vzu|%f@RFKWWrh@7DGm+Q&qMYS)@6G8wMA`c7vyb z>B=EJ>gM%ex@=g_7#yfniyFPV0=OHt(Jl2}$U!Dss!Sp2N`0p+b#~SUWvcfYf=p>k z)8Os2wJY3RqIebDU7~FIa|NXfIrg&4AKfJvq8z85oz;2cf1)f;`#ET-)1bN;;%;g! zGgnMyX6v}`<%?HximLczAMCR3goxR)3nyr!yEJtPG`P`#X5`1ck6`L>iT%js#BS*( zO*Va$Yk9C96=pv`5$GS5sbA$uT?-MHe6D>=_ywB)?JBObF^*61*9X?Ei~ML3b9b&p z!*0<^jyiOei$40v9?U0y{%9iEjEb!OlGe+cnlBukNZ&I2ICLWYPtxUP-z#7M6DRB@ zPN2xdm5(i@4K0=a6uR{rhfX29>PY)mQ|RivNKK)N#uhnP62JA1yhwqqYG^sx2YX6h zq-JJyeM^-OcK9F0mMO3`jV<*)*q`M^3hdN|7KBX3C2q}&6xiwYE%*bVwjuAUd65G9 zmc|wkjM|30j=V^LeQQI@H3l~1-JBOGu(kCqO+MHw^CAUyMq|shKG^f~A_ex`h89eU z7`s`K7b&pk)weYIU=M!%&`x+;W6RY(*yqMZ#+fgWr}r8<1?1^lj~Hq?`YA@&2vl{0 z_ZL2aiWn(Po^vw1`|qqc_WsR_dy{veF=0$vF(I7z4bzuChFcR&tQ_KmO6M z*!cdMx{`_@TEJ@>y&w6}NGm#dfSg1eH}UY&k6 z9iLipuuI24c%CUwOy1I0=*-k-&sj4e*;UXn5jQa07?0QDPv&hdW#a#)pCw)5L&={P z;gu$rj1(6ovjvHN#p6r)2R?Y?w-0s;aQvhINMyBmP#2nb!2yZ8NV2{7fe$)YG3IMV zWq!puoS6_foH+^Q0_Wgn9}Z_`;Be-2-{DNDb2yXOmO43Gh0Y0QvpgN|v`=^{p7o4D z#VY`COJ{YaXjd`Mi5F=^qyF+UVCw0b;Lysu( z_r+7QzfLE@>5(-P2rH$(BO8mSF8g(65sP%q2X`E1!5(;=57m!wI^xr8Kg+Nq}3b<@r~M7H7Z2u zvfU(3#ZZy0(raa}UeTkCvPC@3$Ru}T_9a{QIV-DAQyixzb+M}W1v)6oX00`$$h})KrQcIGSq(=j2TZGS z7e;qo{jvtkKXlk7uhDka{n>xyZ0Vz&I#`N!nn{gad!CoEmZoiuUe`u76Op$&maDeq zP8u}c2mY7tYHU;0{8%hvpmy3U^{wW4#wcN2puVNhTWd53R%x3h(KV3|J0qMaSrp&J zanm+*2%K|UbVaz971Un#+e2~e8>vHg`w7EncnLYMT!=Av*O{v9bX&CP%)L5b&V2Nd z(Q~Ok&GV?&o1Dxa`8S$74-PVvI6Lq$GHJsmYyFT;aEI3aRn$(1%aqE*JCnTMOlDK} zQw9RUo~oQfgfaH>HeSdhXESB`We0%PYDKf2TTW`;{=%Y=ce(gi#=E43K>a1>Dt9Qp zY=eH?PU0_;bCo9)uSi!qKwOB4PxPK7GqwPJF;UqJK;n{SWowz&+}RKGexdj_IS4vy z6vUXiO!PkOKx_m=_RJv7i5pxgx(71RdkhDZlu}L;gHoiBYxm3~ms~}y8@=-tJ?hXs z5_t?Zbfj{<(G;7mJ4gqzl})9BAk@0im~W`vx-~Ej61a4O5-hcw154AD)9s~!*;|U5 z!SGUS+?kF(8VIG4#|r0Ggc+$5o4w!Y)Rooy0-HeL>=_ahmp3*SAPhB#R7L}ag0kkr zr9?}OeqKX!p~R(D4m4v-lIj+AXXPboo)m5xyz&h;H*HED<%a9^5bh0*H~iIknW$2* z|A`LOMN3zH*xZ3$k8m27fA`mJ-Gc{1r1Yt;r-ilYHEA4H+R=D`24SGrTPSmACJ?ihMo0S_?+Sk@E;oTVj^7Y<}{#0p~ zzHZAMnb;~!>#9vsv~Am8f>oKet-{L2v?UqE+=|i4xP8#8RMzF!jBWHr9#T(XS|ieK zqNqDE(N);cQU@J;_Ou;s&ld{#7EKD=tE>D`oIecs1_8JHqA6%f1i%yL`JJ`17!EFF z9p|dLQPVYDrtg$Z^gcNjbg7g3;T^xkD++GJhvM(wpkItmsQoGeVX3Y15Uj*pHv-!W zH>&&78PzpqfP=JsUpB0$D-jef{#aja6jo#}aziVlq%-_xdbdtAWPlc);)5<22egj^ zG^_395Z{s2p94D>q~D_--v@-T{rLXB&kd3|ji4`uc&;x4jDCw%v`qMERpp)@t-}v& z&>ed1`^=awZ3;SP*WZrqoOeQZ9V&S{&_^{4!ETqs{~dyl9z3u{3ozVZTddxkdNkF@ ze$20R;-+AHuS-{IXt*pW9CSEz)>l<84KV7B!O*-tSEr*Y$_-y{u@MR=v-goNnlYR= zUjH;Vk^e*<#?Z^`12({U^l~f-^!xj*ERQ}3M3>FR0~&Z!CZK^qU;b`%ZhZQ7lACF% zJo;uN$mpAqpsgZ7uTS4}DR?Y>IO9Qo>Lj88x>b(i_P;V=9d1txW{A-vTihKoyY_A` zw)r$J&Xx&h8!}C+8vT{&fBap5vX_9eMu-}`&x|R`pDQYAgT9Og`4nhJv71>zKj(1v z8-M*rz*)w}Sh;%diTm@>Mazv4;qw6^1QfG)EGE33py3GPk1CFEE^qvgYJHn>$oiJO ze(d6Q*4Ki;pB+%M2OwP(1yMh`5kG7grvKINGYslq(akblt~Qh!seA~|;;?1#2pvg& z^qT_a!0a%c!N$RH{gutdgD|zSGxGNPf|gHj3CjpmbFr9KTMl8R=TQZpue~CJG_xt3 zo!uN#W?7;b`kNs0*<{vf5_h|Wr=v^1IN}q4>+DuFcq=v;wurV){DO7RVWNhkqKMYM z@KUO=l=CY1Gp4g$G4t=}a+77!vQr|DnJIzDW2MoD*b~+5F%ErVw&!&@?ZfczTDBeG zX(L*=AKTuxL)IuGkL^j>40Ve*)WS{Syl%Tp^WD3F6&P%~7}E;p+J595p9CCm5$Sk4 zE$o|j%m6RyzHk$}{z&^Ex!4|Yo0%(jlb4^V@5t&Dp*$7D&*Qr&emUP0<4gPGWU7r| z@FzZv2l1Klck&>NiZ^HD4t(2|CBR0DS$4gLZhmG)`ZKpEfE%XB^HqViEw}n9<_9U_ zeu|kviaY!i=)4F<+tw8dz$^*(Er)LIoKdpc<*>a8Mq(-oS_=ig0?`}the6~I<(v!} zqlb{EyeL+oE9!<9S@w5UF&tQZMjf$?Z3$My*_I4zTjFd~4D@|d`m%=@!x^d6h8})? zYkBCX5cv&C#Ux)|x)R%A(N~h* zIUUhgvehnj{)!V_?4p&ET{sMW3EehzcE zM+ACkAC!Fl*U2qYBHxfdx%Fmwtsgt7%OuwLmZpvQmMw_4rladq(M>_&oAL|SOycTg zQS=eg$Wrk0vK<@Wlh)1FP3hUj5a_E9F z5ft)Xnt>IKxrMt&vaz<36OH#S4ONsZ9|4j@oCA{%>{`wGEJN5 zQu*BT!?BD(I6}XDbUV~^AI2uI?L5Mb4)fuFr~w(1cjH=H4QvJ@Zr&G4OgC{c;&sWS zSaMjz0|_e$dYpXt%K**Mf}Wgw_%9w1;y+^YVNh!~w-kK&@a{(MYZ(4}gxSJtH5M zD!ZiHGQ+dSdZH>6f19;2R!yoZx~+#CyG@KO`&P0r09OVQOJv`-&hNg&G-Yxbd&syO zB}Lcc&Ln|#PW+S28%Q5in@buTzCU669je`H^870ehFz`brQjpNN}No?W4*96wqkSN zr5Dhl?D76EVw6MM;wW#&^`|HHK3 zpE&3wg*p6a*7!&1+o4S6R>@hoINZL32X$3Y9i9QHGnd_F>xSn= zX%{Qi1_Gr~x&2<7e90%RZ|qEoNbk&h6dY#pkj!mtEacfMaYJiy^g$!-+Anms zUqk6y>tJ|Nnd^B`4=b>-`3m@RF+Vc7=l$C1R{>cy?W~>3a<9^N6$0fZ9tbh>_j(o? zvcTk%dM%D*WciluvQ(t*JU5+D=$eX{is-oa1H7~pM;>k0L%r9Rwzj0&>v_%AzINhO z*1_1sSK{Q8`qp8GHHE{Do1cL-F}Rs43U|92cTD2yY)M}uNm&SsWR5L1=>6U5qgf4( z3dR4ZiEKSAWvfsu6NjZmAg1_r#<(zk65o~aa=uTBV+AT4iL}dHg~gFLT$#8C8X3JHa-FW(zl-w=rMda{g&)2ghPjUuD};p(_rM$ z&-|aS0A*_X4t~;Q?*#%=nS+v4rJl31H(akEt-z(JGCgDJr1B<(aaA;0x>1j;X=O_k zM;-oM!T6)%ja8sQb#j`Kk>O}gU*I%C*^>xYPcuHUfuitAwM%47 zyx{3P6<{DNFdj!wHDcnM&1JCrJqEF+)rT{7@WX?hH2jbWor>k3#GDQIk^Vcwk7fL@ z>$Lh}OA>!x!&#JC2dtve0c${Z5dlI7xNfU?_U!}+8(0!umZ^pT|5F$*vznATkc%@) zm31wJg@QQhc+{Fbk-LmfiF633m_1;VCPZ!D}}x4v1D8LxHitJ<1FjnX$%q3Gg9B=yljOp#%U;eZCnbc90Q z0@A04K(qFd$m&a>Iq9p4H*6O&URPE7>-NsniKG{~jI{Ugz2R1(bP85MQtzJ;g12{W zR9Iwnp)$WoM)jLF!DG~q{E(tX1fFK8$N}Fz!+C$v%w5IT-g5oInRD^HFq}%{)qXiCU`GrQcOP z>zSqL`U$gsvb6mfj5I{fz?}dalD{(*$L_EDvGwIe^gsv zT326w8>Zm~E?Zjn+-=XMqX$NTyF9h=Eu~l=NhNwCt9vPFvp5uQ-{%;hZ5cME8L`?; zgPGXghV)fc^_=PKu5bPUx4PLxsq@fB(&pf+V1Jy2}J7Hk2_{R*F!++Obh&^=VcF*7GB)%Xu_= z7M+YH1uf(!%|bJjfi1hPKGiyqm-Bg{$72&`{RDKmVKDN!E$YyPUn!0}Rx!J%I}=}9 zoGJYgE^%h$plcE2# z@}NI${pC=DblD^HL;DU$QF=?fE{zAeM7Zup%O}_Vd)=+!$X(yiq?!jRCJv-OSewgM930HR_hp?ExoZV-5WH+k_rcqaamsFdl(ska!6hv;2OFa|x$^nj*AAcA0^pN7??@3=< ztzxgNP_frmxnePjHMU?Y5^0=)NjyP|X3{kqR1x}YAhKGgAlW7P;qiAGy;)q&u!eW*5v`y(4jO-k7Q|E~!OT zk<}O2o{nBwQ$0IVI=iE~e9aWmtba}4Ufup8QU>CKUf3R4eL1gOGI8^6BJ=K(;oD2o z@2bpx6!7K@hZbaG( zd2AjKarjYssC^{f=#!RSg052%c8&45&AZ%dx~Kgo@wYWUF&fz)uaUv2mI9XU)dV+# z7^_B_SgPVDg00&qQ(Q@JKss2T?b?SXE?Jt%V$4wj1_KMTWs=r7mDhXj0@K*@VLN)b z@!I_K+VG@%Mw}AwRJV*)@Qoih#)B#YX9s6z^fQKjCG?K9ZI}~lgrY%66D;8(S2=y->O(llHWiXYnnrPG8D!UpkW6J6CcueQZC|bp7G4MrfsF0=p<_BNxcXYO;HxHg zCaSn8P$7-@S*=F&i8HW)}{RHx3HrA+_NXd?RPS2u5)| zB>x9p1sM3q8G#NT?6Fh*VL6S6hUuUL4q;%D{YMTSTZfLjoy`FUrq?lXF;O0z;bki< zbY_02+Oqr+ia`3PiEc*3HDmDxc8~xTWge;3z?#@WIRzUw^V*1mMy>VM#fER&bxf$2 z*Y4nj_BU7uN34U#^L&K_)d{LiR)JY3$&u-?aSI3DA!G5ST!!(+!j)e!DRHvY1y)X3 zAvs29*%9iIe@DSPgJEXe$E}Fpz+ilx;F~j-v&I`=nONV0ekbE>cGj_3#!y$x+R;#t z><{5JV!E@E!y~#f9IKf1Oe1$xeP1RQe@4Lw>kz{nD;AW7mfwGyHF)_K-WY7yTJd|H z#{1)Ui07L}O#@&&e=*j-Gc(b>tc)3i@G>Y=9!i|v9Dc&=mEF)BdQnGb-etE*EFPF_ z6#YKEdA3XQ!63~UW78ndlibzrM|aOFU7)d6P}rQcBfJgE!+=f}L=d>_c>5hHfr$*g z#vR*xBrh}ix~LT~D3z$uT_z`4DlEBkiH?`K}j?_Bctfx`XNl z!!^|C-MZZG1qOm%xLj37;lGcz4e8=0#oj?LVC-rrJq7wRt8{uFtf?)h=K+rrD7SVAvS%owxu zq4Gd4se^w1u{s=k4-a8Hp@m^PTJhN`U8^6}PCIwm+00Us)D{2lTj9JhV+|Wx@x3_D zsY-Ea*#+6}gR3Xrb^_m1mveBVP`W0RosJz=oo3!v$%78<`lp)3~*fy9q{>>1Qz}z`%MJ3h|gS8IQmZ74e?HuE9Wb+M{juDP{?^0z}Hn;QB+z$d` z#74`HvV@rh3|S24NNO-uVV0@Qa(A+`W}{f@*RC6v(gv|n&XgGJE>s6lzpi;$ zVc!Wv>ZjV2^!=L=`(tBk4@Zn6g!uU4HUN=ioAvZz8-V1T-6M(Sz>Mz#(RwW`@ZTJu zaoEGj;BaC5bb0S6ZESfFMxE)M#XB0@`+xXvOet&@U~W`#(8(8n=s2p7gAZxn{eT*GgL4HNoaYPTE5@l1-0UT|7g*E=v>{&=-f~La&=NdkV=b+iq@Rp$xDv*5sjC6(B z?blql{oS&+zgE+$#%X%Gc*_xoV?6FLD0TGL&F`-02ZOL_& zDX_{6+At1|4x^j`FWkv;{stQ%v;M0Y9l|%g#tWf|A6kqdmi> z%~nU@%P)`z!8Cl_xRz&m5x?Ml+Q!=u>N^T+@`|K_jt1sov)8(7n$Rw?`ill^FciNO z3`SXmPDo&2bNoEX?QoD|=xnL29UTkz6lXE#d05-jt1MyCsvRXD#YR9nt`R5{5c*+4 zoYq58)Wg|cBq{4LtRz;KQxn(ZWp>oZAMSaH3-W5?d@Mws5>?zGOFE;(y26Nc#}!+P z`_>7(dCE$@RECxeK2ZX{Prj!s-feV;`););d7#FDvZm>k4rWX? zMpACICQgNNp(`z5P5oVkT-fznovlTT32{Vgt73@=5<9D2r>;B+Z&&#R^}UFLD*)88 zsG92VQ8Q$tr2GGgC!?=iK!KUlH3V~Qg9E>z^nziqF}QHdA&@R#`;vz*ec0H)al6#u zEk-?x8d5 zFBDQo%3JjMelCiy&Uhjndm`Cap5nXpiJ8l>1^ficHXqz>$~Kqt<8K+W7xBQ{4ylxW zC?E=0JOCziufL z)NX)OiHkGRFx`a~t)a~>>`(+~vx|g?tvlgf5AHb|=d;GpNblNH(KclB;*bYV`>JAF z{|2?;ETBII11k;O`RGsXx#{G*U?er>EC!()RTcwB9 z|H8NRQDJ2DKk(dA2vrsAr>s^`RoNIBNu1R-SDTL{Nw88OODhvUo@=V^RAiTRMZe3H z!%XbEu5vfNPw~15{5Hz_ZgS{UcAVVeFzCH4R&$(1K-mTD@mm6D*<0BmP$zV{FUhY1 zYXBAd{AkKWw$$`4PGDP)VGhTk7rnMP_m1wQ+`_c8hGL9a=oOnfhFOUAigcy6MMHnZ z=K(&O_|nFJ}14>)NV;7?3OWGw$YMU0Lys z2x-KP?|}wMhM1V*eGNk9&4+do{4YkDhCoP38v;kh?0HHe$vHM7xtBIG-7)=2{LEpH zvHdIpeO^f!28cy#%I+T($OJ4Gd)?w?e@QVnKQj}iEpzwQ z*}&DUIzVApuTUyMQ51J&Y2`|SB9AU8K=y_XEsv;W4v=v4*o3f#f{U95mY)f*$Wt9P z0HaDQHF769c??xiIuExK@K2bEN(JqwhU( zrfm37{-jR&lxg~Ds%ft}W3O?(h#QGU@iaIhn>u3-E zC~f`P=sifrTu0`5S>iqQxc)}FH(>C=iwVnQwsmQDaZJ4_^zpvTkRaJOH95E65tY`}k;4$Xf`GMJHYLI~-fu5E|0JR=Anr zuC{>KlxQC7Zw#X4X3i*(V817nYh~jjl(Pv;Gxm?mln0$P&M)z@uK^-1t>roHE7 zu8pK^;=;G+-keSRH-WU>?fpcmirGl|UOkI=+C$ru7DcO;Ri-W3nv6m^?k*YNC%e0= zUB5M%dwfXUubd@mOu3r%Vdq`*W>d3%C7Y8Lx8KA>T4B{6TTxQ;nYqX2LcZlnbc}XoConHVpc-P!0 z_N9hQj%xTYhp2zOd(Nm9D9_PvXatj~(L2Ls%Iik!D{buUVYC|~$*Z@Z>>gyKPjzx|mw`v_plZGtwZ=2&D-oJd7-_C%R zm%D-;Id^f%Ej6xSzZ#7$?}q{)p9YAPn(LWd`q7?Adbvi9*OsUjST6k^xaz+SMb4k} z%=hG6TgKuOjc*X;8zaiL_}w33U=tNBzxC$Cj7je=6R5Ioy|3jrqYAY zoZU1yd8cU$(fs#Ak4Pc&9nXH8&K?+3T0XA$_0!&aWaJ=gf@E(o>%H89Y~_djTRy`- z`MH<5oZi*p(A$_u(grP@76x{)%dxP#{0Pn zB}EvP6d|npbY_VpgkX!VYik{nRI#akfS?NM=gABK!&9(SrE7S?3exxp2{qA^&lf8Q z#%3pGW$bibM=*ZI@?6G(AY+Z65eXWj5accN^G>s#b7MrmEw?dJ2flf9jG$%lbFvFG zM(WYp>_yHNCB1mAYQms1yaJeglPX)LQB|qg61Gz$4~5*F z&7R}3Q;KD;^0QMPWzS+urwJRF*63+cxQGV@Fmy_xiT{TiF~%$4Pleup#M$(_HH-QR ztvYM`HOug=0v#5q+{Poxxi_K5!FaNjSh*Y{5aIbNkOzm~zjCt6rmf@zP|i`qJ`XB_ zDuJy!L2k#qKYN3FL^k=6yn+e`c?+${b0D~dtXt-~akuesLu=9-`d34W) z8dP|(epC;FuA(}4+TaL@IW69~qiJYO6sg`zUD21>Ne+Suq3o13F)YVmfa4_vX{Dt^ zGqK#*Qsfr6K}3>6jv?Kk=GJ?=uTgDkd_4?Z-3w<=;S8rBF(L9Os9MJNZzGRNmm-WT z;SE`^4xt8azOzK!j{vf0EAlpoqgISFLZMZkDp{P|-aGGco!_r0ZPNdIE9_jo+NLAxk+i`?KIK?J=6M zviicW994Y>{zU_Ugy4t!O{}B(W^iYVfJY1mgPJa0Q}6w=Er|$Dp=Hioks5#`>V*Q< zI?GE1{a)j%R8K{2A$oIRE zx;(kFcfn>GsjYan^;>>GEvM`IgOM7-$fOC#VFgY#<`C1QT<0~#M}&8uyTYF!12)#= zcbU(wXmbxK9{kfy$;{yFG~(j#irCDWLS=XH8oFJZ+1FuCa;-k{Lk>UPN&^o1XIgHA z*uB~a6}6r&)dd!)DY~^sr5p>zL2I$7^be0Td4M0#Pqk)LZOdAt^=`B^j<`KyH>q2M?cc~^pzgMyz^o?99DUx)1BabbZG)*Mj z+Koqt3ETxGb$T&;;{i)hxTTl|bjm~Y@JT*Ww((TU$G4&ziI9OGHx-|!(5 z#OY9ZQGEr-Lhp$FvMyNFiy9ON0CpoID-QwiiJ%hJ%MLWMsm(P2sD+>*HHJDv$R}(3 z`en2eZY#8E^6pgAK9VOtRX$H-4DtUy({6^BK9HIs-Rtt?9pyD(qBc|eq}}`nQbjy6 z5j%z$@VWU4Irk0j11z~(!NmdWp?gm^NW z5_B_j#!ZRAmU)?2KR(Iak^u5@qhFY~%2-}TM{KXS4IdFcN4YL)a`%gA+Y&g;R`#5bna+pkMx$i#NOZNU9?y|R!x%#qyF<6{fRN;?V9^~ za-nhIv(}G+|KoS%!(a5C9Q<2;H~2Q%x%w|Z1b%x%4u0v;!DkXUiMl4Jt^dPap_#0X z#zdg|SsJ=?K7`u*mLXM%@x;*rKwj+W9(K7HOlN zkWa1`WKnr$w@^^;WfrIxuxU~N>!!OEh>OCF-d7eWc>KFV$1v@3Np1WCdwRne!y#1a zc1CRsng=-90O6)!BR0Jk_QpK#QBO8`LrYT&!rpU+d{rAO&~=GCRrc?sPnDJG<>^Xg zPF0rk(p^%;_aN_^6-RG)=hwX+YUb)V_QC24zo_}Xifub8WFRYx;e@v52bh&xUSgB3 zeLGvspf05jWH-~$en`@QND?B8hVYU2!?At+yF4>K zTvqx!3Dve0kCD>`ux$LUR}1ib7VAYD0$nImUX_ohB^#<}6<&E*)zGh~TO7WPtrTy) zbqk8kIOcj%(S+ouN=E`umKlQln=nDI+iu2qWt9Y{wzzcpr4WFdpMg~Lrb`jMJ(z5L za0ETPrU$Wud7IAbqXHe}@Et1Nn_N+VXahLD-fQ;jh9orxZ(q88sIDP=oA&7G#qfb# zAO%3N05tU?UK!xTsA-pP3sHRbZre4``Mc}NrfYU&bms=^gItT4$$MRNSET(V+AfQU zkA99+_qMTaRV=e2! z0AgKi_eul@J${pHx$Qy6ihCBSFj$T9RrY)1fc!3f(f4D{?`7xoAqbsr9BsB{$B%2n z#}G0qjDDd2yg|Jd?VPrYAWWTgT9-U5;Rt8s_+p8@p9yR!mn)@(7d6Z=jjaB*+4a#N z`n?v7#%Pr>&RA3_oI9B?m-!Nl?X6`smmRIW6vJRKgBGxO^vi@ns%g6mm~e4)@3L9= zHiG8YHI&{40pE_#H*CNbT^_zTHq7aw0;an8YM8zcXj!YIjLRP~&T-#At1Pv-5z%lM z3TZ8|!Mzh>UBZJIbZcGHuF=6w+~x*1awq)zrihheIAZo;H>F~`M@O!yM`xi7SG1=t zs*#KJ_^4$XsEp{YRB5}7T$2YjXTKL9PMJfy&Vr3Xn8U~O4@Fx78uI7#YxJ(-+6^7> zu!s$OLB}Ya8Y4EE2pUOtF_@T`PD5&}R)1#FD!yCPi zSeb}QUb)z6R3xLoFwo=WQ6(+Yc|oSGv6-@WSvKZnP*imI4ci$ztT=}LE?stEu5V{I zc-5|^V>-OK!J8OVKiA<;Hp}YrA$|V+^Yi=MU0XV0pO-GXJ)BWIkhYK8w@1sZ@Fz+C-hEj5! z!Sup4voY76gB1ie*L!nDVO_!8fh&4a89s9#!&&d0KAL4P{e^XeHF}dqb1WnWdvatf zUs!K(zj}wOZVbdIfQ*WlOLs`L-rzms$2ARP78XLYUA_k`-=l}-YnF1^C_0rq!fU

    qzID|~*U-+o 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%0A<De!hjss141}^I2 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 * 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%0DRK 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

qzID|~*U-+o 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%0A<De!hjss141}^I2 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 * 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

$|Y-Y zWbBzJuc*?NZO_(lLKZ54>tC+GRJyL};hmAnEJim*<%&+siAnfebjki3fjO$?P~)!{ zj)D)=OlLJ&g4^o&j+!^5OZLZ=;F##p(hpqRo9b^v1vfw*Fk4VHatpLn zM2%NXOUeka^>{b-HGe^a{9NznTNF*F3Gpbg|J)G(Nli~SUQ))^J!yb8@^xIl_1vHE zYz$6Gp2}_Da_rFvb6B^5vE`NBBC$;hoF;TPhbVjRv^U=;grJbhD5F5Oy3NlT=<68D zAGJIB%e^6zCMd~^&Z0?+@5e+eB~*k!g+=hX-(ss(-zRm-xWm$F(dj>jF13J{xW}(^ z0P}Z0JwJVLL;~JqVcv%tH`4ntJhT0nQRJD0v2)z7F4s&kYrAbOMZaajT5Cvyx1m*5 z$BHukZ1JY)W{+TwvJm1ya~klSIFIxgoKe~2`}O`*HP2L=4wok$(#+=Z_!cTkIJOA4 z96LRDacv!mj*gxaq4n#rVf$^2+wz4sd&DHgggd5vABJd08V$MMSmI*zdr3I-5l&Ne z0av;okw2u-Vh!))1u4d=`E~S-y^mOdYY8NAwl-p~{RjlNO0MVYnak z@cT~Z(eBLn!zx?qs{gn$(Yz2z1dJQ~RFQb5y6Y$js~jwv$6Br6wdl7_`^&seu3h;@ zyfkd?c6!DHXLj7!>|2C5*75QFW^fMr`oD2_)H{p>p5v8OkP(W@#Yu#xONw`#ythAU zqcHPFEbd9CY)Vts{C?Z5^Fs9QNM5?z-N>sRSqCqj@|Y(zuS>msc4z`N>Cwe?V{|y# zn37}|6^;`{&OvAD{kt7|$27GaF@RX*x=`*CkH|e7PmfR4#NcYxj!4WlSTB0nv~diJ zK9qv1ZxW#AQmaFB#5bBXk9$l0T|6=8q4au!O0^2;wm%?&@T%elqhw!2Y&bI@PeOtb z?!Q>*9)P8Hc+$l2WnKknYFa zG|1o28#4?v|EbbVGz`n-TzZTcpZz$4W&3l6v3Z`Pl#6pDEd6^`!wZ~YTaHI&@4+=9 z)7i-bnLG;FVKWW6F;WR%!%h*>F~ufg~MZf#x1;7MN#C#U*NJBC1g zC)zx8b6K|4n@Q|L3RTKcClQ7bF$70X^|IYcQnLQm4P`mpgxa69eaki9bt>aZ1G>t5iC0!H69Al zLV@NMZ0vOnbe8cAjz(nLP%<_U>FR&yb9`PZG()q2hrh)iP%$%V$e9)iXv_d-g@U$7 zD;QrC)i)=512ox-T`78@vY_De`4^J!k|BZazOED8<+pZ!TDplzREBKBm7x655nH=I zx9G4Gqt9ZC9h#d}O5|;CxHm-nKJ$FtRr&hnb!d-0&g#!Iy~m@sa1(OBJjSkZTE-MT zUnesm4IcL4%qepiM+LFvi92CD11p$n38ePpAHww})t=8Dc6&@LY|~GKIj0L(0~UeP zIkQ|cv!A4Um~usuu^@P}2rEZL`N99OHQBQb%d%nXj;9g1HIjTNQqTromyQMjIfhqN zUXDTbJGJRz<&BMYS|O<}xT&Av+BBePY+mc0eDxR{Nx-Gc|2BzeGu}QIknD1NYj)45 zl3ipuzhJ=XIH3pHb<5|v!EFF_6>$mfLku%*jF|8UoxH-B^ql+tPH3fCWKpwSWyWd@ z9D`4}MFT#4Vgtkd<$#3M3=+_9Ja*!=Jba&t+*8Pv6guJ#_2e%VFg8!+}BiRR?;ZQ?RJUrW1O;3RU-J)wt0fkDp(8 zN6s@VfkziZ3g90fmjdK5M^92RG_0RX*AImJl#+uLyWAFeGg#v7mPe=C=2Fn;(|fs$g;v|3&1J#Y>UD zP}Kcn44o*yDRRDlVc5$4HKQTLexTuN=h}%jJTpP6FiX{XdI@4R>@Y;CV?V4i zwzK^=43@$guynfiYzO#4IpGUs>|70}hhF+-WN&y|_LR#T{@(sefG%HEnP82({m_V$ z@;LfXq(Ko@9k!!ij}*lLVhj>uHB=fk^x_9k%pe^x5CucH6=>d&etp2nX-K%*W=Z%` zAy1Trh2bw}`A`LL zciE)*=q7E&f6)V0oSx@4?Dxf8%3bT8@8PpssJh4a5s&_(xJpPxd~W7IUxMT2^B)GnP36Rb!FiZBP!01)llb#-f4aU2~TFP3%#>=!HiNh;Tv8jO^vcDua59BZ; z>9-`u0f%ULTA^(AwckSEw1F7!gs?>=H#Lot7XOkG8W35D7HN*;;$SyAMtPw4%Q)3l znXFkSS_m3P3bc>26>tqso2U9sNWnK7$)0z#e*e3)*e}vk-l)+dPW(AV3xXW;@5WyP zwCAAmy_?A7A|!Bs$Ns7-Y?I+`f0J~A52=)9+_>3!hS3QQ9!mtt)13xS_GGXf8G|=x zBb>T-Qwt{K>>1ZgBC%@8wHKcP;vm`!0tV^Uz$Tukk?lXV8h zc3{-MgUZ>oJFtB0y>4kYmCAG4X0)Qky-p&<<4oR9YxU+719>`t4{r6!uhs=PA=_FQ zngS`ANQUDKS8oJ<_di#I3m|*+7a-^m#o29uzLPJyOMad;@^V(f8^3QdgvUhWST5F% zmw(gwu*W~Hv_)b09LV|3BdQ=VY)o(UcMb2~ixpZ2Wu3Yez!`jq!do{u`km9vs@fEx ztNdKPkDJ=+wN%*}h8f2%A1d;(n~y8<*Z9N;zG|vEPf2@yXrQPDNIE*bKa%NwF9bZi zHafNv+UTossuIMmI%tF|Si|2UY$vTk-gRhl7p=^_8+#9W%5Nr)OpF-+&%=pP)uUMD zGvhzumb^o+*pUh(ygr4NtPsL96fjG;Q`oS_IsGRe01@S2%}t={NaLz@dwqsA{IeXx zGZ6HLzgxfE%VEMkUV@$Mp#g=W^+j2Pw0)ufaosxc9i4)}0%aowkFU!%)^Y@AB$=!I z$#)P{iZ}iyczdi1K(nbRWq+28VKnLn{e&x1rJ9Z%Ccu8zNi!x6k+E706w=AkunjA# zz@x!XC1{W0nseUoi{;Io87=0|mV|*mE^<$Jv+kst=+0W{_U%2E z8blEJAi2@K8n$`L!S;F}KR3M_r@z)aBd}bMJRUE2UF57EmuG#hlxqe3f@McGyG~EP z8S|yt6W=gOaRnyWHdO68 zIF_DSkADFB_lgU5_9JQtS!(Rktip&=8~R0bsaMlc{&?=mHCOu$m*-E@HdBE)kN==t z2us>=sL;q+WreYA<)|ddi9O};LvI#!IMAt*CNaimS9=d6eJLSr4IMCrm7OYZ==XP* zDl%I?Mm9zXKK}=d(FY3(7V?LCXm!TQ8<;UJ^(YLf9M84x_#f`$@*@3^QYH-J=!Nc$NGeUK2ov!iZG~Kfu!MNz~AQ*R|!isMng1k_2iEmR=S_@f({`Qh}ll}7fjk}i# zlLvz+rQQN5)hV1y+9fxgE^sL{<^iR7v$L(O%BGf6v)&=@hL2eMqY4a&z9Xux&^NBZ z6shD%0xir;V-bjzgtjJYo8?vm+kyLv(#Q^683JLb*%cKt0$1D>3qkURduwyhS^z|^ z>V+XH%)z5=F*j%bmxn^WNXF67&QTg}be{j;AVO|PSkU&V-hQOG@8GZ#Dxq?5I|a+| z^ZTD;4vWd>d+s}jh{6$cnF?^-73b}b85QVy;;)3fV3;~GFf?ireY8I9hYNjBi)+}x zenLqroIL#^<>k_mt-`i{?RHb$&Vzv!zzB8kT)TkQtbBCWaCP0Nv;5x~DC~^7Qo|5> zCQeNN7o68$6_$qolLQT`OHU{Yt_(rl#Hzt#nyhRWWA1KwrhSaP)m>8Lhe9+QvUr>^1u}l4n2r-_{I( zi!-5J@ojmL+q}VeoM^$!9OeQhb~RhY34RWnnkl+ExkuP}-T$UW!7tOqaH!g8^&~MW z9gYT^-jBYS(iJg0^@Wg>oAOJ8uo4*$GdBd=Bn{=k{CMaEL2R|i{?;e1uy^q8$5i9F zZXc*mB&N?sRSEXSG@@=qCXLYJ_lPA)$DlZ0wlGRk($|1d^G@%h6&UPVdcOG!c-mQr z4C9PXCLx-$LG3z(SuJEkTTWNQiXWU%U~3r(I}48h*2Jv&KFRy6|AKmaaRtY*L!yxw(z!DqzkC?@7(>Q_| zS2P?6LuwjF2$m7~_$0=b+C9iK@$hemn!)F(#TuHcS7Q&xkzq-dwYtZj)r7>A9yw#9 zbk&B}z*ZTHzojEnzrNb|FH8a}~d?N&(QT@1Sm-9loMnsEPioU(CNf=2yEE9C3<%WelPjVW@Y|^j0|4wJeQ3 z^CQ_og*O>|Nm6S4vC@?vM|~AfXc&o=F8_)}*;h#}T#EZ^YRr6t&43eSm1&B8_N~@2 z*5Tw0hs&vuM7sNb5sy0kHg(x1VjNgG$;6f9U*7s{hKmbB;btN+xy)V!?hztna<6{} zdT!PSQ=pD&NsTj=;#>#G*suk@w+eqO+Idk6*L%RjN$oaYF1V{^gH^V*(Rw@THt_Pq z3E=Nq>*AB5A7zzbg>I2=pJdT&4yfu2h*T$HN{;8%j5 zN7{4s(wem%PUZA)JicaS$&&`;jEFMzoKd_`gwUgTIdrGEHC{!KeddVBxdBx)`rwp4 z?y}5mD8vzRPA~O1Ot4J-<8*!V9pF%DowKc4yEAD$3Apf$rfB;=*LOq&U}HM@VEkN? z*|NFrJi_=a{@qxBYqpH7Ws_ww+!!db8L2}3(iO|WM~gjD*nx_$vr#+1CH-& zSeRU>htDK5tsS9lUHX1a_|uSSaRt$f75=hCc2G7&R%3BddA6{YBu`Hl^E$Q zKB|N)4->I!_KbymsO!DUP*ZAGRaKVHO2FgbD2qn63UGQa|2Wxo z@b0Ga{lb%?$q?#8;VltSPdc0e=hD?=YVLhcuig{=X8$+IoWIx%P@WievS12f2!<|G z>+VxM=cc8ra|I|!k*1WK#<@7Wxp6rscpWAW3mZ~fR2jB`E?Kd#9oVz>5ts$A_F@xo z6WT z_-UKYS`SPfwh5JMoKL>5r0&u*TQddf6$=932T+X#fPm3vB)hu}+;`(8EW%Uzs^5$}) zyoe8bfZ|I8CvuO0R=NX5Hl(^HMoQ|iT79YYascO$yUT5zEIxpEDw&KE{$tm;tMx1o zynjb^7yZ)LoY;GT4pCTw4SKpa^2NoZ&eUNvN1b=xe>{Y%Pi4O#rCZ9=>eIi=^y@d> zxu~d%%&mBG>We`(mybY%A9uKDusl{~$;kbJo0CPqw*N0M>s_Lx#7OSKQ0mEKi|yvFV>s-$AhOhCgJF=QZ`-__F+D+JcN;K4;yV%y|Ky6gOjz3 z5My9MX`^RI9Lqj$a`g=AaL*f&cZVdqpnJ7HhQX2)nR{@nTG>T5E)lp+E&Ua6zn2mH z3G2}EOt~=M_w@%7#+kF3YjyBv5)!r31{F<%J--thQ?Yk`5OZbN$0`jpopURHJ9w@E z^k$rE>9p8#`-oKZ>*66g&z|+1cO`$AslHDc4LV;eDKqkwHwd*y)DI$`7YQb;oRZN< zIO1)^VXj*g22q!khs(1h{YSQbnY9}Hw;kh}#?3Q_e_wJ|@tN{#P-O{F$7p-4{n<-J zt1x&oz2*E}i1N!w{Hf|^Sj>EEA&(jUw-*V&mY7xk$VhEodg=U+H;>UwAnYE{NjbkT z+W_@O{MGe>e;6AfD!Doa39g7Zi9T`qU4`tFidLPS)Krh0fo?Y=qVat3ZeV)p6 z^&WId!K7ZOIXi;JbiSjYCgoQg)o{n%_ z=?ioywCRSH;+y;T`0{2 zYkDB!Nf}ql9?QlxE@D3s+GVi@n7hq04`uz=b0u|Dq%V9@c8%FkD=mU=kIXU9w))er z6k9(^Mo2OHN4z!aWDEY$3_n|S;g|sQL~AWEiTJ(tm6NdnV&x9aGx|?2a2>fbcc&J0 z?*QW=hJA#cftlWK0{`Mmtkj0VD=VB6;@C7pVH*zmhGfG~Jxo&^arI6Q7dxq4$?T{F zp_m?<&ojtGn(^<0@-?`>p!t0I(h=~{qd=MIscG|5x$b=`sz(MjWzGj5wk zh^sU{n&Yc^pe53B&I``{HNFg>nq7qsJ}8}g>axZyqpthebcUFF9~=vw{lJ37R7te* zunz5$BLuS3FRlAScmc;#m`;Ez6$mipLMo~-@ur=rwkQ`nttNPg1asB z#nWs4KnCr)eLX6M3(M+EMM*w+tE~(#`urbz^oK?oA$%gJQhMawF>kigCy4i2{jxWD zH5iTZoRW+}1+F#Ad70kH0dgj9VVFtz;8U=~Cvi#!RU}Hs^i&FFiUL?gUmaPX@9T(K zZ@t2smM+ zuM}7(0&%F0BbbY9_K~@9$oF~DWXGYkYPSTLn7@+>6is=d;?c;5(Tg>5t=PfCcaDF8*XCeO zLM0we0?SGs9fWfM3zC$1i|n7IOFTT3bQ+6yfWq_swntjQUyPjAxW4|`eL+oR3A^Oz z)z_#V$Z#=O_>c_6%)S7s;@Wb+c2lHoUMvhLNCdTH$Tcwqwiwe@`rIF!Pigq*eHhKU} zXY(wwrgf}Q_ySt zf{@c^wSk1ZNrkSYN^w_z%$%uLcY2MNLi3mep zE17(OT5@Z~EuNk{DHAW0S;1N=gOEKIx(G5LoEPVY0&y1H9=F4y_K8KzC(UjYI6$dJ zK4Oe?w`CP}AL~s9-HNC#*`fdW>EeVpmR|qhkE`9wb8a~V6OhEoL)VosuP0>A(xxKS zC5d&J*zF^Ud-KDde-8u@?@)mswk)N^fx7qN9%hd;|MpzUlH!oErVgr~aTfpW^162j z%T<0cfx=BTU7@f&BcS$HlF3)Zpn8I7HCst)pyw(zb#mrbSQ^Q8?ae(7EG%j~spsCG zH+|k%zK8pr-|XK*f;%xj-i3eFZS`96^2`j;w-Ky86BJM@_Cdo8;@2Uzn;(_es`027 z+yrR^>EQLHL8xwOyEM1WS+7h&(MDFO%&IY~l*<}paJHwnb#X0s7?;^lrhi0c#u(20 zB8;w1QD2&KoX}?}NVHwV$n9C2aZuI~MM=d))x8CFOH$@(={#S&QeK8o=E-OX zknO4(Nhz@O@IJb%`mdIOtDw) ztk?z_wj*8>~33Cg{Hxv`Q{(ZElmnM=3dG4hTao;8ui%a36 zC8Yu}L<&u~ySjdvRpDpg1}lGOb%<)`gHFzu+9$CR;WXYF$^<_EBmq1vJ3g`%p3O1t zuPW?5D(@cEsw?vPWNv(`M+eHv4booUIt=;+kZcP~r>2cRp~b5jV)0L)cc3l zit8IvdKu`A3BqxIg`tsNf?`(<2jo&Fzt^|$4;a`D(x3d3z5Lg0ILD7<`hx+WTuaW% z;D6n-zeaqKT_Moav7?{iUmo1(VQGSbGZ;vSa{3DdXYE?*${0*L4*nYFa=vr4N^2e=aMLo3X zv%M0WNS1eHa|&+diZO0`(oNB{=R5%#&cs^4u`POeC#gM>7vw!Hchow03u`ggdfD+( z>$69=nIi>IdvDJDaw0zD#$}TA`@*VZssBL**CqdR+3&{E6AL}I`eNQ&FidVza4uKmX+A%oA5rdJ-V@3ln1&YB9bTo|YGM4meXs-a=By7cN`@4r zF~_BmiFqYgaToVqx3PbVRa~$L>u`E(W9y%hW6;;Aq>=*C47lAxrOJJ^NE*U5s*WO~ zz22AV0c{@ET8366iJ>Kk{EO$kuX8`pLkgTRBT!n;Zn1wD(_`~b>3d>1dmSIB+uVx{ z2#XDHa%L>@?Y1ZzOJW_|I4pM>lhBT@(5r4#>f+GdQZ@!kIb;`{^3T!jBa1NXNGxhG z6v`n))B=TV4~s=_r+xjece_j#DdJ8WM9gaI_R-i+UvA-kS%MN==6pF(5c`cVR@V~Of72%RIBgIjg(r|JZ!lv&{j z^*>csSyO_lv4lQ*h>9)jn&SYVYK}_yXn$;^+S2@fA*J}JVE^lMv-Fh5&ZzMebU)e| zr*n-FC$O6jfSe@lR2UZ#TN64HU8j0P+y_SZ;uZa{9>7ctLbDY-U+b0@>{^ho)EBy* z`Xl>2uv_}zm3A>u3Kl-8fIJJi0N=@p^8 zMOg!s_3+GQX6Ih|g>FTGx2`ed9xI}66k{4A7IK5(W$m#-7MGU>Hv%YA=d;@S^{UUy ztMRXTeV&{=rD$Xg$DTRVp&@6`9I?!MCY!tKWD9;)`?J$+E0L@ONAi8udZQ--2mu`T zs5Pjd!O{@N9$YHi+$89ps(+)EzImQAl4yI!R;amt=Wwa-ZS5&K(<|&^ThN{|cM%rt zcMQ&v5qk~cuDA^qWC~#$e*r6R?Dr~$@@poDXP=%#piaMV6RYa}*rql5%ydhE^@vF6 zG*@qXEw6}RjY1aiR@MWsKsIpeU8L1M4kI_h>Ikf9GRc=EnRg(q$!H;;D?V*}cJ*3>@4sA6nMUrxxt zA=b7(d_=mUm1DhYh10%ze&2IKlY@VUJEP2FIk8gSy>e0^=;J)-B- z>qj<_0Bw83u|M2xmD*myidA7u89uMqr68A{fVi4id$or^fJwyflqUS=JC~O62*_{^ z+lUve8%Ty+_vyV6FcJUu0Oo8>;mq@4oTb|J%ooDy7hX`kJ8h*rpk;h!>?^m8{U{b> zA@WqyCZyl>*iU<^fxJ^8QL>M^rQCCSrsRmO$+l|>rWM&}m-Yc-M=g^SU!-m*mgQ6k z3I(|-XrgkUj`L-As~JDL{>qj>cj3xoR+`m`yM<@~`gu$znUm>+I2w;?FyaHL;hnsi znl4L^^oAuKd%8k0Us9F(-j5T)XC#g;ZSIp8&pRC}G|+?`#{)>$P;kVy3_RJRU#ulE z9g=H}I1s3In%H=L)BQiKC#DqoZFsRJy1N5}w}q9L;kSJKT@!_8thZY0`&HewpLRSa zb_Gt+U2n;jqQt}+Cu&1n)t15VQJ^OfY`Ag44U!4HUQOidbIty6Lj;jd8S+Qzo{if!>81;lAyOCd-Ju4b2lbgth2LpzZtzy+?SH-;plv>?uxQEBDGRX=fgq_w6HOv@T!a3K%}MYloXErT5!>tDK#o=2pi(L&SiNm zABB{(MNM#n*Q|H~bKThpHLqwjxRsbCaXf`Q4F{~>t*0&Fv73qox&rDL?R@BVS5eev z^wre8Naq@?TEfe)xaq}T%XxX{`lv+g1m$tq3rNz>1Xs6Ky4T4Q#Ut}0giCdI!*nUv zo`)X?|0!6^e;I6Wp1%kptfg%=Gk+j_t|Fm6V{Xx3?W#R!+;yOApZ)lX7{kGKgk8#qT8qBAaF?wnd};~ zuypSw@Tnku>}B%90zkn$1AbP5_uAgFrbo6}xH6$6?cI*kPuThPjtT8c;8Fyo6EcR{ zfXKP7GAoIO-x1O1FJ|~g z(S6Ts6kpnT3c(nCfBn=moBLC?ff`4;@9&EJmAM4`6&Z#;_%6Hf9}fl`9htE!K|bnm z%x0lVAQ_LDrC!h5xq{~oUMv&#Mybvy(}h#Om!KnY`#bdIRN;zgteXd~@C_qIBnRtKP|=#>=-SHDf-8FpDG;?q>N8fvy6tu+TZVUQXDrw&-P4JY zEGXNY+^eH@ zq%7^;;Oj0R-!-c8lh*&pDh!X(mnSwNC2h8127e;aDcZ^%5|1*hP3P2^_{*|xDa~%# z&)6-y+JQ4%0J9T`z+U>Javopt@sGy5)rn7GTAv7}ZC zkuqt*#a_Ft()RJuk>sp#eV%@u0IEH;zPHnN?&ZH7JIF7nDW3?&QECJ|(qn4NLIEXY zHFpgDvM6jRcHL$0Di#;59$Fg_oQ)Mv$>CrkAqGRcx`@RwwR(=dC|dzl_7T|-fWm!* zqen_<;*%zhv!1f~%ugv{hQ$VLvjw8_(k%6dPiiqcbM==Ty$Qzpta(nZsDQ+ryTTpT zQ?SgsPWc~c1Y)Gx!&p8NSj*4^AUFLkbn@$u3VXaehO5!$(GXKmC)son>S`2qycUo* z5uOf;X6xvBi)RPE6C5hNcFV~o*jB?4W1Vj+`BAb*=3dZgMdAbZfHy(*#O#ao@2Kkx#=S*ddZ*n9en=wT=Ce3C8GCpL z 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 a=V>VR2Yur_4P$o>YO8bO+bs+c{{H~3fTOSg delta 448663 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≪jVF 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�`GQKUs=dyheAF9_qMCk>v3#?i4@!wi0nS)gBy0iu^)7xI# z?{g9pcFm5M^EB^7p#R$?-ec~stb3WayA$p!9a-9DB zR=Dz7*-ZwGPW_#j$&gdr%y^1e**C(|P%CxpL{D(@$ddC{(ndDACfFRr2+{5#^A)9?|x}}wC6$J|aJnCt9GUv7H(wbK(6wtyO@X!}*N9)2nT1Ro#xB zCW*90VcFeGEuTS2>FB#r?`NhCUcW9u^cP)4+}rYMMo3q{-tL(quU2PZ&3Zq>kNWyMmzaZC9X}O_*dAxD*S{Yr}wzIKS z$YZXhLH;Wp#LTk`A}caJdf5|)#!G#BQx_}TcGhuNis%x^fA+U1*zkwf2)R%fT5Q+5 z+@}p+-cZy&uE!n<6Hp0>Y-lnc$+U^`#N0ra#G7WIm(dEanCm>Xqfjs%t`I27MI2AT zcsQw7vgs4ym;&)&RTt%9txf+p>-bqe@ zrgOU2A(t}MzBENdbSdEtry*za<02BKs zCX`=7%{l8H5}n5PD9pWoq<0kV6CH3yy5{=co0mRQ;(QSGj}JOMfqpGQ!zQn5e}7+$ zp}3mZ->M{H_jjCLcN7bGlOCYu$_bd+G7`o4RUSSBx84lr3E%9(aM>dk4{i}QVG$1| zcBy^-+giBBdK7WA?AWww&9D3_1l?D%)~~f{haO^_AA`5sI8A7t%%J$hv9Pb<*iww- z5>t)$Ch2^_!nQlQn8LHlYad7;9anzf99r}CrHj~!YTS0Yj+^@_D*nj(KSWq#(`>R> zHPwD#nNgiolI%Z{h4ZW_6zh>uZCV5^Cp(B}|LAdfce*71&Xfl?J!r38Ko1FmphD5# zHFw~MH@KE{5VQ*+Ts*Z3mjAVI4W;JBLPR?1&&B`w`-3bBf@)S9BkYal{<<|rBE<7X zA`yal>yQZcy#2swAQ5Gl_X4H>D-Cvbpb%Ktk3thea2iNNgF;{muoBn-d;~Pc81h_T zB=Bco6L0|d1-Qu6P$vLp0jq(RfiHkqtRe3Xj00+btw23+7RWX;)QN$4z&c>R86s=` zKDgryxj3K(*b3AGXMt>Uur4qUSO@F}PS0s2Gva#8bsK`sjXwxbp@RujIDb5MUarND zbvh$05ZoUP(cldWw*vLRSs>dIoEVq~tOND~r-4L*A@2oD0nWWL`0?a)03QL3iH3PD zFcSDPun9N-`~qA=GSmrxS-@)GW#9`SmTbto1LJ@iU@K4$oCUHe2>1Dh#Ze6P8el6> z51a+EtqeOQ%gT_i23`if0Ai`&dVq0r{$JxViBRD|{6CHRrH+c28_3Q&Dk|aF{{Sxw B4JQBq diff --git a/installer/UnitInstall.pas b/installer/UnitInstall.pas index ee19437..4ef20e0 100644 --- a/installer/UnitInstall.pas +++ b/installer/UnitInstall.pas @@ -465,10 +465,7 @@ begin frmMain.ggeItem.Progress := 2; if (((Pos('server.dll', eStr.Text) <> 0) and (OS = osWindows)) or ((Pos('server_i486.so', eStr.Text) <> 0) and (OS = osLinux))) then begin case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to continue, No to Upgrade, or Cancel to abort the install.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of - mrNo: begin - AddSkipped; - CopyConfig := False; - end; + mrNo: CopyConfig := False; mrCancel: begin Application.Terminate; eStr.Free; @@ -481,6 +478,7 @@ begin end; { Create and Upload plugin here } frmMain.ggeItem.Progress := 2; + eStr.Clear; eStr.Add('"Plugin"'); eStr.Add('{'); if (OS = osWindows) then @@ -514,8 +512,8 @@ begin eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); UploadFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini', 'metaplugins.ini'); end - else begin - DownloadFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini', 'metaplugins.ini'); + else if (frmMain.IdFTP.Size('metaplugins.ini') <> -1) then begin + DownloadFile('metaplugins.ini', ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); CommentFound := False; for i := 0 to eStr.Count -1 do begin @@ -542,7 +540,6 @@ begin // end eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); UploadFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini', 'metaplugins.ini'); - AddDone; end; end; frmMain.ggeAll.Progress := 5; From 379cd45ac3c4397f37c0a2118f8f11fbee9adcdf Mon Sep 17 00:00:00 2001 From: Pavol Marko Date: Thu, 17 Jan 2008 19:17:55 +0000 Subject: [PATCH 27/52] Hopefully fixed memleak in recalls (misuse of shouldContinue) --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40618 --- sourcehook/sourcehook.cpp | 31 ++++++++++++++++++++++++------- sourcehook/sourcehook_impl.h | 1 + sourcehook/test/msvc7/test.vcproj | 3 +++ 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/sourcehook/sourcehook.cpp b/sourcehook/sourcehook.cpp index 9f34447..07e4034 100644 --- a/sourcehook/sourcehook.cpp +++ b/sourcehook/sourcehook.cpp @@ -752,11 +752,6 @@ namespace SourceHook bool CSourceHookImpl::ShouldContinue() { - // If recall is true, we shall not continue either. - // This is because, if it's true and ShouldContinue is called, it suggests that the - // actual recall is done and that we are back in the original handler which shall return - // immediately. - // Post-recalls: // The second element on the stack has recall set to Recall_Post1. // This means that we want to skip this part and the original function calling thing, so @@ -778,7 +773,21 @@ namespace SourceHook return m_HLIStack.front().shouldContinue; } } - return m_HLIStack.front().shouldContinue && !m_HLIStack.front().recall; + + // 16.01.2008: We used to return false for recalls here. + // This caused the hook funcs to think that the whole iface has been destroyed + // (the original purpose of shouldcontinue was to notify the hookfuncs that everything has been + // invalidated by RemoveHook) so they did not release their iterator. -> Leaks + // Now, GetIter sets the iterator to END so it still gets released but the hooks don't continue. + + // But: we have to return false in the post phase of pre recalls (ie. a pre hook made a recall). + if (m_HLIStack.front().recall == HookLoopInfo::Recall_Pre && + static_cast(m_HLIStack.front().pCurIface)->m_PostHooks.RQFlagGet()) + { + return false; + } + + return m_HLIStack.front().shouldContinue; } void CSourceHookImpl::DoRecall() @@ -994,6 +1003,9 @@ namespace SourceHook ret->Set(m_UsedIters); // m_UsedIters is the last returned and not released iterator ret->Next(); // Use next instead of directly incrementing its m_Iter: // skips paused plugins + + // Set the last iterator to END! + m_UsedIters->GoToEnd(); } ret->m_pNext = m_UsedIters; @@ -1048,6 +1060,11 @@ namespace SourceHook SkipPaused(); } + void CSourceHookImpl::CHookList::CIter::GoToEnd() + { + m_Iter = m_pList->m_List.end(); + } + bool CSourceHookImpl::CHookList::CIter::End() { if (!m_pList) @@ -1056,7 +1073,7 @@ namespace SourceHook } void CSourceHookImpl::CHookList::CIter::Next() { - if (!m_pList) + if (!m_pList || m_Iter == m_pList->m_List.end()) return; ++m_Iter; SkipPaused(); diff --git a/sourcehook/sourcehook_impl.h b/sourcehook/sourcehook_impl.h index eee3ad6..25dce4a 100644 --- a/sourcehook/sourcehook_impl.h +++ b/sourcehook/sourcehook_impl.h @@ -257,6 +257,7 @@ namespace SourceHook virtual ~CIter(); void GoToBegin(); + void GoToEnd(); void Set(CIter *pOther); bool End(); diff --git a/sourcehook/test/msvc7/test.vcproj b/sourcehook/test/msvc7/test.vcproj index 1f9496a..364a956 100644 --- a/sourcehook/test/msvc7/test.vcproj +++ b/sourcehook/test/msvc7/test.vcproj @@ -289,6 +289,9 @@ + + Date: Thu, 17 Jan 2008 19:46:12 +0000 Subject: [PATCH 28/52] Attempt #2 --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40619 --- sourcehook/sourcehook.cpp | 6 ++++-- sourcehook/sourcehook_impl.h | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/sourcehook/sourcehook.cpp b/sourcehook/sourcehook.cpp index 07e4034..d7f8e7f 100644 --- a/sourcehook/sourcehook.cpp +++ b/sourcehook/sourcehook.cpp @@ -782,7 +782,7 @@ namespace SourceHook // But: we have to return false in the post phase of pre recalls (ie. a pre hook made a recall). if (m_HLIStack.front().recall == HookLoopInfo::Recall_Pre && - static_cast(m_HLIStack.front().pCurIface)->m_PostHooks.RQFlagGet()) + static_cast(m_HLIStack.front().pCurIface)->m_PreHooks.RelFlagGet()) { return false; } @@ -1020,6 +1020,8 @@ namespace SourceHook } void CSourceHookImpl::CHookList::ReleaseIter(IIter *pIter) { + m_RelFlag = true; + CIter *pIter2 = static_cast(pIter); // Unlink from m_UsedIters @@ -1029,7 +1031,7 @@ namespace SourceHook if (pIter2->m_pPrev) pIter2->m_pPrev->m_pNext = pIter2->m_pNext; if (pIter2 == m_UsedIters) - m_UsedIters = NULL; + m_UsedIters = m_UsedIters->m_pNext; // Link to m_FreeIters diff --git a/sourcehook/sourcehook_impl.h b/sourcehook/sourcehook_impl.h index 25dce4a..2c30900 100644 --- a/sourcehook/sourcehook_impl.h +++ b/sourcehook/sourcehook_impl.h @@ -277,6 +277,7 @@ namespace SourceHook // For recalls bool m_Recall; bool m_RQFlag; + bool m_RelFlag; void SetRecallState(); // Sets the list into a state where the next returned // iterator (from GetIter) will be a copy of the last @@ -284,8 +285,9 @@ namespace SourceHook // The hook resets this state automatically on: // GetIter, ReleaseIter - void RQFlagReset() { m_RQFlag = false; } + void RQFlagReset() { m_RQFlag = false; m_RelFlag = false; } bool RQFlagGet() { return m_RQFlag; } + bool RelFlagGet() { return m_RelFlag; } CHookList(); CHookList(const CHookList &other); virtual ~CHookList(); From 87b42d68e8bbca5891ce1c1fe31e2044d7ad5497 Mon Sep 17 00:00:00 2001 From: Christian Hammacher Date: Mon, 21 Jan 2008 18:39:25 +0000 Subject: [PATCH 29/52] "Select mod directory"-dialog has now an OrangeBox checkbox, changed upgrade confirmation (now upgrades when clicking on Yes) --HG-- branch : sourcemm-1.4.3 extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40623 --- installer/MMS_Installer.exe | Bin 638464 -> 638464 bytes installer/UnitInstall.pas | 13 +++++++++---- installer/UnitSelectModPath.dfm | Bin 1148 -> 1310 bytes installer/UnitSelectModPath.pas | 11 ++++++++++- installer/UnitfrmMain.pas | 29 ++++++++++------------------- 5 files changed, 29 insertions(+), 24 deletions(-) diff --git a/installer/MMS_Installer.exe b/installer/MMS_Installer.exe index 1ac99b891ab972d9fe04ec3166c8744c626f4904..0fb7c9ba80a96333c413b76f31ec64d9d9443541 100644 GIT binary patch delta 448887 zcmb4}X*ASt{P$;}t2gf{Q1r--GmeW-U71SNoxAW*vi=#VgoUJUyI7H(XC)hYoQ_)@EgaZtd#x2vzL zH~5YLL<*-vkS2qC#4Vx%FHJx1hWi$K>Df4-TP1L}^Xer|F0fOm`10RoTf+-nVPC(R zyd@aGB$`>AdB{~zO_vu;M*6e4=XSg9SQ}-;}ZQYkt1L|;P=INNuMen1pNqKI!9$&k~G~T zPP9^j4(bO}uba0f8BD(Df=48MJ}Xbh2#eCask_KOzGLnybTAF#6yFc_LtPmE%p)(t zUGuNLP(ngoC$&yrdD-WuRi6}n*1Sg_F?$>~gvlE?%JsCE9#0yu5Rap4HQ&rqp*Xf; zmxqDVUPYW^*}f0n++7HQi`5&@kE$9>Hgdm!$C0o*G^S)FmfRCyAwTPe6pz*Y)006*aOZ8{cWNl1A4`Kv!Wm6iDL)?W1w_1A`l1rtibk?r6G8WJf(p@MoZE$r?JV1)F*V|WO9M| z%!-XY-y3vCuT^}NOxIcGFVviGG95H`tY4d52aoBuDy^a0Z1ZoGxnjJyW!?Bl7svt(e}K|9Fx#3Qj@|{CCLg-CYy+uiZ>6?Um zmUn96S#EbVk4&x0h^|oCSWT;qZVEAm6NRIW4bGY%sS_De1fr^8KA(Q(K$k$-)m_Rq z1((yNcl=3N=C{*Pz>&D_Sp>&>`YYc8+jm>PWW($ncEV_UX7TQUz#8KW9(&C6`WLi8 zR$Ts!R+$AJkG3%!fE|;aPN?s&K6b3xp+}u?glxw3_OY-fpZI^Xj-)K0PpR~vzm-HIO!vHu}l{Um*z~P9!ex-g8Y={muwQP3| zoc~EFYw5?phjl74T)VWKOCpvbYDBw$Sa%jb3-^S;6BLCkaR1{Hani-W20o?1l77x& z{4U4jKa=nfWAH06BIU0TKc?%+&g%;YvF0RKyB*JdKNJ5ANp){!BGYf+KShP!*k}w{&$)ugZ{DT`u7C%m|;MiqzXM>XxUo zS+V6p!UJ)B9Css5Y)8KNe8q1+Ttb$2zw%mQ6`5G)N*8AxKX Nu_+w5I))L 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%0Dq?L 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 ?{rC&*0A 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

C8@LC#3MiFH_iBNZaNgn!_Tq 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

YgUyu-)ZdB^F+R$C}v&C+AZDR#Wix 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