root/missing/des_tables.c

/* [previous][next][first][last][top][bottom][index][help] */
#ifndef HAVE_DES_TABLES

/* Initial key schedule permutation */
static const C_block    PC1ROT[64/CHUNKBITS][1<<CHUNKBITS] = {
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  1,  0,  0,  0,  0,  0,}},
                {{  0,  0,  1,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  1,  0,  0,  0,  0,}},
                {{  0,  0,  0,  1,  0,  0,  0,  0,}},
                {{  0,  0,  1,  1,  0,  0,  0,  0,}},
                {{  0,  0,  1,  1,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0, 16,  0,  0,}},
                {{  0,  0,  0,  0,  0, 16,  0,  0,}},
                {{  0,  0,  1,  0,  0, 16,  0,  0,}},
                {{  0,  0,  1,  0,  0, 16,  0,  0,}},
                {{  0,  0,  0,  1,  0, 16,  0,  0,}},
                {{  0,  0,  0,  1,  0, 16,  0,  0,}},
                {{  0,  0,  1,  1,  0, 16,  0,  0,}},
                {{  0,  0,  1,  1,  0, 16,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,128,  0,  0,  0,}},
                {{  0,  0,  4,  0,  0,  0,  0,  0,}},
                {{  0,  0,  4,  0,128,  0,  0,  0,}},
                {{  0, 16,  0,  0,  0,  0,  0,  0,}},
                {{  0, 16,  0,  0,128,  0,  0,  0,}},
                {{  0, 16,  4,  0,  0,  0,  0,  0,}},
                {{  0, 16,  4,  0,128,  0,  0,  0,}},
                {{  0,  0,  0,  8,  0,  0,  0,  0,}},
                {{  0,  0,  0,  8,128,  0,  0,  0,}},
                {{  0,  0,  4,  8,  0,  0,  0,  0,}},
                {{  0,  0,  4,  8,128,  0,  0,  0,}},
                {{  0, 16,  0,  8,  0,  0,  0,  0,}},
                {{  0, 16,  0,  8,128,  0,  0,  0,}},
                {{  0, 16,  4,  8,  0,  0,  0,  0,}},
                {{  0, 16,  4,  8,128,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0, 64,  0,}},
                {{  0,  0,  0,  0,  0,  0, 64,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  8,}},
                {{  0,  0,  0,  0,  0,  0,  0,  8,}},
                {{  0,  0,  0,  0,  0,  0, 64,  8,}},
                {{  0,  0,  0,  0,  0,  0, 64,  8,}},
                {{  0,  0,  0,  0,  0,  0,  0, 16,}},
                {{  0,  0,  0,  0,  0,  0,  0, 16,}},
                {{  0,  0,  0,  0,  0,  0, 64, 16,}},
                {{  0,  0,  0,  0,  0,  0, 64, 16,}},
                {{  0,  0,  0,  0,  0,  0,  0, 24,}},
                {{  0,  0,  0,  0,  0,  0,  0, 24,}},
                {{  0,  0,  0,  0,  0,  0, 64, 24,}},
                {{  0,  0,  0,  0,  0,  0, 64, 24,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  2,  0,  0,  0,  0,}},
                {{  0,  1,  0,  0,  0,  0,  0,  0,}},
                {{  0,  1,  0,  2,  0,  0,  0,  0,}},
                {{  4,  0,  0,  0,  0,  0,  0,  0,}},
                {{  4,  0,  0,  2,  0,  0,  0,  0,}},
                {{  4,  1,  0,  0,  0,  0,  0,  0,}},
                {{  4,  1,  0,  2,  0,  0,  0,  0,}},
                {{  0, 32,  0,  0,  0,  0,  0,  0,}},
                {{  0, 32,  0,  2,  0,  0,  0,  0,}},
                {{  0, 33,  0,  0,  0,  0,  0,  0,}},
                {{  0, 33,  0,  2,  0,  0,  0,  0,}},
                {{  4, 32,  0,  0,  0,  0,  0,  0,}},
                {{  4, 32,  0,  2,  0,  0,  0,  0,}},
                {{  4, 33,  0,  0,  0,  0,  0,  0,}},
                {{  4, 33,  0,  2,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0, 64,  0,  0,}},
                {{  0,  0,  0,  0,  0, 64,  0,  0,}},
                {{  0,  0,  0,  0,  4,  0,  0,  0,}},
                {{  0,  0,  0,  0,  4,  0,  0,  0,}},
                {{  0,  0,  0,  0,  4, 64,  0,  0,}},
                {{  0,  0,  0,  0,  4, 64,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  8,  0,}},
                {{  0,  0,  0,  0,  0,  0,  8,  0,}},
                {{  0,  0,  0,  0,  0, 64,  8,  0,}},
                {{  0,  0,  0,  0,  0, 64,  8,  0,}},
                {{  0,  0,  0,  0,  4,  0,  8,  0,}},
                {{  0,  0,  0,  0,  4,  0,  8,  0,}},
                {{  0,  0,  0,  0,  4, 64,  8,  0,}},
                {{  0,  0,  0,  0,  4, 64,  8,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,128,  0,}},
                {{  0, 64,  0,  0,  0,  0,  0,  0,}},
                {{  0, 64,  0,  0,  0,  0,128,  0,}},
                {{  0,  0,  0, 64,  0,  0,  0,  0,}},
                {{  0,  0,  0, 64,  0,  0,128,  0,}},
                {{  0, 64,  0, 64,  0,  0,  0,  0,}},
                {{  0, 64,  0, 64,  0,  0,128,  0,}},
                {{128,  0,  0,  0,  0,  0,  0,  0,}},
                {{128,  0,  0,  0,  0,  0,128,  0,}},
                {{128, 64,  0,  0,  0,  0,  0,  0,}},
                {{128, 64,  0,  0,  0,  0,128,  0,}},
                {{128,  0,  0, 64,  0,  0,  0,  0,}},
                {{128,  0,  0, 64,  0,  0,128,  0,}},
                {{128, 64,  0, 64,  0,  0,  0,  0,}},
                {{128, 64,  0, 64,  0,  0,128,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,128,}},
                {{  0,  0,  0,  0,  0,  0,  0,128,}},
                {{  0,  0,  0,  0,  0,  8,  0,  0,}},
                {{  0,  0,  0,  0,  0,  8,  0,  0,}},
                {{  0,  0,  0,  0,  0,  8,  0,128,}},
                {{  0,  0,  0,  0,  0,  8,  0,128,}},
                {{  0,  0,  0,  0,  0,128,  0,  0,}},
                {{  0,  0,  0,  0,  0,128,  0,  0,}},
                {{  0,  0,  0,  0,  0,128,  0,128,}},
                {{  0,  0,  0,  0,  0,128,  0,128,}},
                {{  0,  0,  0,  0,  0,136,  0,  0,}},
                {{  0,  0,  0,  0,  0,136,  0,  0,}},
                {{  0,  0,  0,  0,  0,136,  0,128,}},
                {{  0,  0,  0,  0,  0,136,  0,128,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  8,  0,  0,  0,}},
                {{  0,  0,  0, 32,  0,  0,  0,  0,}},
                {{  0,  0,  0, 32,  8,  0,  0,  0,}},
                {{  0,  0, 16,  0,  0,  0,  0,  0,}},
                {{  0,  0, 16,  0,  8,  0,  0,  0,}},
                {{  0,  0, 16, 32,  0,  0,  0,  0,}},
                {{  0,  0, 16, 32,  8,  0,  0,  0,}},
                {{  0,  0, 32,  0,  0,  0,  0,  0,}},
                {{  0,  0, 32,  0,  8,  0,  0,  0,}},
                {{  0,  0, 32, 32,  0,  0,  0,  0,}},
                {{  0,  0, 32, 32,  8,  0,  0,  0,}},
                {{  0,  0, 48,  0,  0,  0,  0,  0,}},
                {{  0,  0, 48,  0,  8,  0,  0,  0,}},
                {{  0,  0, 48, 32,  0,  0,  0,  0,}},
                {{  0,  0, 48, 32,  8,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0, 16,  0,  0,  0,}},
                {{  0,  0,  0,  0, 16,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                {{  0,  0,  0,  0, 16,  0, 16,  0,}},
                {{  0,  0,  0,  0, 16,  0, 16,  0,}},
                {{  0,  0,  0,  0, 64,  0,  0,  0,}},
                {{  0,  0,  0,  0, 64,  0,  0,  0,}},
                {{  0,  0,  0,  0, 80,  0,  0,  0,}},
                {{  0,  0,  0,  0, 80,  0,  0,  0,}},
                {{  0,  0,  0,  0, 64,  0, 16,  0,}},
                {{  0,  0,  0,  0, 64,  0, 16,  0,}},
                {{  0,  0,  0,  0, 80,  0, 16,  0,}},
                {{  0,  0,  0,  0, 80,  0, 16,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0, 16,  0,  0,  0,  0,}},
                {{  0,  0,  8,  0,  0,  0,  0,  0,}},
                {{  0,  0,  8, 16,  0,  0,  0,  0,}},
                {{ 16,  0,  0,  0,  0,  0,  0,  0,}},
                {{ 16,  0,  0, 16,  0,  0,  0,  0,}},
                {{ 16,  0,  8,  0,  0,  0,  0,  0,}},
                {{ 16,  0,  8, 16,  0,  0,  0,  0,}},
                {{  0,  4,  0,  0,  0,  0,  0,  0,}},
                {{  0,  4,  0, 16,  0,  0,  0,  0,}},
                {{  0,  4,  8,  0,  0,  0,  0,  0,}},
                {{  0,  4,  8, 16,  0,  0,  0,  0,}},
                {{ 16,  4,  0,  0,  0,  0,  0,  0,}},
                {{ 16,  4,  0, 16,  0,  0,  0,  0,}},
                {{ 16,  4,  8,  0,  0,  0,  0,  0,}},
                {{ 16,  4,  8, 16,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  4,  0,  0,}},
                {{  0,  0,  0,  0,  0,  4,  0,  0,}},
                {{  0,  0,  2,  0,  0,  0,  0,  0,}},
                {{  0,  0,  2,  0,  0,  0,  0,  0,}},
                {{  0,  0,  2,  0,  0,  4,  0,  0,}},
                {{  0,  0,  2,  0,  0,  4,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  4,}},
                {{  0,  0,  0,  0,  0,  0,  0,  4,}},
                {{  0,  0,  0,  0,  0,  4,  0,  4,}},
                {{  0,  0,  0,  0,  0,  4,  0,  4,}},
                {{  0,  0,  2,  0,  0,  0,  0,  4,}},
                {{  0,  0,  2,  0,  0,  0,  0,  4,}},
                {{  0,  0,  2,  0,  0,  4,  0,  4,}},
                {{  0,  0,  2,  0,  0,  4,  0,  4,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0, 64,  0,  0,  0,  0,  0,}},
                {{  2,  0,  0,  0,  0,  0,  0,  0,}},
                {{  2,  0, 64,  0,  0,  0,  0,  0,}},
                {{  0,128,  0,  0,  0,  0,  0,  0,}},
                {{  0,128, 64,  0,  0,  0,  0,  0,}},
                {{  2,128,  0,  0,  0,  0,  0,  0,}},
                {{  2,128, 64,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,128,  0,  0,  0,  0,}},
                {{  0,  0, 64,128,  0,  0,  0,  0,}},
                {{  2,  0,  0,128,  0,  0,  0,  0,}},
                {{  2,  0, 64,128,  0,  0,  0,  0,}},
                {{  0,128,  0,128,  0,  0,  0,  0,}},
                {{  0,128, 64,128,  0,  0,  0,  0,}},
                {{  2,128,  0,128,  0,  0,  0,  0,}},
                {{  2,128, 64,128,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0, 64,}},
                {{  0,  0,  0,  0,  0,  0,  0, 64,}},
                {{  0,  0,  0,  0, 32,  0,  0,  0,}},
                {{  0,  0,  0,  0, 32,  0,  0,  0,}},
                {{  0,  0,  0,  0, 32,  0,  0, 64,}},
                {{  0,  0,  0,  0, 32,  0,  0, 64,}},
                {{  0,  0,  0,  0,  0, 32,  0,  0,}},
                {{  0,  0,  0,  0,  0, 32,  0,  0,}},
                {{  0,  0,  0,  0,  0, 32,  0, 64,}},
                {{  0,  0,  0,  0,  0, 32,  0, 64,}},
                {{  0,  0,  0,  0, 32, 32,  0,  0,}},
                {{  0,  0,  0,  0, 32, 32,  0,  0,}},
                {{  0,  0,  0,  0, 32, 32,  0, 64,}},
                {{  0,  0,  0,  0, 32, 32,  0, 64,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  2,  0,  0,  0,  0,  0,  0,}},
                {{  8,  0,  0,  0,  0,  0,  0,  0,}},
                {{  8,  2,  0,  0,  0,  0,  0,  0,}},
                {{  1,  0,  0,  0,  0,  0,  0,  0,}},
                {{  1,  2,  0,  0,  0,  0,  0,  0,}},
                {{  9,  0,  0,  0,  0,  0,  0,  0,}},
                {{  9,  2,  0,  0,  0,  0,  0,  0,}},
                {{ 64,  0,  0,  0,  0,  0,  0,  0,}},
                {{ 64,  2,  0,  0,  0,  0,  0,  0,}},
                {{ 72,  0,  0,  0,  0,  0,  0,  0,}},
                {{ 72,  2,  0,  0,  0,  0,  0,  0,}},
                {{ 65,  0,  0,  0,  0,  0,  0,  0,}},
                {{ 65,  2,  0,  0,  0,  0,  0,  0,}},
                {{ 73,  0,  0,  0,  0,  0,  0,  0,}},
                {{ 73,  2,  0,  0,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0, 32,  0,}},
                {{  0,  0,  0,  0,  0,  0, 32,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0, 32,}},
                {{  0,  0,  0,  0,  0,  0,  0, 32,}},
                {{  0,  0,  0,  0,  0,  0, 32, 32,}},
                {{  0,  0,  0,  0,  0,  0, 32, 32,}},
                {{  0,  0,  0,  0,  0,  0,  4,  0,}},
                {{  0,  0,  0,  0,  0,  0,  4,  0,}},
                {{  0,  0,  0,  0,  0,  0, 36,  0,}},
                {{  0,  0,  0,  0,  0,  0, 36,  0,}},
                {{  0,  0,  0,  0,  0,  0,  4, 32,}},
                {{  0,  0,  0,  0,  0,  0,  4, 32,}},
                {{  0,  0,  0,  0,  0,  0, 36, 32,}},
                {{  0,  0,  0,  0,  0,  0, 36, 32,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{ 32,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  4,  0,  0,  0,  0,}},
                {{ 32,  0,  0,  4,  0,  0,  0,  0,}},
                {{  0,  0,128,  0,  0,  0,  0,  0,}},
                {{ 32,  0,128,  0,  0,  0,  0,  0,}},
                {{  0,  0,128,  4,  0,  0,  0,  0,}},
                {{ 32,  0,128,  4,  0,  0,  0,  0,}},
                {{  0,  8,  0,  0,  0,  0,  0,  0,}},
                {{ 32,  8,  0,  0,  0,  0,  0,  0,}},
                {{  0,  8,  0,  4,  0,  0,  0,  0,}},
                {{ 32,  8,  0,  4,  0,  0,  0,  0,}},
                {{  0,  8,128,  0,  0,  0,  0,  0,}},
                {{ 32,  8,128,  0,  0,  0,  0,  0,}},
                {{  0,  8,128,  4,  0,  0,  0,  0,}},
                {{ 32,  8,128,  4,  0,  0,  0,  0,}},
        },
};

/* Subsequent key schedule rotation permutations */
static const C_block    PC2ROT[2][64/CHUNKBITS][1<<CHUNKBITS] = {
        {
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,128,  0,  0,  0,  0,  0,}},
                        {{  8,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  8,  0,128,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0, 64,  0,  0,  0,  0,}},
                        {{  0,  0,128, 64,  0,  0,  0,  0,}},
                        {{  8,  0,  0, 64,  0,  0,  0,  0,}},
                        {{  8,  0,128, 64,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  4,  0,  0,  0,  0,}},
                        {{  0,  0,128,  4,  0,  0,  0,  0,}},
                        {{  8,  0,  0,  4,  0,  0,  0,  0,}},
                        {{  8,  0,128,  4,  0,  0,  0,  0,}},
                        {{  0,  0,  0, 68,  0,  0,  0,  0,}},
                        {{  0,  0,128, 68,  0,  0,  0,  0,}},
                        {{  8,  0,  0, 68,  0,  0,  0,  0,}},
                        {{  8,  0,128, 68,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,128,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  4,  0,  0,  0,  0,  0,}},
                        {{  0,128,  4,  0,  0,  0,  0,  0,}},
                        {{  0,  8,  0,  0,  0,  0,  0,  0,}},
                        {{  0,136,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  8,  4,  0,  0,  0,  0,  0,}},
                        {{  0,136,  4,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 32,  0,  0,  0,  0,  0,}},
                        {{  0,128, 32,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 36,  0,  0,  0,  0,  0,}},
                        {{  0,128, 36,  0,  0,  0,  0,  0,}},
                        {{  0,  8, 32,  0,  0,  0,  0,  0,}},
                        {{  0,136, 32,  0,  0,  0,  0,  0,}},
                        {{  0,  8, 36,  0,  0,  0,  0,  0,}},
                        {{  0,136, 36,  0,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0, 64,  0,  0,  0,  0,  0,  0,}},
                        {{ 32,  0,  0,  0,  0,  0,  0,  0,}},
                        {{ 32, 64,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,128,  0,  0,  0,  0,}},
                        {{  0, 64,  0,128,  0,  0,  0,  0,}},
                        {{ 32,  0,  0,128,  0,  0,  0,  0,}},
                        {{ 32, 64,  0,128,  0,  0,  0,  0,}},
                        {{  0,  0,  0, 16,  0,  0,  0,  0,}},
                        {{  0, 64,  0, 16,  0,  0,  0,  0,}},
                        {{ 32,  0,  0, 16,  0,  0,  0,  0,}},
                        {{ 32, 64,  0, 16,  0,  0,  0,  0,}},
                        {{  0,  0,  0,144,  0,  0,  0,  0,}},
                        {{  0, 64,  0,144,  0,  0,  0,  0,}},
                        {{ 32,  0,  0,144,  0,  0,  0,  0,}},
                        {{ 32, 64,  0,144,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  4,  0,  0,  0,  0,  0,  0,  0,}},
                        {{128,  0,  0,  0,  0,  0,  0,  0,}},
                        {{132,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0, 32,  0,  0,  0,  0,}},
                        {{  4,  0,  0, 32,  0,  0,  0,  0,}},
                        {{128,  0,  0, 32,  0,  0,  0,  0,}},
                        {{132,  0,  0, 32,  0,  0,  0,  0,}},
                        {{  1,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  5,  0,  0,  0,  0,  0,  0,  0,}},
                        {{129,  0,  0,  0,  0,  0,  0,  0,}},
                        {{133,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  1,  0,  0, 32,  0,  0,  0,  0,}},
                        {{  5,  0,  0, 32,  0,  0,  0,  0,}},
                        {{129,  0,  0, 32,  0,  0,  0,  0,}},
                        {{133,  0,  0, 32,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 64,  0,}},
                        {{  0,  0,  0,  0, 32,  0,  0,  0,}},
                        {{  0,  0,  0,  0, 32,  0, 64,  0,}},
                        {{  0,  1,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  1,  0,  0,  0,  0, 64,  0,}},
                        {{  0,  1,  0,  0, 32,  0,  0,  0,}},
                        {{  0,  1,  0,  0, 32,  0, 64,  0,}},
                        {{  2,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  2,  0,  0,  0,  0,  0, 64,  0,}},
                        {{  2,  0,  0,  0, 32,  0,  0,  0,}},
                        {{  2,  0,  0,  0, 32,  0, 64,  0,}},
                        {{  2,  1,  0,  0,  0,  0,  0,  0,}},
                        {{  2,  1,  0,  0,  0,  0, 64,  0,}},
                        {{  2,  1,  0,  0, 32,  0,  0,  0,}},
                        {{  2,  1,  0,  0, 32,  0, 64,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{ 16,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  4,  0,  0,  0,  0,  0,  0,}},
                        {{ 16,  4,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  2,  0,  0,  0,  0,  0,  0,}},
                        {{ 16,  2,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  6,  0,  0,  0,  0,  0,  0,}},
                        {{ 16,  6,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  8,  0,  0,  0,  0,}},
                        {{ 16,  0,  0,  8,  0,  0,  0,  0,}},
                        {{  0,  4,  0,  8,  0,  0,  0,  0,}},
                        {{ 16,  4,  0,  8,  0,  0,  0,  0,}},
                        {{  0,  2,  0,  8,  0,  0,  0,  0,}},
                        {{ 16,  2,  0,  8,  0,  0,  0,  0,}},
                        {{  0,  6,  0,  8,  0,  0,  0,  0,}},
                        {{ 16,  6,  0,  8,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  8,}},
                        {{  0,  0,  0,  0,  0,  0,128,  0,}},
                        {{  0,  0,  0,  0,  0,  0,128,  8,}},
                        {{  0, 16,  0,  0,  0,  0,  0,  0,}},
                        {{  0, 16,  0,  0,  0,  0,  0,  8,}},
                        {{  0, 16,  0,  0,  0,  0,128,  0,}},
                        {{  0, 16,  0,  0,  0,  0,128,  8,}},
                        {{  0, 32,  0,  0,  0,  0,  0,  0,}},
                        {{  0, 32,  0,  0,  0,  0,  0,  8,}},
                        {{  0, 32,  0,  0,  0,  0,128,  0,}},
                        {{  0, 32,  0,  0,  0,  0,128,  8,}},
                        {{  0, 48,  0,  0,  0,  0,  0,  0,}},
                        {{  0, 48,  0,  0,  0,  0,  0,  8,}},
                        {{  0, 48,  0,  0,  0,  0,128,  0,}},
                        {{  0, 48,  0,  0,  0,  0,128,  8,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 64,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  8,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 72,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 16,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 80,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 24,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 88,  0,  0,  0,  0,  0,}},
                        {{ 64,  0,  0,  0,  0,  0,  0,  0,}},
                        {{ 64,  0, 64,  0,  0,  0,  0,  0,}},
                        {{ 64,  0,  8,  0,  0,  0,  0,  0,}},
                        {{ 64,  0, 72,  0,  0,  0,  0,  0,}},
                        {{ 64,  0, 16,  0,  0,  0,  0,  0,}},
                        {{ 64,  0, 80,  0,  0,  0,  0,  0,}},
                        {{ 64,  0, 24,  0,  0,  0,  0,  0,}},
                        {{ 64,  0, 88,  0,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 16,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 16,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 16,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 16,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 24,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 24,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 24,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 24,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  4,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 32,}},
                        {{  0,  0,  0,  0,  0,  4,  0, 32,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  4,}},
                        {{  0,  0,  0,  0,  0,  4,  0,  4,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 36,}},
                        {{  0,  0,  0,  0,  0,  4,  0, 36,}},
                        {{  0,  0,  0,  2,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  2,  0,  4,  0,  0,}},
                        {{  0,  0,  0,  2,  0,  0,  0, 32,}},
                        {{  0,  0,  0,  2,  0,  4,  0, 32,}},
                        {{  0,  0,  0,  2,  0,  0,  0,  4,}},
                        {{  0,  0,  0,  2,  0,  4,  0,  4,}},
                        {{  0,  0,  0,  2,  0,  0,  0, 36,}},
                        {{  0,  0,  0,  2,  0,  4,  0, 36,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 64,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 64,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 64,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 64,}},
                        {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 16, 64,}},
                        {{  0,  0,  0,  0,  0,  0, 16, 64,}},
                        {{  0,  0,  0,  0,  0,  0, 16, 64,}},
                        {{  0,  0,  0,  0,  0,  0, 16, 64,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 16,}},
                        {{  0,  0,  0,  0,  0,  0,  4,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  4, 16,}},
                        {{  0,  0,  0,  0,  0,  0,  0,128,}},
                        {{  0,  0,  0,  0,  0,  0,  0,144,}},
                        {{  0,  0,  0,  0,  0,  0,  4,128,}},
                        {{  0,  0,  0,  0,  0,  0,  4,144,}},
                        {{  0,  0,  0,  0, 64,  0,  0,  0,}},
                        {{  0,  0,  0,  0, 64,  0,  0, 16,}},
                        {{  0,  0,  0,  0, 64,  0,  4,  0,}},
                        {{  0,  0,  0,  0, 64,  0,  4, 16,}},
                        {{  0,  0,  0,  0, 64,  0,  0,128,}},
                        {{  0,  0,  0,  0, 64,  0,  0,144,}},
                        {{  0,  0,  0,  0, 64,  0,  4,128,}},
                        {{  0,  0,  0,  0, 64,  0,  4,144,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  1,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  1,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  1,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  1,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,128,  0,  0,}},
                        {{  0,  0,  0,  0,  0,128,  0,  0,}},
                        {{  0,  0,  0,  0,  0,128,  0,  0,}},
                        {{  0,  0,  0,  0,  0,128,  0,  0,}},
                        {{  0,  0,  0,  1,  0,128,  0,  0,}},
                        {{  0,  0,  0,  1,  0,128,  0,  0,}},
                        {{  0,  0,  0,  1,  0,128,  0,  0,}},
                        {{  0,  0,  0,  1,  0,128,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  2,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,128,  0,  0,  0,}},
                        {{  0,  0,  2,  0,128,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 64,  0,  0,}},
                        {{  0,  0,  2,  0,  0, 64,  0,  0,}},
                        {{  0,  0,  0,  0,128, 64,  0,  0,}},
                        {{  0,  0,  2,  0,128, 64,  0,  0,}},
                        {{  0,  0,  0,  0,  8,  0,  0,  0,}},
                        {{  0,  0,  2,  0,  8,  0,  0,  0,}},
                        {{  0,  0,  0,  0,136,  0,  0,  0,}},
                        {{  0,  0,  2,  0,136,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  8, 64,  0,  0,}},
                        {{  0,  0,  2,  0,  8, 64,  0,  0,}},
                        {{  0,  0,  0,  0,136, 64,  0,  0,}},
                        {{  0,  0,  2,  0,136, 64,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 32,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 32,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 32,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 32,  0,  0,}},
                        {{  0,  0,  0,  0,  4,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  4,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  4,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  4,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  4, 32,  0,  0,}},
                        {{  0,  0,  0,  0,  4, 32,  0,  0,}},
                        {{  0,  0,  0,  0,  4, 32,  0,  0,}},
                        {{  0,  0,  0,  0,  4, 32,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  8,  0,}},
                        {{  0,  0,  1,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  1,  0,  0,  0,  8,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 32,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 40,  0,}},
                        {{  0,  0,  1,  0,  0,  0, 32,  0,}},
                        {{  0,  0,  1,  0,  0,  0, 40,  0,}},
                        {{  0,  0,  0,  0, 16,  0,  0,  0,}},
                        {{  0,  0,  0,  0, 16,  0,  8,  0,}},
                        {{  0,  0,  1,  0, 16,  0,  0,  0,}},
                        {{  0,  0,  1,  0, 16,  0,  8,  0,}},
                        {{  0,  0,  0,  0, 16,  0, 32,  0,}},
                        {{  0,  0,  0,  0, 16,  0, 40,  0,}},
                        {{  0,  0,  1,  0, 16,  0, 32,  0,}},
                        {{  0,  0,  1,  0, 16,  0, 40,  0,}},
                },
        },
        {
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  8,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  4,  0,  0,  0,  0,}},
                        {{  0,  0,  0, 12,  0,  0,  0,  0,}},
                        {{  0,  0, 16,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 16,  8,  0,  0,  0,  0,}},
                        {{  0,  0, 16,  4,  0,  0,  0,  0,}},
                        {{  0,  0, 16, 12,  0,  0,  0,  0,}},
                        {{  0, 16,  0,  0,  0,  0,  0,  0,}},
                        {{  0, 16,  0,  8,  0,  0,  0,  0,}},
                        {{  0, 16,  0,  4,  0,  0,  0,  0,}},
                        {{  0, 16,  0, 12,  0,  0,  0,  0,}},
                        {{  0, 16, 16,  0,  0,  0,  0,  0,}},
                        {{  0, 16, 16,  8,  0,  0,  0,  0,}},
                        {{  0, 16, 16,  4,  0,  0,  0,  0,}},
                        {{  0, 16, 16, 12,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  1,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  1,  0,  0,  0,  0,  0,  0,}},
                        {{  1,  1,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0, 16,  0,  0,  0,  0,}},
                        {{  1,  0,  0, 16,  0,  0,  0,  0,}},
                        {{  0,  1,  0, 16,  0,  0,  0,  0,}},
                        {{  1,  1,  0, 16,  0,  0,  0,  0,}},
                        {{  0,  4,  0,  0,  0,  0,  0,  0,}},
                        {{  1,  4,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  5,  0,  0,  0,  0,  0,  0,}},
                        {{  1,  5,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  4,  0, 16,  0,  0,  0,  0,}},
                        {{  1,  4,  0, 16,  0,  0,  0,  0,}},
                        {{  0,  5,  0, 16,  0,  0,  0,  0,}},
                        {{  1,  5,  0, 16,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0, 32,  0,  0,  0,  0,}},
                        {{  0,  0,  4,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  4, 32,  0,  0,  0,  0,}},
                        {{ 64,  0,  0,  0,  0,  0,  0,  0,}},
                        {{ 64,  0,  0, 32,  0,  0,  0,  0,}},
                        {{ 64,  0,  4,  0,  0,  0,  0,  0,}},
                        {{ 64,  0,  4, 32,  0,  0,  0,  0,}},
                        {{  0,  0, 64,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 64, 32,  0,  0,  0,  0,}},
                        {{  0,  0, 68,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 68, 32,  0,  0,  0,  0,}},
                        {{ 64,  0, 64,  0,  0,  0,  0,  0,}},
                        {{ 64,  0, 64, 32,  0,  0,  0,  0,}},
                        {{ 64,  0, 68,  0,  0,  0,  0,  0,}},
                        {{ 64,  0, 68, 32,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0, 64,  0,  0,  0,  0,}},
                        {{  0,  0, 32,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 32, 64,  0,  0,  0,  0,}},
                        {{  0,  0,  8,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  8, 64,  0,  0,  0,  0,}},
                        {{  0,  0, 40,  0,  0,  0,  0,  0,}},
                        {{  0,  0, 40, 64,  0,  0,  0,  0,}},
                        {{  0,  0,128,  0,  0,  0,  0,  0,}},
                        {{  0,  0,128, 64,  0,  0,  0,  0,}},
                        {{  0,  0,160,  0,  0,  0,  0,  0,}},
                        {{  0,  0,160, 64,  0,  0,  0,  0,}},
                        {{  0,  0,136,  0,  0,  0,  0,  0,}},
                        {{  0,  0,136, 64,  0,  0,  0,  0,}},
                        {{  0,  0,168,  0,  0,  0,  0,  0,}},
                        {{  0,  0,168, 64,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 64,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 32,}},
                        {{  0,  0,  0,  0,  0, 64,  0, 32,}},
                        {{  0, 64,  0,  0,  0,  0,  0,  0,}},
                        {{  0, 64,  0,  0,  0, 64,  0,  0,}},
                        {{  0, 64,  0,  0,  0,  0,  0, 32,}},
                        {{  0, 64,  0,  0,  0, 64,  0, 32,}},
                        {{  8,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  8,  0,  0,  0,  0, 64,  0,  0,}},
                        {{  8,  0,  0,  0,  0,  0,  0, 32,}},
                        {{  8,  0,  0,  0,  0, 64,  0, 32,}},
                        {{  8, 64,  0,  0,  0,  0,  0,  0,}},
                        {{  8, 64,  0,  0,  0, 64,  0,  0,}},
                        {{  8, 64,  0,  0,  0,  0,  0, 32,}},
                        {{  8, 64,  0,  0,  0, 64,  0, 32,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,128,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,128,  0,  0,  0,  0,}},
                        {{  0,128,  0,128,  0,  0,  0,  0,}},
                        {{ 32,  0,  0,  0,  0,  0,  0,  0,}},
                        {{ 32,128,  0,  0,  0,  0,  0,  0,}},
                        {{ 32,  0,  0,128,  0,  0,  0,  0,}},
                        {{ 32,128,  0,128,  0,  0,  0,  0,}},
                        {{  0, 32,  0,  0,  0,  0,  0,  0,}},
                        {{  0,160,  0,  0,  0,  0,  0,  0,}},
                        {{  0, 32,  0,128,  0,  0,  0,  0,}},
                        {{  0,160,  0,128,  0,  0,  0,  0,}},
                        {{ 32, 32,  0,  0,  0,  0,  0,  0,}},
                        {{ 32,160,  0,  0,  0,  0,  0,  0,}},
                        {{ 32, 32,  0,128,  0,  0,  0,  0,}},
                        {{ 32,160,  0,128,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  4,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  8,  0,  0,  0,}},
                        {{  0,  0,  0,  0, 12,  0,  0,  0,}},
                        {{  4,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  4,  0,  0,  0,  4,  0,  0,  0,}},
                        {{  4,  0,  0,  0,  8,  0,  0,  0,}},
                        {{  4,  0,  0,  0, 12,  0,  0,  0,}},
                        {{128,  0,  0,  0,  0,  0,  0,  0,}},
                        {{128,  0,  0,  0,  4,  0,  0,  0,}},
                        {{128,  0,  0,  0,  8,  0,  0,  0,}},
                        {{128,  0,  0,  0, 12,  0,  0,  0,}},
                        {{132,  0,  0,  0,  0,  0,  0,  0,}},
                        {{132,  0,  0,  0,  4,  0,  0,  0,}},
                        {{132,  0,  0,  0,  8,  0,  0,  0,}},
                        {{132,  0,  0,  0, 12,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  2,  0,  0,  0,  0,  0,  0,}},
                        {{  2,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  2,  2,  0,  0,  0,  0,  0,  0,}},
                        {{ 16,  0,  0,  0,  0,  0,  0,  0,}},
                        {{ 16,  2,  0,  0,  0,  0,  0,  0,}},
                        {{ 18,  0,  0,  0,  0,  0,  0,  0,}},
                        {{ 18,  2,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  8,  0,  0,  0,  0,  0,  0,}},
                        {{  0, 10,  0,  0,  0,  0,  0,  0,}},
                        {{  2,  8,  0,  0,  0,  0,  0,  0,}},
                        {{  2, 10,  0,  0,  0,  0,  0,  0,}},
                        {{ 16,  8,  0,  0,  0,  0,  0,  0,}},
                        {{ 16, 10,  0,  0,  0,  0,  0,  0,}},
                        {{ 18,  8,  0,  0,  0,  0,  0,  0,}},
                        {{ 18, 10,  0,  0,  0,  0,  0,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 16,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 16,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 16,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 16,}},
                        {{  0,  0,  0,  0,  0,  0, 16, 16,}},
                        {{  0,  0,  0,  0,  0,  0, 16, 16,}},
                        {{  0,  0,  0,  0,  0,  0, 16, 16,}},
                        {{  0,  0,  0,  0,  0,  0, 16, 16,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0, 64,}},
                        {{  0,  0,  1,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  1,  0,  0,  0,  0, 64,}},
                        {{  0,  0,  0,  0,  0, 32,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 32,  0, 64,}},
                        {{  0,  0,  1,  0,  0, 32,  0,  0,}},
                        {{  0,  0,  1,  0,  0, 32,  0, 64,}},
                        {{  0,  0,  0,  0,  0,  0,128,  0,}},
                        {{  0,  0,  0,  0,  0,  0,128, 64,}},
                        {{  0,  0,  1,  0,  0,  0,128,  0,}},
                        {{  0,  0,  1,  0,  0,  0,128, 64,}},
                        {{  0,  0,  0,  0,  0, 32,128,  0,}},
                        {{  0,  0,  0,  0,  0, 32,128, 64,}},
                        {{  0,  0,  1,  0,  0, 32,128,  0,}},
                        {{  0,  0,  1,  0,  0, 32,128, 64,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 32,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 32,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 32,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 32,  0,}},
                        {{  0,  0,  2,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  2,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  2,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  2,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  2,  0,  0,  0, 32,  0,}},
                        {{  0,  0,  2,  0,  0,  0, 32,  0,}},
                        {{  0,  0,  2,  0,  0,  0, 32,  0,}},
                        {{  0,  0,  2,  0,  0,  0, 32,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  8,  0,}},
                        {{  0,  0,  0,  1,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  1,  0,  0,  8,  0,}},
                        {{  0,  0,  0,  0, 16,  0,  0,  0,}},
                        {{  0,  0,  0,  0, 16,  0,  8,  0,}},
                        {{  0,  0,  0,  1, 16,  0,  0,  0,}},
                        {{  0,  0,  0,  1, 16,  0,  8,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  4,}},
                        {{  0,  0,  0,  0,  0,  0,  8,  4,}},
                        {{  0,  0,  0,  1,  0,  0,  0,  4,}},
                        {{  0,  0,  0,  1,  0,  0,  8,  4,}},
                        {{  0,  0,  0,  0, 16,  0,  0,  4,}},
                        {{  0,  0,  0,  0, 16,  0,  8,  4,}},
                        {{  0,  0,  0,  1, 16,  0,  0,  4,}},
                        {{  0,  0,  0,  1, 16,  0,  8,  4,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  8,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  8,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  8,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  8,}},
                        {{  0,  0,  0,  0, 64,  0,  0,  0,}},
                        {{  0,  0,  0,  0, 64,  0,  0,  0,}},
                        {{  0,  0,  0,  0, 64,  0,  0,  0,}},
                        {{  0,  0,  0,  0, 64,  0,  0,  0,}},
                        {{  0,  0,  0,  0, 64,  0,  0,  8,}},
                        {{  0,  0,  0,  0, 64,  0,  0,  8,}},
                        {{  0,  0,  0,  0, 64,  0,  0,  8,}},
                        {{  0,  0,  0,  0, 64,  0,  0,  8,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0, 32,  0,  0,  0,}},
                        {{  0,  0,  0,  2,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  2, 32,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,128,}},
                        {{  0,  0,  0,  0, 32,  0,  0,128,}},
                        {{  0,  0,  0,  2,  0,  0,  0,128,}},
                        {{  0,  0,  0,  2, 32,  0,  0,128,}},
                        {{  0,  0,  0,  0,  0, 16,  0,  0,}},
                        {{  0,  0,  0,  0, 32, 16,  0,  0,}},
                        {{  0,  0,  0,  2,  0, 16,  0,  0,}},
                        {{  0,  0,  0,  2, 32, 16,  0,  0,}},
                        {{  0,  0,  0,  0,  0, 16,  0,128,}},
                        {{  0,  0,  0,  0, 32, 16,  0,128,}},
                        {{  0,  0,  0,  2,  0, 16,  0,128,}},
                        {{  0,  0,  0,  2, 32, 16,  0,128,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  4,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  4,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  4,  0,}},
                        {{  0,  0,  0,  0,  0,  0,  4,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  4,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  4,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  4,  0,}},
                        {{  0,  0,  0,  0,  0,  8,  4,  0,}},
                },
                {
                        {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                        {{  0,  0,  0,  0,  0,128,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  0, 64,  0,}},
                        {{  0,  0,  0,  0,  0,128, 64,  0,}},
                        {{  0,  0,  0,  0,128,  0,  0,  0,}},
                        {{  0,  0,  0,  0,128,128,  0,  0,}},
                        {{  0,  0,  0,  0,128,  0, 64,  0,}},
                        {{  0,  0,  0,  0,128,128, 64,  0,}},
                        {{  0,  0,  0,  0,  0,  4,  0,  0,}},
                        {{  0,  0,  0,  0,  0,132,  0,  0,}},
                        {{  0,  0,  0,  0,  0,  4, 64,  0,}},
                        {{  0,  0,  0,  0,  0,132, 64,  0,}},
                        {{  0,  0,  0,  0,128,  4,  0,  0,}},
                        {{  0,  0,  0,  0,128,132,  0,  0,}},
                        {{  0,  0,  0,  0,128,  4, 64,  0,}},
                        {{  0,  0,  0,  0,128,132, 64,  0,}},
                },
        },
};

