ArrowMake D3D9 MENU HACK Class Part 2 ( mpgh™ 2011 )

Posts 1–15 of 26 · Page 1 of 2
Make D3D9 MENU HACK Class Part 2 ( mpgh™ 2011 )
ATTENTION
Sorry if there is the same or whatever it is
But this My Created with My Hand since the year 2009
I use it in my country
Only ADE32.h and ADE32.cpp I've included

@Dave84311‎
@Hassan
Please move if in wrong place


> Note

* This BASE applies For forever ( Permanent )
* Can be used for other FPS games
* Keep learning if you want to be a hack maker


> Remember :

* Dont forget to always include the name of the author's name
* Need Edit again so that hack works well and one condition Use your creativity


> Clue :

* Edit Hook and change Detours with Undetec Hook/Detours



> Features

/***** Hack menu ********/
* Wallhack Chamz
* Wallhack Glass

/***** OPTION *********/
# Move Menu
# Reset Menu
# With Sounds
/***** INFO ***********/
# Maker
# Version
# Time
# Date
# FPS






Part 1

Let's start a class

1. Make a new folder in destop then give a name ( example : QmoMPGHclass ) then click OK
2. Open your Microsoft Visual Studio C++ 2010
3. Make a new Project Then give a new name ( It's up to you ) then click OK / or you can see the pic :




> Setting Properties
4. Right-click your project solution, see the pic :




> Now include parts Microsoft DirectX 9.0 SDK ( This for D3D9 Hacked ) of your project
5. Right-click your project, see the pic :







> Now go into the souce code

1a. Make a new Header file (.h) and give a new name ( It's up to you ) or that I recommend, then copy/paste all this code :

#ADE32.h
Code:
//==================================================================
// This file is part of Qmo Base D3D Class part 2
// (c) copyright Qmo 2011™
// special thanks to : mpgh.net 
//==================================================================



#ifndef __FAKE_H__
#define __FAKE_H__

#define C_ERROR		0xFFFFFFFF
#define C_ADDR1		0x00000001
#define C_ADDR2		0x00000002
#define C_ADDR4		0x00000004
#define C_LOCK		0x00000008
#define C_67		0x00000010
#define C_66		0x00000020
#define C_REP		0x00000040
#define C_SEG		0x00000080
#define C_ANYPREFIX	(C_66+C_67+C_LOCK+C_REP+C_SEG)
#define C_DATA1		0x00000100
#define C_DATA2		0x00000200
#define C_DATA4		0x00000400
#define C_SIB		0x00000800
#define C_ADDR67	0x00001000
#define C_DATA66	0x00002000
#define C_MODRM		0x00004000
#define C_BAD		0x00008000
#define C_OPCODE2	0x00010000
#define C_REL		0x00020000
#define C_STOP		0x00040000

#pragma pack(push)
#pragma pack(1)

struct disasm_struct {
	BYTE disasm_defaddr;	// 00
	BYTE disasm_defdata;	// 01
	DWORD disasm_len;		// 02 03 04 05
	DWORD disasm_flag;		// 06 07 08 09
	DWORD disasm_addrsize;	// 0A 0B 0C 0D
	DWORD disasm_datasize;	// 0E 0F 10 11
	BYTE disasm_rep;		// 12
	BYTE disasm_seg;		// 13
	BYTE disasm_opcode;		// 14
	BYTE disasm_opcode2;	// 15
	BYTE disasm_modrm;		// 16
	BYTE disasm_sib;		// 17

	union {
		BYTE disasm_addr_b[8];	// 18 19 1A 1B  1C 1D 1E 1F
		WORD disasm_addr_w[4];
		DWORD disasm_addr_d[2];
		char disasm_addr_c[8];
		short disasm_addr_s[4];
		long disasm_addr_l[2];
	};

	union {
		BYTE disasm_data_b[8];	// 20 21 22 23  24 25 26 27
		WORD disasm_data_w[4];
		DWORD disasm_data_d[2];
		char disasm_data_c[8];
		short disasm_data_s[4];
		long disasm_data_l[2];
	};
}; 

#pragma pack(pop)

int disasm(BYTE* opcode0, disasm_struct* diza);
int oplen(BYTE* opcode);

#endif 
/**************************************************************************************************************************************************************************************************************/
#QmoBase.h
Code:
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------
// flavor from the Base cheat ... need to Edit ok, and the creation of your abilities
//( Clue : discard the unnecessary )
//-----------------------------------------------------------------------------
// To Be only Included in cBase.cpp Otherwise needs Modification to Provide Cross object linking

#include "stdafx.h"

#pragma once

class cBase
{

public:

	FILE *LOG;
	char dllpath[255];
	char logfile[255];


	struct sscreen
	{
		int height;
		int width;
	}screen;

	char* GetFile(char *file);
	void  WriteFile(FILE *file,const char *fmt, ...);

};
extern cBase Base;

#QmoDetour.h
Code:
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------
// flavor from the Base cheat ... need to Edit ok, and the creation of your abilities
//( Clue : discard the unnecessary )
//-----------------------------------------------------------------------------

#define WIN32_LEAN_AND_MEAN
#define WIN32_EXTRA_LEAN

#include <windows.h>

#include "ADE32.h"

#define DETOUR_LEN_AUTO 0      // Finds the detour length automatically

enum
{
	DETOUR_TYPE_JMP,          // min detour len: 5
	DETOUR_TYPE_PUSH_RET,     // min detour len: 6
	DETOUR_TYPE_NOP_JMP,      // min detour len: 6
	DETOUR_TYPE_NOP_NOP_JMP,  // min detour len: 7
	DETOUR_TYPE_STC_JC,       // min detour len: 7
	DETOUR_TYPE_CLC_JNC,      // min detour len: 7
};

LPVOID DetourCreate(LPVOID lpFuncOrig, LPVOID lpFuncDetour, int patchType, int detourLen=DETOUR_LEN_AUTO);
LPVOID DetourCreate(LPCSTR lpModuleName, LPCSTR lpProcName, LPVOID lpFuncDetour, int patchType, int detourLen=DETOUR_LEN_AUTO);
BOOL DetourRemove(LPVOID lpDetourCreatePtr);

#pragma warning(disable: 4311)
#pragma warning(disable: 4312)
#pragma warning(disable: 4244)

#define DETOUR_MAX_SRCH_OPLEN 64

#define JMP32_SZ 5
#define BIT32_SZ 4

// jmp32 sig
#define SIG_SZ 3
#define SIG_OP_0 0xCC
#define SIG_OP_1 0x90
#define SIG_OP_2 0xC3

static DWORD Silamguard;

int GetDetourLen(int patchType);
int GetDetourLenAuto(PBYTE &pbFuncOrig, int minDetLen);

// Thin wrapper for APIs
LPVOID DetourCreate(LPCSTR lpModuleName, LPCSTR lpProcName, LPVOID lpFuncDetour, int patchType, int detourLen)
{
	LPVOID lpFuncOrig = NULL;
		
	if((lpFuncOrig = GetProcAddress(GetModuleHandle(lpModuleName), lpProcName)) == NULL)
		return NULL;

	return DetourCreate(lpFuncOrig, lpFuncDetour, patchType, detourLen);
}

LPVOID DetourCreate(LPVOID lpFuncOrig, LPVOID lpFuncDetour, int patchType, int detourLen)
{
	LPVOID lpMallocPtr = NULL;
	DWORD dwProt = NULL;
	PBYTE NewocPBrs = NULL;
	PBYTE pbFuncOrig = (PBYTE)lpFuncOrig;
	PBYTE pbFuncDetour = (PBYTE)lpFuncDetour;
	PBYTE pbPatchBuf = NULL;
	int minDetLen = 0;
	int detLen = 0;

	// Get detour length
	if((minDetLen = GetDetourLen(patchType)) == 0)
		return NULL;

	if(detourLen != DETOUR_LEN_AUTO)
		detLen = detourLen;

	else if((detLen = GetDetourLenAuto(pbFuncOrig, minDetLen)) < minDetLen)
		return NULL;

	// Alloc mem for the overwritten bytes
	if((lpMallocPtr = (LPVOID)malloc(detLen+JMP32_SZ+SIG_SZ)) == NULL)
		return NULL;

	NewocPBrs = (PBYTE)lpMallocPtr;

	// Enable writing to original
	VirtualProtect(lpFuncOrig, detLen, PAGE_READWRITE, &dwProt);

	// Write overwritten bytes to the malloc
	memcpy(lpMallocPtr, lpFuncOrig, detLen);
	NewocPBrs += detLen;
	NewocPBrs[0] = 0xE9;
	*(DWORD*)(NewocPBrs+1) = (DWORD)((pbFuncOrig+detLen)-NewocPBrs)-JMP32_SZ;
	NewocPBrs += JMP32_SZ;
	NewocPBrs[0] = SIG_OP_0;
	NewocPBrs[1] = SIG_OP_1;
	NewocPBrs[2] = SIG_OP_2;

	// Create a buffer to prepare the detour bytes
	pbPatchBuf = new BYTE[detLen];
	memset(pbPatchBuf, 0x90, detLen);

	switch(patchType)
	{
		case DETOUR_TYPE_JMP:
			pbPatchBuf[0] = 0xE9;
			*(DWORD*)&pbPatchBuf[1] = (DWORD)(pbFuncDetour - pbFuncOrig) - 5;
			break;

		case DETOUR_TYPE_PUSH_RET:
			pbPatchBuf[0] = 0x68;
			*(DWORD*)&pbPatchBuf[1] = (DWORD)pbFuncDetour;
			pbPatchBuf[5] = 0xC3;
			break;

		case DETOUR_TYPE_NOP_JMP:
			pbPatchBuf[0] = 0x90;
			pbPatchBuf[1] = 0xE9;
			*(DWORD*)&pbPatchBuf[2] = (DWORD)(pbFuncDetour - pbFuncOrig) - 6;
			break;

		case DETOUR_TYPE_NOP_NOP_JMP:
			pbPatchBuf[0] = 0x90;
			pbPatchBuf[1] = 0x90;
			pbPatchBuf[2] = 0xE9;
			*(DWORD*)&pbPatchBuf[3] = (DWORD)(pbFuncDetour - pbFuncOrig) - 7;
			break;

		case DETOUR_TYPE_STC_JC:
			pbPatchBuf[0] = 0xF9;
			pbPatchBuf[1] = 0x0F;
			pbPatchBuf[2] = 0x82;
			*(DWORD*)&pbPatchBuf[3] = (DWORD)(pbFuncDetour - pbFuncOrig) - 7;
			break;

		case DETOUR_TYPE_CLC_JNC:
			pbPatchBuf[0] = 0xF8;
			pbPatchBuf[1] = 0x0F;
			pbPatchBuf[2] = 0x83;
			*(DWORD*)&pbPatchBuf[3] = (DWORD)(pbFuncDetour - pbFuncOrig) - 7;
			break;
		
		default:
			return NULL;
	}

	// Write the detour
	for(int i=0; i<detLen; i++)
		pbFuncOrig[i] = pbPatchBuf[i];

	delete [] pbPatchBuf;

	// Reset original mem flags
	VirtualProtect(lpFuncOrig, detLen, dwProt, &Silamguard);

	return lpMallocPtr;
}

BOOL DetourRemove(LPVOID lpDetourCreatePtr)
{
	PBYTE NewocPBrs = NULL;
	DWORD NewOrig = NULL;
	DWORD NewProt = NULL;
	int i=0;

	if((NewocPBrs = (PBYTE)lpDetourCreatePtr) == NULL)	
		return FALSE;

	// Find the orig jmp32 opcode sig
	for(i=0; i<=DETOUR_MAX_SRCH_OPLEN; i++)
	{
		if(NewocPBrs[i] == SIG_OP_0 
			&& NewocPBrs[i+1] == SIG_OP_1
			&& NewocPBrs[i+2] == SIG_OP_2)
			break;

		if(i == DETOUR_MAX_SRCH_OPLEN)
			return FALSE;
	}

	// Calculate the original address
	NewocPBrs += (i-JMP32_SZ+1);        // Inc to jmp
	NewOrig = *(DWORD*)NewocPBrs;       // Get 32bit jmp
	NewocPBrs += BIT32_SZ;              // Inc to end of jmp
	NewOrig += (DWORD)NewocPBrs;        // Add this addr to 32bit jmp
	NewOrig -= (i-JMP32_SZ);            // Dec by detour len to get to start of orig

	// Write the overwritten bytes back to the original
	VirtualProtect((LPVOID)NewOrig, (i-JMP32_SZ), PAGE_READWRITE, &NewProt);
	memcpy((LPVOID)NewOrig, lpDetourCreatePtr, (i-JMP32_SZ));
	VirtualProtect((LPVOID)NewOrig, (i-JMP32_SZ), NewProt, &Silamguard);

	// Memory cleanup
	free(lpDetourCreatePtr);

	return TRUE;
}

int GetDetourLen(int patchType)
{
	switch(patchType)
	{
		case DETOUR_TYPE_JMP:
			return 5;

		case DETOUR_TYPE_PUSH_RET:
		case DETOUR_TYPE_NOP_JMP:
			return 6;
		
		case DETOUR_TYPE_NOP_NOP_JMP:
		case DETOUR_TYPE_STC_JC:
		case DETOUR_TYPE_CLC_JNC:
			return 7;
		
		default:
			return 0;
	}
}

int GetDetourLenAuto(PBYTE &pbFuncOrig, int minDetLen)
{
	int len = 0;
	PBYTE pbCurOp = pbFuncOrig;

	while(len < minDetLen)
	{
		int i = oplen(pbCurOp);
		
		if(i == 0 || i == -1)
			return 0;

		if(len > DETOUR_MAX_SRCH_OPLEN)
			return 0;

		len += i;
		pbCurOp += i;
	}

	return len;
}

#QmoFont.h
Code:
//-----------------------------------------------------------------------------
// File: D3DFont.h
// Desc: Texture-based font class
// Copyright (c) 1999-2001 Microsoft Corporation. All rights reserved.

/*------------------ Editt by ------------------------------------------------*/
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||qq
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
#ifndef D3DFONT_H
#define D3DFONT_H
#include <tchar.h>
#include <D3D9.h>

// Font creation flags
#define D3DFONT_BOLD        0x0001
#define D3DFONT_ITALIC      0x0002
#define D3DFONT_ZENABLE     0x0004

// Font rendering flags
#define D3DFONT_CENTERED    0x0001
#define D3DFONT_TWOSIDED    0x0002
#define D3DFONT_FILTERED    0x0004
#define D3DFONT_RIGHT       0x0008		// non standard
#define DT_SHADOW      0x0010		// non standard



//-----------------------------------------------------------------------------
// Name: class CD3DFont
// Desc: Texture-based font class for doing text in a 3D scene.
//-----------------------------------------------------------------------------
class CD3DFont
{
    TCHAR   m_strFontName[80];            // Font properties
    DWORD   m_dwFontHeight;
    DWORD   m_dwFontFlags;

    LPDIRECT3DDEVICE9      m_pd3dDevice;  // A D3DDevice used for rendering
    LPDIRECT3DTEXTURE9     m_pTexture;    // The d3d texture for this font
    LPDIRECT3DVERTEXBUFFER9 m_pVB;        // VertexBuffer for rendering text
    DWORD   m_dwTexWidth;                 // Texture dimensions
    DWORD   m_dwTexHeight;
    FLOAT   m_fTextScale;
    FLOAT   m_fTexCoords[128-32][4];
    DWORD   m_dwSpacing;                  // Character pixel spacing per side

/**********Stateblocks for setting and restoring render states *****/
    LPDIRECT3DSTATEBLOCK9   m_dwSavedStateBlock;
    LPDIRECT3DSTATEBLOCK9   m_dwDrawTextStateBlock;

public:
    // 2D and 3D text drawing functions
    HRESULT DrawText( FLOAT x, FLOAT y, DWORD dwColor, 
                      TCHAR* strText, DWORD dwFlags=0L );
    
    // Function to get extent of text
    HRESULT GetTextExtent( TCHAR* strText, SIZE* pSize );

    // Initializing and destroying device-dependent objects
    HRESULT InitDeviceObjects( LPDIRECT3DDEVICE9 pd3dDevice );
    HRESULT RestoreDeviceObjects();
    HRESULT InvalidateDeviceObjects();
    HRESULT DeleteDeviceObjects();

    // Constructor / destructor
    CD3DFont( TCHAR* strFontName, DWORD dwHeight, DWORD dwFlags=0L );
    ~CD3DFont();
};




#endif

#QmoMenu.h
Code:
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------
// flavor from the Base cheat ... need to Edit ok, and the creation of your abilities
//( Clue : discard the unnecessary )
//-----------------------------------------------------------------------------

#include "stdafx.h"
#include "Qmofont.h"



#pragma once

#define ITEM_ARRAY 64 // Maximum of 64 Items change to reduce Static address size

// ============ SOME CALCULATION MACROS FOR LONG CALCULATIONS ================
// ============                THE PREFIX IS MC				  ================
#define MC_MAXX					(X+WIDTH)												// X of Menu + Width
#define MC_FCTR(x,y)			((x+y)/2)												// Calculate Center Point Between two items
#define MC_ITEMY(index)			(Y+(index*I_SPC)+T_SPC+(T_SPC/2))						// Calculate Y of Item using Index or calculate Menu Maximum Y
#define MC_MSY					(Y+T_SPC+(T_SPC/2))										// Y Start For Menu Items


/*=================================== Menu Class ============================*/
class cMenu{

public:

//-----------------------------------------------------------------------------
// Desc: Item Index Structure
//-----------------------------------------------------------------------------
	struct sitem{
			char title[50];		// Name Of Item to Display
			char state[50];	    // States of Item
			int	 type;			// Type of Item ie. Cat , Items
			int  max;			// Number of States
			int  no;			// number inside the Array
			int	 *val;			// Variable Being Controlled
	} items[ITEM_ARRAY];
//-----------------------------------------------------------------------------
// Desc: Item Color Enumeration
//-----------------------------------------------------------------------------
	enum COLORS{  // Normal Colors
		WHITE	=	D3DCOLOR_ARGB(255,255,255,255),
		RED		=	D3DCOLOR_ARGB(255,220,20,60),
		GREEN	=	D3DCOLOR_ARGB(255,0,255,0),
		BLUE	=	D3DCOLOR_ARGB(255,0,0,255),
		BLACK	=	D3DCOLOR_ARGB(255,0,0,0),
		PURPLE	=	D3DCOLOR_ARGB(255,125,0,255),
		GREY	=	D3DCOLOR_ARGB(255,128,128,128),
		YELLOW  =	D3DCOLOR_ARGB(255,255,255,0),
		ORANGE	=	D3DCOLOR_ARGB(255,255,125,0)
	};
//-----------------------------------------------------------------------------
// Desc: Item Color Enumeration
//-----------------------------------------------------------------------------
	enum I_COLORS{  // Item Colors
		C_OFF	 =	D3DCOLOR_ARGB(255,255,255,255),
		C_ON	 =  D3DCOLOR_ARGB(255,220,20,60),
		C_CAT	 =	D3DCOLOR_ARGB(255,220,20,60),
		C_CUR	 =	D3DCOLOR_ARGB(255,220,20,60),
		C_TITLE	 =	D3DCOLOR_ARGB(255,255,255,255),
		C_STRING =	D3DCOLOR_ARGB(255,220,20,60),
	};
//-----------------------------------------------------------------------------
// Desc: BackGround Color Enumeration
//-----------------------------------------------------------------------------
	enum BK_COLORS{ // BackGround Colors
		C_BOX    = D3DCOLOR_ARGB(255,0,0,0),
		C_BORDER = D3DCOLOR_ARGB(255,220,20,60)
	};

//-----------------------------------------------------------------------------
// Desc: Menu Types Enumeration
//-----------------------------------------------------------------------------

	enum I_TYPES{
		T_TEXT = 0,
		T_ITEM = 1,
		T_CAT  = 2
	};

//-----------------------------------------------------------------------------
// Desc: Class Global Variables
//-----------------------------------------------------------------------------

	CD3DFont *font;
	int  X,Y;			// TOP LEFT OF MENU
	POINT mofs;			// Offset From Mouse Last Point
	POINT mpos;			// Mouse Coordinates
	int  M_DRAG;		// is Menu Being Dragged
	int  WIDTH;			// Width of Menu
	int  I_OFS,S_OFS;	// Item Title Column Start
	int  I_SPC,I_TSPC;  // Title Spacing and Item Spacing
	int  T_SPC,F_SPC;	// Title Spacing from Menu Items and Footer Spacing
	int  NO;			// Number of Menu Items
	int  I_CUR;			// Current Menu Item
	bool SHOW;			// Is menu shown
	bool INIT;			// Has Menu Been Setup
	// ANIMATION GLOBALS 
	int  ABOR;			// Board Animation Offset
	int  BTEX,BDIR;		// Blinking Text Highlight

//-----------------------------------------------------------------------------
// Desc: Class Global Functions
//-----------------------------------------------------------------------------

	void	DrawBox( int x, int y, int w, int h, D3DCOLOR Color,LPDIRECT3DDEVICE9 pDevice);
	void	DrawBorder( int x, int y, int w, int h, D3DCOLOR Color,LPDIRECT3DDEVICE9 pDevice);
	void	DrawMouse(int x, int y,LPDIRECT3DDEVICE9 pDevice);
	char*	oprintf (const char *fmt, ...);
	void	PostReset(LPDIRECT3DDEVICE9 pDevice);
	void	PreReset(void);
    char*	FPS(int en = 1);
	char*	TIME(void);
	char*	DATE(void);
	void	ShowMenu(LPDIRECT3DDEVICE9 pDevice);
	void	ShowBox(LPDIRECT3DDEVICE9 pDevice);

//-----------------------------------------------------------------------------
private:

//-----------------------------------------------------------------------------
// Desc: Class Private Functions
//-----------------------------------------------------------------------------
	void	acat(char *title, char *states, int *var);
	void	aitem(char *title, char *states,int *var, int show, int when);
	void	atext(char *title, char *states,int show, int when);
	void	atext(char *title, char *states);
	void	additem(char *title, char *states,int type, int *var, int show, int when);
	void	getfield(char *str,char *dst,int no);
	int		nofields(char *str);
	void	Init(void);
	int		Load(char* szSection, char* szKey, int iDefaultValue,LPCSTR file);
	void	Save(char* szSection, char* szKey, int iValue,LPCSTR file);

//-----------------------------------------------------------------------------


};
extern cMenu Menu;

// Item Manager Struct
struct copt{
//Global Variables
int text; // Text Items
		struct sinfo{
				int main;
		}info;
		struct splayer{
				int main;
				int superj;
				int speed;
				int stamina;
				int recoil;
				int spread;
				int trigger;
				int	nfd;
		}player;
		struct sserver{
				int main;
				int spawn;
				int prem;
				int slots;
		}server;
		struct susercp{
				int main;
				int pfind;
				int pinfo;
				int pkey;
		}usercp;

		struct sasm{
				int main;
				int antik;
				int invis;
				int restrict;
				int mview;
				int nodelay;
				int prone;
				int uoxy;
				int bone;
				int shotty;
				int opk;
				int svp;
				int	uammo;
				int stw;
				int wtw;
		}asmm;
		struct sd3d{
				int main;
				int ChamsCT;
				int ChamsTERO;
				int WHGlass;
		}d3d;
			struct schams{
				int main;
				int chams;
				int	chamsf;
				int	chamsb;
				int type;
		}chams;
		struct sesp{
				int main;
				int oespn;
				int oesph;
				int espn;
				int esph;
				int espi;
				int eonly;
				int espd;

		}esp;
		struct soptions{
				int main;
				int move;
				int reset;
				int save;
				int load;
		}options;
};
extern copt opt;

#QmoSound.h
Code:
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------

#include "stdafx.h"
#include <mmsystem.h>

#pragma once

// Stripped Sound Class kinda pointless for public release since i stripped all the cool functions but more pain to remove lol

class cSound
{
	
public:

	struct smp3
	{
	
	}mp3;

	struct swav
	{
	void playsound(LPCSTR sound);
	void playsoundmem(LPCSTR sound);
	}wav;

};
extern cSound Sound;
Part 2



#pragma.h
Code:
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------

#pragma warning(disable: 4018)
#pragma warning(disable: 4996)
#pragma warning(disable: 4102)
#pragma warning(disable: 4244)
#Sounds.h
Code:
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------
char* SWITCH = "\x52\x49\x46\x46\x7C\x30\x00\x00\x57\x41\x56\x45\x66\x6D\x74\x20\x10\x00\x00\x00\x01\x00\x02\x00\x44\xAC\x00\x00\x10\xB1\x02\x00\x04\x00\x10\x00\x64\x61\x74\x61\x10\x30\x00\x00\x8E\x00\x50\x00\x0A\x05\x2A\x00\xB8\x02\x25\x00\x0B\xFE\xF8\xFF\xB8\x00\x79\xFF\xD2\xF9\x20\xFF\x32\x01\x2D\xFF\xB6\x0A\x22\xFF\x81\xFD\xFA\xFE\x94\xFC\xB2\xFF\x14\xFA\xC5\x00\xFA\xF6\xF4\x00\xC6\xFC\xE9\xFF\x80\xFE\x48\xFF\x0E\xFE\x98\xFF\xC9\xFE\xE6\x00\xE7\x01\x7D\x01\x6F\x01\x42\x00\x07\x06\x93\xFE\xDB\x02\x65\xFE\x2D\x05\xA3\xFF\x33\xFE\x4E\x00\x84\xF9\xD1\x00\x6A\xFD\xE8\x00\xB9\xFD\x4F\x00\xFF\x05\x40\x00\xB8\x04\x1E\x00\x7B\x02\x6E\xFF\xC6\xFE\x60\xFF\x94\xFE\x6F\x00\x0D\xFB\x7B\x00\x65\xFE\xBC\xFF\xBB\xFB\x36\xFF\x7B\xFB\xF8\xFE\xE9\xFC\x12\xFF\xD7\xFE\xE6\xFE\x02\xFE\x14\xFF\xDE\xFE\x52\xFF\x8A\x01\xFA\xFE\xD0\x04\xE5\xFE\x69\x05\xF2\xFF\x7F\x04\x6D\x00\x2E\x06\x30\x01\x85\xFF\xDE\x01\x92\x00\x53\x01\xC3\x01\x3A\x01\x81\x01\x29\x00\x3B\xFF\x5E\xFF\x50\xFF\xFD\xFF\xC8\xFB\xA7\x00\x3B\xFE\xC5\x00\x75\x08\x45\x01\xED\x17\xB7\x01\x68\x27\xD9\x00\x3D\x24\x1A\x00\x47\x05\x0F\xFF\x47\xDF\x4E\xFE\x77\xE1\x9E\xFE\xE4\xF0\xF7\xFD\xE6\xF3\xFC\xFD\xEE\xF2\x31\xFF\x36\xDE\x21\x00\x59\xCE\x52\x00\x50\xEB\x83\x00\x5A\x0A\xEF\x00\x9A\x19\xB6\x00\xD8\x29\x2C\x00\x0A\x23\x39\x02\x45\x01\xFA\x07\x9B\xF1\x76\x0B\x86\xFF\x25\x06\x04\xF7\x9F\xFD\x85\x0A\x77\xFB\xF3\x01\x2A\xFB\xFD\xD7\xD0\xF7\x16\xF1\x2D\xFB\xA1\x03\xFA\xFD\xEB\xFF\xC6\xF3\x1C\xFC\x82\xEE\xEB\xEE\x2A\xF6\xCE\xDA\x93\x00\x3B\xDD\x6B\x09\xB6\xE2\x3F\x0E\xC6\xFB\xEB\x09\x82\x14\xF4\x06\xEA\x0B\xA8\x06\xBF\x06\x93\xFF\xF7\x21\xC1\xFE\x17\x22\x73\x04\x56\x0D\xEE\xF6\xB4\x1E\xEC\xF0\x99\x11\x8C\xFE\x9A\x0E\x7F\xFC\x7B\x14\xF5\x00\x47\xF1\x1C\x06\x6B\xF7\xD9\xF9\xF0\x06\x7F\xF6\x8C\xFC\x15\xFC\x64\xF8\xF0\xFF\xA0\x07\xDC\xFF\x55\x14\xD9\x01\x0D\x18\x3B\x02\xB6\x12\xE9\xFA\x7C\xF1\x11\xF7\xC9\x17\x60\xF9\xF0\x31\xCC\x04\xB1\xFD\xC6\x0A\xEB\xED\x73\x04\x0B\x08\xCE\x06\x83\x25\xFE\x06\xD7\x1D\x1F\x05\xBE\x3E\x7D\x04\xFA\x41\xE3\xFD\x87\x16\x3F\x06\xCA\xFC\xEA\x12\xEE\xE7\x44\x0A\x39\xE1\xD0\xFD\x3B\xCB\x0E\xF8\xD4\xB4\xC9\xF9\x2A\xA7\xCB\xFE\x74\xAE\x45\x01\x50\xCB\x74\x00\x05\xBF\x47\xFF\x3D\xA1\x9F\xFD\x0B\xCB\xE1\xFE\xB9\x04\x84\xFD\x99\x1B\x52\xFB\x6A\x62\x9C\x02\x4E\x5A\x0E\x02\x89\xDD\xD4\xFB\x05\xFD\x06\xFC\xD1\x58\xEA\xFF\x82\x13\x3C\x01\x2C\xBD\x48\x05\xBA\xB4\x28\x08\x64\x02\x4F\x07\x32\x1A\x29\x04\xC7\x2F\x34\xFD\x10\xEB\xC8\xE8\xDA\xC6\x8B\xE8\x9C\xE5\xA0\xF2\xD6\xB6\x84\xDC\x24\x0B\xDD\xEE\xFA\xF0\xD2\x0E\x18\x67\x57\x03\xDD\x37\x66\x14\xD6\x0E\x53\x08\xD7\xC7\x07\xF5\x3A\x1A\x73\x11\x44\x69\x2A\x11\x82\xDD\x70\xE9\xAF\xFA\x4D\xCC\x74\x1B\x7E\xF8\xE3\xC2\x6C\x1D\x6A\xF1\x56\x16\x33\x1F\x14\x1A\x10\x22\x48\x0E\x21\x6D\x02\xFF\x3B\xF6\xE6\x02\x3E\xE7\x7A\xF8\x64\x08\x87\xF8\xDD\x50\xEC\xF6\xF8\x64\xB9\xC5\x1E\x2C\x6C\xBD\x19\xEA\xB8\x0E\xEF\xE8\x1C\x20\x95\xFF\x7E\xE0\x80\xAC\x7B\xDA\x5E\xD4\x18\x1F\x26\x0A\xD5\x42\x0F\xFF\xD9\x46\x15\x47\x03\x40\xD4\xDC\xDF\x2A\x3D\x0B\x47\x24\x00\x37\x76\x09\x2B\xC9\xC0\xFE\xEA\xA2\xD9\x0C\x95\xA5\x36\x0F\xC7\x1C\x40\xD5\x90\x20\x9C\xB0\x57\xF3\x12\xFB\x5C\xC2\xA3\x29\xDD\xDE\xD4\x12\x43\x5D\x04\xF9\x69\x11\x2E\xDB\xD0\x29\x98\xF0\x7A\xD4\x4D\x01\xF9\xEB\x9F\xFA\x2F\x39\xFA\x1D\x5D\xC6\x9F\x1D\xFF\x96\x62\xF2\xBC\xB5\xB3\xCC\xDC\x00\x5E\xDC\x07\xA7\xDA\xFC\xC4\xDC\x4B\x00\x1A\x50\x84\x01\xFC\x57\x86\xF5\xFF\x7F\x48\x06\xCC\x6B\x0F\x0D\x06\x35\x05\xFF\xED\xFD\x49\xF0\xA2\xF6\xAA\xE3\x59\xC8\x3F\xE0\xDD\x1F\x1F\xEB\xC5\xBA\xAE\x14\x47\xD3\xCB\x13\x05\xE0\x01\xFB\x1D\xC8\x71\x0E\x1F\x62\x88\xFF\xD9\xF1\x10\xE3\xF8\xD5\x03\xFC\x00\x2D\x0B\x17\xBE\x18\xF2\x15\x3B\x4A\xE7\xFF\xA4\x73\x45\x09\x4D\x0E\xB6\x35\x8F\xD3\xC8\x2A\x4A\xFA\x1D\xF6\x0C\x48\x10\xDC\x7E\x39\x07\xD1\x0D\x1B\x39\xD9\xB5\xC5\x1B\x0D\x1A\x97\x5E\x2F\x4E\xC5\x32\x3E\xB3\x0C\x20\x08\x57\xCC\x89\xD0\x93\xCA\x69\xE8\x18\xD1\x32\x04\xE4\xA1\xF1\x24\xA4\x0D\x54\x20\xF6\x41\xDA\xF1\x1A\x71\x11\xE4\x37\x47\xFA\xE1\x9D\xC6\x96\xE6\x85\xD4\x07\xFB\x7A\x02\x13\x16\x13\x48\x70\xF4\xEA\x22\xD5\xD6\x0D\xDD\x79\xD0\x86\xB4\x12\x08\x73\xBE\xE7\x42\x31\x35\xBA\x29\xFB\x37\x97\x09\xD1\x2B\x13\x04\xF6\x2E\x30\x0A\x79\xE6\x3F\xF5\x7E\xD4\x4F\xE0\xF6\x32\x61\xEB\x4B\x4C\xFC\xE4\xCA\x01\xA4\xE1\x7C\xB6\x7F\x04\x78\xC3\xEE\x0A\xE1\xB6\xC3\xFB\x5B\x0E\xA9\xFB\x77\x49\x9E\xF1\x96\xF0\x3E\x06\x36\xD2\x5F\x47\x83\xCB\x42\x4D\x07\xC1\x51\x16\x92\x24\xF2\xE2\x0B\x50\xB8\xDA\xCB\x22\xE2\xF0\x8B\xCF\xD4\xF9\x5C\x9D\x93\x09\x07\xEB\xE0\x04\x00\x05\x74\xE4\x0A\x3C\xD0\xEB\xE3\x3D\xF8\xF4\x11\xE8\xE7\x07\xAC\x1E\x08\x12\xD7\x1B\x28\xFA\x51\x53\xA5\xE5\xAE\x35\x0C\xDF\x20\xB2\xBC\xF7\x9E\x07\x17\x15\x54\xBC\x81\x1B\xF9\xF0\x69\x10\x99\x3E\x82\x12\x36\xCE\xF0\x16\x11\xA9\x25\x04\x06\xCD\x69\xF5\x3E\x2F\x78\xE6\x10\x4E\x47\xD0\xB2\x03\x18\xE6\xB5\x31\xEB\x0D\x88\x5C\x82\x0F\xCE\x52\x0D\x04\x5B\x24\x0C\xFF\xAA\xEE\x37\xF8\x10\xC8\x73\xFF\x4D\xC4\xD0\x03\x88\x05\x2C\xFF\x9A\x06\xBC\x0F\xF0\x9B\x85\x0A\xCF\xBD\xBF\xF9\xD4\xE3\x19\xFA\xE1\xC7\x10\x05\x19\x15\x2F\x07\xE8\x43\x60\x01\xCD\x2E\x0E\x07\xC5\x47\x9D\x12\x58\x14\x5B\x07\xC3\x5A\xF1\x05\x99\x53\x7C\x04\xF0\x06\x03\xE4\xB2\x01\x29\xD8\x63\xCE\x49\xE7\xB0\x09\xEC\xFB\xB6\x2B\x5D\x15\x25\xC1\xF6\x12\xFA\xBB\x28\x06\xCA\x9D\x71\x0A\xDA\x0B\xB1\x0E\xE4\x2A\x05\x23\xC0\x07\xD8\x1E\x96\xFA\x9F\x09\x99\xBF\x36\xFC\xD6\xFD\x10\xF0\x0B\x3D\xCE\xED\xFD\x22\xFF\xE1\x9F\x1A\x7A\xD4\x57\xF2\xA6\xE1\x09\x15\x46\xF4\xC2\x0E\xEA\x01\xE1\xF9\x38\x0B\x70\xED\x1F\x10\xA1\xB8\x84\x19\x06\xD7\x9B\x21\x85\xC7\x36\x23\x71\xD4\x29\x1C\x53\xC7\x72\x05\xC8\xD6\x3E\xED\x2C\xE0\xB9\xF2\x10\xD3\xB8\xEA\xB0\x08\x59\xE4\xAB\x1F\x19\xEB\x75\x57\x96\xF0\x82\x52\x55\xEE\x63\x1F\xBE\xEE\x07\x47\xA8\x0C\xD1\x3E\x65\x14\x86\x10\x48\x05\xD1\x05\xF0\x06\x49\xF4\x09\x02\xD2\xBE\xC1\x0B\x64\xB4\x09\x07\x3B\xB9\x1D\xFA\xB8\xB6\x72\x02\xBD\xD9\xD9\x00\xD8\xCF\xB1\xF4\xBD\xCE\x33\xF5\xC1\x10\xBD\x02\xED\x42\xB0\x07\x4D\x66\xA1\x06\x00\x53\x03\xFE\xA4\x75\xD6\xFB\x9C\x60\x5B\x03\xE5\x14\x5A\x0B\xF9\x10\x34\x05\xFA\xF3\x12\xF2\x41\xCC\x8E\xEC\x0D\xBE\xA7\xF3\x25\xA9\x51\xF6\xDD\x9B\x95\x0B\x82\xCD\x93\x10\xCA\xCE\x88\x02\xD4\xBC\xB1\x00\x28\xFC\x67\x0A\xEC\x31\xA0\x0B\xD5\x3F\xE3\xFC\xE3\x2D\x51\xF8\x87\x26\xD9\xFE\x46\x2F\x3B\x00\x2B\x34\xAE\xFF\x20\x12\x43\xF6\x0D\xE3\x80\xEF\x9E\xEC\xBC\xF8\xC6\xD2\x3E\x07\x39\xD8\x75\x07\xDF\xC8\x7F\x03\xBF\xD9\x46\x0A\xC5\x06\x00\x0A\x13\xDF\x72\x02\xCD\xDF\xA2\xFE\xDD\x26\x43\x00\xE3\x41\x2C\xFA\x08\x34\x3C\xF7\xE0\x08\xE5\xFB\x0E\x13\x85\xF4\x1E\x1B\xDC\xF2\x02\x30\x77\xFC\x4B\x19\x06\x06\x3D\xE0\x22\x09\x79\xD3\x57\x01\x50\xE2\xEA\x04\xF7\xEE\x5F\x0E\x05\xEC\xB3\x14\xFE\xE6\xE9\x0E\x94\xF6\x1A\x05\xEB\xED\x01\x04\xEA\x07\x76\x00\x5A\x08\xB3\xF0\xEC\x09\xA4\xEC\xB0\x17\xAE\xF7\x5B\x00\x8B\xF8\x3A\xF3\x0C\xFF\x47\x03\xE7\x01\xFF\x28\xB0\xFC\xE6\x11\xD9\x00\xDD\x02\xE4\x05\x18\x18\x52\x0C\xD3\xFF\xC0\x0F\x42\xDC\xEF\x02\x80\xEB\x96\xF3\xC2\xE4\xBF\xF9\x7C\xD2\x8D\x06\xEF\xD3\x2F\xFE\xA6\xD9\x0D\xF6\x6B\x09\x23\xF9\x18\x1B\x17\xF6\x6F\x1B\x87\xF8\x0F\x24\x95\x00\x41\x3C\x34\x0C\xE1\x23\x2C\x0C\x01\x1B\xFF\x02\x36\x17\x0D\x03\x49\xF5\x76\x06\xC1\xF8\x81\x01\xEB\xE6\xCC\xF8\x0C\xD8\x99\xF5\x12\xEB\x54\xF2\xEB\xDE\x70\xF5\xC4\xCD\xB8\xF9\x02\xEC\xE7\x01\x9F\xF3\x23\x08\xD5\xFF\x72\xFF\xC3\x05\x5B\x01\x37\x09\x6C\x0D\x9D\x1B\x43\x11\x9F\x1B\xBC\x0F\x7B\x05\x83\x05\xAB\xFD\x76\x00\xBB\x1E\x9B\xFF\xA9\x20\x50\xF7\x4D\xED\x40\xF5\xDA\xCB\x25\xFB\xC1\xD3\xBC\xF5\x9C\xFB\x60\xF3\xFE\xFA\xD4\xFD\x21\xE7\xE3\x06\xFF\xFF\xD7\x09\xF5\x2E\xFC\x0B\x62\x1D\x3D\x0A\x20\x05\x39\x05\xE4\x05\x1D\x05\x88\x0A\xBF\xFE\xDB\x06\xCE\xF9\x1F\xF3\x6F\xFA\xA3\xD6\x11\x01\x81\xEB\xC4\x01\x17\xF2\xF6\xFD\x25\xEB\x6A\x04\x0E\xFB\x96\x05\xB0\x19\x0E\x00\xDE\x1A\xA3\xFF\x10\x13\x4B\x02\x20\x0C\xCE\x07\x9C\x05\x33\x0A\x11\x0D\x8C\x07\x74\x15\xF8\xFB\xE2\x09\x51\xF2\x2F\xFD\x1F\xF4\x32\xE9\x10\xF7\xC4\xEE\xCE\xF6\x05\x0C\xD7\xF7\x12\xF8\xBA\xF8\x76\xFC\x3B\x03\xF9\xF3\xF8\x10\xBD\xF4\x53\x0F\x60\x03\x90\x08\x8A\xF3\xAC\x04\x3E\xFF\x00\x07\x95\x06\x08\x05\x86\x11\x72\xFB\x87\x13\x53\xF9\xDF\xFC\xB8\xFB\xA3\xE4\x7D\xF9\xAE\xF4\x88\xFA\x12\x06\x76\xFD\x5E\xF2\x21\xFE\xFC\xF7\x9B\x01\x15\xFA\x14\x00\x2C\xFB\x39\x06\xD9\x0B\x6C\x0D\x69\x08\x2F\x0C\xCC\x01\x29\x08\x34\x09\x70\xFE\x4B\x01\x49\xF4\x64\xF6\xB1\xF4\x0F\x00\x13\xF8\x11\x06\x80\xF8\xC3\x02\x3F\xF8\xFD\xEB\x61\xFA\x10\xF2\x2D\xFB\xCA\x01\xB4\xFC\x32\x10\xC0\x04\x89\x00\x11\x08\xF9\xF4\xDA\x01\xEF\x0F\x2D\xFF\x9C\x12\x41\x01\xD3\x05\xD8\x05\x17\xFB\xFC\x04\x03\xF3\x2D\x03\xBA\xFE\xC7\xFD\xB1\xFF\xAC\xF3\xF9\xF5\xEF\xF5\x41\xEF\x47\xFC\x36\x02\x5D\xFF\xC8\x08\xA6\x03\xB7\x07\x8E\x02\xA7\x03\xB2\xFE\x6D\xFE\xAE\xFF\x6B\xFA\x80\x04\xD7\xF7\xC8\x03\xC2\x00\xB3\xFE\xA6\x00\x20\xFE\xC2\x07\x05\xFD\x15\xFF\xC5\xFF\x6A\xF8\x76\x00\x04\x05\xF1\xFF\xCE\x09\x10\x05\x82\x01\xBD\x07\x7E\x01\xF8\x03\x28\x11\x70\x00\x2F\x0A\x4F\x04\x96\x08\xCB\x08\x1C\x05\x23\x01\x76\xFB\xCE\xFC\x5D\x02\x1F\xFA\x34\xF8\xC3\xF9\xC3\xEB\x49\xFD\x52\xF4\xC6\xFF\x83\xFC\xC7\xFD\x5B\xF8\x26\xFB\x2C\xF6\xA5\x01\x2E\x01\xFB\x09\x6A\x0E\x6A\x08\x2B\x04\x50\x03\xF8\x06\x83\x00\xC8\x04\xA3\x01\x61\xFD\x8A\x00\x41\x03\x7F\xFF\x8F\xFB\xF6\xFF\x86\xFA\xE9\xF9\x37\xF9\x37\xF4\x33\xFF\x15\xF6\x33\x02\xA6\xFD\x19\xFC\x3D\xFD\x3F\xFB\xDC\xFC\x0C\x01\x0F\x03\x66\x08\xE3\x05\xBE\x02\x68\x04\xBE\x04\xE1\x01\xBD\x05\xF3\x00\x21\xFD\x77\xFF\x82\xF7\xBD\xFA\x6C\xF4\xD3\xFB\xB3\xFA\xFE\xFE\x94\xF8\x1B\xFC\xAC\xE8\xD4\xFC\x36\xFB\x8E\xFF\x8D\xFF\xCA\x01\x6A\xFA\x21\x04\xA9\x0E\x20\x05\xE4\x0D\x6F\x07\x90\xFE\x09\x08\xAB\xFF\x46\x03\xD7\x0B\x23\xFC\x41\x11\x94\xFB\xF3\x10\x74\xFD\x6D\x03\x3E\xFD\x05\xFE\x17\xFC\x3A\x12\x63\xFD\x08\x05\x2B\xFF\xBA\xF1\x14\xFC\x7F\xFA\xAD\xFF\x2C\xF6\x45\x0A\x94\xFB\x6F\x0C\xFA\xFA\xB4\x09\xAC\xFC\xB2\x03\x7B\xFA\xC2\xFF\xE2\xFC\x07\x03\xEF\x05\x7B\x06\x3F\x03\xBD\xFF\x63\x03\x50\xF7\xC1\x09\x6F\xF7\x38\x0C\x08\xFC\xA2\x0A\x57\x04\x6A\x05\xF1\x04\x31\x08\xC0\xFF\xCA\x0C\xA3\x00\x19\x01\x2C\x02\x7F\xFD\x77\x00\x21\xFF\x35\x01\xBA\xFD\xEB\x02\xF3\xFE\xF3\xFE\x0B\xF4\x9F\xF9\xDF\xEC\x2E\xFA\x56\xF2\x08\xFC\x3E\xFE\xEC\xFB\xC4\x06\x7B\xFB\x0B\x08\xE4\xFF\x16\x07\x59\x02\x6C\xFC\xAA\x02\xBA\x04\xD2\x07\xA0\x11\x19\x08\xAF\x03\xD1\x00\xEA\xFC\x88\xFD\x2C\x02\x7D\xFF\xFB\xF5\xFB\x01\x22\xFC\xA9\x01\x1D\x02\xA7\xFF\x84\xFA\x80\xFB\xF7\xF1\xD1\xFD\x4B\xF3\xED\x01\x3D\x01\x7D\xFD\x30\x03\xE3\xFC\x4B\xFD\xF3\xFC\x1C\x02\x25\xF9\xF5\x01\x72\xFB\xE9\x06\xE4\xFE\xB9\x0A\xAE\x02\x18\x05\x0A\x06\x9C\xFF\xA7\x05\x8C\x07\x55\x05\xCF\x10\x05\x05\xE3\xFE\x08\x08\x7B\xEB\x7D\x07\x5F\xFB\x7A\x02\x13\x00\x44\x01\xAF\x05\x58\xFD\xBE\x0C\x57\xFC\xC9\x02\x66\x00\xA5\xFD\x8E\xFE\xEF\xF8\x00\xF9\x0C\x06\x58\xFA\x5E\x07\x3E\xFB\xA5\xF6\xCD\xF6\x5C\xFC\xEB\xF9\xA7\x08\xA9\xFF\x68\x0A\x61\x00\x6F\x03\x9B\x00\xC8\x02\xEF\x03\xA8\x03\x75\x04\x79\x01\x0F\x05\x30\xFF\x70\x08\x46\xF8\xB2\x09\xA7\xF9\xDF\x05\x89\xF9\xB5\xFE\x24\xF2\xEC\xFE\x77\xF6\xEE\x01\xFC\xF9\x3E\x01\xE8\xFF\xAF\xFD\xF1\x14\x74\xF9\x95\x0D\xFB\xF8\x63\x03\xF6\x00\x41\x03\x3F\x04\x47\x0E\x14\xFF\x75\x12\xBC\xFD\xFF\x03\x1B\x03\x20\xFC\x94\x06\x83\xF9\x59\x00\xFC\xF5\x7E\xFD\x51\xFF\x6C\xFF\x7A\xFA\x25\xFF\x3D\xF0\xFA\xFF\xE4\xF6\x1C\x02\xB8\x06\x68\x01\xF9\x0C\x49\xFF\x69\x0C\x68\x01\xEB\xFC\xA5\x02\xBD\xFD\xAB\xFF\x61\x07\x4F\x03\xC3\x01\x4A\x03\x88\xFA\x30\xFE\xE1\x05\x14\xFA\xE0\x0C\xCB\xFE\x41\xFD\x17\x04\x51\x00\x67\x00\xE2\xF4\x7B\xFC\x19\xF5\x72\xF9\xFD\x01\xF5\xF2\x67\x01\xD5\xF7\xA1\x01\x23\x03\x52\x02\xA2\x02\xA8\xFF\x4F\xFB\x7D\x01\x88\xFD\x65\x01\xA7\x06\x17\xFE\xF2\x06\x15\x02\x24\x04\x16\x05\xFF\xFF\x37\xFF\x5A\xFE\x5E\xFE\x2B\x00\xBD\x00\x45\xFA\xAC\xFE\x95\xFD\x7E\xFC\x27\x07\x7D\xFC\x64\x02\xB0\xFC\x52\x01\x34\x03\x17\x06\xD9\xFE\x81\x02\x35\xEF\x39\xFB\x1A\xFC\x36\x02\x8B\x05\xA9\xFC\x1D\x0C\xEF\xF0\x4B\x08\xDA\xF8\xBC\xFC\x7F\xF6\x16\x07\x26\xF8\x9E\x0F\x95\xFF\x1D\x03\xE0\xFA\x96\x0C\xF6\x01\x3D\x08\x36\x0C\x1C\xFC\x7E\x0D\x02\xFF\x46\x0B\x00\xF8\x3C\x0D\x2F\xEF\x23\x06\x25\xF6\x14\xF8\xFD\xFC\x3A\x01\x5A\xF7\xF6\x03\x6B\xFA\x5C\xF8\x72\xFB\x32\x03\x2D\x01\x5E\x06\x31\x06\x2D\xF6\x73\x0A\xBB\xFC\x48\x09\x03\x08\xF0\x04\x94\x03\x35\x05\xB7\xFB\x0B\x0C\x7F\xF7\x78\x02\xB6\xF9\xE0\xFD\x10\x01\x35\x05\x2C\x02\xEA\xFE\x71\xFF\xF9\x03\x24\x00\xFF\xFB\x4C\xFC\x9F\xEB\x0A\xF8\xFB\x02\x85\x04\x15\x0A\x92\x0B\x56\xFA\xB9\x00\x4D\x00\xB0\x02\xF0\x02\xC5\x04\x12\x04\xF9\xFE\x62\x0A\x7F\x03\x68\xFE\xBB\x06\x70\xFC\x70\xFD\xE4\x02\xCE\xFA\x5B\xFE\xB0\xFE\xF4\xF3\x92\xF8\x4D\xF9\x29\xFF\x45\xFF\x6C\x06\xAA\xFC\x41\xF7\x87\xFA\xA8\xF5\xD0\xFD\xAF\xFE\x9E\x05\x10\x0D\xB4\x04\x8E\x11\x3B\xFD\x8A\x00\x5C\xFF\x42\xFB\xDB\x0A\xCC\x07\xEA\x07\x8B\x01\xE2\xF8\x9B\xF9\x57\xF6\x52\x01\xF8\xF9\x7E\x03\xF1\x02\x62\x00\xB9\xFD\x4C\xFA\x6B\xFE\xEB\xF6\xB0\x04\xB1\xFC\x05\xFB\x88\xF9\xBD\x04\x41\xF7\xCC\x0E\x3E\xFC\xA0\xF6\xB3\xF9\xAD\xF9\x7C\x01\x2B\x0A\x7F\x0A\x82\x0C\x7B\x08\xE6\x0B\xA7\x06\x0F\xFF\xBF\x07\xF5\x02\xE8\x04\xEA\x12\x58\xFE\xB5\x07\xE6\xFA\x95\xFA\x1F\xF5\xAB\xFB\xDF\xF6\x9E\xF9\xC9\xFF\x3A\xFD\xF5\xFC\xE2\xF8\x13\xFA\xCF\xF6\x82\xFE\xF1\xF9\x9C\x00\x67\x02\xCA\x04\x81\xFE\x35\x0A\xDB\xFC\x29\x03\x44\x07\x31\xFD\x59\x02\x8B\x05\x81\x04\xFC\x06\xC3\x06\x31\x03\xAE\xFF\x75\xFF\xA5\xFF\xEE\x01\xD8\xFD\x2B\x01\x19\xFD\x0C\xFD\xDD\xFF\x81\x01\x10\xFA\x7B\x02\x62\xFA\x6A\x00\xB8\xFB\x8B\x03\xD7\xFC\x4D\x05\x3B\xF6\xEC\x02\xF1\xF7\x39\xFE\xFF\xFB\x43\x01\xB5\xFE\x0B\xFE\x21\x0B\xEE\xF6\xE7\x08\xBB\xFD\x8A\x06\x54\x07\x54\x0A\xCB\x09\xFA\x06\xED\x06\xDA\xFD\x0A\xFD\xA7\xFF\x79\xF7\xF9\x00\x3B\xFE\xB2\xF9\x28\x00\x9B\xF1\x86\xFC\xFA\xFC\x20\xFB\xCB\x06\x20\xFE\x32\x05\x92\xFE\x65\x09\x79\xFC\x8B\x0B\xB2\xFF\x58\x0B\x7F\x03\xAA\x06\xF3\x06\x75\xFE\x68\x02\xA7\xF9\xB7\xFF\xAD\xF7\xD8\x05\x58\xF9\x77\x00\xEA\xF6\xFE\xF9\x36\xF1\x3A\xFB\x1D\xF9\x5F\xFE\x26\x04\xC5\x03\x5F\xFF\x4A\x05\x16\xF5\x9D\xFD\x03\xFA\x07\xFA\x16\xFE\x5B\x06\x89\xFD\x19\x01\x02\x06\xF1\xFB\x23\x05\x14\x01\xE2\x03\x76\xFF\x6B\x03\xE3\xFB\x41\x03\x77\xFC\x02\x08\x30\x00\x45\x04\xD7\x04\x1A\xFD\x05\x06\x45\xFE\xA1\x05\x78\xF8\x63\x07\x24\x00\x23\xFE\x83\x03\x83\xF7\x06\xFD\x6F\xFF\xFD\xFC\xA2\xFE\x4F\xFA\x6F\xF6\xE0\xF8\x7B\xFD\xFB\xFC\xC7\xFF\x7C\x03\x16\xFB\x15\x04\xE7\xFB\xAA\xFE\x8C\x04\xAD\xF9\x61\x08\xC9\xFE\xB1\x08\x4B\x02\x90\x04\x63\x02\xFD\x04\xBB\x03\x28\x08\xF4\x02\x1A\x05\xD6\x06\xC6\xFC\xCB\x00\xE2\xFA\xE7\xFC\x79\xFC\xF9\xFF\x03\xFE\xDD\x01\x44\xFD\x62\x01\xFB\xF9\x40\xF8\x02\xFF\x4E\xF4\x0A\x00\xE9\xFD\x1E\x00\x05\x07\xB0\xFF\x94\x04\x52\x00\xF6\xFE\x70\x00\x90\x03\xCD\xFF\xFD\x05\x5A\x02\xC1\xFE\x2C\x09\x4E\xF8\x8C\x02\xA0\xF9\xE2\xFC\xCB\xFD\xA7\xFA\x0B\xFC\xB6\xFA\x03\xFE\xE9\xFD\x9D\x01\x79\xFF\xCA\x04\x2B\x00\x15\x09\x6E\x01\xCD\x02\x73\xFE\x43\x00\x09\xFC\xCE\x03\x43\xFF\xEC\x01\x31\x00\xF5\x02\x1B\xFF\x0C\x01\x48\xFF\x76\xFA\xCF\x02\x79\xFE\x7E\x00\x95\xFB\x61\xFD\x7D\xFD\xC1\x01\xA0\x04\x9F\x04\x22\x00\x44\x01\xA2\xFD\xA8\xFD\x79\xFE\x0C\x02\x92\x00\x01\x08\x9F\x00\xCD\x01\x00\xFB\x0B\xFF\x76\xFC\x73\x01\x78\xF9\xF0\x00\xB4\xF6\x1C\xFF\x1F\xFE\x4E\x00\xD6\x04\x11\xFF\x4B\x08\x97\xF8\x6F\x01\x1A\xFC\x65\xFF\xAA\xFE\xB3\xFC\x38\x01\x41\x04\xCA\x01\x34\x09\xBA\xFF\x25\x01\x15\x02\xD5\xF8\xEE\x04\xFF\xFC\xFB\x06\xD7\xFE\xBC\x07\x06\xFD\xFB\x04\xAD\xF9\x5A\x04\x3D\xFD\x23\x01\xD3\x02\x75\xF9\x06\x02\xD4\xF2\x61\xFB\xC9\xF2\xB6\xFE\xCC\xFD\xFE\x06\xF9\xFE\xAC\x06\xA6\xFE\x53\xFE\xED\xFF\xC4\xFA\xCA\x02\x46\x01\x02\x04\xB5\x02\xE9\x08\xAE\xFF\xA3\x0A\x56\xFB\x33\x06\xBF\xFE\xD3\x01\xEC\x05\x3A\x00\xC4\x04\xDE\xFF\xAE\xFD\xFC\xFE\x0C\x01\xBE\xFF\x6B\x04\x19\xFC\xB9\xFD\xCD\xF9\x94\xF1\xEA\xFF\x77\xF7\x00\x02\x2F\xFB\xAF\x01\x1E\xFC\x7B\x01\x7E\xFC\x98\xFE\x2A\xFD\xC5\x00\x3D\x00\xCE\x03\x4F\xFC\x2A\x03\x25\xFF\x7A\x00\xDE\x02\xA8\xFD\xFC\x01\xE6\xFE\x0E\xFE\x81\x03\xF9\xFB\x62\x04\xDE\xFF\x20\x02\xF4\xFF\x0C\x00\x37\xFE\x06\xFC\xA6\x02\xF5\xF9\x0A\x05\x9F\xFE\x40\x04\x14\x01\x46\x00\x29\xFC\x4D\x01\x02\xF8\x28\xFF\x62\xFA\x07\xF9\xA2\xFB\x9B\xF8\x40\xFF\x5C\xF6\x5B\x01\x6B\xF9\x02\x01\x84\x00\x3D\x04\x23\xFD\x58\x06\xB8\x02\x1F\x05\xE0\x02\x07\x03\x78\x01\xDB\x00\x75\x02\xDC\xFF\xD2\xFE\xA7\x01\x24\xFF\x41\xFF\x58\xFD\x2E\xFD\x49\xFB\xFA\xFD\xFA\xFC\xB5\xF9\x93\xFE\xB4\xF7\x59\x02\x94\xFC\x6B\x04\x49\x01\xF7\x00\x9C\x03\xAB\xFA\x0A\x02\xC2\xFA\x7E\x02\x11\xFE\xEB\x04\x36\xFD\xD8\x05\xBE\xFC\x62\x04\x51\xFA\x0A\x01\xDB\xF8\xCA\x01\x65\x03\xFD\x03\x85\x01\x0D\xFE\x50\xFC\x2D\xFA\x95\x01\x02\xF9\xB0\xFE\x57\xFE\xFE\x05\x2C\x01\xB3\xFF\xA2\xFF\x74\xFE\x2F\x00\x8C\xF9\x71\x00\x1A\xF2\x58\x02\xB5\xF4\x98\x01\x65\x00\xE9\x00\x63\x07\x64\xFF\xC1\x05\x83\x00\xDE\x05\x7C\xFD\x58\x04\xBD\xFA\xD8\x07\xA1\xFC\x2A\x03\xCF\xFE\x24\xFD\xB9\xFF\xEF\xF3\x41\xFE\xDF\xF8\x39\xFF\x49\xFF\x2E\xFE\x2F\xFA\x68\xFE\xD2\x01\x5E\x03\xEF\x01\x19\x04\xE6\xFA\xD5\x02\x33\x00\xD6\x03\x3D\xFD\x90\x04\xB1\xFC\x9A\x03\x1A\xFE\x7A\x00\x14\xF9\xF1\xFC\x19\xFC\x9B\xFC\x4A\x0B\xB1\xFF\xDE\x01\x24\x02\x54\xF9\x24\xFF\x94\xFF\x1F\xFA\xA8\x04\x8E\xFB\x3F\xFC\x9C\x00\xB0\x00\xE0\x01\xF0\xFA\x6B\x04\x17\xF1\xCB\x04\x99\xFD\xD0\x01\x5D\x03\x3E\x00\xDA\x03\x2F\xFD\xD2\xF7\x1D\xFF\x76\xFA\x6B\x02\x8F\x05\x5B\x01\x4A\x05\x6A\x00\x69\xFE\x9C\xFB\x42\x02\x71\xF9\x41\x03\x9E\xFE\xD5\xF8\xA2\x01\xCB\xFD\xDA\x00\x40\x05\xBA\xFB\x53\xFD\xF9\xFD\x44\xEF\xE6\x01\x80\xF6\xC5\x01\xDC\xFC\x75\x00\x05\x02\xF6\x00\x71\x0C\xE0\xFF\xA7\xFB\x94\x00\x9E\xFC\x42\x03\xC5\x0B\x3F\x00\x4F\x05\x68\xFE\xF2\xFE\x64\xFF\x29\xFC\xF8\xFF\x42\xFA\xB0\x00\xD3\xFC\xE7\xFE\xFF\xFE\x0C\x01\x81\x02\x69\xFF\x67\xFA\xEC\xFA\x9C\xFA\x19\xFD\x5F\x01\x88\x01\xD1\xFA\xCB\x04\xC1\x02\xE6\x04\x41\x08\xCA\x00\x62\xFE\x2C\x00\x7A\xFB\x61\x00\x75\x04\x76\x00\xB7\x06\x19\x02\x8D\xFB\x15\x01\xF0\x01\xC9\xFE\xA9\xFC\x46\xFC\x72\xFE\xE2\xFE\x51\x02\xF8\xFF\x1A\xF7\x40\xFF\x3B\xFF\x57\xFF\x31\xFF\x57\x00\xC9\xFE\xF3\xFE\xB9\xFE\xCB\xFF\xDD\xFC\xD9\x02\xC6\xFC\xC1\x02\x3E\xFF\xF9\x02\x26\xFF\x3C\x01\xCD\xFC\x08\xFF\x05\x01\xCA\x00\x37\xFC\xB8\x03\x86\xFF\x84\x01\x6F\x07\xE5\xFD\xBF\x04\x5D\xFE\x5C\x01\x77\x00\xF0\x00\x8A\x01\x64\x00\xE0\x00\xB2\xFC\xAA\x00\xA7\xFD\x39\x02\xA4\xFA\x70\x00\x4A\xFA\xFD\xFD\x70\xFB\xEF\x00\xC6\xF8\x14\x00\xCF\x01\x21\xFE\x57\x02\x2E\x00\x06\xFF\xED\xFD\xD1\xFE\x38\xFC\x20\x01\xE2\xFF\xE2\x06\x8F\x01\x8F\x06\xF4\x00\xA1\x08\xD7\xFE\x01\xFF\x46\x00\xA3\xF7\x96\x05\x98\xFE\x95\x05\x0C\x00\xAD\x00\xDD\xF4\xDA\xFC\xD9\xF6\x8B\xFE\x7A\xFD\x39\x01\x6F\xFB\x57\x00\xD6\x03\x3F\xFF\xD4\x03\x33\xFF\xB2\x03\x0B\xFF\x92\x04\x91\x00\xFA\x08\x05\x00\x51\x05\xF4\xFD\x41\xFF\xA4\xFF\x1C\xFF\xB9\x00\x6F\xFC\x6F\xFD\x01\xF7\x31\xFB\x8E\xF9\xF4\xFD\xB9\xFE\xD3\xFE\x26\xFE\xAE\xFE\x36\x00\x26\x02\x61\x01\x34\x04\x59\x04\xCA\x02\xEC\x06\xDB\x02\x9A\x07\xDC\x03\x86\x06\x84\x02\xF0\x03\x08\x01\x38\x01\x40\x00\x18\xFD\x39\x00\x09\xF8\x18\xFF\x1A\xFA\x91\xFD\xC8\xFB\x8E\xFB\x67\xFD\xFE\xF9\x75\xFB\xC4\xFB\x9D\xFB\x1E\xFC\x90\xFE\x3F\xFD\xF7\x01\x37\xFD\x9C\x02\xB9\xFE\x06\x00\x70\x00\x32\x03\xD9\xFF\xA2\x02\x2D\xFF\x68\x00\x64\x01\x3F\xFF\xF4\x03\x9B\xFF\x19\x01\xF3\xFD\x97\xFE\x7A\xFE\xC6\xFD\xFF\xFE\x82\x00\x8D\xFF\xCC\x00\x80\xFE\xE6\xFE\x5D\xFF\xC6\xFD\x0B\xFD\x78\xFB\xF8\xFE\xF9\xFC\x4C\x04\xA8\xFF\x1B\x03\x33\xFF\x61\xFE\xC8\xFE\x48\xFF\xDA\x02\x8D\x00\xB2\x05\x69\x00\x43\x01\xB0\xFF\xE1\xFE\xB7\x00\x45\x02\x15\x00\x69\x00\x00\xFF\xFD\xFD\x02\x05\xE2\x01\xC1\x04\x20\x05\xE8\xFF\xDD\x05\x72\xFF\x0A\x02\x37\x04\x05\x00\x43\x01\x1E\x01\xFC\xFD\x96\x01\x9F\xFB\x9D\x00\x7B\xFC\xAE\xFF\xD2\xFE\x83\xFB\x10\xFE\x5E\xFB\x7F\xFB\x73\xFF\xE9\x03\x07\xFF\xB6\x08\x6D\xFD\x9E\x01\xF2\xFD\x80\x02\xB2\xFF\xE7\x01\x35\xFD\xA3\xFD\x87\xFF\x7F\xF7\xBA\x03\x34\xF8\xA9\x02\x96\xFE\x16\xFF\x43\xFB\x30\xFD\x89\xFE\x75\xFD\x95\x05\xED\xFD\x49\x0A\xD4\xFF\x86\x09\x38\x00\x21\x05\x23\xFE\x04\x00\x13\xFD\x04\x00\xFA\xFE\xFA\x01\x3E\x01\xA0\xF9\x7E\x00\xB4\xF8\xB2\xFF\xCE\xFA\xD4\x00\x1F\xFB\x5E\x00\x72\xFF\xCF\x00\x4B\x01\x70\x04\x25\x07\x0E\x04\x31\x07\xAD\xFF\x1D\x07\x4E\xFF\x17\x05\x26\x03\xCE\xFF\xF2\x03\x31\xFC\x79\x02\xD7\xFE\x22\x00\xC6\x03\x73\xFE\x31\xFF\x5B\xFE\x83\xFC\x5E\xFD\x38\xFD\x7A\xFE\x70\xFE\x81\xFF\xE2\x01\xFB\xFE\xD9\xFD\x39\x00\x23\xFC\x5F\xFF\x89\x00\xB4\x01\x12\x03\xAA\x05\xBB\x01\x9C\x03\x10\xFD\xAF\xFF\xBB\xFD\x66\xFC\xC8\xFF\x70\xFC\x46\x01\x38\xFF\x99\xFE\x84\x00\x7D\xFF\x9B\xFF\xF1\x00\x26\xFD\xD1\xFA\x6B\xFD\x05\xF8\xE8\xFE\x6F\xFA\xA9\x00\x01\xFC\x17\x02\xFA\xFE\xEC\xFE\xCB\xFD\xC0\xFB\xEE\xFD\xF1\xFC\xB7\x07\x23\xFF\x21\x0C\x85\x00\xC7\x07\x9A\xFF\xBF\x04\x41\xFE\x0A\x01\x5F\xFF\xE4\xFD\xA8\xFF\x5B\xFE\x1B\x00\x14\xFB\x4B\x00\x49\xFC\x96\x00\x40\x00\x69\xFE\x75\x02\x9F\xFC\x9E\x04\xA3\xFE\xDE\x00\x64\x01\xFF\xFE\xE0\x01\xDD\x00\x83\x00\x91\x01\x4E\x00\x8F\x02\xE7\xFD\xBC\x02\xE3\xFE\xAC\x00\x02\x03\xB5\xFC\xBF\x03\x02\xFF\x1D\x02\x10\x03\x9E\xFF\x04\x03\x48\xFD\x21\x00\x3D\xFF\x95\xFC\x62\x01\x1D\xFE\x84\x01\xC2\x00\x91\x00\xA0\xFF\x84\xFD\x57\xFD\xC9\xFD\x60\xFB\x4B\x00\xB5\xFB\x56\x00\x46\xFF\xF7\xFE\x79\xFF\x9A\xFE\xCA\xFD\x52\xFE\xB2\xFF\x65\x00\xD8\x03\xD4\x02\x18\x07\xF0\x03\x4E\x03\x81\x03\x1A\xFD\x72\x00\xDB\xFB\x23\x00\xF1\xFC\xE1\x01\x8E\xFF\xFF\xFF\x0A\x00\xB7\xFF\x42\xFC\xF3\xFE\x1A\xF9\xA0\xFC\xE5\xFB\xD6\xFD\xA8\x00\x6E\xFE\x58\x02\x23\xFF\xF3\xFF\x0F\x00\x71\xFF\x72\xFF\x58\xFF\xDF\xFE\xE1\xFE\x0C\xFF\x19\x03\xE0\xFF\xF9\x05\x40\xFF\x9F\x07\xBB\xFF\xFE\x05\x61\x01\xDB\x00\xC9\x01\x9A\x01\x5E\x02\x5C\x01\xC9\x02\xF7\xFB\xFF\x01\xC7\xFA\x62\xFF\xDF\xFA\xA2\xFD\x52\x03\x15\xFE\x0A\x05\xEF\xFC\x57\xFE\xE0\xFA\x80\x00\x36\xFC\xB8\x00\xF2\xFF\x0A\x01\x31\x00\x5B\x01\x02\xFF\x4F\xFF\xEF\x00\x9B\xFF\x1B\x04\x9D\xFD\x1B\x05\xDD\xFE\xAB\x03\x5F\x01\xDE\xFF\x87\x00\x4C\xFD\x60\xFF\xDE\xFF\x6A\xFB\xA6\x01\x45\xFC\x41\x00\x34\xFF\xBB\xFD\x4D\xFD\x58\xFD\xEC\xFB\xC5\xFE\xB6\xFE\xC1\xFF\xB4\xFF\x88\xFF\xE8\x00\x1E\xFF\x0C\x00\xE0\xFF\x15\x00\xCE\xFF\x65\xFF\xA2\xFF\xE1\xFD\xF5\x00\xB2\x01\x8A\x01\x6E\xFF\xB6\x01\x2C\xFE\xB2\x02\xB4\xFF\xDA\x01\xB5\xFD\xC0\xFF\x0E\xFE\xBE\x00\xDD\x01\x18\x00\xBE\xFF\x55\xFD\xFB\xFD\x56\xFC\x11\x01\xD7\xFC\xE8\x03\x04\xFE\x52\x04\x1F\xFE\x09\x02\x7E\xFF\xEB\x01\xD5\x00\xEC\x01\x41\x00\x9B\x01\x8B\x01\x7E\x02\xAE\x02\x55\x00\xB9\x01\x18\xFD\xCD\xFF\x41\xFE\xCC\xFF\x73\x00\x6C\x02\x86\x00\x30\x03\x44\x00\x04\x01\xE9\xFD\x1C\xFF\xF1\xFD\x69\x00\x3D\x01\x55\x00\x49\x02\x65\xFE\xC4\x01\x5A\xFE\x4B\x02\x11\xFE\xF8\x01\xAA\xFF\x8B\x00\x17\x01\xC1\x00\xEE\xFF\x55\x00\x64\xFF\x40\xFF\x7E\x00\x89\xFE\x23\x01\x7A\xFC\x89\x00\xD0\xFB\x92\x01\x61\xFD\x36\xFF\xBF\xFC\x9A\xFC\xF1\xFB\x45\xFE\x26\xFD\x14\x00\x7A\xFF\x3C\x00\x00\x00\xC2\xFE\x81\x00\xBD\xFE\xD9\x01\xDE\xFF\x6A\x03\xD1\xFF\xCD\x02\x3D\xFF\x14\x03\x14\x01\x7B\x02\xFA\x02\x81\xFE\x35\x01\xA7\xFD\x16\x01\x1D\x00\x15\x01\xE2\xFF\xCA\x00\xA1\xFC\x98\x01\x60\xFD\xF4\x01\xB6\xFE\xD2\x00\x6B\xFF\x2E\xFE\x6A\x00\xE8\xFE\x89\x00\x39\x00\x36\x02\x0C\xFD\xFD\x02\xF1\xFB\x0B\x01\x6D\xFE\x65\xFF\x62\xFF\x04\x01\x0C\xFE\x48\x00\xBB\xFE\x1F\xFF\xA4\x01\x22\xFD\x33\x03\xAF\xFB\x6C\x03\x5F\xFE\x21\x02\xE1\xFF\x3B\x02\xCD\x00\x89\x03\x4E\x03\xE0\x00\xFB\x05\x71\xFE\x86\x04\x33\xFE\x76\x01\x5F\xFD\xB8\xFF\xFB\xFC\xE0\xFC\xEA\xFC\xA4\xFC\x85\xFC\x03\xFF\x89\xFD\x8A\xFD\x2E\x00\x71\xFF\x59\x00\xE5\xFF\x6F\xFF\x63\x00\x05\x01\x59\x00\x5F\x02\x0F\x01\x5A\x01\x4E\x02\x2E\x00\x09\x01\x3A\x00\x3C\x01\xD3\xFF\x00\x00\x30\xFF\x45\x00\x25\x01\x39\x00\x28\x01\xC3\x01\x8E\xFE\xCE\x00\x5B\xFE\x38\xFF\x42\x00\x0D\xFF\x0D\x01\x9C\xFF\x39\xFF\x12\xFF\x38\xFF\x4D\xFF\x2B\x02\x62\xFF\x1B\x01\x3E\x00\x2B\xFE\x0D\x02\xEA\xFE\x6E\x01\xCC\x00\x01\x01\xB7\x00\x8E\x01\x76\x00\xA4\xFF\x99\x00\x1B\xFE\x23\xFF\x7E\xFD\x76\xFF\x0A\x00\x18\x01\x0C\x02\x2C\x01\xE1\x00\x56\x00\x93\xFF\xB0\xFF\xDB\xFD\x76\xFF\xAB\xFE\x1F\xFF\xB8\x00\xCD\xFF\xB2\x01\x76\xFF\xFE\x00\xEC\xFF\xD5\xFE\x35\x00\xC6\xFE\x95\xFF\x6A\x03\x32\x01\xCC\x00\x73\x00\xCB\xFF\x07\xFF\xE3\x02\x92\xFF\x21\xFF\xDB\x00\x4A\x00\xA3\xFF\x67\x01\x9C\xFE\x8D\xFD\x96\xFF\x71\x01\x65\x00\xF3\xFE\xB4\x00\xF4\xFD\xC4\x00\x17\x01\xBA\xFF\xB7\x01\x90\xFF\x6E\x02\xCA\x01\x06\xFD\x36\x01\x91\xFB\xF8\xFF\xD5\xFB\x3A\x00\x7C\x00\xB7\x00\x4E\x04\x66\x01\x14\x01\x44\x01\x6C\xFF\xF8\xFF\xFE\x00\x89\xFF\x18\x01\xEB\xFF\x2E\x00\x78\xFF\x48\xFE\xC9\xFF\x2F\xFF\x57\x01\x08\x03\x31\x00\xAA\x00\xEF\xFD\xF5\xFE\xFC\xFC\x64\xFF\x62\xFD\x60\xFB\xCA\xFE\x88\xFA\xBF\xFF\xC2\xFE\x01\x01\x7F\x02\x67\x01\x72\x03\x13\x01\x9A\x04\x44\x01\x57\x06\x0C\x01\xAE\x04\x72\x01\xA5\x04\x08\x01\xA9\x00\x50\xFF\xE4\xFC\xE0\xFD\xA8\xFC\xB3\xFD\xBC\xFA\x8A\xFE\x6C\x00\xB1\xFD\xB4\xFB\x26\xFF\x46\xFD\xFA\xFF\xBD\x03\x3E\xFE\x42\x04\x60\xFE\x57\x06\xE1\x00\x4C\x07\xF3\x02\x68\x02\xD0\x02\x01\x02\xA6\x03\x4F\x01\x47\x03\xCF\xFC\x71\x00\xD9\xFD\x6F\xFF\x91\xFB\xBF\x00\xA4\xFA\xC3\xFF\x73\xFF\x32\xFD\xFA\xFE\x78\xFD\x8D\x04\x50\xFF\xA0\x00\x41\xFF\x56\xFB\x74\xFF\x9C\x02\xD6\xFF\x53\x04\x8C\xFE\x40\x03\x53\xFD\x9F\x00\x48\xFF\x9D\x02\x80\x02\x93\x00\x74\x01\x46\xFD\x0C\x00\x0E\xFE\xC5\x01\x39\xFD\x4B\x02\x32\xFF\xF9\x03\xEE\xFC\x7F\x03\x2E\xFE\x54\x01\xE1\x02\xAB\xFF\xBB\xFF\x52\xFD\xDD\x01\xD4\xFB\x1D\x01\xFF\xFC\x35\xFF\x46\xFE\x8D\x05\x94\xFC\x3C\x04\x3A\xFD\x56\xFF\xEA\xFE\xAE\x02\x68\xFE\x96\x01\x43\xFF\x92\xFB\x01\x02\x2E\xFC\x8D\x02\x59\xFE\x0D\x02\x36\xFE\xA9\x02\x2F\x03\x78\x02\x8A\x01\xB3\x02\x4E\x02\x0C\x01\x93\x03\xF0\xFF\x40\x06\x1D\xFF\x82\x04\x7F\xFE\x7F\xFD\xC7\xFE\x0A\xFF\x3F\xFE\x01\x01\x04\xFE\xAF\xFB\xEE\xFD\xE9\xF8\xD2\xFF\xE6\xFE\xF5\x00\x81\x01\x0C\x00\x2E\x02\xF3\xFE\x8F\x02\xDD\x00\x9F\x00\x12\x02\x75\x02\x7F\x02\x60\x05\x32\x03\x78\xFF\x48\x00\xE3\xFC\x0D\x00\xF0\xFC\x75\x01\x06\xFE\xFF\xFF\xE0\xFF\x77\xFD\x70\x00\x23\xFC\xB1\x03\xED\xFD\x0F\x02\xB9\xFE\x61\x01\x16\xFF\x21\x04\x13\x01\xE6\x01\x2B\x02\xF2\xFF\x9B\x00\x50\xFE\xEF\x00\x0B\xFF\x26\x03\x4D\xFF\x5B\x03\x16\xFF\xD2\xFF\x74\xFF\xBE\xFC\x4A\xFF\xD1\xFC\x4F\x00\x5F\xFF\x78\xFF\x8A\x00\x9F\xFE\x6A\x00\xA9\xFE\x3E\xFF\x08\xFF\x55\xFE\xAF\x00\xF9\x00\xB2\x02\x97\x02\x3D\x04\xA5\x01\xCE\x02\xF2\xFF\x1F\x03\x4D\x00\x1A\x00\xC0\x00\x71\xFD\x14\x00\x62\x00\xB0\xFF\x7F\x00\x20\xFE\x9A\xFF\xA6\xFE\x11\xFF\x35\x00\x03\x00\x9D\x00\x45\x00\xCE\xFF\xF0\xFF\xDE\xFE\xCE\x02\x92\x00\x65\x02\x37\x01\xAD\x01\xA3\x00\xDB\x02\xA9\x00\x75\x01\x84\x00\xC0\x00\x88\x00\x00\x00\xBE\x00\xEF\xFF\x58\x01\xFA\xFD\x47\x00\x37\xFE\x06\xFF\xA7\xFF\xE4\xFE\x0F\xFF\x32\x00\xCD\x00\x36\x01\x49\x03\xCB\x00\x99\x04\x6F\x00\xF7\x01\x54\xFF\x32\x02\x70\xFF\x63\x03\xE6\x00\xF4\x00\x27\x00\xA6\xFD\xCB\xFE\x1E\xFB\x65\xFF\x91\xFC\x97\xFF\x66\x00\xAE\xFF\xA6\x01\x21\xFF\x6C\x00\xD0\x00\x07\xFF\x2C\x01\x48\x00\x20\x01\x28\x01\x2E\x02\x75\xFF\xB1\x00\x4D\x01\x90\xFF\x97\x01\xEE\x00\x29\x02\xEF\x00\x91\x02\x53\xFE\x17\x03\x2E\xFD\xB0\x04\xDB\xFE\x94\x02\x14\x00\x3D\x00\xA8\xFD\x51\xFD\x05\xFD\x69\xFD\xAA\x00\xCB\xFE\x9E\x02\xBE\xFD\x8D\x01\x04\xFC\x58\x01\x72\xFC\x79\x00\x86\xFF\xA4\xFF\xF9\x01\x89\x00\x24\x03\xDB\x00\xA9\x03\x03\xFF\x72\x02\x19\xFD\x49\x01\x1E\xFE\x90\x01\xEE\xFE\x1F\x02\x5D\xFF\x35\x02\xAA\xFF\xD7\xFF\x3F\x00\x6D\xFE\x45\x01\x96\xFD\x86\x02\x66\xFE\x73\x03\x1C\x00\xB7\x03\xCB\x00\xA5\x01\x2E\x01\x8E\xFE\x93\x00\x4D\xFF\x3F\x00\xCC\x00\x29\x00\x73\xFF\x50\x00\x3E\xFE\xF0\x00\x60\xFE\xC6\x00\x98\xFD\xC4\xFF\xB7\xFD\x7C\xFF\x74\x00\xDB\x00\x48\x03\xDF\x01\xE2\x02\x0D\x01\xA8\x00\x07\x01\x1E\x01\x63\x01\xED\x02\xF2\x00\x1E\x02\xBE\x00\x87\x00\x69\x00\x6B\xFE\x26\x01\xDB\xFC\x2C\x01\x25\xFC\x8A\x00\x1C\xFD\x2C\x01\x1A\xFD\xC9\x01\xB5\xFD\x85\x01\x91\x00\x46\x00\xDD\x00\x60\x00\x1E\x00\xA0\x01\xD4\x00\xBE\x02\xC3\x01\xA8\x02\xF1\x00\x9D\x01\x9F\x00\xAB\x00\xCA\x00\xFE\xFF\xA9\x00\x48\xFF\x0E\x00\x34\xFE\xF3\xFE\x0B\xFE\x43\xFF\x34\xFE\x1E\x01\x81\xFE\x50\x01\x59\xFE\x44\x01\x06\x00\xB5\x01\xEC\x02\xC5\x00\xA3\x03\xDC\x00\xA4\x02\x80\x01\x7D\x02\x25\x00\xEB\x02\xB5\xFE\xF4\x01\xC2\xFF\xFE\x00\xB0\x00\xFA\xFE\x83\xFF\x5E\xFE\x8C\xFE\x39\xFE\xC6\xFF\xD4\xFC\x3D\x01\xBA\xFE\xB6\x01\x12\x01\x06\x00\x08\x02\x55\x00\x2B\x02\x0A\x02\xD4\x01\xD6\x01\xEE\x00\xEE\x00\x0B\x01\xB6\xFF\xF7\x01\x14\x00\x3A\x00\xAD\x00\x97\xFF\xD6\xFE\x23\x00\x1C\xFE\xDC\xFF\x90\xFE\x8A\xFF\xDD\xFD\xC7\xFE\x91\xFD\xBB\xFF\xE4\xFD\xF5\x00\x81\xFE\xD7\x01\x6E\xFF\x2C\x01\x1A\x01\x8A\xFF\xD5\x01\xA2\x00\x52\x01\xB1\x01\xAD\x01\x4A\x01\x39\x01\xAD\x01\x65\xFF\xF6\x01\xF3\xFE\x15\x01\x31\xFF\x53\x01\xDE\xFE\xE7\x01\x07\xFF\xC2\x00\xB2\xFF\x05\x00\xEA\xFF\xC4\xFF\xA9\x00\x88\xFF\x6B\x01\xC9\xFF\x71\x02\x1E\x01\x75\x02\xD2\x01\xA1\x00\xAB\x00\x29\x00\xDD\x00\x56\x00\x29\x01\x67\x00\x2F\x00\xFB\xFF\x39\x00\x36\x00\x0D\x01\x9C\xFF\xC5\x01\xA0\xFE\x97\x01\x4B\x00\xB5\x00\xB4\x01\x2B\x00\x62\x01\xF1\xFF\x95\x00\x48\x01\xD3\x00\xEB\x01\xC0\x00\x77\x00\x0E\x00\x43\x00\x27\x00\x60\x00\xAB\x00\x25\xFF\xF3\xFF\x15\xFF\xF2\xFE\x1A\x00\x10\xFE\x95\x00\xF2\xFE\x16\x01\x9B\xFF\xC0\x01\x05\x00\xF1\x01\x0B\x01\xB4\x01\xEA\x00\x2F\x01\x25\x01\xD4\x01\x73\x01\x0F\x02\x72\x01\x76\x00\xA6\x00\xAC\xFF\x14\x00\xA2\x00\x9D\xFF\xE0\x00\x81\xFF\x4E\x00\xC2\xFF\xC8\xFF\x17\xFF\x72\x00\xD6\xFE\xAF\x00\xD7\xFF\x2E\x00\x5D\x00\xCB\xFF\x94\x00\x98\x00\x2C\x01\xEA\x01\x91\x01\x4F\x02\xA1\x01\x2A\x02\xAC\x01\xD5\x02\xEF\xFF\xE1\x02\xEC\xFD\xD7\x01\x57\xFE\x76\x01\x95\xFF\x5A\x00\xA8\xFE\x54\xFF\x79\xFC\x34\xFF\xB0\xFD\x58\xFF\xAC\x00\x58\xFF\x15\x01\xEA\xFF\xC4\x00\xAD\x00\x85\x02\xE0\x00\x64\x03\x5B\x00\xBC\x01\xF1\xFF\xAA\x00\x9E\x00\xB2\xFF\x26\x01\x0F\xFF\x4D\x00\xAF\xFF\xB7\xFF\xEE\xFE\xF6\xFF\x2A\xFE\x63\x00\x48\xFE\xA3\x00\x47\xFF\xCB\x00\xF5\xFF\xFC\x01\x8F\xFE\xAC\x01\x0F\xFE\xD9\x00\xB5\xFF\x61\x01\x66\x00\x01\x02\x55\x01\x40\x02\xF3\x01\xE0\x01\xFC\x00\xDD\x01\x37\x01\x41\x01\x5A\x01\x8B\x00\x1B\x00\x57\x00\x62\xFF\xFA\xFE\x2A\x00\x1F\xFE\x37\x00\xF1\xFF\xB5\xFF\x5D\x00\xA6\xFF\xBD\x00\xE5\xFF\x94\x02\x3E\x00\xF2\x03\xAA\x00\x94\x03\x6D\x00\x4E\x03\xAB\xFF\xA3\x03\x16\xFF\x07\x02\x6E\xFF\x75\x01\xC1\xFF\x63\x00\x44\x00\x33\xFF\xD8\xFF\x9D\xFE\x3E\x00\xC2\xFD\x5E\x00\xDF\xFF\x2C\x00\xF1\x00\x5C\x00\x96\x00\x3A\x00\xA9\x02\x8E\x00\x54\x01\x2E\x00\x50\x01\x7C\x00\xE5\x01\x62\x00\xFD\x01\xCB\xFF\x54\x01\x84\xFF\xE7\x00\xCB\xFF\x0F\x00\xC1\xFF\x39\xFF\xEF\xFF\x51\x00\xD9\x00\x05\xFF\x7E\x01\xA5\xFE\xF4\x01\x59\x00\x85\x01\x84\x00\xED\x00\x4A\x02\xA3\x00\x4B\x02\xA2\x00\x21\x02\xE6\x00\x74\x03\x04\x00\x56\x02\xDF\xFF\x95\x00\x1C\x00\x75\x01\x0E\xFF\x5C\x00\xED\xFE\x1C\xFF\x02\xFF\xEF\xFE\x1A\xFF\xCB\xFC\xE2\xFE\x45\xFD\xBA\xFE\xBF\xFF\xDA\xFF\x59\x00\x73\x00\x8E\x01\x6F\x00\xB0\x02\x52\x01\xBA\x02\xA1\x01\xA0\x03\xF3\x00\xF3\x02\x9C\x00\x44\x04\x8B\x00\x54\x02\x35\xFF\x38\x00\x11\xFE\xF7\xFF\xB2\xFE\x09\xFF\xD5\xFE\xB7\xFD\x98\xFF\x7D\xFD\xA7\x00\x61\xFE\x75\x01\x9C\xFF\x7A\x00\x61\x01\x5F\x00\x80\x03\xE3\x01\x43\x03\x2C\x01\x84\x02\x7D\x00\x50\x02\x87\x00\xBE\x00\x25\xFF\xE3\xFF\x02\xFF\xF4\xFE\xC5\xFF\xBD\xFF\x41\xFF\x2E\x00\xBB\xFF\x37\x00\x6C\x00\xC3\x00\xDB\x00\x46\x01\x50\x02\xAD\x01\xAA\x02\x42\x02\x4C\x02\xF4\x02\x83\x01\x5C\x02\xE0\x00\x14\x02\x3F\x00\x26\x01\xC0\xFE\xA3\xFF\xCF\xFE\xF2\xFF\x2C\xFF\xED\xFF\x18\xFF\x69\x00\xCB\xFE\xD8\x00\x15\xFF\x44\x00\xE5\xFE\x24\x00\x13\x00\xAF\x00\xBD\x00\x8E\x01\xA1\x00\xC9\x01\x13\x01\xFE\x01\x79\x00\x8A\x02\xEF\x00\x38\x01\xE1\x00\x6D\x00\x79\x00\x7B\xFF\x5F\x00\x0C\xFF\xA1\xFF\xF4\xFF\x84\xFE\x41\x00\xF4\xFD\x86\x00\x97\xFE\xCD\x00\xBF\xFF\xF7\x00\x45\x00\x96\x01\xA4\xFF\x25\x02\x25\xFF\x5C\x02\x76\x00\xC5\x01\xB4\x01\x69\x00\xF7\x01\x3F\x00\xE0\x00\xCC\x00\xF9\xFF\x40\x00\xDE\xFF\xF7\xFF\x4F\x00\x2B\x00\xC8\x00\x91\x00\xD9\xFF\x2D\x01\xFC\xFE\xD1\x00\x6E\xFF\x54\x00\xB2\xFF\xB9\xFF\x80\xFF\xEA\xFF\xCA\xFF\xCA\x01\x51\x00\x39\x02\x69\x00\x93\x01\x19\x00\x89\x01\x25\x01\x25\x02\xE5\x01\x0A\x01\xA8\x01\xB6\xFE\xBD\x00\x22\xFF\xF3\xFF\xD7\xFE\xFD\xFF\x56\xFF\x57\xFF\x0D\x00\x43\xFF\x11\xFE\x4D\x00\xE6\x00\xBC\x00\xBC\x01\x0D\x00\x5F\x00\x00\xFF\xDC\x00\xC6\xFE\x3C\x03\xEE\xFF\x4F\x02\x8C\x00\x54\xFF\x95\x00\xC4\x01\xEF\x00\x35\x01\xAF\x00\xE9\xFF\x22\x00\x11\xFF\x43\x00\x53\xFF\x1D\x00\x98\x01\xBF\xFF\x68\x01\x65\xFF\x64\x03\xA6\xFF\x49\x02\xA2\xFF\x35\x01\xD8\xFF\x18\x01\xA4\x00\xC7\x00\x3E\x00\x3B\x00\x6F\xFF\x78\xFF\xF4\xFE\x21\x01\x95\xFE\xAA\xFF\x88\xFF\x37\xFE\x0D\x00\x0D\x00\x5D\x00\x98\x00\x6A\x00\x20\x00\xC2\x01\x84\xFF\xF3\x02\x34\x01\x9E\x02\x51\x02\x84\x01\x34\x03\x28\x00\x77\x03\xDB\xFF\x9F\x01\x2C\xFF\x70\x00\x6F\xFF\xCA\x00\xAC\xFF\xDB\xFF\xEC\xFE\x99\xFE\x5E\xFF\x69\x00\xF0\xFF\x49\xFF\xE1\xFF\x7E\xFD\x3A\x00\x5A\xFE\x11\x01\x16\x00\x6E\x01\x99\x00\x04\x00\xB2\x01\x35\xFF\x5D\x02\x87\x00\x1F\x02\x3F\x01\x80\x00\x63\x00\x61\x02\xB3\xFF\xBF\x03\x4D\xFF\x08\x01\xBF\xFE\x15\xFF\x47\xFF\xC7\xFF\x50\x00\x31\xFF\xD6\x00\x4D\xFC\x18\x01\x1D\xFE\xB4\x01\x41\xFE\xF0\x00\x4F\xFF\x4C\x00\x87\x00\x84\x01\x11\x02\xF1\x01\xF5\x01\x3A\x01\x03\x02\x3B\x01\xFA\x02\x3D\x00\xEF\x00\xE8\xFE\x8D\x00\xE6\xFE\x79\x01\x27\xFF\x2C\x01\xE7\xFE\xAF\x00\x7A\xFE\xD3\x01\xE5\xFE\x47\x01\x40\xFF\xF1\xFF\x23\x00\x7C\x00\x6A\x01\x78\x01\xB0\x01\x45\xFF\x28\x01\xB5\xFD\xA3\x01\xDE\xFE\xCD\x01\x9C\xFF\x03\x01\x35\x00\x2D\x00\x0F\x02\x35\x00\x80\x03\xCB\xFF\x24\x01\x55\xFE\x9C\x00\xD0\xFE\x93\x01\x53\x00\xC2\x00\x55\x01\xD1\x00\xB6\x00\xB6\x00\x52\x00\xF6\x00\x25\x01\xF7\x00\x27\x01\x46\x00\x8B\x00\x7E\x00\xB9\x00\xC8\xFF\x05\x00\xD0\xFE\x75\xFE\x0F\xFF\xEA\xFE\x3C\xFF\x7F\xFF\x0C\x00\x36\xFF\xFC\x00\xC6\xFF\x7D\x01\xEC\xFF\xF3\xFF\x9A\xFF\xCA\xFE\xDD\xFF\x2A\x00\x60\x00\x74\xFF\xFF\x00\x59\xFF\x36\x01\xD9\x00\xAF\x00\x9E\x00\x2A\x00\x0E\x00\xD0\xFF\x39\x00\xCB\xFF\x4D\x00\xD6\xFF\x87\xFF\x73\xFF\x79\xFF\x4E\xFF\x35\x00\x8D\xFE\x54\x00\xD0\xFE\xF9\x00\x5D\xFF\x67\x01\xAC\xFF\x64\x00\x77\x00\x84\x00\x6B\x00\x85\x00\x4C\x00\x5D\x00\xC4\x00\x5D\xFF\xE2\x00\x32\xFF\xFB\x00\x47\x00\x7D\x00\x83\x00\x30\x00\xA6\x00\x36\x00\xF9\x00\xF6\xFF\x78\x00\x72\x00\x4B\x00\x55\x00\xAA\x01\x31\x00\xF2\x00\x79\x00\xD7\xFF\xA3\x00\x83\x00\xF8\x00\x0F\x00\xBE\x00\x75\xFF\xA5\x00\x31\x00\x43\x00\x14\x00\xFC\xFF\xA1\xFF\xAE\x00\x02\x00\x61\x00\xC2\xFF\x31\x00\x7B\xFF\xE4\xFF\x0A\x00\xE1\xFF\xE1\x00\x9B\x00\x68\x01\xA3\x00\xDB\x00\x3B\x00\xC3\x00\x1B\x00\xD3\x00\x2B\x00\xE7\xFF\xCE\xFF\x7F\xFF\x58\x00\x26\xFF\xDF\xFF\x76\xFE\x12\xFF\xBF\xFE\xF6\xFF\x4F\x00\x13\x00\xF7\xFF\x12\x00\x40\xFF\xAE\x00\x2B\x00\x22\x00\x12\x01\xF2\xFF\xBD\x00\xA9\xFF\x7D\x00\x5C\x00\x62\x01\x08\x01\x93\x01\x5A\x00\xDD\x00\x92\xFF\x5F\xFF\x67\xFF\xF9\xFE\xF1\xFF\x39\xFF\x6E\xFF\xC6\xFF\x41\xFF\xF7\xFF\xCF\xFF\x65\xFF\x06\x00\x9B\xFF\x70\xFF\x33\x00\xA4\xFF\x3F\x00\x1E\x01\x47\x00\x9A\x01\x73\x00\x88\x01\x11\x00\xB6\x01\xB6\xFF\x61\x01\x75\xFF\x6D\x01\xEE\xFF\xBB\x00\x69\x00\x42\x00\x5C\x00\x6F\x00\xB0\x00\x57\xFF\xAD\x00\x6B\xFF\x82\x00\xCD\x00\x77\x01\xC0\x00\xBC\x01\x2D\x00\xB0\x00\x9F\x00\x77\x00\x5F\x01\x64\x00\x59\x01\x13\x00\x90\x00\x6E\xFF\x1A\x00\x29\xFF\x0A\x00\x72\xFF\xDB\x00\xC9\xFE\xC7\x00\xC9\xFE\x05\x00\xA2\xFF\x7F\x00\x12\x00\x09\x01\x57\x00\x18\x00\xD1\x00\xF1\xFF\x30\x01\x74\x00\x23\x01\x05\x01\x2D\x01\x60\x01\x03\x01\xEE\xFF\x5B\x00\xF6\xFF\x48\xFF\x1A\x00\x05\xFF\x79\xFF\x86\xFF\x73\xFF\x30\x00\x4A\xFF\x23\x00\x19\xFF\xAA\xFF\xC8\xFE\x39\xFF\xB1\xFE\x83\xFF\x3B\xFF\xA2\x00\x28\x00\x3E\x01\x84\x00\x76\x01\xA9\x00\x44\x01\x68\x01\x4B\x00\x71\x01\x70\xFF\x49\x01\x23\xFF\x28\x01\xE6\xFE\xB4\x00\x9B\xFE\xFF\xFF\x50\xFE\x3B\xFF\x8C\xFE\x50\xFF\x8E\xFF\x51\xFF\x5D\x00\x2F\xFF\x86\x00\x20\xFF\x11\x01\x81\xFF\x61\x01\x4B\x00\x89\x01\x54\x00\xCB\x01\xFF\xFF\x31\x02\x6B\x00\x1E\x02\x33\x00\x12\x01\x77\x00\x4B\xFF\x05\x01\x54\xFE\x43\x01\x32\xFE\x36\x01\x0D\xFE\x67\x00\xF3\xFD\xA2\xFF\xFF\xFD\xAF\xFF\x8F\xFE\x36\x00\x27\xFF\x0B\x00\x5C\x00\x87\x00\x9E\x01\x71\x00\x0A\x02\x30\x00\xC0\x01\x45\x00\x1F\x01\xA5\x00\x92\x00\x46\x01\x80\x00\x7C\x01\x3E\x00\x39\x01\x23\xFF\x99\x00\x66\xFE\x93\x00\x48\xFE\x7B\x00\x89\xFE\x1A\x00\x5B\xFF\x59\x00\xB6\xFF\x90\xFF\x5C\xFF\x2A\xFF\x41\xFF\xAE\xFF\x28\x00\x3A\x00\x9C\x00\x9C\x00\x83\x00\xBA\xFF\x4F\x00\x78\xFF\xAF\xFF\xC9\xFF\x3F\xFF\x24\x00\x40\xFF\x6A\x00\xA2\xFF\xEF\xFF\x0F\x00\x24\x00\xC1\xFF\xDB\x00\x29\xFF\xD8\x00\x74\xFF\x9A\x00\x84\x00\x6F\x00\x82\x00\x2B\x00\x86\xFF\x77\xFF\xB9\xFE\x4C\xFF\xB5\xFE\x79\xFF\x50\xFF\xEF\xFF\x30\x00\xDD\xFF\xAE\x00\xDE\xFE\x4C\x00\x10\xFF\xD2\xFF\x86\xFF\xC9\xFF\xE2\xFF\x05\x00\xF4\xFF\x41\x00\x35\x00\x77\x00\x88\x00\x62\x00\x84\x00\x00\x00\x85\x00\xDD\xFF\x3D\x01\x8A\xFF\x83\x01\xEA\xFE\xF7\x00\xB6\xFE\xC0\x00\xBC\xFE\xA2\x00\xF2\xFE\x16\x00\x56\xFF\xE6\xFF\xEB\xFF\x1A\x00\x0D\x00\x02\x00\x06\x00\xA6\xFF\x33\x00\xDB\xFF\xCF\xFF\xFD\xFF\xFC\xFF\x85\x00\x45\x00\x3B\x01\xEA\xFF\xA9\x00\x8C\xFF\x44\x00\xF6\xFE\x5F\x00\xFB\xFE\x4C\x00\x02\xFF\x6D\x00\x54\xFF\x80\x00\xB1\xFF\xB8\x00\x5F\xFF\x59\x00\xFC\xFE\x71\xFF\x62\xFF\x4F\xFF\x4D\x00\xD4\xFF\xAD\x00\xC2\xFF\x92\x00\x9C\xFF\x86\x00\x52\x00\x53\x00\x9C\x00\xD0\xFF\x50\x00\x9F\xFF\x72\x00\x8F\xFF\x96\x00\x88\xFF\x48\x00\x70\xFF\x3C\x00\x32\xFF\x72\x00\x42\xFF\x57\x00\x71\xFF\x1B\x00\x97\xFF\xA7\xFF\xC2\xFF\x90\xFF\xFF\xFF\x38\x00\xCC\xFF\x86\x00\x73\xFF\xC6\x00\xE7\xFF\xBA\x00\x5A\x00\x70\x00\x0E\x00\xF1\x00\xF5\xFE\x0B\x01\xB9\xFE\xDA\x00\x41\xFF\xB3\x00\xCF\xFE\xEC\xFF\xB6\xFE\x72\xFF\xE2\xFF\xA4\xFF\x65\x00\x3E\x00\xDB\xFF\xAD\x00\xE6\xFF\x48\x00\x2A\x00\x0A\x00\xC2\xFF\x11\x00\x67\xFF\x30\x00\x3E\xFF\x03\x00\x4F\xFF\x96\xFF\x8F\xFF\x9F\xFF\x51\xFF\xD4\xFF\xBD\xFE\xBA\xFF\x0A\xFF\xFD\xFF\x33\xFF\x05\x00\x0D\xFF\x04\x00\x8D\xFF\x24\x00\x5C\x00\xCF\xFF\xC7\xFF\xB1\xFF\x97\xFF\x36\x00\x9D\xFF\x82\x00\x4B\xFF\xE4\xFF\x2E\xFF\x54\xFF\xED\xFE\x3B\xFF\x96\xFE\x69\xFF\xB4\xFE\xE0\xFF\xB1\xFF\xFE\xFF\x1A\x00\xC2\xFF\x39\x00\xB0\xFF\x2F\x00\x29\x00\x05\x00\xF9\xFF\x5C\x00\xDD\xFF\x47\x00\xDE\x00\x86\xFF\xCB\x00\xF5\xFE\x68\x00\xFB\xFE\xAD\x00\x30\xFF\x25\x01\xBB\xFE\x58\x01\x77\xFE\x09\x01\xA6\xFE\xE7\x00\xEB\xFE\xE4\x00\x89\xFF\xA9\x00\x0C\x00\x6A\x00\x7D\x00\x0D\x00\xF5\x00\xAB\xFF\xD1\x00\xCF\xFE\xCD\xFF\xE0\xFE\x33\xFF\x76\xFF\x9F\xFF\x0B\x00\x67\xFF\x8A\x00\x9F\xFE\x14\x00\x4B\xFE\xBF\xFF\x86\xFE\x52\x00\x0F\xFF\xC0\x00\x06\xFF\xDF\x00\x32\xFF\x07\x01\x2F\x00\xB0\x00\xD2\x00\x2F\x00\xA2\x00\x31\x00\x6D\x00\x2A\x00\x7D\x00\xBE\xFF\x20\x00\x0D\xFF\x71\xFF\xEC\xFE\xA5\xFE\xEF\xFE\x07\xFE\x24\xFF\x42\xFE\xA1\xFF\x79\xFE\xD6\xFF\x84\xFE\x93\xFF\xED\xFE\xEA\xFF\x4F\xFF\xB2\x00\x74\xFF\x84\x00\xE5\xFF\x8D\x00\x8E\x00\xC3\x00\x4E\x00\x7E\x00\x92\xFF\x53\x00\x40\xFF\x19\x00\x2A\xFF\xCB\xFF\xFD\xFE\x8B\xFF\xFA\xFE\xB6\xFF\x9D\xFE\xB7\xFF\x7F\xFE\xEC\xFF\xCF\xFE\x6B\x00\x7E\xFF\xA9\x00\xCE\xFF\x76\x00\xD1\xFF\x03\x00\x03\x00\x20\x00\xED\xFF\x4D\x00\xB6\xFF\x29\x00\x23\xFF\x15\x00\x07\xFF\x29\x00\x25\xFF\x4F\x00\xCB\xFE\x5A\x00\x9E\xFE\x14\x00\xE6\xFE\xD6\xFF\x41\xFF\x85\x00\x89\xFF\xD8\x00\xDA\xFF\x23\x00\x2E\x00\x12\x00\x89\x00\x49\x00\x9D\x00\xF5\xFF\x0F\x00\x38\x00\x9A\xFF\x9D\x00\x57\xFF\xDC\xFF\x46\xFF\x36\xFF\xFC\xFE\x60\xFF\x6B\xFE\x6E\xFF\x57\xFE\x88\xFF\x81\xFE\xC6\xFF\xF5\xFE\xEC\xFF\x87\xFF\xCF\xFF\xCE\xFF\x37\x00\xFC\xFF\xB6\x00\x4C\x00\xFD\x00\x11\x00\xA5\x00\xD4\xFF\x57\x00\xE3\xFF\x61\x00\xCC\xFF\x6D\x00\x65\xFF\x8A\x00\xF5\xFE\x4B\x00\xCF\xFE\x9A\xFF\x9F\xFE\x22\xFF\xC9\xFE\xB0\xFF\x12\xFF\xB7\xFF\x3B\xFF\x9B\xFF\x3B\xFF\x4D\x00\x51\xFF\xC0\x00\x64\xFF\xB8\x00\xAD\xFF\x8C\x00\xD4\xFF\x43\x00\xC9\xFF\x13\x00\x79\xFF\x54\xFF\xFA\xFE\xF1\xFE\xC9\xFE\x54\xFF\xA7\xFE\xA0\xFF\xF8\xFE\xED\xFF\x3F\xFF\x0D\x00\x51\xFF\xE5\xFF\x4E\xFF\xF2\xFF\xAA\xFF\x75\x00\x6D\x00\xF1\x00\x2F\x00\x08\x01\x86\xFF\xA9\x00\x24\xFF\x4C\x00\x08\xFF\x40\x00\x8D\xFE\xCD\xFF\x5C\xFE\x4E\xFF\x9D\xFE\x32\xFF\xC0\xFE\x47\xFF\xE7\xFE\x7C\xFF\x5C\xFF\xB1\xFF\xB2\xFF\x15\x00\xB1\xFF\x2F\x00\x41\x00\x04\x00\x46\x00\x6D\x00\xEA\xFF\x87\x00\xCD\xFF\x5C\x00\x54\xFF\x10\x00\x60\xFF\x6F\xFF\xE3\xFE\x50\xFF\xB6\xFE\xA8\xFF\xC8\xFE\xD2\xFF\xDE\xFE\xB6\xFF\x78\xFF\x54\xFF\xA1\xFF\x6C\xFF\xC3\xFF\xEC\xFF\x28\x00\x40\x00\xC7\xFF\x15\x00\x95\xFF\xA4\xFF\xAF\xFF\x5B\xFF\x81\xFF\x76\xFF\xAA\xFF\xD2\xFF\x7C\xFF\xC7\xFF\x0C\xFF\x8D\xFF\x0B\xFF\x9B\xFF\x06\xFF\x77\xFF\xF7\xFE\x78\xFF\x59\xFF\xB9\xFF\x5D\xFF\x40\x00\x6E\xFF\x73\x00\x5F\xFF\x3F\x00\x5B\xFF\x5C\x00\xC7\xFF\x4C\x00\xA1\xFF\x11\x00\xAC\xFF\xE3\xFF\xD5\xFF\xC0\xFF\x56\xFF\xA5\xFF\x01\xFF\x94\xFF\x91\xFE\xEC\xFF\x83\xFE\x5F\x00\x1B\xFF\x6B\x00\x5D\xFF\x3A\x00\x2D\xFF\xDB\xFF\x24\xFF\x75\xFF\x5C\xFF\x6C\xFF\x89\xFF\xC4\xFF\x6B\xFF\x1B\x00\x4D\xFF\xFF\xFF\x1A\xFF\x8E\xFF\x9A\xFE\x84\xFF\x94\xFE\x1B\x00\x8C\xFE\x2B\x00\x7B\xFE\xF7\xFF\xFB\xFE\x5B\x00\x60\xFF\x6E\x00\x9B\xFF\x50\x00\xB3\xFF\x11\x00\x7B\xFF\x37\x00\x72\xFF\x3D\x00\xB4\xFF\xD4\xFF\xA8\xFF\x95\xFF\x37\xFF\x60\xFF\xF3\xFE\x1E\xFF\xDD\xFE\x96\xFF\xC0\xFE\xDA\xFF\xE0\xFE\x7F\xFF\x04\xFF\x82\xFF\x7C\xFF\xCF\xFF\xAA\xFF\x46\x00\xA1\xFF\x8A\x00\x85\xFF\xEC\xFF\x8B\xFF\x74\xFF\x3C\x00\xF6\xFF\xFF\xFF\x38\x00\x78\xFF\xF2\xFF\x9E\xFF\xCD\xFF\xB2\xFF\xB1\xFF\x88\xFF\xCF\xFF\x1D\xFF\xE6\xFF\xDC\xFE\xDD\xFF\x55\xFE\x00\x00\xC2\xFE\x64\x00\xA7\xFF\xE8\x00\xFA\xFF\x3D\x00\xC7\xFF\x78\xFF\x63\xFF\x86\xFF\xDC\xFF\x87\xFF\x0A\x00\x5C\xFF\xCE\xFF\xB8\xFF\x7E\xFF\xE5\xFF\xF5\xFE\xDB\xFF\xC6\xFE\xBE\xFF\x51\xFE\xD4\xFF\x45\xFE\x29\x00\x73\xFE\x52\x00\xC2\xFE\xD8\xFF\x10\xFF\xC0\xFF\x3B\xFF\x52\x00\x06\x00\x2E\x00\x27\x00\x07\x00\xDA\xFF\xCC\xFF\x9D\xFF\xB2\xFF\x44\xFF\xB9\xFF\x18\xFF\xC9\xFF\x15\xFF\xC5\xFF\x29\xFF\xA7\xFF\xFF\xFE\xA9\xFF\xCD\xFE\x47\xFF\xF5\xFE\x33\xFF\x75\xFF\x64\xFF\x36\xFF\x53\xFF\x15\xFF\x8F\xFF\x93\xFF\x21\x00\x65\xFF\x46\x00\xE9\xFE\x3D\x00\x0E\xFF\x97\x00\xBF\xFF\x94\x00\xEA\xFF\x68\x00\xE1\xFF\xF8\xFF\x8B\x00\x6A\xFF\xC9\x00\xC2\xFF\x9B\x00\x42\x00\xBE\x00\x02\x00\x2D\x00\x9A\xFF\x46\xFF\x8B\xFF\xF1\xFE\x9A\xFF\x1B\xFF\xD0\xFF\xE3\xFE\x42\x00\x97\xFE\x31\x00\xB8\xFE\x9F\xFF\xAC\xFE\x8D\xFF\xF5\xFE\x68\xFF\x89\xFF\x51\xFF\xF8\xFF\xA8\xFF\xE8\xFF\x1D\x00\xD8\xFF\x5E\x00\xAE\xFF\x21\x00\x8D\xFF\xE3\xFF\x86\xFF\x3D\x00\x9B\xFF\x94\x00\x80\xFF\x45\x00\x85\xFF\x1B\x00\x4C\xFF\x86\xFF\xC8\xFE\x55\xFF\xCB\xFE\xE0\xFF\x2D\xFF\x7F\xFF\x66\xFF\x34\xFF\xC7\xFE\x5E\xFF\x70\xFE\x9D\xFF\xEF\xFE\xC5\xFF\x2B\xFF\xB4\xFF\x52\xFF\xF1\xFF\xBB\xFF\x06\x00\x14\x00\x06\x00\x54\x00\xFD\xFF\x46\x00\x55\x00\x2F\x00\x93\x00\x00\x00\x49\x00\xFD\xFF\x23\x00\xFE\xFF\x31\x00\x86\xFF\xDA\xFF\x9C\xFF\xF7\xFF\xA4\xFF\x1C\x00\xA9\xFF\x4C\xFF\x99\xFF\x12\xFF\x4A\xFF\xBF\xFF\x6B\xFF\x06\x00\xEE\xFF\xF1\xFF\x27\x00\x66\x00\xFD\xFF\xEF\x00\xA0\xFF\x31\x00\x89\xFF\x6D\xFF\xB1\xFF\xDD\xFF\x5B\xFF\x62\x00\xF1\xFE\x1A\x00\x15\xFF\xD5\xFF\x4E\xFF\x14\x00\x29\xFF\x5E\x00\x2B\xFF\x28\x00\x4D\xFF\xF4\xFF\x50\xFF\xFB\xFF\x39\xFF\x05\x00\x79\xFF\xB1\xFF\xED\xFF\xB2\xFF\x3E\x00\xD0\xFF\x24\x00\xC3\xFF\xF9\xFF\xF8\xFF\xF8\xFF\xF2\xFF\xC9\xFF\x74\xFF\x7A\xFF\xA7\xFF\x10\xFF\xF6\xFF\x5F\xFF\xD8\xFF\x83\xFF\xCD\xFF\xF9\xFE\x33\x00\xF2\xFE\x79\x00\xA1\xFF\xD2\xFF\x27\x00\x07\x00\x45\xFF\xAF\x00\xDF\xFE\x79\x00\x33\xFF\x5E\x00\x3C\xFF\x3E\x00\x66\xFF\x21\x00\x3A\xFF\xEC\xFF\x37\x00\xCC\xFF\xD9\x00\x14\x00\x71\x00\x09\x00\x63\x00\x7B\xFF\x2F\x01\x87\xFF\xBC\x00\x2B\x00\x06\xFF\x56\x00\x0F\xFF\x3E\x00\xF2\xFE\x63\x00\x7E\xFE\x3B\x00\x2F\xFE\xF8\xFF\x99\xFE\xDC\xFF\xE3\xFF\x9C\xFF\x84\xFF\x4A\xFF\x13\x00\x62\xFF\x72\x00\x64\xFF\xA3\x00\x60\xFF\xC7\x00\xCF\xFF\xB2\xFF\x09\x00\xE8\xFF\xF1\xFF\xDB\xFF\x11\x00\x78\xFF\x5F\x00\xBA\xFE\x45\x00\x6A\xFE\x98\xFF\xD9\xFE\x8E\xFF\xCD\xFE\xF7\xFF\x48\xFF\xD5\xFF\xB6\xFF\xC0\xFF\x21\x00\x13\x00\x23\x00\x27\x00\x72\x00\x91\xFF\xD8\x00\x7F\xFF\x27\x00\x87\xFF\xDC\xFF\x64\xFF\x33\x00\x65\xFF\x91\x00\x8E\xFF\xC8\xFF\x22\x00\x71\xFF\x39\x00\x85\xFF\xE8\xFF\xC8\xFE\xC0\xFF\x49\xFE\xAD\xFF\x56\xFE\x14\x00\xA4\xFE\x59\x00\x4D\xFF\x5B\x00\xDC\xFF\x1B\x00\x62\x00\xC9\xFF\xF8\xFF\x17\x00\xE4\xFF\x68\x00\xAB\x00\x38\x00\x77\x00\x0D\x00\xB1\xFF\xE7\xFF\xCB\xFF\x02\x00\xFD\xFF\x75\x00\xCB\xFE\x7E\x00\xC4\xFE\x4C\x00\x1A\xFF\xEC\xFF\x45\xFF\x8D\xFF\x4E\xFF\x4F\xFF\xBF\xFF\x6C\xFF\x35\x00\x9C\xFF\x86\xFF\x10\x00\x56\xFF\x56\x00\x87\xFF\xA4\xFF\xCE\xFF\x87\xFF\xF4\xFF\x6E\x00\x86\xFF\x93\x00\x13\xFF\x0C\x00\x2B\xFF\xF0\xFF\xA5\xFF\x31\x00\x37\x00\x51\x00\x97\x00\x39\x00\x93\x00\x27\x00\x54\x00\xD5\xFF\x00\x00\xAC\xFF\x9B\xFF\x9C\xFF\x72\xFF\x02\x00\x62\xFF\x22\x00\xF2\xFF\xEF\xFF\xF0\xFF\xD8\xFF\x85\xFF\xD2\xFF\xC7\xFF\xB1\xFF\xD4\xFF\xAF\xFF\xB3\xFF\xF1\xFF\xDB\xFF\xFF\xFF\x2A\x00\xE2\xFF\x2A\x00\xCA\xFF\x5B\x00\xD0\xFF\xFA\xFF\x1D\x00\x56\xFF\x75\x00\x6C\xFF\x4C\x00\x72\xFF\x32\x00\x2B\xFF\x43\x00\xC6\xFE\x1D\x00\x5A\xFF\xBD\xFF\xBB\xFF\xFE\xFF\xCE\xFF\xB9\x00\xA1\xFF\x97\x00\xAB\xFF\xE8\xFF\x29\x00\xB1\xFF\x3F\x00\x22\x00\x00\x00\xD1\xFF\xE6\xFF\x7E\xFF\x1D\x00\xC8\xFF\x57\x00\x22\x00\x1B\x00\xFF\xFF\x99\xFF\xDC\xFF\x1A\xFF\x40\x00\x2B\xFF\x61\x00\xB2\xFF\x29\x00\xFA\xFF\xF8\xFF\x27\x00\x69\x00\xE1\xFF\x8F\x00\x06\x00\x21\x00\x4E\x00\xE1\xFF\x5B\x00\xDF\xFF\x2B\x00\xDD\xFF\xA2\xFF\xF0\xFF\x81\xFF\x39\x00\x78\xFF\x3D\x00\x6B\xFF\xFB\xFF\x83\xFF\xBE\xFF\xD0\xFF\xF7\xFF\x0E\x00\x59\x00\xEA\xFF\x8D\x00\xBE\xFF\x61\x00\x09\x00\x42\x00\x2A\x00\x47\x00\x37\x00\x05\x00\x14\x00\xAB\xFF\xE4\xFF\xBF\xFF\x94\xFF\xE1\xFF\x8B\xFF\xB3\xFF\x95\xFF\x9D\xFF\x9F\xFF\x14\x00\x73\xFF\xBC\x00\x54\xFF\xC6\x00\x87\xFF\x46\x00\xF2\xFF\x3F\x00\x3C\x00\x87\x00\xFF\xFF\x98\x00\x04\x00\x03\x00\x29\x00\x67\xFF\xFF\xFF\x0E\xFF\xD7\xFF\xF2\xFE\xDA\xFF\x4B\xFF\xF4\xFF\x96\xFF\xF9\xFF\x03\x00\xDC\xFF\x94\x00\xF7\xFF\xB4\x00\xD1\xFF\x80\x00\xBB\xFF\x87\x00\xC6\xFF\xCC\x00\xE5\xFF\x96\x00\xF3\xFF\x14\x00\x27\x00\xA5\xFF\x3F\x00\x85\xFF\xDB\xFF\x9B\xFF\x95\xFF\x05\x00\x47\xFF\xF3\xFF\xAF\xFF\x8A\xFF\x31\x00\x9C\xFF\x4F\x00\xE3\xFF\x1D\x00\x14\x00\xE1\xFF\x52\x00\x27\x00\x88\x00\x76\x00\x6A\x00\x76\x00\x2E\x00\x73\x00\x1B\x00\x30\x00\x30\x00\x00\x00\x44\x00\x08\x00\x31\x00\xED\xFF\x50\x00\x75\xFF\x6E\x00\x39\xFF\xAB\x00\x85\xFF\xB7\x00\x1B\x00\x72\x00\x59\x00\x56\x00\x65\x00\xF0\xFF\x77\x00\x8E\xFF\x7D\x00\x96\xFF\x93\x00\xB0\xFF\x71\x00\x0B\x00\x16\x00\x9D\xFF\xDE\xFF\x09\xFF\xC0\xFF\xD4\xFF\x55\xFF\x86\x00\xED\xFE\x3F\x00\x49\xFF\x1E\x00\xD3\xFF\x00\x00\xD7\xFF\x0D\x00\xBF\xFF\x5E\x00\x29\x00\x71\x00\xBA\x00\x26\x00\xA7\x00\x0D\x00\x62\x00\xEB\xFF\x1B\x00\x94\xFF\x36\x00\x84\xFF\x70\x00\x8C\xFF\x3E\x00\x90\xFF\x06\x00\x87\xFF\xB7\xFF\xC0\xFF\x56\xFF\xDD\xFF\x73\xFF\x15\x00\xCE\xFF\x40\x00\xAC\xFF\x15\x00\x22\xFF\x1D\x00\x39\xFF\x14\x00\xA4\xFF\x7D\x00\xAE\xFF\x7E\x00\xA1\xFF\x08\x00\xAA\xFF\x07\x00\x33\x00\x09\x00\x54\x00\xA2\xFF\x52\x00\x98\xFF\xC9\xFF\xD6\xFF\x3C\x00\xD5\xFF\xF6\x00\x9C\xFF\xA2\x00\x9E\xFF\x64\x00\x37\x00\x2B\x00\xC4\x00\xEF\xFF\x8A\x00\x00\x00\x39\x00\xD5\xFF\x22\x00\x94\xFF\x16\x00\x6E\xFF\xF6\xFF\x54\xFF\xC4\xFF\xBD\xFF\xF4\xFF\x06\x00\x0E\x00\xF2\xFF\xC2\xFF\xCC\xFF\xA4\xFF\x47\x00\xFC\xFF\x7A\x00\x2A\x00\x52\x00\x4B\x00\x43\x00\x89\x00\x54\x00\xC4\x00\x3E\x00\x81\x00\xCF\xFF\x5E\x00\x84\xFF\x28\x00\x0D\x00\x9B\xFF\x51\x00\x5F\xFF\x32\x00\xE6\xFF\x29\x00\x0F\x00\x8A\xFF\xF0\xFF\xF1\xFE\xD2\xFF\xF7\xFF\xBA\xFF\x85\x00\x9C\xFF\x4B\x00\xD9\xFF\xA4\xFF\x0D\x00\x51\xFF\xF2\xFF\xC0\xFF\xB9\xFF\xF7\xFF\x73\xFF\x7C\x00\x9E\xFF\x7B\x00\x1B\x00\xF9\xFF\xA5\x00\xF2\xFF\x8C\x00\xBF\xFF\x52\x00\xFA\xFF\xAA\x00\xE1\xFF\xEF\x00\x39\x00\xF1\x00\x08\x00\xA0\x00\x5B\xFF\xCE\xFF\x7C\xFF\x6F\xFF\xA9\xFF\x48\xFF\x00\x00\x3C\xFF\xE1\xFF\xA4\xFF\xA7\xFF\x7F\xFF\x29\x00\x72\xFF\x90\x00\xB9\xFF\xBF\x00\xEB\xFF\x1D\x00\x27\x00\xDC\xFF\x55\x00\x5C\x00\x80\x00\x47\x00\x4F\x00\xC6\xFF\x18\x00\x24\x00\x45\x00\x4E\x00\xA4\x00\xD8\xFF\xDD\xFF\x8C\xFF\x51\xFF\x01\x00\xD6\xFF\xAF\x00\xC9\xFF\x9C\x00\x88\xFF\xD6\xFF\x79\xFF\xF0\xFF\x5D\x00\x1F\x00\x29\x00\xD4\xFF\xBD\xFF\x2D\x00\xA9\xFF\x33\x00\x95\xFF\x0A\x00\x6D\xFF\xAC\xFF\x38\xFF\x22\xFF\xF7\xFF\xFA\xFE\x67\x00\x59\xFF\x70\x00\xCD\xFF\x63\xFF\x6A\x00\x67\xFF\xCB\x00\xD1\xFF\xEF\x00\xA3\xFF\x8D\x00\x2B\x00\x8C\x00\xFC\x00\xE2\x00\xA1\x00\x05\x01\xFC\xFF\x91\x00\x38\x00\x47\xFF\xEE\x00\x47\xFF\x65\x00\x8D\xFF\xA9\xFF\xC9\xFF\xEF\xFF\x84\xFF\x19\x00\xBB\xFF\x0A\x00\x2E\x00\xC0\xFF\x97\x00\xFA\xFF\x72\x00\x62\x00\x40\x00\x98\x00\x48\x00\x22\x00\x24\x00\xBC\xFF\x15\x00\xCD\xFF\x13\x00\xAA\xFF\xE4\xFF\x79\xFF\x5F\xFF\xBA\xFF\x7E\xFF\xFE\xFF\x09\x00\xA1\xFF\x63\x00\x4D\xFF\xBD\x00\xF6\xFF\xE4\x00\xA7\x00\x84\x00\xD8\x00\x30\x00\x12\x00\xAD\xFF\xF9\xFF\x7A\xFF\x65\x00\xD6\xFF\xED\xFF\x70\xFF\xB7\xFF\x3A\xFF\x93\xFF\x66\xFF\x56\xFF\xB8\xFF\xEB\xFE\x31\x00\xE8\xFE\x2F\x00\x81\xFF\x47\x00\xBF\xFF\xE3\x00\xE8\xFF\xEF\x00\xBD\xFF\xDC\xFF\xAA\xFF\xCE\xFF\x4A\x00\x69\x00\x1D\x00\x53\x00\x4E\x00\xC9\xFF\xF4\x00\x41\xFF\x1E\x00\x55\xFF\xA1\xFF\x7B\xFF\x18\x00\x2D\xFF\x42\x00\x99\xFF\xA3\xFF\x95\x00\xC0\xFF\xDC\x00\x9B\xFF\xF1\x00\xBA\xFF\x51\x01\x3D\x00\xF1\x00\x0C\x00\xE3\xFF\x69\x00\x0C\x00\xED\x00\x4D\x00\x6A\x00\xA2\xFF\xE6\xFF\x2C\xFF\x23\x00\x41\xFF\x09\x00\x63\x00\x4E\xFF\x6C\x00\x18\xFF\xD5\xFF\x37\xFF\x8C\x00\xC9\xFF\x42\x01\x23\x00\x1C\x01\x56\x00\xA2\x00\xB9\x00\x55\x00\x5E\x00\x32\x00\xB7\xFF\x8B\x00\x6B\xFF\x10\x00\x1B\x00\xAE\xFF\x54\x00\x3E\xFF\xC9\xFF\x50\xFE\x6C\xFF\xC1\xFE\x79\xFF\xAB\xFF\x8A\xFF\x08\x00\xC0\xFF\x78\x00\x47\x00\xDF\x00\x62\x00\x0A\x01\xEC\xFF\xF9\x00\x7C\xFF\x4F\x00\xB3\xFF\xCF\xFF\x73\x00\x65\x00\x52\x00\x14\x00\x0D\x00\x0C\x00\x8E\xFF\x3D\x00\x47\xFF\xA3\xFF\xF1\xFF\x41\xFF\x31\x00\x7D\xFF\x2A\x00\xB5\x00\xF1\xFF\xBB\x00\x7A\xFF\x14\x00\xBC\xFF\x2C\x00\xDD\xFF\x47\x00\x05\x00\x55\x00\x68\x00\xE8\x00\x21\x00\x0F\x01\xBD\xFF\x7F\x00\xDA\xFF\x7C\xFF\x7C\x00\x33\xFF\x87\x00\x66\xFF\x6C\x00\x07\x00\x62\x00\xB4\x00\xC3\xFF\xF0\x00\xC2\xFF\xD3\x00\x4F\x00\xFB\x00\x86\x00\x27\x01\x96\xFF\xA1\x00\x16\xFF\x3C\x00\xE8\xFF\x13\x00\x25\x00\x9E\xFF\xC7\xFF\x15\xFF\xCD\xFF\x3D\xFF\xFD\xFF\xF7\xFF\x69\x00\x44\x00\x54\x00\x3D\x00\x3E\x00\x5E\x00\xA1\x00\x83\x00\x65\x00\x42\x01\x33\x00\x4D\x01\x06\x00\xAB\x00\xE5\xFF\x21\x00\xDD\xFF\xDA\xFF\x4C\x00\xE4\xFF\x98\x00\xA2\xFF\xC5\xFF\x15\xFF\x69\xFF\x3E\xFF\xF5\xFF\xA9\xFF\xF2\xFF\xA9\xFF\x8F\xFF\xE3\xFF\x8F\xFF\xCB\x00\xCE\xFF\x6E\x01\xEC\xFF\xBC\x01\xBF\xFF\x12\x01\xF9\xFF\x36\x00\x3F\x00\xF8\xFF\x17\x00\xF0\xFF\xC2\xFF\xE6\xFF\x64\xFF\xA8\xFF\x9E\xFE\x7F\xFF\xE4\xFE\xE6\xFF\xB5\xFF\x95\x00\xB7\xFF\xA2\x00\x6C\xFF\x59\x00\x4F\xFF\xB6\x00\xBF\xFF\x20\x01\x64\x00\xEA\x00\x73\x00\x2F\x01\x83\x00\x46\x01\x92\x00\x09\x01\x46\x00\x76\x00\xFD\xFF\xFA\xFF\x04\x00\x03\x00\xDC\xFF\x21\x00\x88\xFF\xE5\xFF\x68\xFF\xE8\xFF\x5B\xFF\x1A\x00\x6E\xFF\xC6\xFF\x87\xFF\xBF\xFF\xBC\xFF\x46\x00\x32\x00\x92\x00\x77\x00\x79\x00\x4E\x00\x2F\x00\x13\x00\x66\x00\x71\x00\x4C\x49\x53\x54\x40\x00\x00\x00\x49\x4E\x46\x4F\x49\x53\x46\x54\x15\x00\x00\x00\x53\x6F\x6E\x79\x20\x53\x6F\x75\x6E\x64\x20\x46\x6F\x72\x67\x65\x20\x37\x2E\x30\x00\x00\x49\x45\x4E\x47\x02\x00\x00\x00\x20\x00\x49\x43\x52\x44\x0B\x00\x00\x00\x32\x30\x30\x34\x2D\x31\x30\x2D\x32\x31\x00\x02";
char* MOVE   = "\x52\x49\x46\x46\xA0\x04\x00\x00\x57\x41\x56\x45\x66\x6D\x74\x20\x32\x00\x00\x00\x02\x00\x02\x00\x22\x56\x00\x00\x27\x57\x00\x00\x00\x04\x04\x00\x20\x00\xF4\x03\x07\x00\x00\x01\x00\x00\x00\x02\x00\xFF\x00\x00\x00\x00\xC0\x00\x40\x00\xF0\x00\x00\x00\xCC\x01\x30\xFF\x88\x01\x18\xFF\x66\x61\x63\x74\x04\x00\x00\x00\xA7\x02\x00\x00\x64\x61\x74\x61\x00\x04\x00\x00\x02\x02\x28\x00\x37\x00\x89\xFF\x6F\x01\x3D\x01\x76\x00\x4E\x64\x05\xBF\x1C\xC2\x0B\x70\x37\x80\x78\xE7\xFD\x50\xD4\xEB\x2F\x22\x71\xF4\xED\xFD\x4E\x16\xF0\x0F\xD0\x4D\x34\xC1\xFC\x20\x22\xF1\xCF\x0D\x20\x42\xE4\xED\x2E\x02\x00\x21\x02\x2F\x92\x08\x00\xF0\x00\x00\x20\xF2\x0F\x10\x01\x50\x24\xF1\xFE\xEF\x0D\x00\x00\xF0\x1E\x03\xF0\x6F\x27\xE1\x0E\x30\xE4\xDE\x0F\xE0\x3F\x82\xE8\x5F\x04\x10\x11\xF1\x0F\x00\x20\xD2\xDC\x0F\x50\xF4\xBE\x1C\x33\x14\xF0\x0F\x11\xF1\x0E\x10\xB1\xEA\x1F\x31\xD2\xED\x7F\x17\x00\xE0\x1F\x11\x00\x00\xE0\xCE\xED\x5E\x16\xF0\x0F\x40\x34\xF2\xFE\xEF\x3E\xF3\x1F\xD1\x8D\x0A\x20\x23\xE2\x1C\x32\x02\x00\x30\xD3\xBC\xED\x0E\x12\xD1\x5C\x06\xE0\x0E\x60\x15\xE1\xEE\x1F\x21\xE2\xFE\xFF\x0F\x30\x73\xF7\xDE\x2E\x43\x04\xD0\xFD\x00\x00\xF0\x0F\x11\x11\x41\xF4\x0F\x11\x01\xC0\xEC\x1F\x02\xB0\xEA\x2F\x42\x23\xE2\xEE\x7E\x47\x03\xDF\xEB\x2F\x02\xE0\xFE\x4F\x33\x03\xE0\x0E\x51\x35\x03\x9F\x08\x10\x01\xE0\x0E\x10\x31\x12\xF1\xFF\x10\x72\x05\xF0\xCF\x0B\x20\x12\xF1\xDF\x4D\x44\x33\xF3\x0E\x00\x00\xF0\xBF\xEA\x0E\x30\x03\xFF\x10\x71\x27\x01\xF0\x1F\x01\xE0\xDE\xAE\x0B\x22\x02\xF1\x0F\x61\x37\x03\xD0\x0D\x00\xF0\xCF\xEC\xFE\x40\x45\x02\x00\x30\x64\x05\xF0\x0F\x00\x01\xE0\xED\x0E\x31\x32\x43\x04\x20\x73\x07\xE0\xFE\x00\x10\xD1\xED\x2F\x63\x36\x13\x00\x10\x62\x06\xF0\xE0\x0E\x00\x00\xF0\xEF\x4F\x55\x34\xF3\x0F\x10\x21\xE2\xFD\xD0\xDE\x2F\x21\x32\xC3\x7C\x37\x23\x02\x20\x23\xD2\xAE\xFA\x30\xF4\x00\xF0\x5F\x35\x32\xF3\xCE\x3D\x34\x02\x80\x09\x00\x10\x01\x10\x02\xF0\x2F\x54\x14\xC0\x0B\x20\x22\x11\x00\x00\x00\x70\x16\x01\xFF\x3F\x04\x10\x31\x11\xC1\x2E\x73\x07\x00\x00\x51\x15\x00\xF0\x10\x02\x10\x12\x12\xD1\xEF\x70\x07\x00\x00\x40\x34\x12\x11\xF1\x10\xF2\x70\x07\x00\x10\x31\x54\x13\x10\x22\x13\x01\x20\x13\x12\x03\x61\xF5\x0F\x01\x10\x73\x07\x01\x00\x50\x06\x10\x01\x00\x31\x43\x33\xF3\x1E\x71\x17\xF1\x0F\x30\x66\xF3\xFE\x30\x24\xF1\x0F\x00\x00\x41\x04\x00\xE0\x20\x22\xC1\x0F\x20\x15\xD0\x5E\x45\x03\x00\x42\x44\x26\xF1\x00\x00\x00\x20\x01\x90\xFB\x60\x07\x00\x01\x00\x01\x00\x30\x14\xE1\xDF\x5F\x24\xE2\x0E\x31\x43\x15\x32\xE2\xCF\xFD\x50\xF7\xBF\x0E\x10\x03\x40\x56\x24\xF2\xFF\x50\x26\x01\xE0\x2F\x12\x01\x50\x24\xE1\x4E\x55\x04\xE0\x0D\x61\xF5\xEE\x0E\xF0\x20\x03\x20\x04\x00\x40\x64\x15\x01\x20\x13\x01\xF0\x0F\x12\x02\x3F\x05\xF1\x30\x72\x35\xE3\x0C\x60\x06\xE0\xBE\x0D\x12\x02\xF0\xED\x70\x37\x14\x01\x00\x00\x00\x10\xF2\xEE\x0E\x32\x05\x10\x72\x26\x32\x32\x13\x01\xE0\xEF\x80\xDB\x0C\x01\x11\x12\x21\x42\x03\x11\x13\x13\xD1\xFE\x10\xD1\x0E\x11\x32\x04\x51\x66\x14\x11\x12\x01\x00\x10\x21\xF3\xE0\x40\x46\x02\xD0\x5F\x35\x22\xF1\xCF\x0E\x51\x35\x12\x00\x00\x42\x45\x02\xB0\xEC\x1F\x23\x02\x10\x43\x76\x56\x13\x01\x00\x20\x23\xF2\xDE\x0D\x21\x12\x12\x12\x23\x02\x21\x42\x25\x01\x20\x12\xE0\x2F\x44\x53\x25\x02\x10\x31\x75\x45\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4C\x49\x53\x54\x46\x00\x00\x00\x49\x4E\x46\x4F\x49\x43\x52\x44\x0B\x00\x00\x00\x31\x39\x39\x36\x2D\x30\x32\x2D\x30\x37\x00\x00\x49\x45\x4E\x47\x0D\x00\x00\x00\x42\x69\x6C\x6C\x20\x57\x6F\x6C\x66\x6F\x72\x64\x00\x00\x49\x53\x46\x54\x10\x00\x00\x00\x53\x6F\x75\x6E\x64\x20\x46\x6F\x72\x67\x65\x20\x34\x2E\x30\x00";//-----------------------------------------------------------------------------

#stdafx.h
Code:
//==================================================================
// This file is part of Qmo Base D3D Class part 2
// (c) copyright Qmo 2011™
// special thanks to : mpgh.net 
//==================================================================


#pragma once

#define WIN32_LEAN_AND_MEAN
#define WIN32_EXTRA_LEAN

#include <windows.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <d3d9.h>
#include <d3dx9.h>

#pragma message("Building  : QmoMPGHClassD3D")
2a. Make a new C++ file (.cpp) and give a new name ( It's up to you ) or that I recommend, then copy/paste all this code :

#ADE32.cpp
Code:

#include "stdafx.h"

#include "ADE32.h"

DWORD ade32_table[512] = {
/* 00 */  C_MODRM,
/* 01 */  C_MODRM,
/* 02 */  C_MODRM,
/* 03 */  C_MODRM,
/* 04 */  C_DATA1,
/* 05 */  C_DATA66,
/* 06 */  C_BAD,
/* 07 */  C_BAD,
/* 08 */  C_MODRM,
/* 09 */  C_MODRM,
/* 0A */  C_MODRM,
/* 0B */  C_MODRM,
/* 0C */  C_DATA1,
/* 0D */  C_DATA66,
/* 0E */  C_BAD,
/* 0F */  C_OPCODE2,
/* 10 */  C_MODRM+C_BAD,
/* 11 */  C_MODRM,
/* 12 */  C_MODRM+C_BAD,
/* 13 */  C_MODRM,
/* 14 */  C_DATA1+C_BAD,
/* 15 */  C_DATA66+C_BAD,
/* 16 */  C_BAD,
/* 17 */  C_BAD,
/* 18 */  C_MODRM+C_BAD,
/* 19 */  C_MODRM,
/* 1A */  C_MODRM,
/* 1B */  C_MODRM,
/* 1C */  C_DATA1+C_BAD,
/* 1D */  C_DATA66+C_BAD,
/* 1E */  C_BAD,
/* 1F */  C_BAD,
/* 20 */  C_MODRM,
/* 21 */  C_MODRM,
/* 22 */  C_MODRM,
/* 23 */  C_MODRM,
/* 24 */  C_DATA1,
/* 25 */  C_DATA66,
/* 26 */  C_SEG+C_BAD,
/* 27 */  C_BAD,
/* 28 */  C_MODRM,
/* 29 */  C_MODRM,
/* 2A */  C_MODRM,
/* 2B */  C_MODRM,
/* 2C */  C_DATA1,
/* 2D */  C_DATA66,
/* 2E */  C_SEG+C_BAD,
/* 2F */  C_BAD,
/* 30 */  C_MODRM,
/* 31 */  C_MODRM,
/* 32 */  C_MODRM,
/* 33 */  C_MODRM,
/* 34 */  C_DATA1,
/* 35 */  C_DATA66,
/* 36 */  C_SEG+C_BAD,
/* 37 */  C_BAD,
/* 38 */  C_MODRM,
/* 39 */  C_MODRM,
/* 3A */  C_MODRM,
/* 3B */  C_MODRM,
/* 3C */  C_DATA1,
/* 3D */  C_DATA66,
/* 3E */  C_SEG+C_BAD,
/* 3F */  C_BAD,
/* 40 */  0,
/* 41 */  0,
/* 42 */  0,
/* 43 */  0,
/* 44 */  C_BAD,
/* 45 */  0,
/* 46 */  0,
/* 47 */  0,
/* 48 */  0,
/* 49 */  0,
/* 4A */  0,
/* 4B */  0,
/* 4C */  C_BAD,
/* 4D */  0,
/* 4E */  0,
/* 4F */  0,
/* 50 */  0,
/* 51 */  0,
/* 52 */  0,
/* 53 */  0,
/* 54 */  0,
/* 55 */  0,
/* 56 */  0,
/* 57 */  0,
/* 58 */  0,
/* 59 */  0,
/* 5A */  0,
/* 5B */  0,
/* 5C */  C_BAD,
/* 5D */  0,
/* 5E */  0,
/* 5F */  0,
/* 60 */  C_BAD,
/* 61 */  C_BAD,
/* 62 */  C_MODRM+C_BAD,
/* 63 */  C_MODRM+C_BAD,
/* 64 */  C_SEG,
/* 65 */  C_SEG+C_BAD,
/* 66 */  C_66,
/* 67 */  C_67,
/* 68 */  C_DATA66,
/* 69 */  C_MODRM+C_DATA66,
/* 6A */  C_DATA1,
/* 6B */  C_MODRM+C_DATA1,
/* 6C */  C_BAD,
/* 6D */  C_BAD,
/* 6E */  C_BAD,
/* 6F */  C_BAD,
/* 70 */  C_DATA1+C_REL+C_BAD,
/* 71 */  C_DATA1+C_REL+C_BAD,
/* 72 */  C_DATA1+C_REL,
/* 73 */  C_DATA1+C_REL,
/* 74 */  C_DATA1+C_REL,
/* 75 */  C_DATA1+C_REL,
/* 76 */  C_DATA1+C_REL,
/* 77 */  C_DATA1+C_REL,
/* 78 */  C_DATA1+C_REL,
/* 79 */  C_DATA1+C_REL,
/* 7A */  C_DATA1+C_REL+C_BAD,
/* 7B */  C_DATA1+C_REL+C_BAD,
/* 7C */  C_DATA1+C_REL,
/* 7D */  C_DATA1+C_REL,
/* 7E */  C_DATA1+C_REL,
/* 7F */  C_DATA1+C_REL,
/* 80 */  C_MODRM+C_DATA1,
/* 81 */  C_MODRM+C_DATA66,
/* 82 */  C_MODRM+C_DATA1+C_BAD,
/* 83 */  C_MODRM+C_DATA1,
/* 84 */  C_MODRM,
/* 85 */  C_MODRM,
/* 86 */  C_MODRM,
/* 87 */  C_MODRM,
/* 88 */  C_MODRM,
/* 89 */  C_MODRM,
/* 8A */  C_MODRM,
/* 8B */  C_MODRM,
/* 8C */  C_MODRM+C_BAD,
/* 8D */  C_MODRM,
/* 8E */  C_MODRM+C_BAD,
/* 8F */  C_MODRM,
/* 90 */  0,
/* 91 */  0,
/* 92 */  0,
/* 93 */  C_BAD,
/* 94 */  C_BAD,
/* 95 */  C_BAD,
/* 96 */  C_BAD,
/* 97 */  C_BAD,
/* 98 */  C_BAD,
/* 99 */  0,
/* 9A */  C_DATA66+C_DATA2+C_BAD,
/* 9B */  0,
/* 9C */  C_BAD,
/* 9D */  C_BAD,
/* 9E */  C_BAD,
/* 9F */  C_BAD,
/* A0 */  C_ADDR67,
/* A1 */  C_ADDR67,
/* A2 */  C_ADDR67,
/* A3 */  C_ADDR67,
/* A4 */  0,
/* A5 */  0,
/* A6 */  0,
/* A7 */  0,
/* A8 */  C_DATA1,
/* A9 */  C_DATA66,
/* AA */  0,
/* AB */  0,
/* AC */  0,
/* AD */  C_BAD,
/* AE */  0,
/* AF */  C_BAD,
/* B0 */  C_DATA1,
/* B1 */  C_DATA1,
/* B2 */  C_DATA1,
/* B3 */  C_DATA1,
/* B4 */  C_DATA1,
/* B5 */  C_DATA1,
/* B6 */  C_DATA1+C_BAD,
/* B7 */  C_DATA1+C_BAD,
/* B8 */  C_DATA66,
/* B9 */  C_DATA66,
/* BA */  C_DATA66,
/* BB */  C_DATA66,
/* BC */  C_DATA66+C_BAD,
/* BD */  C_DATA66,
/* BE */  C_DATA66,
/* BF */  C_DATA66,
/* C0 */  C_MODRM+C_DATA1,
/* C1 */  C_MODRM+C_DATA1,
/* C2 */  C_DATA2+C_STOP,
/* C3 */  C_STOP,
/* C4 */  C_MODRM+C_BAD,
/* C5 */  C_MODRM+C_BAD,
/* C6 */  C_MODRM+C_DATA1,
/* C7 */  C_MODRM+C_DATA66,
/* C8 */  C_DATA2+C_DATA1,
/* C9 */  0,
/* CA */  C_DATA2+C_STOP+C_BAD,
/* CB */  C_STOP+C_BAD,
/* CC */  C_BAD,
/* CD */  C_BAD,
/* CE */  C_BAD,
/* CF */  C_STOP+C_BAD,
/* D0 */  C_MODRM,
/* D1 */  C_MODRM,
/* D2 */  C_MODRM,
/* D3 */  C_MODRM,
/* D4 */  C_DATA1+C_BAD,
/* D5 */  C_DATA1+C_BAD,
/* D6 */  C_BAD,
/* D7 */  C_BAD,
/* D8 */  C_MODRM,
/* D9 */  C_MODRM,
/* DA */  C_MODRM,
/* DB */  C_MODRM,
/* DC */  C_MODRM,
/* DD */  C_MODRM,
/* DE */  C_MODRM,
/* DF */  C_MODRM,
/* E0 */  C_DATA1+C_REL+C_BAD,
/* E1 */  C_DATA1+C_REL+C_BAD,
/* E2 */  C_DATA1+C_REL,
/* E3 */  C_DATA1+C_REL,
/* E4 */  C_DATA1+C_BAD,
/* E5 */  C_DATA1+C_BAD,
/* E6 */  C_DATA1+C_BAD,
/* E7 */  C_DATA1+C_BAD,
/* E8 */  C_DATA66+C_REL,
/* E9 */  C_DATA66+C_REL+C_STOP,
/* EA */  C_DATA66+C_DATA2+C_BAD,
/* EB */  C_DATA1+C_REL+C_STOP,
/* EC */  C_BAD,
/* ED */  C_BAD,
/* EE */  C_BAD,
/* EF */  C_BAD,
/* F0 */  C_LOCK+C_BAD,
/* F1 */  C_BAD,
/* F2 */  C_REP,
/* F3 */  C_REP,
/* F4 */  C_BAD,
/* F5 */  C_BAD,
/* F6 */  C_MODRM,
/* F7 */  C_MODRM,
/* F8 */  0,
/* F9 */  0,
/* FA */  C_BAD,
/* FB */  C_BAD,
/* FC */  0,
/* FD */  0,
/* FE */  C_MODRM,
/* FF */  C_MODRM,
/* 00 */  C_MODRM,
/* 01 */  C_MODRM,
/* 02 */  C_MODRM,
/* 03 */  C_MODRM,
/* 04 */  C_ERROR,
/* 05 */  C_ERROR,
/* 06 */  0,
/* 07 */  C_ERROR,
/* 08 */  0,
/* 09 */  0,
/* 0A */  0,
/* 0B */  0,
/* 0C */  C_ERROR,
/* 0D */  C_ERROR,
/* 0E */  C_ERROR,
/* 0F */  C_ERROR,
/* 10 */  C_ERROR,
/* 11 */  C_ERROR,
/* 12 */  C_ERROR,
/* 13 */  C_ERROR,
/* 14 */  C_ERROR,
/* 15 */  C_ERROR,
/* 16 */  C_ERROR,
/* 17 */  C_ERROR,
/* 18 */  C_ERROR,
/* 19 */  C_ERROR,
/* 1A */  C_ERROR,
/* 1B */  C_ERROR,
/* 1C */  C_ERROR,
/* 1D */  C_ERROR,
/* 1E */  C_ERROR,
/* 1F */  C_ERROR,
/* 20 */  C_ERROR,
/* 21 */  C_ERROR,
/* 22 */  C_ERROR,
/* 23 */  C_ERROR,
/* 24 */  C_ERROR,
/* 25 */  C_ERROR,
/* 26 */  C_ERROR,
/* 27 */  C_ERROR,
/* 28 */  C_ERROR,
/* 29 */  C_ERROR,
/* 2A */  C_ERROR,
/* 2B */  C_ERROR,
/* 2C */  C_ERROR,
/* 2D */  C_ERROR,
/* 2E */  C_ERROR,
/* 2F */  C_ERROR,
/* 30 */  C_ERROR,
/* 31 */  C_ERROR,
/* 32 */  C_ERROR,
/* 33 */  C_ERROR,
/* 34 */  C_ERROR,
/* 35 */  C_ERROR,
/* 36 */  C_ERROR,
/* 37 */  C_ERROR,
/* 38 */  C_ERROR,
/* 39 */  C_ERROR,
/* 3A */  C_ERROR,
/* 3B */  C_ERROR,
/* 3C */  C_ERROR,
/* 3D */  C_ERROR,
/* 3E */  C_ERROR,
/* 3F */  C_ERROR,
/* 40 */  C_ERROR,
/* 41 */  C_ERROR,
/* 42 */  C_ERROR,
/* 43 */  C_ERROR,
/* 44 */  C_ERROR,
/* 45 */  C_ERROR,
/* 46 */  C_ERROR,
/* 47 */  C_ERROR,
/* 48 */  C_ERROR,
/* 49 */  C_ERROR,
/* 4A */  C_ERROR,
/* 4B */  C_ERROR,
/* 4C */  C_ERROR,
/* 4D */  C_ERROR,
/* 4E */  C_ERROR,
/* 4F */  C_ERROR,
/* 50 */  C_ERROR,
/* 51 */  C_ERROR,
/* 52 */  C_ERROR,
/* 53 */  C_ERROR,
/* 54 */  C_ERROR,
/* 55 */  C_ERROR,
/* 56 */  C_ERROR,
/* 57 */  C_ERROR,
/* 58 */  C_ERROR,
/* 59 */  C_ERROR,
/* 5A */  C_ERROR,
/* 5B */  C_ERROR,
/* 5C */  C_ERROR,
/* 5D */  C_ERROR,
/* 5E */  C_ERROR,
/* 5F */  C_ERROR,
/* 60 */  C_ERROR,
/* 61 */  C_ERROR,
/* 62 */  C_ERROR,
/* 63 */  C_ERROR,
/* 64 */  C_ERROR,
/* 65 */  C_ERROR,
/* 66 */  C_ERROR,
/* 67 */  C_ERROR,
/* 68 */  C_ERROR,
/* 69 */  C_ERROR,
/* 6A */  C_ERROR,
/* 6B */  C_ERROR,
/* 6C */  C_ERROR,
/* 6D */  C_ERROR,
/* 6E */  C_ERROR,
/* 6F */  C_ERROR,
/* 70 */  C_ERROR,
/* 71 */  C_ERROR,
/* 72 */  C_ERROR,
/* 73 */  C_ERROR,
/* 74 */  C_ERROR,
/* 75 */  C_ERROR,
/* 76 */  C_ERROR,
/* 77 */  C_ERROR,
/* 78 */  C_ERROR,
/* 79 */  C_ERROR,
/* 7A */  C_ERROR,
/* 7B */  C_ERROR,
/* 7C */  C_ERROR,
/* 7D */  C_ERROR,
/* 7E */  C_ERROR,
/* 7F */  C_ERROR,
/* 80 */  C_DATA66+C_REL,
/* 81 */  C_DATA66+C_REL,
/* 82 */  C_DATA66+C_REL,
/* 83 */  C_DATA66+C_REL,
/* 84 */  C_DATA66+C_REL,
/* 85 */  C_DATA66+C_REL,
/* 86 */  C_DATA66+C_REL,
/* 87 */  C_DATA66+C_REL,
/* 88 */  C_DATA66+C_REL,
/* 89 */  C_DATA66+C_REL,
/* 8A */  C_DATA66+C_REL,
/* 8B */  C_DATA66+C_REL,
/* 8C */  C_DATA66+C_REL,
/* 8D */  C_DATA66+C_REL,
/* 8E */  C_DATA66+C_REL,
/* 8F */  C_DATA66+C_REL,
/* 90 */  C_MODRM,
/* 91 */  C_MODRM,
/* 92 */  C_MODRM,
/* 93 */  C_MODRM,
/* 94 */  C_MODRM,
/* 95 */  C_MODRM,
/* 96 */  C_MODRM,
/* 97 */  C_MODRM,
/* 98 */  C_MODRM,
/* 99 */  C_MODRM,
/* 9A */  C_MODRM,
/* 9B */  C_MODRM,
/* 9C */  C_MODRM,
/* 9D */  C_MODRM,
/* 9E */  C_MODRM,
/* 9F */  C_MODRM,
/* A0 */  0,
/* A1 */  0,
/* A2 */  0,
/* A3 */  C_MODRM,
/* A4 */  C_MODRM+C_DATA1,
/* A5 */  C_MODRM,
/* A6 */  C_ERROR,
/* A7 */  C_ERROR,
/* A8 */  0,
/* A9 */  0,
/* AA */  0,
/* AB */  C_MODRM,
/* AC */  C_MODRM+C_DATA1,
/* AD */  C_MODRM,
/* AE */  C_ERROR,
/* AF */  C_MODRM,
/* B0 */  C_MODRM,
/* B1 */  C_MODRM,
/* B2 */  C_MODRM,
/* B3 */  C_MODRM,
/* B4 */  C_MODRM,
/* B5 */  C_MODRM,
/* B6 */  C_MODRM,
/* B7 */  C_MODRM,
/* B8 */  C_ERROR,
/* B9 */  C_ERROR,
/* BA */  C_MODRM+C_DATA1,
/* BB */  C_MODRM,
/* BC */  C_MODRM,
/* BD */  C_MODRM,
/* BE */  C_MODRM,
/* BF */  C_MODRM,
/* C0 */  C_MODRM,
/* C1 */  C_MODRM,
/* C2 */  C_ERROR,
/* C3 */  C_ERROR,
/* C4 */  C_ERROR,
/* C5 */  C_ERROR,
/* C6 */  C_ERROR,
/* C7 */  C_ERROR,
/* C8 */  0,
/* C9 */  0,
/* CA */  0,
/* CB */  0,
/* CC */  0,
/* CD */  C_DATA1,
/* CE */  0,
/* CF */  0,
/* D0 */  C_ERROR,
/* D1 */  C_ERROR,
/* D2 */  C_ERROR,
/* D3 */  C_ERROR,
/* D4 */  C_ERROR,
/* D5 */  C_ERROR,
/* D6 */  C_ERROR,
/* D7 */  C_ERROR,
/* D8 */  C_ERROR,
/* D9 */  C_ERROR,
/* DA */  C_ERROR,
/* DB */  C_ERROR,
/* DC */  C_ERROR,
/* DD */  C_ERROR,
/* DE */  C_ERROR,
/* DF */  C_ERROR,
/* E0 */  C_ERROR,
/* E1 */  C_ERROR,
/* E2 */  C_ERROR,
/* E3 */  C_ERROR,
/* E4 */  C_ERROR,
/* E5 */  C_ERROR,
/* E6 */  C_ERROR,
/* E7 */  C_ERROR,
/* E8 */  C_ERROR,
/* E9 */  C_ERROR,
/* EA */  C_ERROR,
/* EB */  C_ERROR,
/* EC */  C_ERROR,
/* ED */  C_ERROR,
/* EE */  C_ERROR,
/* EF */  C_ERROR,
/* F0 */  C_ERROR,
/* F1 */  C_ERROR,
/* F2 */  C_ERROR,
/* F3 */  C_ERROR,
/* F4 */  C_ERROR,
/* F5 */  C_ERROR,
/* F6 */  C_ERROR,
/* F7 */  C_ERROR,
/* F8 */  C_ERROR,
/* F9 */  C_ERROR,
/* FA */  C_ERROR,
/* FB */  C_ERROR,
/* FC */  C_ERROR,
/* FD */  C_ERROR,
/* FE */  C_ERROR,
/* FF */  C_ERROR
}; // ade32_table[]


int disasm(BYTE* opcode0, disasm_struct* diza){
	BYTE* opcode = opcode0;

	memset(diza, 0x00, sizeof(disasm_struct));
	diza->disasm_defdata = 4;
	diza->disasm_defaddr = 4;

	if(*(WORD*)opcode == 0x0000)
		return 0;
	if(*(WORD*)opcode == 0xFFFF)
		return 0;

	DWORD flag = 0;

repeat_prefix:

	BYTE c = *opcode++;
	DWORD t = ade32_table[ c ];

	if(t & C_ANYPREFIX){
		if(flag & t)
			return 0;

		flag |= t;

		if(t & C_67)
			diza->disasm_defaddr ^= 2^4;
		else if(t & C_66)
			diza->disasm_defdata ^= 2^4;
		else if(t & C_SEG)
			diza->disasm_seg = c;
		else if(t & C_REP)
			diza->disasm_rep = c;
		// LOCK

		goto repeat_prefix;
	} // C_ANYPREFIX

	flag |= t;
	diza->disasm_opcode = c;

	if(c == 0x0F){
		c = *opcode++;
		diza->disasm_opcode2 = c;
		flag |= ade32_table[256+c]; // 2nd flagtable half
		
		if(flag == C_ERROR)
			return 0;
	}else if(c == 0xF7){
		if(((*opcode) & 0x38) == 0)
			flag |= C_DATA66;
	}else if(c == 0xF6){
		if(((*opcode) & 0x38) == 0)
			flag |= C_DATA1;
	}else if(c == 0xCD){
		if(*opcode == 0x20)
			flag |= C_DATA4;
	}

	if(flag & C_MODRM){
		c = *opcode++;
		diza->disasm_modrm = c;

		if(((c & 0x38) == 0x20) && (diza->disasm_opcode == 0xFF))
			flag |= C_STOP;

		BYTE mod = c & 0xC0;
		BYTE rm  = c & 0x07;

		if(mod != 0xC0){
			if(diza->disasm_defaddr == 4){
				if(rm == 4){
					flag |= C_SIB;
					c = *opcode++;
					diza->disasm_sib = c;
					rm = c & 0x07;
				}

				if(mod == 0x40)
					flag |= C_ADDR1;
				else if(mod == 0x80)
					flag |= C_ADDR4;
				else if (rm == 5)
					flag |= C_ADDR4;
			}else{ // MODRM 16-bit
				if(mod == 0x40)
					flag |= C_ADDR1;
				else if(mod == 0x80)
					flag |= C_ADDR2;
				else if(rm == 6)
					flag |= C_ADDR2;
			}
		}
	} // C_MODRM

	diza->disasm_flag = flag;

	DWORD a =  flag & (C_ADDR1 | C_ADDR2 | C_ADDR4);
	DWORD d = (flag & (C_DATA1 | C_DATA2 | C_DATA4)) >> 8;

	if(flag & C_ADDR67)
		a += diza->disasm_defaddr;
	if(flag & C_DATA66)
		d += diza->disasm_defdata;

	diza->disasm_addrsize = a;
	diza->disasm_datasize = d;

	DWORD i;
	for(i = 0; i < a; i++)
		diza->disasm_addr_b[i] = *opcode++;

	for(i = 0; i < d; i++)
		diza->disasm_data_b[i] = *opcode++;

	diza->disasm_len = opcode - opcode0;

	return diza->disasm_len;
}

int oplen(BYTE *opcode){
	disasm_struct diza;
	memset(&diza,0,sizeof(diza));
	
	disasm((BYTE*)opcode,&diza);

	if((diza.disasm_flag == C_ERROR) || ((diza.disasm_flag&C_STOP) == C_STOP) || ((diza.disasm_flag&C_REL)==C_REL) || ((diza.disasm_flag&C_BAD)==C_BAD))
		return -1;

	return diza.disasm_len;
}

#QmoBase.cpp
Code:
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------
// flavor from the Base cheat ... need to Edit ok, and the creation of your abilities
//( Clue : discard the unnecessary )
//-----------------------------------------------------------------------------

#include "QmoBase.h"
#include "QmoMenu.h"
#include "QmoSound.h"
#include "QmoDetour.h"
#include "pragma.h"

#define D3DparamX		, UINT paramx
#define D3DparamvalX	, paramx
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
int SumStride;

//========================================================//
UCHAR
szFileSys[255],
szVolNameBuff[255];

DWORD
dwMFL,
dwSysFlags,
dwSerial;
//========================================================//

bool Color = true;
LPDIRECT3DDEVICE9 pDevice;
UINT OffsetInBytes;
UINT m_Stride;
  LPDIRECT3DVERTEXBUFFER9 Stream_Data;
  UINT Offset = 0;
  UINT Stride = 0;
  bool CekHook = true;
  /**************************/
LPDIRECT3DTEXTURE9    texYellow, texRed, texGreen, texBlue, texBlack, texWhite, texPink, texOrange, texLightBlue, texCyan, texPurple, texSteelBlue, texLightSteelBlue, texSalmon, texBrown, texTeal, texLime, texElectricLime, texGold, texOrangeRed, texGreenYellow, texAquaMarine, texSkyBlue, texSlateBlue, texCrimson, texDarkOliveGreen, texPaleGreen, texDarkGoldenRod, texFireBrick, texDarkBlue, texDarkerBlue, texDarkYellow, texLightYellow;
/**************************/
cBase Base;
cMenu Menu;
copt opt;
cSound Sound;

HRESULT GenerateTexture(IDirect3DDevice9 *pD3Ddev, IDirect3DTexture9 **ppD3Dtex, DWORD colour32)
{
    if(FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex, NULL)))
        return E_FAIL;
    
    WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
	            	|(WORD)(((colour32>>20)&0xF)<<8)
	             	|(WORD)(((colour32>>12)&0xF)<<4)
                 	|(WORD)(((colour32>>4)&0xF)<<0);

    D3DLOCKED_RECT d3dlr;    
    (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
    WORD *pDst16 = (WORD*)d3dlr.pBits;

    for(int xy=0; xy < 8*8; xy++)
        *pDst16++ = colour16;

    (*ppD3Dtex)->UnlockRect(0);

    return S_OK;
}


void PreReset( LPDIRECT3DDEVICE9 pDevice )
{
	// Code here
	Menu.PreReset();
	return;
}

void PostReset( LPDIRECT3DDEVICE9 pDevice )
{
	// Code here
	Menu.PostReset(pDevice);
	return;
}

typedef HRESULT ( WINAPI* oReset )( LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters );
oReset pReset;

HRESULT APIENTRY myReset( LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters )
{
	PreReset( pDevice );
	HRESULT hRet = pReset( pDevice, pPresentationParameters );
	
	if( SUCCEEDED( hRet ) )
	{
		PostReset( pDevice );
	}
	return hRet;
}
typedef HRESULT (WINAPI* oDrawIndexedPrimitive) (LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount);
oDrawIndexedPrimitive pDrawIndexedPrimitive;

HRESULT WINAPI  myDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE pType D3DparamX ,UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount )
{
	if(pDevice->GetStreamSource(0,&Stream_Data,&OffsetInBytes,&m_Stride) == D3D_OK) 
		Stream_Data->Release();

	DWORD dwOldZEnable = D3DZB_TRUE;
		
	if(Color)
	{
	 GenerateTexture(pDevice, &texGreen , D3DCOLOR_ARGB(255,0,255,0));
     GenerateTexture(pDevice, &texRed , D3DCOLOR_ARGB(255,255,0,0));
     GenerateTexture(pDevice, &texBlue , D3DCOLOR_ARGB(255,0,0,255));
     GenerateTexture(pDevice, &texOrange , D3DCOLOR_ARGB(255,255,165,0));
     GenerateTexture(pDevice, &texYellow , D3DCOLOR_ARGB(255,255,255,0));
     GenerateTexture(pDevice, &texPink , D3DCOLOR_ARGB(255,255,192,203));
     GenerateTexture(pDevice, &texCyan , D3DCOLOR_ARGB(255,0,255,255));
     GenerateTexture(pDevice, &texPurple , D3DCOLOR_ARGB(255,160,32,240));
     GenerateTexture(pDevice, &texBlack , D3DCOLOR_ARGB(255,0,0,0));
     GenerateTexture(pDevice, &texWhite , D3DCOLOR_ARGB(255,255,255,255));
     GenerateTexture(pDevice, &texSteelBlue , D3DCOLOR_ARGB(255,33,104,140));
     GenerateTexture(pDevice, &texLightSteelBlue, D3DCOLOR_ARGB(255,201,255,255));
     GenerateTexture(pDevice, &texLightBlue , D3DCOLOR_ARGB(255,26,140,306));
     GenerateTexture(pDevice, &texSalmon , D3DCOLOR_ARGB(255,196,112,112));
     GenerateTexture(pDevice, &texBrown , D3DCOLOR_ARGB(255,168,99,20));
     GenerateTexture(pDevice, &texTeal , D3DCOLOR_ARGB(255,38,140,140));
     GenerateTexture(pDevice, &texLime , D3DCOLOR_ARGB(255,50,205,50));
     GenerateTexture(pDevice, &texElectricLime , D3DCOLOR_ARGB(255,204,255,0));
     GenerateTexture(pDevice, &texGold , D3DCOLOR_ARGB(255,255, 215, 0));
     GenerateTexture(pDevice, &texOrangeRed , D3DCOLOR_ARGB(255,255,69,0));
     GenerateTexture(pDevice, &texGreenYellow , D3DCOLOR_ARGB(255,173,255,47));
     GenerateTexture(pDevice, &texAquaMarine , D3DCOLOR_ARGB(255,127,255,212));
     GenerateTexture(pDevice, &texSkyBlue , D3DCOLOR_ARGB(255,0,191,255));
     GenerateTexture(pDevice, &texSlateBlue , D3DCOLOR_ARGB(255,132, 112, 255));
     GenerateTexture(pDevice, &texCrimson , D3DCOLOR_ARGB(255,220,20,60));
     GenerateTexture(pDevice, &texDarkOliveGreen, D3DCOLOR_ARGB(255,188,238,104 ));
     GenerateTexture(pDevice, &texPaleGreen , D3DCOLOR_ARGB(255,154,255, 154));
     GenerateTexture(pDevice, &texDarkGoldenRod , D3DCOLOR_ARGB(255,255, 185, 15 ));
     GenerateTexture(pDevice, &texFireBrick , D3DCOLOR_ARGB(255,255,48,48));
     GenerateTexture(pDevice, &texDarkBlue , D3DCOLOR_ARGB(255,0,0,204));
     GenerateTexture(pDevice, &texDarkerBlue , D3DCOLOR_ARGB(255,0,0,153));
     GenerateTexture(pDevice, &texDarkYellow , D3DCOLOR_ARGB(255,255,204,0));
     GenerateTexture(pDevice, &texLightYellow , D3DCOLOR_ARGB(255,255,255,153));
		Color = false;
	}
	if(opt.d3d.ChamsCT)
	{
		if((m_Stride == 44))
		{
			pDevice->SetRenderState(D3DRS_ZENABLE, false);
			pDevice->SetTexture(0, texGreen);
			pDrawIndexedPrimitive(pDevice,pType D3DparamvalX,nMinIndex,nNumVertices,nStartIndex,nPrimitiveCount);
			pDevice->SetTexture(0, texRed);
			pDevice->SetRenderState(D3DRS_ZENABLE, true);
		}
	}
		if(opt.d3d.ChamsTERO)
	{
		if((m_Stride == 52))
		{
			pDevice->SetRenderState(D3DRS_ZENABLE, false);
			pDevice->SetTexture(0, texGreenYellow);
			pDrawIndexedPrimitive(pDevice,pType D3DparamvalX,nMinIndex,nNumVertices,nStartIndex,nPrimitiveCount);
			
		}
	}

	if(opt.d3d.WHGlass)
	{
		if((m_Stride == 48 || m_Stride == 52 || m_Stride == 64))
		{
			SumStride=SumStride+4;
			pDevice->SetRenderState(D3DRS_ZENABLE,false);
			pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
			pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVDESTCOLOR);
			pDevice->SetRenderState(D3DRS_ZENABLE,false);
			
		}
	}
     	return pDrawIndexedPrimitive(pDevice,pType D3DparamvalX,nMinIndex,nNumVertices,nStartIndex,nPrimitiveCount);
}


