blob: 3d8d36439914344f6a6e4c71768e4426cae7ab73 [file] [log] [blame]
/*
* Copyright 2016 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can
* be found in the LICENSE file.
*
*/
//
// This file was generated using a modified version of
// the Perl script "algorithm-networksort-chooser" found here:
//
// http://search.cpan.org/dist/Algorithm-Networksort-Chooser/bin/algorithm-networksort-chooser
//
#include "networks.h"
#include "common/macros.h"
//
//
//
#define S(n) static struct hsg_op const sn##n[]
#define X(a,b) { HSG_OP_TYPE_CMP_XCHG, { a, b }}
//
//
//
#define LS(n) { ARRAY_LENGTH_MACRO(sn##n), sn##n }
//
//
//
S(2) = {
X(1,2)
};
S(4) = {
X(1,3), X(2,4), X(1,2), X(3,4), X(2,3)
};
S(6) = {
X(1,5), X(2,6), X(1,3), X(2,4), X(3,5), X(4,6), X(1,2), X(3,4), X(5,6),
X(2,5), X(2,3), X(4,5)
};
S(8) = {
X(1,5), X(2,6), X(3,7), X(4,8), X(1,3), X(2,4), X(5,7), X(6,8), X(3,5),
X(4,6), X(1,2), X(3,4), X(5,6), X(7,8), X(2,5), X(4,7), X(2,3), X(4,5), X(6,7)
};
S(10) = {
X(5,10), X(4,9), X(3,8), X(2,7), X(1,6), X(2,5), X(7,10), X(1,4), X(6,9),
X(1,3), X(4,7), X(8,10), X(1,2), X(3,5), X(6,8), X(9,10), X(2,3), X(5,7),
X(8,9), X(4,6), X(3,6), X(7,9), X(2,4), X(5,8), X(3,4), X(7,8), X(4,5), X(6,7),
X(5,6)
};
S(12) = {
X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(2,4), X(6,8), X(10,12),
X(1,3), X(5,7), X(9,11), X(2,3), X(6,7), X(10,11), X(2,6), X(7,11), X(6,10),
X(3,7), X(2,6), X(7,11), X(1,5), X(8,12), X(4,8), X(5,9), X(1,5), X(8,12),
X(2,5), X(8,11), X(4,9), X(3,4), X(9,10), X(3,5), X(8,10), X(4,6), X(7,9),
X(4,5), X(6,7), X(8,9)
};
S(14) = {
X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(1,3), X(5,7),
X(9,11), X(2,4), X(6,8), X(10,12), X(1,5), X(9,13), X(2,6), X(10,14), X(3,7),
X(4,8), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(6,11), X(7,10),
X(4,13), X(8,12), X(2,3), X(5,9), X(2,5), X(8,14), X(3,9), X(3,5), X(6,7),
X(10,11), X(12,14), X(4,9), X(8,13), X(7,9), X(11,13), X(4,6), X(8,10), X(4,5),
X(6,7), X(8,9), X(10,11), X(12,13), X(7,8), X(9,10)
};
S(16) = {
X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(1,3),
X(5,7), X(9,11), X(13,15), X(2,4), X(6,8), X(10,12), X(14,16), X(1,5), X(9,13),
X(2,6), X(10,14), X(3,7), X(11,15), X(4,8), X(12,16), X(1,9), X(2,10), X(3,11),
X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(6,11), X(7,10), X(4,13),
X(14,15), X(8,12), X(2,3), X(5,9), X(2,5), X(8,14), X(3,9), X(12,15), X(3,5),
X(6,7), X(10,11), X(12,14), X(4,9), X(8,13), X(7,9), X(11,13), X(4,6), X(8,10),
X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(7,8), X(9,10)
};
S(18) = {
X(1,17), X(2,18), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14),
X(7,15), X(8,16), X(9,17), X(10,18), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13),
X(10,14), X(11,15), X(12,16), X(5,17), X(6,18), X(5,9), X(6,10), X(7,11),
X(8,12), X(13,17), X(14,18), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12),
X(13,15), X(14,16), X(3,17), X(4,18), X(3,9), X(4,10), X(7,13), X(8,14),
X(11,17), X(12,18), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14),
X(15,17), X(16,18), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12),
X(13,14), X(15,16), X(17,18), X(2,17), X(2,9), X(4,11), X(6,13), X(8,15),
X(10,17), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17),
X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17)
};
S(20) = {
X(1,17), X(2,18), X(3,19), X(4,20), X(1,9), X(2,10), X(3,11), X(4,12),
X(5,13), X(6,14), X(7,15), X(8,16), X(9,17), X(10,18), X(11,19), X(12,20),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(5,17),
X(6,18), X(7,19), X(8,20), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17),
X(14,18), X(15,19), X(16,20), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11),
X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(3,17), X(4,18), X(3,9),
X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(3,5), X(4,6), X(7,9), X(8,10),
X(11,13), X(12,14), X(15,17), X(16,18), X(1,2), X(3,4), X(5,6), X(7,8),
X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(2,17), X(4,19),
X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(2,5), X(4,7), X(6,9),
X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(2,3), X(4,5), X(6,7),
X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19)
};
S(22) = {
X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(1,9), X(2,10),
X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(9,17), X(10,18),
X(11,19), X(12,20), X(13,21), X(14,22), X(1,5), X(2,6), X(3,7), X(4,8),
X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(5,17), X(6,18),
X(7,19), X(8,20), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18),
X(15,19), X(16,20), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12),
X(13,15), X(14,16), X(17,19), X(18,20), X(3,17), X(4,18), X(7,21), X(8,22),
X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22),
X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18),
X(19,21), X(20,22), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12),
X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(2,17), X(4,19), X(6,21),
X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(2,5),
X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21),
X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17),
X(18,19), X(20,21)
};
S(24) = {
X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24),
X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(9,17),
X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(1,5),
X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21),
X(18,22), X(19,23), X(20,24), X(5,17), X(6,18), X(7,19), X(8,20), X(5,9),
X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(1,3),
X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19),
X(18,20), X(21,23), X(22,24), X(3,17), X(4,18), X(7,21), X(8,22), X(3,9),
X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(3,5),
X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21),
X(20,22), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14),
X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(2,17), X(4,19), X(6,21),
X(8,23), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21),
X(16,23), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17),
X(16,19), X(18,21), X(20,23), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11),
X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23)
};
S(26) = {
X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24),
X(9,25), X(10,26), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14),
X(7,15), X(8,16), X(17,25), X(18,26), X(9,17), X(10,18), X(11,19), X(12,20),
X(13,21), X(14,22), X(15,23), X(16,24), X(1,5), X(2,6), X(3,7), X(4,8),
X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24),
X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(5,9), X(6,10),
X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26),
X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16),
X(17,19), X(18,20), X(21,23), X(22,24), X(3,17), X(4,18), X(7,21), X(8,22),
X(11,25), X(12,26), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18),
X(15,21), X(16,22), X(19,25), X(20,26), X(3,5), X(4,6), X(7,9), X(8,10),
X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26),
X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16),
X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(2,17), X(4,19), X(6,21),
X(8,23), X(10,25), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19),
X(14,21), X(16,23), X(18,25), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13),
X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(2,3), X(4,5),
X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21),
X(22,23), X(24,25)
};
S(28) = {
X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24),
X(9,25), X(10,26), X(11,27), X(12,28), X(1,9), X(2,10), X(3,11), X(4,12),
X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28),
X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16),
X(17,21), X(18,22), X(19,23), X(20,24), X(5,17), X(6,18), X(7,19), X(8,20),
X(13,25), X(14,26), X(15,27), X(16,28), X(5,9), X(6,10), X(7,11), X(8,12),
X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28),
X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16),
X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(3,17), X(4,18),
X(7,21), X(8,22), X(11,25), X(12,26), X(3,9), X(4,10), X(7,13), X(8,14),
X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(3,5), X(4,6),
X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22),
X(23,25), X(24,26), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12),
X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28),
X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(2,9), X(4,11),
X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27),
X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19),
X(18,21), X(20,23), X(22,25), X(24,27), X(2,3), X(4,5), X(6,7), X(8,9),
X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25),
X(26,27)
};
S(30) = {
X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24),
X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(1,9), X(2,10),
X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26),
X(19,27), X(20,28), X(21,29), X(22,30), X(9,17), X(10,18), X(11,19), X(12,20),
X(13,21), X(14,22), X(15,23), X(16,24), X(1,5), X(2,6), X(3,7), X(4,8),
X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24),
X(25,29), X(26,30), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26),
X(15,27), X(16,28), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18),
X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(1,3), X(2,4),
X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20),
X(21,23), X(22,24), X(25,27), X(26,28), X(3,17), X(4,18), X(7,21), X(8,22),
X(11,25), X(12,26), X(15,29), X(16,30), X(3,9), X(4,10), X(7,13), X(8,14),
X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30),
X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18),
X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(1,2), X(3,4),
X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20),
X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(2,17), X(4,19), X(6,21),
X(8,23), X(10,25), X(12,27), X(14,29), X(2,9), X(4,11), X(6,13), X(8,15),
X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(2,5),
X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21),
X(20,23), X(22,25), X(24,27), X(26,29), X(2,3), X(4,5), X(6,7), X(8,9),
X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25),
X(26,27), X(28,29)
};
S(32) = {
X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24),
X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32),
X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16),
X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32),
X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16),
X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32),
X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28),
X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20),
X(21,25), X(22,26), X(23,27), X(24,28), X(1,3), X(2,4), X(5,7), X(6,8),
X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24),
X(25,27), X(26,28), X(29,31), X(30,32), X(3,17), X(4,18), X(7,21), X(8,22),
X(11,25), X(12,26), X(15,29), X(16,30), X(3,9), X(4,10), X(7,13), X(8,14),
X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30),
X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18),
X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(1,2), X(3,4),
X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20),
X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(2,17), X(4,19),
X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(2,9), X(4,11),
X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27),
X(22,29), X(24,31), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15),
X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31),
X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17),
X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31)
};
S(34) = {
X(1,33), X(2,34), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22),
X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30),
X(15,31), X(16,32), X(17,33), X(18,34), X(1,9), X(2,10), X(3,11), X(4,12),
X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28),
X(21,29), X(22,30), X(23,31), X(24,32), X(9,33), X(10,34), X(9,17), X(10,18),
X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16),
X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32),
X(5,33), X(6,34), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26),
X(15,27), X(16,28), X(21,33), X(22,34), X(5,9), X(6,10), X(7,11), X(8,12),
X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28),
X(29,33), X(30,34), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12),
X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28),
X(29,31), X(30,32), X(3,33), X(4,34), X(3,17), X(4,18), X(7,21), X(8,22),
X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(3,9), X(4,10),
X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26),
X(23,29), X(24,30), X(27,33), X(28,34), X(3,5), X(4,6), X(7,9), X(8,10),
X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26),
X(27,29), X(28,30), X(31,33), X(32,34), X(1,2), X(3,4), X(5,6), X(7,8),
X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24),
X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(2,33), X(2,17), X(4,19),
X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(2,9),
X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25),
X(20,27), X(22,29), X(24,31), X(26,33), X(2,5), X(4,7), X(6,9), X(8,11),
X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27),
X(26,29), X(28,31), X(30,33), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11),
X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27),
X(28,29), X(30,31), X(32,33)
};
S(36) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(1,17), X(2,18), X(3,19), X(4,20),
X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28),
X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34), X(19,35), X(20,36),
X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16),
X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32),
X(9,33), X(10,34), X(11,35), X(12,36), X(9,17), X(10,18), X(11,19), X(12,20),
X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16),
X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32),
X(5,33), X(6,34), X(7,35), X(8,36), X(5,17), X(6,18), X(7,19), X(8,20),
X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36),
X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20),
X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36),
X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16),
X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32),
X(33,35), X(34,36), X(3,33), X(4,34), X(3,17), X(4,18), X(7,21), X(8,22),
X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(3,9), X(4,10),
X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26),
X(23,29), X(24,30), X(27,33), X(28,34), X(3,5), X(4,6), X(7,9), X(8,10),
X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26),
X(27,29), X(28,30), X(31,33), X(32,34), X(1,2), X(3,4), X(5,6), X(7,8),
X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24),
X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(2,33), X(4,35),
X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31),
X(18,33), X(20,35), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19),
X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35),
X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19),
X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35),
X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17),
X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33),
X(34,35)
};
S(38) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(1,17), X(2,18),
X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26),
X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34),
X(19,35), X(20,36), X(21,37), X(22,38), X(1,9), X(2,10), X(3,11), X(4,12),
X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28),
X(21,29), X(22,30), X(23,31), X(24,32), X(9,33), X(10,34), X(11,35), X(12,36),
X(13,37), X(14,38), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22),
X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16),
X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32),
X(33,37), X(34,38), X(5,33), X(6,34), X(7,35), X(8,36), X(5,17), X(6,18),
X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34),
X(23,35), X(24,36), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18),
X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34),
X(31,35), X(32,36), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12),
X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28),
X(29,31), X(30,32), X(33,35), X(34,36), X(3,33), X(4,34), X(7,37), X(8,38),
X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30),
X(19,33), X(20,34), X(23,37), X(24,38), X(3,9), X(4,10), X(7,13), X(8,14),
X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30),
X(27,33), X(28,34), X(31,37), X(32,38), X(3,5), X(4,6), X(7,9), X(8,10),
X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26),
X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(1,2), X(3,4),
X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20),
X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36),
X(37,38), X(2,33), X(4,35), X(6,37), X(2,17), X(4,19), X(6,21), X(8,23),
X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(2,9),
X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25),
X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(2,5), X(4,7),
X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23),
X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(2,3),
X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19),
X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35),
X(36,37)
};
S(40) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40),
X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24),
X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32),
X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40),
X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16),
X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32),
X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40),
X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24),
X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16),
X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32),
X(33,37), X(34,38), X(35,39), X(36,40), X(5,33), X(6,34), X(7,35), X(8,36),
X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28),
X(21,33), X(22,34), X(23,35), X(24,36), X(5,9), X(6,10), X(7,11), X(8,12),
X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28),
X(29,33), X(30,34), X(31,35), X(32,36), X(1,3), X(2,4), X(5,7), X(6,8),
X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24),
X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40),
X(3,33), X(4,34), X(7,37), X(8,38), X(3,17), X(4,18), X(7,21), X(8,22),
X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38),
X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22),
X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38),
X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18),
X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34),
X(35,37), X(36,38), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12),
X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28),
X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40), X(2,33), X(4,35),
X(6,37), X(8,39), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27),
X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(2,9), X(4,11),
X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27),
X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(2,5), X(4,7),
X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23),
X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39),
X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17),
X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33),
X(34,35), X(36,37), X(38,39)
};
S(42) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40),
X(9,41), X(10,42), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22),
X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30),
X(15,31), X(16,32), X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38),
X(23,39), X(24,40), X(25,41), X(26,42), X(1,9), X(2,10), X(3,11), X(4,12),
X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28),
X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(9,33), X(10,34),
X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40), X(9,17), X(10,18),
X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34),
X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40), X(1,5), X(2,6),
X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22),
X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38),
X(35,39), X(36,40), X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42),
X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28),
X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(5,9), X(6,10),
X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26),
X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(37,41), X(38,42),
X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16),
X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32),
X(33,35), X(34,36), X(37,39), X(38,40), X(3,33), X(4,34), X(7,37), X(8,38),
X(11,41), X(12,42), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26),
X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42),
X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22),
X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38),
X(35,41), X(36,42), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14),
X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30),
X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42), X(1,2), X(3,4),
X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20),
X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36),
X(37,38), X(39,40), X(41,42), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41),
X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31),
X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(2,9), X(4,11), X(6,13),
X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29),
X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(2,5), X(4,7),
X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23),
X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39),
X(38,41), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15),
X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31),
X(32,33), X(34,35), X(36,37), X(38,39), X(40,41)
};
S(44) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40),
X(9,41), X(10,42), X(11,43), X(12,44), X(1,17), X(2,18), X(3,19), X(4,20),
X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28),
X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34), X(19,35), X(20,36),
X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42), X(27,43), X(28,44),
X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16),
X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32),
X(33,41), X(34,42), X(35,43), X(36,44), X(9,33), X(10,34), X(11,35), X(12,36),
X(13,37), X(14,38), X(15,39), X(16,40), X(9,17), X(10,18), X(11,19), X(12,20),
X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36),
X(29,37), X(30,38), X(31,39), X(32,40), X(1,5), X(2,6), X(3,7), X(4,8),
X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24),
X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38), X(35,39), X(36,40),
X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44),
X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28),
X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44),
X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20),
X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36),
X(37,41), X(38,42), X(39,43), X(40,44), X(1,3), X(2,4), X(5,7), X(6,8),
X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24),
X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40),
X(41,43), X(42,44), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42),
X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30),
X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42), X(3,9), X(4,10),
X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26),
X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42),
X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18),
X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34),
X(35,37), X(36,38), X(39,41), X(40,42), X(1,2), X(3,4), X(5,6), X(7,8),
X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24),
X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40),
X(41,42), X(43,44), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41), X(12,43),
X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31),
X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(28,43), X(2,9), X(4,11),
X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27),
X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(36,43),
X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19),
X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35),
X(34,37), X(36,39), X(38,41), X(40,43), X(2,3), X(4,5), X(6,7), X(8,9),
X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25),
X(26,27), X(28,29), X(30,31), X(32,33), X(34,35), X(36,37), X(38,39), X(40,41),
X(42,43)
};
S(46) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40),
X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(1,17), X(2,18),
X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26),
X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34),
X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42),
X(27,43), X(28,44), X(29,45), X(30,46), X(1,9), X(2,10), X(3,11), X(4,12),
X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28),
X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(35,43), X(36,44),
X(37,45), X(38,46), X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38),
X(15,39), X(16,40), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22),
X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38),
X(31,39), X(32,40), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14),
X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30),
X(27,31), X(28,32), X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46),
X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44),
X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28),
X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44),
X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20),
X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36),
X(37,41), X(38,42), X(39,43), X(40,44), X(1,3), X(2,4), X(5,7), X(6,8),
X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24),
X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40),
X(41,43), X(42,44), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42),
X(15,45), X(16,46), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26),
X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42),
X(31,45), X(32,46), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18),
X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34),
X(31,37), X(32,38), X(35,41), X(36,42), X(39,45), X(40,46), X(3,5), X(4,6),
X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22),
X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38),
X(39,41), X(40,42), X(43,45), X(44,46), X(1,2), X(3,4), X(5,6), X(7,8),
X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24),
X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40),
X(41,42), X(43,44), X(45,46), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41),
X(12,43), X(14,45), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27),
X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(28,43),
X(30,45), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21),
X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37),
X(32,39), X(34,41), X(36,43), X(38,45), X(2,5), X(4,7), X(6,9), X(8,11),
X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27),
X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39), X(38,41), X(40,43),
X(42,45), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15),
X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31),
X(32,33), X(34,35), X(36,37), X(38,39), X(40,41), X(42,43), X(44,45)
};
S(48) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40),
X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(15,47), X(16,48),
X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24),
X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32),
X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40),
X(25,41), X(26,42), X(27,43), X(28,44), X(29,45), X(30,46), X(31,47), X(32,48),
X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16),
X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32),
X(33,41), X(34,42), X(35,43), X(36,44), X(37,45), X(38,46), X(39,47), X(40,48),
X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40),
X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24),
X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16),
X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32),
X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46), X(43,47), X(44,48),
X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44),
X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28),
X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44),
X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20),
X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36),
X(37,41), X(38,42), X(39,43), X(40,44), X(1,3), X(2,4), X(5,7), X(6,8),
X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24),
X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40),
X(41,43), X(42,44), X(45,47), X(46,48), X(3,33), X(4,34), X(7,37), X(8,38),
X(11,41), X(12,42), X(15,45), X(16,46), X(3,17), X(4,18), X(7,21), X(8,22),
X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38),
X(27,41), X(28,42), X(31,45), X(32,46), X(3,9), X(4,10), X(7,13), X(8,14),
X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30),
X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42), X(39,45), X(40,46),
X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18),
X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34),
X(35,37), X(36,38), X(39,41), X(40,42), X(43,45), X(44,46), X(1,2), X(3,4),
X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20),
X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36),
X(37,38), X(39,40), X(41,42), X(43,44), X(45,46), X(47,48), X(2,33), X(4,35),
X(6,37), X(8,39), X(10,41), X(12,43), X(14,45), X(16,47), X(2,17), X(4,19),
X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35),
X(22,37), X(24,39), X(26,41), X(28,43), X(30,45), X(32,47), X(2,9), X(4,11),
X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27),
X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(36,43),
X(38,45), X(40,47), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15),
X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31),
X(30,33), X(32,35), X(34,37), X(36,39), X(38,41), X(40,43), X(42,45), X(44,47),
X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17),
X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33),
X(34,35), X(36,37), X(38,39), X(40,41), X(42,43), X(44,45), X(46,47)
};
S(50) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40),
X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(15,47), X(16,48),
X(17,49), X(18,50), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22),
X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30),
X(15,31), X(16,32), X(33,49), X(34,50), X(17,33), X(18,34), X(19,35), X(20,36),
X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42), X(27,43), X(28,44),
X(29,45), X(30,46), X(31,47), X(32,48), X(1,9), X(2,10), X(3,11), X(4,12),
X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28),
X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(35,43), X(36,44),
X(37,45), X(38,46), X(39,47), X(40,48), X(9,33), X(10,34), X(11,35), X(12,36),
X(13,37), X(14,38), X(15,39), X(16,40), X(25,49), X(26,50), X(9,17), X(10,18),
X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34),
X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40), X(41,49), X(42,50),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16),
X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32),
X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46), X(43,47), X(44,48),
X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44),
X(21,49), X(22,50), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26),
X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42),
X(31,43), X(32,44), X(37,49), X(38,50), X(5,9), X(6,10), X(7,11), X(8,12),
X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28),
X(29,33), X(30,34), X(31,35), X(32,36), X(37,41), X(38,42), X(39,43), X(40,44),
X(45,49), X(46,50), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12),
X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28),
X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40), X(41,43), X(42,44),
X(45,47), X(46,48), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42),
X(15,45), X(16,46), X(19,49), X(20,50), X(3,17), X(4,18), X(7,21), X(8,22),
X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38),
X(27,41), X(28,42), X(31,45), X(32,46), X(35,49), X(36,50), X(3,9), X(4,10),
X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26),
X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42),
X(39,45), X(40,46), X(43,49), X(44,50), X(3,5), X(4,6), X(7,9), X(8,10),
X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26),
X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42),
X(43,45), X(44,46), X(47,49), X(48,50), X(1,2), X(3,4), X(5,6), X(7,8),
X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24),
X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40),
X(41,42), X(43,44), X(45,46), X(47,48), X(49,50), X(2,33), X(4,35), X(6,37),
X(8,39), X(10,41), X(12,43), X(14,45), X(16,47), X(18,49), X(2,17), X(4,19),
X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35),
X(22,37), X(24,39), X(26,41), X(28,43), X(30,45), X(32,47), X(34,49), X(2,9),
X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25),
X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41),
X(36,43), X(38,45), X(40,47), X(42,49), X(2,5), X(4,7), X(6,9), X(8,11),
X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27),
X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39), X(38,41), X(40,43),
X(42,45), X(44,47), X(46,49), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11),
X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27),
X(28,29), X(30,31), X(32,33), X(34,35), X(36,37), X(38,39), X(40,41), X(42,43),
X(44,45), X(46,47), X(48,49)
};
S(52) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40),
X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(15,47), X(16,48),
X(17,49), X(18,50), X(19,51), X(20,52), X(1,17), X(2,18), X(3,19), X(4,20),
X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28),
X(13,29), X(14,30), X(15,31), X(16,32), X(33,49), X(34,50), X(35,51), X(36,52),
X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40),
X(25,41), X(26,42), X(27,43), X(28,44), X(29,45), X(30,46), X(31,47), X(32,48),
X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16),
X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32),
X(33,41), X(34,42), X(35,43), X(36,44), X(37,45), X(38,46), X(39,47), X(40,48),
X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40),
X(25,49), X(26,50), X(27,51), X(28,52), X(9,17), X(10,18), X(11,19), X(12,20),
X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36),
X(29,37), X(30,38), X(31,39), X(32,40), X(41,49), X(42,50), X(43,51), X(44,52),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16),
X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32),
X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46), X(43,47), X(44,48),
X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44),
X(21,49), X(22,50), X(23,51), X(24,52), X(5,17), X(6,18), X(7,19), X(8,20),
X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36),
X(29,41), X(30,42), X(31,43), X(32,44), X(37,49), X(38,50), X(39,51), X(40,52),
X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20),
X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36),
X(37,41), X(38,42), X(39,43), X(40,44), X(45,49), X(46,50), X(47,51), X(48,52),
X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16),
X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32),
X(33,35), X(34,36), X(37,39), X(38,40), X(41,43), X(42,44), X(45,47), X(46,48),
X(49,51), X(50,52), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42),
X(15,45), X(16,46), X(19,49), X(20,50), X(3,17), X(4,18), X(7,21), X(8,22),
X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38),
X(27,41), X(28,42), X(31,45), X(32,46), X(35,49), X(36,50), X(3,9), X(4,10),
X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26),
X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42),
X(39,45), X(40,46), X(43,49), X(44,50), X(3,5), X(4,6), X(7,9), X(8,10),
X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26),
X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42),
X(43,45), X(44,46), X(47,49), X(48,50), X(1,2), X(3,4), X(5,6), X(7,8),
X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24),
X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40),
X(41,42), X(43,44), X(45,46), X(47,48), X(49,50), X(51,52), X(2,33), X(4,35),
X(6,37), X(8,39), X(10,41), X(12,43), X(14,45), X(16,47), X(18,49), X(20,51),
X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31),
X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(28,43), X(30,45), X(32,47),
X(34,49), X(36,51), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19),
X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35),
X(30,37), X(32,39), X(34,41), X(36,43), X(38,45), X(40,47), X(42,49), X(44,51),
X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19),
X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35),
X(34,37), X(36,39), X(38,41), X(40,43), X(42,45), X(44,47), X(46,49), X(48,51),
X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17),
X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33),
X(34,35), X(36,37), X(38,39), X(40,41), X(42,43), X(44,45), X(46,47), X(48,49),
X(50,51)
};
S(54) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40),
X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(15,47), X(16,48),
X(17,49), X(18,50), X(19,51), X(20,52), X(21,53), X(22,54), X(1,17), X(2,18),
X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26),
X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(33,49), X(34,50),
X(35,51), X(36,52), X(37,53), X(38,54), X(17,33), X(18,34), X(19,35), X(20,36),
X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42), X(27,43), X(28,44),
X(29,45), X(30,46), X(31,47), X(32,48), X(1,9), X(2,10), X(3,11), X(4,12),
X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28),
X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(35,43), X(36,44),
X(37,45), X(38,46), X(39,47), X(40,48), X(9,33), X(10,34), X(11,35), X(12,36),
X(13,37), X(14,38), X(15,39), X(16,40), X(25,49), X(26,50), X(27,51), X(28,52),
X(29,53), X(30,54), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22),
X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38),
X(31,39), X(32,40), X(41,49), X(42,50), X(43,51), X(44,52), X(45,53), X(46,54),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16),
X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32),
X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46), X(43,47), X(44,48),
X(49,53), X(50,54), X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42),
X(15,43), X(16,44), X(21,49), X(22,50), X(23,51), X(24,52), X(5,17), X(6,18),
X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34),
X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44), X(37,49), X(38,50),
X(39,51), X(40,52), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18),
X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34),
X(31,35), X(32,36), X(37,41), X(38,42), X(39,43), X(40,44), X(45,49), X(46,50),
X(47,51), X(48,52), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12),
X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28),
X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40), X(41,43), X(42,44),
X(45,47), X(46,48), X(49,51), X(50,52), X(3,33), X(4,34), X(7,37), X(8,38),
X(11,41), X(12,42), X(15,45), X(16,46), X(19,49), X(20,50), X(23,53), X(24,54),
X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30),
X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42), X(31,45), X(32,46),
X(35,49), X(36,50), X(39,53), X(40,54), X(3,9), X(4,10), X(7,13), X(8,14),
X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30),
X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42), X(39,45), X(40,46),
X(43,49), X(44,50), X(47,53), X(48,54), X(3,5), X(4,6), X(7,9), X(8,10),
X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26),
X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42),
X(43,45), X(44,46), X(47,49), X(48,50), X(51,53), X(52,54), X(1,2), X(3,4),
X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20),
X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36),
X(37,38), X(39,40), X(41,42), X(43,44), X(45,46), X(47,48), X(49,50), X(51,52),
X(53,54), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41), X(12,43), X(14,45),
X(16,47), X(18,49), X(20,51), X(22,53), X(2,17), X(4,19), X(6,21), X(8,23),
X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39),
X(26,41), X(28,43), X(30,45), X(32,47), X(34,49), X(36,51), X(38,53), X(2,9),
X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25),
X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41),
X(36,43), X(38,45), X(40,47), X(42,49), X(44,51), X(46,53), X(2,5), X(4,7),
X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23),
X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39),
X(38,41), X(40,43), X(42,45), X(44,47), X(46,49), X(48,51), X(50,53), X(2,3),
X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19),
X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35),
X(36,37), X(38,39), X(40,41), X(42,43), X(44,45), X(46,47), X(48,49), X(50,51),
X(52,53)
};
S(56) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40),
X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(15,47), X(16,48),
X(17,49), X(18,50), X(19,51), X(20,52), X(21,53), X(22,54), X(23,55), X(24,56),
X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24),
X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32),
X(33,49), X(34,50), X(35,51), X(36,52), X(37,53), X(38,54), X(39,55), X(40,56),
X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40),
X(25,41), X(26,42), X(27,43), X(28,44), X(29,45), X(30,46), X(31,47), X(32,48),
X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16),
X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32),
X(33,41), X(34,42), X(35,43), X(36,44), X(37,45), X(38,46), X(39,47), X(40,48),
X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40),
X(25,49), X(26,50), X(27,51), X(28,52), X(29,53), X(30,54), X(31,55), X(32,56),
X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24),
X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40),
X(41,49), X(42,50), X(43,51), X(44,52), X(45,53), X(46,54), X(47,55), X(48,56),
X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16),
X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32),
X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46), X(43,47), X(44,48),
X(49,53), X(50,54), X(51,55), X(52,56), X(5,33), X(6,34), X(7,35), X(8,36),
X(13,41), X(14,42), X(15,43), X(16,44), X(21,49), X(22,50), X(23,51), X(24,52),
X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28),
X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44),
X(37,49), X(38,50), X(39,51), X(40,52), X(5,9), X(6,10), X(7,11), X(8,12),
X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28),
X(29,33), X(30,34), X(31,35), X(32,36), X(37,41), X(38,42), X(39,43), X(40,44),
X(45,49), X(46,50), X(47,51), X(48,52), X(1,3), X(2,4), X(5,7), X(6,8),
X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24),
X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40),
X(41,43), X(42,44), X(45,47), X(46,48), X(49,51), X(50,52), X(53,55), X(54,56),
X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42), X(15,45), X(16,46),
X(19,49), X(20,50), X(23,53), X(24,54), X(3,17), X(4,18), X(7,21), X(8,22),
X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38),
X(27,41), X(28,42), X(31,45), X(32,46), X(35,49), X(36,50), X(39,53), X(40,54),
X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22),
X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38),
X(35,41), X(36,42), X(39,45), X(40,46), X(43,49), X(44,50), X(47,53), X(48,54),
X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18),
X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34),
X(35,37), X(36,38), X(39,41), X(40,42), X(43,45), X(44,46), X(47,49), X(48,50),
X(51,53), X(52,54), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12),
X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28),
X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40), X(41,42), X(43,44),
X(45,46), X(47,48), X(49,50), X(51,52), X(53,54), X(55,56), X(2,33), X(4,35),
X(6,37), X(8,39), X(10,41), X(12,43), X(14,45), X(16,47), X(18,49), X(20,51),
X(22,53), X(24,55), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27),
X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(28,43),
X(30,45), X(32,47), X(34,49), X(36,51), X(38,53), X(40,55), X(2,9), X(4,11),
X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27),
X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(36,43),
X(38,45), X(40,47), X(42,49), X(44,51), X(46,53), X(48,55), X(2,5), X(4,7),
X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23),
X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39),
X(38,41), X(40,43), X(42,45), X(44,47), X(46,49), X(48,51), X(50,53), X(52,55),
X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17),
X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33),
X(34,35), X(36,37), X(38,39), X(40,41), X(42,43), X(44,45), X(46,47), X(48,49),
X(50,51), X(52,53), X(54,55)
};
S(58) = {
X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40),
X(9,41), X(10,42), X(11,43), X(12,