linux/crypto/khazad.c
<<
>>
Prefs
   1/*
   2 * Cryptographic API.
   3 *
   4 * Khazad Algorithm
   5 *
   6 * The Khazad algorithm was developed by Paulo S. L. M. Barreto and
   7 * Vincent Rijmen.  It was a finalist in the NESSIE encryption contest.
   8 *
   9 * The original authors have disclaimed all copyright interest in this
  10 * code and thus put it in the public domain. The subsequent authors
  11 * have put this under the GNU General Public License.
  12 *
  13 * By Aaron Grothe ajgrothe@yahoo.com, August 1, 2004
  14 *
  15 * This program is free software; you can redistribute it and/or modify
  16 * it under the terms of the GNU General Public License as published by
  17 * the Free Software Foundation; either version 2 of the License, or
  18 * (at your option) any later version.
  19 *
  20 */
  21
  22#include <linux/init.h>
  23#include <linux/module.h>
  24#include <linux/mm.h>
  25#include <asm/byteorder.h>
  26#include <linux/crypto.h>
  27#include <linux/types.h>
  28
  29#define KHAZAD_KEY_SIZE         16
  30#define KHAZAD_BLOCK_SIZE       8
  31#define KHAZAD_ROUNDS           8
  32
  33struct khazad_ctx {
  34        u64 E[KHAZAD_ROUNDS + 1];
  35        u64 D[KHAZAD_ROUNDS + 1];
  36};
  37
  38static const u64 T0[256] = {
  39        0xbad3d268bbb96a01ULL, 0x54fc4d19e59a66b1ULL, 0x2f71bc93e26514cdULL,
  40        0x749ccdb925871b51ULL, 0x53f55102f7a257a4ULL, 0xd3686bb8d0d6be03ULL,
  41        0xd26b6fbdd6deb504ULL, 0x4dd72964b35285feULL, 0x50f05d0dfdba4aadULL,
  42        0xace98a26cf09e063ULL, 0x8d8a0e83091c9684ULL, 0xbfdcc679a5914d1aULL,
  43        0x7090ddad3da7374dULL, 0x52f65507f1aa5ca3ULL, 0x9ab352c87ba417e1ULL,
  44        0x4cd42d61b55a8ef9ULL, 0xea238f65460320acULL, 0xd56273a6c4e68411ULL,
  45        0x97a466f155cc68c2ULL, 0xd16e63b2dcc6a80dULL, 0x3355ccffaa85d099ULL,
  46        0x51f35908fbb241aaULL, 0x5bed712ac7e20f9cULL, 0xa6f7a204f359ae55ULL,
  47        0xde7f5f81febec120ULL, 0x48d83d75ad7aa2e5ULL, 0xa8e59a32d729cc7fULL,
  48        0x99b65ec771bc0ae8ULL, 0xdb704b90e096e63bULL, 0x3256c8faac8ddb9eULL,
  49        0xb7c4e65195d11522ULL, 0xfc19d72b32b3aaceULL, 0xe338ab48704b7393ULL,
  50        0x9ebf42dc63843bfdULL, 0x91ae7eef41fc52d0ULL, 0x9bb056cd7dac1ce6ULL,
  51        0xe23baf4d76437894ULL, 0xbbd0d66dbdb16106ULL, 0x41c319589b32f1daULL,
  52        0x6eb2a5cb7957e517ULL, 0xa5f2ae0bf941b35cULL, 0xcb400bc08016564bULL,
  53        0x6bbdb1da677fc20cULL, 0x95a26efb59dc7eccULL, 0xa1febe1fe1619f40ULL,
  54        0xf308eb1810cbc3e3ULL, 0xb1cefe4f81e12f30ULL, 0x0206080a0c10160eULL,
  55        0xcc4917db922e675eULL, 0xc45137f3a26e3f66ULL, 0x1d2774694ee8cf53ULL,
  56        0x143c504478a09c6cULL, 0xc3582be8b0560e73ULL, 0x63a591f2573f9a34ULL,
  57        0xda734f95e69eed3cULL, 0x5de76934d3d2358eULL, 0x5fe1613edfc22380ULL,
  58        0xdc79578bf2aed72eULL, 0x7d87e99413cf486eULL, 0xcd4a13de94266c59ULL,
  59        0x7f81e19e1fdf5e60ULL, 0x5aee752fc1ea049bULL, 0x6cb4adc17547f319ULL,
  60        0x5ce46d31d5da3e89ULL, 0xf704fb0c08ebefffULL, 0x266a98bed42d47f2ULL,
  61        0xff1cdb2438abb7c7ULL, 0xed2a937e543b11b9ULL, 0xe825876f4a1336a2ULL,
  62        0x9dba4ed3699c26f4ULL, 0x6fb1a1ce7f5fee10ULL, 0x8e8f028c03048b8dULL,
  63        0x192b647d56c8e34fULL, 0xa0fdba1ae7699447ULL, 0xf00de7171ad3deeaULL,
  64        0x89861e97113cba98ULL, 0x0f113c332278692dULL, 0x07091c1b12383115ULL,
  65        0xafec8629c511fd6aULL, 0xfb10cb30208b9bdbULL, 0x0818202830405838ULL,
  66        0x153f54417ea8976bULL, 0x0d1734392e687f23ULL, 0x040c101418202c1cULL,
  67        0x0103040506080b07ULL, 0x64ac8de94507ab21ULL, 0xdf7c5b84f8b6ca27ULL,
  68        0x769ac5b329970d5fULL, 0x798bf9800bef6472ULL, 0xdd7a538ef4a6dc29ULL,
  69        0x3d47f4c98ef5b2b3ULL, 0x163a584e74b08a62ULL, 0x3f41fcc382e5a4bdULL,
  70        0x3759dcebb2a5fc85ULL, 0x6db7a9c4734ff81eULL, 0x3848e0d890dd95a8ULL,
  71        0xb9d6de67b1a17708ULL, 0x7395d1a237bf2a44ULL, 0xe926836a4c1b3da5ULL,
  72        0x355fd4e1beb5ea8bULL, 0x55ff491ce3926db6ULL, 0x7193d9a83baf3c4aULL,
  73        0x7b8df18a07ff727cULL, 0x8c890a860f149d83ULL, 0x7296d5a731b72143ULL,
  74        0x88851a921734b19fULL, 0xf607ff090ee3e4f8ULL, 0x2a7ea882fc4d33d6ULL,
  75        0x3e42f8c684edafbaULL, 0x5ee2653bd9ca2887ULL, 0x27699cbbd2254cf5ULL,
  76        0x46ca0543890ac0cfULL, 0x0c14303c28607424ULL, 0x65af89ec430fa026ULL,
  77        0x68b8bdd56d67df05ULL, 0x61a399f85b2f8c3aULL, 0x03050c0f0a181d09ULL,
  78        0xc15e23e2bc46187dULL, 0x57f94116ef827bb8ULL, 0xd6677fa9cefe9918ULL,
  79        0xd976439aec86f035ULL, 0x58e87d25cdfa1295ULL, 0xd875479fea8efb32ULL,
  80        0x66aa85e34917bd2fULL, 0xd7647bacc8f6921fULL, 0x3a4ee8d29ccd83a6ULL,
  81        0xc84507cf8a0e4b42ULL, 0x3c44f0cc88fdb9b4ULL, 0xfa13cf35268390dcULL,
  82        0x96a762f453c463c5ULL, 0xa7f4a601f551a552ULL, 0x98b55ac277b401efULL,
  83        0xec29977b52331abeULL, 0xb8d5da62b7a97c0fULL, 0xc7543bfca876226fULL,
  84        0xaeef822cc319f66dULL, 0x69bbb9d06b6fd402ULL, 0x4bdd317aa762bfecULL,
  85        0xabe0963ddd31d176ULL, 0xa9e69e37d121c778ULL, 0x67a981e64f1fb628ULL,
  86        0x0a1e28223c504e36ULL, 0x47c901468f02cbc8ULL, 0xf20bef1d16c3c8e4ULL,
  87        0xb5c2ee5b99c1032cULL, 0x226688aacc0d6beeULL, 0xe532b356647b4981ULL,
  88        0xee2f9f715e230cb0ULL, 0xbedfc27ca399461dULL, 0x2b7dac87fa4538d1ULL,
  89        0x819e3ebf217ce2a0ULL, 0x1236485a6c90a67eULL, 0x839836b52d6cf4aeULL,
  90        0x1b2d6c775ad8f541ULL, 0x0e1238362470622aULL, 0x23658cafca0560e9ULL,
  91        0xf502f30604fbf9f1ULL, 0x45cf094c8312ddc6ULL, 0x216384a5c61576e7ULL,
  92        0xce4f1fd19e3e7150ULL, 0x49db3970ab72a9e2ULL, 0x2c74b09ce87d09c4ULL,
  93        0xf916c33a2c9b8dd5ULL, 0xe637bf596e635488ULL, 0xb6c7e25493d91e25ULL,
  94        0x2878a088f05d25d8ULL, 0x17395c4b72b88165ULL, 0x829b32b02b64ffa9ULL,
  95        0x1a2e68725cd0fe46ULL, 0x8b80169d1d2cac96ULL, 0xfe1fdf213ea3bcc0ULL,
  96        0x8a8312981b24a791ULL, 0x091b242d3648533fULL, 0xc94603ca8c064045ULL,
  97        0x879426a1354cd8b2ULL, 0x4ed2256bb94a98f7ULL, 0xe13ea3427c5b659dULL,
  98        0x2e72b896e46d1fcaULL, 0xe431b75362734286ULL, 0xe03da7477a536e9aULL,
  99        0xeb208b60400b2babULL, 0x90ad7aea47f459d7ULL, 0xa4f1aa0eff49b85bULL,
 100        0x1e22786644f0d25aULL, 0x85922eab395ccebcULL, 0x60a09dfd5d27873dULL,
 101        0x0000000000000000ULL, 0x256f94b1de355afbULL, 0xf401f70302f3f2f6ULL,
 102        0xf10ee3121cdbd5edULL, 0x94a16afe5fd475cbULL, 0x0b1d2c273a584531ULL,
 103        0xe734bb5c686b5f8fULL, 0x759fc9bc238f1056ULL, 0xef2c9b74582b07b7ULL,
 104        0x345cd0e4b8bde18cULL, 0x3153c4f5a695c697ULL, 0xd46177a3c2ee8f16ULL,
 105        0xd06d67b7dacea30aULL, 0x869722a43344d3b5ULL, 0x7e82e59b19d75567ULL,
 106        0xadea8e23c901eb64ULL, 0xfd1ad32e34bba1c9ULL, 0x297ba48df6552edfULL,
 107        0x3050c0f0a09dcd90ULL, 0x3b4decd79ac588a1ULL, 0x9fbc46d9658c30faULL,
 108        0xf815c73f2a9386d2ULL, 0xc6573ff9ae7e2968ULL, 0x13354c5f6a98ad79ULL,
 109        0x060a181e14303a12ULL, 0x050f14111e28271bULL, 0xc55233f6a4663461ULL,
 110        0x113344556688bb77ULL, 0x7799c1b62f9f0658ULL, 0x7c84ed9115c74369ULL,
 111        0x7a8ef58f01f7797bULL, 0x7888fd850de76f75ULL, 0x365ad8eeb4adf782ULL,
 112        0x1c24706c48e0c454ULL, 0x394be4dd96d59eafULL, 0x59eb7920cbf21992ULL,
 113        0x1828607850c0e848ULL, 0x56fa4513e98a70bfULL, 0xb3c8f6458df1393eULL,
 114        0xb0cdfa4a87e92437ULL, 0x246c90b4d83d51fcULL, 0x206080a0c01d7de0ULL,
 115        0xb2cbf2408bf93239ULL, 0x92ab72e04be44fd9ULL, 0xa3f8b615ed71894eULL,
 116        0xc05d27e7ba4e137aULL, 0x44cc0d49851ad6c1ULL, 0x62a695f751379133ULL,
 117        0x103040506080b070ULL, 0xb4c1ea5e9fc9082bULL, 0x84912aae3f54c5bbULL,
 118        0x43c511529722e7d4ULL, 0x93a876e54dec44deULL, 0xc25b2fedb65e0574ULL,
 119        0x4ade357fa16ab4ebULL, 0xbddace73a9815b14ULL, 0x8f8c0689050c808aULL,
 120        0x2d77b499ee7502c3ULL, 0xbcd9ca76af895013ULL, 0x9cb94ad66f942df3ULL,
 121        0x6abeb5df6177c90bULL, 0x40c01d5d9d3afaddULL, 0xcf4c1bd498367a57ULL,
 122        0xa2fbb210eb798249ULL, 0x809d3aba2774e9a7ULL, 0x4fd1216ebf4293f0ULL,
 123        0x1f217c6342f8d95dULL, 0xca430fc5861e5d4cULL, 0xaae39238db39da71ULL,
 124        0x42c61557912aecd3ULL
 125};
 126
 127static const u64 T1[256] = {
 128        0xd3ba68d2b9bb016aULL, 0xfc54194d9ae5b166ULL, 0x712f93bc65e2cd14ULL,
 129        0x9c74b9cd8725511bULL, 0xf5530251a2f7a457ULL, 0x68d3b86bd6d003beULL,
 130        0x6bd2bd6fded604b5ULL, 0xd74d642952b3fe85ULL, 0xf0500d5dbafdad4aULL,
 131        0xe9ac268a09cf63e0ULL, 0x8a8d830e1c098496ULL, 0xdcbf79c691a51a4dULL,
 132        0x9070addda73d4d37ULL, 0xf6520755aaf1a35cULL, 0xb39ac852a47be117ULL,
 133        0xd44c612d5ab5f98eULL, 0x23ea658f0346ac20ULL, 0x62d5a673e6c41184ULL,
 134        0xa497f166cc55c268ULL, 0x6ed1b263c6dc0da8ULL, 0x5533ffcc85aa99d0ULL,
 135        0xf3510859b2fbaa41ULL, 0xed5b2a71e2c79c0fULL, 0xf7a604a259f355aeULL,
 136        0x7fde815fbefe20c1ULL, 0xd848753d7aade5a2ULL, 0xe5a8329a29d77fccULL,
 137        0xb699c75ebc71e80aULL, 0x70db904b96e03be6ULL, 0x5632fac88dac9edbULL,
 138        0xc4b751e6d1952215ULL, 0x19fc2bd7b332ceaaULL, 0x38e348ab4b709373ULL,
 139        0xbf9edc428463fd3bULL, 0xae91ef7efc41d052ULL, 0xb09bcd56ac7de61cULL,
 140        0x3be24daf43769478ULL, 0xd0bb6dd6b1bd0661ULL, 0xc3415819329bdaf1ULL,
 141        0xb26ecba5577917e5ULL, 0xf2a50bae41f95cb3ULL, 0x40cbc00b16804b56ULL,
 142        0xbd6bdab17f670cc2ULL, 0xa295fb6edc59cc7eULL, 0xfea11fbe61e1409fULL,
 143        0x08f318ebcb10e3c3ULL, 0xceb14ffee181302fULL, 0x06020a08100c0e16ULL,
 144        0x49ccdb172e925e67ULL, 0x51c4f3376ea2663fULL, 0x271d6974e84e53cfULL,
 145        0x3c144450a0786c9cULL, 0x58c3e82b56b0730eULL, 0xa563f2913f57349aULL,
 146        0x73da954f9ee63cedULL, 0xe75d3469d2d38e35ULL, 0xe15f3e61c2df8023ULL,
 147        0x79dc8b57aef22ed7ULL, 0x877d94e9cf136e48ULL, 0x4acdde132694596cULL,
 148        0x817f9ee1df1f605eULL, 0xee5a2f75eac19b04ULL, 0xb46cc1ad477519f3ULL,
 149        0xe45c316ddad5893eULL, 0x04f70cfbeb08ffefULL, 0x6a26be982dd4f247ULL,
 150        0x1cff24dbab38c7b7ULL, 0x2aed7e933b54b911ULL, 0x25e86f87134aa236ULL,
 151        0xba9dd34e9c69f426ULL, 0xb16fcea15f7f10eeULL, 0x8f8e8c0204038d8bULL,
 152        0x2b197d64c8564fe3ULL, 0xfda01aba69e74794ULL, 0x0df017e7d31aeadeULL,
 153        0x8689971e3c1198baULL, 0x110f333c78222d69ULL, 0x09071b1c38121531ULL,
 154        0xecaf298611c56afdULL, 0x10fb30cb8b20db9bULL, 0x1808282040303858ULL,
 155        0x3f154154a87e6b97ULL, 0x170d3934682e237fULL, 0x0c04141020181c2cULL,
 156        0x030105040806070bULL, 0xac64e98d074521abULL, 0x7cdf845bb6f827caULL,
 157        0x9a76b3c597295f0dULL, 0x8b7980f9ef0b7264ULL, 0x7add8e53a6f429dcULL,
 158        0x473dc9f4f58eb3b2ULL, 0x3a164e58b074628aULL, 0x413fc3fce582bda4ULL,
 159        0x5937ebdca5b285fcULL, 0xb76dc4a94f731ef8ULL, 0x4838d8e0dd90a895ULL,
 160        0xd6b967dea1b10877ULL, 0x9573a2d1bf37442aULL, 0x26e96a831b4ca53dULL,
 161        0x5f35e1d4b5be8beaULL, 0xff551c4992e3b66dULL, 0x9371a8d9af3b4a3cULL,
 162        0x8d7b8af1ff077c72ULL, 0x898c860a140f839dULL, 0x9672a7d5b7314321ULL,
 163        0x8588921a34179fb1ULL, 0x07f609ffe30ef8e4ULL, 0x7e2a82a84dfcd633ULL,
 164        0x423ec6f8ed84baafULL, 0xe25e3b65cad98728ULL, 0x6927bb9c25d2f54cULL,
 165        0xca4643050a89cfc0ULL, 0x140c3c3060282474ULL, 0xaf65ec890f4326a0ULL,
 166        0xb868d5bd676d05dfULL, 0xa361f8992f5b3a8cULL, 0x05030f0c180a091dULL,
 167        0x5ec1e22346bc7d18ULL, 0xf957164182efb87bULL, 0x67d6a97ffece1899ULL,
 168        0x76d99a4386ec35f0ULL, 0xe858257dfacd9512ULL, 0x75d89f478eea32fbULL,
 169        0xaa66e38517492fbdULL, 0x64d7ac7bf6c81f92ULL, 0x4e3ad2e8cd9ca683ULL,
 170        0x45c8cf070e8a424bULL, 0x443cccf0fd88b4b9ULL, 0x13fa35cf8326dc90ULL,
 171        0xa796f462c453c563ULL, 0xf4a701a651f552a5ULL, 0xb598c25ab477ef01ULL,
 172        0x29ec7b973352be1aULL, 0xd5b862daa9b70f7cULL, 0x54c7fc3b76a86f22ULL,
 173        0xefae2c8219c36df6ULL, 0xbb69d0b96f6b02d4ULL, 0xdd4b7a3162a7ecbfULL,
 174        0xe0ab3d9631dd76d1ULL, 0xe6a9379e21d178c7ULL, 0xa967e6811f4f28b6ULL,
 175        0x1e0a2228503c364eULL, 0xc9474601028fc8cbULL, 0x0bf21defc316e4c8ULL,
 176        0xc2b55beec1992c03ULL, 0x6622aa880dccee6bULL, 0x32e556b37b648149ULL,
 177        0x2fee719f235eb00cULL, 0xdfbe7cc299a31d46ULL, 0x7d2b87ac45fad138ULL,
 178        0x9e81bf3e7c21a0e2ULL, 0x36125a48906c7ea6ULL, 0x9883b5366c2daef4ULL,
 179        0x2d1b776cd85a41f5ULL, 0x120e363870242a62ULL, 0x6523af8c05cae960ULL,
 180        0x02f506f3fb04f1f9ULL, 0xcf454c091283c6ddULL, 0x6321a58415c6e776ULL,
 181        0x4fced11f3e9e5071ULL, 0xdb49703972abe2a9ULL, 0x742c9cb07de8c409ULL,
 182        0x16f93ac39b2cd58dULL, 0x37e659bf636e8854ULL, 0xc7b654e2d993251eULL,
 183        0x782888a05df0d825ULL, 0x39174b5cb8726581ULL, 0x9b82b032642ba9ffULL,
 184        0x2e1a7268d05c46feULL, 0x808b9d162c1d96acULL, 0x1ffe21dfa33ec0bcULL,
 185        0x838a9812241b91a7ULL, 0x1b092d2448363f53ULL, 0x46c9ca03068c4540ULL,
 186        0x9487a1264c35b2d8ULL, 0xd24e6b254ab9f798ULL, 0x3ee142a35b7c9d65ULL,
 187        0x722e96b86de4ca1fULL, 0x31e453b773628642ULL, 0x3de047a7537a9a6eULL,
 188        0x20eb608b0b40ab2bULL, 0xad90ea7af447d759ULL, 0xf1a40eaa49ff5bb8ULL,
 189        0x221e6678f0445ad2ULL, 0x9285ab2e5c39bcceULL, 0xa060fd9d275d3d87ULL,
 190        0x0000000000000000ULL, 0x6f25b19435defb5aULL, 0x01f403f7f302f6f2ULL,
 191        0x0ef112e3db1cedd5ULL, 0xa194fe6ad45fcb75ULL, 0x1d0b272c583a3145ULL,
 192        0x34e75cbb6b688f5fULL, 0x9f75bcc98f235610ULL, 0x2cef749b2b58b707ULL,
 193        0x5c34e4d0bdb88ce1ULL, 0x5331f5c495a697c6ULL, 0x61d4a377eec2168fULL,
 194        0x6dd0b767ceda0aa3ULL, 0x9786a4224433b5d3ULL, 0x827e9be5d7196755ULL,
 195        0xeaad238e01c964ebULL, 0x1afd2ed3bb34c9a1ULL, 0x7b298da455f6df2eULL,
 196        0x5030f0c09da090cdULL, 0x4d3bd7ecc59aa188ULL, 0xbc9fd9468c65fa30ULL,
 197        0x15f83fc7932ad286ULL, 0x57c6f93f7eae6829ULL, 0x35135f4c986a79adULL,
 198        0x0a061e183014123aULL, 0x0f051114281e1b27ULL, 0x52c5f63366a46134ULL,
 199        0x33115544886677bbULL, 0x9977b6c19f2f5806ULL, 0x847c91edc7156943ULL,
 200        0x8e7a8ff5f7017b79ULL, 0x887885fde70d756fULL, 0x5a36eed8adb482f7ULL,
 201        0x241c6c70e04854c4ULL, 0x4b39dde4d596af9eULL, 0xeb592079f2cb9219ULL,
 202        0x28187860c05048e8ULL, 0xfa5613458ae9bf70ULL, 0xc8b345f6f18d3e39ULL,
 203        0xcdb04afae9873724ULL, 0x6c24b4903dd8fc51ULL, 0x6020a0801dc0e07dULL,
 204        0xcbb240f2f98b3932ULL, 0xab92e072e44bd94fULL, 0xf8a315b671ed4e89ULL,
 205        0x5dc0e7274eba7a13ULL, 0xcc44490d1a85c1d6ULL, 0xa662f79537513391ULL,
 206        0x30105040806070b0ULL, 0xc1b45eeac99f2b08ULL, 0x9184ae2a543fbbc5ULL,
 207        0xc54352112297d4e7ULL, 0xa893e576ec4dde44ULL, 0x5bc2ed2f5eb67405ULL,
 208        0xde4a7f356aa1ebb4ULL, 0xdabd73ce81a9145bULL, 0x8c8f89060c058a80ULL,
 209        0x772d99b475eec302ULL, 0xd9bc76ca89af1350ULL, 0xb99cd64a946ff32dULL,
 210        0xbe6adfb577610bc9ULL, 0xc0405d1d3a9dddfaULL, 0x4ccfd41b3698577aULL,
 211        0xfba210b279eb4982ULL, 0x9d80ba3a7427a7e9ULL, 0xd14f6e2142bff093ULL,
 212        0x211f637cf8425dd9ULL, 0x43cac50f1e864c5dULL, 0xe3aa389239db71daULL,
 213        0xc64257152a91d3ecULL
 214};
 215
 216static const u64 T2[256] = {
 217        0xd268bad36a01bbb9ULL, 0x4d1954fc66b1e59aULL, 0xbc932f7114cde265ULL,
 218        0xcdb9749c1b512587ULL, 0x510253f557a4f7a2ULL, 0x6bb8d368be03d0d6ULL,
 219        0x6fbdd26bb504d6deULL, 0x29644dd785feb352ULL, 0x5d0d50f04aadfdbaULL,
 220        0x8a26ace9e063cf09ULL, 0x0e838d8a9684091cULL, 0xc679bfdc4d1aa591ULL,
 221        0xddad7090374d3da7ULL, 0x550752f65ca3f1aaULL, 0x52c89ab317e17ba4ULL,
 222        0x2d614cd48ef9b55aULL, 0x8f65ea2320ac4603ULL, 0x73a6d5628411c4e6ULL,
 223        0x66f197a468c255ccULL, 0x63b2d16ea80ddcc6ULL, 0xccff3355d099aa85ULL,
 224        0x590851f341aafbb2ULL, 0x712a5bed0f9cc7e2ULL, 0xa204a6f7ae55f359ULL,
 225        0x5f81de7fc120febeULL, 0x3d7548d8a2e5ad7aULL, 0x9a32a8e5cc7fd729ULL,
 226        0x5ec799b60ae871bcULL, 0x4b90db70e63be096ULL, 0xc8fa3256db9eac8dULL,
 227        0xe651b7c4152295d1ULL, 0xd72bfc19aace32b3ULL, 0xab48e3387393704bULL,
 228        0x42dc9ebf3bfd6384ULL, 0x7eef91ae52d041fcULL, 0x56cd9bb01ce67dacULL,
 229        0xaf4de23b78947643ULL, 0xd66dbbd06106bdb1ULL, 0x195841c3f1da9b32ULL,
 230        0xa5cb6eb2e5177957ULL, 0xae0ba5f2b35cf941ULL, 0x0bc0cb40564b8016ULL,
 231        0xb1da6bbdc20c677fULL, 0x6efb95a27ecc59dcULL, 0xbe1fa1fe9f40e161ULL,
 232        0xeb18f308c3e310cbULL, 0xfe4fb1ce2f3081e1ULL, 0x080a0206160e0c10ULL,
 233        0x17dbcc49675e922eULL, 0x37f3c4513f66a26eULL, 0x74691d27cf534ee8ULL,
 234        0x5044143c9c6c78a0ULL, 0x2be8c3580e73b056ULL, 0x91f263a59a34573fULL,
 235        0x4f95da73ed3ce69eULL, 0x69345de7358ed3d2ULL, 0x613e5fe12380dfc2ULL,
 236        0x578bdc79d72ef2aeULL, 0xe9947d87486e13cfULL, 0x13decd4a6c599426ULL,
 237        0xe19e7f815e601fdfULL, 0x752f5aee049bc1eaULL, 0xadc16cb4f3197547ULL,
 238        0x6d315ce43e89d5daULL, 0xfb0cf704efff08ebULL, 0x98be266a47f2d42dULL,
 239        0xdb24ff1cb7c738abULL, 0x937eed2a11b9543bULL, 0x876fe82536a24a13ULL,
 240        0x4ed39dba26f4699cULL, 0xa1ce6fb1ee107f5fULL, 0x028c8e8f8b8d0304ULL,
 241        0x647d192be34f56c8ULL, 0xba1aa0fd9447e769ULL, 0xe717f00ddeea1ad3ULL,
 242        0x1e978986ba98113cULL, 0x3c330f11692d2278ULL, 0x1c1b070931151238ULL,
 243        0x8629afecfd6ac511ULL, 0xcb30fb109bdb208bULL, 0x2028081858383040ULL,
 244        0x5441153f976b7ea8ULL, 0x34390d177f232e68ULL, 0x1014040c2c1c1820ULL,
 245        0x040501030b070608ULL, 0x8de964acab214507ULL, 0x5b84df7cca27f8b6ULL,
 246        0xc5b3769a0d5f2997ULL, 0xf980798b64720befULL, 0x538edd7adc29f4a6ULL,
 247        0xf4c93d47b2b38ef5ULL, 0x584e163a8a6274b0ULL, 0xfcc33f41a4bd82e5ULL,
 248        0xdceb3759fc85b2a5ULL, 0xa9c46db7f81e734fULL, 0xe0d8384895a890ddULL,
 249        0xde67b9d67708b1a1ULL, 0xd1a273952a4437bfULL, 0x836ae9263da54c1bULL,
 250        0xd4e1355fea8bbeb5ULL, 0x491c55ff6db6e392ULL, 0xd9a871933c4a3bafULL,
 251        0xf18a7b8d727c07ffULL, 0x0a868c899d830f14ULL, 0xd5a77296214331b7ULL,
 252        0x1a928885b19f1734ULL, 0xff09f607e4f80ee3ULL, 0xa8822a7e33d6fc4dULL,
 253        0xf8c63e42afba84edULL, 0x653b5ee22887d9caULL, 0x9cbb27694cf5d225ULL,
 254        0x054346cac0cf890aULL, 0x303c0c1474242860ULL, 0x89ec65afa026430fULL,
 255        0xbdd568b8df056d67ULL, 0x99f861a38c3a5b2fULL, 0x0c0f03051d090a18ULL,
 256        0x23e2c15e187dbc46ULL, 0x411657f97bb8ef82ULL, 0x7fa9d6679918cefeULL,
 257        0x439ad976f035ec86ULL, 0x7d2558e81295cdfaULL, 0x479fd875fb32ea8eULL,
 258        0x85e366aabd2f4917ULL, 0x7bacd764921fc8f6ULL, 0xe8d23a4e83a69ccdULL,
 259        0x07cfc8454b428a0eULL, 0xf0cc3c44b9b488fdULL, 0xcf35fa1390dc2683ULL,
 260        0x62f496a763c553c4ULL, 0xa601a7f4a552f551ULL, 0x5ac298b501ef77b4ULL,
 261        0x977bec291abe5233ULL, 0xda62b8d57c0fb7a9ULL, 0x3bfcc754226fa876ULL,
 262        0x822caeeff66dc319ULL, 0xb9d069bbd4026b6fULL, 0x317a4bddbfeca762ULL,
 263        0x963dabe0d176dd31ULL, 0x9e37a9e6c778d121ULL, 0x81e667a9b6284f1fULL,
 264        0x28220a1e4e363c50ULL, 0x014647c9cbc88f02ULL, 0xef1df20bc8e416c3ULL,
 265        0xee5bb5c2032c99c1ULL, 0x88aa22666beecc0dULL, 0xb356e5324981647bULL,
 266        0x9f71ee2f0cb05e23ULL, 0xc27cbedf461da399ULL, 0xac872b7d38d1fa45ULL,
 267        0x3ebf819ee2a0217cULL, 0x485a1236a67e6c90ULL, 0x36b58398f4ae2d6cULL,
 268        0x6c771b2df5415ad8ULL, 0x38360e12622a2470ULL, 0x8caf236560e9ca05ULL,
 269        0xf306f502f9f104fbULL, 0x094c45cfddc68312ULL, 0x84a5216376e7c615ULL,
 270        0x1fd1ce4f71509e3eULL, 0x397049dba9e2ab72ULL, 0xb09c2c7409c4e87dULL,
 271        0xc33af9168dd52c9bULL, 0xbf59e63754886e63ULL, 0xe254b6c71e2593d9ULL,
 272        0xa088287825d8f05dULL, 0x5c4b1739816572b8ULL, 0x32b0829bffa92b64ULL,
 273        0x68721a2efe465cd0ULL, 0x169d8b80ac961d2cULL, 0xdf21fe1fbcc03ea3ULL,
 274        0x12988a83a7911b24ULL, 0x242d091b533f3648ULL, 0x03cac94640458c06ULL,
 275        0x26a18794d8b2354cULL, 0x256b4ed298f7b94aULL, 0xa342e13e659d7c5bULL,
 276        0xb8962e721fcae46dULL, 0xb753e43142866273ULL, 0xa747e03d6e9a7a53ULL,
 277        0x8b60eb202bab400bULL, 0x7aea90ad59d747f4ULL, 0xaa0ea4f1b85bff49ULL,
 278        0x78661e22d25a44f0ULL, 0x2eab8592cebc395cULL, 0x9dfd60a0873d5d27ULL,
 279        0x0000000000000000ULL, 0x94b1256f5afbde35ULL, 0xf703f401f2f602f3ULL,
 280        0xe312f10ed5ed1cdbULL, 0x6afe94a175cb5fd4ULL, 0x2c270b1d45313a58ULL,
 281        0xbb5ce7345f8f686bULL, 0xc9bc759f1056238fULL, 0x9b74ef2c07b7582bULL,
 282        0xd0e4345ce18cb8bdULL, 0xc4f53153c697a695ULL, 0x77a3d4618f16c2eeULL,
 283        0x67b7d06da30adaceULL, 0x22a48697d3b53344ULL, 0xe59b7e82556719d7ULL,
 284        0x8e23adeaeb64c901ULL, 0xd32efd1aa1c934bbULL, 0xa48d297b2edff655ULL,
 285        0xc0f03050cd90a09dULL, 0xecd73b4d88a19ac5ULL, 0x46d99fbc30fa658cULL,
 286        0xc73ff81586d22a93ULL, 0x3ff9c6572968ae7eULL, 0x4c5f1335ad796a98ULL,
 287        0x181e060a3a121430ULL, 0x1411050f271b1e28ULL, 0x33f6c5523461a466ULL,
 288        0x44551133bb776688ULL, 0xc1b6779906582f9fULL, 0xed917c84436915c7ULL,
 289        0xf58f7a8e797b01f7ULL, 0xfd8578886f750de7ULL, 0xd8ee365af782b4adULL,
 290        0x706c1c24c45448e0ULL, 0xe4dd394b9eaf96d5ULL, 0x792059eb1992cbf2ULL,
 291        0x60781828e84850c0ULL, 0x451356fa70bfe98aULL, 0xf645b3c8393e8df1ULL,
 292        0xfa4ab0cd243787e9ULL, 0x90b4246c51fcd83dULL, 0x80a020607de0c01dULL,
 293        0xf240b2cb32398bf9ULL, 0x72e092ab4fd94be4ULL, 0xb615a3f8894eed71ULL,
 294        0x27e7c05d137aba4eULL, 0x0d4944ccd6c1851aULL, 0x95f762a691335137ULL,
 295        0x40501030b0706080ULL, 0xea5eb4c1082b9fc9ULL, 0x2aae8491c5bb3f54ULL,
 296        0x115243c5e7d49722ULL, 0x76e593a844de4decULL, 0x2fedc25b0574b65eULL,
 297        0x357f4adeb4eba16aULL, 0xce73bdda5b14a981ULL, 0x06898f8c808a050cULL,
 298        0xb4992d7702c3ee75ULL, 0xca76bcd95013af89ULL, 0x4ad69cb92df36f94ULL,
 299        0xb5df6abec90b6177ULL, 0x1d5d40c0fadd9d3aULL, 0x1bd4cf4c7a579836ULL,
 300        0xb210a2fb8249eb79ULL, 0x3aba809de9a72774ULL, 0x216e4fd193f0bf42ULL,
 301        0x7c631f21d95d42f8ULL, 0x0fc5ca435d4c861eULL, 0x9238aae3da71db39ULL,
 302        0x155742c6ecd3912aULL
 303};
 304
 305static const u64 T3[256] = {
 306        0x68d2d3ba016ab9bbULL, 0x194dfc54b1669ae5ULL, 0x93bc712fcd1465e2ULL,
 307        0xb9cd9c74511b8725ULL, 0x0251f553a457a2f7ULL, 0xb86b68d303bed6d0ULL,
 308        0xbd6f6bd204b5ded6ULL, 0x6429d74dfe8552b3ULL, 0x0d5df050ad4abafdULL,
 309        0x268ae9ac63e009cfULL, 0x830e8a8d84961c09ULL, 0x79c6dcbf1a4d91a5ULL,
 310        0xaddd90704d37a73dULL, 0x0755f652a35caaf1ULL, 0xc852b39ae117a47bULL,
 311        0x612dd44cf98e5ab5ULL, 0x658f23eaac200346ULL, 0xa67362d51184e6c4ULL,
 312        0xf166a497c268cc55ULL, 0xb2636ed10da8c6dcULL, 0xffcc553399d085aaULL,
 313        0x0859f351aa41b2fbULL, 0x2a71ed5b9c0fe2c7ULL, 0x04a2f7a655ae59f3ULL,
 314        0x815f7fde20c1befeULL, 0x753dd848e5a27aadULL, 0x329ae5a87fcc29d7ULL,
 315        0xc75eb699e80abc71ULL, 0x904b70db3be696e0ULL, 0xfac856329edb8dacULL,
 316        0x51e6c4b72215d195ULL, 0x2bd719fcceaab332ULL, 0x48ab38e393734b70ULL,
 317        0xdc42bf9efd3b8463ULL, 0xef7eae91d052fc41ULL, 0xcd56b09be61cac7dULL,
 318        0x4daf3be294784376ULL, 0x6dd6d0bb0661b1bdULL, 0x5819c341daf1329bULL,
 319        0xcba5b26e17e55779ULL, 0x0baef2a55cb341f9ULL, 0xc00b40cb4b561680ULL,
 320        0xdab1bd6b0cc27f67ULL, 0xfb6ea295cc7edc59ULL, 0x1fbefea1409f61e1ULL,
 321        0x18eb08f3e3c3cb10ULL, 0x4ffeceb1302fe181ULL, 0x0a0806020e16100cULL,
 322        0xdb1749cc5e672e92ULL, 0xf33751c4663f6ea2ULL, 0x6974271d53cfe84eULL,
 323        0x44503c146c9ca078ULL, 0xe82b58c3730e56b0ULL, 0xf291a563349a3f57ULL,
 324        0x954f73da3ced9ee6ULL, 0x3469e75d8e35d2d3ULL, 0x3e61e15f8023c2dfULL,
 325        0x8b5779dc2ed7aef2ULL, 0x94e9877d6e48cf13ULL, 0xde134acd596c2694ULL,
 326        0x9ee1817f605edf1fULL, 0x2f75ee5a9b04eac1ULL, 0xc1adb46c19f34775ULL,
 327        0x316de45c893edad5ULL, 0x0cfb04f7ffefeb08ULL, 0xbe986a26f2472dd4ULL,
 328        0x24db1cffc7b7ab38ULL, 0x7e932aedb9113b54ULL, 0x6f8725e8a236134aULL,
 329        0xd34eba9df4269c69ULL, 0xcea1b16f10ee5f7fULL, 0x8c028f8e8d8b0403ULL,
 330        0x7d642b194fe3c856ULL, 0x1abafda0479469e7ULL, 0x17e70df0eaded31aULL,
 331        0x971e868998ba3c11ULL, 0x333c110f2d697822ULL, 0x1b1c090715313812ULL,
 332        0x2986ecaf6afd11c5ULL, 0x30cb10fbdb9b8b20ULL, 0x2820180838584030ULL,
 333        0x41543f156b97a87eULL, 0x3934170d237f682eULL, 0x14100c041c2c2018ULL,
 334        0x05040301070b0806ULL, 0xe98dac6421ab0745ULL, 0x845b7cdf27cab6f8ULL,
 335        0xb3c59a765f0d9729ULL, 0x80f98b797264ef0bULL, 0x8e537add29dca6f4ULL,
 336        0xc9f4473db3b2f58eULL, 0x4e583a16628ab074ULL, 0xc3fc413fbda4e582ULL,
 337        0xebdc593785fca5b2ULL, 0xc4a9b76d1ef84f73ULL, 0xd8e04838a895dd90ULL,
 338        0x67ded6b90877a1b1ULL, 0xa2d19573442abf37ULL, 0x6a8326e9a53d1b4cULL,
 339        0xe1d45f358beab5beULL, 0x1c49ff55b66d92e3ULL, 0xa8d993714a3caf3bULL,
 340        0x8af18d7b7c72ff07ULL, 0x860a898c839d140fULL, 0xa7d596724321b731ULL,
 341        0x921a85889fb13417ULL, 0x09ff07f6f8e4e30eULL, 0x82a87e2ad6334dfcULL,
 342        0xc6f8423ebaafed84ULL, 0x3b65e25e8728cad9ULL, 0xbb9c6927f54c25d2ULL,
 343        0x4305ca46cfc00a89ULL, 0x3c30140c24746028ULL, 0xec89af6526a00f43ULL,
 344        0xd5bdb86805df676dULL, 0xf899a3613a8c2f5bULL, 0x0f0c0503091d180aULL,
 345        0xe2235ec17d1846bcULL, 0x1641f957b87b82efULL, 0xa97f67d61899feceULL,
 346        0x9a4376d935f086ecULL, 0x257de8589512facdULL, 0x9f4775d832fb8eeaULL,
 347        0xe385aa662fbd1749ULL, 0xac7b64d71f92f6c8ULL, 0xd2e84e3aa683cd9cULL,
 348        0xcf0745c8424b0e8aULL, 0xccf0443cb4b9fd88ULL, 0x35cf13fadc908326ULL,
 349        0xf462a796c563c453ULL, 0x01a6f4a752a551f5ULL, 0xc25ab598ef01b477ULL,
 350        0x7b9729ecbe1a3352ULL, 0x62dad5b80f7ca9b7ULL, 0xfc3b54c76f2276a8ULL,
 351        0x2c82efae6df619c3ULL, 0xd0b9bb6902d46f6bULL, 0x7a31dd4becbf62a7ULL,
 352        0x3d96e0ab76d131ddULL, 0x379ee6a978c721d1ULL, 0xe681a96728b61f4fULL,
 353        0x22281e0a364e503cULL, 0x4601c947c8cb028fULL, 0x1def0bf2e4c8c316ULL,
 354        0x5beec2b52c03c199ULL, 0xaa886622ee6b0dccULL, 0x56b332e581497b64ULL,
 355        0x719f2feeb00c235eULL, 0x7cc2dfbe1d4699a3ULL, 0x87ac7d2bd13845faULL,
 356        0xbf3e9e81a0e27c21ULL, 0x5a4836127ea6906cULL, 0xb5369883aef46c2dULL,
 357        0x776c2d1b41f5d85aULL, 0x3638120e2a627024ULL, 0xaf8c6523e96005caULL,
 358        0x06f302f5f1f9fb04ULL, 0x4c09cf45c6dd1283ULL, 0xa5846321e77615c6ULL,
 359        0xd11f4fce50713e9eULL, 0x7039db49e2a972abULL, 0x9cb0742cc4097de8ULL,
 360        0x3ac316f9d58d9b2cULL, 0x59bf37e68854636eULL, 0x54e2c7b6251ed993ULL,
 361        0x88a07828d8255df0ULL, 0x4b5c39176581b872ULL, 0xb0329b82a9ff642bULL,
 362        0x72682e1a46fed05cULL, 0x9d16808b96ac2c1dULL, 0x21df1ffec0bca33eULL,
 363        0x9812838a91a7241bULL, 0x2d241b093f534836ULL, 0xca0346c94540068cULL,
 364        0xa1269487b2d84c35ULL, 0x6b25d24ef7984ab9ULL, 0x42a33ee19d655b7cULL,
 365        0x96b8722eca1f6de4ULL, 0x53b731e486427362ULL, 0x47a73de09a6e537aULL,
 366        0x608b20ebab2b0b40ULL, 0xea7aad90d759f447ULL, 0x0eaaf1a45bb849ffULL,
 367        0x6678221e5ad2f044ULL, 0xab2e9285bcce5c39ULL, 0xfd9da0603d87275dULL,
 368        0x0000000000000000ULL, 0xb1946f25fb5a35deULL, 0x03f701f4f6f2f302ULL,
 369        0x12e30ef1edd5db1cULL, 0xfe6aa194cb75d45fULL, 0x272c1d0b3145583aULL,
 370        0x5cbb34e78f5f6b68ULL, 0xbcc99f7556108f23ULL, 0x749b2cefb7072b58ULL,
 371        0xe4d05c348ce1bdb8ULL, 0xf5c4533197c695a6ULL, 0xa37761d4168feec2ULL,
 372        0xb7676dd00aa3cedaULL, 0xa4229786b5d34433ULL, 0x9be5827e6755d719ULL,
 373        0x238eeaad64eb01c9ULL, 0x2ed31afdc9a1bb34ULL, 0x8da47b29df2e55f6ULL,
 374        0xf0c0503090cd9da0ULL, 0xd7ec4d3ba188c59aULL, 0xd946bc9ffa308c65ULL,
 375        0x3fc715f8d286932aULL, 0xf93f57c668297eaeULL, 0x5f4c351379ad986aULL,
 376        0x1e180a06123a3014ULL, 0x11140f051b27281eULL, 0xf63352c5613466a4ULL,
 377        0x5544331177bb8866ULL, 0xb6c1997758069f2fULL, 0x91ed847c6943c715ULL,
 378        0x8ff58e7a7b79f701ULL, 0x85fd8878756fe70dULL, 0xeed85a3682f7adb4ULL,
 379        0x6c70241c54c4e048ULL, 0xdde44b39af9ed596ULL, 0x2079eb599219f2cbULL,
 380        0x7860281848e8c050ULL, 0x1345fa56bf708ae9ULL, 0x45f6c8b33e39f18dULL,
 381        0x4afacdb03724e987ULL, 0xb4906c24fc513dd8ULL, 0xa0806020e07d1dc0ULL,
 382        0x40f2cbb23932f98bULL, 0xe072ab92d94fe44bULL, 0x15b6f8a34e8971edULL,
 383        0xe7275dc07a134ebaULL, 0x490dcc44c1d61a85ULL, 0xf795a66233913751ULL,
 384        0x5040301070b08060ULL, 0x5eeac1b42b08c99fULL, 0xae2a9184bbc5543fULL,
 385        0x5211c543d4e72297ULL, 0xe576a893de44ec4dULL, 0xed2f5bc274055eb6ULL,
 386        0x7f35de4aebb46aa1ULL, 0x73cedabd145b81a9ULL, 0x89068c8f8a800c05ULL,
 387        0x99b4772dc30275eeULL, 0x76cad9bc135089afULL, 0xd64ab99cf32d946fULL,
 388        0xdfb5be6a0bc97761ULL, 0x5d1dc040ddfa3a9dULL, 0xd41b4ccf577a3698ULL,
 389        0x10b2fba2498279ebULL, 0xba3a9d80a7e97427ULL, 0x6e21d14ff09342bfULL,
 390        0x637c211f5dd9f842ULL, 0xc50f43ca4c5d1e86ULL, 0x3892e3aa71da39dbULL,
 391        0x5715c642d3ec2a91ULL
 392};
 393
 394static const u64 T4[256] = {
 395        0xbbb96a01bad3d268ULL, 0xe59a66b154fc4d19ULL, 0xe26514cd2f71bc93ULL,
 396        0x25871b51749ccdb9ULL, 0xf7a257a453f55102ULL, 0xd0d6be03d3686bb8ULL,
 397        0xd6deb504d26b6fbdULL, 0xb35285fe4dd72964ULL, 0xfdba4aad50f05d0dULL,
 398        0xcf09e063ace98a26ULL, 0x091c96848d8a0e83ULL, 0xa5914d1abfdcc679ULL,
 399        0x3da7374d7090ddadULL, 0xf1aa5ca352f65507ULL, 0x7ba417e19ab352c8ULL,
 400        0xb55a8ef94cd42d61ULL, 0x460320acea238f65ULL, 0xc4e68411d56273a6ULL,
 401        0x55cc68c297a466f1ULL, 0xdcc6a80dd16e63b2ULL, 0xaa85d0993355ccffULL,
 402        0xfbb241aa51f35908ULL, 0xc7e20f9c5bed712aULL, 0xf359ae55a6f7a204ULL,
 403        0xfebec120de7f5f81ULL, 0xad7aa2e548d83d75ULL, 0xd729cc7fa8e59a32ULL,
 404        0x71bc0ae899b65ec7ULL, 0xe096e63bdb704b90ULL, 0xac8ddb9e3256c8faULL,
 405        0x95d11522b7c4e651ULL, 0x32b3aacefc19d72bULL, 0x704b7393e338ab48ULL,
 406        0x63843bfd9ebf42dcULL, 0x41fc52d091ae7eefULL, 0x7dac1ce69bb056cdULL,
 407        0x76437894e23baf4dULL, 0xbdb16106bbd0d66dULL, 0x9b32f1da41c31958ULL,
 408        0x7957e5176eb2a5cbULL, 0xf941b35ca5f2ae0bULL, 0x8016564bcb400bc0ULL,
 409        0x677fc20c6bbdb1daULL, 0x59dc7ecc95a26efbULL, 0xe1619f40a1febe1fULL,
 410        0x10cbc3e3f308eb18ULL, 0x81e12f30b1cefe4fULL, 0x0c10160e0206080aULL,
 411        0x922e675ecc4917dbULL, 0xa26e3f66c45137f3ULL, 0x4ee8cf531d277469ULL,
 412        0x78a09c6c143c5044ULL, 0xb0560e73c3582be8ULL, 0x573f9a3463a591f2ULL,
 413        0xe69eed3cda734f95ULL, 0xd3d2358e5de76934ULL, 0xdfc223805fe1613eULL,
 414        0xf2aed72edc79578bULL, 0x13cf486e7d87e994ULL, 0x94266c59cd4a13deULL,
 415        0x1fdf5e607f81e19eULL, 0xc1ea049b5aee752fULL, 0x7547f3196cb4adc1ULL,
 416        0xd5da3e895ce46d31ULL, 0x08ebeffff704fb0cULL, 0xd42d47f2266a98beULL,
 417        0x38abb7c7ff1cdb24ULL, 0x543b11b9ed2a937eULL, 0x4a1336a2e825876fULL,
 418        0x699c26f49dba4ed3ULL, 0x7f5fee106fb1a1ceULL, 0x03048b8d8e8f028cULL,
 419        0x56c8e34f192b647dULL, 0xe7699447a0fdba1aULL, 0x1ad3deeaf00de717ULL,
 420        0x113cba9889861e97ULL, 0x2278692d0f113c33ULL, 0x1238311507091c1bULL,
 421        0xc511fd6aafec8629ULL, 0x208b9bdbfb10cb30ULL, 0x3040583808182028ULL,
 422        0x7ea8976b153f5441ULL, 0x2e687f230d173439ULL, 0x18202c1c040c1014ULL,
 423        0x06080b0701030405ULL, 0x4507ab2164ac8de9ULL, 0xf8b6ca27df7c5b84ULL,
 424        0x29970d5f769ac5b3ULL, 0x0bef6472798bf980ULL, 0xf4a6dc29dd7a538eULL,
 425        0x8ef5b2b33d47f4c9ULL, 0x74b08a62163a584eULL, 0x82e5a4bd3f41fcc3ULL,
 426        0xb2a5fc853759dcebULL, 0x734ff81e6db7a9c4ULL, 0x90dd95a83848e0d8ULL,
 427        0xb1a17708b9d6de67ULL, 0x37bf2a447395d1a2ULL, 0x4c1b3da5e926836aULL,
 428        0xbeb5ea8b355fd4e1ULL, 0xe3926db655ff491cULL, 0x3baf3c4a7193d9a8ULL,
 429        0x07ff727c7b8df18aULL, 0x0f149d838c890a86ULL, 0x31b721437296d5a7ULL,
 430        0x1734b19f88851a92ULL, 0x0ee3e4f8f607ff09ULL, 0xfc4d33d62a7ea882ULL,
 431        0x84edafba3e42f8c6ULL, 0xd9ca28875ee2653bULL, 0xd2254cf527699cbbULL,
 432        0x890ac0cf46ca0543ULL, 0x286074240c14303cULL, 0x430fa02665af89ecULL,
 433        0x6d67df0568b8bdd5ULL, 0x5b2f8c3a61a399f8ULL, 0x0a181d0903050c0fULL,
 434        0xbc46187dc15e23e2ULL, 0xef827bb857f94116ULL, 0xcefe9918d6677fa9ULL,
 435        0xec86f035d976439aULL, 0xcdfa129558e87d25ULL, 0xea8efb32d875479fULL,
 436        0x4917bd2f66aa85e3ULL, 0xc8f6921fd7647bacULL, 0x9ccd83a63a4ee8d2ULL,
 437        0x8a0e4b42c84507cfULL, 0x88fdb9b43c44f0ccULL, 0x268390dcfa13cf35ULL,
 438        0x53c463c596a762f4ULL, 0xf551a552a7f4a601ULL, 0x77b401ef98b55ac2ULL,
 439        0x52331abeec29977bULL, 0xb7a97c0fb8d5da62ULL, 0xa876226fc7543bfcULL,
 440        0xc319f66daeef822cULL, 0x6b6fd40269bbb9d0ULL, 0xa762bfec4bdd317aULL,
 441        0xdd31d176abe0963dULL, 0xd121c778a9e69e37ULL, 0x4f1fb62867a981e6ULL,
 442        0x3c504e360a1e2822ULL, 0x8f02cbc847c90146ULL, 0x16c3c8e4f20bef1dULL,
 443        0x99c1032cb5c2ee5bULL, 0xcc0d6bee226688aaULL, 0x647b4981e532b356ULL,
 444        0x5e230cb0ee2f9f71ULL, 0xa399461dbedfc27cULL, 0xfa4538d12b7dac87ULL,
 445        0x217ce2a0819e3ebfULL, 0x6c90a67e1236485aULL, 0x2d6cf4ae839836b5ULL,
 446        0x5ad8f5411b2d6c77ULL, 0x2470622a0e123836ULL, 0xca0560e923658cafULL,
 447        0x04fbf9f1f502f306ULL, 0x8312ddc645cf094cULL, 0xc61576e7216384a5ULL,
 448        0x9e3e7150ce4f1fd1ULL, 0xab72a9e249db3970ULL, 0xe87d09c42c74b09cULL,
 449        0x2c9b8dd5f916c33aULL, 0x6e635488e637bf59ULL, 0x93d91e25b6c7e254ULL,
 450        0xf05d25d82878a088ULL, 0x72b8816517395c4bULL, 0x2b64ffa9829b32b0ULL,
 451        0x5cd0fe461a2e6872ULL, 0x1d2cac968b80169dULL, 0x3ea3bcc0fe1fdf21ULL,
 452        0x1b24a7918a831298ULL, 0x3648533f091b242dULL, 0x8c064045c94603caULL,
 453        0x354cd8b2879426a1ULL, 0xb94a98f74ed2256bULL, 0x7c5b659de13ea342ULL,
 454        0xe46d1fca2e72b896ULL, 0x62734286e431b753ULL, 0x7a536e9ae03da747ULL,
 455        0x400b2babeb208b60ULL, 0x47f459d790ad7aeaULL, 0xff49b85ba4f1aa0eULL,
 456        0x44f0d25a1e227866ULL, 0x395ccebc85922eabULL, 0x5d27873d60a09dfdULL,
 457        0x0000000000000000ULL, 0xde355afb256f94b1ULL, 0x02f3f2f6f401f703ULL,
 458        0x1cdbd5edf10ee312ULL, 0x5fd475cb94a16afeULL, 0x3a5845310b1d2c27ULL,
 459        0x686b5f8fe734bb5cULL, 0x238f1056759fc9bcULL, 0x582b07b7ef2c9b74ULL,
 460        0xb8bde18c345cd0e4ULL, 0xa695c6973153c4f5ULL, 0xc2ee8f16d46177a3ULL,
 461        0xdacea30ad06d67b7ULL, 0x3344d3b5869722a4ULL, 0x19d755677e82e59bULL,
 462        0xc901eb64adea8e23ULL, 0x34bba1c9fd1ad32eULL, 0xf6552edf297ba48dULL,
 463        0xa09dcd903050c0f0ULL, 0x9ac588a13b4decd7ULL, 0x658c30fa9fbc46d9ULL,
 464        0x2a9386d2f815c73fULL, 0xae7e2968c6573ff9ULL, 0x6a98ad7913354c5fULL,
 465        0x14303a12060a181eULL, 0x1e28271b050f1411ULL, 0xa4663461c55233f6ULL,
 466        0x6688bb7711334455ULL, 0x2f9f06587799c1b6ULL, 0x15c743697c84ed91ULL,
 467        0x01f7797b7a8ef58fULL, 0x0de76f757888fd85ULL, 0xb4adf782365ad8eeULL,
 468        0x48e0c4541c24706cULL, 0x96d59eaf394be4ddULL, 0xcbf2199259eb7920ULL,
 469        0x50c0e84818286078ULL, 0xe98a70bf56fa4513ULL, 0x8df1393eb3c8f645ULL,
 470        0x87e92437b0cdfa4aULL, 0xd83d51fc246c90b4ULL, 0xc01d7de0206080a0ULL,
 471        0x8bf93239b2cbf240ULL, 0x4be44fd992ab72e0ULL, 0xed71894ea3f8b615ULL,
 472        0xba4e137ac05d27e7ULL, 0x851ad6c144cc0d49ULL, 0x5137913362a695f7ULL,
 473        0x6080b07010304050ULL, 0x9fc9082bb4c1ea5eULL, 0x3f54c5bb84912aaeULL,
 474        0x9722e7d443c51152ULL, 0x4dec44de93a876e5ULL, 0xb65e0574c25b2fedULL,
 475        0xa16ab4eb4ade357fULL, 0xa9815b14bddace73ULL, 0x050c808a8f8c0689ULL,
 476        0xee7502c32d77b499ULL, 0xaf895013bcd9ca76ULL, 0x6f942df39cb94ad6ULL,
 477        0x6177c90b6abeb5dfULL, 0x9d3afadd40c01d5dULL, 0x98367a57cf4c1bd4ULL,
 478        0xeb798249a2fbb210ULL, 0x2774e9a7809d3abaULL, 0xbf4293f04fd1216eULL,
 479        0x42f8d95d1f217c63ULL, 0x861e5d4cca430fc5ULL, 0xdb39da71aae39238ULL,
 480        0x912aecd342c61557ULL
 481};
 482
 483static const u64 T5[256] = {
 484        0xb9bb016ad3ba68d2ULL, 0x9ae5b166fc54194dULL, 0x65e2cd14712f93bcULL,
 485        0x8725511b9c74b9cdULL, 0xa2f7a457f5530251ULL, 0xd6d003be68d3b86bULL,
 486        0xded604b56bd2bd6fULL, 0x52b3fe85d74d6429ULL, 0xbafdad4af0500d5dULL,
 487        0x09cf63e0e9ac268aULL, 0x1c0984968a8d830eULL, 0x91a51a4ddcbf79c6ULL,
 488        0xa73d4d379070adddULL, 0xaaf1a35cf6520755ULL, 0xa47be117b39ac852ULL,
 489        0x5ab5f98ed44c612dULL, 0x0346ac2023ea658fULL, 0xe6c4118462d5a673ULL,
 490        0xcc55c268a497f166ULL, 0xc6dc0da86ed1b263ULL, 0x85aa99d05533ffccULL,
 491        0xb2fbaa41f3510859ULL, 0xe2c79c0fed5b2a71ULL, 0x59f355aef7a604a2ULL,
 492        0xbefe20c17fde815fULL, 0x7aade5a2d848753dULL, 0x29d77fcce5a8329aULL,
 493        0xbc71e80ab699c75eULL, 0x96e03be670db904bULL, 0x8dac9edb5632fac8ULL,
 494        0xd1952215c4b751e6ULL, 0xb332ceaa19fc2bd7ULL, 0x4b70937338e348abULL,
 495        0x8463fd3bbf9edc42ULL, 0xfc41d052ae91ef7eULL, 0xac7de61cb09bcd56ULL,
 496        0x437694783be24dafULL, 0xb1bd0661d0bb6dd6ULL, 0x329bdaf1c3415819ULL,
 497        0x577917e5b26ecba5ULL, 0x41f95cb3f2a50baeULL, 0x16804b5640cbc00bULL,
 498        0x7f670cc2bd6bdab1ULL, 0xdc59cc7ea295fb6eULL, 0x61e1409ffea11fbeULL,
 499        0xcb10e3c308f318ebULL, 0xe181302fceb14ffeULL, 0x100c0e1606020a08ULL,
 500        0x2e925e6749ccdb17ULL, 0x6ea2663f51c4f337ULL, 0xe84e53cf271d6974ULL,
 501        0xa0786c9c3c144450ULL, 0x56b0730e58c3e82bULL, 0x3f57349aa563f291ULL,
 502        0x9ee63ced73da954fULL, 0xd2d38e35e75d3469ULL, 0xc2df8023e15f3e61ULL,
 503        0xaef22ed779dc8b57ULL, 0xcf136e48877d94e9ULL, 0x2694596c4acdde13ULL,
 504        0xdf1f605e817f9ee1ULL, 0xeac19b04ee5a2f75ULL, 0x477519f3b46cc1adULL,
 505        0xdad5893ee45c316dULL, 0xeb08ffef04f70cfbULL, 0x2dd4f2476a26be98ULL,
 506        0xab38c7b71cff24dbULL, 0x3b54b9112aed7e93ULL, 0x134aa23625e86f87ULL,
 507        0x9c69f426ba9dd34eULL, 0x5f7f10eeb16fcea1ULL, 0x04038d8b8f8e8c02ULL,
 508        0xc8564fe32b197d64ULL, 0x69e74794fda01abaULL, 0xd31aeade0df017e7ULL,
 509        0x3c1198ba8689971eULL, 0x78222d69110f333cULL, 0x3812153109071b1cULL,
 510        0x11c56afdecaf2986ULL, 0x8b20db9b10fb30cbULL, 0x4030385818082820ULL,
 522c11a2U        a>  4fe32b1982e, 0xeULL33d2358e5de1410, 0xeULL,410385818082820ULL,
 412 413 414  44de93a8   , 0xeULLxc3f5d4cca42fc9bda44ULLab07385818082820ULL,
 415  db9b10fbfe4ULf8   0ca5b4794fda0dx0f19ee8a1ULe0385818082820ULL,
 416  e9a7809d337, 0x1ULL7a1bb9112aedb4c, 0x7ULLabf3385818082820ULL,
 417 418 419 420 421  4fe32b1904034749ULL    02f5f1f f, 06a08ULL4602385818082820ULL,
 422  358e5de1f5b, 0xdULLf676f652a350c01dLL, 0x  f0806020e16100cULL,
 323  6afdecaf2ef, 0xcULL846bfd3bbf9eece, 0xfULLb82e06020e16100cULL,
 424  fd3bbf9e 0x, 0xcULL086e6afdecafeea, 0xdULL2fac06020e16100cULL,
 425  fd3bbf9e6c8, 0x9ULLd1748c3a61a50xaf6838ULL2f6c06020e16100cULL,
 426 427  f426ba9d1fULL,53ULL3c45e9a7809da2f, 0xc5ULL2577fcce5a8329aULL,
 428  02c32d779b7, 0x2ULLa33598ba8689abf, 0x7ULLca9b7fcce5a8329aULL,
 429  4fe32b19f6b, 0x3ULL619c4fe32b19, 0xcbfbULL46f67fcce5a8329aULL,
 430 de44b39af9e       dULL131df652a350ffbU8b61ULL721d7fcce5a8329aULL,
 431  02f5f1f 28f, 0xcULL4551a552a7fxdad, 0xfULLb0287fcce5a8329aULL,
 432  02f5f1f dcc, 0x9ULL3c1998ba8689b0x9149cULLb0dc7fcce5a8329aULL,
 433  e80ab69996f6b46eULLc235f1a443c55fa, 0x3ULL699a7fcce5a8329aULL,
 434  e80ab6990 0x9a61ULL27c24fe32b19c335ef4cULL69067fcce5a8329aULL,
 435  98ba8689024, 0xaULL5d8502f5f1f 5ca, 0x4ULL27027fcce5a8329aULL,
 436  f652a350283, 0x4ULL9fb0f652a3505c6, 0x3ULL6afe7fcce5a8329aULL,
 437  98ba86892abc99feULL13e998ba8689de8, 0x942c972a7fcce5a8329aULL,
 438  4fe32b1936e, 0xcULLd9b24794fda099cU51  a>646367fcce5a8329aULL,
 439  e9a7809d, 0, 0x0ULL486b5f8fe73b032, 0x2ULL1b877fcce5a8329aULL,
 440 441 442  d5edf102ab9, 0x5ULL84c3f426ba9db7c, 0x9ULL84ab7fcce5a8329aULL,
 443   a>  98ba86893ULL,   1e4f6def426ba9d37a, 0x2ULL27367fcce5a8329aULL,
 444  8d7b7c77447, 0x0ULLb0b4d5edf102beULbb87ULL9f447fcce5a8329aULL,
 445  f426ba9dc39, 0x4ULL2f046a01bad4 0xdd  a060e5c37fcce5a8329aULL,
 446        0x00000000000    , 0x0ULL00008d7b7c77bULL0ULeULLa35d7fcce5a8329aULL,
 447 448 449  e80ab6990x0, 0x8ULL1bdb9447a0f e   68f6ULL695a7fcce5a8329aULL,
 450  d5edf102433, 0xaULL3cedff55b66f7xULL533ULL34437fcce5a8329aULL,
 451 452 453  98ba8689eae, 0xaULL6932e80ab699LL3, 0xeULL97ea7fcce5a8329aULL,
 454 455  e80ab699f    0xb52336c1a552a7fx715, 0xL, 0x5b6f8a34e8971edULL,
 456  9447a0f 7L, 06f1ULL9f707bb857faeUL, 0xdULLfe70f8a34e8971edULL,
 457  ff55b66f   0f9e8ULLd6b8722eca1    , 0x6ULLed59f8a34e8971edULL,
 458  4cf5ecafa, , 0x0ULL 0xe722eca1 18d, 0x9ULL4da47b29df2e55f6ULL,
 459  0000000 dd8, 0x7ULL4e98f652a350dcL, 0x 0x100ca7fcce5a8329aULL,
 460  9447a0f 44b, 0xbULL2f9898ba86895b6, 0xbULLfe447fcce5a8329aULL,
 461  f652a350a85, 0xaULL34eb0000000 7ULL0UL     7937fcce5a8329aULL,
 462 463  9447a0f c44e0487ULL722959d790aa  a, 0xebc24ec47fcce5a8329aULL,
 464 465  9487b2d79af, 0xeULL275ee80ab699  0, 0xfULL089a7fcce5a8329aULL,
 466  0000000  0x9dfaL, 097760000000 698, 0xdULLd438311507091c1bULL,
 467  98ba8689427, 0xbULL279ed5edf1022bL, 0x7ULL9742311507091c1bULL,
 468  f652a350eL, c5d2ULL9f840000000 9db, 0x6ULLd1e8311507091c1bULL,
 469 481};
 481};
 483static const u64 T5[256] = {
 473[256] = {
 474[256] = {
 475dbafdba509dcd90/a>[256] = {
 476[256] = {
 477[256] = {
 378[256] = {
 379   6f1  0x7bb857faULL,   63b2d159cc7ea292ULL0x49aa85, 0xcd90/a>[256] = {
 48065d7fcce5a8329aULL,
 381 382  71bc  0x9447a0f 63b0xdde096, 0xcc7ea292b9e0x45ac8d, 0x7fcce5a8329aULL,
 383 484   7fcce5a8329aULL,
 485 486 487 488 489 490 491 492  f2ae  0xd5edf10286e0x2613cf, 0x0a06123fc0x0x359426, 0x7fcce5a8329aULL,
 493 494 395  38ab  0xee106fbf1c, 43b   a, 0x0000000 6a2a9374a13, 0x7fcce5a8329aULL,
 396 99c699c  0x9447a0f e10a4ed7f5f, 0x9487b2d7b8, 0x6028c, 0x7fcce5a8329aULL,
 497  56c8  0xe80ab699 47b647e769, 0xcc7ea292eea0x341ad3, 0x7fcce5a8329aULL,
 498 499 500 501  608010c96848d8ab210x8a4507, 0xa457f553a270xedf8b6, 0x7fcce5a8329aULL,
 502 503 504  b2a5  0x722eca1 x119dce734f, 0xe80ab6995a87a9c90dd, 0x7fcce5a8329aULL,
 505 506 407 508  1734  0x9447a0f 4f80x1cL, 0, 0x0000000 3d67ff0fc4d, 0x7fcce5a8329aULL,
 509 510  890a475ee80ab693ULL0x502860, 0x96848d8a02 a> x430f, 0x7fcce5a8329aULL,
 522c1     xdacdd   0x4cf5ecafc3ebdcf5b2f, 0xee106fbfULL,a18xa09d>  4fe3e5a8329aULL,
 412 413  ec86  0xee106fbf2950x87cdfa, 0x722eca1 b30xa8eea8e, 0x4fe3e5a8329aULL,
 414  4917  0xe80ab69921f0x8dc8f6, 0x4cf5ecaf3a6 0x29ccd, 0x4fe3e5a8329aULL,
 415  8a0e  0x473db3b29b40x0d88fd, 0xe80ab6990d    x2683, 0x4fe3e5a8329aULL,
 416     a>6a 02c32d7751ea,51f551, 0xc120de7exfc47b477b4, 0x4fe3e5a8329aULL,
 417 418  c319a1fc52d091acULL,b, 09d0, 0x473db3b2 0xbb9da762L, 04fe3e5a8329aULL,
 419  dd31  0xa457f55377ULL, 0x27, 0x473db3b2628UL, 8  a> fe9918d6677fa9ULL,
 420  3c50  0xa457f553bc8e2828f02, 0xa457f5538ee0x2c16c3, 0x9918d6677fa9ULL,
 421 422  5e23  0xd5edf10261df9f7a399, 0x0000000 ULL0xe9fa45, 0x9918d6677fa9ULL,
 323 424 425   306  0x52d091acdc60x1b8312450e4b42c84cULL0x91c615, 0x9918d6677fa9ULL,
 426  9e3ec1e12f30b1c1ULL0x4bab72, 0xc120de7e9c69   0e9c, 0x9918d6677fa9ULL,
 427 428  f05d  0x4cf5ecaf82, 2,    0, 0x722eca1 efe95c42b64, 0x9918d6677fa9ULL,
 429 430 431 432  e46d  0xd5edf1020x52b896273, 0x20c17fd10ULLa537a53, 0x7fcce5a8329aULL,
 433 434  44f0 a> a457f553e82c9 0x9ab, 0x4cf5ecaf73d0xba5d27601d7de0206080a0ULL,
 435        0x000000000000ULL0xa1de35, 0x722eca1 2, 094b1482, 0x7de0206080a0ULL,
 436  1cdb4eUL4b42c84c5cbee315fd4, 0xd5edf10253116af3a58, 0x7de0206080a0ULL,
 437  1  019dcee106fbf504b38x238f, 0xc120de7e762782b582b, 0x7de0206080a0ULL,
 438 439 440 441   09d>   4cf5ecaf8a10c0f9ac5, 0x0000000 0fx034x658c, 0x7de0206080a0ULL,
 442  2a93  0x3858c054LL, e71cL,9, 0x2f30b1c1d7973ff6a98, 0x7de0206080a0ULL,
 443  14300604e9a7809eULLa1811e280f840000000     14113f6, 0x7de0206080a0ULL,
 444  6688  0xc120de7e03434452f9f, 0xd5edf1023699c1b15c7, 0x7de0206080a0ULL,
 445  01f7  0x20c17fd1f75ef580de7, 0x722eca1 782b4ULL4ee, 0x7de0206080a0ULL,
 446  48e0  0xe80ab699eb  6   4dd, 0xee106fbf6U  bf2cbf2, 0x7de0206080a0ULL,
 447  50c0  0x4b42c84c0bf8607e98a, 0x0000000 93e8a>   45, 0x7de0206080a0ULL,
 448  87e9  0x00000000   dfa4d83d, 0x4b42c84cde 0x9dc01d204d7de0206080a0ULL,
 449  8bf9  0xd5edf102Lxd6be44be4, 0x4cf5ecaf94eb72eed71, 0x7de0206080a0ULL,
 450  ba4e  0x893ee457e0 d27e851a, 0xe80ab699, 0x0d495f7, 0x7de0206080a0ULL,
 451  608010c 02f5f1f 82b5x239fc9, 0x5f8fe7345bb1ea53f54, 0x7de0206080a0ULL,
 452  9722431e5d4cca42ULL51154dec, 0x02f5f1f 574876eb65e, 0x7de0206080a0ULL,
 453  a16a  0x00000000b16a1U1019d, 0x4cf5ecaf0xf078x050c87027fcce5a8329aULL,
 454  ee75  0x0000000001L270xaf89, 0xe9a7809ed 31fa, ad6, 0x7fcce5a8329aULL,
 455 456  eb79  0xe80ab690ULLbb212774, 0xe80ab6993f0d3abbf424e3e7150e5a8329aULL,
 457  42f81ea3bcc0000036c17c6861ec>  fd3bbf95ULL30fcdb39, 0x7150e5a8329aULL,
 458  912a  0xU4707091c1bULL,
 481};
 481};
 483static const u64 T5[256] = {
 462  b9bb  0x473db3b2166a68d9ae5, 0x5f8fe734d1476eb65e2, 0x7150e5a8329aULL,
 463  87259 0x9918b1c1457xeaca2f7, 0x02f5f1f 3be3025d6d0, 0x7150e5a8329aULL,
 464  ded6  0x722eca1 e852bd652b3, 0x2f30b1c1de9 afdba5    d7de0206080a0ULL,
 465        0x4cf5ecaf496c268a3cf070xe80ab69eULLd83091a5, 0x7de0206080a0ULL,
 466  a73d  0x2f30b1c13ec>af1aaf1, 0xe80ab6901762L7LL, bd6d77fcce5a8329aULL,
 467  5ab5  0x2f30b1c1c20c6120346, 0xe80ab69e184a658e6c4, 0x7fcce5a8329aULL,
 468  cc55  0x02f5f1f da8a5, 02936e1bb9112ae3ULL1b2685aa, 0x7fcce5a8329aULL,
 469  b2fb  0xb9112ae3ULL,2cL,d11, 0x00000000568db  59f3, 0x7fcce5a8329aULL,
 470 471 472 473  8463  0xfd3bbf95052edc4fc41, 0xe80ab6906c21ef7ac7d, 0x7fcce5a8329aULL,
 474  4376  0xc120de7e0598983b1bd, 0xfd3bbf95Uf1b6dd329b, 0x7fcce5a8329aULL,
 475  5779  0x00000000cb3ecba41f9, 0x5d4cca42  5a68xa0608bcx7fcce5a8329aULL,
 476  7f67  0xa457f5531b15cdb b6L, 0xd5edf10209f  ec61e1ff7f10eee5a8329aULL,
 477  cb10  0x0000000 0b6518xe181, 0xc120de7eULL14ffeax5040x7fcce5a8329aULL,
 378  2e92  0x20c17fd163f6L, 6ea2Lab500000000x26184a6x94270x7de0206080a0ULL,
 379 480  a, 0>  a4cf5ecafe35bb  d2d3, 0x4cf5ecaf023d346c2dfe198ad7913354c5fULL,
 381 382  df1f  0xe80ab699ULL,ac1 0xd, 0xee106fbf6f3a2f74775b 0x4b4213354c5fULL,
 383  dad5e46b5f8fe73dULL10  eb08, 0x5f8fe73d247b5  2dd4L9174b4213354c5fULL,
 484 485  9c69  0xee106fbf0, 0e  5f7f, 0x4cf5ecafd8bfcea1c 28f8x7fcce5a8329aULL,
 486 487       6023858c054xe848227822, 0xee106fbf5311333cbc2680x9918d6677fa9ULL,
 488  11c5  0xfd3bbf95a> f2988b20, 0x0000000 858b30c4030, 0x9918d6677fa9ULL,
 489      3858c0543a> 82e33d2eULLee106fbfc2c1410,414ffex7de0206080a0ULL,
 490 491 492      20c17fd1280x   xc3feULL473db3b2daxc3f2ab074ULL7de0206080a0ULL,
 493      ee106fbfef8 0> ca5b   02f30b1c189  0x0ULe0e8a17de0206080a0ULL,
 494  dxd5edf10242ad3377a1b1ULL2f30b1c1aaddb4cabf37ULL7de0206080a0ULL,
 49576  d92e3ULL7de0206080a0ULL,
 396 497 498 499      a552a7f,LL455283,1e180 db9b10f06a0 f, 46028ULL7fcce5a8329aULL,
 500      0000000 a8c1f5bf676dULLc120de7e91d0c01df08 5837fcce5a8329aULL,
 501      9487b2d,87bf2ef846bcULLee106fbf67681, b82e c857fcce5a8329aULL,
 502      e80ab69951x8dad086ecULL0000000 2fbfeea2facdULL7fcce5a8329aULL,
 503      ee106fbff92e6c8d1749ULL2f30b1c1  x2d9c2f6c8ULL7fcce5a8329aULL,
 504 505      000000002a5f7, 3c453ULLe9a7809a 0xcacdL257c5UL7fcce5a8329aULL,
 506      c120de7ef7cab   2a>  0x4cf5eca, 0x9abfca9b7ULL7fcce5a8329aULL,
 407      c120de7e2d4d6  00a>  bbaa41f351cbf    46f65  27fcce5a8329aULL,
 508ee106fb,8 0x1d0131ddULLdb9b10f08b60ffb721d1ULL7fcce5a8329aULL,
 509 510 522c1  0x7LL, 19f  0x722eca16b4676dUc235df0x722eca1, 0x55fa699a3ULL7fcce5a8329aULL,
 412      ee106fb,ea690 02f651ULL2f30b1c1ef4535d6906cULL7fcce5a8329aULL,
 413      db9b10f0a6200245d85aULLaa41f3519600ec>aff0x82L7fcce5a8329aULL,
 414      e9a7809,  a02839fb04ULLaa41f351dfb55cab5a>  42311507091c1bULL,
 415      aa41f3512b82L0x403feULLe9a7809, 0x9ecU972aa  0311507091c1bULL,
 416      4cf5ecaf854936ed9b2cULLdb9b10f051e2e3U46361749311507091c1bULL,
 417  7 0x4b42c84, 0x a> 486b0ULL2f30b1c1eaa56  1b872ULL311507091c1bULL,
 418 419 420      e80ab6947982ab984c35ULLe80ab699d65745U84ab3e0x7fcce5a8329aULL,
 421  >   4cf5ecaf56 c4, f6de 1e4e80ab699a6ef0bU4 a>  e0385818082820ULL,
 422      722eca1,, 0x 47bae8150xf426ba9dbb85beU9f447ULL385818082820ULL,
 323      9487b2d,cce6b0U2f044ULLd5edf10,d > dULe5c3a04d7de0206080a0ULL,
 424        0x00000000000, 0x    00000ULL0000000,0UL    a35deULL7de0206080a0ULL,
 425 426 427      e80ab6997c690x01bdb8ULL722eca1668f L52695a6, 0e80a206080a0ULL,
 428      9487b2d,5d324333cedaULL4b42c84,785 7me34433ULLe80a206080a0ULL,
 429 430 431      4b42c84,8daUe1ef93e82cxee106fb,86  86,53Uc0x0de80a206080a0ULL,
 432 433      f426ba9d 0xbUL 36c1b5234fe32b19943    x5b6L, 0e80a206080a0ULL,
 434      ee106fb,5 0x70d9f708 0x4cf5ecaf3, 0eULfe70dULLe80a206080a0ULL,
 435      2f30b1c1f  a5964e048b0x722eca1, 0x    ed596ULLe80a206080a0ULL,
 436  28cbc3e3f30, 0x     0xe0ULL8d7b7c7,e3955  4da49ULLe80a206080a0ULL,
 437      0a06123,cx0ddd84e986 0xe80ab69, 0x0dcLax5040xd7de0206080a0ULL,
 438  225,cc7ea292   048b2f98bULLdb9b10fbcU911, fe44bULL7de0206080a0ULL,
 439 dUL8 e80ab69d1d60a8534ebc 0xe80ab69L0ULa2La 793    7de0206080a0ULL,
 440 441      cc7ea292048 c4472297ULLee106fb, 0xeeb64ec4ebc27de0206080a0ULL,
 442 443  972dee106fbf350028U275eeULL0a06123,32xd64f089afULL7fcce5a8329aULL,
 444 445      2f30b1c17ex9427ba  0x0x473db3b, 0x63  97427ULL7fcce5a8329aULL,
 446  2>  98ba868 c5d   69f842ULLee106fb,1df9fdbd1e86ULL7fcce5a8329aULL,
 447 481};
 481};
 483static const u64 u64 T5[256] = {
 451 45227de0206080a0ULL,
 453 481};
 481};
 48in>static const static const  481};
 45777777777777777777unsigned8in>static const  481};
 459struc>static const  481};
 4603static const  481};
 461in>static const  481};
 4623static const  481};
 463tatic const u64 u64  481};
 481};
 465/* key is supposed8to be 32-bit aligned8*/ 481};
 466ef">u64 u64  481};
 467ef">u64 u64  481};
 481};
 469/* setup the en};
 481};
 470for (tatic const  47167"> 467ef">u64 u64 u64  467] ^/a>[256] = {
 47222222222222222222222tatic const  47322222222222222222222tatic const  47422222222222222222222tatic const  47522222222222222222222tatic const  47622222222222222222222tatic const  45777777777777777777222tatic const  37877777777777777777222tatic const  37977777777777777777222tatic const u64 u64  481};
 48077777222tatic const u64  481};
 47167"> 467ef">u64 u64 u64 u64  481};
 382}"> 481};
 383/* Setup the de};
 481};
 484ef">u64 u64 u64 u64 u64  481};
 485for (tatic const  47622222222ef">u64 u64 u64 u64  481};
 45777777777ef">u64 u64 u64  467] &e73df] ^/a>[256] = {
 37877777777777777777222tatic const  37977777777777777777222tatic const  48077777222777777777222tatic const  47167"> 467777777777222tatic const  47222222222222222222222tatic const  47322222222222222222222tatic const  47422222222222222222222tatic const  481};
 495}"> 481};
 466ef">u64 u64 u64 u64 u64  481};
 481};
 498return 01"> 481};
 481};
 481};
 481};
 48voidstatic const static const u64 u64  481};
 47322222222tatic const exas="s)"> 481};
 5053static const exas="s1"> 481};
 466ef">u64  481};
 407in>static const  481};
 508tatic const u64 ef="+code=u64" cs3">e="L41"> 481};
 481};
 510ef">u64 ef="+code=u64" cs3">e="L45=sef">u64 u64  481};
 481};
 412for (tatic const  47322222222tatic const ef="+code=u64" cs3">e="L45=sef">u64 ef="+code=u64" cs3">e="L45>> 56)7"> 467] ^/a>[256] = {
 4742222222222222222tatic const ef="+code=u64" cs3">e="L45>> 48) &e73df] ^/a>[256] = {
 4752222222222222222tatic const ef="+code=u64" cs3">e="L45>> 40) &e73df] ^/a>[256] = {
 4762222222222222222tatic const ef="+code=u64" cs3">e="L45>> 32) &e73df] ^/a>[256] = {
 4577777777777777777tatic const ef="+code=u64" cs3">e="L45>> 24) &e73df] ^/a>[256] = {
 3787777777777777777tatic const ef="+code=u64" cs3">e="L45>> 16) &e73df] ^/a>[256] = {
 3797777777777777777tatic const ef="+code=u64" cs3">e="L45>>  8) &e73df] ^/a>[256] = {
 4807777722277777777tatic const ef="+code=u64" cs3">e="L4555555) &e73df] ^/a>[256] = {
 47167"> 46777777777ef">u64 u64  481};
 382}"> 481};
 481};
 484ef">u64 ef="+code=u64" cs3">e="L45=s(tatic const ef="+code=u64" cs3">e="L45>> 56)7"> 467] &e73df        0x0000000) ^/a>[256] = {
 47522222222(tatic const ef="+code=u64" cs3">e="L45>> 48) &e73df] &e7300df        0x00000) ^/a>[256] = {
 47622222222(tatic const ef="+code=u64" cs3">e="L45>> 40) &e73df] &e730000df        0x000) ^/a>[256] = {
 45777777777(tatic const ef="+code=u64" cs3">e="L45>> 32) &e73df] &e73000000df        000) ^/a>[256] = {
 37877777777(tatic const ef="+code=u64" cs3">e="L45>> 24) &e73df] &e7300000000df      000) ^/a>[256] = {
 37977777777(tatic const ef="+code=u64" cs3">e="L45>> 16) &e73df] &e730000000000df    000) ^/a>[256] = {
 48077777222(tatic const ef="+code=u64" cs3">e="L45>>  8) &e73df] &e73000000000000df  000) ^/a>[256] = {
 47167"> 467(tatic const ef="+code=u64" cs3">e="L4555555) &e73df] &e7300000000000000df000) ^/a>[256] = {
 47222222222ef">u64 u64  481};
 481};
 434*tatic const ef="+code=u64" cs3">e="L4)1"> 481};
 481};
 481};
 48voidstatic const static const  481};
 459struc>static const  481};
 510ef">u64 u64 u64  481};
 481};
 481};
 48voidstatic const static const  481};
 445struc>static const  481};
 466ef">u64 u64 u64  481};
 481};
 481};
 48struc>static const u64 [256] = {
 510.tatic const  4722222222=6"> 466espan5" id="Lstring">"ref="c" 481};
 451.tatic const  472222222=6"> 466eatic const  481};
 452.tatic const  47222=6"> 466eatic const  481};
 453.tatic const  4722222=6"> 466sizsof (struc>static const  481};
 453.tatic const  47222=6"> 4667,"> 481};
 453.tatic const  47222222=6"> 466eatic const  481};
 453.tatic const  47167"> 46777=6"> 466{3.tatic const  457.tatic const  457=6"> 466eatic const  481};
 457.tatic const  457=6"> 466eatic const  481};
 459.tatic const  47222222=6"> 466eatic const  481};
 510.tatic const  4722222=6"> 466tatic const  481};
 451.tatic const  4722222=6"> 466tatic const  481};
 481};
 481};
 48in>static const u64  481};
 466in>static const  481};
 467"> 481};
 508tatic const u64  481};
 469return tatic const  481};
 481};
 481};
 48voidstatic const u64  481};
 484ef">u64 u64  481};
 481};
 481};
 481};
u64 u64  481};
u64 u64  481};
 481};
u64 "GPL" 481};
u64 "Kef="c C;
 481};

The original LXR software by the > 481http://sourceforge.net/projects/lxr">LXR communiay="L4, this experimental version by > 481mailto:lxr@483ux.no">lxr@483ux.no="L4.
lxr.483ux.no kindly hosted by > 481http://www.redpill-483pro.no">Redpill L83pro AS="L4, provider of L83ux83