Merge branch 'develop'
This commit is contained in:
commit
7834c0b90b
|
|
@ -0,0 +1 @@
|
||||||
|
24,22,1;48,23,1;72,23,1;23,52,2;52,48,2;74,46,2;
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
37,33;77,30;79,48;70,69;15,55;26,16;41,15;65,29;67,48;56,58;42,60;46,39;74,20;
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
2;3;1;3;5;8
|
||||||
|
3;3;5;7
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
1;1;0;1;1;0;0;0;1;1;0;1;1;1;0;1;1;0;1;0;0;0;0;0;1;0;0;1;0;0;1;0;0;0;1;0;1;0;0;1;1;1;0;1;1;0;0;1;0;1;0;0;1;0;0;1;0;1;1;0;0;1;0;1;1;0;1;1;0;0;0;0;0;0;0;1;0;0;0;0;1;0;1;1;1;1;1;0;0;1;1;1;0;0;0;0;0;1;1;1
|
||||||
|
1;1;0;0;0;0;1;1;0;0;0;1;1;0;0;0;0;1;1;1;0;0;1;0;0;1;1;1;1;0;1;1;0;1;0;0;1;1;0;0;0;1;1;0;1;0;1;1;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;0;0;0;0;0;0;0;0;1;1;1;0;1;1;0;0;0;1;1;1;1;0;0;1;0;1;0;1;1;1;0;0;0;0;1;0;0
|
||||||
|
1;0;0;1;0;0;0;1;1;0;0;1;1;1;1;0;1;1;0;0;1;1;0;1;0;1;1;1;0;1;0;0;0;0;1;1;0;0;1;0;0;0;1;0;0;0;1;0;1;0;1;1;0;1;0;0;1;0;1;1;1;1;1;1;1;1;1;1;1;0;1;1;0;1;0;0;0;1;0;1;1;0;0;1;0;0;0;0;1;1;1;0;1;0;0;0;1;1;1;0
|
||||||
|
1;0;0;0;1;0;1;1;1;0;0;1;1;0;0;0;0;1;0;0;1;0;1;0;0;1;1;1;0;1;0;1;0;0;0;1;1;1;1;1;1;1;1;0;1;0;1;1;0;0;0;1;0;0;1;1;0;1;0;0;1;0;1;0;0;1;0;0;0;0;0;0;1;1;1;1;0;0;0;1;1;0;0;1;1;1;1;0;0;1;0;0;1;1;0;0;1;1;0;0
|
||||||
|
0;0;0;1;0;0;1;1;1;0;0;0;0;0;1;0;1;1;1;0;0;0;0;1;1;1;0;0;0;1;0;0;1;1;0;1;0;1;0;0;0;0;0;1;1;1;0;1;0;1;1;0;0;1;0;1;1;0;0;0;1;1;1;0;1;1;0;0;1;1;0;1;0;0;1;0;0;1;0;0;0;0;1;1;1;1;0;1;0;0;1;0;0;0;0;1;1;1;0;0
|
||||||
|
0;1;0;0;1;0;0;0;0;1;0;1;1;0;0;0;1;0;0;1;1;0;1;0;0;0;1;0;1;1;0;0;1;1;0;0;1;1;0;1;0;1;1;1;1;1;0;1;0;1;1;1;0;1;1;0;0;0;1;0;1;0;1;0;1;0;0;0;1;0;1;1;1;0;0;0;0;0;1;0;1;0;1;1;1;0;1;0;0;1;0;1;1;1;0;1;0;0;1;0
|
||||||
|
1;1;0;1;1;1;0;1;0;0;1;1;1;0;0;0;1;1;0;1;0;1;1;0;0;1;1;1;1;0;1;1;1;1;0;1;1;1;0;0;1;0;1;0;1;0;0;1;1;1;1;0;1;1;0;0;1;1;1;1;1;0;1;0;1;0;1;1;1;0;0;1;1;0;1;0;0;0;1;0;0;0;0;0;0;0;1;1;0;1;1;1;1;1;1;0;0;1;1;0
|
||||||
|
0;0;1;0;0;1;1;1;0;1;1;1;0;0;0;0;0;1;1;0;1;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;1;1;1;0;0;1;0;0;0;0;1;1;0;1;0;0;0;1;1;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;0;1;0;0;1;0;0;1;0;1;0;1;0;0;0;1;1;0;0;0;0;1;0;0;1;0;1;0
|
||||||
|
1;0;1;1;0;1;0;0;1;1;0;1;1;0;1;1;0;0;0;1;1;0;1;1;1;0;0;0;1;1;1;0;0;1;1;1;0;0;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;1;1;1;0;0;0;0;1;1;1;1;1;1;1;1;0;1;1;1;1;1;0;0;0;0;0;0;1;0;1;0;0;1;0;0;1;1;1;0;0;0;1;0;0;0
|
||||||
|
0;0;1;0;1;1;0;0;1;0;1;1;0;1;1;1;1;0;1;1;0;0;0;1;0;1;1;0;1;0;0;0;1;1;0;1;0;0;1;0;0;0;0;0;1;1;0;0;1;0;1;0;1;0;0;1;0;1;0;1;1;0;1;0;0;1;1;0;1;1;0;0;0;0;1;1;0;1;0;1;1;1;0;1;0;0;0;1;0;1;0;1;1;1;0;0;1;1;1;1
|
||||||
|
1;0;0;1;0;0;1;1;1;1;0;0;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;1;0;0;0;1;1;0;0;1;0;0;1;0;0;1;1;1;1;1;1;0;0;1;1;0;0;0;1;0;1;0;1;1;1;1;0;1;0;0;0;1;1;0;0;0;0;1;1;1;0;0;0;1;1;1;1;0;1;1;0;0;1;1;0;0;1;1;0;0;1;1;1;1
|
||||||
|
1;1;0;0;0;1;0;0;0;0;0;0;1;1;0;1;1;1;1;0;1;0;1;1;0;0;1;0;1;0;0;1;0;0;1;0;1;0;0;1;0;0;0;1;1;0;1;0;1;1;1;1;0;1;1;1;0;0;0;1;1;0;1;1;0;1;0;1;1;1;1;1;1;1;0;0;0;0;0;1;0;1;0;1;1;0;1;0;1;0;0;0;0;0;1;1;1;0;0;0
|
||||||
|
1;0;1;0;0;0;1;1;0;1;1;1;0;0;0;0;1;0;1;0;1;0;0;1;1;0;1;1;0;1;0;0;0;1;0;0;0;1;0;1;1;0;0;1;0;0;1;0;1;1;1;0;1;0;1;0;0;0;1;1;1;1;0;0;0;1;1;1;0;1;1;1;1;1;1;1;1;0;0;1;0;0;1;1;1;1;1;1;1;0;0;1;0;1;0;1;1;1;0;0
|
||||||
|
1;0;0;0;1;0;1;1;1;1;1;0;0;0;1;0;1;0;1;0;0;0;0;0;1;0;0;0;0;0;1;0;1;1;0;1;1;1;0;0;0;0;1;1;1;0;0;1;1;0;1;0;0;0;1;0;0;1;1;1;0;1;0;0;1;1;0;0;1;1;1;1;0;0;1;1;1;1;1;0;1;0;1;0;0;0;1;0;1;1;1;0;0;0;0;0;1;1;1;1
|
||||||
|
0;1;0;1;0;1;0;1;1;1;1;0;0;1;1;1;1;1;0;1;1;0;1;1;1;0;0;1;1;0;0;0;0;0;1;0;0;0;1;0;0;0;1;0;1;0;0;0;1;0;1;1;0;0;0;0;0;0;1;0;0;0;0;0;1;0;1;1;0;0;0;0;0;1;0;1;1;0;0;0;1;0;1;0;0;0;0;1;0;0;0;1;1;0;0;1;0;0;1;1
|
||||||
|
1;1;1;1;1;1;1;1;1;1;1;0;1;0;1;1;1;1;0;0;1;1;0;0;0;0;0;1;0;0;1;0;1;0;1;1;1;0;1;0;0;0;1;1;0;0;1;1;1;0;0;1;0;0;0;0;0;1;0;1;0;1;1;1;0;0;1;1;1;1;0;1;1;0;0;1;0;1;0;0;1;0;0;1;1;0;1;1;1;0;0;1;1;1;0;1;0;1;1;1
|
||||||
|
0;1;1;1;1;0;0;1;1;0;0;1;1;0;0;1;0;1;1;1;0;1;0;0;1;0;0;1;0;1;1;0;1;1;0;0;1;1;0;0;0;1;0;0;0;1;1;0;0;1;0;1;1;0;0;0;0;0;0;0;0;1;0;1;0;0;1;1;0;1;1;0;1;0;1;1;0;1;1;0;1;0;0;0;0;0;0;0;1;1;1;1;0;0;0;0;1;0;1;1
|
||||||
|
1;0;1;1;1;0;1;1;1;1;1;0;0;1;0;1;0;1;1;1;1;1;0;0;0;1;0;0;1;1;0;0;0;0;0;1;1;1;0;1;1;0;1;0;1;1;1;1;1;0;0;0;0;0;1;0;1;0;1;1;0;1;0;0;1;1;1;1;1;1;0;0;0;1;1;1;0;0;1;0;0;0;1;1;1;1;1;1;1;0;1;1;1;0;1;0;0;1;0;1
|
||||||
|
0;1;0;1;1;1;1;1;0;0;1;0;1;1;1;0;0;0;0;0;0;0;0;0;0;1;0;1;1;1;1;0;1;0;0;1;0;0;0;1;0;0;0;1;0;1;1;1;1;0;1;1;0;0;0;1;0;0;1;1;0;1;1;0;1;0;1;0;0;1;1;1;1;1;1;1;0;1;0;0;1;0;0;0;1;1;0;1;0;0;1;1;1;0;1;1;1;1;1;1
|
||||||
|
1;0;0;0;0;0;0;1;0;0;0;1;1;1;1;0;1;1;1;0;0;0;1;1;1;0;1;0;0;1;0;1;1;0;0;1;0;0;0;1;0;0;0;0;1;1;0;1;1;0;0;0;1;0;0;1;0;1;1;1;0;1;1;1;1;0;1;0;1;0;1;1;1;1;0;0;0;1;0;0;1;0;0;0;0;0;1;0;0;0;1;0;1;0;0;1;1;1;0;1
|
||||||
|
0;1;0;1;1;0;0;1;0;1;0;1;1;1;0;1;0;1;0;0;0;1;1;1;0;1;1;0;1;1;0;1;1;0;1;0;1;1;0;0;1;0;0;0;0;0;0;1;1;1;1;1;1;1;0;1;0;1;1;0;0;1;0;0;0;0;0;0;1;0;0;1;1;1;1;1;0;1;0;0;0;0;1;1;1;1;0;1;1;0;0;1;0;0;0;0;1;0;1;1
|
||||||
|
1;1;1;1;1;1;0;0;0;1;0;1;1;1;1;0;0;1;0;0;0;1;0;1;1;0;0;0;1;1;1;1;1;1;0;1;0;1;1;1;1;1;1;1;1;1;0;0;0;0;0;1;0;0;0;0;1;1;1;1;1;0;1;0;0;0;1;0;1;0;0;1;1;0;1;1;1;0;0;0;0;1;1;1;1;0;0;0;0;0;0;1;0;0;1;0;1;1;0;0
|
||||||
|
0;1;0;1;0;1;1;1;1;0;1;0;0;0;0;1;0;1;1;1;1;0;1;1;0;1;0;1;1;0;1;0;0;1;0;0;0;0;1;0;0;0;1;0;1;0;0;1;0;1;1;1;1;0;1;0;0;0;1;0;0;1;0;0;1;0;0;1;1;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;1;1;0;1;0;0;0;0;0;1;0;0;0
|
||||||
|
1;0;1;0;1;0;0;1;1;0;1;0;0;0;0;0;0;1;0;1;1;1;1;1;0;1;0;0;0;0;0;0;0;1;1;1;1;0;1;0;0;0;0;0;1;1;0;1;0;1;1;1;0;1;0;0;1;0;1;1;0;0;0;1;1;0;0;1;0;1;1;1;0;0;1;1;1;1;0;0;0;1;0;0;1;1;1;1;1;1;0;1;0;1;1;0;0;1;0;0
|
||||||
|
1;0;1;1;1;0;1;1;0;0;1;0;0;0;1;0;0;0;1;0;0;1;1;0;1;1;0;0;1;0;0;1;0;0;0;1;0;1;0;0;1;0;1;0;0;0;1;1;0;0;0;1;1;1;0;1;1;0;0;0;1;0;0;0;1;0;1;1;1;1;1;1;1;0;1;0;1;1;1;1;0;1;1;1;1;1;1;0;0;1;1;0;1;1;1;0;1;0;0;1
|
||||||
|
0;1;1;0;1;1;0;1;1;0;1;1;0;0;1;0;1;1;1;1;1;0;0;0;1;1;1;0;1;0;1;1;0;0;0;1;1;0;0;1;0;1;1;0;0;1;1;1;0;1;0;1;0;0;0;1;0;1;1;0;1;0;0;1;1;1;0;1;0;0;0;1;0;0;0;1;1;1;0;0;1;0;1;1;1;1;0;0;1;0;0;0;0;0;0;0;1;1;0;0
|
||||||
|
1;1;1;1;0;0;1;0;0;0;1;0;1;1;1;1;0;0;0;1;1;0;0;1;1;0;1;0;1;0;0;0;1;0;0;0;0;0;1;0;1;1;0;1;1;1;1;1;0;0;0;1;0;1;0;0;0;1;1;0;0;0;1;0;0;0;0;0;1;0;0;1;0;0;0;0;1;0;1;1;0;0;1;0;1;0;1;0;1;1;1;0;1;0;0;0;1;1;0;1
|
||||||
|
0;0;0;1;0;0;1;1;1;0;1;1;0;0;0;1;0;0;0;1;0;1;1;0;1;0;0;0;1;0;0;1;0;0;1;1;0;0;0;0;1;0;1;0;0;1;1;1;1;1;0;1;1;0;0;0;0;0;1;1;1;0;0;0;0;0;0;1;1;0;0;0;0;1;0;0;0;1;1;1;0;1;1;1;0;1;0;0;0;0;1;1;0;1;1;0;1;1;0;1
|
||||||
|
1;1;0;1;0;1;0;0;0;1;1;0;1;0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;0;1;0;1;0;0;0;0;1;1;1;0;0;1;1;0;1;1;0;1;0;1;0;1;0;1;1;1;1;0;0;1;0;0;1;0;1;1;0;0;0;1;0;0;0;0;1;1;1;0;0;1;1;0;0;0;0;1;1;1;1;0;1;0;0;0;0;1;1;1;1
|
||||||
|
0;0;1;0;1;0;1;0;1;1;0;0;1;0;1;1;1;0;1;1;1;1;1;0;1;0;0;1;0;0;1;0;0;1;1;0;1;1;0;0;1;1;0;0;0;1;1;1;1;1;1;1;0;0;0;1;1;1;1;1;1;0;1;1;0;0;0;1;0;1;0;1;1;0;1;0;0;1;1;0;1;0;1;1;0;0;1;0;1;0;1;1;0;0;1;1;0;0;1;0
|
||||||
|
1;0;0;0;0;0;0;1;0;1;1;0;1;0;1;0;0;0;1;1;0;1;0;1;0;1;0;1;1;1;0;1;1;1;0;1;1;1;0;1;1;0;1;1;1;1;0;1;1;1;0;0;0;0;1;0;1;1;1;0;1;1;0;0;0;0;0;1;1;1;1;1;1;0;0;1;0;1;1;1;1;1;1;0;1;0;0;0;1;1;0;0;0;0;0;0;1;0;0;1
|
||||||
|
1;0;0;0;0;0;1;1;0;1;0;1;1;0;0;1;1;1;0;0;0;1;1;0;1;0;1;0;0;0;0;1;0;1;1;1;1;1;1;1;0;1;0;1;1;1;0;0;1;0;0;1;0;0;1;0;1;1;1;1;1;0;1;1;0;1;1;0;1;1;0;0;1;1;0;0;1;1;0;0;0;0;0;1;0;1;1;0;1;1;0;0;0;0;1;0;1;1;0;1
|
||||||
|
1;0;0;1;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;1;0;0;1;0;0;0;1;0;0;1;0;1;0;0;1;0;1;0;0;0;0;1;1;1;1;1;0;0;1;1;1;1;1;0;0;0;1;0;1;0;0;0;1;0;0;0;1;1;1;1;1;0;1;0;1;0;0;0;0;0;0;1;0;0;0;0;1;0;1;0;1;0;0;0;0;0;0;0;0
|
||||||
|
1;1;1;0;1;0;0;0;1;0;0;1;1;0;0;0;1;0;1;0;0;1;1;0;0;0;0;0;1;0;1;1;1;0;1;0;1;0;0;0;0;0;0;1;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;1;1;1;0;0;0;0;1;1;0;1;1;1;0;1;0;0;1;1;1;0;0;1;0;1;1;0;1;0;1;0;0;0;0;0;0;0;1;1;0;1
|
||||||
|
0;0;0;0;0;1;1;1;0;0;1;1;0;1;1;1;0;1;0;0;1;0;0;1;1;0;0;1;1;0;0;0;0;1;0;1;0;1;1;1;1;0;1;0;0;1;0;0;1;1;1;0;0;1;0;1;1;1;0;1;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;1;1;1;1;0;0;1;0;1;0;0;1;1;0;1;1;1;0;1;1;1;1;1;0;0
|
||||||
|
1;0;1;1;0;1;1;0;0;1;1;1;0;1;1;0;0;1;0;0;0;1;1;0;1;1;0;1;1;1;0;1;0;1;1;0;1;0;0;1;1;1;0;1;1;1;1;1;0;0;0;1;0;1;1;0;1;1;0;1;0;1;1;0;0;1;0;0;1;1;1;0;0;0;1;1;0;1;0;0;0;1;1;1;1;1;0;0;0;1;0;0;1;0;1;0;0;1;0;0
|
||||||
|
1;0;1;0;0;0;1;0;0;0;0;1;1;0;1;1;0;0;1;0;0;1;1;0;0;0;1;1;0;0;0;0;1;0;0;0;0;1;0;1;0;0;1;1;1;0;0;0;1;0;1;0;0;1;0;1;1;0;1;1;1;1;0;1;0;0;0;1;1;0;1;1;0;1;1;1;1;0;0;0;0;0;1;1;0;0;0;1;0;1;0;1;0;0;0;1;1;0;0;0
|
||||||
|
0;0;1;0;1;1;0;0;0;1;1;1;0;1;0;0;1;1;0;1;1;1;0;0;1;0;0;1;0;0;1;1;0;1;0;1;0;0;1;1;0;1;0;0;1;0;1;1;1;0;1;1;0;0;1;1;1;1;1;1;1;1;1;0;0;1;0;0;0;0;0;1;0;1;1;1;1;0;1;0;1;1;1;0;1;0;0;1;1;1;0;0;1;1;1;0;0;0;1;0
|
||||||
|
1;1;0;1;1;1;1;1;0;1;0;0;1;0;0;0;0;0;0;1;0;1;0;1;0;1;0;1;0;0;1;0;1;1;0;1;0;1;0;0;0;1;0;0;0;0;0;1;1;0;1;0;1;1;0;0;0;0;0;1;1;0;0;1;0;1;0;1;1;1;1;1;1;0;1;1;0;0;0;1;1;1;0;1;1;1;1;1;1;1;0;1;0;0;0;0;0;1;0;0
|
||||||
|
1;0;0;0;1;0;0;1;0;0;0;1;1;1;1;1;1;1;0;0;0;0;0;0;1;1;0;1;0;0;1;0;0;1;0;0;0;1;0;1;1;0;0;0;0;0;1;0;0;0;0;1;0;0;1;0;0;0;1;1;1;0;1;0;0;1;1;1;1;0;1;0;0;0;0;0;0;0;1;0;0;1;0;1;0;1;0;0;0;0;0;0;1;0;0;0;1;0;1;1
|
||||||
|
1;0;1;0;0;1;1;0;1;0;1;0;1;1;0;0;1;0;1;1;1;1;0;1;0;0;1;0;0;0;1;0;0;0;1;1;1;0;0;1;0;1;0;0;1;1;0;1;0;0;1;1;0;1;0;1;0;1;0;0;1;1;0;1;1;1;1;1;0;0;1;0;1;0;0;1;1;0;0;0;1;1;1;1;1;0;1;0;0;1;1;1;1;1;0;1;0;0;0;1
|
||||||
|
1;1;0;0;0;0;1;1;0;0;0;0;1;0;1;1;0;0;0;1;1;0;0;0;1;0;1;1;1;0;1;1;0;1;0;0;1;1;0;0;1;1;1;1;1;1;1;1;1;1;0;1;0;0;0;0;0;1;0;1;1;0;0;0;1;0;0;0;1;1;1;0;0;1;0;1;0;0;0;0;1;0;0;0;1;0;0;1;0;0;0;0;1;0;1;0;0;0;1;0
|
||||||
|
1;1;1;1;1;0;0;0;0;1;0;1;0;1;1;0;0;0;0;1;0;0;0;1;0;0;0;0;0;1;0;0;0;1;1;0;0;1;0;1;0;0;0;1;0;1;0;0;0;1;0;0;0;0;1;1;0;0;1;0;0;0;1;0;0;0;1;1;0;0;1;1;1;1;0;1;1;0;1;0;0;1;1;1;0;0;1;0;0;1;1;0;1;0;1;1;0;0;0;1
|
||||||
|
0;1;0;1;1;0;1;0;0;1;1;1;1;0;0;0;1;1;0;1;0;0;0;1;1;1;1;0;1;0;1;1;0;0;1;1;0;0;0;1;1;1;0;0;1;1;1;0;1;0;0;0;0;1;1;1;1;0;0;0;0;1;0;1;1;1;0;1;1;1;0;0;0;1;0;0;1;0;1;1;1;0;1;0;1;1;0;1;1;0;1;1;0;1;1;1;0;1;0;0
|
||||||
|
1;0;0;1;1;1;1;0;0;1;1;1;1;0;1;0;0;0;0;0;1;0;1;0;0;0;0;0;0;1;0;0;0;0;1;1;1;1;0;1;1;0;1;1;1;1;0;0;0;1;1;0;1;0;1;0;1;0;1;1;0;1;1;0;1;0;1;0;0;0;0;1;0;1;0;0;0;1;1;0;1;0;0;0;0;1;1;1;1;1;0;0;1;1;1;0;0;0;1;0
|
||||||
|
1;0;0;1;0;0;0;0;1;1;1;1;0;1;1;1;1;1;0;1;1;0;1;0;1;1;1;1;0;0;0;0;0;1;1;0;0;0;0;0;0;1;1;1;1;0;0;0;0;1;1;0;1;1;1;1;0;1;1;1;1;1;0;1;1;0;1;0;0;0;1;1;0;0;1;1;0;0;0;1;0;1;0;0;0;0;0;1;0;0;1;1;0;0;0;1;1;0;0;0
|
||||||
|
0;0;0;0;0;1;1;0;0;1;1;1;0;1;0;0;1;1;0;1;1;1;0;1;1;1;1;0;0;1;0;1;0;0;1;1;1;0;1;0;1;1;0;0;0;1;0;1;1;1;0;1;0;0;0;0;1;0;0;0;1;1;1;1;0;0;0;1;0;1;1;1;0;0;0;1;1;0;1;0;0;1;0;1;0;0;0;0;0;1;0;1;0;1;1;1;0;0;0;0
|
||||||
|
1;0;1;0;0;0;0;1;0;0;1;1;1;1;0;1;1;1;1;0;1;1;1;1;0;1;0;0;1;0;0;1;0;0;1;0;0;1;0;0;0;1;1;1;1;0;1;0;1;0;0;1;0;1;1;0;0;1;1;0;0;1;0;1;0;0;1;0;0;1;1;1;0;0;1;1;1;1;1;1;1;0;1;0;1;0;1;1;0;1;0;0;0;1;1;0;1;0;0;0
|
||||||
|
0;1;1;0;1;1;0;1;1;1;0;0;0;0;0;1;1;1;1;1;0;0;1;0;1;1;1;1;0;0;1;1;0;0;1;1;1;1;0;0;1;0;1;1;0;1;1;0;1;0;1;1;1;1;1;1;0;0;1;0;0;0;1;0;1;1;1;0;1;0;0;0;1;0;0;0;0;1;1;0;0;1;0;1;0;1;1;1;0;1;1;1;0;1;0;1;0;1;1;1
|
||||||
|
0;1;0;0;1;0;0;0;1;0;1;0;0;0;1;0;0;0;1;1;1;1;1;1;1;1;0;0;1;0;1;0;0;0;1;0;0;1;1;0;0;1;0;1;1;0;1;1;0;0;0;0;1;0;1;1;1;1;1;0;0;0;0;0;0;1;0;1;0;0;0;0;1;1;1;1;1;1;0;0;0;1;1;1;1;1;1;1;0;1;1;0;1;0;1;1;0;1;1;1
|
||||||
|
0;0;1;0;0;1;1;1;1;1;0;1;1;0;1;0;0;1;1;1;1;1;0;1;1;1;0;0;0;0;0;1;0;1;0;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;1;1;0;1;0;1;1;1;1;1;1;1;0;1;0;1;1;0;0;1;1;0;1;0;0;0;0;1;1;0;1;0;1;0;0;1;0;0;1;1;0;1;0;1;0;1;0;0;1;1
|
||||||
|
0;0;0;1;0;0;0;0;1;1;1;1;1;1;0;0;1;0;0;0;1;1;1;1;1;1;1;1;1;1;1;1;0;1;0;1;1;0;1;1;1;0;0;1;0;0;0;0;1;0;1;1;0;1;1;0;1;0;1;1;0;0;1;0;0;1;0;0;0;1;0;0;0;0;1;1;0;1;0;0;0;1;0;1;0;0;0;0;0;1;1;0;1;0;0;0;0;1;0;0
|
||||||
|
1;0;0;1;1;1;1;1;1;1;0;1;0;1;1;1;1;1;1;1;0;0;0;1;0;0;1;1;1;1;1;1;0;0;0;0;0;1;0;0;1;1;0;0;0;1;1;1;1;1;0;1;1;1;0;1;1;0;0;1;1;1;0;0;0;1;0;0;0;1;0;1;1;0;0;0;0;1;1;0;0;1;1;0;0;1;0;1;1;0;0;1;1;0;1;0;0;1;0;0
|
||||||
|
1;1;1;1;1;1;0;0;1;0;1;0;1;0;1;1;1;1;1;1;0;0;1;1;0;1;1;1;0;0;0;0;0;0;1;0;1;0;0;1;1;1;0;0;1;0;1;0;1;1;1;1;1;0;0;1;0;1;0;0;1;1;0;0;1;1;1;0;0;0;0;1;1;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;1;1;0;1;0;1;1;0;1;1;0
|
||||||
|
0;0;1;0;0;1;0;1;1;0;1;1;0;1;0;1;1;1;1;0;0;0;1;0;1;1;0;0;0;1;1;0;0;0;1;1;0;0;0;0;0;1;0;1;0;1;0;0;1;0;0;1;1;1;0;0;1;1;1;0;0;0;1;0;1;1;0;0;0;1;0;1;0;1;0;0;0;1;1;1;1;0;1;0;0;1;1;0;1;1;1;0;0;0;0;0;0;0;1;0
|
||||||
|
1;1;1;0;1;0;0;0;0;1;0;0;0;0;1;0;1;1;1;1;1;0;0;1;0;0;0;0;0;1;0;1;1;0;1;1;0;1;0;1;0;0;1;0;0;0;1;1;1;0;0;0;1;0;1;0;1;1;1;1;0;1;1;1;1;0;1;1;1;1;0;0;0;1;1;0;1;0;0;1;1;0;0;0;0;1;1;1;0;1;0;0;1;1;0;1;0;1;0;1
|
||||||
|
1;1;1;0;0;0;1;1;0;1;1;1;1;0;0;1;1;1;1;0;0;1;1;0;0;1;1;0;1;1;0;1;0;1;0;1;1;0;1;1;0;0;1;0;0;1;0;1;1;1;1;1;1;1;0;1;0;0;0;1;0;0;1;1;1;0;0;1;0;1;1;1;0;1;0;1;1;0;0;0;0;0;1;1;0;1;0;1;1;1;1;1;1;0;1;1;0;1;0;1
|
||||||
|
1;0;1;0;1;1;0;0;0;0;1;1;0;1;1;1;1;0;1;1;1;1;1;0;0;0;1;0;0;0;1;1;1;0;1;0;1;1;0;1;0;0;1;1;0;0;1;0;1;0;1;0;0;0;0;1;0;1;0;0;1;1;0;1;1;0;1;0;0;0;0;0;1;0;0;0;1;0;1;0;0;1;1;1;1;1;1;1;1;0;0;0;1;0;0;0;1;0;0;0
|
||||||
|
0;0;1;0;0;0;0;1;0;0;0;1;0;1;0;1;0;0;0;1;1;0;0;0;1;1;1;0;0;0;1;1;0;0;0;0;1;1;1;1;0;1;0;0;1;0;0;1;1;1;0;0;0;0;0;0;1;1;0;1;1;0;0;1;1;0;0;0;1;0;1;1;1;1;0;0;0;1;0;1;1;1;1;1;1;0;0;1;1;1;0;0;1;0;1;0;0;0;0;0
|
||||||
|
0;1;0;1;1;1;0;1;0;0;1;0;1;0;0;1;1;0;1;1;1;0;0;1;1;1;0;0;1;1;1;1;1;0;1;1;0;0;0;1;1;0;0;1;1;0;0;0;1;1;0;1;0;1;1;1;0;1;0;1;0;1;0;1;1;1;0;1;1;0;1;0;1;1;1;0;1;0;1;0;1;0;1;1;1;1;1;0;0;1;0;0;0;1;1;0;1;1;1;1
|
||||||
|
0;0;0;0;1;1;0;1;0;0;1;0;1;1;1;0;0;1;1;1;1;0;0;1;1;0;0;1;1;0;0;1;1;0;0;1;1;1;0;0;0;0;1;1;1;1;1;1;1;1;0;1;1;1;0;0;1;1;1;0;1;1;0;0;1;1;1;0;1;1;1;1;1;1;0;1;0;1;0;1;1;1;0;1;0;0;0;1;1;1;0;1;1;1;1;0;1;0;0;1
|
||||||
|
0;0;1;1;1;0;0;1;0;0;1;0;0;0;1;1;0;1;0;1;0;0;0;0;0;1;1;0;1;0;1;0;1;0;0;0;1;0;1;1;1;0;1;1;0;0;1;0;1;1;0;1;0;1;1;1;0;1;0;1;0;1;0;0;0;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;0;1;1;1;0;1;0;1;0;1;0;0;0;1;1;1;1;0;0
|
||||||
|
1;0;1;1;0;1;1;1;1;1;0;0;0;0;1;1;0;0;0;1;1;1;1;0;1;0;0;1;0;0;1;1;1;0;0;1;1;0;0;0;1;1;1;0;0;0;1;0;0;0;0;0;1;1;1;0;0;1;0;1;0;1;1;0;0;0;0;1;0;0;1;1;1;0;0;1;1;1;1;1;1;0;0;1;0;0;0;1;1;0;0;0;0;1;0;1;1;1;1;1
|
||||||
|
1;1;1;0;0;0;1;1;1;0;1;0;0;1;1;0;0;1;0;1;1;1;0;0;0;1;0;1;0;1;0;0;0;1;1;1;0;1;1;1;1;0;1;0;1;1;1;0;0;1;0;1;0;1;1;1;1;0;0;1;0;1;0;1;0;0;1;1;1;1;0;1;1;1;1;0;0;1;1;0;0;0;1;0;1;1;1;0;0;1;0;1;0;0;0;1;1;0;1;0
|
||||||
|
0;0;1;1;1;1;0;0;1;1;0;0;1;0;0;0;0;1;0;1;1;0;0;0;0;1;0;1;0;0;0;1;0;1;1;1;1;1;0;1;1;0;1;0;1;1;0;1;1;0;0;1;1;0;1;0;1;1;0;0;1;1;1;0;0;0;1;1;0;0;1;1;0;0;0;1;1;0;1;1;1;0;0;1;0;1;1;0;0;1;0;1;0;0;0;1;0;1;1;0
|
||||||
|
0;0;1;0;1;1;1;0;1;1;0;0;0;0;1;1;0;1;0;1;1;1;1;1;0;1;0;1;1;1;0;1;1;0;0;1;1;0;0;0;1;1;0;1;1;0;0;1;1;1;1;0;0;1;1;1;1;0;0;0;1;1;0;1;1;1;1;1;1;0;1;0;0;0;0;0;0;1;1;1;1;1;0;1;0;1;0;1;1;1;0;1;0;1;1;1;0;0;1;1
|
||||||
|
1;0;0;1;0;1;1;0;0;1;1;1;0;0;0;0;0;1;0;0;0;1;0;1;0;1;1;1;0;1;0;0;1;1;0;1;0;0;1;1;1;0;1;1;1;0;1;1;0;0;0;0;1;1;0;1;1;0;1;0;1;1;1;1;1;0;0;1;1;0;1;0;1;1;0;0;0;0;1;1;1;0;0;0;0;1;1;0;0;0;1;1;0;0;0;0;0;1;1;1
|
||||||
|
0;1;1;0;1;0;0;0;1;0;1;0;1;1;0;0;1;1;0;0;0;1;1;1;1;0;0;0;1;1;0;1;1;1;0;1;1;1;0;1;1;1;1;0;1;0;1;1;1;0;0;1;0;0;0;0;1;0;0;0;0;1;1;0;1;0;1;1;1;1;1;1;1;0;1;1;0;0;0;1;0;1;1;1;1;0;1;1;1;0;0;1;0;1;0;0;1;1;1;1
|
||||||
|
0;1;1;1;0;1;0;0;1;0;1;1;1;1;1;1;1;1;1;0;1;0;1;0;1;0;0;0;1;0;1;0;1;0;1;0;0;0;1;1;0;0;1;0;0;0;1;1;0;1;1;1;0;0;0;0;0;0;0;0;1;1;1;1;1;1;1;0;0;0;0;1;1;1;1;1;0;0;1;0;1;0;1;1;0;0;0;1;0;0;1;1;0;1;0;1;0;1;0;0
|
||||||
|
1;1;0;1;0;1;1;1;1;1;0;0;1;1;0;1;0;1;0;0;0;1;0;1;1;0;0;0;1;0;0;0;0;1;1;1;0;0;1;1;0;1;1;1;1;1;1;0;1;1;0;0;1;0;1;0;0;1;1;0;1;0;1;0;0;1;0;0;0;1;1;0;0;0;0;0;0;1;0;0;0;0;1;0;0;1;1;1;0;0;1;1;1;1;0;1;0;1;1;1
|
||||||
|
1;0;0;1;0;0;0;0;0;0;0;1;1;0;1;1;0;0;1;0;1;1;1;0;1;0;0;0;0;0;1;0;1;0;0;1;1;0;0;0;0;0;1;1;1;1;1;0;0;1;1;0;0;1;0;1;0;0;0;1;1;1;0;1;1;0;0;1;1;1;0;1;1;0;0;0;1;1;1;1;0;0;1;0;1;1;0;0;0;0;1;1;0;1;0;1;1;1;0;1
|
||||||
|
1;1;1;0;1;1;1;0;1;1;1;0;0;1;0;0;1;1;1;1;0;1;1;1;0;1;1;1;1;1;0;1;1;1;0;1;0;0;1;1;1;0;1;1;1;0;0;1;1;1;1;1;0;0;0;0;0;0;1;1;0;0;0;0;1;0;0;1;0;0;0;0;0;1;0;1;0;1;0;0;1;1;1;1;1;1;0;1;1;1;0;1;0;1;1;1;0;1;0;0
|
||||||
|
1;0;0;1;0;1;0;0;0;1;1;0;1;0;1;1;1;0;1;0;0;1;1;1;0;1;0;1;0;0;0;1;0;1;1;1;1;1;0;1;1;0;0;0;0;0;0;0;1;0;1;1;1;1;1;0;0;0;1;0;0;1;0;0;0;0;0;0;1;0;0;1;0;0;1;0;0;1;0;1;1;0;1;0;0;0;0;0;1;0;0;1;0;1;0;1;1;1;1;0
|
||||||
|
1;0;1;0;0;0;1;1;1;1;1;0;0;1;0;0;0;0;1;0;0;1;0;1;0;0;1;0;1;0;1;1;0;1;1;0;1;1;0;0;0;0;1;0;1;0;0;1;0;0;1;1;0;1;1;0;1;0;0;1;1;1;0;1;1;1;1;1;0;0;0;1;1;0;1;1;1;0;1;0;1;1;0;1;0;1;0;1;0;0;0;0;1;1;1;1;1;1;1;0
|
||||||
|
0;0;1;1;1;0;1;0;1;0;0;1;1;0;1;1;0;0;0;1;1;1;1;1;1;1;0;0;1;1;0;1;1;0;1;1;1;0;1;0;0;0;0;0;0;0;1;0;0;0;1;1;0;0;1;1;0;1;0;0;1;0;1;1;0;1;1;0;0;0;0;1;1;0;0;0;1;1;1;0;1;1;0;0;1;0;1;0;0;1;1;1;0;1;0;1;0;1;0;0
|
||||||
|
0;1;0;0;1;0;0;0;1;1;0;0;0;0;1;0;1;1;1;0;1;1;1;1;1;0;1;0;1;1;0;0;1;0;0;0;0;0;1;0;0;1;0;0;1;0;1;0;1;0;1;1;1;1;1;0;0;1;1;0;0;1;1;0;0;0;0;1;0;1;1;0;1;1;1;1;0;0;0;0;0;1;1;0;1;0;0;1;1;1;0;1;1;1;1;1;0;1;1;0
|
||||||
|
1;0;1;0;0;1;1;0;0;0;1;0;0;0;0;1;1;1;1;0;1;1;0;0;1;0;1;0;0;0;0;1;0;0;0;0;0;1;0;1;0;1;1;1;0;0;1;1;0;1;1;1;1;1;1;1;1;0;0;1;0;1;1;1;0;0;0;0;0;0;0;1;0;1;1;0;1;0;0;0;0;0;0;0;1;1;0;0;0;0;1;1;0;1;1;0;1;1;0;1
|
||||||
|
1;1;1;0;0;0;0;0;1;1;0;0;0;1;0;1;0;0;1;0;0;0;1;0;0;0;1;1;0;0;0;0;1;1;1;0;1;0;0;1;1;1;0;1;1;1;1;0;0;1;0;1;0;1;0;0;1;1;1;0;1;1;1;1;0;0;1;0;0;1;0;1;1;1;1;0;1;1;1;0;1;1;1;0;0;0;0;0;1;1;0;1;1;0;1;1;0;0;0;1
|
||||||
|
1;0;0;1;1;1;0;0;0;1;1;1;0;0;1;0;1;0;1;1;0;0;0;0;0;0;1;0;0;0;0;1;0;1;1;1;0;1;0;1;1;1;1;1;0;1;1;1;1;0;1;1;0;1;1;1;1;0;1;1;0;1;0;1;1;0;1;0;0;0;0;1;1;0;1;0;0;1;1;0;1;1;0;1;0;1;1;0;0;0;1;0;1;0;1;0;1;1;1;0
|
||||||
|
0;0;1;1;1;1;0;1;0;0;1;0;0;0;1;0;1;1;0;0;1;1;0;0;1;0;1;0;1;1;0;1;1;0;1;1;0;0;0;0;0;0;0;1;1;1;0;1;0;1;0;1;0;1;0;1;1;1;0;1;0;1;0;0;0;1;0;1;0;1;0;1;1;1;0;1;0;0;1;1;1;1;0;0;1;1;1;1;1;1;0;0;1;1;1;0;1;0;1;1
|
||||||
|
0;0;0;0;1;0;0;0;0;0;1;1;0;1;0;1;1;1;0;0;1;0;1;0;0;1;0;1;0;0;0;0;0;1;0;1;1;1;1;1;1;1;0;1;0;1;1;1;1;0;0;1;0;0;1;1;0;0;1;0;0;0;1;0;1;0;0;0;1;0;0;1;1;0;1;1;1;1;0;0;0;0;1;0;1;1;0;0;1;1;1;0;0;0;1;0;1;1;0;0
|
||||||
|
1;0;0;1;1;0;1;1;0;1;1;0;0;0;0;0;1;1;1;0;0;1;0;1;0;1;0;0;1;1;0;0;0;1;1;0;0;0;1;0;1;0;1;1;1;0;0;1;0;0;0;1;0;0;1;1;0;1;0;0;1;1;1;0;0;0;0;1;0;1;0;1;0;1;1;1;1;0;1;0;1;1;0;0;0;0;0;1;1;0;0;0;0;0;1;0;0;0;1;1
|
||||||
|
1;0;1;0;1;0;1;0;1;1;0;1;1;0;1;0;0;0;0;1;1;1;1;1;0;0;0;1;0;1;1;1;1;1;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;1;1;0;0;0;0;0;0;1;0;0;0;1;1;0;1;1;0;0;0;1;1;0;0;0;0;1;0;0;1;0;1;0;0;1;0;0;0;1;1;1;1;1;1;1
|
||||||
|
1;1;0;0;1;0;1;0;1;0;0;1;1;0;1;1;1;0;0;1;0;1;0;0;1;0;0;1;1;0;1;1;1;0;0;1;0;0;1;0;0;1;0;1;0;1;0;1;1;1;0;0;0;1;0;1;0;1;0;0;0;0;0;1;0;1;1;0;1;1;1;0;0;1;1;0;0;1;0;1;1;1;0;1;1;1;1;1;1;1;0;0;0;1;1;0;0;1;0;0
|
||||||
|
1;1;0;1;0;0;1;0;1;0;1;1;1;1;1;1;0;0;0;0;0;0;0;1;0;0;1;0;0;0;0;1;0;0;0;0;0;1;0;1;0;0;1;1;0;1;1;1;0;1;0;1;0;0;1;0;0;0;0;1;0;0;0;0;0;1;1;0;0;0;0;0;1;1;0;0;1;1;1;1;0;1;1;0;0;0;0;0;1;1;0;0;0;1;0;1;1;0;1;0
|
||||||
|
0;1;0;1;1;0;1;0;0;0;0;1;0;0;0;1;1;1;1;0;1;0;1;1;1;0;1;0;1;0;0;0;1;0;1;1;0;0;1;1;0;0;1;0;1;1;0;1;0;1;1;1;1;0;1;0;0;0;0;0;1;0;0;1;0;1;0;0;0;1;1;1;1;1;1;0;1;0;1;0;1;1;1;0;0;1;0;0;0;0;1;1;0;1;0;1;1;1;0;0
|
||||||
|
0;1;1;1;0;0;0;1;1;1;0;1;1;1;0;0;1;0;0;1;0;1;1;0;1;0;1;0;1;1;0;1;1;0;0;0;0;1;0;0;1;0;1;0;1;0;1;1;0;0;0;0;1;0;1;0;0;1;0;1;0;1;1;1;1;0;1;0;0;1;1;0;1;0;0;1;0;1;1;0;0;1;0;1;1;0;0;0;0;1;0;0;1;1;1;0;0;0;0;1
|
||||||
|
0;0;0;0;1;1;1;1;1;1;0;1;0;1;0;0;0;1;0;1;1;0;1;0;0;0;1;1;1;0;1;1;1;1;1;0;1;0;0;0;0;0;1;0;1;0;0;0;1;1;0;1;0;1;1;0;0;1;0;0;0;1;1;1;0;1;1;1;1;1;0;0;0;0;1;0;0;1;0;0;0;1;1;0;1;0;0;0;1;0;0;1;0;1;1;0;1;0;0;1
|
||||||
|
1;0;1;1;1;1;1;1;1;1;0;0;0;1;1;0;1;0;1;1;0;0;0;0;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;1;0;1;1;1;1;1;0;0;1;0;1;0;0;0;1;0;1;0;1;0;1;0;1;1;0;1;1;0;0;0;1;1;0;0;0;0;1;1;1;1;1;1;1;1;0;0;1;1;1;0;0;0;1;0;1;0;0;1;0;0
|
||||||
|
1;0;0;0;1;0;1;1;0;0;1;0;1;1;1;0;0;1;1;0;0;1;1;0;1;0;1;0;0;1;0;1;1;1;1;0;1;0;0;1;1;1;1;1;1;0;1;0;1;0;0;1;1;0;0;0;1;0;1;0;0;1;0;0;0;1;1;0;1;0;0;0;0;0;0;1;0;1;0;1;0;0;1;1;0;0;0;0;0;1;0;0;1;0;0;1;0;1;1;1
|
||||||
|
0;1;1;0;0;1;0;1;1;1;1;1;1;0;0;0;0;1;0;0;0;1;1;0;0;0;0;0;1;0;1;1;1;0;1;0;1;0;1;0;0;1;0;0;0;0;0;1;0;1;0;0;0;0;0;1;1;0;1;1;1;0;1;0;1;1;1;1;0;1;0;0;0;1;1;0;0;0;1;1;0;0;1;0;1;0;0;1;0;0;0;1;1;0;1;0;1;0;1;1
|
||||||
|
1;1;0;0;0;1;0;0;1;0;1;1;1;1;0;1;1;0;0;0;1;1;1;1;0;1;0;0;1;0;0;1;0;0;0;1;1;1;1;0;1;0;0;0;1;0;1;1;0;1;0;0;1;0;1;0;1;1;0;1;1;1;1;1;1;1;1;0;0;0;1;0;1;1;1;1;1;1;0;1;0;0;0;0;1;1;0;0;0;1;0;1;1;1;0;0;1;0;0;1
|
||||||
|
1;1;1;1;1;1;1;0;1;0;0;1;0;1;1;1;1;0;1;0;1;1;1;1;0;1;1;1;1;1;0;0;0;1;0;0;1;0;0;1;0;0;1;1;1;1;0;1;1;1;1;1;1;0;0;0;1;1;0;0;0;1;0;0;1;1;1;1;0;1;0;1;1;1;0;0;0;1;1;0;1;0;0;0;0;0;0;0;0;0;0;1;0;0;0;1;0;0;1;1
|
||||||
|
1;1;1;0;1;1;0;0;1;1;1;1;0;0;0;1;1;0;1;0;0;1;1;1;1;0;1;1;0;1;0;1;1;0;0;1;0;0;0;1;0;0;0;1;0;1;1;0;0;1;1;1;0;0;0;0;0;0;0;1;0;0;1;0;0;0;1;1;0;0;1;1;0;1;0;0;1;1;1;0;1;0;1;1;1;0;1;0;0;0;1;1;1;0;1;0;1;0;1;1
|
||||||
|
1;0;1;0;0;0;0;1;1;0;1;1;0;1;0;0;1;0;0;0;0;1;0;1;0;1;0;0;1;1;1;0;1;0;0;0;0;0;0;1;0;0;1;1;1;0;0;0;1;1;1;1;1;1;0;0;0;0;0;1;0;1;1;0;0;1;1;0;1;1;0;1;1;0;1;0;0;0;0;1;0;1;1;1;0;1;1;0;0;0;0;0;0;0;1;1;0;0;0;0
|
||||||
|
1;1;0;1;0;0;0;0;0;1;0;1;1;1;1;1;0;1;1;1;0;0;0;0;1;1;0;0;1;1;0;0;0;1;0;0;1;1;0;0;1;1;1;0;1;0;1;1;1;0;1;0;1;1;1;0;0;0;1;1;0;0;0;1;1;0;1;0;1;1;0;0;1;0;0;1;1;0;1;1;0;1;1;1;0;1;0;0;0;0;0;1;0;0;1;1;0;1;0;0
|
||||||
|
1;0;1;1;1;1;0;1;0;1;0;0;0;1;1;0;0;1;0;1;0;0;1;0;1;0;1;1;0;0;0;1;0;1;0;0;1;1;0;1;0;0;1;1;0;1;0;0;1;0;0;0;0;0;0;1;0;0;1;1;1;0;0;0;1;1;1;1;0;1;1;1;1;1;1;0;0;1;1;0;1;1;1;0;0;1;1;1;1;0;1;1;1;1;1;0;0;1;1;1
|
||||||
|
0;0;1;0;1;1;0;1;1;1;1;1;1;0;0;0;1;0;0;0;0;1;0;1;1;1;1;0;0;0;0;1;1;0;1;1;0;0;0;0;1;0;1;0;0;0;1;0;1;0;1;0;0;0;1;0;1;0;0;1;0;1;0;1;0;0;0;0;0;0;0;0;1;1;1;0;0;1;1;0;0;0;0;0;1;0;1;1;0;0;1;0;0;1;0;0;0;0;0;1
|
||||||
|
1;1;0;1;0;1;0;1;1;1;1;0;0;0;0;1;1;0;1;0;0;1;1;0;0;0;0;1;1;1;1;0;1;1;0;0;1;1;1;1;0;1;1;1;0;1;0;1;1;1;0;0;0;1;1;0;0;0;0;1;1;1;0;1;1;1;1;1;1;0;1;1;0;0;1;1;1;0;0;0;0;0;1;1;0;0;1;0;0;1;0;0;0;1;0;1;0;1;0;1
|
||||||
|
0;1;1;1;0;1;1;1;0;0;1;1;0;1;1;1;0;0;0;0;1;1;0;1;1;1;0;1;1;0;0;0;0;1;0;1;0;0;1;1;1;1;1;0;0;0;0;0;1;1;1;1;0;0;0;0;0;1;1;1;1;1;1;0;0;0;1;0;1;0;1;0;0;1;0;0;0;1;1;0;1;0;0;1;0;1;0;0;1;0;0;1;1;1;1;1;0;1;0;0
|
||||||
|
|
@ -7,7 +7,8 @@ public abstract class Agent {
|
||||||
protected int x;
|
protected int x;
|
||||||
protected int y;
|
protected int y;
|
||||||
protected Color color;
|
protected Color color;
|
||||||
|
protected ArrayList<Agent> agents;
|
||||||
|
boolean deathMarker=false;
|
||||||
protected Agent(int x, int y, Color color) {
|
protected Agent(int x, int y, Color color) {
|
||||||
this.x = x;
|
this.x = x;
|
||||||
this.y = y;
|
this.y = y;
|
||||||
|
|
@ -30,11 +31,21 @@ public abstract class Agent {
|
||||||
return dist<radius;
|
return dist<radius;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getDistance(Agent animal) {
|
||||||
|
int diffX = this.x-animal.x;
|
||||||
|
int diffY = this.y-animal.y;
|
||||||
|
int dist = (int) Math.floor(Math.sqrt(diffX*diffX+diffY*diffY));
|
||||||
|
return dist;
|
||||||
|
}
|
||||||
// Does whatever the agent does during a step
|
// Does whatever the agent does during a step
|
||||||
// then returns a boolean
|
// then returns a boolean
|
||||||
// if false, agent dies at end of turn
|
// if false, agent dies at end of turn
|
||||||
// see step function in Simulator
|
// see step function in Simulator
|
||||||
public abstract boolean liveTurn(ArrayList<Agent> neighbors, Simulator world);
|
public abstract boolean liveTurn(ArrayList<Agent> neighbors, Simulator world);
|
||||||
|
public abstract int getAgentType();
|
||||||
|
|
||||||
|
public void toggleDeathMarker() {
|
||||||
|
deathMarker=true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ public class Sheep extends Agent {
|
||||||
int hunger;
|
int hunger;
|
||||||
Random rand;
|
Random rand;
|
||||||
|
|
||||||
|
|
||||||
Sheep(int x,int y){
|
Sheep(int x,int y){
|
||||||
//first we call the constructor of the superClass(Animal)
|
//first we call the constructor of the superClass(Animal)
|
||||||
//with the values we want.
|
//with the values we want.
|
||||||
|
|
@ -30,13 +31,17 @@ public class Sheep extends Agent {
|
||||||
* as you wish
|
* as you wish
|
||||||
*/
|
*/
|
||||||
public boolean liveTurn(ArrayList<Agent> neighbors, Simulator world) {
|
public boolean liveTurn(ArrayList<Agent> neighbors, Simulator world) {
|
||||||
|
if(deathMarker) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if(world.getCell(x, y)==1) {
|
if(world.getCell(x, y)==1) {
|
||||||
world.setCell(x, y, 0);
|
world.setCell(x, y, 0);
|
||||||
|
hunger-=5;
|
||||||
} else {
|
} else {
|
||||||
hunger++;
|
hunger++;
|
||||||
}
|
}
|
||||||
this.moveRandom();
|
this.moveRandom();
|
||||||
return hunger>10;
|
return hunger<30;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void moveRandom() {
|
private void moveRandom() {
|
||||||
|
|
@ -54,6 +59,8 @@ public class Sheep extends Agent {
|
||||||
y-=1;
|
y-=1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public int getAgentType() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package backend;
|
package backend;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Random;
|
||||||
import windowInterface.MyInterface;
|
import windowInterface.MyInterface;
|
||||||
//import backend.Rules;
|
//import backend.Rules;
|
||||||
|
|
||||||
|
|
@ -27,10 +27,9 @@ public class Simulator extends Thread {
|
||||||
private boolean stopFlag;
|
private boolean stopFlag;
|
||||||
private boolean pauseFlag;
|
private boolean pauseFlag;
|
||||||
private boolean loopingBorder;
|
private boolean loopingBorder;
|
||||||
private boolean clickActionFlag;
|
private int clickActionFlag;
|
||||||
private int loopDelay = 150;
|
private int loopDelay = 150;
|
||||||
private ArrayList<Integer> ruleSurviveCriteria= new ArrayList<Integer>();
|
private ArrayList<Integer> ruleSurviveCriteria= new ArrayList<Integer>();//array lists used to compute the Rules
|
||||||
|
|
||||||
private ArrayList<Integer> ruleBirthCriteria=new ArrayList<Integer>() ;
|
private ArrayList<Integer> ruleBirthCriteria=new ArrayList<Integer>() ;
|
||||||
//Rules rule = new Rules();
|
//Rules rule = new Rules();
|
||||||
//TODO : add missing attribute(s)
|
//TODO : add missing attribute(s)
|
||||||
|
|
@ -40,7 +39,7 @@ public class Simulator extends Thread {
|
||||||
stopFlag=false;
|
stopFlag=false;
|
||||||
pauseFlag=false;
|
pauseFlag=false;
|
||||||
loopingBorder=false;
|
loopingBorder=false;
|
||||||
clickActionFlag=false;
|
clickActionFlag=0;
|
||||||
cells = new ArrayList<ArrayList<Cell>>();
|
cells = new ArrayList<ArrayList<Cell>>();
|
||||||
newCells = new ArrayList<ArrayList<Cell>>();
|
newCells = new ArrayList<ArrayList<Cell>>();
|
||||||
|
|
||||||
|
|
@ -50,7 +49,7 @@ public class Simulator extends Thread {
|
||||||
|
|
||||||
//TODO : add missing attribute initialization
|
//TODO : add missing attribute initialization
|
||||||
|
|
||||||
ruleSurviveCriteria.add(2);//initializing system with conway rule
|
ruleSurviveCriteria.add(2);//initializing system with Conway rule
|
||||||
ruleSurviveCriteria.add(3);
|
ruleSurviveCriteria.add(3);
|
||||||
ruleBirthCriteria.add(3);
|
ruleBirthCriteria.add(3);
|
||||||
//initialize grid with dead cells
|
//initialize grid with dead cells
|
||||||
|
|
@ -141,46 +140,36 @@ public class Simulator extends Thread {
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getAliveNeighbors(int x, int y, int radius) {
|
public int getAliveNeighbors(int x, int y, int radius) {
|
||||||
|
|
||||||
//to compensate for the cell itself being alive or not
|
//to compensate for the cell itself being alive or not
|
||||||
int aliveNeighbors = -1;
|
int aliveNeighbors = -1;
|
||||||
if(getCell(x,y) == 0) {
|
if(getCell(x,y) == 0) {
|
||||||
aliveNeighbors++;
|
aliveNeighbors++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//for each neighbor
|
//for each neighbor
|
||||||
for(int i = x-radius; i <= x+radius; i++) {
|
for(int i = x-radius; i <= x+radius; i++) {
|
||||||
for(int j = y-radius; j <= y+radius; j++) {
|
for(int j = y-radius; j <= y+radius; j++) {
|
||||||
if(i!=-1 && i!=getWidth() && j!=-1 && j!=getHeight()) { //if neighbor is not outside the map
|
if(i!=-1 && i!=getWidth() && j!=-1 && j!=getHeight()) { //if neighbor is not outside the map
|
||||||
|
|
||||||
if(getCell(i,j) == 1) { //if alive, add 1 to counter
|
if(getCell(i,j) == 1) { //if alive, add 1 to counter
|
||||||
aliveNeighbors++;
|
aliveNeighbors++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(loopingBorder==true && (i==-1 || i==getWidth() || j==-1 || j==getHeight() )) { //if looping borders enabled and neighbor outside map
|
else if(loopingBorder==true && (i==-1 || i==getWidth() || j==-1 || j==getHeight() )) { //if looping borders enabled and neighbor outside map
|
||||||
int I=i;
|
int I=i;
|
||||||
int J=j;
|
int J=j;
|
||||||
|
|
||||||
if(I==-1) {
|
if(I==-1) {
|
||||||
I=getWidth()-1;
|
I=getWidth()-1;
|
||||||
}
|
}
|
||||||
else if(I==getWidth()) {
|
else if(I==getWidth()) {
|
||||||
I=0;
|
I=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(J==-1) {
|
if(J==-1) {
|
||||||
J=getHeight()-1;
|
J=getHeight()-1;
|
||||||
}
|
}
|
||||||
else if(J==getHeight()) {
|
else if(J==getHeight()) {
|
||||||
J=0;
|
J=0;
|
||||||
}
|
}if(getCell(I,J) == 1) { //if alive, add 1 to counter
|
||||||
|
|
||||||
if(getCell(I,J) == 1) { //if alive, add 1 to counter
|
|
||||||
aliveNeighbors++;
|
aliveNeighbors++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -196,18 +185,20 @@ public class Simulator extends Thread {
|
||||||
// only modify if sure of what you do
|
// only modify if sure of what you do
|
||||||
// to modify agent behavior, see liveTurn method
|
// to modify agent behavior, see liveTurn method
|
||||||
// in agent classes
|
// in agent classes
|
||||||
|
|
||||||
|
ArrayList<Integer> arrayDeadAgent=new ArrayList<Integer>();
|
||||||
for(Agent agent : agents) {
|
for(Agent agent : agents) {
|
||||||
ArrayList<Agent> neighbors =
|
|
||||||
this.getNeighboringAnimals(
|
ArrayList<Agent> neighbors = this.getNeighboringAnimals(agent.getX(), agent.getY(), ANIMAL_AREA_RADIUS);
|
||||||
agent.getX(),
|
if(!agent.liveTurn(neighbors,this)) {
|
||||||
agent.getY(),
|
//agents.remove(agent);
|
||||||
ANIMAL_AREA_RADIUS);
|
arrayDeadAgent.add(agents.indexOf(agent));//if an agent doesn't fulfill its condition to live it will be listed as dead before being removed
|
||||||
if(!agent.liveTurn(
|
|
||||||
neighbors,
|
|
||||||
this)) {
|
|
||||||
agents.remove(agent);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for(Integer i : arrayDeadAgent) {//removing agent from agents taking into account the change in index
|
||||||
|
agents.remove(i.intValue()-arrayDeadAgent.indexOf(i));//since the size of the array lowers at each iteration
|
||||||
|
}
|
||||||
|
|
||||||
//then evolution of the field
|
//then evolution of the field
|
||||||
// TODO : apply game rule to all cells of the field
|
// TODO : apply game rule to all cells of the field
|
||||||
|
|
||||||
|
|
@ -275,18 +266,32 @@ public class Simulator extends Thread {
|
||||||
*/
|
*/
|
||||||
public void clickCell(int x, int y) {
|
public void clickCell(int x, int y) {
|
||||||
//TODO : complete method
|
//TODO : complete method
|
||||||
//if clickActionFlag = true then create an agent
|
//if clickActionFlag = 0 then get the position
|
||||||
//else if flag = false then change value of cell
|
//else if flag = 1 then change value of cell
|
||||||
if(clickActionFlag) {
|
//else if flag=2 then set a sheep
|
||||||
|
//else if flag=3 then set a wolf
|
||||||
|
switch (clickActionFlag) {
|
||||||
|
case 0 :
|
||||||
System.out.print(x );
|
System.out.print(x );
|
||||||
System.out.println(y);
|
System.out.println(y);
|
||||||
}else {
|
break;
|
||||||
System.out.println(getAliveNeighbors(x, y, LIFE_AREA_RADIUS)); //print nb of neighbours
|
case 1 :
|
||||||
if(getCell(x, y)==0) {
|
if(getCell(x, y)==0) {
|
||||||
setCell(x, y, 1);
|
setCell(x, y, 1);
|
||||||
}else {setCell(x, y, 0);}
|
}else {setCell(x, y, 0);}
|
||||||
|
break;
|
||||||
|
case 2 :
|
||||||
|
Sheep Shaun=new Sheep(x,y);
|
||||||
|
agents.add(Shaun);
|
||||||
|
//System.out.println(agents);
|
||||||
|
break;
|
||||||
|
case 3 :
|
||||||
|
Wolf agrou=new Wolf(x,y);
|
||||||
|
agents.add(agrou);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -301,7 +306,7 @@ public class Simulator extends Thread {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getNewCell(int x, int y) {
|
public int getNewCell(int x, int y) {//getCell for the new array of cells for the next step
|
||||||
//TODO : complete method with proper return
|
//TODO : complete method with proper return
|
||||||
int status = newCells.get(x).get(y).getAlive();
|
int status = newCells.get(x).get(y).getAlive();
|
||||||
//int status = newCells.get(x).get(y);
|
//int status = newCells.get(x).get(y);
|
||||||
|
|
@ -343,7 +348,7 @@ public class Simulator extends Thread {
|
||||||
public void setCell(int x, int y, int status) {
|
public void setCell(int x, int y, int status) {
|
||||||
cells.get(x).get(y).setAlive(status);
|
cells.get(x).get(y).setAlive(status);
|
||||||
}
|
}
|
||||||
public void setNewCell(int x, int y, int status) {
|
public void setNewCell(int x, int y, int status) {//same but for the new cells array
|
||||||
newCells.get(x).get(y).setAlive(status);
|
newCells.get(x).get(y).setAlive(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -354,7 +359,22 @@ public class Simulator extends Thread {
|
||||||
*/
|
*/
|
||||||
public ArrayList<String> getSaveState() {
|
public ArrayList<String> getSaveState() {
|
||||||
//TODO : complete method with proper return
|
//TODO : complete method with proper return
|
||||||
return null;
|
//We need to create an array of strings
|
||||||
|
//each string should be the sum of all int transformed to strings in each Arrays of int
|
||||||
|
ArrayList<String> arrayLines=new ArrayList<String>();
|
||||||
|
for(int x=0;x<getWidth();x++) {//create an array of Strings where each line is the sum of the values of all the cells in the x row separated by a semicolon
|
||||||
|
String sumElementToLine="";
|
||||||
|
for(int y=0;y<getHeight();y++) {
|
||||||
|
sumElementToLine+=(Integer.toString(getCell(y, x)));//create each line by computing all the cells and concatenate them into a single string
|
||||||
|
if(y<getHeight()-1) {
|
||||||
|
sumElementToLine+=";";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
arrayLines.add(sumElementToLine);
|
||||||
|
//System.out.println(sumElementToLine.length());
|
||||||
|
}
|
||||||
|
//System.out.println(arrayLines);
|
||||||
|
return arrayLines;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
@ -398,6 +418,18 @@ public class Simulator extends Thread {
|
||||||
*/
|
*/
|
||||||
public void generateRandom(float chanceOfLife) {
|
public void generateRandom(float chanceOfLife) {
|
||||||
//TODO : complete method
|
//TODO : complete method
|
||||||
|
Random ran= new Random();
|
||||||
|
for (int x=0;x<getWidth();x++){
|
||||||
|
for (int y=0;y<getHeight();y++) {
|
||||||
|
if (ran.nextFloat()<=chanceOfLife) {// since the ran.nextFloat is uniformly distributed we can obtain a grid with each cell having as a probability to live chanceOfLife
|
||||||
|
setCell(x, y, 1);
|
||||||
|
}else {
|
||||||
|
setCell(x, y, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Advice :
|
* Advice :
|
||||||
* as you should probably have a separate class
|
* as you should probably have a separate class
|
||||||
|
|
@ -434,9 +466,25 @@ public class Simulator extends Thread {
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void toggleClickAction() {
|
public void toggleClickAction() {//make clickActionFlag do an endless loop when called
|
||||||
//TODO : complete method
|
//TODO : complete method
|
||||||
clickActionFlag = !clickActionFlag;
|
switch (clickActionFlag) {
|
||||||
|
case 0:
|
||||||
|
clickActionFlag++;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
clickActionFlag++;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
clickActionFlag++;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
clickActionFlag=0;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -449,11 +497,27 @@ public class Simulator extends Thread {
|
||||||
*/
|
*/
|
||||||
public ArrayList<String> getRule() {
|
public ArrayList<String> getRule() {
|
||||||
//TODO : complete method with proper return
|
//TODO : complete method with proper return
|
||||||
|
ArrayList<String> arrayline=new ArrayList<String>();
|
||||||
return null;
|
String lineOne="";
|
||||||
|
for(int i=0;i<ruleSurviveCriteria.size();i++) {//create an array of Strings where each line is the sum of the values of surviveCriteria of the in the x row separated by a semicolon
|
||||||
|
lineOne+=Integer.toString(ruleSurviveCriteria.get(i));
|
||||||
|
if(i<ruleSurviveCriteria.size()-1) {
|
||||||
|
lineOne+=";";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
arrayline.add(lineOne);
|
||||||
|
String lineTwo="";
|
||||||
|
for(int j=0;j<ruleBirthCriteria.size();j++) {//create an array of Strings where each line is the sum of the values of birthCriteria of the in the x row separated by a semicolon
|
||||||
|
lineTwo+=Integer.toString(ruleBirthCriteria.get(j));
|
||||||
|
if(j<ruleBirthCriteria.size()-1) {
|
||||||
|
lineTwo+=";";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
arrayline.add(lineTwo);
|
||||||
|
return arrayline;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadRule(ArrayList<String> lines) {
|
public void loadRule(ArrayList<String> lines) {//opposite of getRule
|
||||||
if(lines.size()<=0) {
|
if(lines.size()<=0) {
|
||||||
System.out.println("empty rule file");
|
System.out.println("empty rule file");
|
||||||
return;
|
return;
|
||||||
|
|
@ -480,29 +544,61 @@ public class Simulator extends Thread {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<String> getAgentsSave() {
|
public ArrayList<String> getAgentsSave() {
|
||||||
//TODO : Same idea as the other save method, but for agents
|
ArrayList<String> arrayLines=new ArrayList<String>();
|
||||||
return null;
|
String sumAgentToLine="";
|
||||||
|
for(Agent agent :agents) {
|
||||||
|
sumAgentToLine+=agent.getX()+",";
|
||||||
|
sumAgentToLine+=agent.getY()+",";
|
||||||
|
sumAgentToLine+=agent.getAgentType();
|
||||||
|
if (agents.indexOf(agent)<agents.size()-1);{
|
||||||
|
sumAgentToLine+=";";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
arrayLines.add(sumAgentToLine);
|
||||||
|
//System.out.println(sumElementToLine.length());
|
||||||
|
//System.out.println(arrayLines);
|
||||||
|
return arrayLines;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadAgents(ArrayList<String> stringArray) {
|
public void loadAgents(ArrayList<String> lines) {
|
||||||
//TODO : Same idea as other load methods, but for agent list
|
//TODO : Same idea as other load methods, but for agent list
|
||||||
if(stringArray.size()<=0) {
|
if(lines.size()<=0) {
|
||||||
System.out.println("empty agents file");
|
return;
|
||||||
|
}
|
||||||
|
String firstLine = lines.get(0);
|
||||||
|
String[] firstLineElements = firstLine.split(";");
|
||||||
|
if(firstLineElements.length<=0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//TODO : remove previous rule (=emptying lists)
|
|
||||||
|
|
||||||
|
for(int j =0; j<lines.size();j++) {
|
||||||
|
String line = lines.get(j);
|
||||||
|
String[] lineElements = line.split(";");
|
||||||
|
for(int i=0; i<lineElements.length;i++) {
|
||||||
|
String[] elements = lineElements[i].split(",");
|
||||||
|
int x = Integer.parseInt(elements[0]);
|
||||||
|
int y = Integer.parseInt(elements[1]);
|
||||||
|
if (elements.length>2) {
|
||||||
|
int typeAgent = Integer.parseInt(elements[2]);
|
||||||
|
switch (typeAgent) {
|
||||||
|
case 1 :
|
||||||
|
Sheep Shaun=new Sheep(x,y);//adds a sheep for type 1
|
||||||
|
agents.add(Shaun);
|
||||||
|
//System.out.println(agents);
|
||||||
|
break;
|
||||||
|
case 2 :
|
||||||
|
Wolf agrou=new Wolf(x,y);//adds a Wolf for type 2
|
||||||
|
agents.add(agrou);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Sheep Shaun=new Sheep(x,y);// adds Sheep if the save doesn't specify the type of the Agent
|
||||||
|
agents.add(Shaun);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
for(int x=0; x<stringArray.size();x++) {
|
|
||||||
String agentsLine = stringArray.get(x);
|
|
||||||
String[] agentsElements = agentsLine.split(";");
|
|
||||||
int[] agentsValues = new int[3];
|
|
||||||
for(int i=0; i<agentsElements.length;i++) {
|
|
||||||
agentsValues[i]= Integer.parseInt(agentsElements[i]);
|
|
||||||
}
|
|
||||||
if(agentsValues[2]==1) {
|
|
||||||
agents.add(new Sheep(agentsValues[0], agentsValues[1]));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -514,7 +610,18 @@ public class Simulator extends Thread {
|
||||||
public String clickActionName() {
|
public String clickActionName() {
|
||||||
// TODO : initially return "sheep" or "cell"
|
// TODO : initially return "sheep" or "cell"
|
||||||
// depending on clickActionFlag
|
// depending on clickActionFlag
|
||||||
return "";
|
switch (clickActionFlag) {//returns a string depending pn the value pf clickActionFlag
|
||||||
|
case 0:
|
||||||
|
return "position";
|
||||||
|
case 1:
|
||||||
|
return "cell";
|
||||||
|
case 2:
|
||||||
|
return "sheep";
|
||||||
|
case 3:
|
||||||
|
return "wolf";
|
||||||
|
default:
|
||||||
|
return "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,92 @@
|
||||||
|
package backend;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
// example of basic animal.
|
||||||
|
// do not hesitate to make it more complex
|
||||||
|
//not very peculiar agent
|
||||||
|
//this class creates wolves that kill the agents that are of the Sheep subclass
|
||||||
|
//the wolves objects are moving towards any agent, making their behavior as a pack and going towards Sheep object to eat them
|
||||||
|
public class Wolf extends Agent {
|
||||||
|
|
||||||
|
int hunger;
|
||||||
|
Random rand;
|
||||||
|
|
||||||
|
Wolf(int x,int y){
|
||||||
|
//first we call the constructor of the superClass(Animal)
|
||||||
|
//with the values we want.
|
||||||
|
// here we decide that a Wolf is initially white using this constructor
|
||||||
|
super(x,y,Color.red);
|
||||||
|
// we give our Wolf a hunger value of zero at birth
|
||||||
|
hunger = 0;
|
||||||
|
//we initialize the random number generator we will use to move randomly
|
||||||
|
rand = new Random();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* action of the animal
|
||||||
|
* it can interact with the cells or with other animals
|
||||||
|
* as you wish
|
||||||
|
*/
|
||||||
|
public boolean liveTurn(ArrayList<Agent> neighbors, Simulator world) {
|
||||||
|
ArrayList<Agent> inAreaAgents=new ArrayList<Agent>();
|
||||||
|
for(Agent agent : world.getAnimals()) {
|
||||||
|
if (this.getDistance(agent)<=1) {
|
||||||
|
agent.toggleDeathMarker();//if a wolf is near a sheep(radius of 1) then the sheep will die the following liveTurn
|
||||||
|
hunger-=50;
|
||||||
|
}
|
||||||
|
else if (agent.isInArea(agent.getX(), agent.getY(), 5)) {//look for agents in area and add them to the array list inAreaAgents
|
||||||
|
inAreaAgents.add(agent);
|
||||||
|
}
|
||||||
|
|
||||||
|
}//gets the agent with the smallest distance with this wolf
|
||||||
|
if (inAreaAgents.size()>0) {
|
||||||
|
Agent smallestDistanceAgent=inAreaAgents.get(0);
|
||||||
|
for(Agent agentNear:inAreaAgents) {
|
||||||
|
if(this.getDistance(agentNear)<this.getDistance(smallestDistanceAgent)) {
|
||||||
|
smallestDistanceAgent=agentNear;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int smallX=smallestDistanceAgent.getX();
|
||||||
|
int smallY=smallestDistanceAgent.getY();
|
||||||
|
//decrease the distance between this wolf and the target
|
||||||
|
if((x-smallX)>0) {
|
||||||
|
x-=1;
|
||||||
|
}else if ((x-smallX)<0) {
|
||||||
|
x+=1;
|
||||||
|
}
|
||||||
|
if((y-smallY)>0) {
|
||||||
|
y-=1;
|
||||||
|
}else if ((y-smallY)<0) {
|
||||||
|
y+=1;
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
this.moveRandom();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return hunger<50;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void moveRandom() {
|
||||||
|
int direction = rand.nextInt(4);
|
||||||
|
if(direction == 0) {
|
||||||
|
x+=1;
|
||||||
|
}
|
||||||
|
if(direction == 1) {
|
||||||
|
y+=1;
|
||||||
|
}
|
||||||
|
if(direction == 2) {
|
||||||
|
x-=1;
|
||||||
|
}
|
||||||
|
if(direction == 3) {
|
||||||
|
y-=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public int getAgentType() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -13,6 +13,7 @@ import javax.swing.event.ChangeListener;
|
||||||
|
|
||||||
import backend.Simulator;
|
import backend.Simulator;
|
||||||
|
|
||||||
|
import javax.imageio.ImageReader;
|
||||||
import javax.swing.JButton;
|
import javax.swing.JButton;
|
||||||
import javax.swing.JFileChooser;
|
import javax.swing.JFileChooser;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
|
|
@ -23,6 +24,7 @@ import java.io.FileReader;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
|
|
||||||
public class MyInterface extends JFrame {
|
public class MyInterface extends JFrame {
|
||||||
|
|
@ -154,6 +156,14 @@ public class MyInterface extends JFrame {
|
||||||
generateRandomBoard();
|
generateRandomBoard();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
/**panelRight.add(btnLoadImage);
|
||||||
|
|
||||||
|
JButton btnLoadImage = new JButton("Load Image");
|
||||||
|
btnLoadImage.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent arg0) {
|
||||||
|
clicLoadImage;
|
||||||
|
}
|
||||||
|
});*/
|
||||||
panelRight.add(btnRandGen);
|
panelRight.add(btnRandGen);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -320,13 +330,33 @@ public class MyInterface extends JFrame {
|
||||||
this.repaint();
|
this.repaint();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**public void clicLoadImage() {
|
||||||
|
String fileName=SelectFile();
|
||||||
|
//ArrayList<String> stringArray = new ArrayList<String>();
|
||||||
|
if (fileName.length()>0) {
|
||||||
|
try {
|
||||||
|
ImageReader fileContent = new ImageReader(new FileReader(fileName));
|
||||||
|
String line = fileContent.readLine();
|
||||||
|
while (line != null) {
|
||||||
|
stringArray.add(line);
|
||||||
|
line = fileContent.readLine();
|
||||||
|
}
|
||||||
|
fileContent.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
mySimu.loadAgents(stringArray);
|
||||||
|
this.repaint();
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
public void clicSaveToFileButton() {
|
public void clicSaveToFileButton() {
|
||||||
String fileName=SelectFile();
|
String fileName=SelectFile();
|
||||||
if (fileName.length()>0) {
|
if (fileName.length()>0) {
|
||||||
ArrayList<String> content = mySimu.getSaveState();
|
ArrayList<String> content = mySimu.getSaveState();
|
||||||
writeFile(fileName, (String[]) content.toArray());
|
String[] strArr = Arrays.copyOf(content.toArray(), content.toArray().length, String[].class);
|
||||||
|
writeFile(fileName, strArr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -334,7 +364,8 @@ public class MyInterface extends JFrame {
|
||||||
String fileName=SelectFile();
|
String fileName=SelectFile();
|
||||||
if (fileName.length()>0) {
|
if (fileName.length()>0) {
|
||||||
ArrayList<String> content = mySimu.getRule();
|
ArrayList<String> content = mySimu.getRule();
|
||||||
writeFile(fileName, (String[]) content.toArray());
|
String[] strArr = Arrays.copyOf(content.toArray(), content.toArray().length, String[].class);
|
||||||
|
writeFile(fileName, strArr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -342,7 +373,8 @@ public class MyInterface extends JFrame {
|
||||||
String fileName=SelectFile();
|
String fileName=SelectFile();
|
||||||
if (fileName.length()>0) {
|
if (fileName.length()>0) {
|
||||||
ArrayList<String> content = mySimu.getAgentsSave();
|
ArrayList<String> content = mySimu.getAgentsSave();
|
||||||
writeFile(fileName, (String[]) content.toArray());
|
String[] strArr = Arrays.copyOf(content.toArray(), content.toArray().length, String[].class);
|
||||||
|
writeFile(fileName, strArr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue