1# -*- coding: UTF-8 -*- 2import random 3 4from pychess.Utils.const import WHITE, BLACK, PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING 5 6# Polyglot opening books are indexed by 64-bit Zobrist hash keys. 7# The standard specifies the following Zobrist seed values. 8# The numbers in this file come from PolyGlot by Fabien Letouzey. 9# PolyGlot is available under the GNU GPL from http://wbec-ridderkerk.nl 10 11pieceHashes = [ 12 [ 13 [0x0000000000000000] * 64, 14 [0x5355f900c2a82dc7, 15 0x07fb9f855a997142, 16 0x5093417aa8a7ed5e, 17 0x7bcbc38da25a7f3c, 18 0x19fc8a768cf4b6d4, 19 0x637a7780decfc0d9, 20 0x8249a47aee0e41f7, 21 0x79ad695501e7d1e8, 22 0x14acbaf4777d5776, 23 0xf145b6beccdea195, 24 0xdabf2ac8201752fc, 25 0x24c3c94df9c8d3f6, 26 0xbb6e2924f03912ea, 27 0x0ce26c0b95c980d9, 28 0xa49cd132bfbf7cc4, 29 0xe99d662af4243939, 30 0x27e6ad7891165c3f, 31 0x8535f040b9744ff1, 32 0x54b3f4fa5f40d873, 33 0x72b12c32127fed2b, 34 0xee954d3c7b411f47, 35 0x9a85ac909a24eaa1, 36 0x70ac4cd9f04f21f5, 37 0xf9b89d3e99a075c2, 38 0x87b3e2b2b5c907b1, 39 0xa366e5b8c54f48b8, 40 0xae4a9346cc3f7cf2, 41 0x1920c04d47267bbd, 42 0x87bf02c6b49e2ae9, 43 0x092237ac237f3859, 44 0xff07f64ef8ed14d0, 45 0x8de8dca9f03cc54e, 46 0x9c1633264db49c89, 47 0xb3f22c3d0b0b38ed, 48 0x390e5fb44d01144b, 49 0x5bfea5b4712768e9, 50 0x1e1032911fa78984, 51 0x9a74acb964e78cb3, 52 0x4f80f7a035dafb04, 53 0x6304d09a0b3738c4, 54 0x2171e64683023a08, 55 0x5b9b63eb9ceff80c, 56 0x506aacf489889342, 57 0x1881afc9a3a701d6, 58 0x6503080440750644, 59 0xdfd395339cdbf4a7, 60 0xef927dbcf00c20f2, 61 0x7b32f7d1e03680ec, 62 0xb9fd7620e7316243, 63 0x05a7e8a57db91b77, 64 0xb5889c6e15630a75, 65 0x4a750a09ce9573f7, 66 0xcf464cec899a2f8a, 67 0xf538639ce705b824, 68 0x3c79a0ff5580ef7f, 69 0xede6c87f8477609d, 70 0x799e81f05bc93f31, 71 0x86536b8cf3428a8c, 72 0x97d7374c60087b73, 73 0xa246637cff328532, 74 0x043fcae60cc0eba0, 75 0x920e449535dd359e, 76 0x70eb093b15b290cc, 77 0x73a1921916591cbd, ], 78 [0xc547f57e42a7444e, 79 0x78e37644e7cad29e, 80 0xfe9a44e9362f05fa, 81 0x08bd35cc38336615, 82 0x9315e5eb3a129ace, 83 0x94061b871e04df75, 84 0xdf1d9f9d784ba010, 85 0x3bba57b68871b59d, 86 0xd2b7adeeded1f73f, 87 0xf7a255d83bc373f8, 88 0xd7f4f2448c0ceb81, 89 0xd95be88cd210ffa7, 90 0x336f52f8ff4728e7, 91 0xa74049dac312ac71, 92 0xa2f61bb6e437fdb5, 93 0x4f2a5cb07f6a35b3, 94 0x87d380bda5bf7859, 95 0x16b9f7e06c453a21, 96 0x7ba2484c8a0fd54e, 97 0xf3a678cad9a2e38c, 98 0x39b0bf7dde437ba2, 99 0xfcaf55c1bf8a4424, 100 0x18fcf680573fa594, 101 0x4c0563b89f495ac3, 102 0x40e087931a00930d, 103 0x8cffa9412eb642c1, 104 0x68ca39053261169f, 105 0x7a1ee967d27579e2, 106 0x9d1d60e5076f5b6f, 107 0x3810e399b6f65ba2, 108 0x32095b6d4ab5f9b1, 109 0x35cab62109dd038a, 110 0xa90b24499fcfafb1, 111 0x77a225a07cc2c6bd, 112 0x513e5e634c70e331, 113 0x4361c0ca3f692f12, 114 0xd941aca44b20a45b, 115 0x528f7c8602c5807b, 116 0x52ab92beb9613989, 117 0x9d1dfa2efc557f73, 118 0x722ff175f572c348, 119 0x1d1260a51107fe97, 120 0x7a249a57ec0c9ba2, 121 0x04208fe9e8f7f2d6, 122 0x5a110c6058b920a0, 123 0x0cd9a497658a5698, 124 0x56fd23c8f9715a4c, 125 0x284c847b9d887aae, 126 0x04feabfbbdb619cb, 127 0x742e1e651c60ba83, 128 0x9a9632e65904ad3c, 129 0x881b82a13b51b9e2, 130 0x506e6744cd974924, 131 0xb0183db56ffc6a79, 132 0x0ed9b915c66ed37e, 133 0x5e11e86d5873d484, 134 0xf678647e3519ac6e, 135 0x1b85d488d0f20cc5, 136 0xdab9fe6525d89021, 137 0x0d151d86adb73615, 138 0xa865a54edcc0f019, 139 0x93c42566aef98ffb, 140 0x99e7afeabe000731, 141 0x48cbff086ddf285a, ], 142 [0x23b70edb1955c4bf, 143 0xc330de426430f69d, 144 0x4715ed43e8a45c0a, 145 0xa8d7e4dab780a08d, 146 0x0572b974f03ce0bb, 147 0xb57d2e985e1419c7, 148 0xe8d9ecbe2cf3d73f, 149 0x2fe4b17170e59750, 150 0x11317ba87905e790, 151 0x7fbf21ec8a1f45ec, 152 0x1725cabfcb045b00, 153 0x964e915cd5e2b207, 154 0x3e2b8bcbf016d66d, 155 0xbe7444e39328a0ac, 156 0xf85b2b4fbcde44b7, 157 0x49353fea39ba63b1, 158 0x1dd01aafcd53486a, 159 0x1fca8a92fd719f85, 160 0xfc7c95d827357afa, 161 0x18a6a990c8b35ebd, 162 0xcccb7005c6b9c28d, 163 0x3bdbb92c43b17f26, 164 0xaa70b5b4f89695a2, 165 0xe94c39a54a98307f, 166 0xb7a0b174cff6f36e, 167 0xd4dba84729af48ad, 168 0x2e18bc1ad9704a68, 169 0x2de0966daf2f8b1c, 170 0xb9c11d5b1e43a07e, 171 0x64972d68dee33360, 172 0x94628d38d0c20584, 173 0xdbc0d2b6ab90a559, 174 0xd2733c4335c6a72f, 175 0x7e75d99d94a70f4d, 176 0x6ced1983376fa72b, 177 0x97fcaacbf030bc24, 178 0x7b77497b32503b12, 179 0x8547eddfb81ccb94, 180 0x79999cdff70902cb, 181 0xcffe1939438e9b24, 182 0x829626e3892d95d7, 183 0x92fae24291f2b3f1, 184 0x63e22c147b9c3403, 185 0xc678b6d860284a1c, 186 0x5873888850659ae7, 187 0x0981dcd296a8736d, 188 0x9f65789a6509a440, 189 0x9ff38fed72e9052f, 190 0xe479ee5b9930578c, 191 0xe7f28ecd2d49eecd, 192 0x56c074a581ea17fe, 193 0x5544f7d774b14aef, 194 0x7b3f0195fc6f290f, 195 0x12153635b2c0cf57, 196 0x7f5126dbba5e0ca7, 197 0x7a76956c3eafb413, 198 0x3d5774a11d31ab39, 199 0x8a1b083821f40cb4, 200 0x7b4a38e32537df62, 201 0x950113646d1d6e03, 202 0x4da8979a0041e8a9, 203 0x3bc36e078f7515d7, 204 0x5d0a12f27ad310d1, 205 0x7f9d1a2e1ebe1327, ], 206 [0xa09e8c8c35ab96de, 207 0xfa7e393983325753, 208 0xd6b6d0ecc617c699, 209 0xdfea21ea9e7557e3, 210 0xb67c1fa481680af8, 211 0xca1e3785a9e724e5, 212 0x1cfc8bed0d681639, 213 0xd18d8549d140caea, 214 0x4ed0fe7e9dc91335, 215 0xe4dbf0634473f5d2, 216 0x1761f93a44d5aefe, 217 0x53898e4c3910da55, 218 0x734de8181f6ec39a, 219 0x2680b122baa28d97, 220 0x298af231c85bafab, 221 0x7983eed3740847d5, 222 0x66c1a2a1a60cd889, 223 0x9e17e49642a3e4c1, 224 0xedb454e7badc0805, 225 0x50b704cab602c329, 226 0x4cc317fb9cddd023, 227 0x66b4835d9eafea22, 228 0x219b97e26ffc81bd, 229 0x261e4e4c0a333a9d, 230 0x1fe2cca76517db90, 231 0xd7504dfa8816edbb, 232 0xb9571fa04dc089c8, 233 0x1ddc0325259b27de, 234 0xcf3f4688801eb9aa, 235 0xf4f5d05c10cab243, 236 0x38b6525c21a42b0e, 237 0x36f60e2ba4fa6800, 238 0xeb3593803173e0ce, 239 0x9c4cd6257c5a3603, 240 0xaf0c317d32adaa8a, 241 0x258e5a80c7204c4b, 242 0x8b889d624d44885d, 243 0xf4d14597e660f855, 244 0xd4347f66ec8941c3, 245 0xe699ed85b0dfb40d, 246 0x2472f6207c2d0484, 247 0xc2a1e7b5b459aeb5, 248 0xab4f6451cc1d45ec, 249 0x63767572ae3d6174, 250 0xa59e0bd101731a28, 251 0x116d0016cb948f09, 252 0x2cf9c8ca052f6e9f, 253 0x0b090a7560a968e3, 254 0xabeeddb2dde06ff1, 255 0x58efc10b06a2068d, 256 0xc6e57a78fbd986e0, 257 0x2eab8ca63ce802d7, 258 0x14a195640116f336, 259 0x7c0828dd624ec390, 260 0xd74bbe77e6116ac7, 261 0x804456af10f5fb53, 262 0xebe9ea2adf4321c7, 263 0x03219a39ee587a30, 264 0x49787fef17af9924, 265 0xa1e9300cd8520548, 266 0x5b45e522e4b1b4ef, 267 0xb49c3b3995091a36, 268 0xd4490ad526f14431, 269 0x12a8f216af9418c2, ], 270 [0x6ffe73e81b637fb3, 271 0xddf957bc36d8b9ca, 272 0x64d0e29eea8838b3, 273 0x08dd9bdfd96b9f63, 274 0x087e79e5a57d1d13, 275 0xe328e230e3e2b3fb, 276 0x1c2559e30f0946be, 277 0x720bf5f26f4d2eaa, 278 0xb0774d261cc609db, 279 0x443f64ec5a371195, 280 0x4112cf68649a260e, 281 0xd813f2fab7f5c5ca, 282 0x660d3257380841ee, 283 0x59ac2c7873f910a3, 284 0xe846963877671a17, 285 0x93b633abfa3469f8, 286 0xc0c0f5a60ef4cdcf, 287 0xcaf21ecd4377b28c, 288 0x57277707199b8175, 289 0x506c11b9d90e8b1d, 290 0xd83cc2687a19255f, 291 0x4a29c6465a314cd1, 292 0xed2df21216235097, 293 0xb5635c95ff7296e2, 294 0x22af003ab672e811, 295 0x52e762596bf68235, 296 0x9aeba33ac6ecc6b0, 297 0x944f6de09134dfb6, 298 0x6c47bec883a7de39, 299 0x6ad047c430a12104, 300 0xa5b1cfdba0ab4067, 301 0x7c45d833aff07862, 302 0x5092ef950a16da0b, 303 0x9338e69c052b8e7b, 304 0x455a4b4cfe30e3f5, 305 0x6b02e63195ad0cf8, 306 0x6b17b224bad6bf27, 307 0xd1e0ccd25bb9c169, 308 0xde0c89a556b9ae70, 309 0x50065e535a213cf6, 310 0x9c1169fa2777b874, 311 0x78edefd694af1eed, 312 0x6dc93d9526a50e68, 313 0xee97f453f06791ed, 314 0x32ab0edb696703d3, 315 0x3a6853c7e70757a7, 316 0x31865ced6120f37d, 317 0x67fef95d92607890, 318 0x1f2b1d1f15f6dc9c, 319 0xb69e38a8965c6b65, 320 0xaa9119ff184cccf4, 321 0xf43c732873f24c13, 322 0xfb4a3d794a9a80d2, 323 0x3550c2321fd6109c, 324 0x371f77e76bb8417e, 325 0x6bfa9aae5ec05779, 326 0xcd04f3ff001a4778, 327 0xe3273522064480ca, 328 0x9f91508bffcfc14a, 329 0x049a7f41061a9e60, 330 0xfcb6be43a9f2fe9b, 331 0x08de8a1c7797da9b, 332 0x8f9887e6078735a1, 333 0xb5b4071dbfc73a66, ], 334 [0x55b6344cf97aafae, 335 0xb862225b055b6960, 336 0xcac09afbddd2cdb4, 337 0xdaf8e9829fe96b5f, 338 0xb5fdfc5d3132c498, 339 0x310cb380db6f7503, 340 0xe87fbb46217a360e, 341 0x2102ae466ebb1148, 342 0xf8549e1a3aa5e00d, 343 0x07a69afdcc42261a, 344 0xc4c118bfe78feaae, 345 0xf9f4892ed96bd438, 346 0x1af3dbe25d8f45da, 347 0xf5b4b0b0d2deeeb4, 348 0x962aceefa82e1c84, 349 0x046e3ecaaf453ce9, 350 0xf05d129681949a4c, 351 0x964781ce734b3c84, 352 0x9c2ed44081ce5fbd, 353 0x522e23f3925e319e, 354 0x177e00f9fc32f791, 355 0x2bc60a63a6f3b3f2, 356 0x222bbfae61725606, 357 0x486289ddcc3d6780, 358 0x7dc7785b8efdfc80, 359 0x8af38731c02ba980, 360 0x1fab64ea29a2ddf7, 361 0xe4d9429322cd065a, 362 0x9da058c67844f20c, 363 0x24c0e332b70019b0, 364 0x233003b5a6cfe6ad, 365 0xd586bd01c5c217f6, 366 0x5e5637885f29bc2b, 367 0x7eba726d8c94094b, 368 0x0a56a5f0bfe39272, 369 0xd79476a84ee20d06, 370 0x9e4c1269baa4bf37, 371 0x17efee45b0dee640, 372 0x1d95b0a5fcf90bc6, 373 0x93cbe0b699c2585d, 374 0x65fa4f227a2b6d79, 375 0xd5f9e858292504d5, 376 0xc2b5a03f71471a6f, 377 0x59300222b4561e00, 378 0xce2f8642ca0712dc, 379 0x7ca9723fbb2e8988, 380 0x2785338347f2ba08, 381 0xc61bb3a141e50e8c, 382 0x150f361dab9dec26, 383 0x9f6a419d382595f4, 384 0x64a53dc924fe7ac9, 385 0x142de49fff7a7c3d, 386 0x0c335248857fa9e7, 387 0x0a9c32d5eae45305, 388 0xe6c42178c4bbb92e, 389 0x71f1ce2490d20b07, 390 0xf1bcc3d275afe51a, 391 0xe728e8c83c334074, 392 0x96fbf83a12884624, 393 0x81a1549fd6573da5, 394 0x5fa7867caf35e149, 395 0x56986e2ef3ed091b, 396 0x917f1dd5f8886c61, 397 0xd20d8c88c8ffe65f, ], 398 ], 399 [ 400 [0x0000000000000000] * 64, 401 [0x9d39247e33776d41, 402 0x2af7398005aaa5c7, 403 0x44db015024623547, 404 0x9c15f73e62a76ae2, 405 0x75834465489c0c89, 406 0x3290ac3a203001bf, 407 0x0fbbad1f61042279, 408 0xe83a908ff2fb60ca, 409 0x0d7e765d58755c10, 410 0x1a083822ceafe02d, 411 0x9605d5f0e25ec3b0, 412 0xd021ff5cd13a2ed5, 413 0x40bdf15d4a672e32, 414 0x011355146fd56395, 415 0x5db4832046f3d9e5, 416 0x239f8b2d7ff719cc, 417 0x05d1a1ae85b49aa1, 418 0x679f848f6e8fc971, 419 0x7449bbff801fed0b, 420 0x7d11cdb1c3b7adf0, 421 0x82c7709e781eb7cc, 422 0xf3218f1c9510786c, 423 0x331478f3af51bbe6, 424 0x4bb38de5e7219443, 425 0xaa649c6ebcfd50fc, 426 0x8dbd98a352afd40b, 427 0x87d2074b81d79217, 428 0x19f3c751d3e92ae1, 429 0xb4ab30f062b19abf, 430 0x7b0500ac42047ac4, 431 0xc9452ca81a09d85d, 432 0x24aa6c514da27500, 433 0x4c9f34427501b447, 434 0x14a68fd73c910841, 435 0xa71b9b83461cbd93, 436 0x03488b95b0f1850f, 437 0x637b2b34ff93c040, 438 0x09d1bc9a3dd90a94, 439 0x3575668334a1dd3b, 440 0x735e2b97a4c45a23, 441 0x18727070f1bd400b, 442 0x1fcbacd259bf02e7, 443 0xd310a7c2ce9b6555, 444 0xbf983fe0fe5d8244, 445 0x9f74d14f7454a824, 446 0x51ebdc4ab9ba3035, 447 0x5c82c505db9ab0fa, 448 0xfcf7fe8a3430b241, 449 0x3253a729b9ba3dde, 450 0x8c74c368081b3075, 451 0xb9bc6c87167c33e7, 452 0x7ef48f2b83024e20, 453 0x11d505d4c351bd7f, 454 0x6568fca92c76a243, 455 0x4de0b0f40f32a7b8, 456 0x96d693460cc37e5d, 457 0x42e240cb63689f2f, 458 0x6d2bdcdae2919661, 459 0x42880b0236e4d951, 460 0x5f0f4a5898171bb6, 461 0x39f890f579f92f88, 462 0x93c5b5f47356388b, 463 0x63dc359d8d231b78, 464 0xec16ca8aea98ad76, ], 465 [0x56436c9fe1a1aa8d, 466 0xefac4b70633b8f81, 467 0xbb215798d45df7af, 468 0x45f20042f24f1768, 469 0x930f80f4e8eb7462, 470 0xff6712ffcfd75ea1, 471 0xae623fd67468aa70, 472 0xdd2c5bc84bc8d8fc, 473 0x7eed120d54cf2dd9, 474 0x22fe545401165f1c, 475 0xc91800e98fb99929, 476 0x808bd68e6ac10365, 477 0xdec468145b7605f6, 478 0x1bede3a3aef53302, 479 0x43539603d6c55602, 480 0xaa969b5c691ccb7a, 481 0xa87832d392efee56, 482 0x65942c7b3c7e11ae, 483 0xded2d633cad004f6, 484 0x21f08570f420e565, 485 0xb415938d7da94e3c, 486 0x91b859e59ecb6350, 487 0x10cff333e0ed804a, 488 0x28aed140be0bb7dd, 489 0xc5cc1d89724fa456, 490 0x5648f680f11a2741, 491 0x2d255069f0b7dab3, 492 0x9bc5a38ef729abd4, 493 0xef2f054308f6a2bc, 494 0xaf2042f5cc5c2858, 495 0x480412bab7f5be2a, 496 0xaef3af4a563dfe43, 497 0x19afe59ae451497f, 498 0x52593803dff1e840, 499 0xf4f076e65f2ce6f0, 500 0x11379625747d5af3, 501 0xbce5d2248682c115, 502 0x9da4243de836994f, 503 0x066f70b33fe09017, 504 0x4dc4de189b671a1c, 505 0x51039ab7712457c3, 506 0xc07a3f80c31fb4b4, 507 0xb46ee9c5e64a6e7c, 508 0xb3819a42abe61c87, 509 0x21a007933a522a20, 510 0x2df16f761598aa4f, 511 0x763c4a1371b368fd, 512 0xf793c46702e086a0, 513 0xd7288e012aeb8d31, 514 0xde336a2a4bc1c44b, 515 0x0bf692b38d079f23, 516 0x2c604a7a177326b3, 517 0x4850e73e03eb6064, 518 0xcfc447f1e53c8e1b, 519 0xb05ca3f564268d99, 520 0x9ae182c8bc9474e8, 521 0xa4fc4bd4fc5558ca, 522 0xe755178d58fc4e76, 523 0x69b97db1a4c03dfe, 524 0xf9b5b7c4acc67c96, 525 0xfc6a82d64b8655fb, 526 0x9c684cb6c4d24417, 527 0x8ec97d2917456ed0, 528 0x6703df9d2924e97e, ], 529 [0x7f9b6af1ebf78baf, 530 0x58627e1a149bba21, 531 0x2cd16e2abd791e33, 532 0xd363eff5f0977996, 533 0x0ce2a38c344a6eed, 534 0x1a804aadb9cfa741, 535 0x907f30421d78c5de, 536 0x501f65edb3034d07, 537 0x37624ae5a48fa6e9, 538 0x957baf61700cff4e, 539 0x3a6c27934e31188a, 540 0xd49503536abca345, 541 0x088e049589c432e0, 542 0xf943aee7febf21b8, 543 0x6c3b8e3e336139d3, 544 0x364f6ffa464ee52e, 545 0xd60f6dcedc314222, 546 0x56963b0dca418fc0, 547 0x16f50edf91e513af, 548 0xef1955914b609f93, 549 0x565601c0364e3228, 550 0xecb53939887e8175, 551 0xbac7a9a18531294b, 552 0xb344c470397bba52, 553 0x65d34954daf3cebd, 554 0xb4b81b3fa97511e2, 555 0xb422061193d6f6a7, 556 0x071582401c38434d, 557 0x7a13f18bbedc4ff5, 558 0xbc4097b116c524d2, 559 0x59b97885e2f2ea28, 560 0x99170a5dc3115544, 561 0x6f423357e7c6a9f9, 562 0x325928ee6e6f8794, 563 0xd0e4366228b03343, 564 0x565c31f7de89ea27, 565 0x30f5611484119414, 566 0xd873db391292ed4f, 567 0x7bd94e1d8e17debc, 568 0xc7d9f16864a76e94, 569 0x947ae053ee56e63c, 570 0xc8c93882f9475f5f, 571 0x3a9bf55ba91f81ca, 572 0xd9a11fbb3d9808e4, 573 0x0fd22063edc29fca, 574 0xb3f256d8aca0b0b9, 575 0xb03031a8b4516e84, 576 0x35dd37d5871448af, 577 0xe9f6082b05542e4e, 578 0xebfafa33d7254b59, 579 0x9255abb50d532280, 580 0xb9ab4ce57f2d34f3, 581 0x693501d628297551, 582 0xc62c58f97dd949bf, 583 0xcd454f8f19c5126a, 584 0xbbe83f4ecc2bdecb, 585 0xdc842b7e2819e230, 586 0xba89142e007503b8, 587 0xa3bc941d0a5061cb, 588 0xe9f6760e32cd8021, 589 0x09c7e552bc76492f, 590 0x852f54934da55cc9, 591 0x8107fccf064fcf56, 592 0x098954d51fff6580, ], 593 [0xda3a361b1c5157b1, 594 0xdcdd7d20903d0c25, 595 0x36833336d068f707, 596 0xce68341f79893389, 597 0xab9090168dd05f34, 598 0x43954b3252dc25e5, 599 0xb438c2b67f98e5e9, 600 0x10dcd78e3851a492, 601 0xdbc27ab5447822bf, 602 0x9b3cdb65f82ca382, 603 0xb67b7896167b4c84, 604 0xbfced1b0048eac50, 605 0xa9119b60369ffebd, 606 0x1fff7ac80904bf45, 607 0xac12fb171817eee7, 608 0xaf08da9177dda93d, 609 0x1b0cab936e65c744, 610 0xb559eb1d04e5e932, 611 0xc37b45b3f8d6f2ba, 612 0xc3a9dc228caac9e9, 613 0xf3b8b6675a6507ff, 614 0x9fc477de4ed681da, 615 0x67378d8eccef96cb, 616 0x6dd856d94d259236, 617 0xa319ce15b0b4db31, 618 0x073973751f12dd5e, 619 0x8a8e849eb32781a5, 620 0xe1925c71285279f5, 621 0x74c04bf1790c0efe, 622 0x4dda48153c94938a, 623 0x9d266d6a1cc0542c, 624 0x7440fb816508c4fe, 625 0x13328503df48229f, 626 0xd6bf7baee43cac40, 627 0x4838d65f6ef6748f, 628 0x1e152328f3318dea, 629 0x8f8419a348f296bf, 630 0x72c8834a5957b511, 631 0xd7a023a73260b45c, 632 0x94ebc8abcfb56dae, 633 0x9fc10d0f989993e0, 634 0xde68a2355b93cae6, 635 0xa44cfe79ae538bbe, 636 0x9d1d84fcce371425, 637 0x51d2b1ab2ddfb636, 638 0x2fd7e4b9e72cd38c, 639 0x65ca5b96b7552210, 640 0xdd69a0d8ab3b546d, 641 0x604d51b25fbf70e2, 642 0x73aa8a564fb7ac9e, 643 0x1a8c1e992b941148, 644 0xaac40a2703d9bea0, 645 0x764dbeae7fa4f3a6, 646 0x1e99b96e70a9be8b, 647 0x2c5e9deb57ef4743, 648 0x3a938fee32d29981, 649 0x26e6db8ffdf5adfe, 650 0x469356c504ec9f9d, 651 0xc8763c5b08d1908c, 652 0x3f6c6af859d80055, 653 0x7f7cc39420a3a545, 654 0x9bfb227ebdf4c5ce, 655 0x89039d79d6fc5c5c, 656 0x8fe88b57305e2ab6, ], 657 [0x001f837cc7350524, 658 0x1877b51e57a764d5, 659 0xa2853b80f17f58ee, 660 0x993e1de72d36d310, 661 0xb3598080ce64a656, 662 0x252f59cf0d9f04bb, 663 0xd23c8e176d113600, 664 0x1bda0492e7e4586e, 665 0x21e0bd5026c619bf, 666 0x3b097adaf088f94e, 667 0x8d14dedb30be846e, 668 0xf95cffa23af5f6f4, 669 0x3871700761b3f743, 670 0xca672b91e9e4fa16, 671 0x64c8e531bff53b55, 672 0x241260ed4ad1e87d, 673 0x106c09b972d2e822, 674 0x7fba195410e5ca30, 675 0x7884d9bc6cb569d8, 676 0x0647dfedcd894a29, 677 0x63573ff03e224774, 678 0x4fc8e9560f91b123, 679 0x1db956e450275779, 680 0xb8d91274b9e9d4fb, 681 0xa2ebee47e2fbfce1, 682 0xd9f1f30ccd97fb09, 683 0xefed53d75fd64e6b, 684 0x2e6d02c36017f67f, 685 0xa9aa4d20db084e9b, 686 0xb64be8d8b25396c1, 687 0x70cb6af7c2d5bcf0, 688 0x98f076a4f7a2322e, 689 0xbf84470805e69b5f, 690 0x94c3251f06f90cf3, 691 0x3e003e616a6591e9, 692 0xb925a6cd0421aff3, 693 0x61bdd1307c66e300, 694 0xbf8d5108e27e0d48, 695 0x240ab57a8b888b20, 696 0xfc87614baf287e07, 697 0xef02cdd06ffdb432, 698 0xa1082c0466df6c0a, 699 0x8215e577001332c8, 700 0xd39bb9c3a48db6cf, 701 0x2738259634305c14, 702 0x61cf4f94c97df93d, 703 0x1b6baca2ae4e125b, 704 0x758f450c88572e0b, 705 0x959f587d507a8359, 706 0xb063e962e045f54d, 707 0x60e8ed72c0dff5d1, 708 0x7b64978555326f9f, 709 0xfd080d236da814ba, 710 0x8c90fd9b083f4558, 711 0x106f72fe81e2c590, 712 0x7976033a39f7d952, 713 0xa4ec0132764ca04b, 714 0x733ea705fae4fa77, 715 0xb4d8f77bc3e56167, 716 0x9e21f4f903b33fd9, 717 0x9d765e419fb69f6d, 718 0xd30c088ba61ea5ef, 719 0x5d94337fbfaf7f5b, 720 0x1a4e4822eb4d7a59, ], 721 [0x230e343dfba08d33, 722 0x43ed7f5a0fae657d, 723 0x3a88a0fbbcb05c63, 724 0x21874b8b4d2dbc4f, 725 0x1bdea12e35f6a8c9, 726 0x53c065c6c8e63528, 727 0xe34a1d250e7a8d6b, 728 0xd6b04d3b7651dd7e, 729 0x5e90277e7cb39e2d, 730 0x2c046f22062dc67d, 731 0xb10bb459132d0a26, 732 0x3fa9ddfb67e2f199, 733 0x0e09b88e1914f7af, 734 0x10e8b35af3eeab37, 735 0x9eedeca8e272b933, 736 0xd4c718bc4ae8ae5f, 737 0x81536d601170fc20, 738 0x91b534f885818a06, 739 0xec8177f83f900978, 740 0x190e714fada5156e, 741 0xb592bf39b0364963, 742 0x89c350c893ae7dc1, 743 0xac042e70f8b383f2, 744 0xb49b52e587a1ee60, 745 0xfb152fe3ff26da89, 746 0x3e666e6f69ae2c15, 747 0x3b544ebe544c19f9, 748 0xe805a1e290cf2456, 749 0x24b33c9d7ed25117, 750 0xe74733427b72f0c1, 751 0x0a804d18b7097475, 752 0x57e3306d881edb4f, 753 0x4ae7d6a36eb5dbcb, 754 0x2d8d5432157064c8, 755 0xd1e649de1e7f268b, 756 0x8a328a1cedfe552c, 757 0x07a3aec79624c7da, 758 0x84547ddc3e203c94, 759 0x990a98fd5071d263, 760 0x1a4ff12616eefc89, 761 0xf6f7fd1431714200, 762 0x30c05b1ba332f41c, 763 0x8d2636b81555a786, 764 0x46c9feb55d120902, 765 0xccec0a73b49c9921, 766 0x4e9d2827355fc492, 767 0x19ebb029435dcb0f, 768 0x4659d2b743848a2c, 769 0x963ef2c96b33be31, 770 0x74f85198b05a2e7d, 771 0x5a0f544dd2b1fb18, 772 0x03727073c2e134b1, 773 0xc7f6aa2de59aea61, 774 0x352787baa0d7c22f, 775 0x9853eab63b5e0b35, 776 0xabbdcdd7ed5c0860, 777 0xcf05daf5ac8d77b0, 778 0x49cad48cebf4a71e, 779 0x7a4c10ec2158c4a6, 780 0xd9e92aa246bf719e, 781 0x13ae978d09fe5557, 782 0x730499af921549ff, 783 0x4e4b705b92903ba4, 784 0xff577222c14f0a3a, ], 785 ], 786] 787 788epHashes = [0x70cc73d90bc26e24, 0xe21a6b35df0c3ad7, 0x003a93d8b2806962, 789 0x1c99ded33cb890a1, 0xcf3145de0add4289, 0xd0e4427a5514fb72, 790 0x77c621cc9fb3a483, 0x67a34dac4356550b] 791 792W_OOHash = 0x31d71dce64b2c310 793W_OOOHash = 0xf165b587df898190 794B_OOHash = 0xa57e6339dd2cf3a0 795B_OOOHash = 0x1ef6e6dbb1961ec9 796 797colorHash = 0xf8d626aaaf278509 798 799holdingHash = [[[0, ], [0, ], [0, ], [0, ], [0, ], [0, ], [0, ]], 800 [[0, ], [0, ], [0, ], [0, ], [0, ], [0, ], [0, ]]] 801 802for color in (WHITE, BLACK): 803 for pt in (PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING): 804 for i in range(16): 805 holdingHash[color][pt].append(random.getrandbits(64)) 806