// bitnic sort for 6 elements
#include <stdio.h>
#include <time.h>
#define testIterates 50000
int countOfCompare=0;
int countOfMove=0;
#define lswap2(p,q) {w=d[p];d[p]=d[q];d[q]=w;countOfMove +=3;}
#define lswap3(p,q,r) {w=d[p];d[p]=d[q];d[q]=d[r];d[r]=w;countOfMove+=4;}
#define lswap4(p,q,r,s) {w=d[p];d[p]=d[q];d[q]=d[r];d[r]=d[s];d[s]=w;countOfMove+=5;}
#define lswap5(p,q,r,s,t) {w=d[p];d[p]=d[q];d[q]=d[r];d[r]=d[s];d[s]=d[t];d[t]=w;countOfMove+=6;}
#define lswap6(p,q,r,s,t,u) {w=d[p];d[p]=d[q];d[q]=d[r];d[r]=d[s];d[s]=d[t];d[t]=d[u];d[u]=w;countOfMove+=7;}
int sort6l(unsigned int *d){
unsigned int w;
if(d[0]<=d[1]) if(d[2]<=d[3]) if(d[4]<=d[5]) if(d[0]<=d[2]) if(d[3]<=d[5]) if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[1]<=d[2]) if(d[3]<=d[4]) {countOfCompare+=9; return 0;}
else {countOfCompare+=9; lswap2(3,4);}
else if(d[1]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(1,2);}
else {countOfCompare+=10; lswap2(1,2);lswap2(3,4);}
else {countOfCompare+=9; lswap4(1,2,4,3);}
else if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap3(2,4,3);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(1,4,3,2);}
else {countOfCompare+=10; lswap3(1,4,3);}
else if(d[1]<=d[2]) {countOfCompare+=9; lswap5(0,4,3,2,1);}
else {countOfCompare+=9; lswap4(0,4,3,1);}
else if(d[2]<=d[4]) if(d[1]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap3(1,2,3);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap4(1,2,3,4);}
else {countOfCompare+=10; lswap3(1,2,4);}
else if(d[3]<=d[4]) {countOfCompare+=9; lswap5(1,2,3,4,5);}
else {countOfCompare+=9; lswap4(1,2,4,5);}
else if(d[0]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap2(1,4);}
else {countOfCompare+=9; lswap3(1,4,5);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap3(0,4,1);}
else {countOfCompare+=9; lswap4(0,4,5,1);}
else if(d[2]<=d[5]) if(d[1]<=d[5]) if(d[1]<=d[2]) if(d[1]<=d[4]) if(d[2]<=d[4]) {countOfCompare+=10; lswap3(3,4,5);}
else {countOfCompare+=10; lswap4(2,4,5,3);}
else if(d[0]<=d[4]) {countOfCompare+=10; lswap5(1,4,5,3,2);}
else {countOfCompare+=10; lswap6(0,4,5,3,2,1);}
else if(d[2]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=10; lswap2(1,2);lswap3(3,4,5);}
else {countOfCompare+=10; lswap5(1,2,4,5,3);}
else if(d[0]<=d[4]) {countOfCompare+=10; lswap4(1,4,5,3);}
else {countOfCompare+=10; lswap5(0,4,5,3,1);}
else if(d[1]<=d[3]) if(d[2]<=d[4]) {countOfCompare+=9; lswap3(1,2,4);lswap2(3,5);}
else if(d[0]<=d[4]) {countOfCompare+=10; lswap2(1,4);lswap2(3,5);}
else {countOfCompare+=10; lswap3(0,4,1);lswap2(3,5);}
else if(d[2]<=d[4]) {countOfCompare+=9; lswap5(1,2,4,3,5);}
else if(d[0]<=d[4]) {countOfCompare+=10; lswap4(1,4,3,5);}
else {countOfCompare+=10; lswap5(0,4,3,5,1);}
else if(d[1]<=d[2]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap2(2,4);lswap2(3,5);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap3(1,4,2);lswap2(3,5);}
else {countOfCompare+=10; lswap5(1,4,2,5,3);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,4,2,1);lswap2(3,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,4,2,5,3,1);}
else {countOfCompare+=10; lswap3(0,4,2);lswap3(1,5,3);}
else if(d[1]<=d[3]) if(d[0]<=d[4]) {countOfCompare+=9; lswap2(1,4);lswap3(2,5,3);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,4,1);lswap3(2,5,3);}
else {countOfCompare+=10; lswap6(0,4,1,5,3,2);}
else if(d[0]<=d[4]) {countOfCompare+=9; lswap5(1,4,3,2,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,4,3,2,5,1);}
else {countOfCompare+=10; lswap4(0,4,3,2);lswap2(1,5);}
else if(d[3]<=d[5]) if(d[0]<=d[3]) if(d[0]<=d[4]) if(d[3]<=d[4]) if(d[1]<=d[4]) if(d[1]<=d[3]) {countOfCompare+=10; lswap3(0,2,1);}
else {countOfCompare+=10; lswap4(0,2,3,1);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,2,3,4,1);}
else {countOfCompare+=10; lswap6(0,2,3,4,5,1);}
else if(d[1]<=d[3]) if(d[1]<=d[4]) {countOfCompare+=10; lswap3(0,2,1);lswap2(3,4);}
else {countOfCompare+=10; lswap5(0,2,4,3,1);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap4(0,2,4,1);}
else {countOfCompare+=10; lswap5(0,2,4,5,1);}
else if(d[2]<=d[4]) if(d[1]<=d[3]) {countOfCompare+=9; lswap2(0,2);lswap3(1,4,3);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap2(1,4);}
else {countOfCompare+=10; lswap2(0,2);lswap3(1,4,5);}
else if(d[1]<=d[3]) {countOfCompare+=9; lswap5(0,4,3,1,2);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap4(0,4,1,2);}
else {countOfCompare+=10; lswap5(0,4,5,1,2);}
else if(d[3]<=d[4]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap2(0,2);lswap2(1,3);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap3(1,3,4);}
else {countOfCompare+=10; lswap2(0,2);lswap4(1,3,4,5);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap5(0,2,4,1,3);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,2,4,5,1,3);}
else {countOfCompare+=10; lswap3(0,2,4);lswap3(1,3,5);}
else if(d[2]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap3(0,2,3);lswap2(1,4);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,2,3);lswap3(1,4,5);}
else {countOfCompare+=10; lswap6(0,2,3,5,1,4);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap5(0,4,1,2,3);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,4,5,1,2,3);}
else {countOfCompare+=10; lswap2(0,4);lswap4(1,2,3,5);}
else if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap3(0,2,1);lswap3(3,4,5);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,2,4,5,3,1);}
else {countOfCompare+=10; lswap4(0,2,4,1);lswap2(3,5);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,2);lswap4(1,4,5,3);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap2(1,4);lswap2(3,5);}
else {countOfCompare+=10; lswap4(0,2,5,3);lswap2(1,4);}
else if(d[0]<=d[5]) if(d[1]<=d[5]) {countOfCompare+=9; lswap6(0,4,5,3,1,2);}
else {countOfCompare+=9; lswap4(0,4,1,2);lswap2(3,5);}
else if(d[2]<=d[5]) {countOfCompare+=9; lswap6(0,4,1,2,5,3);}
else {countOfCompare+=9; lswap5(0,4,1,5,3);}
else if(d[2]<=d[4]) if(d[0]<=d[5]) if(d[0]<=d[4]) {countOfCompare+=9; lswap6(0,2,4,3,5,1);}
else {countOfCompare+=9; lswap2(0,2);lswap4(1,4,3,5);}
else if(d[0]<=d[3]) {countOfCompare+=9; lswap6(0,2,5,1,4,3);}
else {countOfCompare+=9; lswap5(0,2,5,1,4);}
else if(d[0]<=d[3]) if(d[2]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,4,3,5,1,2);}
else {countOfCompare+=10; lswap3(0,4,3);lswap3(1,2,5);}
else {countOfCompare+=9; lswap3(0,4,3);lswap2(1,5);}
else if(d[2]<=d[5]) {countOfCompare+=9; lswap2(0,4);lswap3(1,2,5);}
else {countOfCompare+=9; lswap2(0,4);lswap2(1,5);}
else if(d[0]<=d[2]) if(d[1]<=d[4]) if(d[1]<=d[2]) if(d[1]<=d[5]) if(d[2]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=9; lswap2(4,5);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(3,5,4);}
else {countOfCompare+=10; lswap2(3,5);}
else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(2,5,4,3);}
else {countOfCompare+=10; lswap3(2,5,3);}
else {countOfCompare+=9; lswap4(2,5,3,4);}
else if(d[0]<=d[5]) if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap5(1,5,4,3,2);}
else {countOfCompare+=10; lswap4(1,5,3,2);}
else {countOfCompare+=9; lswap5(1,5,3,4,2);}
else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,5,4,3,2,1);}
else {countOfCompare+=10; lswap5(0,5,3,2,1);}
else {countOfCompare+=9; lswap6(0,5,3,4,2,1);}
else if(d[2]<=d[5]) if(d[1]<=d[5]) if(d[3]<=d[5]) if(d[1]<=d[3]) {countOfCompare+=10; lswap2(1,2);lswap2(4,5);}
else {countOfCompare+=10; lswap3(1,2,3);lswap2(4,5);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(1,2);lswap3(3,5,4);}
else {countOfCompare+=10; lswap2(1,2);lswap2(3,5);}
else if(d[1]<=d[3]) if(d[3]<=d[4]) {countOfCompare+=10; lswap5(1,2,5,4,3);}
else {countOfCompare+=10; lswap4(1,2,5,3);}
else if(d[3]<=d[5]) {countOfCompare+=10; lswap5(1,2,3,5,4);}
else {countOfCompare+=10; lswap4(1,2,5,4);}
else if(d[0]<=d[5]) if(d[1]<=d[3]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(1,5,4,3);}
else {countOfCompare+=10; lswap3(1,5,3);}
else {countOfCompare+=9; lswap3(1,5,4);}
else if(d[1]<=d[3]) if(d[3]<=d[4]) {countOfCompare+=10; lswap5(0,5,4,3,1);}
else {countOfCompare+=10; lswap4(0,5,3,1);}
else {countOfCompare+=9; lswap4(0,5,4,1);}
else if(d[1]<=d[3]) if(d[0]<=d[5]) if(d[2]<=d[4]) if(d[2]<=d[5]) {countOfCompare+=9; lswap5(1,2,5,3,4);}
else {countOfCompare+=9; lswap4(1,5,3,4);}
else if(d[1]<=d[2]) {countOfCompare+=9; lswap3(1,5,3);lswap2(2,4);}
else {countOfCompare+=9; lswap5(1,5,3,2,4);}
else if(d[0]<=d[4]) if(d[2]<=d[4]) {countOfCompare+=9; lswap5(0,5,3,4,1);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,5,3,1);lswap2(2,4);}
else {countOfCompare+=10; lswap6(0,5,3,2,4,1);}
else if(d[1]<=d[2]) {countOfCompare+=9; lswap6(0,5,3,1,4,2);}
else {countOfCompare+=9; lswap4(0,5,3,2);lswap2(1,4);}
else if(d[0]<=d[5]) if(d[2]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=9; lswap4(1,2,3,5);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(1,2,5);}
else {countOfCompare+=10; lswap3(1,2,5);lswap2(3,4);}
else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(1,5);}
else {countOfCompare+=10; lswap2(1,5);lswap2(3,4);}
else {countOfCompare+=9; lswap2(1,5);lswap3(2,4,3);}
else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=9; lswap3(0,5,1);}
else {countOfCompare+=9; lswap3(0,5,1);lswap2(3,4);}
else if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,5,1);lswap3(2,4,3);}
else {countOfCompare+=9; lswap6(0,5,1,4,3,2);}
else if(d[1]<=d[4]) if(d[1]<=d[3]) if(d[0]<=d[5]) if(d[1]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=9; lswap3(0,2,1);lswap2(4,5);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,2,1);lswap3(3,5,4);}
else {countOfCompare+=10; lswap3(0,2,1);lswap2(3,5);}
else if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,2,5,4,3,1);}
else {countOfCompare+=9; lswap5(0,2,5,3,1);}
else if(d[2]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,2);lswap4(1,5,4,3);}
else {countOfCompare+=9; lswap2(0,2);lswap3(1,5,3);}
else if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,5,4,3,1,2);}
else {countOfCompare+=9; lswap5(0,5,3,1,2);}
else if(d[3]<=d[5]) if(d[0]<=d[3]) if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,2,3,1);lswap2(4,5);}
else {countOfCompare+=9; lswap6(0,2,3,5,4,1);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,2);lswap2(1,3);lswap2(4,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap4(1,3,5,4);}
else {countOfCompare+=10; lswap6(0,2,5,4,1,3);}
else if(d[0]<=d[3]) if(d[2]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,2,5,4,1);}
else {countOfCompare+=10; lswap2(0,2);lswap3(1,5,4);}
else {countOfCompare+=9; lswap5(0,5,4,1,2);}
else if(d[2]<=d[5]) {countOfCompare+=9; lswap3(0,2,3);lswap3(1,5,4);}
else {countOfCompare+=9; lswap6(0,5,4,1,2,3);}
else if(d[0]<=d[4]) if(d[3]<=d[4]) if(d[0]<=d[3]) if(d[0]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=10; lswap5(0,2,3,5,1);}
else {countOfCompare+=10; lswap4(0,2,5,1);}
else if(d[2]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap2(1,5);}
else {countOfCompare+=10; lswap4(0,5,1,2);}
else if(d[3]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap3(1,3,5);}
else {countOfCompare+=10; lswap5(0,2,5,1,3);}
else if(d[2]<=d[5]) {countOfCompare+=10; lswap3(0,2,3);lswap2(1,5);}
else {countOfCompare+=10; lswap5(0,5,1,2,3);}
else if(d[1]<=d[3]) if(d[2]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,2,5,3,4,1);}
else {countOfCompare+=10; lswap2(0,2);lswap4(1,5,3,4);}
else {countOfCompare+=9; lswap6(0,5,3,4,1,2);}
else if(d[2]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,2,5,1);lswap2(3,4);}
else {countOfCompare+=10; lswap2(0,2);lswap2(1,5);lswap2(3,4);}
else {countOfCompare+=9; lswap4(0,5,1,2);lswap2(3,4);}
else if(d[0]<=d[3]) if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[2]<=d[5]) {countOfCompare+=10; lswap6(0,2,4,1,5,3);}
else {countOfCompare+=10; lswap3(0,5,3);lswap3(1,2,4);}
else {countOfCompare+=9; lswap3(0,5,3);lswap2(1,4);}
else if(d[2]<=d[4]) if(d[2]<=d[5]) {countOfCompare+=10; lswap4(0,2,4,3);lswap2(1,5);}
else {countOfCompare+=10; lswap6(0,5,1,2,4,3);}
else {countOfCompare+=9; lswap5(0,5,1,4,3);}
else if(d[2]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=9; lswap6(0,2,5,1,3,4);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,2,3,4);lswap2(1,5);}
else {countOfCompare+=10; lswap3(0,2,4);lswap2(1,5);}
else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,5,1,2,3,4);}
else {countOfCompare+=10; lswap5(0,5,1,2,4);}
else {countOfCompare+=9; lswap4(0,5,1,4);}
else if(d[4]<=d[5]) if(d[0]<=d[3]) if(d[2]<=d[5]) if(d[1]<=d[2]) if(d[1]<=d[3]) if(d[1]<=d[4]) if(d[2]<=d[4]) {countOfCompare+=9; lswap2(2,3);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(2,3,4);}
else {countOfCompare+=10; lswap2(2,4);}
else if(d[0]<=d[4]) {countOfCompare+=9; lswap3(1,4,2);}
else {countOfCompare+=9; lswap4(0,4,2,1);}
else if(d[1]<=d[4]) if(d[2]<=d[4]) {countOfCompare+=9; lswap3(1,3,2);}
else {countOfCompare+=9; lswap4(1,3,4,2);}
else if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(1,3);lswap2(2,4);}
else {countOfCompare+=10; lswap4(1,4,2,3);}
else {countOfCompare+=9; lswap5(0,4,2,3,1);}
else if(d[1]<=d[5]) if(d[2]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap2(1,3);}
else {countOfCompare+=9; lswap3(1,3,4);}
else if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(1,3,2,4);}
else {countOfCompare+=10; lswap2(1,4);lswap2(2,3);}
else {countOfCompare+=9; lswap3(0,4,1);lswap2(2,3);}
else if(d[3]<=d[4]) if(d[2]<=d[4]) {countOfCompare+=9; lswap4(1,3,4,5);}
else {countOfCompare+=9; lswap5(1,3,2,4,5);}
else if(d[0]<=d[4]) {countOfCompare+=9; lswap3(1,4,5);lswap2(2,3);}
else {countOfCompare+=9; lswap4(0,4,5,1);lswap2(2,3);}
else if(d[3]<=d[5]) if(d[1]<=d[5]) if(d[1]<=d[3]) if(d[1]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(2,3,4,5);}
else {countOfCompare+=10; lswap3(2,4,5);}
else if(d[0]<=d[4]) {countOfCompare+=10; lswap4(1,4,5,2);}
else {countOfCompare+=10; lswap5(0,4,5,2,1);}
else if(d[3]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=10; lswap5(1,3,4,5,2);}
else {countOfCompare+=10; lswap2(1,3);lswap3(2,4,5);}
else if(d[0]<=d[4]) {countOfCompare+=10; lswap5(1,4,5,2,3);}
else {countOfCompare+=10; lswap6(0,4,5,2,3,1);}
else if(d[1]<=d[2]) if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap5(1,3,5,2,4);}
else {countOfCompare+=10; lswap2(1,4);lswap3(2,3,5);}
else {countOfCompare+=9; lswap3(0,4,1);lswap3(2,3,5);}
else if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap3(1,3,5);lswap2(2,4);}
else {countOfCompare+=10; lswap5(1,4,2,3,5);}
else {countOfCompare+=9; lswap6(0,4,2,3,5,1);}
else if(d[1]<=d[3]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap4(2,4,3,5);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap5(1,4,3,5,2);}
else {countOfCompare+=10; lswap3(1,4,3);lswap2(2,5);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap6(0,4,3,5,2,1);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,4,3,1);lswap2(2,5);}
else {countOfCompare+=10; lswap6(0,4,3,1,5,2);}
else if(d[1]<=d[2]) if(d[0]<=d[4]) {countOfCompare+=9; lswap2(1,4);lswap2(2,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,4,1);lswap2(2,5);}
else {countOfCompare+=10; lswap5(0,4,1,5,2);}
else if(d[0]<=d[4]) {countOfCompare+=9; lswap4(1,4,2,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,4,2,5,1);}
else {countOfCompare+=10; lswap3(0,4,2);lswap2(1,5);}
else if(d[2]<=d[5]) if(d[0]<=d[2]) if(d[0]<=d[4]) if(d[2]<=d[4]) if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,3,2,1);}
else {countOfCompare+=10; lswap3(0,3,1);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap4(0,3,4,1);}
else {countOfCompare+=10; lswap5(0,3,4,5,1);}
else if(d[1]<=d[2]) if(d[1]<=d[4]) {countOfCompare+=10; lswap5(0,3,4,2,1);}
else {countOfCompare+=10; lswap3(0,3,1);lswap2(2,4);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,3,2,4,1);}
else {countOfCompare+=10; lswap6(0,3,2,4,5,1);}
else if(d[3]<=d[4]) if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=10; lswap5(0,3,1,4,2);}
else {countOfCompare+=10; lswap3(0,3,2);lswap2(1,4);}
else {countOfCompare+=9; lswap3(0,3,2);lswap3(1,4,5);}
else if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,4,2);lswap2(1,3);}
else {countOfCompare+=10; lswap5(0,4,1,3,2);}
else {countOfCompare+=9; lswap6(0,4,5,1,3,2);}
else if(d[2]<=d[4]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap4(0,3,1,2);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,3,4,1,2);}
else {countOfCompare+=10; lswap6(0,3,4,5,1,2);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,3);lswap3(1,2,4);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,3);lswap4(1,2,4,5);}
else {countOfCompare+=10; lswap6(0,3,5,1,2,4);}
else if(d[3]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,3);lswap2(1,4);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,3);lswap3(1,4,5);}
else {countOfCompare+=10; lswap5(0,3,5,1,4);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,4,1,3);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,4,5,1,3);}
else {countOfCompare+=10; lswap2(0,4);lswap3(1,3,5);}
else if(d[0]<=d[5]) if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap6(0,3,4,5,2,1);}
else {countOfCompare+=9; lswap3(0,3,1);lswap3(2,4,5);}
else if(d[1]<=d[2]) {countOfCompare+=9; lswap6(0,3,5,2,4,1);}
else {countOfCompare+=9; lswap4(0,3,5,1);lswap2(2,4);}
else if(d[3]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap6(0,3,1,4,5,2);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,3,5,2);lswap2(1,4);}
else {countOfCompare+=10; lswap6(0,3,5,1,4,2);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,4,5,2);lswap2(1,3);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,4,1,3,5,2);}
else {countOfCompare+=10; lswap3(0,4,2);lswap3(1,3,5);}
else if(d[0]<=d[2]) if(d[1]<=d[2]) if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,3);lswap2(1,4);lswap2(2,5);}
else {countOfCompare+=10; lswap4(0,4,1,3);lswap2(2,5);}
else {countOfCompare+=9; lswap6(0,4,1,5,2,3);}
else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,3);lswap4(1,4,2,5);}
else {countOfCompare+=10; lswap6(0,4,2,5,1,3);}
else {countOfCompare+=9; lswap4(0,4,2,3);lswap2(1,5);}
else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,3,2,5,1,4);}
else {countOfCompare+=9; lswap2(0,4);lswap4(1,3,2,5);}
else {countOfCompare+=8; lswap2(0,4);lswap2(1,5);lswap2(2,3);}
else if(d[2]<=d[4]) if(d[0]<=d[3]) if(d[3]<=d[5]) if(d[2]<=d[5]) if(d[1]<=d[5]) if(d[1]<=d[3]) {countOfCompare+=9; lswap2(2,3);lswap2(4,5);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap3(1,3,2);lswap2(4,5);}
else {countOfCompare+=10; lswap2(1,3);lswap2(4,5);}
else if(d[1]<=d[4]) {countOfCompare+=9; lswap4(1,3,5,4);}
else {countOfCompare+=9; lswap3(1,3,5);}
else if(d[1]<=d[5]) if(d[1]<=d[3]) {countOfCompare+=9; lswap4(2,3,5,4);}
else {countOfCompare+=9; lswap5(1,3,5,4,2);}
else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap2(1,3);lswap3(2,5,4);}
else {countOfCompare+=10; lswap5(1,3,2,5,4);}
else {countOfCompare+=9; lswap4(1,3,2,5);}
else if(d[0]<=d[5]) if(d[1]<=d[3]) if(d[1]<=d[5]) {countOfCompare+=9; lswap3(2,5,4);}
else {countOfCompare+=9; lswap4(1,5,4,2);}
else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap5(1,5,4,2,3);}
else {countOfCompare+=10; lswap3(1,5,4);lswap2(2,3);}
else {countOfCompare+=9; lswap2(1,5);lswap2(2,3);}
else if(d[1]<=d[2]) if(d[1]<=d[3]) {countOfCompare+=9; lswap5(0,5,4,2,1);}
else {countOfCompare+=9; lswap6(0,5,4,2,3,1);}
else if(d[1]<=d[4]) {countOfCompare+=9; lswap4(0,5,4,1);lswap2(2,3);}
else {countOfCompare+=9; lswap3(0,5,1);lswap2(2,3);}
else if(d[0]<=d[2]) if(d[0]<=d[5]) if(d[2]<=d[5]) if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,3,2,1);lswap2(4,5);}
else {countOfCompare+=10; lswap3(0,3,1);lswap2(4,5);}
else if(d[1]<=d[4]) {countOfCompare+=10; lswap5(0,3,5,4,1);}
else {countOfCompare+=10; lswap4(0,3,5,1);}
else if(d[1]<=d[2]) if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,3,5,4,2,1);}
else {countOfCompare+=10; lswap3(0,3,1);lswap3(2,5,4);}
else if(d[1]<=d[4]) {countOfCompare+=10; lswap6(0,3,2,5,4,1);}
else {countOfCompare+=10; lswap5(0,3,2,5,1);}
else if(d[3]<=d[5]) if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,3,1,5,4,2);}
else {countOfCompare+=10; lswap3(0,3,2);lswap3(1,5,4);}
else {countOfCompare+=9; lswap3(0,3,2);lswap2(1,5);}
else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,5,4,2);lswap2(1,3);}
else {countOfCompare+=10; lswap6(0,5,4,1,3,2);}
else {countOfCompare+=9; lswap5(0,5,1,3,2);}
else if(d[2]<=d[5]) if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,3,1,2);lswap2(4,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,3,5,4,1,2);}
else {countOfCompare+=10; lswap2(0,3);lswap4(1,2,5,4);}
else if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,3,5,1,2);}
else {countOfCompare+=10; lswap2(0,3);lswap3(1,2,5);}
else {countOfCompare+=9; lswap3(0,3,4);lswap3(1,2,5);}
else if(d[3]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap2(0,3);lswap3(1,5,4);}
else if(d[0]<=d[4]) {countOfCompare+=10; lswap2(0,3);lswap2(1,5);}
else {countOfCompare+=10; lswap3(0,3,4);lswap2(1,5);}
else if(d[1]<=d[4]) {countOfCompare+=9; lswap5(0,5,4,1,3);}
else if(d[0]<=d[4]) {countOfCompare+=10; lswap4(0,5,1,3);}
else {countOfCompare+=10; lswap5(0,5,1,3,4);}
else if(d[0]<=d[3]) if(d[3]<=d[4]) if(d[1]<=d[4]) if(d[1]<=d[3]) if(d[1]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=10; lswap3(2,3,5);}
else {countOfCompare+=10; lswap2(2,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(1,5,2);}
else {countOfCompare+=10; lswap4(0,5,2,1);}
else if(d[3]<=d[5]) if(d[1]<=d[5]) {countOfCompare+=10; lswap4(1,3,5,2);}
else {countOfCompare+=10; lswap2(1,3);lswap2(2,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap4(1,5,2,3);}
else {countOfCompare+=10; lswap5(0,5,2,3,1);}
else if(d[1]<=d[2]) if(d[3]<=d[5]) {countOfCompare+=9; lswap3(1,3,4);lswap2(2,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(1,5,2,3,4);}
else {countOfCompare+=10; lswap6(0,5,2,3,4,1);}
else if(d[3]<=d[5]) {countOfCompare+=9; lswap5(1,3,4,2,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(1,5);lswap3(2,3,4);}
else {countOfCompare+=10; lswap3(0,5,1);lswap3(2,3,4);}
else if(d[1]<=d[3]) if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap2(2,5);lswap2(3,4);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(1,5,2);lswap2(3,4);}
else {countOfCompare+=10; lswap4(0,5,2,1);lswap2(3,4);}
else if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap5(1,5,2,4,3);}
else {countOfCompare+=10; lswap6(0,5,2,4,3,1);}
else {countOfCompare+=9; lswap3(0,5,2);lswap3(1,4,3);}
else if(d[1]<=d[2]) if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(1,5,2,4);}
else {countOfCompare+=10; lswap5(0,5,2,4,1);}
else {countOfCompare+=9; lswap3(0,5,2);lswap2(1,4);}
else if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(1,5);lswap2(2,4);}
else {countOfCompare+=10; lswap3(0,5,1);lswap2(2,4);}
else {countOfCompare+=9; lswap5(0,5,1,4,2);}
else if(d[3]<=d[5]) if(d[0]<=d[5]) if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap5(0,3,5,2,1);}
else {countOfCompare+=9; lswap3(0,3,1);lswap2(2,5);}
else if(d[1]<=d[2]) {countOfCompare+=9; lswap4(0,3,4,1);lswap2(2,5);}
else {countOfCompare+=9; lswap6(0,3,4,2,5,1);}
else if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap5(0,3,1,5,2);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,3,4,1,5,2);}
else {countOfCompare+=10; lswap4(0,3,4,2);lswap2(1,5);}
else if(d[0]<=d[2]) if(d[1]<=d[2]) {countOfCompare+=10; lswap2(0,3);lswap4(1,5,2,4);}
else {countOfCompare+=10; lswap2(0,3);lswap2(1,5);lswap2(2,4);}
else {countOfCompare+=9; lswap4(0,3,2,4);lswap2(1,5);}
else if(d[1]<=d[2]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap3(0,5,2);lswap2(1,3);}
else {countOfCompare+=9; lswap3(0,5,2);lswap3(1,3,4);}
else if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,5,2,4,1,3);}
else {countOfCompare+=9; lswap4(0,5,2,3);lswap2(1,4);}
else if(d[0]<=d[2]) if(d[0]<=d[4]) {countOfCompare+=9; lswap6(0,5,1,3,4,2);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,5,1,3);lswap2(2,4);}
else {countOfCompare+=10; lswap6(0,5,1,4,2,3);}
else if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,5,1,3,2,4);}
else {countOfCompare+=9; lswap4(0,5,1,4);lswap2(2,3);}
else if(d[2]<=d[3]) if(d[4]<=d[5]) if(d[2]<=d[4]) if(d[0]<=d[3]) if(d[3]<=d[5]) if(d[1]<=d[2]) if(d[0]<=d[2]) if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,1);}
else {countOfCompare+=9; lswap2(0,1);lswap2(3,4);}
else if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,1,2);}
else {countOfCompare+=10; lswap3(0,1,2);lswap2(3,4);}
else {countOfCompare+=9; lswap5(0,1,2,4,3);}
else if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,2);}
else {countOfCompare+=9; lswap2(0,2);lswap2(3,4);}
else if(d[1]<=d[4]) {countOfCompare+=9; lswap4(0,2,4,3);}
else {countOfCompare+=9; lswap5(0,2,1,4,3);}
else if(d[0]<=d[5]) if(d[0]<=d[4]) if(d[0]<=d[2]) {countOfCompare+=9; lswap2(0,1);lswap3(3,4,5);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,1,2);lswap3(3,4,5);}
else {countOfCompare+=10; lswap2(0,2);lswap3(3,4,5);}
else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,1,2,4,5,3);}
else {countOfCompare+=10; lswap5(0,2,4,5,3);}
else {countOfCompare+=9; lswap6(0,2,1,4,5,3);}
else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=9; lswap4(0,1,2,4);lswap2(3,5);}
else {countOfCompare+=9; lswap3(0,2,4);lswap2(3,5);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,2,1,4);lswap2(3,5);}
else {countOfCompare+=9; lswap6(0,2,5,3,1,4);}
else if(d[3]<=d[4]) if(d[1]<=d[3]) if(d[1]<=d[2]) if(d[0]<=d[4]) {countOfCompare+=9; lswap4(0,1,2,3);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,1,2,3,4);}
else {countOfCompare+=10; lswap6(0,1,2,3,4,5);}
else if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,2,3);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,2,3,4);}
else {countOfCompare+=10; lswap5(0,2,3,4,5);}
else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap4(0,2,1,3);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,2,1,3,4);}
else {countOfCompare+=10; lswap6(0,2,1,3,4,5);}
else if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,2,4);lswap2(1,3);}
else {countOfCompare+=10; lswap4(0,2,4,5);lswap2(1,3);}
else {countOfCompare+=9; lswap6(0,2,4,1,3,5);}
else if(d[1]<=d[4]) if(d[1]<=d[2]) if(d[3]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,1,2,4);}
else {countOfCompare+=10; lswap5(0,1,2,4,5);}
else {countOfCompare+=9; lswap6(0,1,2,4,3,5);}
else if(d[3]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,2,4);}
else {countOfCompare+=10; lswap4(0,2,4,5);}
else {countOfCompare+=9; lswap5(0,2,4,3,5);}
else if(d[1]<=d[3]) if(d[3]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,2,1,4);}
else {countOfCompare+=10; lswap5(0,2,1,4,5);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,2,1,4,3,5);}
else {countOfCompare+=10; lswap3(0,2,5);lswap3(1,4,3);}
else if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,2,3,1,4);}
else {countOfCompare+=10; lswap6(0,2,3,1,4,5);}
else if(d[3]<=d[5]) {countOfCompare+=10; lswap4(0,2,3,5);lswap2(1,4);}
else {countOfCompare+=10; lswap3(0,2,5);lswap2(1,4);}
else if(d[0]<=d[3]) if(d[0]<=d[2]) if(d[2]<=d[5]) if(d[3]<=d[5]) if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap2(0,1);lswap3(2,4,3);}
else {countOfCompare+=10; lswap5(0,1,4,3,2);}
else {countOfCompare+=9; lswap4(0,4,3,2);}
else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap2(0,1);lswap4(2,4,5,3);}
else {countOfCompare+=10; lswap6(0,1,4,5,3,2);}
else {countOfCompare+=9; lswap5(0,4,5,3,2);}
else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap2(0,1);lswap2(2,4);lswap2(3,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,1,4,2);lswap2(3,5);}
else {countOfCompare+=10; lswap6(0,1,4,2,5,3);}
else if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,4,2);lswap2(3,5);}
else {countOfCompare+=10; lswap5(0,4,2,5,3);}
else {countOfCompare+=9; lswap6(0,4,2,1,5,3);}
else if(d[0]<=d[5]) if(d[3]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap4(0,1,4,3);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,4,3);}
else {countOfCompare+=10; lswap3(0,4,3);lswap2(1,2);}
else if(d[1]<=d[4]) {countOfCompare+=9; lswap5(0,1,4,5,3);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,4,5,3);}
else {countOfCompare+=10; lswap4(0,4,5,3);lswap2(1,2);}
else if(d[2]<=d[5]) if(d[1]<=d[2]) if(d[1]<=d[4]) {countOfCompare+=10; lswap3(0,1,4);lswap2(3,5);}
else {countOfCompare+=10; lswap2(0,4);lswap2(3,5);}
else if(d[1]<=d[5]) {countOfCompare+=10; lswap2(0,4);lswap2(1,2);lswap2(3,5);}
else {countOfCompare+=10; lswap2(0,4);lswap4(1,2,5,3);}
else if(d[1]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=10; lswap3(0,1,4);lswap3(2,5,3);}
else {countOfCompare+=10; lswap2(0,4);lswap3(2,5,3);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap2(0,4);lswap4(1,5,3,2);}
else {countOfCompare+=10; lswap2(0,4);lswap3(1,5,3);}
else if(d[3]<=d[5]) if(d[0]<=d[5]) if(d[1]<=d[2]) if(d[1]<=d[4]) {countOfCompare+=9; lswap3(0,1,4);}
else {countOfCompare+=9; lswap2(0,4);}
else if(d[1]<=d[3]) {countOfCompare+=9; lswap2(0,4);lswap2(1,2);}
else {countOfCompare+=9; lswap2(0,4);lswap3(1,2,3);}
else if(d[1]<=d[3]) if(d[1]<=d[4]) {countOfCompare+=9; lswap4(0,1,4,5);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,4,5);}
else {countOfCompare+=10; lswap3(0,4,5);lswap2(1,2);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap3(0,4,5);lswap3(1,2,3);}
else {countOfCompare+=9; lswap6(0,4,1,2,3,5);}
else if(d[2]<=d[5]) if(d[1]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap5(0,1,4,3,5);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,4,3,5);}
else {countOfCompare+=10; lswap4(0,4,3,5);lswap2(1,2);}
else if(d[1]<=d[3]) {countOfCompare+=9; lswap6(0,4,3,1,2,5);}
else {countOfCompare+=9; lswap5(0,4,1,2,5);}
else if(d[1]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap6(0,1,4,3,2,5);}
else {countOfCompare+=9; lswap5(0,4,3,2,5);}
else if(d[1]<=d[3]) if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,4,3,2,1,5);}
else {countOfCompare+=10; lswap5(0,4,3,1,5);}
else {countOfCompare+=9; lswap4(0,4,1,5);}
else if(d[0]<=d[3]) if(d[2]<=d[5]) if(d[0]<=d[5]) if(d[0]<=d[2]) if(d[3]<=d[5]) {countOfCompare+=8; lswap2(0,1);lswap2(4,5);}
else if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,1);lswap3(3,5,4);}
else {countOfCompare+=9; lswap2(0,1);lswap2(3,5);}
else if(d[1]<=d[2]) if(d[3]<=d[5]) {countOfCompare+=9; lswap3(0,1,2);lswap2(4,5);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,1,2);lswap3(3,5,4);}
else {countOfCompare+=10; lswap3(0,1,2);lswap2(3,5);}
else if(d[3]<=d[5]) {countOfCompare+=9; lswap2(0,2);lswap2(4,5);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,2);lswap3(3,5,4);}
else {countOfCompare+=10; lswap2(0,2);lswap2(3,5);}
else if(d[0]<=d[4]) if(d[3]<=d[4]) if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,1,2,5,4,3);}
else {countOfCompare+=10; lswap5(0,2,5,4,3);}
else {countOfCompare+=9; lswap6(0,2,1,5,4,3);}
else if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=10; lswap5(0,1,2,5,3);}
else {countOfCompare+=10; lswap4(0,2,5,3);}
else {countOfCompare+=9; lswap5(0,2,1,5,3);}
else if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=9; lswap6(0,1,2,5,3,4);}
else {countOfCompare+=9; lswap5(0,2,5,3,4);}
else if(d[1]<=d[4]) {countOfCompare+=9; lswap6(0,2,1,5,3,4);}
else {countOfCompare+=9; lswap3(0,2,4);lswap3(1,5,3);}
else if(d[0]<=d[2]) if(d[2]<=d[4]) if(d[3]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap4(2,5,4,3);}
else {countOfCompare+=10; lswap6(0,1,5,4,3,2);}
else {countOfCompare+=9; lswap5(0,5,4,3,2);}
else if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap3(2,5,3);}
else {countOfCompare+=10; lswap5(0,1,5,3,2);}
else {countOfCompare+=9; lswap4(0,5,3,2);}
else if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap4(2,5,3,4);}
else {countOfCompare+=10; lswap6(0,1,5,3,4,2);}
else {countOfCompare+=9; lswap5(0,5,3,4,2);}
else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap4(0,1,5,3);lswap2(2,4);}
else {countOfCompare+=10; lswap3(0,5,3);lswap2(2,4);}
else {countOfCompare+=9; lswap3(0,5,3);lswap3(1,4,2);}
else if(d[0]<=d[4]) if(d[3]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap5(0,1,5,4,3);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,5,4,3);}
else {countOfCompare+=10; lswap4(0,5,4,3);lswap2(1,2);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,1,5,3);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,5,3);}
else {countOfCompare+=10; lswap3(0,5,3);lswap2(1,2);}
else if(d[2]<=d[4]) if(d[1]<=d[2]) if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,1,5,3,4);}
else {countOfCompare+=10; lswap4(0,5,3,4);}
else if(d[1]<=d[4]) {countOfCompare+=10; lswap4(0,5,3,4);lswap2(1,2);}
else {countOfCompare+=10; lswap6(0,5,3,1,2,4);}
else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,1,5,3,2,4);}
else {countOfCompare+=10; lswap5(0,5,3,2,4);}
else if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,5,3,2,1,4);}
else {countOfCompare+=10; lswap5(0,5,3,1,4);}
else if(d[2]<=d[5]) if(d[3]<=d[5]) if(d[1]<=d[3]) if(d[1]<=d[2]) if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,1,2,3);lswap2(4,5);}
else {countOfCompare+=10; lswap6(0,1,2,3,5,4);}
else {countOfCompare+=9; lswap5(0,1,2,3,5);}
else if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,2,3);lswap2(4,5);}
else {countOfCompare+=10; lswap5(0,2,3,5,4);}
else {countOfCompare+=9; lswap4(0,2,3,5);}
else if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,2,1,3);lswap2(4,5);}
else {countOfCompare+=10; lswap6(0,2,1,3,5,4);}
else {countOfCompare+=9; lswap4(0,2,5,4);lswap2(1,3);}
else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,2,1,3,5);}
else {countOfCompare+=10; lswap3(0,2,5);lswap2(1,3);}
else {countOfCompare+=9; lswap3(0,2,5);lswap3(1,3,4);}
else if(d[1]<=d[5]) if(d[1]<=d[2]) if(d[0]<=d[4]) {countOfCompare+=9; lswap5(0,1,2,5,4);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,1,2,5);}
else {countOfCompare+=10; lswap4(0,1,2,5);lswap2(3,4);}
else if(d[0]<=d[4]) {countOfCompare+=9; lswap4(0,2,5,4);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,2,5);}
else {countOfCompare+=10; lswap3(0,2,5);lswap2(3,4);}
else if(d[1]<=d[3]) if(d[3]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap5(0,2,1,5,4);}
else {countOfCompare+=10; lswap4(0,2,1,5);}
else if(d[1]<=d[4]) {countOfCompare+=10; lswap4(0,2,1,5);lswap2(3,4);}
else {countOfCompare+=10; lswap6(0,2,4,3,1,5);}
else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap6(0,2,3,1,5,4);}
else {countOfCompare+=10; lswap5(0,2,3,1,5);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,2,3,4,1,5);}
else {countOfCompare+=10; lswap5(0,2,4,1,5);}
else if(d[1]<=d[2]) if(d[1]<=d[5]) if(d[3]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap4(0,1,5,4);}
else {countOfCompare+=9; lswap3(0,1,5);}
else if(d[2]<=d[4]) {countOfCompare+=9; lswap3(0,1,5);lswap2(3,4);}
else {countOfCompare+=9; lswap3(0,1,5);lswap3(2,4,3);}
else if(d[2]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,5,4);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,5);}
else {countOfCompare+=10; lswap2(0,5);lswap2(3,4);}
else if(d[1]<=d[4]) {countOfCompare+=9; lswap2(0,5);lswap3(2,4,3);}
else {countOfCompare+=9; lswap2(0,5);lswap4(1,4,3,2);}
else if(d[1]<=d[3]) if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,5,4);lswap2(1,2);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,5);lswap2(1,2);}
else {countOfCompare+=10; lswap2(0,5);lswap2(1,2);lswap2(3,4);}
else if(d[2]<=d[4]) {countOfCompare+=9; lswap2(0,5);lswap4(1,2,4,3);}
else {countOfCompare+=9; lswap2(0,5);lswap3(1,4,3);}
else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,5,4);lswap3(1,2,3);}
else {countOfCompare+=9; lswap2(0,5);lswap3(1,2,3);}
else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,5);lswap4(1,2,3,4);}
else {countOfCompare+=10; lswap2(0,5);lswap3(1,2,4);}
else {countOfCompare+=9; lswap2(0,5);lswap2(1,4);}
else if(d[4]<=d[5]) if(d[0]<=d[2]) if(d[1]<=d[4]) if(d[0]<=d[4]) if(d[0]<=d[3]) if(d[2]<=d[5]) if(d[2]<=d[4]) {countOfCompare+=9; lswap2(0,1);lswap2(2,3);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,1);lswap3(2,3,4);}
else {countOfCompare+=10; lswap2(0,1);lswap2(2,4);}
else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,1);lswap4(2,3,4,5);}
else {countOfCompare+=10; lswap2(0,1);lswap3(2,4,5);}
else {countOfCompare+=9; lswap2(0,1);lswap4(2,4,3,5);}
else if(d[1]<=d[3]) if(d[2]<=d[4]) {countOfCompare+=9; lswap4(0,1,3,2);}
else if(d[2]<=d[5]) {countOfCompare+=10; lswap5(0,1,3,4,2);}
else {countOfCompare+=10; lswap6(0,1,3,4,5,2);}
else if(d[2]<=d[4]) {countOfCompare+=9; lswap3(0,3,2);}
else if(d[2]<=d[5]) {countOfCompare+=10; lswap4(0,3,4,2);}
else {countOfCompare+=10; lswap5(0,3,4,5,2);}
else if(d[3]<=d[4]) if(d[1]<=d[3]) if(d[2]<=d[5]) {countOfCompare+=9; lswap3(0,1,3);lswap2(2,4);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,1,3);lswap3(2,4,5);}
else {countOfCompare+=10; lswap6(0,1,3,5,2,4);}
else if(d[2]<=d[5]) {countOfCompare+=9; lswap2(0,3);lswap2(2,4);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,3);lswap3(2,4,5);}
else {countOfCompare+=10; lswap5(0,3,5,2,4);}
else if(d[0]<=d[3]) if(d[3]<=d[5]) if(d[2]<=d[5]) {countOfCompare+=10; lswap4(0,1,4,2);}
else {countOfCompare+=10; lswap5(0,1,4,5,2);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,1,4,3,5,2);}
else {countOfCompare+=10; lswap4(0,1,4,3);lswap2(2,5);}
else if(d[0]<=d[5]) if(d[2]<=d[5]) {countOfCompare+=10; lswap5(0,1,4,2,3);}
else {countOfCompare+=10; lswap6(0,1,4,5,2,3);}
else if(d[3]<=d[5]) {countOfCompare+=10; lswap3(0,1,4);lswap3(2,3,5);}
else {countOfCompare+=10; lswap3(0,1,4);lswap2(2,5);}
else if(d[1]<=d[3]) if(d[3]<=d[5]) if(d[0]<=d[3]) if(d[2]<=d[5]) {countOfCompare+=9; lswap3(0,4,2);}
else {countOfCompare+=9; lswap4(0,4,5,2);}
else if(d[2]<=d[5]) {countOfCompare+=9; lswap4(0,4,2,3);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,4,5,2,3);}
else {countOfCompare+=10; lswap2(0,4);lswap3(2,3,5);}
else if(d[0]<=d[3]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,4,3,5,2);}
else {countOfCompare+=10; lswap3(0,4,3);lswap2(2,5);}
else {countOfCompare+=9; lswap3(0,4,3);lswap3(1,5,2);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,4);lswap2(2,5);}
else {countOfCompare+=9; lswap2(0,4);lswap3(1,5,2);}
else if(d[0]<=d[5]) if(d[2]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,3);lswap3(1,4,2);}
else {countOfCompare+=9; lswap5(0,4,2,1,3);}
else if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,3);lswap4(1,4,5,2);}
else {countOfCompare+=9; lswap6(0,4,5,2,1,3);}
else if(d[1]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,3,5,2,1,4);}
else {countOfCompare+=9; lswap2(0,4);lswap4(1,3,5,2);}
else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,3,1,4);lswap2(2,5);}
else {countOfCompare+=10; lswap2(0,4);lswap2(1,3);lswap2(2,5);}
else {countOfCompare+=9; lswap2(0,4);lswap4(1,5,2,3);}
else if(d[1]<=d[4]) if(d[1]<=d[3]) if(d[0]<=d[5]) if(d[2]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,1,3);}
else {countOfCompare+=9; lswap4(0,1,3,4);}
else if(d[3]<=d[4]) {countOfCompare+=9; lswap5(0,1,3,2,4);}
else {countOfCompare+=9; lswap3(0,1,4);lswap2(2,3);}
else if(d[2]<=d[5]) if(d[2]<=d[4]) {countOfCompare+=9; lswap5(0,1,3,4,5);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,1,3,2,4,5);}
else {countOfCompare+=10; lswap4(0,1,4,5);lswap2(2,3);}
else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,1,3,5);lswap2(2,4);}
else {countOfCompare+=10; lswap6(0,1,4,2,3,5);}
else {countOfCompare+=9; lswap5(0,1,4,2,5);}
else if(d[0]<=d[5]) if(d[0]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=9; lswap2(0,3);}
else {countOfCompare+=9; lswap2(0,3);lswap2(1,2);}
else if(d[2]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,3,4);}
else {countOfCompare+=10; lswap3(0,3,4);lswap2(1,2);}
else {countOfCompare+=9; lswap4(0,3,2,4);}
else if(d[2]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=9; lswap4(0,3,4,5);}
else {countOfCompare+=9; lswap4(0,3,4,5);lswap2(1,2);}
else if(d[2]<=d[5]) {countOfCompare+=9; lswap5(0,3,2,4,5);}
else {countOfCompare+=9; lswap3(0,3,5);lswap2(2,4);}
else if(d[1]<=d[2]) if(d[2]<=d[5]) if(d[0]<=d[5]) if(d[1]<=d[3]) {countOfCompare+=9; lswap2(0,4);lswap2(2,3);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap5(0,3,2,1,4);}
else {countOfCompare+=10; lswap2(0,4);lswap3(1,3,2);}
else if(d[1]<=d[3]) {countOfCompare+=9; lswap3(0,4,5);lswap2(2,3);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,3,2,1,4,5);}
else {countOfCompare+=10; lswap3(0,4,5);lswap3(1,3,2);}
else if(d[1]<=d[5]) if(d[1]<=d[3]) if(d[3]<=d[5]) {countOfCompare+=10; lswap5(0,4,2,3,5);}
else {countOfCompare+=10; lswap4(0,4,2,5);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,3,5);lswap3(1,4,2);}
else {countOfCompare+=10; lswap6(0,4,2,1,3,5);}
else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,3,1,4,2,5);}
else {countOfCompare+=10; lswap4(0,4,2,5);lswap2(1,3);}
else if(d[1]<=d[3]) {countOfCompare+=10; lswap5(0,4,2,1,5);}
else {countOfCompare+=10; lswap6(0,4,2,3,1,5);}
else if(d[1]<=d[5]) if(d[0]<=d[5]) if(d[2]<=d[4]) {countOfCompare+=9; lswap5(0,3,1,2,4);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,3,1,4);}
else {countOfCompare+=10; lswap2(0,4);lswap2(1,3);}
else if(d[2]<=d[4]) {countOfCompare+=9; lswap6(0,3,1,2,4,5);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap5(0,3,1,4,5);}
else {countOfCompare+=10; lswap3(0,4,5);lswap2(1,3);}
else if(d[2]<=d[5]) if(d[2]<=d[4]) {countOfCompare+=9; lswap3(0,3,5);lswap3(1,2,4);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,3,5);lswap2(1,4);}
else {countOfCompare+=10; lswap5(0,4,1,3,5);}
else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,3,2,5);lswap2(1,4);}
else {countOfCompare+=10; lswap6(0,4,1,3,2,5);}
else {countOfCompare+=9; lswap4(0,4,1,5);lswap2(2,3);}
else if(d[0]<=d[2]) if(d[3]<=d[5]) if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[0]<=d[3]) if(d[2]<=d[5]) {countOfCompare+=9; lswap2(0,1);lswap2(2,3);lswap2(4,5);}
else {countOfCompare+=9; lswap2(0,1);lswap4(2,3,5,4);}
else if(d[2]<=d[5]) {countOfCompare+=9; lswap4(0,1,3,2);lswap2(4,5);}
else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,1,3,5,4,2);}
else {countOfCompare+=10; lswap3(0,1,3);lswap3(2,5,4);}
else if(d[0]<=d[5]) if(d[0]<=d[3]) {countOfCompare+=9; lswap2(0,1);lswap3(2,3,5);}
else {countOfCompare+=9; lswap5(0,1,3,5,2);}
else if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,1,3);lswap2(2,5);}
else {countOfCompare+=9; lswap4(0,1,3,4);lswap2(2,5);}
else if(d[2]<=d[4]) if(d[0]<=d[5]) if(d[2]<=d[5]) {countOfCompare+=9; lswap3(0,3,2);lswap2(4,5);}
else {countOfCompare+=9; lswap5(0,3,5,4,2);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,3);lswap3(2,5,4);}
else {countOfCompare+=9; lswap2(0,3);lswap4(1,5,4,2);}
else if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,3,5,2);}
else {countOfCompare+=10; lswap2(0,3);lswap2(2,5);}
else {countOfCompare+=9; lswap2(0,3);lswap3(1,5,2);}
else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap3(0,3,4);lswap2(2,5);}
else {countOfCompare+=10; lswap3(0,3,4);lswap3(1,5,2);}
else {countOfCompare+=9; lswap6(0,3,1,5,2,4);}
else if(d[0]<=d[3]) if(d[3]<=d[4]) if(d[2]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap3(2,5,4);}
else {countOfCompare+=10; lswap5(0,1,5,4,2);}
else {countOfCompare+=9; lswap4(0,5,4,2);}
else if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap2(2,5);}
else {countOfCompare+=10; lswap4(0,1,5,2);}
else {countOfCompare+=9; lswap3(0,5,2);}
else if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap2(2,5);lswap2(3,4);}
else {countOfCompare+=10; lswap4(0,1,5,2);lswap2(3,4);}
else {countOfCompare+=9; lswap3(0,5,2);lswap2(3,4);}
else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,1,5,2,4,3);}
else {countOfCompare+=10; lswap5(0,5,2,4,3);}
else {countOfCompare+=9; lswap6(0,5,2,1,4,3);}
else if(d[0]<=d[4]) if(d[2]<=d[4]) if(d[1]<=d[3]) if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,1,5,4,2,3);}
else {countOfCompare+=10; lswap5(0,5,4,2,3);}
else {countOfCompare+=9; lswap6(0,5,4,2,1,3);}
else if(d[1]<=d[3]) if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,1,5,2,3);}
else {countOfCompare+=10; lswap4(0,5,2,3);}
else {countOfCompare+=9; lswap5(0,5,2,1,3);}
else if(d[3]<=d[4]) if(d[1]<=d[3]) if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,1,5,2,3,4);}
else {countOfCompare+=10; lswap5(0,5,2,3,4);}
else if(d[1]<=d[4]) {countOfCompare+=10; lswap6(0,5,2,1,3,4);}
else {countOfCompare+=10; lswap4(0,5,2,4);lswap2(1,3);}
else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,1,5,2,4);}
else {countOfCompare+=10; lswap4(0,5,2,4);}
else if(d[1]<=d[3]) {countOfCompare+=10; lswap5(0,5,2,1,4);}
else {countOfCompare+=10; lswap6(0,5,2,3,1,4);}
else if(d[3]<=d[5]) if(d[2]<=d[5]) if(d[1]<=d[2]) if(d[1]<=d[3]) if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,1,3);lswap2(4,5);}
else {countOfCompare+=10; lswap5(0,1,3,5,4);}
else {countOfCompare+=9; lswap4(0,1,3,5);}
else if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,3);lswap2(4,5);}
else {countOfCompare+=10; lswap4(0,3,5,4);}
else {countOfCompare+=9; lswap3(0,3,5);}
else if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,3);lswap2(1,2);lswap2(4,5);}
else {countOfCompare+=10; lswap4(0,3,5,4);lswap2(1,2);}
else {countOfCompare+=9; lswap6(0,3,1,2,5,4);}
else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap3(0,3,5);lswap2(1,2);}
else {countOfCompare+=10; lswap5(0,3,1,2,5);}
else {countOfCompare+=9; lswap6(0,3,4,1,2,5);}
else if(d[1]<=d[5]) if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap6(0,1,3,2,5,4);}
else {countOfCompare+=10; lswap5(0,1,3,2,5);}
else {countOfCompare+=9; lswap6(0,1,3,4,2,5);}
else if(d[2]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap5(0,3,2,5,4);}
else {countOfCompare+=10; lswap4(0,3,2,5);}
else {countOfCompare+=9; lswap5(0,3,4,2,5);}
else if(d[1]<=d[2]) if(d[2]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap6(0,3,2,1,5,4);}
else {countOfCompare+=10; lswap5(0,3,2,1,5);}
else if(d[1]<=d[4]) {countOfCompare+=10; lswap6(0,3,4,2,1,5);}
else {countOfCompare+=10; lswap4(0,3,1,5);lswap2(2,4);}
else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap5(0,3,1,5,4);}
else {countOfCompare+=10; lswap4(0,3,1,5);}
else if(d[2]<=d[4]) {countOfCompare+=10; lswap5(0,3,4,1,5);}
else {countOfCompare+=10; lswap6(0,3,2,4,1,5);}
else if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[0]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,1,5,4);lswap2(2,3);}
else {countOfCompare+=9; lswap3(0,5,4);lswap2(2,3);}
else if(d[1]<=d[5]) {countOfCompare+=9; lswap3(0,1,5);lswap2(2,3);}
else {countOfCompare+=9; lswap2(0,5);lswap2(2,3);}
else if(d[1]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=9; lswap3(0,1,5);lswap3(2,3,4);}
else {countOfCompare+=9; lswap3(0,1,5);lswap2(2,4);}
else if(d[1]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,5);lswap3(2,3,4);}
else {countOfCompare+=10; lswap2(0,5);lswap2(2,4);}
else {countOfCompare+=9; lswap2(0,5);lswap3(1,4,2);}
else if(d[2]<=d[4]) if(d[0]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=9; lswap3(0,5,4);lswap3(1,3,2);}
else {countOfCompare+=9; lswap3(0,5,4);lswap2(1,3);}
else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap2(0,5);lswap3(1,3,2);}
else {countOfCompare+=10; lswap2(0,5);lswap2(1,3);}
else {countOfCompare+=9; lswap2(0,5);lswap3(1,3,4);}
else if(d[1]<=d[2]) if(d[1]<=d[4]) {countOfCompare+=9; lswap2(0,5);lswap4(1,3,4,2);}
else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,5);lswap2(1,3);lswap2(2,4);}
else {countOfCompare+=10; lswap2(0,5);lswap4(1,4,2,3);}
else if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,5);lswap4(1,3,2,4);}
else {countOfCompare+=9; lswap2(0,5);lswap2(1,4);lswap2(2,3);}
return 1;
}
//test for all 6 elements data
#define TESTELEMENTS 6
long int accCountOfCompare=0;
long int accCountOfMove=0;
int accCountOfTest=0;
int evalData(unsigned int orgData[]){
unsigned int verifyData[TESTELEMENTS];
int i;
int rc=0;
for(i=0;i<TESTELEMENTS;i++) verifyData[i]=orgData[i];
countOfMove=0; //debug
countOfCompare=0; //debug
sort6l(verifyData);
for(i=1;i<TESTELEMENTS;i++){
if(verifyData[i-1] >verifyData[i]) {
printf("failed to sort !!\t"); rc=2;
break;
}
}
accCountOfTest +=1; //debug
accCountOfCompare += countOfCompare; //debug
accCountOfMove += countOfMove; //debug
if(rc>0) {
int j;
for(j
=0;j
<TESTELEMENTS
;j
++)printf("%c",orgData
[j
]); printf(" compare Count=%d,move count=%d,\t",countOfCompare
,countOfMove
); for(j
=0;j
<TESTELEMENTS
;j
++)printf("%c",verifyData
[j
]); }
return rc;
}
//順列生成しながらテストする
int testByGenPerm(unsigned int testData[]){
int i,k,c[TESTELEMENTS+1];
for(i=0;i<=TESTELEMENTS;i++) c[i]=i;
k=1;
while(k < TESTELEMENTS){
if(k & 1) i=c[k]; else i=0;
{unsigned int w;w=testData[k];testData[k]=testData[i];testData[i]=w;}
evalData(testData);
k=1;
while(c[k]==0) {c[k]=k;k++;}
c[k]--;
}
return 0;
}
//メイン
int main(){
unsigned int testData[TESTELEMENTS];
unsigned int testValue;
unsigned int verifyValue,verifyCount;
for (testValue=0;testValue<=0x001f;testValue+=1){
testData[0]=(testValue & 1)?1:0;
testData[1]=(testValue & 2)?1:0;
testData[2]=(testValue & 4)?1:0;
testData[3]=(testValue & 8)?1:0;
testData[4]=(testValue & 0x10)?1:0;
testData[5]=(testValue & 0x20)?1:0;
verifyCount=testData[0]+testData[1]+testData[2]+testData[3]+testData[4]+testData[5];
sort6l(testData);
verifyValue=testData[0] + testData[1]*2 + testData[2]*4 + testData[3]*8 + testData[4]*0x10 +testData[5]* 0x20;
if(!(verifyValue == ((verifyCount)?(0x3f &(0x1fc0 >>verifyCount)):0))) { //failed to sort
printf("failed for testValue=0x%2x -> verifyValue=0x%2x \n",testValue
,verifyValue
); return 2;
}
}
accCountOfTest = 0;
accCountOfCompare = 0;
accCountOfMove = 0;
clock_t time_at_start
=clock(); for(int it=0;it<testIterates;it++){//easy test
testData[0]=('a' <<8 ) +'p';
testData[1]=('b' <<8 ) +'q';
testData[2]=('c' <<8 ) +'r';
testData[3]=('d' <<8 ) +'s';
testData[4]=('e' <<8 ) +'t';
testData[5]=('f' <<8 ) +'u';
testByGenPerm(testData);
}
clock_t time_at_end
=clock(); printf("## test count=%d\t",accCountOfTest
); printf("## average Compares=%6.2f\t",((float)accCountOfCompare
)/accCountOfTest
); printf("## average Moves=%6.2f\n",((float)accCountOfMove
)/accCountOfTest
); printf("## excuted time=%10.6f Nsec \n", (time_at_end - time_at_start) / (double)CLOCKS_PER_SEC *1000000/accCountOfTest);
return 0;
}
Ly/jgIBiaXRuaWMgc29ydCBmb3IgNiBlbGVtZW50cwojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHRpbWUuaD4KI2RlZmluZSB0ZXN0SXRlcmF0ZXMgNTAwMDAKaW50IGNvdW50T2ZDb21wYXJlPTA7CmludCBjb3VudE9mTW92ZT0wOwogCiNkZWZpbmUgbHN3YXAyKHAscSkgICAgIHt3PWRbcF07ZFtwXT1kW3FdO2RbcV09dztjb3VudE9mTW92ZSArPTM7fQojZGVmaW5lIGxzd2FwMyhwLHEscikgICB7dz1kW3BdO2RbcF09ZFtxXTtkW3FdPWRbcl07ZFtyXT13O2NvdW50T2ZNb3ZlKz00O30KI2RlZmluZSBsc3dhcDQocCxxLHIscykge3c9ZFtwXTtkW3BdPWRbcV07ZFtxXT1kW3JdO2Rbcl09ZFtzXTtkW3NdPXc7Y291bnRPZk1vdmUrPTU7fQojZGVmaW5lIGxzd2FwNShwLHEscixzLHQpIHt3PWRbcF07ZFtwXT1kW3FdO2RbcV09ZFtyXTtkW3JdPWRbc107ZFtzXT1kW3RdO2RbdF09dztjb3VudE9mTW92ZSs9Njt9CiNkZWZpbmUgbHN3YXA2KHAscSxyLHMsdCx1KSB7dz1kW3BdO2RbcF09ZFtxXTtkW3FdPWRbcl07ZFtyXT1kW3NdO2Rbc109ZFt0XTtkW3RdPWRbdV07ZFt1XT13O2NvdW50T2ZNb3ZlKz03O30KIAppbnQgc29ydDZsKHVuc2lnbmVkIGludCAqZCl7CnVuc2lnbmVkIGludCB3OwppZihkWzBdPD1kWzFdKSBpZihkWzJdPD1kWzNdKSBpZihkWzRdPD1kWzVdKSBpZihkWzBdPD1kWzJdKSBpZihkWzNdPD1kWzVdKSBpZihkWzFdPD1kWzNdKSBpZihkWzJdPD1kWzRdKSBpZihkWzFdPD1kWzJdKSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7ICAgIHJldHVybiAwO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDMsNCk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs0XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDEsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDEsMik7bHN3YXAyKDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMSwyLDQsMyk7fQoJIGVsc2UgaWYoZFswXTw9ZFs0XSkgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMiw0LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgxLDQsMywyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMSw0LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsNCwzLDIsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw0LDMsMSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkgaWYoZFsxXTw9ZFs1XSkgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMSwyLDMpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgxLDIsMyw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMSwyLDQpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDEsMiwzLDQsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMSwyLDQsNSk7fQoJIGVsc2UgaWYoZFswXTw9ZFs0XSkgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygxLDQsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCw0LDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsNCw1LDEpO30KCSBlbHNlIGlmKGRbMl08PWRbNV0pIGlmKGRbMV08PWRbNV0pIGlmKGRbMV08PWRbMl0pIGlmKGRbMV08PWRbNF0pIGlmKGRbMl08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygzLDQsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDIsNCw1LDMpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgxLDQsNSwzLDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDQsNSwzLDIsMSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDEsMik7bHN3YXAzKDMsNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMSwyLDQsNSwzKTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMSw0LDUsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNCw1LDMsMSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFszXSkgaWYoZFsyXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMSwyLDQpO2xzd2FwMigzLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigxLDQpO2xzd2FwMigzLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDQsMSk7bHN3YXAyKDMsNSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMSwyLDQsMyw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMSw0LDMsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNCwzLDUsMSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFsyXSkgaWYoZFswXTw9ZFs0XSkgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMiw0KTtsc3dhcDIoMyw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMSw0LDIpO2xzd2FwMigzLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgxLDQsMiw1LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsNCwyLDEpO2xzd2FwMigzLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDQsMiw1LDMsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsNCwyKTtsc3dhcDMoMSw1LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbM10pIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDEsNCk7bHN3YXAzKDIsNSwzKTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCw0LDEpO2xzd2FwMygyLDUsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsNCwxLDUsMywyKTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgxLDQsMywyLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDQsMywyLDUsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsNCwzLDIpO2xzd2FwMigxLDUpO30KCSBlbHNlIGlmKGRbM108PWRbNV0pIGlmKGRbMF08PWRbM10pIGlmKGRbMF08PWRbNF0pIGlmKGRbM108PWRbNF0pIGlmKGRbMV08PWRbNF0pIGlmKGRbMV08PWRbM10pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDIsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMiwzLDEpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDIsMyw0LDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDIsMyw0LDUsMSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFszXSkgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMiwxKTtsc3dhcDIoMyw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwyLDQsMywxKTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwyLDQsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMiw0LDUsMSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkgaWYoZFsxXTw9ZFszXSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwyKTtsc3dhcDMoMSw0LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDIpO2xzd2FwMigxLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDIpO2xzd2FwMygxLDQsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFszXSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMCw0LDMsMSwyKTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCw0LDEsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNCw1LDEsMik7fQoJIGVsc2UgaWYoZFszXTw9ZFs0XSkgaWYoZFswXTw9ZFs0XSkgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwyKTtsc3dhcDIoMSwzKTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwyKTtsc3dhcDMoMSwzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDIpO2xzd2FwNCgxLDMsNCw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDIsNCwxLDMpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDIsNCw1LDEsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMiw0KTtsc3dhcDMoMSwzLDUpO30KCSBlbHNlIGlmKGRbMl08PWRbNF0pIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsMiwzKTtsc3dhcDIoMSw0KTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwyLDMpO2xzd2FwMygxLDQsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMiwzLDUsMSw0KTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDQsMSwyLDMpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDQsNSwxLDIsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsNCk7bHN3YXA0KDEsMiwzLDUpO30KCSBlbHNlIGlmKGRbMV08PWRbM10pIGlmKGRbMl08PWRbNF0pIGlmKGRbMF08PWRbNF0pIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsMiwxKTtsc3dhcDMoMyw0LDUpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDIsNCw1LDMsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMiw0LDEpO2xzd2FwMigzLDUpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsMik7bHN3YXA0KDEsNCw1LDMpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDIpO2xzd2FwMigxLDQpO2xzd2FwMigzLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDIsNSwzKTtsc3dhcDIoMSw0KTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDQsNSwzLDEsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw0LDEsMik7bHN3YXAyKDMsNSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCw0LDEsMiw1LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsNCwxLDUsMyk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkgaWYoZFswXTw9ZFs1XSkgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCwyLDQsMyw1LDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsMik7bHN3YXA0KDEsNCwzLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbM10pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsMiw1LDEsNCwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDIsNSwxLDQpO30KCSBlbHNlIGlmKGRbMF08PWRbM10pIGlmKGRbMl08PWRbNV0pIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDQsMyw1LDEsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsNCwzKTtsc3dhcDMoMSwyLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsNCwzKTtsc3dhcDIoMSw1KTt9CgkgZWxzZSBpZihkWzJdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDQpO2xzd2FwMygxLDIsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCw0KTtsc3dhcDIoMSw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzJdKSBpZihkWzFdPD1kWzRdKSBpZihkWzFdPD1kWzJdKSBpZihkWzFdPD1kWzVdKSBpZihkWzJdPD1kWzVdKSBpZihkWzNdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMig0LDUpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygzLDUsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDMsNSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDIsNSw0LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygyLDUsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMiw1LDMsNCk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkgaWYoZFsyXTw9ZFs0XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDEsNSw0LDMsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDEsNSwzLDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDEsNSwzLDQsMik7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsNSw0LDMsMiwxKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCw1LDMsMiwxKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDUsMyw0LDIsMSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs1XSkgaWYoZFsxXTw9ZFs1XSkgaWYoZFszXTw9ZFs1XSkgaWYoZFsxXTw9ZFszXSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDEsMik7bHN3YXAyKDQsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDEsMiwzKTtsc3dhcDIoNCw1KTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMSwyKTtsc3dhcDMoMyw1LDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigxLDIpO2xzd2FwMigzLDUpO30KCSBlbHNlIGlmKGRbMV08PWRbM10pIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgxLDIsNSw0LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgxLDIsNSwzKTt9CgkgZWxzZSBpZihkWzNdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMSwyLDMsNSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMSwyLDUsNCk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkgaWYoZFsxXTw9ZFszXSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDEsNSw0LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygxLDUsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMSw1LDQpO30KCSBlbHNlIGlmKGRbMV08PWRbM10pIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDUsNCwzLDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDUsMywxKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDUsNCwxKTt9CgkgZWxzZSBpZihkWzFdPD1kWzNdKSBpZihkWzBdPD1kWzVdKSBpZihkWzJdPD1kWzRdKSBpZihkWzJdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgxLDIsNSwzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDEsNSwzLDQpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDEsNSwzKTtsc3dhcDIoMiw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgxLDUsMywyLDQpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIGlmKGRbMl08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsNSwzLDQsMSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFsyXSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsNSwzLDEpO2xzd2FwMigyLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDUsMywyLDQsMSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFsyXSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCw1LDMsMSw0LDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsNSwzLDIpO2xzd2FwMigxLDQpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIGlmKGRbMl08PWRbNV0pIGlmKGRbM108PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDEsMiwzLDUpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygxLDIsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDEsMiw1KTtsc3dhcDIoMyw0KTt9CgkgZWxzZSBpZihkWzJdPD1kWzRdKSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMSw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMSw1KTtsc3dhcDIoMyw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigxLDUpO2xzd2FwMygyLDQsMyk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCw1LDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsNSwxKTtsc3dhcDIoMyw0KTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDUsMSk7bHN3YXAzKDIsNCwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDUsMSw0LDMsMik7fQoJIGVsc2UgaWYoZFsxXTw9ZFs0XSkgaWYoZFsxXTw9ZFszXSkgaWYoZFswXTw9ZFs1XSkgaWYoZFsxXTw9ZFs1XSkgaWYoZFszXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCwyLDEpO2xzd2FwMig0LDUpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDIsMSk7bHN3YXAzKDMsNSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwyLDEpO2xzd2FwMigzLDUpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsMiw1LDQsMywxKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDIsNSwzLDEpO30KCSBlbHNlIGlmKGRbMl08PWRbNV0pIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsMik7bHN3YXA0KDEsNSw0LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsMik7bHN3YXAzKDEsNSwzKTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDUsNCwzLDEsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMCw1LDMsMSwyKTt9CgkgZWxzZSBpZihkWzNdPD1kWzVdKSBpZihkWzBdPD1kWzNdKSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDIsMywxKTtsc3dhcDIoNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDIsMyw1LDQsMSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwyKTtsc3dhcDIoMSwzKTtsc3dhcDIoNCw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwyKTtsc3dhcDQoMSwzLDUsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMiw1LDQsMSwzKTt9CgkgZWxzZSBpZihkWzBdPD1kWzNdKSBpZihkWzJdPD1kWzVdKSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwyLDUsNCwxKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwyKTtsc3dhcDMoMSw1LDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsNSw0LDEsMik7fQoJIGVsc2UgaWYoZFsyXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCwyLDMpO2xzd2FwMygxLDUsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCw1LDQsMSwyLDMpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIGlmKGRbM108PWRbNF0pIGlmKGRbMF08PWRbM10pIGlmKGRbMF08PWRbNV0pIGlmKGRbM108PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDIsMyw1LDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDIsNSwxKTt9CgkgZWxzZSBpZihkWzJdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwyKTtsc3dhcDIoMSw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCw1LDEsMik7fQoJIGVsc2UgaWYoZFszXTw9ZFs1XSkgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMik7bHN3YXAzKDEsMyw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwyLDUsMSwzKTt9CgkgZWxzZSBpZihkWzJdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwyLDMpO2xzd2FwMigxLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDUsMSwyLDMpO30KCSBlbHNlIGlmKGRbMV08PWRbM10pIGlmKGRbMl08PWRbNV0pIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDIsNSwzLDQsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMik7bHN3YXA0KDEsNSwzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsNSwzLDQsMSwyKTt9CgkgZWxzZSBpZihkWzJdPD1kWzVdKSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwyLDUsMSk7bHN3YXAyKDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMik7bHN3YXAyKDEsNSk7bHN3YXAyKDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw1LDEsMik7bHN3YXAyKDMsNCk7fQoJIGVsc2UgaWYoZFswXTw9ZFszXSkgaWYoZFsxXTw9ZFszXSkgaWYoZFsyXTw9ZFs0XSkgaWYoZFsyXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMiw0LDEsNSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCw1LDMpO2xzd2FwMygxLDIsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCw1LDMpO2xzd2FwMigxLDQpO30KCSBlbHNlIGlmKGRbMl08PWRbNF0pIGlmKGRbMl08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDIsNCwzKTtsc3dhcDIoMSw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCw1LDEsMiw0LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsNSwxLDQsMyk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs1XSkgaWYoZFszXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCwyLDUsMSwzLDQpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDIsMyw0KTtsc3dhcDIoMSw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwyLDQpO2xzd2FwMigxLDUpO30KCSBlbHNlIGlmKGRbMl08PWRbNF0pIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDUsMSwyLDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNSwxLDIsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw1LDEsNCk7fQoJIGVsc2UgaWYoZFs0XTw9ZFs1XSkgaWYoZFswXTw9ZFszXSkgaWYoZFsyXTw9ZFs1XSkgaWYoZFsxXTw9ZFsyXSkgaWYoZFsxXTw9ZFszXSkgaWYoZFsxXTw9ZFs0XSkgaWYoZFsyXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMiwzKTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMiwzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigyLDQpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDEsNCwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDQsMiwxKTt9CgkgZWxzZSBpZihkWzFdPD1kWzRdKSBpZihkWzJdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygxLDMsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMSwzLDQsMik7fQoJIGVsc2UgaWYoZFswXTw9ZFs0XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDEsMyk7bHN3YXAyKDIsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDEsNCwyLDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsNCwyLDMsMSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkgaWYoZFsyXTw9ZFs0XSkgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygxLDMsNCk7fQoJIGVsc2UgaWYoZFswXTw9ZFs0XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDEsMywyLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigxLDQpO2xzd2FwMigyLDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsNCwxKTtsc3dhcDIoMiwzKTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSBpZihkWzJdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgxLDMsNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgxLDMsMiw0LDUpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDEsNCw1KTtsc3dhcDIoMiwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDQsNSwxKTtsc3dhcDIoMiwzKTt9CgkgZWxzZSBpZihkWzNdPD1kWzVdKSBpZihkWzFdPD1kWzVdKSBpZihkWzFdPD1kWzNdKSBpZihkWzFdPD1kWzRdKSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMiwzLDQsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDIsNCw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMSw0LDUsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNCw1LDIsMSk7fQoJIGVsc2UgaWYoZFszXTw9ZFs0XSkgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDEsMyw0LDUsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDEsMyk7bHN3YXAzKDIsNCw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMSw0LDUsMiwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCw0LDUsMiwzLDEpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIGlmKGRbMF08PWRbNF0pIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgxLDMsNSwyLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigxLDQpO2xzd2FwMygyLDMsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCw0LDEpO2xzd2FwMygyLDMsNSk7fQoJIGVsc2UgaWYoZFswXTw9ZFs0XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDEsMyw1KTtsc3dhcDIoMiw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMSw0LDIsMyw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDQsMiwzLDUsMSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFszXSkgaWYoZFswXTw9ZFs0XSkgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMiw0LDMsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDEsNCwzLDUsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDEsNCwzKTtsc3dhcDIoMiw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDQsMyw1LDIsMSk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsNCwzLDEpO2xzd2FwMigyLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDQsMywxLDUsMik7fQoJIGVsc2UgaWYoZFsxXTw9ZFsyXSkgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMSw0KTtsc3dhcDIoMiw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCw0LDEpO2xzd2FwMigyLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDQsMSw1LDIpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDEsNCwyLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDQsMiw1LDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDQsMik7bHN3YXAyKDEsNSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs1XSkgaWYoZFswXTw9ZFsyXSkgaWYoZFswXTw9ZFs0XSkgaWYoZFsyXTw9ZFs0XSkgaWYoZFsxXTw9ZFs0XSkgaWYoZFsxXTw9ZFsyXSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMywyLDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDMsMSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMyw0LDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDMsNCw1LDEpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDMsNCwyLDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDMsMSk7bHN3YXAyKDIsNCk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMywyLDQsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMywyLDQsNSwxKTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSBpZihkWzFdPD1kWzVdKSBpZihkWzFdPD1kWzJdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwzLDEsNCwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwzLDIpO2xzd2FwMigxLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsMywyKTtsc3dhcDMoMSw0LDUpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDQsMik7bHN3YXAyKDEsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNCwxLDMsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCw0LDUsMSwzLDIpO30KCSBlbHNlIGlmKGRbMl08PWRbNF0pIGlmKGRbMF08PWRbNF0pIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsMywxLDIpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDMsNCwxLDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDMsNCw1LDEsMik7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwzKTtsc3dhcDMoMSwyLDQpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDMpO2xzd2FwNCgxLDIsNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwzLDUsMSwyLDQpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsMyk7bHN3YXAyKDEsNCk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMyk7bHN3YXAzKDEsNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwzLDUsMSw0KTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDQsMSwzKTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCw0LDUsMSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCw0KTtsc3dhcDMoMSwzLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIGlmKGRbMF08PWRbNF0pIGlmKGRbMV08PWRbNV0pIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsMyw0LDUsMiwxKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDMsMSk7bHN3YXAzKDIsNCw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzJdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDMsNSwyLDQsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCwzLDUsMSk7bHN3YXAyKDIsNCk7fQoJIGVsc2UgaWYoZFszXTw9ZFs0XSkgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCwzLDEsNCw1LDIpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDMsNSwyKTtsc3dhcDIoMSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwzLDUsMSw0LDIpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsNCw1LDIpO2xzd2FwMigxLDMpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDQsMSwzLDUsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsNCwyKTtsc3dhcDMoMSwzLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbMl0pIGlmKGRbMV08PWRbMl0pIGlmKGRbM108PWRbNV0pIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDMpO2xzd2FwMigxLDQpO2xzd2FwMigyLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDQsMSwzKTtsc3dhcDIoMiw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDQsMSw1LDIsMyk7fQoJIGVsc2UgaWYoZFszXTw9ZFs1XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMyk7bHN3YXA0KDEsNCwyLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDQsMiw1LDEsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw0LDIsMyk7bHN3YXAyKDEsNSk7fQoJIGVsc2UgaWYoZFszXTw9ZFs1XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCwzLDIsNSwxLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsNCk7bHN3YXA0KDEsMywyLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9ODsJbHN3YXAyKDAsNCk7bHN3YXAyKDEsNSk7bHN3YXAyKDIsMyk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkgaWYoZFswXTw9ZFszXSkgaWYoZFszXTw9ZFs1XSkgaWYoZFsyXTw9ZFs1XSkgaWYoZFsxXTw9ZFs1XSkgaWYoZFsxXTw9ZFszXSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMiwzKTtsc3dhcDIoNCw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzJdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMSwzLDIpO2xzd2FwMig0LDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigxLDMpO2xzd2FwMig0LDUpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDEsMyw1LDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDEsMyw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSBpZihkWzFdPD1kWzNdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgyLDMsNSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgxLDMsNSw0LDIpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigxLDMpO2xzd2FwMygyLDUsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDEsMywyLDUsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMSwzLDIsNSk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkgaWYoZFsxXTw9ZFszXSkgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMiw1LDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDEsNSw0LDIpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgxLDUsNCwyLDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygxLDUsNCk7bHN3YXAyKDIsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMSw1KTtsc3dhcDIoMiwzKTt9CgkgZWxzZSBpZihkWzFdPD1kWzJdKSBpZihkWzFdPD1kWzNdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDUsNCwyLDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsNSw0LDIsMywxKTt9CgkgZWxzZSBpZihkWzFdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDUsNCwxKTtsc3dhcDIoMiwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDUsMSk7bHN3YXAyKDIsMyk7fQoJIGVsc2UgaWYoZFswXTw9ZFsyXSkgaWYoZFswXTw9ZFs1XSkgaWYoZFsyXTw9ZFs1XSkgaWYoZFsxXTw9ZFs1XSkgaWYoZFsxXTw9ZFsyXSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMywyLDEpO2xzd2FwMig0LDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDMsMSk7bHN3YXAyKDQsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMyw1LDQsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMyw1LDEpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDMsNSw0LDIsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMywxKTtsc3dhcDMoMiw1LDQpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDMsMiw1LDQsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMywyLDUsMSk7fQoJIGVsc2UgaWYoZFszXTw9ZFs1XSkgaWYoZFsxXTw9ZFs0XSkgaWYoZFsxXTw9ZFsyXSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMywxLDUsNCwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwzLDIpO2xzd2FwMygxLDUsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCwzLDIpO2xzd2FwMigxLDUpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDUsNCwyKTtsc3dhcDIoMSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCw1LDQsMSwzLDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsNSwxLDMsMik7fQoJIGVsc2UgaWYoZFsyXTw9ZFs1XSkgaWYoZFsxXTw9ZFs0XSkgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCwzLDEsMik7bHN3YXAyKDQsNSk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMyw1LDQsMSwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwzKTtsc3dhcDQoMSwyLDUsNCk7fQoJIGVsc2UgaWYoZFswXTw9ZFs0XSkgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMyw1LDEsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMyk7bHN3YXAzKDEsMiw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDMsNCk7bHN3YXAzKDEsMiw1KTt9CgkgZWxzZSBpZihkWzNdPD1kWzVdKSBpZihkWzFdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDMpO2xzd2FwMygxLDUsNCk7fQoJIGVsc2UgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMyk7bHN3YXAyKDEsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMyw0KTtsc3dhcDIoMSw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDUsNCwxLDMpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDUsMSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCw1LDEsMyw0KTt9CgkgZWxzZSBpZihkWzBdPD1kWzNdKSBpZihkWzNdPD1kWzRdKSBpZihkWzFdPD1kWzRdKSBpZihkWzFdPD1kWzNdKSBpZihkWzFdPD1kWzVdKSBpZihkWzNdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMiwzLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigyLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygxLDUsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsNSwyLDEpO30KCSBlbHNlIGlmKGRbM108PWRbNV0pIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgxLDMsNSwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMSwzKTtsc3dhcDIoMiw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMSw1LDIsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNSwyLDMsMSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFsyXSkgaWYoZFszXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMSwzLDQpO2xzd2FwMigyLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgxLDUsMiwzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDUsMiwzLDQsMSk7fQoJIGVsc2UgaWYoZFszXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMSwzLDQsMiw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMSw1KTtsc3dhcDMoMiwzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDUsMSk7bHN3YXAzKDIsMyw0KTt9CgkgZWxzZSBpZihkWzFdPD1kWzNdKSBpZihkWzFdPD1kWzRdKSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigyLDUpO2xzd2FwMigzLDQpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygxLDUsMik7bHN3YXAyKDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsNSwyLDEpO2xzd2FwMigzLDQpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgxLDUsMiw0LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDUsMiw0LDMsMSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCw1LDIpO2xzd2FwMygxLDQsMyk7fQoJIGVsc2UgaWYoZFsxXTw9ZFsyXSkgaWYoZFswXTw9ZFs0XSkgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDEsNSwyLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDUsMiw0LDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsNSwyKTtsc3dhcDIoMSw0KTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMSw1KTtsc3dhcDIoMiw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCw1LDEpO2xzd2FwMigyLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsNSwxLDQsMik7fQoJIGVsc2UgaWYoZFszXTw9ZFs1XSkgaWYoZFswXTw9ZFs1XSkgaWYoZFsxXTw9ZFs0XSkgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMCwzLDUsMiwxKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDMsMSk7bHN3YXAyKDIsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFsyXSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCwzLDQsMSk7bHN3YXAyKDIsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCwzLDQsMiw1LDEpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsMywxLDUsMik7fQoJIGVsc2UgaWYoZFsxXTw9ZFsyXSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMyw0LDEsNSwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwzLDQsMik7bHN3YXAyKDEsNSk7fQoJIGVsc2UgaWYoZFswXTw9ZFsyXSkgaWYoZFsxXTw9ZFsyXSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMyk7bHN3YXA0KDEsNSwyLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDMpO2xzd2FwMigxLDUpO2xzd2FwMigyLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsMywyLDQpO2xzd2FwMigxLDUpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIGlmKGRbMF08PWRbNF0pIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsNSwyKTtsc3dhcDIoMSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDUsMik7bHN3YXAzKDEsMyw0KTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDUsMiw0LDEsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw1LDIsMyk7bHN3YXAyKDEsNCk7fQoJIGVsc2UgaWYoZFswXTw9ZFsyXSkgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCw1LDEsMyw0LDIpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDUsMSwzKTtsc3dhcDIoMiw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCw1LDEsNCwyLDMpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsNSwxLDMsMiw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDUsMSw0KTtsc3dhcDIoMiwzKTt9CgkgZWxzZSBpZihkWzJdPD1kWzNdKSBpZihkWzRdPD1kWzVdKSBpZihkWzJdPD1kWzRdKSBpZihkWzBdPD1kWzNdKSBpZihkWzNdPD1kWzVdKSBpZihkWzFdPD1kWzJdKSBpZihkWzBdPD1kWzJdKSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDEpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsMSk7bHN3YXAyKDMsNCk7fQoJIGVsc2UgaWYoZFswXTw9ZFs0XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMSwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwxLDIpO2xzd2FwMigzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsMSwyLDQsMyk7fQoJIGVsc2UgaWYoZFswXTw9ZFs0XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDIpO2xzd2FwMigzLDQpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsMiw0LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsMiwxLDQsMyk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkgaWYoZFswXTw9ZFs0XSkgaWYoZFswXTw9ZFsyXSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwxKTtsc3dhcDMoMyw0LDUpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDEsMik7bHN3YXAzKDMsNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwyKTtsc3dhcDMoMyw0LDUpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDEsMiw0LDUsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMiw0LDUsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCwyLDEsNCw1LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsMSwyLDQpO2xzd2FwMigzLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsMiw0KTtsc3dhcDIoMyw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDIsMSw0KTtsc3dhcDIoMyw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDIsNSwzLDEsNCk7fQoJIGVsc2UgaWYoZFszXTw9ZFs0XSkgaWYoZFsxXTw9ZFszXSkgaWYoZFsxXTw9ZFsyXSkgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCwxLDIsMyk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMSwyLDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMSwyLDMsNCw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDIsMyk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMiwzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDIsMyw0LDUpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsMiwxLDMpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDIsMSwzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDIsMSwzLDQsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMiw0KTtsc3dhcDIoMSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwyLDQsNSk7bHN3YXAyKDEsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCwyLDQsMSwzLDUpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMV08PWRbMl0pIGlmKGRbM108PWRbNV0pIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDEsMiw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwxLDIsNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDEsMiw0LDMsNSk7fQoJIGVsc2UgaWYoZFszXTw9ZFs1XSkgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMiw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwyLDQsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMCwyLDQsMyw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzNdKSBpZihkWzNdPD1kWzVdKSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwyLDEsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMiwxLDQsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMiwxLDQsMyw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwyLDUpO2xzd2FwMygxLDQsMyk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMiwzLDEsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMiwzLDEsNCw1KTt9CgkgZWxzZSBpZihkWzNdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwyLDMsNSk7bHN3YXAyKDEsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMiw1KTtsc3dhcDIoMSw0KTt9CgkgZWxzZSBpZihkWzBdPD1kWzNdKSBpZihkWzBdPD1kWzJdKSBpZihkWzJdPD1kWzVdKSBpZihkWzNdPD1kWzVdKSBpZihkWzFdPD1kWzRdKSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwxKTtsc3dhcDMoMiw0LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDEsNCwzLDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsNCwzLDIpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDEpO2xzd2FwNCgyLDQsNSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwxLDQsNSwzLDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsNCw1LDMsMik7fQoJIGVsc2UgaWYoZFsxXTw9ZFs0XSkgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwxKTtsc3dhcDIoMiw0KTtsc3dhcDIoMyw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwxLDQsMik7bHN3YXAyKDMsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMSw0LDIsNSwzKTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCw0LDIpO2xzd2FwMigzLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDQsMiw1LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsNCwyLDEsNSwzKTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSBpZihkWzNdPD1kWzVdKSBpZihkWzFdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDEsNCwzKTt9CgkgZWxzZSBpZihkWzFdPD1kWzJdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCw0LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDQsMyk7bHN3YXAyKDEsMik7fQoJIGVsc2UgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMCwxLDQsNSwzKTt9CgkgZWxzZSBpZihkWzFdPD1kWzJdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCw0LDUsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsNCw1LDMpO2xzd2FwMigxLDIpO30KCSBlbHNlIGlmKGRbMl08PWRbNV0pIGlmKGRbMV08PWRbMl0pIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDEsNCk7bHN3YXAyKDMsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsNCk7bHN3YXAyKDMsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsNCk7bHN3YXAyKDEsMik7bHN3YXAyKDMsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsNCk7bHN3YXA0KDEsMiw1LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDEsNCk7bHN3YXAzKDIsNSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCw0KTtsc3dhcDMoMiw1LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDQpO2xzd2FwNCgxLDUsMywyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCw0KTtsc3dhcDMoMSw1LDMpO30KCSBlbHNlIGlmKGRbM108PWRbNV0pIGlmKGRbMF08PWRbNV0pIGlmKGRbMV08PWRbMl0pIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsMSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDQpO30KCSBlbHNlIGlmKGRbMV08PWRbM10pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsNCk7bHN3YXAyKDEsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCw0KTtsc3dhcDMoMSwyLDMpO30KCSBlbHNlIGlmKGRbMV08PWRbM10pIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsMSw0LDUpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDQsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsNCw1KTtsc3dhcDIoMSwyKTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDQsNSk7bHN3YXAzKDEsMiwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDQsMSwyLDMsNSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs1XSkgaWYoZFsxXTw9ZFs1XSkgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMCwxLDQsMyw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzJdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCw0LDMsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsNCwzLDUpO2xzd2FwMigxLDIpO30KCSBlbHNlIGlmKGRbMV08PWRbM10pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsNCwzLDEsMiw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDQsMSwyLDUpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsMSw0LDMsMiw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDQsMywyLDUpO30KCSBlbHNlIGlmKGRbMV08PWRbM10pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDQsMywyLDEsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNCwzLDEsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw0LDEsNSk7fQoJIGVsc2UgaWYoZFswXTw9ZFszXSkgaWYoZFsyXTw9ZFs1XSkgaWYoZFswXTw9ZFs1XSkgaWYoZFswXTw9ZFsyXSkgaWYoZFszXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz04Owlsc3dhcDIoMCwxKTtsc3dhcDIoNCw1KTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDEpO2xzd2FwMygzLDUsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwxKTtsc3dhcDIoMyw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzJdKSBpZihkWzNdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDEsMik7bHN3YXAyKDQsNSk7fQoJIGVsc2UgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMSwyKTtsc3dhcDMoMyw1LDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDEsMik7bHN3YXAyKDMsNSk7fQoJIGVsc2UgaWYoZFszXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwyKTtsc3dhcDIoNCw1KTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwyKTtsc3dhcDMoMyw1LDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDIpO2xzd2FwMigzLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIGlmKGRbM108PWRbNF0pIGlmKGRbMV08PWRbNV0pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDEsMiw1LDQsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMiw1LDQsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCwyLDEsNSw0LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDEsMiw1LDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDIsNSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDIsMSw1LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsMSwyLDUsMyw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDIsNSwzLDQpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsMiwxLDUsMyw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDIsNCk7bHN3YXAzKDEsNSwzKTt9CgkgZWxzZSBpZihkWzBdPD1kWzJdKSBpZihkWzJdPD1kWzRdKSBpZihkWzNdPD1kWzRdKSBpZihkWzFdPD1kWzVdKSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwxKTtsc3dhcDQoMiw1LDQsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMSw1LDQsMywyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDUsNCwzLDIpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDEpO2xzd2FwMygyLDUsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMSw1LDMsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw1LDMsMik7fQoJIGVsc2UgaWYoZFswXTw9ZFs0XSkgaWYoZFsxXTw9ZFs1XSkgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMSk7bHN3YXA0KDIsNSwzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDEsNSwzLDQsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMCw1LDMsNCwyKTt9CgkgZWxzZSBpZihkWzFdPD1kWzRdKSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwxLDUsMyk7bHN3YXAyKDIsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsNSwzKTtsc3dhcDIoMiw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDUsMyk7bHN3YXAzKDEsNCwyKTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSBpZihkWzNdPD1kWzRdKSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDEsNSw0LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDUsNCwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCw1LDQsMyk7bHN3YXAyKDEsMik7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCwxLDUsMyk7fQoJIGVsc2UgaWYoZFsxXTw9ZFsyXSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsNSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCw1LDMpO2xzd2FwMigxLDIpO30KCSBlbHNlIGlmKGRbMl08PWRbNF0pIGlmKGRbMV08PWRbMl0pIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDEsNSwzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDUsMyw0KTt9CgkgZWxzZSBpZihkWzFdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCw1LDMsNCk7bHN3YXAyKDEsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsNSwzLDEsMiw0KTt9CgkgZWxzZSBpZihkWzFdPD1kWzRdKSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwxLDUsMywyLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDUsMywyLDQpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDUsMywyLDEsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNSwzLDEsNCk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs1XSkgaWYoZFszXTw9ZFs1XSkgaWYoZFsxXTw9ZFszXSkgaWYoZFsxXTw9ZFsyXSkgaWYoZFswXTw9ZFs0XSkgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMSwyLDMpO2xzd2FwMig0LDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDEsMiwzLDUsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMCwxLDIsMyw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwyLDMpO2xzd2FwMig0LDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDIsMyw1LDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsMiwzLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIGlmKGRbMV08PWRbNV0pIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDIsMSwzKTtsc3dhcDIoNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwyLDEsMyw1LDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsMiw1LDQpO2xzd2FwMigxLDMpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDIsMSwzLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDIsNSk7bHN3YXAyKDEsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCwyLDUpO2xzd2FwMygxLDMsNCk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkgaWYoZFsxXTw9ZFsyXSkgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMCwxLDIsNSw0KTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwxLDIsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMSwyLDUpO2xzd2FwMigzLDQpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsMiw1LDQpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDIsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMiw1KTtsc3dhcDIoMyw0KTt9CgkgZWxzZSBpZihkWzFdPD1kWzNdKSBpZihkWzNdPD1kWzRdKSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwyLDEsNSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwyLDEsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMiwxLDUpO2xzd2FwMigzLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDIsNCwzLDEsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs0XSkgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMiwzLDEsNSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwyLDMsMSw1KTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwyLDMsNCwxLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDIsNCwxLDUpO30KCSBlbHNlIGlmKGRbMV08PWRbMl0pIGlmKGRbMV08PWRbNV0pIGlmKGRbM108PWRbNF0pIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA0KDAsMSw1LDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsMSw1KTt9CgkgZWxzZSBpZihkWzJdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDEsNSk7bHN3YXAyKDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCwxLDUpO2xzd2FwMygyLDQsMyk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCw1LDQpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDUpO2xzd2FwMigzLDQpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsNSk7bHN3YXAzKDIsNCwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDUpO2xzd2FwNCgxLDQsMywyKTt9CgkgZWxzZSBpZihkWzFdPD1kWzNdKSBpZihkWzFdPD1kWzRdKSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDUsNCk7bHN3YXAyKDEsMik7fQoJIGVsc2UgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsNSk7bHN3YXAyKDEsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsNSk7bHN3YXAyKDEsMik7bHN3YXAyKDMsNCk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCw1KTtsc3dhcDQoMSwyLDQsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCw1KTtsc3dhcDMoMSw0LDMpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsNSw0KTtsc3dhcDMoMSwyLDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsNSk7bHN3YXAzKDEsMiwzKTt9CgkgZWxzZSBpZihkWzJdPD1kWzRdKSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCw1KTtsc3dhcDQoMSwyLDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsNSk7bHN3YXAzKDEsMiw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDUpO2xzd2FwMigxLDQpO30KCSBlbHNlIGlmKGRbNF08PWRbNV0pIGlmKGRbMF08PWRbMl0pIGlmKGRbMV08PWRbNF0pIGlmKGRbMF08PWRbNF0pIGlmKGRbMF08PWRbM10pIGlmKGRbMl08PWRbNV0pIGlmKGRbMl08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsMSk7bHN3YXAyKDIsMyk7fQoJIGVsc2UgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMSk7bHN3YXAzKDIsMyw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwxKTtsc3dhcDIoMiw0KTt9CgkgZWxzZSBpZihkWzNdPD1kWzVdKSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwxKTtsc3dhcDQoMiwzLDQsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMSk7bHN3YXAzKDIsNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDEpO2xzd2FwNCgyLDQsMyw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzNdKSBpZihkWzJdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDEsMywyKTt9CgkgZWxzZSBpZihkWzJdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwxLDMsNCwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwxLDMsNCw1LDIpO30KCSBlbHNlIGlmKGRbMl08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsMywyKTt9CgkgZWxzZSBpZihkWzJdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwzLDQsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMyw0LDUsMik7fQoJIGVsc2UgaWYoZFszXTw9ZFs0XSkgaWYoZFsxXTw9ZFszXSkgaWYoZFsyXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCwxLDMpO2xzd2FwMigyLDQpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDEsMyk7bHN3YXAzKDIsNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwxLDMsNSwyLDQpO30KCSBlbHNlIGlmKGRbMl08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsMyk7bHN3YXAyKDIsNCk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMyk7bHN3YXAzKDIsNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwzLDUsMiw0KTt9CgkgZWxzZSBpZihkWzBdPD1kWzNdKSBpZihkWzNdPD1kWzVdKSBpZihkWzJdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwxLDQsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMSw0LDUsMik7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMSw0LDMsNSwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwxLDQsMyk7bHN3YXAyKDIsNSk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkgaWYoZFsyXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMSw0LDIsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMSw0LDUsMiwzKTt9CgkgZWxzZSBpZihkWzNdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwxLDQpO2xzd2FwMygyLDMsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMSw0KTtsc3dhcDIoMiw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzNdKSBpZihkWzNdPD1kWzVdKSBpZihkWzBdPD1kWzNdKSBpZihkWzJdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDQsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw0LDUsMik7fQoJIGVsc2UgaWYoZFsyXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw0LDIsMyk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNCw1LDIsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsNCk7bHN3YXAzKDIsMyw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzNdKSBpZihkWzFdPD1kWzVdKSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCw0LDMsNSwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCw0LDMpO2xzd2FwMigyLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsNCwzKTtsc3dhcDMoMSw1LDIpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsNCk7bHN3YXAyKDIsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCw0KTtsc3dhcDMoMSw1LDIpO30KCSBlbHNlIGlmKGRbMF08PWRbNV0pIGlmKGRbMl08PWRbNV0pIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsMyk7bHN3YXAzKDEsNCwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDQsMiwxLDMpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsMyk7bHN3YXA0KDEsNCw1LDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsNCw1LDIsMSwzKTt9CgkgZWxzZSBpZihkWzFdPD1kWzVdKSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDMsNSwyLDEsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCw0KTtsc3dhcDQoMSwzLDUsMik7fQoJIGVsc2UgaWYoZFszXTw9ZFs1XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMywxLDQpO2xzd2FwMigyLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDQpO2xzd2FwMigxLDMpO2xzd2FwMigyLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsNCk7bHN3YXA0KDEsNSwyLDMpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMV08PWRbM10pIGlmKGRbMF08PWRbNV0pIGlmKGRbMl08PWRbNF0pIGlmKGRbMF08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsMSwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDEsMyw0KTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDEsMywyLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsMSw0KTtsc3dhcDIoMiwzKTt9CgkgZWxzZSBpZihkWzJdPD1kWzVdKSBpZihkWzJdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDEsMyw0LDUpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDEsMywyLDQsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMSw0LDUpO2xzd2FwMigyLDMpO30KCSBlbHNlIGlmKGRbM108PWRbNV0pIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDEsMyw1KTtsc3dhcDIoMiw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwxLDQsMiwzLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsMSw0LDIsNSk7fQoJIGVsc2UgaWYoZFswXTw9ZFs1XSkgaWYoZFswXTw9ZFs0XSkgaWYoZFsxXTw9ZFsyXSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDMpO2xzd2FwMigxLDIpO30KCSBlbHNlIGlmKGRbMl08PWRbNF0pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMyw0KTtsc3dhcDIoMSwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDMsMiw0KTt9CgkgZWxzZSBpZihkWzJdPD1kWzRdKSBpZihkWzFdPD1kWzJdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDMsNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDMsNCw1KTtsc3dhcDIoMSwyKTt9CgkgZWxzZSBpZihkWzJdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDMsMiw0LDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsMyw1KTtsc3dhcDIoMiw0KTt9CgkgZWxzZSBpZihkWzFdPD1kWzJdKSBpZihkWzJdPD1kWzVdKSBpZihkWzBdPD1kWzVdKSBpZihkWzFdPD1kWzNdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDQpO2xzd2FwMigyLDMpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDMsMiwxLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDQpO2xzd2FwMygxLDMsMik7fQoJIGVsc2UgaWYoZFsxXTw9ZFszXSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCw0LDUpO2xzd2FwMigyLDMpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDMsMiwxLDQsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsNCw1KTtsc3dhcDMoMSwzLDIpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIGlmKGRbMV08PWRbM10pIGlmKGRbM108PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDQsMiwzLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDQsMiw1KTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwzLDUpO2xzd2FwMygxLDQsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsNCwyLDEsMyw1KTt9CgkgZWxzZSBpZihkWzNdPD1kWzVdKSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwzLDEsNCwyLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDQsMiw1KTtsc3dhcDIoMSwzKTt9CgkgZWxzZSBpZihkWzFdPD1kWzNdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCw0LDIsMSw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCw0LDIsMywxLDUpO30KCSBlbHNlIGlmKGRbMV08PWRbNV0pIGlmKGRbMF08PWRbNV0pIGlmKGRbMl08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsMywxLDIsNCk7fQoJIGVsc2UgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMywxLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDQpO2xzd2FwMigxLDMpO30KCSBlbHNlIGlmKGRbMl08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA2KDAsMywxLDIsNCw1KTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwzLDEsNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCw0LDUpO2xzd2FwMigxLDMpO30KCSBlbHNlIGlmKGRbMl08PWRbNV0pIGlmKGRbMl08PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsMyw1KTtsc3dhcDMoMSwyLDQpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDMsNSk7bHN3YXAyKDEsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNCwxLDMsNSk7fQoJIGVsc2UgaWYoZFszXTw9ZFs1XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMywyLDUpO2xzd2FwMigxLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDQsMSwzLDIsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw0LDEsNSk7bHN3YXAyKDIsMyk7fQoJIGVsc2UgaWYoZFswXTw9ZFsyXSkgaWYoZFszXTw9ZFs1XSkgaWYoZFsxXTw9ZFszXSkgaWYoZFsyXTw9ZFs0XSkgaWYoZFswXTw9ZFszXSkgaWYoZFsyXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwxKTtsc3dhcDIoMiwzKTtsc3dhcDIoNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDEpO2xzd2FwNCgyLDMsNSw0KTt9CgkgZWxzZSBpZihkWzJdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDEsMywyKTtsc3dhcDIoNCw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwxLDMsNSw0LDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMygwLDEsMyk7bHN3YXAzKDIsNSw0KTt9CgkgZWxzZSBpZihkWzBdPD1kWzVdKSBpZihkWzBdPD1kWzNdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDEpO2xzd2FwMygyLDMsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDUoMCwxLDMsNSwyKTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDEsMyk7bHN3YXAyKDIsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCwxLDMsNCk7bHN3YXAyKDIsNSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkgaWYoZFswXTw9ZFs1XSkgaWYoZFsyXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCwzLDIpO2xzd2FwMig0LDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsMyw1LDQsMik7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCwzKTtsc3dhcDMoMiw1LDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsMyk7bHN3YXA0KDEsNSw0LDIpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIGlmKGRbMV08PWRbNV0pIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDMsNSwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwzKTtsc3dhcDIoMiw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDMpO2xzd2FwMygxLDUsMik7fQoJIGVsc2UgaWYoZFsxXTw9ZFs0XSkgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMyw0KTtsc3dhcDIoMiw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDMoMCwzLDQpO2xzd2FwMygxLDUsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCwzLDEsNSwyLDQpO30KCSBlbHNlIGlmKGRbMF08PWRbM10pIGlmKGRbM108PWRbNF0pIGlmKGRbMl08PWRbNF0pIGlmKGRbMV08PWRbNV0pIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDEpO2xzd2FwMygyLDUsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMSw1LDQsMik7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDQoMCw1LDQsMik7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsMSk7bHN3YXAyKDIsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMSw1LDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsNSwyKTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSBpZihkWzFdPD1kWzVdKSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwxKTtsc3dhcDIoMiw1KTtsc3dhcDIoMyw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwxLDUsMik7bHN3YXAyKDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCw1LDIpO2xzd2FwMigzLDQpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDEsNSwyLDQsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNSwyLDQsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCw1LDIsMSw0LDMpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIGlmKGRbMl08PWRbNF0pIGlmKGRbMV08PWRbM10pIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDEsNSw0LDIsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNSw0LDIsMyk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDYoMCw1LDQsMiwxLDMpO30KCSBlbHNlIGlmKGRbMV08PWRbM10pIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDEsNSwyLDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDUsMiwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNSgwLDUsMiwxLDMpO30KCSBlbHNlIGlmKGRbM108PWRbNF0pIGlmKGRbMV08PWRbM10pIGlmKGRbMV08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDEsNSwyLDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsNSwyLDMsNCk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsNSwyLDEsMyw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCw1LDIsNCk7bHN3YXAyKDEsMyk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs0XSkgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMSw1LDIsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsNSwyLDQpO30KCSBlbHNlIGlmKGRbMV08PWRbM10pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNSgwLDUsMiwxLDQpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNigwLDUsMiwzLDEsNCk7fQoJIGVsc2UgaWYoZFszXTw9ZFs1XSkgaWYoZFsyXTw9ZFs1XSkgaWYoZFsxXTw9ZFsyXSkgaWYoZFsxXTw9ZFszXSkgaWYoZFswXTw9ZFs0XSkgaWYoZFswXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMSwzKTtsc3dhcDIoNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwxLDMsNSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDEsMyw1KTt9CgkgZWxzZSBpZihkWzBdPD1kWzRdKSBpZihkWzBdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCwzKTtsc3dhcDIoNCw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwzLDUsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCwzLDUpO30KCSBlbHNlIGlmKGRbMF08PWRbNF0pIGlmKGRbMV08PWRbNV0pIGlmKGRbMF08PWRbNV0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDMpO2xzd2FwMigxLDIpO2xzd2FwMig0LDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDMsNSw0KTtsc3dhcDIoMSwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDMsMSwyLDUsNCk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs0XSkgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAzKDAsMyw1KTtsc3dhcDIoMSwyKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwzLDEsMiw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDMsNCwxLDIsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkgaWYoZFsxXTw9ZFszXSkgaWYoZFsyXTw9ZFs0XSkgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMSwzLDIsNSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwxLDMsMiw1KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNigwLDEsMyw0LDIsNSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMywyLDUsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA0KDAsMywyLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXA1KDAsMyw0LDIsNSk7fQoJIGVsc2UgaWYoZFsxXTw9ZFsyXSkgaWYoZFsyXTw9ZFs0XSkgaWYoZFswXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMywyLDEsNSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwzLDIsMSw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDYoMCwzLDQsMiwxLDUpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwNCgwLDMsMSw1KTtsc3dhcDIoMiw0KTt9CgkgZWxzZSBpZihkWzFdPD1kWzRdKSBpZihkWzBdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDUoMCwzLDEsNSw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDQoMCwzLDEsNSk7fQoJIGVsc2UgaWYoZFsyXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA1KDAsMyw0LDEsNSk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXA2KDAsMywyLDQsMSw1KTt9CgkgZWxzZSBpZihkWzFdPD1kWzNdKSBpZihkWzJdPD1kWzRdKSBpZihkWzBdPD1kWzRdKSBpZihkWzFdPD1kWzVdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwNCgwLDEsNSw0KTtsc3dhcDIoMiwzKTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMygwLDUsNCk7bHN3YXAyKDIsMyk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCwxLDUpO2xzd2FwMigyLDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsNSk7bHN3YXAyKDIsMyk7fQoJIGVsc2UgaWYoZFsxXTw9ZFs1XSkgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCwxLDUpO2xzd2FwMygyLDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDMoMCwxLDUpO2xzd2FwMigyLDQpO30KCSBlbHNlIGlmKGRbMV08PWRbNF0pIGlmKGRbM108PWRbNF0pIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDUpO2xzd2FwMygyLDMsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz0xMDsJbHN3YXAyKDAsNSk7bHN3YXAyKDIsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCw1KTtsc3dhcDMoMSw0LDIpO30KCSBlbHNlIGlmKGRbMl08PWRbNF0pIGlmKGRbMF08PWRbNF0pIGlmKGRbMV08PWRbMl0pIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsNSw0KTtsc3dhcDMoMSwzLDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAzKDAsNSw0KTtsc3dhcDIoMSwzKTt9CgkgZWxzZSBpZihkWzFdPD1kWzRdKSBpZihkWzFdPD1kWzJdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCw1KTtsc3dhcDMoMSwzLDIpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9MTA7CWxzd2FwMigwLDUpO2xzd2FwMigxLDMpO30KCSBlbHNlIHtjb3VudE9mQ29tcGFyZSs9OTsJbHN3YXAyKDAsNSk7bHN3YXAzKDEsMyw0KTt9CgkgZWxzZSBpZihkWzFdPD1kWzJdKSBpZihkWzFdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTk7CWxzd2FwMigwLDUpO2xzd2FwNCgxLDMsNCwyKTt9CgkgZWxzZSBpZihkWzNdPD1kWzRdKSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCw1KTtsc3dhcDIoMSwzKTtsc3dhcDIoMiw0KTt9CgkgZWxzZSB7Y291bnRPZkNvbXBhcmUrPTEwOwlsc3dhcDIoMCw1KTtsc3dhcDQoMSw0LDIsMyk7fQoJIGVsc2UgaWYoZFszXTw9ZFs0XSkge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCw1KTtsc3dhcDQoMSwzLDIsNCk7fQoJIGVsc2Uge2NvdW50T2ZDb21wYXJlKz05Owlsc3dhcDIoMCw1KTtsc3dhcDIoMSw0KTtsc3dhcDIoMiwzKTt9CiByZXR1cm4gMTsKfQovL3Rlc3QgZm9yIGFsbCA2IGVsZW1lbnRzIGRhdGEKI2RlZmluZSBURVNURUxFTUVOVFMgNgpsb25nIGludCBhY2NDb3VudE9mQ29tcGFyZT0wOwpsb25nIGludCBhY2NDb3VudE9mTW92ZT0wOwppbnQgICAgICBhY2NDb3VudE9mVGVzdD0wOwoKaW50IGV2YWxEYXRhKHVuc2lnbmVkIGludCBvcmdEYXRhW10pewp1bnNpZ25lZCBpbnQgdmVyaWZ5RGF0YVtURVNURUxFTUVOVFNdOwppbnQgaTsKaW50IHJjPTA7CiBmb3IoaT0wO2k8VEVTVEVMRU1FTlRTO2krKykgdmVyaWZ5RGF0YVtpXT1vcmdEYXRhW2ldOwogY291bnRPZk1vdmU9MDsgLy9kZWJ1ZwogY291bnRPZkNvbXBhcmU9MDsgLy9kZWJ1Zwogc29ydDZsKHZlcmlmeURhdGEpOwogZm9yKGk9MTtpPFRFU1RFTEVNRU5UUztpKyspewogIGlmKHZlcmlmeURhdGFbaS0xXSA+dmVyaWZ5RGF0YVtpXSkgewogICAgcHJpbnRmKCJmYWlsZWQgdG8gc29ydCAhIVx0Iik7CiAgICByYz0yOwogICAgYnJlYWs7CiAgfQogfQphY2NDb3VudE9mVGVzdCArPTE7IC8vZGVidWcKYWNjQ291bnRPZkNvbXBhcmUgKz0gY291bnRPZkNvbXBhcmU7IC8vZGVidWcKYWNjQ291bnRPZk1vdmUgKz0gY291bnRPZk1vdmU7IC8vZGVidWcgCmlmKHJjPjApIHsKICAgaW50IGo7CiAgIHByaW50ZigiIG9yaWduYWwgZGF0YT17Iik7CiAgIGZvcihqPTA7ajxURVNURUxFTUVOVFM7aisrKXByaW50ZigiJWMiLG9yZ0RhdGFbal0pOwogICBwcmludGYoIn1cdCIpOwogICBwcmludGYoIiBjb21wYXJlIENvdW50PSVkLG1vdmUgY291bnQ9JWQsXHQiLGNvdW50T2ZDb21wYXJlLGNvdW50T2ZNb3ZlKTsKICAgcHJpbnRmKCIgdmVyaWZ5ZWQgZGF0YT17Iik7CiAgIGZvcihqPTA7ajxURVNURUxFTUVOVFM7aisrKXByaW50ZigiJWMiLHZlcmlmeURhdGFbal0pOwogICBwcmludGYoIn1cdFxuIik7Cn0KIHJldHVybiByYzsKfQovL+mghuWIl+eUn+aIkOOBl+OBquOBjOOCieODhuOCueODiOOBmeOCiwppbnQgdGVzdEJ5R2VuUGVybSh1bnNpZ25lZCBpbnQgdGVzdERhdGFbXSl7CmludCBpLGssY1tURVNURUxFTUVOVFMrMV07CmZvcihpPTA7aTw9VEVTVEVMRU1FTlRTO2krKykgY1tpXT1pOwprPTE7CndoaWxlKGsgPCBURVNURUxFTUVOVFMpewogIGlmKGsgJiAxKSBpPWNba107IGVsc2UgaT0wOwogIHt1bnNpZ25lZCBpbnQgdzt3PXRlc3REYXRhW2tdO3Rlc3REYXRhW2tdPXRlc3REYXRhW2ldO3Rlc3REYXRhW2ldPXc7fQogIGV2YWxEYXRhKHRlc3REYXRhKTsKICBrPTE7CiAgd2hpbGUoY1trXT09MCkge2Nba109aztrKys7fQogIGNba10tLTsKfQpyZXR1cm4gMDsKfQovL+ODoeOCpOODswppbnQgbWFpbigpewogIHVuc2lnbmVkIGludCB0ZXN0RGF0YVtURVNURUxFTUVOVFNdOwogIHVuc2lnbmVkIGludCB0ZXN0VmFsdWU7CiAgdW5zaWduZWQgaW50IHZlcmlmeVZhbHVlLHZlcmlmeUNvdW50OwogIGZvciAodGVzdFZhbHVlPTA7dGVzdFZhbHVlPD0weDAwMWY7dGVzdFZhbHVlKz0xKXsKICAgIHRlc3REYXRhWzBdPSh0ZXN0VmFsdWUgJiAgICAxKT8xOjA7CiAgICB0ZXN0RGF0YVsxXT0odGVzdFZhbHVlICYgICAgMik/MTowOwogICAgdGVzdERhdGFbMl09KHRlc3RWYWx1ZSAmICAgIDQpPzE6MDsKICAgIHRlc3REYXRhWzNdPSh0ZXN0VmFsdWUgJiAgICA4KT8xOjA7CiAgICB0ZXN0RGF0YVs0XT0odGVzdFZhbHVlICYgMHgxMCk/MTowOwogICAgdGVzdERhdGFbNV09KHRlc3RWYWx1ZSAmIDB4MjApPzE6MDsKICAgIHZlcmlmeUNvdW50PXRlc3REYXRhWzBdK3Rlc3REYXRhWzFdK3Rlc3REYXRhWzJdK3Rlc3REYXRhWzNdK3Rlc3REYXRhWzRdK3Rlc3REYXRhWzVdOwogICAgc29ydDZsKHRlc3REYXRhKTsKICAgIHZlcmlmeVZhbHVlPXRlc3REYXRhWzBdICsgdGVzdERhdGFbMV0qMiArIHRlc3REYXRhWzJdKjQgKyB0ZXN0RGF0YVszXSo4ICsgdGVzdERhdGFbNF0qMHgxMCArdGVzdERhdGFbNV0qIDB4MjA7CiAgICBpZighKHZlcmlmeVZhbHVlID09ICgodmVyaWZ5Q291bnQpPygweDNmICYoMHgxZmMwID4+dmVyaWZ5Q291bnQpKTowKSkpIHsgLy9mYWlsZWQgdG8gc29ydAogICAgICBwcmludGYoImZhaWxlZCBmb3IgdGVzdFZhbHVlPTB4JTJ4IC0+IHZlcmlmeVZhbHVlPTB4JTJ4IFxuIix0ZXN0VmFsdWUsdmVyaWZ5VmFsdWUpOwogICAgICByZXR1cm4gMjsKICAgIH0KICB9CiAgcHJpbnRmKCJlYXN5IHRlc3QgZG9uZS5cbiIpOwoKICBhY2NDb3VudE9mVGVzdCA9IDA7CiAgYWNjQ291bnRPZkNvbXBhcmUgPSAwOwogIGFjY0NvdW50T2ZNb3ZlID0gMDsKICBjbG9ja190IHRpbWVfYXRfc3RhcnQ9Y2xvY2soKTsKICBmb3IoaW50IGl0PTA7aXQ8dGVzdEl0ZXJhdGVzO2l0Kyspey8vZWFzeSB0ZXN0CiAgICB0ZXN0RGF0YVswXT0oJ2EnIDw8OCApICsncCc7CiAgICB0ZXN0RGF0YVsxXT0oJ2InIDw8OCApICsncSc7CiAgICB0ZXN0RGF0YVsyXT0oJ2MnIDw8OCApICsncic7CiAgICB0ZXN0RGF0YVszXT0oJ2QnIDw8OCApICsncyc7CiAgICB0ZXN0RGF0YVs0XT0oJ2UnIDw8OCApICsndCc7CiAgICB0ZXN0RGF0YVs1XT0oJ2YnIDw8OCApICsndSc7CiAgICB0ZXN0QnlHZW5QZXJtKHRlc3REYXRhKTsKICB9CiAgY2xvY2tfdCB0aW1lX2F0X2VuZD1jbG9jaygpOwogIHByaW50ZigidGVzdCBkb25lLlxuIik7CiAgcHJpbnRmKCIjIyB0ZXN0IGNvdW50PSVkXHQiLGFjY0NvdW50T2ZUZXN0KTsKICBwcmludGYoIiMjIGF2ZXJhZ2UgQ29tcGFyZXM9JTYuMmZcdCIsKChmbG9hdClhY2NDb3VudE9mQ29tcGFyZSkvYWNjQ291bnRPZlRlc3QpOwogIHByaW50ZigiIyMgYXZlcmFnZSBNb3Zlcz0lNi4yZlxuIiwoKGZsb2F0KWFjY0NvdW50T2ZNb3ZlKS9hY2NDb3VudE9mVGVzdCk7CiAgcHJpbnRmKCIjIyBleGN1dGVkIHRpbWU9JTEwLjZmIE5zZWMgXG4iLAogICAgICAgICh0aW1lX2F0X2VuZCAtIHRpbWVfYXRfc3RhcnQpIC8gKGRvdWJsZSlDTE9DS1NfUEVSX1NFQyAqMTAwMDAwMC9hY2NDb3VudE9mVGVzdCk7CiAgcmV0dXJuIDA7Cn0K