From 5f4c5e9ed194672d955ac2373117f5e5b54a0f21 Mon Sep 17 00:00:00 2001 From: Kurt Date: Mon, 13 Jan 2014 13:18:11 -0800 Subject: [PATCH] Initial Commit Script and dependencies. --- pkm2pkx.py | 240 +++++++ tables.py | 1972 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2212 insertions(+) create mode 100644 pkm2pkx.py create mode 100644 tables.py diff --git a/pkm2pkx.py b/pkm2pkx.py new file mode 100644 index 0000000..0c61f90 --- /dev/null +++ b/pkm2pkx.py @@ -0,0 +1,240 @@ +# 5th Gen to 6th Gen +from __future__ import with_statement + +print "5th Gen .pkm to 6th Gen .pkx\nBy Kaphotics.\n" +import os,sys +from array import array +from datetime import date +from tables import spec_abil,movepp,pokestats,lvlexp + +def getsum(pkx): + ar = array('H') + ar.fromstring(pkx) + sum = 0 + for val in ar: + sum += val + + return chr(sum & 0xff) + chr((sum >> 8) & 0xff) + +def datemet(): + val = date.today() + return chr(val.year - 2000) + chr(val.month) + chr(val.day) + +def __level(pkm): + dex = ord(pkm[8]) + (ord(pkm[9]) << 8) # Decimal Reference + exp = ord(pkm[0x10]) + (ord(pkm[0x11]) << 8) + (ord(pkm[0x12]) << 16) + + exptype = pokestats.get(dex)[0] + for i in xrange(100): + xpneeded = lvlexp.get(i + 1)[exptype] + if xpneeded > exp: + return i + return 100 + +def convertname(n): + bytes = array('B') + bytes.fromstring(n) + converted = '' + + for val in bytes: + if val == 0xff: # Stop Without Terminators + break + converted += chr(val) + + return converted + +def extendname(n): + trash='\x00' * 24 + if len(n) < 24: + n += trash[len(n):] + return n + +def makepkx(pkm): + # Deconstructing PKM File for Access + + # Unencrypted Bytes + pid = pkm[0x0:0x4] + # unused = pkm[0x4:0x6] + checksum = pkm[0x6:0x8] + + # Block A + species = pkm[0x8:0xA] + item = pkm[0xA:0xC] + tr_id = pkm[0xC:0xE] + se_id = pkm[0xE:0x10] + exp = pkm[0x10:0x14] + friend = pkm[0x14] + ability = pkm[0x15] + markings = pkm[0x16] + language = pkm[0x17] + hp_ev = pkm[0x18] + atk_ev = pkm[0x19] + def_ev = pkm[0x1A] + spe_ev = pkm[0x1B] + spa_ev = pkm[0x1C] + spd_ev = pkm[0x1D] + cool_cv = pkm[0x1E] + beau_cv = pkm[0x1F] + cute_cv = pkm[0x20] + smrt_cv = pkm[0x21] + tuff_cv = pkm[0x22] + shen_cv = pkm[0x23] + sinnoh1 = pkm[0x24:0x26] + unovar1 = pkm[0x26:0x28] + + # Block B + move_1 = pkm[0x28:0x2A] + move_2 = pkm[0x2A:0x2C] + move_3 = pkm[0x2C:0x2E] + move_4 = pkm[0x2E:0x30] + move_1_pp= pkm[0x30] + move_2_pp= pkm[0x31] + move_3_pp= pkm[0x32] + move_4_pp= pkm[0x33] + move_1_pu= pkm[0x34] + move_2_pu= pkm[0x35] + move_3_pu= pkm[0x36] + move_4_pu= pkm[0x37] + iv_block = pkm[0x38:0x3C] + hoennr1 = pkm[0x3C:0x3E] + hoennr2 = pkm[0x3E:0x40] + fegforme = pkm[0x40] + nature = pkm[0x41] + dwflag = pkm[0x42] + # unused = pkm[0x43] + # unused = pkm[0x44:47] + + # Block C + nickname = pkm[0x48:0x5E] + # unused = pkm[0x5E] + game = pkm[0x5F] + sinnohr3 = pkm[0x60:0x62] + sinnohr4 = pkm[0x62:0x64] + # unused = pkm[0x64:0x68] + + # Block D + otname = pkm[0x68:0x78] + eggdate = pkm[0x78:0x7B] + metdate = pkm[0x7B:0x7E] + eggloc = pkm[0x7E:0x80] + metloc = pkm[0x80:0x82] + pokerus = pkm[0x82] + ball = pkm[0x83] + metlvlotg= pkm[0x84] + enctype = pkm[0x85] + # unused = pkm[0x86] + # fame = pkm[0x87] + + # PKX Block A + pkx_a = species + item + tr_id + se_id + exp + ability + + dex = ord(pkm[8]) + (ord(pkm[9]) << 8) # Decimal Reference + + # Determine Ability Number + if ord(dwflag) > 1: # Has DW Ability + pkx_a += '\x04' + elif ord(game) < 20: # Originates from Gen 3/4 + if (spec_abil.get(dex)[1] == 0) or (pid[0] & 1 == 0): + # Has Ability 0 + pkx_a += '\x00' + else: + # Has Ability 1 + pkx_a += '\x01' + else: # Originates from Gen 5 + if (spec_abil.get(dex)[1] == 0) or (pid[2] & 1 == 0): + # Has Ability 0 + pkx_a += '\x00' + else: + # Has Ability 1 + pkx_a += '\x01' + + pkx_a += '\x00\x00' # Unknown + pkx_a += pid + pkx_a += nature + pkx_a += fegforme + pkx_a += hp_ev + pkx_a += atk_ev + pkx_a += def_ev + pkx_a += spe_ev + pkx_a += spa_ev + pkx_a += spd_ev + pkx_a += '\x00\x00\x00\x00\x00\x00\x00' # Unknown x24-x2A + pkx_a += pokerus + pkx_a += '\x00\x00\x00\x00' # Unknown x2C-x2F + pkx_a += '\x00\x00\x00\x00' # Kalos Ribbons + pkx_a += '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + + # PKX Block B + pkx_b = extendname(convertname(nickname)) + pkx_b += '\x00\x00' + pkx_b += move_1 + move_2 + move_3 + move_4 + + # Get Actual PP + pp1 = chr((movepp.get(ord(pkm[0x28]) + (ord(pkm[0x29]) << 8)))) + pp2 = chr((movepp.get(ord(pkm[0x2A]) + (ord(pkm[0x2B]) << 8)))) + pp3 = chr((movepp.get(ord(pkm[0x2C]) + (ord(pkm[0x2D]) << 8)))) + pp4 = chr((movepp.get(ord(pkm[0x2E]) + (ord(pkm[0x2F]) << 8)))) + + pkx_b += pp1 + pp2 + pp3 + pp4 + pkx_b += move_1_pu + move_2_pu + move_3_pu + move_4_pu + + # Moves At Hatching + pkx_b += '\x00' * 8 # Assuming Nothing + pkx_b += '\x00' * 2 # Unknown + pkx_b += iv_block + + # PKX Block C + pkx_c = '\x00' * 56 # No Memories! :( + + # PKX Block D + pkx_d = extendname(convertname(otname)) + pkx_d += '\x00' * 9 # Unknown + pkx_d += eggdate + datemet() # Date Met: Today! + pkx_d += '\x00' # Unknown + pkx_d += eggloc + metloc + ball + + # Set the Current Level as Met Level, tack on OT-G Bit. + pkx_d += chr(__level(pkm) + (ord(metlvlotg) & 0x80)) + pkx_d += '\x00' # UU + pkx_d += game + pkx_d += '\x00\x00\x00' # Country/Region/3DS Blank + pkx_d += language + pkx_d += '\x00' * 4 # Unknown/Unused + + pkx = pkx_a + pkx_b + pkx_c + pkx_d + # return pid + '\x00\x00' + '\x00\x00' + pkx + chksm = getsum(pkx) + pkx = pid + '\x00\x00' + chksm + pkx + return pkx + +def main(inputpk): + if True == True: + newpkx = os.path.splitext(inputpk)[0] + ".pkx" + with open(inputpk,'rb') as f: + with open(newpkx,'wb') as g: + g.write(makepkx(f.read())) + +def printspacer(): + print "\n/*------------------*/\n" + + + +# Process Drag&Drop +del sys.argv[0] +for item in sys.argv: + printspacer() + print "Converting Drag&Drop File:\n%s" % (item) + main(item) +# Process Manual Input +go=1 +while go==1: + printspacer() + inputpk = raw_input("Instructions: Drag & Drop PKM File into the window, then press Enter.\nFile: ").replace('"', '') + print "" + main(inputpk) + print "" + if raw_input("Process another? (y/n): ") != "y": + go=0 + print "" + raw_input("Press Enter to Exit.") + break diff --git a/tables.py b/tables.py new file mode 100644 index 0000000..b8e473a --- /dev/null +++ b/tables.py @@ -0,0 +1,1972 @@ +# Move PP maximums in Gen VI + + +movepp = { + 0: 0, + 1: 35, + 2: 25, + 3: 10, + 4: 15, + 5: 20, + 6: 20, + 7: 15, + 8: 15, + 9: 15, + 10: 35, + 11: 30, + 12: 5, + 13: 10, + 14: 20, + 15: 30, + 16: 35, + 17: 35, + 18: 20, + 19: 15, + 20: 20, + 21: 20, + 22: 25, + 23: 20, + 24: 30, + 25: 5, + 26: 10, + 27: 15, + 28: 15, + 29: 15, + 30: 25, + 31: 20, + 32: 5, + 33: 35, + 34: 15, + 35: 20, + 36: 20, + 37: 10, + 38: 15, + 39: 30, + 40: 35, + 41: 20, + 42: 20, + 43: 30, + 44: 25, + 45: 40, + 46: 20, + 47: 15, + 48: 20, + 49: 20, + 50: 20, + 51: 30, + 52: 25, + 53: 15, + 54: 30, + 55: 25, + 56: 5, + 57: 15, + 58: 10, + 59: 5, + 60: 20, + 61: 20, + 62: 20, + 63: 5, + 64: 35, + 65: 20, + 66: 25, + 67: 20, + 68: 20, + 69: 20, + 70: 15, + 71: 25, + 72: 15, + 73: 10, + 74: 20, + 75: 25, + 76: 10, + 77: 35, + 78: 30, + 79: 15, + 80: 10, + 81: 40, + 82: 10, + 83: 15, + 84: 30, + 85: 15, + 86: 20, + 87: 10, + 88: 15, + 89: 10, + 90: 5, + 91: 10, + 92: 10, + 93: 25, + 94: 10, + 95: 20, + 96: 40, + 97: 30, + 98: 30, + 99: 20, + 100: 20, + 101: 15, + 102: 10, + 103: 40, + 104: 15, + 105: 10, + 106: 30, + 107: 10, + 108: 20, + 109: 10, + 110: 40, + 111: 40, + 112: 20, + 113: 30, + 114: 30, + 115: 20, + 116: 30, + 117: 10, + 118: 10, + 119: 20, + 120: 5, + 121: 10, + 122: 30, + 123: 20, + 124: 20, + 125: 20, + 126: 5, + 127: 15, + 128: 10, + 129: 20, + 130: 10, + 131: 15, + 132: 35, + 133: 20, + 134: 15, + 135: 10, + 136: 10, + 137: 30, + 138: 15, + 139: 40, + 140: 20, + 141: 15, + 142: 10, + 143: 5, + 144: 10, + 145: 30, + 146: 10, + 147: 15, + 148: 20, + 149: 15, + 150: 40, + 151: 20, + 152: 10, + 153: 5, + 154: 15, + 155: 10, + 156: 10, + 157: 10, + 158: 15, + 159: 30, + 160: 30, + 161: 10, + 162: 10, + 163: 20, + 164: 10, + 165: 1, + 166: 1, + 167: 10, + 168: 25, + 169: 10, + 170: 5, + 171: 15, + 172: 25, + 173: 15, + 174: 10, + 175: 15, + 176: 30, + 177: 5, + 178: 40, + 179: 15, + 180: 10, + 181: 25, + 182: 10, + 183: 30, + 184: 10, + 185: 20, + 186: 10, + 187: 10, + 188: 10, + 189: 10, + 190: 10, + 191: 20, + 192: 5, + 193: 40, + 194: 5, + 195: 5, + 196: 15, + 197: 5, + 198: 10, + 199: 5, + 200: 15, + 201: 10, + 202: 10, + 203: 10, + 204: 20, + 205: 20, + 206: 40, + 207: 15, + 208: 10, + 209: 20, + 210: 20, + 211: 25, + 212: 5, + 213: 15, + 214: 10, + 215: 5, + 216: 20, + 217: 15, + 218: 20, + 219: 25, + 220: 20, + 221: 5, + 222: 30, + 223: 5, + 224: 10, + 225: 20, + 226: 40, + 227: 5, + 228: 20, + 229: 40, + 230: 20, + 231: 15, + 232: 35, + 233: 10, + 234: 5, + 235: 5, + 236: 5, + 237: 15, + 238: 5, + 239: 20, + 240: 5, + 241: 5, + 242: 15, + 243: 20, + 244: 10, + 245: 5, + 246: 5, + 247: 15, + 248: 10, + 249: 15, + 250: 15, + 251: 10, + 252: 10, + 253: 10, + 254: 20, + 255: 10, + 256: 10, + 257: 10, + 258: 10, + 259: 15, + 260: 15, + 261: 15, + 262: 10, + 263: 20, + 264: 20, + 265: 10, + 266: 20, + 267: 20, + 268: 20, + 269: 20, + 270: 20, + 271: 10, + 272: 10, + 273: 10, + 274: 20, + 275: 20, + 276: 5, + 277: 15, + 278: 10, + 279: 10, + 280: 15, + 281: 10, + 282: 20, + 283: 5, + 284: 5, + 285: 10, + 286: 10, + 287: 20, + 288: 5, + 289: 10, + 290: 20, + 291: 10, + 292: 20, + 293: 20, + 294: 20, + 295: 5, + 296: 5, + 297: 15, + 298: 20, + 299: 10, + 300: 15, + 301: 20, + 302: 15, + 303: 10, + 304: 10, + 305: 15, + 306: 10, + 307: 5, + 308: 5, + 309: 10, + 310: 15, + 311: 10, + 312: 5, + 313: 20, + 314: 25, + 315: 5, + 316: 40, + 317: 15, + 318: 5, + 319: 40, + 320: 15, + 321: 20, + 322: 20, + 323: 5, + 324: 15, + 325: 20, + 326: 20, + 327: 15, + 328: 15, + 329: 5, + 330: 10, + 331: 30, + 332: 20, + 333: 30, + 334: 15, + 335: 5, + 336: 40, + 337: 15, + 338: 5, + 339: 20, + 340: 5, + 341: 15, + 342: 25, + 343: 25, + 344: 15, + 345: 20, + 346: 15, + 347: 20, + 348: 15, + 349: 20, + 350: 10, + 351: 20, + 352: 20, + 353: 5, + 354: 5, + 355: 10, + 356: 5, + 357: 40, + 358: 10, + 359: 10, + 360: 5, + 361: 10, + 362: 10, + 363: 15, + 364: 10, + 365: 20, + 366: 15, + 367: 30, + 368: 10, + 369: 20, + 370: 5, + 371: 10, + 372: 10, + 373: 15, + 374: 10, + 375: 10, + 376: 5, + 377: 15, + 378: 5, + 379: 10, + 380: 10, + 381: 30, + 382: 20, + 383: 20, + 384: 10, + 385: 10, + 386: 5, + 387: 5, + 388: 10, + 389: 5, + 390: 20, + 391: 10, + 392: 20, + 393: 10, + 394: 15, + 395: 10, + 396: 20, + 397: 20, + 398: 20, + 399: 15, + 400: 15, + 401: 10, + 402: 15, + 403: 15, + 404: 15, + 405: 10, + 406: 10, + 407: 10, + 408: 20, + 409: 10, + 410: 30, + 411: 5, + 412: 10, + 413: 15, + 414: 10, + 415: 10, + 416: 5, + 417: 20, + 418: 30, + 419: 10, + 420: 30, + 421: 15, + 422: 15, + 423: 15, + 424: 15, + 425: 30, + 426: 10, + 427: 20, + 428: 15, + 429: 10, + 430: 10, + 431: 20, + 432: 15, + 433: 5, + 434: 5, + 435: 15, + 436: 15, + 437: 5, + 438: 10, + 439: 5, + 440: 20, + 441: 5, + 442: 15, + 443: 20, + 444: 5, + 445: 20, + 446: 20, + 447: 20, + 448: 20, + 449: 10, + 450: 20, + 451: 10, + 452: 15, + 453: 20, + 454: 15, + 455: 10, + 456: 10, + 457: 5, + 458: 10, + 459: 5, + 460: 5, + 461: 10, + 462: 5, + 463: 5, + 464: 10, + 465: 5, + 466: 5, + 467: 5, + 468: 15, + 469: 10, + 470: 10, + 471: 10, + 472: 10, + 473: 10, + 474: 10, + 475: 15, + 476: 20, + 477: 15, + 478: 10, + 479: 15, + 480: 10, + 481: 15, + 482: 10, + 483: 20, + 484: 10, + 485: 15, + 486: 10, + 487: 20, + 488: 20, + 489: 20, + 490: 20, + 491: 20, + 492: 15, + 493: 15, + 494: 15, + 495: 15, + 496: 15, + 497: 15, + 498: 20, + 499: 15, + 500: 10, + 501: 15, + 502: 15, + 503: 15, + 504: 15, + 505: 10, + 506: 10, + 507: 10, + 508: 10, + 509: 10, + 510: 15, + 511: 15, + 512: 15, + 513: 15, + 514: 5, + 515: 5, + 516: 15, + 517: 5, + 518: 10, + 519: 10, + 520: 10, + 521: 20, + 522: 20, + 523: 20, + 524: 10, + 525: 10, + 526: 30, + 527: 15, + 528: 15, + 529: 10, + 530: 15, + 531: 25, + 532: 10, + 533: 15, + 534: 10, + 535: 10, + 536: 10, + 537: 20, + 538: 10, + 539: 10, + 540: 10, + 541: 10, + 542: 10, + 543: 15, + 544: 15, + 545: 5, + 546: 5, + 547: 10, + 548: 10, + 549: 10, + 550: 5, + 551: 5, + 552: 10, + 553: 5, + 554: 5, + 555: 15, + 556: 10, + 557: 5, + 558: 5, + 559: 5 +} +# Species Ability Table to find Ability Number +spec_abil = { + 1: [65,0,34], + 2: [65,0,34], + 3: [65,0,34], + 4: [66,0,94], + 5: [66,0,94], + 6: [66,0,94], + 7: [67,0,44], + 8: [67,0,44], + 9: [67,0,44], + 10: [19,0,50], + 11: [61,0,61], + 12: [14,0,110], + 13: [19,0,50], + 14: [61,0,61], + 15: [68,0,97], + 16: [51,77,145], + 17: [51,77,145], + 18: [51,77,145], + 19: [50,62,55], + 20: [50,62,55], + 21: [51,0,97], + 22: [51,0,97], + 23: [22,61,127], + 24: [22,61,127], + 25: [9,0,31], + 26: [9,0,31], + 27: [8,0,146], + 28: [8,0,146], + 29: [38,79,55], + 30: [38,79,55], + 31: [38,79,125], + 32: [38,79,55], + 33: [38,79,55], + 34: [38,79,125], + 35: [56,98,132], + 36: [56,98,109], + 37: [18,0,70], + 38: [18,0,70], + 39: [56,0,132], + 40: [56,0,119], + 41: [39,0,151], + 42: [39,0,151], + 43: [34,0,50], + 44: [34,0,1], + 45: [34,0,27], + 46: [27,87,6], + 47: [27,87,6], + 48: [14,110,50], + 49: [19,110,147], + 50: [8,71,159], + 51: [8,71,159], + 52: [53,101,127], + 53: [7,101,127], + 54: [6,13,33], + 55: [6,13,33], + 56: [72,83,128], + 57: [72,83,128], + 58: [22,18,154], + 59: [22,18,154], + 60: [11,6,33], + 61: [11,6,33], + 62: [11,6,33], + 63: [28,39,98], + 64: [28,39,98], + 65: [28,39,98], + 66: [62,99,80], + 67: [62,99,80], + 68: [62,99,80], + 69: [34,0,82], + 70: [34,0,82], + 71: [34,0,82], + 72: [29,64,44], + 73: [29,64,44], + 74: [69,5,8], + 75: [69,5,8], + 76: [69,5,8], + 77: [50,18,49], + 78: [50,18,49], + 79: [12,20,144], + 80: [12,20,144], + 81: [42,5,148], + 82: [42,5,148], + 83: [51,39,128], + 84: [50,48,77], + 85: [50,48,77], + 86: [47,93,115], + 87: [47,93,115], + 88: [1,60,143], + 89: [1,60,143], + 90: [75,92,142], + 91: [75,92,142], + 92: [26,0,0], + 93: [26,0,0], + 94: [26,0,0], + 95: [69,5,133], + 96: [15,108,39], + 97: [15,108,39], + 98: [52,75,125], + 99: [52,75,125], + 100: [43,9,106], + 101: [43,9,106], + 102: [34,0,139], + 103: [34,0,139], + 104: [69,31,4], + 105: [69,31,4], + 106: [7,120,84], + 107: [51,89,39], + 108: [20,12,13], + 109: [26,0,0], + 110: [26,0,0], + 111: [31,69,120], + 112: [31,69,120], + 113: [30,32,131], + 114: [34,102,144], + 115: [48,113,39], + 116: [33,97,6], + 117: [38,97,6], + 118: [33,41,31], + 119: [33,41,31], + 120: [35,30,148], + 121: [35,30,148], + 122: [43,111,101], + 123: [68,101,80], + 124: [12,108,87], + 125: [9,0,72], + 126: [49,0,72], + 127: [52,104,153], + 128: [22,83,125], + 129: [33,0,155], + 130: [22,0,153], + 131: [11,75,93], + 132: [7,0,150], + 133: [50,91,107], + 134: [11,11,93], + 135: [10,10,95], + 136: [18,18,62], + 137: [36,88,148], + 138: [33,75,133], + 139: [33,75,133], + 140: [33,4,133], + 141: [33,4,133], + 142: [69,46,127], + 143: [17,47,82], + 144: [46,0,81], + 145: [46,0,31], + 146: [46,0,49], + 147: [61,0,63], + 148: [61,0,63], + 149: [39,0,136], + 150: [46,0,127], + 151: [28,0,0], + 152: [65,0,102], + 153: [65,0,102], + 154: [65,0,102], + 155: [66,0,18], + 156: [66,0,18], + 157: [66,0,18], + 158: [67,0,125], + 159: [67,0,125], + 160: [67,0,125], + 161: [50,51,119], + 162: [50,51,119], + 163: [15,51,110], + 164: [15,51,110], + 165: [68,48,155], + 166: [68,48,89], + 167: [68,15,97], + 168: [68,15,97], + 169: [39,0,151], + 170: [10,35,11], + 171: [10,35,11], + 172: [9,0,31], + 173: [56,98,132], + 174: [56,0,132], + 175: [55,32,105], + 176: [55,32,105], + 177: [28,48,156], + 178: [28,48,156], + 179: [9,0,57], + 180: [9,0,57], + 181: [9,0,57], + 182: [34,0,131], + 183: [47,37,157], + 184: [47,37,157], + 185: [5,69,155], + 186: [11,6,2], + 187: [34,102,151], + 188: [34,102,151], + 189: [34,102,151], + 190: [50,53,92], + 191: [34,94,48], + 192: [34,94,48], + 193: [3,14,119], + 194: [6,11,109], + 195: [6,11,109], + 196: [28,28,156], + 197: [28,28,39], + 198: [15,105,158], + 199: [12,20,144], + 200: [26,0,0], + 201: [26,0,0], + 202: [23,0,140], + 203: [39,48,157], + 204: [5,0,142], + 205: [5,0,142], + 206: [32,50,155], + 207: [52,8,17], + 208: [69,5,125], + 209: [22,50,155], + 210: [22,95,155], + 211: [38,33,22], + 212: [68,101,135], + 213: [5,82,126], + 214: [68,62,153], + 215: [39,51,124], + 216: [53,95,118], + 217: [62,95,127], + 218: [40,49,133], + 219: [40,49,133], + 220: [12,81,47], + 221: [12,81,47], + 222: [55,30,144], + 223: [55,97,141], + 224: [21,97,141], + 225: [72,55,15], + 226: [33,11,41], + 227: [51,5,133], + 228: [48,18,127], + 229: [48,18,127], + 230: [33,97,6], + 231: [53,0,8], + 232: [5,0,8], + 233: [36,88,148], + 234: [22,119,157], + 235: [20,101,141], + 236: [62,80,72], + 237: [22,101,80], + 238: [12,108,93], + 239: [9,0,72], + 240: [49,0,72], + 241: [47,113,157], + 242: [30,32,131], + 243: [46,0,10], + 244: [46,0,18], + 245: [46,0,11], + 246: [62,0,8], + 247: [61,0,61], + 248: [45,0,127], + 249: [46,0,136], + 250: [46,0,144], + 251: [30,0,0], + 252: [65,0,84], + 253: [65,0,84], + 254: [65,0,84], + 255: [66,0,3], + 256: [66,0,3], + 257: [66,0,3], + 258: [67,0,6], + 259: [67,0,6], + 260: [67,0,6], + 261: [50,95,155], + 262: [22,95,153], + 263: [53,82,95], + 264: [53,82,95], + 265: [19,0,50], + 266: [61,0,61], + 267: [68,0,79], + 268: [61,0,61], + 269: [19,0,14], + 270: [33,44,20], + 271: [33,44,20], + 272: [33,44,20], + 273: [34,48,124], + 274: [34,48,124], + 275: [34,48,124], + 276: [62,0,113], + 277: [62,0,113], + 278: [51,0,44], + 279: [51,0,44], + 280: [28,36,140], + 281: [28,36,140], + 282: [28,36,140], + 283: [33,0,44], + 284: [22,0,127], + 285: [27,90,95], + 286: [27,90,101], + 287: [54,0,0], + 288: [72,0,0], + 289: [54,0,0], + 290: [14,0,50], + 291: [3,0,151], + 292: [25,0,25], + 293: [43,0,155], + 294: [43,0,113], + 295: [43,0,113], + 296: [47,62,125], + 297: [47,62,125], + 298: [47,37,157], + 299: [5,42,159], + 300: [56,96,147], + 301: [56,96,147], + 302: [51,100,158], + 303: [52,22,125], + 304: [5,69,134], + 305: [5,69,134], + 306: [5,69,134], + 307: [74,0,140], + 308: [74,0,140], + 309: [9,31,58], + 310: [9,31,58], + 311: [57,0,0], + 312: [58,0,0], + 313: [35,68,158], + 314: [12,110,158], + 315: [30,38,102], + 316: [64,60,82], + 317: [64,60,82], + 318: [24,0,3], + 319: [24,0,3], + 320: [41,12,46], + 321: [41,12,46], + 322: [12,86,20], + 323: [40,116,83], + 324: [73,0,75], + 325: [47,20,82], + 326: [47,20,82], + 327: [20,77,126], + 328: [52,71,125], + 329: [26,26,26], + 330: [26,26,26], + 331: [8,0,11], + 332: [8,0,11], + 333: [30,0,13], + 334: [30,0,13], + 335: [17,0,137], + 336: [61,0,151], + 337: [26,0,0], + 338: [26,0,0], + 339: [12,107,93], + 340: [12,107,93], + 341: [52,75,91], + 342: [52,75,91], + 343: [26,0,0], + 344: [26,0,0], + 345: [21,0,114], + 346: [21,0,114], + 347: [4,0,33], + 348: [4,0,33], + 349: [33,0,91], + 350: [63,0,56], + 351: [59,0,0], + 352: [16,0,0], + 353: [15,119,130], + 354: [15,119,130], + 355: [26,0,0], + 356: [46,0,0], + 357: [34,94,139], + 358: [26,0,0], + 359: [46,105,154], + 360: [23,0,140], + 361: [39,115,141], + 362: [39,115,141], + 363: [47,115,12], + 364: [47,115,12], + 365: [47,115,12], + 366: [75,0,155], + 367: [33,0,41], + 368: [33,0,93], + 369: [33,69,5], + 370: [33,0,93], + 371: [69,0,125], + 372: [69,0,142], + 373: [22,0,153], + 374: [29,0,135], + 375: [29,0,135], + 376: [29,0,135], + 377: [29,0,5], + 378: [29,0,115], + 379: [29,0,135], + 380: [26,0,0], + 381: [26,0,0], + 382: [2,0,0], + 383: [70,0,0], + 384: [76,0,0], + 385: [32,0,0], + 386: [46,0,0], + 387: [65,0,75], + 388: [65,0,75], + 389: [65,0,75], + 390: [66,0,89], + 391: [66,0,89], + 392: [66,0,89], + 393: [67,0,128], + 394: [67,0,128], + 395: [67,0,128], + 396: [51,0,51], + 397: [22,0,120], + 398: [22,0,120], + 399: [86,109,141], + 400: [86,109,141], + 401: [61,0,50], + 402: [68,0,101], + 403: [79,22,62], + 404: [79,22,62], + 405: [79,22,62], + 406: [30,38,102], + 407: [30,38,101], + 408: [104,0,125], + 409: [104,0,125], + 410: [5,0,43], + 411: [5,0,43], + 412: [61,0,142], + 413: [107,0,142], + 414: [68,0,110], + 415: [118,0,55], + 416: [46,0,127], + 417: [50,53,10], + 418: [33,0,41], + 419: [33,0,41], + 420: [34,0,0], + 421: [122,0,0], + 422: [60,114,159], + 423: [60,114,159], + 424: [101,53,92], + 425: [106,84,138], + 426: [106,84,138], + 427: [50,103,7], + 428: [56,103,7], + 429: [26,0,0], + 430: [15,105,153], + 431: [7,20,51], + 432: [47,20,128], + 433: [26,0,0], + 434: [1,106,51], + 435: [1,106,51], + 436: [26,85,134], + 437: [26,85,134], + 438: [5,69,155], + 439: [43,111,101], + 440: [30,32,132], + 441: [51,77,145], + 442: [46,0,151], + 443: [8,0,24], + 444: [8,0,24], + 445: [8,0,24], + 446: [53,47,82], + 447: [80,39,158], + 448: [80,39,154], + 449: [45,0,159], + 450: [45,0,159], + 451: [4,97,51], + 452: [4,97,51], + 453: [107,87,143], + 454: [107,87,143], + 455: [26,0,0], + 456: [33,114,41], + 457: [33,114,41], + 458: [33,11,41], + 459: [117,0,43], + 460: [117,0,43], + 461: [46,46,124], + 462: [42,5,148], + 463: [20,12,13], + 464: [31,116,120], + 465: [34,102,144], + 466: [78,0,72], + 467: [49,0,72], + 468: [55,32,105], + 469: [3,110,119], + 470: [102,102,34], + 471: [81,81,115], + 472: [52,8,90], + 473: [12,81,47], + 474: [91,88,148], + 475: [80,80,154], + 476: [5,42,159], + 477: [46,0,0], + 478: [81,81,130], + 479: [26,0,0], + 480: [26,0,0], + 481: [26,0,0], + 482: [26,0,0], + 483: [46,0,140], + 484: [46,0,140], + 485: [18,0,49], + 486: [112,0,0], + 487: [46,0,140], + 488: [26,0,0], + 489: [93,0,0], + 490: [93,0,0], + 491: [123,0,0], + 492: [30,0,0], + 493: [121,0,0], + 494: [162,0,0], + 495: [65,65,126], + 496: [65,65,126], + 497: [65,65,126], + 498: [66,66,47], + 499: [66,66,47], + 500: [66,66,120], + 501: [67,67,75], + 502: [67,67,75], + 503: [67,67,75], + 504: [50,51,148], + 505: [35,51,148], + 506: [72,53,50], + 507: [22,146,113], + 508: [22,146,113], + 509: [7,84,158], + 510: [7,84,158], + 511: [82,0,65], + 512: [82,0,65], + 513: [82,0,66], + 514: [82,0,66], + 515: [82,0,67], + 516: [82,0,67], + 517: [108,28,140], + 518: [108,28,140], + 519: [145,105,79], + 520: [145,105,79], + 521: [145,105,79], + 522: [31,78,157], + 523: [31,78,157], + 524: [5,0,159], + 525: [5,0,159], + 526: [5,0,159], + 527: [109,103,86], + 528: [109,103,86], + 529: [146,159,104], + 530: [146,159,104], + 531: [131,144,103], + 532: [62,125,89], + 533: [62,125,89], + 534: [62,125,89], + 535: [33,93,11], + 536: [33,93,11], + 537: [33,143,11], + 538: [62,39,104], + 539: [5,39,104], + 540: [68,34,142], + 541: [102,34,142], + 542: [68,34,142], + 543: [38,68,95], + 544: [38,68,95], + 545: [38,68,95], + 546: [158,151,34], + 547: [158,151,34], + 548: [34,20,102], + 549: [34,20,102], + 550: [120,91,104], + 551: [22,153,83], + 552: [22,153,83], + 553: [22,153,83], + 554: [55,0,39], + 555: [125,0,161], + 556: [11,34,114], + 557: [5,75,133], + 558: [5,75,133], + 559: [61,153,22], + 560: [61,153,22], + 561: [147,98,110], + 562: [152,0,0], + 563: [152,0,0], + 564: [116,5,33], + 565: [116,5,33], + 566: [129,0,0], + 567: [129,0,0], + 568: [1,60,106], + 569: [1,133,106], + 570: [149,0,0], + 571: [149,0,0], + 572: [56,101,92], + 573: [56,101,92], + 574: [119,0,23], + 575: [119,0,23], + 576: [119,0,23], + 577: [142,98,144], + 578: [142,98,144], + 579: [142,98,144], + 580: [51,145,93], + 581: [51,145,93], + 582: [115,0,133], + 583: [115,0,133], + 584: [115,0,133], + 585: [34,157,32], + 586: [34,157,32], + 587: [9,0,78], + 588: [68,61,99], + 589: [68,75,142], + 590: [27,0,144], + 591: [27,0,144], + 592: [11,130,6], + 593: [11,130,6], + 594: [131,93,144], + 595: [14,127,68], + 596: [14,127,68], + 597: [160,0,0], + 598: [160,0,0], + 599: [57,58,29], + 600: [57,58,29], + 601: [57,58,29], + 602: [26,0,0], + 603: [26,0,0], + 604: [26,0,0], + 605: [140,28,148], + 606: [140,28,148], + 607: [18,49,23], + 608: [18,49,23], + 609: [18,49,23], + 610: [79,104,127], + 611: [79,104,127], + 612: [79,104,127], + 613: [81,0,155], + 614: [81,0,33], + 615: [26,0,0], + 616: [93,75,142], + 617: [93,60,84], + 618: [9,7,8], + 619: [39,144,120], + 620: [39,144,120], + 621: [24,125,104], + 622: [89,103,99], + 623: [89,103,99], + 624: [128,39,46], + 625: [128,39,46], + 626: [120,157,43], + 627: [51,125,55], + 628: [51,125,128], + 629: [145,142,133], + 630: [145,142,133], + 631: [82,18,73], + 632: [68,55,54], + 633: [55,0,0], + 634: [55,0,0], + 635: [26,0,0], + 636: [49,0,68], + 637: [49,0,68], + 638: [154,0,0], + 639: [154,0,0], + 640: [154,0,0], + 641: [158,0,128], + 642: [158,0,128], + 643: [163,0,0], + 644: [164,0,0], + 645: [159,0,125], + 646: [46,0,0], + 647: [154,0,0], + 648: [32,0,0], + 649: [88,0,0] +} +# Exp type, HP, Atk, Def, SpA, SpD, Spe Base Stats +pokestats = { + 1: (3, 45, 49, 49, 65, 65, 45), + 2: (3, 60, 62, 63, 80, 80, 60), + 3: (3, 80, 82, 83, 100, 100, 80), + 4: (3, 39, 52, 43, 60, 50, 65), + 5: (3, 58, 64, 58, 80, 65, 80), + 6: (3, 78, 84, 78, 109, 85, 100), + 7: (3, 44, 48, 65, 50, 64, 43), + 8: (3, 59, 63, 80, 65, 80, 58), + 9: (3, 79, 83, 100, 85, 105, 78), + 10: (2, 45, 30, 35, 20, 20, 45), + 11: (2, 50, 20, 55, 25, 25, 30), + 12: (2, 60, 45, 50, 80, 80, 70), + 13: (2, 40, 35, 30, 20, 20, 50), + 14: (2, 45, 25, 50, 25, 25, 35), + 15: (2, 65, 80, 40, 45, 80, 75), + 16: (3, 40, 45, 40, 35, 35, 56), + 17: (3, 63, 60, 55, 50, 50, 71), + 18: (3, 83, 80, 75, 70, 70, 91), + 19: (2, 30, 56, 35, 25, 35, 72), + 20: (2, 55, 81, 60, 50, 70, 97), + 21: (2, 40, 60, 30, 31, 31, 70), + 22: (2, 65, 90, 65, 61, 61, 100), + 23: (2, 35, 60, 44, 40, 54, 55), + 24: (2, 60, 85, 69, 65, 79, 80), + 25: (2, 35, 55, 30, 50, 40, 90), + 26: (2, 60, 90, 55, 90, 80, 100), + 27: (2, 50, 75, 85, 20, 30, 40), + 28: (2, 75, 100, 110, 45, 55, 65), + 29: (3, 55, 47, 52, 40, 40, 41), + 30: (3, 70, 62, 67, 55, 55, 56), + 31: (3, 90, 82, 87, 75, 85, 76), + 32: (3, 46, 57, 40, 40, 40, 50), + 33: (3, 61, 72, 57, 55, 55, 65), + 34: (3, 81, 92, 77, 85, 75, 85), + 35: (1, 70, 45, 48, 60, 65, 35), + 36: (1, 95, 70, 73, 85, 90, 60), + 37: (2, 38, 41, 40, 50, 65, 65), + 38: (2, 73, 76, 75, 81, 100, 100), + 39: (1, 115, 45, 20, 45, 25, 20), + 40: (1, 140, 70, 45, 75, 50, 45), + 41: (2, 40, 45, 35, 30, 40, 55), + 42: (2, 75, 80, 70, 65, 75, 90), + 43: (3, 45, 50, 55, 75, 65, 30), + 44: (3, 60, 65, 70, 85, 75, 40), + 45: (3, 75, 80, 85, 100, 90, 50), + 46: (2, 35, 70, 55, 45, 55, 25), + 47: (2, 60, 95, 80, 60, 80, 30), + 48: (2, 60, 55, 50, 40, 55, 45), + 49: (2, 70, 65, 60, 90, 75, 90), + 50: (2, 10, 55, 25, 35, 45, 95), + 51: (2, 35, 80, 50, 50, 70, 120), + 52: (2, 40, 45, 35, 40, 40, 90), + 53: (2, 65, 70, 60, 65, 65, 115), + 54: (2, 50, 52, 48, 65, 50, 55), + 55: (2, 80, 82, 78, 95, 80, 85), + 56: (2, 40, 80, 35, 35, 45, 70), + 57: (2, 65, 105, 60, 60, 70, 95), + 58: (4, 55, 70, 45, 70, 50, 60), + 59: (4, 90, 110, 80, 100, 80, 95), + 60: (3, 40, 50, 40, 40, 40, 90), + 61: (3, 65, 65, 65, 50, 50, 90), + 62: (3, 90, 85, 95, 70, 90, 70), + 63: (3, 25, 20, 15, 105, 55, 90), + 64: (3, 40, 35, 30, 120, 70, 105), + 65: (3, 55, 50, 45, 135, 85, 120), + 66: (3, 70, 80, 50, 35, 35, 35), + 67: (3, 80, 100, 70, 50, 60, 45), + 68: (3, 90, 130, 80, 65, 85, 55), + 69: (3, 50, 75, 35, 70, 30, 40), + 70: (3, 65, 90, 50, 85, 45, 55), + 71: (3, 80, 105, 65, 100, 60, 70), + 72: (4, 40, 40, 35, 50, 100, 70), + 73: (4, 80, 70, 65, 80, 120, 100), + 74: (3, 40, 80, 100, 30, 30, 20), + 75: (3, 55, 95, 115, 45, 45, 35), + 76: (3, 80, 110, 130, 55, 65, 45), + 77: (2, 50, 85, 55, 65, 65, 90), + 78: (2, 65, 100, 70, 80, 80, 105), + 79: (2, 90, 65, 65, 40, 40, 15), + 80: (2, 95, 75, 110, 100, 80, 30), + 81: (2, 25, 35, 70, 95, 55, 45), + 82: (2, 50, 60, 95, 120, 70, 70), + 83: (2, 52, 65, 55, 58, 62, 60), + 84: (2, 35, 85, 45, 35, 35, 75), + 85: (2, 60, 110, 70, 60, 60, 100), + 86: (2, 65, 45, 55, 45, 70, 45), + 87: (2, 90, 70, 80, 70, 95, 70), + 88: (2, 80, 80, 50, 40, 50, 25), + 89: (2, 105, 105, 75, 65, 100, 50), + 90: (4, 30, 65, 100, 45, 25, 40), + 91: (4, 50, 95, 180, 85, 45, 70), + 92: (3, 30, 35, 30, 100, 35, 80), + 93: (3, 45, 50, 45, 115, 55, 95), + 94: (3, 60, 65, 60, 130, 75, 110), + 95: (2, 35, 45, 160, 30, 45, 70), + 96: (2, 60, 48, 45, 43, 90, 42), + 97: (2, 85, 73, 70, 73, 115, 67), + 98: (2, 30, 105, 90, 25, 25, 50), + 99: (2, 55, 130, 115, 50, 50, 75), + 100: (2, 40, 30, 50, 55, 55, 100), + 101: (2, 60, 50, 70, 80, 80, 140), + 102: (4, 60, 40, 80, 60, 45, 40), + 103: (4, 95, 95, 85, 125, 65, 55), + 104: (2, 50, 50, 95, 40, 50, 35), + 105: (2, 60, 80, 110, 50, 80, 45), + 106: (2, 50, 120, 53, 35, 110, 87), + 107: (2, 50, 105, 79, 35, 110, 76), + 108: (2, 90, 55, 75, 60, 75, 30), + 109: (2, 40, 65, 95, 60, 45, 35), + 110: (2, 65, 90, 120, 85, 70, 60), + 111: (4, 80, 85, 95, 30, 30, 25), + 112: (4, 105, 130, 120, 45, 45, 40), + 113: (1, 250, 5, 5, 35, 105, 50), + 114: (2, 65, 55, 115, 100, 40, 60), + 115: (2, 105, 95, 80, 40, 80, 90), + 116: (2, 30, 40, 70, 70, 25, 60), + 117: (2, 55, 65, 95, 95, 45, 85), + 118: (2, 45, 67, 60, 35, 50, 63), + 119: (2, 80, 92, 65, 65, 80, 68), + 120: (4, 30, 45, 55, 70, 55, 85), + 121: (4, 60, 75, 85, 100, 85, 115), + 122: (2, 40, 45, 65, 100, 120, 90), + 123: (2, 70, 110, 80, 55, 80, 105), + 124: (2, 65, 50, 35, 115, 95, 95), + 125: (2, 65, 83, 57, 95, 85, 105), + 126: (2, 65, 95, 57, 100, 85, 93), + 127: (4, 65, 125, 100, 55, 70, 85), + 128: (4, 75, 100, 95, 40, 70, 110), + 129: (4, 20, 10, 55, 15, 20, 80), + 130: (4, 95, 125, 79, 60, 100, 81), + 131: (4, 130, 85, 80, 85, 95, 60), + 132: (2, 48, 48, 48, 48, 48, 48), + 133: (2, 55, 55, 50, 45, 65, 55), + 134: (2, 130, 65, 60, 110, 95, 65), + 135: (2, 65, 65, 60, 110, 95, 130), + 136: (2, 65, 130, 60, 95, 110, 65), + 137: (2, 65, 60, 70, 85, 75, 40), + 138: (2, 35, 40, 100, 90, 55, 35), + 139: (2, 70, 60, 125, 115, 70, 55), + 140: (2, 30, 80, 90, 55, 45, 55), + 141: (2, 60, 115, 105, 65, 70, 80), + 142: (4, 80, 105, 65, 60, 75, 130), + 143: (4, 160, 110, 65, 65, 110, 30), + 144: (4, 90, 85, 100, 95, 125, 85), + 145: (4, 90, 90, 85, 125, 90, 100), + 146: (4, 90, 100, 90, 125, 85, 90), + 147: (4, 41, 64, 45, 50, 50, 50), + 148: (4, 61, 84, 65, 70, 70, 70), + 149: (4, 91, 134, 95, 100, 100, 80), + 150: (4, 106, 110, 90, 154, 90, 130), + 151: (3, 100, 100, 100, 100, 100, 100), + 152: (3, 45, 49, 65, 49, 65, 45), + 153: (3, 60, 62, 80, 63, 80, 60), + 154: (3, 80, 82, 100, 83, 100, 80), + 155: (3, 39, 52, 43, 60, 50, 65), + 156: (3, 58, 64, 58, 80, 65, 80), + 157: (3, 78, 84, 78, 109, 85, 100), + 158: (3, 50, 65, 64, 44, 48, 43), + 159: (3, 65, 80, 80, 59, 63, 58), + 160: (3, 85, 105, 100, 79, 83, 78), + 161: (2, 35, 46, 34, 35, 45, 20), + 162: (2, 85, 76, 64, 45, 55, 90), + 163: (2, 60, 30, 30, 36, 56, 50), + 164: (2, 100, 50, 50, 76, 96, 70), + 165: (1, 40, 20, 30, 40, 80, 55), + 166: (1, 55, 35, 50, 55, 110, 85), + 167: (1, 40, 60, 40, 40, 40, 30), + 168: (1, 70, 90, 70, 60, 60, 40), + 169: (2, 85, 90, 80, 70, 80, 130), + 170: (4, 75, 38, 38, 56, 56, 67), + 171: (4, 125, 58, 58, 76, 76, 67), + 172: (2, 20, 40, 15, 35, 35, 60), + 173: (1, 50, 25, 28, 45, 55, 15), + 174: (1, 90, 30, 15, 40, 20, 15), + 175: (1, 35, 20, 65, 40, 65, 20), + 176: (1, 55, 40, 85, 80, 105, 40), + 177: (2, 40, 50, 45, 70, 45, 70), + 178: (2, 65, 75, 70, 95, 70, 95), + 179: (3, 55, 40, 40, 65, 45, 35), + 180: (3, 70, 55, 55, 80, 60, 45), + 181: (3, 90, 75, 75, 115, 90, 55), + 182: (3, 75, 80, 85, 90, 100, 50), + 183: (1, 70, 20, 50, 20, 50, 40), + 184: (1, 100, 50, 80, 50, 80, 50), + 185: (2, 70, 100, 115, 30, 65, 30), + 186: (3, 90, 75, 75, 90, 100, 70), + 187: (3, 35, 35, 40, 35, 55, 50), + 188: (3, 55, 45, 50, 45, 65, 80), + 189: (3, 75, 55, 70, 55, 85, 110), + 190: (1, 55, 70, 55, 40, 55, 85), + 191: (3, 30, 30, 30, 30, 30, 30), + 192: (3, 75, 75, 55, 105, 85, 30), + 193: (2, 65, 65, 45, 75, 45, 95), + 194: (2, 55, 45, 45, 25, 25, 15), + 195: (2, 95, 85, 85, 65, 65, 35), + 196: (2, 65, 65, 60, 130, 95, 110), + 197: (2, 95, 65, 110, 60, 130, 65), + 198: (3, 60, 85, 42, 85, 42, 91), + 199: (2, 95, 75, 80, 100, 110, 30), + 200: (1, 60, 60, 60, 85, 85, 85), + 201: (2, 48, 72, 48, 72, 48, 48), + 202: (2, 190, 33, 58, 33, 58, 33), + 203: (2, 70, 80, 65, 90, 65, 85), + 204: (2, 50, 65, 90, 35, 35, 15), + 205: (2, 75, 90, 140, 60, 60, 40), + 206: (2, 100, 70, 70, 65, 65, 45), + 207: (3, 65, 75, 105, 35, 65, 85), + 208: (2, 75, 85, 200, 55, 65, 30), + 209: (1, 60, 80, 50, 40, 40, 30), + 210: (1, 90, 120, 75, 60, 60, 45), + 211: (2, 65, 95, 75, 55, 55, 85), + 212: (2, 70, 130, 100, 55, 80, 65), + 213: (3, 20, 10, 230, 10, 230, 5), + 214: (4, 80, 125, 75, 40, 95, 85), + 215: (3, 55, 95, 55, 35, 75, 115), + 216: (2, 60, 80, 50, 50, 50, 40), + 217: (2, 90, 130, 75, 75, 75, 55), + 218: (2, 40, 40, 40, 70, 40, 20), + 219: (2, 50, 50, 120, 80, 80, 30), + 220: (4, 50, 50, 40, 30, 30, 50), + 221: (4, 100, 100, 80, 60, 60, 50), + 222: (1, 55, 55, 85, 65, 85, 35), + 223: (2, 35, 65, 35, 65, 35, 65), + 224: (2, 75, 105, 75, 105, 75, 45), + 225: (1, 45, 55, 45, 65, 45, 75), + 226: (4, 65, 40, 70, 80, 140, 70), + 227: (4, 65, 80, 140, 40, 70, 70), + 228: (4, 45, 60, 30, 80, 50, 65), + 229: (4, 75, 90, 50, 110, 80, 95), + 230: (2, 75, 95, 95, 95, 95, 85), + 231: (2, 90, 60, 60, 40, 40, 40), + 232: (2, 90, 120, 120, 60, 60, 50), + 233: (2, 85, 80, 90, 105, 95, 60), + 234: (4, 73, 95, 62, 85, 65, 85), + 235: (1, 55, 20, 35, 20, 45, 75), + 236: (2, 35, 35, 35, 35, 35, 35), + 237: (2, 50, 95, 95, 35, 110, 70), + 238: (2, 45, 30, 15, 85, 65, 65), + 239: (2, 45, 63, 37, 65, 55, 95), + 240: (2, 45, 75, 37, 70, 55, 83), + 241: (4, 95, 80, 105, 40, 70, 100), + 242: (1, 255, 10, 10, 75, 135, 55), + 243: (4, 90, 85, 75, 115, 100, 115), + 244: (4, 115, 115, 85, 90, 75, 100), + 245: (4, 100, 75, 115, 90, 115, 85), + 246: (4, 50, 64, 50, 45, 50, 41), + 247: (4, 70, 84, 70, 65, 70, 51), + 248: (4, 100, 134, 110, 95, 100, 61), + 249: (4, 106, 90, 130, 90, 154, 110), + 250: (4, 106, 130, 90, 110, 154, 90), + 251: (3, 100, 100, 100, 100, 100, 100), + 252: (3, 40, 45, 35, 65, 55, 70), + 253: (3, 50, 65, 45, 85, 65, 95), + 254: (3, 70, 85, 65, 105, 85, 120), + 255: (3, 45, 60, 40, 70, 50, 45), + 256: (3, 60, 85, 60, 85, 60, 55), + 257: (3, 80, 120, 70, 110, 70, 80), + 258: (3, 50, 70, 50, 50, 50, 40), + 259: (3, 70, 85, 70, 60, 70, 50), + 260: (3, 100, 110, 90, 85, 90, 60), + 261: (2, 35, 55, 35, 30, 30, 35), + 262: (2, 70, 90, 70, 60, 60, 70), + 263: (2, 38, 30, 41, 30, 41, 60), + 264: (2, 78, 70, 61, 50, 61, 100), + 265: (2, 45, 45, 35, 20, 30, 20), + 266: (2, 50, 35, 55, 25, 25, 15), + 267: (2, 60, 70, 50, 90, 50, 65), + 268: (2, 50, 35, 55, 25, 25, 15), + 269: (2, 60, 50, 70, 50, 90, 65), + 270: (3, 40, 30, 30, 40, 50, 30), + 271: (3, 60, 50, 50, 60, 70, 50), + 272: (3, 80, 70, 70, 90, 100, 70), + 273: (3, 40, 40, 50, 30, 30, 30), + 274: (3, 70, 70, 40, 60, 40, 60), + 275: (3, 90, 100, 60, 90, 60, 80), + 276: (3, 40, 55, 30, 30, 30, 85), + 277: (3, 60, 85, 60, 50, 50, 125), + 278: (2, 40, 30, 30, 55, 30, 85), + 279: (2, 60, 50, 100, 85, 70, 65), + 280: (4, 28, 25, 25, 45, 35, 40), + 281: (4, 38, 35, 35, 65, 55, 50), + 282: (4, 68, 65, 65, 125, 115, 80), + 283: (2, 40, 30, 32, 50, 52, 65), + 284: (2, 70, 60, 62, 80, 82, 60), + 285: (5, 60, 40, 60, 40, 60, 35), + 286: (5, 60, 130, 80, 60, 60, 70), + 287: (4, 60, 60, 60, 35, 35, 30), + 288: (4, 80, 80, 80, 55, 55, 90), + 289: (4, 150, 160, 100, 95, 65, 100), + 290: (0, 31, 45, 90, 30, 30, 40), + 291: (0, 61, 90, 45, 50, 50, 160), + 292: (0, 1, 90, 45, 30, 30, 40), + 293: (3, 64, 51, 23, 51, 23, 28), + 294: (3, 84, 71, 43, 71, 43, 48), + 295: (3, 104, 91, 63, 91, 63, 68), + 296: (5, 72, 60, 30, 20, 30, 25), + 297: (5, 144, 120, 60, 40, 60, 50), + 298: (1, 50, 20, 40, 20, 40, 20), + 299: (2, 30, 45, 135, 45, 90, 30), + 300: (1, 50, 45, 45, 35, 35, 50), + 301: (1, 70, 65, 65, 55, 55, 70), + 302: (3, 50, 75, 75, 65, 65, 50), + 303: (1, 50, 85, 85, 55, 55, 50), + 304: (4, 50, 70, 100, 40, 40, 30), + 305: (4, 60, 90, 140, 50, 50, 40), + 306: (4, 70, 110, 180, 60, 60, 50), + 307: (2, 30, 40, 55, 40, 55, 60), + 308: (2, 60, 60, 75, 60, 75, 80), + 309: (4, 40, 45, 40, 65, 40, 65), + 310: (4, 70, 75, 60, 105, 60, 105), + 311: (2, 60, 50, 40, 85, 75, 95), + 312: (2, 60, 40, 50, 75, 85, 95), + 313: (0, 65, 73, 55, 47, 75, 85), + 314: (5, 65, 47, 55, 73, 75, 85), + 315: (3, 50, 60, 45, 100, 80, 65), + 316: (5, 70, 43, 53, 43, 53, 40), + 317: (5, 100, 73, 83, 73, 83, 55), + 318: (4, 45, 90, 20, 65, 20, 65), + 319: (4, 70, 120, 40, 95, 40, 95), + 320: (5, 130, 70, 35, 70, 35, 60), + 321: (5, 170, 90, 45, 90, 45, 60), + 322: (2, 60, 60, 40, 65, 45, 35), + 323: (2, 70, 100, 70, 105, 75, 40), + 324: (2, 70, 85, 140, 85, 70, 20), + 325: (1, 60, 25, 35, 70, 80, 60), + 326: (1, 80, 45, 65, 90, 110, 80), + 327: (1, 60, 60, 60, 60, 60, 60), + 328: (3, 45, 100, 45, 45, 45, 10), + 329: (3, 50, 70, 50, 50, 50, 70), + 330: (3, 80, 100, 80, 80, 80, 100), + 331: (3, 50, 85, 40, 85, 40, 35), + 332: (3, 70, 115, 60, 115, 60, 55), + 333: (0, 45, 40, 60, 40, 75, 50), + 334: (0, 75, 70, 90, 70, 105, 80), + 335: (0, 73, 115, 60, 60, 60, 90), + 336: (5, 73, 100, 60, 100, 60, 65), + 337: (1, 70, 55, 65, 95, 85, 70), + 338: (1, 70, 95, 85, 55, 65, 70), + 339: (2, 50, 48, 43, 46, 41, 60), + 340: (2, 110, 78, 73, 76, 71, 60), + 341: (5, 43, 80, 65, 50, 35, 35), + 342: (5, 63, 120, 85, 90, 55, 55), + 343: (2, 40, 40, 55, 40, 70, 55), + 344: (2, 60, 70, 105, 70, 120, 75), + 345: (0, 66, 41, 77, 61, 87, 23), + 346: (0, 86, 81, 97, 81, 107, 43), + 347: (0, 45, 95, 50, 40, 50, 75), + 348: (0, 75, 125, 100, 70, 80, 45), + 349: (0, 20, 15, 20, 10, 55, 80), + 350: (0, 95, 60, 79, 100, 125, 81), + 351: (2, 70, 70, 70, 70, 70, 70), + 352: (3, 60, 90, 70, 60, 120, 40), + 353: (1, 44, 75, 35, 63, 33, 45), + 354: (1, 64, 115, 65, 83, 63, 65), + 355: (1, 20, 40, 90, 30, 90, 25), + 356: (1, 40, 70, 130, 60, 130, 25), + 357: (4, 99, 68, 83, 72, 87, 51), + 358: (1, 65, 50, 70, 95, 80, 65), + 359: (3, 65, 130, 60, 75, 60, 75), + 360: (2, 95, 23, 48, 23, 48, 23), + 361: (2, 50, 50, 50, 50, 50, 50), + 362: (2, 80, 80, 80, 80, 80, 80), + 363: (3, 70, 40, 50, 55, 50, 25), + 364: (3, 90, 60, 70, 75, 70, 45), + 365: (3, 110, 80, 90, 95, 90, 65), + 366: (0, 35, 64, 85, 74, 55, 32), + 367: (0, 55, 104, 105, 94, 75, 52), + 368: (0, 55, 84, 105, 114, 75, 52), + 369: (4, 100, 90, 130, 45, 65, 55), + 370: (1, 43, 30, 55, 40, 65, 97), + 371: (4, 45, 75, 60, 40, 30, 50), + 372: (4, 65, 95, 100, 60, 50, 50), + 373: (4, 95, 135, 80, 110, 80, 100), + 374: (4, 40, 55, 80, 35, 60, 30), + 375: (4, 60, 75, 100, 55, 80, 50), + 376: (4, 80, 135, 130, 95, 90, 70), + 377: (4, 80, 100, 200, 50, 100, 50), + 378: (4, 80, 50, 100, 100, 200, 50), + 379: (4, 80, 75, 150, 75, 150, 50), + 380: (4, 80, 80, 90, 110, 130, 110), + 381: (4, 80, 90, 80, 130, 110, 110), + 382: (4, 100, 100, 90, 150, 140, 90), + 383: (4, 100, 150, 140, 100, 90, 90), + 384: (4, 105, 150, 90, 150, 90, 95), + 385: (4, 100, 100, 100, 100, 100, 100), + 386: (4, 50, 150, 50, 150, 50, 150), + 387: (3, 55, 68, 64, 45, 55, 31), + 388: (3, 75, 89, 85, 55, 65, 36), + 389: (3, 95, 109, 105, 75, 85, 56), + 390: (3, 44, 58, 44, 58, 44, 61), + 391: (3, 64, 78, 52, 78, 52, 81), + 392: (3, 76, 104, 71, 104, 71, 108), + 393: (3, 53, 51, 53, 61, 56, 40), + 394: (3, 64, 66, 68, 81, 76, 50), + 395: (3, 84, 86, 88, 111, 101, 60), + 396: (3, 40, 55, 30, 30, 30, 60), + 397: (3, 55, 75, 50, 40, 40, 80), + 398: (3, 85, 120, 70, 50, 50, 100), + 399: (2, 59, 45, 40, 35, 40, 31), + 400: (2, 79, 85, 60, 55, 60, 71), + 401: (3, 37, 25, 41, 25, 41, 25), + 402: (3, 77, 85, 51, 55, 51, 65), + 403: (3, 45, 65, 34, 40, 34, 45), + 404: (3, 60, 85, 49, 60, 49, 60), + 405: (3, 80, 120, 79, 95, 79, 70), + 406: (3, 40, 30, 35, 50, 70, 55), + 407: (3, 60, 70, 55, 125, 105, 90), + 408: (0, 67, 125, 40, 30, 30, 58), + 409: (0, 97, 165, 60, 65, 50, 58), + 410: (0, 30, 42, 118, 42, 88, 30), + 411: (0, 60, 52, 168, 47, 138, 30), + 412: (2, 40, 29, 45, 29, 45, 36), + 413: (2, 60, 59, 85, 79, 105, 36), + 414: (2, 70, 94, 50, 94, 50, 66), + 415: (3, 30, 30, 42, 30, 42, 70), + 416: (3, 70, 80, 102, 80, 102, 40), + 417: (2, 60, 45, 70, 45, 90, 95), + 418: (2, 55, 65, 35, 60, 30, 85), + 419: (2, 85, 105, 55, 85, 50, 115), + 420: (2, 45, 35, 45, 62, 53, 35), + 421: (2, 70, 60, 70, 87, 78, 85), + 422: (2, 76, 48, 48, 57, 62, 34), + 423: (2, 111, 83, 68, 92, 82, 39), + 424: (1, 75, 100, 66, 60, 66, 115), + 425: (5, 90, 50, 34, 60, 44, 70), + 426: (5, 150, 80, 44, 90, 54, 80), + 427: (2, 55, 66, 44, 44, 56, 85), + 428: (2, 65, 76, 84, 54, 96, 105), + 429: (1, 60, 60, 60, 105, 105, 105), + 430: (3, 100, 125, 52, 105, 52, 71), + 431: (1, 49, 55, 42, 42, 37, 85), + 432: (1, 71, 82, 64, 64, 59, 112), + 433: (1, 45, 30, 50, 65, 50, 45), + 434: (2, 63, 63, 47, 41, 41, 74), + 435: (2, 103, 93, 67, 71, 61, 84), + 436: (2, 57, 24, 86, 24, 86, 23), + 437: (2, 67, 89, 116, 79, 116, 33), + 438: (2, 50, 80, 95, 10, 45, 10), + 439: (2, 20, 25, 45, 70, 90, 60), + 440: (1, 100, 5, 5, 15, 65, 30), + 441: (3, 76, 65, 45, 92, 42, 91), + 442: (2, 50, 92, 108, 92, 108, 35), + 443: (4, 58, 70, 45, 40, 45, 42), + 444: (4, 68, 90, 65, 50, 55, 82), + 445: (4, 108, 130, 95, 80, 85, 102), + 446: (4, 135, 85, 40, 40, 85, 5), + 447: (3, 40, 70, 40, 35, 40, 60), + 448: (3, 70, 110, 70, 115, 70, 90), + 449: (4, 68, 72, 78, 38, 42, 32), + 450: (4, 108, 112, 118, 68, 72, 47), + 451: (4, 40, 50, 90, 30, 55, 65), + 452: (4, 70, 90, 110, 60, 75, 95), + 453: (2, 48, 61, 40, 61, 40, 50), + 454: (2, 83, 106, 65, 86, 65, 85), + 455: (4, 74, 100, 72, 90, 72, 46), + 456: (0, 49, 49, 56, 49, 61, 66), + 457: (0, 69, 69, 76, 69, 86, 91), + 458: (4, 45, 20, 50, 60, 120, 50), + 459: (4, 60, 62, 50, 62, 60, 40), + 460: (4, 90, 92, 75, 92, 85, 60), + 461: (3, 70, 120, 65, 45, 85, 125), + 462: (2, 70, 70, 115, 130, 90, 60), + 463: (2, 110, 85, 95, 80, 95, 50), + 464: (4, 115, 140, 130, 55, 55, 40), + 465: (2, 100, 100, 125, 110, 50, 50), + 466: (2, 75, 123, 67, 95, 85, 95), + 467: (2, 75, 95, 67, 125, 95, 83), + 468: (1, 85, 50, 95, 120, 115, 80), + 469: (2, 86, 76, 86, 116, 56, 95), + 470: (2, 65, 110, 130, 60, 65, 95), + 471: (2, 65, 60, 110, 130, 95, 65), + 472: (3, 75, 95, 125, 45, 75, 95), + 473: (4, 110, 130, 80, 70, 60, 80), + 474: (2, 85, 80, 70, 135, 75, 90), + 475: (4, 68, 125, 65, 65, 115, 80), + 476: (2, 60, 55, 145, 75, 150, 40), + 477: (1, 45, 100, 135, 65, 135, 45), + 478: (2, 70, 80, 70, 80, 70, 110), + 479: (2, 50, 50, 77, 95, 77, 91), + 480: (4, 75, 75, 130, 75, 130, 95), + 481: (4, 80, 105, 105, 105, 105, 80), + 482: (4, 75, 125, 70, 125, 70, 115), + 483: (4, 100, 120, 120, 150, 100, 90), + 484: (4, 90, 120, 100, 150, 120, 100), + 485: (4, 91, 90, 106, 130, 106, 77), + 486: (4, 110, 160, 110, 80, 110, 100), + 487: (4, 150, 100, 120, 100, 120, 90), + 488: (4, 120, 70, 120, 75, 130, 85), + 489: (4, 80, 80, 80, 80, 80, 80), + 490: (4, 100, 100, 100, 100, 100, 100), + 491: (4, 70, 90, 90, 135, 90, 125), + 492: (3, 100, 100, 100, 100, 100, 100), + 493: (4, 120, 120, 120, 120, 120, 120), + 494: (4, 100, 100, 100, 100, 100, 100), + 495: (3, 45, 45, 55, 45, 55, 63), + 496: (3, 60, 60, 75, 60, 75, 83), + 497: (3, 75, 75, 95, 75, 95, 113), + 498: (3, 65, 63, 45, 45, 45, 45), + 499: (3, 90, 93, 55, 70, 55, 55), + 500: (3, 110, 123, 65, 100, 65, 65), + 501: (3, 55, 55, 45, 63, 45, 45), + 502: (3, 75, 75, 60, 83, 60, 60), + 503: (3, 95, 100, 85, 108, 70, 70), + 504: (2, 45, 55, 39, 35, 39, 42), + 505: (2, 60, 85, 69, 60, 69, 77), + 506: (3, 45, 60, 45, 25, 45, 55), + 507: (3, 65, 80, 65, 35, 65, 60), + 508: (3, 85, 100, 90, 45, 90, 80), + 509: (2, 41, 50, 37, 50, 37, 66), + 510: (2, 64, 88, 50, 88, 50, 106), + 511: (2, 50, 53, 48, 53, 48, 64), + 512: (2, 75, 98, 63, 98, 63, 101), + 513: (2, 50, 53, 48, 53, 48, 64), + 514: (2, 75, 98, 63, 98, 63, 101), + 515: (2, 50, 53, 48, 53, 48, 64), + 516: (2, 75, 98, 63, 98, 63, 101), + 517: (1, 76, 25, 45, 67, 55, 24), + 518: (1, 116, 55, 85, 107, 95, 29), + 519: (3, 50, 55, 50, 36, 30, 43), + 520: (3, 62, 77, 62, 50, 42, 65), + 521: (3, 80, 105, 80, 65, 55, 93), + 522: (2, 45, 60, 32, 50, 32, 76), + 523: (2, 75, 100, 63, 80, 63, 116), + 524: (3, 55, 75, 85, 25, 25, 15), + 525: (3, 70, 105, 105, 50, 40, 20), + 526: (3, 85, 135, 130, 60, 70, 25), + 527: (2, 55, 45, 43, 55, 43, 72), + 528: (2, 67, 57, 55, 77, 55, 114), + 529: (2, 60, 85, 40, 30, 45, 68), + 530: (2, 110, 135, 60, 50, 65, 88), + 531: (1, 103, 60, 86, 60, 86, 50), + 532: (3, 75, 80, 55, 25, 35, 35), + 533: (3, 85, 105, 85, 40, 50, 40), + 534: (3, 105, 140, 95, 55, 65, 45), + 535: (3, 50, 50, 40, 50, 40, 64), + 536: (3, 75, 65, 55, 65, 55, 69), + 537: (3, 105, 85, 75, 85, 75, 74), + 538: (2, 120, 100, 85, 30, 85, 45), + 539: (2, 75, 125, 75, 30, 75, 85), + 540: (3, 45, 53, 70, 40, 60, 42), + 541: (3, 55, 63, 90, 50, 80, 42), + 542: (3, 75, 103, 80, 70, 70, 92), + 543: (3, 30, 45, 59, 30, 39, 57), + 544: (3, 40, 55, 99, 40, 79, 47), + 545: (3, 60, 90, 89, 55, 69, 112), + 546: (2, 40, 27, 60, 37, 50, 66), + 547: (2, 60, 67, 85, 77, 75, 116), + 548: (2, 45, 35, 50, 70, 50, 30), + 549: (2, 70, 60, 75, 110, 75, 90), + 550: (2, 70, 92, 65, 80, 55, 98), + 551: (3, 50, 72, 35, 35, 35, 65), + 552: (3, 60, 82, 45, 45, 45, 74), + 553: (3, 95, 117, 70, 65, 70, 92), + 554: (3, 70, 90, 45, 15, 45, 50), + 555: (3, 105, 140, 55, 30, 55, 95), + 556: (2, 75, 86, 67, 106, 67, 60), + 557: (2, 50, 65, 85, 35, 35, 55), + 558: (2, 70, 95, 125, 65, 75, 45), + 559: (2, 50, 75, 70, 35, 70, 48), + 560: (2, 65, 90, 115, 45, 115, 58), + 561: (2, 72, 58, 80, 103, 80, 97), + 562: (2, 38, 30, 85, 55, 65, 30), + 563: (2, 58, 50, 145, 95, 105, 30), + 564: (2, 54, 78, 103, 53, 45, 22), + 565: (2, 74, 108, 133, 83, 65, 32), + 566: (2, 55, 112, 45, 74, 45, 70), + 567: (2, 75, 140, 65, 112, 65, 110), + 568: (2, 50, 50, 62, 40, 62, 65), + 569: (2, 80, 95, 82, 60, 82, 75), + 570: (3, 40, 65, 40, 80, 40, 65), + 571: (3, 60, 105, 60, 120, 60, 105), + 572: (1, 55, 50, 40, 40, 40, 75), + 573: (1, 75, 95, 60, 65, 60, 115), + 574: (3, 45, 30, 50, 55, 65, 45), + 575: (3, 60, 45, 70, 75, 85, 55), + 576: (3, 70, 55, 95, 95, 110, 65), + 577: (3, 45, 30, 40, 105, 50, 20), + 578: (3, 65, 40, 50, 125, 60, 30), + 579: (3, 110, 65, 75, 125, 85, 30), + 580: (2, 62, 44, 50, 44, 50, 55), + 581: (2, 75, 87, 63, 87, 63, 98), + 582: (4, 36, 50, 50, 65, 60, 44), + 583: (4, 51, 65, 65, 80, 75, 59), + 584: (4, 71, 95, 85, 110, 95, 79), + 585: (2, 60, 60, 50, 40, 50, 75), + 586: (2, 80, 100, 70, 60, 70, 95), + 587: (2, 55, 75, 60, 75, 60, 103), + 588: (2, 50, 75, 45, 40, 45, 60), + 589: (2, 70, 135, 105, 60, 105, 20), + 590: (2, 69, 55, 45, 55, 55, 15), + 591: (2, 114, 85, 70, 85, 80, 30), + 592: (2, 55, 40, 50, 65, 85, 40), + 593: (2, 100, 60, 70, 85, 105, 60), + 594: (1, 165, 75, 80, 40, 45, 65), + 595: (2, 50, 47, 50, 57, 50, 65), + 596: (2, 70, 77, 60, 97, 60, 108), + 597: (2, 44, 50, 91, 24, 86, 10), + 598: (2, 74, 94, 131, 54, 116, 20), + 599: (3, 40, 55, 70, 45, 60, 30), + 600: (3, 60, 80, 95, 70, 85, 50), + 601: (3, 60, 100, 115, 70, 85, 90), + 602: (4, 35, 55, 40, 45, 40, 60), + 603: (4, 65, 85, 70, 75, 70, 40), + 604: (4, 85, 115, 80, 105, 80, 50), + 605: (2, 55, 55, 55, 85, 55, 30), + 606: (2, 75, 75, 75, 125, 95, 40), + 607: (3, 50, 30, 55, 65, 55, 20), + 608: (3, 60, 40, 60, 95, 60, 55), + 609: (3, 60, 55, 90, 145, 90, 80), + 610: (4, 46, 87, 60, 30, 40, 57), + 611: (4, 66, 117, 70, 40, 50, 67), + 612: (4, 76, 147, 90, 60, 70, 97), + 613: (2, 55, 70, 40, 60, 40, 40), + 614: (2, 95, 110, 80, 70, 80, 50), + 615: (2, 70, 50, 30, 95, 135, 105), + 616: (2, 50, 40, 85, 40, 65, 25), + 617: (2, 80, 70, 40, 100, 60, 145), + 618: (2, 109, 66, 84, 81, 99, 32), + 619: (3, 45, 85, 50, 55, 50, 65), + 620: (3, 65, 125, 60, 95, 60, 105), + 621: (2, 77, 120, 90, 60, 90, 48), + 622: (2, 59, 74, 50, 35, 50, 35), + 623: (2, 89, 124, 80, 55, 80, 55), + 624: (2, 45, 85, 70, 40, 40, 60), + 625: (2, 65, 125, 100, 60, 70, 70), + 626: (2, 95, 110, 95, 40, 95, 55), + 627: (4, 70, 83, 50, 37, 50, 60), + 628: (4, 100, 123, 75, 57, 75, 80), + 629: (4, 70, 55, 75, 45, 65, 60), + 630: (4, 110, 65, 105, 55, 95, 80), + 631: (2, 85, 97, 66, 105, 66, 65), + 632: (2, 58, 109, 112, 48, 48, 109), + 633: (4, 52, 65, 50, 45, 50, 38), + 634: (4, 72, 85, 70, 65, 70, 58), + 635: (4, 92, 105, 90, 125, 90, 98), + 636: (4, 55, 85, 55, 50, 55, 60), + 637: (4, 85, 60, 65, 135, 105, 100), + 638: (4, 91, 90, 129, 90, 72, 108), + 639: (4, 91, 129, 90, 72, 90, 108), + 640: (4, 91, 90, 72, 90, 129, 108), + 641: (4, 79, 115, 70, 125, 80, 111), + 642: (4, 79, 115, 70, 125, 80, 111), + 643: (4, 100, 120, 100, 150, 120, 90), + 644: (4, 100, 150, 120, 120, 100, 90), + 645: (4, 89, 125, 90, 115, 80, 101), + 646: (4, 125, 130, 90, 130, 90, 95), + 647: (4, 91, 72, 90, 129, 90, 108), + 648: (4, 100, 77, 77, 128, 128, 90), + 649: (4, 71, 120, 95, 120, 95, 99) +} +# Exp lookup table +lvlexp = { + 1: (0, 0, 0, 0, 0, 0), + 2: (15, 6, 8, 9, 10, 4), + 3: (52, 21, 27, 57, 33, 13), + 4: (122, 51, 64, 96, 80, 32), + 5: (237, 100, 125, 135, 156, 65), + 6: (406, 172, 216, 179, 270, 112), + 7: (637, 274, 343, 236, 428, 178), + 8: (942, 409, 512, 314, 640, 276), + 9: (1326, 583, 729, 419, 911, 393), + 10: (1800, 800, 1000, 560, 1250, 540), + 11: (2369, 1064, 1331, 742, 1663, 745), + 12: (3041, 1382, 1728, 973, 2160, 967), + 13: (3822, 1757, 2197, 1261, 2746, 1230), + 14: (4719, 2195, 2744, 1612, 3430, 1591), + 15: (5737, 2700, 3375, 2035, 4218, 1957), + 16: (6881, 3276, 4096, 2535, 5120, 2457), + 17: (8155, 3930, 4913, 3120, 6141, 3046), + 18: (9564, 4665, 5832, 3798, 7290, 3732), + 19: (11111, 5487, 6859, 4575, 8573, 4526), + 20: (12800, 6400, 8000, 5460, 10000, 5440), + 21: (14632, 7408, 9261, 6458, 11576, 6482), + 22: (16610, 8518, 10648, 7577, 13310, 7666), + 23: (18737, 9733, 12167, 8825, 15208, 9003), + 24: (21012, 11059, 13824, 10208, 17280, 10506), + 25: (23437, 12500, 15625, 11735, 19531, 12187), + 26: (26012, 14060, 17576, 13411, 21970, 14060), + 27: (28737, 15746, 19683, 15244, 24603, 16140), + 28: (31610, 17561, 21952, 17242, 27440, 18439), + 29: (34632, 19511, 24389, 19411, 30486, 20974), + 30: (37800, 21600, 27000, 21760, 33750, 23760), + 31: (41111, 23832, 29791, 24294, 37238, 26811), + 32: (44564, 26214, 32768, 27021, 40960, 30146), + 33: (48155, 28749, 35937, 29949, 44921, 33780), + 34: (51881, 31443, 39304, 33084, 49130, 37731), + 35: (55737, 34300, 42875, 36435, 53593, 42017), + 36: (59719, 37324, 46656, 40007, 58320, 46656), + 37: (63822, 40522, 50653, 43808, 63316, 50653), + 38: (68041, 43897, 54872, 47846, 68590, 55969), + 39: (72369, 47455, 59319, 52127, 74148, 60505), + 40: (76800, 51200, 64000, 56660, 80000, 66560), + 41: (81326, 55136, 68921, 61450, 86151, 71677), + 42: (85942, 59270, 74088, 66505, 92610, 78533), + 43: (90637, 63605, 79507, 71833, 99383, 84277), + 44: (95406, 68147, 85184, 77440, 106480, 91998), + 45: (100237, 72900, 91125, 83335, 113906, 98415), + 46: (105122, 77868, 97336, 89523, 121670, 107069), + 47: (110052, 83058, 103823, 96012, 129778, 114205), + 48: (115015, 88473, 110592, 102810, 138240, 123863), + 49: (120001, 94119, 117649, 109923, 147061, 131766), + 50: (125000, 100000, 125000, 117360, 156250, 142500), + 51: (131324, 106120, 132651, 125126, 165813, 151222), + 52: (137795, 112486, 140608, 133229, 175760, 163105), + 53: (144410, 119101, 148877, 141677, 186096, 172697), + 54: (151165, 125971, 157464, 150476, 196830, 185807), + 55: (158056, 133100, 166375, 159635, 207968, 196322), + 56: (165079, 140492, 175616, 169159, 219520, 210739), + 57: (172229, 148154, 185193, 179056, 231491, 222231), + 58: (179503, 156089, 195112, 189334, 243890, 238036), + 59: (186894, 164303, 205379, 199999, 256723, 250562), + 60: (194400, 172800, 216000, 211060, 270000, 267840), + 61: (202013, 181584, 226981, 222522, 283726, 281456), + 62: (209728, 190662, 238328, 234393, 297910, 300293), + 63: (217540, 200037, 250047, 246681, 312558, 315059), + 64: (225443, 209715, 262144, 259392, 327680, 335544), + 65: (233431, 219700, 274625, 272535, 343281, 351520), + 66: (241496, 229996, 287496, 286115, 359370, 373744), + 67: (249633, 240610, 300763, 300140, 375953, 390991), + 68: (257834, 251545, 314432, 314618, 393040, 415050), + 69: (267406, 262807, 328509, 329555, 410636, 433631), + 70: (276458, 274400, 343000, 344960, 428750, 459620), + 71: (286328, 286328, 357911, 360838, 447388, 479600), + 72: (296358, 298598, 373248, 377197, 466560, 507617), + 73: (305767, 311213, 389017, 394045, 486271, 529063), + 74: (316074, 324179, 405224, 411388, 506530, 559209), + 75: (326531, 337500, 421875, 429235, 527343, 582187), + 76: (336255, 351180, 438976, 447591, 548720, 614566), + 77: (346965, 365226, 456533, 466464, 570666, 639146), + 78: (357812, 379641, 474552, 485862, 593190, 673863), + 79: (367807, 394431, 493039, 505791, 616298, 700115), + 80: (378880, 409600, 512000, 526260, 640000, 737280), + 81: (390077, 425152, 531441, 547274, 664301, 765275), + 82: (400293, 441094, 551368, 568841, 689210, 804997), + 83: (411686, 457429, 571787, 590969, 714733, 834809), + 84: (423190, 474163, 592704, 613664, 740880, 877201), + 85: (433572, 491300, 614125, 636935, 767656, 908905), + 86: (445239, 508844, 636056, 660787, 795070, 954084), + 87: (457001, 526802, 658503, 685228, 823128, 987754), + 88: (467489, 545177, 681472, 710266, 851840, 1035837), + 89: (479378, 563975, 704969, 735907, 881211, 1071552), + 90: (491346, 583200, 729000, 762160, 911250, 1122660), + 91: (501878, 602856, 753571, 789030, 941963, 1160499), + 92: (513934, 622950, 778688, 816525, 973360, 1214753), + 93: (526049, 643485, 804357, 844653, 1005446, 1254796), + 94: (536557, 664467, 830584, 873420, 1038230, 1312322), + 95: (548720, 685900, 857375, 902835, 1071718, 1354652), + 96: (560922, 707788, 884736, 932903, 1105920, 1415577), + 97: (571333, 730138, 912673, 963632, 1140841, 1460276), + 98: (583539, 752953, 941192, 995030, 1176490, 1524731), + 99: (591882, 776239, 970299, 1027103, 1212873, 1571884), + 100: (600000, 800000, 1000000, 1059860, 1250000, 1640000) +} \ No newline at end of file