typedef HRESULT	( WINAPI* oEndScene )( LPDIRECT3DDEVICE9 pDevice );
oEndScene pEndScene;

HRESULT APIENTRY myEndScene( LPDIRECT3DDEVICE9 pDevice )
{
		PostReset(pDevice);
		Menu.ShowMenu(pDevice);
		PreReset(pDevice);
	return pEndScene( pDevice );
}
PVOID D3Ddiscover(void *tbl, int size)
{
	HWND				  hWnd;
	void				  *pInterface=0 ;
	D3DPRESENT_PARAMETERS d3dpp; 

	if ((hWnd=CreateWindowEx(NULL,WC_DIALOG,"",WS_OVERLAPPED,0,0,50,50,NULL,NULL,NULL,NULL))==NULL) return 0;
	ShowWindow(hWnd, SW_HIDE);

	LPDIRECT3D9			pD3D;
	LPDIRECT3DDEVICE9	pD3Ddev;
	if ((pD3D = Direct3DCreate9(D3D_SDK_VERSION))!=NULL) 

	{
	    ZeroMemory(&d3dpp, sizeof(d3dpp));
	    d3dpp.Windowed         = TRUE;
		d3dpp.SwapEffect       = D3DSWAPEFFECT_DISCARD;
	    d3dpp.hDeviceWindow    = hWnd;
	    d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
	    d3dpp.BackBufferWidth  = d3dpp.BackBufferHeight = 600;
		pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&pD3Ddev);
		if (pD3Ddev)  {
		    pInterface = (PDWORD)*(DWORD *)pD3Ddev;
			memcpy(tbl,(void *)pInterface,size);
			pD3Ddev->Release();
		}
		pD3D->Release();
	}
	DestroyWindow(hWnd);
	return pInterface;
}
int __stdcall D3D(void)
{
	HINSTANCE	hD3D;
	DWORD		vTable[105];
	hD3D=0;
	do {
		hD3D = GetModuleHandle("d3d9.dll");
		if (!hD3D) Sleep(100);
	} while(!hD3D);


	if (D3Ddiscover((void *)&vTable[0],420)==0) return 0;
	{
		
		while(1)
		{
		if(memcmp((void*)vTable[82],(void*)(PBYTE)"\x8B\xFF",2)== 0)
		{
			pDrawIndexedPrimitive	= (oDrawIndexedPrimitive)	DetourCreate((PBYTE)vTable[82], (PBYTE)myDrawIndexedPrimitive, 5);
			pEndScene = (oEndScene) DetourCreate((PBYTE) vTable[42], (PBYTE)myEndScene,5);
		}
	Sleep(50);
	}
	return 0;
	}	

}
char* cBase::GetFile(char *file)
{
	static char path[320];
	for(int i= 0;i<strlen(path);i++)
		path[i]=0;
	strcpy(path, Base.dllpath);
	strcat(path, file);
	return path;
}
BOOL __stdcall DllMain(HMODULE hDll, DWORD dwReason, LPVOID lpReserved)
{
	DisableThreadLibraryCalls(hDll);
	if (dwReason == DLL_PROCESS_ATTACH)
	{ 
MessageBox (0,"Creadits by Qmo","MPGH.NET", MB_OK); 
        
	    CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)D3D, NULL, NULL, NULL);
		//CreateThread(0, 0, (LPTHREAD_START_ROUTINE)DevilHack,0, 0, 0);

	}	
	return TRUE;
}