/* Initial permutation/expansion table */
static const C_block    IE3264[32/CHUNKBITS][1<<CHUNKBITS] = {
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0, 64,  4,}},
                {{  4,  0,  0,  0,  0,  0,  0, 64,}},
                {{  4,  0,  0,  0,  0,  0, 64, 68,}},
                {{  0,  0,  0,  0, 64,  4,  0,  0,}},
                {{  0,  0,  0,  0, 64,  4, 64,  4,}},
                {{  4,  0,  0,  0, 64,  4,  0, 64,}},
                {{  4,  0,  0,  0, 64,  4, 64, 68,}},
                {{  0,  0,  0,  0,  0, 64,  4,  0,}},
                {{  0,  0,  0,  0,  0, 64, 68,  4,}},
                {{  4,  0,  0,  0,  0, 64,  4, 64,}},
                {{  4,  0,  0,  0,  0, 64, 68, 68,}},
                {{  0,  0,  0,  0, 64, 68,  4,  0,}},
                {{  0,  0,  0,  0, 64, 68, 68,  4,}},
                {{  4,  0,  0,  0, 64, 68,  4, 64,}},
                {{  4,  0,  0,  0, 64, 68, 68, 68,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0, 64,  4,  0,  0,  0,  0,}},
                {{  0,  0,  0, 64,  4,  0,  0,  0,}},
                {{  0,  0, 64, 68,  4,  0,  0,  0,}},
                {{ 64,  4,  0,  0,  0,  0,  0,  0,}},
                {{ 64,  4, 64,  4,  0,  0,  0,  0,}},
                {{ 64,  4,  0, 64,  4,  0,  0,  0,}},
                {{ 64,  4, 64, 68,  4,  0,  0,  0,}},
                {{  0, 64,  4,  0,  0,  0,  0,  0,}},
                {{  0, 64, 68,  4,  0,  0,  0,  0,}},
                {{  0, 64,  4, 64,  4,  0,  0,  0,}},
                {{  0, 64, 68, 68,  4,  0,  0,  0,}},
                {{ 64, 68,  4,  0,  0,  0,  0,  0,}},
                {{ 64, 68, 68,  4,  0,  0,  0,  0,}},
                {{ 64, 68,  4, 64,  4,  0,  0,  0,}},
                {{ 64, 68, 68, 68,  4,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0, 32,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0, 32,}},
                {{  0,  0,  0,  0,  0,  0, 32, 32,}},
                {{  0,  0,  0,  0, 32,  0,  0,  0,}},
                {{  0,  0,  0,  0, 32,  0, 32,  0,}},
                {{  0,  0,  0,  0, 32,  0,  0, 32,}},
                {{  0,  0,  0,  0, 32,  0, 32, 32,}},
                {{  0,  0,  0,  0,  0, 32,  0,  0,}},
                {{  0,  0,  0,  0,  0, 32, 32,  0,}},
                {{  0,  0,  0,  0,  0, 32,  0, 32,}},
                {{  0,  0,  0,  0,  0, 32, 32, 32,}},
                {{  0,  0,  0,  0, 32, 32,  0,  0,}},
                {{  0,  0,  0,  0, 32, 32, 32,  0,}},
                {{  0,  0,  0,  0, 32, 32,  0, 32,}},
                {{  0,  0,  0,  0, 32, 32, 32, 32,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0, 32,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0, 32,  0,  0,  0,  0,}},
                {{  0,  0, 32, 32,  0,  0,  0,  0,}},
                {{ 32,  0,  0,  0,  0,  0,  0,  0,}},
                {{ 32,  0, 32,  0,  0,  0,  0,  0,}},
                {{ 32,  0,  0, 32,  0,  0,  0,  0,}},
                {{ 32,  0, 32, 32,  0,  0,  0,  0,}},
                {{  0, 32,  0,  0,  0,  0,  0,  0,}},
                {{  0, 32, 32,  0,  0,  0,  0,  0,}},
                {{  0, 32,  0, 32,  0,  0,  0,  0,}},
                {{  0, 32, 32, 32,  0,  0,  0,  0,}},
                {{ 32, 32,  0,  0,  0,  0,  0,  0,}},
                {{ 32, 32, 32,  0,  0,  0,  0,  0,}},
                {{ 32, 32,  0, 32,  0,  0,  0,  0,}},
                {{ 32, 32, 32, 32,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0, 16,}},
                {{  0,  0,  0,  0,  0,  0, 16, 16,}},
                {{  0,  0,  0,  0, 16,  0,  0,  0,}},
                {{  0,  0,  0,  0, 16,  0, 16,  0,}},
                {{  0,  0,  0,  0, 16,  0,  0, 16,}},
                {{  0,  0,  0,  0, 16,  0, 16, 16,}},
                {{  0,  0,  0,  0,  0, 16,  0,  0,}},
                {{  0,  0,  0,  0,  0, 16, 16,  0,}},
                {{  0,  0,  0,  0,  0, 16,  0, 16,}},
                {{  0,  0,  0,  0,  0, 16, 16, 16,}},
                {{  0,  0,  0,  0, 16, 16,  0,  0,}},
                {{  0,  0,  0,  0, 16, 16, 16,  0,}},
                {{  0,  0,  0,  0, 16, 16,  0, 16,}},
                {{  0,  0,  0,  0, 16, 16, 16, 16,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0, 16,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0, 16,  0,  0,  0,  0,}},
                {{  0,  0, 16, 16,  0,  0,  0,  0,}},
                {{ 16,  0,  0,  0,  0,  0,  0,  0,}},
                {{ 16,  0, 16,  0,  0,  0,  0,  0,}},
                {{ 16,  0,  0, 16,  0,  0,  0,  0,}},
                {{ 16,  0, 16, 16,  0,  0,  0,  0,}},
                {{  0, 16,  0,  0,  0,  0,  0,  0,}},
                {{  0, 16, 16,  0,  0,  0,  0,  0,}},
                {{  0, 16,  0, 16,  0,  0,  0,  0,}},
                {{  0, 16, 16, 16,  0,  0,  0,  0,}},
                {{ 16, 16,  0,  0,  0,  0,  0,  0,}},
                {{ 16, 16, 16,  0,  0,  0,  0,  0,}},
                {{ 16, 16,  0, 16,  0,  0,  0,  0,}},
                {{ 16, 16, 16, 16,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,128,  8,  0,}},
                {{  0,  0,  0,  0,  0,  0,128,  8,}},
                {{  0,  0,  0,  0,  0,128,136,  8,}},
                {{  0,  0,  0,128,  8,  0,  0,  0,}},
                {{  0,  0,  0,128,  8,128,  8,  0,}},
                {{  0,  0,  0,128,  8,  0,128,  8,}},
                {{  0,  0,  0,128,  8,128,136,  8,}},
                {{  0,  0,  0,  0,128,  8,  0,  0,}},
                {{  0,  0,  0,  0,128,136,  8,  0,}},
                {{  0,  0,  0,  0,128,  8,128,  8,}},
                {{  0,  0,  0,  0,128,136,136,  8,}},
                {{  0,  0,  0,128,136,  8,  0,  0,}},
                {{  0,  0,  0,128,136,136,  8,  0,}},
                {{  0,  0,  0,128,136,  8,128,  8,}},
                {{  0,  0,  0,128,136,136,136,  8,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,128,  8,  0,  0,  0,  0,  0,}},
                {{  0,  0,128,  8,  0,  0,  0,  0,}},
                {{  0,128,136,  8,  0,  0,  0,  0,}},
                {{  8,  0,  0,  0,  0,  0,  0,128,}},
                {{  8,128,  8,  0,  0,  0,  0,128,}},
                {{  8,  0,128,  8,  0,  0,  0,128,}},
                {{  8,128,136,  8,  0,  0,  0,128,}},
                {{128,  8,  0,  0,  0,  0,  0,  0,}},
                {{128,136,  8,  0,  0,  0,  0,  0,}},
                {{128,  8,128,  8,  0,  0,  0,  0,}},
                {{128,136,136,  8,  0,  0,  0,  0,}},
                {{136,  8,  0,  0,  0,  0,  0,128,}},
                {{136,136,  8,  0,  0,  0,  0,128,}},
                {{136,  8,128,  8,  0,  0,  0,128,}},
                {{136,136,136,  8,  0,  0,  0,128,}},
        },
};

