]> git.sesse.net Git - freerainbowtables/blobdiff - Client Applications/rcracki_mt/lm2ntlm.cpp
UINT4 -> uint32
[freerainbowtables] / Client Applications / rcracki_mt / lm2ntlm.cpp
index 1b80e9cbd4c540c047c699a4a7d284e7bcb07009..c3d385804e0168bb50a6596a696777dd3b870542 100644 (file)
-/*
-* Copyright (C) DaniĆ«l Niggebrugge <niggebrugge@fox-it.com>
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, [...] etc :p
-*/
-
-#ifdef _WIN32
-       #pragma warning(disable : 4786 4267 4018)
-#endif
-
-#include "lm2ntlm.h"
-
-LM2NTLMcorrector::LM2NTLMcorrector()
-{
-       progressCurrentCombination = 0;
-       totalCurrentCombination = 1;
-       counterOverall = 0;
-       countCombinations = 0;
-       countTotalCombinations = 0;
-       counter = 0;
-       fillMapW();
-       aborting = false;
-       sBinary = "";
-
-}
-
-string LM2NTLMcorrector::getBinary()
-{
-       return sBinary;
-}
-
-bool LM2NTLMcorrector::LMPasswordCorrectUnicode(string hexPassword, unsigned char* pNTLMHash, string& sNTLMPassword) //, unsigned char* pLMPassword
-{
-       string sPlain = "";
-
-       int i;
-       for (i = 0; i < hexPassword.size() / 2; i++)
-       {
-               string sSub = hexPassword.substr(i * 2, 2);
-               int nValue;
-               sscanf(sSub.c_str(), "%02x", &nValue);
-               sPlain += (unsigned char)nValue;
-       }
-
-       memcpy(NTLMHash, pNTLMHash, 16);
-
-
-       int tmpLength = sPlain.size() * 2;
-       unsigned char* pLMPassword = new unsigned char[tmpLength];
-
-       //printf("Searching for unicode password.\n");
-       printf("Failed case correction, trying unicode correction for: %s\n", sPlain.c_str());
-       //printf("NTLM hash:          %s\n\n", sNTLMHash.c_str());
-       
-       setvbuf(stdout, NULL, _IONBF,0);
-
-       startClock = clock();
-       previousClock = clock();
-
-#ifndef _WIN32
-       tty_init();
-#endif
-
-       if (startCorrecting(sPlain, NTLMHash, sNTLMPassword, pLMPassword))
-       {
-               sBinary = ByteToStr(pLMPassword, tmpLength).c_str();
-               //printf("\nFound unicode password: %s\n", sNTLMPassword.c_str());
-               //printf("Password in hex: %s\n", sBinary.c_str());
-               writeEndStats();
-#ifndef _WIN32
-               tty_done();
-#endif
-               return true;
-       }
-       else
-       {
-               //printf("\ncase correction for password %s fail!\n", sPlain.c_str());
-               writeEndStats();
-#ifndef _WIN32
-               tty_done();
-#endif
-               return false;
-       }
-}
-
-bool LM2NTLMcorrector::startCorrecting(string sLMPassword, unsigned char* pNTLMHash, string& sNTLMPassword, unsigned char* pLMPassword)
-{
-       if (sLMPassword.size() == 0)
-       {
-               sNTLMPassword = "";
-               return true;
-       }
-
-       string muteMe = sLMPassword;
-       int length = muteMe.size();
-
-       unsigned char* pMuteMe = new unsigned char[length];
-       unsigned char* pTempMute = new unsigned char[length * 2];
-
-       int i;
-       for (i = 0; i < length; i++)
-       {
-               pMuteMe[i] = muteMe[i];
-               pTempMute[i * 2    ] = muteMe[i];
-               pTempMute[i * 2 + 1] = 0x00;
-               unsigned char muteChar = pMuteMe[i];
-               int sizeMapForChar = m_mapChar[muteChar].size();
-               int j;
-               for (j = 0; j < sizeMapForChar; j++)
-               {
-                       currentCharmap[i][j] = m_mapChar[muteChar][j];
-               }
-       }
-       
-       int* jAtPos = new int[length];
-       int* sizeAtPos = new int[length];
-       bool* fullAtPos = new bool[length];
-
-       int setSize;
-       for (setSize = 0; setSize <= length; setSize++)
-       {
-               int cntFull = 0;
-
-               // clear all 'fullatpos' before new setSize
-               int i;
-               for (i=0; i < length; i++)
-               {
-                       fullAtPos[i] = false;
-               }
-
-               //printf("Trying full unicode map for %d/%d characters...\t\t\n", setSize, length);
-               printf("Trying full unicode map for %d/%d characters...%-20s\n", setSize, length, "");
-
-               bool notFirst = true;
-
-               // start at end and set 'full' combination
-               countCombinations = 0;
-               countTotalCombinations = calculateTotalCombinations(length, setSize);
-
-               int sPos = length - 1;
-               while (sPos >= 0 && notFirst) // finding combinations for current 'setSize'
-               {
-                       if (aborting)
-                               return false;
-
-                       if (cntFull < setSize)
-                       {
-                               if (fullAtPos[sPos] == false)
-                               {
-                                       fullAtPos[sPos] = true;
-                                       cntFull++;
-                               }
-                               sPos--;
-                       }
-                       else
-                       {
-                               if (fullAtPos[sPos] == false && setSize > 0)
-                               {
-                                       fullAtPos[sPos] = true;
-                                       cntFull++;
-                                       
-                                       // reset positions after sPos
-                                       int k;
-                                       for (k = sPos+1; k < length; k++)
-                                       {
-                                               if (fullAtPos[k] == true)
-                                               {
-                                                       fullAtPos[k] = false;
-                                                       cntFull--;
-                                               }
-                                       }
-                                       // start at end again
-                                       sPos = length - 1;
-                               }
-                               else
-                               {
-                                       sPos--;
-                               }
-                       }
-                       // we have a combination
-                       if (cntFull == setSize)
-                       {
-                               countCombinations++;
-
-                               setupCombinationAtPositions(length, pMuteMe, pTempMute, jAtPos, fullAtPos, sizeAtPos);
-
-                               if (checkPermutations(length, pMuteMe, pTempMute, jAtPos, sizeAtPos, pLMPassword, sNTLMPassword))
-                               {
-                                       return true;
-                               }
-                       }
-
-                       if (setSize == 0)
-                               notFirst = false;
-               }
-       }
-       return false;
-}
-
-// set up combination at positions
-void LM2NTLMcorrector::setupCombinationAtPositions(int length, unsigned char* pMuteMe, unsigned char* pTempMute, int* jAtPos, bool* fullAtPos, int* sizeAtPos)
-{
-       progressCurrentCombination = 0;
-       totalCurrentCombination = 1;
-
-       int i;
-       for (i=0; i < length; i++)
-       {
-               pTempMute[i*2] = currentCharmap[i][0];
-               pTempMute[i*2+1] = currentCharmap[i][1]; // reset to first char in map
-       
-               jAtPos[i] = 0; // reset charcounter for this char (that is all chars)
-
-               // based on combination, set full map or only upper/lowercase
-               if (fullAtPos[i] == true)
-               {
-                       unsigned char muteChar = pMuteMe[i];
-                       int sizeMapForChar = m_mapChar[muteChar].size()/2; // 2 bytes per char
-                       sizeAtPos[i] = sizeMapForChar;
-               }
-               else
-               {
-                       sizeAtPos[i] = 2;
-               }
-
-               totalCurrentCombination *= sizeAtPos[i];
-       }
-       //printf("Trying %I64u passwords for current combination\t\t\r", totalCurrentCombination);
-}
-
-// go check all permutations for this combination
-bool LM2NTLMcorrector::checkPermutations(int length, unsigned char* pMuteMe, unsigned char* pTempMute, int* jAtPos, int* sizeAtPos, unsigned char* pLMPassword, string& sNTLMPassword)
-{
-       int pos = length - 1;
-
-       while (pos >= 0)
-       {
-               counter++;
-
-               pos = length - 1;
-
-               int jAtCurPos = jAtPos[pos];
-               int sizeMapForCharPos = sizeAtPos[pos];
-               // move to start of string and find character with permutations left
-               while (jAtCurPos >= sizeMapForCharPos-1 && pos >= -1)
-               {
-                       pos--;
-                       if (pos >= 0 )
-                       {
-                               jAtCurPos = jAtPos[pos];
-                               sizeMapForCharPos = sizeAtPos[pos];
-                       }
-               }
-               if (pos < 0)
-                       continue;
-
-               // next permutation for character
-               jAtCurPos++;
-               jAtPos[pos] = jAtCurPos;
-               
-               pTempMute[pos*2] = currentCharmap[pos][jAtCurPos*2];
-               pTempMute[pos*2+1] = currentCharmap[pos][jAtCurPos*2+1];
-               
-               // reset positions after pos
-               int k;
-               for (k = pos+1; k < length; k++)
-               {
-                       jAtPos[k] = 0;
-                       pTempMute[k*2] = currentCharmap[k][0]; // reset to first char in map
-                       pTempMute[k*2+1] = currentCharmap[k][1];
-               }
-
-               if (checkNTLMPassword(pTempMute, length, sNTLMPassword) == true)
-               {
-                       int i;
-                       for (i = 0; i < length*2; i++)
-                               pLMPassword[i] = pTempMute[i];
-                       return true;
-               }
-
-               if (counter > 10000) // don't check clocks too often
-               {
-                       clock_t currentClock = clock();
-                       float fTime = 1.0f * (currentClock - previousClock);
-                       if (fTime > 1.0f * CLOCKS_PER_SEC)
-                       {
-                               float progressPercentageCurrentCombination = progressCurrentCombination * 100.0f / totalCurrentCombination;
-                               float fTime = 1.0f * (currentClock - startClock) / CLOCKS_PER_SEC;
-                               float currentSpeed = (counterOverall + progressCurrentCombination) / fTime / 1000000;
-
-                               //printf("%.2f%% of combination %d/%d (%.2f Mhashes/s)\t\t\t\t\r", progressPercentageCurrentCombination, countCombinations, countTotalCombinations, currentSpeed);
-                               printf("%.2f%% of combination %d/%d (%.2f Mhashes/s)%-30s\r", progressPercentageCurrentCombination, countCombinations, countTotalCombinations, currentSpeed, "");
-
-                               previousClock = clock();
-                               #ifdef _WIN32
-                               if (_kbhit())
-                               {
-                                       int ch = _getch();
-                                       ch = toupper(ch);
-                                       if (ch == 'S')
-                                       {
-                                               aborting = true;
-                                               printf( "\nAborting unicode correction for this hash...\n");
-                                       }
-                                       else
-                                       {
-                                               printf( "\nPress 'S' to skip unicode correction for this hash...\n");
-                                       }
-                               }
-                               #else
-                               int c = tty_getchar();
-                               if (c >= 0) {
-                                       tty_flush();
-                                       if (c==115) { // = s
-                                               aborting = true;
-                                               printf( "\nAborting unicode correction for this hash...\n");
-                                       }
-                                       else {
-                                               printf( "\nPress 's' to skip unicode correction for this hash...\n");
-                                       }
-                               }
-                               #endif
-                               if (aborting)
-                                       return false;
-                       }
-                       counter = 0;
-               }
-               
-               progressCurrentCombination++;
-               counterOverall++;
-       }
-       return false;
-}
-
-// check password, maybe integrate this function in checkPermutations() for performance reasons.
-bool LM2NTLMcorrector::checkNTLMPassword(unsigned char* pLMPassword, int nLMPasswordLen, string& sNTLMPassword)
-{
-       unsigned char md[16];
-
-       //MD4(pLMPassword, nLMPasswordLen * 2, md);
-       MD4_CTX ctx;
-       MD4_Init(&ctx);
-       MD4_Update(&ctx, pLMPassword, nLMPasswordLen * 2);
-       MD4_Final(md, &ctx);  
-
-       if (memcmp(md, NTLMHash, 16) == 0)
-       {
-               sNTLMPassword = "";
-               int i;
-               for (i = 0; i < nLMPasswordLen; i++) {
-                       sNTLMPassword += char(pLMPassword[i * 2]);
-               }
-               return true;
-       }
-       else
-               return false;
-}
-
-void LM2NTLMcorrector::checkAbort()
-{
-#ifdef _WIN32
-       if (_kbhit())
-       {
-               int ch = _getch();
-               ch = toupper(ch);
-               if (ch == 'S')
-               {
-                       aborting = true;
-                       printf( "\nAborting unicode correction for this hash...\n");
-               }
-               else
-               {
-                       printf( "\nPress 'S' to skip unicode correction for this hash...\n");
-               }
-       }
-#endif
-}
-
-void LM2NTLMcorrector::writeEndStats()
-{
-       clock_t endClock = clock();
-       if (endClock - startClock > 0)
-       {
-               float fTime = 1.0f * (endClock - startClock) / CLOCKS_PER_SEC;
-               float speedOverall = counterOverall / fTime / 1000000;
-               printf("\nTried %s passwords in %.2f s (%.2f Mhashes/s)\n", uint64tostr(counterOverall).c_str(), fTime, speedOverall);
-       }
-
-       printf("\n");
-}
-
-int LM2NTLMcorrector::calculateTotalCombinations(int length, int setSize)
-{
-       return factorial(length) / (factorial(setSize) * factorial(length-setSize));
-}
-
-
-int LM2NTLMcorrector::factorial (int num)
-{
-       int result = 1;
-       int i;
-       for (i = 1; i <= num; ++i)
-               result *= i;
-       return result;
-}
-
-// convert some bytes into a string
-string LM2NTLMcorrector::ByteToStr(const unsigned char* pData, int nLen)
-{
-       string sRet = "";
-       int i;
-       for (i = 0; i < nLen/2; i++)
-       {
-               char szByte[3];
-               sprintf(szByte, "%02x", pData[i*2+1]); // swap 2-byte characters again
-               sRet += szByte;
-               sprintf(szByte, "%02x", pData[i*2]);
-               sRet += szByte;
-       }
-
-       return sRet;
-}
-
-void LM2NTLMcorrector::addToMapW(unsigned char key, unsigned char value1, unsigned char value2)
-{
-       int cnt = m_mapChar[key].size();
-       m_mapChar[key][cnt] = value2;
-       m_mapChar[key][cnt+1] = value1; //reverse for endiannes
-}
-
-// construct the mappings, would be nicer in a separate (importable) file
-void LM2NTLMcorrector::fillMapW()
-{
-       addToMapW(0x01, 0x00, 0x01);
-       addToMapW(0x01, 0x26, 0x3A);
-       addToMapW(0x02, 0x00, 0x02);
-       addToMapW(0x02, 0x26, 0x3B);
-       addToMapW(0x03, 0x00, 0x03);
-       addToMapW(0x03, 0x26, 0x65);
-       addToMapW(0x04, 0x00, 0x04);
-       addToMapW(0x04, 0x26, 0x66);
-       addToMapW(0x05, 0x00, 0x05);
-       addToMapW(0x05, 0x26, 0x63);
-       addToMapW(0x06, 0x00, 0x06);
-       addToMapW(0x06, 0x26, 0x60);
-       addToMapW(0x07, 0x00, 0x07);
-       addToMapW(0x07, 0x00, 0xB7);
-       addToMapW(0x07, 0x20, 0x22);
-       addToMapW(0x07, 0x20, 0x24);
-       addToMapW(0x07, 0x20, 0x26);
-       addToMapW(0x07, 0x22, 0x19);
-       addToMapW(0x07, 0x22, 0xC5);
-       addToMapW(0x07, 0x30, 0xFB);
-       addToMapW(0x08, 0x00, 0x08);
-       addToMapW(0x08, 0x25, 0xD8);
-       addToMapW(0x09, 0x00, 0x09);
-       addToMapW(0x09, 0x20, 0xDD);
-       addToMapW(0x09, 0x25, 0xCB);
-       addToMapW(0x09, 0x30, 0x07);
-       addToMapW(0x0a, 0x00, 0x0A);
-       addToMapW(0x0a, 0x25, 0xD9);
-       addToMapW(0x0b, 0x00, 0x0B);
-       addToMapW(0x0b, 0x26, 0x42);
-       addToMapW(0x0c, 0x00, 0x0C);
-       addToMapW(0x0c, 0x26, 0x40);
-       addToMapW(0x0d, 0x00, 0x0D);
-       addToMapW(0x0d, 0x26, 0x6A);
-       addToMapW(0x0e, 0x00, 0x0E);
-       addToMapW(0x0e, 0x26, 0x6B);
-       addToMapW(0x0f, 0x00, 0x0F);
-       addToMapW(0x0f, 0x00, 0xA4);
-       addToMapW(0x0f, 0x26, 0x3C);
-       addToMapW(0x10, 0x00, 0x10);
-       addToMapW(0x10, 0x25, 0xBA);
-       addToMapW(0x11, 0x00, 0x11);
-       addToMapW(0x11, 0x25, 0xC4);
-       addToMapW(0x12, 0x00, 0x12);
-       addToMapW(0x12, 0x21, 0x95);
-       addToMapW(0x13, 0x00, 0x13);
-       addToMapW(0x13, 0x20, 0x3C);
-       addToMapW(0x14, 0x00, 0x14);
-       addToMapW(0x14, 0x00, 0xB6);
-       addToMapW(0x15, 0x00, 0x15);
-       addToMapW(0x15, 0x00, 0xA7);
-       addToMapW(0x16, 0x00, 0x16);
-       addToMapW(0x16, 0x02, 0xC9);
-       addToMapW(0x16, 0x25, 0xAC);
-       addToMapW(0x17, 0x00, 0x17);
-       addToMapW(0x17, 0x21, 0xA8);
-       addToMapW(0x18, 0x00, 0x18);
-       addToMapW(0x18, 0x21, 0x91);
-       addToMapW(0x19, 0x00, 0x19);
-       addToMapW(0x19, 0x21, 0x93);
-       addToMapW(0x1a, 0x00, 0x1A);
-       addToMapW(0x1a, 0x21, 0x92);
-       addToMapW(0x1b, 0x00, 0x1B);
-       addToMapW(0x1b, 0x21, 0x90);
-       addToMapW(0x1c, 0x00, 0x1C);
-       addToMapW(0x1c, 0x22, 0x1F);
-       addToMapW(0x1d, 0x00, 0x1D);
-       addToMapW(0x1d, 0x21, 0x94);
-       addToMapW(0x1e, 0x00, 0x1E);
-       addToMapW(0x1e, 0x25, 0xB2);
-       addToMapW(0x1f, 0x00, 0x1F);
-       addToMapW(0x1f, 0x25, 0xBC);
-       addToMapW(0x20, 0x00, 0x20);
-       addToMapW(0x20, 0x20, 0x00);
-       addToMapW(0x20, 0x20, 0x01);
-       addToMapW(0x20, 0x20, 0x02);
-       addToMapW(0x20, 0x20, 0x03);
-       addToMapW(0x20, 0x20, 0x04);
-       addToMapW(0x20, 0x20, 0x05);
-       addToMapW(0x20, 0x20, 0x06);
-       addToMapW(0x20, 0x30, 0x00);
-       addToMapW(0x21, 0x00, 0x21);
-       addToMapW(0x21, 0x00, 0xA1);
-       addToMapW(0x21, 0x01, 0xC3);
-       addToMapW(0x21, 0xFF, 0x01);
-       addToMapW(0x22, 0x00, 0x22);
-       addToMapW(0x22, 0x00, 0xA8);
-       addToMapW(0x22, 0x02, 0xBA);
-       addToMapW(0x22, 0x03, 0x08);
-       addToMapW(0x22, 0x03, 0x0E);
-       addToMapW(0x22, 0x20, 0x1C);
-       addToMapW(0x22, 0x20, 0x1D);
-       addToMapW(0x22, 0x20, 0x1E);
-       addToMapW(0x22, 0x20, 0x33);
-       addToMapW(0x22, 0x20, 0x35);
-       addToMapW(0x22, 0x27, 0x5D);
-       addToMapW(0x22, 0x27, 0x5E);
-       addToMapW(0x22, 0x30, 0x1D);
-       addToMapW(0x22, 0x30, 0x1E);
-       addToMapW(0x22, 0x30, 0x1F);
-       addToMapW(0x22, 0xFF, 0x02);
-       addToMapW(0x23, 0x00, 0x23);
-       addToMapW(0x23, 0xFF, 0x03);
-       addToMapW(0x24, 0x00, 0x24);
-       addToMapW(0x24, 0xFF, 0x04);
-       addToMapW(0x25, 0x00, 0x25);
-       addToMapW(0x25, 0x06, 0x6A);
-       addToMapW(0x25, 0x20, 0x30);
-       addToMapW(0x25, 0xFF, 0x05);
-       addToMapW(0x26, 0x00, 0x26);
-       addToMapW(0x26, 0xFF, 0x06);
-       addToMapW(0x27, 0x00, 0x27);
-       addToMapW(0x27, 0x00, 0xB4);
-       addToMapW(0x27, 0x02, 0xB9);
-       addToMapW(0x27, 0x02, 0xBB);
-       addToMapW(0x27, 0x02, 0xBC);
-       addToMapW(0x27, 0x02, 0xC8);
-       addToMapW(0x27, 0x02, 0xCA);
-       addToMapW(0x27, 0x02, 0xCB);
-       addToMapW(0x27, 0x03, 0x00);
-       addToMapW(0x27, 0x03, 0x01);
-       addToMapW(0x27, 0x20, 0x18);
-       addToMapW(0x27, 0x20, 0x19);
-       addToMapW(0x27, 0x20, 0x1A);
-       addToMapW(0x27, 0x20, 0x32);
-       addToMapW(0x27, 0x27, 0x5B);
-       addToMapW(0x27, 0x27, 0x5C);
-       addToMapW(0x27, 0xFF, 0x07);
-       addToMapW(0x28, 0x00, 0x28);
-       addToMapW(0x28, 0x23, 0x20);
-       addToMapW(0x28, 0xFF, 0x08);
-       addToMapW(0x29, 0x00, 0x29);
-       addToMapW(0x29, 0x23, 0x21);
-       addToMapW(0x29, 0xFF, 0x09);
-       addToMapW(0x2a, 0x00, 0x2A);
-       addToMapW(0x2a, 0x22, 0x17);
-       addToMapW(0x2a, 0xFF, 0x0A);
-       addToMapW(0x2b, 0x00, 0x2B);
-       addToMapW(0x2b, 0x00, 0xB1);
-       addToMapW(0x2b, 0x20, 0x20);
-       addToMapW(0x2b, 0x20, 0x21);
-       addToMapW(0x2b, 0xFF, 0x0B);
-       addToMapW(0x2c, 0x00, 0x2C);
-       addToMapW(0x2c, 0x00, 0xB8);
-       addToMapW(0x2c, 0x03, 0x27);
-       addToMapW(0x2c, 0x20, 0x1A);
-       addToMapW(0x2c, 0x20, 0x1E);
-       addToMapW(0x2c, 0xFF, 0x0C);
-       addToMapW(0x2d, 0x00, 0x2D);
-       addToMapW(0x2d, 0x00, 0xAC);
-       addToMapW(0x2d, 0x00, 0xAD);
-       addToMapW(0x2d, 0x20, 0x10);
-       addToMapW(0x2d, 0x20, 0x11);
-       addToMapW(0x2d, 0x20, 0x13);
-       addToMapW(0x2d, 0x20, 0x14);
-       addToMapW(0x2d, 0x22, 0x12);
-       addToMapW(0x2d, 0x22, 0x13);
-       addToMapW(0x2d, 0xFF, 0x0D);
-       addToMapW(0x2e, 0x00, 0x2E);
-       addToMapW(0x2e, 0x20, 0x26);
-       addToMapW(0x2e, 0xFF, 0x0E);
-       addToMapW(0x2f, 0x00, 0x2F);
-       addToMapW(0x2f, 0x20, 0x44);
-       addToMapW(0x2f, 0x22, 0x15);
-       addToMapW(0x2f, 0x22, 0x16);
-       addToMapW(0x2f, 0xFF, 0x0F);
-       addToMapW(0x30, 0x00, 0x30);
-       addToMapW(0x30, 0x20, 0x70);
-       addToMapW(0x30, 0x20, 0x80);
-       addToMapW(0x30, 0xFF, 0x10);
-       addToMapW(0x31, 0x00, 0x31);
-       addToMapW(0x31, 0x00, 0xB9);
-       addToMapW(0x31, 0x00, 0xBC);
-       addToMapW(0x31, 0x00, 0xBD);
-       addToMapW(0x31, 0x20, 0x81);
-       addToMapW(0x31, 0xFF, 0x11);
-       addToMapW(0x32, 0x00, 0x32);
-       addToMapW(0x32, 0x00, 0xB2);
-       addToMapW(0x32, 0x20, 0x82);
-       addToMapW(0x32, 0xFF, 0x12);
-       addToMapW(0x33, 0x00, 0x33);
-       addToMapW(0x33, 0x00, 0xB3);
-       addToMapW(0x33, 0x00, 0xBE);
-       addToMapW(0x33, 0x20, 0x83);
-       addToMapW(0x33, 0xFF, 0x13);
-       addToMapW(0x34, 0x00, 0x34);
-       addToMapW(0x34, 0x20, 0x74);
-       addToMapW(0x34, 0x20, 0x84);
-       addToMapW(0x34, 0xFF, 0x14);
-       addToMapW(0x35, 0x00, 0x35);
-       addToMapW(0x35, 0x20, 0x75);
-       addToMapW(0x35, 0x20, 0x85);
-       addToMapW(0x35, 0xFF, 0x15);
-       addToMapW(0x36, 0x00, 0x36);
-       addToMapW(0x36, 0x20, 0x76);
-       addToMapW(0x36, 0x20, 0x86);
-       addToMapW(0x36, 0xFF, 0x16);
-       addToMapW(0x37, 0x00, 0x37);
-       addToMapW(0x37, 0x20, 0x77);
-       addToMapW(0x37, 0x20, 0x87);
-       addToMapW(0x37, 0xFF, 0x17);
-       addToMapW(0x38, 0x00, 0x38);
-       addToMapW(0x38, 0x20, 0x78);
-       addToMapW(0x38, 0x20, 0x88);
-       addToMapW(0x38, 0x22, 0x1E);
-       addToMapW(0x38, 0xFF, 0x18);
-       addToMapW(0x39, 0x00, 0x39);
-       addToMapW(0x39, 0x20, 0x78);
-       addToMapW(0x39, 0x20, 0x89);
-       addToMapW(0x39, 0xFF, 0x19);
-       addToMapW(0x3a, 0x00, 0x3A);
-       addToMapW(0x3a, 0x05, 0x89);
-       addToMapW(0x3a, 0x20, 0x26);
-       addToMapW(0x3a, 0x22, 0x36);
-       addToMapW(0x3a, 0xFF, 0x1A);
-       addToMapW(0x3b, 0x00, 0x3B);
-       addToMapW(0x3b, 0x03, 0x7E);
-       addToMapW(0x3b, 0xFF, 0x1B);
-       addToMapW(0x3c, 0x00, 0x3C);
-       addToMapW(0x3c, 0x00, 0xAB);
-       addToMapW(0x3c, 0x20, 0x39);
-       addToMapW(0x3c, 0x23, 0x29);
-       addToMapW(0x3c, 0x30, 0x08);
-       addToMapW(0x3c, 0xFF, 0x1C);
-       addToMapW(0x3d, 0x00, 0x3D);
-       addToMapW(0x3d, 0x22, 0x61);
-       addToMapW(0x3d, 0x22, 0x64);
-       addToMapW(0x3d, 0x22, 0x65);
-       addToMapW(0x3d, 0xFF, 0x1D);
-       addToMapW(0x3e, 0x00, 0x3E);
-       addToMapW(0x3e, 0x00, 0xBB);
-       addToMapW(0x3e, 0x20, 0x3A);
-       addToMapW(0x3e, 0x23, 0x2A);
-       addToMapW(0x3e, 0x30, 0x09);
-       addToMapW(0x3e, 0xFF, 0x1E);
-       addToMapW(0x3f, 0x00, 0x3F);
-       addToMapW(0x40, 0x00, 0x40);
-       addToMapW(0x40, 0xFF, 0x20);
-       addToMapW(0x41, 0x00, 0x41);
-       addToMapW(0x41, 0x00, 0x61);
-       addToMapW(0x41, 0x00, 0xAA);
-       addToMapW(0x41, 0x00, 0xC0);
-       addToMapW(0x41, 0x00, 0xC1);
-       addToMapW(0x41, 0x00, 0xC2);
-       addToMapW(0x41, 0x00, 0xC3);
-       addToMapW(0x41, 0x00, 0xC4);
-       addToMapW(0x41, 0x00, 0xC5);
-       addToMapW(0x41, 0x00, 0xC6);
-       addToMapW(0x41, 0x00, 0xE0);
-       addToMapW(0x41, 0x00, 0xE1);
-       addToMapW(0x41, 0x00, 0xE2);
-       addToMapW(0x41, 0x00, 0xE3);
-       addToMapW(0x41, 0x00, 0xE4);
-       addToMapW(0x41, 0x00, 0xE5);
-       addToMapW(0x41, 0x00, 0xE6);
-       addToMapW(0x41, 0x01, 0x00);
-       addToMapW(0x41, 0x01, 0x01);
-       addToMapW(0x41, 0x01, 0x02);
-       addToMapW(0x41, 0x01, 0x03);
-       addToMapW(0x41, 0x01, 0x04);
-       addToMapW(0x41, 0x01, 0x05);
-       addToMapW(0x41, 0x01, 0xCD);
-       addToMapW(0x41, 0x01, 0xCE);
-       addToMapW(0x41, 0x01, 0xDE);
-       addToMapW(0x41, 0x01, 0xDF);
-       addToMapW(0x41, 0x03, 0xB1);
-       addToMapW(0x41, 0x21, 0x2B);
-       addToMapW(0x41, 0xFF, 0x21);
-       addToMapW(0x41, 0xFF, 0x41);
-       addToMapW(0x42, 0x00, 0x42);
-       addToMapW(0x42, 0x00, 0x62);
-       addToMapW(0x42, 0x01, 0x80);
-       addToMapW(0x42, 0x21, 0x2C);
-       addToMapW(0x42, 0xFF, 0x22);
-       addToMapW(0x42, 0xFF, 0x42);
-       addToMapW(0x43, 0x00, 0x43);
-       addToMapW(0x43, 0x00, 0x63);
-       addToMapW(0x43, 0x00, 0xA2);
-       addToMapW(0x43, 0x00, 0xA9);
-       addToMapW(0x43, 0x00, 0xC7);
-       addToMapW(0x43, 0x00, 0xE7);
-       addToMapW(0x43, 0x00, 0xE8);
-       addToMapW(0x43, 0x01, 0x06);
-       addToMapW(0x43, 0x01, 0x07);
-       addToMapW(0x43, 0x01, 0x08);
-       addToMapW(0x43, 0x01, 0x09);
-       addToMapW(0x43, 0x01, 0x0A);
-       addToMapW(0x43, 0x01, 0x0B);
-       addToMapW(0x43, 0x01, 0x0C);
-       addToMapW(0x43, 0x01, 0x0D);
-       addToMapW(0x43, 0x21, 0x02);
-       addToMapW(0x43, 0x21, 0x2D);
-       addToMapW(0x43, 0xFF, 0x23);
-       addToMapW(0x43, 0xFF, 0x43);
-       addToMapW(0x44, 0x00, 0x44);
-       addToMapW(0x44, 0x00, 0x64);
-       addToMapW(0x44, 0x00, 0xD0);
-       addToMapW(0x44, 0x00, 0xF0);
-       addToMapW(0x44, 0x01, 0x0E);
-       addToMapW(0x44, 0x01, 0x0F);
-       addToMapW(0x44, 0x01, 0x10);
-       addToMapW(0x44, 0x01, 0x11);
-       addToMapW(0x44, 0x01, 0x89);
-       addToMapW(0x44, 0x03, 0xB4);
-       addToMapW(0x44, 0x26, 0x6A);
-       addToMapW(0x44, 0x26, 0x6B);
-       addToMapW(0x44, 0xFF, 0x24);
-       addToMapW(0x44, 0xFF, 0x44);
-       addToMapW(0x45, 0x00, 0x45);
-       addToMapW(0x45, 0x00, 0x65);
-       addToMapW(0x45, 0x00, 0xC8);
-       addToMapW(0x45, 0x00, 0xC9);
-       addToMapW(0x45, 0x00, 0xCA);
-       addToMapW(0x45, 0x00, 0xCB);
-       addToMapW(0x45, 0x00, 0xE8);
-       addToMapW(0x45, 0x00, 0xE9);
-       addToMapW(0x45, 0x00, 0xEA);
-       addToMapW(0x45, 0x00, 0xEB);
-       addToMapW(0x45, 0x01, 0x12);
-       addToMapW(0x45, 0x01, 0x13);
-       addToMapW(0x45, 0x01, 0x14);
-       addToMapW(0x45, 0x01, 0x15);
-       addToMapW(0x45, 0x01, 0x16);
-       addToMapW(0x45, 0x01, 0x17);
-       addToMapW(0x45, 0x01, 0x18);
-       addToMapW(0x45, 0x01, 0x19);
-       addToMapW(0x45, 0x01, 0x1A);
-       addToMapW(0x45, 0x01, 0x1B);
-       addToMapW(0x45, 0x03, 0xB5);
-       addToMapW(0x45, 0x21, 0x07);
-       addToMapW(0x45, 0x21, 0x2E);
-       addToMapW(0x45, 0x21, 0x2F);
-       addToMapW(0x45, 0x21, 0x30);
-       addToMapW(0x45, 0xFF, 0x25);
-       addToMapW(0x45, 0xFF, 0x45);
-       addToMapW(0x46, 0x00, 0x46);
-       addToMapW(0x46, 0x00, 0x66);
-       addToMapW(0x46, 0x01, 0x91);
-       addToMapW(0x46, 0x01, 0x92);
-       addToMapW(0x46, 0x03, 0xA6);
-       addToMapW(0x46, 0x03, 0xC6);
-       addToMapW(0x46, 0x21, 0x31);
-       addToMapW(0x46, 0xFF, 0x26);
-       addToMapW(0x46, 0xFF, 0x46);
-       addToMapW(0x47, 0x00, 0x47);
-       addToMapW(0x47, 0x00, 0x67);
-       addToMapW(0x47, 0x01, 0x1C);
-       addToMapW(0x47, 0x01, 0x1D);
-       addToMapW(0x47, 0x01, 0x1E);
-       addToMapW(0x47, 0x01, 0x1F);
-       addToMapW(0x47, 0x01, 0x20);
-       addToMapW(0x47, 0x01, 0x21);
-       addToMapW(0x47, 0x01, 0x22);
-       addToMapW(0x47, 0x01, 0x23);
-       addToMapW(0x47, 0x01, 0xE4);
-       addToMapW(0x47, 0x01, 0xE5);
-       addToMapW(0x47, 0x01, 0xE6);
-       addToMapW(0x47, 0x01, 0xE7);
-       addToMapW(0x47, 0x02, 0x61);
-       addToMapW(0x47, 0x03, 0x93);
-       addToMapW(0x47, 0x21, 0x0A);
-       addToMapW(0x47, 0xFF, 0x27);
-       addToMapW(0x47, 0xFF, 0x47);
-       addToMapW(0x48, 0x00, 0x48);
-       addToMapW(0x48, 0x00, 0x68);
-       addToMapW(0x48, 0x01, 0x24);
-       addToMapW(0x48, 0x01, 0x25);
-       addToMapW(0x48, 0x01, 0x26);
-       addToMapW(0x48, 0x01, 0x27);
-       addToMapW(0x48, 0x04, 0xBB);
-       addToMapW(0x48, 0x21, 0x0B);
-       addToMapW(0x48, 0x21, 0x0C);
-       addToMapW(0x48, 0x21, 0x0D);
-       addToMapW(0x48, 0x21, 0x0E);
-       addToMapW(0x48, 0xFF, 0x28);
-       addToMapW(0x48, 0xFF, 0x48);
-       addToMapW(0x49, 0x00, 0x49);
-       addToMapW(0x49, 0x00, 0x69);
-       addToMapW(0x49, 0x00, 0xCC);
-       addToMapW(0x49, 0x00, 0xCD);
-       addToMapW(0x49, 0x00, 0xCE);
-       addToMapW(0x49, 0x00, 0xCF);
-       addToMapW(0x49, 0x00, 0xEC);
-       addToMapW(0x49, 0x00, 0xED);
-       addToMapW(0x49, 0x00, 0xEE);
-       addToMapW(0x49, 0x00, 0xEF);
-       addToMapW(0x49, 0x01, 0x28);
-       addToMapW(0x49, 0x01, 0x29);
-       addToMapW(0x49, 0x01, 0x2A);
-       addToMapW(0x49, 0x01, 0x2B);
-       addToMapW(0x49, 0x01, 0x2C);
-       addToMapW(0x49, 0x01, 0x2D);
-       addToMapW(0x49, 0x01, 0x2E);
-       addToMapW(0x49, 0x01, 0x2F);
-       addToMapW(0x49, 0x01, 0x30);
-       addToMapW(0x49, 0x01, 0x31);
-       addToMapW(0x49, 0x01, 0x97);
-       addToMapW(0x49, 0x01, 0xCF);
-       addToMapW(0x49, 0x01, 0xD0);
-       addToMapW(0x49, 0x21, 0x10);
-       addToMapW(0x49, 0x21, 0x11);
-       addToMapW(0x49, 0xFF, 0x29);
-       addToMapW(0x49, 0xFF, 0x49);
-       addToMapW(0x4a, 0x00, 0x4A);
-       addToMapW(0x4a, 0x00, 0x6A);
-       addToMapW(0x4a, 0x01, 0x34);
-       addToMapW(0x4a, 0x01, 0x35);
-       addToMapW(0x4a, 0x01, 0xF0);
-       addToMapW(0x4a, 0xFF, 0x2A);
-       addToMapW(0x4a, 0xFF, 0x4A);
-       addToMapW(0x4b, 0x00, 0x4B);
-       addToMapW(0x4b, 0x00, 0x6B);
-       addToMapW(0x4b, 0x01, 0x36);
-       addToMapW(0x4b, 0x01, 0x37);
-       addToMapW(0x4b, 0x01, 0xE8);
-       addToMapW(0x4b, 0x01, 0xE9);
-       addToMapW(0x4b, 0x21, 0x2A);
-       addToMapW(0x4b, 0xFF, 0x2B);
-       addToMapW(0x4b, 0xFF, 0x4B);
-       addToMapW(0x4c, 0x00, 0x4C);
-       addToMapW(0x4c, 0x00, 0x6C);
-       addToMapW(0x4c, 0x00, 0xA3);
-       addToMapW(0x4c, 0x01, 0x39);
-       addToMapW(0x4c, 0x01, 0x3A);
-       addToMapW(0x4c, 0x01, 0x3B);
-       addToMapW(0x4c, 0x01, 0x3C);
-       addToMapW(0x4c, 0x01, 0x3D);
-       addToMapW(0x4c, 0x01, 0x3E);
-       addToMapW(0x4c, 0x01, 0x41);
-       addToMapW(0x4c, 0x01, 0x42);
-       addToMapW(0x4c, 0x01, 0x9A);
-       addToMapW(0x4c, 0x20, 0xA4);
-       addToMapW(0x4c, 0x21, 0x12);
-       addToMapW(0x4c, 0x21, 0x13);
-       addToMapW(0x4c, 0xFF, 0x2C);
-       addToMapW(0x4c, 0xFF, 0x4C);
-       addToMapW(0x4d, 0x00, 0x4D);
-       addToMapW(0x4d, 0x00, 0x6D);
-       addToMapW(0x4d, 0x21, 0x33);
-       addToMapW(0x4d, 0xFF, 0x2D);
-       addToMapW(0x4d, 0xFF, 0x4D);
-       addToMapW(0x4e, 0x00, 0x4E);
-       addToMapW(0x4e, 0x00, 0x6E);
-       addToMapW(0x4e, 0x00, 0xD1);
-       addToMapW(0x4e, 0x00, 0xF1);
-       addToMapW(0x4e, 0x01, 0x43);
-       addToMapW(0x4e, 0x01, 0x44);
-       addToMapW(0x4e, 0x01, 0x45);
-       addToMapW(0x4e, 0x01, 0x46);
-       addToMapW(0x4e, 0x01, 0x47);
-       addToMapW(0x4e, 0x01, 0x48);
-       addToMapW(0x4e, 0x20, 0x7F);
-       addToMapW(0x4e, 0x21, 0x15);
-       addToMapW(0x4e, 0x22, 0x29);
-       addToMapW(0x4e, 0xFF, 0x2E);
-       addToMapW(0x4e, 0xFF, 0x4E);
-       addToMapW(0x4f, 0x00, 0x4F);
-       addToMapW(0x4f, 0x00, 0x6F);
-       addToMapW(0x4f, 0x00, 0xB0);
-       addToMapW(0x4f, 0x00, 0xBA);
-       addToMapW(0x4f, 0x00, 0xD2);
-       addToMapW(0x4f, 0x00, 0xD3);
-       addToMapW(0x4f, 0x00, 0xD4);
-       addToMapW(0x4f, 0x00, 0xD5);
-       addToMapW(0x4f, 0x00, 0xD6);
-       addToMapW(0x4f, 0x00, 0xD8);
-       addToMapW(0x4f, 0x00, 0xF2);
-       addToMapW(0x4f, 0x00, 0xF3);
-       addToMapW(0x4f, 0x00, 0xF4);
-       addToMapW(0x4f, 0x00, 0xF5);
-       addToMapW(0x4f, 0x00, 0xF6);
-       addToMapW(0x4f, 0x00, 0xF8);
-       addToMapW(0x4f, 0x01, 0x4C);
-       addToMapW(0x4f, 0x01, 0x4D);
-       addToMapW(0x4f, 0x01, 0x4E);
-       addToMapW(0x4f, 0x01, 0x4F);
-       addToMapW(0x4f, 0x01, 0x50);
-       addToMapW(0x4f, 0x01, 0x51);
-       addToMapW(0x4f, 0x01, 0x52);
-       addToMapW(0x4f, 0x01, 0x53);
-       addToMapW(0x4f, 0x01, 0x9F);
-       addToMapW(0x4f, 0x01, 0xA0);
-       addToMapW(0x4f, 0x01, 0xA1);
-       addToMapW(0x4f, 0x01, 0xD1);
-       addToMapW(0x4f, 0x01, 0xD2);
-       addToMapW(0x4f, 0x01, 0xEA);
-       addToMapW(0x4f, 0x01, 0xEB);
-       addToMapW(0x4f, 0x01, 0xEC);
-       addToMapW(0x4f, 0x01, 0xED);
-       addToMapW(0x4f, 0x03, 0xA9);
-       addToMapW(0x4f, 0x20, 0xDD);
-       addToMapW(0x4f, 0x21, 0x26);
-       addToMapW(0x4f, 0x21, 0x34);
-       addToMapW(0x4f, 0x22, 0x05);
-       addToMapW(0x4f, 0x30, 0x07);
-       addToMapW(0x4f, 0xFF, 0x2F);
-       addToMapW(0x4f, 0xFF, 0x4F);
-       addToMapW(0x50, 0x00, 0x50);
-       addToMapW(0x50, 0x00, 0x70);
-       addToMapW(0x50, 0x03, 0xC0);
-       addToMapW(0x50, 0x20, 0xA7);
-       addToMapW(0x50, 0x21, 0x18);
-       addToMapW(0x50, 0x21, 0x19);
-       addToMapW(0x50, 0xFF, 0x30);
-       addToMapW(0x50, 0xFF, 0x50);
-       addToMapW(0x51, 0x00, 0x51);
-       addToMapW(0x51, 0x00, 0x71);
-       addToMapW(0x51, 0x21, 0x1A);
-       addToMapW(0x51, 0xFF, 0x31);
-       addToMapW(0x51, 0xFF, 0x51);
-       addToMapW(0x52, 0x00, 0x52);
-       addToMapW(0x52, 0x00, 0x72);
-       addToMapW(0x52, 0x00, 0xAE);
-       addToMapW(0x52, 0x01, 0x54);
-       addToMapW(0x52, 0x01, 0x55);
-       addToMapW(0x52, 0x01, 0x56);
-       addToMapW(0x52, 0x01, 0x57);
-       addToMapW(0x52, 0x01, 0x58);
-       addToMapW(0x52, 0x01, 0x59);
-       addToMapW(0x52, 0x21, 0x1B);
-       addToMapW(0x52, 0x21, 0x1C);
-       addToMapW(0x52, 0x21, 0x1D);
-       addToMapW(0x52, 0xFF, 0x32);
-       addToMapW(0x52, 0xFF, 0x52);
-       addToMapW(0x53, 0x00, 0x53);
-       addToMapW(0x53, 0x00, 0x73);
-       addToMapW(0x53, 0x00, 0xDF);
-       addToMapW(0x53, 0x01, 0x5A);
-       addToMapW(0x53, 0x01, 0x5B);
-       addToMapW(0x53, 0x01, 0x5C);
-       addToMapW(0x53, 0x01, 0x5D);
-       addToMapW(0x53, 0x01, 0x5E);
-       addToMapW(0x53, 0x01, 0x5F);
-       addToMapW(0x53, 0x01, 0x60);
-       addToMapW(0x53, 0x01, 0x61);
-       addToMapW(0x53, 0x01, 0xA9);
-       addToMapW(0x53, 0x03, 0xA3);
-       addToMapW(0x53, 0x03, 0xC3);
-       addToMapW(0x53, 0x22, 0x11);
-       addToMapW(0x53, 0xFF, 0x33);
-       addToMapW(0x53, 0xFF, 0x53);
-       addToMapW(0x54, 0x00, 0x54);
-       addToMapW(0x54, 0x00, 0x74);
-       addToMapW(0x54, 0x00, 0xDE);
-       addToMapW(0x54, 0x00, 0xFE);
-       addToMapW(0x54, 0x01, 0x62);
-       addToMapW(0x54, 0x01, 0x63);
-       addToMapW(0x54, 0x01, 0x64);
-       addToMapW(0x54, 0x01, 0x65);
-       addToMapW(0x54, 0x01, 0x66);
-       addToMapW(0x54, 0x01, 0x67);
-       addToMapW(0x54, 0x01, 0xAB);
-       addToMapW(0x54, 0x01, 0xAE);
-       addToMapW(0x54, 0x03, 0xC4);
-       addToMapW(0x54, 0x21, 0x22);
-       addToMapW(0x54, 0xFF, 0x34);
-       addToMapW(0x54, 0xFF, 0x54);
-       addToMapW(0x55, 0x00, 0x55);
-       addToMapW(0x55, 0x00, 0x75);
-       addToMapW(0x55, 0x00, 0xB5);
-       addToMapW(0x55, 0x00, 0xD9);
-       addToMapW(0x55, 0x00, 0xDA);
-       addToMapW(0x55, 0x00, 0xDB);
-       addToMapW(0x55, 0x00, 0xDC);
-       addToMapW(0x55, 0x00, 0xF9);
-       addToMapW(0x55, 0x00, 0xFA);
-       addToMapW(0x55, 0x00, 0xFB);
-       addToMapW(0x55, 0x00, 0xFC);
-       addToMapW(0x55, 0x01, 0x68);
-       addToMapW(0x55, 0x01, 0x69);
-       addToMapW(0x55, 0x01, 0x6A);
-       addToMapW(0x55, 0x01, 0x6B);
-       addToMapW(0x55, 0x01, 0x6C);
-       addToMapW(0x55, 0x01, 0x6D);
-       addToMapW(0x55, 0x01, 0x6E);
-       addToMapW(0x55, 0x01, 0x6F);
-       addToMapW(0x55, 0x01, 0x70);
-       addToMapW(0x55, 0x01, 0x71);
-       addToMapW(0x55, 0x01, 0x72);
-       addToMapW(0x55, 0x01, 0x73);
-       addToMapW(0x55, 0x01, 0xAF);
-       addToMapW(0x55, 0x01, 0xB0);
-       addToMapW(0x55, 0x01, 0xD3);
-       addToMapW(0x55, 0x01, 0xD4);
-       addToMapW(0x55, 0x01, 0xD5);
-       addToMapW(0x55, 0x01, 0xD6);
-       addToMapW(0x55, 0x01, 0xD7);
-       addToMapW(0x55, 0x01, 0xD8);
-       addToMapW(0x55, 0x01, 0xD9);
-       addToMapW(0x55, 0x01, 0xDA);
-       addToMapW(0x55, 0x01, 0xDB);
-       addToMapW(0x55, 0x01, 0xDC);
-       addToMapW(0x55, 0x03, 0xBC);
-       addToMapW(0x55, 0xFF, 0x35);
-       addToMapW(0x55, 0xFF, 0x55);
-       addToMapW(0x56, 0x00, 0x56);
-       addToMapW(0x56, 0x00, 0x76);
-       addToMapW(0x56, 0x22, 0x1A);
-       addToMapW(0x56, 0x27, 0x13);
-       addToMapW(0x56, 0xFF, 0x36);
-       addToMapW(0x56, 0xFF, 0x56);
-       addToMapW(0x57, 0x00, 0x57);
-       addToMapW(0x57, 0x00, 0x77);
-       addToMapW(0x57, 0x01, 0x74);
-       addToMapW(0x57, 0x01, 0x75);
-       addToMapW(0x57, 0xFF, 0x37);
-       addToMapW(0x57, 0xFF, 0x57);
-       addToMapW(0x58, 0x00, 0x58);
-       addToMapW(0x58, 0x00, 0x78);
-       addToMapW(0x58, 0x00, 0xD7);
-       addToMapW(0x58, 0xFF, 0x38);
-       addToMapW(0x58, 0xFF, 0x58);
-       addToMapW(0x59, 0x00, 0x59);
-       addToMapW(0x59, 0x00, 0x79);
-       addToMapW(0x59, 0x00, 0xA5);
-       addToMapW(0x59, 0x00, 0xDD);
-       addToMapW(0x59, 0x00, 0xFD);
-       addToMapW(0x59, 0x00, 0xFF);
-       addToMapW(0x59, 0x01, 0x76);
-       addToMapW(0x59, 0x01, 0x77);
-       addToMapW(0x59, 0x01, 0x78);
-       addToMapW(0x59, 0xFF, 0x39);
-       addToMapW(0x59, 0xFF, 0x59);
-       addToMapW(0x5a, 0x00, 0x5A);
-       addToMapW(0x5a, 0x00, 0x7A);
-       addToMapW(0x5a, 0x01, 0x79);
-       addToMapW(0x5a, 0x01, 0x7A);
-       addToMapW(0x5a, 0x01, 0x7B);
-       addToMapW(0x5a, 0x01, 0x7C);
-       addToMapW(0x5a, 0x01, 0x7D);
-       addToMapW(0x5a, 0x01, 0x7E);
-       addToMapW(0x5a, 0x01, 0xB6);
-       addToMapW(0x5a, 0x21, 0x24);
-       addToMapW(0x5a, 0x21, 0x28);
-       addToMapW(0x5a, 0xFF, 0x3A);
-       addToMapW(0x5a, 0xFF, 0x5A);
-       addToMapW(0x5b, 0x00, 0x5B);
-       addToMapW(0x5b, 0x30, 0x1A);
-       addToMapW(0x5b, 0xFF, 0x3B);
-       addToMapW(0x5c, 0x00, 0x5C);
-       addToMapW(0x5c, 0x00, 0xA5);
-       addToMapW(0x5c, 0x22, 0x16);
-       addToMapW(0x5c, 0xFF, 0x3C);
-       addToMapW(0x5d, 0x00, 0x5D);
-       addToMapW(0x5d, 0x30, 0x1B);
-       addToMapW(0x5d, 0xFF, 0x3D);
-       addToMapW(0x5e, 0x00, 0x5E);
-       addToMapW(0x5e, 0x02, 0xC4);
-       addToMapW(0x5e, 0x02, 0xC6);
-       addToMapW(0x5e, 0x02, 0xC7);
-       addToMapW(0x5e, 0x02, 0xD8);
-       addToMapW(0x5e, 0x03, 0x02);
-       addToMapW(0x5e, 0x03, 0x06);
-       addToMapW(0x5e, 0x03, 0x0C);
-       addToMapW(0x5e, 0x23, 0x03);
-       addToMapW(0x5e, 0xFF, 0x3E);
-       addToMapW(0x5f, 0x00, 0x5F);
-       addToMapW(0x5f, 0x00, 0xAF);
-       addToMapW(0x5f, 0x00, 0xBE);
-       addToMapW(0x5f, 0x00, 0xDE);
-       addToMapW(0x5f, 0x00, 0xFE);
-       addToMapW(0x5f, 0x02, 0xCD);
-       addToMapW(0x5f, 0x03, 0x31);
-       addToMapW(0x5f, 0x03, 0x32);
-       addToMapW(0x5f, 0x20, 0x17);
-       addToMapW(0x5f, 0x30, 0xFC);
-       addToMapW(0x5f, 0xFF, 0x3F);
-       addToMapW(0x60, 0x00, 0x60);
-       addToMapW(0x60, 0x02, 0xCB);
-       addToMapW(0x60, 0x03, 0x00);
-       addToMapW(0x60, 0x20, 0x18);
-       addToMapW(0x60, 0x20, 0x35);
-       addToMapW(0x60, 0xFF, 0x40);
-       addToMapW(0x7b, 0x00, 0x7B);
-       addToMapW(0x7b, 0xFF, 0x5B);
-       addToMapW(0x7c, 0x00, 0x7C);
-       addToMapW(0x7c, 0x00, 0xA6);
-       addToMapW(0x7c, 0x01, 0xC0);
-       addToMapW(0x7c, 0x22, 0x23);
-       addToMapW(0x7c, 0x27, 0x58);
-       addToMapW(0x7c, 0xFF, 0x5C);
-       addToMapW(0x7d, 0x00, 0x7D);
-       addToMapW(0x7d, 0x30, 0x1B);
-       addToMapW(0x7d, 0xFF, 0x5D);
-       addToMapW(0x7e, 0x00, 0x7E);
-       addToMapW(0x7e, 0x02, 0xDC);
-       addToMapW(0x7e, 0x03, 0x03);
-       addToMapW(0x7e, 0x22, 0x3C);
-       addToMapW(0x7e, 0x22, 0x48);
-       addToMapW(0x7e, 0xFF, 0x5E);
-       addToMapW(0x7f, 0x00, 0x7F);
-       addToMapW(0x7f, 0x23, 0x02);
-       addToMapW(0x7f, 0x26, 0x60);
-       addToMapW(0x7f, 0x26, 0x63);
-       addToMapW(0x7f, 0x26, 0x65);
-       addToMapW(0x7f, 0x26, 0x66);
-       addToMapW(0x80, 0x00, 0x80);
-       addToMapW(0x80, 0x00, 0xC7);
-       addToMapW(0x80, 0x00, 0xE7);
-       addToMapW(0x80, 0x01, 0x06);
-       addToMapW(0x80, 0x01, 0x07);
-       addToMapW(0x80, 0x03, 0x91);
-       addToMapW(0x80, 0x03, 0xB1);
-       addToMapW(0x80, 0x04, 0x10);
-       addToMapW(0x80, 0x04, 0x30);
-       addToMapW(0x80, 0x05, 0xD0);
-       addToMapW(0x80, 0x20, 0xAC);
-       addToMapW(0x81, 0x00, 0x81);
-       addToMapW(0x81, 0x03, 0x92);
-       addToMapW(0x81, 0x03, 0xB2);
-       addToMapW(0x81, 0x04, 0x02);
-       addToMapW(0x81, 0x04, 0x11);
-       addToMapW(0x81, 0x04, 0x31);
-       addToMapW(0x81, 0x04, 0x52);
-       addToMapW(0x81, 0x05, 0xD1);
-       addToMapW(0x82, 0x00, 0x82);
-       addToMapW(0x82, 0x03, 0x93);
-       addToMapW(0x82, 0x03, 0xB3);
-       addToMapW(0x82, 0x04, 0x12);
-       addToMapW(0x82, 0x04, 0x32);
-       addToMapW(0x82, 0x05, 0xD2);
-       addToMapW(0x82, 0x20, 0x1A);
-       addToMapW(0x83, 0x00, 0x83);
-       addToMapW(0x83, 0x03, 0x94);
-       addToMapW(0x83, 0x03, 0xB4);
-       addToMapW(0x83, 0x04, 0x03);
-       addToMapW(0x83, 0x04, 0x13);
-       addToMapW(0x83, 0x04, 0x33);
-       addToMapW(0x83, 0x04, 0x53);
-       addToMapW(0x83, 0x05, 0xD3);
-       addToMapW(0x84, 0x00, 0x84);
-       addToMapW(0x84, 0x03, 0x95);
-       addToMapW(0x84, 0x03, 0xB5);
-       addToMapW(0x84, 0x04, 0x14);
-       addToMapW(0x84, 0x04, 0x34);
-       addToMapW(0x84, 0x05, 0xD4);
-       addToMapW(0x84, 0x20, 0x1E);
-       addToMapW(0x85, 0x03, 0x96);
-       addToMapW(0x85, 0x03, 0xB6);
-       addToMapW(0x85, 0x04, 0x01);
-       addToMapW(0x85, 0x04, 0x15);
-       addToMapW(0x85, 0x04, 0x35);
-       addToMapW(0x85, 0x04, 0x51);
-       addToMapW(0x85, 0x05, 0xD5);
-       addToMapW(0x85, 0x20, 0x26);
-       addToMapW(0x86, 0x00, 0x86);
-       addToMapW(0x86, 0x03, 0x97);
-       addToMapW(0x86, 0x03, 0xB7);
-       addToMapW(0x86, 0x04, 0x16);
-       addToMapW(0x86, 0x04, 0x36);
-       addToMapW(0x86, 0x05, 0xD6);
-       addToMapW(0x86, 0x20, 0x20);
-       addToMapW(0x87, 0x00, 0x87);
-       addToMapW(0x87, 0x03, 0x98);
-       addToMapW(0x87, 0x03, 0xB8);
-       addToMapW(0x87, 0x04, 0x04);
-       addToMapW(0x87, 0x04, 0x17);
-       addToMapW(0x87, 0x04, 0x37);
-       addToMapW(0x87, 0x04, 0x54);
-       addToMapW(0x87, 0x05, 0xD7);
-       addToMapW(0x87, 0x20, 0x21);
-       addToMapW(0x88, 0x00, 0x88);
-       addToMapW(0x88, 0x02, 0xC6);
-       addToMapW(0x88, 0x03, 0x99);
-       addToMapW(0x88, 0x03, 0xB9);
-       addToMapW(0x88, 0x04, 0x18);
-       addToMapW(0x88, 0x04, 0x38);
-       addToMapW(0x88, 0x05, 0xD8);
-       addToMapW(0x89, 0x00, 0x89);
-       addToMapW(0x89, 0x03, 0x9A);
-       addToMapW(0x89, 0x03, 0xBA);
-       addToMapW(0x89, 0x04, 0x05);
-       addToMapW(0x89, 0x04, 0x19);
-       addToMapW(0x89, 0x04, 0x39);
-       addToMapW(0x89, 0x04, 0x55);
-       addToMapW(0x89, 0x05, 0xD9);
-       addToMapW(0x89, 0x20, 0x30);
-       addToMapW(0x8a, 0x00, 0x8A);
-       addToMapW(0x8a, 0x01, 0x50);
-       addToMapW(0x8a, 0x01, 0x51);
-       addToMapW(0x8a, 0x01, 0x56);
-       addToMapW(0x8a, 0x01, 0x57);
-       addToMapW(0x8a, 0x03, 0x9B);
-       addToMapW(0x8a, 0x03, 0xBB);
-       addToMapW(0x8a, 0x04, 0x1A);
-       addToMapW(0x8a, 0x04, 0x3A);
-       addToMapW(0x8a, 0x05, 0xDA);
-       addToMapW(0x8b, 0x00, 0x8B);
-       addToMapW(0x8b, 0x03, 0x9C);
-       addToMapW(0x8b, 0x03, 0xBC);
-       addToMapW(0x8b, 0x04, 0x06);
-       addToMapW(0x8b, 0x04, 0x1B);
-       addToMapW(0x8b, 0x04, 0x3B);
-       addToMapW(0x8b, 0x04, 0x56);
-       addToMapW(0x8b, 0x05, 0xDB);
-       addToMapW(0x8b, 0x20, 0x39);
-       addToMapW(0x8c, 0x00, 0x8C);
-       addToMapW(0x8c, 0x01, 0x52);
-       addToMapW(0x8c, 0x01, 0x53);
-       addToMapW(0x8c, 0x03, 0x9D);
-       addToMapW(0x8c, 0x03, 0xBD);
-       addToMapW(0x8c, 0x04, 0x1C);
-       addToMapW(0x8c, 0x04, 0x3C);
-       addToMapW(0x8c, 0x05, 0xDC);
-       addToMapW(0x8d, 0x00, 0x8D);
-       addToMapW(0x8d, 0x01, 0x31);
-       addToMapW(0x8d, 0x01, 0x79);
-       addToMapW(0x8d, 0x01, 0x7A);
-       addToMapW(0x8d, 0x03, 0x9E);
-       addToMapW(0x8d, 0x03, 0xBE);
-       addToMapW(0x8d, 0x04, 0x07);
-       addToMapW(0x8d, 0x04, 0x1D);
-       addToMapW(0x8d, 0x04, 0x3D);
-       addToMapW(0x8d, 0x04, 0x57);
-       addToMapW(0x8d, 0x05, 0xDD);
-       addToMapW(0x8e, 0x00, 0x8E);
-       addToMapW(0x8e, 0x00, 0xC4);
-       addToMapW(0x8e, 0x00, 0xE4);
-       addToMapW(0x8e, 0x03, 0x9F);
-       addToMapW(0x8e, 0x03, 0xBF);
-       addToMapW(0x8e, 0x04, 0x1E);
-       addToMapW(0x8e, 0x04, 0x3E);
-       addToMapW(0x8e, 0x05, 0xDE);
-       addToMapW(0x8f, 0x00, 0x8F);
-       addToMapW(0x8f, 0x00, 0xC5);
-       addToMapW(0x8f, 0x00, 0xE5);
-       addToMapW(0x8f, 0x01, 0x06);
-       addToMapW(0x8f, 0x01, 0x07);
-       addToMapW(0x8f, 0x03, 0xA0);
-       addToMapW(0x8f, 0x03, 0xC0);
-       addToMapW(0x8f, 0x04, 0x08);
-       addToMapW(0x8f, 0x04, 0x1F);
-       addToMapW(0x8f, 0x04, 0x3F);
-       addToMapW(0x8f, 0x04, 0x58);
-       addToMapW(0x8f, 0x05, 0xDF);
-       addToMapW(0x8f, 0x21, 0x2B);
-       addToMapW(0x90, 0x00, 0x90);
-       addToMapW(0x90, 0x00, 0xC9);
-       addToMapW(0x90, 0x00, 0xE9);
-       addToMapW(0x90, 0x03, 0xA1);
-       addToMapW(0x90, 0x03, 0xC1);
-       addToMapW(0x90, 0x04, 0x20);
-       addToMapW(0x90, 0x04, 0x40);
-       addToMapW(0x90, 0x05, 0xE0);
-       addToMapW(0x91, 0x01, 0x39);
-       addToMapW(0x91, 0x01, 0x3A);
-       addToMapW(0x91, 0x03, 0xA3);
-       addToMapW(0x91, 0x03, 0xC2);
-       addToMapW(0x91, 0x03, 0xC3);
-       addToMapW(0x91, 0x04, 0x09);
-       addToMapW(0x91, 0x04, 0x21);
-       addToMapW(0x91, 0x04, 0x41);
-       addToMapW(0x91, 0x04, 0x59);
-       addToMapW(0x91, 0x05, 0xE1);
-       addToMapW(0x91, 0x06, 0x51);
-       addToMapW(0x91, 0x20, 0x18);
-       addToMapW(0x91, 0xFE, 0x7C);
-       addToMapW(0x91, 0xFE, 0x7D);
-       addToMapW(0x92, 0x00, 0xC6);
-       addToMapW(0x92, 0x00, 0xE6);
-       addToMapW(0x92, 0x03, 0xA4);
-       addToMapW(0x92, 0x03, 0xC4);
-       addToMapW(0x92, 0x04, 0x22);
-       addToMapW(0x92, 0x04, 0x42);
-       addToMapW(0x92, 0x05, 0xE2);
-       addToMapW(0x92, 0x06, 0x52);
-       addToMapW(0x92, 0x20, 0x19);
-       addToMapW(0x92, 0xFE, 0x7E);
-       addToMapW(0x92, 0xFE, 0x7F);
-       addToMapW(0x93, 0x03, 0xA5);
-       addToMapW(0x93, 0x03, 0xC5);
-       addToMapW(0x93, 0x04, 0x0A);
-       addToMapW(0x93, 0x04, 0x23);
-       addToMapW(0x93, 0x04, 0x43);
-       addToMapW(0x93, 0x04, 0x5A);
-       addToMapW(0x93, 0x05, 0xE3);
-       addToMapW(0x93, 0x20, 0x1C);
-       addToMapW(0x94, 0x00, 0xA4);
-       addToMapW(0x94, 0x03, 0xA6);
-       addToMapW(0x94, 0x03, 0xC6);
-       addToMapW(0x94, 0x04, 0x24);
-       addToMapW(0x94, 0x04, 0x44);
-       addToMapW(0x94, 0x05, 0xE4);
-       addToMapW(0x94, 0x20, 0x1D);
-       addToMapW(0x95, 0x01, 0x22);
-       addToMapW(0x95, 0x01, 0x23);
-       addToMapW(0x95, 0x01, 0x3D);
-       addToMapW(0x95, 0x01, 0x3E);
-       addToMapW(0x95, 0x03, 0xA7);
-       addToMapW(0x95, 0x03, 0xC7);
-       addToMapW(0x95, 0x04, 0x0B);
-       addToMapW(0x95, 0x04, 0x25);
-       addToMapW(0x95, 0x04, 0x45);
-       addToMapW(0x95, 0x04, 0x5B);
-       addToMapW(0x95, 0x05, 0xE5);
-       addToMapW(0x95, 0x06, 0x40);
-       addToMapW(0x95, 0x20, 0x22);
-       addToMapW(0x96, 0x00, 0xA2);
-       addToMapW(0x96, 0x03, 0xA8);
-       addToMapW(0x96, 0x03, 0xC8);
-       addToMapW(0x96, 0x04, 0x26);
-       addToMapW(0x96, 0x04, 0x46);
-       addToMapW(0x96, 0x05, 0xE6);
-       addToMapW(0x96, 0x20, 0x13);
-       addToMapW(0x97, 0x00, 0xB5);
-       addToMapW(0x97, 0x01, 0x5A);
-       addToMapW(0x97, 0x01, 0x5B);
-       addToMapW(0x97, 0x03, 0xA9);
-       addToMapW(0x97, 0x03, 0xC9);
-       addToMapW(0x97, 0x04, 0x0C);
-       addToMapW(0x97, 0x04, 0x27);
-       addToMapW(0x97, 0x04, 0x47);
-       addToMapW(0x97, 0x04, 0x5C);
-       addToMapW(0x97, 0x05, 0xE7);
-       addToMapW(0x97, 0x20, 0x14);
-       addToMapW(0x98, 0x00, 0x98);
-       addToMapW(0x98, 0x01, 0x30);
-       addToMapW(0x98, 0x02, 0xDC);
-       addToMapW(0x98, 0x04, 0x28);
-       addToMapW(0x98, 0x04, 0x48);
-       addToMapW(0x98, 0x05, 0xE8);
-       addToMapW(0x98, 0x06, 0x21);
-       addToMapW(0x98, 0xFE, 0x80);
-       addToMapW(0x99, 0x00, 0x99);
-       addToMapW(0x99, 0x00, 0xD6);
-       addToMapW(0x99, 0x00, 0xF6);
-       addToMapW(0x99, 0x04, 0x0E);
-       addToMapW(0x99, 0x04, 0x29);
-       addToMapW(0x99, 0x04, 0x49);
-       addToMapW(0x99, 0x04, 0x5E);
-       addToMapW(0x99, 0x05, 0xE9);
-       addToMapW(0x99, 0x06, 0x22);
-       addToMapW(0x99, 0x21, 0x22);
-       addToMapW(0x99, 0xFE, 0x81);
-       addToMapW(0x99, 0xFE, 0x82);
-       addToMapW(0x9a, 0x00, 0x9A);
-       addToMapW(0x9a, 0x00, 0xDC);
-       addToMapW(0x9a, 0x00, 0xFC);
-       addToMapW(0x9a, 0x04, 0x2A);
-       addToMapW(0x9a, 0x04, 0x4A);
-       addToMapW(0x9a, 0x05, 0xEA);
-       addToMapW(0x9a, 0x06, 0x23);
-       addToMapW(0x9a, 0xFE, 0x83);
-       addToMapW(0x9a, 0xFE, 0x84);
-       addToMapW(0x9b, 0x00, 0x9B);
-       addToMapW(0x9b, 0x00, 0xA2);
-       addToMapW(0x9b, 0x01, 0x64);
-       addToMapW(0x9b, 0x01, 0x65);
-       addToMapW(0x9b, 0x04, 0x0F);
-       addToMapW(0x9b, 0x04, 0x2B);
-       addToMapW(0x9b, 0x04, 0x4B);
-       addToMapW(0x9b, 0x04, 0x5F);
-       addToMapW(0x9b, 0x06, 0x24);
-       addToMapW(0x9b, 0x20, 0x3A);
-       addToMapW(0x9b, 0xFE, 0x85);
-       addToMapW(0x9b, 0xFE, 0x86);
-       addToMapW(0x9c, 0x00, 0x9C);
-       addToMapW(0x9c, 0x00, 0xA3);
-       addToMapW(0x9c, 0x04, 0x2C);
-       addToMapW(0x9c, 0x04, 0x4C);
-       addToMapW(0x9c, 0x20, 0xA4);
-       addToMapW(0x9d, 0x00, 0x9D);
-       addToMapW(0x9d, 0x00, 0xA5);
-       addToMapW(0x9d, 0x00, 0xD8);
-       addToMapW(0x9d, 0x00, 0xF8);
-       addToMapW(0x9d, 0x01, 0x41);
-       addToMapW(0x9d, 0x01, 0x42);
-       addToMapW(0x9d, 0x02, 0x78);
-       addToMapW(0x9d, 0x03, 0x98);
-       addToMapW(0x9d, 0x04, 0x2D);
-       addToMapW(0x9d, 0x04, 0x2E);
-       addToMapW(0x9d, 0x04, 0x4D);
-       addToMapW(0x9d, 0x04, 0x4E);
-       addToMapW(0x9d, 0x06, 0x25);
-       addToMapW(0x9d, 0x22, 0x05);
-       addToMapW(0x9d, 0xFE, 0x87);
-       addToMapW(0x9d, 0xFE, 0x88);
-       addToMapW(0x9e, 0x00, 0x9E);
-       addToMapW(0x9e, 0x00, 0xD7);
-       addToMapW(0x9e, 0x01, 0x5E);
-       addToMapW(0x9e, 0x01, 0x5F);
-       addToMapW(0x9e, 0x04, 0x2E);
-       addToMapW(0x9e, 0x04, 0x4E);
-       addToMapW(0x9e, 0x06, 0x26);
-       addToMapW(0x9e, 0x20, 0xA7);
-       addToMapW(0x9e, 0xFE, 0x89);
-       addToMapW(0x9e, 0xFE, 0x8A);
-       addToMapW(0x9e, 0xFE, 0x8B);
-       addToMapW(0x9e, 0xFE, 0x8C);
-       addToMapW(0x9f, 0x00, 0x9F);
-       addToMapW(0x9f, 0x00, 0xA4);
-       addToMapW(0x9f, 0x00, 0xFF);
-       addToMapW(0x9f, 0x01, 0x78);
-       addToMapW(0x9f, 0x01, 0x91);
-       addToMapW(0x9f, 0x01, 0x92);
-       addToMapW(0x9f, 0x04, 0x2A);
-       addToMapW(0x9f, 0x04, 0x2F);
-       addToMapW(0x9f, 0x04, 0x4A);
-       addToMapW(0x9f, 0x04, 0x4F);
-       addToMapW(0x9f, 0x06, 0x27);
-       addToMapW(0x9f, 0xFE, 0x8D);
-       addToMapW(0x9f, 0xFE, 0x8E);
-       addToMapW(0xa0, 0x00, 0xA0);
-       addToMapW(0xa0, 0x01, 0x00);
-       addToMapW(0xa0, 0x01, 0x01);
-       addToMapW(0xa0, 0x06, 0x28);
-       addToMapW(0xa0, 0xF8, 0xF0);
-       addToMapW(0xa0, 0xFE, 0x8F);
-       addToMapW(0xa0, 0xFE, 0x90);
-       addToMapW(0xa0, 0xFE, 0x91);
-       addToMapW(0xa0, 0xFE, 0x92);
-       addToMapW(0xa1, 0x00, 0xA1);
-       addToMapW(0xa1, 0x01, 0x2A);
-       addToMapW(0xa1, 0x01, 0x2B);
-       addToMapW(0xa1, 0x04, 0x10);
-       addToMapW(0xa1, 0x04, 0x30);
-       addToMapW(0xa1, 0x06, 0x29);
-       addToMapW(0xa1, 0x0E, 0x01);
-       addToMapW(0xa1, 0xFE, 0x93);
-       addToMapW(0xa1, 0xFE, 0x94);
-       addToMapW(0xa1, 0xFF, 0x61);
-       addToMapW(0xa2, 0x00, 0xA2);
-       addToMapW(0xa2, 0x06, 0x2A);
-       addToMapW(0xa2, 0x0E, 0x02);
-       addToMapW(0xa2, 0xFE, 0x95);
-       addToMapW(0xa2, 0xFE, 0x96);
-       addToMapW(0xa2, 0xFE, 0x97);
-       addToMapW(0xa2, 0xFE, 0x98);
-       addToMapW(0xa2, 0xFF, 0x62);
-       addToMapW(0xa3, 0x00, 0xA3);
-       addToMapW(0xa3, 0x01, 0x7B);
-       addToMapW(0xa3, 0x01, 0x7C);
-       addToMapW(0xa3, 0x04, 0x11);
-       addToMapW(0xa3, 0x04, 0x31);
-       addToMapW(0xa3, 0x06, 0x2B);
-       addToMapW(0xa3, 0x0E, 0x03);
-       addToMapW(0xa3, 0xFE, 0x99);
-       addToMapW(0xa3, 0xFE, 0x9A);
-       addToMapW(0xa3, 0xFE, 0x9B);
-       addToMapW(0xa3, 0xFE, 0x9C);
-       addToMapW(0xa3, 0xFF, 0x63);
-       addToMapW(0xa4, 0x00, 0xA4);
-       addToMapW(0xa4, 0x01, 0x04);
-       addToMapW(0xa4, 0x01, 0x05);
-       addToMapW(0xa4, 0x06, 0x2C);
-       addToMapW(0xa4, 0x0E, 0x04);
-       addToMapW(0xa4, 0xFE, 0x9D);
-       addToMapW(0xa4, 0xFE, 0x9E);
-       addToMapW(0xa4, 0xFE, 0x9F);
-       addToMapW(0xa4, 0xFE, 0xA0);
-       addToMapW(0xa4, 0xFF, 0x64);
-       addToMapW(0xa5, 0x00, 0xA5);
-       addToMapW(0xa5, 0x00, 0xD1);
-       addToMapW(0xa5, 0x00, 0xF1);
-       addToMapW(0xa5, 0x04, 0x26);
-       addToMapW(0xa5, 0x04, 0x46);
-       addToMapW(0xa5, 0x06, 0x2D);
-       addToMapW(0xa5, 0x0E, 0x05);
-       addToMapW(0xa5, 0xFE, 0xA1);
-       addToMapW(0xa5, 0xFE, 0xA2);
-       addToMapW(0xa5, 0xFE, 0xA3);
-       addToMapW(0xa5, 0xFE, 0xA4);
-       addToMapW(0xa5, 0xFF, 0x65);
-       addToMapW(0xa6, 0x00, 0xA6);
-       addToMapW(0xa6, 0x00, 0xAA);
-       addToMapW(0xa6, 0x01, 0x1E);
-       addToMapW(0xa6, 0x01, 0x1F);
-       addToMapW(0xa6, 0x01, 0x7D);
-       addToMapW(0xa6, 0x01, 0x7E);
-       addToMapW(0xa6, 0x06, 0x2E);
-       addToMapW(0xa6, 0x0E, 0x06);
-       addToMapW(0xa6, 0x20, 0x1D);
-       addToMapW(0xa6, 0xFE, 0xA5);
-       addToMapW(0xa6, 0xFE, 0xA6);
-       addToMapW(0xa6, 0xFE, 0xA7);
-       addToMapW(0xa6, 0xFE, 0xA8);
-       addToMapW(0xa6, 0xFF, 0x66);
-       addToMapW(0xa7, 0x00, 0xA6);
-       addToMapW(0xa7, 0x00, 0xA7);
-       addToMapW(0xa7, 0x00, 0xBA);
-       addToMapW(0xa7, 0x04, 0x14);
-       addToMapW(0xa7, 0x04, 0x34);
-       addToMapW(0xa7, 0x06, 0x2F);
-       addToMapW(0xa7, 0x0E, 0x07);
-       addToMapW(0xa7, 0xFE, 0xA9);
-       addToMapW(0xa7, 0xFE, 0xAA);
-       addToMapW(0xa7, 0xFF, 0x67);
-       addToMapW(0xa8, 0x00, 0xA8);
-       addToMapW(0xa8, 0x00, 0xA9);
-       addToMapW(0xa8, 0x00, 0xBF);
-       addToMapW(0xa8, 0x01, 0x18);
-       addToMapW(0xa8, 0x01, 0x19);
-       addToMapW(0xa8, 0x06, 0x30);
-       addToMapW(0xa8, 0x0E, 0x08);
-       addToMapW(0xa8, 0xFE, 0xAB);
-       addToMapW(0xa8, 0xFE, 0xAC);
-       addToMapW(0xa8, 0xFF, 0x68);
-       addToMapW(0xa9, 0x00, 0xA9);
-       addToMapW(0xa9, 0x00, 0xAE);
-       addToMapW(0xa9, 0x04, 0x15);
-       addToMapW(0xa9, 0x04, 0x35);
-       addToMapW(0xa9, 0x06, 0x31);
-       addToMapW(0xa9, 0x0E, 0x09);
-       addToMapW(0xa9, 0x23, 0x10);
-       addToMapW(0xa9, 0xFE, 0xAD);
-       addToMapW(0xa9, 0xFE, 0xAE);
-       addToMapW(0xa9, 0xFF, 0x69);
-       addToMapW(0xaa, 0x00, 0xAA);
-       addToMapW(0xaa, 0x00, 0xAC);
-       addToMapW(0xaa, 0x06, 0x32);
-       addToMapW(0xaa, 0x0E, 0x0A);
-       addToMapW(0xaa, 0x23, 0x10);
-       addToMapW(0xaa, 0xFE, 0xAF);
-       addToMapW(0xaa, 0xFE, 0xB0);
-       addToMapW(0xaa, 0xFF, 0x6A);
-       addToMapW(0xab, 0x00, 0xAB);
-       addToMapW(0xab, 0x00, 0xBD);
-       addToMapW(0xab, 0x04, 0x24);
-       addToMapW(0xab, 0x04, 0x44);
-       addToMapW(0xab, 0x06, 0x33);
-       addToMapW(0xab, 0x0E, 0x0B);
-       addToMapW(0xab, 0xFE, 0xB1);
-       addToMapW(0xab, 0xFE, 0xB2);
-       addToMapW(0xab, 0xFE, 0xB3);
-       addToMapW(0xab, 0xFE, 0xB4);
-       addToMapW(0xab, 0xFF, 0x6B);
-       addToMapW(0xac, 0x00, 0xAC);
-       addToMapW(0xac, 0x00, 0xBC);
-       addToMapW(0xac, 0x01, 0x0C);
-       addToMapW(0xac, 0x01, 0x0D);
-       addToMapW(0xac, 0x06, 0x34);
-       addToMapW(0xac, 0x0E, 0x0C);
-       addToMapW(0xac, 0xFE, 0xB5);
-       addToMapW(0xac, 0xFE, 0xB6);
-       addToMapW(0xac, 0xFE, 0xB7);
-       addToMapW(0xac, 0xFE, 0xB8);
-       addToMapW(0xac, 0xFF, 0x6C);
-       addToMapW(0xad, 0x00, 0xA1);
-       addToMapW(0xad, 0x00, 0xAD);
-       addToMapW(0xad, 0x01, 0x41);
-       addToMapW(0xad, 0x01, 0x42);
-       addToMapW(0xad, 0x04, 0x13);
-       addToMapW(0xad, 0x04, 0x33);
-       addToMapW(0xad, 0x06, 0x35);
-       addToMapW(0xad, 0x0E, 0x0D);
-       addToMapW(0xad, 0xFE, 0xB9);
-       addToMapW(0xad, 0xFE, 0xBA);
-       addToMapW(0xad, 0xFE, 0xBB);
-       addToMapW(0xad, 0xFE, 0xBC);
-       addToMapW(0xad, 0xFF, 0x6D);
-       addToMapW(0xae, 0x00, 0xAB);
-       addToMapW(0xae, 0x00, 0xAE);
-       addToMapW(0xae, 0x0E, 0x0E);
-       addToMapW(0xae, 0x22, 0x6A);
-       addToMapW(0xae, 0x30, 0x0A);
-       addToMapW(0xae, 0xFF, 0x6E);
-       addToMapW(0xaf, 0x00, 0xAF);
-       addToMapW(0xaf, 0x00, 0xBB);
-       addToMapW(0xaf, 0x0E, 0x0F);
-       addToMapW(0xaf, 0x22, 0x6B);
-       addToMapW(0xaf, 0x30, 0x0B);
-       addToMapW(0xaf, 0xFF, 0x6F);
-       addToMapW(0xb0, 0x00, 0xB0);
-       addToMapW(0xb0, 0x0E, 0x10);
-       addToMapW(0xb0, 0x25, 0x91);
-       addToMapW(0xb0, 0xFF, 0x70);
-       addToMapW(0xb1, 0x00, 0xB1);
-       addToMapW(0xb1, 0x0E, 0x11);
-       addToMapW(0xb1, 0x25, 0x92);
-       addToMapW(0xb1, 0xFF, 0x71);
-       addToMapW(0xb2, 0x00, 0xB2);
-       addToMapW(0xb2, 0x0E, 0x12);
-       addToMapW(0xb2, 0x25, 0x93);
-       addToMapW(0xb2, 0xFF, 0x72);
-       addToMapW(0xb3, 0x00, 0xA6);
-       addToMapW(0xb3, 0x00, 0xB3);
-       addToMapW(0xb3, 0x01, 0xC0);
-       addToMapW(0xb3, 0x0E, 0x13);
-       addToMapW(0xb3, 0x22, 0x23);
-       addToMapW(0xb3, 0x25, 0x02);
-       addToMapW(0xb3, 0x27, 0x58);
-       addToMapW(0xb3, 0xFF, 0x73);
-       addToMapW(0xb4, 0x00, 0xB4);
-       addToMapW(0xb4, 0x0E, 0x14);
-       addToMapW(0xb4, 0x25, 0x24);
-       addToMapW(0xb4, 0xFF, 0x74);
-       addToMapW(0xb5, 0x00, 0xB5);
-       addToMapW(0xb5, 0x00, 0xC1);
-       addToMapW(0xb5, 0x00, 0xE1);
-       addToMapW(0xb5, 0x01, 0x04);
-       addToMapW(0xb5, 0x01, 0x05);
-       addToMapW(0xb5, 0x0E, 0x15);
-       addToMapW(0xb5, 0x25, 0x61);
-       addToMapW(0xb5, 0xFF, 0x75);
-       addToMapW(0xb6, 0x00, 0xB6);
-       addToMapW(0xb6, 0x00, 0xC2);
-       addToMapW(0xb6, 0x00, 0xE2);
-       addToMapW(0xb6, 0x01, 0x0C);
-       addToMapW(0xb6, 0x01, 0x0D);
-       addToMapW(0xb6, 0x04, 0x25);
-       addToMapW(0xb6, 0x04, 0x45);
-       addToMapW(0xb6, 0x0E, 0x16);
-       addToMapW(0xb6, 0x25, 0x62);
-       addToMapW(0xb6, 0xFF, 0x76);
-       addToMapW(0xb7, 0x00, 0xB7);
-       addToMapW(0xb7, 0x00, 0xC0);
-       addToMapW(0xb7, 0x00, 0xE0);
-       addToMapW(0xb7, 0x01, 0x18);
-       addToMapW(0xb7, 0x01, 0x19);
-       addToMapW(0xb7, 0x01, 0x1A);
-       addToMapW(0xb7, 0x01, 0x1B);
-       addToMapW(0xb7, 0x0E, 0x17);
-       addToMapW(0xb7, 0x25, 0x56);
-       addToMapW(0xb7, 0xFF, 0x77);
-       addToMapW(0xb8, 0x00, 0xA9);
-       addToMapW(0xb8, 0x00, 0xB8);
-       addToMapW(0xb8, 0x01, 0x16);
-       addToMapW(0xb8, 0x01, 0x17);
-       addToMapW(0xb8, 0x01, 0x5E);
-       addToMapW(0xb8, 0x01, 0x5F);
-       addToMapW(0xb8, 0x04, 0x18);
-       addToMapW(0xb8, 0x04, 0x38);
-       addToMapW(0xb8, 0x0E, 0x18);
-       addToMapW(0xb8, 0x25, 0x55);
-       addToMapW(0xb8, 0xFF, 0x78);
-       addToMapW(0xb9, 0x00, 0xB9);
-       addToMapW(0xb9, 0x0E, 0x19);
-       addToMapW(0xb9, 0x25, 0x61);
-       addToMapW(0xb9, 0x25, 0x62);
-       addToMapW(0xb9, 0x25, 0x63);
-       addToMapW(0xb9, 0xFF, 0x79);
-       addToMapW(0xba, 0x00, 0xBA);
-       addToMapW(0xba, 0x0E, 0x1A);
-       addToMapW(0xba, 0x25, 0x51);
-       addToMapW(0xba, 0xFF, 0x7A);
-       addToMapW(0xbb, 0x00, 0xBB);
-       addToMapW(0xbb, 0x0E, 0x1B);
-       addToMapW(0xbb, 0x25, 0x55);
-       addToMapW(0xbb, 0x25, 0x56);
-       addToMapW(0xbb, 0x25, 0x57);
-       addToMapW(0xbb, 0xFF, 0x7B);
-       addToMapW(0xbc, 0x00, 0xBC);
-       addToMapW(0xbc, 0x0E, 0x1C);
-       addToMapW(0xbc, 0x25, 0x5B);
-       addToMapW(0xbc, 0x25, 0x5C);
-       addToMapW(0xbc, 0x25, 0x5D);
-       addToMapW(0xbc, 0xFF, 0x7C);
-       addToMapW(0xbd, 0x00, 0xA2);
-       addToMapW(0xbd, 0x00, 0xBD);
-       addToMapW(0xbd, 0x01, 0x2E);
-       addToMapW(0xbd, 0x01, 0x2F);
-       addToMapW(0xbd, 0x01, 0x7B);
-       addToMapW(0xbd, 0x01, 0x7C);
-       addToMapW(0xbd, 0x0E, 0x1D);
-       addToMapW(0xbd, 0x25, 0x5C);
-       addToMapW(0xbd, 0xFF, 0x7D);
-       addToMapW(0xbe, 0x00, 0xA5);
-       addToMapW(0xbe, 0x00, 0xBE);
-       addToMapW(0xbe, 0x01, 0x60);
-       addToMapW(0xbe, 0x01, 0x61);
-       addToMapW(0xbe, 0x04, 0x19);
-       addToMapW(0xbe, 0x04, 0x39);
-       addToMapW(0xbe, 0x0E, 0x1E);
-       addToMapW(0xbe, 0x25, 0x5B);
-       addToMapW(0xbe, 0xFF, 0x7E);
-       addToMapW(0xbf, 0x00, 0xAC);
-       addToMapW(0xbf, 0x00, 0xBF);
-       addToMapW(0xbf, 0x0E, 0x1F);
-       addToMapW(0xbf, 0x25, 0x10);
-       addToMapW(0xbf, 0xFF, 0x7F);
-       addToMapW(0xc0, 0x00, 0xC0);
-       addToMapW(0xc0, 0x00, 0xE0);
-       addToMapW(0xc0, 0x0E, 0x20);
-       addToMapW(0xc0, 0x25, 0x14);
-       addToMapW(0xc0, 0xFF, 0x80);
-       addToMapW(0xc1, 0x00, 0xC1);
-       addToMapW(0xc1, 0x00, 0xE1);
-       addToMapW(0xc1, 0x0E, 0x21);
-       addToMapW(0xc1, 0x25, 0x34);
-       addToMapW(0xc1, 0xFF, 0x81);
-       addToMapW(0xc2, 0x00, 0xC2);
-       addToMapW(0xc2, 0x00, 0xE2);
-       addToMapW(0xc2, 0x0E, 0x22);
-       addToMapW(0xc2, 0x25, 0x2C);
-       addToMapW(0xc2, 0xFF, 0x82);
-       addToMapW(0xc3, 0x01, 0x02);
-       addToMapW(0xc3, 0x01, 0x03);
-       addToMapW(0xc3, 0x0E, 0x23);
-       addToMapW(0xc3, 0x25, 0x1C);
-       addToMapW(0xc3, 0xFF, 0x83);
-       addToMapW(0xc4, 0x00, 0xAF);
-       addToMapW(0xc4, 0x00, 0xC4);
-       addToMapW(0xc4, 0x00, 0xE4);
-       addToMapW(0xc4, 0x02, 0xC9);
-       addToMapW(0xc4, 0x03, 0x04);
-       addToMapW(0xc4, 0x03, 0x05);
-       addToMapW(0xc4, 0x0E, 0x24);
-       addToMapW(0xc4, 0x25, 0x00);
-       addToMapW(0xc4, 0xFF, 0x84);
-       addToMapW(0xc5, 0x00, 0xC5);
-       addToMapW(0xc5, 0x00, 0xE5);
-       addToMapW(0xc5, 0x0E, 0x25);
-       addToMapW(0xc5, 0x20, 0x20);
-       addToMapW(0xc5, 0x20, 0x21);
-       addToMapW(0xc5, 0x25, 0x3C);
-       addToMapW(0xc5, 0xFF, 0x85);
-       addToMapW(0xc6, 0x00, 0xC6);
-       addToMapW(0xc6, 0x00, 0xE6);
-       addToMapW(0xc6, 0x01, 0x02);
-       addToMapW(0xc6, 0x01, 0x03);
-       addToMapW(0xc6, 0x01, 0x72);
-       addToMapW(0xc6, 0x01, 0x73);
-       addToMapW(0xc6, 0x0E, 0x26);
-       addToMapW(0xc6, 0x25, 0x5E);
-       addToMapW(0xc6, 0xFF, 0x86);
-       addToMapW(0xc7, 0x00, 0xC3);
-       addToMapW(0xc7, 0x00, 0xC7);
-       addToMapW(0xc7, 0x00, 0xE3);
-       addToMapW(0xc7, 0x00, 0xE7);
-       addToMapW(0xc7, 0x01, 0x6A);
-       addToMapW(0xc7, 0x01, 0x6B);
-       addToMapW(0xc7, 0x04, 0x1A);
-       addToMapW(0xc7, 0x04, 0x3A);
-       addToMapW(0xc7, 0x0E, 0x27);
-       addToMapW(0xc7, 0x25, 0x5F);
-       addToMapW(0xc7, 0xFF, 0x87);
-       addToMapW(0xc8, 0x00, 0xC8);
-       addToMapW(0xc8, 0x00, 0xE8);
-       addToMapW(0xc8, 0x0E, 0x28);
-       addToMapW(0xc8, 0x25, 0x58);
-       addToMapW(0xc8, 0x25, 0x59);
-       addToMapW(0xc8, 0x25, 0x5A);
-       addToMapW(0xc8, 0xFF, 0x88);
-       addToMapW(0xc9, 0x00, 0xC9);
-       addToMapW(0xc9, 0x00, 0xE9);
-       addToMapW(0xc9, 0x0E, 0x29);
-       addToMapW(0xc9, 0x25, 0x52);
-       addToMapW(0xc9, 0x25, 0x53);
-       addToMapW(0xc9, 0x25, 0x54);
-       addToMapW(0xc9, 0xFF, 0x89);
-       addToMapW(0xca, 0x00, 0xCA);
-       addToMapW(0xca, 0x00, 0xEA);
-       addToMapW(0xca, 0x0E, 0x2A);
-       addToMapW(0xca, 0x25, 0x67);
-       addToMapW(0xca, 0x25, 0x68);
-       addToMapW(0xca, 0x25, 0x69);
-       addToMapW(0xca, 0xFF, 0x8A);
-       addToMapW(0xcb, 0x00, 0xCB);
-       addToMapW(0xcb, 0x00, 0xEB);
-       addToMapW(0xcb, 0x0E, 0x2B);
-       addToMapW(0xcb, 0x25, 0x64);
-       addToMapW(0xcb, 0x25, 0x65);
-       addToMapW(0xcb, 0x25, 0x66);
-       addToMapW(0xcb, 0xFF, 0x8B);
-       addToMapW(0xcc, 0x03, 0x00);
-       addToMapW(0xcc, 0x0E, 0x2C);
-       addToMapW(0xcc, 0x25, 0x5E);
-       addToMapW(0xcc, 0x25, 0x5F);
-       addToMapW(0xcc, 0x25, 0x60);
-       addToMapW(0xcc, 0xFF, 0x8C);
-       addToMapW(0xcd, 0x00, 0xCD);
-       addToMapW(0xcd, 0x00, 0xED);
-       addToMapW(0xcd, 0x0E, 0x2D);
-       addToMapW(0xcd, 0x25, 0x50);
-       addToMapW(0xcd, 0xFF, 0x8D);
-       addToMapW(0xce, 0x00, 0xCE);
-       addToMapW(0xce, 0x00, 0xEE);
-       addToMapW(0xce, 0x0E, 0x2E);
-       addToMapW(0xce, 0x20, 0x21);
-       addToMapW(0xce, 0x25, 0x6A);
-       addToMapW(0xce, 0x25, 0x6B);
-       addToMapW(0xce, 0x25, 0x6C);
-       addToMapW(0xce, 0xFF, 0x8E);
-       addToMapW(0xcf, 0x00, 0xA4);
-       addToMapW(0xcf, 0x00, 0xCF);
-       addToMapW(0xcf, 0x00, 0xEF);
-       addToMapW(0xcf, 0x01, 0x7D);
-       addToMapW(0xcf, 0x01, 0x7E);
-       addToMapW(0xcf, 0x0E, 0x2F);
-       addToMapW(0xcf, 0x25, 0x67);
-       addToMapW(0xcf, 0xFF, 0x8F);
-       addToMapW(0xd0, 0x00, 0xBA);
-       addToMapW(0xd0, 0x01, 0x10);
-       addToMapW(0xd0, 0x01, 0x11);
-       addToMapW(0xd0, 0x0E, 0x30);
-       addToMapW(0xd0, 0x25, 0x68);
-       addToMapW(0xd0, 0xFF, 0x90);
-       addToMapW(0xd1, 0x00, 0xAA);
-       addToMapW(0xd1, 0x00, 0xD0);
-       addToMapW(0xd1, 0x00, 0xD1);
-       addToMapW(0xd1, 0x00, 0xF0);
-       addToMapW(0xd1, 0x00, 0xF1);
-       addToMapW(0xd1, 0x01, 0x10);
-       addToMapW(0xd1, 0x01, 0x11);
-       addToMapW(0xd1, 0x01, 0x89);
-       addToMapW(0xd1, 0x04, 0x1B);
-       addToMapW(0xd1, 0x04, 0x3B);
-       addToMapW(0xd1, 0x0E, 0x31);
-       addToMapW(0xd1, 0x25, 0x64);
-       addToMapW(0xd1, 0xFF, 0x91);
-       addToMapW(0xd2, 0x00, 0xCA);
-       addToMapW(0xd2, 0x00, 0xEA);
-       addToMapW(0xd2, 0x01, 0x0E);
-       addToMapW(0xd2, 0x01, 0x0F);
-       addToMapW(0xd2, 0x03, 0x09);
-       addToMapW(0xd2, 0x0E, 0x32);
-       addToMapW(0xd2, 0x25, 0x65);
-       addToMapW(0xd2, 0xFF, 0x92);
-       addToMapW(0xd3, 0x00, 0xCB);
-       addToMapW(0xd3, 0x00, 0xD3);
-       addToMapW(0xd3, 0x00, 0xEB);
-       addToMapW(0xd3, 0x00, 0xF3);
-       addToMapW(0xd3, 0x04, 0x1C);
-       addToMapW(0xd3, 0x04, 0x3C);
-       addToMapW(0xd3, 0x0E, 0x33);
-       addToMapW(0xd3, 0x25, 0x59);
-       addToMapW(0xd3, 0xFF, 0x93);
-       addToMapW(0xd4, 0x00, 0xC8);
-       addToMapW(0xd4, 0x00, 0xD4);
-       addToMapW(0xd4, 0x00, 0xE8);
-       addToMapW(0xd4, 0x00, 0xF4);
-       addToMapW(0xd4, 0x0E, 0x34);
-       addToMapW(0xd4, 0x25, 0x58);
-       addToMapW(0xd4, 0xFF, 0x94);
-       addToMapW(0xd5, 0x01, 0x31);
-       addToMapW(0xd5, 0x01, 0x47);
-       addToMapW(0xd5, 0x01, 0x48);
-       addToMapW(0xd5, 0x01, 0xA0);
-       addToMapW(0xd5, 0x01, 0xA1);
-       addToMapW(0xd5, 0x04, 0x1D);
-       addToMapW(0xd5, 0x04, 0x3D);
-       addToMapW(0xd5, 0x0E, 0x35);
-       addToMapW(0xd5, 0x25, 0x52);
-       addToMapW(0xd5, 0xF8, 0xBB);
-       addToMapW(0xd5, 0xFF, 0x95);
-       addToMapW(0xd6, 0x00, 0xCD);
-       addToMapW(0xd6, 0x00, 0xD6);
-       addToMapW(0xd6, 0x00, 0xED);
-       addToMapW(0xd6, 0x00, 0xF6);
-       addToMapW(0xd6, 0x0E, 0x36);
-       addToMapW(0xd6, 0x25, 0x53);
-       addToMapW(0xd6, 0xFF, 0x96);
-       addToMapW(0xd7, 0x00, 0xCE);
-       addToMapW(0xd7, 0x00, 0xD7);
-       addToMapW(0xd7, 0x00, 0xEE);
-       addToMapW(0xd7, 0x04, 0x1E);
-       addToMapW(0xd7, 0x04, 0x3E);
-       addToMapW(0xd7, 0x0E, 0x37);
-       addToMapW(0xd7, 0x25, 0x6B);
-       addToMapW(0xd7, 0xFF, 0x97);
-       addToMapW(0xd8, 0x00, 0xCF);
-       addToMapW(0xd8, 0x00, 0xD8);
-       addToMapW(0xd8, 0x00, 0xEF);
-       addToMapW(0xd8, 0x00, 0xF8);
-       addToMapW(0xd8, 0x0E, 0x38);
-       addToMapW(0xd8, 0x20, 0x21);
-       addToMapW(0xd8, 0x25, 0x6A);
-       addToMapW(0xd8, 0xFF, 0x98);
-       addToMapW(0xd9, 0x00, 0xD9);
-       addToMapW(0xd9, 0x00, 0xF9);
-       addToMapW(0xd9, 0x0E, 0x39);
-       addToMapW(0xd9, 0x25, 0x18);
-       addToMapW(0xd9, 0xFF, 0x99);
-       addToMapW(0xda, 0x00, 0xDA);
-       addToMapW(0xda, 0x00, 0xFA);
-       addToMapW(0xda, 0x0E, 0x3A);
-       addToMapW(0xda, 0x25, 0x0C);
-       addToMapW(0xda, 0xFF, 0x9A);
-       addToMapW(0xdb, 0x00, 0xDB);
-       addToMapW(0xdb, 0x00, 0xFB);
-       addToMapW(0xdb, 0x25, 0x88);
-       addToMapW(0xdb, 0x25, 0x8C);
-       addToMapW(0xdb, 0x25, 0x90);
-       addToMapW(0xdb, 0xF8, 0xC1);
-       addToMapW(0xdb, 0xFF, 0x9B);
-       addToMapW(0xdc, 0x00, 0xDC);
-       addToMapW(0xdc, 0x00, 0xFC);
-       addToMapW(0xdc, 0x25, 0x84);
-       addToMapW(0xdc, 0xF8, 0xC2);
-       addToMapW(0xdc, 0xFF, 0x9C);
-       addToMapW(0xdd, 0x00, 0xA6);
-       addToMapW(0xdd, 0x01, 0x62);
-       addToMapW(0xdd, 0x01, 0x63);
-       addToMapW(0xdd, 0x01, 0xAF);
-       addToMapW(0xdd, 0x01, 0xB0);
-       addToMapW(0xdd, 0x04, 0x1F);
-       addToMapW(0xdd, 0x04, 0x3F);
-       addToMapW(0xdd, 0x25, 0x8C);
-       addToMapW(0xdd, 0xF8, 0xC3);
-       addToMapW(0xdd, 0xFF, 0x9D);
-       addToMapW(0xde, 0x00, 0xCC);
-       addToMapW(0xde, 0x00, 0xEC);
-       addToMapW(0xde, 0x01, 0x6E);
-       addToMapW(0xde, 0x01, 0x6F);
-       addToMapW(0xde, 0x03, 0x03);
-       addToMapW(0xde, 0x25, 0x90);
-       addToMapW(0xde, 0xF8, 0xC4);
-       addToMapW(0xde, 0xFF, 0x9E);
-       addToMapW(0xdf, 0x00, 0xDF);
-       addToMapW(0xdf, 0x0E, 0x3F);
-       addToMapW(0xdf, 0x25, 0x80);
-       addToMapW(0xdf, 0xFF, 0x9F);
-       addToMapW(0xe0, 0x00, 0xD3);
-       addToMapW(0xe0, 0x00, 0xF3);
-       addToMapW(0xe0, 0x03, 0x91);
-       addToMapW(0xe0, 0x03, 0xB1);
-       addToMapW(0xe0, 0x04, 0x2F);
-       addToMapW(0xe0, 0x04, 0x4F);
-       addToMapW(0xe0, 0x06, 0x36);
-       addToMapW(0xe0, 0x0E, 0x40);
-       addToMapW(0xe0, 0xFE, 0xBD);
-       addToMapW(0xe0, 0xFE, 0xBE);
-       addToMapW(0xe0, 0xFE, 0xBF);
-       addToMapW(0xe0, 0xFE, 0xC0);
-       addToMapW(0xe1, 0x00, 0xDF);
-       addToMapW(0xe1, 0x03, 0xB2);
-       addToMapW(0xe1, 0x06, 0x37);
-       addToMapW(0xe1, 0x0E, 0x41);
-       addToMapW(0xe1, 0xFE, 0xC1);
-       addToMapW(0xe1, 0xFE, 0xC2);
-       addToMapW(0xe1, 0xFE, 0xC3);
-       addToMapW(0xe1, 0xFE, 0xC4);
-       addToMapW(0xe2, 0x00, 0xD4);
-       addToMapW(0xe2, 0x00, 0xF4);
-       addToMapW(0xe2, 0x01, 0x4C);
-       addToMapW(0xe2, 0x01, 0x4D);
-       addToMapW(0xe2, 0x03, 0x93);
-       addToMapW(0xe2, 0x04, 0x20);
-       addToMapW(0xe2, 0x04, 0x40);
-       addToMapW(0xe2, 0x06, 0x38);
-       addToMapW(0xe2, 0x0E, 0x42);
-       addToMapW(0xe2, 0xFE, 0xC5);
-       addToMapW(0xe2, 0xFE, 0xC6);
-       addToMapW(0xe2, 0xFE, 0xC7);
-       addToMapW(0xe2, 0xFE, 0xC8);
-       addToMapW(0xe3, 0x00, 0xD2);
-       addToMapW(0xe3, 0x00, 0xF2);
-       addToMapW(0xe3, 0x01, 0x43);
-       addToMapW(0xe3, 0x01, 0x44);
-       addToMapW(0xe3, 0x03, 0xA0);
-       addToMapW(0xe3, 0x03, 0xC0);
-       addToMapW(0xe3, 0x06, 0x39);
-       addToMapW(0xe3, 0x0E, 0x43);
-       addToMapW(0xe3, 0xFE, 0xC9);
-       addToMapW(0xe3, 0xFE, 0xCA);
-       addToMapW(0xe3, 0xFE, 0xCB);
-       addToMapW(0xe3, 0xFE, 0xCC);
-       addToMapW(0xe4, 0x01, 0xA9);
-       addToMapW(0xe4, 0x03, 0xA3);
-       addToMapW(0xe4, 0x03, 0xC3);
-       addToMapW(0xe4, 0x04, 0x21);
-       addToMapW(0xe4, 0x04, 0x41);
-       addToMapW(0xe4, 0x06, 0x3A);
-       addToMapW(0xe4, 0x0E, 0x44);
-       addToMapW(0xe4, 0x22, 0x11);
-       addToMapW(0xe4, 0xFE, 0xCD);
-       addToMapW(0xe4, 0xFE, 0xCE);
-       addToMapW(0xe4, 0xFE, 0xCF);
-       addToMapW(0xe4, 0xFE, 0xD0);
-       addToMapW(0xe5, 0x00, 0xD5);
-       addToMapW(0xe5, 0x00, 0xF5);
-       addToMapW(0xe5, 0x06, 0x41);
-       addToMapW(0xe5, 0x0E, 0x45);
-       addToMapW(0xe5, 0xFE, 0xD1);
-       addToMapW(0xe5, 0xFE, 0xD2);
-       addToMapW(0xe5, 0xFE, 0xD3);
-       addToMapW(0xe5, 0xFE, 0xD4);
-       addToMapW(0xe6, 0x00, 0xB5);
-       addToMapW(0xe6, 0x01, 0x60);
-       addToMapW(0xe6, 0x01, 0x61);
-       addToMapW(0xe6, 0x03, 0xBC);
-       addToMapW(0xe6, 0x04, 0x22);
-       addToMapW(0xe6, 0x04, 0x42);
-       addToMapW(0xe6, 0x0E, 0x46);
-       addToMapW(0xe7, 0x03, 0xA4);
-       addToMapW(0xe7, 0x03, 0xC4);
-       addToMapW(0xe7, 0x06, 0x42);
-       addToMapW(0xe7, 0x0E, 0x47);
-       addToMapW(0xe7, 0xF8, 0xBC);
-       addToMapW(0xe7, 0xFE, 0xD5);
-       addToMapW(0xe7, 0xFE, 0xD6);
-       addToMapW(0xe7, 0xFE, 0xD7);
-       addToMapW(0xe7, 0xFE, 0xD8);
-       addToMapW(0xe8, 0x00, 0xD7);
-       addToMapW(0xe8, 0x00, 0xDE);
-       addToMapW(0xe8, 0x00, 0xFE);
-       addToMapW(0xe8, 0x01, 0x36);
-       addToMapW(0xe8, 0x01, 0x37);
-       addToMapW(0xe8, 0x01, 0x54);
-       addToMapW(0xe8, 0x01, 0x55);
-       addToMapW(0xe8, 0x02, 0x78);
-       addToMapW(0xe8, 0x03, 0xA6);
-       addToMapW(0xe8, 0x03, 0xC6);
-       addToMapW(0xe8, 0x04, 0x23);
-       addToMapW(0xe8, 0x04, 0x43);
-       addToMapW(0xe8, 0x06, 0x43);
-       addToMapW(0xe8, 0x0E, 0x48);
-       addToMapW(0xe8, 0x22, 0x05);
-       addToMapW(0xe8, 0xFE, 0xD9);
-       addToMapW(0xe8, 0xFE, 0xDA);
-       addToMapW(0xe8, 0xFE, 0xDB);
-       addToMapW(0xe8, 0xFE, 0xDC);
-       addToMapW(0xe9, 0x00, 0xDA);
-       addToMapW(0xe9, 0x00, 0xFA);
-       addToMapW(0xe9, 0x03, 0x98);
-       addToMapW(0xe9, 0x06, 0x44);
-       addToMapW(0xe9, 0x0E, 0x49);
-       addToMapW(0xe9, 0xFE, 0xDD);
-       addToMapW(0xe9, 0xFE, 0xDE);
-       addToMapW(0xe9, 0xFE, 0xDF);
-       addToMapW(0xe9, 0xFE, 0xE0);
-       addToMapW(0xea, 0x00, 0xDB);
-       addToMapW(0xea, 0x00, 0xFB);
-       addToMapW(0xea, 0x01, 0x3B);
-       addToMapW(0xea, 0x01, 0x3C);
-       addToMapW(0xea, 0x03, 0x86);
-       addToMapW(0xea, 0x03, 0xA9);
-       addToMapW(0xea, 0x03, 0xAC);
-       addToMapW(0xea, 0x04, 0x16);
-       addToMapW(0xea, 0x04, 0x36);
-       addToMapW(0xea, 0x06, 0x45);
-       addToMapW(0xea, 0x0E, 0x4A);
-       addToMapW(0xea, 0x21, 0x26);
-       addToMapW(0xea, 0xFE, 0xE1);
-       addToMapW(0xea, 0xFE, 0xE2);
-       addToMapW(0xea, 0xFE, 0xE3);
-       addToMapW(0xea, 0xFE, 0xE4);
-       addToMapW(0xeb, 0x00, 0xD9);
-       addToMapW(0xeb, 0x00, 0xF9);
-       addToMapW(0xeb, 0x01, 0x70);
-       addToMapW(0xeb, 0x01, 0x71);
-       addToMapW(0xeb, 0x03, 0x88);
-       addToMapW(0xeb, 0x03, 0x94);
-       addToMapW(0xeb, 0x03, 0xAD);
-       addToMapW(0xeb, 0x03, 0xB4);
-       addToMapW(0xeb, 0x06, 0x46);
-       addToMapW(0xeb, 0x0E, 0x4B);
-       addToMapW(0xeb, 0xFE, 0xE5);
-       addToMapW(0xeb, 0xFE, 0xE6);
-       addToMapW(0xeb, 0xFE, 0xE7);
-       addToMapW(0xeb, 0xFE, 0xE8);
-       addToMapW(0xec, 0x03, 0x01);
-       addToMapW(0xec, 0x03, 0x89);
-       addToMapW(0xec, 0x03, 0xAE);
-       addToMapW(0xec, 0x04, 0x12);
-       addToMapW(0xec, 0x04, 0x32);
-       addToMapW(0xec, 0x06, 0x47);
-       addToMapW(0xec, 0x0E, 0x4C);
-       addToMapW(0xec, 0x22, 0x1E);
-       addToMapW(0xec, 0xFE, 0xE9);
-       addToMapW(0xec, 0xFE, 0xEA);
-       addToMapW(0xec, 0xFE, 0xEB);
-       addToMapW(0xec, 0xFE, 0xEC);
-       addToMapW(0xed, 0x00, 0xDD);
-       addToMapW(0xed, 0x00, 0xFD);
-       addToMapW(0xed, 0x01, 0x12);
-       addToMapW(0xed, 0x01, 0x13);
-       addToMapW(0xed, 0x03, 0x8A);
-       addToMapW(0xed, 0x03, 0xAF);
-       addToMapW(0xed, 0x06, 0x48);
-       addToMapW(0xed, 0x0E, 0x4D);
-       addToMapW(0xed, 0xFE, 0xED);
-       addToMapW(0xed, 0xFE, 0xEE);
-       addToMapW(0xee, 0x00, 0xAF);
-       addToMapW(0xee, 0x01, 0x45);
-       addToMapW(0xee, 0x01, 0x46);
-       addToMapW(0xee, 0x03, 0x04);
-       addToMapW(0xee, 0x03, 0x05);
-       addToMapW(0xee, 0x03, 0x8C);
-       addToMapW(0xee, 0x03, 0x95);
-       addToMapW(0xee, 0x03, 0xB5);
-       addToMapW(0xee, 0x03, 0xCC);
-       addToMapW(0xee, 0x04, 0x2C);
-       addToMapW(0xee, 0x04, 0x4C);
-       addToMapW(0xee, 0x06, 0x49);
-       addToMapW(0xee, 0x0E, 0x4E);
-       addToMapW(0xee, 0xFE, 0xEF);
-       addToMapW(0xee, 0xFE, 0xF0);
-       addToMapW(0xef, 0x00, 0xB4);
-       addToMapW(0xef, 0x02, 0xB9);
-       addToMapW(0xef, 0x02, 0xCA);
-       addToMapW(0xef, 0x03, 0x01);
-       addToMapW(0xef, 0x03, 0x8E);
-       addToMapW(0xef, 0x03, 0xCD);
-       addToMapW(0xef, 0x06, 0x4A);
-       addToMapW(0xef, 0x0E, 0x4F);
-       addToMapW(0xef, 0x20, 0x19);
-       addToMapW(0xef, 0x20, 0x32);
-       addToMapW(0xef, 0x20, 0x35);
-       addToMapW(0xef, 0x21, 0x16);
-       addToMapW(0xef, 0x22, 0x29);
-       addToMapW(0xef, 0xFE, 0xF1);
-       addToMapW(0xef, 0xFE, 0xF2);
-       addToMapW(0xef, 0xFE, 0xF3);
-       addToMapW(0xef, 0xFE, 0xF4);
-       addToMapW(0xf0, 0x00, 0xAD);
-       addToMapW(0xf0, 0x03, 0x8F);
-       addToMapW(0xf0, 0x03, 0xCE);
-       addToMapW(0xf0, 0x04, 0x01);
-       addToMapW(0xf0, 0x04, 0x51);
-       addToMapW(0xf0, 0x0E, 0x50);
-       addToMapW(0xf0, 0x22, 0x61);
-       addToMapW(0xf1, 0x00, 0xB1);
-       addToMapW(0xf1, 0x02, 0xDD);
-       addToMapW(0xf1, 0x06, 0x4B);
-       addToMapW(0xf1, 0x0E, 0x51);
-       addToMapW(0xf1, 0x22, 0x13);
-       addToMapW(0xf1, 0xFE, 0x70);
-       addToMapW(0xf1, 0xFE, 0x71);
-       addToMapW(0xf2, 0x02, 0xDB);
-       addToMapW(0xf2, 0x03, 0x23);
-       addToMapW(0xf2, 0x04, 0x04);
-       addToMapW(0xf2, 0x04, 0x2B);
-       addToMapW(0xf2, 0x04, 0x4B);
-       addToMapW(0xf2, 0x04, 0x54);
-       addToMapW(0xf2, 0x06, 0x4C);
-       addToMapW(0xf2, 0x0E, 0x52);
-       addToMapW(0xf2, 0x20, 0x17);
-       addToMapW(0xf2, 0x20, 0x1C);
-       addToMapW(0xf2, 0x22, 0x65);
-       addToMapW(0xf2, 0xF8, 0xBD);
-       addToMapW(0xf2, 0xFE, 0x72);
-       addToMapW(0xf3, 0x00, 0xBE);
-       addToMapW(0xf3, 0x02, 0xC7);
-       addToMapW(0xf3, 0x03, 0x0C);
-       addToMapW(0xf3, 0x06, 0x4D);
-       addToMapW(0xf3, 0x0E, 0x53);
-       addToMapW(0xf3, 0x22, 0x64);
-       addToMapW(0xf3, 0xFE, 0x74);
-       addToMapW(0xf4, 0x00, 0xB6);
-       addToMapW(0xf4, 0x02, 0xD8);
-       addToMapW(0xf4, 0x03, 0x06);
-       addToMapW(0xf4, 0x03, 0xAA);
-       addToMapW(0xf4, 0x03, 0xCA);
-       addToMapW(0xf4, 0x04, 0x07);
-       addToMapW(0xf4, 0x04, 0x17);
-       addToMapW(0xf4, 0x04, 0x37);
-       addToMapW(0xf4, 0x04, 0x57);
-       addToMapW(0xf4, 0x06, 0x4E);
-       addToMapW(0xf4, 0x0E, 0x54);
-       addToMapW(0xf4, 0x23, 0x20);
-       addToMapW(0xf4, 0xFE, 0x76);
-       addToMapW(0xf4, 0xFE, 0x77);
-       addToMapW(0xf5, 0x00, 0xA7);
-       addToMapW(0xf5, 0x03, 0xAB);
-       addToMapW(0xf5, 0x03, 0xCB);
-       addToMapW(0xf5, 0x06, 0x4F);
-       addToMapW(0xf5, 0x0E, 0x55);
-       addToMapW(0xf5, 0x23, 0x21);
-       addToMapW(0xf5, 0xFE, 0x78);
-       addToMapW(0xf5, 0xFE, 0x79);
-       addToMapW(0xf6, 0x00, 0xF7);
-       addToMapW(0xf6, 0x04, 0x0E);
-       addToMapW(0xf6, 0x04, 0x28);
-       addToMapW(0xf6, 0x04, 0x48);
-       addToMapW(0xf6, 0x04, 0x5E);
-       addToMapW(0xf6, 0x06, 0x50);
-       addToMapW(0xf6, 0x0E, 0x56);
-       addToMapW(0xf6, 0xFE, 0x7A);
-       addToMapW(0xf6, 0xFE, 0x7B);
-       addToMapW(0xf7, 0x00, 0xB8);
-       addToMapW(0xf7, 0x00, 0xF7);
-       addToMapW(0xf7, 0x02, 0xDB);
-       addToMapW(0xf7, 0x03, 0x27);
-       addToMapW(0xf7, 0x0E, 0x57);
-       addToMapW(0xf7, 0x20, 0x1E);
-       addToMapW(0xf7, 0x22, 0x48);
-       addToMapW(0xf8, 0x00, 0xB0);
-       addToMapW(0xf8, 0x02, 0xDA);
-       addToMapW(0xf8, 0x03, 0x0A);
-       addToMapW(0xf8, 0x04, 0x2D);
-       addToMapW(0xf8, 0x04, 0x4D);
-       addToMapW(0xf8, 0x0E, 0x58);
-       addToMapW(0xf8, 0x20, 0x70);
-       addToMapW(0xf8, 0x22, 0x18);
-       addToMapW(0xf9, 0x00, 0xA8);
-       addToMapW(0xf9, 0x02, 0xDD);
-       addToMapW(0xf9, 0x03, 0x08);
-       addToMapW(0xf9, 0x0E, 0x59);
-       addToMapW(0xf9, 0x22, 0x19);
-       addToMapW(0xfa, 0x00, 0xB7);
-       addToMapW(0xfa, 0x02, 0xD9);
-       addToMapW(0xfa, 0x03, 0x07);
-       addToMapW(0xfa, 0x04, 0x29);
-       addToMapW(0xfa, 0x04, 0x49);
-       addToMapW(0xfa, 0x0E, 0x5A);
-       addToMapW(0xfa, 0x20, 0x24);
-       addToMapW(0xfa, 0x22, 0xC5);
-       addToMapW(0xfa, 0x30, 0xFB);
-       addToMapW(0xfb, 0x00, 0xB9);
-       addToMapW(0xfb, 0x0E, 0x5B);
-       addToMapW(0xfb, 0x20, 0x81);
-       addToMapW(0xfb, 0x22, 0x1A);
-       addToMapW(0xfb, 0x27, 0x13);
-       addToMapW(0xfc, 0x00, 0xB3);
-       addToMapW(0xfc, 0x01, 0x58);
-       addToMapW(0xfc, 0x01, 0x59);
-       addToMapW(0xfc, 0x04, 0x27);
-       addToMapW(0xfc, 0x04, 0x47);
-       addToMapW(0xfc, 0x20, 0x7F);
-       addToMapW(0xfc, 0x20, 0x83);
-       addToMapW(0xfc, 0x21, 0x16);
-       addToMapW(0xfc, 0xF8, 0xC5);
-       addToMapW(0xfd, 0x00, 0xA4);
-       addToMapW(0xfd, 0x00, 0xA7);
-       addToMapW(0xfd, 0x00, 0xB2);
-       addToMapW(0xfd, 0x20, 0x82);
-       addToMapW(0xfd, 0xF8, 0xC6);
-       addToMapW(0xfd, 0xF8, 0xF1);
-       addToMapW(0xfe, 0x20, 0xAB);
-       addToMapW(0xfe, 0x25, 0xA0);
-       addToMapW(0xfe, 0xF8, 0xC7);
-       addToMapW(0xfe, 0xF8, 0xF2);
-       addToMapW(0xff, 0x00, 0xA0);
-       addToMapW(0xff, 0xF8, 0xC8);
-       addToMapW(0xff, 0xF8, 0xF3);
-}
+/*\r
+ * rcracki_mt is a multithreaded implementation and fork of the original \r
+ * RainbowCrack\r
+ *\r
+ * Copyright 2009, 2010 DaniĆ«l Niggebrugge <niggebrugge@fox-it.com>\r
+ * Copyright 2009, 2010 James Nobis <frt@quelrod.net>\r
+ *\r
+ * This file is part of rcracki_mt.\r
+ *\r
+ * rcracki_mt is free software: you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation, either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * rcracki_mt is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with rcracki_mt.  If not, see <http://www.gnu.org/licenses/>.\r
+ */\r
+\r
+#if defined(_WIN32) && !defined(__GNUC__)\r
+       #pragma warning(disable : 4786 4267 4018)\r
+#endif\r
+\r
+#include "lm2ntlm.h"\r
+\r
+LM2NTLMcorrector::LM2NTLMcorrector()\r
+{\r
+       progressCurrentCombination = 0;\r
+       totalCurrentCombination = 1;\r
+       counterOverall = 0;\r
+       countCombinations = 0;\r
+       countTotalCombinations = 0;\r
+       counter = 0;\r
+       fillMapW();\r
+       aborting = false;\r
+       sBinary = "";\r
+\r
+}\r
+\r
+string LM2NTLMcorrector::getBinary()\r
+{\r
+       return sBinary;\r
+}\r
+\r
+bool LM2NTLMcorrector::LMPasswordCorrectUnicode(string hexPassword, unsigned char* pNTLMHash, string& sNTLMPassword) //, unsigned char* pLMPassword\r
+{\r
+       string sPlain = "";\r
+\r
+       uint32 i;\r
+       for (i = 0; i < hexPassword.size() / 2; i++)\r
+       {\r
+               string sSub = hexPassword.substr(i * 2, 2);\r
+               int nValue;\r
+               sscanf(sSub.c_str(), "%02x", &nValue);\r
+               sPlain += (unsigned char)nValue;\r
+       }\r
+\r
+       memcpy(NTLMHash, pNTLMHash, MD4_DIGEST_LENGTH);\r
+\r
+\r
+       unsigned long int tmpLength = sPlain.size() * 2;\r
+       unsigned char* pLMPassword = new unsigned char[tmpLength];\r
+\r
+       //printf("Searching for unicode password.\n");\r
+       printf("Failed case correction, trying unicode correction for: %s\n", sPlain.c_str());\r
+       //printf("NTLM hash:          %s\n\n", sNTLMHash.c_str());\r
+       \r
+       setvbuf(stdout, NULL, _IONBF,0);\r
+\r
+       startClock = clock();\r
+       previousClock = clock();\r
+\r
+#ifndef _WIN32\r
+       tty_init();\r
+#endif\r
+\r
+       if (startCorrecting(sPlain, sNTLMPassword, pLMPassword))\r
+       {\r
+               sBinary = ByteToStr(pLMPassword, tmpLength).c_str();\r
+               //printf("\nFound unicode password: %s\n", sNTLMPassword.c_str());\r
+               //printf("Password in hex: %s\n", sBinary.c_str());\r
+               writeEndStats();\r
+#ifndef _WIN32\r
+               tty_done();\r
+#endif\r
+               return true;\r
+       }\r
+       else\r
+       {\r
+               //printf("\ncase correction for password %s fail!\n", sPlain.c_str());\r
+               writeEndStats();\r
+#ifndef _WIN32\r
+               tty_done();\r
+#endif\r
+               return false;\r
+       }\r
+}\r
+\r
+bool LM2NTLMcorrector::startCorrecting(string sLMPassword, string& sNTLMPassword, unsigned char* pLMPassword)\r
+{\r
+       if (sLMPassword.size() == 0)\r
+       {\r
+               sNTLMPassword = "";\r
+               return true;\r
+       }\r
+\r
+       string muteMe = sLMPassword;\r
+       int length = muteMe.size();\r
+\r
+       unsigned char* pMuteMe = new unsigned char[length];\r
+       unsigned char* pTempMute = new unsigned char[length * 2];\r
+\r
+       int i;\r
+       for (i = 0; i < length; i++)\r
+       {\r
+               pMuteMe[i] = muteMe[i];\r
+               pTempMute[i * 2    ] = muteMe[i];\r
+               pTempMute[i * 2 + 1] = 0x00;\r
+               unsigned char muteChar = pMuteMe[i];\r
+               int sizeMapForChar = m_mapChar[muteChar].size();\r
+               int j;\r
+               for (j = 0; j < sizeMapForChar; j++)\r
+               {\r
+                       currentCharmap[i][j] = m_mapChar[muteChar][j];\r
+               }\r
+       }\r
+       \r
+       int* jAtPos = new int[length];\r
+       int* sizeAtPos = new int[length];\r
+       bool* fullAtPos = new bool[length];\r
+\r
+       int setSize;\r
+       for (setSize = 0; setSize <= length; setSize++)\r
+       {\r
+               int cntFull = 0;\r
+\r
+               // clear all 'fullatpos' before new setSize\r
+               int i;\r
+               for (i=0; i < length; i++)\r
+               {\r
+                       fullAtPos[i] = false;\r
+               }\r
+\r
+               //printf("Trying full unicode map for %d/%d characters...\t\t\n", setSize, length);\r
+               printf("Trying full unicode map for %d/%d characters...%-20s\n", setSize, length, "");\r
+\r
+               bool notFirst = true;\r
+\r
+               // start at end and set 'full' combination\r
+               countCombinations = 0;\r
+               countTotalCombinations = calculateTotalCombinations(length, setSize);\r
+\r
+               int sPos = length - 1;\r
+               while (sPos >= 0 && notFirst) // finding combinations for current 'setSize'\r
+               {\r
+                       if (aborting)\r
+                               return false;\r
+\r
+                       if (cntFull < setSize)\r
+                       {\r
+                               if (fullAtPos[sPos] == false)\r
+                               {\r
+                                       fullAtPos[sPos] = true;\r
+                                       cntFull++;\r
+                               }\r
+                               sPos--;\r
+                       }\r
+                       else\r
+                       {\r
+                               if (fullAtPos[sPos] == false && setSize > 0)\r
+                               {\r
+                                       fullAtPos[sPos] = true;\r
+                                       cntFull++;\r
+                                       \r
+                                       // reset positions after sPos\r
+                                       int k;\r
+                                       for (k = sPos+1; k < length; k++)\r
+                                       {\r
+                                               if (fullAtPos[k] == true)\r
+                                               {\r
+                                                       fullAtPos[k] = false;\r
+                                                       cntFull--;\r
+                                               }\r
+                                       }\r
+                                       // start at end again\r
+                                       sPos = length - 1;\r
+                               }\r
+                               else\r
+                               {\r
+                                       sPos--;\r
+                               }\r
+                       }\r
+                       // we have a combination\r
+                       if (cntFull == setSize)\r
+                       {\r
+                               countCombinations++;\r
+\r
+                               setupCombinationAtPositions(length, pMuteMe, pTempMute, jAtPos, fullAtPos, sizeAtPos);\r
+\r
+                               if (checkPermutations(length, pTempMute, jAtPos, sizeAtPos, pLMPassword, sNTLMPassword))\r
+                               {\r
+                                       return true;\r
+                               }\r
+                       }\r
+\r
+                       if (setSize == 0)\r
+                               notFirst = false;\r
+               }\r
+       }\r
+       return false;\r
+}\r
+\r
+// set up combination at positions\r
+void LM2NTLMcorrector::setupCombinationAtPositions(int length, unsigned char* pMuteMe, unsigned char* pTempMute, int* jAtPos, bool* fullAtPos, int* sizeAtPos)\r
+{\r
+       progressCurrentCombination = 0;\r
+       totalCurrentCombination = 1;\r
+\r
+       int i;\r
+       for (i=0; i < length; i++)\r
+       {\r
+               pTempMute[i*2] = currentCharmap[i][0];\r
+               pTempMute[i*2+1] = currentCharmap[i][1]; // reset to first char in map\r
+       \r
+               jAtPos[i] = 0; // reset charcounter for this char (that is all chars)\r
+\r
+               // based on combination, set full map or only upper/lowercase\r
+               if (fullAtPos[i] == true)\r
+               {\r
+                       unsigned char muteChar = pMuteMe[i];\r
+                       long unsigned int sizeMapForChar = m_mapChar[muteChar].size()/2; // 2 bytes per char\r
+                       sizeAtPos[i] = sizeMapForChar;\r
+               }\r
+               else\r
+               {\r
+                       sizeAtPos[i] = 2;\r
+               }\r
+\r
+               totalCurrentCombination *= sizeAtPos[i];\r
+       }\r
+       //printf("Trying %I64u passwords for current combination\t\t\r", totalCurrentCombination);\r
+}\r
+\r
+// go check all permutations for this combination\r
+bool LM2NTLMcorrector::checkPermutations(int length, unsigned char* pTempMute, int* jAtPos, int* sizeAtPos, unsigned char* pLMPassword, string& sNTLMPassword)\r
+{\r
+       int pos = length - 1;\r
+\r
+       while (pos >= 0)\r
+       {\r
+               counter++;\r
+\r
+               pos = length - 1;\r
+\r
+               int jAtCurPos = jAtPos[pos];\r
+               int sizeMapForCharPos = sizeAtPos[pos];\r
+               // move to start of string and find character with permutations left\r
+               while (jAtCurPos >= sizeMapForCharPos-1 && pos >= -1)\r
+               {\r
+                       pos--;\r
+                       if (pos >= 0 )\r
+                       {\r
+                               jAtCurPos = jAtPos[pos];\r
+                               sizeMapForCharPos = sizeAtPos[pos];\r
+                       }\r
+               }\r
+               if (pos < 0)\r
+                       continue;\r
+\r
+               // next permutation for character\r
+               jAtCurPos++;\r
+               jAtPos[pos] = jAtCurPos;\r
+               \r
+               pTempMute[pos*2] = currentCharmap[pos][jAtCurPos*2];\r
+               pTempMute[pos*2+1] = currentCharmap[pos][jAtCurPos*2+1];\r
+               \r
+               // reset positions after pos\r
+               int k;\r
+               for (k = pos+1; k < length; k++)\r
+               {\r
+                       jAtPos[k] = 0;\r
+                       pTempMute[k*2] = currentCharmap[k][0]; // reset to first char in map\r
+                       pTempMute[k*2+1] = currentCharmap[k][1];\r
+               }\r
+\r
+               if (checkNTLMPassword(pTempMute, length, sNTLMPassword) == true)\r
+               {\r
+                       int i;\r
+                       for (i = 0; i < length*2; i++)\r
+                               pLMPassword[i] = pTempMute[i];\r
+                       return true;\r
+               }\r
+\r
+               if (counter > 10000) // don't check clocks too often\r
+               {\r
+                       clock_t currentClock = clock();\r
+                       float fTime = 1.0f * (currentClock - previousClock);\r
+                       if (fTime > 1.0f * CLOCKS_PER_SEC)\r
+                       {\r
+                               float progressPercentageCurrentCombination = progressCurrentCombination * 100.0f / totalCurrentCombination;\r
+                               float fTime = 1.0f * (currentClock - startClock) / CLOCKS_PER_SEC;\r
+                               float currentSpeed = (counterOverall + progressCurrentCombination) / fTime / 1000000;\r
+\r
+                               //printf("%.2f%% of combination %d/%d (%.2f Mhashes/s)\t\t\t\t\r", progressPercentageCurrentCombination, countCombinations, countTotalCombinations, currentSpeed);\r
+                               printf("%.2f%% of combination %d/%d (%.2f Mhashes/s)%-30s\r", progressPercentageCurrentCombination, countCombinations, countTotalCombinations, currentSpeed, "");\r
+\r
+                               previousClock = clock();\r
+                               #ifdef _WIN32\r
+                               if (_kbhit())\r
+                               {\r
+                                       int ch = _getch();\r
+                                       ch = toupper(ch);\r
+                                       if (ch == 'S')\r
+                                       {\r
+                                               aborting = true;\r
+                                               printf( "\nAborting unicode correction for this hash...\n");\r
+                                       }\r
+                                       else\r
+                                       {\r
+                                               printf( "\nPress 'S' to skip unicode correction for this hash...\n");\r
+                                       }\r
+                               }\r
+                               #else\r
+                               int c = tty_getchar();\r
+                               if (c >= 0) {\r
+                                       tty_flush();\r
+                                       if (c==115) { // = s\r
+                                               aborting = true;\r
+                                               printf( "\nAborting unicode correction for this hash...\n");\r
+                                       }\r
+                                       else {\r
+                                               printf( "\nPress 's' to skip unicode correction for this hash...\n");\r
+                                       }\r
+                               }\r
+                               #endif\r
+                               if (aborting)\r
+                                       return false;\r
+                       }\r
+                       counter = 0;\r
+               }\r
+               \r
+               progressCurrentCombination++;\r
+               counterOverall++;\r
+       }\r
+       return false;\r
+}\r
+\r
+// check password, maybe integrate this function in checkPermutations() for performance reasons.\r
+bool LM2NTLMcorrector::checkNTLMPassword(unsigned char* pLMPassword, int nLMPasswordLen, string& sNTLMPassword)\r
+{\r
+       unsigned char md[MD4_DIGEST_LENGTH];\r
+\r
+       //MD4(pLMPassword, nLMPasswordLen * 2, md);\r
+       /*\r
+       MD4_CTX ctx;\r
+       MD4_Init(&ctx);\r
+       MD4_Update(&ctx, pLMPassword, nLMPasswordLen * 2);\r
+       MD4_Final(md, &ctx);*/ \r
+\r
+       MD4_NEW( pLMPassword, nLMPasswordLen * 2, md );\r
+\r
+       if (memcmp(md, NTLMHash, MD4_DIGEST_LENGTH) == 0)\r
+       {\r
+               sNTLMPassword = "";\r
+               int i;\r
+               for (i = 0; i < nLMPasswordLen; i++) {\r
+                       sNTLMPassword += char(pLMPassword[i * 2]);\r
+               }\r
+               return true;\r
+       }\r
+       else\r
+               return false;\r
+}\r
+\r
+void LM2NTLMcorrector::checkAbort()\r
+{\r
+#ifdef _WIN32\r
+       if (_kbhit())\r
+       {\r
+               int ch = _getch();\r
+               ch = toupper(ch);\r
+               if (ch == 'S')\r
+               {\r
+                       aborting = true;\r
+                       printf( "\nAborting unicode correction for this hash...\n");\r
+               }\r
+               else\r
+               {\r
+                       printf( "\nPress 'S' to skip unicode correction for this hash...\n");\r
+               }\r
+       }\r
+#endif\r
+}\r
+\r
+void LM2NTLMcorrector::writeEndStats()\r
+{\r
+       clock_t endClock = clock();\r
+       if (endClock - startClock > 0)\r
+       {\r
+               float fTime = 1.0f * (endClock - startClock) / CLOCKS_PER_SEC;\r
+               float speedOverall = counterOverall / fTime / 1000000;\r
+               printf("\nTried %s passwords in %.2f s (%.2f Mhashes/s)\n", uint64tostr(counterOverall).c_str(), fTime, speedOverall);\r
+       }\r
+\r
+       printf("\n");\r
+}\r
+\r
+int LM2NTLMcorrector::calculateTotalCombinations(int length, int setSize)\r
+{\r
+       return factorial(length) / (factorial(setSize) * factorial(length-setSize));\r
+}\r
+\r
+int LM2NTLMcorrector::factorial (int num)\r
+{\r
+       int result = 1;\r
+       int i;\r
+       for (i = 1; i <= num; ++i)\r
+               result *= i;\r
+       return result;\r
+}\r
+\r
+// convert some bytes into a string\r
+string LM2NTLMcorrector::ByteToStr(const unsigned char* pData, int nLen)\r
+{\r
+       string sRet = "";\r
+       int i;\r
+       for (i = 0; i < nLen/2; i++)\r
+       {\r
+               char szByte[3];\r
+               sprintf(szByte, "%02x", pData[i*2+1]); // swap 2-byte characters again\r
+               sRet += szByte;\r
+               sprintf(szByte, "%02x", pData[i*2]);\r
+               sRet += szByte;\r
+       }\r
+\r
+       return sRet;\r
+}\r
+\r
+void LM2NTLMcorrector::addToMapW(unsigned char key, unsigned char value1, unsigned char value2)\r
+{\r
+       unsigned long int cnt = m_mapChar[key].size();\r
+       m_mapChar[key][cnt] = value2;\r
+       m_mapChar[key][cnt+1] = value1; //reverse for endiannes\r
+}\r
+\r
+// construct the mappings, would be nicer in a separate (importable) file\r
+void LM2NTLMcorrector::fillMapW()\r
+{\r
+       addToMapW(0x01, 0x00, 0x01);\r
+       addToMapW(0x01, 0x26, 0x3A);\r
+       addToMapW(0x02, 0x00, 0x02);\r
+       addToMapW(0x02, 0x26, 0x3B);\r
+       addToMapW(0x03, 0x00, 0x03);\r
+       addToMapW(0x03, 0x26, 0x65);\r
+       addToMapW(0x04, 0x00, 0x04);\r
+       addToMapW(0x04, 0x26, 0x66);\r
+       addToMapW(0x05, 0x00, 0x05);\r
+       addToMapW(0x05, 0x26, 0x63);\r
+       addToMapW(0x06, 0x00, 0x06);\r
+       addToMapW(0x06, 0x26, 0x60);\r
+       addToMapW(0x07, 0x00, 0x07);\r
+       addToMapW(0x07, 0x00, 0xB7);\r
+       addToMapW(0x07, 0x20, 0x22);\r
+       addToMapW(0x07, 0x20, 0x24);\r
+       addToMapW(0x07, 0x20, 0x26);\r
+       addToMapW(0x07, 0x22, 0x19);\r
+       addToMapW(0x07, 0x22, 0xC5);\r
+       addToMapW(0x07, 0x30, 0xFB);\r
+       addToMapW(0x08, 0x00, 0x08);\r
+       addToMapW(0x08, 0x25, 0xD8);\r
+       addToMapW(0x09, 0x00, 0x09);\r
+       addToMapW(0x09, 0x20, 0xDD);\r
+       addToMapW(0x09, 0x25, 0xCB);\r
+       addToMapW(0x09, 0x30, 0x07);\r
+       addToMapW(0x0a, 0x00, 0x0A);\r
+       addToMapW(0x0a, 0x25, 0xD9);\r
+       addToMapW(0x0b, 0x00, 0x0B);\r
+       addToMapW(0x0b, 0x26, 0x42);\r
+       addToMapW(0x0c, 0x00, 0x0C);\r
+       addToMapW(0x0c, 0x26, 0x40);\r
+       addToMapW(0x0d, 0x00, 0x0D);\r
+       addToMapW(0x0d, 0x26, 0x6A);\r
+       addToMapW(0x0e, 0x00, 0x0E);\r
+       addToMapW(0x0e, 0x26, 0x6B);\r
+       addToMapW(0x0f, 0x00, 0x0F);\r
+       addToMapW(0x0f, 0x00, 0xA4);\r
+       addToMapW(0x0f, 0x26, 0x3C);\r
+       addToMapW(0x10, 0x00, 0x10);\r
+       addToMapW(0x10, 0x25, 0xBA);\r
+       addToMapW(0x11, 0x00, 0x11);\r
+       addToMapW(0x11, 0x25, 0xC4);\r
+       addToMapW(0x12, 0x00, 0x12);\r
+       addToMapW(0x12, 0x21, 0x95);\r
+       addToMapW(0x13, 0x00, 0x13);\r
+       addToMapW(0x13, 0x20, 0x3C);\r
+       addToMapW(0x14, 0x00, 0x14);\r
+       addToMapW(0x14, 0x00, 0xB6);\r
+       addToMapW(0x15, 0x00, 0x15);\r
+       addToMapW(0x15, 0x00, 0xA7);\r
+       addToMapW(0x16, 0x00, 0x16);\r
+       addToMapW(0x16, 0x02, 0xC9);\r
+       addToMapW(0x16, 0x25, 0xAC);\r
+       addToMapW(0x17, 0x00, 0x17);\r
+       addToMapW(0x17, 0x21, 0xA8);\r
+       addToMapW(0x18, 0x00, 0x18);\r
+       addToMapW(0x18, 0x21, 0x91);\r
+       addToMapW(0x19, 0x00, 0x19);\r
+       addToMapW(0x19, 0x21, 0x93);\r
+       addToMapW(0x1a, 0x00, 0x1A);\r
+       addToMapW(0x1a, 0x21, 0x92);\r
+       addToMapW(0x1b, 0x00, 0x1B);\r
+       addToMapW(0x1b, 0x21, 0x90);\r
+       addToMapW(0x1c, 0x00, 0x1C);\r
+       addToMapW(0x1c, 0x22, 0x1F);\r
+       addToMapW(0x1d, 0x00, 0x1D);\r
+       addToMapW(0x1d, 0x21, 0x94);\r
+       addToMapW(0x1e, 0x00, 0x1E);\r
+       addToMapW(0x1e, 0x25, 0xB2);\r
+       addToMapW(0x1f, 0x00, 0x1F);\r
+       addToMapW(0x1f, 0x25, 0xBC);\r
+       addToMapW(0x20, 0x00, 0x20);\r
+       addToMapW(0x20, 0x20, 0x00);\r
+       addToMapW(0x20, 0x20, 0x01);\r
+       addToMapW(0x20, 0x20, 0x02);\r
+       addToMapW(0x20, 0x20, 0x03);\r
+       addToMapW(0x20, 0x20, 0x04);\r
+       addToMapW(0x20, 0x20, 0x05);\r
+       addToMapW(0x20, 0x20, 0x06);\r
+       addToMapW(0x20, 0x30, 0x00);\r
+       addToMapW(0x21, 0x00, 0x21);\r
+       addToMapW(0x21, 0x00, 0xA1);\r
+       addToMapW(0x21, 0x01, 0xC3);\r
+       addToMapW(0x21, 0xFF, 0x01);\r
+       addToMapW(0x22, 0x00, 0x22);\r
+       addToMapW(0x22, 0x00, 0xA8);\r
+       addToMapW(0x22, 0x02, 0xBA);\r
+       addToMapW(0x22, 0x03, 0x08);\r
+       addToMapW(0x22, 0x03, 0x0E);\r
+       addToMapW(0x22, 0x20, 0x1C);\r
+       addToMapW(0x22, 0x20, 0x1D);\r
+       addToMapW(0x22, 0x20, 0x1E);\r
+       addToMapW(0x22, 0x20, 0x33);\r
+       addToMapW(0x22, 0x20, 0x35);\r
+       addToMapW(0x22, 0x27, 0x5D);\r
+       addToMapW(0x22, 0x27, 0x5E);\r
+       addToMapW(0x22, 0x30, 0x1D);\r
+       addToMapW(0x22, 0x30, 0x1E);\r
+       addToMapW(0x22, 0x30, 0x1F);\r
+       addToMapW(0x22, 0xFF, 0x02);\r
+       addToMapW(0x23, 0x00, 0x23);\r
+       addToMapW(0x23, 0xFF, 0x03);\r
+       addToMapW(0x24, 0x00, 0x24);\r
+       addToMapW(0x24, 0xFF, 0x04);\r
+       addToMapW(0x25, 0x00, 0x25);\r
+       addToMapW(0x25, 0x06, 0x6A);\r
+       addToMapW(0x25, 0x20, 0x30);\r
+       addToMapW(0x25, 0xFF, 0x05);\r
+       addToMapW(0x26, 0x00, 0x26);\r
+       addToMapW(0x26, 0xFF, 0x06);\r
+       addToMapW(0x27, 0x00, 0x27);\r
+       addToMapW(0x27, 0x00, 0xB4);\r
+       addToMapW(0x27, 0x02, 0xB9);\r
+       addToMapW(0x27, 0x02, 0xBB);\r
+       addToMapW(0x27, 0x02, 0xBC);\r
+       addToMapW(0x27, 0x02, 0xC8);\r
+       addToMapW(0x27, 0x02, 0xCA);\r
+       addToMapW(0x27, 0x02, 0xCB);\r
+       addToMapW(0x27, 0x03, 0x00);\r
+       addToMapW(0x27, 0x03, 0x01);\r
+       addToMapW(0x27, 0x20, 0x18);\r
+       addToMapW(0x27, 0x20, 0x19);\r
+       addToMapW(0x27, 0x20, 0x1A);\r
+       addToMapW(0x27, 0x20, 0x32);\r
+       addToMapW(0x27, 0x27, 0x5B);\r
+       addToMapW(0x27, 0x27, 0x5C);\r
+       addToMapW(0x27, 0xFF, 0x07);\r
+       addToMapW(0x28, 0x00, 0x28);\r
+       addToMapW(0x28, 0x23, 0x20);\r
+       addToMapW(0x28, 0xFF, 0x08);\r
+       addToMapW(0x29, 0x00, 0x29);\r
+       addToMapW(0x29, 0x23, 0x21);\r
+       addToMapW(0x29, 0xFF, 0x09);\r
+       addToMapW(0x2a, 0x00, 0x2A);\r
+       addToMapW(0x2a, 0x22, 0x17);\r
+       addToMapW(0x2a, 0xFF, 0x0A);\r
+       addToMapW(0x2b, 0x00, 0x2B);\r
+       addToMapW(0x2b, 0x00, 0xB1);\r
+       addToMapW(0x2b, 0x20, 0x20);\r
+       addToMapW(0x2b, 0x20, 0x21);\r
+       addToMapW(0x2b, 0xFF, 0x0B);\r
+       addToMapW(0x2c, 0x00, 0x2C);\r
+       addToMapW(0x2c, 0x00, 0xB8);\r
+       addToMapW(0x2c, 0x03, 0x27);\r
+       addToMapW(0x2c, 0x20, 0x1A);\r
+       addToMapW(0x2c, 0x20, 0x1E);\r
+       addToMapW(0x2c, 0xFF, 0x0C);\r
+       addToMapW(0x2d, 0x00, 0x2D);\r
+       addToMapW(0x2d, 0x00, 0xAC);\r
+       addToMapW(0x2d, 0x00, 0xAD);\r
+       addToMapW(0x2d, 0x20, 0x10);\r
+       addToMapW(0x2d, 0x20, 0x11);\r
+       addToMapW(0x2d, 0x20, 0x13);\r
+       addToMapW(0x2d, 0x20, 0x14);\r
+       addToMapW(0x2d, 0x22, 0x12);\r
+       addToMapW(0x2d, 0x22, 0x13);\r
+       addToMapW(0x2d, 0xFF, 0x0D);\r
+       addToMapW(0x2e, 0x00, 0x2E);\r
+       addToMapW(0x2e, 0x20, 0x26);\r
+       addToMapW(0x2e, 0xFF, 0x0E);\r
+       addToMapW(0x2f, 0x00, 0x2F);\r
+       addToMapW(0x2f, 0x20, 0x44);\r
+       addToMapW(0x2f, 0x22, 0x15);\r
+       addToMapW(0x2f, 0x22, 0x16);\r
+       addToMapW(0x2f, 0xFF, 0x0F);\r
+       addToMapW(0x30, 0x00, 0x30);\r
+       addToMapW(0x30, 0x20, 0x70);\r
+       addToMapW(0x30, 0x20, 0x80);\r
+       addToMapW(0x30, 0xFF, 0x10);\r
+       addToMapW(0x31, 0x00, 0x31);\r
+       addToMapW(0x31, 0x00, 0xB9);\r
+       addToMapW(0x31, 0x00, 0xBC);\r
+       addToMapW(0x31, 0x00, 0xBD);\r
+       addToMapW(0x31, 0x20, 0x81);\r
+       addToMapW(0x31, 0xFF, 0x11);\r
+       addToMapW(0x32, 0x00, 0x32);\r
+       addToMapW(0x32, 0x00, 0xB2);\r
+       addToMapW(0x32, 0x20, 0x82);\r
+       addToMapW(0x32, 0xFF, 0x12);\r
+       addToMapW(0x33, 0x00, 0x33);\r
+       addToMapW(0x33, 0x00, 0xB3);\r
+       addToMapW(0x33, 0x00, 0xBE);\r
+       addToMapW(0x33, 0x20, 0x83);\r
+       addToMapW(0x33, 0xFF, 0x13);\r
+       addToMapW(0x34, 0x00, 0x34);\r
+       addToMapW(0x34, 0x20, 0x74);\r
+       addToMapW(0x34, 0x20, 0x84);\r
+       addToMapW(0x34, 0xFF, 0x14);\r
+       addToMapW(0x35, 0x00, 0x35);\r
+       addToMapW(0x35, 0x20, 0x75);\r
+       addToMapW(0x35, 0x20, 0x85);\r
+       addToMapW(0x35, 0xFF, 0x15);\r
+       addToMapW(0x36, 0x00, 0x36);\r
+       addToMapW(0x36, 0x20, 0x76);\r
+       addToMapW(0x36, 0x20, 0x86);\r
+       addToMapW(0x36, 0xFF, 0x16);\r
+       addToMapW(0x37, 0x00, 0x37);\r
+       addToMapW(0x37, 0x20, 0x77);\r
+       addToMapW(0x37, 0x20, 0x87);\r
+       addToMapW(0x37, 0xFF, 0x17);\r
+       addToMapW(0x38, 0x00, 0x38);\r
+       addToMapW(0x38, 0x20, 0x78);\r
+       addToMapW(0x38, 0x20, 0x88);\r
+       addToMapW(0x38, 0x22, 0x1E);\r
+       addToMapW(0x38, 0xFF, 0x18);\r
+       addToMapW(0x39, 0x00, 0x39);\r
+       addToMapW(0x39, 0x20, 0x78);\r
+       addToMapW(0x39, 0x20, 0x89);\r
+       addToMapW(0x39, 0xFF, 0x19);\r
+       addToMapW(0x3a, 0x00, 0x3A);\r
+       addToMapW(0x3a, 0x05, 0x89);\r
+       addToMapW(0x3a, 0x20, 0x26);\r
+       addToMapW(0x3a, 0x22, 0x36);\r
+       addToMapW(0x3a, 0xFF, 0x1A);\r
+       addToMapW(0x3b, 0x00, 0x3B);\r
+       addToMapW(0x3b, 0x03, 0x7E);\r
+       addToMapW(0x3b, 0xFF, 0x1B);\r
+       addToMapW(0x3c, 0x00, 0x3C);\r
+       addToMapW(0x3c, 0x00, 0xAB);\r
+       addToMapW(0x3c, 0x20, 0x39);\r
+       addToMapW(0x3c, 0x23, 0x29);\r
+       addToMapW(0x3c, 0x30, 0x08);\r
+       addToMapW(0x3c, 0xFF, 0x1C);\r
+       addToMapW(0x3d, 0x00, 0x3D);\r
+       addToMapW(0x3d, 0x22, 0x61);\r
+       addToMapW(0x3d, 0x22, 0x64);\r
+       addToMapW(0x3d, 0x22, 0x65);\r
+       addToMapW(0x3d, 0xFF, 0x1D);\r
+       addToMapW(0x3e, 0x00, 0x3E);\r
+       addToMapW(0x3e, 0x00, 0xBB);\r
+       addToMapW(0x3e, 0x20, 0x3A);\r
+       addToMapW(0x3e, 0x23, 0x2A);\r
+       addToMapW(0x3e, 0x30, 0x09);\r
+       addToMapW(0x3e, 0xFF, 0x1E);\r
+       addToMapW(0x3f, 0x00, 0x3F);\r
+       addToMapW(0x40, 0x00, 0x40);\r
+       addToMapW(0x40, 0xFF, 0x20);\r
+       addToMapW(0x41, 0x00, 0x41);\r
+       addToMapW(0x41, 0x00, 0x61);\r
+       addToMapW(0x41, 0x00, 0xAA);\r
+       addToMapW(0x41, 0x00, 0xC0);\r
+       addToMapW(0x41, 0x00, 0xC1);\r
+       addToMapW(0x41, 0x00, 0xC2);\r
+       addToMapW(0x41, 0x00, 0xC3);\r
+       addToMapW(0x41, 0x00, 0xC4);\r
+       addToMapW(0x41, 0x00, 0xC5);\r
+       addToMapW(0x41, 0x00, 0xC6);\r
+       addToMapW(0x41, 0x00, 0xE0);\r
+       addToMapW(0x41, 0x00, 0xE1);\r
+       addToMapW(0x41, 0x00, 0xE2);\r
+       addToMapW(0x41, 0x00, 0xE3);\r
+       addToMapW(0x41, 0x00, 0xE4);\r
+       addToMapW(0x41, 0x00, 0xE5);\r
+       addToMapW(0x41, 0x00, 0xE6);\r
+       addToMapW(0x41, 0x01, 0x00);\r
+       addToMapW(0x41, 0x01, 0x01);\r
+       addToMapW(0x41, 0x01, 0x02);\r
+       addToMapW(0x41, 0x01, 0x03);\r
+       addToMapW(0x41, 0x01, 0x04);\r
+       addToMapW(0x41, 0x01, 0x05);\r
+       addToMapW(0x41, 0x01, 0xCD);\r
+       addToMapW(0x41, 0x01, 0xCE);\r
+       addToMapW(0x41, 0x01, 0xDE);\r
+       addToMapW(0x41, 0x01, 0xDF);\r
+       addToMapW(0x41, 0x03, 0xB1);\r
+       addToMapW(0x41, 0x21, 0x2B);\r
+       addToMapW(0x41, 0xFF, 0x21);\r
+       addToMapW(0x41, 0xFF, 0x41);\r
+       addToMapW(0x42, 0x00, 0x42);\r
+       addToMapW(0x42, 0x00, 0x62);\r
+       addToMapW(0x42, 0x01, 0x80);\r
+       addToMapW(0x42, 0x21, 0x2C);\r
+       addToMapW(0x42, 0xFF, 0x22);\r
+       addToMapW(0x42, 0xFF, 0x42);\r
+       addToMapW(0x43, 0x00, 0x43);\r
+       addToMapW(0x43, 0x00, 0x63);\r
+       addToMapW(0x43, 0x00, 0xA2);\r
+       addToMapW(0x43, 0x00, 0xA9);\r
+       addToMapW(0x43, 0x00, 0xC7);\r
+       addToMapW(0x43, 0x00, 0xE7);\r
+       addToMapW(0x43, 0x00, 0xE8);\r
+       addToMapW(0x43, 0x01, 0x06);\r
+       addToMapW(0x43, 0x01, 0x07);\r
+       addToMapW(0x43, 0x01, 0x08);\r
+       addToMapW(0x43, 0x01, 0x09);\r
+       addToMapW(0x43, 0x01, 0x0A);\r
+       addToMapW(0x43, 0x01, 0x0B);\r
+       addToMapW(0x43, 0x01, 0x0C);\r
+       addToMapW(0x43, 0x01, 0x0D);\r
+       addToMapW(0x43, 0x21, 0x02);\r
+       addToMapW(0x43, 0x21, 0x2D);\r
+       addToMapW(0x43, 0xFF, 0x23);\r
+       addToMapW(0x43, 0xFF, 0x43);\r
+       addToMapW(0x44, 0x00, 0x44);\r
+       addToMapW(0x44, 0x00, 0x64);\r
+       addToMapW(0x44, 0x00, 0xD0);\r
+       addToMapW(0x44, 0x00, 0xF0);\r
+       addToMapW(0x44, 0x01, 0x0E);\r
+       addToMapW(0x44, 0x01, 0x0F);\r
+       addToMapW(0x44, 0x01, 0x10);\r
+       addToMapW(0x44, 0x01, 0x11);\r
+       addToMapW(0x44, 0x01, 0x89);\r
+       addToMapW(0x44, 0x03, 0xB4);\r
+       addToMapW(0x44, 0x26, 0x6A);\r
+       addToMapW(0x44, 0x26, 0x6B);\r
+       addToMapW(0x44, 0xFF, 0x24);\r
+       addToMapW(0x44, 0xFF, 0x44);\r
+       addToMapW(0x45, 0x00, 0x45);\r
+       addToMapW(0x45, 0x00, 0x65);\r
+       addToMapW(0x45, 0x00, 0xC8);\r
+       addToMapW(0x45, 0x00, 0xC9);\r
+       addToMapW(0x45, 0x00, 0xCA);\r
+       addToMapW(0x45, 0x00, 0xCB);\r
+       addToMapW(0x45, 0x00, 0xE8);\r
+       addToMapW(0x45, 0x00, 0xE9);\r
+       addToMapW(0x45, 0x00, 0xEA);\r
+       addToMapW(0x45, 0x00, 0xEB);\r
+       addToMapW(0x45, 0x01, 0x12);\r
+       addToMapW(0x45, 0x01, 0x13);\r
+       addToMapW(0x45, 0x01, 0x14);\r
+       addToMapW(0x45, 0x01, 0x15);\r
+       addToMapW(0x45, 0x01, 0x16);\r
+       addToMapW(0x45, 0x01, 0x17);\r
+       addToMapW(0x45, 0x01, 0x18);\r
+       addToMapW(0x45, 0x01, 0x19);\r
+       addToMapW(0x45, 0x01, 0x1A);\r
+       addToMapW(0x45, 0x01, 0x1B);\r
+       addToMapW(0x45, 0x03, 0xB5);\r
+       addToMapW(0x45, 0x21, 0x07);\r
+       addToMapW(0x45, 0x21, 0x2E);\r
+       addToMapW(0x45, 0x21, 0x2F);\r
+       addToMapW(0x45, 0x21, 0x30);\r
+       addToMapW(0x45, 0xFF, 0x25);\r
+       addToMapW(0x45, 0xFF, 0x45);\r
+       addToMapW(0x46, 0x00, 0x46);\r
+       addToMapW(0x46, 0x00, 0x66);\r
+       addToMapW(0x46, 0x01, 0x91);\r
+       addToMapW(0x46, 0x01, 0x92);\r
+       addToMapW(0x46, 0x03, 0xA6);\r
+       addToMapW(0x46, 0x03, 0xC6);\r
+       addToMapW(0x46, 0x21, 0x31);\r
+       addToMapW(0x46, 0xFF, 0x26);\r
+       addToMapW(0x46, 0xFF, 0x46);\r
+       addToMapW(0x47, 0x00, 0x47);\r
+       addToMapW(0x47, 0x00, 0x67);\r
+       addToMapW(0x47, 0x01, 0x1C);\r
+       addToMapW(0x47, 0x01, 0x1D);\r
+       addToMapW(0x47, 0x01, 0x1E);\r
+       addToMapW(0x47, 0x01, 0x1F);\r
+       addToMapW(0x47, 0x01, 0x20);\r
+       addToMapW(0x47, 0x01, 0x21);\r
+       addToMapW(0x47, 0x01, 0x22);\r
+       addToMapW(0x47, 0x01, 0x23);\r
+       addToMapW(0x47, 0x01, 0xE4);\r
+       addToMapW(0x47, 0x01, 0xE5);\r
+       addToMapW(0x47, 0x01, 0xE6);\r
+       addToMapW(0x47, 0x01, 0xE7);\r
+       addToMapW(0x47, 0x02, 0x61);\r
+       addToMapW(0x47, 0x03, 0x93);\r
+       addToMapW(0x47, 0x21, 0x0A);\r
+       addToMapW(0x47, 0xFF, 0x27);\r
+       addToMapW(0x47, 0xFF, 0x47);\r
+       addToMapW(0x48, 0x00, 0x48);\r
+       addToMapW(0x48, 0x00, 0x68);\r
+       addToMapW(0x48, 0x01, 0x24);\r
+       addToMapW(0x48, 0x01, 0x25);\r
+       addToMapW(0x48, 0x01, 0x26);\r
+       addToMapW(0x48, 0x01, 0x27);\r
+       addToMapW(0x48, 0x04, 0xBB);\r
+       addToMapW(0x48, 0x21, 0x0B);\r
+       addToMapW(0x48, 0x21, 0x0C);\r
+       addToMapW(0x48, 0x21, 0x0D);\r
+       addToMapW(0x48, 0x21, 0x0E);\r
+       addToMapW(0x48, 0xFF, 0x28);\r
+       addToMapW(0x48, 0xFF, 0x48);\r
+       addToMapW(0x49, 0x00, 0x49);\r
+       addToMapW(0x49, 0x00, 0x69);\r
+       addToMapW(0x49, 0x00, 0xCC);\r
+       addToMapW(0x49, 0x00, 0xCD);\r
+       addToMapW(0x49, 0x00, 0xCE);\r
+       addToMapW(0x49, 0x00, 0xCF);\r
+       addToMapW(0x49, 0x00, 0xEC);\r
+       addToMapW(0x49, 0x00, 0xED);\r
+       addToMapW(0x49, 0x00, 0xEE);\r
+       addToMapW(0x49, 0x00, 0xEF);\r
+       addToMapW(0x49, 0x01, 0x28);\r
+       addToMapW(0x49, 0x01, 0x29);\r
+       addToMapW(0x49, 0x01, 0x2A);\r
+       addToMapW(0x49, 0x01, 0x2B);\r
+       addToMapW(0x49, 0x01, 0x2C);\r
+       addToMapW(0x49, 0x01, 0x2D);\r
+       addToMapW(0x49, 0x01, 0x2E);\r
+       addToMapW(0x49, 0x01, 0x2F);\r
+       addToMapW(0x49, 0x01, 0x30);\r
+       addToMapW(0x49, 0x01, 0x31);\r
+       addToMapW(0x49, 0x01, 0x97);\r
+       addToMapW(0x49, 0x01, 0xCF);\r
+       addToMapW(0x49, 0x01, 0xD0);\r
+       addToMapW(0x49, 0x21, 0x10);\r
+       addToMapW(0x49, 0x21, 0x11);\r
+       addToMapW(0x49, 0xFF, 0x29);\r
+       addToMapW(0x49, 0xFF, 0x49);\r
+       addToMapW(0x4a, 0x00, 0x4A);\r
+       addToMapW(0x4a, 0x00, 0x6A);\r
+       addToMapW(0x4a, 0x01, 0x34);\r
+       addToMapW(0x4a, 0x01, 0x35);\r
+       addToMapW(0x4a, 0x01, 0xF0);\r
+       addToMapW(0x4a, 0xFF, 0x2A);\r
+       addToMapW(0x4a, 0xFF, 0x4A);\r
+       addToMapW(0x4b, 0x00, 0x4B);\r
+       addToMapW(0x4b, 0x00, 0x6B);\r
+       addToMapW(0x4b, 0x01, 0x36);\r
+       addToMapW(0x4b, 0x01, 0x37);\r
+       addToMapW(0x4b, 0x01, 0xE8);\r
+       addToMapW(0x4b, 0x01, 0xE9);\r
+       addToMapW(0x4b, 0x21, 0x2A);\r
+       addToMapW(0x4b, 0xFF, 0x2B);\r
+       addToMapW(0x4b, 0xFF, 0x4B);\r
+       addToMapW(0x4c, 0x00, 0x4C);\r
+       addToMapW(0x4c, 0x00, 0x6C);\r
+       addToMapW(0x4c, 0x00, 0xA3);\r
+       addToMapW(0x4c, 0x01, 0x39);\r
+       addToMapW(0x4c, 0x01, 0x3A);\r
+       addToMapW(0x4c, 0x01, 0x3B);\r
+       addToMapW(0x4c, 0x01, 0x3C);\r
+       addToMapW(0x4c, 0x01, 0x3D);\r
+       addToMapW(0x4c, 0x01, 0x3E);\r
+       addToMapW(0x4c, 0x01, 0x41);\r
+       addToMapW(0x4c, 0x01, 0x42);\r
+       addToMapW(0x4c, 0x01, 0x9A);\r
+       addToMapW(0x4c, 0x20, 0xA4);\r
+       addToMapW(0x4c, 0x21, 0x12);\r
+       addToMapW(0x4c, 0x21, 0x13);\r
+       addToMapW(0x4c, 0xFF, 0x2C);\r
+       addToMapW(0x4c, 0xFF, 0x4C);\r
+       addToMapW(0x4d, 0x00, 0x4D);\r
+       addToMapW(0x4d, 0x00, 0x6D);\r
+       addToMapW(0x4d, 0x21, 0x33);\r
+       addToMapW(0x4d, 0xFF, 0x2D);\r
+       addToMapW(0x4d, 0xFF, 0x4D);\r
+       addToMapW(0x4e, 0x00, 0x4E);\r
+       addToMapW(0x4e, 0x00, 0x6E);\r
+       addToMapW(0x4e, 0x00, 0xD1);\r
+       addToMapW(0x4e, 0x00, 0xF1);\r
+       addToMapW(0x4e, 0x01, 0x43);\r
+       addToMapW(0x4e, 0x01, 0x44);\r
+       addToMapW(0x4e, 0x01, 0x45);\r
+       addToMapW(0x4e, 0x01, 0x46);\r
+       addToMapW(0x4e, 0x01, 0x47);\r
+       addToMapW(0x4e, 0x01, 0x48);\r
+       addToMapW(0x4e, 0x20, 0x7F);\r
+       addToMapW(0x4e, 0x21, 0x15);\r
+       addToMapW(0x4e, 0x22, 0x29);\r
+       addToMapW(0x4e, 0xFF, 0x2E);\r
+       addToMapW(0x4e, 0xFF, 0x4E);\r
+       addToMapW(0x4f, 0x00, 0x4F);\r
+       addToMapW(0x4f, 0x00, 0x6F);\r
+       addToMapW(0x4f, 0x00, 0xB0);\r
+       addToMapW(0x4f, 0x00, 0xBA);\r
+       addToMapW(0x4f, 0x00, 0xD2);\r
+       addToMapW(0x4f, 0x00, 0xD3);\r
+       addToMapW(0x4f, 0x00, 0xD4);\r
+       addToMapW(0x4f, 0x00, 0xD5);\r
+       addToMapW(0x4f, 0x00, 0xD6);\r
+       addToMapW(0x4f, 0x00, 0xD8);\r
+       addToMapW(0x4f, 0x00, 0xF2);\r
+       addToMapW(0x4f, 0x00, 0xF3);\r
+       addToMapW(0x4f, 0x00, 0xF4);\r
+       addToMapW(0x4f, 0x00, 0xF5);\r
+       addToMapW(0x4f, 0x00, 0xF6);\r
+       addToMapW(0x4f, 0x00, 0xF8);\r
+       addToMapW(0x4f, 0x01, 0x4C);\r
+       addToMapW(0x4f, 0x01, 0x4D);\r
+       addToMapW(0x4f, 0x01, 0x4E);\r
+       addToMapW(0x4f, 0x01, 0x4F);\r
+       addToMapW(0x4f, 0x01, 0x50);\r
+       addToMapW(0x4f, 0x01, 0x51);\r
+       addToMapW(0x4f, 0x01, 0x52);\r
+       addToMapW(0x4f, 0x01, 0x53);\r
+       addToMapW(0x4f, 0x01, 0x9F);\r
+       addToMapW(0x4f, 0x01, 0xA0);\r
+       addToMapW(0x4f, 0x01, 0xA1);\r
+       addToMapW(0x4f, 0x01, 0xD1);\r
+       addToMapW(0x4f, 0x01, 0xD2);\r
+       addToMapW(0x4f, 0x01, 0xEA);\r
+       addToMapW(0x4f, 0x01, 0xEB);\r
+       addToMapW(0x4f, 0x01, 0xEC);\r
+       addToMapW(0x4f, 0x01, 0xED);\r
+       addToMapW(0x4f, 0x03, 0xA9);\r
+       addToMapW(0x4f, 0x20, 0xDD);\r
+       addToMapW(0x4f, 0x21, 0x26);\r
+       addToMapW(0x4f, 0x21, 0x34);\r
+       addToMapW(0x4f, 0x22, 0x05);\r
+       addToMapW(0x4f, 0x30, 0x07);\r
+       addToMapW(0x4f, 0xFF, 0x2F);\r
+       addToMapW(0x4f, 0xFF, 0x4F);\r
+       addToMapW(0x50, 0x00, 0x50);\r
+       addToMapW(0x50, 0x00, 0x70);\r
+       addToMapW(0x50, 0x03, 0xC0);\r
+       addToMapW(0x50, 0x20, 0xA7);\r
+       addToMapW(0x50, 0x21, 0x18);\r
+       addToMapW(0x50, 0x21, 0x19);\r
+       addToMapW(0x50, 0xFF, 0x30);\r
+       addToMapW(0x50, 0xFF, 0x50);\r
+       addToMapW(0x51, 0x00, 0x51);\r
+       addToMapW(0x51, 0x00, 0x71);\r
+       addToMapW(0x51, 0x21, 0x1A);\r
+       addToMapW(0x51, 0xFF, 0x31);\r
+       addToMapW(0x51, 0xFF, 0x51);\r
+       addToMapW(0x52, 0x00, 0x52);\r
+       addToMapW(0x52, 0x00, 0x72);\r
+       addToMapW(0x52, 0x00, 0xAE);\r
+       addToMapW(0x52, 0x01, 0x54);\r
+       addToMapW(0x52, 0x01, 0x55);\r
+       addToMapW(0x52, 0x01, 0x56);\r
+       addToMapW(0x52, 0x01, 0x57);\r
+       addToMapW(0x52, 0x01, 0x58);\r
+       addToMapW(0x52, 0x01, 0x59);\r
+       addToMapW(0x52, 0x21, 0x1B);\r
+       addToMapW(0x52, 0x21, 0x1C);\r
+       addToMapW(0x52, 0x21, 0x1D);\r
+       addToMapW(0x52, 0xFF, 0x32);\r
+       addToMapW(0x52, 0xFF, 0x52);\r
+       addToMapW(0x53, 0x00, 0x53);\r
+       addToMapW(0x53, 0x00, 0x73);\r
+       addToMapW(0x53, 0x00, 0xDF);\r
+       addToMapW(0x53, 0x01, 0x5A);\r
+       addToMapW(0x53, 0x01, 0x5B);\r
+       addToMapW(0x53, 0x01, 0x5C);\r
+       addToMapW(0x53, 0x01, 0x5D);\r
+       addToMapW(0x53, 0x01, 0x5E);\r
+       addToMapW(0x53, 0x01, 0x5F);\r
+       addToMapW(0x53, 0x01, 0x60);\r
+       addToMapW(0x53, 0x01, 0x61);\r
+       addToMapW(0x53, 0x01, 0xA9);\r
+       addToMapW(0x53, 0x03, 0xA3);\r
+       addToMapW(0x53, 0x03, 0xC3);\r
+       addToMapW(0x53, 0x22, 0x11);\r
+       addToMapW(0x53, 0xFF, 0x33);\r
+       addToMapW(0x53, 0xFF, 0x53);\r
+       addToMapW(0x54, 0x00, 0x54);\r
+       addToMapW(0x54, 0x00, 0x74);\r
+       addToMapW(0x54, 0x00, 0xDE);\r
+       addToMapW(0x54, 0x00, 0xFE);\r
+       addToMapW(0x54, 0x01, 0x62);\r
+       addToMapW(0x54, 0x01, 0x63);\r
+       addToMapW(0x54, 0x01, 0x64);\r
+       addToMapW(0x54, 0x01, 0x65);\r
+       addToMapW(0x54, 0x01, 0x66);\r
+       addToMapW(0x54, 0x01, 0x67);\r
+       addToMapW(0x54, 0x01, 0xAB);\r
+       addToMapW(0x54, 0x01, 0xAE);\r
+       addToMapW(0x54, 0x03, 0xC4);\r
+       addToMapW(0x54, 0x21, 0x22);\r
+       addToMapW(0x54, 0xFF, 0x34);\r
+       addToMapW(0x54, 0xFF, 0x54);\r
+       addToMapW(0x55, 0x00, 0x55);\r
+       addToMapW(0x55, 0x00, 0x75);\r
+       addToMapW(0x55, 0x00, 0xB5);\r
+       addToMapW(0x55, 0x00, 0xD9);\r
+       addToMapW(0x55, 0x00, 0xDA);\r
+       addToMapW(0x55, 0x00, 0xDB);\r
+       addToMapW(0x55, 0x00, 0xDC);\r
+       addToMapW(0x55, 0x00, 0xF9);\r
+       addToMapW(0x55, 0x00, 0xFA);\r
+       addToMapW(0x55, 0x00, 0xFB);\r
+       addToMapW(0x55, 0x00, 0xFC);\r
+       addToMapW(0x55, 0x01, 0x68);\r
+       addToMapW(0x55, 0x01, 0x69);\r
+       addToMapW(0x55, 0x01, 0x6A);\r
+       addToMapW(0x55, 0x01, 0x6B);\r
+       addToMapW(0x55, 0x01, 0x6C);\r
+       addToMapW(0x55, 0x01, 0x6D);\r
+       addToMapW(0x55, 0x01, 0x6E);\r
+       addToMapW(0x55, 0x01, 0x6F);\r
+       addToMapW(0x55, 0x01, 0x70);\r
+       addToMapW(0x55, 0x01, 0x71);\r
+       addToMapW(0x55, 0x01, 0x72);\r
+       addToMapW(0x55, 0x01, 0x73);\r
+       addToMapW(0x55, 0x01, 0xAF);\r
+       addToMapW(0x55, 0x01, 0xB0);\r
+       addToMapW(0x55, 0x01, 0xD3);\r
+       addToMapW(0x55, 0x01, 0xD4);\r
+       addToMapW(0x55, 0x01, 0xD5);\r
+       addToMapW(0x55, 0x01, 0xD6);\r
+       addToMapW(0x55, 0x01, 0xD7);\r
+       addToMapW(0x55, 0x01, 0xD8);\r
+       addToMapW(0x55, 0x01, 0xD9);\r
+       addToMapW(0x55, 0x01, 0xDA);\r
+       addToMapW(0x55, 0x01, 0xDB);\r
+       addToMapW(0x55, 0x01, 0xDC);\r
+       addToMapW(0x55, 0x03, 0xBC);\r
+       addToMapW(0x55, 0xFF, 0x35);\r
+       addToMapW(0x55, 0xFF, 0x55);\r
+       addToMapW(0x56, 0x00, 0x56);\r
+       addToMapW(0x56, 0x00, 0x76);\r
+       addToMapW(0x56, 0x22, 0x1A);\r
+       addToMapW(0x56, 0x27, 0x13);\r
+       addToMapW(0x56, 0xFF, 0x36);\r
+       addToMapW(0x56, 0xFF, 0x56);\r
+       addToMapW(0x57, 0x00, 0x57);\r
+       addToMapW(0x57, 0x00, 0x77);\r
+       addToMapW(0x57, 0x01, 0x74);\r
+       addToMapW(0x57, 0x01, 0x75);\r
+       addToMapW(0x57, 0xFF, 0x37);\r
+       addToMapW(0x57, 0xFF, 0x57);\r
+       addToMapW(0x58, 0x00, 0x58);\r
+       addToMapW(0x58, 0x00, 0x78);\r
+       addToMapW(0x58, 0x00, 0xD7);\r
+       addToMapW(0x58, 0xFF, 0x38);\r
+       addToMapW(0x58, 0xFF, 0x58);\r
+       addToMapW(0x59, 0x00, 0x59);\r
+       addToMapW(0x59, 0x00, 0x79);\r
+       addToMapW(0x59, 0x00, 0xA5);\r
+       addToMapW(0x59, 0x00, 0xDD);\r
+       addToMapW(0x59, 0x00, 0xFD);\r
+       addToMapW(0x59, 0x00, 0xFF);\r
+       addToMapW(0x59, 0x01, 0x76);\r
+       addToMapW(0x59, 0x01, 0x77);\r
+       addToMapW(0x59, 0x01, 0x78);\r
+       addToMapW(0x59, 0xFF, 0x39);\r
+       addToMapW(0x59, 0xFF, 0x59);\r
+       addToMapW(0x5a, 0x00, 0x5A);\r
+       addToMapW(0x5a, 0x00, 0x7A);\r
+       addToMapW(0x5a, 0x01, 0x79);\r
+       addToMapW(0x5a, 0x01, 0x7A);\r
+       addToMapW(0x5a, 0x01, 0x7B);\r
+       addToMapW(0x5a, 0x01, 0x7C);\r
+       addToMapW(0x5a, 0x01, 0x7D);\r
+       addToMapW(0x5a, 0x01, 0x7E);\r
+       addToMapW(0x5a, 0x01, 0xB6);\r
+       addToMapW(0x5a, 0x21, 0x24);\r
+       addToMapW(0x5a, 0x21, 0x28);\r
+       addToMapW(0x5a, 0xFF, 0x3A);\r
+       addToMapW(0x5a, 0xFF, 0x5A);\r
+       addToMapW(0x5b, 0x00, 0x5B);\r
+       addToMapW(0x5b, 0x30, 0x1A);\r
+       addToMapW(0x5b, 0xFF, 0x3B);\r
+       addToMapW(0x5c, 0x00, 0x5C);\r
+       addToMapW(0x5c, 0x00, 0xA5);\r
+       addToMapW(0x5c, 0x22, 0x16);\r
+       addToMapW(0x5c, 0xFF, 0x3C);\r
+       addToMapW(0x5d, 0x00, 0x5D);\r
+       addToMapW(0x5d, 0x30, 0x1B);\r
+       addToMapW(0x5d, 0xFF, 0x3D);\r
+       addToMapW(0x5e, 0x00, 0x5E);\r
+       addToMapW(0x5e, 0x02, 0xC4);\r
+       addToMapW(0x5e, 0x02, 0xC6);\r
+       addToMapW(0x5e, 0x02, 0xC7);\r
+       addToMapW(0x5e, 0x02, 0xD8);\r
+       addToMapW(0x5e, 0x03, 0x02);\r
+       addToMapW(0x5e, 0x03, 0x06);\r
+       addToMapW(0x5e, 0x03, 0x0C);\r
+       addToMapW(0x5e, 0x23, 0x03);\r
+       addToMapW(0x5e, 0xFF, 0x3E);\r
+       addToMapW(0x5f, 0x00, 0x5F);\r
+       addToMapW(0x5f, 0x00, 0xAF);\r
+       addToMapW(0x5f, 0x00, 0xBE);\r
+       addToMapW(0x5f, 0x00, 0xDE);\r
+       addToMapW(0x5f, 0x00, 0xFE);\r
+       addToMapW(0x5f, 0x02, 0xCD);\r
+       addToMapW(0x5f, 0x03, 0x31);\r
+       addToMapW(0x5f, 0x03, 0x32);\r
+       addToMapW(0x5f, 0x20, 0x17);\r
+       addToMapW(0x5f, 0x30, 0xFC);\r
+       addToMapW(0x5f, 0xFF, 0x3F);\r
+       addToMapW(0x60, 0x00, 0x60);\r
+       addToMapW(0x60, 0x02, 0xCB);\r
+       addToMapW(0x60, 0x03, 0x00);\r
+       addToMapW(0x60, 0x20, 0x18);\r
+       addToMapW(0x60, 0x20, 0x35);\r
+       addToMapW(0x60, 0xFF, 0x40);\r
+       addToMapW(0x7b, 0x00, 0x7B);\r
+       addToMapW(0x7b, 0xFF, 0x5B);\r
+       addToMapW(0x7c, 0x00, 0x7C);\r
+       addToMapW(0x7c, 0x00, 0xA6);\r
+       addToMapW(0x7c, 0x01, 0xC0);\r
+       addToMapW(0x7c, 0x22, 0x23);\r
+       addToMapW(0x7c, 0x27, 0x58);\r
+       addToMapW(0x7c, 0xFF, 0x5C);\r
+       addToMapW(0x7d, 0x00, 0x7D);\r
+       addToMapW(0x7d, 0x30, 0x1B);\r
+       addToMapW(0x7d, 0xFF, 0x5D);\r
+       addToMapW(0x7e, 0x00, 0x7E);\r
+       addToMapW(0x7e, 0x02, 0xDC);\r
+       addToMapW(0x7e, 0x03, 0x03);\r
+       addToMapW(0x7e, 0x22, 0x3C);\r
+       addToMapW(0x7e, 0x22, 0x48);\r
+       addToMapW(0x7e, 0xFF, 0x5E);\r
+       addToMapW(0x7f, 0x00, 0x7F);\r
+       addToMapW(0x7f, 0x23, 0x02);\r
+       addToMapW(0x7f, 0x26, 0x60);\r
+       addToMapW(0x7f, 0x26, 0x63);\r
+       addToMapW(0x7f, 0x26, 0x65);\r
+       addToMapW(0x7f, 0x26, 0x66);\r
+       addToMapW(0x80, 0x00, 0x80);\r
+       addToMapW(0x80, 0x00, 0xC7);\r
+       addToMapW(0x80, 0x00, 0xE7);\r
+       addToMapW(0x80, 0x01, 0x06);\r
+       addToMapW(0x80, 0x01, 0x07);\r
+       addToMapW(0x80, 0x03, 0x91);\r
+       addToMapW(0x80, 0x03, 0xB1);\r
+       addToMapW(0x80, 0x04, 0x10);\r
+       addToMapW(0x80, 0x04, 0x30);\r
+       addToMapW(0x80, 0x05, 0xD0);\r
+       addToMapW(0x80, 0x20, 0xAC);\r
+       addToMapW(0x81, 0x00, 0x81);\r
+       addToMapW(0x81, 0x03, 0x92);\r
+       addToMapW(0x81, 0x03, 0xB2);\r
+       addToMapW(0x81, 0x04, 0x02);\r
+       addToMapW(0x81, 0x04, 0x11);\r
+       addToMapW(0x81, 0x04, 0x31);\r
+       addToMapW(0x81, 0x04, 0x52);\r
+       addToMapW(0x81, 0x05, 0xD1);\r
+       addToMapW(0x82, 0x00, 0x82);\r
+       addToMapW(0x82, 0x03, 0x93);\r
+       addToMapW(0x82, 0x03, 0xB3);\r
+       addToMapW(0x82, 0x04, 0x12);\r
+       addToMapW(0x82, 0x04, 0x32);\r
+       addToMapW(0x82, 0x05, 0xD2);\r
+       addToMapW(0x82, 0x20, 0x1A);\r
+       addToMapW(0x83, 0x00, 0x83);\r
+       addToMapW(0x83, 0x03, 0x94);\r
+       addToMapW(0x83, 0x03, 0xB4);\r
+       addToMapW(0x83, 0x04, 0x03);\r
+       addToMapW(0x83, 0x04, 0x13);\r
+       addToMapW(0x83, 0x04, 0x33);\r
+       addToMapW(0x83, 0x04, 0x53);\r
+       addToMapW(0x83, 0x05, 0xD3);\r
+       addToMapW(0x84, 0x00, 0x84);\r
+       addToMapW(0x84, 0x03, 0x95);\r
+       addToMapW(0x84, 0x03, 0xB5);\r
+       addToMapW(0x84, 0x04, 0x14);\r
+       addToMapW(0x84, 0x04, 0x34);\r
+       addToMapW(0x84, 0x05, 0xD4);\r
+       addToMapW(0x84, 0x20, 0x1E);\r
+       addToMapW(0x85, 0x03, 0x96);\r
+       addToMapW(0x85, 0x03, 0xB6);\r
+       addToMapW(0x85, 0x04, 0x01);\r
+       addToMapW(0x85, 0x04, 0x15);\r
+       addToMapW(0x85, 0x04, 0x35);\r
+       addToMapW(0x85, 0x04, 0x51);\r
+       addToMapW(0x85, 0x05, 0xD5);\r
+       addToMapW(0x85, 0x20, 0x26);\r
+       addToMapW(0x86, 0x00, 0x86);\r
+       addToMapW(0x86, 0x03, 0x97);\r
+       addToMapW(0x86, 0x03, 0xB7);\r
+       addToMapW(0x86, 0x04, 0x16);\r
+       addToMapW(0x86, 0x04, 0x36);\r
+       addToMapW(0x86, 0x05, 0xD6);\r
+       addToMapW(0x86, 0x20, 0x20);\r
+       addToMapW(0x87, 0x00, 0x87);\r
+       addToMapW(0x87, 0x03, 0x98);\r
+       addToMapW(0x87, 0x03, 0xB8);\r
+       addToMapW(0x87, 0x04, 0x04);\r
+       addToMapW(0x87, 0x04, 0x17);\r
+       addToMapW(0x87, 0x04, 0x37);\r
+       addToMapW(0x87, 0x04, 0x54);\r
+       addToMapW(0x87, 0x05, 0xD7);\r
+       addToMapW(0x87, 0x20, 0x21);\r
+       addToMapW(0x88, 0x00, 0x88);\r
+       addToMapW(0x88, 0x02, 0xC6);\r
+       addToMapW(0x88, 0x03, 0x99);\r
+       addToMapW(0x88, 0x03, 0xB9);\r
+       addToMapW(0x88, 0x04, 0x18);\r
+       addToMapW(0x88, 0x04, 0x38);\r
+       addToMapW(0x88, 0x05, 0xD8);\r
+       addToMapW(0x89, 0x00, 0x89);\r
+       addToMapW(0x89, 0x03, 0x9A);\r
+       addToMapW(0x89, 0x03, 0xBA);\r
+       addToMapW(0x89, 0x04, 0x05);\r
+       addToMapW(0x89, 0x04, 0x19);\r
+       addToMapW(0x89, 0x04, 0x39);\r
+       addToMapW(0x89, 0x04, 0x55);\r
+       addToMapW(0x89, 0x05, 0xD9);\r
+       addToMapW(0x89, 0x20, 0x30);\r
+       addToMapW(0x8a, 0x00, 0x8A);\r
+       addToMapW(0x8a, 0x01, 0x50);\r
+       addToMapW(0x8a, 0x01, 0x51);\r
+       addToMapW(0x8a, 0x01, 0x56);\r
+       addToMapW(0x8a, 0x01, 0x57);\r
+       addToMapW(0x8a, 0x03, 0x9B);\r
+       addToMapW(0x8a, 0x03, 0xBB);\r
+       addToMapW(0x8a, 0x04, 0x1A);\r
+       addToMapW(0x8a, 0x04, 0x3A);\r
+       addToMapW(0x8a, 0x05, 0xDA);\r
+       addToMapW(0x8b, 0x00, 0x8B);\r
+       addToMapW(0x8b, 0x03, 0x9C);\r
+       addToMapW(0x8b, 0x03, 0xBC);\r
+       addToMapW(0x8b, 0x04, 0x06);\r
+       addToMapW(0x8b, 0x04, 0x1B);\r
+       addToMapW(0x8b, 0x04, 0x3B);\r
+       addToMapW(0x8b, 0x04, 0x56);\r
+       addToMapW(0x8b, 0x05, 0xDB);\r
+       addToMapW(0x8b, 0x20, 0x39);\r
+       addToMapW(0x8c, 0x00, 0x8C);\r
+       addToMapW(0x8c, 0x01, 0x52);\r
+       addToMapW(0x8c, 0x01, 0x53);\r
+       addToMapW(0x8c, 0x03, 0x9D);\r
+       addToMapW(0x8c, 0x03, 0xBD);\r
+       addToMapW(0x8c, 0x04, 0x1C);\r
+       addToMapW(0x8c, 0x04, 0x3C);\r
+       addToMapW(0x8c, 0x05, 0xDC);\r
+       addToMapW(0x8d, 0x00, 0x8D);\r
+       addToMapW(0x8d, 0x01, 0x31);\r
+       addToMapW(0x8d, 0x01, 0x79);\r
+       addToMapW(0x8d, 0x01, 0x7A);\r
+       addToMapW(0x8d, 0x03, 0x9E);\r
+       addToMapW(0x8d, 0x03, 0xBE);\r
+       addToMapW(0x8d, 0x04, 0x07);\r
+       addToMapW(0x8d, 0x04, 0x1D);\r
+       addToMapW(0x8d, 0x04, 0x3D);\r
+       addToMapW(0x8d, 0x04, 0x57);\r
+       addToMapW(0x8d, 0x05, 0xDD);\r
+       addToMapW(0x8e, 0x00, 0x8E);\r
+       addToMapW(0x8e, 0x00, 0xC4);\r
+       addToMapW(0x8e, 0x00, 0xE4);\r
+       addToMapW(0x8e, 0x03, 0x9F);\r
+       addToMapW(0x8e, 0x03, 0xBF);\r
+       addToMapW(0x8e, 0x04, 0x1E);\r
+       addToMapW(0x8e, 0x04, 0x3E);\r
+       addToMapW(0x8e, 0x05, 0xDE);\r
+       addToMapW(0x8f, 0x00, 0x8F);\r
+       addToMapW(0x8f, 0x00, 0xC5);\r
+       addToMapW(0x8f, 0x00, 0xE5);\r
+       addToMapW(0x8f, 0x01, 0x06);\r
+       addToMapW(0x8f, 0x01, 0x07);\r
+       addToMapW(0x8f, 0x03, 0xA0);\r
+       addToMapW(0x8f, 0x03, 0xC0);\r
+       addToMapW(0x8f, 0x04, 0x08);\r
+       addToMapW(0x8f, 0x04, 0x1F);\r
+       addToMapW(0x8f, 0x04, 0x3F);\r
+       addToMapW(0x8f, 0x04, 0x58);\r
+       addToMapW(0x8f, 0x05, 0xDF);\r
+       addToMapW(0x8f, 0x21, 0x2B);\r
+       addToMapW(0x90, 0x00, 0x90);\r
+       addToMapW(0x90, 0x00, 0xC9);\r
+       addToMapW(0x90, 0x00, 0xE9);\r
+       addToMapW(0x90, 0x03, 0xA1);\r
+       addToMapW(0x90, 0x03, 0xC1);\r
+       addToMapW(0x90, 0x04, 0x20);\r
+       addToMapW(0x90, 0x04, 0x40);\r
+       addToMapW(0x90, 0x05, 0xE0);\r
+       addToMapW(0x91, 0x01, 0x39);\r
+       addToMapW(0x91, 0x01, 0x3A);\r
+       addToMapW(0x91, 0x03, 0xA3);\r
+       addToMapW(0x91, 0x03, 0xC2);\r
+       addToMapW(0x91, 0x03, 0xC3);\r
+       addToMapW(0x91, 0x04, 0x09);\r
+       addToMapW(0x91, 0x04, 0x21);\r
+       addToMapW(0x91, 0x04, 0x41);\r
+       addToMapW(0x91, 0x04, 0x59);\r
+       addToMapW(0x91, 0x05, 0xE1);\r
+       addToMapW(0x91, 0x06, 0x51);\r
+       addToMapW(0x91, 0x20, 0x18);\r
+       addToMapW(0x91, 0xFE, 0x7C);\r
+       addToMapW(0x91, 0xFE, 0x7D);\r
+       addToMapW(0x92, 0x00, 0xC6);\r
+       addToMapW(0x92, 0x00, 0xE6);\r
+       addToMapW(0x92, 0x03, 0xA4);\r
+       addToMapW(0x92, 0x03, 0xC4);\r
+       addToMapW(0x92, 0x04, 0x22);\r
+       addToMapW(0x92, 0x04, 0x42);\r
+       addToMapW(0x92, 0x05, 0xE2);\r
+       addToMapW(0x92, 0x06, 0x52);\r
+       addToMapW(0x92, 0x20, 0x19);\r
+       addToMapW(0x92, 0xFE, 0x7E);\r
+       addToMapW(0x92, 0xFE, 0x7F);\r
+       addToMapW(0x93, 0x03, 0xA5);\r
+       addToMapW(0x93, 0x03, 0xC5);\r
+       addToMapW(0x93, 0x04, 0x0A);\r
+       addToMapW(0x93, 0x04, 0x23);\r
+       addToMapW(0x93, 0x04, 0x43);\r
+       addToMapW(0x93, 0x04, 0x5A);\r
+       addToMapW(0x93, 0x05, 0xE3);\r
+       addToMapW(0x93, 0x20, 0x1C);\r
+       addToMapW(0x94, 0x00, 0xA4);\r
+       addToMapW(0x94, 0x03, 0xA6);\r
+       addToMapW(0x94, 0x03, 0xC6);\r
+       addToMapW(0x94, 0x04, 0x24);\r
+       addToMapW(0x94, 0x04, 0x44);\r
+       addToMapW(0x94, 0x05, 0xE4);\r
+       addToMapW(0x94, 0x20, 0x1D);\r
+       addToMapW(0x95, 0x01, 0x22);\r
+       addToMapW(0x95, 0x01, 0x23);\r
+       addToMapW(0x95, 0x01, 0x3D);\r
+       addToMapW(0x95, 0x01, 0x3E);\r
+       addToMapW(0x95, 0x03, 0xA7);\r
+       addToMapW(0x95, 0x03, 0xC7);\r
+       addToMapW(0x95, 0x04, 0x0B);\r
+       addToMapW(0x95, 0x04, 0x25);\r
+       addToMapW(0x95, 0x04, 0x45);\r
+       addToMapW(0x95, 0x04, 0x5B);\r
+       addToMapW(0x95, 0x05, 0xE5);\r
+       addToMapW(0x95, 0x06, 0x40);\r
+       addToMapW(0x95, 0x20, 0x22);\r
+       addToMapW(0x96, 0x00, 0xA2);\r
+       addToMapW(0x96, 0x03, 0xA8);\r
+       addToMapW(0x96, 0x03, 0xC8);\r
+       addToMapW(0x96, 0x04, 0x26);\r
+       addToMapW(0x96, 0x04, 0x46);\r
+       addToMapW(0x96, 0x05, 0xE6);\r
+       addToMapW(0x96, 0x20, 0x13);\r
+       addToMapW(0x97, 0x00, 0xB5);\r
+       addToMapW(0x97, 0x01, 0x5A);\r
+       addToMapW(0x97, 0x01, 0x5B);\r
+       addToMapW(0x97, 0x03, 0xA9);\r
+       addToMapW(0x97, 0x03, 0xC9);\r
+       addToMapW(0x97, 0x04, 0x0C);\r
+       addToMapW(0x97, 0x04, 0x27);\r
+       addToMapW(0x97, 0x04, 0x47);\r
+       addToMapW(0x97, 0x04, 0x5C);\r
+       addToMapW(0x97, 0x05, 0xE7);\r
+       addToMapW(0x97, 0x20, 0x14);\r
+       addToMapW(0x98, 0x00, 0x98);\r
+       addToMapW(0x98, 0x01, 0x30);\r
+       addToMapW(0x98, 0x02, 0xDC);\r
+       addToMapW(0x98, 0x04, 0x28);\r
+       addToMapW(0x98, 0x04, 0x48);\r
+       addToMapW(0x98, 0x05, 0xE8);\r
+       addToMapW(0x98, 0x06, 0x21);\r
+       addToMapW(0x98, 0xFE, 0x80);\r
+       addToMapW(0x99, 0x00, 0x99);\r
+       addToMapW(0x99, 0x00, 0xD6);\r
+       addToMapW(0x99, 0x00, 0xF6);\r
+       addToMapW(0x99, 0x04, 0x0E);\r
+       addToMapW(0x99, 0x04, 0x29);\r
+       addToMapW(0x99, 0x04, 0x49);\r
+       addToMapW(0x99, 0x04, 0x5E);\r
+       addToMapW(0x99, 0x05, 0xE9);\r
+       addToMapW(0x99, 0x06, 0x22);\r
+       addToMapW(0x99, 0x21, 0x22);\r
+       addToMapW(0x99, 0xFE, 0x81);\r
+       addToMapW(0x99, 0xFE, 0x82);\r
+       addToMapW(0x9a, 0x00, 0x9A);\r
+       addToMapW(0x9a, 0x00, 0xDC);\r
+       addToMapW(0x9a, 0x00, 0xFC);\r
+       addToMapW(0x9a, 0x04, 0x2A);\r
+       addToMapW(0x9a, 0x04, 0x4A);\r
+       addToMapW(0x9a, 0x05, 0xEA);\r
+       addToMapW(0x9a, 0x06, 0x23);\r
+       addToMapW(0x9a, 0xFE, 0x83);\r
+       addToMapW(0x9a, 0xFE, 0x84);\r
+       addToMapW(0x9b, 0x00, 0x9B);\r
+       addToMapW(0x9b, 0x00, 0xA2);\r
+       addToMapW(0x9b, 0x01, 0x64);\r
+       addToMapW(0x9b, 0x01, 0x65);\r
+       addToMapW(0x9b, 0x04, 0x0F);\r
+       addToMapW(0x9b, 0x04, 0x2B);\r
+       addToMapW(0x9b, 0x04, 0x4B);\r
+       addToMapW(0x9b, 0x04, 0x5F);\r
+       addToMapW(0x9b, 0x06, 0x24);\r
+       addToMapW(0x9b, 0x20, 0x3A);\r
+       addToMapW(0x9b, 0xFE, 0x85);\r
+       addToMapW(0x9b, 0xFE, 0x86);\r
+       addToMapW(0x9c, 0x00, 0x9C);\r
+       addToMapW(0x9c, 0x00, 0xA3);\r
+       addToMapW(0x9c, 0x04, 0x2C);\r
+       addToMapW(0x9c, 0x04, 0x4C);\r
+       addToMapW(0x9c, 0x20, 0xA4);\r
+       addToMapW(0x9d, 0x00, 0x9D);\r
+       addToMapW(0x9d, 0x00, 0xA5);\r
+       addToMapW(0x9d, 0x00, 0xD8);\r
+       addToMapW(0x9d, 0x00, 0xF8);\r
+       addToMapW(0x9d, 0x01, 0x41);\r
+       addToMapW(0x9d, 0x01, 0x42);\r
+       addToMapW(0x9d, 0x02, 0x78);\r
+       addToMapW(0x9d, 0x03, 0x98);\r
+       addToMapW(0x9d, 0x04, 0x2D);\r
+       addToMapW(0x9d, 0x04, 0x2E);\r
+       addToMapW(0x9d, 0x04, 0x4D);\r
+       addToMapW(0x9d, 0x04, 0x4E);\r
+       addToMapW(0x9d, 0x06, 0x25);\r
+       addToMapW(0x9d, 0x22, 0x05);\r
+       addToMapW(0x9d, 0xFE, 0x87);\r
+       addToMapW(0x9d, 0xFE, 0x88);\r
+       addToMapW(0x9e, 0x00, 0x9E);\r
+       addToMapW(0x9e, 0x00, 0xD7);\r
+       addToMapW(0x9e, 0x01, 0x5E);\r
+       addToMapW(0x9e, 0x01, 0x5F);\r
+       addToMapW(0x9e, 0x04, 0x2E);\r
+       addToMapW(0x9e, 0x04, 0x4E);\r
+       addToMapW(0x9e, 0x06, 0x26);\r
+       addToMapW(0x9e, 0x20, 0xA7);\r
+       addToMapW(0x9e, 0xFE, 0x89);\r
+       addToMapW(0x9e, 0xFE, 0x8A);\r
+       addToMapW(0x9e, 0xFE, 0x8B);\r
+       addToMapW(0x9e, 0xFE, 0x8C);\r
+       addToMapW(0x9f, 0x00, 0x9F);\r
+       addToMapW(0x9f, 0x00, 0xA4);\r
+       addToMapW(0x9f, 0x00, 0xFF);\r
+       addToMapW(0x9f, 0x01, 0x78);\r
+       addToMapW(0x9f, 0x01, 0x91);\r
+       addToMapW(0x9f, 0x01, 0x92);\r
+       addToMapW(0x9f, 0x04, 0x2A);\r
+       addToMapW(0x9f, 0x04, 0x2F);\r
+       addToMapW(0x9f, 0x04, 0x4A);\r
+       addToMapW(0x9f, 0x04, 0x4F);\r
+       addToMapW(0x9f, 0x06, 0x27);\r
+       addToMapW(0x9f, 0xFE, 0x8D);\r
+       addToMapW(0x9f, 0xFE, 0x8E);\r
+       addToMapW(0xa0, 0x00, 0xA0);\r
+       addToMapW(0xa0, 0x01, 0x00);\r
+       addToMapW(0xa0, 0x01, 0x01);\r
+       addToMapW(0xa0, 0x06, 0x28);\r
+       addToMapW(0xa0, 0xF8, 0xF0);\r
+       addToMapW(0xa0, 0xFE, 0x8F);\r
+       addToMapW(0xa0, 0xFE, 0x90);\r
+       addToMapW(0xa0, 0xFE, 0x91);\r
+       addToMapW(0xa0, 0xFE, 0x92);\r
+       addToMapW(0xa1, 0x00, 0xA1);\r
+       addToMapW(0xa1, 0x01, 0x2A);\r
+       addToMapW(0xa1, 0x01, 0x2B);\r
+       addToMapW(0xa1, 0x04, 0x10);\r
+       addToMapW(0xa1, 0x04, 0x30);\r
+       addToMapW(0xa1, 0x06, 0x29);\r
+       addToMapW(0xa1, 0x0E, 0x01);\r
+       addToMapW(0xa1, 0xFE, 0x93);\r
+       addToMapW(0xa1, 0xFE, 0x94);\r
+       addToMapW(0xa1, 0xFF, 0x61);\r
+       addToMapW(0xa2, 0x00, 0xA2);\r
+       addToMapW(0xa2, 0x06, 0x2A);\r
+       addToMapW(0xa2, 0x0E, 0x02);\r
+       addToMapW(0xa2, 0xFE, 0x95);\r
+       addToMapW(0xa2, 0xFE, 0x96);\r
+       addToMapW(0xa2, 0xFE, 0x97);\r
+       addToMapW(0xa2, 0xFE, 0x98);\r
+       addToMapW(0xa2, 0xFF, 0x62);\r
+       addToMapW(0xa3, 0x00, 0xA3);\r
+       addToMapW(0xa3, 0x01, 0x7B);\r
+       addToMapW(0xa3, 0x01, 0x7C);\r
+       addToMapW(0xa3, 0x04, 0x11);\r
+       addToMapW(0xa3, 0x04, 0x31);\r
+       addToMapW(0xa3, 0x06, 0x2B);\r
+       addToMapW(0xa3, 0x0E, 0x03);\r
+       addToMapW(0xa3, 0xFE, 0x99);\r
+       addToMapW(0xa3, 0xFE, 0x9A);\r
+       addToMapW(0xa3, 0xFE, 0x9B);\r
+       addToMapW(0xa3, 0xFE, 0x9C);\r
+       addToMapW(0xa3, 0xFF, 0x63);\r
+       addToMapW(0xa4, 0x00, 0xA4);\r
+       addToMapW(0xa4, 0x01, 0x04);\r
+       addToMapW(0xa4, 0x01, 0x05);\r
+       addToMapW(0xa4, 0x06, 0x2C);\r
+       addToMapW(0xa4, 0x0E, 0x04);\r
+       addToMapW(0xa4, 0xFE, 0x9D);\r
+       addToMapW(0xa4, 0xFE, 0x9E);\r
+       addToMapW(0xa4, 0xFE, 0x9F);\r
+       addToMapW(0xa4, 0xFE, 0xA0);\r
+       addToMapW(0xa4, 0xFF, 0x64);\r
+       addToMapW(0xa5, 0x00, 0xA5);\r
+       addToMapW(0xa5, 0x00, 0xD1);\r
+       addToMapW(0xa5, 0x00, 0xF1);\r
+       addToMapW(0xa5, 0x04, 0x26);\r
+       addToMapW(0xa5, 0x04, 0x46);\r
+       addToMapW(0xa5, 0x06, 0x2D);\r
+       addToMapW(0xa5, 0x0E, 0x05);\r
+       addToMapW(0xa5, 0xFE, 0xA1);\r
+       addToMapW(0xa5, 0xFE, 0xA2);\r
+       addToMapW(0xa5, 0xFE, 0xA3);\r
+       addToMapW(0xa5, 0xFE, 0xA4);\r
+       addToMapW(0xa5, 0xFF, 0x65);\r
+       addToMapW(0xa6, 0x00, 0xA6);\r
+       addToMapW(0xa6, 0x00, 0xAA);\r
+       addToMapW(0xa6, 0x01, 0x1E);\r
+       addToMapW(0xa6, 0x01, 0x1F);\r
+       addToMapW(0xa6, 0x01, 0x7D);\r
+       addToMapW(0xa6, 0x01, 0x7E);\r
+       addToMapW(0xa6, 0x06, 0x2E);\r
+       addToMapW(0xa6, 0x0E, 0x06);\r
+       addToMapW(0xa6, 0x20, 0x1D);\r
+       addToMapW(0xa6, 0xFE, 0xA5);\r
+       addToMapW(0xa6, 0xFE, 0xA6);\r
+       addToMapW(0xa6, 0xFE, 0xA7);\r
+       addToMapW(0xa6, 0xFE, 0xA8);\r
+       addToMapW(0xa6, 0xFF, 0x66);\r
+       addToMapW(0xa7, 0x00, 0xA6);\r
+       addToMapW(0xa7, 0x00, 0xA7);\r
+       addToMapW(0xa7, 0x00, 0xBA);\r
+       addToMapW(0xa7, 0x04, 0x14);\r
+       addToMapW(0xa7, 0x04, 0x34);\r
+       addToMapW(0xa7, 0x06, 0x2F);\r
+       addToMapW(0xa7, 0x0E, 0x07);\r
+       addToMapW(0xa7, 0xFE, 0xA9);\r
+       addToMapW(0xa7, 0xFE, 0xAA);\r
+       addToMapW(0xa7, 0xFF, 0x67);\r
+       addToMapW(0xa8, 0x00, 0xA8);\r
+       addToMapW(0xa8, 0x00, 0xA9);\r
+       addToMapW(0xa8, 0x00, 0xBF);\r
+       addToMapW(0xa8, 0x01, 0x18);\r
+       addToMapW(0xa8, 0x01, 0x19);\r
+       addToMapW(0xa8, 0x06, 0x30);\r
+       addToMapW(0xa8, 0x0E, 0x08);\r
+       addToMapW(0xa8, 0xFE, 0xAB);\r
+       addToMapW(0xa8, 0xFE, 0xAC);\r
+       addToMapW(0xa8, 0xFF, 0x68);\r
+       addToMapW(0xa9, 0x00, 0xA9);\r
+       addToMapW(0xa9, 0x00, 0xAE);\r
+       addToMapW(0xa9, 0x04, 0x15);\r
+       addToMapW(0xa9, 0x04, 0x35);\r
+       addToMapW(0xa9, 0x06, 0x31);\r
+       addToMapW(0xa9, 0x0E, 0x09);\r
+       addToMapW(0xa9, 0x23, 0x10);\r
+       addToMapW(0xa9, 0xFE, 0xAD);\r
+       addToMapW(0xa9, 0xFE, 0xAE);\r
+       addToMapW(0xa9, 0xFF, 0x69);\r
+       addToMapW(0xaa, 0x00, 0xAA);\r
+       addToMapW(0xaa, 0x00, 0xAC);\r
+       addToMapW(0xaa, 0x06, 0x32);\r
+       addToMapW(0xaa, 0x0E, 0x0A);\r
+       addToMapW(0xaa, 0x23, 0x10);\r
+       addToMapW(0xaa, 0xFE, 0xAF);\r
+       addToMapW(0xaa, 0xFE, 0xB0);\r
+       addToMapW(0xaa, 0xFF, 0x6A);\r
+       addToMapW(0xab, 0x00, 0xAB);\r
+       addToMapW(0xab, 0x00, 0xBD);\r
+       addToMapW(0xab, 0x04, 0x24);\r
+       addToMapW(0xab, 0x04, 0x44);\r
+       addToMapW(0xab, 0x06, 0x33);\r
+       addToMapW(0xab, 0x0E, 0x0B);\r
+       addToMapW(0xab, 0xFE, 0xB1);\r
+       addToMapW(0xab, 0xFE, 0xB2);\r
+       addToMapW(0xab, 0xFE, 0xB3);\r
+       addToMapW(0xab, 0xFE, 0xB4);\r
+       addToMapW(0xab, 0xFF, 0x6B);\r
+       addToMapW(0xac, 0x00, 0xAC);\r
+       addToMapW(0xac, 0x00, 0xBC);\r
+       addToMapW(0xac, 0x01, 0x0C);\r
+       addToMapW(0xac, 0x01, 0x0D);\r
+       addToMapW(0xac, 0x06, 0x34);\r
+       addToMapW(0xac, 0x0E, 0x0C);\r
+       addToMapW(0xac, 0xFE, 0xB5);\r
+       addToMapW(0xac, 0xFE, 0xB6);\r
+       addToMapW(0xac, 0xFE, 0xB7);\r
+       addToMapW(0xac, 0xFE, 0xB8);\r
+       addToMapW(0xac, 0xFF, 0x6C);\r
+       addToMapW(0xad, 0x00, 0xA1);\r
+       addToMapW(0xad, 0x00, 0xAD);\r
+       addToMapW(0xad, 0x01, 0x41);\r
+       addToMapW(0xad, 0x01, 0x42);\r
+       addToMapW(0xad, 0x04, 0x13);\r
+       addToMapW(0xad, 0x04, 0x33);\r
+       addToMapW(0xad, 0x06, 0x35);\r
+       addToMapW(0xad, 0x0E, 0x0D);\r
+       addToMapW(0xad, 0xFE, 0xB9);\r
+       addToMapW(0xad, 0xFE, 0xBA);\r
+       addToMapW(0xad, 0xFE, 0xBB);\r
+       addToMapW(0xad, 0xFE, 0xBC);\r
+       addToMapW(0xad, 0xFF, 0x6D);\r
+       addToMapW(0xae, 0x00, 0xAB);\r
+       addToMapW(0xae, 0x00, 0xAE);\r
+       addToMapW(0xae, 0x0E, 0x0E);\r
+       addToMapW(0xae, 0x22, 0x6A);\r
+       addToMapW(0xae, 0x30, 0x0A);\r
+       addToMapW(0xae, 0xFF, 0x6E);\r
+       addToMapW(0xaf, 0x00, 0xAF);\r
+       addToMapW(0xaf, 0x00, 0xBB);\r
+       addToMapW(0xaf, 0x0E, 0x0F);\r
+       addToMapW(0xaf, 0x22, 0x6B);\r
+       addToMapW(0xaf, 0x30, 0x0B);\r
+       addToMapW(0xaf, 0xFF, 0x6F);\r
+       addToMapW(0xb0, 0x00, 0xB0);\r
+       addToMapW(0xb0, 0x0E, 0x10);\r
+       addToMapW(0xb0, 0x25, 0x91);\r
+       addToMapW(0xb0, 0xFF, 0x70);\r
+       addToMapW(0xb1, 0x00, 0xB1);\r
+       addToMapW(0xb1, 0x0E, 0x11);\r
+       addToMapW(0xb1, 0x25, 0x92);\r
+       addToMapW(0xb1, 0xFF, 0x71);\r
+       addToMapW(0xb2, 0x00, 0xB2);\r
+       addToMapW(0xb2, 0x0E, 0x12);\r
+       addToMapW(0xb2, 0x25, 0x93);\r
+       addToMapW(0xb2, 0xFF, 0x72);\r
+       addToMapW(0xb3, 0x00, 0xA6);\r
+       addToMapW(0xb3, 0x00, 0xB3);\r
+       addToMapW(0xb3, 0x01, 0xC0);\r
+       addToMapW(0xb3, 0x0E, 0x13);\r
+       addToMapW(0xb3, 0x22, 0x23);\r
+       addToMapW(0xb3, 0x25, 0x02);\r
+       addToMapW(0xb3, 0x27, 0x58);\r
+       addToMapW(0xb3, 0xFF, 0x73);\r
+       addToMapW(0xb4, 0x00, 0xB4);\r
+       addToMapW(0xb4, 0x0E, 0x14);\r
+       addToMapW(0xb4, 0x25, 0x24);\r
+       addToMapW(0xb4, 0xFF, 0x74);\r
+       addToMapW(0xb5, 0x00, 0xB5);\r
+       addToMapW(0xb5, 0x00, 0xC1);\r
+       addToMapW(0xb5, 0x00, 0xE1);\r
+       addToMapW(0xb5, 0x01, 0x04);\r
+       addToMapW(0xb5, 0x01, 0x05);\r
+       addToMapW(0xb5, 0x0E, 0x15);\r
+       addToMapW(0xb5, 0x25, 0x61);\r
+       addToMapW(0xb5, 0xFF, 0x75);\r
+       addToMapW(0xb6, 0x00, 0xB6);\r
+       addToMapW(0xb6, 0x00, 0xC2);\r
+       addToMapW(0xb6, 0x00, 0xE2);\r
+       addToMapW(0xb6, 0x01, 0x0C);\r
+       addToMapW(0xb6, 0x01, 0x0D);\r
+       addToMapW(0xb6, 0x04, 0x25);\r
+       addToMapW(0xb6, 0x04, 0x45);\r
+       addToMapW(0xb6, 0x0E, 0x16);\r
+       addToMapW(0xb6, 0x25, 0x62);\r
+       addToMapW(0xb6, 0xFF, 0x76);\r
+       addToMapW(0xb7, 0x00, 0xB7);\r
+       addToMapW(0xb7, 0x00, 0xC0);\r
+       addToMapW(0xb7, 0x00, 0xE0);\r
+       addToMapW(0xb7, 0x01, 0x18);\r
+       addToMapW(0xb7, 0x01, 0x19);\r
+       addToMapW(0xb7, 0x01, 0x1A);\r
+       addToMapW(0xb7, 0x01, 0x1B);\r
+       addToMapW(0xb7, 0x0E, 0x17);\r
+       addToMapW(0xb7, 0x25, 0x56);\r
+       addToMapW(0xb7, 0xFF, 0x77);\r
+       addToMapW(0xb8, 0x00, 0xA9);\r
+       addToMapW(0xb8, 0x00, 0xB8);\r
+       addToMapW(0xb8, 0x01, 0x16);\r
+       addToMapW(0xb8, 0x01, 0x17);\r
+       addToMapW(0xb8, 0x01, 0x5E);\r
+       addToMapW(0xb8, 0x01, 0x5F);\r
+       addToMapW(0xb8, 0x04, 0x18);\r
+       addToMapW(0xb8, 0x04, 0x38);\r
+       addToMapW(0xb8, 0x0E, 0x18);\r
+       addToMapW(0xb8, 0x25, 0x55);\r
+       addToMapW(0xb8, 0xFF, 0x78);\r
+       addToMapW(0xb9, 0x00, 0xB9);\r
+       addToMapW(0xb9, 0x0E, 0x19);\r
+       addToMapW(0xb9, 0x25, 0x61);\r
+       addToMapW(0xb9, 0x25, 0x62);\r
+       addToMapW(0xb9, 0x25, 0x63);\r
+       addToMapW(0xb9, 0xFF, 0x79);\r
+       addToMapW(0xba, 0x00, 0xBA);\r
+       addToMapW(0xba, 0x0E, 0x1A);\r
+       addToMapW(0xba, 0x25, 0x51);\r
+       addToMapW(0xba, 0xFF, 0x7A);\r
+       addToMapW(0xbb, 0x00, 0xBB);\r
+       addToMapW(0xbb, 0x0E, 0x1B);\r
+       addToMapW(0xbb, 0x25, 0x55);\r
+       addToMapW(0xbb, 0x25, 0x56);\r
+       addToMapW(0xbb, 0x25, 0x57);\r
+       addToMapW(0xbb, 0xFF, 0x7B);\r
+       addToMapW(0xbc, 0x00, 0xBC);\r
+       addToMapW(0xbc, 0x0E, 0x1C);\r
+       addToMapW(0xbc, 0x25, 0x5B);\r
+       addToMapW(0xbc, 0x25, 0x5C);\r
+       addToMapW(0xbc, 0x25, 0x5D);\r
+       addToMapW(0xbc, 0xFF, 0x7C);\r
+       addToMapW(0xbd, 0x00, 0xA2);\r
+       addToMapW(0xbd, 0x00, 0xBD);\r
+       addToMapW(0xbd, 0x01, 0x2E);\r
+       addToMapW(0xbd, 0x01, 0x2F);\r
+       addToMapW(0xbd, 0x01, 0x7B);\r
+       addToMapW(0xbd, 0x01, 0x7C);\r
+       addToMapW(0xbd, 0x0E, 0x1D);\r
+       addToMapW(0xbd, 0x25, 0x5C);\r
+       addToMapW(0xbd, 0xFF, 0x7D);\r
+       addToMapW(0xbe, 0x00, 0xA5);\r
+       addToMapW(0xbe, 0x00, 0xBE);\r
+       addToMapW(0xbe, 0x01, 0x60);\r
+       addToMapW(0xbe, 0x01, 0x61);\r
+       addToMapW(0xbe, 0x04, 0x19);\r
+       addToMapW(0xbe, 0x04, 0x39);\r
+       addToMapW(0xbe, 0x0E, 0x1E);\r
+       addToMapW(0xbe, 0x25, 0x5B);\r
+       addToMapW(0xbe, 0xFF, 0x7E);\r
+       addToMapW(0xbf, 0x00, 0xAC);\r
+       addToMapW(0xbf, 0x00, 0xBF);\r
+       addToMapW(0xbf, 0x0E, 0x1F);\r
+       addToMapW(0xbf, 0x25, 0x10);\r
+       addToMapW(0xbf, 0xFF, 0x7F);\r
+       addToMapW(0xc0, 0x00, 0xC0);\r
+       addToMapW(0xc0, 0x00, 0xE0);\r
+       addToMapW(0xc0, 0x0E, 0x20);\r
+       addToMapW(0xc0, 0x25, 0x14);\r
+       addToMapW(0xc0, 0xFF, 0x80);\r
+       addToMapW(0xc1, 0x00, 0xC1);\r
+       addToMapW(0xc1, 0x00, 0xE1);\r
+       addToMapW(0xc1, 0x0E, 0x21);\r
+       addToMapW(0xc1, 0x25, 0x34);\r
+       addToMapW(0xc1, 0xFF, 0x81);\r
+       addToMapW(0xc2, 0x00, 0xC2);\r
+       addToMapW(0xc2, 0x00, 0xE2);\r
+       addToMapW(0xc2, 0x0E, 0x22);\r
+       addToMapW(0xc2, 0x25, 0x2C);\r
+       addToMapW(0xc2, 0xFF, 0x82);\r
+       addToMapW(0xc3, 0x01, 0x02);\r
+       addToMapW(0xc3, 0x01, 0x03);\r
+       addToMapW(0xc3, 0x0E, 0x23);\r
+       addToMapW(0xc3, 0x25, 0x1C);\r
+       addToMapW(0xc3, 0xFF, 0x83);\r
+       addToMapW(0xc4, 0x00, 0xAF);\r
+       addToMapW(0xc4, 0x00, 0xC4);\r
+       addToMapW(0xc4, 0x00, 0xE4);\r
+       addToMapW(0xc4, 0x02, 0xC9);\r
+       addToMapW(0xc4, 0x03, 0x04);\r
+       addToMapW(0xc4, 0x03, 0x05);\r
+       addToMapW(0xc4, 0x0E, 0x24);\r
+       addToMapW(0xc4, 0x25, 0x00);\r
+       addToMapW(0xc4, 0xFF, 0x84);\r
+       addToMapW(0xc5, 0x00, 0xC5);\r
+       addToMapW(0xc5, 0x00, 0xE5);\r
+       addToMapW(0xc5, 0x0E, 0x25);\r
+       addToMapW(0xc5, 0x20, 0x20);\r
+       addToMapW(0xc5, 0x20, 0x21);\r
+       addToMapW(0xc5, 0x25, 0x3C);\r
+       addToMapW(0xc5, 0xFF, 0x85);\r
+       addToMapW(0xc6, 0x00, 0xC6);\r
+       addToMapW(0xc6, 0x00, 0xE6);\r
+       addToMapW(0xc6, 0x01, 0x02);\r
+       addToMapW(0xc6, 0x01, 0x03);\r
+       addToMapW(0xc6, 0x01, 0x72);\r
+       addToMapW(0xc6, 0x01, 0x73);\r
+       addToMapW(0xc6, 0x0E, 0x26);\r
+       addToMapW(0xc6, 0x25, 0x5E);\r
+       addToMapW(0xc6, 0xFF, 0x86);\r
+       addToMapW(0xc7, 0x00, 0xC3);\r
+       addToMapW(0xc7, 0x00, 0xC7);\r
+       addToMapW(0xc7, 0x00, 0xE3);\r
+       addToMapW(0xc7, 0x00, 0xE7);\r
+       addToMapW(0xc7, 0x01, 0x6A);\r
+       addToMapW(0xc7, 0x01, 0x6B);\r
+       addToMapW(0xc7, 0x04, 0x1A);\r
+       addToMapW(0xc7, 0x04, 0x3A);\r
+       addToMapW(0xc7, 0x0E, 0x27);\r
+       addToMapW(0xc7, 0x25, 0x5F);\r
+       addToMapW(0xc7, 0xFF, 0x87);\r
+       addToMapW(0xc8, 0x00, 0xC8);\r
+       addToMapW(0xc8, 0x00, 0xE8);\r
+       addToMapW(0xc8, 0x0E, 0x28);\r
+       addToMapW(0xc8, 0x25, 0x58);\r
+       addToMapW(0xc8, 0x25, 0x59);\r
+       addToMapW(0xc8, 0x25, 0x5A);\r
+       addToMapW(0xc8, 0xFF, 0x88);\r
+       addToMapW(0xc9, 0x00, 0xC9);\r
+       addToMapW(0xc9, 0x00, 0xE9);\r
+       addToMapW(0xc9, 0x0E, 0x29);\r
+       addToMapW(0xc9, 0x25, 0x52);\r
+       addToMapW(0xc9, 0x25, 0x53);\r
+       addToMapW(0xc9, 0x25, 0x54);\r
+       addToMapW(0xc9, 0xFF, 0x89);\r
+       addToMapW(0xca, 0x00, 0xCA);\r
+       addToMapW(0xca, 0x00, 0xEA);\r
+       addToMapW(0xca, 0x0E, 0x2A);\r
+       addToMapW(0xca, 0x25, 0x67);\r
+       addToMapW(0xca, 0x25, 0x68);\r
+       addToMapW(0xca, 0x25, 0x69);\r
+       addToMapW(0xca, 0xFF, 0x8A);\r
+       addToMapW(0xcb, 0x00, 0xCB);\r
+       addToMapW(0xcb, 0x00, 0xEB);\r
+       addToMapW(0xcb, 0x0E, 0x2B);\r
+       addToMapW(0xcb, 0x25, 0x64);\r
+       addToMapW(0xcb, 0x25, 0x65);\r
+       addToMapW(0xcb, 0x25, 0x66);\r
+       addToMapW(0xcb, 0xFF, 0x8B);\r
+       addToMapW(0xcc, 0x03, 0x00);\r
+       addToMapW(0xcc, 0x0E, 0x2C);\r
+       addToMapW(0xcc, 0x25, 0x5E);\r
+       addToMapW(0xcc, 0x25, 0x5F);\r
+       addToMapW(0xcc, 0x25, 0x60);\r
+       addToMapW(0xcc, 0xFF, 0x8C);\r
+       addToMapW(0xcd, 0x00, 0xCD);\r
+       addToMapW(0xcd, 0x00, 0xED);\r
+       addToMapW(0xcd, 0x0E, 0x2D);\r
+       addToMapW(0xcd, 0x25, 0x50);\r
+       addToMapW(0xcd, 0xFF, 0x8D);\r
+       addToMapW(0xce, 0x00, 0xCE);\r
+       addToMapW(0xce, 0x00, 0xEE);\r
+       addToMapW(0xce, 0x0E, 0x2E);\r
+       addToMapW(0xce, 0x20, 0x21);\r
+       addToMapW(0xce, 0x25, 0x6A);\r
+       addToMapW(0xce, 0x25, 0x6B);\r
+       addToMapW(0xce, 0x25, 0x6C);\r
+       addToMapW(0xce, 0xFF, 0x8E);\r
+       addToMapW(0xcf, 0x00, 0xA4);\r
+       addToMapW(0xcf, 0x00, 0xCF);\r
+       addToMapW(0xcf, 0x00, 0xEF);\r
+       addToMapW(0xcf, 0x01, 0x7D);\r
+       addToMapW(0xcf, 0x01, 0x7E);\r
+       addToMapW(0xcf, 0x0E, 0x2F);\r
+       addToMapW(0xcf, 0x25, 0x67);\r
+       addToMapW(0xcf, 0xFF, 0x8F);\r
+       addToMapW(0xd0, 0x00, 0xBA);\r
+       addToMapW(0xd0, 0x01, 0x10);\r
+       addToMapW(0xd0, 0x01, 0x11);\r
+       addToMapW(0xd0, 0x0E, 0x30);\r
+       addToMapW(0xd0, 0x25, 0x68);\r
+       addToMapW(0xd0, 0xFF, 0x90);\r
+       addToMapW(0xd1, 0x00, 0xAA);\r
+       addToMapW(0xd1, 0x00, 0xD0);\r
+       addToMapW(0xd1, 0x00, 0xD1);\r
+       addToMapW(0xd1, 0x00, 0xF0);\r
+       addToMapW(0xd1, 0x00, 0xF1);\r
+       addToMapW(0xd1, 0x01, 0x10);\r
+       addToMapW(0xd1, 0x01, 0x11);\r
+       addToMapW(0xd1, 0x01, 0x89);\r
+       addToMapW(0xd1, 0x04, 0x1B);\r
+       addToMapW(0xd1, 0x04, 0x3B);\r
+       addToMapW(0xd1, 0x0E, 0x31);\r
+       addToMapW(0xd1, 0x25, 0x64);\r
+       addToMapW(0xd1, 0xFF, 0x91);\r
+       addToMapW(0xd2, 0x00, 0xCA);\r
+       addToMapW(0xd2, 0x00, 0xEA);\r
+       addToMapW(0xd2, 0x01, 0x0E);\r
+       addToMapW(0xd2, 0x01, 0x0F);\r
+       addToMapW(0xd2, 0x03, 0x09);\r
+       addToMapW(0xd2, 0x0E, 0x32);\r
+       addToMapW(0xd2, 0x25, 0x65);\r
+       addToMapW(0xd2, 0xFF, 0x92);\r
+       addToMapW(0xd3, 0x00, 0xCB);\r
+       addToMapW(0xd3, 0x00, 0xD3);\r
+       addToMapW(0xd3, 0x00, 0xEB);\r
+       addToMapW(0xd3, 0x00, 0xF3);\r
+       addToMapW(0xd3, 0x04, 0x1C);\r
+       addToMapW(0xd3, 0x04, 0x3C);\r
+       addToMapW(0xd3, 0x0E, 0x33);\r
+       addToMapW(0xd3, 0x25, 0x59);\r
+       addToMapW(0xd3, 0xFF, 0x93);\r
+       addToMapW(0xd4, 0x00, 0xC8);\r
+       addToMapW(0xd4, 0x00, 0xD4);\r
+       addToMapW(0xd4, 0x00, 0xE8);\r
+       addToMapW(0xd4, 0x00, 0xF4);\r
+       addToMapW(0xd4, 0x0E, 0x34);\r
+       addToMapW(0xd4, 0x25, 0x58);\r
+       addToMapW(0xd4, 0xFF, 0x94);\r
+       addToMapW(0xd5, 0x01, 0x31);\r
+       addToMapW(0xd5, 0x01, 0x47);\r
+       addToMapW(0xd5, 0x01, 0x48);\r
+       addToMapW(0xd5, 0x01, 0xA0);\r
+       addToMapW(0xd5, 0x01, 0xA1);\r
+       addToMapW(0xd5, 0x04, 0x1D);\r
+       addToMapW(0xd5, 0x04, 0x3D);\r
+       addToMapW(0xd5, 0x0E, 0x35);\r
+       addToMapW(0xd5, 0x25, 0x52);\r
+       addToMapW(0xd5, 0xF8, 0xBB);\r
+       addToMapW(0xd5, 0xFF, 0x95);\r
+       addToMapW(0xd6, 0x00, 0xCD);\r
+       addToMapW(0xd6, 0x00, 0xD6);\r
+       addToMapW(0xd6, 0x00, 0xED);\r
+       addToMapW(0xd6, 0x00, 0xF6);\r
+       addToMapW(0xd6, 0x0E, 0x36);\r
+       addToMapW(0xd6, 0x25, 0x53);\r
+       addToMapW(0xd6, 0xFF, 0x96);\r
+       addToMapW(0xd7, 0x00, 0xCE);\r
+       addToMapW(0xd7, 0x00, 0xD7);\r
+       addToMapW(0xd7, 0x00, 0xEE);\r
+       addToMapW(0xd7, 0x04, 0x1E);\r
+       addToMapW(0xd7, 0x04, 0x3E);\r
+       addToMapW(0xd7, 0x0E, 0x37);\r
+       addToMapW(0xd7, 0x25, 0x6B);\r
+       addToMapW(0xd7, 0xFF, 0x97);\r
+       addToMapW(0xd8, 0x00, 0xCF);\r
+       addToMapW(0xd8, 0x00, 0xD8);\r
+       addToMapW(0xd8, 0x00, 0xEF);\r
+       addToMapW(0xd8, 0x00, 0xF8);\r
+       addToMapW(0xd8, 0x0E, 0x38);\r
+       addToMapW(0xd8, 0x20, 0x21);\r
+       addToMapW(0xd8, 0x25, 0x6A);\r
+       addToMapW(0xd8, 0xFF, 0x98);\r
+       addToMapW(0xd9, 0x00, 0xD9);\r
+       addToMapW(0xd9, 0x00, 0xF9);\r
+       addToMapW(0xd9, 0x0E, 0x39);\r
+       addToMapW(0xd9, 0x25, 0x18);\r
+       addToMapW(0xd9, 0xFF, 0x99);\r
+       addToMapW(0xda, 0x00, 0xDA);\r
+       addToMapW(0xda, 0x00, 0xFA);\r
+       addToMapW(0xda, 0x0E, 0x3A);\r
+       addToMapW(0xda, 0x25, 0x0C);\r
+       addToMapW(0xda, 0xFF, 0x9A);\r
+       addToMapW(0xdb, 0x00, 0xDB);\r
+       addToMapW(0xdb, 0x00, 0xFB);\r
+       addToMapW(0xdb, 0x25, 0x88);\r
+       addToMapW(0xdb, 0x25, 0x8C);\r
+       addToMapW(0xdb, 0x25, 0x90);\r
+       addToMapW(0xdb, 0xF8, 0xC1);\r
+       addToMapW(0xdb, 0xFF, 0x9B);\r
+       addToMapW(0xdc, 0x00, 0xDC);\r
+       addToMapW(0xdc, 0x00, 0xFC);\r
+       addToMapW(0xdc, 0x25, 0x84);\r
+       addToMapW(0xdc, 0xF8, 0xC2);\r
+       addToMapW(0xdc, 0xFF, 0x9C);\r
+       addToMapW(0xdd, 0x00, 0xA6);\r
+       addToMapW(0xdd, 0x01, 0x62);\r
+       addToMapW(0xdd, 0x01, 0x63);\r
+       addToMapW(0xdd, 0x01, 0xAF);\r
+       addToMapW(0xdd, 0x01, 0xB0);\r
+       addToMapW(0xdd, 0x04, 0x1F);\r
+       addToMapW(0xdd, 0x04, 0x3F);\r
+       addToMapW(0xdd, 0x25, 0x8C);\r
+       addToMapW(0xdd, 0xF8, 0xC3);\r
+       addToMapW(0xdd, 0xFF, 0x9D);\r
+       addToMapW(0xde, 0x00, 0xCC);\r
+       addToMapW(0xde, 0x00, 0xEC);\r
+       addToMapW(0xde, 0x01, 0x6E);\r
+       addToMapW(0xde, 0x01, 0x6F);\r
+       addToMapW(0xde, 0x03, 0x03);\r
+       addToMapW(0xde, 0x25, 0x90);\r
+       addToMapW(0xde, 0xF8, 0xC4);\r
+       addToMapW(0xde, 0xFF, 0x9E);\r
+       addToMapW(0xdf, 0x00, 0xDF);\r
+       addToMapW(0xdf, 0x0E, 0x3F);\r
+       addToMapW(0xdf, 0x25, 0x80);\r
+       addToMapW(0xdf, 0xFF, 0x9F);\r
+       addToMapW(0xe0, 0x00, 0xD3);\r
+       addToMapW(0xe0, 0x00, 0xF3);\r
+       addToMapW(0xe0, 0x03, 0x91);\r
+       addToMapW(0xe0, 0x03, 0xB1);\r
+       addToMapW(0xe0, 0x04, 0x2F);\r
+       addToMapW(0xe0, 0x04, 0x4F);\r
+       addToMapW(0xe0, 0x06, 0x36);\r
+       addToMapW(0xe0, 0x0E, 0x40);\r
+       addToMapW(0xe0, 0xFE, 0xBD);\r
+       addToMapW(0xe0, 0xFE, 0xBE);\r
+       addToMapW(0xe0, 0xFE, 0xBF);\r
+       addToMapW(0xe0, 0xFE, 0xC0);\r
+       addToMapW(0xe1, 0x00, 0xDF);\r
+       addToMapW(0xe1, 0x03, 0xB2);\r
+       addToMapW(0xe1, 0x06, 0x37);\r
+       addToMapW(0xe1, 0x0E, 0x41);\r
+       addToMapW(0xe1, 0xFE, 0xC1);\r
+       addToMapW(0xe1, 0xFE, 0xC2);\r
+       addToMapW(0xe1, 0xFE, 0xC3);\r
+       addToMapW(0xe1, 0xFE, 0xC4);\r
+       addToMapW(0xe2, 0x00, 0xD4);\r
+       addToMapW(0xe2, 0x00, 0xF4);\r
+       addToMapW(0xe2, 0x01, 0x4C);\r
+       addToMapW(0xe2, 0x01, 0x4D);\r
+       addToMapW(0xe2, 0x03, 0x93);\r
+       addToMapW(0xe2, 0x04, 0x20);\r
+       addToMapW(0xe2, 0x04, 0x40);\r
+       addToMapW(0xe2, 0x06, 0x38);\r
+       addToMapW(0xe2, 0x0E, 0x42);\r
+       addToMapW(0xe2, 0xFE, 0xC5);\r
+       addToMapW(0xe2, 0xFE, 0xC6);\r
+       addToMapW(0xe2, 0xFE, 0xC7);\r
+       addToMapW(0xe2, 0xFE, 0xC8);\r
+       addToMapW(0xe3, 0x00, 0xD2);\r
+       addToMapW(0xe3, 0x00, 0xF2);\r
+       addToMapW(0xe3, 0x01, 0x43);\r
+       addToMapW(0xe3, 0x01, 0x44);\r
+       addToMapW(0xe3, 0x03, 0xA0);\r
+       addToMapW(0xe3, 0x03, 0xC0);\r
+       addToMapW(0xe3, 0x06, 0x39);\r
+       addToMapW(0xe3, 0x0E, 0x43);\r
+       addToMapW(0xe3, 0xFE, 0xC9);\r
+       addToMapW(0xe3, 0xFE, 0xCA);\r
+       addToMapW(0xe3, 0xFE, 0xCB);\r
+       addToMapW(0xe3, 0xFE, 0xCC);\r
+       addToMapW(0xe4, 0x01, 0xA9);\r
+       addToMapW(0xe4, 0x03, 0xA3);\r
+       addToMapW(0xe4, 0x03, 0xC3);\r
+       addToMapW(0xe4, 0x04, 0x21);\r
+       addToMapW(0xe4, 0x04, 0x41);\r
+       addToMapW(0xe4, 0x06, 0x3A);\r
+       addToMapW(0xe4, 0x0E, 0x44);\r
+       addToMapW(0xe4, 0x22, 0x11);\r
+       addToMapW(0xe4, 0xFE, 0xCD);\r
+       addToMapW(0xe4, 0xFE, 0xCE);\r
+       addToMapW(0xe4, 0xFE, 0xCF);\r
+       addToMapW(0xe4, 0xFE, 0xD0);\r
+       addToMapW(0xe5, 0x00, 0xD5);\r
+       addToMapW(0xe5, 0x00, 0xF5);\r
+       addToMapW(0xe5, 0x06, 0x41);\r
+       addToMapW(0xe5, 0x0E, 0x45);\r
+       addToMapW(0xe5, 0xFE, 0xD1);\r
+       addToMapW(0xe5, 0xFE, 0xD2);\r
+       addToMapW(0xe5, 0xFE, 0xD3);\r
+       addToMapW(0xe5, 0xFE, 0xD4);\r
+       addToMapW(0xe6, 0x00, 0xB5);\r
+       addToMapW(0xe6, 0x01, 0x60);\r
+       addToMapW(0xe6, 0x01, 0x61);\r
+       addToMapW(0xe6, 0x03, 0xBC);\r
+       addToMapW(0xe6, 0x04, 0x22);\r
+       addToMapW(0xe6, 0x04, 0x42);\r
+       addToMapW(0xe6, 0x0E, 0x46);\r
+       addToMapW(0xe7, 0x03, 0xA4);\r
+       addToMapW(0xe7, 0x03, 0xC4);\r
+       addToMapW(0xe7, 0x06, 0x42);\r
+       addToMapW(0xe7, 0x0E, 0x47);\r
+       addToMapW(0xe7, 0xF8, 0xBC);\r
+       addToMapW(0xe7, 0xFE, 0xD5);\r
+       addToMapW(0xe7, 0xFE, 0xD6);\r
+       addToMapW(0xe7, 0xFE, 0xD7);\r
+       addToMapW(0xe7, 0xFE, 0xD8);\r
+       addToMapW(0xe8, 0x00, 0xD7);\r
+       addToMapW(0xe8, 0x00, 0xDE);\r
+       addToMapW(0xe8, 0x00, 0xFE);\r
+       addToMapW(0xe8, 0x01, 0x36);\r
+       addToMapW(0xe8, 0x01, 0x37);\r
+       addToMapW(0xe8, 0x01, 0x54);\r
+       addToMapW(0xe8, 0x01, 0x55);\r
+       addToMapW(0xe8, 0x02, 0x78);\r
+       addToMapW(0xe8, 0x03, 0xA6);\r
+       addToMapW(0xe8, 0x03, 0xC6);\r
+       addToMapW(0xe8, 0x04, 0x23);\r
+       addToMapW(0xe8, 0x04, 0x43);\r
+       addToMapW(0xe8, 0x06, 0x43);\r
+       addToMapW(0xe8, 0x0E, 0x48);\r
+       addToMapW(0xe8, 0x22, 0x05);\r
+       addToMapW(0xe8, 0xFE, 0xD9);\r
+       addToMapW(0xe8, 0xFE, 0xDA);\r
+       addToMapW(0xe8, 0xFE, 0xDB);\r
+       addToMapW(0xe8, 0xFE, 0xDC);\r
+       addToMapW(0xe9, 0x00, 0xDA);\r
+       addToMapW(0xe9, 0x00, 0xFA);\r
+       addToMapW(0xe9, 0x03, 0x98);\r
+       addToMapW(0xe9, 0x06, 0x44);\r
+       addToMapW(0xe9, 0x0E, 0x49);\r
+       addToMapW(0xe9, 0xFE, 0xDD);\r
+       addToMapW(0xe9, 0xFE, 0xDE);\r
+       addToMapW(0xe9, 0xFE, 0xDF);\r
+       addToMapW(0xe9, 0xFE, 0xE0);\r
+       addToMapW(0xea, 0x00, 0xDB);\r
+       addToMapW(0xea, 0x00, 0xFB);\r
+       addToMapW(0xea, 0x01, 0x3B);\r
+       addToMapW(0xea, 0x01, 0x3C);\r
+       addToMapW(0xea, 0x03, 0x86);\r
+       addToMapW(0xea, 0x03, 0xA9);\r
+       addToMapW(0xea, 0x03, 0xAC);\r
+       addToMapW(0xea, 0x04, 0x16);\r
+       addToMapW(0xea, 0x04, 0x36);\r
+       addToMapW(0xea, 0x06, 0x45);\r
+       addToMapW(0xea, 0x0E, 0x4A);\r
+       addToMapW(0xea, 0x21, 0x26);\r
+       addToMapW(0xea, 0xFE, 0xE1);\r
+       addToMapW(0xea, 0xFE, 0xE2);\r
+       addToMapW(0xea, 0xFE, 0xE3);\r
+       addToMapW(0xea, 0xFE, 0xE4);\r
+       addToMapW(0xeb, 0x00, 0xD9);\r
+       addToMapW(0xeb, 0x00, 0xF9);\r
+       addToMapW(0xeb, 0x01, 0x70);\r
+       addToMapW(0xeb, 0x01, 0x71);\r
+       addToMapW(0xeb, 0x03, 0x88);\r
+       addToMapW(0xeb, 0x03, 0x94);\r
+       addToMapW(0xeb, 0x03, 0xAD);\r
+       addToMapW(0xeb, 0x03, 0xB4);\r
+       addToMapW(0xeb, 0x06, 0x46);\r
+       addToMapW(0xeb, 0x0E, 0x4B);\r
+       addToMapW(0xeb, 0xFE, 0xE5);\r
+       addToMapW(0xeb, 0xFE, 0xE6);\r
+       addToMapW(0xeb, 0xFE, 0xE7);\r
+       addToMapW(0xeb, 0xFE, 0xE8);\r
+       addToMapW(0xec, 0x03, 0x01);\r
+       addToMapW(0xec, 0x03, 0x89);\r
+       addToMapW(0xec, 0x03, 0xAE);\r
+       addToMapW(0xec, 0x04, 0x12);\r
+       addToMapW(0xec, 0x04, 0x32);\r
+       addToMapW(0xec, 0x06, 0x47);\r
+       addToMapW(0xec, 0x0E, 0x4C);\r
+       addToMapW(0xec, 0x22, 0x1E);\r
+       addToMapW(0xec, 0xFE, 0xE9);\r
+       addToMapW(0xec, 0xFE, 0xEA);\r
+       addToMapW(0xec, 0xFE, 0xEB);\r
+       addToMapW(0xec, 0xFE, 0xEC);\r
+       addToMapW(0xed, 0x00, 0xDD);\r
+       addToMapW(0xed, 0x00, 0xFD);\r
+       addToMapW(0xed, 0x01, 0x12);\r
+       addToMapW(0xed, 0x01, 0x13);\r
+       addToMapW(0xed, 0x03, 0x8A);\r
+       addToMapW(0xed, 0x03, 0xAF);\r
+       addToMapW(0xed, 0x06, 0x48);\r
+       addToMapW(0xed, 0x0E, 0x4D);\r
+       addToMapW(0xed, 0xFE, 0xED);\r
+       addToMapW(0xed, 0xFE, 0xEE);\r
+       addToMapW(0xee, 0x00, 0xAF);\r
+       addToMapW(0xee, 0x01, 0x45);\r
+       addToMapW(0xee, 0x01, 0x46);\r
+       addToMapW(0xee, 0x03, 0x04);\r
+       addToMapW(0xee, 0x03, 0x05);\r
+       addToMapW(0xee, 0x03, 0x8C);\r
+       addToMapW(0xee, 0x03, 0x95);\r
+       addToMapW(0xee, 0x03, 0xB5);\r
+       addToMapW(0xee, 0x03, 0xCC);\r
+       addToMapW(0xee, 0x04, 0x2C);\r
+       addToMapW(0xee, 0x04, 0x4C);\r
+       addToMapW(0xee, 0x06, 0x49);\r
+       addToMapW(0xee, 0x0E, 0x4E);\r
+       addToMapW(0xee, 0xFE, 0xEF);\r
+       addToMapW(0xee, 0xFE, 0xF0);\r
+       addToMapW(0xef, 0x00, 0xB4);\r
+       addToMapW(0xef, 0x02, 0xB9);\r
+       addToMapW(0xef, 0x02, 0xCA);\r
+       addToMapW(0xef, 0x03, 0x01);\r
+       addToMapW(0xef, 0x03, 0x8E);\r
+       addToMapW(0xef, 0x03, 0xCD);\r
+       addToMapW(0xef, 0x06, 0x4A);\r
+       addToMapW(0xef, 0x0E, 0x4F);\r
+       addToMapW(0xef, 0x20, 0x19);\r
+       addToMapW(0xef, 0x20, 0x32);\r
+       addToMapW(0xef, 0x20, 0x35);\r
+       addToMapW(0xef, 0x21, 0x16);\r
+       addToMapW(0xef, 0x22, 0x29);\r
+       addToMapW(0xef, 0xFE, 0xF1);\r
+       addToMapW(0xef, 0xFE, 0xF2);\r
+       addToMapW(0xef, 0xFE, 0xF3);\r
+       addToMapW(0xef, 0xFE, 0xF4);\r
+       addToMapW(0xf0, 0x00, 0xAD);\r
+       addToMapW(0xf0, 0x03, 0x8F);\r
+       addToMapW(0xf0, 0x03, 0xCE);\r
+       addToMapW(0xf0, 0x04, 0x01);\r
+       addToMapW(0xf0, 0x04, 0x51);\r
+       addToMapW(0xf0, 0x0E, 0x50);\r
+       addToMapW(0xf0, 0x22, 0x61);\r
+       addToMapW(0xf1, 0x00, 0xB1);\r
+       addToMapW(0xf1, 0x02, 0xDD);\r
+       addToMapW(0xf1, 0x06, 0x4B);\r
+       addToMapW(0xf1, 0x0E, 0x51);\r
+       addToMapW(0xf1, 0x22, 0x13);\r
+       addToMapW(0xf1, 0xFE, 0x70);\r
+       addToMapW(0xf1, 0xFE, 0x71);\r
+       addToMapW(0xf2, 0x02, 0xDB);\r
+       addToMapW(0xf2, 0x03, 0x23);\r
+       addToMapW(0xf2, 0x04, 0x04);\r
+       addToMapW(0xf2, 0x04, 0x2B);\r
+       addToMapW(0xf2, 0x04, 0x4B);\r
+       addToMapW(0xf2, 0x04, 0x54);\r
+       addToMapW(0xf2, 0x06, 0x4C);\r
+       addToMapW(0xf2, 0x0E, 0x52);\r
+       addToMapW(0xf2, 0x20, 0x17);\r
+       addToMapW(0xf2, 0x20, 0x1C);\r
+       addToMapW(0xf2, 0x22, 0x65);\r
+       addToMapW(0xf2, 0xF8, 0xBD);\r
+       addToMapW(0xf2, 0xFE, 0x72);\r
+       addToMapW(0xf3, 0x00, 0xBE);\r
+       addToMapW(0xf3, 0x02, 0xC7);\r
+       addToMapW(0xf3, 0x03, 0x0C);\r
+       addToMapW(0xf3, 0x06, 0x4D);\r
+       addToMapW(0xf3, 0x0E, 0x53);\r
+       addToMapW(0xf3, 0x22, 0x64);\r
+       addToMapW(0xf3, 0xFE, 0x74);\r
+       addToMapW(0xf4, 0x00, 0xB6);\r
+       addToMapW(0xf4, 0x02, 0xD8);\r
+       addToMapW(0xf4, 0x03, 0x06);\r
+       addToMapW(0xf4, 0x03, 0xAA);\r
+       addToMapW(0xf4, 0x03, 0xCA);\r
+       addToMapW(0xf4, 0x04, 0x07);\r
+       addToMapW(0xf4, 0x04, 0x17);\r
+       addToMapW(0xf4, 0x04, 0x37);\r
+       addToMapW(0xf4, 0x04, 0x57);\r
+       addToMapW(0xf4, 0x06, 0x4E);\r
+       addToMapW(0xf4, 0x0E, 0x54);\r
+       addToMapW(0xf4, 0x23, 0x20);\r
+       addToMapW(0xf4, 0xFE, 0x76);\r
+       addToMapW(0xf4, 0xFE, 0x77);\r
+       addToMapW(0xf5, 0x00, 0xA7);\r
+       addToMapW(0xf5, 0x03, 0xAB);\r
+       addToMapW(0xf5, 0x03, 0xCB);\r
+       addToMapW(0xf5, 0x06, 0x4F);\r
+       addToMapW(0xf5, 0x0E, 0x55);\r
+       addToMapW(0xf5, 0x23, 0x21);\r
+       addToMapW(0xf5, 0xFE, 0x78);\r
+       addToMapW(0xf5, 0xFE, 0x79);\r
+       addToMapW(0xf6, 0x00, 0xF7);\r
+       addToMapW(0xf6, 0x04, 0x0E);\r
+       addToMapW(0xf6, 0x04, 0x28);\r
+       addToMapW(0xf6, 0x04, 0x48);\r
+       addToMapW(0xf6, 0x04, 0x5E);\r
+       addToMapW(0xf6, 0x06, 0x50);\r
+       addToMapW(0xf6, 0x0E, 0x56);\r
+       addToMapW(0xf6, 0xFE, 0x7A);\r
+       addToMapW(0xf6, 0xFE, 0x7B);\r
+       addToMapW(0xf7, 0x00, 0xB8);\r
+       addToMapW(0xf7, 0x00, 0xF7);\r
+       addToMapW(0xf7, 0x02, 0xDB);\r
+       addToMapW(0xf7, 0x03, 0x27);\r
+       addToMapW(0xf7, 0x0E, 0x57);\r
+       addToMapW(0xf7, 0x20, 0x1E);\r
+       addToMapW(0xf7, 0x22, 0x48);\r
+       addToMapW(0xf8, 0x00, 0xB0);\r
+       addToMapW(0xf8, 0x02, 0xDA);\r
+       addToMapW(0xf8, 0x03, 0x0A);\r
+       addToMapW(0xf8, 0x04, 0x2D);\r
+       addToMapW(0xf8, 0x04, 0x4D);\r
+       addToMapW(0xf8, 0x0E, 0x58);\r
+       addToMapW(0xf8, 0x20, 0x70);\r
+       addToMapW(0xf8, 0x22, 0x18);\r
+       addToMapW(0xf9, 0x00, 0xA8);\r
+       addToMapW(0xf9, 0x02, 0xDD);\r
+       addToMapW(0xf9, 0x03, 0x08);\r
+       addToMapW(0xf9, 0x0E, 0x59);\r
+       addToMapW(0xf9, 0x22, 0x19);\r
+       addToMapW(0xfa, 0x00, 0xB7);\r
+       addToMapW(0xfa, 0x02, 0xD9);\r
+       addToMapW(0xfa, 0x03, 0x07);\r
+       addToMapW(0xfa, 0x04, 0x29);\r
+       addToMapW(0xfa, 0x04, 0x49);\r
+       addToMapW(0xfa, 0x0E, 0x5A);\r
+       addToMapW(0xfa, 0x20, 0x24);\r
+       addToMapW(0xfa, 0x22, 0xC5);\r
+       addToMapW(0xfa, 0x30, 0xFB);\r
+       addToMapW(0xfb, 0x00, 0xB9);\r
+       addToMapW(0xfb, 0x0E, 0x5B);\r
+       addToMapW(0xfb, 0x20, 0x81);\r
+       addToMapW(0xfb, 0x22, 0x1A);\r
+       addToMapW(0xfb, 0x27, 0x13);\r
+       addToMapW(0xfc, 0x00, 0xB3);\r
+       addToMapW(0xfc, 0x01, 0x58);\r
+       addToMapW(0xfc, 0x01, 0x59);\r
+       addToMapW(0xfc, 0x04, 0x27);\r
+       addToMapW(0xfc, 0x04, 0x47);\r
+       addToMapW(0xfc, 0x20, 0x7F);\r
+       addToMapW(0xfc, 0x20, 0x83);\r
+       addToMapW(0xfc, 0x21, 0x16);\r
+       addToMapW(0xfc, 0xF8, 0xC5);\r
+       addToMapW(0xfd, 0x00, 0xA4);\r
+       addToMapW(0xfd, 0x00, 0xA7);\r
+       addToMapW(0xfd, 0x00, 0xB2);\r
+       addToMapW(0xfd, 0x20, 0x82);\r
+       addToMapW(0xfd, 0xF8, 0xC6);\r
+       addToMapW(0xfd, 0xF8, 0xF1);\r
+       addToMapW(0xfe, 0x20, 0xAB);\r
+       addToMapW(0xfe, 0x25, 0xA0);\r
+       addToMapW(0xfe, 0xF8, 0xC7);\r
+       addToMapW(0xfe, 0xF8, 0xF2);\r
+       addToMapW(0xff, 0x00, 0xA0);\r
+       addToMapW(0xff, 0xF8, 0xC8);\r
+       addToMapW(0xff, 0xF8, 0xF3);\r
+}\r