#QmoFont.cpp
Code:
// -----------------------------------------------------------------------------
// File: D3DFont.cpp
// Desc: Texture-based font class
// Copyright (c) 1999-2001 Microsoft Corporation. All rights reserved.
// - Added D3D_FONT_RIGHT
// - Added D3D_FONT_SHADOW
// - Stripped not needed functions
//
// Edite file by Qmo MPGH
// -----------------------------------------------------------------------------
#include <stdio.h>
#include <tchar.h>
#include <D3DX9.h>
#include "QmoFont.h"
#include "pragma.h"


//-----------------------------------------------------------------------------
// Custom vertex types for rendering text
//-----------------------------------------------------------------------------
#define MAX_NUM_VERTICES 50*6

struct FONT2DVERTEX { D3DXVECTOR4 p;   DWORD color;     FLOAT tu, tv; };
struct FONT3DVERTEX { D3DXVECTOR3 p;   D3DXVECTOR3 n;   FLOAT tu, tv; };

#define D3DFVF_FONT2DVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE|D3DFVF_TEX1)
#define D3DFVF_FONT3DVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)

inline FONT2DVERTEX InitFont2DVertex( const D3DXVECTOR4& p, D3DCOLOR color,
                                      FLOAT tu, FLOAT tv )
{
    FONT2DVERTEX v;   v.p = p;   v.color = color;   v.tu = tu;   v.tv = tv;
    return v;
}

