Generated on Sat Jun 2 2018 07:17:44 for Gecode by doxygen 1.8.13
qcp.cpp
Go to the documentation of this file.
1 /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2 /*
3  * Main authors:
4  * Christian Schulte <schulte@gecode.org>
5  *
6  * Copyright:
7  * Christian Schulte, 2015
8  *
9  * This file is part of Gecode, the generic constraint
10  * development environment:
11  * http://www.gecode.org
12  *
13  * Permission is hereby granted, free of charge, to any person obtaining
14  * a copy of this software and associated documentation files (the
15  * "Software"), to deal in the Software without restriction, including
16  * without limitation the rights to use, copy, modify, merge, publish,
17  * distribute, sublicense, and/or sell copies of the Software, and to
18  * permit persons to whom the Software is furnished to do so, subject to
19  * the following conditions:
20  *
21  * The above copyright notice and this permission notice shall be
22  * included in all copies or substantial portions of the Software.
23  *
24  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31  *
32  */
33 
34 #include <gecode/driver.hh>
35 
36 #include <gecode/int.hh>
37 #include <gecode/minimodel.hh>
38 
39 using namespace Gecode;
40 
42 namespace {
43 
45  static const int n_seeds = 32;
47  static const unsigned int seeds[n_seeds] = {
48  4156683608, 97006981, 1375463525, 841714419,
49  715462902, 2418870981, 1624092856, 123015042,
50  2456879733, 1964065250, 2622145091, 3852245775,
51  205913142, 1921802200, 3118573517, 315803625,
52  1823610061, 3329660933, 3706705607, 2648334003,
53  424666975, 1774959171, 4178564660, 52701009,
54  2475642041, 2171371390, 1476278023, 2270518404,
55  2981774515, 910724046, 92053990, 1980563460
56  };
57 
58 
60  class QCPOptions : public InstanceOptions {
61  protected:
64  public:
66  QCPOptions(const char* s)
67  : InstanceOptions(s),
68  _tbf("tbf", "tie-breaking factor",0.0) {
69  // Add options
70  add(_tbf);
71  }
73  double tbf(void) const {
74  return _tbf.value();
75  }
77  void tbf(double d) {
78  _tbf.value(d);
79  }
80  };
81 
82 
84  extern const int* qcp[];
86  extern const char* name[];
87 
89  class Spec {
90  protected:
92  const int* data;
94  int info(int i, int j) const {
95  int n = data[0];
96  assert((i >= 0) && (i < n));
97  assert((j >= 0) && (j < n));
98  return data[1 + (i * n) + j];
99  }
101  static const int* find(const char* s) {
102  for (int i=0; name[i] != NULL; i++)
103  if (!strcmp(s,name[i]))
104  return qcp[i];
105  return NULL;
106  }
107  public:
109  bool valid(void) const {
110  return data != NULL;
111  }
113  Spec(const char* s) : data(find(s)) {}
115  int size(void) const {
116  return data[0];
117  }
119  bool assigned(int i, int j) const {
120  return info(i,j) > 0;
121  }
123  int val(int i, int j) const {
124  assert(assigned(i,j));
125  return info(i,j) - 1;
126  }
127  };
128 
129 }
130 
131 
138 class QCP : public Script {
139 protected:
141  const QCPOptions& opt;
143  const Spec spec;
147  double tbf;
148 public:
150  enum {
152  PROP_DISTINCT
153  };
155  enum {
158  };
160  QCP(const QCPOptions& opt0)
161  : Script(opt0),
162  opt(opt0), spec(opt.instance()),
163  e(*this, spec.size() * spec.size(), 0, spec.size()-1) {
164  // Problem size
165  int n = spec.size();
166  // Matrix for elements
167  Matrix<IntVarArray> m(e, n);
168 
169  // Assign fields
170  for (int i=0; i<n; i++)
171  for (int j=0; j<n; j++)
172  if (spec.assigned(i,j))
173  rel(*this, m(i,j) == spec.val(i,j));
174 
175  // Post constraints
176  switch (opt.propagation()) {
177  case PROP_BINARY:
178  for (int i=0; i<n; i++)
179  for (int k=0; k<n; k++)
180  for (int l=k+1; l<n; l++) {
181  rel(*this, m(i,k) != m(i,l));
182  rel(*this, m(k,i) != m(l,i));
183  }
184  break;
185  case PROP_DISTINCT:
186  for (int i=0; i<n; i++) {
187  distinct(*this, m.row(i), opt.ipl());
188  distinct(*this, m.col(i), opt.ipl());
189  }
190  break;
191  }
192 
193  if (opt.assets() == 0) {
194  // Post branchers directly, as no portfolio search requested
195  switch (opt.branching()) {
196  case BRANCH_SIZE:
197  branch(*this, e, INT_VAR_SIZE_MIN(), INT_VAL_MIN());
198  break;
199  case BRANCH_AFC_SIZE:
200  branch(*this, e, INT_VAR_AFC_SIZE_MAX(opt.decay()), INT_VAL_MIN());
201  break;
202  }
203  }
204  }
206  virtual bool slave(const MetaInfo& mi) {
207  if (mi.type() == MetaInfo::PORTFOLIO) {
208  double tbf = opt.tbf();
209  Rnd r(seeds[mi.asset() % n_seeds]);
210  switch (opt.branching()) {
211  case BRANCH_SIZE:
212  {
213  auto tbl =
214  [tbf] (const Space&, double w, double b) {
215  assert(w >= b);
216  return b + (w - b) * tbf;
217  };
218  branch(*this, e, tiebreak(INT_VAR_SIZE_MIN(tbl),
219  INT_VAR_RND(r)),
220  INT_VAL_MIN());
221  }
222  break;
223  case BRANCH_AFC_SIZE:
224  {
225  auto tbl =
226  [tbf] (const Space&, double w, double b) {
227  assert(b >= w);
228  return b - (b - w) * tbf;
229  };
230  branch(*this, e, tiebreak(INT_VAR_AFC_SIZE_MAX(opt.decay(), tbl),
231  INT_VAR_RND(r)),
232  INT_VAL_MIN());
233  }
234  break;
235  default: ;
236  }
237  }
238  return true;
239  }
241  QCP(QCP& s)
242  : Script(s), opt(s.opt), spec(s.spec) {
243  e.update(*this, s.e);
244  }
246  virtual Space*
247  copy(void) {
248  return new QCP(*this);
249  }
251  virtual void
252  print(std::ostream& os) const {
253  int n = spec.size();
254  Matrix<IntVarArray> m(e, n);
255 
256  for (int i=0; i<n; i++) {
257  os << "\t";
258  for (int j=0; j<n; j++) {
259  if (m(i,j).assigned())
260  os.width(2);
261  os << m(i,j) << " ";
262  }
263  os << std::endl;
264  }
265  }
266 };
267 
271 int
272 main(int argc, char* argv[]) {
273  QCPOptions opt("QCP");
274 
275  opt.branching(QCP::BRANCH_AFC_SIZE);
276  opt.branching(QCP::BRANCH_SIZE, "size");
277  opt.branching(QCP::BRANCH_AFC_SIZE, "afc");
278 
279  opt.propagation(QCP::PROP_DISTINCT);
280  opt.propagation(QCP::PROP_BINARY, "binary",
281  "only binary disequality constraints");
282  opt.propagation(QCP::PROP_DISTINCT, "distinct",
283  "distinct constraints");
284 
285  opt.instance(name[0]);
286 
287  opt.parse(argc,argv);
288  if (!Spec(opt.instance()).valid()) {
289  std::cerr << "Error: unkown instance" << std::endl;
290  return 1;
291  }
292  Script::run<QCP,DFS,QCPOptions>(opt);
293  return 0;
294 }
295 
296 namespace {
297 
298  /*
299  * Instances taken from the 2009 CSP competition.
300  */
301 
302  const int d10_67_0[] = {
303  // Size: 10 x 10
304  10,
305  // Pre-assigned fields
306  2,4,0,0,5,7,0,0,0,0,
307  0,6,0,4,0,0,0,3,0,0,
308  3,0,9,0,0,5,0,0,8,0,
309  0,0,2,10,7,0,0,0,0,0,
310  0,0,0,0,0,0,5,1,0,8,
311  4,0,0,0,0,0,3,6,0,0,
312  0,0,0,8,0,4,0,0,0,1,
313  0,5,0,3,8,0,0,0,0,0,
314  0,0,1,0,0,0,4,0,5,0,
315  0,0,0,0,0,6,0,8,9,3
316  };
317 
318  const int d10_67_10[] = {
319  // Size: 10 x 10
320  10,
321  // Pre-assigned fields
322  0,10,0,0,0,0,4,2,0,0,
323  0,0,0,3,8,0,0,0,6,0,
324  0,0,0,0,0,4,0,0,1,6,
325  1,6,8,5,0,0,0,0,0,0,
326  0,9,1,0,0,7,0,0,0,0,
327  0,0,0,0,5,0,7,1,4,0,
328  3,0,2,4,0,0,8,0,0,0,
329  4,0,0,0,2,0,0,0,0,5,
330  0,7,6,0,0,0,0,0,0,3,
331  0,0,0,0,0,10,6,4,0,0
332  };
333 
334  const int d10_67_11[] = {
335  // Size: 10 x 10
336  10,
337  // Pre-assigned fields
338  7,0,0,0,1,0,0,0,2,0,
339  0,0,7,0,0,0,9,0,0,6,
340  0,0,0,0,0,0,6,7,5,0,
341  9,3,0,7,0,0,0,0,0,2,
342  0,7,0,4,8,0,0,0,0,0,
343  0,1,10,0,0,0,3,0,0,0,
344  2,0,0,0,0,9,7,1,0,0,
345  0,0,1,0,0,7,0,3,8,0,
346  0,0,0,0,0,8,0,0,1,5,
347  0,9,0,6,7,0,0,0,0,0
348  };
349 
350  const int d10_67_12[] = {
351  // Size: 10 x 10
352  10,
353  // Pre-assigned fields
354  0,4,0,0,0,0,8,0,2,0,
355  0,5,7,0,9,0,0,0,0,0,
356  6,3,0,0,0,2,0,0,0,1,
357  0,0,6,0,7,0,0,8,0,0,
358  3,7,0,0,0,0,0,0,4,5,
359  4,0,0,0,0,0,0,2,6,0,
360  0,0,0,9,2,0,0,6,0,0,
361  0,0,0,1,0,7,6,0,0,0,
362  10,0,0,0,6,0,0,0,0,2,
363  0,0,4,5,0,6,3,0,0,0
364  };
365 
366  const int d10_67_13[] = {
367  // Size: 10 x 10
368  10,
369  // Pre-assigned fields
370  0,0,9,6,0,0,0,0,1,0,
371  0,3,0,0,4,0,0,0,10,0,
372  0,0,0,0,6,0,10,0,0,7,
373  0,0,0,7,0,8,0,10,3,0,
374  6,7,10,0,0,0,0,0,0,4,
375  7,0,0,10,0,0,4,0,0,0,
376  0,0,0,4,0,0,6,2,0,0,
377  0,0,5,0,10,0,0,3,0,0,
378  4,9,0,0,0,3,0,0,0,0,
379  9,8,0,0,0,2,0,0,0,1
380  };
381 
382  const int d10_67_14[] = {
383  // Size: 10 x 10
384  10,
385  // Pre-assigned fields
386  7,0,10,9,0,0,0,0,0,0,
387  3,0,0,8,0,0,0,0,9,0,
388  0,2,0,0,7,0,0,0,0,4,
389  9,0,0,10,0,0,2,0,0,0,
390  0,0,9,2,0,8,4,0,0,0,
391  0,0,5,0,1,0,9,8,0,0,
392  0,3,0,0,0,0,0,0,8,6,
393  0,0,0,0,0,5,0,7,0,9,
394  0,7,0,0,0,0,0,9,5,0,
395  0,6,0,0,2,1,5,0,0,0
396  };
397 
398  const int d10_67_1[] = {
399  // Size: 10 x 10
400  10,
401  // Pre-assigned fields
402  9,0,10,0,0,0,0,0,2,6,
403  0,8,0,1,0,0,6,3,0,0,
404  0,0,0,0,0,7,0,1,0,4,
405  10,0,0,0,0,3,0,0,6,0,
406  6,0,0,0,0,0,9,0,0,2,
407  0,0,0,4,6,2,0,0,0,0,
408  0,10,8,6,0,0,0,0,0,0,
409  0,0,0,0,5,0,4,0,1,0,
410  8,2,0,0,0,0,10,6,0,0,
411  0,0,1,0,10,0,0,0,7,0
412  };
413 
414  const int d10_67_2[] = {
415  // Size: 10 x 10
416  10,
417  // Pre-assigned fields
418  0,0,2,8,0,0,6,0,1,0,
419  6,8,0,0,0,0,0,4,0,0,
420  9,0,0,7,0,0,0,0,0,4,
421  0,0,0,6,0,0,3,0,0,10,
422  0,0,0,0,7,3,10,0,0,8,
423  0,0,5,0,0,2,0,3,0,0,
424  0,7,0,0,8,9,0,0,6,0,
425  5,0,0,0,0,0,0,6,7,0,
426  7,0,3,0,5,0,0,0,0,0,
427  0,2,0,0,0,8,0,0,9,0
428  };
429 
430  const int d10_67_3[] = {
431  // Size: 10 x 10
432  10,
433  // Pre-assigned fields
434  0,0,0,0,10,6,0,0,0,9,
435  0,0,0,1,8,0,2,0,0,0,
436  0,0,9,7,0,0,1,0,0,8,
437  4,9,0,2,0,0,0,0,7,0,
438  0,2,6,0,0,0,0,9,0,0,
439  0,0,1,9,0,0,5,0,0,0,
440  0,0,0,0,0,4,0,7,8,0,
441  10,8,0,0,0,0,0,0,6,0,
442  9,4,0,0,0,0,0,0,5,2,
443  0,0,0,0,5,8,0,3,0,0
444  };
445 
446  const int d10_67_4[] = {
447  // Size: 10 x 10
448  10,
449  // Pre-assigned fields
450  5,0,3,0,0,0,0,10,0,0,
451  0,0,5,0,0,0,2,0,3,10,
452  0,0,0,7,0,8,1,0,0,0,
453  10,5,0,0,1,0,0,0,0,0,
454  0,10,8,0,0,0,0,0,1,0,
455  0,0,1,3,0,0,0,9,0,6,
456  0,2,0,1,0,0,0,4,0,5,
457  0,0,0,0,5,9,0,0,10,0,
458  0,0,0,0,3,0,6,0,0,4,
459  8,0,0,0,0,6,0,0,5,0
460  };
461 
462  const int d10_67_5[] = {
463  // Size: 10 x 10
464  10,
465  // Pre-assigned fields
466  7,0,0,0,0,0,0,8,1,0,
467  0,0,6,1,0,0,0,0,0,2,
468  0,3,0,8,9,2,0,0,0,0,
469  0,0,0,0,7,4,0,0,0,10,
470  0,4,0,0,0,0,10,9,0,0,
471  0,0,1,0,0,0,0,0,6,5,
472  9,0,4,0,0,0,1,0,0,0,
473  0,5,0,4,0,8,0,0,10,0,
474  0,9,0,0,6,0,8,3,0,0,
475  5,0,0,0,0,3,0,0,9,0
476  };
477 
478  const int d10_67_6[] = {
479  // Size: 10 x 10
480  10,
481  // Pre-assigned fields
482  6,0,10,5,0,0,0,0,1,0,
483  0,0,0,0,2,5,0,0,7,0,
484  0,7,0,1,10,0,0,0,6,0,
485  0,0,7,0,0,0,4,0,9,0,
486  1,0,0,0,0,2,0,5,0,0,
487  0,8,5,0,0,0,0,0,0,7,
488  0,4,0,7,9,0,0,0,0,0,
489  0,0,0,0,0,7,10,6,0,0,
490  0,0,0,8,0,0,0,7,0,1,
491  7,0,0,0,0,0,1,8,0,2
492  };
493 
494  const int d10_67_7[] = {
495  // Size: 10 x 10
496  10,
497  // Pre-assigned fields
498  0,7,0,0,6,0,0,0,0,1,
499  0,1,4,0,0,0,0,3,0,6,
500  1,0,0,2,3,0,0,0,0,0,
501  2,0,0,3,0,8,0,0,0,0,
502  0,0,0,0,0,6,0,8,7,0,
503  0,0,6,0,0,0,4,0,3,0,
504  0,0,0,4,0,0,10,0,6,0,
505  0,10,8,0,1,9,0,0,0,0,
506  0,0,0,0,0,7,9,6,0,3,
507  6,0,0,0,0,0,0,7,0,4
508  };
509 
510  const int d10_67_8[] = {
511  // Size: 10 x 10
512  10,
513  // Pre-assigned fields
514  0,5,0,4,0,0,3,0,0,0,
515  0,0,0,0,7,0,2,0,0,4,
516  0,6,10,0,0,3,0,0,9,0,
517  4,0,0,0,0,7,0,0,3,10,
518  0,8,2,0,0,0,4,0,0,6,
519  8,0,0,10,0,0,0,6,0,0,
520  0,0,4,0,0,2,0,7,0,0,
521  3,0,0,0,2,0,10,0,0,0,
522  0,0,0,8,3,0,0,0,0,5,
523  0,0,0,0,0,4,0,5,2,0
524  };
525 
526  const int d10_67_9[] = {
527  // Size: 10 x 10
528  10,
529  // Pre-assigned fields
530  2,8,0,0,0,7,0,0,0,0,
531  0,5,0,8,0,2,0,0,0,6,
532  0,0,0,0,0,0,2,5,0,4,
533  4,0,0,0,2,0,3,1,0,0,
534  0,0,10,0,0,0,0,0,2,9,
535  0,0,8,9,0,0,0,0,5,0,
536  0,0,0,6,0,0,0,0,9,8,
537  0,0,4,0,9,6,0,0,1,0,
538  8,0,0,0,0,0,6,7,0,0,
539  0,2,0,0,8,0,0,9,0,0
540  };
541 
542  const int d15_120_0[] = {
543  // Size: 15 x 15
544  15,
545  // Pre-assigned fields
546  0,0,0,2,0,0,11,0,0,4,15,12,13,8,0,
547  0,7,2,0,0,0,0,13,15,0,1,0,4,9,0,
548  0,0,6,3,0,0,12,0,8,0,13,0,0,1,2,
549  0,0,1,7,0,6,3,0,0,2,0,9,0,11,0,
550  0,0,0,12,0,0,4,0,0,10,9,3,0,7,6,
551  13,0,0,0,7,2,6,0,5,0,14,8,0,0,0,
552  7,0,14,0,12,4,15,1,0,6,0,0,0,0,0,
553  15,4,8,0,9,5,0,0,0,0,0,11,0,0,10,
554  11,13,0,0,2,0,0,12,0,0,3,0,6,0,14,
555  0,3,10,11,0,0,14,0,9,0,0,2,1,0,0,
556  0,0,0,0,11,12,0,7,4,0,0,6,0,14,5,
557  0,8,11,4,0,7,0,0,0,3,0,0,2,0,15,
558  2,5,0,0,4,0,0,6,10,14,0,0,8,0,0,
559  5,6,0,0,0,0,0,8,0,13,7,0,9,0,4,
560  3,0,5,1,13,11,0,4,0,0,0,0,0,2,0
561  };
562 
563  const int d15_120_10[] = {
564  // Size: 15 x 15
565  15,
566  // Pre-assigned fields
567  0,0,8,14,1,0,7,0,4,10,0,0,0,0,9,
568  0,11,0,13,0,12,10,0,5,0,0,0,4,2,0,
569  0,7,11,0,0,0,8,0,3,2,0,0,0,6,10,
570  1,0,0,0,2,0,0,8,0,12,9,0,14,7,0,
571  2,0,0,0,0,11,1,7,0,0,14,0,12,0,15,
572  4,0,0,2,14,0,0,9,0,0,11,7,13,0,0,
573  12,0,0,0,10,0,0,0,14,9,4,6,1,0,0,
574  10,15,0,0,3,0,0,0,0,6,5,13,0,8,0,
575  0,0,2,0,0,1,0,3,0,0,15,9,0,0,11,
576  13,0,15,9,0,0,0,4,10,0,0,5,11,0,0,
577  0,9,12,0,0,14,0,0,0,0,0,8,10,5,4,
578  3,0,0,1,0,7,5,10,0,13,6,0,0,0,0,
579  0,3,7,0,9,5,15,6,1,0,0,0,0,11,0,
580  0,8,10,5,0,0,11,0,15,0,0,0,0,4,1,
581  0,4,0,11,8,15,0,0,0,7,0,2,0,0,5
582  };
583 
584  const int d15_120_11[] = {
585  // Size: 15 x 15
586  15,
587  // Pre-assigned fields
588  0,0,9,0,10,0,14,0,3,0,8,0,0,13,6,
589  7,0,0,8,0,0,0,0,1,11,9,4,14,0,0,
590  0,0,0,2,0,12,13,0,4,8,11,0,0,15,0,
591  0,2,0,11,6,15,0,14,0,0,0,9,0,0,1,
592  0,0,11,0,9,13,8,5,0,0,0,14,12,3,0,
593  13,1,12,0,0,0,6,7,0,0,0,0,0,2,3,
594  0,6,0,0,3,4,9,10,5,0,0,0,0,0,0,
595  4,0,0,0,0,10,0,9,8,2,15,0,0,0,13,
596  1,12,10,13,0,0,0,4,0,0,0,6,15,0,0,
597  8,15,0,6,0,2,0,0,0,7,0,3,1,0,0,
598  0,13,2,0,8,0,0,0,0,15,4,0,9,11,0,
599  3,0,0,10,7,14,2,0,0,0,1,0,0,5,0,
600  0,0,5,1,0,0,0,0,0,4,14,7,10,0,12,
601  2,8,0,0,0,0,11,6,14,1,0,0,0,0,15,
602  0,0,13,0,12,0,0,0,9,0,0,8,11,6,10
603  };
604 
605  const int d15_120_12[] = {
606  // Size: 15 x 15
607  15,
608  // Pre-assigned fields
609  0,0,6,8,9,0,7,0,10,0,0,0,2,4,0,
610  1,8,0,14,0,2,0,15,0,0,0,0,0,3,6,
611  0,6,9,0,0,5,3,4,0,0,11,0,0,0,7,
612  0,3,13,0,0,15,0,0,0,11,14,2,0,9,0,
613  10,7,0,5,1,11,0,0,0,0,0,0,14,0,9,
614  3,0,11,0,0,0,0,13,0,4,6,8,0,0,10,
615  0,0,12,7,5,13,14,0,0,2,0,4,0,0,0,
616  0,10,4,0,0,0,9,7,0,0,15,0,8,0,11,
617  0,0,0,4,0,0,6,1,8,0,3,10,7,0,0,
618  0,11,0,0,6,0,0,0,1,14,0,5,15,10,0,
619  2,13,0,12,0,0,0,0,11,0,4,14,0,7,0,
620  5,0,0,11,10,7,0,0,2,0,0,0,4,8,0,
621  14,0,0,0,0,6,0,0,4,8,0,12,5,0,0,
622  4,0,0,0,2,0,5,14,13,9,0,0,0,12,1,
623  0,0,1,0,13,0,4,10,0,7,8,0,0,0,15
624  };
625 
626  const int d15_120_13[] = {
627  // Size: 15 x 15
628  15,
629  // Pre-assigned fields
630  0,7,0,15,10,0,0,8,9,0,12,14,0,0,0,
631  0,0,5,2,0,12,8,0,0,7,0,0,11,0,4,
632  7,10,0,12,0,0,0,3,0,0,0,13,9,1,0,
633  0,0,9,0,14,10,3,11,0,0,0,5,0,6,0,
634  12,8,11,14,0,3,0,5,0,9,0,0,0,0,0,
635  6,0,12,5,3,0,0,15,13,0,2,0,0,0,0,
636  0,0,0,0,1,0,14,0,10,3,9,0,0,13,6,
637  0,0,4,0,0,9,1,0,12,0,0,6,2,5,0,
638  2,1,0,0,0,8,6,7,0,15,0,0,0,10,0,
639  0,4,14,0,0,0,0,0,2,8,5,0,12,0,11,
640  10,0,0,0,5,13,15,0,11,0,0,3,0,2,0,
641  15,9,2,0,0,0,0,0,8,0,11,0,14,0,1,
642  0,15,0,13,11,0,12,0,0,0,8,0,4,0,14,
643  0,0,0,9,4,0,0,6,0,2,0,10,0,15,13,
644  8,0,0,0,0,15,0,0,0,13,14,1,6,0,10
645  };
646 
647  const int d15_120_14[] = {
648  // Size: 15 x 15
649  15,
650  // Pre-assigned fields
651  1,0,9,0,0,13,2,10,0,0,0,14,0,0,0,
652  0,0,2,8,6,0,13,4,0,0,0,3,0,5,0,
653  8,11,5,0,0,0,0,0,0,13,6,0,0,1,3,
654  13,0,10,0,0,0,4,5,0,3,0,9,0,0,6,
655  5,3,0,11,13,0,12,0,7,0,0,0,0,2,0,
656  0,6,13,0,0,0,0,0,15,9,14,0,12,4,0,
657  11,14,0,0,12,6,8,0,2,4,0,0,0,3,0,
658  0,0,0,0,0,14,0,0,6,10,15,5,13,0,9,
659  0,0,0,0,4,12,0,9,8,0,0,2,15,0,7,
660  12,0,0,0,0,5,3,15,9,2,0,0,4,0,0,
661  0,0,0,4,1,0,0,0,0,12,9,7,2,0,15,
662  0,12,0,9,14,10,0,0,0,0,4,0,6,7,0,
663  15,10,0,3,11,0,0,0,0,0,0,0,9,14,12,
664  0,8,1,2,0,15,0,6,11,0,3,0,0,0,0,
665  0,0,11,13,0,0,7,1,0,0,5,4,0,0,14
666  };
667 
668  const int d15_120_1[] = {
669  // Size: 15 x 15
670  15,
671  // Pre-assigned fields
672  4,0,0,0,8,0,2,14,0,0,10,0,12,3,0,
673  7,0,0,0,13,0,14,0,3,8,0,9,0,0,4,
674  6,15,0,13,11,14,4,0,0,0,12,0,0,0,2,
675  5,0,0,10,0,12,6,8,0,0,0,0,7,13,0,
676  11,1,13,0,3,0,15,0,0,0,0,0,0,8,6,
677  0,0,14,3,0,0,0,0,1,0,0,11,10,15,0,
678  0,8,7,14,9,0,0,0,0,1,0,12,4,0,0,
679  15,9,0,0,10,13,0,5,6,2,0,0,0,0,0,
680  0,5,15,8,0,0,0,0,14,0,11,0,0,2,12,
681  0,0,12,0,0,0,7,9,0,5,0,13,2,14,0,
682  0,2,1,0,0,0,0,3,15,13,14,7,0,0,0,
683  0,0,4,1,0,10,0,12,0,14,9,0,0,0,11,
684  14,0,0,0,0,5,0,4,7,0,0,15,9,0,10,
685  0,6,0,15,0,7,0,0,0,3,2,8,0,0,13,
686  0,0,0,0,6,15,5,0,10,0,4,0,11,1,0
687  };
688 
689  const int d15_120_2[] = {
690  // Size: 15 x 15
691  15,
692  // Pre-assigned fields
693  5,0,0,4,0,9,10,0,2,3,14,0,0,0,0,
694  14,5,2,0,0,0,0,0,11,4,3,10,0,0,0,
695  11,10,0,5,0,12,7,14,0,0,0,0,13,0,0,
696  0,0,0,15,12,0,0,0,7,0,2,11,0,5,6,
697  0,13,0,0,0,0,0,7,3,0,8,14,0,6,9,
698  6,0,0,0,5,0,3,9,15,0,0,0,0,14,2,
699  3,0,0,0,0,11,4,0,13,2,0,0,1,0,14,
700  0,1,13,2,3,14,0,0,0,0,5,0,0,10,0,
701  0,0,5,0,9,6,0,15,0,10,0,13,3,0,0,
702  7,0,1,13,0,0,9,6,0,11,0,0,8,0,0,
703  2,0,11,0,7,0,0,4,6,0,0,5,0,8,0,
704  0,14,0,0,10,15,0,0,0,7,13,0,0,3,11,
705  0,8,9,0,4,2,12,0,0,0,0,0,15,7,0,
706  0,4,15,14,0,0,0,0,0,0,7,3,6,0,13,
707  0,0,0,1,0,0,13,11,0,14,0,15,9,0,12
708  };
709 
710  const int d15_120_3[] = {
711  // Size: 15 x 15
712  15,
713  // Pre-assigned fields
714  0,0,13,14,0,0,0,6,0,1,9,0,0,10,2,
715  2,0,10,5,0,0,0,13,14,12,6,0,0,0,0,
716  0,0,0,8,4,6,9,0,0,0,0,13,0,1,10,
717  0,0,0,0,7,5,1,8,0,0,12,0,10,0,14,
718  11,2,0,15,0,0,0,12,0,0,0,10,13,8,0,
719  10,7,0,0,0,2,0,0,0,0,0,3,12,11,13,
720  14,0,0,0,3,9,5,0,10,15,0,0,0,0,7,
721  9,0,5,0,0,0,0,0,15,7,1,8,0,0,12,
722  1,0,4,3,0,0,15,14,12,0,0,0,0,0,6,
723  5,13,3,0,0,0,8,0,0,0,0,12,1,4,0,
724  0,0,0,1,10,3,0,0,0,8,14,7,4,0,0,
725  0,4,0,0,0,0,0,11,2,0,5,15,14,6,0,
726  0,6,12,0,1,15,10,0,9,0,13,0,0,0,0,
727  0,3,0,6,14,11,0,0,4,9,0,0,2,0,0,
728  0,5,11,0,6,0,7,9,0,10,0,0,0,13,0
729  };
730 
731  const int d15_120_4[] = {
732  // Size: 15 x 15
733  15,
734  // Pre-assigned fields
735  15,0,0,3,2,0,4,0,0,6,0,0,0,13,9,
736  12,10,0,9,0,13,0,0,0,0,1,11,15,0,0,
737  0,0,9,10,1,0,8,0,0,12,0,0,7,0,5,
738  5,0,3,0,9,0,0,6,7,13,0,0,8,0,0,
739  0,4,0,0,3,14,0,8,0,0,12,0,0,2,6,
740  0,0,0,0,8,0,9,3,0,5,15,6,0,11,0,
741  0,9,0,0,0,4,1,0,0,0,2,0,14,0,10,
742  0,0,6,1,0,11,3,5,0,0,0,7,0,15,0,
743  0,6,1,0,10,12,0,13,14,0,7,0,0,0,0,
744  0,0,0,0,0,0,5,0,12,3,8,14,4,7,1,
745  6,0,14,8,0,15,0,0,5,7,0,0,0,1,0,
746  14,8,0,0,0,0,11,7,13,0,0,12,1,0,0,
747  8,7,0,0,0,5,0,11,0,0,14,0,2,0,15,
748  13,0,2,15,5,0,0,0,11,1,0,8,0,0,0,
749  0,11,13,5,0,0,0,0,10,0,0,3,0,8,12
750  };
751 
752  const int d15_120_5[] = {
753  // Size: 15 x 15
754  15,
755  // Pre-assigned fields
756  7,4,0,0,0,9,0,14,0,0,2,0,13,3,0,
757  0,8,4,0,0,1,10,0,0,11,0,14,0,0,13,
758  2,0,15,0,1,5,7,0,8,0,0,0,0,0,6,
759  8,11,0,0,0,0,12,0,3,0,9,0,5,7,0,
760  0,13,5,10,0,7,3,0,0,0,0,0,11,0,9,
761  0,0,0,5,6,14,9,13,15,0,0,1,0,0,0,
762  0,10,14,0,15,8,0,2,7,0,0,0,0,4,0,
763  0,1,0,0,0,0,0,8,0,4,7,5,0,10,14,
764  0,0,0,3,5,0,0,12,9,8,10,0,0,2,0,
765  15,0,0,0,3,0,0,0,2,6,5,11,12,0,0,
766  13,0,0,9,0,0,6,0,0,0,0,15,2,11,12,
767  0,0,0,6,14,13,15,9,0,0,0,0,4,0,3,
768  5,0,13,8,4,0,0,15,0,0,0,9,1,0,0,
769  12,15,7,0,0,0,1,0,11,5,3,0,0,0,0,
770  0,0,1,13,0,0,0,0,0,12,8,6,0,9,10
771  };
772 
773  const int d15_120_6[] = {
774  // Size: 15 x 15
775  15,
776  // Pre-assigned fields
777  13,0,7,11,0,12,0,0,3,5,0,6,0,0,0,
778  0,13,0,0,3,0,0,12,11,0,7,0,1,0,15,
779  0,0,3,5,0,8,7,0,0,0,2,10,0,0,4,
780  15,0,1,0,11,2,9,14,0,0,0,0,0,5,0,
781  4,6,0,0,0,0,0,5,0,0,0,12,8,15,10,
782  0,0,10,6,0,11,0,0,0,14,0,1,3,9,0,
783  0,15,0,0,12,3,0,6,8,0,9,0,7,0,0,
784  7,11,0,0,0,0,0,0,14,10,5,2,0,0,12,
785  11,0,0,0,0,0,4,0,10,9,3,8,0,0,0,
786  0,8,0,14,10,0,0,13,9,12,0,0,15,0,1,
787  0,0,0,7,15,13,3,10,0,0,12,0,6,0,0,
788  0,0,0,2,0,0,5,9,1,8,0,0,0,7,14,
789  0,7,15,4,2,1,8,0,0,0,0,0,0,13,0,
790  2,9,6,0,0,0,0,0,0,0,4,0,10,1,13,
791  12,0,2,0,5,0,6,0,0,11,0,15,0,3,0
792  };
793 
794  const int d15_120_7[] = {
795  // Size: 15 x 15
796  15,
797  // Pre-assigned fields
798  10,0,0,0,0,6,4,0,0,5,0,9,0,8,15,
799  0,0,11,14,0,12,3,0,0,0,0,0,6,2,8,
800  0,14,2,0,0,0,0,0,6,3,0,11,8,0,13,
801  9,0,0,2,0,0,8,1,0,0,4,15,11,0,0,
802  3,2,0,0,4,0,0,0,0,0,0,10,15,14,12,
803  12,0,0,9,5,7,0,0,0,0,6,4,0,1,0,
804  0,0,4,0,0,5,15,3,2,11,0,0,9,0,0,
805  0,1,0,5,10,0,14,0,0,12,0,0,0,3,9,
806  0,0,0,0,0,0,11,5,12,0,1,13,3,7,0,
807  1,6,0,0,14,0,0,11,8,0,12,0,0,10,0,
808  4,15,0,0,0,2,0,6,0,13,7,0,0,0,1,
809  0,11,5,1,8,13,0,0,3,0,0,0,12,0,0,
810  0,0,8,3,1,4,0,0,0,14,13,0,0,0,10,
811  0,0,3,15,0,0,13,4,5,0,11,8,0,0,0,
812  5,8,12,0,7,0,0,10,14,9,0,0,0,0,0
813  };
814 
815  const int d15_120_8[] = {
816  // Size: 15 x 15
817  15,
818  // Pre-assigned fields
819  0,0,5,11,0,6,0,12,0,0,0,0,3,15,9,
820  8,0,9,0,0,12,0,0,0,13,5,0,0,0,2,
821  7,0,0,8,9,11,3,10,0,0,15,0,0,0,12,
822  0,0,1,12,0,7,9,0,0,8,0,2,0,0,10,
823  4,0,8,3,0,0,7,0,0,1,0,0,0,13,11,
824  0,6,7,0,0,0,11,2,8,0,1,0,0,5,0,
825  0,13,0,9,0,0,10,5,6,0,4,7,0,0,0,
826  5,0,0,0,2,0,0,13,3,0,0,12,15,7,0,
827  0,8,6,2,10,0,0,0,4,0,0,3,1,0,0,
828  11,0,0,0,0,13,0,15,0,12,0,6,0,8,14,
829  0,12,0,0,14,4,0,0,5,6,7,0,10,0,0,
830  0,9,0,0,8,15,0,11,0,3,2,0,0,14,0,
831  0,11,0,10,5,0,8,0,9,0,0,1,4,0,0,
832  13,15,11,0,0,0,0,0,10,0,0,4,7,9,0,
833  15,0,0,0,6,0,5,0,0,11,13,0,2,0,4
834  };
835 
836  const int d15_120_9[] = {
837  // Size: 15 x 15
838  15,
839  // Pre-assigned fields
840  0,0,1,10,3,0,0,14,0,0,0,0,5,8,12,
841  9,15,0,8,0,0,0,13,7,0,0,1,0,0,6,
842  6,14,0,7,0,3,0,0,0,13,0,0,4,0,11,
843  12,10,0,0,0,0,0,0,0,11,3,4,2,0,15,
844  0,0,0,13,9,11,10,0,2,0,12,7,0,0,0,
845  0,0,10,9,0,8,0,2,11,0,0,0,3,5,0,
846  0,0,0,0,14,6,5,0,8,0,13,2,12,0,0,
847  0,0,11,0,0,13,3,0,5,8,0,15,0,14,0,
848  0,1,0,0,5,0,8,6,0,9,2,0,0,7,0,
849  4,7,0,0,0,9,1,0,0,6,0,0,0,15,5,
850  0,3,9,0,0,7,0,0,1,12,0,14,0,0,10,
851  0,0,15,5,13,0,14,0,3,0,0,12,0,0,1,
852  10,0,6,0,0,0,4,8,0,7,14,0,0,2,0,
853  15,0,0,0,2,0,0,4,0,0,1,0,7,3,13,
854  0,9,2,4,1,0,0,5,0,0,10,0,15,0,0
855  };
856 
857  const int d20_187_0[] = {
858  // Size: 20 x 20
859  20,
860  // Pre-assigned fields
861  10,0,0,2,15,14,16,4,19,0,17,0,0,0,0,0,0,9,18,6,
862  0,5,15,19,2,1,12,0,6,0,4,0,7,0,0,0,0,20,13,0,
863  0,17,9,0,0,20,14,0,7,8,6,3,0,0,11,12,0,0,0,18,
864  18,0,11,8,20,0,0,0,0,17,12,0,6,2,0,16,7,0,0,0,
865  0,0,16,6,0,17,3,0,0,0,0,0,19,1,9,18,10,7,0,8,
866  14,15,5,0,9,0,0,0,0,16,0,11,1,4,13,0,0,0,3,0,
867  6,0,7,17,5,0,18,3,0,14,0,0,10,0,19,2,0,0,0,11,
868  0,19,0,0,7,6,8,12,18,0,20,0,0,0,17,0,0,0,5,16,
869  0,20,0,0,11,0,0,18,16,0,13,0,4,10,8,9,17,0,0,0,
870  16,0,4,0,17,0,11,0,0,20,18,19,5,15,0,0,0,3,0,1,
871  15,9,0,0,0,13,0,0,0,3,0,4,14,6,5,0,12,0,10,7,
872  11,8,0,3,19,4,0,14,0,15,0,0,9,7,6,0,0,12,0,0,
873  0,18,17,20,0,7,0,0,0,5,0,14,0,13,2,10,3,4,0,0,
874  5,3,18,0,1,0,0,19,8,0,11,0,0,0,0,14,2,0,7,0,
875  20,1,0,0,0,11,6,0,13,19,0,12,0,0,7,0,0,18,16,10,
876  0,0,10,11,0,12,4,8,14,9,15,17,0,0,0,6,19,0,0,0,
877  0,0,14,18,0,0,15,16,0,0,0,10,12,0,0,19,9,11,17,2,
878  0,12,0,9,0,0,10,0,4,0,1,6,0,0,0,17,14,13,19,0,
879  0,0,0,14,12,0,0,15,10,0,0,7,0,9,1,0,0,19,8,20,
880  4,0,0,0,0,2,0,1,15,12,3,5,13,19,0,0,8,0,0,17
881  };
882 
883  const int d20_187_10[] = {
884  // Size: 20 x 20
885  20,
886  // Pre-assigned fields
887  4,0,1,0,9,15,0,0,5,0,14,12,18,17,0,0,13,0,19,0,
888  19,0,0,20,0,11,18,15,0,0,7,8,0,9,0,6,0,10,3,0,
889  0,0,10,18,13,0,0,4,14,0,0,0,17,0,3,8,16,0,6,0,
890  15,1,0,8,0,0,13,0,12,11,6,0,4,0,0,0,0,3,2,20,
891  10,0,11,9,14,5,2,0,0,13,15,0,6,0,0,0,0,20,1,0,
892  13,10,0,0,17,0,0,0,9,1,0,0,8,0,20,16,5,0,4,0,
893  0,6,0,19,18,0,0,3,10,0,12,0,0,7,16,0,14,0,17,0,
894  20,0,0,11,3,19,0,12,8,0,0,16,0,15,0,13,0,0,10,1,
895  9,20,0,5,0,0,10,0,0,17,0,0,16,0,8,0,4,6,0,15,
896  0,17,3,15,0,2,0,6,7,8,19,0,0,0,5,0,0,18,9,0,
897  2,13,0,0,0,4,3,17,0,20,9,0,1,10,0,0,15,0,0,11,
898  0,0,0,0,0,13,8,11,4,7,0,1,0,20,6,12,18,0,0,16,
899  0,14,4,0,0,0,0,9,20,0,0,7,12,0,13,18,0,0,5,19,
900  0,0,18,3,0,20,16,7,0,19,0,2,0,0,10,14,17,8,0,0,
901  18,0,13,0,10,7,0,0,3,0,0,15,9,11,0,2,0,12,0,5,
902  11,19,0,12,4,14,0,0,18,0,17,0,0,0,0,20,2,5,0,0,
903  0,18,12,0,11,0,1,16,0,5,4,17,0,14,19,0,0,7,0,0,
904  3,0,19,10,0,17,0,0,0,16,5,11,2,12,0,0,6,0,0,7,
905  0,0,14,0,7,0,5,0,0,10,0,9,0,8,15,11,0,17,0,4,
906  0,8,16,0,1,0,17,14,0,0,13,20,3,2,0,4,0,0,0,10
907  };
908 
909  const int d20_187_11[] = {
910  // Size: 20 x 20
911  20,
912  // Pre-assigned fields
913  8,0,0,0,9,20,0,14,5,13,0,0,15,0,0,19,11,0,18,17,
914  14,0,0,2,1,0,12,0,0,19,10,0,8,0,0,17,0,9,7,16,
915  0,0,12,8,0,0,2,17,0,0,18,0,9,5,19,0,0,6,0,3,
916  9,11,0,19,4,0,0,0,14,5,0,0,0,0,13,1,12,0,0,7,
917  15,0,0,14,12,18,0,0,0,0,0,13,19,4,0,0,8,0,11,10,
918  0,14,3,15,0,11,4,0,0,0,0,12,20,8,1,0,10,0,0,13,
919  17,0,0,4,2,3,7,13,0,0,0,6,0,10,0,0,0,1,0,19,
920  16,0,15,0,0,0,0,20,2,4,8,19,18,0,5,0,0,0,13,6,
921  3,8,0,17,19,4,14,0,10,0,7,0,13,0,0,0,16,0,12,0,
922  4,7,0,0,0,10,0,6,12,0,0,2,0,9,14,8,15,0,16,0,
923  10,0,17,0,0,12,0,0,0,0,19,9,4,0,6,0,1,2,14,11,
924  0,0,13,0,0,5,10,11,9,20,0,7,0,19,2,15,0,0,0,12,
925  0,3,6,0,0,2,0,0,16,0,13,4,0,0,0,18,7,5,1,0,
926  0,18,16,0,3,0,0,8,11,0,4,0,0,13,0,0,5,10,17,0,
927  0,9,0,7,20,1,0,2,15,12,16,0,0,14,11,0,0,0,0,4,
928  19,20,4,18,11,0,16,10,0,0,0,0,0,6,0,3,0,17,0,0,
929  0,19,5,20,0,0,13,12,0,6,0,16,0,11,18,0,2,8,0,0,
930  0,0,9,12,0,8,0,15,0,18,2,0,16,0,17,14,0,19,3,0,
931  5,0,14,0,7,0,20,0,8,16,0,10,11,0,0,6,3,18,0,0,
932  0,4,0,0,18,0,19,0,7,3,12,11,14,0,20,2,0,0,15,0
933  };
934 
935  const int d20_187_12[] = {
936  // Size: 20 x 20
937  20,
938  // Pre-assigned fields
939  0,0,16,0,0,18,13,20,0,9,14,0,0,15,4,0,0,1,0,10,
940  0,0,0,5,14,7,0,9,4,8,1,16,13,0,0,0,0,0,19,17,
941  0,0,11,4,17,1,0,19,0,20,7,14,10,2,0,0,0,0,0,6,
942  0,14,12,16,0,19,0,0,0,0,0,0,3,8,1,11,0,7,4,15,
943  18,0,0,11,13,3,5,0,17,0,16,0,14,0,12,8,20,0,0,0,
944  0,17,0,10,12,6,3,0,0,0,0,2,18,14,0,16,0,0,9,4,
945  11,13,0,0,0,0,0,7,15,0,0,1,0,0,5,14,6,0,18,20,
946  4,11,7,15,0,0,12,0,0,0,0,10,0,1,3,6,0,2,8,0,
947  12,0,4,0,0,0,16,3,14,0,0,0,20,19,0,9,0,10,15,18,
948  0,0,20,0,0,4,0,14,18,1,13,11,2,0,0,0,17,19,0,0,
949  10,19,0,0,2,0,1,0,0,16,3,0,0,18,7,0,0,17,12,0,
950  0,8,0,1,0,5,7,0,9,15,0,0,11,20,17,0,19,0,0,12,
951  1,0,3,0,6,0,0,0,0,0,20,17,12,13,8,0,5,4,0,14,
952  16,0,18,6,0,17,11,0,0,3,5,0,0,4,0,10,2,0,7,0,
953  5,6,0,0,16,0,0,12,0,0,0,9,0,0,18,3,7,20,2,1,
954  0,0,9,0,0,16,17,0,3,13,8,0,0,7,0,4,0,18,10,0,
955  8,0,0,13,0,0,9,2,10,17,0,19,7,0,11,0,15,0,0,0,
956  6,12,0,17,18,14,0,11,5,0,0,4,0,0,0,19,9,0,0,3,
957  0,18,0,9,4,0,15,6,0,12,0,13,0,0,0,0,11,14,3,0,
958  0,9,17,0,5,0,0,10,13,0,11,0,1,0,2,7,18,15,0,0
959  };
960 
961  const int d20_187_13[] = {
962  // Size: 20 x 20
963  20,
964  // Pre-assigned fields
965  1,0,8,14,0,0,0,10,0,0,19,7,0,18,0,20,16,0,5,12,
966  0,19,10,0,13,7,0,0,0,0,17,12,6,0,9,0,2,18,0,5,
967  4,2,0,9,20,0,0,0,13,5,16,0,0,19,0,0,8,11,0,7,
968  9,0,7,19,0,8,0,0,0,0,0,0,10,17,0,0,13,20,6,4,
969  11,20,0,6,0,0,18,1,16,2,13,0,9,15,0,0,0,0,0,3,
970  0,11,0,0,3,9,0,14,0,0,6,0,0,1,0,19,12,17,18,0,
971  2,0,0,7,0,13,0,15,0,0,18,16,3,0,14,5,0,0,9,6,
972  0,0,9,0,0,0,3,6,0,16,2,0,8,0,4,10,0,0,15,18,
973  6,0,1,12,0,16,0,0,15,0,10,8,14,0,5,0,19,0,4,0,
974  0,13,0,0,2,6,1,0,11,0,7,4,16,0,19,0,0,15,0,0,
975  17,0,12,0,0,19,13,0,18,14,0,0,0,5,0,3,1,2,0,10,
976  12,4,0,0,0,15,5,3,8,0,0,1,0,10,0,18,17,0,7,0,
977  0,0,0,8,0,14,4,0,0,11,0,18,0,0,20,16,15,12,3,0,
978  20,6,18,13,4,0,10,12,0,8,0,0,17,0,0,0,0,3,0,19,
979  0,1,0,0,11,20,17,0,6,3,0,9,19,8,18,0,0,0,12,0,
980  7,14,15,16,8,0,0,18,0,20,0,0,0,11,10,13,0,0,0,0,
981  0,0,19,0,0,0,16,11,7,12,20,3,13,0,0,14,5,10,0,0,
982  0,18,14,2,5,0,9,0,19,0,0,11,0,0,3,0,10,7,0,8,
983  0,0,0,0,19,0,15,20,9,17,0,0,0,2,16,11,0,13,14,1,
984  19,16,3,20,15,0,0,0,17,0,0,14,2,4,0,1,0,0,0,0
985  };
986 
987  const int d20_187_14[] = {
988  // Size: 20 x 20
989  20,
990  // Pre-assigned fields
991  13,11,3,0,0,14,16,7,20,0,0,4,0,0,0,0,0,5,12,0,
992  12,0,0,18,2,0,0,0,16,19,0,0,10,5,0,4,14,11,8,0,
993  15,2,0,0,7,0,0,0,0,8,0,14,0,11,6,17,16,0,20,0,
994  0,0,0,0,0,0,7,15,10,17,16,0,8,0,0,11,6,2,13,0,
995  20,7,0,1,16,0,15,19,0,0,0,17,0,10,0,5,0,12,0,11,
996  14,6,4,0,0,17,0,0,0,2,9,0,0,0,18,0,10,0,1,5,
997  19,10,0,0,0,0,2,14,0,5,0,18,0,17,0,6,1,15,0,20,
998  0,14,7,20,15,0,8,0,11,13,0,0,5,12,0,0,0,19,0,0,
999  0,0,13,0,20,15,3,0,0,0,18,0,0,19,4,10,17,14,0,12,
1000  0,18,8,0,4,13,0,0,6,0,3,12,17,16,1,0,19,0,0,0,
1001  0,15,0,19,17,4,0,9,0,0,1,0,6,0,0,2,0,0,18,3,
1002  0,0,9,6,19,5,0,2,0,1,0,13,12,14,10,0,0,0,3,0,
1003  3,0,0,0,0,20,1,18,9,0,19,0,0,6,0,15,11,0,16,17,
1004  10,3,0,0,8,0,0,4,1,6,15,0,11,0,0,13,0,0,5,2,
1005  0,5,12,14,0,2,0,0,8,0,10,1,13,0,20,0,0,17,19,0,
1006  0,0,20,10,14,6,19,0,0,18,17,0,3,0,16,7,0,0,0,4,
1007  0,0,14,4,0,0,0,8,18,10,0,20,0,0,11,0,7,16,2,19,
1008  2,0,0,0,0,18,17,11,0,7,14,9,15,0,5,19,0,0,0,10,
1009  5,13,11,17,0,7,14,0,15,0,0,3,0,1,19,0,0,10,0,0,
1010  4,0,0,9,0,0,6,13,5,0,2,0,20,0,3,0,18,1,0,0
1011  };
1012 
1013  const int d20_187_1[] = {
1014  // Size: 20 x 20
1015  20,
1016  // Pre-assigned fields
1017  0,6,18,0,16,4,17,0,0,9,3,0,0,0,0,2,0,0,19,13,
1018  0,7,0,13,0,20,0,0,8,16,0,1,18,0,17,14,0,0,4,15,
1019  6,20,3,0,0,14,0,18,17,4,7,16,0,0,0,13,0,0,0,0,
1020  0,0,8,15,0,16,12,19,11,0,0,2,0,0,0,18,0,17,0,1,
1021  1,11,20,17,0,0,3,0,0,6,0,4,0,8,9,0,0,0,16,5,
1022  3,17,0,0,18,7,10,0,19,0,0,0,16,0,0,8,15,1,0,4,
1023  8,0,15,0,0,5,0,12,0,14,11,0,10,4,0,0,18,2,9,0,
1024  5,0,16,0,0,15,0,17,13,1,0,0,7,3,4,0,0,19,0,0,
1025  15,0,0,7,0,1,0,0,6,13,16,20,0,19,0,0,11,8,0,0,
1026  0,18,0,0,3,0,0,0,16,0,14,0,19,0,8,4,10,9,5,0,
1027  0,8,2,19,4,0,9,15,5,12,10,0,14,0,11,0,0,0,0,0,
1028  9,0,0,14,0,8,2,4,0,0,18,0,11,20,19,0,7,0,17,0,
1029  0,0,19,0,8,9,0,0,20,0,0,17,15,1,6,0,4,5,0,14,
1030  0,0,0,12,6,11,0,2,0,5,19,15,0,9,1,0,0,0,8,20,
1031  0,1,9,4,12,0,0,6,0,0,0,0,20,0,0,11,19,3,7,17,
1032  0,4,11,18,13,0,15,0,0,20,5,14,0,0,0,16,0,7,2,0,
1033  17,16,0,0,0,0,0,5,0,0,2,12,0,18,10,9,0,20,6,3,
1034  11,0,0,6,15,0,19,14,0,0,0,3,12,7,2,0,5,16,0,0,
1035  16,10,5,8,1,0,4,0,18,0,0,0,9,0,0,12,3,0,0,7,
1036  0,0,0,0,17,0,6,7,10,0,4,18,0,5,20,0,16,0,15,0
1037  };
1038 
1039  const int d20_187_2[] = {
1040  // Size: 20 x 20
1041  20,
1042  // Pre-assigned fields
1043  0,10,6,19,0,0,7,0,18,5,0,0,14,2,0,11,0,0,0,20,
1044  12,0,1,4,0,7,0,0,2,0,16,0,0,0,11,8,15,0,6,3,
1045  0,7,19,0,0,0,17,0,0,15,1,0,20,5,0,0,12,16,4,10,
1046  18,0,10,11,16,0,9,7,0,0,14,2,0,0,15,0,0,0,8,4,
1047  0,1,5,14,0,17,0,0,9,0,0,0,4,19,7,12,0,3,0,0,
1048  0,0,0,0,11,0,20,9,10,6,2,5,16,7,0,0,0,0,12,19,
1049  0,5,0,18,0,11,0,4,0,20,0,8,3,13,0,9,2,0,0,17,
1050  13,0,9,3,8,15,0,0,6,0,0,18,2,0,4,20,14,0,0,0,
1051  0,18,0,10,15,5,3,11,0,0,19,0,0,17,2,0,0,0,0,12,
1052  0,15,17,0,2,19,0,0,0,9,0,3,0,11,8,18,0,0,10,0,
1053  3,12,13,20,0,8,0,0,0,0,0,17,0,0,0,19,1,11,5,9,
1054  17,13,0,5,0,18,0,0,11,0,7,4,0,15,6,0,3,10,0,0,
1055  0,0,0,0,18,6,10,16,20,2,11,13,0,0,5,14,0,12,0,0,
1056  0,0,0,0,17,0,19,15,0,1,0,0,0,0,3,16,6,14,13,2,
1057  6,0,0,17,19,0,16,0,0,13,20,0,10,12,0,0,4,15,1,0,
1058  7,0,20,0,0,13,0,18,16,0,5,0,12,0,0,6,9,2,3,0,
1059  19,0,8,13,20,0,1,0,0,10,15,12,0,0,0,0,5,0,14,7,
1060  16,11,18,0,12,0,5,8,13,19,0,14,7,0,0,0,0,6,0,0,
1061  20,14,0,0,0,0,13,2,4,11,18,0,6,0,17,0,0,19,0,0,
1062  4,2,0,0,1,14,0,3,0,0,0,0,0,9,10,17,7,0,0,13
1063  };
1064 
1065  const int d20_187_3[] = {
1066  // Size: 20 x 20
1067  20,
1068  // Pre-assigned fields
1069  6,0,0,0,0,0,3,13,5,15,9,18,0,16,2,0,0,1,0,0,
1070  0,13,0,10,8,16,0,0,0,9,0,4,15,0,11,0,20,14,0,5,
1071  8,0,2,16,0,0,0,11,1,0,15,19,0,0,0,0,6,0,17,18,
1072  0,3,0,0,12,2,0,10,0,0,19,0,9,4,8,15,11,16,0,0,
1073  7,0,0,0,11,0,1,5,3,8,0,14,2,0,0,4,13,0,0,20,
1074  16,0,0,0,0,4,0,12,8,14,0,2,3,11,7,10,0,0,0,9,
1075  11,12,6,17,0,0,0,0,0,4,10,0,0,5,0,2,0,19,0,15,
1076  2,17,0,5,3,11,0,0,0,16,0,0,18,0,12,8,1,0,0,0,
1077  19,9,1,0,0,15,14,0,12,17,6,0,0,0,18,0,4,0,3,0,
1078  10,20,0,9,0,0,5,16,0,0,8,13,0,7,0,1,0,4,19,0,
1079  0,0,0,15,19,0,0,0,11,13,7,6,0,12,0,0,10,17,2,4,
1080  0,15,8,12,9,0,0,18,0,7,13,0,1,0,16,17,0,3,0,0,
1081  0,10,13,0,0,0,0,6,0,2,0,7,14,18,20,16,0,9,8,0,
1082  1,0,15,4,0,0,12,8,20,0,0,0,0,10,0,3,9,0,13,16,
1083  3,0,9,0,20,13,8,0,0,0,0,0,11,19,0,0,14,12,18,2,
1084  0,0,0,18,17,9,7,0,15,0,12,8,0,0,4,6,0,0,20,0,
1085  0,0,20,0,5,18,15,4,16,6,0,0,0,3,14,9,0,0,1,0,
1086  0,0,18,0,10,0,4,9,2,0,0,12,13,20,15,0,0,0,0,19,
1087  13,16,0,19,7,1,0,0,0,0,0,11,6,0,0,0,17,8,15,14,
1088  0,8,3,0,0,6,20,0,19,0,18,0,16,0,0,0,15,11,12,0
1089  };
1090 
1091  const int d20_187_4[] = {
1092  // Size: 20 x 20
1093  20,
1094  // Pre-assigned fields
1095  0,0,0,0,20,14,12,0,11,2,0,0,9,13,1,0,0,8,19,6,
1096  15,20,0,0,0,3,0,0,0,9,17,0,4,12,5,14,0,16,13,0,
1097  0,0,17,10,0,0,2,0,1,0,0,14,8,6,0,19,7,4,0,9,
1098  13,7,3,0,9,0,4,18,0,5,0,0,0,19,15,0,0,2,0,0,
1099  16,0,0,20,0,0,19,0,5,12,2,0,6,18,0,0,0,0,9,11,
1100  0,10,14,11,3,0,0,8,9,19,12,0,0,4,0,15,0,0,5,0,
1101  0,11,0,14,4,18,0,13,17,3,0,0,0,0,7,6,0,19,0,0,
1102  14,0,0,0,11,17,0,1,0,0,15,5,20,0,0,4,2,0,8,0,
1103  6,16,0,15,0,7,0,11,0,0,1,10,12,3,0,0,4,0,0,13,
1104  0,0,12,1,14,0,13,2,0,0,6,9,17,0,0,0,5,15,20,0,
1105  0,0,13,0,10,0,15,0,8,16,20,0,19,0,9,7,18,0,0,12,
1106  0,3,19,9,0,16,14,0,0,10,0,8,5,0,0,0,12,7,0,18,
1107  1,19,6,0,0,0,9,7,0,0,0,17,14,0,8,0,0,11,16,5,
1108  12,0,0,4,5,2,17,0,3,0,0,7,0,0,0,13,19,0,15,0,
1109  17,0,0,0,18,13,0,19,12,6,0,0,0,0,2,5,16,3,0,15,
1110  19,0,0,17,0,0,0,10,0,18,8,11,0,1,4,0,15,0,3,0,
1111  4,2,9,5,12,0,0,14,15,0,0,0,0,8,10,18,0,0,0,20,
1112  0,15,4,0,0,0,16,17,6,0,7,13,0,10,14,20,9,0,0,0,
1113  0,0,8,0,0,12,0,0,0,4,5,1,16,2,6,0,0,17,11,3,
1114  0,14,20,16,8,11,1,0,0,0,13,3,0,0,0,0,10,0,2,0
1115  };
1116 
1117  const int d20_187_5[] = {
1118  // Size: 20 x 20
1119  20,
1120  // Pre-assigned fields
1121  18,6,3,13,0,7,20,8,0,0,11,0,0,0,0,14,0,15,0,0,
1122  0,0,11,0,5,3,0,17,1,0,0,12,2,7,0,6,18,0,0,20,
1123  0,0,4,0,19,12,9,15,0,10,0,0,14,0,11,8,6,13,0,0,
1124  20,0,2,0,0,0,0,0,10,4,17,8,0,0,14,3,5,12,0,16,
1125  0,8,0,2,0,11,0,19,0,12,3,14,15,16,0,0,0,0,20,17,
1126  2,4,0,0,11,0,6,0,5,0,0,0,0,1,10,17,0,19,3,0,
1127  6,12,10,3,0,16,0,0,0,19,15,2,0,13,5,0,0,0,14,0,
1128  0,0,1,0,0,8,0,10,0,13,6,7,19,17,0,0,3,0,0,14,
1129  0,0,0,5,20,9,0,7,0,16,0,0,13,0,18,0,10,0,15,8,
1130  7,0,0,11,6,19,18,5,0,0,20,17,0,0,0,10,9,0,1,0,
1131  0,1,0,0,4,0,0,0,8,11,7,0,0,5,17,16,0,20,12,9,
1132  3,0,9,8,0,6,0,0,13,0,14,0,0,18,20,15,1,0,0,0,
1133  13,10,0,0,12,0,2,0,14,17,0,11,7,20,8,0,0,0,9,0,
1134  0,3,15,0,13,0,4,6,0,14,8,19,0,0,0,20,0,10,16,0,
1135  8,7,17,0,0,0,0,0,9,0,0,18,0,15,3,5,19,14,10,0,
1136  4,17,0,10,7,0,0,1,0,3,9,16,18,0,0,0,11,0,0,12,
1137  0,0,13,0,0,0,14,20,15,6,0,0,3,8,16,0,0,5,0,4,
1138  16,0,14,17,3,0,12,0,18,0,0,0,0,19,6,0,7,2,0,10,
1139  0,16,0,14,17,0,1,0,0,0,10,0,8,0,0,0,20,3,4,7,
1140  1,2,0,12,0,10,19,4,17,0,0,3,11,0,0,7,0,0,5,0
1141  };
1142 
1143  const int d20_187_6[] = {
1144  // Size: 20 x 20
1145  20,
1146  // Pre-assigned fields
1147  1,0,0,15,3,0,0,7,6,0,0,17,13,0,4,0,20,0,19,0,
1148  0,7,0,0,20,2,12,0,0,0,0,9,6,18,13,0,11,0,8,14,
1149  18,0,16,0,11,0,0,0,1,0,10,20,15,13,14,0,0,0,4,3,
1150  0,0,6,17,4,5,0,8,16,11,0,0,0,3,0,1,9,2,0,0,
1151  0,5,11,4,12,15,0,0,2,3,17,0,20,0,0,7,0,0,0,0,
1152  15,9,12,16,0,0,0,19,0,0,0,0,18,14,3,2,0,1,0,7,
1153  0,4,0,0,7,18,0,1,0,6,0,2,3,0,0,16,0,17,10,15,
1154  0,15,10,0,0,4,18,0,0,1,11,0,0,0,8,5,12,0,17,0,
1155  13,2,19,0,0,12,9,0,0,16,20,0,0,15,6,0,0,11,0,8,
1156  0,12,3,14,0,17,2,6,0,13,0,0,0,19,0,0,0,4,16,11,
1157  9,8,20,0,0,0,4,0,7,0,18,1,0,5,0,12,10,3,0,0,
1158  0,14,0,6,13,0,17,0,11,0,0,19,5,8,0,0,3,0,0,4,
1159  20,0,18,0,0,0,3,0,8,17,1,16,4,0,0,11,0,0,0,19,
1160  7,0,0,20,0,14,0,18,0,9,0,10,0,11,16,0,13,15,0,2,
1161  0,0,0,19,5,20,0,9,0,14,2,18,0,4,7,0,0,0,12,10,
1162  12,0,0,10,0,0,0,2,14,0,4,8,19,0,0,13,16,5,0,0,
1163  0,16,0,3,19,0,0,5,18,0,15,0,0,6,0,10,0,14,7,20,
1164  2,0,14,0,0,0,11,10,0,12,6,0,7,0,0,19,15,8,18,0,
1165  11,19,0,0,0,16,20,0,0,7,0,0,14,0,12,17,8,9,13,0,
1166  14,0,0,0,6,10,1,17,15,0,0,12,0,0,20,0,5,0,2,0
1167  };
1168 
1169  const int d20_187_7[] = {
1170  // Size: 20 x 20
1171  20,
1172  // Pre-assigned fields
1173  3,10,14,5,0,0,0,7,0,0,9,0,1,6,13,8,0,11,0,0,
1174  18,0,9,20,0,14,0,10,0,0,0,7,4,0,0,0,12,0,2,15,
1175  0,1,0,0,12,19,0,0,13,4,0,0,0,3,10,0,14,7,15,11,
1176  0,14,0,0,9,0,5,0,0,15,8,0,0,12,4,18,13,1,10,0,
1177  11,17,18,0,1,0,0,2,19,0,0,0,13,5,0,9,6,0,0,0,
1178  0,11,0,1,0,0,8,4,15,0,5,0,2,17,0,0,0,13,14,6,
1179  1,0,0,4,6,0,17,0,10,7,19,0,9,8,0,16,2,0,0,0,
1180  14,0,12,19,0,10,0,0,8,20,0,0,17,0,0,4,15,6,18,0,
1181  4,0,11,6,0,16,2,5,0,0,0,15,0,0,0,0,8,17,13,20,
1182  16,20,0,13,19,3,1,0,12,8,18,17,0,0,0,7,0,0,0,0,
1183  0,0,0,17,0,0,3,0,4,9,11,0,0,14,0,15,0,16,5,18,
1184  10,2,5,0,0,0,15,20,16,17,0,19,3,13,0,1,0,0,0,0,
1185  0,0,16,0,0,13,0,11,0,3,14,10,7,15,0,0,5,19,0,12,
1186  0,0,0,18,5,17,12,0,0,13,2,0,0,16,6,3,20,0,0,7,
1187  15,0,6,3,0,0,13,1,0,10,0,20,16,0,11,0,0,8,7,0,
1188  0,9,17,0,13,0,0,0,0,0,7,0,18,19,5,6,11,0,0,4,
1189  0,16,3,0,11,8,7,6,0,0,0,4,0,0,17,0,0,9,20,0,
1190  0,0,0,16,3,20,9,17,0,0,0,1,0,0,12,19,0,0,8,5,
1191  19,8,0,0,14,4,0,12,5,1,0,3,0,0,7,0,0,15,0,9,
1192  13,18,2,0,7,0,0,0,1,0,10,5,15,0,14,0,3,0,0,0
1193  };
1194 
1195  const int d20_187_8[] = {
1196  // Size: 20 x 20
1197  20,
1198  // Pre-assigned fields
1199  7,16,8,19,0,0,0,5,4,0,0,0,11,3,12,9,0,0,0,18,
1200  0,0,7,18,0,0,0,20,0,3,0,8,10,9,0,0,13,14,1,17,
1201  18,0,13,0,9,0,8,4,11,0,0,0,3,12,0,5,16,6,0,0,
1202  14,3,2,9,0,0,0,10,0,0,0,4,0,0,1,0,11,18,17,6,
1203  0,0,12,8,0,0,9,3,1,0,0,15,13,19,14,6,0,0,0,0,
1204  4,0,18,0,13,0,6,14,7,0,0,12,16,0,20,3,0,0,8,0,
1205  0,13,0,15,0,3,10,0,8,0,5,0,0,0,9,0,4,20,7,1,
1206  10,19,3,0,0,9,0,0,14,2,7,18,0,4,17,0,0,0,0,20,
1207  0,0,10,0,12,18,0,7,16,17,0,0,0,0,0,13,6,2,19,11,
1208  6,18,0,11,0,0,0,12,0,0,0,13,17,15,2,7,0,0,20,5,
1209  0,4,5,2,15,12,14,0,0,0,3,0,0,18,0,1,19,7,0,0,
1210  0,2,0,20,0,4,0,0,17,7,13,0,5,16,11,0,15,0,9,0,
1211  9,6,0,12,5,13,15,0,0,20,4,0,0,0,0,0,7,0,14,0,
1212  11,0,6,0,4,8,17,0,0,9,16,14,1,2,0,19,0,0,0,0,
1213  20,0,0,14,0,17,0,8,10,0,12,1,0,0,0,0,9,11,3,19,
1214  0,8,0,10,14,0,2,9,0,12,0,3,0,0,16,0,0,0,5,4,
1215  0,0,0,0,17,6,7,18,0,10,15,0,19,5,0,0,0,1,13,0,
1216  5,0,17,0,0,0,13,0,0,14,1,20,8,0,0,2,12,0,0,3,
1217  17,0,0,0,20,0,5,0,18,1,0,7,15,0,0,8,14,13,0,0,
1218  0,9,0,0,1,16,0,0,2,0,20,0,0,7,15,14,0,4,0,8
1219  };
1220 
1221  const int d20_187_9[] = {
1222  // Size: 20 x 20
1223  20,
1224  // Pre-assigned fields
1225  0,6,0,0,1,0,12,0,5,7,19,0,0,15,9,0,17,0,14,0,
1226  4,0,0,2,7,0,19,0,0,0,18,6,8,5,0,12,0,0,20,0,
1227  5,0,16,18,0,8,0,13,0,12,14,0,0,0,10,0,0,11,9,0,
1228  0,9,0,0,17,16,6,0,0,0,0,11,5,3,8,0,0,10,12,4,
1229  0,10,2,11,0,18,0,3,8,0,0,1,0,0,15,0,9,5,0,16,
1230  0,5,0,10,9,0,0,17,7,0,3,18,11,16,0,2,0,0,0,15,
1231  13,3,20,0,11,0,0,14,0,5,0,2,0,8,0,0,15,4,0,0,
1232  1,0,0,0,0,20,11,12,4,0,2,0,9,19,14,0,18,0,17,0,
1233  0,14,19,0,13,6,0,0,0,15,0,0,0,7,20,4,3,1,0,8,
1234  0,2,0,12,0,7,5,0,0,3,0,15,14,0,16,0,19,20,1,0,
1235  6,4,0,0,12,0,10,0,0,0,11,17,18,0,0,20,5,0,0,3,
1236  0,0,12,15,0,0,14,7,11,17,0,0,4,0,0,0,20,8,6,1,
1237  2,0,4,13,0,0,0,5,1,10,17,0,16,18,0,19,0,0,0,9,
1238  10,0,14,0,0,2,18,20,0,6,9,0,0,0,17,8,0,3,4,0,
1239  0,0,17,9,0,11,8,15,3,13,4,0,0,0,18,10,2,0,0,0,
1240  0,19,6,4,0,5,15,0,9,8,0,0,20,0,0,7,0,0,11,0,
1241  0,0,15,1,20,0,0,16,17,0,0,7,10,13,0,0,6,0,18,2,
1242  9,7,0,0,8,0,13,0,6,0,1,4,0,0,11,3,0,12,0,0,
1243  15,0,1,16,4,14,0,19,0,0,6,12,0,9,0,13,0,0,0,5,
1244  11,15,0,0,0,1,0,0,16,0,0,9,0,0,12,14,10,2,5,20
1245  };
1246 
1247  const int d25_264_0[] = {
1248  // Size: 25 x 25
1249  25,
1250  // Pre-assigned fields
1251  6,13,17,0,0,15,10,0,0,4,7,3,0,2,0,0,22,25,14,0,0,1,0,18,19,
1252  22,0,7,4,0,0,0,0,14,17,0,25,0,0,0,0,15,20,3,1,11,0,12,5,13,
1253  0,4,12,0,18,24,17,0,2,11,20,19,0,0,15,0,0,0,0,8,22,25,0,10,16,
1254  20,0,15,19,0,0,5,1,10,2,0,11,0,24,25,14,16,21,0,0,13,0,0,0,18,
1255  2,9,14,0,22,0,0,20,23,24,0,0,0,25,16,4,0,12,17,10,6,0,0,11,0,
1256  3,2,11,20,7,0,6,5,12,0,23,0,18,0,0,0,0,0,0,17,0,24,16,0,4,
1257  0,0,0,6,12,0,7,13,0,0,0,16,0,14,22,5,25,0,8,2,19,21,0,9,10,
1258  14,8,0,5,0,7,0,22,13,0,3,0,23,0,19,0,21,0,0,16,0,11,1,0,17,
1259  0,20,9,12,8,11,1,7,4,0,0,13,0,0,10,0,0,0,6,0,5,0,21,2,0,
1260  0,0,0,0,0,0,0,0,18,1,6,0,25,0,8,20,4,14,21,3,15,9,22,19,2,
1261  0,7,0,0,1,0,21,0,0,0,0,5,0,0,11,16,2,10,0,13,14,17,15,8,22,
1262  1,11,0,0,15,17,23,0,0,3,8,22,0,21,7,24,13,0,10,6,9,0,0,0,0,
1263  11,0,4,0,5,21,2,24,0,18,19,6,0,13,0,1,0,9,0,14,25,0,0,0,0,
1264  5,1,22,11,23,16,0,0,0,0,0,15,0,3,0,9,20,0,25,0,0,2,0,14,8,
1265  12,0,24,0,3,6,0,10,1,16,25,0,13,0,0,21,8,23,0,5,18,22,0,0,0,
1266  8,0,21,0,0,5,14,0,0,15,17,0,20,11,0,0,6,0,18,22,24,4,2,1,0,
1267  0,22,0,0,14,20,16,0,7,12,13,4,21,18,23,11,0,0,0,0,0,0,9,24,0,
1268  0,0,0,15,19,0,0,16,22,0,0,14,11,20,0,8,12,4,0,0,17,3,25,0,21,
1269  16,0,0,8,20,0,0,23,0,13,2,0,12,19,14,22,0,17,0,0,3,0,0,7,9,
1270  7,6,0,14,0,4,15,3,9,21,0,0,10,17,20,0,0,0,12,18,0,0,19,0,0,
1271  10,24,0,25,0,18,0,0,15,19,0,0,2,0,5,13,0,8,23,0,0,12,6,0,3,
1272  0,23,8,0,0,1,0,21,6,0,9,24,16,5,13,0,14,11,0,0,0,19,0,4,0,
1273  0,25,19,23,16,0,4,12,0,0,21,0,7,8,3,0,18,13,2,0,10,0,5,0,0,
1274  4,0,3,17,0,8,25,0,0,0,11,0,1,6,0,23,0,16,19,15,0,5,7,0,24,
1275  0,0,0,13,0,25,0,11,5,20,1,18,8,0,0,10,0,2,4,19,0,0,24,21,0
1276  };
1277 
1278  const int d25_264_10[] = {
1279  // Size: 25 x 25
1280  25,
1281  // Pre-assigned fields
1282  0,24,0,0,4,5,0,21,0,20,9,19,1,0,0,6,0,0,0,16,0,25,3,8,12,
1283  22,17,25,0,0,2,19,0,20,5,1,16,0,18,6,23,0,0,0,24,8,0,15,0,0,
1284  0,22,0,0,0,16,0,17,24,7,10,0,25,15,0,0,21,1,13,8,0,19,0,18,23,
1285  10,4,0,15,9,0,12,7,0,0,3,13,0,0,11,17,25,0,21,0,0,2,18,0,22,
1286  19,5,10,0,18,23,0,0,13,16,0,6,0,17,0,0,2,21,8,7,0,0,0,9,0,
1287  0,0,8,19,2,0,24,3,11,0,0,0,4,0,16,5,0,23,0,12,0,18,7,0,20,
1288  0,14,0,25,17,9,0,0,0,10,0,8,12,0,0,18,22,0,6,3,4,16,0,0,13,
1289  1,0,14,0,0,0,20,0,0,17,4,15,5,13,23,8,0,3,0,0,11,0,9,16,2,
1290  8,20,0,17,0,0,0,11,18,0,0,23,0,4,0,16,7,10,24,0,0,1,13,3,6,
1291  21,15,3,0,0,0,6,2,16,0,17,0,0,9,0,0,12,25,0,0,14,7,0,24,10,
1292  0,19,0,24,11,20,4,0,15,0,7,12,13,16,0,9,18,0,25,0,0,22,0,2,0,
1293  6,0,4,0,0,0,1,0,22,25,20,0,8,0,14,11,5,0,0,0,19,10,12,17,0,
1294  3,0,20,1,7,10,0,15,0,11,0,0,19,0,0,0,0,2,0,14,5,21,24,6,9,
1295  0,0,11,12,24,0,22,23,19,0,25,2,9,14,18,0,17,0,16,1,0,0,0,0,8,
1296  16,0,0,21,22,4,0,0,3,8,0,0,0,1,5,10,6,0,23,0,18,17,0,20,19,
1297  25,21,7,14,0,0,16,10,0,9,6,20,0,0,15,0,0,24,4,0,1,0,19,0,0,
1298  0,2,0,20,0,0,14,6,0,12,19,0,11,0,10,7,8,17,3,0,9,0,0,25,0,
1299  0,0,17,5,0,14,3,0,7,18,0,22,0,10,20,0,15,0,0,11,0,0,6,12,24,
1300  0,0,1,0,0,8,0,19,17,3,16,4,0,21,12,20,24,14,0,0,13,0,22,0,0,
1301  18,0,0,16,1,6,0,0,4,0,0,10,14,23,24,0,0,12,15,25,21,0,5,0,0,
1302  4,0,16,23,10,0,0,0,0,0,2,0,15,0,25,24,0,18,22,0,7,14,0,13,21,
1303  23,12,13,0,0,22,10,0,14,0,8,7,2,5,0,0,19,0,17,20,25,0,21,0,0,
1304  0,1,0,2,23,15,0,5,25,4,21,24,0,3,22,0,0,6,0,13,0,12,0,0,0,
1305  7,16,18,0,12,0,17,8,0,0,0,0,0,0,0,4,11,22,0,6,20,9,10,21,25,
1306  0,0,9,0,20,25,8,18,0,0,0,0,21,2,19,15,0,0,5,10,23,3,0,22,0
1307  };
1308 
1309  const int d25_264_11[] = {
1310  // Size: 25 x 25
1311  25,
1312  // Pre-assigned fields
1313  0,7,1,23,18,22,0,0,19,0,12,25,0,16,0,4,8,0,0,0,5,0,13,21,0,
1314  15,14,0,0,0,10,2,22,4,19,7,0,9,13,20,18,5,0,0,0,0,0,23,0,0,
1315  0,1,3,0,20,18,0,19,0,8,2,0,15,0,0,25,24,11,6,22,0,9,0,23,0,
1316  22,0,14,0,0,3,18,13,0,9,1,0,12,0,0,17,0,25,19,7,0,20,24,2,0,
1317  2,16,20,4,5,14,11,0,21,15,0,0,17,19,0,0,13,0,0,1,0,7,0,0,0,
1318  0,10,6,25,0,0,8,17,5,0,20,0,0,0,1,2,16,15,0,0,0,0,7,9,23,
1319  0,9,4,8,25,0,19,24,0,18,6,7,0,17,22,0,11,0,0,13,16,0,12,0,0,
1320  1,0,0,0,0,2,7,0,3,0,0,13,0,15,8,20,0,14,23,9,12,11,4,5,0,
1321  9,21,25,0,10,16,20,0,0,0,0,11,0,0,24,0,6,19,14,4,13,0,22,0,0,
1322  23,0,0,16,0,17,1,14,10,12,0,15,18,20,0,0,0,0,0,2,21,6,0,0,13,
1323  24,0,0,2,13,8,25,0,0,0,0,17,0,4,18,9,0,20,0,0,0,19,11,6,16,
1324  0,0,0,20,9,6,0,7,15,0,3,14,0,11,0,8,10,0,5,21,0,13,19,0,1,
1325  0,0,0,3,2,0,4,9,14,0,17,16,0,0,21,24,0,7,22,0,6,0,0,8,11,
1326  10,0,0,0,0,0,12,21,16,0,0,2,7,0,0,3,22,23,4,0,8,0,25,20,19,
1327  19,0,2,0,23,0,22,0,20,10,24,6,11,0,0,12,0,0,0,3,0,5,0,13,4,
1328  0,0,13,11,15,0,0,4,0,7,16,0,0,3,14,0,19,1,0,0,22,2,0,25,21,
1329  0,18,7,6,17,12,0,0,0,4,0,8,22,2,5,0,0,13,16,10,0,25,0,0,0,
1330  11,6,0,0,0,15,0,2,0,0,18,0,0,0,10,1,25,24,0,5,23,3,9,22,17,
1331  16,0,0,0,0,0,10,1,22,0,0,0,21,25,23,0,12,8,13,0,2,18,3,0,5,
1332  13,3,9,19,0,11,0,5,18,22,0,23,14,0,2,16,0,0,8,0,7,0,0,0,0,
1333  3,0,5,0,1,0,0,18,0,11,0,10,13,14,7,0,0,4,21,15,17,0,0,12,20,
1334  0,4,22,7,0,0,17,0,0,24,0,18,0,9,13,6,2,0,15,25,0,14,10,0,8,
1335  0,8,0,22,21,0,0,0,13,3,11,20,16,1,0,0,0,12,9,0,14,0,18,10,25,
1336  20,5,0,0,16,13,0,15,24,2,22,0,1,0,3,0,18,0,0,0,19,17,0,7,9,
1337  25,15,8,17,3,24,9,0,0,14,23,0,10,0,0,5,0,18,12,16,0,0,0,19,0
1338  };
1339 
1340  const int d25_264_12[] = {
1341  // Size: 25 x 25
1342  25,
1343  // Pre-assigned fields
1344  11,0,0,22,18,0,0,5,0,8,3,0,4,2,23,0,15,0,25,20,0,14,19,10,0,
1345  3,8,22,20,0,0,2,0,17,1,13,12,23,18,0,0,4,0,0,0,10,5,16,0,0,
1346  24,9,21,0,15,3,0,0,10,0,17,0,13,12,0,6,0,0,22,2,0,23,20,0,0,
1347  0,0,0,23,20,25,6,1,16,19,0,14,0,0,18,8,24,0,21,0,12,0,3,0,13,
1348  0,1,24,0,13,12,18,0,11,0,0,3,0,0,0,0,0,25,0,6,14,10,4,2,23,
1349  16,24,0,12,8,19,0,21,0,6,0,17,5,0,14,0,0,13,15,0,0,0,23,0,20,
1350  0,0,5,6,0,0,23,0,13,0,4,15,10,0,0,0,14,0,19,24,16,12,0,25,18,
1351  0,0,16,0,14,0,11,0,22,0,24,0,1,8,21,3,20,19,0,13,7,2,0,0,25,
1352  5,13,3,0,16,2,17,0,25,23,0,0,19,6,0,21,7,0,0,0,0,0,0,14,9,
1353  23,0,15,0,12,14,20,0,0,2,0,24,18,0,0,0,0,4,11,8,5,6,21,0,0,
1354  21,0,0,0,3,15,7,17,0,0,0,0,0,0,19,14,11,8,12,0,20,16,13,0,2,
1355  19,16,14,0,0,0,0,20,0,24,21,7,0,23,13,15,3,6,9,0,0,25,0,0,17,
1356  14,4,23,5,10,0,0,18,3,0,0,22,0,0,17,9,8,0,16,0,0,15,0,19,1,
1357  6,0,12,15,1,16,0,19,20,4,0,13,21,0,0,0,0,0,10,5,17,0,0,0,11,
1358  0,12,25,0,6,11,0,0,15,3,10,2,22,16,8,0,0,5,0,7,21,0,0,13,0,
1359  12,5,18,0,0,1,0,0,0,0,14,10,0,0,4,11,22,0,0,15,8,24,2,7,0,
1360  0,0,0,10,7,4,1,13,0,18,0,0,0,15,6,24,23,22,2,0,25,0,0,20,0,
1361  0,18,0,3,0,24,0,4,7,16,0,19,6,13,5,12,0,0,0,0,0,1,10,15,22,
1362  0,6,0,8,0,18,0,22,12,0,16,0,2,21,11,0,0,0,5,10,0,7,1,23,0,
1363  0,0,2,0,0,0,5,25,1,10,22,0,0,7,9,23,21,12,0,14,0,0,17,8,0,
1364  0,25,0,0,0,0,0,11,0,14,7,0,0,17,24,18,16,10,3,21,2,0,12,1,15,
1365  0,22,0,14,17,21,12,0,0,0,0,9,0,5,0,20,0,24,0,0,3,19,7,18,16,
1366  13,0,0,25,0,0,24,6,0,0,8,5,17,10,0,16,0,11,0,22,15,0,0,21,14,
1367  10,19,13,11,23,0,3,0,14,0,12,8,15,25,0,0,0,20,0,4,0,22,0,0,21,
1368  15,21,19,2,0,0,14,8,0,9,5,0,0,0,16,4,1,18,13,25,22,0,0,0,0
1369  };
1370 
1371  const int d25_264_13[] = {
1372  // Size: 25 x 25
1373  25,
1374  // Pre-assigned fields
1375  17,15,0,6,0,4,0,23,0,8,0,0,1,21,16,0,12,2,10,18,0,0,0,24,0,
1376  9,0,4,3,22,6,0,21,17,10,0,24,15,0,0,13,0,1,0,11,20,7,0,0,0,
1377  0,11,13,0,10,21,18,0,0,15,0,7,0,16,0,17,0,5,0,0,2,25,0,3,1,
1378  23,16,9,0,0,0,24,14,0,0,0,11,2,7,0,20,8,6,0,12,17,0,5,0,0,
1379  0,25,22,1,6,5,15,0,0,11,2,12,0,3,0,8,0,16,17,20,0,0,0,0,10,
1380  21,13,0,0,0,2,0,0,6,7,0,0,20,18,0,0,17,24,1,0,0,16,14,23,25,
1381  20,2,12,0,0,25,0,0,21,0,0,5,11,17,3,15,23,0,0,19,0,24,9,0,0,
1382  24,0,0,0,23,10,0,2,4,0,0,18,16,9,0,0,0,3,11,1,5,21,8,15,0,
1383  0,12,0,0,0,7,6,20,15,0,0,0,23,0,9,25,13,19,22,14,0,0,16,0,21,
1384  7,4,6,0,0,14,13,9,0,19,16,0,0,0,15,0,22,0,0,21,0,17,0,5,11,
1385  2,0,25,0,0,23,3,8,18,0,17,0,0,0,0,22,0,9,0,10,24,20,15,7,12,
1386  18,10,8,0,16,0,0,0,12,6,3,0,0,0,19,0,11,23,15,7,13,0,22,0,0,
1387  5,0,17,24,9,0,16,19,0,22,4,25,21,0,7,10,0,0,0,0,3,0,6,0,0,
1388  14,0,23,11,12,0,4,0,1,17,20,0,24,2,0,0,0,22,19,0,18,0,0,0,7,
1389  11,0,0,16,1,0,0,0,7,0,22,23,9,0,0,21,18,0,3,13,0,15,4,6,5,
1390  0,0,0,4,25,1,11,0,0,18,12,0,0,22,14,5,2,17,20,6,19,0,0,9,0,
1391  12,17,11,7,14,19,20,0,0,0,15,0,0,25,0,6,0,13,24,0,10,2,0,4,0,
1392  0,0,0,25,3,0,0,0,14,12,0,17,13,8,20,18,9,0,2,0,0,0,1,11,19,
1393  0,22,2,13,18,0,0,7,19,25,14,0,4,0,21,0,10,0,5,0,0,23,0,20,8,
1394  0,20,0,17,8,3,5,24,0,0,21,0,0,12,25,9,0,0,14,0,22,0,18,10,6,
1395  0,0,0,18,0,0,17,1,3,24,0,14,0,13,5,12,0,8,9,0,25,11,0,21,4,
1396  19,14,0,12,7,0,0,25,9,0,0,22,17,0,6,0,0,0,0,0,15,10,2,16,18,
1397  0,0,0,10,17,0,22,5,24,3,1,15,0,0,23,0,21,0,6,0,9,13,0,19,20,
1398  6,7,5,0,0,12,23,22,8,4,25,16,0,0,2,0,24,0,0,3,0,0,21,0,0,
1399  0,0,3,0,0,11,0,0,0,0,19,20,8,6,17,23,7,12,0,25,14,5,24,0,0
1400  };
1401 
1402  const int d25_264_14[] = {
1403  // Size: 25 x 25
1404  25,
1405  // Pre-assigned fields
1406  0,0,11,0,0,18,22,0,24,0,23,0,0,10,17,3,4,6,8,20,2,0,9,25,0,
1407  9,0,13,24,10,20,19,0,0,0,0,0,11,0,25,16,17,0,18,21,0,12,3,0,0,
1408  0,5,0,15,7,0,1,16,13,0,0,17,24,0,22,12,0,2,0,0,0,9,8,19,11,
1409  3,11,0,18,0,0,15,5,23,0,12,0,16,0,0,25,14,4,0,24,13,6,0,0,8,
1410  22,0,8,0,4,0,0,0,0,18,0,0,2,0,21,24,1,25,12,19,3,0,20,5,0,
1411  8,16,6,0,18,2,11,0,0,0,13,7,0,24,12,22,0,21,0,25,23,19,0,0,0,
1412  0,9,0,22,11,0,8,0,20,17,15,4,0,0,10,5,0,0,0,0,18,14,1,6,0,
1413  0,0,10,0,0,17,0,9,0,7,0,11,23,20,15,2,0,0,22,18,19,0,13,0,5,
1414  24,13,0,0,0,15,0,10,17,0,20,21,18,5,4,0,25,0,0,0,0,3,0,11,2,
1415  14,15,23,0,0,0,0,0,4,13,24,0,0,9,0,0,19,10,0,17,11,25,12,22,0,
1416  0,0,0,11,2,23,0,1,15,0,3,16,9,0,0,18,0,24,0,12,25,21,0,20,6,
1417  25,21,1,0,17,5,14,0,8,0,11,0,6,0,0,20,0,0,15,10,0,0,18,4,7,
1418  13,0,0,4,0,3,9,0,21,0,0,2,17,0,14,0,6,0,11,0,20,7,19,1,0,
1419  4,0,0,9,5,1,10,23,0,14,0,0,0,15,0,0,11,13,20,0,21,0,7,17,12,
1420  5,2,0,7,0,8,6,25,12,16,9,18,0,1,0,0,21,0,17,23,0,0,15,0,0,
1421  0,24,0,0,15,10,0,20,0,25,8,1,5,0,19,4,0,14,0,9,6,0,0,0,13,
1422  21,0,7,3,0,0,18,24,1,15,0,0,0,19,0,0,23,16,0,6,10,13,0,0,17,
1423  0,0,22,10,24,0,0,0,0,12,0,20,3,6,9,13,0,11,0,14,16,1,21,0,0,
1424  15,0,12,19,25,0,0,0,0,0,0,6,10,16,18,0,22,9,13,0,8,2,14,0,1,
1425  0,18,21,0,9,0,2,0,25,1,7,24,22,17,0,23,20,0,0,16,0,0,0,8,0,
1426  0,0,0,8,6,0,0,2,11,20,18,15,19,25,0,0,5,0,16,0,4,24,0,23,0,
1427  6,4,0,5,0,0,13,8,0,22,1,9,0,0,0,0,2,18,24,0,0,20,23,16,25,
1428  0,6,3,0,0,19,23,13,22,8,16,12,0,21,7,17,0,0,9,0,0,0,2,0,15,
1429  0,22,2,20,14,9,0,6,7,19,0,0,8,4,0,0,0,17,10,0,0,0,0,3,21,
1430  2,19,16,0,1,7,17,15,0,5,0,0,0,18,13,0,0,8,14,0,0,4,0,0,3
1431  };
1432 
1433  const int d25_264_1[] = {
1434  // Size: 25 x 25
1435  25,
1436  // Pre-assigned fields
1437  7,0,0,10,0,5,9,23,17,0,0,12,18,0,4,15,19,0,0,13,22,0,0,20,24,
1438  0,0,0,21,1,8,14,22,0,0,10,6,7,9,17,25,0,0,13,0,0,16,15,0,5,
1439  14,24,3,18,0,9,0,0,0,17,6,10,0,0,23,0,22,19,15,0,16,7,0,0,1,
1440  0,0,0,3,8,22,10,9,0,0,0,24,20,0,0,21,0,0,4,17,5,1,6,13,0,
1441  18,0,8,0,7,11,0,20,0,0,21,17,0,23,0,1,0,0,10,5,0,14,13,2,19,
1442  15,0,5,0,0,6,23,19,0,0,0,20,24,14,12,0,7,18,22,0,25,2,0,0,0,
1443  2,9,18,25,13,0,0,7,5,0,0,0,0,0,8,0,14,6,0,22,1,3,0,17,0,
1444  0,16,0,0,11,4,19,0,1,13,0,5,15,0,0,23,24,0,0,0,3,0,9,6,7,
1445  8,10,4,22,3,0,0,0,0,21,5,15,0,20,0,6,11,23,0,14,24,0,0,12,0,
1446  13,21,25,0,0,0,0,17,2,7,1,14,0,18,19,20,4,0,0,0,0,8,24,0,22,
1447  0,0,20,14,12,0,13,10,11,24,0,0,23,3,0,17,0,0,7,9,0,21,4,0,18,
1448  9,25,15,0,0,1,0,0,0,23,16,0,17,22,10,3,12,0,5,0,21,6,0,0,0,
1449  6,5,2,23,0,21,0,0,0,0,0,3,4,1,18,0,0,10,24,11,0,0,17,0,9,
1450  12,22,0,0,0,0,5,18,4,10,0,0,19,25,13,0,6,14,0,23,2,0,0,16,0,
1451  0,14,21,2,25,0,0,11,6,3,4,0,9,0,24,0,0,8,0,0,19,0,16,18,15,
1452  16,17,11,4,0,0,22,24,9,0,2,0,0,8,0,0,3,0,0,10,23,25,0,0,12,
1453  0,12,0,0,23,13,2,25,15,16,14,4,0,24,0,10,0,0,11,8,0,0,0,1,0,
1454  1,0,19,0,6,0,12,0,20,11,7,0,25,17,5,24,0,15,0,0,10,0,0,0,8,
1455  0,7,22,24,0,0,0,13,19,12,0,2,1,0,0,0,9,3,20,16,0,15,25,0,11,
1456  0,0,14,0,4,24,0,0,8,0,11,18,0,19,0,5,17,21,16,0,0,13,2,9,0,
1457  0,0,0,15,0,0,21,8,0,18,3,7,11,5,0,0,0,1,0,4,13,9,10,14,0,
1458  3,0,0,0,21,18,8,0,0,22,9,0,5,0,16,0,0,11,19,0,17,0,20,7,23,
1459  17,6,0,7,20,0,1,0,3,25,19,23,0,16,0,0,0,9,21,15,18,0,0,10,0,
1460  25,8,0,5,0,20,4,0,21,0,12,0,2,0,15,13,18,0,17,0,0,0,1,11,16,
1461  0,0,0,16,18,15,3,6,0,2,0,0,0,0,14,7,5,24,0,20,0,19,12,23,0
1462  };
1463 
1464  const int d25_264_2[] = {
1465  // Size: 25 x 25
1466  25,
1467  // Pre-assigned fields
1468  0,0,0,0,0,15,0,16,0,2,0,12,23,0,21,19,6,13,24,10,0,0,9,7,5,
1469  22,0,0,7,18,21,9,2,0,3,1,0,0,11,0,0,0,10,6,13,15,19,0,0,0,
1470  4,13,0,10,0,22,17,0,18,0,0,14,8,0,0,0,15,7,21,0,0,23,12,1,3,
1471  11,9,0,0,15,0,0,0,0,22,0,7,18,25,0,0,4,1,17,12,20,16,0,14,8,
1472  0,5,24,14,0,3,0,10,0,18,17,15,0,0,7,0,13,21,0,1,22,0,4,11,0,
1473  9,18,10,13,0,1,0,7,11,14,20,0,0,23,15,8,3,0,0,0,0,22,0,0,0,
1474  0,25,21,0,3,0,24,18,16,0,0,5,13,0,2,20,0,0,0,8,17,0,0,4,12,
1475  13,3,20,0,2,0,0,0,6,9,12,0,25,19,0,0,18,0,4,0,21,0,0,16,17,
1476  18,21,13,0,16,17,10,20,0,1,7,0,0,0,19,4,25,0,0,0,8,0,0,15,22,
1477  0,0,0,3,5,0,13,0,8,21,10,0,0,0,0,25,14,12,15,24,16,0,7,0,1,
1478  0,8,0,0,11,19,0,0,9,15,23,21,5,2,0,0,0,24,14,4,0,20,10,18,0,
1479  16,17,12,15,6,0,7,3,0,0,0,0,0,13,4,0,0,8,25,11,0,24,22,0,0,
1480  0,0,22,0,21,0,5,0,1,0,16,4,6,18,23,17,0,25,0,7,0,10,0,0,20,
1481  15,2,0,0,7,16,0,0,0,23,0,9,0,0,14,22,19,0,5,0,4,25,20,6,21,
1482  0,0,18,25,0,9,19,12,15,0,13,22,0,17,0,11,23,2,16,21,7,0,0,0,0,
1483  0,0,0,6,24,12,14,0,2,0,0,16,19,9,20,1,10,17,7,0,0,5,8,0,0,
1484  2,11,0,24,19,0,23,15,17,0,25,1,3,0,6,5,0,14,0,0,0,18,0,0,4,
1485  6,0,2,23,0,0,0,11,19,0,0,20,15,22,0,0,16,5,0,0,9,0,1,25,24,
1486  21,20,14,18,0,0,15,0,24,4,0,0,0,8,0,3,0,0,23,22,0,11,13,0,19,
1487  0,0,25,4,22,0,0,0,14,8,11,0,0,12,10,16,24,0,9,15,0,0,0,2,18,
1488  0,16,4,8,14,13,2,17,0,6,0,18,20,0,0,10,1,0,0,23,0,12,0,3,0,
1489  0,4,0,0,0,24,0,21,0,16,6,0,17,1,0,18,0,0,0,3,14,7,11,13,23,
1490  23,0,0,0,25,2,3,13,4,0,8,10,0,5,22,0,0,9,19,0,6,0,18,0,0,
1491  8,0,9,0,0,14,16,6,25,19,24,0,2,0,3,0,0,0,0,0,23,1,17,22,0,
1492  17,1,7,9,0,0,18,0,0,0,0,3,14,0,11,0,5,4,2,0,12,0,16,21,13
1493  };
1494 
1495  const int d25_264_3[] = {
1496  // Size: 25 x 25
1497  25,
1498  // Pre-assigned fields
1499  0,2,3,0,11,9,0,15,18,0,17,13,0,16,7,6,4,0,5,1,0,0,0,0,25,
1500  21,0,0,0,3,0,14,0,11,18,0,10,0,15,0,19,0,2,20,4,8,9,25,0,12,
1501  5,0,14,0,20,0,16,18,17,10,0,2,12,0,0,9,0,24,0,0,0,19,15,0,7,
1502  19,12,0,3,0,25,6,24,16,0,4,20,7,0,9,1,18,0,0,0,14,23,0,0,0,
1503  0,0,6,1,0,12,0,22,0,0,23,24,2,19,11,5,21,0,3,16,0,0,0,17,0,
1504  0,20,0,0,0,10,9,0,12,0,8,14,22,0,0,0,1,6,21,18,2,24,0,11,0,
1505  23,0,9,2,14,8,24,11,22,0,0,0,0,6,0,18,17,0,0,12,25,0,1,0,0,
1506  9,3,0,19,1,0,0,8,6,0,7,23,0,0,24,0,0,0,11,22,0,16,0,25,15,
1507  0,0,5,0,0,24,17,9,7,3,0,0,0,22,16,0,11,0,14,8,12,0,2,21,10,
1508  0,15,0,5,0,0,10,0,21,0,18,0,3,2,19,25,24,8,7,0,17,11,20,0,0,
1509  8,25,4,13,24,0,2,0,0,12,11,0,18,5,21,0,0,1,0,0,0,0,7,0,16,
1510  18,1,0,24,10,0,0,0,0,13,0,0,0,7,0,14,0,3,8,0,22,20,6,23,11,
1511  7,0,10,12,0,0,0,6,19,4,0,0,0,0,8,0,13,0,25,21,18,0,14,15,9,
1512  11,21,24,8,0,2,7,19,0,5,15,9,0,4,0,0,0,0,0,3,0,10,0,16,13,
1513  0,0,13,23,17,22,0,14,0,0,0,21,16,0,4,3,0,25,2,0,15,1,0,6,20,
1514  15,10,0,0,8,4,22,0,20,23,0,11,0,0,0,2,0,19,9,6,0,7,0,0,18,
1515  2,16,15,17,21,7,0,0,0,22,25,19,0,0,0,20,9,0,13,0,6,0,0,24,23,
1516  0,0,0,18,0,19,0,17,0,15,13,22,6,10,25,12,16,20,23,14,0,8,0,0,0,
1517  0,0,23,21,0,0,4,0,1,24,10,0,20,0,0,0,5,15,0,7,0,25,12,13,2,
1518  0,11,21,0,22,15,0,3,0,17,0,7,8,12,0,0,0,23,0,5,20,0,19,9,0,
1519  10,0,0,0,19,0,5,7,23,21,0,6,13,0,2,15,20,0,0,0,16,0,11,3,0,
1520  0,0,0,4,5,23,11,0,0,0,22,0,10,0,17,0,2,18,6,24,0,0,3,19,14,
1521  1,23,0,0,0,0,19,0,8,25,6,0,0,9,18,24,3,11,0,0,13,22,4,12,0,
1522  24,22,2,0,15,0,23,12,14,8,0,0,5,13,0,10,0,7,0,0,21,4,0,0,3,
1523  20,14,7,0,23,5,0,0,0,0,9,0,25,3,15,0,6,10,19,0,0,17,21,0,0
1524  };
1525 
1526  const int d25_264_4[] = {
1527  // Size: 25 x 25
1528  25,
1529  // Pre-assigned fields
1530  8,12,0,0,0,6,2,0,11,0,0,0,16,3,0,21,25,13,15,0,24,10,5,0,7,
1531  23,0,0,20,17,0,22,13,0,19,25,4,14,18,15,0,0,0,0,0,5,0,21,7,16,
1532  10,7,18,6,1,0,9,2,0,22,17,0,0,14,0,0,16,23,0,0,0,21,24,0,0,
1533  0,0,16,12,0,17,21,0,15,0,20,0,24,0,10,23,4,22,8,0,0,14,13,1,0,
1534  5,16,19,0,12,8,0,0,24,11,7,0,0,21,0,0,2,9,0,4,23,1,0,17,0,
1535  0,0,0,0,6,0,24,4,25,21,0,0,0,20,12,9,0,19,0,8,10,5,7,23,11,
1536  6,0,0,22,2,4,7,0,0,18,0,0,25,12,0,0,0,0,16,9,20,8,19,21,5,
1537  22,11,0,7,0,16,19,0,0,0,0,18,5,0,25,10,0,8,0,0,15,3,20,0,2,
1538  0,15,0,9,0,0,0,14,0,3,0,16,0,23,20,12,21,0,1,2,19,0,0,10,6,
1539  17,20,14,0,10,12,5,0,21,7,0,0,6,0,0,25,18,0,0,13,0,16,23,0,0,
1540  0,6,0,18,16,23,8,1,0,4,0,5,10,25,0,0,0,0,21,12,11,0,0,0,22,
1541  0,0,0,0,15,18,25,23,2,0,10,17,0,0,1,22,24,0,11,16,0,0,6,4,9,
1542  0,0,12,21,0,0,0,24,0,0,18,20,1,17,9,0,23,15,3,0,6,4,0,2,0,
1543  0,0,22,19,24,0,0,9,23,8,13,12,0,15,0,1,7,17,0,11,4,2,0,0,0,
1544  0,19,25,2,0,21,0,22,17,0,8,9,0,0,0,0,3,18,23,24,1,20,0,0,0,
1545  0,0,7,14,0,3,0,18,6,24,0,13,15,0,16,0,11,0,10,0,0,19,0,20,4,
1546  16,17,5,10,23,0,0,0,1,0,12,0,13,22,0,2,0,25,7,19,0,0,0,15,0,
1547  14,0,0,5,9,0,10,0,13,0,0,25,11,0,19,24,20,2,0,0,12,0,22,6,0,
1548  18,24,13,11,4,1,0,12,0,0,5,0,0,0,14,0,17,6,0,10,0,15,0,0,21,
1549  2,0,0,0,13,0,15,8,3,17,0,0,18,19,0,5,0,0,14,1,7,0,0,9,20,
1550  0,4,11,0,20,24,17,3,18,0,9,2,0,0,6,13,0,0,0,23,0,0,8,0,25,
1551  21,14,2,0,0,0,0,0,0,16,11,6,7,24,13,19,12,0,20,5,0,25,0,0,23,
1552  0,23,3,0,0,2,0,16,7,10,4,15,0,0,17,8,0,0,5,6,0,0,11,24,1,
1553  24,0,6,0,0,20,0,0,0,14,0,0,17,4,11,0,15,3,22,0,8,7,9,0,13,
1554  13,5,0,8,25,19,4,10,0,1,24,14,0,0,2,0,0,12,17,0,0,0,3,11,0
1555  };
1556 
1557  const int d25_264_5[] = {
1558  // Size: 25 x 25
1559  25,
1560  // Pre-assigned fields
1561  14,0,0,20,16,24,10,0,0,0,0,15,0,21,23,3,6,0,12,19,0,2,9,0,0,
1562  12,6,0,15,0,22,0,14,8,0,4,5,0,0,21,16,0,0,20,0,13,7,0,1,10,
1563  0,9,17,4,1,0,20,0,0,0,0,0,21,12,0,0,0,13,0,16,22,23,24,14,5,
1564  16,12,20,7,14,2,0,0,0,0,0,23,0,25,0,15,18,0,21,0,5,24,0,17,9,
1565  0,21,25,1,8,3,23,12,10,0,0,0,17,0,22,0,13,24,0,0,0,0,5,20,0,
1566  0,0,4,12,0,0,21,18,24,2,0,6,0,22,0,11,0,20,0,17,0,0,8,13,16,
1567  0,0,0,0,0,0,15,24,0,1,6,0,0,10,11,12,8,9,19,7,3,0,14,5,23,
1568  20,14,10,22,12,0,0,0,16,13,11,7,6,17,0,5,0,0,0,1,0,0,0,15,0,
1569  2,22,18,21,15,0,0,1,4,23,0,0,0,9,10,19,0,0,17,11,0,14,0,0,0,
1570  0,25,0,0,0,5,17,4,19,10,0,0,18,0,6,13,15,0,16,22,12,0,23,0,3,
1571  0,23,15,0,0,4,0,21,1,0,0,25,11,6,18,0,9,2,0,10,19,13,3,0,0,
1572  21,16,19,0,5,6,0,17,18,25,0,0,1,8,0,0,20,0,3,0,2,22,0,10,0,
1573  0,0,0,0,0,0,9,13,2,15,14,0,20,0,8,22,11,23,0,0,1,6,19,25,0,
1574  9,0,16,0,18,15,11,0,13,0,17,21,0,0,12,0,25,10,0,5,14,0,7,0,1,
1575  0,0,24,0,21,12,5,0,0,0,8,11,0,0,0,23,3,19,10,4,0,18,2,0,6,
1576  1,0,0,0,0,0,22,23,6,20,18,14,10,3,0,0,0,16,11,24,9,0,0,0,21,
1577  8,0,0,0,17,11,24,0,0,22,19,18,23,0,0,0,21,14,4,13,6,20,0,0,0,
1578  15,0,6,24,20,8,0,0,3,11,5,0,0,7,0,2,4,0,0,0,0,21,12,18,0,
1579  11,24,0,0,19,1,6,2,0,7,0,10,3,13,9,0,0,0,0,0,23,0,0,22,25,
1580  19,0,1,0,22,16,0,0,20,0,0,24,8,15,3,0,0,17,0,2,18,0,25,0,13,
1581  5,0,12,8,6,0,0,0,0,0,25,0,4,18,15,7,2,21,22,0,0,16,0,3,19,
1582  4,17,8,6,23,0,2,15,0,0,9,0,24,0,5,1,0,3,25,0,0,10,0,12,0,
1583  6,5,11,13,0,23,1,0,0,9,15,0,0,0,16,25,19,0,8,0,0,17,0,7,4,
1584  0,2,0,11,0,7,18,8,9,6,20,22,0,0,0,0,10,1,0,14,4,0,16,0,0,
1585  0,20,0,10,0,0,0,22,7,17,21,19,15,0,25,4,0,0,6,0,24,12,18,0,8
1586  };
1587 
1588  const int d25_264_6[] = {
1589  // Size: 25 x 25
1590  25,
1591  // Pre-assigned fields
1592  14,23,12,4,0,21,16,0,0,10,0,0,0,1,0,0,18,9,15,2,3,0,20,0,7,
1593  10,18,0,0,0,0,9,0,20,2,0,0,11,0,0,0,7,25,1,24,19,13,0,12,5,
1594  0,10,0,11,0,17,18,20,0,15,24,0,0,0,9,0,3,0,7,0,13,23,14,0,12,
1595  22,3,25,0,0,4,0,10,0,23,0,0,17,9,0,12,16,5,0,0,0,2,15,0,13,
1596  12,8,0,13,0,14,0,3,15,4,19,23,0,2,0,0,25,0,0,7,0,0,11,5,6,
1597  0,0,7,0,16,13,0,18,25,0,10,11,14,0,0,3,0,1,4,0,24,12,22,0,20,
1598  0,7,24,14,0,9,3,1,0,17,0,18,0,0,22,5,23,4,0,0,0,21,0,0,8,
1599  6,12,13,0,0,0,17,9,0,0,18,14,0,0,0,10,19,24,8,0,22,5,2,21,0,
1600  3,0,0,23,13,16,20,4,10,0,8,0,18,0,0,0,22,12,0,0,0,11,0,24,9,
1601  0,4,2,0,25,0,10,8,6,0,0,12,13,24,0,0,0,0,0,21,16,14,0,15,17,
1602  0,13,10,12,7,5,24,0,19,20,15,22,0,0,18,21,1,0,16,14,0,0,0,0,0,
1603  1,14,0,9,11,0,23,0,0,12,20,6,15,21,0,0,10,22,0,0,0,19,17,0,4,
1604  0,0,18,0,0,12,0,0,2,0,21,0,10,7,4,15,0,13,5,25,20,0,24,9,0,
1605  5,0,0,25,22,11,0,0,8,0,9,1,19,10,21,6,0,0,23,13,18,0,0,0,0,
1606  20,6,0,16,8,0,2,25,0,0,3,4,24,11,0,0,0,0,19,0,17,0,5,18,14,
1607  0,0,8,20,12,0,0,0,9,13,6,0,4,14,3,25,15,0,2,10,0,22,7,0,0,
1608  25,21,20,3,19,0,0,17,14,0,0,0,1,0,23,22,0,8,0,6,0,0,10,11,0,
1609  8,17,5,6,0,19,4,0,0,0,0,21,0,18,14,2,0,7,0,0,15,20,0,13,0,
1610  0,0,0,0,14,0,6,13,24,3,0,9,2,5,15,16,0,0,18,0,8,0,12,20,0,
1611  0,0,15,0,0,0,14,24,0,6,4,3,0,0,16,13,9,21,11,5,0,0,18,1,0,
1612  16,0,11,0,0,0,0,23,0,9,0,2,0,22,12,0,8,19,25,17,6,4,13,0,18,
1613  13,0,0,15,21,3,0,19,0,0,12,0,0,17,11,7,20,23,0,22,2,0,0,0,16,
1614  0,0,0,7,4,0,13,0,1,19,0,15,25,0,17,14,0,0,0,20,9,10,8,16,3,
1615  0,1,4,22,10,25,0,0,11,24,16,7,6,19,0,9,13,0,20,0,0,0,0,17,0,
1616  15,25,0,0,18,23,0,6,17,22,5,0,0,0,1,0,0,0,13,12,4,8,0,14,0
1617  };
1618 
1619  const int d25_264_7[] = {
1620  // Size: 25 x 25
1621  25,
1622  // Pre-assigned fields
1623  0,0,0,0,0,10,24,0,2,0,18,8,0,7,19,6,0,12,11,0,0,9,1,25,16,
1624  20,3,2,0,19,5,23,4,8,17,16,0,0,0,14,0,6,13,21,0,0,0,7,0,0,
1625  0,0,0,0,16,21,13,7,5,0,0,12,0,25,24,3,10,0,0,2,4,20,23,0,0,
1626  22,12,0,0,10,0,3,0,23,19,5,0,0,17,11,0,0,0,4,18,13,1,9,0,0,
1627  0,7,17,0,0,0,0,0,10,15,0,11,4,3,1,8,22,18,5,16,0,0,0,20,25,
1628  15,18,0,16,24,12,0,11,0,9,20,7,0,0,8,0,0,22,2,0,23,3,0,6,0,
1629  13,21,9,0,20,0,0,3,0,12,0,14,22,0,0,0,7,4,17,6,11,2,0,0,19,
1630  0,24,0,6,12,1,0,23,14,10,4,0,13,0,9,11,18,0,0,0,0,0,16,19,0,
1631  11,0,20,7,0,0,5,10,13,24,0,0,8,0,25,0,0,14,0,1,0,6,3,12,15,
1632  21,0,18,8,0,0,0,0,0,0,25,23,15,0,13,1,5,19,16,14,9,0,0,0,17,
1633  12,0,0,0,9,7,0,0,15,4,11,0,2,20,22,5,0,0,0,0,14,0,17,8,13,
1634  0,0,6,14,0,0,0,22,0,0,13,10,12,24,0,23,0,21,0,19,8,15,25,11,2,
1635  0,10,11,0,0,15,0,13,1,22,23,0,0,21,0,0,0,24,7,17,0,19,0,16,6,
1636  0,20,0,18,0,16,1,14,0,0,0,0,0,23,10,12,17,8,24,0,22,11,21,0,0,
1637  19,0,0,24,1,0,2,0,3,0,21,15,20,0,18,0,11,0,22,13,0,10,0,14,23,
1638  14,6,3,5,0,8,16,0,21,0,0,2,11,9,0,17,0,10,18,0,0,25,0,13,0,
1639  4,19,21,0,22,11,0,0,0,25,0,0,9,0,0,24,0,0,3,0,5,18,15,2,10,
1640  0,0,0,23,17,25,20,0,0,7,12,0,5,8,15,10,0,11,0,3,0,0,0,4,22,
1641  24,9,22,21,0,0,19,25,4,16,0,1,14,6,0,0,12,0,0,5,7,0,0,0,0,
1642  17,5,10,15,0,0,25,19,0,11,2,13,7,1,0,22,21,0,0,24,6,0,0,0,0,
1643  0,0,12,0,2,4,0,20,0,14,0,0,23,22,17,0,16,0,10,15,24,13,8,0,18,
1644  7,0,4,2,11,19,0,0,0,0,1,9,0,0,0,13,25,0,0,0,15,12,6,18,5,
1645  1,14,0,3,5,0,7,0,0,0,24,22,25,2,4,0,15,0,0,0,0,0,18,21,12,
1646  0,2,0,17,0,23,9,21,22,0,3,5,0,15,0,19,24,20,6,0,0,0,12,0,0,
1647  10,23,24,12,13,2,4,1,6,3,0,0,0,0,0,16,8,25,0,11,18,0,0,0,0
1648  };
1649 
1650  const int d25_264_8[] = {
1651  // Size: 25 x 25
1652  25,
1653  // Pre-assigned fields
1654  0,0,22,25,0,0,16,9,4,0,12,0,0,0,0,2,18,0,15,14,5,11,3,13,24,
1655  21,0,0,0,0,0,0,2,7,20,0,0,9,1,10,16,15,0,0,6,23,12,25,0,4,
1656  11,21,6,0,0,5,0,19,18,0,13,10,0,25,0,0,0,12,24,8,3,0,23,2,0,
1657  19,4,0,0,8,0,9,0,12,23,15,0,1,0,6,0,16,10,5,0,0,20,14,25,0,
1658  24,0,0,19,16,21,2,0,0,0,3,0,14,0,18,10,0,1,25,23,0,22,4,0,20,
1659  0,0,17,0,24,20,19,0,10,13,2,25,0,0,9,3,11,0,14,7,0,0,0,0,16,
1660  0,22,24,16,11,14,0,20,15,9,23,0,0,0,0,0,8,13,0,0,25,7,1,6,0,
1661  12,9,13,21,0,16,15,0,0,0,17,18,0,5,19,0,6,0,1,4,0,10,0,0,0,
1662  0,0,0,14,2,0,18,0,0,17,7,0,0,13,4,19,22,21,0,3,0,15,5,0,1,
1663  15,18,3,10,7,0,0,8,0,2,0,21,0,0,14,1,0,0,0,24,11,23,12,0,0,
1664  0,0,11,8,20,10,0,0,21,0,0,5,25,7,23,0,0,3,2,22,0,4,0,12,19,
1665  9,0,18,12,19,2,0,17,14,16,0,0,0,0,20,4,7,22,3,0,13,0,0,0,0,
1666  4,5,0,18,0,13,0,6,0,8,20,16,17,0,12,0,10,23,0,0,1,0,22,24,0,
1667  0,11,0,1,0,8,0,21,2,14,10,13,18,19,0,22,0,6,0,16,0,0,0,20,0,
1668  0,0,5,7,9,0,1,0,0,10,0,4,0,11,13,23,24,16,17,0,12,0,0,0,2,
1669  10,0,14,0,3,6,25,16,0,0,9,0,5,24,17,0,0,0,0,0,18,1,7,21,0,
1670  0,19,0,9,4,24,17,0,5,0,0,1,22,23,15,0,0,0,21,2,16,0,0,3,11,
1671  16,12,0,0,0,25,13,7,3,5,0,0,4,0,21,17,19,0,23,0,0,14,0,0,22,
1672  0,25,1,11,0,0,21,0,0,18,0,14,7,15,0,0,4,19,20,5,6,0,17,8,0,
1673  22,20,15,0,0,4,0,18,6,0,1,0,10,17,0,21,0,2,0,0,0,19,24,0,9,
1674  2,24,0,0,23,0,0,4,0,21,0,9,0,12,0,5,0,0,6,15,20,25,19,1,17,
1675  0,0,12,0,13,7,14,25,22,0,6,2,23,3,1,0,0,0,18,0,0,0,15,5,0,
1676  5,23,0,0,17,22,6,0,9,0,0,0,8,18,0,7,25,20,11,1,0,0,0,0,3,
1677  6,0,10,17,0,0,0,13,0,12,4,7,11,0,0,9,3,24,0,0,15,21,0,18,8,
1678  3,7,0,5,0,0,23,1,0,25,11,19,24,0,0,20,17,0,0,0,4,0,0,9,14
1679  };
1680 
1681  const int d25_264_9[] = {
1682  // Size: 25 x 25
1683  25,
1684  // Pre-assigned fields
1685  8,0,1,21,0,0,0,7,13,0,9,0,24,0,4,3,16,6,15,0,0,20,0,22,0,
1686  0,0,0,0,20,7,0,0,15,8,16,0,19,10,18,4,1,0,17,5,9,0,0,24,0,
1687  23,0,9,19,0,21,5,12,22,18,0,6,0,0,0,20,0,3,7,8,0,0,16,0,14,
1688  22,8,0,0,0,0,0,9,0,20,3,14,21,23,10,0,0,0,0,6,11,24,0,4,16,
1689  25,0,10,7,0,15,0,11,18,0,0,8,5,13,6,0,22,9,0,3,24,0,0,14,0,
1690  0,16,4,8,18,0,7,22,0,25,0,0,15,0,23,6,0,0,0,0,19,0,24,17,11,
1691  0,18,2,0,19,8,17,0,16,0,10,0,13,21,22,0,0,0,0,11,1,14,6,0,25,
1692  20,0,11,0,5,9,2,0,23,4,1,0,0,22,0,7,6,0,0,0,21,10,15,0,12,
1693  16,0,0,12,0,0,0,21,7,15,0,24,3,11,9,10,5,23,0,14,0,0,22,0,0,
1694  0,25,17,0,0,0,14,0,0,22,7,1,0,3,24,18,23,0,0,12,15,16,5,0,0,
1695  11,23,22,0,10,16,21,14,9,0,0,15,0,0,0,0,4,8,1,17,0,0,0,13,0,
1696  0,20,0,14,24,5,3,6,10,7,0,23,4,0,12,0,0,0,16,0,0,0,17,8,18,
1697  0,0,0,16,8,3,0,1,0,5,6,4,22,0,19,0,15,14,0,0,0,0,20,10,24,
1698  15,0,0,0,2,0,24,0,0,0,20,0,1,7,0,0,10,16,9,22,25,5,0,12,21,
1699  0,7,12,0,23,13,0,24,11,21,0,0,10,0,0,16,18,19,2,9,0,15,4,0,0,
1700  17,3,0,0,1,10,4,0,0,0,22,21,7,24,5,0,2,0,18,0,0,6,0,25,8,
1701  0,0,8,20,13,25,16,0,6,23,0,0,0,5,15,2,0,24,3,1,17,0,0,0,0,
1702  6,13,23,25,17,1,0,4,0,0,19,11,0,0,0,14,7,0,0,20,10,22,0,0,0,
1703  13,4,0,22,9,0,0,0,17,0,23,0,0,14,0,1,0,25,12,19,3,21,0,0,5,
1704  0,0,20,10,0,19,6,0,12,0,13,22,0,8,0,0,0,5,11,2,0,4,9,18,23,
1705  7,19,0,13,11,0,0,3,2,0,18,10,25,0,20,0,17,0,0,0,0,0,12,9,15,
1706  10,17,7,0,0,4,15,25,8,9,0,0,0,0,13,0,0,1,24,0,14,19,0,21,0,
1707  21,0,15,3,0,0,0,0,0,14,24,13,0,18,0,11,0,4,20,0,5,8,23,16,2,
1708  0,11,0,18,0,22,13,8,0,0,15,0,9,6,0,23,25,7,0,0,2,17,19,0,4,
1709  0,24,16,17,22,0,10,2,0,19,0,5,0,4,14,15,12,0,8,0,0,0,18,0,6
1710  };
1711 
1712 
1713  /*
1714  * Instances taken from examples that ship with the generator
1715  * "lsencode" by Carla Gomes <gomes@cs.cornell.edu>.
1716  */
1717 
1718  const int d30_316[] = {
1719  // Size: 30 x 30
1720  30,
1721  // Pre-assigned fields
1722  30,24,2,18,0,15,20,0,5,0,7,0,0,0,21,0,0,23,0,0,17,26,0,25,4,19,12,11,14,0,
1723  0,20,0,0,9,30,28,0,0,21,2,0,0,22,17,0,6,1,27,0,0,0,10,14,24,18,0,8,19,12,
1724  25,16,24,14,4,0,2,0,0,29,11,0,30,17,0,0,21,0,1,0,0,0,0,10,0,0,23,26,9,5,
1725  0,5,30,27,25,24,23,0,0,8,0,0,0,12,2,6,18,0,28,0,19,22,7,17,0,16,4,0,0,1,
1726  28,0,4,3,14,0,0,12,0,2,17,22,0,8,11,20,26,0,21,0,0,0,19,27,0,10,0,0,0,23,
1727  0,10,0,30,0,1,14,0,0,0,21,0,19,11,18,23,9,7,13,0,0,27,0,0,0,0,28,20,24,29,
1728  0,0,0,0,0,16,0,2,0,30,19,28,25,26,6,14,1,27,0,0,0,0,24,0,21,0,0,23,17,7,
1729  10,0,0,15,21,28,19,23,0,26,9,12,1,0,24,22,0,4,0,0,5,29,0,20,17,11,0,14,27,18,
1730  5,0,10,0,19,12,3,7,25,0,6,14,21,0,0,29,8,18,16,4,24,9,0,0,26,2,22,15,0,13,
1731  7,17,14,19,27,20,0,0,29,3,0,0,0,9,0,0,28,13,0,1,15,0,0,4,10,0,26,24,30,0,
1732  0,4,13,20,0,0,0,28,12,19,27,6,0,7,26,5,24,2,11,9,22,14,0,18,0,1,8,17,0,0,
1733  26,14,22,8,0,10,0,6,0,4,0,0,0,0,0,19,0,15,29,3,20,7,9,13,0,0,11,0,0,24,
1734  24,0,11,0,0,18,0,0,14,5,22,8,0,0,0,0,12,17,9,23,6,0,0,0,30,28,0,0,21,2,
1735  16,27,15,24,12,26,25,17,0,1,0,0,23,0,0,30,0,0,10,0,21,28,18,3,29,14,9,7,6,22,
1736  18,3,26,0,7,0,4,0,0,10,29,0,22,23,0,1,0,19,5,28,9,17,25,0,11,0,0,0,20,14,
1737  0,0,20,0,0,3,0,29,10,28,30,13,26,24,0,16,0,21,25,8,23,19,1,9,14,4,18,27,0,17,
1738  19,0,7,25,20,9,16,15,3,14,0,10,17,30,29,27,4,0,23,21,18,0,11,0,28,0,6,12,2,8,
1739  0,2,19,29,26,0,11,10,0,16,8,23,0,21,5,24,0,0,20,0,7,0,3,0,0,9,25,0,4,28,
1740  9,23,0,7,6,0,29,0,22,24,10,0,0,1,4,26,11,5,19,0,12,2,13,16,3,27,0,30,0,20,
1741  2,0,29,16,10,0,0,11,18,15,1,5,0,4,13,17,20,0,6,24,0,21,14,12,8,30,0,0,22,0,
1742  6,29,1,0,28,17,27,0,0,0,0,20,0,14,7,0,3,0,0,2,8,0,4,22,15,26,21,5,16,30,
1743  0,0,18,0,22,29,0,0,0,17,0,25,20,10,19,0,5,0,15,27,0,30,2,6,0,0,24,28,1,9,
1744  0,12,21,0,18,27,30,0,0,0,28,4,2,0,9,25,23,14,0,0,0,11,0,29,0,6,0,10,0,3,
1745  0,11,28,0,29,22,17,0,24,6,0,9,0,16,20,21,0,25,0,12,30,0,0,0,2,7,0,1,5,19,
1746  29,22,6,21,13,11,26,0,1,0,20,19,24,2,0,8,0,16,17,0,27,3,0,28,0,25,10,0,23,0,
1747  0,26,9,22,24,4,5,20,11,27,18,17,0,13,25,28,19,12,14,6,2,0,8,30,0,29,3,21,15,10,
1748  8,0,16,9,0,0,0,21,27,25,24,7,12,19,0,18,0,0,2,0,1,4,0,0,22,20,30,0,13,0,
1749  22,30,8,0,0,0,0,0,21,0,0,27,11,0,1,10,7,28,4,17,14,6,29,0,9,24,20,25,0,16,
1750  0,19,27,28,17,6,0,0,4,0,25,21,15,20,30,2,29,8,26,0,0,0,0,24,5,23,16,22,3,0,
1751  1,15,17,0,0,19,24,0,9,23,14,3,6,0,0,4,16,0,0,20,11,12,0,0,0,0,7,13,0,26
1752  };
1753 
1754  const int d30_320[] = {
1755  // Size: 30 x 30
1756  30,
1757  // Pre-assigned fields
1758  0,2,3,0,5,6,7,8,9,0,11,0,0,0,0,16,17,18,0,20,21,22,0,24,0,0,0,28,0,30,
1759  2,3,4,0,6,7,0,9,10,0,12,0,14,15,0,17,18,0,20,21,22,0,24,0,26,27,0,29,30,0,
1760  0,4,5,6,7,8,9,10,0,0,0,14,15,16,0,18,19,20,21,22,23,24,0,26,27,28,0,30,1,2,
1761  0,5,0,7,8,9,10,11,12,0,14,15,16,0,18,19,20,21,22,23,0,25,26,27,28,29,30,1,2,0,
1762  0,0,7,8,0,0,0,12,0,0,15,16,17,18,19,0,21,22,0,24,25,0,27,28,29,30,0,0,3,4,
1763  6,7,0,0,0,11,12,13,14,15,16,17,0,19,20,21,22,0,24,0,0,0,0,29,0,1,2,0,0,5,
1764  0,0,9,10,11,12,13,14,15,0,17,18,19,0,21,0,0,0,25,26,27,0,0,0,1,2,3,4,0,0,
1765  0,9,0,11,12,13,14,15,0,17,18,0,20,21,0,0,24,25,26,27,28,29,0,1,0,3,4,0,0,0,
1766  9,10,0,12,13,14,15,16,0,18,19,20,21,22,23,24,25,0,0,28,29,30,0,0,3,4,5,6,7,0,
1767  0,11,0,0,0,0,0,17,18,19,20,21,22,0,0,25,26,27,0,0,30,0,2,3,4,5,0,0,8,9,
1768  11,12,13,14,15,0,17,0,19,20,21,22,0,0,25,26,0,28,29,30,1,2,3,4,0,6,7,8,0,10,
1769  12,13,0,15,16,0,18,0,20,0,22,23,0,25,26,27,0,0,0,1,2,3,4,0,6,7,0,9,0,11,
1770  0,0,15,16,0,0,0,20,21,22,23,0,25,0,27,28,29,0,0,2,3,4,5,6,7,8,0,10,11,12,
1771  0,0,16,17,0,19,20,0,22,0,0,25,0,27,28,29,0,1,2,3,4,0,0,7,8,9,10,11,0,13,
1772  0,16,17,0,0,20,0,22,23,24,0,26,27,0,0,30,0,2,0,4,0,6,7,0,0,10,11,12,13,14,
1773  0,17,18,0,0,21,22,23,24,25,26,27,0,29,30,1,2,0,0,0,6,0,0,9,10,0,0,13,0,15,
1774  0,0,19,20,21,22,23,0,25,26,27,0,29,30,0,0,3,4,5,6,7,8,0,0,11,12,0,0,15,16,
1775  0,19,20,0,0,23,0,0,26,27,28,29,30,1,2,0,4,0,0,7,8,9,10,11,0,13,14,0,16,17,
1776  19,0,0,0,0,24,25,26,0,0,0,0,1,0,3,0,5,0,0,8,9,0,11,12,13,0,15,16,0,0,
1777  0,0,22,23,0,0,26,0,28,29,30,1,0,0,4,5,6,0,8,9,10,0,12,0,14,0,16,0,0,19,
1778  21,22,23,0,25,26,27,0,29,30,0,2,3,4,5,6,0,8,9,0,0,0,13,0,0,16,17,18,19,0,
1779  22,23,24,25,26,27,28,29,0,1,2,3,0,5,6,0,0,9,0,11,12,13,0,15,0,17,18,19,0,21,
1780  23,24,25,0,0,28,0,0,0,0,0,4,5,0,7,0,0,0,0,12,13,0,0,0,0,18,19,0,0,0,
1781  24,0,0,27,0,0,30,1,2,0,0,5,0,0,8,0,0,11,0,13,14,15,16,17,0,19,20,21,0,0,
1782  25,0,27,28,29,30,1,2,3,4,5,6,7,8,0,0,0,12,0,14,0,16,17,18,19,20,0,22,23,24,
1783  26,27,28,29,0,1,0,3,4,0,6,0,8,9,10,11,12,0,14,15,0,17,0,0,20,21,0,0,24,25,
1784  27,0,0,0,0,2,3,4,0,6,7,8,9,10,0,0,13,14,15,16,17,0,19,0,21,22,0,24,25,0,
1785  28,29,30,0,2,3,4,0,0,0,0,0,10,11,12,13,14,15,0,0,18,19,20,21,0,23,24,25,26,27,
1786  0,0,1,0,0,4,0,0,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,0,23,24,25,26,27,0,
1787  30,1,0,3,4,5,6,7,0,9,0,11,12,0,14,0,0,0,18,19,0,21,22,23,24,0,26,27,28,29
1788  };
1789 
1790  const int d33_381[] = {
1791  // Size: 33 x 33
1792  33,
1793  // Pre-assigned fields
1794  0,0,2,3,28,19,14,33,21,17,0,15,0,0,0,26,4,8,32,16,20,6,29,31,0,0,25,11,0,0,0,0,10,
1795  19,0,0,24,26,9,21,30,0,12,20,0,0,10,33,14,32,0,6,0,11,0,0,28,0,0,23,7,4,0,18,16,22,
1796  0,1,28,0,18,0,19,20,0,5,8,17,0,12,27,0,24,23,0,9,0,32,0,22,10,7,0,29,0,31,3,26,16,
1797  7,16,9,14,27,0,32,0,0,0,31,0,0,5,0,6,25,33,0,0,10,2,0,30,19,0,0,26,12,13,1,22,18,
1798  11,10,4,31,25,0,8,24,0,30,27,0,0,0,19,0,29,32,17,0,18,28,22,6,7,9,0,20,15,0,0,0,0,
1799  24,0,3,9,33,0,5,21,16,31,0,6,25,22,29,0,30,0,10,0,0,11,18,0,1,26,28,0,0,4,0,15,19,
1800  31,32,20,5,0,29,23,0,33,3,17,4,26,19,16,0,22,0,15,0,28,0,0,12,24,6,7,30,13,0,0,0,0,
1801  5,0,6,0,0,2,26,13,10,0,1,24,11,30,4,31,33,29,0,0,19,25,0,16,32,14,0,21,0,0,22,3,0,
1802  0,0,0,0,10,17,12,23,32,18,14,33,19,8,0,3,0,26,0,22,21,1,11,0,0,0,20,27,31,0,9,13,6,
1803  32,33,0,8,5,0,0,4,28,22,24,0,15,0,0,10,31,21,0,26,0,0,7,0,6,1,13,0,30,19,17,29,9,
1804  0,29,0,19,2,31,3,6,12,9,18,0,4,0,21,17,7,0,26,33,32,0,0,8,0,0,22,23,0,20,0,10,0,
1805  1,15,0,0,0,33,24,18,11,19,2,22,29,0,31,32,16,5,27,0,23,7,12,0,25,0,0,9,0,8,0,0,14,
1806  25,24,12,0,15,13,0,0,18,20,0,0,21,33,32,2,14,0,28,0,9,29,6,19,0,0,0,0,0,22,16,8,31,
1807  30,11,18,33,29,0,0,0,0,21,28,14,10,2,13,0,0,0,5,31,7,0,19,26,16,22,27,4,0,1,6,0,0,
1808  0,22,26,27,0,4,0,0,29,0,30,0,5,11,0,0,0,24,16,6,12,0,25,18,31,8,0,28,19,3,13,2,0,
1809  14,23,0,0,0,10,0,12,0,2,26,0,3,0,7,18,0,31,0,17,29,27,30,0,20,32,15,19,6,28,0,9,0,
1810  4,27,19,0,31,0,6,28,3,0,0,16,17,0,22,0,8,13,0,32,0,18,2,0,0,0,0,24,21,12,15,33,25,
1811  15,0,0,12,7,25,20,8,22,23,0,0,0,21,10,0,26,2,0,29,5,0,24,17,0,0,6,13,14,11,0,0,27,
1812  8,4,0,21,12,11,31,0,15,0,0,30,0,9,20,0,0,1,23,0,13,10,3,14,26,0,24,0,22,27,2,5,0,
1813  0,0,0,29,0,28,18,1,9,25,11,19,6,15,0,33,12,10,0,0,0,5,26,32,0,2,30,0,17,21,31,0,20,
1814  0,7,0,0,4,18,0,0,30,0,25,32,20,29,24,0,17,0,14,2,27,15,0,21,0,12,9,0,8,0,10,19,3,
1815  20,25,31,11,0,0,0,26,14,0,7,0,1,13,12,0,21,0,8,3,0,0,0,5,29,0,4,15,2,10,24,32,17,
1816  0,0,10,0,0,6,11,22,0,13,0,21,16,20,23,4,0,3,2,14,0,0,33,0,15,29,32,25,18,17,0,31,0,
1817  0,0,16,0,20,1,0,32,24,0,0,27,22,0,0,21,23,4,33,28,31,0,14,11,17,15,3,10,29,0,8,0,0,
1818  27,0,14,0,6,15,25,10,0,32,22,3,13,17,0,20,1,0,18,0,0,8,9,0,23,31,5,0,16,26,0,0,0,
1819  18,30,0,7,22,26,4,19,27,0,0,25,8,0,0,5,0,17,21,12,0,16,28,0,0,13,2,33,0,0,20,14,0,
1820  0,12,0,26,13,16,30,0,1,0,0,0,0,0,8,7,0,0,3,15,22,33,32,20,9,5,0,0,11,29,19,27,21,
1821  13,0,8,30,0,14,0,0,31,16,21,18,0,32,9,1,0,7,0,20,0,3,0,27,12,10,0,0,33,23,25,0,4,
1822  0,0,27,16,11,0,0,15,0,33,0,5,0,25,0,24,0,22,1,30,3,9,17,13,0,4,12,8,10,0,26,18,29,
1823  16,20,22,32,0,0,10,2,0,15,6,7,0,27,0,23,0,0,11,18,25,13,0,0,33,21,1,0,3,30,0,0,26,
1824  3,26,21,15,1,5,0,0,2,11,9,29,18,28,0,30,0,12,31,0,0,19,0,23,14,0,0,32,0,0,4,7,8,
1825  10,2,17,0,9,0,29,0,0,1,3,0,0,0,5,12,27,0,0,11,15,20,4,33,0,16,31,0,28,25,30,21,13,
1826  17,31,5,10,0,0,0,27,23,0,15,12,9,0,6,29,11,25,13,19,24,0,8,0,2,33,18,0,0,0,0,20,30
1827  };
1828 
1829  const int d35_405[] = {
1830  // Size: 35 x 35
1831  35,
1832  // Pre-assigned fields
1833  1,2,3,0,5,6,0,8,9,10,11,12,13,14,0,16,17,0,0,20,0,22,23,0,25,0,27,28,29,30,31,32,33,0,0,
1834  2,3,4,5,0,0,8,9,10,11,12,0,14,0,16,0,18,19,20,21,22,23,24,25,0,27,28,29,0,31,32,33,34,0,1,
1835  0,4,5,0,7,8,0,10,11,0,13,14,15,16,0,0,0,0,21,0,23,24,25,26,27,0,29,0,31,32,33,34,35,1,2,
1836  0,5,0,7,0,9,0,11,0,13,0,0,16,0,18,0,20,0,22,23,0,0,0,27,0,29,30,31,32,33,34,0,0,2,3,
1837  5,6,7,8,0,10,11,12,13,0,15,16,17,0,19,20,21,22,0,24,25,26,27,28,29,30,0,32,0,34,35,1,2,0,4,
1838  6,7,8,9,10,11,12,13,14,15,16,17,18,19,0,21,0,23,24,0,26,27,28,29,0,0,32,33,34,35,1,0,0,4,5,
1839  7,0,0,0,0,12,13,14,0,16,0,0,19,20,21,22,0,24,25,0,27,0,29,30,31,0,0,0,35,1,2,0,0,5,6,
1840  0,0,0,0,12,13,14,0,0,0,18,0,20,21,22,23,24,0,0,27,28,29,30,31,32,33,34,0,1,0,3,4,0,6,7,
1841  9,0,11,12,13,0,0,16,0,18,19,20,21,0,23,24,25,26,27,28,29,30,31,32,33,0,35,0,2,3,4,0,0,7,8,
1842  10,11,12,0,14,0,16,17,0,0,20,0,0,23,0,25,26,27,28,0,30,31,32,33,34,0,1,0,3,0,5,0,7,8,9,
1843  11,0,13,0,15,0,17,0,19,0,0,22,0,24,0,26,27,0,29,30,31,32,33,34,35,1,2,3,0,5,0,7,8,9,10,
1844  12,13,14,0,16,17,18,0,20,21,22,0,0,25,26,27,28,29,30,31,32,33,34,35,1,2,3,0,5,6,7,0,9,0,0,
1845  13,14,15,16,17,0,19,20,21,0,0,0,25,26,0,28,29,30,31,0,0,34,0,1,2,3,0,0,6,0,8,9,10,11,0,
1846  14,0,16,17,18,19,20,21,22,23,0,0,26,27,0,29,0,0,32,0,34,35,1,2,3,4,5,6,7,8,9,10,11,0,0,
1847  0,16,17,0,19,0,21,22,23,0,0,26,27,28,29,30,31,32,0,34,35,1,0,3,4,5,0,7,8,9,10,0,12,0,14,
1848  16,17,18,19,20,21,22,0,0,25,0,27,0,29,0,31,0,0,34,0,0,0,0,4,0,0,7,8,9,10,11,12,0,14,15,
1849  0,18,19,20,0,22,0,24,0,0,27,0,29,30,31,32,33,34,0,0,0,0,0,5,0,7,8,9,10,11,0,0,14,15,16,
1850  18,19,20,21,22,0,24,25,26,0,28,0,0,31,32,33,0,35,1,0,0,0,0,0,7,8,9,10,11,12,13,14,15,16,0,
1851  19,0,0,22,23,0,25,26,27,28,29,30,0,32,33,34,35,1,2,3,4,0,6,0,8,0,10,11,12,0,0,0,0,0,18,
1852  0,0,22,23,24,0,0,27,28,29,0,31,32,0,34,35,0,0,0,4,0,0,7,8,9,0,11,0,0,14,15,16,0,0,19,
1853  21,22,23,0,25,0,27,28,29,0,0,0,33,0,35,1,2,0,4,0,6,7,0,9,0,0,0,0,0,0,0,0,0,19,0,
1854  0,0,24,0,0,27,28,29,30,0,32,0,0,35,1,2,3,4,0,6,7,0,9,10,11,12,13,14,0,16,17,18,0,0,21,
1855  0,24,0,26,27,0,29,30,0,32,33,34,0,1,2,3,4,5,0,0,0,9,0,11,12,13,14,15,0,0,0,0,20,0,22,
1856  24,25,0,0,28,0,30,0,32,0,34,35,1,2,3,4,0,6,7,0,9,0,11,0,13,0,0,16,0,18,19,0,21,22,23,
1857  25,0,27,28,0,30,0,32,33,0,35,0,0,3,0,5,0,0,0,9,10,11,12,0,14,15,16,17,18,19,20,0,22,23,24,
1858  26,27,28,29,0,0,0,33,0,35,1,2,3,0,0,0,0,8,0,0,11,12,0,0,15,16,17,18,19,20,21,22,23,24,25,
1859  27,0,0,30,0,32,33,34,35,1,2,3,4,5,6,7,0,9,0,11,12,0,14,0,16,17,18,0,0,21,22,23,24,25,26,
1860  0,29,0,0,32,0,0,35,1,2,0,4,5,6,0,0,9,0,11,12,0,14,15,16,17,18,0,0,0,0,23,0,25,26,27,
1861  29,30,31,32,33,0,0,1,2,3,0,5,6,7,8,0,10,0,0,13,0,15,0,17,18,0,20,21,22,0,24,25,26,0,0,
1862  30,31,0,33,34,35,0,0,3,0,0,6,7,0,9,10,0,12,13,0,0,16,0,0,19,0,21,22,23,0,25,0,27,28,29,
1863  0,32,33,0,35,1,2,3,4,5,0,7,8,9,10,0,0,13,14,15,16,17,18,0,0,21,22,23,24,0,26,0,0,29,30,
1864  0,33,34,35,1,0,3,0,5,6,7,8,9,0,11,12,13,14,15,16,17,0,19,20,21,22,0,0,25,26,27,28,0,0,0,
1865  33,0,0,1,0,0,4,5,6,7,0,9,10,11,12,0,14,15,16,17,18,19,20,21,22,23,24,25,26,27,0,0,30,31,32,
1866  0,35,0,2,0,0,5,6,7,8,9,10,11,12,0,0,15,0,0,18,19,20,21,0,23,24,25,0,27,28,0,0,31,32,0,
1867  35,1,2,3,4,5,6,0,0,0,10,11,0,13,14,15,16,0,18,19,20,21,22,23,24,0,0,27,28,29,30,31,32,33,34
1868  };
1869 
1870  const int d40_528[] = {
1871  // Size: 40 x 40
1872  40,
1873  // Pre-assigned fields
1874  1,2,3,4,5,0,7,8,9,10,0,0,0,0,15,0,0,0,19,0,21,22,0,0,0,26,27,28,0,0,31,32,0,0,35,0,0,0,39,0,
1875  2,3,0,5,6,7,0,9,0,11,12,13,14,15,16,17,18,19,20,21,22,23,24,0,26,0,0,29,30,0,32,33,34,0,0,0,38,39,0,1,
1876  3,4,0,6,7,8,9,0,0,0,0,0,0,16,0,0,0,0,21,22,23,24,25,26,27,28,29,30,0,0,0,34,35,0,37,38,39,40,1,2,
1877  0,5,6,0,8,9,10,0,12,0,14,0,16,17,18,19,0,0,0,0,24,25,0,27,28,29,0,31,32,33,0,35,36,0,38,0,0,1,2,0,
1878  5,6,7,0,9,0,11,12,13,14,15,16,17,0,19,0,21,0,23,24,25,26,27,28,0,30,0,32,33,0,35,0,37,38,0,40,1,0,0,4,
1879  6,7,8,9,0,11,12,13,14,15,0,17,18,0,20,21,22,0,24,25,0,27,0,29,30,31,0,33,34,35,0,37,38,39,0,1,2,0,0,5,
1880  7,8,0,10,0,0,0,14,15,16,17,18,19,20,21,0,23,24,25,0,27,28,29,30,31,32,33,34,35,36,37,38,39,0,1,2,3,4,5,6,
1881  0,9,10,0,12,13,14,15,16,17,0,19,20,0,0,23,24,25,26,27,28,29,0,31,32,33,0,0,36,37,0,39,40,1,0,0,0,5,0,0,
1882  9,10,11,12,13,14,0,0,17,18,19,0,21,22,23,24,25,0,0,28,29,0,0,0,33,34,0,0,37,38,39,0,1,2,0,0,5,0,7,8,
1883  10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,0,0,29,30,31,0,0,0,35,36,37,38,39,40,1,0,3,4,5,6,0,8,9,
1884  11,12,0,14,15,16,17,18,19,0,0,0,23,24,25,26,27,28,0,0,31,0,33,0,35,0,0,38,39,40,0,2,0,4,5,6,7,0,9,10,
1885  0,13,14,15,0,17,0,0,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,0,36,37,0,39,40,0,0,3,4,5,6,0,0,0,10,0,
1886  0,0,15,16,0,18,19,20,0,0,23,24,25,26,0,28,29,0,31,0,0,34,35,36,37,38,39,0,0,2,3,0,0,6,7,8,9,10,11,0,
1887  14,15,16,0,18,19,0,21,22,23,24,25,26,27,28,0,30,31,32,33,34,0,36,37,38,39,0,1,0,3,4,0,6,0,0,9,10,11,12,13,
1888  15,16,17,0,0,20,21,22,23,0,25,26,27,28,29,30,31,32,33,0,35,36,37,0,0,40,0,2,3,4,0,6,7,8,0,10,11,12,13,0,
1889  0,0,0,19,20,21,0,0,24,25,26,0,28,29,30,31,32,0,34,35,36,0,0,39,40,1,2,0,0,5,0,7,0,9,10,11,0,13,0,15,
1890  17,18,19,0,21,22,23,0,0,26,27,0,29,30,31,32,33,34,0,36,0,38,0,40,1,2,3,0,5,6,0,8,0,0,11,12,0,14,15,16,
1891  18,0,0,21,22,23,24,0,26,0,28,0,0,31,0,0,34,0,0,37,38,39,40,1,2,3,4,0,6,7,8,9,0,11,12,0,14,0,16,0,
1892  0,20,21,22,0,24,0,0,0,28,29,30,31,32,33,34,0,36,37,38,0,0,1,2,3,0,0,6,7,8,0,10,0,12,13,0,0,0,17,0,
1893  0,0,22,23,0,25,0,27,28,29,0,31,0,33,34,35,36,37,0,39,40,0,2,3,4,5,6,7,8,9,10,0,0,13,0,0,16,17,0,0,
1894  21,22,23,24,25,26,27,0,29,30,31,0,33,34,35,36,37,0,39,40,1,2,3,4,0,6,7,8,0,0,0,12,13,14,0,16,0,18,19,20,
1895  0,23,0,0,0,0,28,29,30,31,32,33,34,35,36,37,38,0,0,0,2,0,0,5,6,0,0,0,10,11,12,13,14,15,0,17,18,0,20,21,
1896  23,0,25,26,27,28,29,30,31,32,33,34,35,0,0,0,39,40,0,2,3,4,5,6,0,0,0,10,0,0,13,14,0,16,17,18,0,20,21,22,
1897  24,0,0,27,28,0,0,0,0,33,0,35,0,0,0,39,40,1,2,3,4,0,6,7,8,9,10,11,12,13,14,15,0,0,0,19,20,21,0,23,
1898  0,26,27,28,0,30,0,32,33,34,0,0,37,38,0,40,1,2,3,4,5,6,7,8,0,0,0,12,13,14,0,0,0,0,19,20,21,0,23,24,
1899  26,27,28,0,0,0,32,0,34,35,0,37,0,39,0,1,2,0,4,0,0,7,0,9,0,0,0,13,14,0,16,0,0,0,20,0,22,23,0,25,
1900  0,28,0,30,31,0,33,34,35,0,37,0,0,40,1,0,3,4,0,6,7,0,9,10,11,0,0,0,15,16,17,18,19,20,21,0,0,24,25,0,
1901  28,29,0,31,32,0,34,0,0,0,38,39,0,0,2,3,4,0,6,7,8,9,10,11,12,13,14,0,16,17,18,19,20,21,0,23,24,25,26,27,
1902  0,0,0,32,33,34,0,0,37,38,0,40,1,0,0,0,5,6,7,8,9,0,0,12,13,14,0,16,0,0,0,20,21,22,23,24,25,26,27,0,
1903  30,0,32,33,0,35,36,37,38,39,0,1,2,0,0,0,0,0,0,0,0,11,12,0,14,15,16,0,18,0,0,0,22,0,24,0,26,0,28,29,
1904  0,0,0,0,35,36,37,0,0,40,1,2,3,4,0,6,7,8,0,10,11,0,0,0,0,0,17,0,0,20,21,0,23,24,0,26,27,28,0,30,
1905  32,0,34,0,36,0,0,39,40,1,2,3,4,5,6,0,8,9,10,11,0,13,14,0,0,17,18,0,20,0,0,23,0,25,0,27,28,0,30,31,
1906  0,0,35,36,37,38,39,40,0,0,0,4,5,6,7,8,9,10,0,12,13,14,15,16,17,18,19,0,0,22,23,24,25,26,27,28,0,30,31,0,
1907  0,35,36,0,38,39,40,1,2,0,4,0,0,7,8,0,10,11,12,0,14,15,16,17,18,0,20,0,0,23,24,25,26,27,28,29,30,31,32,33,
1908  35,36,37,38,0,40,1,2,3,0,5,6,7,8,9,10,11,12,0,14,15,16,17,18,19,20,21,22,23,24,0,0,0,0,29,30,31,32,0,34,
1909  0,37,0,39,40,0,0,3,0,0,6,0,8,9,0,11,0,13,0,15,0,0,18,19,0,21,22,23,0,25,26,27,28,29,30,31,32,33,0,35,
1910  0,38,39,40,1,2,0,4,5,0,0,0,0,10,0,0,13,14,15,16,17,18,19,0,21,22,0,0,0,0,0,28,0,30,31,32,33,34,35,36,
1911  38,39,40,1,2,3,4,5,6,0,8,0,0,11,12,0,14,0,16,0,18,0,0,0,22,23,0,0,26,27,28,0,30,31,32,33,34,0,36,37,
1912  0,40,1,2,3,4,0,6,7,8,0,10,11,12,13,14,15,16,17,18,19,20,21,22,0,0,0,26,0,28,0,30,31,0,33,0,35,36,37,38,
1913  40,1,2,3,0,5,0,7,8,9,10,0,12,13,14,15,0,17,18,19,0,0,0,23,0,25,0,0,28,29,30,31,0,33,34,35,0,37,0,39
1914  };
1915 
1916  const int d40_544[] = {
1917  // Size: 40 x 40
1918  40,
1919  // Pre-assigned fields
1920  15,0,2,0,34,30,26,29,18,0,35,37,4,13,6,0,14,25,21,20,0,9,0,24,38,3,16,0,40,0,28,23,33,11,10,17,39,22,31,5,
1921  27,22,7,26,17,40,0,1,13,28,12,0,31,0,30,8,20,5,33,38,10,0,29,23,0,0,2,0,37,18,24,4,14,32,0,9,25,21,0,0,
1922  0,10,0,4,0,32,14,26,0,0,18,0,36,9,0,0,27,11,1,35,0,16,33,37,0,31,8,0,0,40,0,0,6,5,29,34,3,7,24,30,
1923  1,0,34,10,39,0,0,0,6,0,23,35,25,0,27,0,9,3,5,24,29,37,0,0,0,0,30,22,0,2,13,31,26,0,32,38,11,15,0,0,
1924  34,0,5,22,1,19,38,0,0,18,0,0,32,2,36,11,0,16,0,12,33,30,0,29,21,23,15,0,0,27,10,0,24,0,0,7,31,4,28,13,
1925  0,29,27,13,0,24,22,0,0,0,16,3,10,34,19,4,33,30,15,9,20,0,0,6,7,36,40,0,39,17,0,0,21,14,31,18,26,2,11,23,
1926  0,32,4,0,0,22,25,34,0,26,0,27,0,0,40,2,11,29,0,0,16,3,8,1,19,18,20,14,0,21,5,0,0,9,0,0,35,6,0,0,
1927  11,0,38,17,2,31,0,36,0,5,0,25,40,4,16,10,19,0,37,18,0,0,0,32,9,7,33,23,0,0,0,0,39,12,0,0,24,0,29,21,
1928  35,0,30,0,0,39,0,38,28,6,0,23,0,0,31,33,36,0,27,29,3,12,20,0,18,0,37,21,15,24,16,0,0,8,2,0,1,17,25,0,
1929  25,0,15,6,9,29,0,18,21,23,26,28,16,30,24,37,0,17,14,22,0,5,11,0,10,0,34,0,0,0,31,2,36,4,1,32,0,19,0,0,
1930  0,0,0,0,38,0,0,0,39,16,22,24,13,6,0,0,12,18,2,11,28,0,1,0,31,0,0,0,0,30,32,0,34,36,26,0,4,5,15,19,
1931  7,1,10,21,40,35,9,0,0,0,3,34,12,36,0,13,8,0,0,27,32,17,25,0,39,0,23,26,6,0,0,24,0,0,0,20,15,37,0,0,
1932  6,20,39,0,0,26,4,30,0,40,0,0,29,14,0,1,0,7,0,8,0,38,2,28,5,0,32,0,0,11,25,37,0,0,22,0,10,12,27,36,
1933  0,27,8,0,0,2,0,25,32,29,36,15,0,11,21,17,1,9,19,4,18,34,5,0,23,0,12,0,22,0,38,35,7,28,14,0,37,24,0,26,
1934  0,0,0,29,0,11,0,20,14,25,0,0,26,40,38,28,6,0,0,13,34,24,16,22,0,0,0,0,35,33,9,0,0,31,8,1,0,18,0,39,
1935  0,0,0,16,11,21,7,39,29,0,34,4,1,0,25,24,32,0,3,0,6,33,0,5,36,0,22,35,18,19,0,26,38,0,13,0,9,30,0,0,
1936  3,38,24,0,14,36,0,2,12,10,11,19,0,8,0,39,4,6,40,16,15,1,27,0,30,37,0,17,0,0,0,22,29,0,0,26,0,23,0,35,
1937  21,23,18,19,29,25,10,6,24,0,1,14,15,5,35,0,0,0,13,28,0,26,0,34,0,0,4,38,0,16,12,30,37,17,0,40,20,36,0,22,
1938  40,0,0,0,22,0,32,8,35,0,25,20,0,0,7,18,37,38,29,30,0,14,0,0,4,0,0,33,2,39,0,0,16,10,0,23,6,0,26,17,
1939  16,15,14,18,0,0,12,0,0,0,0,32,0,0,26,40,34,28,0,37,35,8,30,39,33,5,6,19,0,0,0,0,10,3,38,0,29,20,17,25,
1940  0,12,29,15,32,34,39,0,0,0,30,0,0,26,33,0,31,40,35,3,17,0,21,27,14,2,0,25,24,4,0,1,0,18,36,28,38,16,9,37,
1941  9,17,20,0,24,1,0,19,0,35,32,40,5,37,0,0,0,0,36,21,31,10,4,26,0,33,29,3,16,25,0,38,22,2,18,13,0,0,0,6,
1942  10,13,26,12,0,0,40,0,0,4,0,0,21,0,28,0,3,0,17,0,30,0,37,14,2,22,0,0,23,32,39,27,18,34,6,29,16,8,1,0,
1943  20,0,16,34,28,0,21,27,40,0,2,36,0,0,15,29,0,37,10,31,13,0,3,35,0,6,0,7,0,14,1,0,17,23,5,19,30,39,0,32,
1944  33,37,19,23,25,17,0,35,31,30,0,5,24,39,0,0,22,32,0,40,0,21,7,0,27,12,38,36,29,0,15,0,0,0,20,16,28,26,0,11,
1945  14,34,11,33,0,12,3,37,19,20,9,0,6,32,17,30,0,23,31,1,0,4,0,0,0,13,27,2,0,35,0,29,15,22,39,0,0,38,5,16,
1946  32,18,17,36,0,4,0,0,33,2,40,26,0,0,8,0,21,14,11,7,37,28,6,0,0,15,39,9,34,13,0,0,0,20,12,22,5,10,38,1,
1947  39,0,33,2,0,5,0,28,34,0,38,0,11,25,0,6,0,0,7,0,36,0,0,18,0,24,0,8,20,0,17,19,23,0,27,0,40,35,30,3,
1948  17,24,23,9,0,14,5,31,25,0,28,11,0,38,0,0,16,35,32,19,0,7,0,12,0,0,18,0,0,37,3,0,13,0,0,0,22,0,0,29,
1949  2,0,0,37,18,10,1,0,0,9,0,31,3,27,5,21,29,0,6,39,0,0,22,0,11,28,35,13,0,15,19,0,25,38,0,8,7,0,34,20,
1950  30,11,21,35,0,33,24,32,10,31,5,0,8,0,0,0,25,12,0,14,0,18,39,38,0,0,0,27,19,0,29,0,0,7,0,0,0,13,16,40,
1951  4,19,40,14,26,0,0,22,0,0,0,21,35,0,0,9,5,27,0,15,0,6,13,2,3,25,0,30,12,0,34,0,31,33,17,0,32,29,18,24,
1952  13,40,37,0,27,0,0,9,30,0,33,0,14,0,0,38,0,0,28,6,11,0,24,0,1,0,26,0,0,23,7,16,0,0,21,3,12,34,19,31,
1953  23,25,3,0,8,28,0,7,16,27,0,17,20,15,13,22,2,33,12,0,19,31,36,0,6,10,1,0,26,38,14,34,40,0,0,24,18,9,35,0,
1954  22,31,0,7,37,6,0,15,27,0,0,0,18,0,1,5,38,0,0,0,24,11,0,8,0,30,13,4,32,34,33,12,20,0,0,10,14,28,0,0,
1955  29,5,12,40,0,37,33,16,0,36,8,39,27,0,3,26,18,0,38,0,1,0,14,0,0,4,19,32,13,0,35,0,9,24,0,25,23,31,21,28,
1956  36,0,6,0,15,16,2,12,3,13,0,0,0,21,0,0,30,0,22,0,0,19,0,9,37,14,0,24,33,29,0,0,1,35,4,27,0,25,0,18,
1957  0,0,22,0,0,0,11,13,38,34,0,0,0,0,0,35,39,0,0,2,4,0,40,31,17,16,0,29,10,12,0,32,8,26,25,5,0,1,20,27,
1958  26,30,0,0,20,0,0,17,7,19,0,6,0,0,0,16,0,0,8,33,0,39,38,0,12,35,36,0,0,3,4,0,32,0,37,2,0,27,14,0,
1959  0,2,0,8,0,0,0,3,36,22,0,33,34,0,23,14,15,13,25,5,38,0,0,20,0,0,28,0,9,31,26,21,0,16,35,4,19,0,0,12
1960  };
1961 
1962  const int d40_560[] = {
1963  // Size: 40 x 40
1964  40,
1965  // Pre-assigned fields
1966  15,36,2,27,0,0,26,0,18,32,35,37,4,13,0,12,0,0,21,20,8,0,19,0,38,3,16,0,40,7,0,0,33,11,0,17,39,0,31,5,
1967  27,0,7,26,0,0,36,0,13,28,12,16,31,3,30,8,20,5,33,0,0,0,29,23,35,0,0,0,37,18,24,4,14,32,0,0,25,0,6,34,
1968  0,0,0,4,19,32,14,26,17,12,0,0,36,9,20,0,27,11,0,35,0,0,33,37,0,31,0,0,21,40,0,0,6,0,29,34,0,7,24,30,
1969  1,33,34,10,39,0,20,4,6,0,23,35,0,12,0,19,9,3,5,24,29,37,0,0,40,17,30,0,14,2,0,0,26,21,32,38,11,0,36,8,
1970  0,39,0,22,1,19,38,0,26,0,0,0,0,2,36,11,35,16,0,12,33,30,0,29,0,23,0,0,17,27,0,14,24,25,0,7,31,0,28,13,
1971  38,0,0,13,12,24,22,5,8,1,16,0,10,34,0,4,33,30,15,9,20,0,35,6,7,0,40,28,0,0,37,0,0,14,0,0,26,0,11,23,
1972  0,0,4,38,33,22,25,34,0,26,0,0,17,0,40,2,11,0,0,36,0,0,0,0,19,18,20,14,28,0,5,15,0,9,23,31,35,6,13,0,
1973  0,8,38,17,2,31,13,36,20,0,27,0,40,0,16,10,0,22,37,18,0,0,34,32,0,7,0,23,1,28,30,6,39,12,15,14,0,3,0,21,
1974  35,9,0,32,0,39,34,38,28,0,13,23,22,0,31,33,36,0,27,29,3,12,0,7,18,0,0,21,15,0,16,40,0,8,0,0,0,17,25,14,
1975  0,0,15,6,9,29,8,18,0,23,0,28,0,30,0,37,40,17,14,22,0,5,0,3,10,38,34,12,27,20,0,2,0,4,1,32,13,0,0,33,
1976  37,7,0,0,0,3,23,21,39,0,22,24,13,6,0,0,0,18,2,11,28,40,1,33,0,0,0,10,0,30,32,17,34,0,26,35,4,5,15,19,
1977  0,1,10,21,40,0,0,0,0,33,3,0,12,0,0,13,0,0,16,27,32,17,25,0,39,19,23,26,0,5,18,24,28,0,30,20,0,0,22,38,
1978  6,0,39,0,0,0,4,0,9,0,15,0,0,0,0,1,0,7,0,0,23,38,0,28,0,0,32,0,0,0,0,37,0,0,22,0,10,12,0,0,
1979  0,27,8,3,13,2,6,0,0,29,36,15,30,0,21,17,1,0,19,4,0,34,5,40,23,20,12,16,22,10,38,0,7,28,14,39,37,0,33,26,
1980  0,21,0,29,7,11,0,20,14,0,0,0,26,0,0,28,6,4,23,13,0,0,16,0,0,32,3,37,35,33,9,0,0,31,8,1,0,0,0,39,
1981  8,14,0,16,11,21,0,39,0,37,34,4,0,31,0,0,32,0,3,17,6,33,0,5,0,0,0,0,0,19,2,26,38,0,13,0,9,30,10,0,
1982  0,38,0,0,14,36,0,0,12,0,11,19,7,8,18,39,0,6,0,16,0,0,27,25,0,0,21,17,5,0,20,22,0,0,0,26,33,23,32,35,
1983  21,23,18,19,29,25,10,6,0,0,1,14,15,5,0,0,7,2,0,0,9,26,32,34,0,0,4,0,11,16,12,30,0,17,33,0,20,36,3,22,
1984  40,3,31,0,22,0,0,8,35,15,25,0,0,0,0,0,0,38,0,30,0,14,12,19,4,34,0,33,0,0,36,13,16,0,24,23,6,0,0,17,
1985  16,0,0,18,21,0,12,0,1,24,0,0,2,23,26,0,0,28,9,37,35,0,30,39,33,5,0,19,31,22,27,7,10,3,38,0,29,0,0,25,
1986  0,0,29,15,32,34,39,10,11,8,0,22,23,26,0,20,31,0,35,3,0,0,0,27,14,2,7,0,0,4,0,0,0,0,36,0,38,16,0,37,
1987  9,0,0,30,24,0,27,19,0,0,0,0,5,0,12,0,0,0,36,21,31,10,0,26,28,0,29,3,16,25,11,0,22,0,0,13,34,14,39,6,
1988  10,13,26,12,35,0,40,33,5,4,19,0,0,0,28,36,0,15,17,0,0,20,0,14,2,22,31,11,0,32,0,27,18,0,6,0,16,8,0,0,
1989  20,4,0,34,28,9,21,27,40,11,2,36,0,0,15,0,26,0,10,0,13,0,3,35,0,0,24,0,38,14,0,0,0,23,5,19,30,0,0,32,
1990  33,37,19,23,25,0,18,35,0,30,6,5,0,0,0,0,0,0,34,40,0,21,0,13,27,12,38,36,29,0,15,9,0,1,20,16,0,26,4,0,
1991  14,34,0,33,0,12,3,0,19,0,9,18,6,0,0,0,28,23,31,1,25,0,26,36,24,13,0,2,0,0,0,0,0,22,0,21,0,38,5,16,
1992  32,18,0,0,31,0,29,0,33,0,40,26,19,35,8,25,0,14,11,7,0,0,6,30,16,0,39,0,34,0,0,0,0,20,12,0,5,10,0,1,
1993  39,16,33,0,4,5,31,28,34,0,0,12,11,25,29,6,0,21,7,26,0,0,10,18,32,0,9,8,20,1,17,0,23,37,27,0,0,35,30,3,
1994  0,24,23,0,36,14,5,0,0,21,0,0,0,38,2,34,0,35,32,19,27,7,15,12,26,0,18,20,4,37,3,10,0,6,40,30,22,33,0,0,
1995  0,26,0,37,18,10,1,23,4,0,0,31,3,0,5,0,0,24,6,39,0,36,22,17,11,28,35,13,0,15,0,33,0,38,16,0,7,40,0,20,
1996  0,11,0,35,23,0,0,0,0,0,5,0,8,20,0,15,0,12,4,14,22,0,39,38,34,9,0,27,0,26,29,36,3,7,28,6,2,13,0,40,
1997  4,19,40,0,0,0,16,22,23,0,20,21,35,0,11,0,5,0,39,15,0,6,13,2,0,25,0,0,12,36,0,0,31,0,17,37,0,0,18,24,
1998  13,0,37,25,27,0,0,9,30,17,33,2,14,22,32,38,10,0,28,6,11,29,24,4,1,8,26,18,0,23,0,16,0,15,21,3,12,0,19,31,
1999  23,25,3,39,8,28,37,7,16,0,0,17,0,15,13,22,2,33,12,32,0,0,36,21,6,10,0,0,26,38,0,34,0,30,11,24,18,9,0,4,
2000  0,0,0,7,37,6,0,15,27,3,21,29,18,16,1,0,38,36,26,23,0,0,17,8,25,0,13,4,0,0,33,0,0,39,9,0,14,28,40,2,
2001  29,5,12,0,30,37,33,16,22,36,8,39,27,17,3,0,0,34,0,10,1,2,14,0,20,4,0,0,13,0,0,11,0,24,0,25,0,0,21,28,
2002  36,28,0,0,15,0,2,12,3,13,0,10,0,21,39,0,30,0,0,0,40,19,0,0,0,14,11,0,0,29,8,20,0,35,0,27,0,25,23,0,
2003  0,0,0,28,0,0,0,0,38,0,24,7,37,33,0,35,39,19,30,0,0,23,0,31,0,16,14,29,10,0,0,32,8,26,0,0,36,1,0,0,
2004  0,30,13,11,20,23,15,17,7,19,31,6,28,29,0,16,24,1,8,0,5,0,38,10,0,35,0,34,25,3,0,18,0,40,37,0,0,0,0,0,
2005  24,2,1,8,6,7,0,3,0,22,17,33,34,0,0,0,15,13,25,0,0,27,0,20,0,39,28,40,9,0,0,21,11,16,0,4,19,32,0,12
2006  };
2007 
2008  const int d50_750_bal[] = {
2009  // Size: 50 x 50
2010  50,
2011  // Pre-assigned fields
2012  43,28,49,45,17,31,9,0,19,26,0,29,18,41,15,14,32,0,0,0,3,13,50,8,0,10,2,1,0,25,27,11,0,39,47,0,20,0,36,12,0,5,0,44,37,0,0,40,4,0,
2013  26,18,14,0,43,24,6,17,9,38,0,2,0,12,0,46,47,0,44,15,0,0,0,0,42,8,48,41,30,32,4,25,37,33,19,0,0,34,11,35,40,0,10,23,0,39,50,0,0,5,
2014  5,38,10,32,18,23,21,31,41,16,17,0,36,0,50,0,33,37,0,40,48,25,2,0,0,49,0,0,3,7,14,29,30,44,0,46,43,0,0,0,24,0,15,0,0,22,1,8,27,12,
2015  18,0,2,36,26,48,0,27,22,0,0,20,41,0,30,25,11,7,9,28,0,39,21,37,0,15,24,40,0,3,35,0,14,10,0,0,4,0,8,34,0,23,43,29,5,32,0,0,31,6,
2016  11,36,0,14,37,0,7,10,0,30,38,0,4,1,0,18,22,6,32,2,20,50,0,29,39,31,3,12,0,0,42,0,0,34,26,41,25,8,19,44,13,0,35,0,0,46,5,0,49,0,
2017  40,0,33,29,16,0,0,1,0,36,0,0,0,0,31,0,0,0,5,27,0,6,8,49,2,0,4,34,35,20,24,32,46,47,25,22,38,0,50,23,19,13,30,45,15,0,14,11,7,3,
2018  0,0,25,0,30,27,50,45,0,0,31,42,13,4,10,35,0,40,28,19,15,11,49,36,0,0,17,8,16,34,21,6,7,0,0,0,47,0,0,29,0,0,5,3,38,44,37,9,14,32,
2019  45,0,0,15,6,44,0,37,43,50,13,8,0,33,19,36,7,23,20,5,30,38,1,40,29,0,0,9,32,0,0,0,0,46,0,26,17,0,35,4,21,0,48,16,0,0,3,18,42,47,
2020  0,30,11,16,14,33,42,15,0,10,44,0,17,7,0,49,0,4,0,22,37,26,0,45,34,47,5,50,13,24,0,48,8,23,20,27,9,0,0,0,0,25,0,28,39,6,19,0,0,2,
2021  0,12,24,19,42,6,49,0,0,31,43,27,0,37,45,17,0,0,3,8,21,36,34,15,0,44,0,10,5,41,33,2,50,22,0,48,29,14,28,0,0,9,16,0,0,0,0,46,18,1,
2022  19,48,4,13,0,1,40,11,49,23,0,0,35,34,20,0,9,17,26,43,0,44,25,18,46,0,21,0,0,5,0,12,16,29,28,0,15,47,0,27,0,24,0,37,0,10,8,42,0,14,
2023  33,5,39,50,24,12,20,6,10,0,30,18,0,16,26,0,27,0,0,4,0,40,41,31,36,48,25,0,0,21,0,7,0,14,0,2,44,32,37,45,0,3,29,38,1,0,0,22,34,0,
2024  7,3,0,47,0,42,0,21,37,0,15,24,34,31,36,1,0,33,0,11,10,12,0,32,25,6,0,49,48,14,8,0,0,27,17,43,0,0,23,16,26,0,0,46,40,41,18,38,0,50,
2025  34,7,19,33,0,0,30,49,47,11,16,36,9,14,4,41,0,0,0,26,6,0,31,10,40,18,45,32,0,37,0,23,0,25,50,0,13,39,44,0,0,0,0,2,27,0,12,5,46,17,
2026  3,32,36,2,23,0,16,0,21,22,35,33,7,0,0,0,37,0,34,31,50,0,0,12,0,1,0,44,4,0,17,0,49,45,0,0,10,24,9,6,5,30,28,0,43,19,13,20,40,26,
2027  46,39,0,0,12,0,8,0,0,49,20,1,24,0,41,16,40,0,0,0,26,0,47,44,11,2,36,28,23,0,45,0,21,19,35,3,22,6,32,18,9,50,0,0,7,17,0,48,15,25,
2028  48,9,46,34,49,0,33,28,44,42,19,0,32,0,27,10,0,0,0,3,0,16,11,23,0,13,29,14,20,15,7,17,25,0,45,36,40,18,31,38,1,22,0,0,47,0,24,0,0,0,
2029  38,37,1,27,20,0,0,35,12,0,4,13,6,8,0,0,23,9,0,0,44,17,14,0,0,33,0,43,46,16,0,45,36,21,0,32,34,48,0,22,7,18,0,26,29,5,41,24,0,10,
2030  37,47,0,30,4,25,0,0,36,3,46,0,40,20,0,6,34,49,15,10,0,31,28,35,5,7,16,39,1,0,9,0,44,0,23,0,33,29,41,0,0,0,12,11,24,0,42,45,26,0,
2031  36,0,32,31,0,15,12,8,0,0,0,23,39,42,25,0,44,35,11,0,0,0,0,30,45,41,49,0,27,40,0,38,6,16,9,13,21,2,34,0,37,33,14,18,26,3,0,19,0,43,
2032  32,0,22,48,0,0,0,14,0,39,24,31,0,40,35,13,0,36,27,44,23,34,37,47,38,0,7,0,42,49,19,18,0,0,16,29,0,26,5,0,3,4,8,9,17,43,0,12,6,0,
2033  25,19,15,0,28,0,0,39,20,5,0,0,21,0,0,50,42,45,7,35,16,32,13,17,33,0,0,4,22,46,18,36,40,24,49,47,0,44,0,2,0,38,11,30,0,12,0,0,9,34,
2034  0,33,30,39,32,11,0,23,28,8,21,49,0,38,0,0,31,15,18,0,25,37,19,24,44,22,34,42,6,0,36,43,12,17,0,9,0,0,3,7,4,0,0,0,0,0,29,35,48,45,
2035  0,40,0,9,45,29,28,48,4,0,5,0,0,3,0,15,0,0,19,39,17,0,23,22,14,0,0,47,25,42,41,35,2,1,18,6,32,36,0,8,0,46,37,24,16,30,11,0,0,20,
2036  12,0,47,7,0,18,25,36,0,0,40,38,5,49,1,0,35,27,50,33,13,41,0,0,37,0,42,11,39,28,29,16,0,0,0,10,23,0,0,0,2,14,9,21,8,31,0,17,20,46,
2037  0,14,0,37,7,0,4,29,24,0,26,0,0,36,0,43,0,25,42,0,8,35,3,6,15,11,13,33,0,0,16,44,39,28,0,21,50,38,27,0,0,40,22,31,32,45,49,30,23,0,
2038  44,8,0,0,15,38,0,30,32,9,6,0,0,47,34,0,45,20,21,12,0,0,10,39,31,16,23,18,24,4,0,0,17,35,41,0,0,0,42,14,28,36,46,49,33,0,27,0,25,22,
2039  9,50,28,23,25,14,43,0,0,34,48,21,49,0,0,33,46,0,0,17,0,0,15,0,0,27,47,19,29,0,0,41,35,0,38,44,16,30,45,42,36,20,7,0,0,1,32,31,37,40,
2040  0,46,38,25,29,22,36,0,40,13,0,10,0,0,44,7,39,0,24,14,42,2,0,0,0,0,35,20,37,17,30,5,23,0,4,12,45,41,1,43,48,11,18,6,0,0,9,0,33,0,
2041  50,29,0,0,0,13,35,16,8,25,12,32,44,46,49,0,0,14,4,0,28,7,5,2,20,36,0,38,17,43,39,10,0,3,21,19,30,40,0,0,15,0,0,0,45,11,23,0,0,37,
2042  39,6,0,3,0,0,47,9,45,18,0,34,0,0,13,37,50,16,23,7,0,5,0,42,48,17,31,0,12,0,22,4,0,36,15,25,41,11,0,21,14,19,49,20,10,29,0,26,0,0,
2043  27,0,42,21,3,34,0,0,33,29,32,46,30,0,0,0,36,0,10,0,0,1,4,7,16,23,37,17,26,13,12,0,15,2,31,14,0,43,0,24,44,49,6,19,0,9,20,0,8,0,
2044  0,0,20,42,2,0,0,0,29,27,50,0,31,21,0,23,8,18,30,32,33,46,40,0,0,12,43,0,0,0,25,9,0,15,34,17,0,37,14,10,41,47,26,0,13,24,28,44,5,39,
2045  0,0,45,0,5,16,34,13,46,0,18,41,38,26,0,9,0,28,0,0,47,0,20,0,49,30,33,0,0,8,32,27,31,42,10,1,37,3,22,36,11,21,19,25,44,35,17,0,0,0,
2046  17,34,0,0,8,20,32,0,0,0,2,22,1,23,6,21,18,0,45,36,29,0,39,46,10,0,0,35,0,27,0,24,0,41,5,33,0,15,38,30,31,37,42,12,19,13,0,47,28,0,
2047  23,10,5,0,0,46,44,0,27,40,0,16,15,0,17,30,0,34,41,0,11,21,35,0,9,38,22,37,19,0,0,0,0,31,7,45,49,0,18,32,47,2,39,36,0,26,43,14,3,0,
2048  0,0,0,38,0,0,29,32,42,7,0,19,14,15,47,0,30,41,0,1,0,24,48,0,22,45,46,0,21,44,0,28,11,0,8,4,3,12,40,39,20,0,2,13,6,18,31,37,0,16,
2049  42,27,0,28,36,32,13,7,18,4,45,39,2,5,43,48,24,50,0,0,49,15,0,0,0,0,30,0,11,0,44,0,22,0,0,0,0,25,20,9,34,41,47,33,14,23,40,10,0,35,
2050  4,0,8,0,0,2,0,0,6,32,0,15,43,9,40,28,19,39,25,23,34,18,0,16,0,0,38,48,33,30,3,22,41,0,29,5,0,27,0,13,0,35,17,0,12,50,0,1,47,36,
2051  24,22,0,0,1,0,26,0,7,0,0,4,37,0,18,0,15,44,14,21,36,0,16,13,0,28,50,23,10,47,34,3,20,48,43,35,0,46,6,0,38,0,40,0,11,33,39,0,45,31,
2052  15,35,26,22,44,50,37,18,0,12,36,48,0,27,3,8,0,32,43,0,24,0,0,14,17,0,19,0,0,45,0,0,38,20,39,11,31,10,49,5,0,6,0,40,9,0,0,41,1,7,
2053  0,4,0,0,0,35,46,26,0,1,0,14,33,28,24,44,49,42,40,30,41,0,36,0,32,5,0,45,15,9,38,19,13,0,0,0,6,16,0,25,12,31,23,0,20,8,0,43,39,21,
2054  0,45,17,0,40,26,23,42,3,24,11,25,22,10,14,5,0,29,46,0,38,49,27,0,43,9,32,36,0,0,50,20,47,0,0,0,8,21,0,31,39,15,0,4,0,0,44,7,19,0,
2055  0,0,37,46,13,0,18,34,5,14,39,17,0,0,28,38,3,11,35,9,22,0,42,50,41,43,0,0,7,1,0,15,0,0,33,30,36,0,2,40,16,0,0,8,31,4,0,21,29,19,
2056  0,0,31,0,0,41,5,2,0,21,1,37,27,32,11,19,10,48,6,29,39,33,45,20,13,0,0,0,8,38,23,0,34,40,14,0,24,4,12,0,50,0,3,0,42,0,46,0,44,18,
2057  41,0,9,20,0,7,38,4,13,0,14,0,46,0,39,0,16,19,36,0,43,30,12,5,24,3,1,0,34,31,10,0,29,26,27,0,0,28,17,0,0,8,0,0,35,42,47,32,50,15,
2058  0,43,35,0,19,36,27,0,23,0,34,0,16,22,46,24,26,38,0,18,14,0,0,25,47,32,41,3,0,0,37,31,0,0,48,42,0,0,15,33,17,1,21,50,49,20,10,13,0,28,
2059  28,20,6,8,21,5,0,0,0,0,10,0,29,11,33,26,2,13,1,50,0,23,0,0,0,4,0,31,14,39,0,37,45,0,0,24,46,0,30,17,27,0,32,35,18,49,15,36,16,42,
2060  10,13,23,18,0,30,0,20,50,17,0,5,3,45,37,39,12,0,0,42,0,19,44,0,7,34,0,29,0,6,31,14,33,4,46,0,2,9,24,0,8,32,38,0,22,16,36,0,0,0,
2061  1,15,3,41,48,4,24,22,14,37,9,35,0,43,0,32,17,5,33,0,19,42,0,27,6,0,8,0,0,0,49,0,18,38,36,34,0,20,0,0,25,44,0,10,0,0,16,23,21,13
2062  };
2063 
2064  const int d50_825_bal[] = {
2065  // Size: 50 x 50
2066  50,
2067  // Pre-assigned fields
2068  0,2,3,4,0,0,7,0,9,10,11,0,13,14,0,16,17,18,19,20,0,22,23,24,25,0,0,0,29,30,0,32,33,0,35,36,0,0,0,40,41,42,43,44,0,0,47,48,49,50,
2069  0,3,4,5,6,0,8,9,10,11,0,13,14,0,16,0,0,19,20,0,22,23,24,0,0,27,28,29,30,0,32,0,34,35,36,0,38,0,40,41,0,0,0,45,46,47,48,49,50,1,
2070  3,0,0,6,7,8,9,0,11,12,13,14,15,16,0,0,0,20,21,0,23,0,25,26,27,0,29,0,31,32,0,34,0,36,37,0,39,0,41,42,0,44,45,0,47,48,49,50,1,0,
2071  4,5,6,7,8,9,10,0,12,0,14,0,16,0,18,19,20,0,22,23,0,0,26,0,0,29,30,31,0,33,0,0,36,37,38,39,0,41,42,43,44,45,46,0,0,0,0,1,2,3,
2072  0,6,7,8,9,10,0,12,0,14,15,16,17,18,19,20,0,0,23,24,25,0,27,28,29,30,31,32,33,0,0,36,37,0,0,40,0,0,43,44,45,46,47,0,49,0,0,0,3,4,
2073  0,7,8,9,10,0,12,13,0,15,16,17,0,0,0,21,22,23,24,0,26,0,28,0,30,31,32,33,34,35,36,37,0,0,0,41,0,43,44,45,46,47,48,0,50,0,2,3,0,5,
2074  7,0,9,10,0,12,13,14,15,16,0,0,19,20,0,0,23,24,25,26,27,0,0,30,0,32,33,34,35,0,37,38,39,40,41,0,0,44,45,0,47,0,0,0,1,2,0,4,5,6,
2075  8,9,10,0,12,0,0,15,16,17,0,0,0,0,22,23,24,25,26,0,0,29,30,31,32,0,34,35,36,37,0,39,40,0,42,0,44,45,46,47,48,0,50,0,2,3,4,5,6,0,
2076  9,0,0,0,0,14,15,0,17,18,19,20,0,0,23,24,25,0,27,0,29,30,31,32,33,34,35,0,37,0,0,40,41,0,43,44,0,46,47,48,49,50,1,0,0,4,0,6,7,8,
2077  10,0,12,13,14,0,16,0,0,19,20,21,22,23,24,25,26,27,0,0,30,31,32,0,0,0,0,0,38,39,0,41,42,43,44,45,46,0,48,0,50,0,2,3,4,5,6,7,0,9,
2078  0,12,0,0,15,16,17,18,0,0,0,22,23,24,25,26,27,0,0,30,31,32,33,34,0,36,0,38,39,40,0,42,43,44,45,46,0,48,49,0,1,2,0,4,0,6,7,8,0,10,
2079  12,13,14,15,16,17,0,19,0,21,22,0,24,0,26,27,28,0,0,0,0,33,0,35,36,37,38,39,40,41,42,43,44,0,0,47,48,0,0,1,0,3,4,5,6,7,0,0,0,11,
2080  0,14,15,16,0,0,0,20,0,22,23,24,0,26,0,0,29,30,31,0,33,0,35,36,0,38,0,0,0,42,43,44,45,46,47,48,49,50,1,2,3,4,0,6,7,0,9,10,0,12,
2081  0,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,0,34,35,36,0,0,0,40,41,42,0,44,0,0,0,48,0,0,1,0,3,4,0,0,7,8,0,10,11,12,0,
2082  15,16,0,18,0,20,0,22,23,24,0,0,27,28,29,0,31,32,0,34,35,0,0,38,39,40,0,42,0,0,45,46,47,0,49,0,0,2,3,4,5,6,7,8,9,0,0,12,13,14,
2083  0,0,18,19,20,21,0,23,24,25,26,0,0,29,30,31,32,0,0,35,0,37,0,0,40,41,0,43,44,45,46,0,48,49,50,1,0,3,0,5,0,7,8,0,0,11,12,13,14,15,
2084  17,18,19,20,0,22,23,24,25,26,0,28,29,30,31,0,0,34,35,0,0,0,39,40,41,42,0,0,0,0,47,48,49,50,1,2,3,4,0,0,7,8,9,0,0,0,13,14,0,16,
2085  18,19,20,0,22,0,0,25,0,0,28,29,30,31,32,33,34,35,0,37,38,39,40,41,42,43,44,0,0,47,48,49,50,1,0,0,4,5,0,7,0,9,0,0,0,13,0,0,16,17,
2086  0,20,21,22,23,24,25,26,0,0,29,30,31,0,0,34,0,0,0,38,39,40,41,42,0,44,0,46,0,48,49,50,1,0,0,4,5,6,0,8,9,10,11,12,13,0,15,16,0,18,
2087  20,21,22,23,0,0,0,27,0,29,0,0,32,33,0,0,36,0,38,39,40,41,42,43,0,45,46,47,48,49,0,1,2,3,0,5,6,7,8,9,10,11,12,0,14,15,0,17,0,0,
2088  21,22,23,0,25,26,0,0,29,30,31,0,33,0,35,36,0,38,39,40,41,42,43,44,45,0,0,48,0,0,1,0,0,4,5,6,7,8,9,0,11,0,13,0,0,16,17,18,19,20,
2089  22,23,0,25,26,27,0,0,30,31,32,33,0,35,36,0,0,0,40,41,42,43,0,45,0,47,48,49,50,1,0,0,0,0,6,0,8,9,10,11,0,13,14,15,0,17,18,0,20,21,
2090  23,0,25,0,27,28,29,0,31,0,33,34,0,36,37,0,0,40,41,42,0,0,0,0,47,48,49,0,0,2,3,4,5,6,7,8,9,10,11,12,0,14,15,0,17,18,0,0,21,22,
2091  24,25,26,27,28,29,30,31,0,33,34,35,0,0,0,39,0,41,42,43,0,45,46,47,0,49,50,0,2,3,4,5,0,0,8,0,10,11,0,13,0,15,16,17,0,0,20,0,22,0,
2092  25,26,27,28,0,30,31,32,33,0,35,36,37,38,39,0,0,42,43,44,0,46,0,0,49,50,1,2,3,4,0,0,0,8,0,0,0,12,13,14,15,16,17,18,19,20,21,0,0,0,
2093  0,27,0,29,0,0,32,33,34,0,36,37,0,39,40,0,0,43,44,45,46,47,48,49,0,1,2,3,4,5,6,7,0,9,10,11,12,0,0,0,0,17,18,0,20,21,22,23,24,0,
2094  27,0,29,0,31,0,33,0,35,0,37,0,39,0,41,42,43,44,45,46,0,48,0,50,1,2,3,4,0,6,7,8,0,10,0,12,13,14,0,0,17,0,19,20,0,22,23,24,25,26,
2095  28,29,30,31,0,33,34,35,36,37,0,39,40,41,0,0,44,0,46,47,48,0,50,0,2,3,4,5,0,7,8,0,10,11,12,0,14,0,16,17,0,19,20,0,0,0,24,25,0,0,
2096  29,30,0,32,0,34,35,0,37,0,39,40,41,42,43,0,45,0,0,0,0,0,0,2,3,4,5,6,7,8,9,10,0,12,13,14,0,0,17,18,19,20,21,0,23,24,25,0,27,28,
2097  30,0,32,33,34,0,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,1,0,3,4,0,0,0,8,0,0,11,12,13,0,15,16,0,18,0,20,21,22,23,24,0,0,0,0,0,
2098  31,32,33,0,35,36,0,38,39,40,0,42,0,0,45,46,47,48,49,0,0,2,3,4,0,6,7,0,0,10,11,12,13,14,15,16,17,0,0,0,21,22,0,24,25,0,27,28,29,0,
2099  32,33,34,35,0,0,38,39,40,0,0,0,44,45,0,47,48,49,0,0,0,0,0,5,6,0,8,9,10,0,12,13,14,15,16,17,18,19,0,21,22,23,24,25,26,0,28,29,30,0,
2100  33,34,35,0,37,38,39,40,41,42,43,0,45,46,47,0,0,50,0,2,3,4,5,0,7,0,9,0,11,12,13,14,15,0,17,0,0,0,21,22,23,0,0,26,0,28,29,0,31,32,
2101  34,35,36,37,0,0,40,0,42,43,0,45,46,47,48,49,0,0,0,3,4,0,0,7,8,9,0,0,12,0,14,0,16,17,18,19,20,0,0,23,24,0,26,27,28,0,30,31,32,33,
2102  35,0,37,38,39,0,0,0,43,0,0,46,47,48,0,50,1,2,3,4,0,0,7,8,9,10,11,12,13,14,15,0,17,0,19,0,0,0,23,0,25,0,27,28,29,30,31,32,33,34,
2103  0,37,0,0,0,41,42,43,0,45,0,47,48,49,50,1,2,0,4,5,6,7,8,9,10,0,12,13,0,0,16,0,18,19,20,21,22,0,24,25,26,0,0,29,30,31,0,0,34,35,
2104  0,0,39,40,41,0,43,44,0,46,47,0,0,50,1,2,3,4,0,0,7,8,0,0,11,0,0,14,15,16,17,18,0,20,21,22,23,24,0,26,0,0,29,30,31,32,0,34,35,36,
2105  38,0,0,41,0,43,44,45,46,0,48,49,50,1,0,3,4,0,0,7,8,9,0,11,12,13,14,0,16,17,0,19,20,21,22,23,0,25,0,27,28,0,0,31,0,33,0,35,36,0,
2106  0,0,41,42,0,44,0,46,0,0,49,50,0,0,0,4,5,6,0,0,9,10,11,12,13,0,15,0,17,18,19,20,0,0,23,24,25,26,27,28,0,30,31,32,33,34,35,0,37,38,
2107  40,0,42,0,44,45,0,47,0,49,50,1,2,3,4,5,0,7,8,9,10,11,0,0,0,15,0,17,0,19,20,0,22,23,0,25,26,27,28,0,0,0,32,33,34,35,0,37,38,39,
2108  41,42,0,0,45,46,47,48,0,0,1,2,3,0,5,6,0,8,9,10,11,12,0,0,15,0,17,18,19,20,0,0,0,24,25,0,27,28,29,0,31,32,0,34,35,36,0,38,0,40,
2109  0,43,0,0,46,0,48,49,50,1,0,3,4,5,6,7,8,9,0,11,12,13,14,15,0,0,18,0,0,21,22,23,0,25,26,0,28,0,30,0,32,33,0,35,36,37,38,39,0,41,
2110  0,44,45,46,47,48,49,0,1,0,3,4,0,6,0,0,0,0,11,12,13,0,15,16,17,18,0,20,21,0,23,0,25,0,0,28,29,30,31,32,33,34,35,0,37,38,39,40,41,0,
2111  44,45,0,0,48,49,0,0,0,0,4,5,0,7,0,9,10,11,12,0,14,15,16,0,0,0,20,21,0,23,24,25,26,27,28,29,30,31,32,33,34,35,0,37,38,39,40,0,0,0,
2112  45,46,0,0,49,50,1,0,3,4,5,6,0,0,9,10,11,0,13,14,0,16,17,18,19,20,0,22,23,24,0,26,0,0,0,0,31,32,33,0,0,36,0,38,39,40,41,42,43,44,
2113  46,0,48,0,0,0,0,3,4,5,6,7,0,0,10,11,12,13,14,15,16,17,18,0,20,21,22,23,0,25,26,0,28,29,0,31,0,33,34,0,0,0,38,39,0,41,42,43,0,45,
2114  47,48,0,50,1,2,0,4,5,6,0,0,9,10,11,0,13,14,0,16,0,18,19,20,21,22,23,24,25,0,27,28,29,30,0,32,33,34,35,36,0,38,0,40,0,0,0,0,0,0,
2115  48,0,0,1,2,3,4,5,6,0,0,0,0,11,0,13,14,15,16,17,18,0,20,21,22,23,24,0,26,27,0,0,0,0,32,33,34,35,36,37,38,39,0,41,42,0,44,0,46,47,
2116  49,50,1,2,3,4,5,0,7,8,0,10,11,0,13,14,15,0,0,0,19,0,0,22,23,0,25,26,27,0,29,30,31,32,0,34,0,36,0,0,0,0,41,42,43,44,45,46,47,0,
2117  0,0,0,3,4,5,6,7,0,9,10,0,12,13,14,15,0,17,18,19,0,21,22,0,0,0,0,27,28,0,0,31,32,33,0,35,36,37,38,0,40,41,42,43,44,45,0,0,48,49
2118  };
2119 
2120  const int d60_1080_bal[] = {
2121  // Size: 60 x 60
2122  60,
2123  // Pre-assigned fields
2124  8,0,44,0,0,25,0,26,48,6,57,0,0,7,29,40,0,0,31,36,50,21,32,52,38,49,13,56,37,51,0,0,45,59,1,27,15,9,0,0,47,0,16,33,18,0,39,46,0,0,42,17,54,20,11,0,0,23,53,60,
2125  34,31,17,0,39,0,12,0,3,52,25,55,0,0,16,43,0,0,57,0,30,0,48,13,15,7,49,10,45,60,0,22,11,51,5,29,6,53,19,0,36,0,0,0,58,1,35,33,37,0,47,41,0,0,44,28,0,42,56,24,
2126  0,45,18,44,58,11,53,41,0,35,26,23,0,0,0,49,17,57,1,0,7,19,31,43,21,0,9,54,38,36,4,51,0,39,29,22,60,25,24,0,50,0,0,42,47,0,32,14,0,0,12,0,0,30,13,55,34,20,0,0,
2127  1,0,33,46,20,17,41,49,34,26,35,21,3,13,44,0,0,47,0,0,40,36,38,0,31,27,0,42,30,32,48,2,4,43,8,0,0,24,0,0,58,0,9,7,29,50,51,18,45,0,0,0,39,0,6,0,5,60,57,0,
2128  35,4,10,59,0,57,56,9,60,34,0,0,5,25,38,46,33,0,21,29,53,37,11,42,36,32,0,58,0,0,0,50,43,0,3,13,0,6,0,28,40,18,0,1,19,8,23,16,14,26,0,39,0,0,7,0,49,0,52,0,
2129  45,10,49,0,16,0,14,48,0,0,37,17,57,52,0,3,51,0,0,58,4,0,0,7,8,0,33,29,42,5,28,54,23,21,20,0,0,0,43,0,30,0,18,15,0,46,0,0,25,22,32,60,13,40,2,39,44,9,35,34,
2130  27,21,16,0,23,37,0,0,35,45,0,30,51,9,50,20,36,54,0,34,0,25,17,0,22,0,58,13,59,0,0,0,52,4,0,0,0,15,46,0,31,49,44,0,10,33,29,47,0,53,7,18,55,0,5,41,39,48,28,56,
2131  32,0,1,41,18,0,49,23,7,13,15,22,43,0,0,12,0,16,30,45,21,44,8,50,19,0,0,26,0,2,59,11,6,0,47,35,28,55,5,25,34,29,0,46,0,0,0,42,27,3,0,0,0,17,58,0,4,0,39,40,
2132  0,60,9,3,29,53,0,33,50,54,22,52,37,0,0,6,0,40,55,23,8,26,58,36,56,1,0,14,57,10,30,47,28,20,0,0,11,48,31,4,59,19,0,0,0,42,0,0,44,0,0,46,41,39,25,0,0,15,0,17,
2133  60,56,37,0,55,5,10,59,40,8,48,12,21,0,43,22,15,25,45,42,0,7,0,0,0,0,57,0,27,0,23,44,31,52,4,49,9,51,41,0,0,1,24,0,26,16,0,0,58,30,20,11,0,0,14,19,50,54,0,0,
2134  31,55,0,0,47,29,15,1,0,57,0,0,0,35,10,8,3,33,14,0,32,0,20,30,40,59,0,16,0,9,11,52,7,54,0,0,12,49,0,27,4,5,0,22,0,58,19,37,34,44,36,0,56,51,28,50,0,0,2,23,
2135  12,58,36,50,0,13,0,35,51,0,39,4,0,27,0,0,6,0,0,0,0,5,42,0,23,28,43,0,21,20,45,0,46,11,55,44,33,38,25,15,56,48,19,9,2,0,0,7,0,47,0,59,49,54,0,14,30,18,10,1,
2136  54,0,28,31,4,42,58,0,0,16,47,0,48,0,0,7,0,9,0,0,14,32,0,53,0,46,26,35,0,13,10,49,0,0,33,43,3,0,40,55,22,56,51,19,44,5,37,24,17,39,6,25,60,15,0,45,57,0,0,52,
2137  38,0,6,26,60,0,0,30,8,46,7,9,13,56,35,58,0,48,11,1,0,0,0,23,32,34,0,43,54,29,17,0,21,10,37,0,40,3,52,36,0,0,15,18,51,0,0,20,0,0,4,0,25,41,0,24,42,2,19,59,
2138  49,52,0,45,0,0,35,51,10,9,4,0,23,0,12,33,44,27,28,17,0,40,56,1,37,22,38,0,7,57,0,0,25,0,0,0,30,32,11,39,19,3,0,13,42,0,60,0,0,58,55,16,34,0,26,2,20,0,48,14,
2139  26,0,0,0,0,10,51,52,17,0,9,8,36,55,32,18,50,0,39,37,29,0,53,24,34,6,31,0,0,0,7,59,0,45,21,0,0,0,54,12,35,23,13,0,56,0,0,5,15,57,16,42,0,19,49,33,46,27,60,30,
2140  19,0,55,0,48,0,60,46,0,17,0,0,29,14,0,0,0,0,24,18,35,0,0,11,52,45,25,38,32,28,36,15,30,42,23,50,49,0,9,5,0,12,39,37,41,44,40,51,7,27,0,4,22,57,3,6,47,0,0,0,
2141  36,6,34,52,0,0,0,17,0,41,32,0,20,39,9,0,24,13,0,31,22,18,5,35,0,57,0,44,15,33,0,30,0,55,0,40,38,2,58,60,0,0,43,0,1,0,25,28,53,49,0,45,46,7,48,42,54,0,14,16,
2142  41,27,3,0,5,49,0,58,0,48,6,14,18,26,15,2,60,0,52,40,44,0,55,0,17,29,0,53,0,11,54,37,0,8,31,34,0,45,36,24,20,39,21,25,0,0,13,19,0,28,56,0,42,0,0,0,59,0,51,33,
2143  6,25,0,37,53,22,19,0,52,0,46,24,14,2,21,0,20,42,0,15,23,0,0,39,26,31,54,34,0,0,27,0,0,5,44,1,10,0,13,7,48,43,11,60,0,0,41,56,3,0,29,0,0,4,0,30,38,12,50,57,
2144  0,17,0,5,0,9,38,57,0,20,13,0,0,16,49,24,41,34,0,0,47,0,0,31,0,0,56,40,18,0,0,25,19,15,0,11,52,0,29,51,45,42,55,0,7,53,33,12,26,59,2,36,30,48,8,0,32,3,43,28,
2145  42,30,57,0,2,41,54,0,18,51,40,0,0,3,19,0,39,28,0,0,0,15,0,60,16,38,17,4,46,0,0,32,8,14,6,10,5,47,33,48,7,44,1,43,27,23,0,31,0,35,21,0,37,11,0,25,0,13,0,0,
2146  0,39,0,23,0,0,7,0,0,53,14,0,49,38,55,34,0,58,16,0,5,45,59,37,0,41,0,0,19,15,40,31,17,0,32,0,48,22,60,50,26,0,6,56,33,57,4,44,21,11,18,0,36,27,10,0,0,29,25,12,
2147  5,49,45,33,40,0,0,37,15,32,27,59,34,0,4,30,0,0,42,0,11,60,0,56,55,0,52,21,0,12,29,16,35,24,54,0,1,0,20,23,2,0,36,53,6,0,0,0,46,17,58,50,0,0,22,48,9,14,0,18,
2148  0,0,12,32,8,36,22,0,31,11,19,33,0,54,37,60,14,21,0,16,0,0,13,47,43,15,20,28,39,18,34,0,49,2,56,9,58,26,0,0,6,4,30,0,50,24,42,0,51,40,0,48,0,0,29,7,25,0,0,0,
2149  50,38,0,8,57,24,0,0,0,0,59,0,22,32,13,0,0,41,27,47,25,43,6,0,14,10,0,2,26,0,44,29,0,7,52,42,45,46,0,31,18,54,17,21,34,60,0,9,20,0,0,0,23,12,1,40,0,11,3,19,
2150  15,50,4,54,51,23,47,0,0,28,18,7,46,58,0,0,26,17,9,11,60,0,0,33,41,0,0,6,29,0,35,0,37,1,0,14,0,59,0,0,12,2,3,0,0,21,53,10,39,45,49,31,0,25,43,5,13,19,24,0,
2151  57,44,0,0,19,30,0,0,36,0,58,13,0,0,1,17,22,23,0,6,0,10,26,21,9,20,59,8,25,7,16,0,53,31,0,3,0,27,0,46,0,0,2,49,4,56,14,52,0,42,40,24,28,32,60,0,55,43,5,0,
2152  0,40,53,29,33,1,26,27,20,0,52,0,24,50,42,39,16,38,43,0,46,8,4,15,0,21,14,0,5,48,41,0,18,0,35,17,55,0,49,0,0,57,0,0,54,51,58,2,0,60,0,22,45,0,0,0,36,31,34,11,
2153  22,33,50,0,15,51,0,10,43,36,17,53,19,6,25,0,47,0,60,54,0,0,0,4,0,3,23,1,2,56,57,14,0,0,39,0,41,0,18,0,16,28,38,11,8,45,0,0,0,9,27,0,7,0,31,49,26,44,30,55,
2154  2,54,0,20,0,40,31,11,0,0,0,0,0,29,7,25,19,52,35,49,48,0,28,6,5,23,24,3,16,8,15,0,41,34,36,37,47,0,4,26,0,17,53,14,55,13,43,0,50,32,44,0,57,0,0,0,0,0,59,58,
2155  25,42,39,11,38,56,1,45,0,60,30,0,54,8,0,0,55,6,49,41,15,24,0,0,3,12,16,20,13,0,0,0,0,50,48,21,0,40,53,18,27,7,10,31,46,0,52,0,0,0,0,44,0,58,0,47,35,59,17,32,
2156  0,19,0,21,43,7,39,0,29,12,42,54,2,0,0,31,34,55,37,33,1,59,0,0,44,0,3,11,4,0,0,27,36,0,18,30,0,0,32,13,0,35,58,40,28,0,5,45,0,41,53,57,20,16,0,52,17,0,8,10,
2157  0,13,27,25,59,14,0,22,16,49,20,46,0,60,47,0,54,44,40,0,0,0,35,2,51,36,18,0,0,26,53,12,0,0,7,39,4,0,3,0,21,34,28,0,45,15,0,0,33,6,11,19,0,38,32,56,52,0,29,31,
2158  7,0,0,0,0,34,46,0,56,44,41,26,40,20,60,21,57,36,32,25,0,42,19,45,0,58,48,0,0,50,0,6,55,30,24,31,51,39,12,0,0,0,4,3,23,35,15,59,29,0,52,5,1,53,0,43,0,49,0,0,
2159  0,0,59,42,45,6,37,39,1,0,31,32,12,47,0,52,18,0,0,38,36,17,10,0,20,44,46,33,51,0,0,7,0,0,15,23,29,58,14,35,57,8,0,34,0,0,49,13,11,54,0,40,0,0,55,0,16,4,22,9,
2160  0,36,60,16,22,3,0,0,55,24,0,51,50,33,11,0,0,35,7,2,57,38,47,34,59,0,40,12,9,0,19,0,0,0,14,48,0,0,0,30,52,26,37,0,25,6,44,58,49,31,0,8,0,46,20,32,29,56,0,13,
2161  0,0,21,38,0,19,4,56,25,0,0,49,53,31,17,32,42,0,0,50,24,34,18,29,33,0,8,0,0,35,0,23,0,0,26,5,0,57,10,9,28,40,0,45,22,39,59,11,0,15,0,54,0,37,46,36,27,1,6,20,
2162  16,7,25,55,0,32,50,6,33,0,0,0,52,37,14,0,29,12,5,8,28,11,44,48,0,2,0,49,10,3,0,0,20,17,13,36,0,30,0,19,60,0,0,58,40,41,0,35,54,34,46,27,18,22,0,59,0,0,0,4,
2163  53,20,32,34,0,43,57,42,0,0,0,36,9,0,30,56,48,11,58,0,0,0,0,51,0,13,47,0,44,1,52,41,54,29,16,46,35,14,17,21,0,0,26,0,5,37,6,0,40,0,0,7,31,8,19,0,2,45,4,3,
2164  14,0,7,58,0,0,18,24,0,43,0,42,56,45,59,28,0,1,33,35,55,52,0,0,50,0,34,17,0,39,49,40,22,3,10,54,21,16,0,38,0,53,0,44,37,0,47,48,31,0,13,2,0,6,4,15,8,36,0,0,
2165  0,5,0,0,41,0,40,16,0,15,24,11,44,0,0,45,30,0,38,53,27,14,1,0,49,39,0,32,3,21,25,0,29,0,0,7,46,52,57,2,51,0,31,47,20,59,18,0,12,10,50,0,6,55,34,0,43,37,0,48,
2166  4,0,41,43,7,0,0,60,26,5,8,58,0,44,20,9,0,0,22,27,0,54,0,14,0,56,2,0,33,47,13,19,59,6,0,18,57,0,0,3,0,25,29,30,0,0,0,0,23,37,24,35,17,31,39,53,12,28,15,42,
2167  0,29,5,10,46,12,11,55,4,0,21,16,32,0,45,35,1,60,2,57,58,0,37,44,28,17,50,0,0,0,0,39,15,0,9,0,14,31,7,49,0,41,0,0,0,36,54,27,30,33,38,26,59,0,0,0,56,34,20,0,
2168  0,0,0,0,0,47,16,40,0,0,43,2,58,0,0,11,49,29,13,9,31,48,52,0,27,0,0,18,0,41,6,26,50,44,0,15,59,36,28,33,55,0,12,51,3,34,7,53,32,8,39,30,10,0,0,22,14,46,0,5,
2169  40,51,58,15,26,0,6,29,24,0,55,0,59,41,0,53,0,5,36,7,0,57,54,0,0,18,1,0,0,0,37,45,16,33,0,25,27,0,8,0,0,21,56,0,35,20,9,34,60,0,22,28,3,43,38,17,48,0,49,47,
2170  30,0,0,35,42,0,34,19,11,50,60,31,47,15,56,36,53,49,4,10,54,1,21,27,7,9,0,22,48,24,39,0,14,0,57,0,0,0,23,58,0,59,8,2,0,17,28,0,0,0,41,20,16,0,12,38,0,33,0,0,
2171  18,0,2,51,52,0,23,0,14,0,0,57,28,0,22,1,25,0,0,0,17,4,43,0,12,53,30,39,6,16,3,48,42,56,0,0,7,41,45,0,29,10,0,26,31,38,0,0,59,50,19,15,58,0,24,46,0,35,13,37,
2172  39,32,19,60,49,0,52,18,44,4,0,0,15,46,40,23,0,31,29,14,2,0,7,25,10,0,11,0,1,0,5,42,0,53,50,47,37,0,6,0,8,51,0,57,0,12,36,22,56,0,3,0,26,21,0,13,0,16,9,0,
2173  10,41,24,4,37,28,0,31,59,2,0,25,0,5,26,55,0,7,0,0,20,0,30,0,0,48,0,0,34,17,47,38,44,0,53,58,0,13,0,22,0,6,46,8,14,54,3,0,52,43,9,12,27,18,0,0,23,57,40,49,
2174  28,18,11,6,0,44,9,15,32,19,53,38,0,0,51,37,7,2,20,0,10,16,50,55,48,0,0,24,31,0,0,36,0,41,46,0,54,12,0,29,49,0,0,5,0,0,17,0,43,23,0,0,47,56,57,60,45,8,33,26,
2175  17,34,0,53,0,16,33,3,0,37,0,10,27,4,46,0,40,15,18,44,0,29,0,58,0,52,55,23,56,19,0,43,9,0,0,41,0,50,47,8,11,31,32,39,21,28,20,0,0,0,5,0,0,49,35,57,6,38,7,0,
2176  46,43,0,40,30,39,13,0,45,21,56,35,0,10,27,26,59,18,19,28,0,55,3,17,4,0,5,0,52,0,38,20,32,0,12,60,23,0,0,53,0,24,0,41,0,7,0,1,0,48,57,0,8,33,9,51,22,58,0,0,
2177  0,2,0,14,0,26,0,50,12,22,0,0,55,57,0,44,35,53,25,19,0,56,24,0,0,5,4,48,43,58,60,0,51,49,0,59,42,28,1,0,0,32,41,54,0,30,27,15,36,7,23,0,38,52,0,20,0,6,37,39,
2178  0,0,0,7,25,50,0,43,2,10,0,27,0,0,23,57,0,0,3,0,6,13,14,54,60,0,44,59,0,53,8,46,0,9,0,52,32,20,0,41,24,58,45,29,11,0,48,38,22,0,31,49,5,28,51,0,15,17,42,21,
2179  0,0,42,28,44,15,20,0,58,33,0,60,7,48,2,0,9,56,51,13,26,39,57,46,0,14,12,0,0,49,55,8,0,22,30,0,31,29,0,0,3,0,34,0,0,11,1,43,0,25,0,21,32,24,0,18,41,40,16,50,
2180  58,22,23,39,10,0,0,25,57,7,44,5,0,30,0,0,12,50,0,20,0,49,0,0,2,16,41,46,60,40,43,13,48,38,19,56,0,42,0,52,54,14,33,0,9,47,0,6,28,0,0,32,11,34,37,0,0,0,36,45,
2181  0,37,20,0,6,0,28,54,53,27,0,41,0,17,0,47,45,4,23,43,51,9,46,0,0,60,39,0,0,42,0,34,12,16,0,0,13,33,56,11,5,52,59,35,0,48,0,29,2,21,1,3,15,0,40,44,0,0,18,22,
2182  29,15,26,0,54,21,30,0,41,0,36,48,4,0,0,0,43,0,0,22,56,47,23,49,58,50,0,25,11,46,20,28,0,12,59,0,0,17,38,6,14,0,40,16,60,55,45,8,57,13,51,34,0,1,27,35,0,0,0,0,
2183  56,47,43,0,32,52,5,0,9,0,29,18,16,34,41,0,46,0,0,0,13,6,22,12,0,0,36,57,58,30,31,0,26,60,0,33,17,44,37,42,39,11,0,0,0,25,2,55,1,19,14,51,21,35,50,23,0,0,0,0
2184  };
2185 
2186  const int d60_1152_bal[] = {
2187  // Size: 60 x 60
2188  60,
2189  // Pre-assigned fields
2190  8,14,44,0,35,25,0,26,0,6,57,0,41,7,0,40,0,0,31,36,50,0,0,52,38,49,0,56,37,51,24,58,45,59,1,0,15,9,34,43,47,22,16,33,18,19,39,0,10,0,42,0,54,0,0,0,28,23,0,0,
2191  0,0,17,9,0,0,0,0,3,0,25,55,38,59,16,43,0,14,57,26,0,2,48,13,15,7,0,10,45,0,18,22,11,0,0,29,6,53,0,54,36,46,0,50,58,1,35,33,37,20,47,41,0,23,44,0,21,0,56,0,
2192  59,45,18,44,58,11,0,41,28,0,26,23,0,0,3,49,0,57,1,48,7,0,31,43,0,37,9,54,38,0,0,0,10,39,0,22,60,25,24,0,50,0,0,42,47,0,32,0,0,16,12,0,33,30,13,0,34,20,46,0,
2193  1,12,0,46,20,0,41,0,34,26,0,21,3,13,0,19,23,0,0,56,0,36,0,22,31,27,0,42,30,32,48,2,0,43,8,55,0,24,15,37,58,16,9,7,0,0,51,18,0,0,59,10,39,14,0,0,5,60,57,0,
2194  35,0,10,0,31,0,0,0,0,34,0,15,5,25,38,46,33,0,21,29,53,37,11,0,36,32,27,58,41,0,51,50,43,48,3,13,24,0,0,28,40,18,20,1,19,0,23,16,14,0,0,0,12,0,7,0,49,30,52,0,
2195  45,10,0,27,0,59,14,48,6,0,37,17,0,52,31,3,51,0,0,0,0,53,36,0,8,26,33,29,42,5,28,54,23,21,0,0,50,19,0,47,0,55,0,0,0,46,11,0,0,22,32,60,13,40,2,39,0,9,0,34,
2196  27,0,16,0,23,37,8,14,0,0,0,30,51,9,50,20,36,0,6,0,12,25,17,57,22,0,58,13,59,38,1,60,52,4,43,2,0,15,0,40,31,49,44,32,10,0,29,47,24,53,0,0,0,42,5,0,0,0,0,0,
2197  0,24,0,0,18,38,49,0,7,13,15,22,43,36,33,0,52,16,0,45,21,44,8,0,0,54,0,26,0,0,0,11,0,57,47,35,28,55,5,25,34,29,0,46,53,9,56,42,0,0,60,37,48,17,0,31,0,51,0,40,
2198  0,60,0,0,29,53,32,33,0,54,22,52,37,24,5,6,2,0,55,0,8,0,0,0,56,1,45,0,57,10,30,47,28,0,38,16,11,0,31,4,59,19,35,0,13,0,0,49,44,18,43,46,41,39,0,34,7,0,0,0,
2199  0,0,37,13,55,0,10,0,0,8,0,0,0,18,0,22,15,0,45,42,34,7,39,3,0,33,0,0,27,6,23,44,0,0,0,49,9,51,41,17,0,1,0,28,0,16,46,36,58,0,20,11,29,2,14,19,50,54,38,35,
2200  31,0,0,0,0,29,15,0,21,57,38,39,0,35,10,8,3,33,14,0,0,0,20,30,0,0,60,0,0,9,0,52,0,54,25,45,12,49,0,0,4,5,42,22,24,58,19,37,34,44,36,0,56,51,28,50,18,26,0,23,
2201  0,58,36,50,17,13,0,0,0,29,39,4,0,27,57,41,0,0,8,32,37,5,42,0,23,0,43,31,21,20,0,53,46,11,55,44,33,38,25,15,0,0,19,0,0,3,0,7,0,0,34,0,0,54,52,14,30,18,10,1,
2202  54,0,28,31,4,0,0,21,23,16,47,20,48,11,0,0,0,0,34,30,14,0,2,0,29,46,26,35,12,0,10,49,27,0,0,43,0,8,40,0,22,56,51,19,44,0,0,0,17,39,0,25,60,15,41,45,0,50,1,52,
2203  38,57,0,26,0,27,0,30,8,46,7,0,0,56,0,58,0,48,11,0,39,31,45,23,32,34,22,0,54,29,17,0,0,10,37,12,40,0,52,36,53,33,15,18,0,49,0,20,47,0,4,14,0,0,16,24,42,0,0,59,
2204  49,0,15,45,0,0,35,51,10,0,4,29,23,0,12,33,44,0,28,0,43,40,0,1,37,22,0,50,7,57,46,0,25,47,41,0,0,32,0,39,0,3,54,13,0,31,0,0,8,58,55,16,0,59,26,2,20,0,48,14,
2205  26,48,40,2,11,10,51,52,17,0,9,0,36,0,32,0,0,20,39,0,29,58,53,24,0,6,31,0,0,44,0,0,1,45,21,28,25,0,54,0,0,23,13,4,56,22,0,5,15,0,16,42,0,19,0,33,46,0,60,30,
2206  19,8,0,56,48,0,60,46,13,17,54,34,29,14,58,0,31,0,0,18,35,20,0,11,0,0,25,38,32,28,0,0,30,0,23,50,49,0,9,5,0,0,39,37,0,44,0,51,7,0,0,4,22,57,0,6,47,21,26,53,
2207  0,6,0,52,0,4,0,17,19,41,32,50,20,0,9,27,24,13,0,31,22,18,5,35,11,57,29,0,15,0,56,30,3,55,51,40,38,0,58,60,23,37,0,0,1,0,25,28,0,49,0,45,46,0,0,0,0,0,14,0,
2208  0,27,3,0,5,49,0,58,47,0,6,14,18,26,15,2,60,46,52,40,44,35,55,10,17,29,7,0,22,11,0,0,0,0,31,34,0,0,36,24,20,0,21,0,57,4,0,19,9,0,0,23,0,50,30,0,59,32,51,0,
2209  6,0,47,37,53,22,19,0,52,58,46,24,14,2,21,51,0,42,17,0,23,0,0,39,26,31,54,0,49,0,27,0,40,5,44,1,0,0,13,7,48,43,11,60,16,32,0,0,0,36,29,0,35,0,0,30,0,12,50,0,
2210  0,17,14,5,50,0,0,57,39,20,0,1,10,0,0,24,41,34,46,60,47,23,0,31,54,35,56,0,0,0,21,0,19,0,22,11,52,0,29,51,45,42,55,0,0,0,33,0,26,59,0,36,30,0,8,58,32,3,43,28,
2211  0,0,0,49,0,0,54,20,0,51,40,0,26,0,19,50,0,28,59,52,45,15,12,60,16,0,17,0,46,34,22,0,0,0,6,10,0,47,33,0,7,44,1,43,27,23,0,31,55,35,21,9,37,0,36,0,0,13,58,29,
2212  43,39,46,23,13,54,7,0,0,0,14,0,49,38,55,0,8,58,16,51,5,45,59,37,0,41,42,9,0,0,40,31,17,0,0,0,48,0,60,0,26,20,6,56,0,57,0,44,21,0,18,52,36,0,10,0,3,29,0,12,
2213  5,49,45,33,40,0,25,0,15,0,27,59,34,0,4,30,13,51,0,39,11,60,0,0,55,47,0,21,28,12,0,0,35,0,54,8,1,0,20,0,2,38,0,53,6,10,57,26,46,17,58,0,19,3,0,48,9,0,0,0,
2214  3,1,12,0,8,0,22,0,31,0,19,33,35,0,37,60,14,0,0,16,38,0,0,47,0,0,20,0,39,0,34,57,0,2,56,9,58,26,59,0,6,0,30,52,50,0,42,17,51,40,0,48,53,10,29,7,25,0,23,46,
2215  0,38,35,0,57,0,0,28,49,55,59,0,22,32,13,48,58,41,27,0,25,43,6,5,0,0,51,0,26,4,44,29,0,0,0,0,0,0,16,0,18,54,17,21,34,0,30,9,20,56,15,0,23,12,1,40,33,11,3,0,
2216  0,50,4,0,51,0,47,34,38,28,18,7,46,58,0,16,26,17,9,0,0,22,40,33,0,55,32,6,29,0,0,56,0,1,42,14,20,0,44,0,12,0,3,0,30,21,53,10,39,45,49,0,52,0,0,0,13,0,0,8,
2217  57,44,0,47,19,30,29,12,0,0,0,13,11,51,1,17,22,23,48,0,0,0,26,0,9,20,59,0,25,0,0,35,53,31,45,3,34,0,0,46,0,15,2,49,4,56,14,52,0,42,0,24,28,32,60,37,0,43,0,0,
2218  13,40,0,29,0,1,26,27,20,47,0,0,0,50,42,39,0,38,0,12,46,8,0,15,30,0,14,7,5,48,41,3,18,28,0,0,0,23,0,0,0,57,25,59,54,51,58,0,19,60,0,22,45,0,56,9,36,31,0,11,
2219  22,33,50,24,15,0,0,10,43,0,17,53,19,0,0,29,47,37,0,0,52,0,34,4,42,3,23,0,0,56,57,14,13,32,0,20,41,21,18,59,16,28,38,0,0,45,12,0,35,9,27,0,0,5,0,0,26,0,30,55,
2220  0,54,0,20,0,40,31,11,46,0,33,45,42,29,0,25,19,52,0,49,0,12,28,6,5,23,24,3,0,0,15,21,41,34,0,37,0,56,0,26,0,0,53,14,0,13,43,39,0,32,44,38,57,9,18,27,0,0,0,58,
2221  25,42,39,11,38,56,1,0,5,60,0,19,54,0,34,14,55,6,0,41,15,24,33,0,3,0,0,20,13,22,26,9,0,50,48,0,0,0,53,0,0,0,0,0,46,43,52,57,4,29,37,44,0,0,23,47,35,0,17,32,
2222  24,19,22,21,43,7,39,38,29,0,42,54,0,49,6,31,0,55,37,0,1,59,0,0,0,51,0,11,4,0,0,0,36,46,0,30,56,60,32,13,0,35,0,40,0,14,5,45,0,41,53,57,0,16,0,52,17,25,8,0,
2223  9,13,27,0,59,0,17,22,16,49,20,46,0,0,0,0,54,0,40,55,0,50,35,2,51,36,0,5,24,26,53,0,57,58,0,39,0,37,0,1,21,34,28,0,45,15,8,0,33,6,11,19,43,0,32,0,0,41,0,31,
2224  0,0,38,0,28,34,46,13,56,0,41,26,0,20,0,0,0,36,32,25,9,0,0,45,18,0,48,0,8,0,33,0,55,30,24,31,51,39,12,0,17,47,4,0,23,0,0,59,29,0,52,5,1,53,54,43,0,49,27,2,
2225  21,28,0,42,45,6,37,39,1,56,31,32,12,47,0,0,18,0,26,38,0,0,0,0,0,44,46,33,0,0,2,7,0,25,15,23,0,58,14,35,0,8,5,34,48,27,49,0,11,54,30,40,50,0,55,0,0,0,22,9,
2226  0,36,60,16,22,3,42,53,55,24,10,0,50,0,11,15,0,35,7,0,57,38,0,0,59,43,40,12,9,45,19,0,5,27,14,0,0,54,39,0,52,0,37,0,25,0,44,58,0,31,28,0,0,46,20,0,29,56,0,13,
2227  0,0,21,38,3,19,4,56,25,0,12,49,53,0,0,0,0,43,47,50,24,0,18,0,33,0,0,51,55,35,0,23,60,13,26,5,2,57,10,9,0,0,0,45,22,39,59,11,41,0,48,54,44,0,0,36,27,1,6,0,
2228  16,0,25,55,56,32,0,6,33,42,1,47,0,37,14,38,29,0,0,8,0,11,44,48,57,0,53,0,0,3,9,24,20,0,0,36,43,30,21,0,60,0,23,58,40,41,26,0,54,0,0,27,18,22,0,59,51,39,0,0,
2229  53,0,32,0,0,43,0,42,22,59,23,0,0,28,30,56,0,11,58,24,18,33,49,0,39,0,47,0,0,1,0,0,54,0,16,46,35,14,17,21,15,0,26,0,5,37,0,60,40,12,25,7,31,0,19,10,2,45,0,3,
2230  14,26,7,0,0,0,18,24,0,43,0,0,0,45,59,0,32,1,33,35,0,0,60,19,0,25,34,17,0,39,49,40,22,3,10,0,0,16,30,38,0,53,0,44,37,29,0,48,0,46,13,0,9,6,0,15,8,36,11,51,
2231  0,5,8,36,0,60,0,0,0,15,24,0,44,0,0,0,30,22,0,53,0,14,0,9,49,0,35,32,0,21,25,17,29,19,58,0,46,52,57,0,51,13,31,47,20,0,18,4,0,10,50,56,6,55,34,26,43,0,54,48,
2232  0,46,0,0,0,48,21,60,26,5,0,0,0,44,0,9,10,32,0,27,49,54,51,14,0,56,0,52,0,47,13,19,59,6,11,18,57,34,0,0,38,0,29,30,36,0,16,0,23,37,24,35,0,31,0,53,12,28,15,42,
2233  0,29,5,10,46,12,0,55,0,18,0,16,32,0,45,35,1,0,2,57,58,0,37,44,28,17,0,19,40,52,42,39,0,23,9,51,14,0,0,49,25,0,0,0,0,36,54,0,30,33,38,0,0,13,53,8,0,34,20,6,
2234  20,0,0,57,24,47,16,40,0,25,0,2,58,0,0,0,49,29,0,9,31,48,52,0,27,4,0,18,35,41,6,26,0,44,0,15,59,36,0,33,55,60,0,51,3,34,0,53,0,0,0,30,10,45,42,22,0,46,21,5,
2235  40,51,58,0,26,46,0,29,0,23,0,0,59,41,39,53,11,5,36,7,0,57,54,0,13,18,1,30,0,31,37,0,16,33,0,25,27,10,0,0,0,21,56,0,35,20,9,34,0,0,0,28,3,43,38,0,48,52,49,0,
2236  30,3,52,35,0,0,34,19,11,50,0,31,47,15,56,0,0,49,0,10,54,1,0,27,7,9,6,22,48,24,0,18,0,0,57,0,44,5,0,58,46,59,0,0,32,17,28,0,0,51,41,20,16,0,12,38,0,33,0,0,
2237  18,9,2,0,0,0,23,47,14,40,49,0,28,21,22,0,0,8,44,5,17,0,0,20,12,53,30,39,6,16,0,48,42,56,27,0,7,0,0,34,29,10,60,0,31,0,55,0,59,0,0,0,58,36,24,46,11,0,13,37,
2238  39,32,19,60,49,55,52,18,44,0,0,0,15,46,40,23,27,0,29,14,2,30,7,25,10,0,0,45,0,54,5,0,34,53,0,47,0,35,6,20,8,0,0,0,59,0,0,0,56,38,0,0,26,21,0,13,58,16,9,41,
2239  10,0,0,4,37,28,0,0,0,2,0,25,39,5,0,0,56,7,50,21,0,51,30,16,0,48,15,60,0,17,0,0,0,0,53,0,0,13,42,22,1,6,46,8,14,54,3,32,52,43,9,12,0,0,33,29,0,57,40,49,
2240  28,18,0,6,34,44,9,0,0,19,0,38,0,42,51,0,7,2,20,59,10,0,50,0,48,40,21,24,31,25,14,36,58,41,0,0,54,12,27,29,0,0,22,5,0,0,0,3,0,23,35,13,0,56,0,60,45,8,33,0,
2241  17,0,0,53,14,16,33,3,0,37,51,10,27,0,46,0,40,15,18,44,59,0,25,0,45,52,55,23,56,0,12,43,9,26,0,0,0,0,47,8,11,0,0,39,21,0,20,0,42,2,5,1,0,49,35,57,0,38,7,0,
2242  46,43,31,0,0,0,13,36,45,21,56,0,0,10,27,26,59,18,19,0,0,0,3,17,4,0,0,15,52,14,38,20,32,0,12,60,23,11,0,53,44,24,0,0,0,7,34,1,6,0,57,0,8,0,9,51,0,58,47,54,
2243  11,2,29,14,9,26,3,50,0,0,16,0,55,57,8,44,35,0,25,0,0,56,24,18,0,5,0,48,0,58,0,10,0,0,0,59,42,28,1,0,13,32,0,54,0,0,27,15,36,0,23,47,38,52,21,0,31,6,37,39,
2244  47,35,30,0,25,50,55,43,2,0,34,27,0,12,23,0,37,0,3,4,6,0,0,54,60,19,44,0,36,0,0,0,0,0,40,52,32,20,26,41,0,58,45,29,0,18,48,38,22,1,0,0,5,28,0,16,0,17,42,21,
2245  37,0,42,0,0,15,20,0,0,33,45,60,7,48,2,5,9,56,51,0,0,0,57,46,0,0,12,27,0,49,55,8,47,22,30,0,31,29,35,10,0,0,0,23,52,11,0,43,0,25,0,21,0,24,59,18,41,40,16,50,
2246  58,0,0,39,10,35,27,25,57,7,0,5,17,0,18,4,12,50,0,0,0,49,0,59,0,16,41,0,0,0,43,13,48,0,0,0,0,42,51,52,54,14,33,55,9,47,31,6,28,24,26,32,11,34,0,21,1,0,0,45,
2247  55,37,20,30,0,58,0,0,53,27,0,41,0,0,0,47,0,4,0,43,0,9,46,8,0,60,39,36,14,42,0,34,12,16,49,57,13,33,56,11,0,52,0,35,0,48,10,0,2,21,0,3,0,0,40,0,19,7,18,22,
2248  0,15,0,18,0,21,30,0,41,31,36,48,0,19,0,0,0,3,10,22,56,47,23,0,58,0,0,25,11,46,20,28,0,12,59,0,39,17,0,6,14,9,40,16,60,55,0,0,0,13,51,34,0,1,27,0,24,0,32,7,
2249  56,0,43,48,32,52,5,0,0,38,29,0,16,34,41,54,0,59,0,0,13,6,22,12,24,0,0,57,58,30,0,4,26,60,28,0,17,0,0,42,39,0,49,20,0,25,2,55,1,19,0,0,21,35,50,0,40,0,45,27
2250  };
2251 
2252  const int d60_1440[] = {
2253  // Size: 60 x 60
2254  60,
2255  // Pre-assigned fields
2256  0,14,44,0,35,0,2,26,48,0,0,0,41,0,0,40,0,30,31,36,50,0,32,52,0,0,0,56,37,51,0,58,45,0,1,0,0,0,34,43,47,22,16,33,18,19,0,46,10,0,0,17,0,20,11,4,0,23,53,0,
2257  34,31,0,9,39,8,12,0,3,0,0,55,38,59,0,43,0,14,57,0,0,0,0,13,0,0,49,10,45,60,0,22,0,0,0,0,6,53,19,0,0,46,0,50,0,0,35,0,37,0,0,41,40,23,0,28,21,0,56,0,
2258  59,0,0,44,0,11,53,41,28,35,26,0,0,0,3,0,17,0,1,48,0,19,0,43,21,37,0,54,38,36,4,51,10,39,29,22,60,0,24,56,50,27,52,0,47,0,32,14,0,16,12,0,33,30,0,55,34,20,0,15,
2259  0,0,33,46,20,17,41,49,34,0,0,21,3,0,44,19,23,47,54,0,40,36,38,0,31,0,28,42,30,32,0,2,4,43,8,55,53,24,0,0,0,16,0,7,29,0,0,18,45,52,0,10,0,14,6,11,0,0,57,0,
2260  0,4,0,59,31,0,56,9,0,0,2,0,5,25,38,46,33,45,21,29,53,0,11,0,36,32,27,58,41,0,0,50,0,48,3,0,24,6,0,28,40,0,20,1,19,8,23,16,0,26,17,39,0,0,0,54,49,0,52,44,
2261  0,10,49,27,16,0,0,48,0,0,0,17,0,52,31,0,51,24,56,0,0,53,0,7,0,26,0,29,0,5,28,54,0,0,20,38,0,19,43,47,30,55,18,0,12,46,11,41,25,0,32,60,13,0,0,0,44,9,35,34,
2262  27,21,0,19,23,37,0,14,35,0,3,30,51,9,50,20,36,54,6,0,12,25,17,57,22,11,58,13,59,0,1,60,0,0,0,2,26,0,0,40,31,49,44,0,10,0,0,47,0,53,7,18,0,42,5,0,0,48,0,56,
2263  32,24,0,0,18,38,49,0,7,0,15,0,0,0,33,12,0,0,0,45,0,44,8,50,19,0,0,26,0,2,59,0,6,0,0,35,0,55,0,25,34,0,14,46,0,0,0,0,27,3,0,37,48,17,58,31,0,0,39,40,
2264  51,0,9,3,29,0,0,33,0,0,0,0,0,24,0,0,0,0,0,23,8,26,0,36,0,1,0,14,0,0,0,47,28,20,38,16,0,48,0,4,0,19,35,27,13,42,21,49,44,0,43,46,41,0,0,0,7,15,12,0,
2265  0,56,37,0,55,5,10,59,40,0,0,12,21,18,0,0,15,0,45,0,34,0,0,0,0,33,0,0,0,6,23,44,0,0,4,49,9,51,0,17,32,1,24,0,26,0,46,0,0,0,0,0,0,2,14,0,50,0,38,35,
2266  31,55,13,0,47,29,0,1,21,0,0,0,6,0,10,8,3,0,14,0,32,41,20,30,0,59,60,0,53,9,11,0,7,54,25,45,0,0,0,27,0,5,0,0,24,58,19,37,0,0,0,43,0,51,0,50,18,26,0,23,
2267  12,58,36,50,17,13,24,35,0,29,39,0,0,27,57,0,6,0,8,0,37,0,0,0,23,28,0,0,21,20,45,0,0,0,0,44,33,38,25,0,0,48,19,9,2,0,22,7,0,0,34,59,49,54,52,14,30,0,10,1,
2268  54,0,28,0,0,42,0,21,23,0,47,20,48,11,0,0,38,9,34,30,0,32,2,53,29,46,26,35,0,0,0,49,27,18,0,43,0,0,40,55,0,56,51,0,0,5,0,24,17,0,6,25,60,15,0,0,0,0,1,0,
2269  38,0,6,26,60,0,44,30,0,46,7,0,0,0,35,58,28,0,11,1,39,0,0,23,32,34,0,0,54,0,17,55,21,0,37,0,0,3,0,0,0,33,0,18,51,49,50,0,0,5,0,0,0,0,16,0,0,0,19,0,
2270  49,52,15,0,0,0,35,0,10,9,0,0,0,0,0,0,44,0,0,17,43,0,0,0,37,22,0,0,7,0,0,0,25,47,0,6,0,32,11,39,19,0,54,13,42,31,60,21,0,58,0,16,34,0,0,2,0,0,48,14,
2271  26,48,0,0,11,0,0,52,0,3,9,8,36,0,32,0,0,0,39,37,0,0,0,0,34,6,0,41,47,44,0,59,1,0,21,0,0,43,54,12,35,0,0,4,0,22,38,0,0,0,0,0,14,0,49,0,46,27,60,0,
2272  0,8,55,0,0,2,60,46,13,17,0,34,29,14,58,59,31,10,0,0,35,20,16,11,52,0,0,38,0,28,0,15,30,42,23,50,0,1,0,5,43,0,0,37,0,44,0,51,0,27,33,0,0,57,3,0,47,21,26,53,
2273  0,6,0,52,21,4,0,0,19,0,32,50,20,39,0,0,24,13,12,0,22,18,5,35,11,57,29,44,0,33,56,0,3,55,51,40,38,2,58,60,23,37,0,0,1,26,0,0,53,49,8,45,0,7,0,42,0,47,0,16,
2274  0,27,3,1,0,49,43,58,47,48,0,14,18,26,15,2,0,46,0,40,0,0,55,10,17,0,7,0,22,11,0,37,0,0,31,34,0,0,36,0,0,0,0,25,0,0,13,19,9,28,56,0,42,0,0,0,59,32,0,33,
2275  6,0,0,37,53,22,0,8,52,0,46,24,14,2,0,0,20,42,17,15,23,0,9,0,26,31,54,34,0,0,27,0,40,5,0,0,10,18,0,7,48,0,11,60,0,0,41,56,3,36,29,55,35,4,0,30,38,0,50,57,
2276  44,0,0,0,0,0,38,0,0,20,13,1,10,0,49,0,41,0,46,60,47,23,0,31,54,35,56,40,0,0,21,0,19,15,22,11,0,0,29,51,45,0,0,0,7,0,33,12,26,59,2,36,30,48,8,58,0,0,0,0,
2277  42,30,57,49,0,41,54,20,18,0,40,0,0,0,19,50,0,28,0,52,0,0,12,0,16,38,0,4,0,34,0,0,8,14,0,10,0,47,33,48,7,44,0,0,27,23,24,31,55,35,21,9,0,11,0,25,53,13,58,0,
2278  0,0,46,0,13,0,7,2,0,53,14,0,49,38,55,0,0,58,0,0,5,45,0,37,47,41,42,9,19,0,40,0,0,0,0,0,0,22,60,0,0,0,6,56,0,57,0,0,0,11,0,52,0,27,0,1,0,0,25,12,
2279  5,49,45,33,0,31,0,37,15,32,0,0,34,43,0,0,0,0,42,0,0,60,0,0,55,0,52,0,0,12,0,0,0,0,54,8,1,7,20,23,0,38,36,0,0,0,57,26,46,17,0,50,19,3,22,0,9,14,44,0,
2280  3,1,12,32,8,0,0,0,31,0,19,0,35,0,0,60,14,0,41,0,38,0,0,47,43,15,20,0,39,0,0,0,49,2,0,9,0,26,0,0,0,4,0,0,0,0,42,17,51,40,45,48,53,10,29,7,25,55,23,0,
2281  0,38,35,8,57,24,36,28,0,55,59,37,22,32,0,48,0,41,27,47,25,43,6,5,0,0,0,2,0,4,44,29,0,0,0,42,45,46,16,0,18,54,0,21,0,60,30,9,20,0,0,0,23,12,0,40,33,11,0,19,
2282  0,0,0,0,51,0,0,34,38,28,0,0,46,58,48,16,26,17,0,11,60,22,40,0,0,0,32,6,29,0,0,56,0,1,42,0,20,59,0,0,0,0,3,36,0,0,0,0,39,0,0,31,52,25,43,5,13,19,0,8,
2283  57,44,54,0,19,30,29,0,36,0,58,0,0,51,0,17,0,23,48,6,41,10,0,21,0,20,0,8,25,7,16,35,53,0,45,0,34,27,50,0,33,15,0,49,0,56,0,0,0,42,0,24,0,0,0,0,55,0,0,38,
2284  0,40,53,29,33,1,26,27,0,47,0,6,0,50,42,0,16,0,43,12,0,0,0,0,0,0,0,0,5,0,0,3,18,28,35,17,55,23,49,32,37,57,25,59,0,0,58,0,19,60,10,0,0,44,0,9,0,31,34,11,
2285  0,33,50,0,0,0,48,10,43,36,17,53,0,0,0,29,0,0,60,54,52,0,0,4,42,0,23,0,2,0,0,0,0,0,39,20,0,21,0,59,0,28,38,0,0,45,12,0,0,9,0,0,7,0,31,0,26,44,30,0,
2286  2,54,51,20,1,40,31,0,0,30,0,45,0,29,7,0,19,52,35,0,0,0,0,0,5,23,24,0,0,8,15,21,41,0,0,0,47,56,4,26,0,0,53,0,55,0,43,39,0,32,44,0,57,9,18,0,60,22,59,58,
2287  25,0,0,0,0,0,1,45,5,0,30,0,0,0,34,0,55,6,0,0,15,24,33,28,0,0,0,0,13,22,0,9,0,50,0,21,0,0,0,0,0,7,10,0,46,43,0,57,4,0,37,44,51,58,23,47,35,0,17,32,
2288  0,0,22,21,43,0,39,0,29,12,42,0,2,49,0,31,0,55,37,33,1,0,15,26,44,0,0,11,4,0,50,27,36,46,18,30,0,0,32,0,0,35,58,40,0,14,5,45,48,0,0,0,20,16,47,52,17,25,8,0,
2289  9,13,27,0,59,0,0,0,16,49,20,46,0,0,47,10,0,0,0,55,42,50,35,0,0,36,0,5,24,0,0,0,57,58,7,0,0,0,3,0,21,34,28,48,45,15,8,23,33,0,0,0,43,0,32,56,0,0,29,31,
2290  0,11,38,22,0,34,46,13,56,0,41,0,40,20,60,21,0,36,0,0,9,0,0,45,18,58,48,0,0,0,33,0,0,30,24,0,51,39,12,16,0,47,0,0,0,0,15,59,29,14,0,5,1,0,54,43,10,0,27,0,
2291  21,28,0,42,0,6,37,0,0,0,31,32,0,0,0,0,0,19,0,38,0,17,10,0,0,0,0,33,0,43,2,7,24,0,15,0,29,0,14,35,0,0,0,34,48,27,0,13,11,0,0,0,0,60,55,3,16,4,0,9,
2292  23,0,60,0,0,0,42,0,0,0,0,51,50,33,0,0,0,35,0,2,0,0,47,34,59,43,0,0,9,45,19,0,5,27,14,0,0,54,0,0,52,26,0,0,25,0,44,58,49,31,0,8,4,46,20,0,29,0,41,0,
2293  0,16,21,38,0,0,4,56,25,14,12,49,0,0,17,0,42,0,47,50,24,0,18,0,33,30,8,51,0,0,58,23,60,13,0,5,2,0,0,9,28,0,7,45,0,39,0,11,0,0,48,0,44,37,0,36,27,0,6,0,
2294  16,0,0,55,0,32,50,0,33,0,0,0,0,37,0,0,0,12,0,8,0,11,44,0,0,2,53,0,10,3,9,0,0,17,13,0,0,30,0,0,60,45,0,58,0,41,0,35,0,34,46,27,18,0,0,0,51,39,0,0,
2295  53,20,32,34,27,0,57,42,0,59,0,36,0,0,30,56,0,11,0,24,18,33,0,0,0,13,47,55,0,0,52,41,0,0,0,46,35,14,17,0,0,50,0,38,0,37,0,60,40,12,25,0,31,8,0,0,0,0,0,3,
2296  0,0,0,0,0,0,18,24,0,0,0,42,56,0,0,0,32,1,33,0,55,0,0,19,0,25,34,0,0,39,0,40,22,3,0,54,0,16,30,38,41,53,0,0,37,0,47,48,0,46,13,0,9,0,0,15,0,0,11,51,
2297  33,0,8,36,0,0,40,16,0,15,0,11,0,23,0,45,30,22,0,0,0,14,0,9,49,0,0,0,0,21,0,17,0,19,58,0,46,52,0,2,0,13,31,47,20,0,0,4,0,0,0,0,0,55,34,0,43,0,0,0,
2298  0,0,0,43,0,0,0,0,26,5,0,0,45,0,0,0,0,32,0,27,49,54,51,14,0,56,2,0,0,47,13,19,59,6,11,18,0,34,55,0,0,0,0,30,0,40,0,50,23,0,0,35,17,0,39,53,12,28,15,42,
2299  48,29,5,10,46,0,11,55,4,0,21,16,32,0,0,35,0,60,0,0,58,3,37,44,0,0,50,19,0,0,0,39,0,0,9,0,0,31,7,0,25,0,47,24,0,36,0,0,0,33,38,26,0,13,0,0,0,34,0,6,
2300  20,23,56,57,0,0,16,40,0,25,0,2,58,0,54,11,49,0,13,9,0,0,52,38,0,4,19,0,35,41,6,26,50,44,0,15,59,0,0,33,0,60,0,0,3,34,7,53,0,0,39,0,10,0,42,22,14,46,21,5,
2301  40,51,58,15,0,46,0,29,24,23,55,44,59,41,0,0,11,5,0,0,19,0,54,32,13,18,1,30,50,0,0,45,16,0,2,0,27,10,0,14,0,0,56,0,0,0,9,34,60,4,22,0,3,0,0,17,48,0,49,0,
2302  30,3,52,35,0,0,0,19,11,0,60,31,47,0,56,0,0,0,0,0,54,1,21,0,0,9,6,0,48,24,39,0,0,0,57,0,0,5,23,0,46,59,0,2,32,17,0,25,0,51,0,0,0,0,0,38,37,0,55,0,
2303  18,0,0,51,52,0,23,47,0,40,0,0,28,0,22,1,25,0,44,0,0,4,43,0,12,0,30,39,6,16,0,48,42,0,0,32,0,41,45,34,29,10,0,0,31,38,55,0,0,50,19,15,58,36,24,0,11,35,13,37,
2304  39,0,19,0,49,55,52,18,0,4,28,0,15,46,40,23,27,31,0,14,2,0,7,25,10,0,0,45,1,54,5,42,0,53,0,0,0,35,6,20,8,51,0,0,0,12,36,22,56,38,3,33,26,21,17,13,58,0,9,41,
2305  10,0,24,0,37,0,45,31,0,2,11,25,39,0,26,55,0,7,0,21,0,51,30,0,35,0,15,60,34,17,0,38,44,36,53,58,19,0,42,22,0,0,0,8,14,54,0,32,0,0,0,0,27,18,33,29,0,0,40,49,
2306  0,18,0,6,0,44,0,15,0,19,53,38,1,42,0,0,0,0,20,0,10,16,50,0,48,40,0,24,31,0,0,36,58,0,46,4,0,12,0,29,49,0,22,5,0,0,17,3,43,0,0,0,47,56,0,60,45,0,33,26,
2307  17,34,0,53,14,16,0,0,54,37,51,10,0,0,46,13,40,0,0,0,59,29,25,58,45,0,55,23,0,0,0,0,9,26,60,41,22,50,47,0,0,31,32,39,21,28,20,0,42,2,5,1,0,0,35,57,6,38,7,36,
2308  46,43,0,0,0,39,0,36,0,0,56,35,25,10,27,0,0,18,19,28,16,0,0,17,4,0,0,15,52,14,38,20,32,37,0,60,23,11,2,0,0,0,0,41,49,7,0,0,6,0,57,29,8,33,0,51,0,58,47,54,
2309  0,2,29,0,9,26,0,50,0,0,16,0,0,57,8,44,0,53,25,19,33,0,24,18,0,5,0,48,43,58,0,0,51,0,34,0,42,0,1,45,13,32,0,54,0,30,27,0,36,7,23,47,38,0,21,20,31,6,37,39,
2310  47,0,30,0,25,50,55,43,0,10,34,0,0,0,0,0,0,0,0,4,6,0,0,0,60,19,44,0,0,53,0,0,56,0,0,52,32,20,0,0,24,58,0,29,11,18,48,38,0,1,0,0,5,28,51,16,0,0,42,21,
2311  37,53,42,0,0,15,20,4,0,0,45,0,7,0,0,5,0,56,51,13,26,39,57,46,0,14,12,27,17,49,55,8,0,0,30,19,0,0,35,10,3,36,34,23,52,11,0,0,0,25,0,21,0,24,0,18,41,0,16,50,
2312  0,22,23,39,10,0,0,0,57,7,44,5,0,30,18,4,12,50,15,0,0,0,29,59,2,16,41,46,60,0,43,13,48,38,19,0,8,42,0,52,54,0,0,55,9,47,0,6,28,24,26,32,11,34,37,0,1,53,36,45,
2313  55,37,20,0,6,58,28,0,0,27,50,41,31,0,24,47,45,0,0,43,51,0,46,0,25,60,39,0,0,42,32,34,12,16,0,57,0,0,56,0,5,52,0,35,38,48,10,0,0,0,1,3,15,0,40,44,0,0,0,0,
2314  29,0,0,18,0,0,30,44,0,0,0,48,0,19,52,0,0,3,10,0,0,47,0,49,58,0,0,0,11,0,20,28,33,12,0,53,0,0,38,6,14,9,40,0,0,0,45,8,57,13,0,34,2,1,27,35,24,5,32,0,
2315  56,47,0,0,32,52,0,0,0,38,29,18,16,0,41,54,46,0,0,0,13,6,0,12,0,0,0,0,58,0,31,4,0,60,28,33,0,44,37,42,39,11,0,0,0,25,2,55,0,19,0,51,0,35,0,23,0,10,45,27
2316  };
2317 
2318  const int d60_1620[] = {
2319  // Size: 60 x 60
2320  60,
2321  // Pre-assigned fields
2322  0,14,0,12,0,25,0,0,48,6,57,3,41,0,29,40,0,0,0,0,50,21,32,0,38,49,13,56,0,0,0,58,45,59,0,0,0,0,0,0,47,0,0,0,18,19,39,46,10,55,42,17,0,20,11,4,0,23,0,60,
2323  0,31,0,9,39,8,12,0,0,0,25,55,38,59,0,0,4,0,57,0,30,2,48,0,0,7,49,0,0,60,0,0,11,0,5,29,0,0,19,0,36,0,27,0,58,0,35,33,0,20,47,41,40,23,44,0,21,0,0,24,
2324  59,45,18,0,0,11,53,0,0,35,26,0,8,0,3,49,17,57,0,48,7,19,31,0,0,0,0,0,38,36,0,0,10,0,29,22,60,25,0,0,0,27,0,0,47,0,32,14,0,16,12,6,0,0,0,55,0,20,0,0,
2325  1,0,0,46,20,17,41,49,0,26,0,21,0,0,0,19,23,47,0,0,0,36,38,0,0,0,28,42,0,32,48,0,0,43,8,55,0,0,15,37,0,16,0,0,29,0,51,0,0,52,0,10,0,0,0,11,0,60,57,0,
2326  0,4,10,59,0,57,0,0,60,34,0,0,5,25,38,0,33,0,0,29,53,0,0,42,36,0,27,0,41,0,51,50,0,48,3,13,24,6,22,28,40,18,20,1,19,8,23,16,14,26,17,39,12,47,0,54,49,30,52,0,
2327  0,10,49,0,0,59,0,48,6,1,0,17,57,0,31,3,51,0,56,0,4,53,36,7,8,26,0,29,0,5,28,0,23,21,20,38,50,19,43,0,30,0,0,0,12,46,0,41,0,22,0,60,0,40,0,39,44,0,35,34,
2328  0,0,16,19,0,37,8,0,35,45,3,30,0,0,0,0,0,0,0,34,0,25,0,57,22,0,58,0,0,38,0,0,52,4,0,2,0,15,0,0,0,49,0,0,10,33,29,47,24,53,0,0,55,0,0,0,0,48,28,56,
2329  0,24,1,0,18,38,0,0,0,13,15,22,43,36,0,12,52,16,30,0,21,44,8,50,0,0,10,26,20,2,59,0,0,0,0,0,28,55,5,25,34,29,14,46,53,0,0,0,0,3,60,37,0,17,58,31,4,0,39,40,
2330  51,60,9,3,0,53,32,0,0,54,22,52,37,24,5,0,0,40,55,0,0,0,58,0,56,0,0,0,57,0,30,47,0,20,38,0,0,48,31,4,0,19,0,0,0,0,21,49,44,18,43,0,0,39,25,0,7,15,0,17,
2331  60,56,37,0,0,5,0,0,40,0,0,12,0,18,43,0,15,0,45,42,34,0,39,3,53,0,57,0,0,0,0,44,31,52,0,0,0,0,0,17,32,0,24,28,26,16,0,0,58,0,20,11,0,0,0,19,50,0,38,35,
2332  31,55,13,0,47,29,0,0,0,0,38,0,6,35,10,0,0,0,14,46,0,0,20,30,40,0,60,0,0,9,11,0,0,0,25,45,0,0,48,0,4,0,0,22,24,0,19,0,34,0,36,43,0,51,28,50,18,26,0,0,
2333  0,58,0,0,0,0,24,0,0,29,39,4,60,0,0,0,6,26,8,0,37,0,42,40,0,28,43,31,21,20,45,53,0,0,0,44,0,38,0,15,56,48,19,9,0,0,22,7,0,0,34,59,0,0,0,14,30,18,0,0,
2334  54,59,28,31,0,0,0,21,23,16,47,0,48,0,36,7,38,0,34,0,14,0,2,53,29,0,26,35,12,13,10,49,27,0,33,43,3,8,0,0,0,0,0,19,44,5,0,24,17,39,6,0,60,0,41,0,0,50,0,52,
2335  38,0,0,26,0,0,44,30,8,46,7,0,13,56,35,0,28,48,11,1,0,0,45,23,32,0,0,43,0,29,0,55,0,0,0,12,40,0,52,36,53,33,15,0,0,49,50,20,47,0,4,0,0,41,16,24,0,2,19,59,
2336  49,52,0,45,36,18,0,0,10,9,4,0,0,53,0,33,44,27,0,17,43,40,0,0,37,0,0,0,7,57,46,0,25,0,0,6,0,32,0,39,0,3,0,13,42,31,60,21,0,58,0,16,34,59,26,2,20,0,0,0,
2337  26,0,40,2,11,0,0,52,17,3,0,8,36,0,32,0,0,20,0,0,29,58,0,0,0,6,0,41,47,44,7,59,1,0,0,0,0,43,54,0,0,23,0,0,56,22,0,5,0,0,0,0,14,19,49,33,46,0,60,0,
2338  19,0,0,56,0,2,0,46,13,17,54,0,0,0,58,59,31,0,24,0,0,20,0,11,52,45,0,0,32,0,0,15,30,42,23,50,49,1,0,5,43,12,39,0,41,0,40,51,7,27,33,4,0,0,0,6,47,0,0,53,
2339  0,0,0,0,21,0,59,0,19,0,32,50,20,39,0,27,24,0,12,0,0,0,5,35,0,57,0,0,0,33,56,30,3,0,51,40,38,0,0,0,0,37,43,10,1,0,25,0,0,49,8,0,46,7,48,0,54,0,14,16,
2340  41,27,0,1,0,0,0,58,47,48,6,0,0,0,0,0,60,46,52,0,44,35,55,0,17,0,7,53,0,11,0,37,38,8,0,34,16,0,36,0,0,0,21,25,57,4,0,19,9,28,0,0,0,50,0,0,59,32,0,33,
2341  0,25,47,0,53,0,0,8,52,58,0,24,14,2,0,0,0,42,0,15,23,0,0,0,0,31,0,0,0,59,0,33,40,5,44,0,0,0,0,7,48,43,0,0,16,32,41,0,0,0,29,55,35,4,45,30,38,12,0,0,
2342  0,0,0,5,0,9,38,0,39,20,13,0,0,0,0,0,0,34,0,0,47,23,0,0,54,35,0,40,0,0,0,0,0,0,22,11,52,4,29,51,0,42,0,0,7,53,33,12,0,0,2,0,0,0,8,58,32,0,0,28,
2343  42,0,57,0,0,41,54,0,18,0,0,56,26,0,19,50,0,28,59,0,45,15,12,0,16,0,0,0,0,34,22,0,0,14,0,10,5,47,33,48,7,44,0,43,27,23,0,31,55,35,0,9,37,11,36,0,0,0,0,29,
2344  0,0,46,0,0,54,7,0,0,53,0,0,49,0,55,0,0,58,16,0,0,45,0,37,0,41,42,9,0,0,40,31,17,35,0,0,0,22,0,0,26,20,0,56,0,57,0,0,0,11,0,0,0,27,10,0,3,29,25,0,
2345  5,49,0,33,0,0,0,37,0,32,27,59,34,43,4,0,0,51,42,39,11,60,41,0,55,0,0,0,0,0,0,16,0,0,54,8,0,0,20,0,2,0,36,53,6,10,57,0,46,0,0,0,0,0,0,48,0,14,44,18,
2346  3,1,12,32,0,36,0,0,0,0,0,33,35,54,37,0,0,0,0,0,0,27,13,47,0,0,0,28,0,18,0,57,0,0,0,0,0,26,59,44,6,0,30,52,50,24,0,0,0,40,45,48,0,0,0,7,0,55,23,46,
2347  50,0,0,8,57,24,0,0,49,55,0,0,22,32,13,48,0,41,27,47,25,43,0,5,0,10,51,2,26,0,44,0,39,7,52,0,45,0,16,31,0,0,0,21,0,60,30,0,20,56,0,53,23,12,1,40,0,0,3,19,
2348  15,50,4,0,51,0,0,34,0,28,18,0,46,58,0,0,0,17,9,0,60,0,0,0,0,0,32,0,29,27,0,56,0,1,0,14,20,59,0,0,0,0,3,0,30,21,53,0,0,45,49,0,0,0,43,5,13,19,0,0,
2349  57,44,54,0,19,30,0,12,36,39,58,13,0,0,1,17,22,0,48,6,0,10,0,0,9,20,59,8,25,7,0,0,0,31,45,0,34,27,0,46,0,0,0,0,4,0,14,52,18,42,0,24,0,32,60,37,55,43,5,38,
2350  0,40,0,0,0,1,0,0,0,0,0,6,0,0,42,39,0,38,43,0,46,8,4,15,0,21,0,0,0,48,0,0,0,28,35,17,0,0,0,0,37,57,0,59,0,0,58,2,19,60,10,0,0,44,56,9,36,0,34,0,
2351  0,33,0,0,0,0,48,10,43,36,0,0,19,6,0,29,47,37,0,54,0,0,0,0,0,0,23,1,2,0,0,14,0,32,0,0,41,21,0,59,16,28,38,0,0,0,0,0,0,0,27,0,0,5,0,0,0,44,30,0,
2352  0,0,0,20,1,0,31,11,0,30,0,0,42,29,7,0,19,52,35,49,48,0,0,6,5,0,24,0,16,0,15,21,41,0,36,0,47,56,4,26,10,0,53,14,0,0,0,39,50,0,0,0,57,0,0,0,60,22,59,0,
2353  0,42,39,11,0,56,1,45,0,0,30,0,54,8,0,14,55,0,0,0,15,0,0,28,0,12,16,20,13,22,26,9,0,0,0,0,0,0,53,0,27,0,10,0,46,43,0,0,4,29,0,44,0,0,23,0,35,0,0,32,
2354  0,19,0,21,43,7,0,38,29,12,0,54,0,0,0,0,34,55,0,0,1,0,15,0,44,0,0,0,0,23,0,27,0,0,0,30,0,60,0,13,9,35,58,0,0,14,5,0,48,0,0,57,0,0,0,0,17,0,8,0,
2355  9,0,27,0,0,0,17,22,16,49,20,46,0,0,0,10,0,44,0,0,0,50,35,2,51,0,18,5,0,0,0,0,57,58,0,0,0,0,0,0,0,34,28,0,45,15,8,23,33,0,11,19,43,0,32,0,0,41,0,0,
2356  0,0,38,22,28,34,0,0,56,44,0,26,40,0,0,0,0,0,32,25,0,42,0,45,0,0,0,0,0,0,0,0,55,30,24,0,51,0,0,0,17,0,0,0,23,35,15,0,29,0,0,5,0,0,0,43,10,49,0,2,
2357  0,28,59,42,0,0,37,39,1,0,0,32,0,47,0,0,0,0,26,0,36,17,10,41,20,0,0,0,0,0,0,7,24,0,15,23,0,58,0,35,57,8,5,34,0,27,0,0,0,54,30,0,0,60,55,3,0,4,0,0,
2358  23,36,0,0,22,3,0,53,55,0,10,51,0,33,0,15,0,35,7,2,57,38,0,34,0,43,0,12,0,45,19,0,0,0,14,0,0,0,0,30,52,26,37,17,25,6,44,0,0,0,28,0,4,0,20,32,0,0,41,0,
2359  52,16,21,0,3,19,4,56,0,14,0,49,53,31,0,32,0,43,47,0,0,0,0,0,0,30,0,0,55,0,0,0,0,0,0,0,0,0,10,9,0,0,7,45,22,39,59,11,0,0,0,0,0,0,46,0,27,0,6,0,
2360  16,0,25,55,0,0,50,0,0,42,0,0,52,37,14,38,0,12,0,8,28,0,0,48,57,0,0,0,0,0,9,24,0,17,0,36,0,30,0,0,0,0,23,58,40,0,0,35,54,0,46,0,18,22,15,59,0,0,31,0,
2361  53,20,0,0,0,43,57,42,22,59,23,36,9,28,30,0,48,11,0,24,0,0,0,51,39,13,0,55,44,1,0,0,54,0,0,46,0,0,17,0,15,50,26,38,0,0,0,60,40,12,25,7,0,8,0,0,0,45,4,3,
2362  14,26,7,58,12,20,18,24,0,43,5,42,0,0,59,28,0,0,0,0,55,0,0,19,0,0,34,17,23,39,49,40,22,3,10,54,21,0,0,38,0,0,57,44,0,29,47,48,31,46,0,2,9,6,0,15,0,36,11,51,
2363  33,0,8,0,41,0,0,16,42,0,0,11,44,23,28,0,30,22,0,53,27,14,0,0,49,0,35,0,0,21,25,17,0,0,0,7,0,0,0,0,0,13,31,47,0,0,18,0,0,0,50,0,0,0,0,26,43,37,54,48,
2364  0,46,41,43,7,0,21,0,26,5,0,58,0,44,0,0,0,32,22,0,49,0,51,0,1,56,2,52,33,47,13,0,59,6,11,18,0,34,0,3,38,25,29,30,0,40,0,50,23,37,24,35,0,31,39,53,12,28,15,42,
2365  0,29,5,0,46,0,11,55,0,18,21,16,32,0,45,35,1,60,2,0,58,3,37,44,28,0,0,0,0,52,42,0,0,23,9,0,14,0,0,49,0,0,47,24,43,36,54,27,30,0,38,0,59,0,0,8,56,0,20,0,
2366  0,0,56,57,24,0,0,40,37,0,0,2,0,0,54,0,49,29,13,0,31,48,52,0,27,0,19,0,35,0,6,26,0,0,17,0,0,0,0,33,0,60,12,51,0,34,0,0,0,8,0,30,0,45,0,22,0,46,21,5,
2367  40,0,58,15,0,46,0,29,0,0,0,44,59,41,0,53,11,5,36,0,19,57,54,32,13,0,1,30,50,31,0,45,16,33,0,0,27,10,0,14,0,0,0,12,0,0,0,0,0,4,22,28,0,0,0,17,0,0,49,47,
2368  0,3,52,35,0,0,0,0,11,50,0,31,47,0,56,36,0,49,4,0,54,0,21,0,0,9,6,22,48,0,39,0,14,0,57,26,44,5,23,0,46,59,0,0,0,0,28,25,0,0,41,20,16,29,12,0,37,33,55,0,
2369  0,0,2,51,0,33,0,0,0,40,49,0,28,0,22,1,0,8,44,0,0,0,43,20,0,53,30,0,6,0,3,48,0,0,0,32,7,41,0,0,0,10,0,0,31,0,0,54,59,0,0,0,0,36,24,0,11,0,0,37,
2370  39,32,0,0,49,0,0,0,0,0,28,0,15,46,0,23,27,31,0,14,0,30,0,0,0,24,0,45,1,54,5,42,34,0,50,0,0,0,0,20,8,51,0,0,59,0,0,22,0,38,0,33,0,21,0,0,0,16,9,0,
2371  0,41,24,0,37,0,45,0,0,0,0,0,39,5,0,55,0,7,50,21,20,51,30,16,0,0,0,0,0,17,47,38,0,36,0,58,19,0,42,22,0,0,0,8,0,54,3,0,52,0,9,0,0,0,0,29,0,0,0,49,
2372  0,18,11,6,0,0,0,15,32,0,53,0,1,42,51,0,0,0,20,59,10,0,50,0,0,0,21,24,31,0,14,0,0,41,46,0,0,12,0,29,49,30,22,0,0,0,17,3,0,0,0,13,0,0,57,60,45,8,0,0,
2373  17,34,48,0,0,16,33,3,54,0,51,10,27,4,46,13,40,0,0,0,0,29,0,0,0,52,0,0,56,0,0,0,0,0,0,41,22,50,47,0,11,31,32,0,0,0,20,0,0,0,5,0,24,0,0,0,6,38,7,36,
2374  0,0,0,0,30,0,13,36,0,21,56,35,25,0,0,0,59,18,19,0,16,55,0,17,0,42,5,0,52,14,38,0,0,37,12,60,0,11,2,0,44,0,50,41,0,7,34,0,6,48,57,0,8,33,9,0,0,0,47,0,
2375  0,2,29,0,0,0,0,50,0,22,16,40,0,0,8,44,35,0,25,0,33,0,24,18,46,0,4,48,43,58,60,0,0,49,0,0,0,0,0,0,13,0,0,54,0,30,0,15,36,7,0,0,38,0,0,20,31,6,37,39,
2376  47,35,30,0,0,50,55,0,2,0,34,0,33,12,0,0,37,0,0,0,6,13,14,54,60,19,44,0,36,53,8,0,56,0,40,52,0,20,0,0,0,0,0,29,11,18,0,38,0,1,0,49,5,28,51,0,15,17,42,21,
2377  37,53,42,28,44,15,0,4,58,33,0,60,0,0,0,0,0,0,0,13,26,0,57,0,0,0,0,0,17,49,0,8,47,22,30,19,0,29,35,0,3,36,0,0,52,0,1,43,38,0,54,21,32,0,0,0,0,0,16,0,
2378  58,22,23,39,10,0,0,25,0,0,44,5,17,0,0,4,12,0,0,0,0,0,29,59,2,16,0,46,60,0,0,0,48,0,0,0,8,0,0,52,0,14,33,0,0,47,31,0,0,0,26,32,11,34,0,21,0,53,0,45,
2379  55,0,0,30,0,0,0,0,53,27,50,41,31,17,24,0,45,0,0,0,51,9,46,0,25,0,0,36,14,0,0,0,12,16,0,57,13,33,0,11,5,0,0,35,38,0,10,29,2,21,1,3,0,0,40,0,0,0,0,0,
2380  29,0,26,0,0,0,0,0,41,31,0,48,4,0,52,42,0,3,0,0,0,47,0,49,58,0,37,0,11,0,20,28,33,12,0,53,0,17,0,0,0,9,40,16,60,55,45,8,57,13,51,0,2,1,27,0,0,5,0,7,
2381  0,47,0,48,0,0,0,0,9,0,0,0,16,34,0,54,0,0,53,0,0,6,22,12,0,0,36,57,0,0,0,0,26,60,28,33,0,0,0,42,0,11,49,0,15,0,0,0,1,19,0,0,21,35,0,23,40,0,0,27
2382  };
2383 
2384  const int d70_2450[] = {
2385  // Size: 70 x 70
2386  70,
2387  // Pre-assigned fields
2388  0,50,0,38,15,28,51,42,19,52,62,61,0,0,1,0,0,0,64,0,18,10,59,13,0,0,26,0,70,0,0,66,39,9,54,69,0,44,0,55,32,30,58,0,48,0,12,0,22,0,3,0,0,65,0,68,14,0,67,45,0,53,4,8,0,0,0,25,0,0,
2389  0,40,31,11,66,65,42,48,64,0,3,0,0,0,0,26,0,0,0,0,0,5,9,0,69,8,6,0,19,0,0,46,0,34,10,18,0,0,47,36,22,0,0,0,58,0,70,15,0,30,23,0,0,55,41,63,68,0,57,0,32,0,45,2,0,0,0,59,44,33,
2390  8,49,0,0,0,0,60,33,0,0,67,0,47,0,0,52,0,0,3,0,41,11,0,22,48,69,0,6,15,10,0,0,65,0,42,0,0,0,0,0,0,0,0,62,68,0,0,43,0,66,18,0,17,23,0,54,0,30,0,0,28,0,7,36,0,0,32,0,29,1,
2391  0,0,0,0,33,4,2,0,0,7,61,0,0,0,0,5,0,13,32,0,34,0,0,0,0,1,0,0,0,20,65,0,0,0,0,10,60,48,0,67,0,44,54,11,0,69,24,50,0,0,47,0,70,0,12,15,37,0,39,0,43,0,0,27,40,0,0,0,23,62,
2392  16,0,0,0,0,8,0,0,2,18,5,0,48,0,0,49,15,40,0,66,0,0,23,24,59,44,50,0,32,62,0,0,22,0,0,0,0,0,9,0,0,46,0,0,0,0,29,64,6,33,4,10,0,25,0,51,69,7,58,14,0,60,0,34,0,0,0,0,0,53,
2393  70,0,45,65,34,0,0,0,7,66,59,18,33,0,23,19,0,36,21,63,0,17,0,0,25,0,0,0,0,41,52,24,0,0,31,3,12,9,0,44,38,0,62,0,5,13,64,39,10,0,0,0,51,56,0,60,0,0,0,35,61,22,0,57,68,1,2,0,0,14,
2394  67,4,7,0,0,0,65,0,0,24,0,64,19,0,0,15,38,0,0,0,0,20,8,0,62,13,0,0,49,0,0,0,0,42,22,0,0,0,10,0,0,27,0,53,0,0,16,0,0,63,54,0,11,66,0,47,52,0,59,0,0,21,0,14,30,0,0,0,1,50,
2395  0,32,33,4,16,39,69,44,0,27,57,15,29,0,0,0,0,30,0,0,0,0,0,7,0,17,0,59,63,31,0,8,26,0,0,0,0,0,43,0,35,0,70,41,0,55,50,2,0,0,58,5,47,0,0,46,13,21,0,49,0,48,12,51,0,0,68,0,0,0,
2396  66,0,17,0,0,0,0,3,61,49,4,0,0,45,36,28,0,0,0,0,0,54,21,0,11,0,64,0,25,0,38,44,14,0,0,0,37,41,0,0,0,67,0,0,29,58,0,27,1,0,0,0,20,9,0,30,0,0,40,0,0,23,0,0,16,62,53,0,35,34,
2397  19,26,6,0,46,1,28,43,0,0,0,0,24,52,60,0,48,59,0,38,0,13,0,0,0,0,8,67,17,33,47,51,27,31,0,0,0,0,4,0,55,2,45,0,0,50,62,69,14,0,0,0,49,0,40,39,0,65,37,44,0,32,3,15,58,56,10,0,63,9,
2398  0,6,0,0,0,23,0,0,0,0,7,0,0,58,0,0,52,25,48,32,8,14,0,0,0,0,31,64,43,67,0,36,5,10,0,0,17,28,42,62,0,41,0,66,0,0,38,0,49,0,30,47,0,0,0,19,21,0,15,24,69,0,0,13,0,0,51,29,22,12,
2399  0,0,0,59,31,0,18,63,0,0,0,58,0,56,47,34,51,0,0,54,0,0,3,0,5,0,0,0,0,0,0,57,13,29,19,0,45,55,20,0,62,0,0,24,66,0,0,70,12,0,0,0,0,60,0,0,0,0,43,16,0,11,0,50,0,44,0,0,8,0,
2400  26,0,9,0,50,32,37,0,0,0,0,0,31,57,0,0,0,2,56,47,0,0,48,61,0,0,0,63,0,49,21,0,0,0,20,6,0,8,38,70,4,0,19,0,1,0,22,52,5,0,0,17,0,40,0,27,45,15,0,29,60,65,39,10,0,0,0,0,0,59,
2401  0,53,0,0,38,0,0,65,50,3,43,55,0,41,34,58,0,67,0,21,0,0,39,18,12,0,0,0,2,28,30,63,25,0,0,57,0,0,0,0,0,9,6,0,33,0,0,13,0,22,1,0,45,49,0,14,0,5,0,8,0,0,0,0,19,0,0,62,37,52,
2402  0,0,13,26,0,15,0,0,28,0,23,0,69,31,0,1,36,0,0,10,62,0,0,0,44,40,0,16,7,0,0,11,0,0,48,61,0,63,0,27,12,0,4,0,0,0,25,0,0,0,45,0,14,0,19,0,0,0,0,0,57,8,37,53,39,2,60,0,0,0,
2403  0,0,69,10,0,0,15,57,0,58,32,21,0,11,67,16,0,0,70,0,0,0,0,43,38,0,65,0,37,0,0,0,66,35,0,0,47,0,12,45,39,0,56,0,0,18,60,49,61,0,0,0,0,0,0,20,0,0,52,0,0,26,62,0,63,0,22,28,51,0,
2404  51,0,19,0,25,70,33,49,0,56,69,0,0,0,0,0,62,57,0,24,65,12,0,0,0,2,23,0,14,36,5,53,59,16,55,0,26,54,48,6,0,45,15,47,10,41,0,0,50,27,38,0,31,0,22,11,46,0,0,28,34,35,40,66,0,0,64,0,42,61,
2405  0,2,35,46,0,0,0,0,0,0,25,14,0,66,0,0,0,0,0,12,0,0,51,0,0,0,61,29,0,32,0,47,0,7,45,23,64,17,0,21,28,0,16,0,0,48,18,0,0,0,65,0,0,0,24,0,0,63,3,53,0,0,0,41,0,0,52,70,0,0,
2406  2,0,5,0,27,61,0,0,3,0,30,32,50,0,45,62,69,24,41,15,0,18,17,48,52,0,37,0,66,42,0,49,29,47,43,0,0,68,1,0,0,40,65,0,0,0,8,0,0,0,63,21,7,59,0,0,11,58,6,0,0,38,0,20,0,0,4,0,33,13,
2407  15,41,0,0,47,52,59,1,21,13,34,57,0,25,63,0,22,0,45,26,0,0,0,62,36,29,0,14,55,0,3,42,0,8,24,0,23,0,58,20,10,0,0,4,0,30,11,0,38,19,2,0,0,32,0,66,0,50,0,0,56,17,16,35,0,53,0,33,60,0,
2408  7,0,0,21,22,24,0,0,58,65,0,0,0,0,0,0,0,0,16,0,0,66,0,68,51,0,0,0,0,0,0,50,0,0,0,0,29,0,0,12,0,57,0,0,45,0,0,33,0,40,13,3,0,47,0,62,0,0,0,60,37,0,0,0,41,23,43,0,69,0,
2409  0,52,0,0,0,63,19,58,0,9,68,0,0,2,0,0,53,0,0,0,0,36,40,0,15,18,0,0,54,0,29,0,62,0,21,70,50,5,0,0,43,0,0,0,61,0,0,0,0,60,0,1,69,13,3,0,24,0,0,0,0,25,56,33,0,0,0,0,28,46,
2410  17,19,0,2,0,64,41,61,0,0,0,0,43,18,0,59,0,47,11,0,0,39,42,9,0,32,49,0,0,0,0,0,33,0,0,38,0,60,0,0,0,0,0,0,44,7,0,0,66,56,0,51,0,0,1,0,0,0,22,0,25,0,27,0,4,0,0,12,0,30,
2411  47,0,37,0,17,22,0,19,0,10,0,20,44,14,0,40,0,5,0,30,0,69,0,0,67,0,0,70,0,0,0,43,3,0,0,0,1,0,31,68,36,0,0,0,12,60,0,0,11,15,0,0,0,0,42,0,25,0,50,0,49,0,0,62,0,26,63,41,0,21,
2412  0,0,0,62,70,0,38,8,0,14,0,7,15,0,0,66,0,37,55,67,36,0,0,30,22,0,39,56,0,0,0,64,0,23,0,2,0,20,0,40,31,0,60,59,0,0,0,54,29,16,44,24,0,0,0,0,0,11,17,0,47,3,0,0,0,0,34,10,0,0,
2413  0,0,49,0,13,12,67,6,0,43,22,0,0,39,0,0,0,0,2,0,0,0,26,0,28,24,0,0,0,57,0,18,0,3,0,0,0,38,0,0,9,0,33,0,0,53,32,41,0,14,15,0,59,30,61,0,62,0,0,4,23,0,0,0,64,0,0,69,0,17,
2414  52,34,4,0,0,2,47,14,0,0,13,0,16,0,58,60,57,0,0,48,25,42,0,0,66,49,29,0,0,17,11,61,0,0,30,0,10,0,53,0,0,54,0,0,0,0,37,0,0,0,36,0,9,0,0,22,59,33,46,0,0,0,0,0,5,0,0,32,0,23,
2415  63,0,0,48,51,0,6,64,0,0,0,24,0,27,0,54,39,0,0,42,0,8,0,29,0,16,36,0,52,0,49,0,0,0,40,0,0,0,0,0,15,43,41,45,0,56,65,10,0,17,19,18,0,0,0,0,61,0,4,0,5,7,0,37,0,67,0,20,34,26,
2416  3,0,52,44,42,60,0,0,46,67,0,0,49,48,0,0,0,12,35,0,55,0,0,1,0,7,19,33,0,0,0,17,47,39,0,16,9,51,15,0,65,69,36,18,0,64,0,6,21,10,0,57,63,0,45,53,28,31,0,38,0,66,0,29,70,27,0,0,0,0,
2417  62,0,22,0,0,0,9,0,66,0,50,33,0,0,0,0,0,65,0,0,19,63,0,3,0,0,52,0,1,0,0,55,43,0,23,59,18,53,0,0,54,0,0,39,8,16,49,4,0,0,0,0,67,26,32,61,36,45,0,2,11,41,60,0,69,70,0,40,25,37,
2418  45,0,0,61,5,59,17,66,37,0,0,0,0,0,0,31,0,6,47,0,0,0,0,0,0,0,0,0,27,0,40,0,4,53,0,32,0,18,0,15,0,0,57,0,65,36,0,28,41,62,0,0,0,2,29,0,26,44,0,0,0,0,0,0,0,10,0,0,0,60,
2419  48,58,0,0,61,45,66,31,0,0,0,6,55,59,0,25,0,0,62,0,0,0,0,0,0,0,40,0,47,0,41,39,36,26,0,0,5,52,0,0,0,0,10,3,53,28,0,0,63,0,14,44,33,0,0,0,0,24,0,0,0,0,42,68,54,0,0,0,0,0,
2420  0,13,0,0,0,0,62,45,0,34,0,1,3,0,0,0,47,0,0,9,53,35,0,0,0,26,46,0,64,0,54,58,40,0,0,0,0,59,0,52,6,4,39,0,0,0,68,0,0,29,0,11,0,43,0,0,0,32,44,0,42,0,38,16,0,69,48,5,0,0,
2421  37,0,0,0,0,20,70,52,8,0,0,0,0,24,0,21,0,48,38,0,2,43,15,33,0,0,55,0,35,61,56,6,0,0,51,39,28,0,60,10,0,0,0,68,0,0,0,1,58,36,32,49,0,5,16,0,47,66,0,67,0,0,0,0,0,0,18,0,57,0,
2422  0,0,0,0,67,0,0,11,0,0,37,0,0,35,39,56,31,66,0,14,0,45,0,0,0,0,0,0,0,0,17,0,0,21,0,0,0,40,0,0,1,48,0,12,0,44,27,53,0,0,62,0,0,16,0,0,58,68,0,6,0,43,0,0,0,0,0,0,49,57,
2423  0,0,0,0,0,0,0,55,0,30,2,48,0,70,0,11,33,0,51,46,0,37,0,0,53,0,0,26,0,0,69,0,0,65,61,56,44,0,52,0,0,17,20,21,0,25,0,5,0,0,40,0,0,0,34,13,50,0,18,0,0,0,0,45,12,0,16,64,39,0,
2424  0,0,0,15,0,0,27,0,0,70,51,0,0,0,18,0,0,0,0,16,28,0,25,0,0,38,0,61,58,0,0,0,0,69,44,0,0,0,36,65,0,0,0,0,0,0,0,29,0,0,33,0,0,57,0,0,0,0,1,12,0,52,21,47,31,3,0,13,0,45,
2425  0,0,0,0,0,56,45,10,69,29,0,0,57,0,0,0,0,0,0,35,0,0,0,0,0,5,0,49,23,0,0,67,17,0,50,0,34,30,0,0,37,0,0,0,27,32,0,0,51,12,0,14,68,28,0,0,0,0,0,47,44,54,15,52,20,24,55,0,0,0,
2426  0,0,0,13,0,0,0,0,0,53,0,16,0,17,0,14,0,0,0,0,0,55,54,19,70,0,0,0,0,0,0,0,0,44,38,0,0,0,25,64,0,15,3,5,52,0,0,56,0,42,26,63,22,0,0,50,0,2,9,0,0,49,0,24,0,0,58,27,48,20,
2427  0,0,18,0,0,0,29,0,63,0,0,0,0,10,0,47,25,0,0,0,51,26,0,0,0,0,28,0,0,15,0,0,0,0,0,68,0,0,5,0,0,0,49,0,0,1,0,42,70,0,0,23,37,0,31,0,20,0,0,0,0,67,0,0,36,0,19,16,0,0,
2428  59,64,16,0,0,0,1,4,10,0,52,0,18,0,22,13,55,28,0,0,32,0,0,0,23,56,47,0,0,3,0,33,2,0,0,48,41,21,24,7,5,66,0,57,0,0,39,61,60,58,69,0,0,6,27,67,63,0,0,0,65,0,0,43,0,0,45,54,0,35,
2429  0,39,26,0,45,38,0,30,0,69,54,0,0,0,21,0,0,0,29,40,3,0,66,0,42,0,0,43,6,0,20,5,34,0,12,41,65,0,44,23,61,0,50,28,64,0,0,0,46,0,37,0,57,0,0,4,0,56,35,18,58,15,0,67,49,0,59,53,0,0,
2430  43,0,0,30,0,0,23,9,38,60,31,68,0,0,0,22,1,17,5,44,0,32,57,0,0,0,0,54,11,0,51,0,12,0,0,0,0,0,0,0,27,70,35,25,0,0,63,58,0,59,0,0,0,0,66,69,4,0,64,10,0,0,34,0,18,0,61,0,0,39,
2431  0,0,29,37,56,58,0,7,26,11,0,0,42,65,12,35,18,0,40,0,50,0,0,0,61,46,0,32,0,1,2,38,24,0,28,0,0,19,22,0,0,0,8,0,13,63,0,17,0,0,64,0,0,69,39,9,54,14,0,20,70,0,0,21,47,0,41,60,0,0,
2432  0,30,3,7,0,0,35,0,47,0,0,36,0,21,70,0,0,52,4,53,0,64,16,0,0,0,59,11,10,9,12,31,8,0,34,0,20,27,0,0,0,0,0,65,54,61,42,0,0,25,39,0,41,0,0,56,0,67,69,0,0,0,0,28,14,22,0,6,68,0,
2433  0,54,0,0,30,0,25,0,0,5,10,13,51,28,0,50,49,0,14,0,35,29,43,0,0,33,0,3,60,44,0,0,0,0,0,58,0,32,23,63,0,16,0,0,0,0,0,0,36,55,9,26,56,52,70,0,38,0,12,0,67,0,0,61,0,0,0,0,0,0,
2434  42,27,68,33,57,0,0,0,0,0,0,0,0,7,44,38,0,29,0,0,1,0,61,0,24,0,0,0,53,0,28,0,19,0,37,55,0,0,51,0,30,36,0,2,0,70,0,11,0,0,49,0,46,31,0,65,23,0,45,62,8,16,25,0,0,0,54,15,0,10,
2435  0,0,12,22,2,35,68,69,24,42,46,59,14,0,0,0,32,45,0,0,0,0,50,66,40,39,3,47,34,0,4,21,57,38,65,51,8,25,55,0,63,56,44,0,43,0,61,62,0,0,0,0,19,17,26,0,41,0,0,5,9,0,48,0,10,0,49,58,67,0,
2436  0,70,0,16,28,0,0,62,5,0,0,0,0,1,0,4,54,26,0,36,0,47,0,0,0,0,0,69,45,0,9,0,38,20,0,11,0,29,59,17,48,0,40,0,0,6,58,14,0,0,61,0,27,0,33,23,0,25,0,37,39,0,32,49,0,0,67,0,0,0,
2437  0,0,0,56,0,17,10,0,22,0,0,39,0,0,0,43,0,33,0,70,21,0,49,51,0,36,0,0,41,26,0,0,53,60,35,30,0,0,63,0,0,38,0,0,0,0,0,0,0,8,55,9,3,0,0,0,0,47,0,0,0,0,0,0,0,0,25,0,0,24,
2438  0,68,0,3,0,0,11,29,0,41,49,0,0,0,15,69,35,53,8,0,9,0,19,0,0,0,56,13,12,0,62,0,23,0,0,34,0,33,0,0,0,42,0,0,0,54,67,59,7,0,0,0,40,0,0,0,65,0,47,63,0,58,0,0,57,66,14,39,0,0,
2439  13,0,53,18,0,0,39,0,0,0,0,0,0,0,5,63,60,41,0,0,46,0,0,59,0,19,0,4,0,14,33,62,0,0,0,0,0,0,0,0,44,49,43,0,0,40,0,24,65,48,11,58,0,0,30,64,56,0,70,21,0,28,51,0,0,35,0,0,0,16,
2440  58,8,0,0,0,7,48,26,42,0,0,53,13,37,0,29,0,54,27,0,15,57,0,0,9,0,0,0,3,0,0,0,0,51,0,0,0,0,0,0,24,0,2,0,63,0,0,0,0,18,0,0,0,22,0,31,0,28,38,0,40,0,0,0,52,65,0,30,0,0,
2441  0,0,62,0,21,33,0,41,49,25,66,11,0,67,48,24,0,0,36,0,61,16,6,15,68,20,0,0,57,0,19,0,50,0,0,0,46,22,8,0,69,0,37,40,0,0,34,0,42,0,0,55,0,10,0,7,0,0,28,32,0,0,30,54,0,0,0,0,0,0,
2442  0,0,0,0,0,0,12,0,70,1,44,38,0,20,6,17,0,64,0,39,0,4,52,0,3,61,0,42,0,55,31,69,0,14,0,49,33,0,56,13,60,53,0,26,2,59,47,0,57,9,0,0,0,0,15,21,10,19,0,48,0,0,36,7,0,0,0,0,0,8,
2443  0,0,0,63,0,0,30,0,0,0,58,0,0,61,35,6,8,10,53,51,0,0,0,44,0,65,38,0,0,0,0,0,16,0,0,0,2,0,11,0,0,0,66,0,0,0,0,22,0,0,24,68,0,1,5,0,0,0,54,55,0,0,0,70,0,0,3,0,0,0,
2444  25,0,0,8,0,44,14,27,54,0,0,26,45,0,55,3,66,0,0,43,0,0,0,0,37,0,0,12,30,0,0,0,0,1,0,0,15,0,0,0,29,64,0,0,0,0,5,18,48,0,51,41,0,0,0,0,7,0,63,69,0,0,0,4,0,0,62,0,40,0,
2445  0,0,47,0,23,27,0,0,0,40,0,0,34,32,0,0,0,0,25,0,6,0,0,0,64,54,63,0,21,0,45,22,0,0,5,0,4,0,46,0,0,24,13,0,15,51,0,0,0,20,0,0,8,0,35,57,29,36,2,52,0,0,0,0,0,49,70,0,0,0,
2446  38,12,59,36,53,41,0,28,0,64,0,35,30,0,0,0,0,0,42,0,47,51,4,63,0,0,33,25,20,39,55,0,7,0,0,22,0,0,0,60,21,26,48,9,0,29,0,0,0,32,0,61,2,34,0,0,0,23,10,0,0,57,0,0,43,0,0,0,11,0,
2447  0,0,32,68,0,0,20,0,56,0,70,54,66,33,19,23,0,0,0,0,0,0,0,35,8,0,45,0,28,0,6,26,61,0,46,0,22,47,17,49,0,10,67,31,4,0,0,55,13,0,0,0,0,0,0,34,2,0,0,64,62,59,43,39,0,0,12,0,15,7,
2448  21,0,0,47,0,18,40,24,15,55,8,0,65,0,0,44,42,58,0,0,0,33,28,0,17,10,32,23,0,11,0,48,0,0,4,0,0,50,13,0,0,1,29,0,31,22,0,25,54,0,67,0,39,0,0,0,0,52,0,30,0,12,59,0,61,19,35,14,0,0,
2449  9,22,44,51,0,55,0,0,29,20,47,52,0,0,0,30,0,0,0,0,0,0,0,0,50,60,34,41,13,19,0,10,31,0,59,0,40,0,0,0,53,39,11,64,0,15,0,48,2,21,0,45,0,70,37,0,32,6,0,0,18,0,5,0,0,0,0,36,0,66,
2450  10,0,63,0,0,49,53,0,68,0,55,0,58,0,0,0,59,0,17,0,33,21,0,0,0,0,0,0,51,0,0,0,56,46,0,0,0,0,0,0,18,28,0,29,7,0,45,23,24,52,0,0,0,0,0,26,12,0,14,0,48,0,0,64,32,30,65,57,19,43,
2451  31,0,0,17,41,36,0,60,0,33,0,29,62,0,0,12,0,0,0,7,54,0,44,0,0,0,0,0,0,40,42,0,52,43,70,14,27,0,45,0,66,0,0,46,0,9,35,47,26,0,68,53,25,18,21,32,30,0,0,0,55,0,0,0,67,11,0,49,0,15,
2452  30,0,14,52,36,0,57,0,0,0,0,67,28,6,46,32,70,0,0,0,0,38,0,45,0,3,0,0,18,64,23,0,51,17,0,43,0,0,0,31,7,33,27,15,0,37,48,65,62,0,0,12,0,0,25,0,44,0,55,0,20,0,0,0,66,0,0,0,0,0,
2453  0,24,0,20,0,0,32,67,0,45,19,12,0,43,0,0,0,9,60,0,0,27,0,46,0,0,0,0,0,70,48,0,0,22,41,0,0,0,28,0,0,0,47,0,0,0,4,0,25,0,10,65,18,0,0,0,0,0,68,61,0,37,29,0,0,0,57,8,0,0,
2454  0,5,0,39,11,14,0,0,25,17,0,4,63,0,27,0,0,62,12,0,0,70,60,64,2,0,0,8,24,58,1,0,28,0,0,47,69,0,65,0,0,0,38,0,0,0,44,0,3,45,52,0,0,46,53,48,51,0,0,9,0,0,61,0,26,59,0,0,0,0,
2455  0,0,41,25,68,13,63,20,33,0,21,37,0,3,17,0,12,0,59,55,14,23,35,0,47,48,2,0,26,0,8,28,0,5,67,0,0,65,0,0,0,0,0,61,0,0,0,30,9,54,0,60,24,0,0,0,31,22,66,34,36,39,0,0,0,57,40,43,0,18,
2456  0,21,0,57,0,48,0,0,18,12,0,0,0,68,0,0,0,70,1,0,60,0,47,39,45,62,35,65,16,0,0,20,58,25,69,67,0,0,26,29,49,0,0,0,0,0,0,0,4,28,43,0,0,0,0,0,0,34,13,0,0,0,41,0,0,0,56,0,10,5,
2457  0,66,0,0,35,10,46,53,0,2,33,0,17,19,0,0,26,7,50,0,11,31,13,65,27,51,0,24,0,52,22,9,42,0,0,0,0,0,0,8,0,0,23,0,0,4,0,0,69,37,21,54,5,48,43,0,0,0,0,0,0,55,1,0,34,20,44,0,62,0
2458  };
2459 
2460  const int d70_2940[] = {
2461  // Size: 70 x 70
2462  70,
2463  // Pre-assigned fields
2464  0,0,40,38,0,0,51,0,0,0,0,61,0,0,0,0,0,0,0,33,18,0,59,0,0,0,0,2,70,0,0,0,0,0,0,69,57,44,0,55,0,0,0,0,0,0,0,34,22,0,0,31,6,0,63,0,0,0,0,0,46,0,0,0,0,0,47,25,20,0,
2465  56,40,31,11,66,0,0,0,64,0,0,0,0,0,52,26,0,0,24,0,4,0,0,0,0,8,0,0,19,43,13,0,0,0,0,0,0,0,47,36,22,0,25,16,0,0,0,15,0,30,0,0,0,55,41,63,0,0,57,17,0,0,0,0,0,28,27,0,44,0,
2466  0,0,0,9,12,26,0,0,0,0,0,31,47,34,0,52,0,0,3,20,0,11,0,0,48,0,0,6,15,10,58,0,0,50,0,0,13,4,2,19,56,0,0,0,0,0,0,0,45,0,0,40,0,23,0,0,0,0,27,25,28,24,7,0,59,0,0,0,0,0,
2467  0,0,30,35,33,4,0,0,52,0,0,0,6,0,0,0,0,13,0,56,0,0,41,0,0,1,0,17,38,0,0,45,0,49,57,0,60,0,0,0,0,44,54,0,0,69,24,0,0,0,47,42,70,0,12,15,0,0,39,59,43,0,0,0,0,0,26,0,0,62,
2468  16,65,11,0,55,8,0,0,2,0,0,70,48,0,0,0,0,40,0,0,38,0,0,0,59,0,50,0,0,62,0,19,0,0,52,0,0,0,9,0,0,0,0,56,0,0,29,64,0,0,0,0,0,25,0,0,0,0,58,0,35,60,0,0,0,0,17,21,0,0,
2469  70,0,0,0,0,0,58,37,7,66,59,0,0,0,0,0,0,0,21,63,0,17,0,6,0,27,16,20,0,0,52,24,0,0,31,0,0,0,40,44,0,29,0,43,0,0,64,39,0,0,0,0,0,0,0,0,8,26,49,0,61,22,46,0,68,1,2,55,47,0,
2470  0,0,7,0,29,0,0,70,0,24,0,64,19,0,31,0,38,0,34,0,0,0,0,0,0,13,0,0,49,0,18,0,0,0,0,0,35,36,0,0,0,0,0,0,32,0,0,0,0,0,54,37,11,0,0,47,52,0,59,26,68,0,0,0,0,0,0,9,0,0,
2471  34,0,0,0,0,0,69,44,53,27,0,0,0,38,65,61,28,0,0,0,45,62,24,0,10,0,66,59,0,31,0,8,0,0,3,0,0,0,43,1,0,0,0,41,0,0,0,2,0,0,0,5,47,0,0,0,13,0,0,0,0,0,0,0,9,0,0,0,56,0,
2472  0,48,0,0,0,0,26,0,0,0,4,0,0,0,0,28,0,0,52,50,0,54,21,0,0,15,0,10,25,0,38,0,14,0,0,0,37,41,0,51,0,67,18,0,29,58,0,0,0,0,0,0,0,0,0,0,0,42,40,0,0,23,70,0,16,62,53,0,35,0,
2473  19,26,0,5,0,0,28,0,0,16,29,66,24,52,0,36,48,0,7,38,70,0,18,57,34,12,0,0,0,33,0,0,0,0,0,0,30,42,0,0,0,0,0,20,0,0,0,69,14,0,0,0,0,68,0,0,0,0,37,0,0,0,0,0,0,0,0,0,63,9,
2474  0,0,0,0,18,0,0,0,44,0,0,56,0,0,0,0,52,25,0,0,8,14,0,0,1,0,31,64,43,67,0,0,5,0,0,0,17,28,0,62,50,0,0,0,0,0,38,0,49,0,0,0,61,20,0,0,0,0,15,24,0,0,0,0,0,39,0,29,22,12,
2475  0,0,61,0,31,0,18,63,0,38,0,0,53,0,47,0,51,0,30,0,0,0,3,0,5,0,0,0,67,0,0,0,13,0,19,0,0,0,20,0,62,0,0,24,0,0,0,0,12,23,35,0,0,60,0,0,9,0,0,0,0,0,52,0,0,44,1,37,0,0,
2476  26,0,9,41,0,32,0,0,0,0,0,0,31,0,0,33,64,0,0,0,0,0,0,61,14,0,0,0,0,49,0,0,0,11,20,6,0,0,0,70,4,0,0,30,0,23,0,0,5,0,42,17,53,0,13,0,45,15,0,29,0,65,0,0,0,54,0,3,0,0,
2477  29,53,0,0,38,0,16,65,0,3,0,55,0,0,34,0,0,67,0,21,17,0,0,0,0,0,0,46,0,28,30,63,0,48,0,57,70,10,0,0,59,0,6,0,33,0,26,0,0,0,0,32,0,0,7,0,35,0,60,8,0,40,0,11,0,31,0,62,0,0,
2478  5,0,13,0,6,15,55,0,0,50,0,0,0,0,0,1,0,43,0,0,62,9,0,0,0,0,18,0,7,0,0,0,0,32,0,0,0,0,54,0,12,0,4,0,70,21,25,66,68,35,0,0,14,51,0,0,67,64,65,41,0,0,37,0,39,0,60,0,0,0,
2479  64,0,0,10,24,19,15,0,34,0,0,21,0,0,0,16,6,55,70,0,31,0,36,0,38,0,0,27,0,54,0,0,0,0,1,44,0,0,0,0,39,0,56,0,25,0,0,49,0,41,0,0,48,42,0,20,0,0,52,0,0,26,62,0,0,0,0,0,0,0,
2480  51,43,0,0,0,70,0,0,0,0,0,0,52,0,0,7,0,0,0,0,65,0,0,0,18,2,23,60,0,0,5,0,59,16,0,0,0,0,0,0,20,0,0,0,10,41,0,0,50,27,38,0,0,0,0,0,0,0,0,0,0,0,40,66,0,4,0,0,0,0,
2481  0,0,0,0,0,42,0,0,13,26,0,14,5,0,0,0,0,0,15,12,0,59,0,0,0,30,0,0,62,0,60,0,67,0,0,0,64,0,57,0,0,0,16,37,0,48,0,0,0,34,65,0,58,0,0,38,19,63,0,0,0,0,0,41,0,43,0,0,0,0,
2482  0,0,0,0,0,61,36,0,3,28,0,32,50,53,45,0,0,0,0,0,23,0,17,0,0,25,37,0,0,42,0,49,0,0,43,0,16,68,1,0,0,0,0,0,56,31,0,0,39,0,0,0,0,59,0,0,0,58,6,0,26,38,0,20,55,12,0,0,0,0,
2483  15,0,0,0,0,0,0,0,0,13,0,0,0,25,0,0,22,61,45,26,40,46,0,0,0,29,0,14,0,18,3,0,69,8,24,0,0,49,0,20,0,0,31,0,9,30,0,51,0,19,2,48,43,0,0,0,0,50,0,0,56,17,0,35,0,53,37,33,60,0,
2484  0,0,67,21,22,0,0,17,58,0,0,28,0,0,38,18,0,15,0,8,27,66,0,0,0,0,0,52,0,0,0,50,20,0,0,0,29,0,0,12,42,0,9,0,0,19,0,0,0,0,0,3,30,0,36,62,55,0,0,0,37,4,35,25,0,0,43,56,0,0,
2485  0,0,23,34,20,0,0,0,0,0,0,0,59,2,0,0,53,49,67,0,7,0,0,47,0,0,14,0,54,0,0,27,0,6,0,0,50,0,37,0,43,0,0,35,0,0,0,0,55,0,0,0,0,0,0,45,0,0,41,0,0,0,0,0,48,64,42,0,0,0,
2486  0,19,0,0,58,0,0,0,0,0,0,0,43,0,14,59,10,0,0,13,0,39,42,9,0,0,0,0,0,34,36,0,33,28,0,38,0,60,0,0,68,0,0,0,44,7,0,0,0,56,50,0,0,0,0,0,16,70,22,0,0,0,27,0,0,0,23,0,0,0,
2487  0,55,0,0,0,0,0,0,0,10,0,20,44,14,13,0,23,0,0,0,0,69,0,0,67,0,0,0,65,0,0,43,0,0,0,8,1,16,31,68,0,61,0,0,0,0,0,0,0,0,34,0,28,0,0,33,0,0,0,54,49,0,0,0,0,26,63,41,66,0,
2488  0,0,0,0,0,5,0,0,57,0,45,0,15,0,42,0,0,0,55,0,36,52,0,0,22,0,39,56,4,48,0,64,63,0,0,2,61,20,0,40,31,0,0,0,0,65,0,54,29,16,44,24,0,0,0,0,0,0,17,27,0,3,0,0,0,68,34,10,0,0,
2489  0,51,0,0,0,0,0,0,36,43,22,0,25,39,0,0,0,0,0,65,0,58,0,0,0,24,0,0,0,0,0,18,0,3,0,0,21,38,66,34,9,31,0,0,40,0,32,41,0,0,0,0,59,0,0,44,62,0,0,0,23,46,0,0,64,0,11,0,55,17,
2490  0,0,0,0,3,0,0,14,0,0,0,0,0,12,0,60,57,0,43,0,0,42,0,0,0,0,29,45,0,0,0,0,35,0,30,27,0,0,0,24,0,0,1,0,62,38,37,0,67,0,0,0,0,0,0,22,0,0,46,0,0,0,0,69,0,0,50,0,0,23,
2491  63,0,0,48,51,0,0,0,14,0,0,0,0,0,3,0,0,11,68,0,0,8,0,0,32,0,36,0,0,0,0,0,0,0,40,0,38,0,0,25,15,43,0,0,0,56,0,10,0,0,0,0,44,33,0,70,0,0,0,0,0,7,2,0,1,0,9,0,0,26,
2492  3,59,0,0,42,60,0,0,0,0,14,0,49,0,20,0,0,12,35,0,55,0,0,1,54,7,19,33,50,37,0,0,0,0,0,0,0,51,15,0,0,0,0,18,0,0,40,6,0,10,22,57,0,8,45,0,0,0,26,0,0,0,13,29,70,27,0,4,0,0,
2493  0,10,0,27,44,0,9,0,0,0,50,0,12,30,0,0,0,0,28,29,19,63,0,0,0,6,0,0,0,35,24,0,0,0,0,59,0,0,0,46,54,0,17,0,0,16,0,0,0,13,0,0,0,26,32,0,36,45,42,2,0,0,60,0,69,0,7,40,25,0,
2494  45,0,0,61,5,0,17,0,0,0,38,0,70,55,8,0,68,6,0,25,0,0,0,0,0,14,69,0,0,7,0,0,4,0,0,0,63,0,19,0,0,0,57,0,0,36,51,0,0,62,12,0,0,0,0,0,0,0,0,0,0,0,0,23,35,0,20,0,16,0,
2495  48,0,0,0,61,45,66,31,0,0,0,6,0,0,0,25,0,51,0,60,0,0,0,0,0,0,0,0,0,22,0,39,36,0,32,21,5,52,30,69,23,11,0,3,53,0,0,0,63,0,14,0,33,0,0,0,18,24,29,0,0,0,42,68,54,7,0,0,0,2,
2496  0,0,57,0,0,0,62,0,0,0,41,0,0,0,61,51,47,14,0,0,0,0,63,70,0,26,0,0,64,0,54,0,0,0,0,25,24,0,67,0,6,0,39,33,19,2,0,0,30,0,66,0,21,0,10,55,27,32,44,22,0,20,0,0,0,0,0,0,0,0,
2497  37,0,0,53,9,20,70,0,0,46,27,0,0,24,7,0,0,0,38,0,0,0,15,33,0,0,55,0,0,61,0,0,0,0,0,39,0,0,0,10,40,63,14,0,0,0,59,0,58,0,0,0,0,5,16,0,47,66,31,0,3,0,0,0,0,0,0,0,57,0,
2498  55,38,0,0,0,3,0,0,0,0,37,0,0,35,39,0,0,0,0,14,22,0,2,8,29,0,0,0,59,0,0,65,0,0,60,0,0,0,0,0,1,48,63,0,42,0,0,0,0,0,0,52,0,16,0,41,58,0,0,0,30,0,23,0,0,0,69,0,49,57,
2499  35,3,1,0,0,0,0,55,0,30,2,0,60,70,0,11,0,32,0,46,63,0,0,0,0,4,7,0,0,0,0,0,15,65,0,0,44,0,52,9,47,0,20,0,0,0,0,0,19,0,0,28,0,0,34,0,0,0,0,36,0,0,68,0,12,0,0,0,0,67,
2500  0,0,0,15,0,0,0,0,40,70,0,42,20,22,0,0,41,50,37,0,28,48,25,17,35,38,24,0,0,0,0,0,0,0,44,0,0,0,0,65,0,62,0,34,0,26,56,0,64,0,0,19,0,0,0,2,0,0,1,12,66,52,21,0,31,0,0,0,30,45,
2501  0,0,0,0,0,0,0,0,0,29,0,0,57,0,43,70,46,0,19,35,0,0,58,26,0,0,0,0,0,0,66,0,17,0,50,0,0,30,0,0,0,0,0,0,0,32,2,0,51,12,6,14,0,0,4,0,0,0,61,47,0,54,0,0,20,0,0,48,9,38,
2502  41,0,0,13,10,0,0,39,59,53,0,16,11,17,4,14,0,8,0,61,0,55,54,19,70,47,57,0,0,0,35,1,0,0,0,40,0,0,25,0,0,0,3,0,0,0,30,0,0,42,0,63,22,21,0,50,66,0,0,0,0,0,0,24,0,0,58,0,0,0,
2503  0,0,18,24,0,0,0,0,63,54,64,50,0,0,0,47,25,0,0,0,0,0,56,0,13,58,28,53,0,0,57,7,0,0,0,0,0,46,0,0,0,6,0,0,34,0,0,0,70,0,60,0,0,14,31,35,20,27,21,0,0,67,0,0,0,0,0,0,59,0,
2504  59,0,0,40,0,0,1,0,0,0,52,0,0,0,0,13,0,28,0,0,32,30,0,0,23,0,47,0,42,0,0,33,0,0,0,0,41,21,0,0,0,0,53,57,0,0,0,0,60,0,0,0,26,0,0,0,63,0,0,50,0,44,31,43,0,0,0,0,17,35,
2505  0,39,26,31,0,38,13,30,11,69,0,0,0,0,0,0,0,0,0,40,0,2,0,16,0,0,0,0,0,0,20,0,34,0,12,0,65,0,44,0,61,47,50,28,0,0,0,0,0,0,0,0,0,0,68,4,0,56,35,0,0,0,0,67,0,60,59,0,0,0,
2506  43,0,48,30,0,0,23,0,0,60,31,0,56,0,0,0,0,17,0,0,0,0,57,0,0,0,20,54,0,0,51,15,0,0,0,0,52,3,0,0,27,70,0,0,0,0,0,58,40,59,29,13,55,53,66,69,0,0,0,0,0,0,0,0,18,0,0,0,6,0,
2507  49,0,0,37,56,58,0,7,26,0,15,0,0,65,0,0,18,44,0,34,0,0,0,0,61,0,0,0,0,0,2,38,24,0,0,52,0,19,22,0,25,0,8,48,0,63,0,0,0,0,64,67,0,0,39,0,54,14,0,0,0,62,0,21,0,0,41,60,0,0,
2508  0,0,3,7,26,0,35,0,0,0,0,0,0,0,0,0,5,0,4,0,0,64,0,58,0,63,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,51,0,0,54,0,42,0,0,25,0,0,41,0,0,0,17,0,69,0,15,0,0,0,14,22,0,0,68,0,
2509  0,54,8,0,30,0,0,0,0,0,0,13,0,0,0,0,49,0,14,0,35,29,0,0,4,0,0,0,60,0,0,0,0,0,0,0,0,0,0,63,17,16,0,27,41,0,0,20,0,55,0,0,0,0,0,40,38,0,0,0,67,19,0,0,22,0,0,0,31,0,
2510  0,0,68,33,57,0,4,0,12,63,60,0,67,0,0,0,0,29,0,0,0,6,61,20,0,0,9,0,0,0,0,0,0,0,37,0,0,0,0,0,0,36,0,2,0,70,0,11,0,26,0,22,46,0,0,0,0,0,45,0,8,0,25,0,0,0,0,0,32,0,
2511  0,37,0,0,2,0,0,0,24,0,46,0,14,0,0,64,0,0,31,6,0,0,50,0,0,39,0,47,34,0,0,21,0,38,0,0,0,25,0,0,0,56,44,0,0,20,61,0,52,0,7,0,19,0,0,29,0,0,16,5,9,0,48,0,0,0,49,0,67,0,
2512  0,0,0,16,28,0,34,62,0,0,35,0,46,0,51,0,0,0,63,36,0,47,55,53,0,68,21,69,0,50,9,41,0,0,0,0,42,0,0,17,0,0,40,22,0,0,58,14,0,0,61,8,27,0,33,23,60,25,0,0,0,10,0,49,2,13,0,52,65,64,
2513  0,0,46,56,0,17,0,0,0,59,40,39,0,50,62,43,0,33,0,70,21,0,49,51,0,36,0,0,41,0,0,0,0,60,0,0,67,11,63,0,0,38,0,0,28,42,0,0,0,8,0,0,3,29,52,0,0,47,48,57,0,0,69,12,6,16,25,0,2,24,
2514  0,68,27,3,0,0,11,29,0,0,0,0,0,64,0,69,0,0,8,28,9,0,0,0,0,45,56,0,12,0,0,0,0,0,0,34,36,33,0,38,0,0,55,50,51,0,67,0,7,0,0,0,0,0,0,37,0,61,0,0,0,58,22,0,0,0,14,0,26,0,
2515  0,15,53,0,54,6,0,47,0,31,42,9,0,0,0,63,60,41,23,68,0,61,0,0,0,19,0,0,8,14,0,0,0,0,36,1,0,45,0,0,44,49,0,55,0,40,3,24,0,48,0,0,34,0,30,0,56,29,0,21,0,0,51,0,0,0,0,67,52,16,
2516  58,0,0,43,32,0,0,26,42,0,0,53,13,37,0,29,0,54,0,0,0,0,0,0,9,21,0,35,0,16,0,34,0,51,0,0,0,0,0,0,0,0,0,19,0,12,0,60,0,18,5,0,0,0,62,0,0,28,38,0,0,0,0,17,52,0,0,0,0,0,
2517  0,0,62,0,21,33,0,41,0,25,66,11,0,0,48,0,58,0,0,0,61,0,6,0,68,0,0,0,57,0,19,2,50,18,0,0,0,0,0,0,0,65,0,0,0,47,0,0,0,0,0,0,0,0,59,0,43,35,0,0,53,0,0,0,51,0,29,0,64,63,
2518  0,0,28,67,0,0,12,0,70,1,0,0,40,20,6,0,0,0,66,0,16,4,52,0,3,0,0,0,0,0,31,0,41,0,0,0,0,58,0,13,0,0,30,0,0,0,47,0,0,0,0,35,65,0,0,0,0,0,62,0,0,0,0,0,27,0,0,0,0,0,
2519  57,45,0,63,0,0,30,32,27,0,58,0,0,61,0,0,0,0,53,0,0,50,20,0,60,65,0,0,0,0,7,0,16,0,0,0,2,0,11,0,41,19,66,0,0,14,31,22,0,0,0,0,23,1,0,0,0,49,0,0,0,0,0,0,0,0,0,0,21,0,
2520  25,57,0,0,0,0,0,27,0,68,36,0,0,23,0,3,66,0,61,0,0,56,0,0,0,0,60,12,30,0,0,52,0,1,2,0,0,34,0,0,29,0,42,0,0,0,0,18,48,0,0,0,0,0,65,0,7,0,0,0,0,9,0,4,17,0,0,22,0,31,
2521  11,0,0,0,23,0,3,0,0,0,56,0,34,0,0,0,0,39,25,17,0,60,53,0,0,0,0,0,0,0,0,0,18,67,0,0,4,31,0,37,0,0,13,0,15,0,0,26,0,20,0,0,0,61,0,57,0,0,0,0,0,0,0,48,0,49,0,0,50,0,
2522  0,0,0,0,0,0,0,0,62,64,0,0,0,0,0,8,27,0,42,0,0,0,0,63,65,52,33,25,20,39,55,70,7,0,14,0,0,15,49,0,21,0,0,9,0,29,0,0,0,0,17,0,0,0,0,16,1,23,0,0,0,57,0,0,43,0,31,66,11,0,
2523  0,0,0,0,0,11,20,0,0,21,0,0,0,0,0,0,63,42,0,0,52,53,14,0,0,9,45,1,28,24,0,0,0,27,0,29,22,47,17,0,0,10,67,0,4,0,0,0,0,69,48,16,0,0,0,0,0,0,30,64,0,0,0,39,65,25,0,38,15,0,
2524  0,0,51,0,0,0,0,24,0,0,0,0,0,26,53,44,0,58,9,57,20,0,0,0,17,0,32,0,0,11,0,48,0,2,0,0,0,0,13,5,16,0,29,0,0,22,43,25,54,70,67,0,0,0,0,0,64,0,34,0,0,0,59,46,0,0,0,0,0,0,
2525  0,22,44,51,4,0,0,0,0,20,0,0,8,0,0,0,0,0,0,23,56,0,62,67,0,60,34,0,0,19,0,0,31,0,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,27,0,0,70,0,28,32,0,7,65,18,0,0,0,0,58,0,36,3,0,
2526  10,0,63,0,37,49,0,54,0,0,55,0,0,40,9,0,59,0,0,1,0,0,22,60,0,0,0,36,0,0,0,0,0,0,0,0,0,0,70,0,0,28,0,0,0,0,0,23,0,0,0,20,35,0,47,0,0,62,0,0,0,0,0,64,0,30,65,57,19,0,
2527  0,23,50,0,0,0,0,0,0,0,0,0,0,4,0,12,0,0,10,7,0,0,0,0,6,34,0,38,61,0,0,0,0,0,0,14,0,0,0,22,66,0,0,0,0,9,35,47,26,0,0,0,0,18,0,0,0,0,51,0,0,56,0,63,0,11,0,0,0,0,
2528  30,0,0,52,36,0,0,59,1,0,0,67,0,0,0,0,0,60,0,0,0,38,29,45,19,3,0,0,0,0,23,0,51,0,8,0,68,56,16,0,0,0,0,15,0,0,48,65,0,0,0,12,0,0,25,0,44,0,0,11,20,42,0,58,0,0,21,0,13,0,
2529  0,24,2,0,0,0,32,0,23,0,0,0,0,0,0,0,21,9,0,11,0,27,33,0,0,66,30,34,0,0,0,13,44,22,0,0,0,35,28,16,0,52,47,0,50,0,0,0,25,49,0,0,0,0,55,59,0,0,68,0,0,0,0,0,0,0,57,8,36,0,
2530  0,0,0,39,11,14,21,0,0,0,0,4,0,0,0,67,40,0,0,0,68,70,60,64,2,37,0,8,0,0,0,0,0,0,0,0,0,0,0,18,34,35,38,0,0,49,0,0,0,45,0,0,0,0,0,0,51,0,0,0,10,0,61,55,0,0,0,0,0,42,
2531  0,62,0,0,0,13,63,0,0,0,0,0,7,0,17,0,0,0,0,0,0,0,35,0,0,0,0,0,26,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,45,0,0,9,0,70,60,0,0,0,42,0,22,0,34,36,0,0,38,0,0,0,43,4,0,
2532  0,0,0,57,52,48,0,0,0,0,17,2,0,0,54,0,7,0,1,0,0,0,47,39,45,62,35,0,0,0,0,20,0,25,0,67,59,0,26,0,49,55,22,0,0,0,0,0,4,0,43,0,66,0,38,8,53,34,0,0,31,0,0,0,0,6,0,0,0,0,
2533  61,66,0,6,0,0,46,0,0,0,0,30,0,0,0,0,0,7,0,45,11,31,13,65,0,51,41,24,40,52,0,0,42,0,0,0,32,12,3,0,70,0,23,0,0,0,0,0,0,37,0,54,5,0,0,0,0,39,36,0,0,0,1,59,0,0,0,0,62,0
2534  };
2535 
2536 
2537  const int* qcp[] = {
2538  &d10_67_0[0], &d10_67_1[0], &d10_67_2[0], &d10_67_3[0], &d10_67_4[0],
2539  &d10_67_5[0], &d10_67_6[0], &d10_67_7[0], &d10_67_8[0], &d10_67_9[0],
2540  &d10_67_10[0], &d10_67_11[0], &d10_67_12[0], &d10_67_13[0], &d10_67_14[0],
2541 
2542  &d15_120_0[0], &d15_120_1[0], &d15_120_2[0], &d15_120_3[0], &d15_120_4[0],
2543  &d15_120_5[0], &d15_120_6[0], &d15_120_7[0], &d15_120_8[0], &d15_120_9[0],
2544  &d15_120_10[0], &d15_120_11[0], &d15_120_12[0], &d15_120_13[0], &d15_120_14[0],
2545 
2546  &d20_187_0[0], &d20_187_1[0], &d20_187_2[0], &d20_187_3[0], &d20_187_4[0],
2547  &d20_187_5[0], &d20_187_6[0], &d20_187_7[0], &d20_187_8[0], &d20_187_9[0],
2548  &d20_187_10[0], &d20_187_11[0], &d20_187_12[0], &d20_187_13[0], &d20_187_14[0],
2549 
2550  &d25_264_0[0], &d25_264_1[0], &d25_264_2[0], &d25_264_3[0], &d25_264_4[0],
2551  &d25_264_5[0], &d25_264_6[0], &d25_264_7[0], &d25_264_8[0], &d25_264_9[0],
2552  &d25_264_10[0], &d25_264_11[0], &d25_264_12[0], &d25_264_13[0], &d25_264_14[0],
2553 
2554  &d30_316[0], &d30_320[0],
2555  &d33_381[0],
2556  &d35_405[0],
2557  &d40_528[0], &d40_544[0], &d40_560[0],
2558  &d50_750_bal[0], &d50_825_bal[0],
2559  &d60_1080_bal[0], &d60_1152_bal[0], &d60_1440[0], &d60_1620[0],
2560  &d70_2450[0], &d70_2940[0]
2561  };
2562 
2563  const char* name[] = {
2564  "10-67-0", "10-67-1", "10-67-2", "10-67-3", "10-67-4",
2565  "10-67-5", "10-67-6", "10-67-7", "10-67-8", "10-67-9",
2566  "10-67-10", "10-67-11", "10-67-12", "10-67-13", "10-67-14",
2567 
2568  "15-120-0", "15-120-1", "15-120-2", "15-120-3", "15-120-4",
2569  "15-120-5", "15-120-6", "15-120-7", "15-120-8", "15-120-9",
2570  "15-120-10", "15-120-11", "15-120-12", "15-120-13", "15-120-14",
2571 
2572  "20-187-0", "20-187-1", "20-187-2", "20-187-3", "20-187-4",
2573  "20-187-5", "20-187-6", "20-187-7", "20-187-8", "20-187-9",
2574  "20-187-10", "20-187-11", "20-187-12", "20-187-13", "20-187-14",
2575 
2576  "25-264-0", "25-264-1", "25-264-2", "25-264-3", "25-264-4",
2577  "25-264-5", "25-264-6", "25-264-7", "25-264-8", "25-264-9",
2578  "25-264-10", "25-264-11", "25-264-12", "25-264-13", "25-264-14",
2579 
2580  "30-316", "30-320",
2581  "33-381",
2582  "35-405",
2583  "40-528", "40-544", "40-560",
2584  "50-750-bal", "50-825-bal",
2585  "60-1080-bal", "60-1152-bal", "60-1440", "60-1620",
2586  "70-2450", "70-2940",
2587  NULL
2588  };
2589 
2590 }
2591 
2592 // STATISTICS: example-any
2593 
const Spec spec
Specification.
Definition: qcp.cpp:143
IntVarArray e
Field elements e.
Definition: qcp.cpp:145
virtual bool slave(const MetaInfo &mi)
Slave function for portfolio search.
Definition: qcp.cpp:206
Slice< A > col(int c) const
Access column c.
Definition: matrix.hpp:183
NNF * l
Left subtree.
Definition: bool-expr.cpp:240
bool valid(const FloatVal &n)
Return whether float n is a valid number.
Definition: limits.hpp:39
void branch(Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf, FloatVarValPrint vvp)
Branch over x with variable selection vars and value selection vals.
Definition: branch.cpp:39
void value(double v)
Set default value to v.
Definition: options.hpp:108
void update(Space &home, VarArray< Var > &a)
Update array to be a clone of array a.
Definition: array.hpp:1056
double tbf
Tie-breaking factor.
Definition: qcp.cpp:147
Integer variable array.
Definition: int.hh:738
Computation spaces.
Definition: core.hpp:1701
Parametric base-class for scripts.
Definition: driver.hh:729
Use only binary disequality constraints.
Definition: qcp.cpp:151
Gecode::IntSet d(v, 7)
QCP(QCP &s)
Constructor for cloning s.
Definition: qcp.cpp:241
IntVarBranch INT_VAR_AFC_SIZE_MAX(double d, BranchTbl tbl)
Select variable with largest accumulated failure count divided by domain size with decay factor d...
Definition: var.hpp:236
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
Definition: bool-expr.cpp:234
Options opt
The options.
Definition: test.cpp:97
QCP(const QCPOptions &opt0)
Actual model.
Definition: qcp.cpp:160
Type type(void) const
Return type of information.
Definition: core.hpp:3039
IntValBranch INT_VAL_MIN(void)
Select smallest value.
Definition: val.hpp:55
unsigned int size(I &i)
Size of all ranges of range iterator i.
IntVarBranch INT_VAR_RND(Rnd r)
Select random variable (uniform distribution, for tie breaking)
Definition: var.hpp:101
void distinct(Home home, const IntVarArgs &x, IntPropLevel ipl)
Post propagator for for all .
Definition: distinct.cpp:46
Information is provided by a portfolio-based engine.
Definition: core.hpp:1579
const QCPOptions & opt
Options.
Definition: qcp.cpp:141
Use largest AFC divided by domain size.
Definition: qcp.cpp:157
Use smallest domain size first.
Definition: qcp.cpp:156
Example: Quasigroup completion
Definition: qcp.cpp:138
Post propagator for SetVar SetOpType SetVar SetRelType r
Definition: set.hh:765
TieBreak< VarBranch > tiebreak(VarBranch a, VarBranch b)
Combine variable selection criteria a and b for tie-breaking.
Definition: tiebreak.hpp:80
struct Gecode::@585::NNF::@62::@63 b
For binary nodes (and, or, eqv)
IntVarBranch INT_VAR_SIZE_MIN(BranchTbl tbl)
Select variable with smallest domain size.
Definition: var.hpp:206
Options for scripts with additional instance parameter
Definition: driver.hh:696
Slice< A > row(int r) const
Access row r.
Definition: matrix.hpp:177
bool assigned(View x, int v)
Whether x is assigned to value v.
Definition: single.hpp:43
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
Definition: rel.cpp:43
int main(int argc, char *argv[])
Main-function.
Definition: qcp.cpp:272
unsigned int asset(void) const
Return number of asset in portfolio.
Definition: core.hpp:3068
Matrix-interface for arrays.
Definition: minimodel.hh:2048
virtual void print(std::ostream &os) const
Print solution.
Definition: qcp.cpp:252
Gecode toplevel namespace
Information passed by meta search engines.
Definition: core.hpp:1572
Random number generator.
Definition: rnd.hpp:42
double tbl(const Gecode::Space &, double w, double b)
Test function for tie-break limit function.
Definition: branch.cpp:61
Use distinct constraints.
Definition: qcp.cpp:152
virtual Space * copy(void)
Copy during cloning.
Definition: qcp.cpp:247