/* Table that combines the S, P, and E operations.  */
static const unsigned long SPE[2][8][64] = {
        {
                {
                        0x80088000,0x80000000,         0,0x80088000,
                                 0,0x80088000,0x80000000,         0,
                        0x80088000,0x80088000,0x80000000,   0x88000,
                           0x88000,         0,         0,0x80000000,
                        0x80000000,         0,   0x88000,0x80088000,
                        0x80088000,0x80000000,   0x88000,   0x88000,
                                 0,   0x88000,0x80088000,0x80000000,
                           0x88000,   0x88000,0x80000000,         0,
                                 0,0x80088000,   0x88000,0x80000000,
                        0x80088000,0x80000000,   0x88000,   0x88000,
                        0x80000000,   0x88000,0x80088000,         0,
                        0x80088000,         0,         0,0x80000000,
                        0x80088000,0x80088000,0x80000000,   0x88000,
                                 0,   0x88000,0x80000000,         0,
                        0x80000000,         0,   0x88000,0x80088000,
                                 0,0x80000000,   0x88000,0x80088000,
                },
                {
                         0x8800010,         0, 0x8800000,         0,
                              0x10, 0x8800010, 0x8800000, 0x8800000,
                         0x8800000,      0x10,      0x10, 0x8800000,
                              0x10, 0x8800000,         0,      0x10,
                                 0, 0x8800010,      0x10, 0x8800000,
                         0x8800010,         0,         0,      0x10,
                         0x8800010, 0x8800010, 0x8800000,      0x10,
                                 0,         0, 0x8800010, 0x8800010,
                              0x10, 0x8800000, 0x8800000, 0x8800010,
                         0x8800010,      0x10,      0x10,         0,
                                 0, 0x8800010,         0,      0x10,
                         0x8800000,         0, 0x8800010, 0x8800010,
                         0x8800000, 0x8800000,         0,      0x10,
                              0x10, 0x8800010, 0x8800000,         0,
                              0x10,         0, 0x8800010, 0x8800000,
                         0x8800010,      0x10,         0, 0x8800000,
                },
                {
                                 0,0x40001000,    0x1000,    0x1000,
                        0x40000000,         0,    0x1000,0x40001000,
                            0x1000,0x40000000,0x40000000,         0,
                        0x40001000,    0x1000,         0,0x40000000,
                                 0,0x40000000,0x40001000,    0x1000,
                            0x1000,0x40001000,0x40000000,         0,
                        0x40000000,    0x1000,0x40001000,0x40000000,
                        0x40001000,         0,         0,0x40001000,
                        0x40001000,    0x1000,         0,0x40000000,
                            0x1000,0x40000000,0x40000000,    0x1000,
                                 0,0x40001000,0x40001000,0x40000000,
                        0x40000000,         0,0x40001000,         0,
                        0x40001000,         0,         0,0x40001000,
                        0x40000000,    0x1000,    0x1000,0x40001000,
                            0x1000,         0,0x40000000,    0x1000,
                                 0,0x40001000,    0x1000,0x40000000,
                },
                {
                          0x100008,  0x100000,       0x8,  0x100008,
                                 0,         0,  0x100008,       0x8,
                          0x100000,       0x8,         0,  0x100008,
                               0x8,  0x100008,         0,         0,
                               0x8,  0x100000,  0x100000,       0x8,
                          0x100000,  0x100008,         0,  0x100000,
                          0x100008,         0,       0x8,  0x100000,
                          0x100000,       0x8,  0x100008,         0,
                               0x8,  0x100008,         0,       0x8,
                          0x100000,  0x100000,       0x8,         0,
                          0x100008,         0,  0x100000,       0x8,
                                 0,       0x8,  0x100000,  0x100000,
                                 0,  0x100008,  0x100008,         0,
                          0x100008,       0x8,  0x100000,  0x100008,
                               0x8,  0x100000,         0,  0x100008,
                          0x100008,         0,       0x8,  0x100000,
                },
                {
                                 0,0x10000000,   0x44000,0x10044020,
                        0x10000020,   0x44000,0x10044020,0x10000000,
                        0x10000000,      0x20,      0x20,0x10044000,
                           0x44020,0x10000020,0x10044000,         0,
                        0x10044000,         0,0x10000020,   0x44020,
                           0x44000,0x10044020,         0,      0x20,
                              0x20,   0x44020,0x10044020,0x10000020,
                        0x10000000,   0x44000,   0x44020,0x10044000,
                        0x10044000,   0x44020,0x10000020,0x10000000,
                        0x10000000,      0x20,      0x20,   0x44000,
                                 0,0x10044000,0x10044020,         0,
                        0x10044020,         0,   0x44000,0x10000020,
                           0x44020,   0x44000,         0,0x10044020,
                        0x10000020,0x10044000,   0x44020,0x10000000,
                        0x10044000,0x10000020,   0x44000,   0x44020,
                              0x20,0x10044020,0x10000000,      0x20,
                },
                {
                             0x440,     0x440,         0,  0x200000,
                             0x440,  0x200000,  0x200440,         0,
                          0x200440,  0x200440,  0x200000,         0,
                          0x200000,     0x440,         0,  0x200440,
                                 0,  0x200440,     0x440,         0,
                          0x200000,     0x440,  0x200000,     0x440,
                          0x200440,         0,         0,  0x200440,
                             0x440,  0x200000,  0x200440,  0x200000,
                          0x200440,         0,  0x200000,  0x200440,
                          0x200000,     0x440,         0,  0x200000,
                                 0,  0x200000,     0x440,         0,
                             0x440,  0x200440,  0x200000,     0x440,
                          0x200440,  0x200000,         0,  0x200440,
                             0x440,         0,  0x200440,         0,
                          0x200000,     0x440,  0x200440,  0x200000,
                                 0,  0x200440,     0x440,     0x440,
                },
                {
                         0x4400000,    0x2000,    0x2000,       0x4,
                         0x4402004, 0x4400004, 0x4402000,         0,
                                 0,    0x2004,    0x2004, 0x4400000,
                               0x4, 0x4402000, 0x4400000,    0x2004,
                            0x2004, 0x4400000, 0x4400004, 0x4402004,
                                 0,    0x2000,       0x4, 0x4402000,
                         0x4400004, 0x4402004, 0x4402000,       0x4,
                         0x4402004, 0x4400004,    0x2000,         0,
                         0x4402004, 0x4400000, 0x4400004,    0x2004,
                         0x4400000,    0x2000,         0, 0x4400004,
                            0x2004, 0x4402004, 0x4402000,         0,
                            0x2000,       0x4,       0x4,    0x2000,
                                 0,    0x2004,    0x2000, 0x4402000,
                            0x2004, 0x4400000, 0x4402004,         0,
                         0x4402000,       0x4, 0x4400004, 0x4402004,
                               0x4, 0x4402000, 0x4400000, 0x4400004,
                },
                {
                             0x880,0x20000000,0x20000880,         0,
                        0x20000000,     0x880,         0,0x20000880,
                             0x880,         0,0x20000000,0x20000880,
                        0x20000880,0x20000880,     0x880,         0,
                        0x20000000,0x20000880,     0x880,0x20000000,
                        0x20000880,     0x880,         0,0x20000000,
                                 0,         0,0x20000880,     0x880,
                                 0,0x20000000,0x20000000,     0x880,
                                 0,0x20000000,     0x880,0x20000880,
                        0x20000880,         0,         0,0x20000000,
                             0x880,0x20000880,0x20000000,     0x880,
                        0x20000000,     0x880,     0x880,0x20000000,
                        0x20000880,         0,         0,     0x880,
                        0x20000000,0x20000880,0x20000880,         0,
                             0x880,0x20000000,0x20000880,         0,
                                 0,     0x880,0x20000000,0x20000880,
                },
        },
        {
                {
                            0x2008,       0x8,0x20002000,0x20002008,
                            0x2000,0x20000008,0x20000008,0x20002000,
                        0x20000008,    0x2008,    0x2008,0x20000000,
                        0x20002000,    0x2000,         0,0x20000008,
                               0x8,0x20000000,    0x2000,       0x8,
                        0x20002008,    0x2008,0x20000000,    0x2000,
                        0x20000000,         0,       0x8,0x20002008,
                                 0,0x20002000,0x20002008,         0,
                                 0,0x20002008,    0x2000,0x20000008,
                            0x2008,       0x8,0x20000000,    0x2000,
                        0x20002008,         0,       0x8,0x20002000,
                        0x20000008,0x20000000,0x20002000,    0x2008,
                        0x20002008,       0x8,    0x2008,0x20002000,
                            0x2000,0x20000000,0x20000008,         0,
                               0x8,    0x2000,0x20002000,    0x2008,
                        0x20000000,0x20002008,         0,0x20000008,
                },
                {
                         0x4400010,         0,      0x10, 0x4400010,
                         0x4400000,         0, 0x4400000,      0x10,
                                 0, 0x4400010,         0, 0x4400000,
                              0x10, 0x4400010, 0x4400010,         0,
                              0x10, 0x4400000, 0x4400010,         0,
                              0x10, 0x4400000,         0,      0x10,
                         0x4400000,      0x10, 0x4400010, 0x4400000,
                         0x4400000,      0x10,         0, 0x4400010,
                              0x10, 0x4400010, 0x4400000,      0x10,
                         0x4400010,      0x10, 0x4400000,         0,
                         0x4400000,         0,      0x10, 0x4400010,
                                 0, 0x4400000,      0x10, 0x4400000,
                         0x4400010,         0,         0, 0x4400000,
                                 0, 0x4400010,      0x10, 0x4400010,
                         0x4400010,      0x10,         0, 0x4400000,
                         0x4400000,         0, 0x4400010,      0x10,
                },
                {
                        0x10044000,   0x44004,         0,0x10044000,
                        0x10000004,   0x44000,0x10044000,       0x4,
                           0x44000,       0x4,   0x44004,0x10000000,
                        0x10044004,0x10000000,0x10000000,0x10044004,
                                 0,0x10000004,   0x44004,         0,
                        0x10000000,0x10044004,       0x4,0x10044000,
                        0x10044004,   0x44000,0x10000004,   0x44004,
                               0x4,         0,   0x44000,0x10000004,
                           0x44004,         0,0x10000000,       0x4,
                        0x10000000,0x10000004,   0x44004,0x10044000,
                                 0,   0x44004,       0x4,0x10044004,
                        0x10000004,   0x44000,0x10044004,0x10000000,
                        0x10000004,0x10044000,   0x44000,0x10044004,
                               0x4,   0x44000,0x10044000,       0x4,
                           0x44000,         0,0x10044004,0x10000000,
                        0x10044000,0x10000004,         0,   0x44004,
                },
                {
                        0x80000440,  0x100000,0x80000000,0x80100440,
                                 0,  0x100440,0x80100000,0x80000440,
                          0x100440,0x80100000,  0x100000,0x80000000,
                        0x80100000,0x80000440,     0x440,  0x100000,
                        0x80100440,     0x440,         0,0x80000000,
                             0x440,0x80100000,  0x100440,         0,
                        0x80000000,         0,0x80000440,  0x100440,
                          0x100000,0x80100440,0x80100440,     0x440,
                        0x80100440,0x80000000,     0x440,0x80100000,
                             0x440,  0x100000,0x80000000,  0x100440,
                        0x80100000,         0,         0,0x80000440,
                                 0,0x80100440,  0x100440,         0,
                          0x100000,0x80100440,0x80000440,     0x440,
                        0x80100440,0x80000000,  0x100000,0x80000440,
                        0x80000440,     0x440,  0x100440,0x80100000,
                        0x80000000,  0x100000,0x80100000,  0x100440,
                },
                {
                           0x88000,         0,         0,   0x88000,
                           0x88000,   0x88000,         0,   0x88000,
                                 0,         0,   0x88000,         0,
                           0x88000,   0x88000,   0x88000,         0,
                                 0,   0x88000,         0,         0,
                           0x88000,         0,         0,   0x88000,
                                 0,   0x88000,   0x88000,         0,
                           0x88000,         0,         0,   0x88000,
                           0x88000,   0x88000,         0,   0x88000,
                                 0,         0,   0x88000,   0x88000,
                           0x88000,         0,   0x88000,         0,
                                 0,   0x88000,         0,         0,
                           0x88000,         0,         0,   0x88000,
                           0x88000,   0x88000,         0,         0,
                                 0,   0x88000,   0x88000,         0,
                                 0,         0,   0x88000,   0x88000,
                },
                {
                         0x8800000,      0x20,         0, 0x8800020,
                              0x20,         0, 0x8800000,      0x20,
                                 0, 0x8800020,      0x20, 0x8800000,
                         0x8800000, 0x8800000, 0x8800020,      0x20,
                              0x20, 0x8800000, 0x8800020,         0,
                                 0,         0, 0x8800020, 0x8800020,
                         0x8800020, 0x8800020, 0x8800000,         0,
                                 0,      0x20,      0x20, 0x8800000,
                                 0, 0x8800000, 0x8800000,      0x20,
                         0x8800020,      0x20,         0, 0x8800000,
                         0x8800000,         0, 0x8800020,      0x20,
                              0x20, 0x8800020,      0x20,         0,
                         0x8800020,      0x20,      0x20, 0x8800000,
                         0x8800000, 0x8800020,      0x20,         0,
                                 0, 0x8800000, 0x8800000, 0x8800020,
                         0x8800020,         0,         0, 0x8800020,
                },
                {
                                 0,         0,    0x1000,0x40001000,
                        0x40001000,0x40000000,         0,         0,
                            0x1000,0x40001000,0x40000000,    0x1000,
                        0x40000000,    0x1000,    0x1000,0x40000000,
                        0x40001000,         0,0x40000000,0x40001000,
                                 0,    0x1000,0x40001000,         0,
                        0x40001000,0x40000000,    0x1000,0x40000000,
                        0x40000000,0x40001000,         0,    0x1000,
                        0x40000000,    0x1000,0x40001000,0x40000000,
                                 0,         0,    0x1000,0x40001000,
                        0x40001000,0x40000000,         0,         0,
                                 0,0x40001000,0x40000000,    0x1000,
                                 0,0x40001000,    0x1000,         0,
                        0x40000000,         0,0x40001000,    0x1000,
                            0x1000,0x40000000,0x40000000,0x40001000,
                        0x40001000,    0x1000,    0x1000,0x40000000,
                },
                {
                          0x200880,  0x200880,         0,         0,
                          0x200000,     0x880,  0x200880,  0x200880,
                                 0,  0x200000,     0x880,         0,
                             0x880,  0x200000,  0x200000,  0x200880,
                                 0,     0x880,     0x880,  0x200000,
                          0x200880,  0x200000,         0,     0x880,
                          0x200000,     0x880,  0x200000,  0x200880,
                             0x880,         0,  0x200880,         0,
                             0x880,         0,  0x200000,  0x200880,
                                 0,  0x200000,         0,     0x880,
                          0x200880,  0x200000,  0x200000,     0x880,
                          0x200880,         0,     0x880,  0x200000,
                          0x200880,     0x880,  0x200880,  0x200000,
                             0x880,         0,  0x200000,  0x200880,
                                 0,  0x200880,     0x880,         0,
                          0x200000,  0x200880,         0,     0x880,
                },
        },
};