inline FONT3DVERTEX InitFont3DVertex( const D3DXVECTOR3& p, const D3DXVECTOR3& n,
                                      FLOAT tu, FLOAT tv )
{
    FONT3DVERTEX v;   v.p = p;   v.n = n;   v.tu = tu;   v.tv = tv;
    return v;
}




//-----------------------------------------------------------------------------
// Name: CD3DFont()
// Desc: Font class constructor
//-----------------------------------------------------------------------------
CD3DFont::CD3DFont( TCHAR* strFontName, DWORD dwHeight, DWORD dwFlags )
{
    strcpy( m_strFontName, strFontName );
    m_dwFontHeight         = dwHeight;
    m_dwFontFlags          = dwFlags;

    m_pd3dDevice           = NULL;
    m_pTexture             = NULL;
    m_pVB                  = NULL;

    m_dwSavedStateBlock    = 0L;
    m_dwDrawTextStateBlock = 0L;
}




//-----------------------------------------------------------------------------
// Name: ~CD3DFont()
// Desc: Font class destructor
//-----------------------------------------------------------------------------
CD3DFont::~CD3DFont()
{
    InvalidateDeviceObjects();
    DeleteDeviceObjects();
}




//-----------------------------------------------------------------------------
// Name: InitDeviceObjects()
// Desc: Initializes device-dependent objects, including the vertex buffer used
//       for rendering text and the texture map which stores the font image.
//-----------------------------------------------------------------------------
HRESULT CD3DFont::InitDeviceObjects( LPDIRECT3DDEVICE9 pd3dDevice )
{
    HRESULT hr;

    // Keep a local copy of the device
    m_pd3dDevice = pd3dDevice;

    // Establish the font and texture size
    m_fTextScale  = 1.0f; // Draw fonts into texture without scaling

    // Large fonts need larger textures
    if( m_dwFontHeight > 40 )
        m_dwTexWidth = m_dwTexHeight = 1024;
    else if( m_dwFontHeight > 20 )
        m_dwTexWidth = m_dwTexHeight = 512;
    else
        m_dwTexWidth  = m_dwTexHeight = 256;

    // If requested texture is too big, use a smaller texture and smaller font,
    // and scale up when rendering.
    D3DCAPS9 d3dCaps;
    m_pd3dDevice->GetDeviceCaps( &d3dCaps );

    if( m_dwTexWidth > d3dCaps.MaxTextureWidth )
    {
        m_fTextScale = (FLOAT)d3dCaps.MaxTextureWidth / (FLOAT)m_dwTexWidth;
        m_dwTexWidth = m_dwTexHeight = d3dCaps.MaxTextureWidth;
    }

    // Create a new texture for the font
    hr = m_pd3dDevice->CreateTexture( m_dwTexWidth, m_dwTexHeight, 1,
                                      0, D3DFMT_A4R4G4B4,
                                      D3DPOOL_MANAGED, &m_pTexture, NULL );
    if( FAILED(hr) )
        return hr;

    // Prepare to create a bitmap
    DWORD*      pBitmapBits;
    BITMAPINFO bmi;
    ZeroMemory( &bmi.bmiHeader,  sizeof(BITMAPINFOHEADER) );
    bmi.bmiHeader.biSize        = sizeof(BITMAPINFOHEADER);
    bmi.bmiHeader.biWidth       =  (int)m_dwTexWidth;
    bmi.bmiHeader.biHeight      = -(int)m_dwTexHeight;
    bmi.bmiHeader.biPlanes      = 1;
    bmi.bmiHeader.biCompression = BI_RGB;
    bmi.bmiHeader.biBitCount    = 32;

    // Create a DC and a bitmap for the font
    HDC     hDC       = CreateCompatibleDC( NULL );
    HBITMAP hbmBitmap = CreateDIBSection( hDC, &bmi, DIB_RGB_COLORS,
                                          (VOID**)&pBitmapBits, NULL, 0 );
    SetMapMode( hDC, MM_TEXT );

    // Create a font.  By specifying ANTIALIASED_QUALITY, we might get an
    // antialiased font, but this is not guaranteed.
    INT nHeight    = -MulDiv( m_dwFontHeight, 
        (INT)(GetDeviceCaps(hDC, LOGPIXELSY) * m_fTextScale), 72 );
    DWORD dwBold   = (m_dwFontFlags&D3DFONT_BOLD)   ? FW_BOLD : FW_NORMAL;
    DWORD dwItalic = (m_dwFontFlags&D3DFONT_ITALIC) ? TRUE    : FALSE;
    HFONT hFont    = CreateFont( nHeight, 0, 0, 0, dwBold, dwItalic,
                          FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
                          CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
                          VARIABLE_PITCH, m_strFontName );
    if( NULL==hFont )
        return E_FAIL;

    SelectObject( hDC, hbmBitmap );
    SelectObject( hDC, hFont );

    // Set text properties
    SetTextColor( hDC, RGB(255,255,255) );
    SetBkColor(   hDC, 0x00000000 );
    SetTextAlign( hDC, TA_TOP );

    // Loop through all printable character and output them to the bitmap..
    // Meanwhile, keep track of the corresponding tex coords for each character.
    DWORD x = 0;
    DWORD y = 0;
    TCHAR str[2] = _T("x");
    SIZE size;

    // Calculate the spacing between characters based on line height
    GetTextExtentPoint32( hDC, TEXT(" "), 1, &size );
    x = m_dwSpacing = (DWORD) ceil(size.cy * 0.3f);

    for( TCHAR c=32; c<127; c++ )
    {
        str[0] = c;
        GetTextExtentPoint32( hDC, str, 1, &size );

        if( (DWORD)(x+size.cx+1) > m_dwTexWidth )
        {
            x  = m_dwSpacing;
            y += size.cy+1;
        }

        ExtTextOut( hDC, x+0, y+0, ETO_OPAQUE, NULL, str, 1, NULL );

        m_fTexCoords[c-32][0] = ((FLOAT)(x+0      -m_dwSpacing))/m_dwTexWidth;
        m_fTexCoords[c-32][1] = ((FLOAT)(y+0      +0          ))/m_dwTexHeight;
        m_fTexCoords[c-32][2] = ((FLOAT)(x+size.cx+m_dwSpacing))/m_dwTexWidth;
        m_fTexCoords[c-32][3] = ((FLOAT)(y+size.cy+0          ))/m_dwTexHeight;

        x += size.cx+(2 * m_dwSpacing);
    }

    // Lock the surface and write the alpha values for the set pixels
    D3DLOCKED_RECT d3dlr;
    m_pTexture->LockRect( 0, &d3dlr, 0, 0 );
    BYTE* pDstRow = (BYTE*)d3dlr.pBits;
    WORD* pDst16;
    BYTE bAlpha; // 4-bit measure of pixel intensity

    for( y=0; y < m_dwTexHeight; y++ )
    {
        pDst16 = (WORD*)pDstRow;
        for( x=0; x < m_dwTexWidth; x++ )
        {
            bAlpha = (BYTE)((pBitmapBits[m_dwTexWidth*y + x] & 0xff) >> 4);
            if (bAlpha > 0)
            {
                *pDst16++ = (bAlpha << 12) | 0x0fff;
            }
            else
            {
                *pDst16++ = 0x0000;
            }
        }
        pDstRow += d3dlr.Pitch;
    }

    // Done updating texture, so clean up used objects
    m_pTexture->UnlockRect(0);
    DeleteObject( hbmBitmap );
    DeleteDC( hDC );
    DeleteObject( hFont );

    return S_OK;
}




//-----------------------------------------------------------------------------
// Name: RestoreDeviceObjects()
// Desc:
//-----------------------------------------------------------------------------
HRESULT CD3DFont::RestoreDeviceObjects()
{
    HRESULT hr;

    // Create vertex buffer for the letters
    if( FAILED( hr = m_pd3dDevice->CreateVertexBuffer( 
		MAX_NUM_VERTICES*sizeof(FONT2DVERTEX),
		D3DUSAGE_WRITEONLY, 0,
		D3DPOOL_DEFAULT, &m_pVB, NULL ) ) )
    {
        return hr;
    }

    // Create the state blocks for rendering text
    for( UINT which=0; which<2; which++ )
    {
        m_pd3dDevice->BeginStateBlock();
        m_pd3dDevice->SetTexture( 0, m_pTexture );

        if ( D3DFONT_ZENABLE & m_dwFontFlags )
            m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE );
        else
            m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE );

        m_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
        m_pd3dDevice->SetRenderState( D3DRS_SRCBLEND,   D3DBLEND_SRCALPHA );
        m_pd3dDevice->SetRenderState( D3DRS_DESTBLEND,  D3DBLEND_INVSRCALPHA );
        m_pd3dDevice->SetRenderState( D3DRS_ALPHATESTENABLE,  TRUE );
        m_pd3dDevice->SetRenderState( D3DRS_ALPHAREF,         0x08 );
        m_pd3dDevice->SetRenderState( D3DRS_ALPHAFUNC,  D3DCMP_GREATEREQUAL );
        m_pd3dDevice->SetRenderState( D3DRS_FILLMODE,   D3DFILL_SOLID );
        m_pd3dDevice->SetRenderState( D3DRS_CULLMODE,   D3DCULL_CCW );
        m_pd3dDevice->SetRenderState( D3DRS_STENCILENABLE,    FALSE );
        m_pd3dDevice->SetRenderState( D3DRS_CLIPPING,         TRUE );
        m_pd3dDevice->SetRenderState( D3DRS_CLIPPLANEENABLE,  FALSE );
        m_pd3dDevice->SetRenderState( D3DRS_VERTEXBLEND,      FALSE );
        m_pd3dDevice->SetRenderState( D3DRS_INDEXEDVERTEXBLENDENABLE, FALSE );
        m_pd3dDevice->SetRenderState( D3DRS_FOGENABLE,        FALSE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_MODULATE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_MODULATE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
        m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT );
        m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT );
        m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_NONE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE );
        m_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLOROP,   D3DTOP_DISABLE );
        m_pd3dDevice->SetTextureStageState( 1, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );

        if( which==0 )
            m_pd3dDevice->EndStateBlock( &m_dwSavedStateBlock );
        else
            m_pd3dDevice->EndStateBlock( &m_dwDrawTextStateBlock );
    }

    return S_OK;
}