/* compressed/interleaved => final permutation table */
static const C_block CF6464[64/CHUNKBITS][1<<CHUNKBITS] = {
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0, 64,}},
                {{  0,  0,  0,  0,  0,  0, 64,  0,}},
                {{  0,  0,  0,  0,  0,  0, 64, 64,}},
                {{  0,  0,  0,  0,  0, 64,  0,  0,}},
                {{  0,  0,  0,  0,  0, 64,  0, 64,}},
                {{  0,  0,  0,  0,  0, 64, 64,  0,}},
                {{  0,  0,  0,  0,  0, 64, 64, 64,}},
                {{  0,  0,  0,  0, 64,  0,  0,  0,}},
                {{  0,  0,  0,  0, 64,  0,  0, 64,}},
                {{  0,  0,  0,  0, 64,  0, 64,  0,}},
                {{  0,  0,  0,  0, 64,  0, 64, 64,}},
                {{  0,  0,  0,  0, 64, 64,  0,  0,}},
                {{  0,  0,  0,  0, 64, 64,  0, 64,}},
                {{  0,  0,  0,  0, 64, 64, 64,  0,}},
                {{  0,  0,  0,  0, 64, 64, 64, 64,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  4,}},
                {{  0,  0,  0,  0,  0,  0,  4,  0,}},
                {{  0,  0,  0,  0,  0,  0,  4,  4,}},
                {{  0,  0,  0,  0,  0,  4,  0,  0,}},
                {{  0,  0,  0,  0,  0,  4,  0,  4,}},
                {{  0,  0,  0,  0,  0,  4,  4,  0,}},
                {{  0,  0,  0,  0,  0,  4,  4,  4,}},
                {{  0,  0,  0,  0,  4,  0,  0,  0,}},
                {{  0,  0,  0,  0,  4,  0,  0,  4,}},
                {{  0,  0,  0,  0,  4,  0,  4,  0,}},
                {{  0,  0,  0,  0,  4,  0,  4,  4,}},
                {{  0,  0,  0,  0,  4,  4,  0,  0,}},
                {{  0,  0,  0,  0,  4,  4,  0,  4,}},
                {{  0,  0,  0,  0,  4,  4,  4,  0,}},
                {{  0,  0,  0,  0,  4,  4,  4,  4,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0, 64,  0,  0,  0,  0,}},
                {{  0,  0, 64,  0,  0,  0,  0,  0,}},
                {{  0,  0, 64, 64,  0,  0,  0,  0,}},
                {{  0, 64,  0,  0,  0,  0,  0,  0,}},
                {{  0, 64,  0, 64,  0,  0,  0,  0,}},
                {{  0, 64, 64,  0,  0,  0,  0,  0,}},
                {{  0, 64, 64, 64,  0,  0,  0,  0,}},
                {{ 64,  0,  0,  0,  0,  0,  0,  0,}},
                {{ 64,  0,  0, 64,  0,  0,  0,  0,}},
                {{ 64,  0, 64,  0,  0,  0,  0,  0,}},
                {{ 64,  0, 64, 64,  0,  0,  0,  0,}},
                {{ 64, 64,  0,  0,  0,  0,  0,  0,}},
                {{ 64, 64,  0, 64,  0,  0,  0,  0,}},
                {{ 64, 64, 64,  0,  0,  0,  0,  0,}},
                {{ 64, 64, 64, 64,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  4,  0,  0,  0,  0,}},
                {{  0,  0,  4,  0,  0,  0,  0,  0,}},
                {{  0,  0,  4,  4,  0,  0,  0,  0,}},
                {{  0,  4,  0,  0,  0,  0,  0,  0,}},
                {{  0,  4,  0,  4,  0,  0,  0,  0,}},
                {{  0,  4,  4,  0,  0,  0,  0,  0,}},
                {{  0,  4,  4,  4,  0,  0,  0,  0,}},
                {{  4,  0,  0,  0,  0,  0,  0,  0,}},
                {{  4,  0,  0,  4,  0,  0,  0,  0,}},
                {{  4,  0,  4,  0,  0,  0,  0,  0,}},
                {{  4,  0,  4,  4,  0,  0,  0,  0,}},
                {{  4,  4,  0,  0,  0,  0,  0,  0,}},
                {{  4,  4,  0,  4,  0,  0,  0,  0,}},
                {{  4,  4,  4,  0,  0,  0,  0,  0,}},
                {{  4,  4,  4,  4,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0, 16,}},
                {{  0,  0,  0,  0,  0,  0, 16,  0,}},
                {{  0,  0,  0,  0,  0,  0, 16, 16,}},
                {{  0,  0,  0,  0,  0, 16,  0,  0,}},
                {{  0,  0,  0,  0,  0, 16,  0, 16,}},
                {{  0,  0,  0,  0,  0, 16, 16,  0,}},
                {{  0,  0,  0,  0,  0, 16, 16, 16,}},
                {{  0,  0,  0,  0, 16,  0,  0,  0,}},
                {{  0,  0,  0,  0, 16,  0,  0, 16,}},
                {{  0,  0,  0,  0, 16,  0, 16,  0,}},
                {{  0,  0,  0,  0, 16,  0, 16, 16,}},
                {{  0,  0,  0,  0, 16, 16,  0,  0,}},
                {{  0,  0,  0,  0, 16, 16,  0, 16,}},
                {{  0,  0,  0,  0, 16, 16, 16,  0,}},
                {{  0,  0,  0,  0, 16, 16, 16, 16,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  1,}},
                {{  0,  0,  0,  0,  0,  0,  1,  0,}},
                {{  0,  0,  0,  0,  0,  0,  1,  1,}},
                {{  0,  0,  0,  0,  0,  1,  0,  0,}},
                {{  0,  0,  0,  0,  0,  1,  0,  1,}},
                {{  0,  0,  0,  0,  0,  1,  1,  0,}},
                {{  0,  0,  0,  0,  0,  1,  1,  1,}},
                {{  0,  0,  0,  0,  1,  0,  0,  0,}},
                {{  0,  0,  0,  0,  1,  0,  0,  1,}},
                {{  0,  0,  0,  0,  1,  0,  1,  0,}},
                {{  0,  0,  0,  0,  1,  0,  1,  1,}},
                {{  0,  0,  0,  0,  1,  1,  0,  0,}},
                {{  0,  0,  0,  0,  1,  1,  0,  1,}},
                {{  0,  0,  0,  0,  1,  1,  1,  0,}},
                {{  0,  0,  0,  0,  1,  1,  1,  1,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0, 16,  0,  0,  0,  0,}},
                {{  0,  0, 16,  0,  0,  0,  0,  0,}},
                {{  0,  0, 16, 16,  0,  0,  0,  0,}},
                {{  0, 16,  0,  0,  0,  0,  0,  0,}},
                {{  0, 16,  0, 16,  0,  0,  0,  0,}},
                {{  0, 16, 16,  0,  0,  0,  0,  0,}},
                {{  0, 16, 16, 16,  0,  0,  0,  0,}},
                {{ 16,  0,  0,  0,  0,  0,  0,  0,}},
                {{ 16,  0,  0, 16,  0,  0,  0,  0,}},
                {{ 16,  0, 16,  0,  0,  0,  0,  0,}},
                {{ 16,  0, 16, 16,  0,  0,  0,  0,}},
                {{ 16, 16,  0,  0,  0,  0,  0,  0,}},
                {{ 16, 16,  0, 16,  0,  0,  0,  0,}},
                {{ 16, 16, 16,  0,  0,  0,  0,  0,}},
                {{ 16, 16, 16, 16,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  1,  0,  0,  0,  0,}},
                {{  0,  0,  1,  0,  0,  0,  0,  0,}},
                {{  0,  0,  1,  1,  0,  0,  0,  0,}},
                {{  0,  1,  0,  0,  0,  0,  0,  0,}},
                {{  0,  1,  0,  1,  0,  0,  0,  0,}},
                {{  0,  1,  1,  0,  0,  0,  0,  0,}},
                {{  0,  1,  1,  1,  0,  0,  0,  0,}},
                {{  1,  0,  0,  0,  0,  0,  0,  0,}},
                {{  1,  0,  0,  1,  0,  0,  0,  0,}},
                {{  1,  0,  1,  0,  0,  0,  0,  0,}},
                {{  1,  0,  1,  1,  0,  0,  0,  0,}},
                {{  1,  1,  0,  0,  0,  0,  0,  0,}},
                {{  1,  1,  0,  1,  0,  0,  0,  0,}},
                {{  1,  1,  1,  0,  0,  0,  0,  0,}},
                {{  1,  1,  1,  1,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,128,}},
                {{  0,  0,  0,  0,  0,  0,128,  0,}},
                {{  0,  0,  0,  0,  0,  0,128,128,}},
                {{  0,  0,  0,  0,  0,128,  0,  0,}},
                {{  0,  0,  0,  0,  0,128,  0,128,}},
                {{  0,  0,  0,  0,  0,128,128,  0,}},
                {{  0,  0,  0,  0,  0,128,128,128,}},
                {{  0,  0,  0,  0,128,  0,  0,  0,}},
                {{  0,  0,  0,  0,128,  0,  0,128,}},
                {{  0,  0,  0,  0,128,  0,128,  0,}},
                {{  0,  0,  0,  0,128,  0,128,128,}},
                {{  0,  0,  0,  0,128,128,  0,  0,}},
                {{  0,  0,  0,  0,128,128,  0,128,}},
                {{  0,  0,  0,  0,128,128,128,  0,}},
                {{  0,  0,  0,  0,128,128,128,128,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  8,}},
                {{  0,  0,  0,  0,  0,  0,  8,  0,}},
                {{  0,  0,  0,  0,  0,  0,  8,  8,}},
                {{  0,  0,  0,  0,  0,  8,  0,  0,}},
                {{  0,  0,  0,  0,  0,  8,  0,  8,}},
                {{  0,  0,  0,  0,  0,  8,  8,  0,}},
                {{  0,  0,  0,  0,  0,  8,  8,  8,}},
                {{  0,  0,  0,  0,  8,  0,  0,  0,}},
                {{  0,  0,  0,  0,  8,  0,  0,  8,}},
                {{  0,  0,  0,  0,  8,  0,  8,  0,}},
                {{  0,  0,  0,  0,  8,  0,  8,  8,}},
                {{  0,  0,  0,  0,  8,  8,  0,  0,}},
                {{  0,  0,  0,  0,  8,  8,  0,  8,}},
                {{  0,  0,  0,  0,  8,  8,  8,  0,}},
                {{  0,  0,  0,  0,  8,  8,  8,  8,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,128,  0,  0,  0,  0,}},
                {{  0,  0,128,  0,  0,  0,  0,  0,}},
                {{  0,  0,128,128,  0,  0,  0,  0,}},
                {{  0,128,  0,  0,  0,  0,  0,  0,}},
                {{  0,128,  0,128,  0,  0,  0,  0,}},
                {{  0,128,128,  0,  0,  0,  0,  0,}},
                {{  0,128,128,128,  0,  0,  0,  0,}},
                {{128,  0,  0,  0,  0,  0,  0,  0,}},
                {{128,  0,  0,128,  0,  0,  0,  0,}},
                {{128,  0,128,  0,  0,  0,  0,  0,}},
                {{128,  0,128,128,  0,  0,  0,  0,}},
                {{128,128,  0,  0,  0,  0,  0,  0,}},
                {{128,128,  0,128,  0,  0,  0,  0,}},
                {{128,128,128,  0,  0,  0,  0,  0,}},
                {{128,128,128,128,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  8,  0,  0,  0,  0,}},
                {{  0,  0,  8,  0,  0,  0,  0,  0,}},
                {{  0,  0,  8,  8,  0,  0,  0,  0,}},
                {{  0,  8,  0,  0,  0,  0,  0,  0,}},
                {{  0,  8,  0,  8,  0,  0,  0,  0,}},
                {{  0,  8,  8,  0,  0,  0,  0,  0,}},
                {{  0,  8,  8,  8,  0,  0,  0,  0,}},
                {{  8,  0,  0,  0,  0,  0,  0,  0,}},
                {{  8,  0,  0,  8,  0,  0,  0,  0,}},
                {{  8,  0,  8,  0,  0,  0,  0,  0,}},
                {{  8,  0,  8,  8,  0,  0,  0,  0,}},
                {{  8,  8,  0,  0,  0,  0,  0,  0,}},
                {{  8,  8,  0,  8,  0,  0,  0,  0,}},
                {{  8,  8,  8,  0,  0,  0,  0,  0,}},
                {{  8,  8,  8,  8,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0, 32,}},
                {{  0,  0,  0,  0,  0,  0, 32,  0,}},
                {{  0,  0,  0,  0,  0,  0, 32, 32,}},
                {{  0,  0,  0,  0,  0, 32,  0,  0,}},
                {{  0,  0,  0,  0,  0, 32,  0, 32,}},
                {{  0,  0,  0,  0,  0, 32, 32,  0,}},
                {{  0,  0,  0,  0,  0, 32, 32, 32,}},
                {{  0,  0,  0,  0, 32,  0,  0,  0,}},
                {{  0,  0,  0,  0, 32,  0,  0, 32,}},
                {{  0,  0,  0,  0, 32,  0, 32,  0,}},
                {{  0,  0,  0,  0, 32,  0, 32, 32,}},
                {{  0,  0,  0,  0, 32, 32,  0,  0,}},
                {{  0,  0,  0,  0, 32, 32,  0, 32,}},
                {{  0,  0,  0,  0, 32, 32, 32,  0,}},
                {{  0,  0,  0,  0, 32, 32, 32, 32,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  0,  0,  0,  0,  2,}},
                {{  0,  0,  0,  0,  0,  0,  2,  0,}},
                {{  0,  0,  0,  0,  0,  0,  2,  2,}},
                {{  0,  0,  0,  0,  0,  2,  0,  0,}},
                {{  0,  0,  0,  0,  0,  2,  0,  2,}},
                {{  0,  0,  0,  0,  0,  2,  2,  0,}},
                {{  0,  0,  0,  0,  0,  2,  2,  2,}},
                {{  0,  0,  0,  0,  2,  0,  0,  0,}},
                {{  0,  0,  0,  0,  2,  0,  0,  2,}},
                {{  0,  0,  0,  0,  2,  0,  2,  0,}},
                {{  0,  0,  0,  0,  2,  0,  2,  2,}},
                {{  0,  0,  0,  0,  2,  2,  0,  0,}},
                {{  0,  0,  0,  0,  2,  2,  0,  2,}},
                {{  0,  0,  0,  0,  2,  2,  2,  0,}},
                {{  0,  0,  0,  0,  2,  2,  2,  2,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0, 32,  0,  0,  0,  0,}},
                {{  0,  0, 32,  0,  0,  0,  0,  0,}},
                {{  0,  0, 32, 32,  0,  0,  0,  0,}},
                {{  0, 32,  0,  0,  0,  0,  0,  0,}},
                {{  0, 32,  0, 32,  0,  0,  0,  0,}},
                {{  0, 32, 32,  0,  0,  0,  0,  0,}},
                {{  0, 32, 32, 32,  0,  0,  0,  0,}},
                {{ 32,  0,  0,  0,  0,  0,  0,  0,}},
                {{ 32,  0,  0, 32,  0,  0,  0,  0,}},
                {{ 32,  0, 32,  0,  0,  0,  0,  0,}},
                {{ 32,  0, 32, 32,  0,  0,  0,  0,}},
                {{ 32, 32,  0,  0,  0,  0,  0,  0,}},
                {{ 32, 32,  0, 32,  0,  0,  0,  0,}},
                {{ 32, 32, 32,  0,  0,  0,  0,  0,}},
                {{ 32, 32, 32, 32,  0,  0,  0,  0,}},
        },
        {
                {{  0,  0,  0,  0,  0,  0,  0,  0,}},
                {{  0,  0,  0,  2,  0,  0,  0,  0,}},
                {{  0,  0,  2,  0,  0,  0,  0,  0,}},
                {{  0,  0,  2,  2,  0,  0,  0,  0,}},
                {{  0,  2,  0,  0,  0,  0,  0,  0,}},
                {{  0,  2,  0,  2,  0,  0,  0,  0,}},
                {{  0,  2,  2,  0,  0,  0,  0,  0,}},
                {{  0,  2,  2,  2,  0,  0,  0,  0,}},
                {{  2,  0,  0,  0,  0,  0,  0,  0,}},
                {{  2,  0,  0,  2,  0,  0,  0,  0,}},
                {{  2,  0,  2,  0,  0,  0,  0,  0,}},
                {{  2,  0,  2,  2,  0,  0,  0,  0,}},
                {{  2,  2,  0,  0,  0,  0,  0,  0,}},
                {{  2,  2,  0,  2,  0,  0,  0,  0,}},
                {{  2,  2,  2,  0,  0,  0,  0,  0,}},
                {{  2,  2,  2,  2,  0,  0,  0,  0,}},
        },
};

#define HAVE_DES_TABLES 1
#endif

/* [previous][next][first][last][top][bottom][index][help] */