//-----------------------------------------------------------------------------
// Name: InvalidateDeviceObjects()
// Desc: Destroys all device-dependent objects
//-----------------------------------------------------------------------------
HRESULT CD3DFont::InvalidateDeviceObjects()
{
    m_pVB->Release();

    // Delete the state blocks
    if( m_pd3dDevice )
    {
        if( m_dwSavedStateBlock )
            m_dwSavedStateBlock->Release();
        if( m_dwDrawTextStateBlock )
            m_dwDrawTextStateBlock->Release();
    }

    m_dwSavedStateBlock    = 0L;
    m_dwDrawTextStateBlock = 0L;

    return S_OK;
}




//-----------------------------------------------------------------------------
// Name: DeleteDeviceObjects()
// Desc: Destroys all device-dependent objects
//-----------------------------------------------------------------------------
HRESULT CD3DFont::DeleteDeviceObjects()
{
    m_pTexture->Release();
    m_pd3dDevice = NULL;

    return S_OK;
}




//-----------------------------------------------------------------------------
// Name: GetTextExtent()
// Desc: Get the dimensions of a text string
//-----------------------------------------------------------------------------
HRESULT CD3DFont::GetTextExtent( TCHAR* strText, SIZE* pSize )
{
    if( NULL==strText || NULL==pSize )
        return E_FAIL;

    FLOAT fRowWidth  = 0.0f;
    FLOAT fRowHeight = (m_fTexCoords[0][3]-m_fTexCoords[0][1])*m_dwTexHeight;
    FLOAT fWidth     = 0.0f;
    FLOAT fHeight    = fRowHeight;

    while( *strText )
    {
        TCHAR c = *strText++;

        if( c == _T('\n') )
        {
            fRowWidth = 0.0f;
            fHeight  += fRowHeight;
        }
	if( (c-32) < 0 || (c-32) >= 158-32 )
            continue;

        FLOAT tx1 = m_fTexCoords[c-32][0];
        FLOAT tx2 = m_fTexCoords[c-32][2];

        fRowWidth += (tx2-tx1)*m_dwTexWidth - 2*m_dwSpacing;

        if( fRowWidth > fWidth )
            fWidth = fRowWidth;
    }

    pSize->cx = (int)fWidth;
    pSize->cy = (int)fHeight;

    return S_OK;
}


//-----------------------------------------------------------------------------
// Name: DrawText()
// Desc: Draws 2D text
//-----------------------------------------------------------------------------
HRESULT CD3DFont::DrawText( FLOAT sx, FLOAT sy, DWORD dwColor,
                            TCHAR* strText, DWORD dwFlags )
{
    if( m_pd3dDevice == NULL )
        return E_FAIL;

    // Setup renderstate
    m_dwSavedStateBlock->Capture();
    m_dwDrawTextStateBlock->Apply();
    m_pd3dDevice->SetFVF( D3DFVF_FONT2DVERTEX );
    m_pd3dDevice->SetPixelShader( NULL );
  
    m_pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(FONT2DVERTEX) );

    // Set filter states
    if( dwFlags & D3DFONT_FILTERED )
    {
        m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
        m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
    }
	// Hans211:  small adaption for right an centered alignment
	
	if( dwFlags & DT_RIGHT )
	{ 
	SIZE sz;
	GetTextExtent( strText, &sz ); sx -= (FLOAT)sz.cx;
	}

	if( dwFlags & DT_CENTER )
	{ 
	SIZE sz; 
	GetTextExtent( strText, &sz ); sx -= (FLOAT)(sz.cx / 2.0); 
	} 


    // Adjust for character spacing
    sx -= m_dwSpacing;
    FLOAT fStartX = sx;

    // Fill vertex buffer
    FONT2DVERTEX* pVertices = NULL;
    DWORD         dwNumTriangles = 0;
    m_pVB->Lock( 0, 0, (VOID**)&pVertices, D3DLOCK_DISCARD );

    while( *strText )
    {
        TCHAR c = *strText++;

        if( c == _T('\n') )
        {
            sx = fStartX;
            sy += (m_fTexCoords[0][3]-m_fTexCoords[0][1])*m_dwTexHeight;
        }
        if( (c-32) < 0 || (c-32) >= 158-32 )
            continue;

        FLOAT tx1 = m_fTexCoords[c-32][0];
        FLOAT ty1 = m_fTexCoords[c-32][1];
        FLOAT tx2 = m_fTexCoords[c-32][2];
        FLOAT ty2 = m_fTexCoords[c-32][3];

        FLOAT w = (tx2-tx1) *  m_dwTexWidth / m_fTextScale;
        FLOAT h = (ty2-ty1) * m_dwTexHeight / m_fTextScale;

        if( c != _T(' ') )
        {
			// Hans211: Add shadowing
			if( dwFlags & DT_SHADOW ) {
				float sxa,sya;
				sxa = sx;
				sya = sy;
				sxa=sx+1.0f;
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx1, ty2 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx2, ty1 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
		        *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );

				sxa=sx-1.0f;
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx1, ty2 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx2, ty1 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );

				sya=sy-1.0f;
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx1, ty2 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx2, ty1 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );

				sya=sy+1.0f;
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx1, ty2 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx2, ty1 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
	            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );
	            dwNumTriangles += 8;
			}
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sy+h-0.5f,0.9f,1.0f), dwColor, tx1, ty2 );
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sy+0-0.5f,0.9f,1.0f), dwColor, tx1, ty1 );
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sy+h-0.5f,0.9f,1.0f), dwColor, tx2, ty2 );
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sy+0-0.5f,0.9f,1.0f), dwColor, tx2, ty1 );
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sy+h-0.5f,0.9f,1.0f), dwColor, tx2, ty2 );
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sy+0-0.5f,0.9f,1.0f), dwColor, tx1, ty1 );
            dwNumTriangles += 2;

			// Hans211: adapt calculation so it works with shadowing also
            if( dwNumTriangles*3 > (MAX_NUM_VERTICES-(dwNumTriangles*3)) )
            {
                // Unlock, render, and relock the vertex buffer
                m_pVB->Unlock();
                m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, dwNumTriangles );
                pVertices = NULL;
                m_pVB->Lock( 0, 0, (VOID**)&pVertices, D3DLOCK_DISCARD );
                dwNumTriangles = 0L;
            }
        }
        sx += w - (2 * m_dwSpacing);
    }

    // Unlock and render the vertex buffer
    m_pVB->Unlock();
    if( dwNumTriangles > 0 )
        m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, dwNumTriangles );

    // Restore the modified renderstates
    m_dwSavedStateBlock->Apply();

    return S_OK;
}

#QmoMenu.cpp
Code:
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------
// flavor from the Base cheat ... need to Edit ok, and the creation of your abilities
//( Clue : discard the unnecessary )
//-----------------------------------------------------------------------------


#include "stdafx.h"
#include "QmoMenu.h"
#include "QmoSound.h"
#include "QmoBase.h"
#include "Sounds.h"
#include "pragma.h"
//-----------------------------------------------------------------------------
// Name: PostReset()
// Desc: Creates Fonts and other Resources for Menu
//-----------------------------------------------------------------------------

void cMenu::PostReset(LPDIRECT3DDEVICE9 pDevice)
{
	font = new CD3DFont("Impac", 6, D3DFONT_BOLD);
	font->InitDeviceObjects(pDevice);
	font->RestoreDeviceObjects();
	
}
//-----------------------------------------------------------------------------
// Name: PreReset()
// Desc: Releases Fonts / objects for menu
//-----------------------------------------------------------------------------

void cMenu::PreReset(void)
{
	font->InvalidateDeviceObjects();
	font->DeleteDeviceObjects();
	delete font;
	font = NULL;
}

//-----------------------------------------------------------------------------
// Name: Init()
// Desc: Load Menu Defaults / Prepare Menu For Usage
//-----------------------------------------------------------------------------

void cMenu::Init()
{
	if (opt.options.reset)INIT=false;
	if(!INIT){
		opt.options.move=0;		// BUG FIX FOR RESET DISABLE MOVE BEFORE SETTING COORDINATES
		X=Y=100;			    // TOP LEFT START
		WIDTH=200;			    // MENU WIDTH
		I_OFS=4;			    // OFSET FOR ITEM
		S_OFS=WIDTH-2;			// OFSET FOR STATE
		T_SPC=20;				// Space from Title and Start of Items
		F_SPC=20;				// Footer Spacing Hook Menu
		I_SPC=17;				// Item Spacing
		I_CUR=0;				// Set current Item
		ABOR=0;					// ANIMATION MOVE
		BDIR=0;					// ANIMATION HIGHLIGHT
		SHOW=true;				// false=hide  true=show
		INIT=true;				// STOP INITATION
	}
}

//-----------------------------------------------------------------------------
// Name: FPS()
// Desc: Keeps Track of Current Frames Persecond Make sure if its already called to specify a 1 as parameter
//-----------------------------------------------------------------------------

char* cMenu::FPS(int en)
{
	static int	 FPScounter = 0;
	static float FPSfLastTickCount = 0.0f;
	static float FPSfCurrentTickCount;
	static char  cfps[6] = "";

	if(!en)
	{
		FPSfCurrentTickCount = clock() * 0.001f;
		FPScounter++;

		if((FPSfCurrentTickCount - FPSfLastTickCount) > 1.0f)
		{
			FPSfLastTickCount = FPSfCurrentTickCount;
			sprintf(cfps," %d",FPScounter);
			FPScounter = 0;
		}
	}

	return cfps;

}

//-----------------------------------------------------------------------------
// Name: TIME()
// Desc: Outputs Current Time in USA Format
//-----------------------------------------------------------------------------

char* cMenu::TIME(void)
{
	static char ctime[20] = "" ;
	struct tm * current_tm;
	time_t current_time;
	time (&current_time);
	current_tm = localtime (&current_time);
	if(current_tm->tm_hour>12)
		sprintf( ctime, "%d:%02d:%02d PM", current_tm->tm_hour - 12, current_tm->tm_min, current_tm->tm_sec );
	else
		sprintf( ctime, "%d:%02d:%02d AM", current_tm->tm_hour, current_tm->tm_min, current_tm->tm_sec );
	return ctime;
}

//-----------------------------------------------------------------------------
// Name: DATE()
// Desc: Outputs Current Date in USA Format
//-----------------------------------------------------------------------------

char* cMenu::DATE(void)
{
	static char cdate[20] = "" ;
	struct tm * current_tm;
	time_t current_time;
	time (&current_time);
	current_tm = localtime (&current_time);
	sprintf( cdate, "%d-%02d-%d",current_tm->tm_mon+1,current_tm->tm_mday,current_tm->tm_year-100+2000);
	return cdate;
}
//-----------------------------------------------------------------------------
// Name: oprintf()
// Desc: equiv to sprintf but for output into of dest
//-----------------------------------------------------------------------------

char* cMenu::oprintf (const char *fmt, ...)
{
	static char buffer[225] = "";
	va_list va_alist;
	va_start (va_alist, fmt);
	_vsnprintf (buffer,sizeof(buffer), fmt, va_alist);
	va_end (va_alist);
	return buffer;
}
//-----------------------------------------------------------------------------
// Name: Save()
// Desc: Saves Menu Item states for later Restoration
//-----------------------------------------------------------------------------

void cMenu::Save(char* szSection, char* szKey, int iValue,LPCSTR file)
{
	char szValue[255];
	sprintf(szValue, "%d", iValue);
	WritePrivateProfileString(szSection,  szKey, szValue, file); 
}

//-----------------------------------------------------------------------------
// Name: Load()
// Desc: Loads Menu Item States From Previously Saved File
//-----------------------------------------------------------------------------

int cMenu::Load(char* szSection, char* szKey, int iDefaultValue,LPCSTR file)
{
	int iResult = GetPrivateProfileInt(szSection,  szKey, iDefaultValue, file); 
	return iResult;
}

//-----------------------------------------------------------------------------
// Name: additem()
// Desc: BaseFunction for aitem,acat,and atext
//-----------------------------------------------------------------------------

void cMenu::additem(char *title, char *states,int type, int *var, int show, int when)
{
	if(show==when)
	{
		strcpy(items[NO].title,title);
		getfield(states,items[NO].state,*var+1);
		items[NO].type=type;
		items[NO].max=nofields(states);
		items[NO].val=var;

		NO++;
	}
	if(type!=T_TEXT)
	{
		if (opt.options.load)
			*var = Load("Items", title, *var,Base.GetFile("mset.ini"));
		if (opt.options.save)
			Save("Items", title, *var,Base.GetFile("mset.ini"));
		if (opt.options.reset)
			*var=0;
	}
}

//-----------------------------------------------------------------------------
// Name: acat()
// Desc: Adds Folder/Category to Item index
//-----------------------------------------------------------------------------

void cMenu::acat(char *title, char *states,int *var)
{
	additem(title,states,T_CAT,var,0,0);
}
//-----------------------------------------------------------------------------
// Name: aitem()
// Desc: Adds regular item to Item index
//-----------------------------------------------------------------------------

void cMenu::aitem(char *title, char *states,int *var,int show,int when)
{
	additem(title,states,T_ITEM,var,show,when);
}
//-----------------------------------------------------------------------------
// Name: atext()
// Desc: Adds Text item to item index
//-----------------------------------------------------------------------------

void cMenu::atext(char *title, char *states,int show,int when)
{
	additem(title,states,T_TEXT,&opt.text,show,when);
}

void cMenu::atext(char *title, char *states)
{
	additem(title,states,T_TEXT,&opt.text,1,1);
}

//-----------------------------------------------------------------------------
// Name: nofields()
// Desc: Calculates Number of Fields in a String based on deliminator
//-----------------------------------------------------------------------------

int cMenu::nofields(char *str)
{
	char *ptr;
	int  no;
	for(no=1; (ptr=strchr(str,(char)'|'))!=NULL; no++)str=ptr+1;
	
	return no;
}

//-----------------------------------------------------------------------------
// Name: getfield()
// Desc: Grabs Field in string based on deliminator
//-----------------------------------------------------------------------------

void cMenu::getfield(char *str,char *dst,int no)
{
	char *ptr;
	int  i;
	for(i=1; (ptr=strchr(str,(char)'|'))!=NULL ; i++) 
	{
		if(i==no) break;
		str=ptr+1;
	}
	if(ptr)
	{
		i=(int)(ptr-str);
		strncpy(dst,str,i);
		dst[i]=0;
	}
	else
		strcpy(dst,str);
}

//-----------------------------------------------------------------------------
// Name: DrawBox()
// Desc: Fills Rectangle using DrawPrimitive Up
//-----------------------------------------------------------------------------

void cMenu::DrawBox( int x, int y, int w, int h, D3DCOLOR Color,LPDIRECT3DDEVICE9 pDevice)
{
struct Vertex 
{
	float x,y,z,ht;
    DWORD Color;
}V[4] = {
			{x,y+h, 0.0f, 0.0f, Color},
			{x,y, 0.0f, 0.0f, Color},
			{x+w,y+h, 0.0f, 0.0f, Color},
			{x+w,y, 0.0f, 0.0f, Color}
		};
pDevice->SetTexture(0, NULL);
pDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1); 
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
pDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,2,V,sizeof(Vertex));
return;
}


//-----------------------------------------------------------------------------
// Name: DrawBorder()
// Desc: Fills outside of Rectangle using 4 calls to DrawBox
//-----------------------------------------------------------------------------

void cMenu::DrawBorder( int x, int y, int w, int h, D3DCOLOR Color,LPDIRECT3DDEVICE9 pDevice)
{
	DrawBox(x,  y, 1,  h,Color,pDevice);
	DrawBox(x,y+h, w,  1,Color,pDevice);
	DrawBox(x,  y, w,  1,Color,pDevice);
	DrawBox(x+w,y, 1,h+1,Color,pDevice);
	return;
}
//-----------------------------------------------------------------------------
// Name: ShowMenu()
// Desc: Core Menu Function Displays Menu Calls Other Menu functions and navigation
//-----------------------------------------------------------------------------

void cMenu::ShowMenu(LPDIRECT3DDEVICE9 pDevice)
{

	//-----------------------------------------------------------------------------
	// Desc: Check Hotkeys
	//-----------------------------------------------------------------------------
	int	lm		=	GetAsyncKeyState(VK_LBUTTON)&1;
	int	rm		=	GetAsyncKeyState(VK_RBUTTON)&1;
	int	left	=	GetAsyncKeyState(VK_LEFT )&1;
	int	right	=	GetAsyncKeyState(VK_RIGHT)&1;
	int	up		=	GetAsyncKeyState(VK_UP   )&1;
	int	down	=	GetAsyncKeyState(VK_DOWN )&1;
	//-----------------------------------------------------------------------------
	// Desc: Prepare/Reset Menu
	//-----------------------------------------------------------------------------

	Init();

	//-----------------------------------------------------------------------------
	// Desc: Show The Menu
	//-----------------------------------------------------------------------------
	if(GetAsyncKeyState(VK_INSERT)&1) SHOW=(!SHOW);
	if(SHOW){

		//-----------------------------------------------------------------------------
		// Desc: Get Mouse Coordinates and translate
		//-----------------------------------------------------------------------------

		GetCursorPos(&mpos);// Update Mouse Coordinates
		ScreenToClient(GetForegroundWindow(),&mpos); // Translate to Current Window

		//-----------------------------------------------------------------------------
		// Desc: Move Menu
		//-----------------------------------------------------------------------------

		//if(mpos.x>X && mpos.x<X+WIDTH && mpos.y>Y && mpos.y<Y+T_SPC && GetAsyncKeyState(VK_LBUTTON)&1 && !opt.options.move)  // If Header Clicked on
		//{
		//	M_DRAG=1;
		//}
		//else
		//{
		//	mofs.x=mpos.x - X;
		//	mofs.y=mpos.y - Y;
		//}

		//if(M_DRAG)
		//{
		//	if(GetAsyncKeyState(VK_LBUTTON)&1)M_DRAG=0;
		//	X = mpos.x - mofs.x;
		//	Y = mpos.y - mofs.y;
		//}

		if(opt.options.move && GetAsyncKeyState(VK_LCONTROL))	// If Options for Left Control is Set
		{
			X =(((X<=mpos.x+4) && (X>=mpos.x)) || ((X>=mpos.x-4) && (X<=mpos.x)))?(X=mpos.x):(X+=((mpos.x-X)/4));
			Y =(((Y<=mpos.y+4) && (Y>=mpos.y)) || ((Y>=mpos.y-4) && (Y<=mpos.y)))?(Y=mpos.y):(Y+=((mpos.y-Y)/4));
		}

		//-----------------------------------------------------------------------------
		// Desc: Draw Menu Header
		//-----------------------------------------------------------------------------

		DrawBox(X,Y,WIDTH,T_SPC,C_BOX,pDevice);      // Render Menu Header Backround
		DrawBorder(X,Y,WIDTH,T_SPC,C_BORDER,pDevice);// set-up border



    	font->DrawText(MC_FCTR(X,MC_MAXX),Y+10,C_TITLE,"Qmo MPGH Class",DT_CENTER|DT_SHADOW);
         
		//-----------------------------------------------------------------------------
		// Desc: Fill Item Array and Render Menu Border and Box
		//-----------------------------------------------------------------------------


		NO=0;
		acat("[CHEAT PB]","[OPEN]|[CLOSE]",&opt.d3d.main);
			aitem("CHAMS CT","OFF|ON",&opt.d3d.ChamsCT,opt.d3d.main,1);
			aitem("CHAMS TERO","OFF|ON",&opt.d3d.ChamsTERO,opt.d3d.main,1);
			aitem("WH Glass","OFF|ON",&opt.d3d.WHGlass,opt.d3d.main,1);
			

		acat("[OPTIONS]","[OPEN]|[CLOSE]",&opt.options.main);
			aitem("Move Menu","NO|L-CTRL",&opt.options.move,opt.options.main,1);
			/*aitem("Save Menu","Off|Saving",&opt.options.save,opt.options.main,1);
			aitem("Load Menu","Off|Loading",&opt.options.load,opt.options.main,1);*/
			aitem("Reset Menu","Off|Resetting",&opt.options.reset,opt.options.main,1);

		acat("|INFO|","[OPEN]|[CLOSE]",&opt.info.main);
			atext("By:","Qmo",opt.info.main,1);	
			atext("Version","D3D Menu 2011",opt.info.main,1);
			atext("FPS",FPS(0),opt.info.main,1);
			atext("Time",TIME(),opt.info.main,1);
			atext("Date",DATE(),opt.info.main,1);
	

		opt.options.save=0;
		opt.options.load=0;

		DrawBox(X,MC_MSY,WIDTH,(NO*I_SPC),C_BOX,pDevice);// Render Menu Backround for items
		DrawBorder(X,MC_MSY,WIDTH,(NO*I_SPC),C_BORDER,pDevice);// set-up border

		//-----------------------------------------------------------------------------
		// Desc: Loop Threw Item Index and Render Items
		//-----------------------------------------------------------------------------
		for(int no=0; no<NO; no++)
		{	
			D3DCOLOR text;

			text=(*(items[no].val)>0)?C_ON:C_OFF;	// Is ON OR OFF

			if(items[no].type==T_CAT)
				text=C_CAT;	// Category

			if(I_CUR==no)
			{

			
				if(BDIR==0)
					(BTEX<0xFF/4)?BTEX+=1:BDIR=1;
				if(BDIR==1)
						(BTEX>0x00)?BTEX-=1:BDIR=0;

				if(ABOR>I_SPC*I_CUR)
					ABOR=I_SPC*I_CUR;
				else if (ABOR<(-I_SPC*I_CUR))
					ABOR=(-I_SPC*I_CUR);

				if(ABOR<0)
					ABOR++;
				else if(ABOR>0)
					ABOR--;

				text=0xFF000000+(0x10000*(BTEX*4))+(0x100*(BTEX*4))+0x1*(BTEX*4);

				DrawBorder(X,MC_ITEMY(no)-ABOR,WIDTH,I_SPC,C_CUR,pDevice);
			}

			if(mpos.x>X && mpos.x<MC_MAXX && mpos.y>MC_ITEMY(no) && mpos.y<MC_ITEMY(no)+I_SPC)
			{
				text=0xFF000000+(0x10000*(BTEX*4))+(0x100*(BTEX*4))+0x1*(BTEX*4);
				DrawBorder(X,MC_ITEMY(no),WIDTH,I_SPC,C_CUR,pDevice);
			}

			font->DrawText(X+I_OFS,MC_ITEMY(no)+2,text,items[no].title,DT_SHADOW);
			font->DrawText(X+S_OFS,MC_ITEMY(no)+2,text,items[no].state,DT_RIGHT|DT_SHADOW);
			
		}

		//-----------------------------------------------------------------------------
		// Desc: Draw Menu Footer
		//-----------------------------------------------------------------------------

		DrawBox(X,MC_ITEMY(NO)+(F_SPC/2),WIDTH,(F_SPC),C_BOX,pDevice);// Draw Footer Filled
		DrawBorder(X,MC_ITEMY(NO)+(F_SPC/2),WIDTH,(F_SPC),C_BORDER,pDevice);// Footer Border
        
		font->DrawText(MC_FCTR(X,MC_MAXX),MC_ITEMY(NO)+(F_SPC/2)+2,RED,"MPGH.net",DT_CENTER|DT_SHADOW);

		//-----------------------------------------------------------------------------
		// Desc: Keyboard Navigation
		//-----------------------------------------------------------------------------

		if(left && (*items[I_CUR].val)>0)
		{
			(*items[I_CUR].val)-=1;

				Sound.wav.playsoundmem((LPCSTR)SWITCH);
		}

		if(right && (*items[I_CUR].val)<(items[I_CUR].max-1))
		{
			(*items[I_CUR].val)+=1;
			Sound.wav.playsoundmem((LPCSTR)SWITCH);
		}

		if(up)
		{
			do {
				I_CUR=(I_CUR==0)?(NO-1):(I_CUR-1);
				if(ABOR>(-(I_SPC)))ABOR-=I_SPC;
			} while (items[I_CUR].type==T_TEXT);
			Sound.wav.playsoundmem((LPCSTR)MOVE);
			
		}

		if(down || items[I_CUR].type==T_TEXT)
		{
			do
			{
				I_CUR=(I_CUR+1)%NO;
				if(ABOR<(I_SPC))ABOR+=I_SPC;
			} while (items[I_CUR].type==T_TEXT);
			Sound.wav.playsoundmem((LPCSTR)MOVE);
		}
		//-----------------------------------------------------------------------------
		// Desc: Menu Saftey / Sanity Checks and ReEncryption
		//-----------------------------------------------------------------------------
		if(I_CUR>NO)I_CUR=NO-1; // Prevent Selection From Hiding be hind hidden item
		
		//-----------------------------------------------------------------------------
	}
}
Part 3


2a. Make a new C++ file (.cpp) and give a new name ( It's up to you ) or that I recommend, then copy/paste all this code :


#QmoSound.cpp
Code:
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------


#include "QmoSound.h"

#pragma comment(lib, "WinMM.Lib")

void cSound::swav::playsound(LPCSTR sound)
{
	sndPlaySound(sound,SND_ASYNC);
}
void cSound::swav::playsoundmem(LPCSTR sound)
{
	sndPlaySound(sound,SND_ASYNC|SND_MEMORY);
}


Finally Completed, Although tired but it does't matter
I hope this is useful for all members
keep spirit and Keep learning if you want to be a hack maker
If things go wrong and Sorry if my english is not good

If you have questions ? you can ask me or VM/PM me and good luck



D3D9 MENU HACK Class Part 2 by Qmo
GREETINGS MPGH LOVERS
THANKS.
AAAAAAAAAAAAAAAAAWWWWWWWWWWWWWWWWWWWWWWWWWWWWEEEEE EEEEEEEEESSSSSSSSSSSSSSSSSSSSSSSOOOOOOOOOOOOOOOOOO OOOOOOOOMMMMMMMMMMMMMMMMMMMMMMEEEEEEEEEEEEEEEEEEEE EEEEEEEEEE
Stickied. GJ.
Thanks dude, It really help guys like me
I fell good for just see your code, I started messing around
And added some hacks really cool dude, thanks again!
This menu is fking awesome.
I like the sound *-*
Nice Job bro
DIP Hook
Nice work .... But still i got more to learn .
Very Good Job, Keep up your good work

Also, you should get the latest version of DirectX SDK Microsoft DirectX SDK (June 2010).
Good Job THIS is the best of you !
how to make transparent menu background?
AWEWESOME qmo
Go learn, tenkyu
Leeched. Closed and Unstickied.
Posts 1–15 of 26 · Page 1 of 2
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?